oip-common 0.5.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +68 -68
- package/assets/demo/code.scss +17 -17
- package/assets/demo/demo.scss +2 -2
- package/assets/demo/flags/flags.scss +984 -984
- package/assets/i18n/extensions.en.json +1 -1
- package/assets/layout/_core.scss +30 -30
- package/assets/layout/_footer.scss +8 -8
- package/assets/layout/_main.scss +12 -12
- package/assets/layout/_menu.scss +148 -148
- package/assets/layout/_mixins.scss +15 -15
- package/assets/layout/_preloading.scss +49 -49
- package/assets/layout/_responsive.scss +108 -108
- package/assets/layout/_topbar.scss +168 -168
- package/assets/layout/_typography.scss +68 -68
- package/assets/layout/_utils.scss +25 -25
- package/assets/layout/layout.scss +13 -13
- package/assets/layout/variables/_common.scss +20 -20
- package/assets/layout/variables/_dark.scss +5 -5
- package/assets/layout/variables/_light.scss +5 -5
- package/assets/oip-common.scss +6 -6
- package/assets/tailwind.css +3 -3
- package/fesm2022/oip-common.mjs +1877 -669
- package/fesm2022/oip-common.mjs.map +1 -1
- package/index.d.ts +177 -18
- package/package.json +1 -1
- package/templates/http-client.ejs +34 -8
- package/assets/i18n/app-modules.en.json +0 -30
- package/assets/i18n/app-modules.ru.json +0 -30
- package/assets/i18n/applications.en.json +0 -46
- package/assets/i18n/applications.ru.json +0 -46
- package/assets/i18n/config.en.json +0 -18
- package/assets/i18n/config.ru.json +0 -18
- package/assets/i18n/db-migration.en.json +0 -19
- package/assets/i18n/db-migration.ru.json +0 -19
- package/assets/i18n/en.json +0 -138
- package/assets/i18n/iframe-module.en.json +0 -10
- package/assets/i18n/iframe-module.ru.json +0 -10
- package/assets/i18n/notfound.en.json +0 -8
- package/assets/i18n/notfound.ru.json +0 -8
- package/assets/i18n/ru.json +0 -282
package/fesm2022/oip-common.mjs
CHANGED
|
@@ -5,72 +5,72 @@ import { Subject, BehaviorSubject, of, tap, shareReplay, ReplaySubject, firstVal
|
|
|
5
5
|
import * as i2$2 from 'primeng/api';
|
|
6
6
|
import { MessageService, ConfirmationService, PrimeIcons, SharedModule } from 'primeng/api';
|
|
7
7
|
import { HttpErrorResponse, HttpClient as HttpClient$1, provideHttpClient, withInterceptors, withFetch } from '@angular/common/http';
|
|
8
|
-
import * as i2$
|
|
8
|
+
import * as i2$5 from '@ngx-translate/core';
|
|
9
9
|
import { TranslateService, TranslatePipe, TranslateModule, TranslateLoader } from '@ngx-translate/core';
|
|
10
|
-
import * as i1$
|
|
11
|
-
import {
|
|
10
|
+
import * as i1$2 from '@angular/router';
|
|
11
|
+
import { Router, ActivatedRoute, RouterModule, NavigationEnd, RouterLinkActive, RouterLink } from '@angular/router';
|
|
12
12
|
import { tap as tap$1, catchError, filter, distinctUntilChanged, switchMap, map, take } from 'rxjs/operators';
|
|
13
13
|
import { Title, DomSanitizer } from '@angular/platform-browser';
|
|
14
14
|
import { PrimeNG } from 'primeng/config';
|
|
15
|
-
import * as
|
|
15
|
+
import * as i2 from 'primeng/multiselect';
|
|
16
16
|
import { MultiSelectModule } from 'primeng/multiselect';
|
|
17
|
-
import * as
|
|
17
|
+
import * as i3 from 'primeng/tooltip';
|
|
18
18
|
import { TooltipModule, Tooltip } from 'primeng/tooltip';
|
|
19
|
-
import * as i1$
|
|
19
|
+
import * as i1$1 from 'primeng/button';
|
|
20
20
|
import { ButtonModule, Button } from 'primeng/button';
|
|
21
|
-
import * as i1
|
|
21
|
+
import * as i1 from '@angular/forms';
|
|
22
22
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
23
|
-
import * as
|
|
23
|
+
import * as i2$1 from '@angular/common';
|
|
24
24
|
import { isPlatformBrowser, CommonModule, NgComponentOutlet, NgClass, DatePipe, PathLocationStrategy, LocationStrategy } from '@angular/common';
|
|
25
|
-
import * as i3$
|
|
25
|
+
import * as i3$2 from 'primeng/styleclass';
|
|
26
26
|
import { StyleClassModule } from 'primeng/styleclass';
|
|
27
27
|
import { updatePreset, updateSurfacePalette, $t, definePreset } from '@primeng/themes';
|
|
28
28
|
import Aura from '@primeng/themes/aura';
|
|
29
29
|
import Lara from '@primeng/themes/lara';
|
|
30
30
|
import Nora from '@primeng/themes/nora';
|
|
31
|
-
import * as
|
|
31
|
+
import * as i4 from 'primeng/selectbutton';
|
|
32
32
|
import { SelectButtonModule } from 'primeng/selectbutton';
|
|
33
33
|
import { Tabs, TabList, Tab } from 'primeng/tabs';
|
|
34
|
-
import * as
|
|
34
|
+
import * as i3$3 from 'primeng/avatar';
|
|
35
35
|
import { AvatarModule } from 'primeng/avatar';
|
|
36
36
|
import { ConfirmDialog } from 'primeng/confirmdialog';
|
|
37
|
-
import * as
|
|
37
|
+
import * as i2$3 from 'primeng/badge';
|
|
38
38
|
import { BadgeModule } from 'primeng/badge';
|
|
39
|
-
import * as
|
|
39
|
+
import * as i4$1 from 'primeng/paginator';
|
|
40
40
|
import { PaginatorModule } from 'primeng/paginator';
|
|
41
|
-
import * as
|
|
41
|
+
import * as i8 from 'primeng/popover';
|
|
42
42
|
import { Popover, PopoverModule } from 'primeng/popover';
|
|
43
|
-
import * as
|
|
43
|
+
import * as i5 from 'primeng/progressspinner';
|
|
44
44
|
import { ProgressSpinnerModule } from 'primeng/progressspinner';
|
|
45
|
-
import * as
|
|
45
|
+
import * as i10 from 'primeng/tag';
|
|
46
46
|
import { Tag, TagModule } from 'primeng/tag';
|
|
47
47
|
import * as signalR from '@microsoft/signalr';
|
|
48
|
-
import * as i3$
|
|
48
|
+
import * as i3$1 from 'primeng/menu';
|
|
49
49
|
import { MenuModule } from 'primeng/menu';
|
|
50
|
-
import * as i1$
|
|
50
|
+
import * as i1$3 from 'primeng/contextmenu';
|
|
51
51
|
import { ContextMenuModule, ContextMenu } from 'primeng/contextmenu';
|
|
52
|
-
import * as i3$
|
|
52
|
+
import * as i3$4 from 'primeng/dialog';
|
|
53
53
|
import { DialogModule } from 'primeng/dialog';
|
|
54
|
-
import * as i4$
|
|
54
|
+
import * as i4$2 from 'primeng/inputtext';
|
|
55
55
|
import { InputTextModule, InputText } from 'primeng/inputtext';
|
|
56
|
-
import * as
|
|
56
|
+
import * as i2$4 from 'primeng/ripple';
|
|
57
57
|
import { RippleModule } from 'primeng/ripple';
|
|
58
|
-
import * as i5 from 'primeng/select';
|
|
58
|
+
import * as i5$1 from 'primeng/select';
|
|
59
59
|
import { SelectModule, Select } from 'primeng/select';
|
|
60
|
-
import * as
|
|
60
|
+
import * as i2$6 from 'primeng/fileupload';
|
|
61
61
|
import { FileUploadModule } from 'primeng/fileupload';
|
|
62
62
|
import { ImageModule } from 'primeng/image';
|
|
63
|
-
import * as i1$
|
|
63
|
+
import * as i1$4 from 'primeng/table';
|
|
64
64
|
import { TableModule } from 'primeng/table';
|
|
65
|
-
import * as i2$
|
|
65
|
+
import * as i2$7 from 'primeng/toggleswitch';
|
|
66
66
|
import { ToggleSwitchModule } from 'primeng/toggleswitch';
|
|
67
67
|
import { TextareaModule, Textarea } from 'primeng/textarea';
|
|
68
|
-
import * as i5$
|
|
68
|
+
import * as i5$2 from 'primeng/toolbar';
|
|
69
69
|
import { ToolbarModule } from 'primeng/toolbar';
|
|
70
|
-
import * as
|
|
70
|
+
import * as i6 from 'primeng/card';
|
|
71
71
|
import { CardModule } from 'primeng/card';
|
|
72
72
|
import { DividerModule } from 'primeng/divider';
|
|
73
|
-
import * as
|
|
73
|
+
import * as i7 from 'primeng/panel';
|
|
74
74
|
import { PanelModule } from 'primeng/panel';
|
|
75
75
|
import { loadRemoteModule } from '@angular-architects/module-federation';
|
|
76
76
|
import { primitive } from '@primeng/themes/aura/base';
|
|
@@ -110,10 +110,10 @@ class TopBarService {
|
|
|
110
110
|
const result = activeTopBarItem === undefined ? id === 'content' : activeTopBarItem.id == id;
|
|
111
111
|
return result;
|
|
112
112
|
}
|
|
113
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
114
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
113
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TopBarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
114
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TopBarService, providedIn: 'root' }); }
|
|
115
115
|
}
|
|
116
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TopBarService, decorators: [{
|
|
117
117
|
type: Injectable,
|
|
118
118
|
args: [{
|
|
119
119
|
providedIn: 'root'
|
|
@@ -246,10 +246,10 @@ class MsgService {
|
|
|
246
246
|
life: life
|
|
247
247
|
});
|
|
248
248
|
}
|
|
249
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
250
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
249
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MsgService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
250
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MsgService, providedIn: 'root' }); }
|
|
251
251
|
}
|
|
252
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
252
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MsgService, decorators: [{
|
|
253
253
|
type: Injectable,
|
|
254
254
|
args: [{ providedIn: 'root' }]
|
|
255
255
|
}] });
|
|
@@ -271,10 +271,10 @@ class AppTitleService {
|
|
|
271
271
|
this.title.setTitle(newTitle);
|
|
272
272
|
this.titleSubject.next(newTitle);
|
|
273
273
|
}
|
|
274
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
275
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
274
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AppTitleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
275
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AppTitleService, providedIn: 'root' }); }
|
|
276
276
|
}
|
|
277
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
277
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AppTitleService, decorators: [{
|
|
278
278
|
type: Injectable,
|
|
279
279
|
args: [{ providedIn: 'root' }]
|
|
280
280
|
}] });
|
|
@@ -530,18 +530,397 @@ class LayoutService {
|
|
|
530
530
|
reset() {
|
|
531
531
|
this.resetSource.next(true);
|
|
532
532
|
}
|
|
533
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
534
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
533
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
534
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LayoutService, providedIn: 'root' }); }
|
|
535
535
|
}
|
|
536
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
536
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LayoutService, decorators: [{
|
|
537
537
|
type: Injectable,
|
|
538
538
|
args: [{ providedIn: 'root' }]
|
|
539
539
|
}], ctorParameters: () => [] });
|
|
540
540
|
|
|
541
|
+
var msgService$1 = {
|
|
542
|
+
success: "Success",
|
|
543
|
+
info: "Info",
|
|
544
|
+
warn: "Warn",
|
|
545
|
+
error: "Error",
|
|
546
|
+
secondary: "Secondary"
|
|
547
|
+
};
|
|
548
|
+
var configComponent$1 = {
|
|
549
|
+
profile: "Profile",
|
|
550
|
+
photo: "Photo",
|
|
551
|
+
usePhoto256x256Pixel: "Use a 256x256 pixel photo",
|
|
552
|
+
localization: "Language",
|
|
553
|
+
selectLanguage: "Select language"
|
|
554
|
+
};
|
|
555
|
+
var menuComponent$1 = {
|
|
556
|
+
all: "All",
|
|
557
|
+
"new": "Add"
|
|
558
|
+
};
|
|
559
|
+
var menuItemEditDialogComponent$1 = {
|
|
560
|
+
header: "Edit menu item",
|
|
561
|
+
parentLabel: "Parent item",
|
|
562
|
+
label: "Label",
|
|
563
|
+
module: "Module",
|
|
564
|
+
selectModule: "Select module",
|
|
565
|
+
icon: "Icon",
|
|
566
|
+
cancel: "Cancel",
|
|
567
|
+
save: "Save",
|
|
568
|
+
security: "Read access"
|
|
569
|
+
};
|
|
570
|
+
var menuItemCreateDialogComponent$1 = {
|
|
571
|
+
header: "New menu item",
|
|
572
|
+
parentLabel: "Parent item",
|
|
573
|
+
label: "Label",
|
|
574
|
+
module: "Module",
|
|
575
|
+
selectModule: "Select module",
|
|
576
|
+
searchModule: "Search module",
|
|
577
|
+
icon: "Icon",
|
|
578
|
+
cancel: "Cancel",
|
|
579
|
+
save: "Save"
|
|
580
|
+
};
|
|
581
|
+
var unauthorized$1 = {
|
|
582
|
+
welcomeToOip: "Welcome to OIP!",
|
|
583
|
+
signInToContinue: "Sign in to continue",
|
|
584
|
+
signIn: "Sign In"
|
|
585
|
+
};
|
|
586
|
+
var menuItemComponent$1 = {
|
|
587
|
+
"new": "Add",
|
|
588
|
+
edit: "Edit",
|
|
589
|
+
"delete": "Delete",
|
|
590
|
+
deleteItemConfirmHeader: "Delete",
|
|
591
|
+
deleteItemConfirmMessage: "Are you sure you want to delete the item?",
|
|
592
|
+
deleteItemSuccessMessage: "Deleted successfully",
|
|
593
|
+
deleteItemConfirmRejectButtonPropsLabel: "Cancel",
|
|
594
|
+
deleteItemConfirmAcceptButtonPropsLabel: "Delete",
|
|
595
|
+
moveUp: "Move up",
|
|
596
|
+
moveDown: "Move down"
|
|
597
|
+
};
|
|
598
|
+
var topbar$1 = {
|
|
599
|
+
logout: "Logout",
|
|
600
|
+
logoutConfirmHeader: "Logout",
|
|
601
|
+
logoutConfirmMessage: "Are you sure you want to logout?",
|
|
602
|
+
logoutConfirmCancel: "Cancel",
|
|
603
|
+
logoutConfirmAccept: "Logout",
|
|
604
|
+
profile: "Profile",
|
|
605
|
+
applications: "Applications"
|
|
606
|
+
};
|
|
607
|
+
var primeng$1 = "";
|
|
608
|
+
var en$c = {
|
|
609
|
+
msgService: msgService$1,
|
|
610
|
+
configComponent: configComponent$1,
|
|
611
|
+
menuComponent: menuComponent$1,
|
|
612
|
+
menuItemEditDialogComponent: menuItemEditDialogComponent$1,
|
|
613
|
+
menuItemCreateDialogComponent: menuItemCreateDialogComponent$1,
|
|
614
|
+
unauthorized: unauthorized$1,
|
|
615
|
+
menuItemComponent: menuItemComponent$1,
|
|
616
|
+
topbar: topbar$1,
|
|
617
|
+
primeng: primeng$1
|
|
618
|
+
};
|
|
619
|
+
|
|
620
|
+
var msgService = {
|
|
621
|
+
success: "Успешно",
|
|
622
|
+
info: "Информация",
|
|
623
|
+
warn: "Внимание",
|
|
624
|
+
error: "Ошибка",
|
|
625
|
+
secondary: "Вспомогательный"
|
|
626
|
+
};
|
|
627
|
+
var configComponent = {
|
|
628
|
+
profile: "Профиль",
|
|
629
|
+
photo: "Фото",
|
|
630
|
+
usePhoto256x256Pixel: "Используйте фото 256х256 пикселей",
|
|
631
|
+
localization: "Язык",
|
|
632
|
+
selectLanguage: "Выберите язык"
|
|
633
|
+
};
|
|
634
|
+
var menuComponent = {
|
|
635
|
+
all: "Все",
|
|
636
|
+
"new": "Добавить"
|
|
637
|
+
};
|
|
638
|
+
var menuItemEditDialogComponent = {
|
|
639
|
+
header: "Редактировать элемент меню",
|
|
640
|
+
parentLabel: "Родительский узел",
|
|
641
|
+
label: "Имя",
|
|
642
|
+
module: "Модуль",
|
|
643
|
+
selectModule: "Выберите модуль",
|
|
644
|
+
icon: "Иконка",
|
|
645
|
+
cancel: "Отмена",
|
|
646
|
+
save: "Сохранить",
|
|
647
|
+
security: "Доступ на чтение"
|
|
648
|
+
};
|
|
649
|
+
var menuItemCreateDialogComponent = {
|
|
650
|
+
header: "Новый элемент меню",
|
|
651
|
+
parentLabel: "Родительский узел",
|
|
652
|
+
label: "Имя",
|
|
653
|
+
module: "Модуль",
|
|
654
|
+
selectModule: "Выберите модуль",
|
|
655
|
+
searchModule: "Поиск модуля",
|
|
656
|
+
icon: "Иконка",
|
|
657
|
+
cancel: "Отмена",
|
|
658
|
+
save: "Сохранить"
|
|
659
|
+
};
|
|
660
|
+
var unauthorized = {
|
|
661
|
+
welcomeToOip: "Добро пожаловать в OIP!",
|
|
662
|
+
signInToContinue: "Войдите чтобы продолжить",
|
|
663
|
+
signIn: "Войти"
|
|
664
|
+
};
|
|
665
|
+
var menuItemComponent = {
|
|
666
|
+
"new": "Добавить",
|
|
667
|
+
edit: "Редактировать",
|
|
668
|
+
"delete": "Удалить",
|
|
669
|
+
deleteItemConfirmHeader: "Удаление",
|
|
670
|
+
deleteItemConfirmMessage: "Вы уверены что хотите удалить элемент?",
|
|
671
|
+
deleteItemSuccessMessage: "Успешно удалено",
|
|
672
|
+
deleteItemConfirmRejectButtonPropsLabel: "Отмена",
|
|
673
|
+
deleteItemConfirmAcceptButtonPropsLabel: "Удалить",
|
|
674
|
+
moveUp: "Вверх",
|
|
675
|
+
moveDown: "Вниз"
|
|
676
|
+
};
|
|
677
|
+
var topbar = {
|
|
678
|
+
logout: "Выход",
|
|
679
|
+
logoutConfirmHeader: "Выход",
|
|
680
|
+
logoutConfirmMessage: "Вы уверены, что хотите выйти?",
|
|
681
|
+
logoutConfirmCancel: "Отмена",
|
|
682
|
+
logoutConfirmAccept: "Выйти",
|
|
683
|
+
profile: "Профиль",
|
|
684
|
+
applications: "Приложения"
|
|
685
|
+
};
|
|
686
|
+
var primeng = {
|
|
687
|
+
accept: "Да",
|
|
688
|
+
addRule: "Добавить правило",
|
|
689
|
+
am: "до полудня",
|
|
690
|
+
apply: "Принять",
|
|
691
|
+
cancel: "Отмена",
|
|
692
|
+
choose: "Выбрать",
|
|
693
|
+
chooseDate: "Выбрать дату",
|
|
694
|
+
chooseMonth: "Выбрать месяц",
|
|
695
|
+
chooseYear: "Выбрать год",
|
|
696
|
+
clear: "Очистить",
|
|
697
|
+
completed: "Завершено",
|
|
698
|
+
contains: "Содержит",
|
|
699
|
+
custom: "Пользовательский",
|
|
700
|
+
dateAfter: "Дата после",
|
|
701
|
+
dateBefore: "Дата до",
|
|
702
|
+
dateFormat: "dd.mm.yy",
|
|
703
|
+
dateIs: "Дата равна",
|
|
704
|
+
dateIsNot: "Дата не равна",
|
|
705
|
+
dayNames: [
|
|
706
|
+
"Воскресенье",
|
|
707
|
+
"Понедельник",
|
|
708
|
+
"Вторник",
|
|
709
|
+
"Среда",
|
|
710
|
+
"Четверг",
|
|
711
|
+
"Пятница",
|
|
712
|
+
"Суббота"
|
|
713
|
+
],
|
|
714
|
+
dayNamesMin: [
|
|
715
|
+
"Вс",
|
|
716
|
+
"Пн",
|
|
717
|
+
"Вт",
|
|
718
|
+
"Ср",
|
|
719
|
+
"Чт",
|
|
720
|
+
"Пт",
|
|
721
|
+
"Сб"
|
|
722
|
+
],
|
|
723
|
+
dayNamesShort: [
|
|
724
|
+
"Вск",
|
|
725
|
+
"Пнд",
|
|
726
|
+
"Втр",
|
|
727
|
+
"Срд",
|
|
728
|
+
"Чтв",
|
|
729
|
+
"Птн",
|
|
730
|
+
"Сбт"
|
|
731
|
+
],
|
|
732
|
+
emptyFilterMessage: "Результатов не найдено",
|
|
733
|
+
emptyMessage: "Нет доступных вариантов",
|
|
734
|
+
emptySearchMessage: "Результатов не найдено",
|
|
735
|
+
emptySelectionMessage: "Нет выбранного элемента",
|
|
736
|
+
endsWith: "Заканчивается",
|
|
737
|
+
equals: "Равно",
|
|
738
|
+
fileChosenMessage: "{0} файлов",
|
|
739
|
+
fileSizeTypes: [
|
|
740
|
+
"Б",
|
|
741
|
+
"Кб",
|
|
742
|
+
"Мб",
|
|
743
|
+
"Гб",
|
|
744
|
+
"Тб",
|
|
745
|
+
"Пб",
|
|
746
|
+
"Эб",
|
|
747
|
+
"Зб",
|
|
748
|
+
"Йб"
|
|
749
|
+
],
|
|
750
|
+
filter: "Фильтр",
|
|
751
|
+
firstDayOfWeek: 1,
|
|
752
|
+
gt: "Более чем",
|
|
753
|
+
gte: "Более чем или равно",
|
|
754
|
+
lt: "Меньше чем",
|
|
755
|
+
lte: "Меньше чем или равно",
|
|
756
|
+
matchAll: "Сопоставить все",
|
|
757
|
+
matchAny: "Совпадение с любым",
|
|
758
|
+
medium: "Нормальный",
|
|
759
|
+
monthNames: [
|
|
760
|
+
"Январь",
|
|
761
|
+
"Февраль",
|
|
762
|
+
"Март",
|
|
763
|
+
"Апрель",
|
|
764
|
+
"Май",
|
|
765
|
+
"Июнь",
|
|
766
|
+
"Июль",
|
|
767
|
+
"Август",
|
|
768
|
+
"Сентябрь",
|
|
769
|
+
"Октябрь",
|
|
770
|
+
"Ноябрь",
|
|
771
|
+
"Декабрь"
|
|
772
|
+
],
|
|
773
|
+
monthNamesShort: [
|
|
774
|
+
"Янв",
|
|
775
|
+
"Фев",
|
|
776
|
+
"Мар",
|
|
777
|
+
"Апр",
|
|
778
|
+
"Май",
|
|
779
|
+
"Июн",
|
|
780
|
+
"Июл",
|
|
781
|
+
"Авг",
|
|
782
|
+
"Сен",
|
|
783
|
+
"Окт",
|
|
784
|
+
"Ноя",
|
|
785
|
+
"Дек"
|
|
786
|
+
],
|
|
787
|
+
nextDecade: "Следующее десятилетие",
|
|
788
|
+
nextHour: "Следующий час",
|
|
789
|
+
nextMinute: "Следующая минута",
|
|
790
|
+
nextMonth: "Следующий месяц",
|
|
791
|
+
nextSecond: "Следующая секунда",
|
|
792
|
+
nextYear: "Следующий год",
|
|
793
|
+
noFileChosenMessage: "Файл не выбран",
|
|
794
|
+
noFilter: "Нет фильтра",
|
|
795
|
+
notContains: "Не содержит",
|
|
796
|
+
notEquals: "Не равно",
|
|
797
|
+
now: "Сейчас",
|
|
798
|
+
passwordPrompt: "Введите пароль",
|
|
799
|
+
pending: "В ожидании",
|
|
800
|
+
pm: "после полудня",
|
|
801
|
+
prevDecade: "Предыдущее десятилетие",
|
|
802
|
+
prevHour: "Предыдущий час",
|
|
803
|
+
prevMinute: "Предыдущая минута",
|
|
804
|
+
prevMonth: "Предыдущий месяц",
|
|
805
|
+
prevSecond: "Предыдущая секунда",
|
|
806
|
+
prevYear: "Предыдущий год",
|
|
807
|
+
reject: "Нет",
|
|
808
|
+
removeRule: "Удалить правило",
|
|
809
|
+
searchMessage: "{0} результатов доступно",
|
|
810
|
+
selectionMessage: "{0} элементов выбрано",
|
|
811
|
+
showMonthAfterYear: false,
|
|
812
|
+
startsWith: "Начинается с",
|
|
813
|
+
strong: "Хороший",
|
|
814
|
+
today: "Сегодня",
|
|
815
|
+
upload: "Загрузить",
|
|
816
|
+
weak: "Простой",
|
|
817
|
+
weekHeader: "Нед.",
|
|
818
|
+
aria: {
|
|
819
|
+
cancelEdit: "Отменить правку",
|
|
820
|
+
close: "Закрыть",
|
|
821
|
+
collapseLabel: "Свернуть",
|
|
822
|
+
collapseRow: "Свернуть строку",
|
|
823
|
+
editRow: "Редактировать строку",
|
|
824
|
+
expandLabel: "Развернуть",
|
|
825
|
+
expandRow: "Развернуть строку",
|
|
826
|
+
falseLabel: "Неверно",
|
|
827
|
+
filterConstraint: "Ограничение фильтра",
|
|
828
|
+
filterOperator: "Оператор фильтра",
|
|
829
|
+
firstPageLabel: "Первая страница",
|
|
830
|
+
gridView: "В виде сетки",
|
|
831
|
+
hideFilterMenu: "Скрыть меню фильтра",
|
|
832
|
+
jumpToPageDropdownLabel: "Перейти к раскрывающемуся списку страниц",
|
|
833
|
+
jumpToPageInputLabel: "Перейти к вводу страницы",
|
|
834
|
+
lastPageLabel: "Последняя страница",
|
|
835
|
+
listLabel: "Список опций",
|
|
836
|
+
listView: "В виде списка",
|
|
837
|
+
moveAllToSource: "Переместить всё в источник",
|
|
838
|
+
moveAllToTarget: "Переместить всё в приёмник",
|
|
839
|
+
moveBottom: "Переместить в конец",
|
|
840
|
+
moveDown: "Переместить вниз",
|
|
841
|
+
moveTop: "Переместить в начало",
|
|
842
|
+
moveToSource: "Переместить в источник",
|
|
843
|
+
moveToTarget: "Переместить в приёмник",
|
|
844
|
+
moveUp: "Переместить вверх",
|
|
845
|
+
navigation: "Навигация",
|
|
846
|
+
next: "Следующий",
|
|
847
|
+
nextPageLabel: "Следующая страница",
|
|
848
|
+
nullLabel: "Не выбран",
|
|
849
|
+
otpLabel: "Введите символ одноразового пароля {0}",
|
|
850
|
+
pageLabel: "{page}",
|
|
851
|
+
passwordHide: "Скрыть пароль",
|
|
852
|
+
passwordShow: "Показать пароль",
|
|
853
|
+
previous: "Предыдущий",
|
|
854
|
+
prevPageLabel: "Предыдущая страница",
|
|
855
|
+
removeLabel: "Удалить",
|
|
856
|
+
rotateLeft: "Повернуть влево",
|
|
857
|
+
rotateRight: "Повернуть вправо",
|
|
858
|
+
rowsPerPageLabel: "Строк на странице",
|
|
859
|
+
saveEdit: "Сохранить правку",
|
|
860
|
+
scrollTop: "Прокрутить в начало",
|
|
861
|
+
selectAll: "Выбрать все строки",
|
|
862
|
+
selectLabel: "Выбрать",
|
|
863
|
+
selectRow: "Выбрать строку",
|
|
864
|
+
showFilterMenu: "Показать меню фильтра",
|
|
865
|
+
slide: "Слайд",
|
|
866
|
+
slideNumber: "{slideNumber}",
|
|
867
|
+
star: "1 звезда",
|
|
868
|
+
stars: "{star} звёзд",
|
|
869
|
+
trueLabel: "Верно",
|
|
870
|
+
unselectAll: "Отменить выбор всех строк",
|
|
871
|
+
unselectLabel: "Отменить выбор",
|
|
872
|
+
unselectRow: "Отменить выбор строки",
|
|
873
|
+
zoomImage: "Увеличить изображение",
|
|
874
|
+
zoomIn: "Увеличить",
|
|
875
|
+
zoomOut: "Уменьшить"
|
|
876
|
+
}
|
|
877
|
+
};
|
|
878
|
+
var ru$c = {
|
|
879
|
+
msgService: msgService,
|
|
880
|
+
configComponent: configComponent,
|
|
881
|
+
menuComponent: menuComponent,
|
|
882
|
+
menuItemEditDialogComponent: menuItemEditDialogComponent,
|
|
883
|
+
menuItemCreateDialogComponent: menuItemCreateDialogComponent,
|
|
884
|
+
unauthorized: unauthorized,
|
|
885
|
+
menuItemComponent: menuItemComponent,
|
|
886
|
+
topbar: topbar,
|
|
887
|
+
primeng: primeng
|
|
888
|
+
};
|
|
889
|
+
|
|
890
|
+
/**
|
|
891
|
+
* Global dictionaries shared by all components. They are bundled with the library,
|
|
892
|
+
* so the application never requests `assets/i18n/{lang}.json`.
|
|
893
|
+
*/
|
|
894
|
+
const globalTranslations = { en: en$c, ru: ru$c };
|
|
541
895
|
/**
|
|
542
896
|
* Service for managing translation loading in the application
|
|
543
897
|
*/
|
|
544
898
|
class L10nService {
|
|
899
|
+
/**
|
|
900
|
+
* Translations bundled with components, registered at module load time.
|
|
901
|
+
*/
|
|
902
|
+
static { this.staticTranslations = new Map(); }
|
|
903
|
+
/**
|
|
904
|
+
* Registers translations bundled with a component instead of loading them over HTTP.
|
|
905
|
+
* Namespaces are taken from the root keys of the passed dictionaries.
|
|
906
|
+
* Components derived from <c>BaseModuleComponent</c> don't call it directly - it is enough
|
|
907
|
+
* to declare the static <c>translations</c> field.
|
|
908
|
+
* @param byLang - Translations grouped by language code
|
|
909
|
+
* @param namespace - Explicit namespace, needed when the dictionaries are still empty
|
|
910
|
+
*/
|
|
911
|
+
static registerTranslations(byLang, namespace) {
|
|
912
|
+
if (!byLang) {
|
|
913
|
+
return;
|
|
914
|
+
}
|
|
915
|
+
if (namespace) {
|
|
916
|
+
L10nService.staticTranslations.set(namespace, byLang);
|
|
917
|
+
}
|
|
918
|
+
for (const translations of Object.values(byLang)) {
|
|
919
|
+
for (const namespace of Object.keys(translations)) {
|
|
920
|
+
L10nService.staticTranslations.set(namespace, byLang);
|
|
921
|
+
}
|
|
922
|
+
}
|
|
923
|
+
}
|
|
545
924
|
constructor() {
|
|
546
925
|
this.loadedTranslations = new Set();
|
|
547
926
|
this.loadingTranslations = new Map();
|
|
@@ -549,6 +928,18 @@ class L10nService {
|
|
|
549
928
|
this.translateService = inject(TranslateService);
|
|
550
929
|
this.primeNg = inject(PrimeNG);
|
|
551
930
|
this.layoutService = inject(LayoutService);
|
|
931
|
+
// Global dictionaries are available before the first `use()` call, so TranslateHttpLoader is never asked for them.
|
|
932
|
+
L10nService.registerTranslations(globalTranslations);
|
|
933
|
+
Object.entries(globalTranslations).forEach(([lang, translations]) => this.mergeTranslation(lang, translations));
|
|
934
|
+
// Static translations are merged once per language, so they have to be re-merged on every language change.
|
|
935
|
+
this.translateService.onLangChange.subscribe((event) => {
|
|
936
|
+
L10nService.staticTranslations.forEach((byLang) => {
|
|
937
|
+
const translations = byLang[event.lang];
|
|
938
|
+
if (translations) {
|
|
939
|
+
this.mergeTranslation(event.lang, translations);
|
|
940
|
+
}
|
|
941
|
+
});
|
|
942
|
+
});
|
|
552
943
|
}
|
|
553
944
|
/**
|
|
554
945
|
* Loads translations for a specific component
|
|
@@ -573,8 +964,7 @@ class L10nService {
|
|
|
573
964
|
return loading;
|
|
574
965
|
}
|
|
575
966
|
const request = this.httpClient.get(url).pipe(tap((translations) => {
|
|
576
|
-
|
|
577
|
-
this.translateService.setTranslation(selectedLang, { ...current, ...translations }, true);
|
|
967
|
+
this.mergeTranslation(selectedLang, translations);
|
|
578
968
|
this.loadedTranslations.add(key);
|
|
579
969
|
this.loadingTranslations.delete(key);
|
|
580
970
|
}), shareReplay(1));
|
|
@@ -606,13 +996,21 @@ class L10nService {
|
|
|
606
996
|
if (this.loadedTranslations.has(key)) {
|
|
607
997
|
return of(null);
|
|
608
998
|
}
|
|
999
|
+
// Translations bundled with the component - no HTTP request needed.
|
|
1000
|
+
const staticTranslations = L10nService.staticTranslations.get(component);
|
|
1001
|
+
if (staticTranslations) {
|
|
1002
|
+
const translations = staticTranslations[lang];
|
|
1003
|
+
if (translations) {
|
|
1004
|
+
this.mergeTranslation(lang, translations);
|
|
1005
|
+
}
|
|
1006
|
+
return of(null);
|
|
1007
|
+
}
|
|
609
1008
|
const loading = this.loadingTranslations.get(key);
|
|
610
1009
|
if (loading) {
|
|
611
1010
|
return loading;
|
|
612
1011
|
}
|
|
613
1012
|
const request = this.httpClient.get(`./assets/i18n/${component}.${lang}.json`).pipe(tap((translations) => {
|
|
614
|
-
|
|
615
|
-
this.translateService.setTranslation(lang, { ...current, ...translations }, true);
|
|
1013
|
+
this.mergeTranslation(lang, translations);
|
|
616
1014
|
this.loadedTranslations.add(key);
|
|
617
1015
|
this.loadingTranslations.delete(key);
|
|
618
1016
|
}), shareReplay(1));
|
|
@@ -626,6 +1024,15 @@ class L10nService {
|
|
|
626
1024
|
});
|
|
627
1025
|
return request;
|
|
628
1026
|
}
|
|
1027
|
+
/**
|
|
1028
|
+
* Merges a translation dictionary into the dictionary of the given language
|
|
1029
|
+
* @param lang - Language code
|
|
1030
|
+
* @param translations - Translations to merge
|
|
1031
|
+
*/
|
|
1032
|
+
mergeTranslation(lang, translations) {
|
|
1033
|
+
const current = this.translateService.translations[lang] || {};
|
|
1034
|
+
this.translateService.setTranslation(lang, { ...current, ...translations }, true);
|
|
1035
|
+
}
|
|
629
1036
|
/**
|
|
630
1037
|
* Changes the lang currently used
|
|
631
1038
|
*/
|
|
@@ -648,13 +1055,13 @@ class L10nService {
|
|
|
648
1055
|
instant(key, interpolateParams) {
|
|
649
1056
|
return this.translateService.instant(key, interpolateParams);
|
|
650
1057
|
}
|
|
651
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
652
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
1058
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: L10nService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1059
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: L10nService, providedIn: 'root' }); }
|
|
653
1060
|
}
|
|
654
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1061
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: L10nService, decorators: [{
|
|
655
1062
|
type: Injectable,
|
|
656
1063
|
args: [{ providedIn: 'root' }]
|
|
657
|
-
}] });
|
|
1064
|
+
}], ctorParameters: () => [] });
|
|
658
1065
|
|
|
659
1066
|
class SecurityService {
|
|
660
1067
|
}
|
|
@@ -815,10 +1222,10 @@ class BffSecurityService {
|
|
|
815
1222
|
const baseUrl = document.getElementsByTagName('base')[0].href;
|
|
816
1223
|
return baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`;
|
|
817
1224
|
}
|
|
818
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
819
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
1225
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: BffSecurityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1226
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: BffSecurityService }); }
|
|
820
1227
|
}
|
|
821
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1228
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: BffSecurityService, decorators: [{
|
|
822
1229
|
type: Injectable
|
|
823
1230
|
}] });
|
|
824
1231
|
|
|
@@ -837,15 +1244,22 @@ class HttpClient {
|
|
|
837
1244
|
constructor() {
|
|
838
1245
|
this.securityService = inject(SecurityService);
|
|
839
1246
|
this.layoutService = inject(LayoutService);
|
|
1247
|
+
this.router = inject(Router);
|
|
840
1248
|
this.baseUrl = "";
|
|
841
|
-
this.securityWorker = () =>
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
:
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
1249
|
+
this.securityWorker = () => {
|
|
1250
|
+
const moduleInstanceId = this.getCurrentModuleInstanceId();
|
|
1251
|
+
return {
|
|
1252
|
+
headers: {
|
|
1253
|
+
"Accept-language": this.layoutService.language()
|
|
1254
|
+
? this.layoutService.language()
|
|
1255
|
+
: "en",
|
|
1256
|
+
"X-Timezone": this.layoutService.timeZone(),
|
|
1257
|
+
...(moduleInstanceId != null
|
|
1258
|
+
? { "X-Module-Instance-Id": String(moduleInstanceId) }
|
|
1259
|
+
: {}),
|
|
1260
|
+
},
|
|
1261
|
+
};
|
|
1262
|
+
};
|
|
849
1263
|
this.abortControllers = new Map();
|
|
850
1264
|
this.customFetch = (...fetchParams) => fetch(...fetchParams);
|
|
851
1265
|
this.baseApiParams = {
|
|
@@ -950,12 +1364,29 @@ class HttpClient {
|
|
|
950
1364
|
if (cancelToken) {
|
|
951
1365
|
this.abortControllers.delete(cancelToken);
|
|
952
1366
|
}
|
|
953
|
-
if (!response.ok)
|
|
1367
|
+
if (!response.ok) {
|
|
1368
|
+
this.authorizeOnUnauthorized(response, path);
|
|
954
1369
|
throw data;
|
|
1370
|
+
}
|
|
955
1371
|
return data.data;
|
|
956
1372
|
});
|
|
957
1373
|
};
|
|
958
1374
|
}
|
|
1375
|
+
/**
|
|
1376
|
+
* Reads the module instance id of the deepest activated route.
|
|
1377
|
+
* The backend uses it to check module instance rights on endpoints that do not carry the id in their contract.
|
|
1378
|
+
*/
|
|
1379
|
+
getCurrentModuleInstanceId() {
|
|
1380
|
+
// May run before the first navigation completes, when route snapshots are not available yet.
|
|
1381
|
+
let route = this.router.routerState?.root;
|
|
1382
|
+
let id = null;
|
|
1383
|
+
while (route) {
|
|
1384
|
+
id = route.snapshot?.paramMap?.get("id") ?? id;
|
|
1385
|
+
route = route.firstChild;
|
|
1386
|
+
}
|
|
1387
|
+
const parsed = id != null ? Number(id) : Number.NaN;
|
|
1388
|
+
return Number.isFinite(parsed) ? parsed : undefined;
|
|
1389
|
+
}
|
|
959
1390
|
encodeQueryParam(key, value) {
|
|
960
1391
|
const encodedKey = encodeURIComponent(key);
|
|
961
1392
|
return `${encodedKey}=${encodeURIComponent(typeof value === "number" ? value : `${value}`)}`;
|
|
@@ -992,6 +1423,13 @@ class HttpClient {
|
|
|
992
1423
|
},
|
|
993
1424
|
};
|
|
994
1425
|
}
|
|
1426
|
+
authorizeOnUnauthorized(response, path) {
|
|
1427
|
+
if (response.status !== 401 ||
|
|
1428
|
+
path.includes("/api/security/create-auth-session")) {
|
|
1429
|
+
return;
|
|
1430
|
+
}
|
|
1431
|
+
this.securityService.authorize(`${window.location.pathname}${window.location.search}${window.location.hash}`);
|
|
1432
|
+
}
|
|
995
1433
|
async getCsrfRequestParams(method, path) {
|
|
996
1434
|
if (!method ||
|
|
997
1435
|
!["POST", "PUT", "PATCH", "DELETE"].includes(method.toUpperCase())) {
|
|
@@ -1006,14 +1444,35 @@ class HttpClient {
|
|
|
1006
1444
|
? { headers: { [csrfToken.headerName]: csrfToken.token } }
|
|
1007
1445
|
: {};
|
|
1008
1446
|
}
|
|
1009
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1010
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
1447
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: HttpClient, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1448
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: HttpClient, providedIn: "root" }); }
|
|
1011
1449
|
}
|
|
1012
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1450
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: HttpClient, decorators: [{
|
|
1013
1451
|
type: Injectable,
|
|
1014
1452
|
args: [{ providedIn: "root" }]
|
|
1015
1453
|
}] });
|
|
1016
1454
|
|
|
1455
|
+
var baseComponent$1 = {
|
|
1456
|
+
content: "Content",
|
|
1457
|
+
settings: "Settings",
|
|
1458
|
+
security: "Security",
|
|
1459
|
+
success: "Saved successfully"
|
|
1460
|
+
};
|
|
1461
|
+
var en$b = {
|
|
1462
|
+
baseComponent: baseComponent$1
|
|
1463
|
+
};
|
|
1464
|
+
|
|
1465
|
+
var baseComponent = {
|
|
1466
|
+
content: "Содержимое",
|
|
1467
|
+
settings: "Настройки",
|
|
1468
|
+
security: "Безопасность",
|
|
1469
|
+
success: "Сохранено"
|
|
1470
|
+
};
|
|
1471
|
+
var ru$b = {
|
|
1472
|
+
baseComponent: baseComponent
|
|
1473
|
+
};
|
|
1474
|
+
|
|
1475
|
+
L10nService.registerTranslations({ en: en$b, ru: ru$b });
|
|
1017
1476
|
class BaseModuleComponent {
|
|
1018
1477
|
static { this.readRight = 'read'; }
|
|
1019
1478
|
static { this.editRight = 'edit'; }
|
|
@@ -1163,6 +1622,9 @@ class BaseModuleComponent {
|
|
|
1163
1622
|
{ id: 'settings', icon: 'pi-cog', caption: '' },
|
|
1164
1623
|
{ id: 'security', icon: 'pi-lock', caption: '' }
|
|
1165
1624
|
];
|
|
1625
|
+
// Must run before the route subscription below asks L10nService for the translations.
|
|
1626
|
+
L10nService.registerTranslations(this.constructor.translations);
|
|
1627
|
+
this.l10nService.get('baseComponent');
|
|
1166
1628
|
effect(() => {
|
|
1167
1629
|
const config = this.localSettings();
|
|
1168
1630
|
if (config) {
|
|
@@ -1171,6 +1633,8 @@ class BaseModuleComponent {
|
|
|
1171
1633
|
});
|
|
1172
1634
|
this.subscriptions.push(this.route.url.subscribe((url) => {
|
|
1173
1635
|
this.controller = url[0].path;
|
|
1636
|
+
// The route path is the translation namespace, register it before asking for translations.
|
|
1637
|
+
L10nService.registerTranslations(this.constructor.translations, this.controller);
|
|
1174
1638
|
this.l10n$ = this.l10nService.get(this.controller);
|
|
1175
1639
|
}));
|
|
1176
1640
|
this.subscriptions.push(this.route.paramMap.subscribe((params) => {
|
|
@@ -1203,10 +1667,10 @@ class BaseModuleComponent {
|
|
|
1203
1667
|
* @return {Promise<void>} A promise that resolves when the initialization is complete.
|
|
1204
1668
|
*/
|
|
1205
1669
|
async ngOnInit() {
|
|
1206
|
-
this.subscriptions.push(this.translateService.
|
|
1207
|
-
this.topBarItems
|
|
1208
|
-
|
|
1209
|
-
|
|
1670
|
+
this.subscriptions.push(this.translateService.stream('baseComponent').subscribe((value) => {
|
|
1671
|
+
this.topBarItems.forEach((item) => {
|
|
1672
|
+
item.caption = value[item.id];
|
|
1673
|
+
});
|
|
1210
1674
|
}));
|
|
1211
1675
|
this.topBarService.setTopBarItems(this.topBarItems);
|
|
1212
1676
|
this.topBarService.activeId = this.topBarItems[0].id;
|
|
@@ -1257,11 +1721,13 @@ class BaseModuleComponent {
|
|
|
1257
1721
|
* Called whenever the module instance changes, including the first load.
|
|
1258
1722
|
* Derived components can override this to refresh module-specific data.
|
|
1259
1723
|
*/
|
|
1260
|
-
async onModuleInstanceChange() {
|
|
1724
|
+
async onModuleInstanceChange() {
|
|
1725
|
+
}
|
|
1261
1726
|
/**
|
|
1262
1727
|
* Called whenever current user rights for the active module instance are recalculated.
|
|
1263
1728
|
*/
|
|
1264
|
-
onSecurityRightsChange() {
|
|
1729
|
+
onSecurityRightsChange() {
|
|
1730
|
+
}
|
|
1265
1731
|
/**
|
|
1266
1732
|
* Starts watching current token roles and maps them to module instance security settings.
|
|
1267
1733
|
*/
|
|
@@ -1269,20 +1735,31 @@ class BaseModuleComponent {
|
|
|
1269
1735
|
this.rightsSubscription?.unsubscribe();
|
|
1270
1736
|
this.resetRightsState();
|
|
1271
1737
|
if (!controller || id == null) {
|
|
1272
|
-
return;
|
|
1273
|
-
}
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1738
|
+
return Promise.resolve();
|
|
1739
|
+
}
|
|
1740
|
+
return new Promise((resolve) => {
|
|
1741
|
+
let settled = false;
|
|
1742
|
+
const settle = () => {
|
|
1743
|
+
if (!settled) {
|
|
1744
|
+
settled = true;
|
|
1745
|
+
resolve();
|
|
1746
|
+
}
|
|
1747
|
+
};
|
|
1748
|
+
this.rightsSubscription = this.securityService.payload
|
|
1749
|
+
.pipe(switchMap((payload) => from(this.getSecurity(controller, id)).pipe(map((securitySettings) => ({ payload, securitySettings })))), takeUntilDestroyed(this.destroyRef))
|
|
1750
|
+
.subscribe({
|
|
1751
|
+
next: ({ payload, securitySettings }) => {
|
|
1752
|
+
const roles = payload?.realm_access?.roles ?? [];
|
|
1753
|
+
this.updateRightsState(roles, securitySettings);
|
|
1754
|
+
settle();
|
|
1755
|
+
},
|
|
1756
|
+
error: (error) => {
|
|
1757
|
+
this.securityRightsLoaded = true;
|
|
1758
|
+
console.error('Не удалось загрузить права', error);
|
|
1759
|
+
this.onSecurityRightsChange();
|
|
1760
|
+
settle();
|
|
1761
|
+
}
|
|
1762
|
+
});
|
|
1286
1763
|
});
|
|
1287
1764
|
}
|
|
1288
1765
|
resetRightsState() {
|
|
@@ -1312,7 +1789,6 @@ class BaseModuleComponent {
|
|
|
1312
1789
|
return this.httpClient.request({
|
|
1313
1790
|
path: `/api/${controller}/get-security`,
|
|
1314
1791
|
method: 'GET',
|
|
1315
|
-
query: { id },
|
|
1316
1792
|
secure: true,
|
|
1317
1793
|
format: 'json'
|
|
1318
1794
|
});
|
|
@@ -1326,11 +1802,10 @@ class BaseModuleComponent {
|
|
|
1326
1802
|
type: ContentType.Json
|
|
1327
1803
|
});
|
|
1328
1804
|
}
|
|
1329
|
-
getModuleInstanceSettings(controller = this.controller
|
|
1805
|
+
getModuleInstanceSettings(controller = this.controller) {
|
|
1330
1806
|
return this.httpClient.request({
|
|
1331
1807
|
path: `/api/${controller}/get-module-instance-settings`,
|
|
1332
1808
|
method: 'GET',
|
|
1333
|
-
query: { id },
|
|
1334
1809
|
secure: true,
|
|
1335
1810
|
format: 'json'
|
|
1336
1811
|
});
|
|
@@ -1363,16 +1838,20 @@ class BaseModuleComponent {
|
|
|
1363
1838
|
}
|
|
1364
1839
|
async reloadModuleInstance() {
|
|
1365
1840
|
this.moduleInstanceReloadPromise = this.moduleInstanceReloadPromise.then(async () => {
|
|
1841
|
+
// Rights first: the backend rejects settings and data requests without the read right.
|
|
1842
|
+
await this.watchSecurityRights();
|
|
1843
|
+
if (!this.canRead) {
|
|
1844
|
+
return;
|
|
1845
|
+
}
|
|
1366
1846
|
await this.getSettings();
|
|
1367
|
-
this.watchSecurityRights();
|
|
1368
1847
|
await this.onModuleInstanceChange();
|
|
1369
1848
|
});
|
|
1370
1849
|
await this.moduleInstanceReloadPromise;
|
|
1371
1850
|
}
|
|
1372
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1373
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
1851
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: BaseModuleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1852
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: BaseModuleComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '', isInline: true }); }
|
|
1374
1853
|
}
|
|
1375
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1854
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: BaseModuleComponent, decorators: [{
|
|
1376
1855
|
type: Component,
|
|
1377
1856
|
args: [{ standalone: true, template: '' }]
|
|
1378
1857
|
}], ctorParameters: () => [] });
|
|
@@ -1417,15 +1896,36 @@ class SecurityApi extends HttpClient {
|
|
|
1417
1896
|
...params,
|
|
1418
1897
|
});
|
|
1419
1898
|
}
|
|
1420
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1421
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
1899
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SecurityApi, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1900
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SecurityApi }); }
|
|
1422
1901
|
}
|
|
1423
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1902
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SecurityApi, decorators: [{
|
|
1424
1903
|
type: Injectable
|
|
1425
1904
|
}] });
|
|
1426
1905
|
|
|
1906
|
+
var securityComponent$1 = {
|
|
1907
|
+
security: "Security",
|
|
1908
|
+
save: "Save",
|
|
1909
|
+
savedSecurity: "Security settings saved",
|
|
1910
|
+
selectRoles: "Select roles"
|
|
1911
|
+
};
|
|
1912
|
+
var en$a = {
|
|
1913
|
+
securityComponent: securityComponent$1
|
|
1914
|
+
};
|
|
1915
|
+
|
|
1916
|
+
var securityComponent = {
|
|
1917
|
+
security: "Безопасность",
|
|
1918
|
+
save: "Сохранить",
|
|
1919
|
+
savedSecurity: "Настройки сохранены",
|
|
1920
|
+
selectRoles: "Выберите роли"
|
|
1921
|
+
};
|
|
1922
|
+
var ru$a = {
|
|
1923
|
+
securityComponent: securityComponent
|
|
1924
|
+
};
|
|
1925
|
+
|
|
1926
|
+
L10nService.registerTranslations({ en: en$a, ru: ru$a });
|
|
1427
1927
|
class SecurityComponent {
|
|
1428
|
-
constructor() {
|
|
1928
|
+
constructor(l10nService) {
|
|
1429
1929
|
this.msgService = inject(MsgService);
|
|
1430
1930
|
this.translateService = inject(TranslateService);
|
|
1431
1931
|
this.httpClient = inject(HttpClient);
|
|
@@ -1433,6 +1933,7 @@ class SecurityComponent {
|
|
|
1433
1933
|
this.securityLoadToken = 0;
|
|
1434
1934
|
this.securityData = [];
|
|
1435
1935
|
this.roles = [];
|
|
1936
|
+
l10nService.get('securityComponent');
|
|
1436
1937
|
}
|
|
1437
1938
|
ngOnDestroy() {
|
|
1438
1939
|
// on destroy
|
|
@@ -1478,7 +1979,7 @@ class SecurityComponent {
|
|
|
1478
1979
|
return;
|
|
1479
1980
|
}
|
|
1480
1981
|
try {
|
|
1481
|
-
const result = await this.getSecurity(controller
|
|
1982
|
+
const result = await this.getSecurity(controller);
|
|
1482
1983
|
if (loadToken === this.securityLoadToken) {
|
|
1483
1984
|
this.securityData = result;
|
|
1484
1985
|
}
|
|
@@ -1489,11 +1990,10 @@ class SecurityComponent {
|
|
|
1489
1990
|
}
|
|
1490
1991
|
}
|
|
1491
1992
|
}
|
|
1492
|
-
getSecurity(controller
|
|
1993
|
+
getSecurity(controller) {
|
|
1493
1994
|
return this.httpClient.request({
|
|
1494
1995
|
path: `/api/${controller}/get-security`,
|
|
1495
1996
|
method: 'GET',
|
|
1496
|
-
query: { id },
|
|
1497
1997
|
secure: true,
|
|
1498
1998
|
format: 'json'
|
|
1499
1999
|
});
|
|
@@ -1507,8 +2007,8 @@ class SecurityComponent {
|
|
|
1507
2007
|
type: ContentType.Json
|
|
1508
2008
|
});
|
|
1509
2009
|
}
|
|
1510
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1511
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
2010
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SecurityComponent, deps: [{ token: L10nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2011
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SecurityComponent, isStandalone: true, selector: "security", inputs: { id: "id", controller: "controller" }, usesOnChanges: true, ngImport: i0, template: `
|
|
1512
2012
|
<div class="flex flex-col md:flex-row gap-8">
|
|
1513
2013
|
<div class="md:w-1/2">
|
|
1514
2014
|
<div class="card flex flex-col gap-4">
|
|
@@ -1540,9 +2040,9 @@ class SecurityComponent {
|
|
|
1540
2040
|
</div>
|
|
1541
2041
|
</div>
|
|
1542
2042
|
</div>
|
|
1543
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type:
|
|
2043
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i2.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "styleClass", "panelStyle", "panelStyleClass", "inputId", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "dataKey", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autofocus", "placeholder", "options", "filterValue", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus", "highlightOnSelect", "size", "variant", "fluid", "appendTo"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$1.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
1544
2044
|
}
|
|
1545
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2045
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SecurityComponent, decorators: [{
|
|
1546
2046
|
type: Component,
|
|
1547
2047
|
args: [{
|
|
1548
2048
|
selector: 'security',
|
|
@@ -1582,7 +2082,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
|
|
|
1582
2082
|
imports: [MultiSelectModule, TooltipModule, FormsModule, ButtonModule, TranslatePipe],
|
|
1583
2083
|
standalone: true
|
|
1584
2084
|
}]
|
|
1585
|
-
}], propDecorators: { id: [{
|
|
2085
|
+
}], ctorParameters: () => [{ type: L10nService }], propDecorators: { id: [{
|
|
1586
2086
|
type: Input
|
|
1587
2087
|
}], controller: [{
|
|
1588
2088
|
type: Input
|
|
@@ -1595,6 +2095,29 @@ const APP_THEME_PRESETS_MERGE_MODE = new InjectionToken('APP_THEME_PRESETS_MERGE
|
|
|
1595
2095
|
factory: () => 'mergeWithDefaults'
|
|
1596
2096
|
});
|
|
1597
2097
|
|
|
2098
|
+
var en$9 = {
|
|
2099
|
+
"app-configurator": {
|
|
2100
|
+
primary: "Primary",
|
|
2101
|
+
surface: "Surface",
|
|
2102
|
+
presets: "Presets",
|
|
2103
|
+
menuMode: "Menu Mode",
|
|
2104
|
+
menuModeStatic: "Static",
|
|
2105
|
+
menuModeOverlay: "Overlay"
|
|
2106
|
+
}
|
|
2107
|
+
};
|
|
2108
|
+
|
|
2109
|
+
var ru$9 = {
|
|
2110
|
+
"app-configurator": {
|
|
2111
|
+
primary: "Основной",
|
|
2112
|
+
surface: "Фон",
|
|
2113
|
+
presets: "Стиль",
|
|
2114
|
+
menuMode: "Режим меню",
|
|
2115
|
+
menuModeStatic: "Статичное",
|
|
2116
|
+
menuModeOverlay: "Всплывающее"
|
|
2117
|
+
}
|
|
2118
|
+
};
|
|
2119
|
+
|
|
2120
|
+
L10nService.registerTranslations({ en: en$9, ru: ru$9 });
|
|
1598
2121
|
const DEFAULT_THEME_PRESETS = [
|
|
1599
2122
|
{ id: 'Aura', label: 'Aura', preset: Aura },
|
|
1600
2123
|
{ id: 'Lara', label: 'Lara', preset: Lara },
|
|
@@ -1619,7 +2142,7 @@ const PRIMARY_COLORS = [
|
|
|
1619
2142
|
'rose'
|
|
1620
2143
|
];
|
|
1621
2144
|
class AppConfiguratorComponent {
|
|
1622
|
-
constructor() {
|
|
2145
|
+
constructor(l10nService) {
|
|
1623
2146
|
this.router = inject(Router);
|
|
1624
2147
|
this.config = inject(PrimeNG);
|
|
1625
2148
|
this.layoutService = inject(LayoutService);
|
|
@@ -1634,8 +2157,8 @@ class AppConfiguratorComponent {
|
|
|
1634
2157
|
this.presets = this.themePresets.map((theme) => ({ label: theme.label ?? theme.id, value: theme.id }));
|
|
1635
2158
|
this.showMenuModeButton = signal(!this.router.url.includes('auth'), ...(ngDevMode ? [{ debugName: "showMenuModeButton" }] : []));
|
|
1636
2159
|
this.menuModeOptions = [
|
|
1637
|
-
{ label: '
|
|
1638
|
-
{ label: '
|
|
2160
|
+
{ label: 'app-configurator.menuModeStatic', value: 'static' },
|
|
2161
|
+
{ label: 'app-configurator.menuModeOverlay', value: 'overlay' }
|
|
1639
2162
|
];
|
|
1640
2163
|
this.surfaces = [
|
|
1641
2164
|
{
|
|
@@ -1789,6 +2312,7 @@ class AppConfiguratorComponent {
|
|
|
1789
2312
|
const activeThemePreset = this.getThemeById(this.layoutService.layoutConfig().preset);
|
|
1790
2313
|
return this.getSurfaceColorOptions(activeThemePreset);
|
|
1791
2314
|
}, ...(ngDevMode ? [{ debugName: "surfaceColors" }] : []));
|
|
2315
|
+
l10nService.get('app-configurator');
|
|
1792
2316
|
}
|
|
1793
2317
|
ngOnInit() {
|
|
1794
2318
|
if (isPlatformBrowser(this.platformId)) {
|
|
@@ -2025,8 +2549,8 @@ class AppConfiguratorComponent {
|
|
|
2025
2549
|
menuMode: event
|
|
2026
2550
|
}));
|
|
2027
2551
|
}
|
|
2028
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2029
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
2552
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AppConfiguratorComponent, deps: [{ token: L10nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2553
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AppConfiguratorComponent, isStandalone: true, selector: "app-configurator", host: { classAttribute: "hidden absolute top-[3.25rem] right-0 w-72 p-4 bg-surface-0 dark:bg-surface-900 border border-surface rounded-border origin-top shadow-[0px_3px_5px_rgba(0,0,0,0.02),0px_0px_2px_rgba(0,0,0,0.05),0px_1px_4px_rgba(0,0,0,0.08)]" }, ngImport: i0, template: `
|
|
2030
2554
|
<div class="flex flex-col gap-4">
|
|
2031
2555
|
<div>
|
|
2032
2556
|
<span class="text-sm text-muted-color font-semibold">{{ 'app-configurator.primary' | translate }}</span>
|
|
@@ -2091,13 +2615,17 @@ class AppConfiguratorComponent {
|
|
|
2091
2615
|
[allowEmpty]="false"
|
|
2092
2616
|
[ngModel]="menuMode()"
|
|
2093
2617
|
[options]="menuModeOptions"
|
|
2094
|
-
(ngModelChange)="onMenuModeChange($event)"
|
|
2618
|
+
(ngModelChange)="onMenuModeChange($event)">
|
|
2619
|
+
<ng-template pTemplate="item" let-item>
|
|
2620
|
+
{{ item.label | translate }}
|
|
2621
|
+
</ng-template>
|
|
2622
|
+
</p-selectButton>
|
|
2095
2623
|
</div>
|
|
2096
2624
|
}
|
|
2097
2625
|
</div>
|
|
2098
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type:
|
|
2626
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: SelectButtonModule }, { kind: "component", type: i4.SelectButton, selector: "p-selectButton, p-selectbutton, p-select-button", inputs: ["options", "optionLabel", "optionValue", "optionDisabled", "unselectable", "tabindex", "multiple", "allowEmpty", "styleClass", "ariaLabelledBy", "dataKey", "autofocus", "size", "fluid"], outputs: ["onOptionClick", "onChange"] }, { kind: "directive", type: i2$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
2099
2627
|
}
|
|
2100
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2628
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AppConfiguratorComponent, decorators: [{
|
|
2101
2629
|
type: Component,
|
|
2102
2630
|
args: [{
|
|
2103
2631
|
selector: 'app-configurator',
|
|
@@ -2168,7 +2696,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
|
|
|
2168
2696
|
[allowEmpty]="false"
|
|
2169
2697
|
[ngModel]="menuMode()"
|
|
2170
2698
|
[options]="menuModeOptions"
|
|
2171
|
-
(ngModelChange)="onMenuModeChange($event)"
|
|
2699
|
+
(ngModelChange)="onMenuModeChange($event)">
|
|
2700
|
+
<ng-template pTemplate="item" let-item>
|
|
2701
|
+
{{ item.label | translate }}
|
|
2702
|
+
</ng-template>
|
|
2703
|
+
</p-selectButton>
|
|
2172
2704
|
</div>
|
|
2173
2705
|
}
|
|
2174
2706
|
</div>
|
|
@@ -2177,7 +2709,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
|
|
|
2177
2709
|
class: 'hidden absolute top-[3.25rem] right-0 w-72 p-4 bg-surface-0 dark:bg-surface-900 border border-surface rounded-border origin-top shadow-[0px_3px_5px_rgba(0,0,0,0.02),0px_0px_2px_rgba(0,0,0,0.05),0px_1px_4px_rgba(0,0,0,0.08)]'
|
|
2178
2710
|
}
|
|
2179
2711
|
}]
|
|
2180
|
-
}] });
|
|
2712
|
+
}], ctorParameters: () => [{ type: L10nService }] });
|
|
2181
2713
|
|
|
2182
2714
|
/* eslint-disable */
|
|
2183
2715
|
/* tslint:disable */
|
|
@@ -2207,6 +2739,12 @@ class UserProfileApi extends HttpClient {
|
|
|
2207
2739
|
type: ContentType.FormData,
|
|
2208
2740
|
...params,
|
|
2209
2741
|
});
|
|
2742
|
+
this.deleteUserPhoto = (params = {}) => this.request({
|
|
2743
|
+
path: `/api/user-profile/delete-user-photo`,
|
|
2744
|
+
method: "DELETE",
|
|
2745
|
+
secure: true,
|
|
2746
|
+
...params,
|
|
2747
|
+
});
|
|
2210
2748
|
this.getSettings = (params = {}) => this.request({
|
|
2211
2749
|
path: `/api/user-profile/get-settings`,
|
|
2212
2750
|
method: "GET",
|
|
@@ -2223,10 +2761,10 @@ class UserProfileApi extends HttpClient {
|
|
|
2223
2761
|
...params,
|
|
2224
2762
|
});
|
|
2225
2763
|
}
|
|
2226
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2227
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
2764
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: UserProfileApi, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2765
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: UserProfileApi }); }
|
|
2228
2766
|
}
|
|
2229
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2767
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: UserProfileApi, decorators: [{
|
|
2230
2768
|
type: Injectable
|
|
2231
2769
|
}] });
|
|
2232
2770
|
|
|
@@ -2294,7 +2832,11 @@ class UserService {
|
|
|
2294
2832
|
this.createImageFromBlob(data);
|
|
2295
2833
|
this.photoLoaded = true;
|
|
2296
2834
|
}, (error) => {
|
|
2297
|
-
|
|
2835
|
+
// A 404 just means the user hasn't uploaded a photo yet (e.g. on first login) —
|
|
2836
|
+
// that's an expected state, not a failure, so fall back to initials silently.
|
|
2837
|
+
if (error?.status !== 404) {
|
|
2838
|
+
this.msgService.errorFromException(error, this.translateService.instant('profileComponent.failedToLoadPhoto'));
|
|
2839
|
+
}
|
|
2298
2840
|
this.photoLoaded = false;
|
|
2299
2841
|
});
|
|
2300
2842
|
}
|
|
@@ -2331,65 +2873,65 @@ class UserService {
|
|
|
2331
2873
|
getCurrentUserPhotoKey(user) {
|
|
2332
2874
|
return user?.sub || user?.userName || user?.preferred_username || user?.displayName || user?.name || null;
|
|
2333
2875
|
}
|
|
2334
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2335
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
2876
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: UserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2877
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: UserService }); }
|
|
2336
2878
|
}
|
|
2337
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2879
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: UserService, decorators: [{
|
|
2338
2880
|
type: Injectable
|
|
2339
2881
|
}], ctorParameters: () => [] });
|
|
2340
2882
|
|
|
2341
2883
|
class LogoComponent {
|
|
2342
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2343
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
2344
|
-
<svg
|
|
2345
|
-
viewBox="0.8516 1.7159 60.0074 64.7142"
|
|
2346
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
2347
|
-
[attr.height]="height + 'px'"
|
|
2348
|
-
[attr.width]="width + 'px'">
|
|
2349
|
-
<path
|
|
2350
|
-
class="primary-logo-color"
|
|
2351
|
-
d="M -130.45 -104.78 C -130.45 -105.9 -130.43 -107.01 -130.45 -108.13 C -130.49 -108.52 -130.28 -108.9 -129.92 -109.07 C -125.87 -111.4 -121.82 -113.74 -117.77 -116.08 C -115.7 -117.26 -113.63 -118.45 -111.58 -119.67 C -111.26 -119.89 -110.83 -119.89 -110.51 -119.67 C -101.66 -114.53 -92.787 -109.41 -83.915 -104.29 C -83.752 -104.2 -83.479 -104.16 -83.475 -103.94 C -83.472 -103.72 -83.766 -103.65 -83.947 -103.54 C -86.326 -102.16 -88.716 -100.79 -91.092 -99.39 C -91.377 -99.18 -91.761 -99.18 -92.046 -99.39 C -98.211 -102.98 -104.38 -106.55 -110.56 -110.12 C -110.85 -110.33 -111.23 -110.33 -111.52 -110.12 C -114.88 -108.16 -118.25 -106.22 -121.63 -104.28 C -122.01 -104.11 -122.24 -103.71 -122.2 -103.3 C -122.18 -101.11 -122.2 -98.922 -122.2 -96.736 C -122.19 -95.98 -122.21 -95.98 -122.84 -96.335 C -125.2 -97.7 -127.57 -99.07 -129.93 -100.42 C -130.27 -100.57 -130.49 -100.92 -130.46 -101.3 C -130.43 -102.46 -130.45 -103.62 -130.45 -104.78 Z"
|
|
2352
|
-
transform="matrix(1, 0, 0, 1, 131.35482788085938, 125.0257797241211)" />
|
|
2353
|
-
<path
|
|
2354
|
-
class="primary-logo-color"
|
|
2355
|
-
d="M -70.504 -100.94 L -70.504 -90.438 C -70.447 -89.98 -70.692 -89.537 -71.11 -89.342 C -78.942 -84.839 -86.769 -80.325 -94.592 -75.8 C -95.635 -75.2 -96.684 -74.612 -97.713 -73.988 C -98.17 -73.708 -98.255 -73.846 -98.255 -74.314 L -98.255 -82.785 C -98.268 -83.116 -98.07 -83.419 -97.762 -83.541 C -92.003 -86.86 -86.269 -90.236 -80.468 -93.47 C -79.181 -94.179 -78.667 -94.934 -78.731 -96.441 C -78.869 -99.76 -78.791 -103.09 -78.755 -106.42 C -78.694 -107 -79.02 -107.56 -79.56 -107.8 C -81.436 -108.83 -83.28 -109.93 -85.138 -110.99 C -85.734 -111.34 -85.734 -111.34 -85.113 -111.7 C -82.748 -113.07 -80.379 -114.43 -78.021 -115.82 C -77.707 -116.05 -77.283 -116.06 -76.957 -115.84 C -74.962 -114.66 -72.953 -113.5 -70.929 -112.37 C -70.62 -112.19 -70.456 -111.84 -70.521 -111.49 C -70.514 -107.99 -70.508 -104.48 -70.504 -100.94 Z"
|
|
2356
|
-
transform="matrix(1, 0, 0, 1, 131.35482788085938, 125.0257797241211)" />
|
|
2357
|
-
<path
|
|
2358
|
-
class="primary-logo-color"
|
|
2359
|
-
d="M -108.68 -85.743 L -108.68 -75.169 C -108.72 -74.754 -108.5 -74.358 -108.12 -74.179 C -104.77 -72.267 -101.44 -70.339 -98.117 -68.396 C -97.762 -68.141 -97.284 -68.141 -96.929 -68.396 C -95.028 -69.527 -93.096 -70.598 -91.195 -71.725 C -90.667 -72.041 -90.581 -71.892 -90.581 -71.371 C -90.596 -68.591 -90.596 -65.811 -90.581 -63.03 C -90.551 -62.7 -90.729 -62.386 -91.028 -62.243 C -93.083 -61.073 -95.13 -59.891 -97.17 -58.697 C -97.436 -58.537 -97.775 -58.569 -98.007 -58.775 C -102.74 -61.517 -107.47 -64.254 -112.22 -66.984 C -113.63 -67.796 -115.01 -68.615 -116.42 -69.406 C -116.77 -69.561 -116.97 -69.913 -116.94 -70.286 C -116.93 -80.555 -116.93 -90.823 -116.94 -101.09 C -116.94 -101.63 -116.86 -101.75 -116.35 -101.44 C -113.98 -100.05 -111.59 -98.667 -109.19 -97.303 C -108.84 -97.135 -108.62 -96.76 -108.66 -96.367 C -108.68 -92.833 -108.69 -89.291 -108.68 -85.743 Z"
|
|
2360
|
-
transform="matrix(1, 0, 0, 1, 131.35482788085938, 125.0257797241211)" />
|
|
2361
|
-
<path
|
|
2362
|
-
class="secondary-logo-color"
|
|
2363
|
-
d="M -122.18 -85.807 L -122.18 -82.129 C -122.18 -81.637 -122.34 -81.615 -122.72 -81.839 C -125.16 -83.257 -127.6 -84.667 -130.05 -86.069 C -130.35 -86.219 -130.53 -86.535 -130.5 -86.867 L -130.5 -94.09 C -130.5 -94.64 -130.34 -94.679 -129.89 -94.417 C -127.49 -92.998 -125.09 -91.607 -122.67 -90.243 C -122.35 -90.103 -122.15 -89.772 -122.18 -89.42 C -122.21 -88.214 -122.18 -87.012 -122.18 -85.807 Z M -82.688 -119.15 C -83.954 -118.41 -85.17 -117.7 -86.365 -117.02 C -87.748 -116.22 -89.138 -115.44 -90.514 -114.63 C -90.761 -114.45 -91.093 -114.45 -91.34 -114.63 C -93.432 -115.86 -95.535 -117.07 -97.649 -118.27 C -98.053 -118.5 -98.191 -118.63 -97.67 -118.93 C -95.216 -120.32 -92.776 -121.74 -90.337 -123.15 C -90.134 -123.33 -89.845 -123.36 -89.61 -123.23 L -82.918 -119.33 C -82.862 -119.28 -82.812 -119.24 -82.688 -119.15 Z M -85.365 -65.616 L -85.365 -72.062 L -85.365 -74.622 C -85.403 -74.928 -85.24 -75.223 -84.961 -75.353 C -82.886 -76.534 -80.83 -77.736 -78.77 -78.931 C -78.174 -79.286 -78.135 -79.257 -78.135 -78.576 L -78.135 -70.303 C -78.135 -69.991 -78.135 -69.711 -78.468 -69.52 C -80.656 -68.275 -82.833 -67.013 -85.014 -65.761 C -85.127 -65.704 -85.245 -65.655 -85.365 -65.616 Z"
|
|
2364
|
-
transform="matrix(1, 0, 0, 1, 131.35482788085938, 125.0257797241211)" />
|
|
2365
|
-
</svg>
|
|
2884
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LogoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2885
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: LogoComponent, isStandalone: true, selector: "logo", inputs: { width: "width", height: "height" }, ngImport: i0, template: `
|
|
2886
|
+
<svg
|
|
2887
|
+
viewBox="0.8516 1.7159 60.0074 64.7142"
|
|
2888
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
2889
|
+
[attr.height]="height + 'px'"
|
|
2890
|
+
[attr.width]="width + 'px'">
|
|
2891
|
+
<path
|
|
2892
|
+
class="primary-logo-color"
|
|
2893
|
+
d="M -130.45 -104.78 C -130.45 -105.9 -130.43 -107.01 -130.45 -108.13 C -130.49 -108.52 -130.28 -108.9 -129.92 -109.07 C -125.87 -111.4 -121.82 -113.74 -117.77 -116.08 C -115.7 -117.26 -113.63 -118.45 -111.58 -119.67 C -111.26 -119.89 -110.83 -119.89 -110.51 -119.67 C -101.66 -114.53 -92.787 -109.41 -83.915 -104.29 C -83.752 -104.2 -83.479 -104.16 -83.475 -103.94 C -83.472 -103.72 -83.766 -103.65 -83.947 -103.54 C -86.326 -102.16 -88.716 -100.79 -91.092 -99.39 C -91.377 -99.18 -91.761 -99.18 -92.046 -99.39 C -98.211 -102.98 -104.38 -106.55 -110.56 -110.12 C -110.85 -110.33 -111.23 -110.33 -111.52 -110.12 C -114.88 -108.16 -118.25 -106.22 -121.63 -104.28 C -122.01 -104.11 -122.24 -103.71 -122.2 -103.3 C -122.18 -101.11 -122.2 -98.922 -122.2 -96.736 C -122.19 -95.98 -122.21 -95.98 -122.84 -96.335 C -125.2 -97.7 -127.57 -99.07 -129.93 -100.42 C -130.27 -100.57 -130.49 -100.92 -130.46 -101.3 C -130.43 -102.46 -130.45 -103.62 -130.45 -104.78 Z"
|
|
2894
|
+
transform="matrix(1, 0, 0, 1, 131.35482788085938, 125.0257797241211)" />
|
|
2895
|
+
<path
|
|
2896
|
+
class="primary-logo-color"
|
|
2897
|
+
d="M -70.504 -100.94 L -70.504 -90.438 C -70.447 -89.98 -70.692 -89.537 -71.11 -89.342 C -78.942 -84.839 -86.769 -80.325 -94.592 -75.8 C -95.635 -75.2 -96.684 -74.612 -97.713 -73.988 C -98.17 -73.708 -98.255 -73.846 -98.255 -74.314 L -98.255 -82.785 C -98.268 -83.116 -98.07 -83.419 -97.762 -83.541 C -92.003 -86.86 -86.269 -90.236 -80.468 -93.47 C -79.181 -94.179 -78.667 -94.934 -78.731 -96.441 C -78.869 -99.76 -78.791 -103.09 -78.755 -106.42 C -78.694 -107 -79.02 -107.56 -79.56 -107.8 C -81.436 -108.83 -83.28 -109.93 -85.138 -110.99 C -85.734 -111.34 -85.734 -111.34 -85.113 -111.7 C -82.748 -113.07 -80.379 -114.43 -78.021 -115.82 C -77.707 -116.05 -77.283 -116.06 -76.957 -115.84 C -74.962 -114.66 -72.953 -113.5 -70.929 -112.37 C -70.62 -112.19 -70.456 -111.84 -70.521 -111.49 C -70.514 -107.99 -70.508 -104.48 -70.504 -100.94 Z"
|
|
2898
|
+
transform="matrix(1, 0, 0, 1, 131.35482788085938, 125.0257797241211)" />
|
|
2899
|
+
<path
|
|
2900
|
+
class="primary-logo-color"
|
|
2901
|
+
d="M -108.68 -85.743 L -108.68 -75.169 C -108.72 -74.754 -108.5 -74.358 -108.12 -74.179 C -104.77 -72.267 -101.44 -70.339 -98.117 -68.396 C -97.762 -68.141 -97.284 -68.141 -96.929 -68.396 C -95.028 -69.527 -93.096 -70.598 -91.195 -71.725 C -90.667 -72.041 -90.581 -71.892 -90.581 -71.371 C -90.596 -68.591 -90.596 -65.811 -90.581 -63.03 C -90.551 -62.7 -90.729 -62.386 -91.028 -62.243 C -93.083 -61.073 -95.13 -59.891 -97.17 -58.697 C -97.436 -58.537 -97.775 -58.569 -98.007 -58.775 C -102.74 -61.517 -107.47 -64.254 -112.22 -66.984 C -113.63 -67.796 -115.01 -68.615 -116.42 -69.406 C -116.77 -69.561 -116.97 -69.913 -116.94 -70.286 C -116.93 -80.555 -116.93 -90.823 -116.94 -101.09 C -116.94 -101.63 -116.86 -101.75 -116.35 -101.44 C -113.98 -100.05 -111.59 -98.667 -109.19 -97.303 C -108.84 -97.135 -108.62 -96.76 -108.66 -96.367 C -108.68 -92.833 -108.69 -89.291 -108.68 -85.743 Z"
|
|
2902
|
+
transform="matrix(1, 0, 0, 1, 131.35482788085938, 125.0257797241211)" />
|
|
2903
|
+
<path
|
|
2904
|
+
class="secondary-logo-color"
|
|
2905
|
+
d="M -122.18 -85.807 L -122.18 -82.129 C -122.18 -81.637 -122.34 -81.615 -122.72 -81.839 C -125.16 -83.257 -127.6 -84.667 -130.05 -86.069 C -130.35 -86.219 -130.53 -86.535 -130.5 -86.867 L -130.5 -94.09 C -130.5 -94.64 -130.34 -94.679 -129.89 -94.417 C -127.49 -92.998 -125.09 -91.607 -122.67 -90.243 C -122.35 -90.103 -122.15 -89.772 -122.18 -89.42 C -122.21 -88.214 -122.18 -87.012 -122.18 -85.807 Z M -82.688 -119.15 C -83.954 -118.41 -85.17 -117.7 -86.365 -117.02 C -87.748 -116.22 -89.138 -115.44 -90.514 -114.63 C -90.761 -114.45 -91.093 -114.45 -91.34 -114.63 C -93.432 -115.86 -95.535 -117.07 -97.649 -118.27 C -98.053 -118.5 -98.191 -118.63 -97.67 -118.93 C -95.216 -120.32 -92.776 -121.74 -90.337 -123.15 C -90.134 -123.33 -89.845 -123.36 -89.61 -123.23 L -82.918 -119.33 C -82.862 -119.28 -82.812 -119.24 -82.688 -119.15 Z M -85.365 -65.616 L -85.365 -72.062 L -85.365 -74.622 C -85.403 -74.928 -85.24 -75.223 -84.961 -75.353 C -82.886 -76.534 -80.83 -77.736 -78.77 -78.931 C -78.174 -79.286 -78.135 -79.257 -78.135 -78.576 L -78.135 -70.303 C -78.135 -69.991 -78.135 -69.711 -78.468 -69.52 C -80.656 -68.275 -82.833 -67.013 -85.014 -65.761 C -85.127 -65.704 -85.245 -65.655 -85.365 -65.616 Z"
|
|
2906
|
+
transform="matrix(1, 0, 0, 1, 131.35482788085938, 125.0257797241211)" />
|
|
2907
|
+
</svg>
|
|
2366
2908
|
`, isInline: true, styles: [".primary-logo-color{fill:var(--primary-color)}.secondary-logo-color{fill:var(--p-primary-600)}\n"] }); }
|
|
2367
2909
|
}
|
|
2368
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2910
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LogoComponent, decorators: [{
|
|
2369
2911
|
type: Component,
|
|
2370
|
-
args: [{ selector: 'logo', standalone: true, template: `
|
|
2371
|
-
<svg
|
|
2372
|
-
viewBox="0.8516 1.7159 60.0074 64.7142"
|
|
2373
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
2374
|
-
[attr.height]="height + 'px'"
|
|
2375
|
-
[attr.width]="width + 'px'">
|
|
2376
|
-
<path
|
|
2377
|
-
class="primary-logo-color"
|
|
2378
|
-
d="M -130.45 -104.78 C -130.45 -105.9 -130.43 -107.01 -130.45 -108.13 C -130.49 -108.52 -130.28 -108.9 -129.92 -109.07 C -125.87 -111.4 -121.82 -113.74 -117.77 -116.08 C -115.7 -117.26 -113.63 -118.45 -111.58 -119.67 C -111.26 -119.89 -110.83 -119.89 -110.51 -119.67 C -101.66 -114.53 -92.787 -109.41 -83.915 -104.29 C -83.752 -104.2 -83.479 -104.16 -83.475 -103.94 C -83.472 -103.72 -83.766 -103.65 -83.947 -103.54 C -86.326 -102.16 -88.716 -100.79 -91.092 -99.39 C -91.377 -99.18 -91.761 -99.18 -92.046 -99.39 C -98.211 -102.98 -104.38 -106.55 -110.56 -110.12 C -110.85 -110.33 -111.23 -110.33 -111.52 -110.12 C -114.88 -108.16 -118.25 -106.22 -121.63 -104.28 C -122.01 -104.11 -122.24 -103.71 -122.2 -103.3 C -122.18 -101.11 -122.2 -98.922 -122.2 -96.736 C -122.19 -95.98 -122.21 -95.98 -122.84 -96.335 C -125.2 -97.7 -127.57 -99.07 -129.93 -100.42 C -130.27 -100.57 -130.49 -100.92 -130.46 -101.3 C -130.43 -102.46 -130.45 -103.62 -130.45 -104.78 Z"
|
|
2379
|
-
transform="matrix(1, 0, 0, 1, 131.35482788085938, 125.0257797241211)" />
|
|
2380
|
-
<path
|
|
2381
|
-
class="primary-logo-color"
|
|
2382
|
-
d="M -70.504 -100.94 L -70.504 -90.438 C -70.447 -89.98 -70.692 -89.537 -71.11 -89.342 C -78.942 -84.839 -86.769 -80.325 -94.592 -75.8 C -95.635 -75.2 -96.684 -74.612 -97.713 -73.988 C -98.17 -73.708 -98.255 -73.846 -98.255 -74.314 L -98.255 -82.785 C -98.268 -83.116 -98.07 -83.419 -97.762 -83.541 C -92.003 -86.86 -86.269 -90.236 -80.468 -93.47 C -79.181 -94.179 -78.667 -94.934 -78.731 -96.441 C -78.869 -99.76 -78.791 -103.09 -78.755 -106.42 C -78.694 -107 -79.02 -107.56 -79.56 -107.8 C -81.436 -108.83 -83.28 -109.93 -85.138 -110.99 C -85.734 -111.34 -85.734 -111.34 -85.113 -111.7 C -82.748 -113.07 -80.379 -114.43 -78.021 -115.82 C -77.707 -116.05 -77.283 -116.06 -76.957 -115.84 C -74.962 -114.66 -72.953 -113.5 -70.929 -112.37 C -70.62 -112.19 -70.456 -111.84 -70.521 -111.49 C -70.514 -107.99 -70.508 -104.48 -70.504 -100.94 Z"
|
|
2383
|
-
transform="matrix(1, 0, 0, 1, 131.35482788085938, 125.0257797241211)" />
|
|
2384
|
-
<path
|
|
2385
|
-
class="primary-logo-color"
|
|
2386
|
-
d="M -108.68 -85.743 L -108.68 -75.169 C -108.72 -74.754 -108.5 -74.358 -108.12 -74.179 C -104.77 -72.267 -101.44 -70.339 -98.117 -68.396 C -97.762 -68.141 -97.284 -68.141 -96.929 -68.396 C -95.028 -69.527 -93.096 -70.598 -91.195 -71.725 C -90.667 -72.041 -90.581 -71.892 -90.581 -71.371 C -90.596 -68.591 -90.596 -65.811 -90.581 -63.03 C -90.551 -62.7 -90.729 -62.386 -91.028 -62.243 C -93.083 -61.073 -95.13 -59.891 -97.17 -58.697 C -97.436 -58.537 -97.775 -58.569 -98.007 -58.775 C -102.74 -61.517 -107.47 -64.254 -112.22 -66.984 C -113.63 -67.796 -115.01 -68.615 -116.42 -69.406 C -116.77 -69.561 -116.97 -69.913 -116.94 -70.286 C -116.93 -80.555 -116.93 -90.823 -116.94 -101.09 C -116.94 -101.63 -116.86 -101.75 -116.35 -101.44 C -113.98 -100.05 -111.59 -98.667 -109.19 -97.303 C -108.84 -97.135 -108.62 -96.76 -108.66 -96.367 C -108.68 -92.833 -108.69 -89.291 -108.68 -85.743 Z"
|
|
2387
|
-
transform="matrix(1, 0, 0, 1, 131.35482788085938, 125.0257797241211)" />
|
|
2388
|
-
<path
|
|
2389
|
-
class="secondary-logo-color"
|
|
2390
|
-
d="M -122.18 -85.807 L -122.18 -82.129 C -122.18 -81.637 -122.34 -81.615 -122.72 -81.839 C -125.16 -83.257 -127.6 -84.667 -130.05 -86.069 C -130.35 -86.219 -130.53 -86.535 -130.5 -86.867 L -130.5 -94.09 C -130.5 -94.64 -130.34 -94.679 -129.89 -94.417 C -127.49 -92.998 -125.09 -91.607 -122.67 -90.243 C -122.35 -90.103 -122.15 -89.772 -122.18 -89.42 C -122.21 -88.214 -122.18 -87.012 -122.18 -85.807 Z M -82.688 -119.15 C -83.954 -118.41 -85.17 -117.7 -86.365 -117.02 C -87.748 -116.22 -89.138 -115.44 -90.514 -114.63 C -90.761 -114.45 -91.093 -114.45 -91.34 -114.63 C -93.432 -115.86 -95.535 -117.07 -97.649 -118.27 C -98.053 -118.5 -98.191 -118.63 -97.67 -118.93 C -95.216 -120.32 -92.776 -121.74 -90.337 -123.15 C -90.134 -123.33 -89.845 -123.36 -89.61 -123.23 L -82.918 -119.33 C -82.862 -119.28 -82.812 -119.24 -82.688 -119.15 Z M -85.365 -65.616 L -85.365 -72.062 L -85.365 -74.622 C -85.403 -74.928 -85.24 -75.223 -84.961 -75.353 C -82.886 -76.534 -80.83 -77.736 -78.77 -78.931 C -78.174 -79.286 -78.135 -79.257 -78.135 -78.576 L -78.135 -70.303 C -78.135 -69.991 -78.135 -69.711 -78.468 -69.52 C -80.656 -68.275 -82.833 -67.013 -85.014 -65.761 C -85.127 -65.704 -85.245 -65.655 -85.365 -65.616 Z"
|
|
2391
|
-
transform="matrix(1, 0, 0, 1, 131.35482788085938, 125.0257797241211)" />
|
|
2392
|
-
</svg>
|
|
2912
|
+
args: [{ selector: 'logo', standalone: true, template: `
|
|
2913
|
+
<svg
|
|
2914
|
+
viewBox="0.8516 1.7159 60.0074 64.7142"
|
|
2915
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
2916
|
+
[attr.height]="height + 'px'"
|
|
2917
|
+
[attr.width]="width + 'px'">
|
|
2918
|
+
<path
|
|
2919
|
+
class="primary-logo-color"
|
|
2920
|
+
d="M -130.45 -104.78 C -130.45 -105.9 -130.43 -107.01 -130.45 -108.13 C -130.49 -108.52 -130.28 -108.9 -129.92 -109.07 C -125.87 -111.4 -121.82 -113.74 -117.77 -116.08 C -115.7 -117.26 -113.63 -118.45 -111.58 -119.67 C -111.26 -119.89 -110.83 -119.89 -110.51 -119.67 C -101.66 -114.53 -92.787 -109.41 -83.915 -104.29 C -83.752 -104.2 -83.479 -104.16 -83.475 -103.94 C -83.472 -103.72 -83.766 -103.65 -83.947 -103.54 C -86.326 -102.16 -88.716 -100.79 -91.092 -99.39 C -91.377 -99.18 -91.761 -99.18 -92.046 -99.39 C -98.211 -102.98 -104.38 -106.55 -110.56 -110.12 C -110.85 -110.33 -111.23 -110.33 -111.52 -110.12 C -114.88 -108.16 -118.25 -106.22 -121.63 -104.28 C -122.01 -104.11 -122.24 -103.71 -122.2 -103.3 C -122.18 -101.11 -122.2 -98.922 -122.2 -96.736 C -122.19 -95.98 -122.21 -95.98 -122.84 -96.335 C -125.2 -97.7 -127.57 -99.07 -129.93 -100.42 C -130.27 -100.57 -130.49 -100.92 -130.46 -101.3 C -130.43 -102.46 -130.45 -103.62 -130.45 -104.78 Z"
|
|
2921
|
+
transform="matrix(1, 0, 0, 1, 131.35482788085938, 125.0257797241211)" />
|
|
2922
|
+
<path
|
|
2923
|
+
class="primary-logo-color"
|
|
2924
|
+
d="M -70.504 -100.94 L -70.504 -90.438 C -70.447 -89.98 -70.692 -89.537 -71.11 -89.342 C -78.942 -84.839 -86.769 -80.325 -94.592 -75.8 C -95.635 -75.2 -96.684 -74.612 -97.713 -73.988 C -98.17 -73.708 -98.255 -73.846 -98.255 -74.314 L -98.255 -82.785 C -98.268 -83.116 -98.07 -83.419 -97.762 -83.541 C -92.003 -86.86 -86.269 -90.236 -80.468 -93.47 C -79.181 -94.179 -78.667 -94.934 -78.731 -96.441 C -78.869 -99.76 -78.791 -103.09 -78.755 -106.42 C -78.694 -107 -79.02 -107.56 -79.56 -107.8 C -81.436 -108.83 -83.28 -109.93 -85.138 -110.99 C -85.734 -111.34 -85.734 -111.34 -85.113 -111.7 C -82.748 -113.07 -80.379 -114.43 -78.021 -115.82 C -77.707 -116.05 -77.283 -116.06 -76.957 -115.84 C -74.962 -114.66 -72.953 -113.5 -70.929 -112.37 C -70.62 -112.19 -70.456 -111.84 -70.521 -111.49 C -70.514 -107.99 -70.508 -104.48 -70.504 -100.94 Z"
|
|
2925
|
+
transform="matrix(1, 0, 0, 1, 131.35482788085938, 125.0257797241211)" />
|
|
2926
|
+
<path
|
|
2927
|
+
class="primary-logo-color"
|
|
2928
|
+
d="M -108.68 -85.743 L -108.68 -75.169 C -108.72 -74.754 -108.5 -74.358 -108.12 -74.179 C -104.77 -72.267 -101.44 -70.339 -98.117 -68.396 C -97.762 -68.141 -97.284 -68.141 -96.929 -68.396 C -95.028 -69.527 -93.096 -70.598 -91.195 -71.725 C -90.667 -72.041 -90.581 -71.892 -90.581 -71.371 C -90.596 -68.591 -90.596 -65.811 -90.581 -63.03 C -90.551 -62.7 -90.729 -62.386 -91.028 -62.243 C -93.083 -61.073 -95.13 -59.891 -97.17 -58.697 C -97.436 -58.537 -97.775 -58.569 -98.007 -58.775 C -102.74 -61.517 -107.47 -64.254 -112.22 -66.984 C -113.63 -67.796 -115.01 -68.615 -116.42 -69.406 C -116.77 -69.561 -116.97 -69.913 -116.94 -70.286 C -116.93 -80.555 -116.93 -90.823 -116.94 -101.09 C -116.94 -101.63 -116.86 -101.75 -116.35 -101.44 C -113.98 -100.05 -111.59 -98.667 -109.19 -97.303 C -108.84 -97.135 -108.62 -96.76 -108.66 -96.367 C -108.68 -92.833 -108.69 -89.291 -108.68 -85.743 Z"
|
|
2929
|
+
transform="matrix(1, 0, 0, 1, 131.35482788085938, 125.0257797241211)" />
|
|
2930
|
+
<path
|
|
2931
|
+
class="secondary-logo-color"
|
|
2932
|
+
d="M -122.18 -85.807 L -122.18 -82.129 C -122.18 -81.637 -122.34 -81.615 -122.72 -81.839 C -125.16 -83.257 -127.6 -84.667 -130.05 -86.069 C -130.35 -86.219 -130.53 -86.535 -130.5 -86.867 L -130.5 -94.09 C -130.5 -94.64 -130.34 -94.679 -129.89 -94.417 C -127.49 -92.998 -125.09 -91.607 -122.67 -90.243 C -122.35 -90.103 -122.15 -89.772 -122.18 -89.42 C -122.21 -88.214 -122.18 -87.012 -122.18 -85.807 Z M -82.688 -119.15 C -83.954 -118.41 -85.17 -117.7 -86.365 -117.02 C -87.748 -116.22 -89.138 -115.44 -90.514 -114.63 C -90.761 -114.45 -91.093 -114.45 -91.34 -114.63 C -93.432 -115.86 -95.535 -117.07 -97.649 -118.27 C -98.053 -118.5 -98.191 -118.63 -97.67 -118.93 C -95.216 -120.32 -92.776 -121.74 -90.337 -123.15 C -90.134 -123.33 -89.845 -123.36 -89.61 -123.23 L -82.918 -119.33 C -82.862 -119.28 -82.812 -119.24 -82.688 -119.15 Z M -85.365 -65.616 L -85.365 -72.062 L -85.365 -74.622 C -85.403 -74.928 -85.24 -75.223 -84.961 -75.353 C -82.886 -76.534 -80.83 -77.736 -78.77 -78.931 C -78.174 -79.286 -78.135 -79.257 -78.135 -78.576 L -78.135 -70.303 C -78.135 -69.991 -78.135 -69.711 -78.468 -69.52 C -80.656 -68.275 -82.833 -67.013 -85.014 -65.761 C -85.127 -65.704 -85.245 -65.655 -85.365 -65.616 Z"
|
|
2933
|
+
transform="matrix(1, 0, 0, 1, 131.35482788085938, 125.0257797241211)" />
|
|
2934
|
+
</svg>
|
|
2393
2935
|
`, styles: [".primary-logo-color{fill:var(--primary-color)}.secondary-logo-color{fill:var(--p-primary-600)}\n"] }]
|
|
2394
2936
|
}], propDecorators: { width: [{
|
|
2395
2937
|
type: Input
|
|
@@ -2411,10 +2953,10 @@ class LogoService {
|
|
|
2411
2953
|
getLogoComponent() {
|
|
2412
2954
|
return this.customLogoComponent || LogoComponent;
|
|
2413
2955
|
}
|
|
2414
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2415
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
2956
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LogoService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2957
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LogoService, providedIn: 'root' }); }
|
|
2416
2958
|
}
|
|
2417
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2959
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LogoService, decorators: [{
|
|
2418
2960
|
type: Injectable,
|
|
2419
2961
|
args: [{ providedIn: 'root' }]
|
|
2420
2962
|
}] });
|
|
@@ -2455,10 +2997,10 @@ class NotificationApi extends HttpClient {
|
|
|
2455
2997
|
...params,
|
|
2456
2998
|
});
|
|
2457
2999
|
}
|
|
2458
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2459
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
3000
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NotificationApi, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3001
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NotificationApi }); }
|
|
2460
3002
|
}
|
|
2461
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3003
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NotificationApi, decorators: [{
|
|
2462
3004
|
type: Injectable
|
|
2463
3005
|
}] });
|
|
2464
3006
|
|
|
@@ -2510,16 +3052,39 @@ class NotificationService {
|
|
|
2510
3052
|
.then((response) => this.unreadNotificationCount.set(response.count ?? 0))
|
|
2511
3053
|
.catch((error) => console.error('Failed to load notification count', error));
|
|
2512
3054
|
}
|
|
2513
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2514
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
3055
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3056
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NotificationService, providedIn: 'root' }); }
|
|
2515
3057
|
}
|
|
2516
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3058
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NotificationService, decorators: [{
|
|
2517
3059
|
type: Injectable,
|
|
2518
3060
|
args: [{ providedIn: 'root' }]
|
|
2519
3061
|
}], ctorParameters: () => [] });
|
|
2520
3062
|
|
|
3063
|
+
var userNotifications$1 = {
|
|
3064
|
+
title: "Notifications",
|
|
3065
|
+
empty: "No unread notifications",
|
|
3066
|
+
refresh: "Refresh",
|
|
3067
|
+
markAsRead: "Read",
|
|
3068
|
+
markedAsRead: "Notification marked as read"
|
|
3069
|
+
};
|
|
3070
|
+
var en$8 = {
|
|
3071
|
+
userNotifications: userNotifications$1
|
|
3072
|
+
};
|
|
3073
|
+
|
|
3074
|
+
var userNotifications = {
|
|
3075
|
+
title: "Оповещения",
|
|
3076
|
+
empty: "Непрочитанных оповещений нет",
|
|
3077
|
+
refresh: "Обновить",
|
|
3078
|
+
markAsRead: "Прочитано",
|
|
3079
|
+
markedAsRead: "Оповещение отмечено прочитанным"
|
|
3080
|
+
};
|
|
3081
|
+
var ru$8 = {
|
|
3082
|
+
userNotifications: userNotifications
|
|
3083
|
+
};
|
|
3084
|
+
|
|
3085
|
+
L10nService.registerTranslations({ en: en$8, ru: ru$8 });
|
|
2521
3086
|
class UserNotificationsComponent {
|
|
2522
|
-
constructor() {
|
|
3087
|
+
constructor(l10nService) {
|
|
2523
3088
|
this.notifications = [];
|
|
2524
3089
|
this.totalCount = 0;
|
|
2525
3090
|
this.skip = 0;
|
|
@@ -2534,6 +3099,7 @@ class UserNotificationsComponent {
|
|
|
2534
3099
|
const count = this.unreadNotificationCount();
|
|
2535
3100
|
return count > 99 ? '99+' : count.toString();
|
|
2536
3101
|
}, ...(ngDevMode ? [{ debugName: "unreadNotificationBadge" }] : []));
|
|
3102
|
+
l10nService.get('userNotifications');
|
|
2537
3103
|
}
|
|
2538
3104
|
async toggle(event) {
|
|
2539
3105
|
this.popover?.toggle(event);
|
|
@@ -2596,8 +3162,8 @@ class UserNotificationsComponent {
|
|
|
2596
3162
|
return 'secondary';
|
|
2597
3163
|
}
|
|
2598
3164
|
}
|
|
2599
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2600
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
3165
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: UserNotificationsComponent, deps: [{ token: L10nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3166
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: UserNotificationsComponent, isStandalone: true, selector: "app-user-notifications", viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], ngImport: i0, template: `
|
|
2601
3167
|
<button
|
|
2602
3168
|
class="layout-topbar-action relative"
|
|
2603
3169
|
id="oip-app-topbar-notification-button"
|
|
@@ -2676,7 +3242,7 @@ class UserNotificationsComponent {
|
|
|
2676
3242
|
</div>
|
|
2677
3243
|
|
|
2678
3244
|
<p-paginator
|
|
2679
|
-
|
|
3245
|
+
class="mt-3"
|
|
2680
3246
|
[first]="skip"
|
|
2681
3247
|
[rows]="take"
|
|
2682
3248
|
[rowsPerPageOptions]="[5, 10, 20]"
|
|
@@ -2684,9 +3250,9 @@ class UserNotificationsComponent {
|
|
|
2684
3250
|
(onPageChange)="onPageChange($event)"></p-paginator>
|
|
2685
3251
|
}
|
|
2686
3252
|
</p-popover>
|
|
2687
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: BadgeModule }, { kind: "component", type:
|
|
3253
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: BadgeModule }, { kind: "component", type: i2$3.Badge, selector: "p-badge", inputs: ["styleClass", "badgeSize", "size", "severity", "value", "badgeDisabled"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$1.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: PaginatorModule }, { kind: "component", type: i4$1.Paginator, selector: "p-paginator", inputs: ["pageLinkSize", "styleClass", "alwaysShow", "dropdownAppendTo", "templateLeft", "templateRight", "dropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showFirstLastIcon", "totalRecords", "rows", "rowsPerPageOptions", "showJumpToPageDropdown", "showJumpToPageInput", "jumpToPageItemTemplate", "showPageLinks", "locale", "dropdownItemTemplate", "first", "appendTo"], outputs: ["onPageChange"] }, { kind: "component", type: Popover, selector: "p-popover", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: ProgressSpinnerModule }, { kind: "component", type: i5.ProgressSpinner, selector: "p-progressSpinner, p-progress-spinner, p-progressspinner", inputs: ["styleClass", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "component", type: Tag, selector: "p-tag", inputs: ["styleClass", "severity", "value", "icon", "rounded"] }, { kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip"] }, { kind: "pipe", type: i2$1.DatePipe, name: "date" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
2688
3254
|
}
|
|
2689
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3255
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: UserNotificationsComponent, decorators: [{
|
|
2690
3256
|
type: Component,
|
|
2691
3257
|
args: [{
|
|
2692
3258
|
selector: 'app-user-notifications',
|
|
@@ -2781,7 +3347,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
|
|
|
2781
3347
|
</div>
|
|
2782
3348
|
|
|
2783
3349
|
<p-paginator
|
|
2784
|
-
|
|
3350
|
+
class="mt-3"
|
|
2785
3351
|
[first]="skip"
|
|
2786
3352
|
[rows]="take"
|
|
2787
3353
|
[rowsPerPageOptions]="[5, 10, 20]"
|
|
@@ -2791,7 +3357,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
|
|
|
2791
3357
|
</p-popover>
|
|
2792
3358
|
`
|
|
2793
3359
|
}]
|
|
2794
|
-
}], propDecorators: { popover: [{
|
|
3360
|
+
}], ctorParameters: () => [{ type: L10nService }], propDecorators: { popover: [{
|
|
2795
3361
|
type: ViewChild,
|
|
2796
3362
|
args: ['popover']
|
|
2797
3363
|
}] } });
|
|
@@ -2838,10 +3404,10 @@ class ApplicationsApi extends HttpClient {
|
|
|
2838
3404
|
...params,
|
|
2839
3405
|
});
|
|
2840
3406
|
}
|
|
2841
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2842
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
3407
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ApplicationsApi, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3408
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ApplicationsApi }); }
|
|
2843
3409
|
}
|
|
2844
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3410
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ApplicationsApi, decorators: [{
|
|
2845
3411
|
type: Injectable
|
|
2846
3412
|
}] });
|
|
2847
3413
|
|
|
@@ -2861,10 +3427,10 @@ class ApplicationRegistryService {
|
|
|
2861
3427
|
}
|
|
2862
3428
|
window.location.href = application.baseUrl;
|
|
2863
3429
|
}
|
|
2864
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2865
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
3430
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ApplicationRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3431
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ApplicationRegistryService }); }
|
|
2866
3432
|
}
|
|
2867
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3433
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ApplicationRegistryService, decorators: [{
|
|
2868
3434
|
type: Injectable
|
|
2869
3435
|
}] });
|
|
2870
3436
|
|
|
@@ -2891,49 +3457,49 @@ class AppTopbarApplicationSwitcherComponent {
|
|
|
2891
3457
|
command: () => this.applicationRegistryService.openApplication(application)
|
|
2892
3458
|
};
|
|
2893
3459
|
}
|
|
2894
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2895
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
2896
|
-
@if (applicationRegistryService.applications.length > 1) {
|
|
2897
|
-
<p-button
|
|
2898
|
-
class="layout-topbar-action"
|
|
2899
|
-
id="oip-app-topbar-application-switcher-button"
|
|
2900
|
-
severity="secondary"
|
|
2901
|
-
type="button"
|
|
2902
|
-
[rounded]="true"
|
|
2903
|
-
[text]="true"
|
|
2904
|
-
(click)="applicationMenu.toggle($event)">
|
|
2905
|
-
<i [ngClass]="applicationRegistryService.currentApplication?.icon || 'pi pi-th-large'"></i>
|
|
2906
|
-
<span class="ml-2 hidden md:inline">
|
|
2907
|
-
{{ applicationRegistryService.currentApplication?.displayName || ('topbar.applications' | translate) }}
|
|
2908
|
-
</span>
|
|
2909
|
-
</p-button>
|
|
2910
|
-
<p-menu #applicationMenu [model]="applicationMenuItems" [popup]="true" />
|
|
2911
|
-
}
|
|
2912
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type:
|
|
3460
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AppTopbarApplicationSwitcherComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3461
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AppTopbarApplicationSwitcherComponent, isStandalone: true, selector: "app-topbar-application-switcher", providers: [ApplicationsApi, ApplicationRegistryService], ngImport: i0, template: `
|
|
3462
|
+
@if (applicationRegistryService.applications.length > 1) {
|
|
3463
|
+
<p-button
|
|
3464
|
+
class="layout-topbar-action"
|
|
3465
|
+
id="oip-app-topbar-application-switcher-button"
|
|
3466
|
+
severity="secondary"
|
|
3467
|
+
type="button"
|
|
3468
|
+
[rounded]="true"
|
|
3469
|
+
[text]="true"
|
|
3470
|
+
(click)="applicationMenu.toggle($event)">
|
|
3471
|
+
<i [ngClass]="applicationRegistryService.currentApplication?.icon || 'pi pi-th-large'"></i>
|
|
3472
|
+
<span class="ml-2 hidden md:inline">
|
|
3473
|
+
{{ applicationRegistryService.currentApplication?.displayName || ('topbar.applications' | translate) }}
|
|
3474
|
+
</span>
|
|
3475
|
+
</p-button>
|
|
3476
|
+
<p-menu #applicationMenu [model]="applicationMenuItems" [popup]="true" />
|
|
3477
|
+
}
|
|
3478
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$1.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: MenuModule }, { kind: "component", type: i3$1.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex", "appendTo"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
2913
3479
|
}
|
|
2914
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3480
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AppTopbarApplicationSwitcherComponent, decorators: [{
|
|
2915
3481
|
type: Component,
|
|
2916
3482
|
args: [{
|
|
2917
3483
|
selector: 'app-topbar-application-switcher',
|
|
2918
3484
|
standalone: true,
|
|
2919
3485
|
imports: [CommonModule, ButtonModule, MenuModule, TranslatePipe],
|
|
2920
|
-
template: `
|
|
2921
|
-
@if (applicationRegistryService.applications.length > 1) {
|
|
2922
|
-
<p-button
|
|
2923
|
-
class="layout-topbar-action"
|
|
2924
|
-
id="oip-app-topbar-application-switcher-button"
|
|
2925
|
-
severity="secondary"
|
|
2926
|
-
type="button"
|
|
2927
|
-
[rounded]="true"
|
|
2928
|
-
[text]="true"
|
|
2929
|
-
(click)="applicationMenu.toggle($event)">
|
|
2930
|
-
<i [ngClass]="applicationRegistryService.currentApplication?.icon || 'pi pi-th-large'"></i>
|
|
2931
|
-
<span class="ml-2 hidden md:inline">
|
|
2932
|
-
{{ applicationRegistryService.currentApplication?.displayName || ('topbar.applications' | translate) }}
|
|
2933
|
-
</span>
|
|
2934
|
-
</p-button>
|
|
2935
|
-
<p-menu #applicationMenu [model]="applicationMenuItems" [popup]="true" />
|
|
2936
|
-
}
|
|
3486
|
+
template: `
|
|
3487
|
+
@if (applicationRegistryService.applications.length > 1) {
|
|
3488
|
+
<p-button
|
|
3489
|
+
class="layout-topbar-action"
|
|
3490
|
+
id="oip-app-topbar-application-switcher-button"
|
|
3491
|
+
severity="secondary"
|
|
3492
|
+
type="button"
|
|
3493
|
+
[rounded]="true"
|
|
3494
|
+
[text]="true"
|
|
3495
|
+
(click)="applicationMenu.toggle($event)">
|
|
3496
|
+
<i [ngClass]="applicationRegistryService.currentApplication?.icon || 'pi pi-th-large'"></i>
|
|
3497
|
+
<span class="ml-2 hidden md:inline">
|
|
3498
|
+
{{ applicationRegistryService.currentApplication?.displayName || ('topbar.applications' | translate) }}
|
|
3499
|
+
</span>
|
|
3500
|
+
</p-button>
|
|
3501
|
+
<p-menu #applicationMenu [model]="applicationMenuItems" [popup]="true" />
|
|
3502
|
+
}
|
|
2937
3503
|
`,
|
|
2938
3504
|
providers: [ApplicationsApi, ApplicationRegistryService]
|
|
2939
3505
|
}]
|
|
@@ -2984,111 +3550,112 @@ class AppTopbar {
|
|
|
2984
3550
|
}
|
|
2985
3551
|
});
|
|
2986
3552
|
}
|
|
2987
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2988
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
2989
|
-
<
|
|
2990
|
-
|
|
2991
|
-
<
|
|
2992
|
-
<
|
|
2993
|
-
|
|
2994
|
-
|
|
2995
|
-
<
|
|
2996
|
-
|
|
2997
|
-
|
|
2998
|
-
|
|
2999
|
-
|
|
3553
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AppTopbar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3554
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AppTopbar, isStandalone: true, selector: "app-topbar", providers: [ConfirmationService], ngImport: i0, template: `
|
|
3555
|
+
<div class="layout-topbar">
|
|
3556
|
+
<p-confirmDialog appendTo="body"/>
|
|
3557
|
+
<div class="layout-topbar-logo-container">
|
|
3558
|
+
<button class="layout-menu-button layout-topbar-action" (click)="layoutService.onMenuToggle()">
|
|
3559
|
+
<i class="pi pi-bars"></i>
|
|
3560
|
+
</button>
|
|
3561
|
+
<a class="layout-topbar-logo" id="oip-app-topbar-logo-link" routerLink="">
|
|
3562
|
+
<ng-container
|
|
3563
|
+
*ngComponentOutlet="logoService.getLogoComponent(); inputs: { width: 36, height: 36 }"></ng-container>
|
|
3564
|
+
<span>{{ 'app-info.title' | translate }}</span>
|
|
3565
|
+
</a>
|
|
3566
|
+
</div>
|
|
3000
3567
|
|
|
3001
|
-
|
|
3002
|
-
|
|
3003
|
-
|
|
3004
|
-
|
|
3005
|
-
|
|
3006
|
-
|
|
3007
|
-
|
|
3008
|
-
|
|
3009
|
-
|
|
3010
|
-
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
|
|
3568
|
+
@if (securityService.isAdmin() && topBarService.topBarItems.length > 0) {
|
|
3569
|
+
<p-tabs
|
|
3570
|
+
class="layout-topbar-tabs ml-2"
|
|
3571
|
+
[value]="topBarService.activeId"
|
|
3572
|
+
(valueChange)="onActiveTabChange($event)">
|
|
3573
|
+
<p-tablist>
|
|
3574
|
+
@for (tab of topBarService.availableTopBarItems; track tab.id) {
|
|
3575
|
+
<p-tab id="oip-app-topbar-tab-{{ tab.id }}" [value]="tab.id">
|
|
3576
|
+
<i class="pi {{ tab.icon }}"></i>
|
|
3577
|
+
<span class="ml-2">{{ tab.caption }}</span>
|
|
3578
|
+
</p-tab>
|
|
3579
|
+
}
|
|
3580
|
+
</p-tablist>
|
|
3581
|
+
</p-tabs>
|
|
3582
|
+
}
|
|
3583
|
+
<div class="layout-topbar-actions">
|
|
3584
|
+
<div class="layout-config-menu">
|
|
3585
|
+
<app-topbar-application-switcher/>
|
|
3586
|
+
<app-user-notifications/>
|
|
3587
|
+
<p-button
|
|
3588
|
+
class="layout-topbar-action"
|
|
3589
|
+
id="oip-app-topbar-theme-button"
|
|
3590
|
+
severity="secondary"
|
|
3591
|
+
type="button"
|
|
3592
|
+
[rounded]="true"
|
|
3593
|
+
[text]="true"
|
|
3594
|
+
(click)="toggleDarkMode()">
|
|
3595
|
+
<i
|
|
3596
|
+
class="pi"
|
|
3597
|
+
[ngClass]="{
|
|
3031
3598
|
'pi-moon': layoutService.isDarkTheme(),
|
|
3032
3599
|
'pi-sun': !layoutService.isDarkTheme()
|
|
3033
3600
|
}"></i>
|
|
3034
|
-
</p-button>
|
|
3035
|
-
<div class="relative">
|
|
3036
|
-
<p-button
|
|
3037
|
-
class="layout-topbar-action layout-topbar-action-highlight"
|
|
3038
|
-
enterActiveClass="animate-scalein"
|
|
3039
|
-
enterFromClass="hidden"
|
|
3040
|
-
id="oip-app-topbar-palette-button"
|
|
3041
|
-
leaveActiveClass="animate-fadeout"
|
|
3042
|
-
leaveToClass="hidden"
|
|
3043
|
-
pStyleClass="@next"
|
|
3044
|
-
[hideOnOutsideClick]="true"
|
|
3045
|
-
[rounded]="true">
|
|
3046
|
-
<i class="pi pi-palette"></i>
|
|
3047
3601
|
</p-button>
|
|
3048
|
-
<
|
|
3602
|
+
<div class="relative">
|
|
3603
|
+
<p-button
|
|
3604
|
+
class="layout-topbar-action layout-topbar-action-highlight"
|
|
3605
|
+
enterActiveClass="animate-scalein"
|
|
3606
|
+
enterFromClass="hidden"
|
|
3607
|
+
id="oip-app-topbar-palette-button"
|
|
3608
|
+
leaveActiveClass="animate-fadeout"
|
|
3609
|
+
leaveToClass="hidden"
|
|
3610
|
+
pStyleClass="@next"
|
|
3611
|
+
[hideOnOutsideClick]="true"
|
|
3612
|
+
[rounded]="true">
|
|
3613
|
+
<i class="pi pi-palette"></i>
|
|
3614
|
+
</p-button>
|
|
3615
|
+
<app-configurator/>
|
|
3616
|
+
</div>
|
|
3049
3617
|
</div>
|
|
3050
|
-
</div>
|
|
3051
3618
|
|
|
3052
|
-
|
|
3053
|
-
|
|
3054
|
-
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
|
|
3060
|
-
|
|
3061
|
-
|
|
3062
|
-
|
|
3063
|
-
|
|
3064
|
-
|
|
3065
|
-
|
|
3066
|
-
|
|
3067
|
-
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
|
|
3071
|
-
|
|
3072
|
-
|
|
3073
|
-
|
|
3074
|
-
|
|
3075
|
-
|
|
3076
|
-
|
|
3077
|
-
|
|
3078
|
-
|
|
3079
|
-
|
|
3080
|
-
|
|
3081
|
-
|
|
3619
|
+
<button
|
|
3620
|
+
class="layout-topbar-menu-button layout-topbar-action"
|
|
3621
|
+
enterActiveClass="animate-scalein"
|
|
3622
|
+
enterFromClass="hidden"
|
|
3623
|
+
id="oip-app-topbar-menu-expand-button"
|
|
3624
|
+
leaveActiveClass="animate-fadeout"
|
|
3625
|
+
leaveToClass="hidden"
|
|
3626
|
+
pStyleClass="@next"
|
|
3627
|
+
[hideOnOutsideClick]="true">
|
|
3628
|
+
<i class="pi pi-ellipsis-v"></i>
|
|
3629
|
+
</button>
|
|
3630
|
+
|
|
3631
|
+
<div class="layout-topbar-menu hidden lg:block">
|
|
3632
|
+
<div class="layout-topbar-menu-content">
|
|
3633
|
+
<button
|
|
3634
|
+
class="layout-topbar-action"
|
|
3635
|
+
id="oip-app-topbar-logout-button"
|
|
3636
|
+
type="button"
|
|
3637
|
+
(click)="confirmLogout()"
|
|
3638
|
+
(keydown)="logoutKeyDown($event)">
|
|
3639
|
+
<i class="pi pi-sign-out"></i>
|
|
3640
|
+
<span>{{ 'topbar.logout' | translate }}</span>
|
|
3641
|
+
</button>
|
|
3642
|
+
<button class="layout-topbar-action" routerLink="config">
|
|
3643
|
+
<p-avatar
|
|
3644
|
+
class="p-link flex align-items-center"
|
|
3645
|
+
id="oip-app-topbar-user-avatar"
|
|
3646
|
+
shape="circle"
|
|
3647
|
+
size="normal"
|
|
3648
|
+
[image]="userService.photoLoaded ? userService.photo : null"
|
|
3082
3649
|
>{{ !userService.photoLoaded ? userService.shortLabel : null }}
|
|
3083
|
-
|
|
3084
|
-
|
|
3085
|
-
|
|
3650
|
+
</p-avatar>
|
|
3651
|
+
<span class="ml-2">{{ 'topbar.profile' | translate }}</span>
|
|
3652
|
+
</button>
|
|
3653
|
+
</div>
|
|
3086
3654
|
</div>
|
|
3087
3655
|
</div>
|
|
3088
|
-
</div
|
|
3089
|
-
</div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "ngmodule", type: StyleClassModule }, { kind: "directive", type: i3$3.StyleClass, selector: "[pStyleClass]", inputs: ["pStyleClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass", "hideOnEscape", "hideOnResize", "resizeSelector"] }, { kind: "component", type: AppConfiguratorComponent, selector: "app-configurator" }, { kind: "component", type: Tabs, selector: "p-tabs", inputs: ["value", "scrollable", "lazy", "selectOnFocus", "showNavigators", "tabindex"], outputs: ["valueChange"] }, { kind: "component", type: TabList, selector: "p-tablist" }, { kind: "component", type: Tab, selector: "p-tab", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "ngmodule", type: AvatarModule }, { kind: "component", type: i2$1.Avatar, selector: "p-avatar", inputs: ["label", "icon", "image", "size", "shape", "styleClass", "ariaLabel", "ariaLabelledBy"], outputs: ["onImageError"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$2.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "modal", "visible", "position", "draggable"], outputs: ["onHide"] }, { kind: "component", type: UserNotificationsComponent, selector: "app-user-notifications" }, { kind: "component", type: AppTopbarApplicationSwitcherComponent, selector: "app-topbar-application-switcher" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
3656
|
+
</div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "ngmodule", type: StyleClassModule }, { kind: "directive", type: i3$2.StyleClass, selector: "[pStyleClass]", inputs: ["pStyleClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass", "hideOnEscape", "hideOnResize", "resizeSelector"] }, { kind: "component", type: AppConfiguratorComponent, selector: "app-configurator" }, { kind: "component", type: Tabs, selector: "p-tabs", inputs: ["value", "scrollable", "lazy", "selectOnFocus", "showNavigators", "tabindex"], outputs: ["valueChange"] }, { kind: "component", type: TabList, selector: "p-tablist" }, { kind: "component", type: Tab, selector: "p-tab", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "ngmodule", type: AvatarModule }, { kind: "component", type: i3$3.Avatar, selector: "p-avatar", inputs: ["label", "icon", "image", "size", "shape", "styleClass", "ariaLabel", "ariaLabelledBy"], outputs: ["onImageError"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$1.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "modal", "visible", "position", "draggable"], outputs: ["onHide"] }, { kind: "component", type: UserNotificationsComponent, selector: "app-user-notifications" }, { kind: "component", type: AppTopbarApplicationSwitcherComponent, selector: "app-topbar-application-switcher" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
3090
3657
|
}
|
|
3091
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3658
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AppTopbar, decorators: [{
|
|
3092
3659
|
type: Component,
|
|
3093
3660
|
args: [{
|
|
3094
3661
|
selector: 'app-topbar',
|
|
@@ -3108,108 +3675,109 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
|
|
|
3108
3675
|
TranslatePipe,
|
|
3109
3676
|
AppTopbarApplicationSwitcherComponent
|
|
3110
3677
|
],
|
|
3111
|
-
template: `
|
|
3112
|
-
<
|
|
3113
|
-
|
|
3114
|
-
<
|
|
3115
|
-
<
|
|
3116
|
-
|
|
3117
|
-
|
|
3118
|
-
<
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3678
|
+
template: `
|
|
3679
|
+
<div class="layout-topbar">
|
|
3680
|
+
<p-confirmDialog appendTo="body"/>
|
|
3681
|
+
<div class="layout-topbar-logo-container">
|
|
3682
|
+
<button class="layout-menu-button layout-topbar-action" (click)="layoutService.onMenuToggle()">
|
|
3683
|
+
<i class="pi pi-bars"></i>
|
|
3684
|
+
</button>
|
|
3685
|
+
<a class="layout-topbar-logo" id="oip-app-topbar-logo-link" routerLink="">
|
|
3686
|
+
<ng-container
|
|
3687
|
+
*ngComponentOutlet="logoService.getLogoComponent(); inputs: { width: 36, height: 36 }"></ng-container>
|
|
3688
|
+
<span>{{ 'app-info.title' | translate }}</span>
|
|
3689
|
+
</a>
|
|
3690
|
+
</div>
|
|
3123
3691
|
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
3129
|
-
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3136
|
-
|
|
3137
|
-
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
|
|
3142
|
-
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3153
|
-
|
|
3692
|
+
@if (securityService.isAdmin() && topBarService.topBarItems.length > 0) {
|
|
3693
|
+
<p-tabs
|
|
3694
|
+
class="layout-topbar-tabs ml-2"
|
|
3695
|
+
[value]="topBarService.activeId"
|
|
3696
|
+
(valueChange)="onActiveTabChange($event)">
|
|
3697
|
+
<p-tablist>
|
|
3698
|
+
@for (tab of topBarService.availableTopBarItems; track tab.id) {
|
|
3699
|
+
<p-tab id="oip-app-topbar-tab-{{ tab.id }}" [value]="tab.id">
|
|
3700
|
+
<i class="pi {{ tab.icon }}"></i>
|
|
3701
|
+
<span class="ml-2">{{ tab.caption }}</span>
|
|
3702
|
+
</p-tab>
|
|
3703
|
+
}
|
|
3704
|
+
</p-tablist>
|
|
3705
|
+
</p-tabs>
|
|
3706
|
+
}
|
|
3707
|
+
<div class="layout-topbar-actions">
|
|
3708
|
+
<div class="layout-config-menu">
|
|
3709
|
+
<app-topbar-application-switcher/>
|
|
3710
|
+
<app-user-notifications/>
|
|
3711
|
+
<p-button
|
|
3712
|
+
class="layout-topbar-action"
|
|
3713
|
+
id="oip-app-topbar-theme-button"
|
|
3714
|
+
severity="secondary"
|
|
3715
|
+
type="button"
|
|
3716
|
+
[rounded]="true"
|
|
3717
|
+
[text]="true"
|
|
3718
|
+
(click)="toggleDarkMode()">
|
|
3719
|
+
<i
|
|
3720
|
+
class="pi"
|
|
3721
|
+
[ngClass]="{
|
|
3154
3722
|
'pi-moon': layoutService.isDarkTheme(),
|
|
3155
3723
|
'pi-sun': !layoutService.isDarkTheme()
|
|
3156
3724
|
}"></i>
|
|
3157
|
-
</p-button>
|
|
3158
|
-
<div class="relative">
|
|
3159
|
-
<p-button
|
|
3160
|
-
class="layout-topbar-action layout-topbar-action-highlight"
|
|
3161
|
-
enterActiveClass="animate-scalein"
|
|
3162
|
-
enterFromClass="hidden"
|
|
3163
|
-
id="oip-app-topbar-palette-button"
|
|
3164
|
-
leaveActiveClass="animate-fadeout"
|
|
3165
|
-
leaveToClass="hidden"
|
|
3166
|
-
pStyleClass="@next"
|
|
3167
|
-
[hideOnOutsideClick]="true"
|
|
3168
|
-
[rounded]="true">
|
|
3169
|
-
<i class="pi pi-palette"></i>
|
|
3170
3725
|
</p-button>
|
|
3171
|
-
<
|
|
3726
|
+
<div class="relative">
|
|
3727
|
+
<p-button
|
|
3728
|
+
class="layout-topbar-action layout-topbar-action-highlight"
|
|
3729
|
+
enterActiveClass="animate-scalein"
|
|
3730
|
+
enterFromClass="hidden"
|
|
3731
|
+
id="oip-app-topbar-palette-button"
|
|
3732
|
+
leaveActiveClass="animate-fadeout"
|
|
3733
|
+
leaveToClass="hidden"
|
|
3734
|
+
pStyleClass="@next"
|
|
3735
|
+
[hideOnOutsideClick]="true"
|
|
3736
|
+
[rounded]="true">
|
|
3737
|
+
<i class="pi pi-palette"></i>
|
|
3738
|
+
</p-button>
|
|
3739
|
+
<app-configurator/>
|
|
3740
|
+
</div>
|
|
3172
3741
|
</div>
|
|
3173
|
-
</div>
|
|
3174
3742
|
|
|
3175
|
-
|
|
3176
|
-
|
|
3177
|
-
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
|
|
3186
|
-
|
|
3187
|
-
|
|
3188
|
-
|
|
3189
|
-
|
|
3190
|
-
|
|
3191
|
-
|
|
3192
|
-
|
|
3193
|
-
|
|
3194
|
-
|
|
3195
|
-
|
|
3196
|
-
|
|
3197
|
-
|
|
3198
|
-
|
|
3199
|
-
|
|
3200
|
-
|
|
3201
|
-
|
|
3202
|
-
|
|
3203
|
-
|
|
3204
|
-
|
|
3743
|
+
<button
|
|
3744
|
+
class="layout-topbar-menu-button layout-topbar-action"
|
|
3745
|
+
enterActiveClass="animate-scalein"
|
|
3746
|
+
enterFromClass="hidden"
|
|
3747
|
+
id="oip-app-topbar-menu-expand-button"
|
|
3748
|
+
leaveActiveClass="animate-fadeout"
|
|
3749
|
+
leaveToClass="hidden"
|
|
3750
|
+
pStyleClass="@next"
|
|
3751
|
+
[hideOnOutsideClick]="true">
|
|
3752
|
+
<i class="pi pi-ellipsis-v"></i>
|
|
3753
|
+
</button>
|
|
3754
|
+
|
|
3755
|
+
<div class="layout-topbar-menu hidden lg:block">
|
|
3756
|
+
<div class="layout-topbar-menu-content">
|
|
3757
|
+
<button
|
|
3758
|
+
class="layout-topbar-action"
|
|
3759
|
+
id="oip-app-topbar-logout-button"
|
|
3760
|
+
type="button"
|
|
3761
|
+
(click)="confirmLogout()"
|
|
3762
|
+
(keydown)="logoutKeyDown($event)">
|
|
3763
|
+
<i class="pi pi-sign-out"></i>
|
|
3764
|
+
<span>{{ 'topbar.logout' | translate }}</span>
|
|
3765
|
+
</button>
|
|
3766
|
+
<button class="layout-topbar-action" routerLink="config">
|
|
3767
|
+
<p-avatar
|
|
3768
|
+
class="p-link flex align-items-center"
|
|
3769
|
+
id="oip-app-topbar-user-avatar"
|
|
3770
|
+
shape="circle"
|
|
3771
|
+
size="normal"
|
|
3772
|
+
[image]="userService.photoLoaded ? userService.photo : null"
|
|
3205
3773
|
>{{ !userService.photoLoaded ? userService.shortLabel : null }}
|
|
3206
|
-
|
|
3207
|
-
|
|
3208
|
-
|
|
3774
|
+
</p-avatar>
|
|
3775
|
+
<span class="ml-2">{{ 'topbar.profile' | translate }}</span>
|
|
3776
|
+
</button>
|
|
3777
|
+
</div>
|
|
3209
3778
|
</div>
|
|
3210
3779
|
</div>
|
|
3211
|
-
</div
|
|
3212
|
-
</div>`,
|
|
3780
|
+
</div>`,
|
|
3213
3781
|
providers: [ConfirmationService]
|
|
3214
3782
|
}]
|
|
3215
3783
|
}] });
|
|
@@ -3218,35 +3786,35 @@ class FooterComponent {
|
|
|
3218
3786
|
constructor() {
|
|
3219
3787
|
this.logoService = inject(LogoService);
|
|
3220
3788
|
}
|
|
3221
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3222
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3223
|
-
<div class="layout-footer">
|
|
3224
|
-
<div class="flex justify-center flex-1">
|
|
3225
|
-
<div class="mr-2 -my-0.5">
|
|
3226
|
-
<ng-container
|
|
3227
|
-
*ngComponentOutlet="logoService.getLogoComponent(); inputs: { width: 18, height: 18 }"></ng-container>
|
|
3228
|
-
</div>
|
|
3229
|
-
<span class="font-medium">{{ 'app-info.footer' | translate }}</span>
|
|
3230
|
-
</div>
|
|
3231
|
-
<p class="mr-auto">{{ 'app-info.version' | translate }}</p>
|
|
3232
|
-
</div>
|
|
3789
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3790
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: FooterComponent, isStandalone: true, selector: "app-footer", ngImport: i0, template: `
|
|
3791
|
+
<div class="layout-footer">
|
|
3792
|
+
<div class="flex justify-center flex-1">
|
|
3793
|
+
<div class="mr-2 -my-0.5">
|
|
3794
|
+
<ng-container
|
|
3795
|
+
*ngComponentOutlet="logoService.getLogoComponent(); inputs: { width: 18, height: 18 }"></ng-container>
|
|
3796
|
+
</div>
|
|
3797
|
+
<span class="font-medium">{{ 'app-info.footer' | translate }}</span>
|
|
3798
|
+
</div>
|
|
3799
|
+
<p class="mr-auto">{{ 'app-info.version' | translate }}</p>
|
|
3800
|
+
</div>
|
|
3233
3801
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
3234
3802
|
}
|
|
3235
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3803
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FooterComponent, decorators: [{
|
|
3236
3804
|
type: Component,
|
|
3237
3805
|
args: [{
|
|
3238
3806
|
selector: 'app-footer',
|
|
3239
|
-
template: `
|
|
3240
|
-
<div class="layout-footer">
|
|
3241
|
-
<div class="flex justify-center flex-1">
|
|
3242
|
-
<div class="mr-2 -my-0.5">
|
|
3243
|
-
<ng-container
|
|
3244
|
-
*ngComponentOutlet="logoService.getLogoComponent(); inputs: { width: 18, height: 18 }"></ng-container>
|
|
3245
|
-
</div>
|
|
3246
|
-
<span class="font-medium">{{ 'app-info.footer' | translate }}</span>
|
|
3247
|
-
</div>
|
|
3248
|
-
<p class="mr-auto">{{ 'app-info.version' | translate }}</p>
|
|
3249
|
-
</div>
|
|
3807
|
+
template: `
|
|
3808
|
+
<div class="layout-footer">
|
|
3809
|
+
<div class="flex justify-center flex-1">
|
|
3810
|
+
<div class="mr-2 -my-0.5">
|
|
3811
|
+
<ng-container
|
|
3812
|
+
*ngComponentOutlet="logoService.getLogoComponent(); inputs: { width: 18, height: 18 }"></ng-container>
|
|
3813
|
+
</div>
|
|
3814
|
+
<span class="font-medium">{{ 'app-info.footer' | translate }}</span>
|
|
3815
|
+
</div>
|
|
3816
|
+
<p class="mr-auto">{{ 'app-info.version' | translate }}</p>
|
|
3817
|
+
</div>
|
|
3250
3818
|
`,
|
|
3251
3819
|
standalone: true,
|
|
3252
3820
|
imports: [TranslatePipe, NgComponentOutlet]
|
|
@@ -3266,6 +3834,14 @@ class MenuApi extends HttpClient {
|
|
|
3266
3834
|
format: "json",
|
|
3267
3835
|
...params,
|
|
3268
3836
|
});
|
|
3837
|
+
this.getModuleInstanceRights = (query, params = {}) => this.request({
|
|
3838
|
+
path: `/api/menu/get-module-instance-rights`,
|
|
3839
|
+
method: "GET",
|
|
3840
|
+
query: query,
|
|
3841
|
+
secure: true,
|
|
3842
|
+
format: "json",
|
|
3843
|
+
...params,
|
|
3844
|
+
});
|
|
3269
3845
|
this.getAdminMenu = (params = {}) => this.request({
|
|
3270
3846
|
path: `/api/menu/get-admin-menu`,
|
|
3271
3847
|
method: "GET",
|
|
@@ -3311,10 +3887,10 @@ class MenuApi extends HttpClient {
|
|
|
3311
3887
|
...params,
|
|
3312
3888
|
});
|
|
3313
3889
|
}
|
|
3314
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3315
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
3890
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MenuApi, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3891
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MenuApi }); }
|
|
3316
3892
|
}
|
|
3317
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3893
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MenuApi, decorators: [{
|
|
3318
3894
|
type: Injectable
|
|
3319
3895
|
}] });
|
|
3320
3896
|
|
|
@@ -3370,10 +3946,10 @@ class MenuService {
|
|
|
3370
3946
|
editModuleInstance(item) {
|
|
3371
3947
|
return this.menuDataService.editModuleInstance(item);
|
|
3372
3948
|
}
|
|
3373
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3374
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
3949
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3950
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MenuService }); }
|
|
3375
3951
|
}
|
|
3376
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3952
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MenuService, decorators: [{
|
|
3377
3953
|
type: Injectable
|
|
3378
3954
|
}] });
|
|
3379
3955
|
|
|
@@ -3610,8 +4186,8 @@ class MenuItemComponent {
|
|
|
3610
4186
|
const currentIndex = items.findIndex((item) => item.moduleInstanceId == currentItem.moduleInstanceId);
|
|
3611
4187
|
return this.findNextVisibleIndex(items, currentIndex) !== -1;
|
|
3612
4188
|
}
|
|
3613
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3614
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
4189
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MenuItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$2.Router }, { token: MenuService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4190
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: MenuItemComponent, isStandalone: true, selector: "[app-menuitem]", inputs: { item: "item", index: "index", root: "root", parentKey: "parentKey", menuItemCreateDialogComponent: "menuItemCreateDialogComponent", menuItemEditDialogComponent: "menuItemEditDialogComponent", contextMenu: "contextMenu" }, host: { properties: { "class.layout-root-menuitem": "this.root", "class.active-menuitem": "this.activeClass" } }, providers: [ConfirmationService], ngImport: i0, template: `
|
|
3615
4191
|
<ng-container>
|
|
3616
4192
|
<p-confirm-dialog />
|
|
3617
4193
|
@if (root && item.visible !== false) {
|
|
@@ -3684,9 +4260,9 @@ class MenuItemComponent {
|
|
|
3684
4260
|
</ul>
|
|
3685
4261
|
}
|
|
3686
4262
|
</ng-container>
|
|
3687
|
-
`, isInline: true, dependencies: [{ kind: "component", type: MenuItemComponent, selector: "[app-menuitem]", inputs: ["item", "index", "root", "parentKey", "menuItemCreateDialogComponent", "menuItemEditDialogComponent", "contextMenu"] }, { kind: "ngmodule", type: RippleModule }, { kind: "directive", type:
|
|
4263
|
+
`, isInline: true, dependencies: [{ kind: "component", type: MenuItemComponent, selector: "[app-menuitem]", inputs: ["item", "index", "root", "parentKey", "menuItemCreateDialogComponent", "menuItemEditDialogComponent", "contextMenu"] }, { kind: "ngmodule", type: RippleModule }, { kind: "directive", type: i2$4.Ripple, selector: "[pRipple]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: ContextMenuModule }, { kind: "component", type: ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "modal", "visible", "position", "draggable"], outputs: ["onHide"] }] }); }
|
|
3688
4264
|
}
|
|
3689
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
4265
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MenuItemComponent, decorators: [{
|
|
3690
4266
|
type: Component,
|
|
3691
4267
|
args: [{
|
|
3692
4268
|
// eslint-disable-next-line @angular-eslint/component-selector
|
|
@@ -3768,7 +4344,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
|
|
|
3768
4344
|
imports: [RippleModule, NgClass, RouterLinkActive, RouterLink, ContextMenuModule, ConfirmDialog],
|
|
3769
4345
|
providers: [ConfirmationService]
|
|
3770
4346
|
}]
|
|
3771
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1$
|
|
4347
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1$2.Router }, { type: MenuService }], propDecorators: { item: [{
|
|
3772
4348
|
type: Input
|
|
3773
4349
|
}], index: [{
|
|
3774
4350
|
type: Input
|
|
@@ -3851,8 +4427,8 @@ class MenuItemCreateDialogComponent {
|
|
|
3851
4427
|
this.visible = true;
|
|
3852
4428
|
this.visibleChange.emit(this.visible);
|
|
3853
4429
|
}
|
|
3854
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3855
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
4430
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MenuItemCreateDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4431
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: MenuItemCreateDialogComponent, isStandalone: true, selector: "menu-item-create-dialog", inputs: { visible: "visible" }, outputs: { visibleChange: "visibleChange" }, ngImport: i0, template: `
|
|
3856
4432
|
<p-dialog
|
|
3857
4433
|
header="{{ 'menuItemCreateDialogComponent.header' | translate }}"
|
|
3858
4434
|
[modal]="true"
|
|
@@ -3886,10 +4462,14 @@ class MenuItemCreateDialogComponent {
|
|
|
3886
4462
|
<p-select
|
|
3887
4463
|
appendTo="body"
|
|
3888
4464
|
class="flex-auto"
|
|
4465
|
+
filterBy="value"
|
|
4466
|
+
filterPlaceholder="{{ 'menuItemCreateDialogComponent.searchModule' | translate }}"
|
|
3889
4467
|
id="oip-menu-item-create-module"
|
|
3890
4468
|
optionLabel="value"
|
|
3891
4469
|
optionValue="key"
|
|
3892
4470
|
placeholder="{{ 'menuItemCreateDialogComponent.selectModule' | translate }}"
|
|
4471
|
+
scrollHeight="18rem"
|
|
4472
|
+
[filter]="true"
|
|
3893
4473
|
[options]="modules"
|
|
3894
4474
|
[(ngModel)]="selectModule" />
|
|
3895
4475
|
</div>
|
|
@@ -3937,9 +4517,9 @@ class MenuItemCreateDialogComponent {
|
|
|
3937
4517
|
(click)="save()" />
|
|
3938
4518
|
</div>
|
|
3939
4519
|
</p-dialog>
|
|
3940
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$
|
|
4520
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$1.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: i2$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i3$4.Dialog, selector: "p-dialog", inputs: ["hostName", "header", "draggable", "resizable", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "appendTo", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i4$2.InputText, selector: "[pInputText]", inputs: ["hostName", "ptInputText", "pSize", "variant", "fluid", "invalid"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i5$1.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "panelStyle", "styleClass", "panelStyleClass", "readonly", "editable", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "filterValue", "options", "appendTo"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
3941
4521
|
}
|
|
3942
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
4522
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MenuItemCreateDialogComponent, decorators: [{
|
|
3943
4523
|
type: Component,
|
|
3944
4524
|
args: [{
|
|
3945
4525
|
selector: 'menu-item-create-dialog',
|
|
@@ -3979,10 +4559,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
|
|
|
3979
4559
|
<p-select
|
|
3980
4560
|
appendTo="body"
|
|
3981
4561
|
class="flex-auto"
|
|
4562
|
+
filterBy="value"
|
|
4563
|
+
filterPlaceholder="{{ 'menuItemCreateDialogComponent.searchModule' | translate }}"
|
|
3982
4564
|
id="oip-menu-item-create-module"
|
|
3983
4565
|
optionLabel="value"
|
|
3984
4566
|
optionValue="key"
|
|
3985
4567
|
placeholder="{{ 'menuItemCreateDialogComponent.selectModule' | translate }}"
|
|
4568
|
+
scrollHeight="18rem"
|
|
4569
|
+
[filter]="true"
|
|
3986
4570
|
[options]="modules"
|
|
3987
4571
|
[(ngModel)]="selectModule" />
|
|
3988
4572
|
</div>
|
|
@@ -4044,7 +4628,6 @@ class MenuItemEditDialogComponent {
|
|
|
4044
4628
|
this.securityApi = inject(SecurityApi);
|
|
4045
4629
|
this.msgService = inject(MsgService);
|
|
4046
4630
|
this.visibleChange = new EventEmitter();
|
|
4047
|
-
this.modules = [];
|
|
4048
4631
|
this.roles = [];
|
|
4049
4632
|
this.iconOptions = Object.values(PrimeIcons)
|
|
4050
4633
|
.filter((icon) => typeof icon === 'string')
|
|
@@ -4098,14 +4681,11 @@ class MenuItemEditDialogComponent {
|
|
|
4098
4681
|
viewRoles: this.menuService.contextMenuItem?.securities
|
|
4099
4682
|
};
|
|
4100
4683
|
this.roles = await this.securityApi.getRealmRoles();
|
|
4101
|
-
this.menuService.getModules().then((data) => {
|
|
4102
|
-
this.modules = data;
|
|
4103
|
-
});
|
|
4104
4684
|
this.visible = true;
|
|
4105
4685
|
this.visibleChange.emit(this.visible);
|
|
4106
4686
|
}
|
|
4107
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
4108
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
4687
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MenuItemEditDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4688
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: MenuItemEditDialogComponent, isStandalone: true, selector: "menu-item-edit-dialog", inputs: { visible: "visible" }, outputs: { visibleChange: "visibleChange" }, ngImport: i0, template: `
|
|
4109
4689
|
<p-dialog
|
|
4110
4690
|
header="{{ 'menuItemEditDialogComponent.header' | translate }}"
|
|
4111
4691
|
[modal]="true"
|
|
@@ -4183,9 +4763,9 @@ class MenuItemEditDialogComponent {
|
|
|
4183
4763
|
(click)="save()" />
|
|
4184
4764
|
</div>
|
|
4185
4765
|
</p-dialog>
|
|
4186
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$
|
|
4766
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$1.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: i2$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i3$4.Dialog, selector: "p-dialog", inputs: ["hostName", "header", "draggable", "resizable", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "appendTo", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i4$2.InputText, selector: "[pInputText]", inputs: ["hostName", "ptInputText", "pSize", "variant", "fluid", "invalid"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i5$1.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "panelStyle", "styleClass", "panelStyleClass", "readonly", "editable", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "filterValue", "options", "appendTo"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i2.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "styleClass", "panelStyle", "panelStyleClass", "inputId", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "dataKey", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autofocus", "placeholder", "options", "filterValue", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus", "highlightOnSelect", "size", "variant", "fluid", "appendTo"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
4187
4767
|
}
|
|
4188
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
4768
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MenuItemEditDialogComponent, decorators: [{
|
|
4189
4769
|
type: Component,
|
|
4190
4770
|
args: [{
|
|
4191
4771
|
imports: [ButtonModule, DialogModule, InputTextModule, SelectModule, FormsModule, TranslatePipe, MultiSelectModule],
|
|
@@ -4302,8 +4882,8 @@ class MenuComponent {
|
|
|
4302
4882
|
}
|
|
4303
4883
|
];
|
|
4304
4884
|
}
|
|
4305
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
4306
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
4885
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4886
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: MenuComponent, isStandalone: true, selector: "app-menu", providers: [MenuApi], viewQueries: [{ propertyName: "menuItemCreateDialogComponent", first: true, predicate: MenuItemCreateDialogComponent, descendants: true }, { propertyName: "menuItemEditDialogComponent", first: true, predicate: MenuItemEditDialogComponent, descendants: true }, { propertyName: "contextMenu", first: true, predicate: ContextMenu, descendants: true }], ngImport: i0, template: ` <div #empty class="layout-sidebar" (contextmenu)="onContextMenu($event)">
|
|
4307
4887
|
<ul class="layout-menu">
|
|
4308
4888
|
@for (item of menuService.menu; track item; let i = $index) {
|
|
4309
4889
|
<ng-container>
|
|
@@ -4327,9 +4907,9 @@ class MenuComponent {
|
|
|
4327
4907
|
<p-contextMenu [target]="empty" />
|
|
4328
4908
|
<menu-item-create-dialog />
|
|
4329
4909
|
<menu-item-edit-dialog />
|
|
4330
|
-
}`, isInline: true, dependencies: [{ kind: "component", type: MenuItemComponent, selector: "[app-menuitem]", inputs: ["item", "index", "root", "parentKey", "menuItemCreateDialogComponent", "menuItemEditDialogComponent", "contextMenu"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "ngmodule", type: ContextMenuModule }, { kind: "component", type: i1$
|
|
4910
|
+
}`, isInline: true, dependencies: [{ kind: "component", type: MenuItemComponent, selector: "[app-menuitem]", inputs: ["item", "index", "root", "parentKey", "menuItemCreateDialogComponent", "menuItemEditDialogComponent", "contextMenu"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "ngmodule", type: ContextMenuModule }, { kind: "component", type: i1$3.ContextMenu, selector: "p-contextMenu, p-contextmenu, p-context-menu", inputs: ["model", "triggerEvent", "target", "global", "style", "styleClass", "autoZIndex", "baseZIndex", "id", "breakpoint", "ariaLabel", "ariaLabelledBy", "pressDelay", "appendTo"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: DialogModule }, { kind: "ngmodule", type: InputTextModule }, { kind: "component", type: MenuItemCreateDialogComponent, selector: "menu-item-create-dialog", inputs: ["visible"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: MenuItemEditDialogComponent, selector: "menu-item-edit-dialog", inputs: ["visible"], outputs: ["visibleChange"] }] }); }
|
|
4331
4911
|
}
|
|
4332
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
4912
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MenuComponent, decorators: [{
|
|
4333
4913
|
type: Component,
|
|
4334
4914
|
args: [{
|
|
4335
4915
|
imports: [
|
|
@@ -4384,10 +4964,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
|
|
|
4384
4964
|
|
|
4385
4965
|
class SidebarComponent {
|
|
4386
4966
|
constructor() { }
|
|
4387
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
4388
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
4967
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4968
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: SidebarComponent, isStandalone: true, selector: "app-sidebar", ngImport: i0, template: ` <app-menu></app-menu>`, isInline: true, dependencies: [{ kind: "component", type: MenuComponent, selector: "app-menu" }] }); }
|
|
4389
4969
|
}
|
|
4390
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
4970
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SidebarComponent, decorators: [{
|
|
4391
4971
|
type: Component,
|
|
4392
4972
|
args: [{
|
|
4393
4973
|
selector: 'app-sidebar',
|
|
@@ -4474,39 +5054,39 @@ class AppLayoutComponent {
|
|
|
4474
5054
|
this.menuOutsideClickListener();
|
|
4475
5055
|
}
|
|
4476
5056
|
}
|
|
4477
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
4478
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
4479
|
-
<div class="layout-wrapper" [ngClass]="containerClass">
|
|
4480
|
-
<app-topbar></app-topbar>
|
|
4481
|
-
<app-sidebar></app-sidebar>
|
|
4482
|
-
<div class="layout-main-container">
|
|
4483
|
-
<div class="layout-main">
|
|
4484
|
-
<router-outlet></router-outlet>
|
|
4485
|
-
</div>
|
|
4486
|
-
<app-footer></app-footer>
|
|
4487
|
-
</div>
|
|
4488
|
-
<div class="layout-mask animate-fadein"></div>
|
|
4489
|
-
</div>
|
|
4490
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type:
|
|
5057
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AppLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5058
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: AppLayoutComponent, isStandalone: true, selector: "app-layout", providers: [MenuService, MenuApi], viewQueries: [{ propertyName: "appSidebar", first: true, predicate: SidebarComponent, descendants: true }, { propertyName: "appTopBar", first: true, predicate: AppTopbar, descendants: true }], ngImport: i0, template: `
|
|
5059
|
+
<div class="layout-wrapper" [ngClass]="containerClass">
|
|
5060
|
+
<app-topbar></app-topbar>
|
|
5061
|
+
<app-sidebar></app-sidebar>
|
|
5062
|
+
<div class="layout-main-container">
|
|
5063
|
+
<div class="layout-main">
|
|
5064
|
+
<router-outlet></router-outlet>
|
|
5065
|
+
</div>
|
|
5066
|
+
<app-footer></app-footer>
|
|
5067
|
+
</div>
|
|
5068
|
+
<div class="layout-mask animate-fadein"></div>
|
|
5069
|
+
</div>
|
|
5070
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: AppTopbar, selector: "app-topbar" }, { kind: "component", type: SidebarComponent, selector: "app-sidebar" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$2.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: FooterComponent, selector: "app-footer" }] }); }
|
|
4491
5071
|
}
|
|
4492
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
5072
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AppLayoutComponent, decorators: [{
|
|
4493
5073
|
type: Component,
|
|
4494
5074
|
args: [{
|
|
4495
5075
|
selector: 'app-layout',
|
|
4496
5076
|
standalone: true,
|
|
4497
5077
|
imports: [CommonModule, AppTopbar, SidebarComponent, RouterModule, FooterComponent],
|
|
4498
|
-
template: `
|
|
4499
|
-
<div class="layout-wrapper" [ngClass]="containerClass">
|
|
4500
|
-
<app-topbar></app-topbar>
|
|
4501
|
-
<app-sidebar></app-sidebar>
|
|
4502
|
-
<div class="layout-main-container">
|
|
4503
|
-
<div class="layout-main">
|
|
4504
|
-
<router-outlet></router-outlet>
|
|
4505
|
-
</div>
|
|
4506
|
-
<app-footer></app-footer>
|
|
4507
|
-
</div>
|
|
4508
|
-
<div class="layout-mask animate-fadein"></div>
|
|
4509
|
-
</div>
|
|
5078
|
+
template: `
|
|
5079
|
+
<div class="layout-wrapper" [ngClass]="containerClass">
|
|
5080
|
+
<app-topbar></app-topbar>
|
|
5081
|
+
<app-sidebar></app-sidebar>
|
|
5082
|
+
<div class="layout-main-container">
|
|
5083
|
+
<div class="layout-main">
|
|
5084
|
+
<router-outlet></router-outlet>
|
|
5085
|
+
</div>
|
|
5086
|
+
<app-footer></app-footer>
|
|
5087
|
+
</div>
|
|
5088
|
+
<div class="layout-mask animate-fadein"></div>
|
|
5089
|
+
</div>
|
|
4510
5090
|
`,
|
|
4511
5091
|
providers: [MenuService, MenuApi]
|
|
4512
5092
|
}]
|
|
@@ -4529,8 +5109,8 @@ class AppFloatingConfiguratorComponent {
|
|
|
4529
5109
|
darkTheme: !state.darkTheme
|
|
4530
5110
|
}));
|
|
4531
5111
|
}
|
|
4532
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
4533
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
5112
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AppFloatingConfiguratorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5113
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: AppFloatingConfiguratorComponent, isStandalone: true, selector: "app-floating-configurator", ngImport: i0, template: `
|
|
4534
5114
|
<div class="fixed flex gap-4 top-8 right-8">
|
|
4535
5115
|
<p-button
|
|
4536
5116
|
id="oip-app-floating-configurator-dark-theme-button"
|
|
@@ -4554,9 +5134,9 @@ class AppFloatingConfiguratorComponent {
|
|
|
4554
5134
|
<app-configurator />
|
|
4555
5135
|
</div>
|
|
4556
5136
|
</div>
|
|
4557
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$
|
|
5137
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$1.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: StyleClassModule }, { kind: "directive", type: i3$2.StyleClass, selector: "[pStyleClass]", inputs: ["pStyleClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass", "hideOnEscape", "hideOnResize", "resizeSelector"] }, { kind: "component", type: AppConfiguratorComponent, selector: "app-configurator" }] }); }
|
|
4558
5138
|
}
|
|
4559
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
5139
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AppFloatingConfiguratorComponent, decorators: [{
|
|
4560
5140
|
type: Component,
|
|
4561
5141
|
args: [{
|
|
4562
5142
|
selector: 'app-floating-configurator',
|
|
@@ -4589,12 +5169,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
|
|
|
4589
5169
|
}]
|
|
4590
5170
|
}] });
|
|
4591
5171
|
|
|
5172
|
+
var notfound$1 = {
|
|
5173
|
+
title: "Not Found",
|
|
5174
|
+
errorCode: "404",
|
|
5175
|
+
description: "Requested resource is not available.",
|
|
5176
|
+
button: "Go to home"
|
|
5177
|
+
};
|
|
5178
|
+
var en$7 = {
|
|
5179
|
+
notfound: notfound$1
|
|
5180
|
+
};
|
|
5181
|
+
|
|
5182
|
+
var notfound = {
|
|
5183
|
+
title: "Не найдено",
|
|
5184
|
+
errorCode: "404",
|
|
5185
|
+
description: "Запрашиваемый ресурс недоступен.",
|
|
5186
|
+
button: "На главную"
|
|
5187
|
+
};
|
|
5188
|
+
var ru$7 = {
|
|
5189
|
+
notfound: notfound
|
|
5190
|
+
};
|
|
5191
|
+
|
|
5192
|
+
L10nService.registerTranslations({ en: en$7, ru: ru$7 });
|
|
4592
5193
|
class NotfoundComponent {
|
|
4593
5194
|
constructor(l10nService) {
|
|
4594
5195
|
l10nService.get('notfound');
|
|
4595
5196
|
}
|
|
4596
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
4597
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
5197
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NotfoundComponent, deps: [{ token: L10nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5198
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: NotfoundComponent, isStandalone: true, selector: "app-notfound", ngImport: i0, template: ` <app-floating-configurator />
|
|
4598
5199
|
<div class="flex items-center justify-center min-h-screen overflow-hidden">
|
|
4599
5200
|
<div class="flex flex-col items-center justify-center">
|
|
4600
5201
|
<div
|
|
@@ -4614,9 +5215,9 @@ class NotfoundComponent {
|
|
|
4614
5215
|
</div>
|
|
4615
5216
|
</div>
|
|
4616
5217
|
</div>
|
|
4617
|
-
</div>`, isInline: true, dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: LogoComponent, selector: "logo", inputs: ["width", "height"] }, { kind: "component", type: Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: AppFloatingConfiguratorComponent, selector: "app-floating-configurator" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2$
|
|
5218
|
+
</div>`, isInline: true, dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: LogoComponent, selector: "logo", inputs: ["width", "height"] }, { kind: "component", type: Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: AppFloatingConfiguratorComponent, selector: "app-floating-configurator" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2$5.TranslatePipe, name: "translate" }] }); }
|
|
4618
5219
|
}
|
|
4619
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
5220
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NotfoundComponent, decorators: [{
|
|
4620
5221
|
type: Component,
|
|
4621
5222
|
args: [{
|
|
4622
5223
|
selector: 'app-notfound',
|
|
@@ -4663,68 +5264,68 @@ class UnauthorizedComponent {
|
|
|
4663
5264
|
const returnUrl = this.route.snapshot.queryParamMap.get('returnUrl') || '/';
|
|
4664
5265
|
this.securityService.authorize(returnUrl);
|
|
4665
5266
|
}
|
|
4666
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
4667
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
4668
|
-
<app-floating-configurator />
|
|
4669
|
-
<div
|
|
4670
|
-
class="bg-surface-50 dark:bg-surface-950 flex items-center justify-center min-h-screen min-w-[100vw] overflow-hidden">
|
|
4671
|
-
<div class="flex flex-col items-center justify-center">
|
|
4672
|
-
<div
|
|
4673
|
-
style="border-radius: 56px; padding: 0.3rem; background: linear-gradient(180deg, var(--primary-color) 10%, rgba(33, 150, 243, 0) 30%)">
|
|
4674
|
-
<div class="w-full bg-surface-0 dark:bg-surface-900 py-20 px-8 sm:px-20" style="border-radius: 53px">
|
|
4675
|
-
<div class="flex flex-col items-center justify-center">
|
|
4676
|
-
<logo [height]="96" [width]="96" />
|
|
4677
|
-
</div>
|
|
4678
|
-
<div class="text-center mb-8">
|
|
4679
|
-
<div class="text-surface-900 dark:text-surface-0 text-3xl font-medium mb-4">
|
|
4680
|
-
{{ 'unauthorized.welcomeToOip' | translate }}
|
|
4681
|
-
</div>
|
|
4682
|
-
<span class="text-muted-color font-medium">{{ 'unauthorized.signInToContinue' | translate }}</span>
|
|
4683
|
-
</div>
|
|
4684
|
-
<div>
|
|
4685
|
-
<p-button
|
|
4686
|
-
id="oip-unauthorized-error-sign-in-button"
|
|
4687
|
-
label="{{ 'unauthorized.signIn' | translate }}"
|
|
4688
|
-
styleClass="w-full"
|
|
4689
|
-
(click)="signIn()"></p-button>
|
|
4690
|
-
</div>
|
|
4691
|
-
</div>
|
|
4692
|
-
</div>
|
|
4693
|
-
</div>
|
|
4694
|
-
</div>
|
|
4695
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$
|
|
5267
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: UnauthorizedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5268
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: UnauthorizedComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
|
|
5269
|
+
<app-floating-configurator />
|
|
5270
|
+
<div
|
|
5271
|
+
class="bg-surface-50 dark:bg-surface-950 flex items-center justify-center min-h-screen min-w-[100vw] overflow-hidden">
|
|
5272
|
+
<div class="flex flex-col items-center justify-center">
|
|
5273
|
+
<div
|
|
5274
|
+
style="border-radius: 56px; padding: 0.3rem; background: linear-gradient(180deg, var(--primary-color) 10%, rgba(33, 150, 243, 0) 30%)">
|
|
5275
|
+
<div class="w-full bg-surface-0 dark:bg-surface-900 py-20 px-8 sm:px-20" style="border-radius: 53px">
|
|
5276
|
+
<div class="flex flex-col items-center justify-center">
|
|
5277
|
+
<logo [height]="96" [width]="96" />
|
|
5278
|
+
</div>
|
|
5279
|
+
<div class="text-center mb-8">
|
|
5280
|
+
<div class="text-surface-900 dark:text-surface-0 text-3xl font-medium mb-4">
|
|
5281
|
+
{{ 'unauthorized.welcomeToOip' | translate }}
|
|
5282
|
+
</div>
|
|
5283
|
+
<span class="text-muted-color font-medium">{{ 'unauthorized.signInToContinue' | translate }}</span>
|
|
5284
|
+
</div>
|
|
5285
|
+
<div>
|
|
5286
|
+
<p-button
|
|
5287
|
+
id="oip-unauthorized-error-sign-in-button"
|
|
5288
|
+
label="{{ 'unauthorized.signIn' | translate }}"
|
|
5289
|
+
styleClass="w-full"
|
|
5290
|
+
(click)="signIn()"></p-button>
|
|
5291
|
+
</div>
|
|
5292
|
+
</div>
|
|
5293
|
+
</div>
|
|
5294
|
+
</div>
|
|
5295
|
+
</div>
|
|
5296
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$1.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: RippleModule }, { kind: "component", type: LogoComponent, selector: "logo", inputs: ["width", "height"] }, { kind: "component", type: AppFloatingConfiguratorComponent, selector: "app-floating-configurator" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
4696
5297
|
}
|
|
4697
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
5298
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: UnauthorizedComponent, decorators: [{
|
|
4698
5299
|
type: Component,
|
|
4699
5300
|
args: [{
|
|
4700
|
-
template: `
|
|
4701
|
-
<app-floating-configurator />
|
|
4702
|
-
<div
|
|
4703
|
-
class="bg-surface-50 dark:bg-surface-950 flex items-center justify-center min-h-screen min-w-[100vw] overflow-hidden">
|
|
4704
|
-
<div class="flex flex-col items-center justify-center">
|
|
4705
|
-
<div
|
|
4706
|
-
style="border-radius: 56px; padding: 0.3rem; background: linear-gradient(180deg, var(--primary-color) 10%, rgba(33, 150, 243, 0) 30%)">
|
|
4707
|
-
<div class="w-full bg-surface-0 dark:bg-surface-900 py-20 px-8 sm:px-20" style="border-radius: 53px">
|
|
4708
|
-
<div class="flex flex-col items-center justify-center">
|
|
4709
|
-
<logo [height]="96" [width]="96" />
|
|
4710
|
-
</div>
|
|
4711
|
-
<div class="text-center mb-8">
|
|
4712
|
-
<div class="text-surface-900 dark:text-surface-0 text-3xl font-medium mb-4">
|
|
4713
|
-
{{ 'unauthorized.welcomeToOip' | translate }}
|
|
4714
|
-
</div>
|
|
4715
|
-
<span class="text-muted-color font-medium">{{ 'unauthorized.signInToContinue' | translate }}</span>
|
|
4716
|
-
</div>
|
|
4717
|
-
<div>
|
|
4718
|
-
<p-button
|
|
4719
|
-
id="oip-unauthorized-error-sign-in-button"
|
|
4720
|
-
label="{{ 'unauthorized.signIn' | translate }}"
|
|
4721
|
-
styleClass="w-full"
|
|
4722
|
-
(click)="signIn()"></p-button>
|
|
4723
|
-
</div>
|
|
4724
|
-
</div>
|
|
4725
|
-
</div>
|
|
4726
|
-
</div>
|
|
4727
|
-
</div>
|
|
5301
|
+
template: `
|
|
5302
|
+
<app-floating-configurator />
|
|
5303
|
+
<div
|
|
5304
|
+
class="bg-surface-50 dark:bg-surface-950 flex items-center justify-center min-h-screen min-w-[100vw] overflow-hidden">
|
|
5305
|
+
<div class="flex flex-col items-center justify-center">
|
|
5306
|
+
<div
|
|
5307
|
+
style="border-radius: 56px; padding: 0.3rem; background: linear-gradient(180deg, var(--primary-color) 10%, rgba(33, 150, 243, 0) 30%)">
|
|
5308
|
+
<div class="w-full bg-surface-0 dark:bg-surface-900 py-20 px-8 sm:px-20" style="border-radius: 53px">
|
|
5309
|
+
<div class="flex flex-col items-center justify-center">
|
|
5310
|
+
<logo [height]="96" [width]="96" />
|
|
5311
|
+
</div>
|
|
5312
|
+
<div class="text-center mb-8">
|
|
5313
|
+
<div class="text-surface-900 dark:text-surface-0 text-3xl font-medium mb-4">
|
|
5314
|
+
{{ 'unauthorized.welcomeToOip' | translate }}
|
|
5315
|
+
</div>
|
|
5316
|
+
<span class="text-muted-color font-medium">{{ 'unauthorized.signInToContinue' | translate }}</span>
|
|
5317
|
+
</div>
|
|
5318
|
+
<div>
|
|
5319
|
+
<p-button
|
|
5320
|
+
id="oip-unauthorized-error-sign-in-button"
|
|
5321
|
+
label="{{ 'unauthorized.signIn' | translate }}"
|
|
5322
|
+
styleClass="w-full"
|
|
5323
|
+
(click)="signIn()"></p-button>
|
|
5324
|
+
</div>
|
|
5325
|
+
</div>
|
|
5326
|
+
</div>
|
|
5327
|
+
</div>
|
|
5328
|
+
</div>
|
|
4728
5329
|
`,
|
|
4729
5330
|
imports: [
|
|
4730
5331
|
ButtonModule,
|
|
@@ -4737,86 +5338,195 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
|
|
|
4737
5338
|
}]
|
|
4738
5339
|
}] });
|
|
4739
5340
|
|
|
4740
|
-
class
|
|
4741
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
4742
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
5341
|
+
class AccessComponent {
|
|
5342
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AccessComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5343
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: AccessComponent, isStandalone: true, selector: "app-access", ngImport: i0, template: `<div
|
|
4743
5344
|
class="surface-ground flex align-items-center justify-content-center min-h-screen min-w-screen overflow-hidden">
|
|
4744
5345
|
<div class="flex flex-column align-items-center justify-content-center">
|
|
4745
|
-
<img alt="Sakai logo" class="mb-5 w-6rem flex-shrink-0" src="assets/demo/images/
|
|
5346
|
+
<img alt="Sakai logo" class="mb-5 w-6rem flex-shrink-0" src="assets/demo/images/access/logo-orange.svg" />
|
|
4746
5347
|
<div
|
|
4747
|
-
style="border-radius:56px; padding:0.3rem; background: linear-gradient(180deg, rgba(
|
|
5348
|
+
style="border-radius:56px; padding:0.3rem; background: linear-gradient(180deg, rgba(247, 149, 48, 0.4) 10%, rgba(247, 149, 48, 0) 30%);">
|
|
4748
5349
|
<div
|
|
4749
5350
|
class="w-full surface-card py-8 px-5 sm:px-8 flex flex-column align-items-center"
|
|
4750
5351
|
style="border-radius:53px">
|
|
4751
|
-
<div class="grid flex
|
|
5352
|
+
<div class="grid flex-column align-items-center">
|
|
4752
5353
|
<div
|
|
4753
|
-
class="flex justify-content-center align-items-center bg-
|
|
4754
|
-
style="
|
|
4755
|
-
<i class="pi pi-fw pi-
|
|
5354
|
+
class="flex justify-content-center align-items-center bg-orange-500 border-circle"
|
|
5355
|
+
style="width:3.2rem; height:3.2rem;">
|
|
5356
|
+
<i class="text-50 pi pi-fw pi-lock text-2xl"></i>
|
|
4756
5357
|
</div>
|
|
4757
|
-
<h1 class="text-900 font-bold text-5xl mb-2">
|
|
4758
|
-
<span class="text-600 mb-5">
|
|
4759
|
-
<img alt="
|
|
4760
|
-
<button
|
|
5358
|
+
<h1 class="text-900 font-bold text-4xl lg:text-5xl mb-2">Access Denied</h1>
|
|
5359
|
+
<span class="text-600 mb-5">You do not have the necessary permisions. Please contact admins.</span>
|
|
5360
|
+
<img alt="Access denied" class="mb-5" src="assets/demo/images/access/asset-access.svg" width="80%" />
|
|
5361
|
+
<p-button
|
|
4761
5362
|
class="p-button-text"
|
|
4762
5363
|
icon="pi pi-arrow-left"
|
|
4763
|
-
id="oip-app-
|
|
5364
|
+
id="oip-app-access-go-to-dashboard-button"
|
|
4764
5365
|
label="Go to Dashboard"
|
|
4765
5366
|
pButton
|
|
4766
5367
|
pRipple
|
|
4767
|
-
[routerLink]="['/']"></button>
|
|
5368
|
+
[routerLink]="['/']"></p-button>
|
|
4768
5369
|
</div>
|
|
4769
5370
|
</div>
|
|
4770
5371
|
</div>
|
|
4771
5372
|
</div>
|
|
4772
|
-
</div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i1$
|
|
5373
|
+
</div>`, isInline: true, dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i1$1.ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "hostName", "text", "plain", "raised", "size", "outlined", "rounded", "iconPos", "loadingIcon", "fluid", "label", "icon", "loading", "buttonProps", "severity"] }, { kind: "component", type: i1$1.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: RippleModule }, { kind: "directive", type: i2$4.Ripple, selector: "[pRipple]" }] }); }
|
|
4773
5374
|
}
|
|
4774
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
5375
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AccessComponent, decorators: [{
|
|
4775
5376
|
type: Component,
|
|
4776
5377
|
args: [{
|
|
4777
|
-
selector: 'app-
|
|
5378
|
+
selector: 'app-access',
|
|
4778
5379
|
template: `<div
|
|
4779
5380
|
class="surface-ground flex align-items-center justify-content-center min-h-screen min-w-screen overflow-hidden">
|
|
4780
5381
|
<div class="flex flex-column align-items-center justify-content-center">
|
|
4781
|
-
<img alt="Sakai logo" class="mb-5 w-6rem flex-shrink-0" src="assets/demo/images/
|
|
5382
|
+
<img alt="Sakai logo" class="mb-5 w-6rem flex-shrink-0" src="assets/demo/images/access/logo-orange.svg" />
|
|
4782
5383
|
<div
|
|
4783
|
-
style="border-radius:56px; padding:0.3rem; background: linear-gradient(180deg, rgba(
|
|
5384
|
+
style="border-radius:56px; padding:0.3rem; background: linear-gradient(180deg, rgba(247, 149, 48, 0.4) 10%, rgba(247, 149, 48, 0) 30%);">
|
|
4784
5385
|
<div
|
|
4785
5386
|
class="w-full surface-card py-8 px-5 sm:px-8 flex flex-column align-items-center"
|
|
4786
5387
|
style="border-radius:53px">
|
|
4787
|
-
<div class="grid flex
|
|
5388
|
+
<div class="grid flex-column align-items-center">
|
|
4788
5389
|
<div
|
|
4789
|
-
class="flex justify-content-center align-items-center bg-
|
|
4790
|
-
style="
|
|
4791
|
-
<i class="pi pi-fw pi-
|
|
5390
|
+
class="flex justify-content-center align-items-center bg-orange-500 border-circle"
|
|
5391
|
+
style="width:3.2rem; height:3.2rem;">
|
|
5392
|
+
<i class="text-50 pi pi-fw pi-lock text-2xl"></i>
|
|
4792
5393
|
</div>
|
|
4793
|
-
<h1 class="text-900 font-bold text-5xl mb-2">
|
|
4794
|
-
<span class="text-600 mb-5">
|
|
4795
|
-
<img alt="
|
|
4796
|
-
<button
|
|
5394
|
+
<h1 class="text-900 font-bold text-4xl lg:text-5xl mb-2">Access Denied</h1>
|
|
5395
|
+
<span class="text-600 mb-5">You do not have the necessary permisions. Please contact admins.</span>
|
|
5396
|
+
<img alt="Access denied" class="mb-5" src="assets/demo/images/access/asset-access.svg" width="80%" />
|
|
5397
|
+
<p-button
|
|
4797
5398
|
class="p-button-text"
|
|
4798
5399
|
icon="pi pi-arrow-left"
|
|
4799
|
-
id="oip-app-
|
|
5400
|
+
id="oip-app-access-go-to-dashboard-button"
|
|
4800
5401
|
label="Go to Dashboard"
|
|
4801
5402
|
pButton
|
|
4802
5403
|
pRipple
|
|
4803
|
-
[routerLink]="['/']"></button>
|
|
5404
|
+
[routerLink]="['/']"></p-button>
|
|
4804
5405
|
</div>
|
|
4805
5406
|
</div>
|
|
4806
5407
|
</div>
|
|
4807
5408
|
</div>
|
|
5409
|
+
</div>`,
|
|
5410
|
+
imports: [RouterLink, ButtonModule, RippleModule],
|
|
5411
|
+
standalone: true
|
|
5412
|
+
}]
|
|
5413
|
+
}] });
|
|
5414
|
+
|
|
5415
|
+
class ErrorComponent {
|
|
5416
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5417
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: ErrorComponent, isStandalone: true, selector: "app-error", ngImport: i0, template: `<div
|
|
5418
|
+
class="surface-ground flex align-items-center justify-content-center min-h-screen min-w-screen overflow-hidden">
|
|
5419
|
+
<div class="flex flex-column align-items-center justify-content-center">
|
|
5420
|
+
<img alt="Sakai logo" class="mb-5 w-6rem flex-shrink-0" src="assets/demo/images/error/logo-error.svg" />
|
|
5421
|
+
<div
|
|
5422
|
+
style="border-radius:56px; padding:0.3rem; background: linear-gradient(180deg, rgba(233, 30, 99, 0.4) 10%, rgba(33, 150, 243, 0) 30%);">
|
|
5423
|
+
<div
|
|
5424
|
+
class="w-full surface-card py-8 px-5 sm:px-8 flex flex-column align-items-center"
|
|
5425
|
+
style="border-radius:53px">
|
|
5426
|
+
<div class="grid flex flex-column align-items-center">
|
|
5427
|
+
<div
|
|
5428
|
+
class="flex justify-content-center align-items-center bg-pink-500 border-circle"
|
|
5429
|
+
style="height:3.2rem; width:3.2rem;">
|
|
5430
|
+
<i class="pi pi-fw pi-exclamation-circle text-2xl text-white"></i>
|
|
5431
|
+
</div>
|
|
5432
|
+
<h1 class="text-900 font-bold text-5xl mb-2">Error Occured</h1>
|
|
5433
|
+
<span class="text-600 mb-5">Requested resource is not available.</span>
|
|
5434
|
+
<img alt="Error" class="mb-5" src="assets/demo/images/error/asset-error.svg" width="80%" />
|
|
5435
|
+
<button
|
|
5436
|
+
class="p-button-text"
|
|
5437
|
+
icon="pi pi-arrow-left"
|
|
5438
|
+
id="oip-app-error-go-to-dashboard-button"
|
|
5439
|
+
label="Go to Dashboard"
|
|
5440
|
+
pButton
|
|
5441
|
+
pRipple
|
|
5442
|
+
[routerLink]="['/']"></button>
|
|
5443
|
+
</div>
|
|
5444
|
+
</div>
|
|
5445
|
+
</div>
|
|
5446
|
+
</div>
|
|
5447
|
+
</div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i1$1.ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "hostName", "text", "plain", "raised", "size", "outlined", "rounded", "iconPos", "loadingIcon", "fluid", "label", "icon", "loading", "buttonProps", "severity"] }, { kind: "ngmodule", type: RippleModule }, { kind: "directive", type: i2$4.Ripple, selector: "[pRipple]" }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
|
|
5448
|
+
}
|
|
5449
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ErrorComponent, decorators: [{
|
|
5450
|
+
type: Component,
|
|
5451
|
+
args: [{
|
|
5452
|
+
selector: 'app-error',
|
|
5453
|
+
template: `<div
|
|
5454
|
+
class="surface-ground flex align-items-center justify-content-center min-h-screen min-w-screen overflow-hidden">
|
|
5455
|
+
<div class="flex flex-column align-items-center justify-content-center">
|
|
5456
|
+
<img alt="Sakai logo" class="mb-5 w-6rem flex-shrink-0" src="assets/demo/images/error/logo-error.svg" />
|
|
5457
|
+
<div
|
|
5458
|
+
style="border-radius:56px; padding:0.3rem; background: linear-gradient(180deg, rgba(233, 30, 99, 0.4) 10%, rgba(33, 150, 243, 0) 30%);">
|
|
5459
|
+
<div
|
|
5460
|
+
class="w-full surface-card py-8 px-5 sm:px-8 flex flex-column align-items-center"
|
|
5461
|
+
style="border-radius:53px">
|
|
5462
|
+
<div class="grid flex flex-column align-items-center">
|
|
5463
|
+
<div
|
|
5464
|
+
class="flex justify-content-center align-items-center bg-pink-500 border-circle"
|
|
5465
|
+
style="height:3.2rem; width:3.2rem;">
|
|
5466
|
+
<i class="pi pi-fw pi-exclamation-circle text-2xl text-white"></i>
|
|
5467
|
+
</div>
|
|
5468
|
+
<h1 class="text-900 font-bold text-5xl mb-2">Error Occured</h1>
|
|
5469
|
+
<span class="text-600 mb-5">Requested resource is not available.</span>
|
|
5470
|
+
<img alt="Error" class="mb-5" src="assets/demo/images/error/asset-error.svg" width="80%" />
|
|
5471
|
+
<button
|
|
5472
|
+
class="p-button-text"
|
|
5473
|
+
icon="pi pi-arrow-left"
|
|
5474
|
+
id="oip-app-error-go-to-dashboard-button"
|
|
5475
|
+
label="Go to Dashboard"
|
|
5476
|
+
pButton
|
|
5477
|
+
pRipple
|
|
5478
|
+
[routerLink]="['/']"></button>
|
|
5479
|
+
</div>
|
|
5480
|
+
</div>
|
|
5481
|
+
</div>
|
|
5482
|
+
</div>
|
|
4808
5483
|
</div>`,
|
|
4809
5484
|
standalone: true,
|
|
4810
5485
|
imports: [ButtonModule, RippleModule, RouterLink]
|
|
4811
5486
|
}]
|
|
4812
5487
|
}] });
|
|
4813
5488
|
|
|
4814
|
-
|
|
4815
|
-
|
|
5489
|
+
var profileComponent$1 = {
|
|
5490
|
+
changePhoto: "Upload Photo",
|
|
5491
|
+
successfullyUploaded: "Uploaded successfully",
|
|
5492
|
+
failedToLoadPhoto: "Failed to load user photo",
|
|
5493
|
+
deletePhoto: "Delete Photo",
|
|
5494
|
+
deletePhotoConfirmHeader: "Delete Photo",
|
|
5495
|
+
deletePhotoConfirmMessage: "Are you sure you want to delete your photo?",
|
|
5496
|
+
deletePhotoConfirmRejectButtonPropsLabel: "Cancel",
|
|
5497
|
+
deletePhotoConfirmAcceptButtonPropsLabel: "Delete",
|
|
5498
|
+
photoDeleted: "Photo deleted",
|
|
5499
|
+
failedToDeletePhoto: "Failed to delete user photo"
|
|
5500
|
+
};
|
|
5501
|
+
var en$6 = {
|
|
5502
|
+
profileComponent: profileComponent$1
|
|
5503
|
+
};
|
|
5504
|
+
|
|
5505
|
+
var profileComponent = {
|
|
5506
|
+
changePhoto: "Загрузить фото",
|
|
5507
|
+
successfullyUploaded: "Загружено",
|
|
5508
|
+
failedToLoadPhoto: "Не удалось загрузить фото пользователя",
|
|
5509
|
+
deletePhoto: "Удалить фото",
|
|
5510
|
+
deletePhotoConfirmHeader: "Удаление фото",
|
|
5511
|
+
deletePhotoConfirmMessage: "Вы уверены, что хотите удалить своё фото?",
|
|
5512
|
+
deletePhotoConfirmRejectButtonPropsLabel: "Отмена",
|
|
5513
|
+
deletePhotoConfirmAcceptButtonPropsLabel: "Удалить",
|
|
5514
|
+
photoDeleted: "Фото удалено",
|
|
5515
|
+
failedToDeletePhoto: "Не удалось удалить фото пользователя"
|
|
5516
|
+
};
|
|
5517
|
+
var ru$6 = {
|
|
5518
|
+
profileComponent: profileComponent
|
|
5519
|
+
};
|
|
5520
|
+
|
|
5521
|
+
L10nService.registerTranslations({ en: en$6, ru: ru$6 });
|
|
5522
|
+
class UserProfileComponent {
|
|
5523
|
+
constructor(l10nService) {
|
|
4816
5524
|
this.userService = inject(UserService);
|
|
4817
5525
|
this.msgService = inject(MsgService);
|
|
4818
5526
|
this.translateService = inject(TranslateService);
|
|
4819
5527
|
this.userProfileApi = inject(UserProfileApi);
|
|
5528
|
+
this.confirmationService = inject(ConfirmationService);
|
|
5529
|
+
l10nService.get('profileComponent');
|
|
4820
5530
|
}
|
|
4821
5531
|
async uploadPhoto(event) {
|
|
4822
5532
|
const file = event.files?.[0];
|
|
@@ -4832,15 +5542,46 @@ class ProfileComponent {
|
|
|
4832
5542
|
this.msgService.error(error);
|
|
4833
5543
|
}
|
|
4834
5544
|
}
|
|
4835
|
-
|
|
4836
|
-
|
|
5545
|
+
confirmDeletePhoto(event) {
|
|
5546
|
+
this.confirmationService.confirm({
|
|
5547
|
+
target: event.target,
|
|
5548
|
+
header: this.translateService.instant('profileComponent.deletePhotoConfirmHeader'),
|
|
5549
|
+
message: this.translateService.instant('profileComponent.deletePhotoConfirmMessage'),
|
|
5550
|
+
icon: 'pi pi-trash',
|
|
5551
|
+
rejectButtonProps: {
|
|
5552
|
+
label: this.translateService.instant('profileComponent.deletePhotoConfirmRejectButtonPropsLabel'),
|
|
5553
|
+
severity: 'secondary',
|
|
5554
|
+
outlined: true
|
|
5555
|
+
},
|
|
5556
|
+
acceptButtonProps: {
|
|
5557
|
+
label: this.translateService.instant('profileComponent.deletePhotoConfirmAcceptButtonPropsLabel'),
|
|
5558
|
+
severity: 'danger'
|
|
5559
|
+
},
|
|
5560
|
+
accept: async () => {
|
|
5561
|
+
await this.deletePhoto();
|
|
5562
|
+
}
|
|
5563
|
+
});
|
|
5564
|
+
}
|
|
5565
|
+
async deletePhoto() {
|
|
5566
|
+
try {
|
|
5567
|
+
await this.userProfileApi.deleteUserPhoto();
|
|
5568
|
+
this.userService.refreshUserPhoto();
|
|
5569
|
+
this.msgService.success(this.translateService.instant('profileComponent.photoDeleted'));
|
|
5570
|
+
}
|
|
5571
|
+
catch (error) {
|
|
5572
|
+
this.msgService.errorFromException(error, this.translateService.instant('profileComponent.failedToDeletePhoto'));
|
|
5573
|
+
}
|
|
5574
|
+
}
|
|
5575
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: UserProfileComponent, deps: [{ token: L10nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5576
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: UserProfileComponent, isStandalone: true, selector: "user-profile", providers: [ConfirmationService], ngImport: i0, template: `
|
|
5577
|
+
<p-confirmDialog></p-confirmDialog>
|
|
4837
5578
|
<p-avatar
|
|
4838
5579
|
class="mr-2"
|
|
4839
5580
|
id="oip-user-profile-photo-avatar"
|
|
4840
5581
|
shape="circle"
|
|
4841
5582
|
size="xlarge"
|
|
4842
5583
|
[image]="userService.photoLoaded ? userService.photo : null" />
|
|
4843
|
-
<div class="mt-2">
|
|
5584
|
+
<div class="mt-2 flex gap-2">
|
|
4844
5585
|
<p-fileupload
|
|
4845
5586
|
accept="image/*"
|
|
4846
5587
|
chooseIcon="pi pi-upload"
|
|
@@ -4852,23 +5593,34 @@ class ProfileComponent {
|
|
|
4852
5593
|
[auto]="true"
|
|
4853
5594
|
[customUpload]="true"
|
|
4854
5595
|
(uploadHandler)="uploadPhoto($event)" />
|
|
5596
|
+
@if (userService.photoLoaded) {
|
|
5597
|
+
<p-button
|
|
5598
|
+
icon="pi pi-trash"
|
|
5599
|
+
id="oip-user-profile-delete-photo"
|
|
5600
|
+
label="{{ 'profileComponent.deletePhoto' | translate }}"
|
|
5601
|
+
severity="danger"
|
|
5602
|
+
[outlined]="true"
|
|
5603
|
+
(onClick)="confirmDeletePhoto($event)" />
|
|
5604
|
+
}
|
|
4855
5605
|
</div>
|
|
4856
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FileUploadModule }, { kind: "component", type:
|
|
5606
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FileUploadModule }, { kind: "component", type: i2$6.FileUpload, selector: "p-fileupload, p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "chooseButtonProps", "uploadButtonProps", "cancelButtonProps", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "ngmodule", type: ImageModule }, { kind: "ngmodule", type: AvatarModule }, { kind: "component", type: i3$3.Avatar, selector: "p-avatar", inputs: ["label", "icon", "image", "size", "shape", "styleClass", "ariaLabel", "ariaLabelledBy"], outputs: ["onImageError"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$1.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "modal", "visible", "position", "draggable"], outputs: ["onHide"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
4857
5607
|
}
|
|
4858
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
5608
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: UserProfileComponent, decorators: [{
|
|
4859
5609
|
type: Component,
|
|
4860
5610
|
args: [{
|
|
4861
5611
|
selector: 'user-profile',
|
|
4862
5612
|
standalone: true,
|
|
4863
|
-
imports: [FileUploadModule, ImageModule, AvatarModule, TranslatePipe],
|
|
5613
|
+
imports: [FileUploadModule, ImageModule, AvatarModule, ButtonModule, ConfirmDialog, TranslatePipe],
|
|
5614
|
+
providers: [ConfirmationService],
|
|
4864
5615
|
template: `
|
|
5616
|
+
<p-confirmDialog></p-confirmDialog>
|
|
4865
5617
|
<p-avatar
|
|
4866
5618
|
class="mr-2"
|
|
4867
5619
|
id="oip-user-profile-photo-avatar"
|
|
4868
5620
|
shape="circle"
|
|
4869
5621
|
size="xlarge"
|
|
4870
5622
|
[image]="userService.photoLoaded ? userService.photo : null" />
|
|
4871
|
-
<div class="mt-2">
|
|
5623
|
+
<div class="mt-2 flex gap-2">
|
|
4872
5624
|
<p-fileupload
|
|
4873
5625
|
accept="image/*"
|
|
4874
5626
|
chooseIcon="pi pi-upload"
|
|
@@ -4880,11 +5632,61 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
|
|
|
4880
5632
|
[auto]="true"
|
|
4881
5633
|
[customUpload]="true"
|
|
4882
5634
|
(uploadHandler)="uploadPhoto($event)" />
|
|
5635
|
+
@if (userService.photoLoaded) {
|
|
5636
|
+
<p-button
|
|
5637
|
+
icon="pi pi-trash"
|
|
5638
|
+
id="oip-user-profile-delete-photo"
|
|
5639
|
+
label="{{ 'profileComponent.deletePhoto' | translate }}"
|
|
5640
|
+
severity="danger"
|
|
5641
|
+
[outlined]="true"
|
|
5642
|
+
(onClick)="confirmDeletePhoto($event)" />
|
|
5643
|
+
}
|
|
4883
5644
|
</div>
|
|
4884
5645
|
`
|
|
4885
5646
|
}]
|
|
4886
|
-
}] });
|
|
5647
|
+
}], ctorParameters: () => [{ type: L10nService }] });
|
|
5648
|
+
|
|
5649
|
+
var config$1 = {
|
|
5650
|
+
all: "All",
|
|
5651
|
+
applicationManagement: "Application management",
|
|
5652
|
+
dateFormat: "Date format",
|
|
5653
|
+
dateTimeFormat: "Date and time format:",
|
|
5654
|
+
goTo: "Go to",
|
|
5655
|
+
localization: "Localization",
|
|
5656
|
+
menu: "Menu",
|
|
5657
|
+
moduleManagement: "Module management",
|
|
5658
|
+
photo: "Photo",
|
|
5659
|
+
profile: "Profile",
|
|
5660
|
+
selectLanguage: "Select language",
|
|
5661
|
+
timeFormat: "Time format",
|
|
5662
|
+
timeZone: "Time zone",
|
|
5663
|
+
usePhoto256x256Pixel: "Use photo 256x256 pixel"
|
|
5664
|
+
};
|
|
5665
|
+
var en$5 = {
|
|
5666
|
+
config: config$1
|
|
5667
|
+
};
|
|
5668
|
+
|
|
5669
|
+
var config = {
|
|
5670
|
+
all: "Все",
|
|
5671
|
+
applicationManagement: "Управление приложениями",
|
|
5672
|
+
dateFormat: "Формат даты",
|
|
5673
|
+
dateTimeFormat: "Формат даты и времени:",
|
|
5674
|
+
goTo: "Перейти",
|
|
5675
|
+
localization: "Локализация",
|
|
5676
|
+
menu: "Меню",
|
|
5677
|
+
moduleManagement: "Управление модулями",
|
|
5678
|
+
photo: "Фото",
|
|
5679
|
+
profile: "Профиль",
|
|
5680
|
+
selectLanguage: "Выберите язык",
|
|
5681
|
+
timeFormat: "Формат времени",
|
|
5682
|
+
timeZone: "Часовой пояс",
|
|
5683
|
+
usePhoto256x256Pixel: "Используйте фото 256x256 пикселей"
|
|
5684
|
+
};
|
|
5685
|
+
var ru$5 = {
|
|
5686
|
+
config: config
|
|
5687
|
+
};
|
|
4887
5688
|
|
|
5689
|
+
L10nService.registerTranslations({ en: en$5, ru: ru$5 });
|
|
4888
5690
|
class ConfigComponent {
|
|
4889
5691
|
constructor() {
|
|
4890
5692
|
this.layoutService = inject(LayoutService);
|
|
@@ -4921,8 +5723,8 @@ class ConfigComponent {
|
|
|
4921
5723
|
async onSwitchChange() {
|
|
4922
5724
|
await this.menuService.loadMenu();
|
|
4923
5725
|
}
|
|
4924
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
4925
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
5726
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5727
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ConfigComponent, isStandalone: true, selector: "app-config", ngImport: i0, template: `
|
|
4926
5728
|
<div class="flex flex-col md:flex-row gap-4">
|
|
4927
5729
|
<div class="md:w-1/2">
|
|
4928
5730
|
<div class="card flex flex-col gap-4">
|
|
@@ -5026,9 +5828,9 @@ class ConfigComponent {
|
|
|
5026
5828
|
</div>
|
|
5027
5829
|
}
|
|
5028
5830
|
</div>
|
|
5029
|
-
`, isInline: true, dependencies: [{ kind: "component", type:
|
|
5831
|
+
`, isInline: true, dependencies: [{ kind: "component", type: UserProfileComponent, selector: "user-profile" }, { kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "panelStyle", "styleClass", "panelStyleClass", "readonly", "editable", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "filterValue", "options", "appendTo"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: TableModule }, { kind: "ngmodule", type: ToggleSwitchModule }, { kind: "component", type: i2$7.ToggleSwitch, selector: "p-toggleswitch, p-toggleSwitch, p-toggle-switch", inputs: ["styleClass", "tabindex", "inputId", "readonly", "trueValue", "falseValue", "ariaLabel", "size", "ariaLabelledBy", "autofocus"], outputs: ["onChange"] }, { kind: "component", type: Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
5030
5832
|
}
|
|
5031
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
5833
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ConfigComponent, decorators: [{
|
|
5032
5834
|
type: Component,
|
|
5033
5835
|
args: [{
|
|
5034
5836
|
selector: 'app-config',
|
|
@@ -5138,7 +5940,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
|
|
|
5138
5940
|
</div>
|
|
5139
5941
|
`,
|
|
5140
5942
|
imports: [
|
|
5141
|
-
|
|
5943
|
+
UserProfileComponent,
|
|
5142
5944
|
Tooltip,
|
|
5143
5945
|
FormsModule,
|
|
5144
5946
|
Select,
|
|
@@ -5151,11 +5953,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
|
|
|
5151
5953
|
}]
|
|
5152
5954
|
}], ctorParameters: () => [] });
|
|
5153
5955
|
|
|
5956
|
+
var en$4 = {
|
|
5957
|
+
"db-migration": {
|
|
5958
|
+
migrationManager: "Migration manager",
|
|
5959
|
+
actions: {
|
|
5960
|
+
refresh: "Refresh",
|
|
5961
|
+
cleanFilter: "Clean filter",
|
|
5962
|
+
applyMigration: "Apply migration"
|
|
5963
|
+
},
|
|
5964
|
+
columns: {
|
|
5965
|
+
name: "Migration name",
|
|
5966
|
+
applied: "Applied",
|
|
5967
|
+
exist: "Exist",
|
|
5968
|
+
pending: "Pending"
|
|
5969
|
+
},
|
|
5970
|
+
messages: {
|
|
5971
|
+
errorRefreshing: "Error refreshing database"
|
|
5972
|
+
}
|
|
5973
|
+
}
|
|
5974
|
+
};
|
|
5975
|
+
|
|
5976
|
+
var ru$4 = {
|
|
5977
|
+
"db-migration": {
|
|
5978
|
+
migrationManager: "Менеджер миграций",
|
|
5979
|
+
actions: {
|
|
5980
|
+
refresh: "Обновить",
|
|
5981
|
+
cleanFilter: "Очистить фильтр",
|
|
5982
|
+
applyMigration: "Применить миграцию"
|
|
5983
|
+
},
|
|
5984
|
+
columns: {
|
|
5985
|
+
name: "Название миграции",
|
|
5986
|
+
applied: "Применена",
|
|
5987
|
+
exist: "Существует",
|
|
5988
|
+
pending: "Ожидает"
|
|
5989
|
+
},
|
|
5990
|
+
messages: {
|
|
5991
|
+
errorRefreshing: "Ошибка обновления базы данных"
|
|
5992
|
+
}
|
|
5993
|
+
}
|
|
5994
|
+
};
|
|
5995
|
+
|
|
5154
5996
|
class DbMigrationComponent extends BaseModuleComponent {
|
|
5155
|
-
|
|
5156
|
-
super();
|
|
5157
|
-
this.l10nService.loadComponentTranslations('db-migration');
|
|
5158
|
-
}
|
|
5997
|
+
static { this.translations = { en: en$4, ru: ru$4 }; }
|
|
5159
5998
|
async ngOnInit() {
|
|
5160
5999
|
await super.ngOnInit();
|
|
5161
6000
|
await this.refreshAction();
|
|
@@ -5177,8 +6016,8 @@ class DbMigrationComponent extends BaseModuleComponent {
|
|
|
5177
6016
|
const request = { name: rowData.name };
|
|
5178
6017
|
return this.applyModuleMigration(request);
|
|
5179
6018
|
}
|
|
5180
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
5181
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
6019
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DbMigrationComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
6020
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DbMigrationComponent, isStandalone: true, selector: "db-migration", providers: [ConfirmationService], usesInheritance: true, ngImport: i0, template: `
|
|
5182
6021
|
@if (isContent) {
|
|
5183
6022
|
<div class="card" style="height: 100%">
|
|
5184
6023
|
<p-confirmDialog />
|
|
@@ -5256,9 +6095,9 @@ class DbMigrationComponent extends BaseModuleComponent {
|
|
|
5256
6095
|
} @else if (isSecurity) {
|
|
5257
6096
|
<security [controller]="controller" [id]="id" />
|
|
5258
6097
|
}
|
|
5259
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: TableModule }, { kind: "component", type: i1$
|
|
6098
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: TableModule }, { kind: "component", type: i1$4.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i2$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i1$4.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "directive", type: i1$4.EditableRow, selector: "[pEditableRow]", inputs: ["pEditableRow", "pEditableRowDisabled"] }, { kind: "directive", type: i1$4.CancelEditableRow, selector: "[pCancelEditableRow]" }, { kind: "component", type: i1$4.ColumnFilter, selector: "p-columnFilter, p-column-filter, p-columnfilter", inputs: ["field", "type", "display", "showMenu", "matchMode", "operator", "showOperator", "showClearButton", "showApplyButton", "showMatchModes", "showAddButton", "hideOnClear", "placeholder", "matchModeOptions", "maxConstraints", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "filterOn", "useGrouping", "showButtons", "ariaLabel", "filterButtonProps"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: SharedModule }, { kind: "ngmodule", type: TagModule }, { kind: "ngmodule", type: InputTextModule }, { kind: "ngmodule", type: TextareaModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$1.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "modal", "visible", "position", "draggable"], outputs: ["onHide"] }, { kind: "component", type: SecurityComponent, selector: "security", inputs: ["id", "controller"] }, { kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
5260
6099
|
}
|
|
5261
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
6100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DbMigrationComponent, decorators: [{
|
|
5262
6101
|
type: Component,
|
|
5263
6102
|
args: [{
|
|
5264
6103
|
imports: [
|
|
@@ -5356,7 +6195,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
|
|
|
5356
6195
|
`,
|
|
5357
6196
|
providers: [ConfirmationService]
|
|
5358
6197
|
}]
|
|
5359
|
-
}]
|
|
6198
|
+
}] });
|
|
5360
6199
|
|
|
5361
6200
|
/* eslint-disable */
|
|
5362
6201
|
/* tslint:disable */
|
|
@@ -5403,10 +6242,10 @@ class ExtensionModulesApi extends HttpClient {
|
|
|
5403
6242
|
...params,
|
|
5404
6243
|
});
|
|
5405
6244
|
}
|
|
5406
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
5407
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
6245
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ExtensionModulesApi, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6246
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ExtensionModulesApi }); }
|
|
5408
6247
|
}
|
|
5409
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
6248
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ExtensionModulesApi, decorators: [{
|
|
5410
6249
|
type: Injectable
|
|
5411
6250
|
}] });
|
|
5412
6251
|
|
|
@@ -5447,13 +6286,76 @@ class ModuleApi extends HttpClient {
|
|
|
5447
6286
|
...params,
|
|
5448
6287
|
});
|
|
5449
6288
|
}
|
|
5450
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
5451
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
6289
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ModuleApi, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6290
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ModuleApi }); }
|
|
5452
6291
|
}
|
|
5453
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
6292
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ModuleApi, decorators: [{
|
|
5454
6293
|
type: Injectable
|
|
5455
6294
|
}] });
|
|
5456
6295
|
|
|
6296
|
+
var en$3 = {
|
|
6297
|
+
"app-modules": {
|
|
6298
|
+
title: "Modules",
|
|
6299
|
+
refreshTooltip: "Refresh",
|
|
6300
|
+
register: {
|
|
6301
|
+
manifestUrlPlaceholder: "External module manifest URL",
|
|
6302
|
+
button: "Register"
|
|
6303
|
+
},
|
|
6304
|
+
table: {
|
|
6305
|
+
moduleId: "Module ID",
|
|
6306
|
+
name: "Name",
|
|
6307
|
+
currentlyLoaded: "Currently Loaded",
|
|
6308
|
+
yes: "Yes",
|
|
6309
|
+
no: "No",
|
|
6310
|
+
deleteTooltip: "Delete"
|
|
6311
|
+
},
|
|
6312
|
+
confirm: {
|
|
6313
|
+
header: "Warning",
|
|
6314
|
+
message: "Are you sure you want to delete the module?",
|
|
6315
|
+
cancel: "Cancel",
|
|
6316
|
+
"delete": "Delete"
|
|
6317
|
+
},
|
|
6318
|
+
messages: {
|
|
6319
|
+
deleteSuccess: "Module deleted",
|
|
6320
|
+
deleteError: "Module delete failed",
|
|
6321
|
+
registerError: "External module registration failed",
|
|
6322
|
+
registerSuccess: "External module registered"
|
|
6323
|
+
}
|
|
6324
|
+
}
|
|
6325
|
+
};
|
|
6326
|
+
|
|
6327
|
+
var ru$3 = {
|
|
6328
|
+
"app-modules": {
|
|
6329
|
+
title: "Модули",
|
|
6330
|
+
refreshTooltip: "Обновить",
|
|
6331
|
+
register: {
|
|
6332
|
+
manifestUrlPlaceholder: "URL манифеста внешнего модуля",
|
|
6333
|
+
button: "Зарегистрировать"
|
|
6334
|
+
},
|
|
6335
|
+
table: {
|
|
6336
|
+
moduleId: "ID модуля",
|
|
6337
|
+
name: "Название",
|
|
6338
|
+
currentlyLoaded: "Загружен",
|
|
6339
|
+
yes: "Да",
|
|
6340
|
+
no: "Нет",
|
|
6341
|
+
deleteTooltip: "Удалить"
|
|
6342
|
+
},
|
|
6343
|
+
confirm: {
|
|
6344
|
+
header: "Внимание",
|
|
6345
|
+
message: "Вы уверены, что хотите удалить модуль?",
|
|
6346
|
+
cancel: "Отмена",
|
|
6347
|
+
"delete": "Удалить"
|
|
6348
|
+
},
|
|
6349
|
+
messages: {
|
|
6350
|
+
deleteSuccess: "Модуль удален",
|
|
6351
|
+
deleteError: "Не удалось удалить модуль",
|
|
6352
|
+
registerError: "Не удалось зарегистрировать внешний модуль",
|
|
6353
|
+
registerSuccess: "Внешний модуль зарегистрирован"
|
|
6354
|
+
}
|
|
6355
|
+
}
|
|
6356
|
+
};
|
|
6357
|
+
|
|
6358
|
+
L10nService.registerTranslations({ en: en$3, ru: ru$3 });
|
|
5457
6359
|
class AppModulesComponent {
|
|
5458
6360
|
constructor() {
|
|
5459
6361
|
this.modules = [];
|
|
@@ -5531,8 +6433,8 @@ class AppModulesComponent {
|
|
|
5531
6433
|
t(key) {
|
|
5532
6434
|
return this.l10nService.instant(key);
|
|
5533
6435
|
}
|
|
5534
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
5535
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
6436
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AppModulesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6437
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: AppModulesComponent, isStandalone: true, selector: "app-modules", providers: [ConfirmationService, ModuleApi, ExtensionModulesApi], ngImport: i0, template: `
|
|
5536
6438
|
<p-confirmDialog></p-confirmDialog>
|
|
5537
6439
|
<div class="flex flex-col md:flex-row gap-4">
|
|
5538
6440
|
<div class="card w-full">
|
|
@@ -5605,9 +6507,9 @@ class AppModulesComponent {
|
|
|
5605
6507
|
</p-table>
|
|
5606
6508
|
</div>
|
|
5607
6509
|
</div>
|
|
5608
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1
|
|
6510
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i1$4.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i2$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: Tag, selector: "p-tag", inputs: ["styleClass", "severity", "value", "icon", "rounded"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$1.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ToolbarModule }, { kind: "component", type: i5$2.Toolbar, selector: "p-toolbar", inputs: ["styleClass", "ariaLabelledBy"] }, { kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip"] }, { kind: "component", type: ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "modal", "visible", "position", "draggable"], outputs: ["onHide"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i4$2.InputText, selector: "[pInputText]", inputs: ["hostName", "ptInputText", "pSize", "variant", "fluid", "invalid"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
5609
6511
|
}
|
|
5610
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
6512
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AppModulesComponent, decorators: [{
|
|
5611
6513
|
type: Component,
|
|
5612
6514
|
args: [{
|
|
5613
6515
|
imports: [
|
|
@@ -5706,6 +6608,103 @@ var ServiceType;
|
|
|
5706
6608
|
ServiceType["Application"] = "Application";
|
|
5707
6609
|
})(ServiceType || (ServiceType = {}));
|
|
5708
6610
|
|
|
6611
|
+
var applications$1 = {
|
|
6612
|
+
title: "Applications",
|
|
6613
|
+
subtitle: "Manage the frontend application registry",
|
|
6614
|
+
searchPlaceholder: "Search applications",
|
|
6615
|
+
search: "Search",
|
|
6616
|
+
clear: "Clear",
|
|
6617
|
+
add: "Add",
|
|
6618
|
+
refreshTooltip: "Refresh",
|
|
6619
|
+
empty: "No applications found",
|
|
6620
|
+
table: {
|
|
6621
|
+
code: "Code",
|
|
6622
|
+
displayName: "Name",
|
|
6623
|
+
baseUrl: "Base URL",
|
|
6624
|
+
internalBaseUrl: "Internal Base URL",
|
|
6625
|
+
icon: "Icon",
|
|
6626
|
+
order: "Order",
|
|
6627
|
+
enabled: "Enabled",
|
|
6628
|
+
serviceType: "Service type",
|
|
6629
|
+
current: "Current",
|
|
6630
|
+
actions: "Actions",
|
|
6631
|
+
yes: "Yes",
|
|
6632
|
+
no: "No",
|
|
6633
|
+
editTooltip: "Edit",
|
|
6634
|
+
deleteTooltip: "Delete",
|
|
6635
|
+
saveTooltip: "Save",
|
|
6636
|
+
cancelTooltip: "Cancel"
|
|
6637
|
+
},
|
|
6638
|
+
serviceTypes: {
|
|
6639
|
+
service: "Service",
|
|
6640
|
+
application: "Application"
|
|
6641
|
+
},
|
|
6642
|
+
confirm: {
|
|
6643
|
+
header: "Warning",
|
|
6644
|
+
message: "Are you sure you want to delete application {{displayName}}?",
|
|
6645
|
+
cancel: "Cancel",
|
|
6646
|
+
"delete": "Delete"
|
|
6647
|
+
},
|
|
6648
|
+
messages: {
|
|
6649
|
+
requiredFields: "Fill code, name and Base URL",
|
|
6650
|
+
createSuccess: "Application created",
|
|
6651
|
+
updateSuccess: "Application updated",
|
|
6652
|
+
deleteSuccess: "Application deleted"
|
|
6653
|
+
}
|
|
6654
|
+
};
|
|
6655
|
+
var en$2 = {
|
|
6656
|
+
applications: applications$1
|
|
6657
|
+
};
|
|
6658
|
+
|
|
6659
|
+
var applications = {
|
|
6660
|
+
title: "Приложения",
|
|
6661
|
+
subtitle: "Управление реестром фронтенд-приложений",
|
|
6662
|
+
searchPlaceholder: "Поиск по приложениям",
|
|
6663
|
+
search: "Найти",
|
|
6664
|
+
clear: "Очистить",
|
|
6665
|
+
add: "Добавить",
|
|
6666
|
+
refreshTooltip: "Обновить",
|
|
6667
|
+
empty: "Приложения не найдены",
|
|
6668
|
+
table: {
|
|
6669
|
+
code: "Код",
|
|
6670
|
+
displayName: "Название",
|
|
6671
|
+
baseUrl: "Base URL",
|
|
6672
|
+
internalBaseUrl: "Internal Base URL",
|
|
6673
|
+
icon: "Иконка",
|
|
6674
|
+
order: "Порядок",
|
|
6675
|
+
enabled: "Включено",
|
|
6676
|
+
serviceType: "Тип сервиса",
|
|
6677
|
+
current: "Текущее",
|
|
6678
|
+
actions: "Действия",
|
|
6679
|
+
yes: "Да",
|
|
6680
|
+
no: "Нет",
|
|
6681
|
+
editTooltip: "Редактировать",
|
|
6682
|
+
deleteTooltip: "Удалить",
|
|
6683
|
+
saveTooltip: "Сохранить",
|
|
6684
|
+
cancelTooltip: "Отменить"
|
|
6685
|
+
},
|
|
6686
|
+
serviceTypes: {
|
|
6687
|
+
service: "Сервис",
|
|
6688
|
+
application: "Приложение"
|
|
6689
|
+
},
|
|
6690
|
+
confirm: {
|
|
6691
|
+
header: "Внимание",
|
|
6692
|
+
message: "Вы уверены, что хотите удалить приложение {{displayName}}?",
|
|
6693
|
+
cancel: "Отмена",
|
|
6694
|
+
"delete": "Удалить"
|
|
6695
|
+
},
|
|
6696
|
+
messages: {
|
|
6697
|
+
requiredFields: "Заполните код, название и Base URL",
|
|
6698
|
+
createSuccess: "Приложение создано",
|
|
6699
|
+
updateSuccess: "Приложение обновлено",
|
|
6700
|
+
deleteSuccess: "Приложение удалено"
|
|
6701
|
+
}
|
|
6702
|
+
};
|
|
6703
|
+
var ru$2 = {
|
|
6704
|
+
applications: applications
|
|
6705
|
+
};
|
|
6706
|
+
|
|
6707
|
+
L10nService.registerTranslations({ en: en$2, ru: ru$2 });
|
|
5709
6708
|
class ApplicationsComponent {
|
|
5710
6709
|
get serviceTypeOptions() {
|
|
5711
6710
|
return [
|
|
@@ -5927,8 +6926,8 @@ class ApplicationsComponent {
|
|
|
5927
6926
|
t(key, params) {
|
|
5928
6927
|
return this.l10nService.instant(key, params);
|
|
5929
6928
|
}
|
|
5930
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
5931
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
6929
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ApplicationsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6930
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ApplicationsComponent, isStandalone: true, selector: "app-applications", providers: [ApplicationsApi, ConfirmationService], ngImport: i0, template: `
|
|
5932
6931
|
<p-confirmDialog></p-confirmDialog>
|
|
5933
6932
|
<div class="flex flex-col gap-4">
|
|
5934
6933
|
<div class="card w-full">
|
|
@@ -6158,9 +7157,9 @@ class ApplicationsComponent {
|
|
|
6158
7157
|
</p-table>
|
|
6159
7158
|
</div>
|
|
6160
7159
|
</div>
|
|
6161
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1
|
|
7160
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i1$4.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i2$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i1$4.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i1$4.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: Tag, selector: "p-tag", inputs: ["styleClass", "severity", "value", "icon", "rounded"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$1.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ToolbarModule }, { kind: "component", type: i5$2.Toolbar, selector: "p-toolbar", inputs: ["styleClass", "ariaLabelledBy"] }, { kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip"] }, { kind: "component", type: ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "modal", "visible", "position", "draggable"], outputs: ["onHide"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["hostName", "ptInputText", "pSize", "variant", "fluid", "invalid"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i5$1.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "panelStyle", "styleClass", "panelStyleClass", "readonly", "editable", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "filterValue", "options", "appendTo"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: ToggleSwitchModule }, { kind: "component", type: i2$7.ToggleSwitch, selector: "p-toggleswitch, p-toggleSwitch, p-toggle-switch", inputs: ["styleClass", "tabindex", "inputId", "readonly", "trueValue", "falseValue", "ariaLabel", "size", "ariaLabelledBy", "autofocus"], outputs: ["onChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
6162
7161
|
}
|
|
6163
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
7162
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ApplicationsComponent, decorators: [{
|
|
6164
7163
|
type: Component,
|
|
6165
7164
|
args: [{
|
|
6166
7165
|
imports: [
|
|
@@ -6512,10 +7511,10 @@ class DiscussionApi extends HttpClient {
|
|
|
6512
7511
|
...params,
|
|
6513
7512
|
});
|
|
6514
7513
|
}
|
|
6515
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
6516
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
7514
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DiscussionApi, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
7515
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DiscussionApi }); }
|
|
6517
7516
|
}
|
|
6518
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
7517
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DiscussionApi, decorators: [{
|
|
6519
7518
|
type: Injectable
|
|
6520
7519
|
}] });
|
|
6521
7520
|
|
|
@@ -6532,8 +7531,97 @@ function getInitialsFromString(input) {
|
|
|
6532
7531
|
return firstInitial + lastInitial;
|
|
6533
7532
|
}
|
|
6534
7533
|
|
|
7534
|
+
var discussionComponent$1 = {
|
|
7535
|
+
writeCommentPlaceholder: "Write a comment. Use @email or @first.last for mentions.",
|
|
7536
|
+
mentionSuggestions: "Mention suggestions",
|
|
7537
|
+
edit: "Edit",
|
|
7538
|
+
preview: "Preview",
|
|
7539
|
+
attachFiles: "Attach files",
|
|
7540
|
+
send: "Send",
|
|
7541
|
+
loadingComments: "Loading comments...",
|
|
7542
|
+
noCommentsYet: "No comments yet.",
|
|
7543
|
+
edited: "Edited",
|
|
7544
|
+
editCommentPlaceholder: "Edit comment",
|
|
7545
|
+
addAttachment: "Add attachment",
|
|
7546
|
+
save: "Save",
|
|
7547
|
+
cancel: "Cancel",
|
|
7548
|
+
editHistory: "Edit history",
|
|
7549
|
+
loadingHistory: "Loading history...",
|
|
7550
|
+
before: "Before",
|
|
7551
|
+
after: "After",
|
|
7552
|
+
warning: "Warning",
|
|
7553
|
+
"delete": "Delete",
|
|
7554
|
+
confirmDeleteComment: "Are you sure you want to delete this comment?",
|
|
7555
|
+
confirmDeleteFile: "Are you sure you want to delete the file \"{{fileName}}\"?",
|
|
7556
|
+
units: {
|
|
7557
|
+
bytes: "B",
|
|
7558
|
+
kilobytes: "KB",
|
|
7559
|
+
megabytes: "MB"
|
|
7560
|
+
},
|
|
7561
|
+
errors: {
|
|
7562
|
+
loadComments: "Failed to load comments.",
|
|
7563
|
+
createComment: "Failed to create comment.",
|
|
7564
|
+
updateComment: "Failed to update comment.",
|
|
7565
|
+
loadEditHistory: "Failed to load edit history.",
|
|
7566
|
+
uploadAttachment: "Failed to upload attachment.",
|
|
7567
|
+
deleteComment: "Failed to delete comment.",
|
|
7568
|
+
deleteAttachment: "Failed to delete attachment.",
|
|
7569
|
+
downloadAttachment: "Failed to download attachment.",
|
|
7570
|
+
updateReaction: "Failed to update reaction.",
|
|
7571
|
+
addReaction: "Failed to add reaction."
|
|
7572
|
+
}
|
|
7573
|
+
};
|
|
7574
|
+
var en$1 = {
|
|
7575
|
+
discussionComponent: discussionComponent$1
|
|
7576
|
+
};
|
|
7577
|
+
|
|
7578
|
+
var discussionComponent = {
|
|
7579
|
+
writeCommentPlaceholder: "Напишите комментарий. Используйте @email или @first.last для упоминаний.",
|
|
7580
|
+
mentionSuggestions: "Варианты упоминаний",
|
|
7581
|
+
edit: "Редактировать",
|
|
7582
|
+
preview: "Предпросмотр",
|
|
7583
|
+
attachFiles: "Прикрепить файлы",
|
|
7584
|
+
send: "Отправить",
|
|
7585
|
+
loadingComments: "Загрузка комментариев...",
|
|
7586
|
+
noCommentsYet: "Комментариев пока нет.",
|
|
7587
|
+
edited: "Изменено",
|
|
7588
|
+
editCommentPlaceholder: "Изменить комментарий",
|
|
7589
|
+
addAttachment: "Добавить вложение",
|
|
7590
|
+
save: "Сохранить",
|
|
7591
|
+
cancel: "Отмена",
|
|
7592
|
+
editHistory: "История изменений",
|
|
7593
|
+
loadingHistory: "Загрузка истории...",
|
|
7594
|
+
before: "До",
|
|
7595
|
+
after: "После",
|
|
7596
|
+
warning: "Предупреждение",
|
|
7597
|
+
"delete": "Удалить",
|
|
7598
|
+
confirmDeleteComment: "Вы уверены, что хотите удалить этот комментарий?",
|
|
7599
|
+
confirmDeleteFile: "Вы уверены, что хотите удалить файл \"{{fileName}}\"?",
|
|
7600
|
+
units: {
|
|
7601
|
+
bytes: "Б",
|
|
7602
|
+
kilobytes: "КБ",
|
|
7603
|
+
megabytes: "МБ"
|
|
7604
|
+
},
|
|
7605
|
+
errors: {
|
|
7606
|
+
loadComments: "Не удалось загрузить комментарии.",
|
|
7607
|
+
createComment: "Не удалось создать комментарий.",
|
|
7608
|
+
updateComment: "Не удалось обновить комментарий.",
|
|
7609
|
+
loadEditHistory: "Не удалось загрузить историю изменений.",
|
|
7610
|
+
uploadAttachment: "Не удалось загрузить вложение.",
|
|
7611
|
+
deleteComment: "Не удалось удалить комментарий.",
|
|
7612
|
+
deleteAttachment: "Не удалось удалить вложение.",
|
|
7613
|
+
downloadAttachment: "Не удалось скачать вложение.",
|
|
7614
|
+
updateReaction: "Не удалось обновить реакцию.",
|
|
7615
|
+
addReaction: "Не удалось добавить реакцию."
|
|
7616
|
+
}
|
|
7617
|
+
};
|
|
7618
|
+
var ru$1 = {
|
|
7619
|
+
discussionComponent: discussionComponent
|
|
7620
|
+
};
|
|
7621
|
+
|
|
7622
|
+
L10nService.registerTranslations({ en: en$1, ru: ru$1 });
|
|
6535
7623
|
class DiscussionComponent {
|
|
6536
|
-
constructor() {
|
|
7624
|
+
constructor(l10nService) {
|
|
6537
7625
|
this.msgService = inject(MsgService);
|
|
6538
7626
|
this.discussionApi = inject(DiscussionApi);
|
|
6539
7627
|
this.sanitizer = inject(DomSanitizer);
|
|
@@ -6556,6 +7644,7 @@ class DiscussionComponent {
|
|
|
6556
7644
|
this.emojiPalette = ['👍', '👎', '🐳', '🍆', '🍑'];
|
|
6557
7645
|
this.mentionSearchTimer = null;
|
|
6558
7646
|
this.getInitialsFromString = getInitialsFromString;
|
|
7647
|
+
l10nService.get('discussionComponent');
|
|
6559
7648
|
}
|
|
6560
7649
|
ngOnChanges(changes) {
|
|
6561
7650
|
if ((changes['objectTypeId'] || changes['objectId']) && this.objectTypeId && this.objectId) {
|
|
@@ -6932,8 +8021,8 @@ class DiscussionComponent {
|
|
|
6932
8021
|
const match = value.match(/@([A-Za-z0-9._+\-@]*)$/);
|
|
6933
8022
|
return match?.[1] ?? null;
|
|
6934
8023
|
}
|
|
6935
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
6936
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
8024
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DiscussionComponent, deps: [{ token: L10nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8025
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DiscussionComponent, isStandalone: true, selector: "discussion", inputs: { objectTypeId: "objectTypeId", objectId: "objectId" }, providers: [ConfirmationService, DiscussionApi], usesOnChanges: true, ngImport: i0, template: `
|
|
6937
8026
|
<p-confirmDialog />
|
|
6938
8027
|
|
|
6939
8028
|
<section class="flex flex-col gap-4">
|
|
@@ -7247,9 +8336,9 @@ class DiscussionComponent {
|
|
|
7247
8336
|
</div>
|
|
7248
8337
|
}
|
|
7249
8338
|
</section>
|
|
7250
|
-
`, isInline: true, styles: [":host{display:block}.file-trigger{position:relative;display:inline-flex}.file-trigger input{position:absolute;inset:0;opacity:0;cursor:pointer}.markdown-preview,.history-markdown{word-break:break-word}.markdown-preview :is(h1,h2,h3),.history-markdown :is(h1,h2,h3){margin:0 0 .75rem;font-weight:600}.markdown-preview a,.history-markdown a{color:#2563eb;text-decoration:underline;text-underline-offset:.18em}.emoji-popover{display:flex;flex-wrap:wrap;gap:.5rem;max-width:16rem}.emoji-option{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;font-size:1.25rem;cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1
|
|
8339
|
+
`, isInline: true, styles: [":host{display:block}.file-trigger{position:relative;display:inline-flex}.file-trigger input{position:absolute;inset:0;opacity:0;cursor:pointer}.markdown-preview,.history-markdown{word-break:break-word}.markdown-preview :is(h1,h2,h3),.history-markdown :is(h1,h2,h3){margin:0 0 .75rem;font-weight:600}.markdown-preview a,.history-markdown a{color:#2563eb;text-decoration:underline;text-underline-offset:.18em}.emoji-popover{display:flex;flex-wrap:wrap;gap:.5rem;max-width:16rem}.emoji-option{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;font-size:1.25rem;cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AvatarModule }, { kind: "component", type: i3$3.Avatar, selector: "p-avatar", inputs: ["label", "icon", "image", "size", "shape", "styleClass", "ariaLabel", "ariaLabelledBy"], outputs: ["onImageError"] }, { kind: "directive", type: i2$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$1.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: CardModule }, { kind: "component", type: i6.Card, selector: "p-card", inputs: ["header", "subheader", "style", "styleClass"] }, { kind: "component", type: ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "modal", "visible", "position", "draggable"], outputs: ["onHide"] }, { kind: "ngmodule", type: DividerModule }, { kind: "ngmodule", type: PanelModule }, { kind: "component", type: i7.Panel, selector: "p-panel", inputs: ["id", "toggleable", "header", "collapsed", "styleClass", "iconPos", "showHeader", "toggler", "transitionOptions", "toggleButtonProps"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "ngmodule", type: PopoverModule }, { kind: "component", type: i8.Popover, selector: "p-popover", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: ProgressSpinnerModule }, { kind: "component", type: i5.ProgressSpinner, selector: "p-progressSpinner, p-progress-spinner, p-progressspinner", inputs: ["styleClass", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "ngmodule", type: TagModule }, { kind: "component", type: i10.Tag, selector: "p-tag", inputs: ["styleClass", "severity", "value", "icon", "rounded"] }, { kind: "directive", type: Textarea, selector: "[pTextarea], [pInputTextarea]", inputs: ["autoResize", "pSize", "variant", "fluid", "invalid"], outputs: ["onResize"] }, { kind: "pipe", type: i2$1.DatePipe, name: "date" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7251
8340
|
}
|
|
7252
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
8341
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DiscussionComponent, decorators: [{
|
|
7253
8342
|
type: Component,
|
|
7254
8343
|
args: [{ selector: 'discussion', standalone: true, providers: [ConfirmationService, DiscussionApi], imports: [
|
|
7255
8344
|
CommonModule,
|
|
@@ -7581,7 +8670,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
|
|
|
7581
8670
|
}
|
|
7582
8671
|
</section>
|
|
7583
8672
|
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}.file-trigger{position:relative;display:inline-flex}.file-trigger input{position:absolute;inset:0;opacity:0;cursor:pointer}.markdown-preview,.history-markdown{word-break:break-word}.markdown-preview :is(h1,h2,h3),.history-markdown :is(h1,h2,h3){margin:0 0 .75rem;font-weight:600}.markdown-preview a,.history-markdown a{color:#2563eb;text-decoration:underline;text-underline-offset:.18em}.emoji-popover{display:flex;flex-wrap:wrap;gap:.5rem;max-width:16rem}.emoji-option{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;font-size:1.25rem;cursor:pointer}\n"] }]
|
|
7584
|
-
}], propDecorators: { objectTypeId: [{
|
|
8673
|
+
}], ctorParameters: () => [{ type: L10nService }], propDecorators: { objectTypeId: [{
|
|
7585
8674
|
type: Input,
|
|
7586
8675
|
args: [{ required: true }]
|
|
7587
8676
|
}], objectId: [{
|
|
@@ -7589,13 +8678,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
|
|
|
7589
8678
|
args: [{ required: true }]
|
|
7590
8679
|
}] } });
|
|
7591
8680
|
|
|
8681
|
+
var en = {
|
|
8682
|
+
"iframe-module": {
|
|
8683
|
+
iframeModule: {
|
|
8684
|
+
urlPlaceholder: "Site URL",
|
|
8685
|
+
settingSaveButtonLabel: "Save",
|
|
8686
|
+
emptyUrlMessage: "Site URL is not specified.",
|
|
8687
|
+
siteLoadingMessage: "Failed to load the site."
|
|
8688
|
+
}
|
|
8689
|
+
}
|
|
8690
|
+
};
|
|
8691
|
+
|
|
8692
|
+
var ru = {
|
|
8693
|
+
"iframe-module": {
|
|
8694
|
+
iframeModule: {
|
|
8695
|
+
urlPlaceholder: "URL сайта",
|
|
8696
|
+
settingSaveButtonLabel: "Сохранить",
|
|
8697
|
+
emptyUrlMessage: "URL сайта не указан.",
|
|
8698
|
+
siteLoadingMessage: "Не удалось загрузить сайт."
|
|
8699
|
+
}
|
|
8700
|
+
}
|
|
8701
|
+
};
|
|
8702
|
+
|
|
7592
8703
|
class IframeModuleComponent extends BaseModuleComponent {
|
|
8704
|
+
static { this.translations = { en, ru }; }
|
|
7593
8705
|
constructor() {
|
|
7594
8706
|
super();
|
|
7595
8707
|
this.renderer = inject(Renderer2);
|
|
7596
8708
|
this.translate = inject(TranslateService);
|
|
7597
8709
|
this.iframeUrl = null;
|
|
7598
|
-
this.l10nService.loadComponentTranslations('iframe-module');
|
|
7599
8710
|
}
|
|
7600
8711
|
set iframeElement(element) {
|
|
7601
8712
|
this.iframe = element;
|
|
@@ -7646,8 +8757,8 @@ class IframeModuleComponent extends BaseModuleComponent {
|
|
|
7646
8757
|
const errorMessage = this.translate.instant('iframe-module.iframeModule.siteLoadingMessage');
|
|
7647
8758
|
this.msgService.error(errorMessage);
|
|
7648
8759
|
}
|
|
7649
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
7650
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
8760
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IframeModuleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8761
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: IframeModuleComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "iframeElement", first: true, predicate: ["iframe"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
7651
8762
|
@if (isContent) {
|
|
7652
8763
|
<iframe
|
|
7653
8764
|
#iframe
|
|
@@ -7684,9 +8795,9 @@ class IframeModuleComponent extends BaseModuleComponent {
|
|
|
7684
8795
|
} @else if (isSecurity) {
|
|
7685
8796
|
<security [controller]="controller" [id]="id" />
|
|
7686
8797
|
}
|
|
7687
|
-
`, isInline: true, dependencies: [{ kind: "component", type: SecurityComponent, selector: "security", inputs: ["id", "controller"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["hostName", "ptInputText", "pSize", "variant", "fluid", "invalid"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1
|
|
8798
|
+
`, isInline: true, dependencies: [{ kind: "component", type: SecurityComponent, selector: "security", inputs: ["id", "controller"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["hostName", "ptInputText", "pSize", "variant", "fluid", "invalid"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
7688
8799
|
}
|
|
7689
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
8800
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IframeModuleComponent, decorators: [{
|
|
7690
8801
|
type: Component,
|
|
7691
8802
|
args: [{
|
|
7692
8803
|
standalone: true,
|
|
@@ -7786,10 +8897,10 @@ class ExtensionLoaderService {
|
|
|
7786
8897
|
this.loadedScripts.set(scriptUrl, loadPromise);
|
|
7787
8898
|
return loadPromise;
|
|
7788
8899
|
}
|
|
7789
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
7790
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
8900
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ExtensionLoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
8901
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ExtensionLoaderService, providedIn: 'root' }); }
|
|
7791
8902
|
}
|
|
7792
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
8903
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ExtensionLoaderService, decorators: [{
|
|
7793
8904
|
type: Injectable,
|
|
7794
8905
|
args: [{ providedIn: 'root' }]
|
|
7795
8906
|
}] });
|
|
@@ -8019,8 +9130,8 @@ class CustomElementExtensionModuleHostComponent extends BaseModuleComponent {
|
|
|
8019
9130
|
this.container.nativeElement.appendChild(element);
|
|
8020
9131
|
this.updateExtensionContext();
|
|
8021
9132
|
}
|
|
8022
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
8023
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
9133
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CustomElementExtensionModuleHostComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9134
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: CustomElementExtensionModuleHostComponent, isStandalone: true, selector: "ng-component", providers: [ExtensionModulesApi], viewQueries: [{ propertyName: "extensionContainer", first: true, predicate: ["extensionContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
8024
9135
|
@if (showContent) {
|
|
8025
9136
|
<div class="min-h-[calc(100vh-10rem)] w-full">
|
|
8026
9137
|
@if (loadError) {
|
|
@@ -8046,7 +9157,7 @@ class CustomElementExtensionModuleHostComponent extends BaseModuleComponent {
|
|
|
8046
9157
|
}
|
|
8047
9158
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SecurityComponent, selector: "security", inputs: ["id", "controller"] }, { kind: "component", type: Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
8048
9159
|
}
|
|
8049
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
9160
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CustomElementExtensionModuleHostComponent, decorators: [{
|
|
8050
9161
|
type: Component,
|
|
8051
9162
|
args: [{
|
|
8052
9163
|
standalone: true,
|
|
@@ -8258,8 +9369,8 @@ class ExtensionModuleHostComponent extends BaseModuleComponent {
|
|
|
8258
9369
|
const baseUrl = document.getElementsByTagName('base')[0]?.href ?? `${window.location.origin}/`;
|
|
8259
9370
|
return `${baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`}${path}`;
|
|
8260
9371
|
}
|
|
8261
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
8262
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
9372
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ExtensionModuleHostComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9373
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ExtensionModuleHostComponent, isStandalone: true, selector: "ng-component", providers: [ExtensionModulesApi], viewQueries: [{ propertyName: "extensionViewContainer", first: true, predicate: ["extensionContainer"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: `
|
|
8263
9374
|
@if (loadError) {
|
|
8264
9375
|
<div class="card flex flex-col gap-4">
|
|
8265
9376
|
<div class="font-semibold text-xl">{{ loadError }}</div>
|
|
@@ -8270,7 +9381,7 @@ class ExtensionModuleHostComponent extends BaseModuleComponent {
|
|
|
8270
9381
|
}
|
|
8271
9382
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }] }); }
|
|
8272
9383
|
}
|
|
8273
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
9384
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ExtensionModuleHostComponent, decorators: [{
|
|
8274
9385
|
type: Component,
|
|
8275
9386
|
args: [{
|
|
8276
9387
|
standalone: true,
|
|
@@ -8319,13 +9430,110 @@ class AuthGuardService {
|
|
|
8319
9430
|
return false;
|
|
8320
9431
|
}));
|
|
8321
9432
|
}
|
|
8322
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
8323
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
9433
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AuthGuardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
9434
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AuthGuardService }); }
|
|
8324
9435
|
}
|
|
8325
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
9436
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AuthGuardService, decorators: [{
|
|
8326
9437
|
type: Injectable
|
|
8327
9438
|
}] });
|
|
8328
9439
|
|
|
9440
|
+
/**
|
|
9441
|
+
* Reads the rights the current user has on a module instance.
|
|
9442
|
+
*
|
|
9443
|
+
* Results are cached per instance and dropped whenever the authenticated user changes.
|
|
9444
|
+
*/
|
|
9445
|
+
class ModuleInstanceRightsService {
|
|
9446
|
+
static { this.readRight = 'read'; }
|
|
9447
|
+
constructor() {
|
|
9448
|
+
this.menuApi = inject(MenuApi);
|
|
9449
|
+
this.securityService = inject(SecurityService);
|
|
9450
|
+
this.cache = new Map();
|
|
9451
|
+
this.cachedIdentity = undefined;
|
|
9452
|
+
this.securityService.payload.subscribe((payload) => {
|
|
9453
|
+
// Rights depend on both the user and the roles of the current session.
|
|
9454
|
+
const roles = payload?.realm_access?.roles ?? [];
|
|
9455
|
+
const identity = `${payload?.preferred_username ?? ''}|${[...roles].sort().join(',')}`;
|
|
9456
|
+
if (identity !== this.cachedIdentity) {
|
|
9457
|
+
this.cachedIdentity = identity;
|
|
9458
|
+
this.clearCache();
|
|
9459
|
+
}
|
|
9460
|
+
});
|
|
9461
|
+
}
|
|
9462
|
+
/**
|
|
9463
|
+
* Gets the rights of the current user on the given module instance.
|
|
9464
|
+
*/
|
|
9465
|
+
getRights(moduleInstanceId) {
|
|
9466
|
+
const cached = this.cache.get(moduleInstanceId);
|
|
9467
|
+
if (cached) {
|
|
9468
|
+
return cached;
|
|
9469
|
+
}
|
|
9470
|
+
const request = this.menuApi
|
|
9471
|
+
.getModuleInstanceRights({ id: moduleInstanceId })
|
|
9472
|
+
.then((rights) => rights ?? [])
|
|
9473
|
+
.catch((error) => {
|
|
9474
|
+
this.cache.delete(moduleInstanceId);
|
|
9475
|
+
throw error;
|
|
9476
|
+
});
|
|
9477
|
+
this.cache.set(moduleInstanceId, request);
|
|
9478
|
+
return request;
|
|
9479
|
+
}
|
|
9480
|
+
/**
|
|
9481
|
+
* Checks whether the current user has the `read` right on the given module instance.
|
|
9482
|
+
*/
|
|
9483
|
+
async canRead(moduleInstanceId) {
|
|
9484
|
+
const rights = await this.getRights(moduleInstanceId);
|
|
9485
|
+
return rights.includes(ModuleInstanceRightsService.readRight);
|
|
9486
|
+
}
|
|
9487
|
+
/**
|
|
9488
|
+
* Drops every cached result, for example after module security was changed.
|
|
9489
|
+
*/
|
|
9490
|
+
clearCache() {
|
|
9491
|
+
this.cache.clear();
|
|
9492
|
+
}
|
|
9493
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ModuleInstanceRightsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
9494
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ModuleInstanceRightsService }); }
|
|
9495
|
+
}
|
|
9496
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ModuleInstanceRightsService, decorators: [{
|
|
9497
|
+
type: Injectable
|
|
9498
|
+
}], ctorParameters: () => [] });
|
|
9499
|
+
|
|
9500
|
+
/**
|
|
9501
|
+
* Guards module routes against direct navigation without the required rights.
|
|
9502
|
+
*
|
|
9503
|
+
* - Routes flagged with `data: { requireAdmin: true }` require the `admin` role.
|
|
9504
|
+
* - Routes carrying an `:id` segment require the `read` right on that module instance.
|
|
9505
|
+
* - Everything else is left to {@link AuthGuardService}.
|
|
9506
|
+
*
|
|
9507
|
+
* Denied navigation is redirected to the access denied page. This is a UX guard only:
|
|
9508
|
+
* the backend checks the same rights on every module endpoint.
|
|
9509
|
+
*/
|
|
9510
|
+
const moduleAccessGuard = async (route) => {
|
|
9511
|
+
const router = inject(Router);
|
|
9512
|
+
const securityService = inject(SecurityService);
|
|
9513
|
+
const rightsService = inject(ModuleInstanceRightsService);
|
|
9514
|
+
const accessDenied = router.parseUrl('/access');
|
|
9515
|
+
if (route.data?.requireAdmin) {
|
|
9516
|
+
// Wait for the session payload so a direct URL entry does not read roles before they are loaded.
|
|
9517
|
+
await firstValueFrom(securityService.payload.pipe(filter((payload) => payload != null), take(1)));
|
|
9518
|
+
return securityService.isAdmin() ? true : accessDenied;
|
|
9519
|
+
}
|
|
9520
|
+
const routeId = route.paramMap.get('id');
|
|
9521
|
+
if (routeId == null) {
|
|
9522
|
+
return true;
|
|
9523
|
+
}
|
|
9524
|
+
const moduleInstanceId = Number(routeId);
|
|
9525
|
+
if (!Number.isFinite(moduleInstanceId)) {
|
|
9526
|
+
return accessDenied;
|
|
9527
|
+
}
|
|
9528
|
+
try {
|
|
9529
|
+
return (await rightsService.canRead(moduleInstanceId)) ? true : accessDenied;
|
|
9530
|
+
}
|
|
9531
|
+
catch (error) {
|
|
9532
|
+
console.error('Failed to load module instance rights', error);
|
|
9533
|
+
return accessDenied;
|
|
9534
|
+
}
|
|
9535
|
+
};
|
|
9536
|
+
|
|
8329
9537
|
/**
|
|
8330
9538
|
* Prime-ng table filter service
|
|
8331
9539
|
*/
|
|
@@ -8377,10 +9585,10 @@ class TableFilterService {
|
|
|
8377
9585
|
}
|
|
8378
9586
|
this.updateFiltersState(filters);
|
|
8379
9587
|
}
|
|
8380
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
8381
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
9588
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TableFilterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
9589
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TableFilterService }); }
|
|
8382
9590
|
}
|
|
8383
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
9591
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TableFilterService, decorators: [{
|
|
8384
9592
|
type: Injectable
|
|
8385
9593
|
}] });
|
|
8386
9594
|
|
|
@@ -8471,12 +9679,14 @@ function provideOip() {
|
|
|
8471
9679
|
{ provide: LocationStrategy, useClass: PathLocationStrategy },
|
|
8472
9680
|
{ provide: SecurityService, useClass: BffSecurityService },
|
|
8473
9681
|
AuthGuardService,
|
|
9682
|
+
ModuleInstanceRightsService,
|
|
8474
9683
|
MessageService,
|
|
8475
9684
|
UserService,
|
|
8476
9685
|
NotificationService,
|
|
8477
9686
|
UserProfileApi,
|
|
8478
9687
|
SecurityApi,
|
|
8479
9688
|
NotificationApi,
|
|
9689
|
+
MenuApi,
|
|
8480
9690
|
importProvidersFrom([
|
|
8481
9691
|
TranslateModule.forRoot({
|
|
8482
9692
|
loader: {
|
|
@@ -8495,19 +9705,18 @@ function provideOip() {
|
|
|
8495
9705
|
class FolderModuleApi extends HttpClient {
|
|
8496
9706
|
constructor() {
|
|
8497
9707
|
super(...arguments);
|
|
8498
|
-
this.getModuleInstanceSettings = (
|
|
9708
|
+
this.getModuleInstanceSettings = (params = {}) => this.request({
|
|
8499
9709
|
path: `/api/folder-module/get-module-instance-settings`,
|
|
8500
9710
|
method: "GET",
|
|
8501
|
-
query: query,
|
|
8502
9711
|
secure: true,
|
|
8503
9712
|
format: "json",
|
|
8504
9713
|
...params,
|
|
8505
9714
|
});
|
|
8506
9715
|
}
|
|
8507
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
8508
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
9716
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FolderModuleApi, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
9717
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FolderModuleApi }); }
|
|
8509
9718
|
}
|
|
8510
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
9719
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FolderModuleApi, decorators: [{
|
|
8511
9720
|
type: Injectable
|
|
8512
9721
|
}] });
|
|
8513
9722
|
|
|
@@ -8517,19 +9726,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
|
|
|
8517
9726
|
class IframeModuleApi extends HttpClient {
|
|
8518
9727
|
constructor() {
|
|
8519
9728
|
super(...arguments);
|
|
8520
|
-
this.getModuleInstanceSettings = (
|
|
9729
|
+
this.getModuleInstanceSettings = (params = {}) => this.request({
|
|
8521
9730
|
path: `/api/iframe-module/get-module-instance-settings`,
|
|
8522
9731
|
method: "GET",
|
|
8523
|
-
query: query,
|
|
8524
9732
|
secure: true,
|
|
8525
9733
|
format: "json",
|
|
8526
9734
|
...params,
|
|
8527
9735
|
});
|
|
8528
9736
|
}
|
|
8529
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
8530
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
9737
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IframeModuleApi, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
9738
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IframeModuleApi }); }
|
|
8531
9739
|
}
|
|
8532
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
9740
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IframeModuleApi, decorators: [{
|
|
8533
9741
|
type: Injectable
|
|
8534
9742
|
}] });
|
|
8535
9743
|
|
|
@@ -8539,5 +9747,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
|
|
|
8539
9747
|
* Generated bundle index. Do not edit.
|
|
8540
9748
|
*/
|
|
8541
9749
|
|
|
8542
|
-
export { APP_THEME_PRESETS, APP_THEME_PRESETS_MERGE_MODE, AppConfiguratorComponent, AppFloatingConfiguratorComponent, AppLayoutComponent, AppModulesComponent, AppTopbar, AppTopbarApplicationSwitcherComponent, ApplicationRegistryService, ApplicationsApi, ApplicationsComponent, AuthGuardService, BaseModuleComponent, BffSecurityService, ConfigComponent, ContentType, CustomElementExtensionModuleHostComponent, DbMigrationComponent, DiscussionComponent, ErrorComponent, ExtensionLoaderService, ExtensionModuleHostComponent, FolderModuleApi, FooterComponent, HttpClient, IframeModuleApi, IframeModuleComponent, L10nService, LOGO_COMPONENT_TOKEN, LayoutService, LogoComponent, LogoService, MenuComponent, MenuService, MsgService, NotfoundComponent, NotificationApi, NotificationService, OIP_EXTENSION_EVENTS,
|
|
9750
|
+
export { APP_THEME_PRESETS, APP_THEME_PRESETS_MERGE_MODE, AccessComponent, AppConfiguratorComponent, AppFloatingConfiguratorComponent, AppLayoutComponent, AppModulesComponent, AppTopbar, AppTopbarApplicationSwitcherComponent, ApplicationRegistryService, ApplicationsApi, ApplicationsComponent, AuthGuardService, BaseModuleComponent, BffSecurityService, ConfigComponent, ContentType, CustomElementExtensionModuleHostComponent, DbMigrationComponent, DiscussionComponent, ErrorComponent, ExtensionLoaderService, ExtensionModuleHostComponent, FolderModuleApi, FooterComponent, HttpClient, IframeModuleApi, IframeModuleComponent, L10nService, LOGO_COMPONENT_TOKEN, LayoutService, LogoComponent, LogoService, MenuComponent, MenuService, ModuleInstanceRightsService, MsgService, NotfoundComponent, NotificationApi, NotificationService, OIP_EXTENSION_EVENTS, SecurityApi, SecurityComponent, SecurityService, SidebarComponent, TableFilterService, TopBarService, UnauthorizedComponent, UserNotificationsComponent, UserProfileApi, UserProfileComponent, UserService, convertToPrimeNgDateFormat, defaultTheme, emitOipContextChange, emitOipError, emitOipNavigate, emitOipNotify, emitOipSettingsChange, emitOipTitleChange, langIntercept, mergeWithDefaults, moduleAccessGuard, provideAppThemes, provideLogoComponent, provideOip, replaceDefaults };
|
|
8543
9751
|
//# sourceMappingURL=oip-common.mjs.map
|