Приведение к прошлой версии
							
								
								
									
										19
									
								
								README.md
									
									
									
									
									
								
							
							
						
						@ -1,17 +1,18 @@
 | 
			
		||||
Moodle App
 | 
			
		||||
ВМедА Онлайн
 | 
			
		||||
=================
 | 
			
		||||
 | 
			
		||||
This is the primary repository of source code for the official mobile app for Moodle.
 | 
			
		||||
Для запуска приложения необходимы следующие шаги:
 | 
			
		||||
-------------------------------------------------
 | 
			
		||||
1. ```npm install```
 | 
			
		||||
 | 
			
		||||
* [User documentation](https://docs.moodle.org/en/Moodle_app)
 | 
			
		||||
* [Developer documentation](https://moodledev.io/general/app)
 | 
			
		||||
* [Development environment setup](https://moodledev.io/general/app/development/setup)
 | 
			
		||||
* [Bug Tracker](https://tracker.moodle.org/browse/MOBILE)
 | 
			
		||||
* [Release Notes](https://moodledev.io/general/app_releases)
 | 
			
		||||
 | 
			
		||||
This project is tested with BrowserStack.
 | 
			
		||||
2. ```npm start```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
3. ```chromium-browser --allow-file-access-from-files --disable-web-security --disable-site-isolation-trials --allow-running-insecure-content --no-referrers --unlimited-storage --auto-open-devtools-for-tabs --ignore-certificate-errors --disable-infobars --user-data-dir=~/.chromium-dev-data```
 | 
			
		||||
  
 | 
			
		||||
(Перед этим необходимо установить браузер Chromium)
 | 
			
		||||
 | 
			
		||||
License
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
[Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0)
 | 
			
		||||
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 1.3 MiB  | 
| 
		 Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 20 KiB  | 
| 
		 Before Width: | Height: | Size: 15 KiB  | 
| 
		 Before Width: | Height: | Size: 14 KiB  | 
| 
		 Before Width: | Height: | Size: 15 KiB  | 
| 
		 Before Width: | Height: | Size: 15 KiB  | 
| 
		 Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 20 KiB  | 
| 
		 Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 20 KiB  | 
							
								
								
									
										59
									
								
								src/assets/fonts/font-awesome/regular/book-medical.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,59 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 | 
			
		||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
 | 
			
		||||
 | 
			
		||||
<svg
 | 
			
		||||
   width="210mm"
 | 
			
		||||
   height="297mm"
 | 
			
		||||
   viewBox="0 0 210 297"
 | 
			
		||||
   version="1.1"
 | 
			
		||||
   id="svg1836"
 | 
			
		||||
   inkscape:export-filename="book-medical.svg"
 | 
			
		||||
   inkscape:export-xdpi="3.8699999"
 | 
			
		||||
   inkscape:export-ydpi="3.8699999"
 | 
			
		||||
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
 | 
			
		||||
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
 | 
			
		||||
   xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
   xmlns:svg="http://www.w3.org/2000/svg">
 | 
			
		||||
  <sodipodi:namedview
 | 
			
		||||
     id="namedview1838"
 | 
			
		||||
     pagecolor="#ffffff"
 | 
			
		||||
     bordercolor="#111111"
 | 
			
		||||
     borderopacity="1"
 | 
			
		||||
     inkscape:showpageshadow="0"
 | 
			
		||||
     inkscape:pageopacity="0"
 | 
			
		||||
     inkscape:pagecheckerboard="1"
 | 
			
		||||
     inkscape:deskcolor="#d1d1d1"
 | 
			
		||||
     inkscape:document-units="mm"
 | 
			
		||||
     showgrid="false" />
 | 
			
		||||
  <defs
 | 
			
		||||
     id="defs1833" />
 | 
			
		||||
  <g
 | 
			
		||||
     inkscape:label="Слой 1"
 | 
			
		||||
     inkscape:groupmode="layer"
 | 
			
		||||
     id="layer1">
 | 
			
		||||
    <g
 | 
			
		||||
       id="g232"
 | 
			
		||||
       transform="matrix(1.8296707,0,0,-1.8296707,192.88724,65.061799)">
 | 
			
		||||
      <path
 | 
			
		||||
         d="m 0,0 c -0.012,-0.256 -0.029,-0.468 -0.02,-0.622 l 0.003,-92.31 h -4.534 v 92.181 c -0.012,0.138 0,0.513 0.021,0.969 0.07,1.452 0.176,3.647 -1.211,5.101 -1.198,1.258 -3.402,1.896 -6.55,1.896 H -76.355 V 1.807 h 61.04 c 1.652,0 3.699,0 3.961,-2.99 v -103.645 c -0.262,-2.99 -2.309,-2.99 -3.961,-2.99 h -75.537 c -1.689,0 -3.791,0 -3.974,3.194 L -94.827,-1.32 c 0,0 0,0 0,0 v 9.962 c 0.193,3.127 2.281,3.127 3.961,3.127 h 10.551 c 0.277,0 0.565,-0.006 0.854,-0.02 h 67.17 c 4.437,0 7.745,-1.11 9.833,-3.301 C 0.269,5.587 0.087,1.814 0,0 M -5.351,20.85 H -90.829 C -103.86,20.85 -103.86,8.802 -103.86,8.802 V 0.974 c -0.033,-0.391 -0.037,-0.633 -0.037,-0.633 V -104.84 c 0,0 0,-0.105 0.015,-0.302 0.106,-1.844 1.21,-11.745 13.031,-11.745 h 75.536 c 8.477,0 11.432,5.082 12.47,8.643 9.458,1.301 10.427,9.86 10.525,11.564 V 9.104 C 7.574,10.949 6.47,20.85 -5.351,20.85"
 | 
			
		||||
         style="fill:#00ab97;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         id="path234" />
 | 
			
		||||
    </g>
 | 
			
		||||
    <g
 | 
			
		||||
       id="g236"
 | 
			
		||||
       transform="matrix(1.8296707,0,0,-1.8296707,170.39784,43.564822)">
 | 
			
		||||
      <path
 | 
			
		||||
         d="m 0,0 h -67.169 c -0.289,0.014 -0.578,0.02 -0.855,0.02 h -10.551 c -1.68,0 -3.768,0 -3.961,-3.127 v -9.962 c 0,0 0,0 0,0 l 0.001,-103.304 c 0.183,-3.194 2.285,-3.194 3.975,-3.194 h 75.537 c 1.652,0 3.699,0 3.961,2.99 v 103.644 c -0.262,2.991 -2.309,2.991 -3.961,2.991 h -61.04 v 5.408 H 0 c 3.148,0 5.352,-0.638 6.551,-1.896 1.386,-1.455 1.281,-3.649 1.211,-5.101 C 7.74,-11.987 7.728,-12.362 7.74,-12.5 v -92.181 h 4.534 l -0.003,92.31 c -0.008,0.153 0.008,0.366 0.02,0.622 0.087,1.813 0.269,5.587 -2.457,8.448 C 7.745,-1.11 4.437,0 0,0"
 | 
			
		||||
         style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         id="path238" />
 | 
			
		||||
    </g>
 | 
			
		||||
    <path
 | 
			
		||||
       d="M 101.01124,168.81238 H 85.056524 v -51.85467 h 15.954716 z"
 | 
			
		||||
       style="fill:#727270;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.82967"
 | 
			
		||||
       id="path240" />
 | 
			
		||||
    <path
 | 
			
		||||
       d="M 118.96213,150.86331 H 67.107454 v -15.95472 h 51.854676 z"
 | 
			
		||||
       style="fill:#727270;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.82967"
 | 
			
		||||
       id="path242" />
 | 
			
		||||
  </g>
 | 
			
		||||
</svg>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 3.2 KiB  | 
							
								
								
									
										59
									
								
								src/assets/fonts/font-awesome/regular/download.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,59 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 | 
			
		||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
 | 
			
		||||
 | 
			
		||||
<svg
 | 
			
		||||
   width="210mm"
 | 
			
		||||
   height="297mm"
 | 
			
		||||
   viewBox="0 0 210 297"
 | 
			
		||||
   version="1.1"
 | 
			
		||||
   id="svg2719"
 | 
			
		||||
   inkscape:export-filename="download.svg"
 | 
			
		||||
   inkscape:export-xdpi="3.870476"
 | 
			
		||||
   inkscape:export-ydpi="3.870476"
 | 
			
		||||
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
 | 
			
		||||
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
 | 
			
		||||
   xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
   xmlns:svg="http://www.w3.org/2000/svg">
 | 
			
		||||
  <sodipodi:namedview
 | 
			
		||||
     id="namedview2721"
 | 
			
		||||
     pagecolor="#ffffff"
 | 
			
		||||
     bordercolor="#111111"
 | 
			
		||||
     borderopacity="1"
 | 
			
		||||
     inkscape:showpageshadow="0"
 | 
			
		||||
     inkscape:pageopacity="0"
 | 
			
		||||
     inkscape:pagecheckerboard="1"
 | 
			
		||||
     inkscape:deskcolor="#d1d1d1"
 | 
			
		||||
     inkscape:document-units="mm"
 | 
			
		||||
     showgrid="false" />
 | 
			
		||||
  <defs
 | 
			
		||||
     id="defs2716" />
 | 
			
		||||
  <g
 | 
			
		||||
     inkscape:label="Слой 1"
 | 
			
		||||
     inkscape:groupmode="layer"
 | 
			
		||||
     id="layer1">
 | 
			
		||||
    <g
 | 
			
		||||
       id="g92"
 | 
			
		||||
       transform="matrix(1.7498577,0,0,-1.7498577,163.44533,113.88214)">
 | 
			
		||||
      <path
 | 
			
		||||
         d="M 0,0 C -3.559,15.35 -17.164,26.27 -33.154,26.27 -49.152,26.27 -62.762,15.349 -66.32,0 c -16.759,-3.905 -25.25,-12.998 -25.25,-27.052 0,-17.378 13.044,-28.173 34.042,-28.173 h 9.543 v 6.469 h -9.543 c -6.468,0 -27.573,1.566 -27.573,21.704 0,11.428 7.045,18.153 22.171,21.166 l 2.195,0.437 0.365,2.208 c 2.203,13.351 13.648,23.042 27.216,23.042 13.56,0 25,-9.691 27.204,-23.042 l 0.365,-2.209 2.196,-0.436 c 15.124,-3.011 22.169,-9.736 22.169,-21.166 0,-20.138 -21.114,-21.704 -27.584,-21.704 h -9.186 v -6.469 h 9.186 c 21.005,0 34.054,10.795 34.054,28.173 C 25.25,-12.995 16.759,-3.902 0,0"
 | 
			
		||||
         style="fill:#238ef8;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         id="path94" />
 | 
			
		||||
    </g>
 | 
			
		||||
    <g
 | 
			
		||||
       id="g96"
 | 
			
		||||
       transform="matrix(1.7498577,0,0,-1.7498577,117.71645,176.38215)">
 | 
			
		||||
      <path
 | 
			
		||||
         d="m 0,0 c 0,3.812 -3.119,6.931 -6.933,6.931 -3.813,0 -6.931,-3.118 -6.931,-6.931 v -27.929 h -7.988 -1.399 c -4.117,0 -4.822,-3.252 -2.109,-5.944 l 3.508,-3.482 7.611,-7.553 2.358,-2.34 c 3.283,-3.256 6.476,-3.357 9.93,0.062 l 1.745,1.727 8.351,8.267 3.353,3.319 c 2.341,2.317 2.049,5.944 -2.77,5.944 H 8.143 0 Z"
 | 
			
		||||
         style="fill:#727270;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         id="path98" />
 | 
			
		||||
    </g>
 | 
			
		||||
    <g
 | 
			
		||||
       id="g100"
 | 
			
		||||
       transform="matrix(1.7498577,0,0,-1.7498577,105.42388,104.30762)">
 | 
			
		||||
      <path
 | 
			
		||||
         d="m 0,0 c 5.128,0 9.456,-3.664 10.29,-8.713 l 6.383,1.054 C 15.321,0.528 8.309,6.469 0,6.469 c -8.312,0 -15.326,-5.941 -16.678,-14.128 l 6.383,-1.054 C -9.461,-3.664 -5.132,0 0,0"
 | 
			
		||||
         style="fill:#238ef8;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         id="path102" />
 | 
			
		||||
    </g>
 | 
			
		||||
  </g>
 | 
			
		||||
</svg>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 2.7 KiB  | 
@ -1,9 +1,9 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 | 
			
		||||
<svg
 | 
			
		||||
   version="1.1"
 | 
			
		||||
   width="1024"
 | 
			
		||||
   height="1024"
 | 
			
		||||
   viewBox="-11 -15 512 512"
 | 
			
		||||
   width="42"
 | 
			
		||||
   height="42"
 | 
			
		||||
   viewBox="0 0 42 42"
 | 
			
		||||
   style="clip-rule:evenodd;fill-rule:evenodd;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision"
 | 
			
		||||
   id="svg12594"
 | 
			
		||||
   sodipodi:docname="logo.svg"
 | 
			
		||||
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.3 MiB  | 
| 
		 Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 20 KiB  | 
| 
		 Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 20 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/img/application_dpo.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 119 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/img/download/bdtt.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 17 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/img/download/dew.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 44 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/img/download/fdsf.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 13 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/img/download/metodugaz_travma-1.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 17 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/img/download/polevter.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 22 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/img/dpo_cost.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 335 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/img/feedback.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 120 KiB  | 
@ -26,7 +26,7 @@
 | 
			
		||||
    <core-loading [hideUntil]="categoriesLoaded">
 | 
			
		||||
        <ion-list class="list-item-limited-width">
 | 
			
		||||
            <ion-item *ngIf="currentCategory" class="ion-text-wrap">
 | 
			
		||||
                <ion-icon name="fas-folder" slot="start" [attr.aria-label]="'core.category' | translate" />
 | 
			
		||||
                <ion-icon name="fas-logo" slot="start" [attr.aria-label]="'core.category' | translate" />
 | 
			
		||||
                <ion-label>
 | 
			
		||||
                    <p class="item-heading">
 | 
			
		||||
                        <core-format-text [text]="currentCategory.name" contextLevel="coursecat" [contextInstanceId]="currentCategory.id" />
 | 
			
		||||
@ -47,7 +47,7 @@
 | 
			
		||||
                <ion-card *ngFor="let category of categories" [attr.data-category-id]="category.id">
 | 
			
		||||
                    <ion-item button class="ion-text-wrap" (click)="openCategory(category.id)" [attr.aria-label]="category.name"
 | 
			
		||||
                        [detail]="true">
 | 
			
		||||
                        <ion-icon name="fas-logo-color" slot="start" [attr.aria-label]="'core.category' | translate" />
 | 
			
		||||
                        <ion-icon name="fas-logo" slot="start" [attr.aria-label]="'core.category' | translate" />
 | 
			
		||||
                        <ion-label>
 | 
			
		||||
                            <p class="item-heading">
 | 
			
		||||
                                <core-format-text [text]="category.name" contextLevel="coursecat" [contextInstanceId]="category.id" />
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,7 @@
 | 
			
		||||
ion-icon{
 | 
			
		||||
    --webkit-margin-end: 16px !important;
 | 
			
		||||
    margin-inline-end: 16px !important;
 | 
			
		||||
    margin-block: 0 !important;
 | 
			
		||||
    font-size: 2em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -34,6 +34,7 @@ import { CoreAlerts } from '@services/overlays/alerts';
 | 
			
		||||
@Component({
 | 
			
		||||
    selector: 'page-core-courses-categories',
 | 
			
		||||
    templateUrl: 'categories.html',
 | 
			
		||||
    styleUrl:'categories.scss',
 | 
			
		||||
})
 | 
			
		||||
export class CoreCoursesCategoriesPage implements OnInit, OnDestroy {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -21,6 +21,7 @@ import { CoreMainMenuPage } from './pages/menu/menu';
 | 
			
		||||
import { CoreMainMenuHomeHandlerService } from './services/handlers/mainmenu';
 | 
			
		||||
import { CoreMainMenuComponentsModule } from './components/components.module';
 | 
			
		||||
import { MAIN_MENU_MORE_PAGE_NAME } from './constants';
 | 
			
		||||
import { CoreSiteHomeMaterialPage } from '@features/mainmenu/pages/materials/materials';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Build module routes.
 | 
			
		||||
@ -47,6 +48,10 @@ function buildRoutes(injector: Injector): Routes {
 | 
			
		||||
                ...mainMenuRoutes.children,
 | 
			
		||||
            ],
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            path: 'home/materials',
 | 
			
		||||
            component: CoreSiteHomeMaterialPage,
 | 
			
		||||
        },
 | 
			
		||||
        ...mainMenuRoutes.siblings,
 | 
			
		||||
    ];
 | 
			
		||||
}
 | 
			
		||||
@ -58,6 +63,7 @@ function buildRoutes(injector: Injector): Routes {
 | 
			
		||||
    ],
 | 
			
		||||
    declarations: [
 | 
			
		||||
        CoreMainMenuPage,
 | 
			
		||||
        CoreSiteHomeMaterialPage,
 | 
			
		||||
    ],
 | 
			
		||||
    providers: [
 | 
			
		||||
        { provide: ROUTES, multi: true, useFactory: buildRoutes, deps: [Injector] },
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										111
									
								
								src/core/features/mainmenu/pages/materials/materials.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,111 @@
 | 
			
		||||
<ion-header>
 | 
			
		||||
    <ion-toolbar>
 | 
			
		||||
        <ion-buttons slot="start">
 | 
			
		||||
            <ion-back-button [text]="'core.back' | translate" />
 | 
			
		||||
        </ion-buttons>
 | 
			
		||||
        <ion-title>
 | 
			
		||||
            <h1>
 | 
			
		||||
                <core-format-text [text]="title" />
 | 
			
		||||
            </h1>
 | 
			
		||||
        </ion-title>
 | 
			
		||||
    </ion-toolbar>
 | 
			
		||||
</ion-header>
 | 
			
		||||
<ion-content>
 | 
			
		||||
    <ion-card class="book-cell" style="background-color: rgb(111, 131, 243);">
 | 
			
		||||
        <ion-item style="background: none" class="book-img">
 | 
			
		||||
            <img src="assets/img/download/fdsf.jpg" alt="" class="book-photo">
 | 
			
		||||
        </ion-item>
 | 
			
		||||
        <ion-list class="book-content" style="background: none">
 | 
			
		||||
            <ion-item class="book-title">Первая помощь</ion-item>
 | 
			
		||||
            <ion-button class="book-see"
 | 
			
		||||
                        href="https://www.vmeda.org/wp-content/uploads/2022/10/first-aid-memo-basic-course-2022.pdf">
 | 
			
		||||
                Скачать
 | 
			
		||||
            </ion-button>
 | 
			
		||||
            <!--
 | 
			
		||||
            style="--swiper-theme-color: #007aff; --swiper-navigation-size: 22px;
 | 
			
		||||
            font-family: 'Open Sans',sans-serif; line-height: 1.642; -webkit-font-smoothing: antialiased;
 | 
			
		||||
            -webkit-tap-highlight-color: transparent; user-select: none; cursor: grab; box-sizing: border-box;
 | 
			
		||||
            margin-top: 12px; text-align: center; background-color: #fff; font-weight: 600; padding: 4px;
 | 
			
		||||
            font-size: 14px; width: 160px; border-radius: 20px; color: #a4e0eb;">
 | 
			
		||||
                <a href="https://www.vmeda.org/wp-content/uploads/2022/10/first-aid-memo-basic-course-2022.pdf"
 | 
			
		||||
                   target="_blank">Скачать</a>
 | 
			
		||||
            </ion-button>-->
 | 
			
		||||
        </ion-list>
 | 
			
		||||
    </ion-card>
 | 
			
		||||
 | 
			
		||||
    <ion-card class="book-cell" style="background-color: rgb(84, 179, 96);">
 | 
			
		||||
        <ion-item class="book-img">
 | 
			
		||||
            <img src="assets/img/download/dew.jpg" alt="" class="book-photo">
 | 
			
		||||
        </ion-item>
 | 
			
		||||
        <ion-list class="book-content">
 | 
			
		||||
            <ion-item class="book-title">Справочник тактической медицины</ion-item>
 | 
			
		||||
            <ion-button class="book-see"
 | 
			
		||||
            href="https://www.vmeda.org/wp-content/uploads/2022/10/handbook-tactical-medicine-2022.pdf">
 | 
			
		||||
                Скачать
 | 
			
		||||
            </ion-button>
 | 
			
		||||
        </ion-list>
 | 
			
		||||
    </ion-card>
 | 
			
		||||
 | 
			
		||||
    <ion-card class="book-cell" style="background-color: rgb(66, 146, 193);">
 | 
			
		||||
        <ion-item class="book-img">
 | 
			
		||||
            <img src="assets/img/download/bdtt.jpg" alt="" class="book-photo">
 | 
			
		||||
        </ion-item>
 | 
			
		||||
        <ion-list class="book-content">
 | 
			
		||||
            <ion-item class="book-title">
 | 
			
		||||
                Методические рекомендации по этапному лечению пораженных с боевой терапевтической патологией
 | 
			
		||||
            </ion-item>
 | 
			
		||||
            <ion-button class="book-see"
 | 
			
		||||
            href="https://www.vmeda.org/wp-content/uploads/2023/04/bttbook.pdf">
 | 
			
		||||
                Скачать
 | 
			
		||||
            </ion-button>
 | 
			
		||||
        </ion-list>
 | 
			
		||||
    </ion-card>
 | 
			
		||||
 | 
			
		||||
    <ion-card class="book-cell" style="background-color: rgb(102, 179, 165);">
 | 
			
		||||
        <ion-item class="book-img">
 | 
			
		||||
            <img src="assets/img/download/polevter.jpg" alt="" class="book-photo">
 | 
			
		||||
        </ion-item>
 | 
			
		||||
        <ion-list class="book-content">
 | 
			
		||||
            <ion-item class="book-title">Указания по военно-полевой терапии</ion-item>
 | 
			
		||||
            <ion-button class="book-see book-blue"
 | 
			
		||||
            href="https://www.vmeda.org/wp-content/uploads/2023/04/vptbook.pdf">
 | 
			
		||||
                Скачать
 | 
			
		||||
            </ion-button>
 | 
			
		||||
        </ion-list>
 | 
			
		||||
    </ion-card>
 | 
			
		||||
 | 
			
		||||
    <ion-card class="book-cell" style="background-color: rgb(66, 146, 193);">
 | 
			
		||||
        <ion-item class="book-img">
 | 
			
		||||
            <img src="assets/img/download/metodugaz_travma-1.jpg" alt="" class="book-photo">
 | 
			
		||||
        </ion-item>
 | 
			
		||||
        <ion-list class="book-content">
 | 
			
		||||
            <ion-item class="book-title">Методические рекомендации по лечению боевой хирургической травмы</ion-item>
 | 
			
		||||
            <ion-button class="book-see" href="https://www.vmeda.org/wp-content/uploads/2023/04/metodugaz_travma.pdf">
 | 
			
		||||
                Скачать
 | 
			
		||||
            </ion-button>
 | 
			
		||||
        </ion-list>
 | 
			
		||||
    </ion-card>
 | 
			
		||||
<!--
 | 
			
		||||
    <ion-modal>
 | 
			
		||||
        <ng-template>
 | 
			
		||||
            <ion-header>
 | 
			
		||||
            <ion-toolbar>
 | 
			
		||||
                <ion-buttons slot="start">
 | 
			
		||||
                    <ion-button style="--background: #0000" (click)="cancel()">
 | 
			
		||||
                    <ion-icon name="fas-arrow-left"/>
 | 
			
		||||
                    </ion-button>
 | 
			
		||||
                </ion-buttons>
 | 
			
		||||
              <ion-title>{{name}}</ion-title>
 | 
			
		||||
            </ion-toolbar>
 | 
			
		||||
          </ion-header>
 | 
			
		||||
          <ion-content>
 | 
			
		||||
            <embed id="file" width=100% height=100% />
 | 
			
		||||
          </ion-content>
 | 
			
		||||
        </ng-template>
 | 
			
		||||
    </ion-modal>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    <script src="runtime.4cb0b06cb476cfb61ea2.js" defer></script><script src="polyfills.1efaf77c2721c4983f5b.js" defer></script>
 | 
			
		||||
    <script src="cordova.32a3a29a8b6123a48c19.js" defer></script><script src="main.e2799415ee4149e46723.js" defer></script>
 | 
			
		||||
 -->
 | 
			
		||||
</ion-content>
 | 
			
		||||
							
								
								
									
										40
									
								
								src/core/features/mainmenu/pages/materials/materials.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,40 @@
 | 
			
		||||
.book-cell{
 | 
			
		||||
    display: flex;
 | 
			
		||||
    justify-content: space-around;
 | 
			
		||||
    padding: 0.5em;
 | 
			
		||||
}
 | 
			
		||||
.book-img img{
 | 
			
		||||
    max-height: 12vh;
 | 
			
		||||
 | 
			
		||||
    border-radius: 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.book-img{
 | 
			
		||||
    display: flex;
 | 
			
		||||
    min-width: fit-content;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.book-title{
 | 
			
		||||
    color: white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.book-see{
 | 
			
		||||
    --background: white;
 | 
			
		||||
    --color: #0031f3;
 | 
			
		||||
    --border-radius: 50px !important;
 | 
			
		||||
    margin: 0;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    min-height: 0;
 | 
			
		||||
    padding: 5px;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.book-content{
 | 
			
		||||
    width: -webkit-fill-available;
 | 
			
		||||
    max-width: 400px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ion-list, ion-item{
 | 
			
		||||
    background: none;
 | 
			
		||||
    --background: none;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										21
									
								
								src/core/features/mainmenu/pages/materials/materials.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,21 @@
 | 
			
		||||
import { Component, OnInit} from '@angular/core';
 | 
			
		||||
import {CoreViewer} from "@features/viewer/services/viewer";
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'app-materials',
 | 
			
		||||
  templateUrl: './materials.html',
 | 
			
		||||
  styleUrls: ['./materials.scss'],
 | 
			
		||||
})
 | 
			
		||||
export class CoreSiteHomeMaterialPage  implements OnInit {
 | 
			
		||||
    title: string | undefined;
 | 
			
		||||
 | 
			
		||||
    constructor() {
 | 
			
		||||
        
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ngOnInit() {
 | 
			
		||||
      this.title = "Материалы для скачивания";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -17,14 +17,15 @@
 | 
			
		||||
            </span>
 | 
			
		||||
        </ion-tab-button>
 | 
			
		||||
 | 
			
		||||
        <ion-tab-button (keydown)="tabAction.keyDown(morePageName, $event)" (keyup)="tabAction.keyUp(morePageName, $event)"
 | 
			
		||||
            [hidden]="!loaded" [tab]="morePageName" layout="label-hide" [tabindex]="selectedTab === morePageName ? 0 : -1"
 | 
			
		||||
            [attr.aria-controls]="morePageName">
 | 
			
		||||
            <ion-icon class="core-tab-icon" name="ellipsis-horizontal" aria-hidden="true" />
 | 
			
		||||
            <ion-label aria-hidden="true">{{ 'core.more' | translate }}</ion-label>
 | 
			
		||||
            <span class="sr-only">{{ 'core.more' | translate }}</span>
 | 
			
		||||
            <ion-icon *ngIf="moreBadge" class="core-tab-badge" name="fas-circle" aria-hidden="true" />
 | 
			
		||||
        <ion-tab-button (keydown)="tabAction.keyDown('more/settings', $event)" (keyup)="tabAction.keyUp('more/settings', $event)"
 | 
			
		||||
            [hidden]="!loaded" [tab]="'more/settings'" layout="label-hide" [tabindex]="selectedTab === 'more/settings' ? 0 : -1"
 | 
			
		||||
            [attr.aria-controls]="'more/settings'">
 | 
			
		||||
            <ion-icon class="core-tab-icon" name="fas-gears" aria-hidden="true" />
 | 
			
		||||
            <ion-label aria-hidden="true">{{ 'core.settings' | translate }}</ion-label>
 | 
			
		||||
            <span class="sr-only">{{ 'core.settings' | translate }}</span>
 | 
			
		||||
            <ion-icon *ngIf="moreBadge" class="core-tab-badge" name="fas-gear" aria-hidden="true" />
 | 
			
		||||
        </ion-tab-button>
 | 
			
		||||
 | 
			
		||||
    </ion-tab-bar>
 | 
			
		||||
</ion-tabs>
 | 
			
		||||
<div class="core-network-message" [hidden]="!showTabs">
 | 
			
		||||
 | 
			
		||||
@ -385,6 +385,7 @@ class CoreMainMenuRoleTab extends CoreAriaRoleTab<CoreMainMenuPage> {
 | 
			
		||||
                id: tab.id || tab.page,
 | 
			
		||||
                findIndex: tab.page,
 | 
			
		||||
            }));
 | 
			
		||||
        console.log(allTabs);
 | 
			
		||||
 | 
			
		||||
        allTabs.push({
 | 
			
		||||
            id: this.componentInstance.morePageName,
 | 
			
		||||
 | 
			
		||||
@ -42,7 +42,7 @@ export class CoreMainMenuHomeHandlerService implements CoreMainMenuHandler {
 | 
			
		||||
     */
 | 
			
		||||
    getDisplayData(): CoreMainMenuHandlerData {
 | 
			
		||||
        return {
 | 
			
		||||
            icon: 'fas-gauge-high',
 | 
			
		||||
            icon: 'fas-home',
 | 
			
		||||
            title: 'core.mainmenu.home',
 | 
			
		||||
            page: CoreMainMenuHomeHandlerService.PAGE_NAME,
 | 
			
		||||
            class: 'core-home-handler',
 | 
			
		||||
 | 
			
		||||
@ -54,11 +54,11 @@ export class CoreSettingsSectionsSource extends CoreRoutedItemsManagerSource<Cor
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        sections.push({
 | 
			
		||||
            name: 'core.settings.about',
 | 
			
		||||
            path: 'about',
 | 
			
		||||
            icon: 'fas-id-card',
 | 
			
		||||
        });
 | 
			
		||||
        // sections.push({
 | 
			
		||||
        //     name: 'core.settings.about',
 | 
			
		||||
        //     path: 'about',
 | 
			
		||||
        //     icon: 'fas-id-card',
 | 
			
		||||
        // });
 | 
			
		||||
 | 
			
		||||
        return { items: sections };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -33,7 +33,7 @@
 | 
			
		||||
                </ion-segment-button>
 | 
			
		||||
            </ion-segment>
 | 
			
		||||
        </ion-item>
 | 
			
		||||
        <ion-item class="ion-text-wrap core-settings-general-color-scheme" *ngIf="colorSchemes.length > 0">
 | 
			
		||||
        <!--<ion-item class="ion-text-wrap core-settings-general-color-scheme" *ngIf="colorSchemes.length > 0">
 | 
			
		||||
            <ion-select [(ngModel)]="selectedScheme" (ionChange)="colorSchemeChanged($event)" interface="action-sheet"
 | 
			
		||||
                [cancelText]="'core.cancel' | translate" [disabled]="colorSchemeDisabled"
 | 
			
		||||
                [interfaceOptions]="{header: 'core.settings.colorscheme' | translate}">
 | 
			
		||||
@ -49,7 +49,7 @@
 | 
			
		||||
            <ion-label class="ion-text-wrap">
 | 
			
		||||
                <p class="ion-text-wrap">{{ 'core.settings.colorscheme-system-notice' | translate }}</p>
 | 
			
		||||
            </ion-label>
 | 
			
		||||
        </ion-item>
 | 
			
		||||
        </ion-item>-->
 | 
			
		||||
        <ion-item>
 | 
			
		||||
            <ion-toggle [(ngModel)]="richTextEditor" (ionChange)="richTextEditorChanged($event)">
 | 
			
		||||
                <p class="item-heading ion-text-wrap">{{ 'core.settings.enablerichtexteditor' | translate }}</p>
 | 
			
		||||
@ -65,12 +65,12 @@
 | 
			
		||||
                </ion-button>
 | 
			
		||||
            </ion-label>
 | 
			
		||||
        </ion-item>
 | 
			
		||||
        <ion-item>
 | 
			
		||||
        <!--<ion-item>
 | 
			
		||||
            <ion-toggle [(ngModel)]="debugDisplay" (ionChange)="debugDisplayChanged($event)">
 | 
			
		||||
                <p class="item-heading ion-text-wrap">{{ 'core.settings.debugdisplay' | translate }}</p>
 | 
			
		||||
                <p class="ion-text-wrap">{{ 'core.settings.debugdisplaydescription' | translate }}</p>
 | 
			
		||||
            </ion-toggle>
 | 
			
		||||
        </ion-item>
 | 
			
		||||
        </ion-item> -->
 | 
			
		||||
        <ion-item *ngIf="analyticsAvailable">
 | 
			
		||||
            <ion-label>
 | 
			
		||||
                <p class="item-heading ion-text-wrap">{{ 'core.settings.enableanalytics' | translate }}</p>
 | 
			
		||||
 | 
			
		||||
@ -50,7 +50,43 @@
 | 
			
		||||
                </ng-container>
 | 
			
		||||
            </section>
 | 
			
		||||
 | 
			
		||||
            <!-- Site home items: news, categories, courses, etc. -->
 | 
			
		||||
            <ion-card>
 | 
			
		||||
                <ion-item button  (click)="openItem('Подача заявки на обучение по программам ДПО онлайн',
 | 
			
		||||
                                                      'https://lms.vmeda.org/auth_abitur_dpo/register')"
 | 
			
		||||
                          [attr.aria-label]="'Подача заявки на обучение по программам ДПО онлайн'"
 | 
			
		||||
                          class="core-application-dpo">
 | 
			
		||||
                    <img src="assets/img/application_dpo.jpg" alt="Заявка ДПО"/>
 | 
			
		||||
                    <ion-label>
 | 
			
		||||
                        <p class="item-heading">Подача заявки на обучение по программам ДПО онлайн</p>
 | 
			
		||||
                    </ion-label>
 | 
			
		||||
                </ion-item>
 | 
			
		||||
            </ion-card>
 | 
			
		||||
 | 
			
		||||
            <ion-card>
 | 
			
		||||
                <ion-item button  (click)="openItem('Перечень программ и прейскурант стоимости обучения ДПО',
 | 
			
		||||
                            'https://www.vmeda.org/s-02-01/fakultet-gr/dopolnitelnoe-professionalnoe-obrazovanie/')"
 | 
			
		||||
                          [attr.aria-label]="'Перечень программ и прейскурант стоимости обучения ДПО'"
 | 
			
		||||
                          class="core-application-dpo">
 | 
			
		||||
                    <img src="assets/img/dpo_cost.jpg" alt="Прейскурант ДПО"/>
 | 
			
		||||
                    <ion-label>
 | 
			
		||||
                        <p class="item-heading">Перечень программ и прейскурант стоимости обучения ДПО</p>
 | 
			
		||||
                    </ion-label>
 | 
			
		||||
                </ion-item>
 | 
			
		||||
            </ion-card>
 | 
			
		||||
 | 
			
		||||
            <ion-card>
 | 
			
		||||
                <ion-item button  (click)="openItem('Обратная связь',
 | 
			
		||||
                                                      'https://lms.vmeda.org/contacts_mess/vmeda_online')"
 | 
			
		||||
                          [attr.aria-label]="'Обратная связь'"
 | 
			
		||||
                          class="core-application-dpo">
 | 
			
		||||
                    <img src="assets/img/feedback.jpg" alt="Обратная связь"/>
 | 
			
		||||
                    <ion-label>
 | 
			
		||||
                        <p class="item-heading">Обратная связь</p>
 | 
			
		||||
                    </ion-label>
 | 
			
		||||
                </ion-item>
 | 
			
		||||
            </ion-card>
 | 
			
		||||
 | 
			
		||||
            <!-- Site home items: news, categories, courses, etc.
 | 
			
		||||
            <ng-container *ngIf="items.length > 0">
 | 
			
		||||
                <ng-container *ngFor="let item of items">
 | 
			
		||||
                    <ng-container [ngSwitch]="item">
 | 
			
		||||
@ -69,10 +105,26 @@
 | 
			
		||||
                        <ng-container *ngSwitchCase="'NEWS_ITEMS'">
 | 
			
		||||
                            <ng-template *ngTemplateOutlet="news" />
 | 
			
		||||
                        </ng-container>
 | 
			
		||||
                        <ng-container>
 | 
			
		||||
                            <ng-template *ngTemplateOutlet="setting"/>
 | 
			
		||||
                        </ng-container>
 | 
			
		||||
                    </ng-container>
 | 
			
		||||
                </ng-container>
 | 
			
		||||
            </ng-container>
 | 
			
		||||
            </ng-container>-->
 | 
			
		||||
        </ion-list>
 | 
			
		||||
        
 | 
			
		||||
         <ion-card>
 | 
			
		||||
            <ion-item button class="ion-text-wrap" (click)="openMaterialsDownload()">
 | 
			
		||||
                <ion-icon name="far-download" slot="start" aria-hidden="true" />
 | 
			
		||||
                <ion-label>
 | 
			
		||||
                    <p class="item-heading">Скачать материалы</p>
 | 
			
		||||
                </ion-label>
 | 
			
		||||
            </ion-item>
 | 
			
		||||
        </ion-card>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        <ng-template *ngTemplateOutlet="categories" />
 | 
			
		||||
 | 
			
		||||
        <core-block-side-blocks-button slot="fixed" *ngIf="hasBlocks" contextLevel="course" [instanceId]="siteHomeId" />
 | 
			
		||||
 | 
			
		||||
        <core-empty-box *ngIf="!hasContent" icon="fas-box-open" [message]="'core.course.nocontentavailable' | translate" />
 | 
			
		||||
@ -94,10 +146,12 @@
 | 
			
		||||
    <core-course-module class="core-sitehome-news" *ngIf="newsForumModule" [module]="newsForumModule" />
 | 
			
		||||
</ng-template>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<ng-template #categories>
 | 
			
		||||
    <ion-card>
 | 
			
		||||
        <ion-item button class="ion-text-wrap" (click)="openCourseCategories()">
 | 
			
		||||
            <ion-icon name="far-folder" slot="start" aria-hidden="true" />
 | 
			
		||||
            <ion-icon name="far-book-medical" slot="start" aria-hidden="true" />
 | 
			
		||||
            <ion-label>
 | 
			
		||||
                <p class="item-heading">{{ 'core.courses.categories' | translate}}</p>
 | 
			
		||||
            </ion-label>
 | 
			
		||||
 | 
			
		||||
@ -1,12 +1,36 @@
 | 
			
		||||
@use "theme/globals" as *;
 | 
			
		||||
 | 
			
		||||
ion-item img{
 | 
			
		||||
    max-width: 5em;
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
    border-radius: 10px;
 | 
			
		||||
    margin-block: 0.8em;
 | 
			
		||||
    color: var(--text-color);
 | 
			
		||||
    line-height: var(--size);
 | 
			
		||||
    --margin-end: 8px;
 | 
			
		||||
    @include margin-horizontal(null, var(--margin-end));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
core-loading{
 | 
			
		||||
    display: flex;
 | 
			
		||||
    flex-direction: column;
 | 
			
		||||
    justify-content: space-around;
 | 
			
		||||
    justify-items: self-end;
 | 
			
		||||
    height: 100%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.list-item-limited-width{
 | 
			
		||||
    margin: 0 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ion-item ion-icon {
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
    font-size: 3em;
 | 
			
		||||
    border-radius: var(--mdl-shape-borderRadius-xs);
 | 
			
		||||
    padding: 4px;
 | 
			
		||||
    color: var(--text-color);
 | 
			
		||||
    line-height: var(--size);
 | 
			
		||||
    --margin-end: 8px;
 | 
			
		||||
    --margin-inline: 0.32em;
 | 
			
		||||
    @include margin-horizontal(null, var(--margin-end));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -33,6 +33,8 @@ import { ContextLevel } from '@/core/constants';
 | 
			
		||||
import { CoreModals } from '@services/overlays/modals';
 | 
			
		||||
import { CoreAlerts } from '@services/overlays/alerts';
 | 
			
		||||
import { Translate } from '@singletons';
 | 
			
		||||
import {CoreMainMenuCustomItem} from "@features/mainmenu/services/mainmenu";
 | 
			
		||||
import {CoreViewer} from "@features/viewer/services/viewer";
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Page that displays site home index.
 | 
			
		||||
@ -222,6 +224,14 @@ export class CoreSiteHomeIndexPage implements OnInit, OnDestroy {
 | 
			
		||||
        CoreNavigator.navigateToSitePath('courses/categories');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    openMaterialsDownload(): void {
 | 
			
		||||
        CoreNavigator.navigateToSitePath('materials');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    openItem(label: string, url: string): void {
 | 
			
		||||
        CoreViewer.openIframeViewer(label, url);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @inheritdoc
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
@ -33,9 +33,9 @@ body:not(.core-iframe-fullscreen) .collapsible-header-page {
 | 
			
		||||
 | 
			
		||||
    &:not(.collapsible-header-page-is-collapsed) .collapsible-header-collapsed {
 | 
			
		||||
        --core-header-toolbar-border-width: 0;
 | 
			
		||||
        --core-header-buttons-color: var(--text-color);
 | 
			
		||||
        --core-header-buttons-color: var(--core-header-toolbar-color);
 | 
			
		||||
        ion-toolbar {
 | 
			
		||||
            --background: transparent;
 | 
			
		||||
            --background:  -webkit-linear-gradient(135deg,#039615 0%,#3452ff 100%);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        h1 {
 | 
			
		||||
 | 
			
		||||
@ -125,7 +125,7 @@ ion-header.header-md {
 | 
			
		||||
        --core-header-toolbar-border-width: 0;
 | 
			
		||||
        --core-header-toolbar-background: transparent;
 | 
			
		||||
        --core-header-shadow: none !important;
 | 
			
		||||
        --core-header-buttons-color: var(--text-color);
 | 
			
		||||
        --core-header-buttons-color: var(--core-header-toolbar-color);
 | 
			
		||||
        --core-header-buttons-background: var(--background);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -9,7 +9,7 @@
 | 
			
		||||
    "downlevelIteration": true,
 | 
			
		||||
    "experimentalDecorators": true,
 | 
			
		||||
    "strictNullChecks": true,
 | 
			
		||||
    "strictPropertyInitialization": true,
 | 
			
		||||
    "strictPropertyInitialization": false,
 | 
			
		||||
    "forceConsistentCasingInFileNames": true,
 | 
			
		||||
    "useDefineForClassFields": false,
 | 
			
		||||
    "module": "esnext",
 | 
			
		||||
 | 
			
		||||