aril 1.1.97 → 1.2.0
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/boot/base/index.d.ts +1 -0
- package/boot/base/src/create-base-app-config.d.ts +12 -0
- package/boot/config/api/index.d.ts +1 -0
- package/boot/config/api/src/api.service.d.ts +2 -2
- package/boot/config/api/src/interfaces.d.ts +1 -19
- package/boot/config/plugins/src/interfaces.d.ts +0 -37
- package/esm2022/boot/base/aril-boot-base.mjs +5 -0
- package/esm2022/boot/base/index.mjs +2 -0
- package/esm2022/boot/base/src/create-base-app-config.mjs +30 -0
- package/esm2022/boot/config/api/index.mjs +1 -1
- package/esm2022/boot/config/api/src/api.service.mjs +5 -4
- package/esm2022/boot/config/api/src/interfaces.mjs +2 -21
- package/esm2022/boot/config/apps/src/apps.service.mjs +2 -2
- package/esm2022/boot/config/plugins/src/interfaces.mjs +1 -60
- package/esm2022/boot/config/plugins/src/plugins.service.mjs +8 -22
- package/esm2022/boot/host/src/bootstrap.mjs +8 -23
- package/esm2022/boot/mfe/src/app.component.mjs +6 -6
- package/esm2022/boot/mfe/src/bootstrap.mjs +13 -33
- package/esm2022/boot/pages/aril-boot-pages.mjs +5 -0
- package/esm2022/boot/pages/index.mjs +3 -0
- package/esm2022/{util/custom_pages → boot/pages}/src/forbidden.component.mjs +1 -1
- package/esm2022/{util/custom_pages → boot/pages}/src/notFound.component.mjs +1 -1
- package/esm2022/keycloak/src/auth.interceptor.mjs +14 -78
- package/esm2022/provider/src/prodiveHost.mjs +4 -8
- package/esm2022/provider/src/provideHostKeycloak.mjs +10 -2
- package/esm2022/theme/layout/app/expandableMenu/expandable-menu.component.mjs +1 -1
- package/esm2022/theme/layout/app/site-map/site-map-sidebar.component.mjs +3 -3
- package/esm2022/theme/layout/app/static-sidebar/static-sidebar.component.mjs +1 -1
- package/esm2022/ui/form/src/form.component.mjs +22 -4
- package/esm2022/ui-business/assetPicker/src/asset-picker.component.mjs +14 -2
- package/esm2022/util/pipes/src/translate-json/translate-json.pipe.mjs +3 -4
- package/esm2022/util/sync-active-tab-route/src/sync-active-tab-route.directive.mjs +1 -1
- package/fesm2022/{aril-app.component-FxPod9bE.mjs → aril-app.component-wxP3y8dg.mjs} +8 -11
- package/fesm2022/aril-app.component-wxP3y8dg.mjs.map +1 -0
- package/fesm2022/aril-boot-base.mjs +37 -0
- package/fesm2022/aril-boot-base.mjs.map +1 -0
- package/fesm2022/aril-boot-config-api.mjs +3 -22
- package/fesm2022/aril-boot-config-api.mjs.map +1 -1
- package/fesm2022/aril-boot-config-apps.mjs +1 -1
- package/fesm2022/aril-boot-config-apps.mjs.map +1 -1
- package/fesm2022/aril-boot-config-plugins.mjs +7 -80
- package/fesm2022/aril-boot-config-plugins.mjs.map +1 -1
- package/fesm2022/aril-boot-host.mjs +7 -22
- package/fesm2022/aril-boot-host.mjs.map +1 -1
- package/fesm2022/{aril-boot-mfe-app.component-dZp2aSTk.mjs → aril-boot-mfe-app.component-7IjAmjz0.mjs} +8 -11
- package/fesm2022/aril-boot-mfe-app.component-7IjAmjz0.mjs.map +1 -0
- package/fesm2022/{aril-boot-mfe-aril-boot-mfe-mm6nhyRL.mjs → aril-boot-mfe-aril-boot-mfe-KXDpUyv7.mjs} +15 -71
- package/fesm2022/aril-boot-mfe-aril-boot-mfe-KXDpUyv7.mjs.map +1 -0
- package/fesm2022/aril-boot-mfe.mjs +2 -6
- package/fesm2022/aril-boot-mfe.mjs.map +1 -1
- package/fesm2022/{aril-util-custom_pages.mjs → aril-boot-pages.mjs} +1 -1
- package/fesm2022/aril-boot-pages.mjs.map +1 -0
- package/fesm2022/aril-keycloak.mjs +13 -77
- package/fesm2022/aril-keycloak.mjs.map +1 -1
- package/fesm2022/aril-provider.mjs +12 -8
- package/fesm2022/aril-provider.mjs.map +1 -1
- package/fesm2022/aril-theme-layout.mjs +2 -2
- package/fesm2022/aril-theme-layout.mjs.map +1 -1
- package/fesm2022/aril-ui-business-assetPicker.mjs +13 -1
- package/fesm2022/aril-ui-business-assetPicker.mjs.map +1 -1
- package/fesm2022/aril-ui-form.mjs +20 -3
- package/fesm2022/aril-ui-form.mjs.map +1 -1
- package/fesm2022/aril-util-pipes.mjs +2 -3
- package/fesm2022/aril-util-pipes.mjs.map +1 -1
- package/fesm2022/aril-util-sync-active-tab-route.mjs.map +1 -1
- package/fesm2022/aril.mjs +14 -81
- package/fesm2022/aril.mjs.map +1 -1
- package/package.json +143 -143
- package/provider/src/prodiveHost.d.ts +2 -2
- package/theme/layout/app/expandableMenu/expandable-menu.component.ts +373 -373
- package/theme/layout/app/site-map/site-map-sidebar.component.html +121 -121
- package/theme/layout/app/site-map/site-map-sidebar.component.ts +1 -1
- package/theme/layout/app/static-sidebar/static-sidebar.component.ts +336 -336
- package/theme/styles/layout/_fonts.scss +1 -13
- package/ui/form/src/form.component.d.ts +4 -1
- package/boot/mfe/src/loadStyles.d.ts +0 -3
- package/esm2022/boot/mfe/src/loadStyles.mjs +0 -38
- package/esm2022/util/custom_pages/aril-util-custom_pages.mjs +0 -5
- package/esm2022/util/custom_pages/index.mjs +0 -3
- package/esm2022/util/loaders/aril-util-loaders.mjs +0 -5
- package/esm2022/util/loaders/index.mjs +0 -2
- package/esm2022/util/loaders/style/style.loader.service.mjs +0 -61
- package/fesm2022/aril-app.component-FxPod9bE.mjs.map +0 -1
- package/fesm2022/aril-boot-mfe-app.component-dZp2aSTk.mjs.map +0 -1
- package/fesm2022/aril-boot-mfe-aril-boot-mfe-mm6nhyRL.mjs.map +0 -1
- package/fesm2022/aril-util-custom_pages.mjs.map +0 -1
- package/fesm2022/aril-util-loaders.mjs +0 -68
- package/fesm2022/aril-util-loaders.mjs.map +0 -1
- package/theme/fonts/Inter/Inter_18pt-Black.ttf +0 -0
- package/theme/fonts/Inter/Inter_18pt-BlackItalic.ttf +0 -0
- package/theme/fonts/Inter/Inter_18pt-Bold.ttf +0 -0
- package/theme/fonts/Inter/Inter_18pt-BoldItalic.ttf +0 -0
- package/theme/fonts/Inter/Inter_18pt-ExtraBold.ttf +0 -0
- package/theme/fonts/Inter/Inter_18pt-ExtraBoldItalic.ttf +0 -0
- package/theme/fonts/Inter/Inter_18pt-ExtraLight.ttf +0 -0
- package/theme/fonts/Inter/Inter_18pt-ExtraLightItalic.ttf +0 -0
- package/theme/fonts/Inter/Inter_18pt-Italic.ttf +0 -0
- package/theme/fonts/Inter/Inter_18pt-Light.ttf +0 -0
- package/theme/fonts/Inter/Inter_18pt-LightItalic.ttf +0 -0
- package/theme/fonts/Inter/Inter_18pt-Medium.ttf +0 -0
- package/theme/fonts/Inter/Inter_18pt-MediumItalic.ttf +0 -0
- package/theme/fonts/Inter/Inter_18pt-Regular.ttf +0 -0
- package/theme/fonts/Inter/Inter_18pt-SemiBold.ttf +0 -0
- package/theme/fonts/Inter/Inter_18pt-SemiBoldItalic.ttf +0 -0
- package/theme/fonts/Inter/Inter_18pt-Thin.ttf +0 -0
- package/theme/fonts/Inter/Inter_18pt-ThinItalic.ttf +0 -0
- package/theme/fonts/Inter/Inter_24pt-Black.ttf +0 -0
- package/theme/fonts/Inter/Inter_24pt-BlackItalic.ttf +0 -0
- package/theme/fonts/Inter/Inter_24pt-Bold.ttf +0 -0
- package/theme/fonts/Inter/Inter_24pt-BoldItalic.ttf +0 -0
- package/theme/fonts/Inter/Inter_24pt-ExtraBold.ttf +0 -0
- package/theme/fonts/Inter/Inter_24pt-ExtraBoldItalic.ttf +0 -0
- package/theme/fonts/Inter/Inter_24pt-ExtraLight.ttf +0 -0
- package/theme/fonts/Inter/Inter_24pt-ExtraLightItalic.ttf +0 -0
- package/theme/fonts/Inter/Inter_24pt-Italic.ttf +0 -0
- package/theme/fonts/Inter/Inter_24pt-Light.ttf +0 -0
- package/theme/fonts/Inter/Inter_24pt-LightItalic.ttf +0 -0
- package/theme/fonts/Inter/Inter_24pt-Medium.ttf +0 -0
- package/theme/fonts/Inter/Inter_24pt-MediumItalic.ttf +0 -0
- package/theme/fonts/Inter/Inter_24pt-Regular.ttf +0 -0
- package/theme/fonts/Inter/Inter_24pt-SemiBold.ttf +0 -0
- package/theme/fonts/Inter/Inter_24pt-SemiBoldItalic.ttf +0 -0
- package/theme/fonts/Inter/Inter_24pt-Thin.ttf +0 -0
- package/theme/fonts/Inter/Inter_24pt-ThinItalic.ttf +0 -0
- package/theme/fonts/Inter/Inter_28pt-Black.ttf +0 -0
- package/theme/fonts/Inter/Inter_28pt-BlackItalic.ttf +0 -0
- package/theme/fonts/Inter/Inter_28pt-Bold.ttf +0 -0
- package/theme/fonts/Inter/Inter_28pt-BoldItalic.ttf +0 -0
- package/theme/fonts/Inter/Inter_28pt-ExtraBold.ttf +0 -0
- package/theme/fonts/Inter/Inter_28pt-ExtraBoldItalic.ttf +0 -0
- package/theme/fonts/Inter/Inter_28pt-ExtraLight.ttf +0 -0
- package/theme/fonts/Inter/Inter_28pt-ExtraLightItalic.ttf +0 -0
- package/theme/fonts/Inter/Inter_28pt-Italic.ttf +0 -0
- package/theme/fonts/Inter/Inter_28pt-Light.ttf +0 -0
- package/theme/fonts/Inter/Inter_28pt-LightItalic.ttf +0 -0
- package/theme/fonts/Inter/Inter_28pt-Medium.ttf +0 -0
- package/theme/fonts/Inter/Inter_28pt-MediumItalic.ttf +0 -0
- package/theme/fonts/Inter/Inter_28pt-Regular.ttf +0 -0
- package/theme/fonts/Inter/Inter_28pt-SemiBold.ttf +0 -0
- package/theme/fonts/Inter/Inter_28pt-SemiBoldItalic.ttf +0 -0
- package/theme/fonts/Inter/Inter_28pt-Thin.ttf +0 -0
- package/theme/fonts/Inter/Inter_28pt-ThinItalic.ttf +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-Black.woff +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-Black.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-BlackItalic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-BlackItalic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-BoldItalic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-BoldItalic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-ExtraBold.woff +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-ExtraBold.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-ExtraBoldItalic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-ExtraBoldItalic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-ExtraLight.woff +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-ExtraLight.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-ExtraLightItalic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-ExtraLightItalic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-Italic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-Italic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-Light.woff +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-Light.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-LightItalic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-LightItalic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-MediumItalic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-MediumItalic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-SemiBoldItalic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-SemiBoldItalic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-Thin.woff +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-Thin.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-ThinItalic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter18pt-ThinItalic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-Black.woff +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-Black.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-BlackItalic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-BlackItalic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-Bold.woff +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-Bold.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-BoldItalic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-BoldItalic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-ExtraBold.woff +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-ExtraBold.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-ExtraBoldItalic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-ExtraBoldItalic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-ExtraLight.woff +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-ExtraLight.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-ExtraLightItalic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-ExtraLightItalic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-Italic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-Italic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-LightItalic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-LightItalic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-Medium.woff +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-Medium.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-MediumItalic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-MediumItalic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-Regular.woff +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-Regular.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-SemiBold.woff +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-SemiBold.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-SemiBoldItalic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-SemiBoldItalic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-Thin.woff +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-Thin.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-ThinItalic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter24pt-ThinItalic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-Black.woff +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-Black.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-BlackItalic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-BlackItalic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-Bold.woff +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-Bold.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-BoldItalic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-BoldItalic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-ExtraBoldItalic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-ExtraBoldItalic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-ExtraLightItalic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-ExtraLightItalic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-Italic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-Italic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-Light.woff +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-Light.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-LightItalic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-LightItalic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-Medium.woff +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-Medium.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-MediumItalic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-MediumItalic.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-Regular.woff +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-Regular.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-SemiBold.woff +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-SemiBold.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-Thin.woff +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-Thin.woff2 +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-ThinItalic.woff +0 -0
- package/theme/fonts/Inter/woff/Inter28pt-ThinItalic.woff2 +0 -0
- package/util/loaders/index.d.ts +0 -1
- package/util/loaders/style/style.loader.service.d.ts +0 -13
- /package/{util/custom_pages → boot/pages}/index.d.ts +0 -0
- /package/{util/custom_pages → boot/pages}/src/forbidden.component.d.ts +0 -0
- /package/{util/custom_pages → boot/pages}/src/notFound.component.d.ts +0 -0
|
@@ -1,121 +1,121 @@
|
|
|
1
|
-
<p-sidebar
|
|
2
|
-
[(visible)]="visible"
|
|
3
|
-
position="right"
|
|
4
|
-
[transitionOptions]="'.3s cubic-bezier(0, 0, 0.2, 1)'"
|
|
5
|
-
styleClass="layout-sitemap-sidebar w-full sm:w-30rem"
|
|
6
|
-
*transloco="let t; read: 'siteMap'">
|
|
7
|
-
<ng-template pTemplate="header">
|
|
8
|
-
<div class="flex align-items-center justify-content-between gap-2 w-full">
|
|
9
|
-
<div class="flex align-items-center gap-2">
|
|
10
|
-
<i class="pi pi-sitemap text-primary text-xl"></i>
|
|
11
|
-
<span class="font-bold text-lg">{{ t('siteMap') }}</span>
|
|
12
|
-
<span class="total-pages">{{ totalPages() }} {{ t('pages') }}</span>
|
|
13
|
-
</div>
|
|
14
|
-
</div>
|
|
15
|
-
</ng-template>
|
|
16
|
-
|
|
17
|
-
<div class="sitemap-content">
|
|
18
|
-
<div class="search-section grid p-fluid m-0">
|
|
19
|
-
<aril-text
|
|
20
|
-
[placeholder]="t('searchPages')"
|
|
21
|
-
[(ngModel)]="searchTerm"
|
|
22
|
-
(ngModelChange)="onSearchChange()"
|
|
23
|
-
class="col-10 m-0">
|
|
24
|
-
</aril-text>
|
|
25
|
-
@if (filteredNodes().length > 0) {
|
|
26
|
-
<div class="col-2 flex align-items-center m-0 p-0">
|
|
27
|
-
<fa-icon
|
|
28
|
-
[icon]="solidIcons.faAnglesDown"
|
|
29
|
-
size="xl"
|
|
30
|
-
style="color: var(--primary-color)"
|
|
31
|
-
class="col-1 cursor-pointer"
|
|
32
|
-
[pTooltip]="t('expandAll')"
|
|
33
|
-
tooltipPosition="top"
|
|
34
|
-
(click)="expandAll()">
|
|
35
|
-
</fa-icon>
|
|
36
|
-
<fa-icon
|
|
37
|
-
[icon]="solidIcons.faAnglesUp"
|
|
38
|
-
size="xl"
|
|
39
|
-
style="color: var(--red-500)"
|
|
40
|
-
class="col-1 ml-3 cursor-pointer"
|
|
41
|
-
[pTooltip]="t('collapseAll')"
|
|
42
|
-
tooltipPosition="top"
|
|
43
|
-
(click)="collapseAll()">
|
|
44
|
-
</fa-icon>
|
|
45
|
-
</div>
|
|
46
|
-
}
|
|
47
|
-
</div>
|
|
48
|
-
|
|
49
|
-
<!-- Site Map Tree -->
|
|
50
|
-
@if (filteredNodes().length > 0) {
|
|
51
|
-
<div class="sitemap-tree">
|
|
52
|
-
<p-scrollPanel [style]="{ width: '100%', height: '100%' }">
|
|
53
|
-
<div class="tree-container">
|
|
54
|
-
@for (node of filteredNodes(); track trackByKey($index, node)) {
|
|
55
|
-
<ng-container *ngTemplateOutlet="treeNodeTemplate; context: { $implicit: node, level: 0 }"></ng-container>
|
|
56
|
-
}
|
|
57
|
-
</div>
|
|
58
|
-
</p-scrollPanel>
|
|
59
|
-
</div>
|
|
60
|
-
} @else {
|
|
61
|
-
<div class="empty-state">
|
|
62
|
-
<div class="empty-content">
|
|
63
|
-
<i class="pi pi-sitemap empty-icon"></i>
|
|
64
|
-
<h3 class="empty-title">
|
|
65
|
-
{{ searchTerm() ? t('noSearchResults') : t('noPages') }}
|
|
66
|
-
</h3>
|
|
67
|
-
<p class="empty-message">
|
|
68
|
-
{{ searchTerm() ? t('tryDifferentKeywords') : '' }}
|
|
69
|
-
</p>
|
|
70
|
-
@if (searchTerm()) {
|
|
71
|
-
<aril-button
|
|
72
|
-
[label]="t('clearSearch')"
|
|
73
|
-
icon="TIMES"
|
|
74
|
-
color="secondary"
|
|
75
|
-
[outlined]="true"
|
|
76
|
-
size="sm"
|
|
77
|
-
(clickEvent)="searchTerm.set(''); onSearchChange()">
|
|
78
|
-
</aril-button>
|
|
79
|
-
}
|
|
80
|
-
</div>
|
|
81
|
-
</div>
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
<!-- Recursive Tree Node Template -->
|
|
85
|
-
<ng-template #treeNodeTemplate let-node let-level="level">
|
|
86
|
-
<div class="tree-node" [style.margin-left.px]="level * 20">
|
|
87
|
-
<div
|
|
88
|
-
class="node-item"
|
|
89
|
-
[class.has-children]="node.children && node.children.length > 0"
|
|
90
|
-
[class.is-page]="node.routerLink"
|
|
91
|
-
[routerLink]="node.routerLink"
|
|
92
|
-
(click)="!node.routerLink ? toggleNode(node) : (visible = false)">
|
|
93
|
-
<div class="node-content">
|
|
94
|
-
@if (node.children && node.children.length > 0) {
|
|
95
|
-
<div class="toggle-btn" (click)="$event.stopPropagation(); toggleNode(node)">
|
|
96
|
-
<i class="pi" [class.pi-chevron-right]="!node.expanded" [class.pi-chevron-down]="node.expanded"></i>
|
|
97
|
-
</div>
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
@if (node.icon) {
|
|
101
|
-
<i class="node-icon" [class]="node.icon"></i>
|
|
102
|
-
}
|
|
103
|
-
<span class="node-label">{{ node.label | translateJson }}</span>
|
|
104
|
-
|
|
105
|
-
@if (node.routerLink) {
|
|
106
|
-
<i class="external-icon pi pi-external-link"></i>
|
|
107
|
-
}
|
|
108
|
-
</div>
|
|
109
|
-
</div>
|
|
110
|
-
|
|
111
|
-
<!-- Recursive Children -->
|
|
112
|
-
@if (node.children && node.expanded) {
|
|
113
|
-
@for (child of node.children; track trackByKey($index, child)) {
|
|
114
|
-
<ng-container
|
|
115
|
-
*ngTemplateOutlet="treeNodeTemplate; context: { $implicit: child, level: level + 1 }"></ng-container>
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
</div>
|
|
119
|
-
</ng-template>
|
|
120
|
-
</div>
|
|
121
|
-
</p-sidebar>
|
|
1
|
+
<p-sidebar
|
|
2
|
+
[(visible)]="visible"
|
|
3
|
+
position="right"
|
|
4
|
+
[transitionOptions]="'.3s cubic-bezier(0, 0, 0.2, 1)'"
|
|
5
|
+
styleClass="layout-sitemap-sidebar w-full sm:w-30rem"
|
|
6
|
+
*transloco="let t; read: 'siteMap'">
|
|
7
|
+
<ng-template pTemplate="header">
|
|
8
|
+
<div class="flex align-items-center justify-content-between gap-2 w-full">
|
|
9
|
+
<div class="flex align-items-center gap-2">
|
|
10
|
+
<i class="pi pi-sitemap text-primary text-xl"></i>
|
|
11
|
+
<span class="font-bold text-lg">{{ t('siteMap') }}</span>
|
|
12
|
+
<span class="total-pages">{{ totalPages() }} {{ t('pages') }}</span>
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
15
|
+
</ng-template>
|
|
16
|
+
|
|
17
|
+
<div class="sitemap-content">
|
|
18
|
+
<div class="search-section grid p-fluid m-0">
|
|
19
|
+
<aril-text
|
|
20
|
+
[placeholder]="t('searchPages')"
|
|
21
|
+
[(ngModel)]="searchTerm"
|
|
22
|
+
(ngModelChange)="onSearchChange()"
|
|
23
|
+
class="col-10 m-0">
|
|
24
|
+
</aril-text>
|
|
25
|
+
@if (filteredNodes().length > 0) {
|
|
26
|
+
<div class="col-2 flex align-items-center m-0 p-0">
|
|
27
|
+
<fa-icon
|
|
28
|
+
[icon]="solidIcons.faAnglesDown"
|
|
29
|
+
size="xl"
|
|
30
|
+
style="color: var(--primary-color)"
|
|
31
|
+
class="col-1 cursor-pointer"
|
|
32
|
+
[pTooltip]="t('expandAll')"
|
|
33
|
+
tooltipPosition="top"
|
|
34
|
+
(click)="expandAll()">
|
|
35
|
+
</fa-icon>
|
|
36
|
+
<fa-icon
|
|
37
|
+
[icon]="solidIcons.faAnglesUp"
|
|
38
|
+
size="xl"
|
|
39
|
+
style="color: var(--red-500)"
|
|
40
|
+
class="col-1 ml-3 cursor-pointer"
|
|
41
|
+
[pTooltip]="t('collapseAll')"
|
|
42
|
+
tooltipPosition="top"
|
|
43
|
+
(click)="collapseAll()">
|
|
44
|
+
</fa-icon>
|
|
45
|
+
</div>
|
|
46
|
+
}
|
|
47
|
+
</div>
|
|
48
|
+
|
|
49
|
+
<!-- Site Map Tree -->
|
|
50
|
+
@if (filteredNodes().length > 0) {
|
|
51
|
+
<div class="sitemap-tree">
|
|
52
|
+
<p-scrollPanel [style]="{ width: '100%', height: '100%' }">
|
|
53
|
+
<div class="tree-container">
|
|
54
|
+
@for (node of filteredNodes(); track trackByKey($index, node)) {
|
|
55
|
+
<ng-container *ngTemplateOutlet="treeNodeTemplate; context: { $implicit: node, level: 0 }"></ng-container>
|
|
56
|
+
}
|
|
57
|
+
</div>
|
|
58
|
+
</p-scrollPanel>
|
|
59
|
+
</div>
|
|
60
|
+
} @else {
|
|
61
|
+
<div class="empty-state">
|
|
62
|
+
<div class="empty-content">
|
|
63
|
+
<i class="pi pi-sitemap empty-icon"></i>
|
|
64
|
+
<h3 class="empty-title">
|
|
65
|
+
{{ searchTerm() ? t('noSearchResults') : t('noPages') }}
|
|
66
|
+
</h3>
|
|
67
|
+
<p class="empty-message">
|
|
68
|
+
{{ searchTerm() ? t('tryDifferentKeywords') : '' }}
|
|
69
|
+
</p>
|
|
70
|
+
@if (searchTerm()) {
|
|
71
|
+
<aril-button
|
|
72
|
+
[label]="t('clearSearch')"
|
|
73
|
+
icon="TIMES"
|
|
74
|
+
color="secondary"
|
|
75
|
+
[outlined]="true"
|
|
76
|
+
size="sm"
|
|
77
|
+
(clickEvent)="searchTerm.set(''); onSearchChange()">
|
|
78
|
+
</aril-button>
|
|
79
|
+
}
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
<!-- Recursive Tree Node Template -->
|
|
85
|
+
<ng-template #treeNodeTemplate let-node let-level="level">
|
|
86
|
+
<div class="tree-node" [style.margin-left.px]="level * 20">
|
|
87
|
+
<div
|
|
88
|
+
class="node-item"
|
|
89
|
+
[class.has-children]="node.children && node.children.length > 0"
|
|
90
|
+
[class.is-page]="node.routerLink"
|
|
91
|
+
[routerLink]="node.routerLink"
|
|
92
|
+
(click)="!node.routerLink ? toggleNode(node) : (visible = false)">
|
|
93
|
+
<div class="node-content">
|
|
94
|
+
@if (node.children && node.children.length > 0) {
|
|
95
|
+
<div class="toggle-btn" (click)="$event.stopPropagation(); toggleNode(node)">
|
|
96
|
+
<i class="pi" [class.pi-chevron-right]="!node.expanded" [class.pi-chevron-down]="node.expanded"></i>
|
|
97
|
+
</div>
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
@if (node.icon) {
|
|
101
|
+
<i class="node-icon" [class]="node.icon"></i>
|
|
102
|
+
}
|
|
103
|
+
<span class="node-label">{{ node.label | translateJson }}</span>
|
|
104
|
+
|
|
105
|
+
@if (node.routerLink) {
|
|
106
|
+
<i class="external-icon pi pi-external-link"></i>
|
|
107
|
+
}
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|
|
110
|
+
|
|
111
|
+
<!-- Recursive Children -->
|
|
112
|
+
@if (node.children && node.expanded) {
|
|
113
|
+
@for (child of node.children; track trackByKey($index, child)) {
|
|
114
|
+
<ng-container
|
|
115
|
+
*ngTemplateOutlet="treeNodeTemplate; context: { $implicit: child, level: level + 1 }"></ng-container>
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
</div>
|
|
119
|
+
</ng-template>
|
|
120
|
+
</div>
|
|
121
|
+
</p-sidebar>
|
|
@@ -52,7 +52,7 @@ export class SiteMapSidebarComponent implements OnInit {
|
|
|
52
52
|
searchTerm = signal<string>('');
|
|
53
53
|
totalPages = signal<number>(0);
|
|
54
54
|
solidIcons = solidIcons;
|
|
55
|
-
|
|
55
|
+
|
|
56
56
|
constructor(
|
|
57
57
|
public layoutService: LayoutService,
|
|
58
58
|
private translocoService: TranslocoService
|