aril 1.1.72 → 1.1.73
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/.eslintrc.json +41 -0
- package/README.md +62 -62
- package/boot/config/api/ng-package.json +6 -0
- package/boot/config/api/src/api.sample.json +8 -0
- package/boot/config/api/src/api.service.ts +91 -0
- package/boot/config/api/src/interfaces.ts +65 -0
- package/boot/config/apps/ng-package.json +6 -0
- package/boot/config/apps/src/apps.service.ts +62 -0
- package/boot/config/apps/src/auth.guard.ts +22 -0
- package/boot/config/apps/src/interfaces.ts +58 -0
- package/boot/config/apps/src/reuse-strategy.ts +10 -0
- package/boot/config/apps/src/showdowDOMWrapper.ts +28 -0
- package/boot/config/plugins/ng-package.json +6 -0
- package/boot/config/plugins/src/getNgZone.ts +7 -0
- package/boot/config/plugins/src/interfaces.ts +75 -0
- package/boot/config/plugins/src/plugins.service.ts +110 -0
- package/boot/config/translate/constants.ts +4 -0
- package/boot/config/translate/ng-package.json +6 -0
- package/boot/config/translate/primeng/i18n/tr.ts +59 -0
- package/boot/host/ng-package.json +6 -0
- package/boot/host/src/app.component.ts +51 -0
- package/boot/host/src/bootstrap.ts +87 -0
- package/boot/index.ts +1 -0
- package/boot/mfe/ng-package.json +6 -0
- package/boot/mfe/src/app.component.ts +63 -0
- package/boot/mfe/src/appComponentLoader.ts +4 -0
- package/boot/mfe/src/bootstrap.ts +97 -0
- package/boot/mfe/src/loadStyles.ts +42 -0
- package/boot/mfe/src/monaco.config.ts +266 -0
- package/boot/ng-package.json +6 -0
- package/http/index.ts +13 -0
- package/http/lib/enums.ts +31 -0
- package/http/lib/interfaces.ts +46 -0
- package/http/ng-package.json +6 -0
- package/http/src/httpBackend.ts +12 -0
- package/http/src/httpClient.ts +20 -0
- package/http/src/interceptor/accept-language.interceptor.ts +32 -0
- package/http/src/serviceBase.ts +175 -0
- package/http/src/serviceMockBase.ts +12 -0
- package/http/src/serviceRequest.ts +28 -0
- package/http/src/serviceStateMethods.ts +211 -0
- package/i18n/ng-package.json +6 -0
- package/i18n/src/folder-name-token.ts +3 -0
- package/i18n/src/i18n.module.ts +11 -0
- package/i18n/src/loader.ts +13 -0
- package/i18n/src/provideI18n.ts +18 -0
- package/i18n/src/provideScope.ts +20 -0
- package/keycloak/index.ts +1 -0
- package/keycloak/ng-package.json +6 -0
- package/keycloak/src/auth.interceptor.ts +103 -0
- package/ng-package.json +16 -0
- package/package.json +43 -528
- package/project.json +39 -0
- package/provider/ng-package.json +6 -0
- package/provider/src/index.ts +5 -0
- package/provider/src/prodiveHost.ts +15 -0
- package/provider/src/prodiveHostRouter.ts +21 -0
- package/provider/src/provideHostKeycloak.ts +34 -0
- package/provider/src/provideLocaleId.ts +22 -0
- package/theme/index.ts +1 -1
- package/theme/layout/app/breadcrumb/app.breadcrumb.component.html +8 -8
- package/theme/layout/app/breadcrumb/app.breadcrumb.component.ts +126 -126
- package/theme/layout/app/chatbot/app.chatbot.component.html +108 -108
- package/theme/layout/app/chatbot/app.chatbot.component.scss +34 -34
- package/theme/layout/app/chatbot/app.chatbot.component.ts +151 -151
- package/theme/layout/app/config/app.config.component.html +146 -146
- package/theme/layout/app/config/app.config.component.ts +143 -143
- package/theme/layout/app/expandableMenu/expandable-menu.component.html +89 -89
- package/theme/layout/app/expandableMenu/expandable-menu.component.ts +295 -295
- package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.html +110 -110
- package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.scss +181 -181
- package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.ts +260 -260
- package/theme/layout/app/favorite-pages/favorite-pages.service.ts +95 -95
- package/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.html +27 -27
- package/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.ts +165 -165
- package/theme/layout/app/general-search/general-search.component.html +57 -57
- package/theme/layout/app/general-search/general-search.component.scss +27 -27
- package/theme/layout/app/general-search/general-search.component.ts +93 -93
- package/theme/layout/app/general-search/helpers.spec.ts +527 -527
- package/theme/layout/app/general-search/helpers.ts +106 -106
- package/theme/layout/app/general-search/models.ts +142 -142
- package/theme/layout/app/history/history-sidebar.component.html +87 -87
- package/theme/layout/app/history/history-sidebar.component.scss +182 -182
- package/theme/layout/app/history/history-sidebar.component.ts +143 -143
- package/theme/layout/app/history/history.service.ts +154 -154
- package/theme/layout/app/layout/app.layout.component.html +27 -27
- package/theme/layout/app/layout/app.layout.component.ts +171 -171
- package/theme/layout/app/layout/mfe.layout.component.ts +59 -59
- package/theme/layout/app/notifications/notifications-sidebar.component.html +104 -104
- package/theme/layout/app/notifications/notifications-sidebar.component.scss +237 -237
- package/theme/layout/app/notifications/notifications-sidebar.component.ts +221 -221
- package/theme/layout/app/profileSidebar/app.profilesidebar.component.html +122 -122
- package/theme/layout/app/profileSidebar/app.profilesidebar.component.scss +151 -151
- package/theme/layout/app/profileSidebar/app.profilesidebar.component.ts +141 -141
- package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.html +48 -48
- package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.scss +27 -27
- package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.ts +178 -178
- package/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.html +71 -71
- package/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.ts +251 -251
- package/theme/layout/app/profileSidebar/profile.service.ts +116 -116
- package/theme/layout/app/site-map/site-map-sidebar.component.html +121 -121
- package/theme/layout/app/site-map/site-map-sidebar.component.scss +178 -178
- package/theme/layout/app/site-map/site-map-sidebar.component.ts +193 -193
- package/theme/layout/app/static-sidebar/static-sidebar.component.html +123 -123
- package/theme/layout/app/static-sidebar/static-sidebar.component.scss +411 -411
- package/theme/layout/app/static-sidebar/static-sidebar.component.ts +276 -276
- package/theme/layout/app/topbar/app.topbar.component.html +85 -85
- package/theme/layout/app/topbar/app.topbar.component.scss +193 -193
- package/theme/layout/app/topbar/app.topbar.component.ts +172 -172
- package/theme/layout/index.ts +7 -7
- package/theme/layout/ng-package.json +6 -6
- package/theme/layout/service/app.layout.service.ts +307 -307
- package/theme/layout/service/app.menu.service.ts +53 -53
- package/theme/layout/service/breadcrumb.service.ts +14 -14
- package/theme/layout/service/interfaces/enum.ts +13 -13
- package/theme/layout/service/interfaces/interfaces.ts +150 -150
- package/theme/layout/service/menuchangeevent.ts +4 -4
- package/theme/layout/service/notifications.service.ts +26 -26
- package/theme/layout/service/search.service.ts +22 -22
- package/theme/layout/service/selection-group.service.ts +73 -73
- package/theme/ng-package.json +6 -6
- package/theme/styles/layout/_animation.scss +53 -53
- package/theme/styles/layout/_breadcrumb.scss +31 -31
- package/theme/styles/layout/_config.scss +42 -42
- package/theme/styles/layout/_content.scss +61 -61
- package/theme/styles/layout/_expanded_sidebar.scss +486 -486
- package/theme/styles/layout/_fonts.scss +93 -93
- package/theme/styles/layout/_layout_dark.scss +5 -5
- package/theme/styles/layout/_layout_dim.scss +5 -5
- package/theme/styles/layout/_layout_light.scss +5 -5
- package/theme/styles/layout/_main.scss +28 -28
- package/theme/styles/layout/_profile.scss +10 -10
- package/theme/styles/layout/_responsive.scss +153 -153
- package/theme/styles/layout/_sidebar_drawer.scss +234 -234
- package/theme/styles/layout/_sidebar_horizontal.scss +163 -163
- package/theme/styles/layout/_sidebar_reveal.scss +201 -201
- package/theme/styles/layout/_sidebar_slim.scss +144 -144
- package/theme/styles/layout/_sidebar_slim_plus.scss +168 -168
- package/theme/styles/layout/_sidebar_vertical.scss +156 -156
- package/theme/styles/layout/_topbar.scss +140 -140
- package/theme/styles/layout/_typography.scss +68 -68
- package/theme/styles/layout/_utils.scss +24 -24
- package/theme/styles/layout/layout.scss +25 -25
- package/theme/styles/layout/menutheme/_colorscheme.scss +11 -11
- package/theme/styles/layout/menutheme/_menutheme.scss +3 -3
- package/theme/styles/layout/menutheme/_primarycolor.scss +16 -16
- package/theme/styles/layout/menutheme/_transparent.scss +26 -26
- package/theme/styles/layout/preloading.scss +84 -84
- package/theme/styles/theme/base/_colors.scss +17 -17
- package/theme/styles/theme/base/_common.scss +89 -89
- package/theme/styles/theme/base/_components.scss +108 -108
- package/theme/styles/theme/base/_mixins.scss +337 -337
- package/theme/styles/theme/base/components/button/_button.scss +576 -576
- package/theme/styles/theme/base/components/button/_speeddial.scss +96 -96
- package/theme/styles/theme/base/components/button/_splitbutton.scss +348 -348
- package/theme/styles/theme/base/components/data/_carousel.scss +37 -37
- package/theme/styles/theme/base/components/data/_datatable.scss +338 -338
- package/theme/styles/theme/base/components/data/_dataview.scss +46 -46
- package/theme/styles/theme/base/components/data/_filter.scss +137 -137
- package/theme/styles/theme/base/components/data/_orderlist.scss +114 -114
- package/theme/styles/theme/base/components/data/_organizationchart.scss +50 -50
- package/theme/styles/theme/base/components/data/_paginator.scss +92 -92
- package/theme/styles/theme/base/components/data/_picklist.scss +114 -114
- package/theme/styles/theme/base/components/data/_table.scss +16 -16
- package/theme/styles/theme/base/components/data/_timeline.scss +35 -35
- package/theme/styles/theme/base/components/data/_tree.scss +150 -150
- package/theme/styles/theme/base/components/data/_treetable.scss +255 -255
- package/theme/styles/theme/base/components/data/_virtualscroller.scss +28 -28
- package/theme/styles/theme/base/components/file/_fileupload.scss +64 -64
- package/theme/styles/theme/base/components/input/_autocomplete.scss +141 -141
- package/theme/styles/theme/base/components/input/_calendar.scss +267 -267
- package/theme/styles/theme/base/components/input/_cascadeselect.scss +135 -135
- package/theme/styles/theme/base/components/input/_checkbox.scss +99 -99
- package/theme/styles/theme/base/components/input/_chips.scss +67 -67
- package/theme/styles/theme/base/components/input/_colorpicker.scss +19 -19
- package/theme/styles/theme/base/components/input/_dropdown.scss +151 -151
- package/theme/styles/theme/base/components/input/_editor.scss +122 -122
- package/theme/styles/theme/base/components/input/_inputgroup.scss +75 -75
- package/theme/styles/theme/base/components/input/_inputmask.scss +16 -16
- package/theme/styles/theme/base/components/input/_inputnumber.scss +28 -28
- package/theme/styles/theme/base/components/input/_inputswitch.scss +60 -60
- package/theme/styles/theme/base/components/input/_inputtext.scss +100 -100
- package/theme/styles/theme/base/components/input/_listbox.scss +97 -97
- package/theme/styles/theme/base/components/input/_multiselect.scss +177 -177
- package/theme/styles/theme/base/components/input/_password.scss +52 -52
- package/theme/styles/theme/base/components/input/_radiobutton.scss +78 -78
- package/theme/styles/theme/base/components/input/_rating.scss +60 -60
- package/theme/styles/theme/base/components/input/_selectbutton.scss +50 -50
- package/theme/styles/theme/base/components/input/_slider.scss +75 -75
- package/theme/styles/theme/base/components/input/_togglebutton.scss +48 -48
- package/theme/styles/theme/base/components/input/_treeselect.scss +139 -139
- package/theme/styles/theme/base/components/menu/_breadcrumb.scss +43 -43
- package/theme/styles/theme/base/components/menu/_contextmenu.scss +39 -39
- package/theme/styles/theme/base/components/menu/_dock.scss +95 -95
- package/theme/styles/theme/base/components/menu/_megamenu.scss +55 -55
- package/theme/styles/theme/base/components/menu/_menu.scss +37 -37
- package/theme/styles/theme/base/components/menu/_menubar.scss +140 -140
- package/theme/styles/theme/base/components/menu/_panelmenu.scss +153 -153
- package/theme/styles/theme/base/components/menu/_slidemenu.scss +59 -59
- package/theme/styles/theme/base/components/menu/_steps.scss +56 -56
- package/theme/styles/theme/base/components/menu/_tabmenu.scss +73 -73
- package/theme/styles/theme/base/components/menu/_tieredmenu.scss +43 -43
- package/theme/styles/theme/base/components/messages/_inlinemessage.scss +69 -69
- package/theme/styles/theme/base/components/messages/_message.scss +107 -107
- package/theme/styles/theme/base/components/messages/_toast.scss +99 -99
- package/theme/styles/theme/base/components/misc/_avatar.scss +30 -30
- package/theme/styles/theme/base/components/misc/_badge.scss +48 -48
- package/theme/styles/theme/base/components/misc/_chip.scss +42 -42
- package/theme/styles/theme/base/components/misc/_inplace.scss +16 -16
- package/theme/styles/theme/base/components/misc/_progressbar.scss +17 -17
- package/theme/styles/theme/base/components/misc/_scrolltop.scss +25 -25
- package/theme/styles/theme/base/components/misc/_skeleton.scss +8 -8
- package/theme/styles/theme/base/components/misc/_tag.scss +45 -45
- package/theme/styles/theme/base/components/misc/_terminal.scss +12 -12
- package/theme/styles/theme/base/components/multimedia/_galleria.scss +155 -155
- package/theme/styles/theme/base/components/multimedia/_image.scss +49 -49
- package/theme/styles/theme/base/components/overlay/_confirmpopup.scss +70 -70
- package/theme/styles/theme/base/components/overlay/_dialog.scss +69 -69
- package/theme/styles/theme/base/components/overlay/_overlaypanel.scss +62 -62
- package/theme/styles/theme/base/components/overlay/_sidebar.scss +28 -28
- package/theme/styles/theme/base/components/overlay/_tooltip.scss +33 -33
- package/theme/styles/theme/base/components/panel/_accordion.scss +119 -119
- package/theme/styles/theme/base/components/panel/_card.scss +30 -30
- package/theme/styles/theme/base/components/panel/_divider.scss +31 -31
- package/theme/styles/theme/base/components/panel/_fieldset.scss +47 -47
- package/theme/styles/theme/base/components/panel/_panel.scss +77 -77
- package/theme/styles/theme/base/components/panel/_scrollpanel.scss +6 -6
- package/theme/styles/theme/base/components/panel/_splitter.scss +19 -19
- package/theme/styles/theme/base/components/panel/_stepper.scss +200 -200
- package/theme/styles/theme/base/components/panel/_tabview.scss +91 -91
- package/theme/styles/theme/base/components/panel/_toolbar.scss +11 -11
- package/theme/styles/theme/dark/_extensions.scss +134 -134
- package/theme/styles/theme/dark/_variables.scss +933 -933
- package/theme/styles/theme/dark/indigo/theme.scss +14 -14
- package/theme/styles/theme/light/_extensions.scss +116 -116
- package/theme/styles/theme/light/_variables.scss +940 -940
- package/theme/styles/theme/light/custom/theme.scss +16 -16
- package/theme/styles/theme/light/indigo/theme.scss +14 -14
- package/tsconfig.lib.json +12 -0
- package/tsconfig.lib.prod.json +10 -0
- package/tsconfig.spec.json +9 -0
- package/ui/autoComplete/ng-package.json +6 -0
- package/ui/autoComplete/src/auto-complete.component.html +14 -0
- package/ui/autoComplete/src/auto-complete.component.ts +130 -0
- package/ui/autoComplete/src/interfaces.ts +35 -0
- package/ui/badge/ng-package.json +6 -0
- package/ui/badge/src/badge.component.html +11 -0
- package/ui/badge/src/badge.component.ts +63 -0
- package/ui/button/ng-package.json +6 -0
- package/ui/button/src/button.component.html +12 -0
- package/ui/button/src/button.component.ts +47 -0
- package/ui/button/src/split-button.component.html +2 -0
- package/ui/button/src/split-button.component.ts +17 -0
- package/ui/calendar/ng-package.json +6 -0
- package/ui/calendar/src/calendar.component.html +48 -0
- package/ui/calendar/src/calendar.component.ts +257 -0
- package/ui/charts/index.ts +13 -0
- package/ui/charts/ng-package.json +6 -0
- package/ui/charts/src/amCharts/column/column-chart.component.ts +144 -0
- package/ui/charts/src/amCharts/line/line-chart.component.ts +194 -0
- package/ui/charts/src/amCharts/pie/pie-chart.component.ts +132 -0
- package/ui/charts/src/highCharts/area/area-chart.component.ts +112 -0
- package/ui/charts/src/highCharts/bar/bar-chart.component.ts +100 -0
- package/ui/charts/src/highCharts/bar/bar-chart.components.scss +50 -0
- package/ui/charts/src/highCharts/column/column-chart.component copy.ts +50 -0
- package/ui/charts/src/highCharts/column/column-chart.component.ts +125 -0
- package/ui/charts/src/highCharts/column/column-chart.components.scss +50 -0
- package/ui/charts/src/highCharts/gauge/solid-gauge.component.ts +199 -0
- package/ui/charts/src/highCharts/heatmap/heatMap-chart.component.ts +279 -0
- package/ui/charts/src/highCharts/line/line-chart-datetime-axis.component.ts +185 -0
- package/ui/charts/src/highCharts/line/line-chart-series.component.ts +92 -0
- package/ui/charts/src/highCharts/line/line-chart.component.ts +85 -0
- package/ui/charts/src/highCharts/pie/pie-chart.component.ts +139 -0
- package/ui/charts/src/theme/theme.ts +55 -0
- package/ui/checkbox/ng-package.json +6 -0
- package/ui/checkbox/src/check-box.component.html +15 -0
- package/ui/checkbox/src/check-box.component.ts +24 -0
- package/ui/checkbox/src/tri-state-checkbox.component.html +7 -0
- package/ui/checkbox/src/tri-state-checkbox.component.ts +20 -0
- package/ui/chip/index.ts +1 -0
- package/ui/chip/ng-package.json +6 -0
- package/ui/chip/src/chip.component.html +33 -0
- package/ui/chip/src/chip.component.ts +144 -0
- package/ui/collapse-reorder-list/index.ts +1 -0
- package/ui/collapse-reorder-list/ng-package.json +6 -0
- package/ui/collapse-reorder-list/src/collapse-reorder-list.component.html +42 -0
- package/ui/collapse-reorder-list/src/collapse-reorder-list.component.scss +24 -0
- package/ui/collapse-reorder-list/src/collapse-reorder-list.component.ts +56 -0
- package/ui/dxEditor/ng-package.json +6 -0
- package/ui/dxEditor/src/dx-editor.component.html +67 -0
- package/ui/dxEditor/src/dx-editor.component.ts +19 -0
- package/ui/dxField/ng-package.json +6 -0
- package/ui/dxField/src/dx-field.component.html +15 -0
- package/ui/dxField/src/dx-field.component.ts +17 -0
- package/ui/editor/ng-package.json +6 -0
- package/ui/editor/src/aril-editor.component.html +16 -0
- package/ui/editor/src/aril-editor.component.scss +18 -0
- package/ui/editor/src/aril-editor.component.ts +176 -0
- package/ui/editor/src/types.ts +24 -0
- package/ui/field/ng-package.json +6 -0
- package/ui/field/src/field.component.html +27 -0
- package/ui/field/src/field.component.ts +53 -0
- package/ui/fileUpload/ng-package.json +6 -0
- package/ui/fileUpload/src/file-upload.component.html +76 -0
- package/ui/fileUpload/src/file-upload.component.ts +90 -0
- package/ui/form/index.ts +18 -0
- package/ui/form/ng-package.json +6 -0
- package/ui/form/src/form-submit-button.component.html +12 -0
- package/ui/form/src/form-submit-button.component.ts +36 -0
- package/ui/form/src/form.component.ts +20 -0
- package/ui/img-viewer/index.ts +2 -0
- package/ui/img-viewer/ng-package.json +6 -0
- package/ui/img-viewer/src/img-viewer.component.html +12 -0
- package/ui/img-viewer/src/img-viewer.component.scss +8 -0
- package/ui/img-viewer/src/img-viewer.component.ts +59 -0
- package/ui/index.ts +1 -0
- package/ui/json-diff-comparison/ng-package.json +6 -0
- package/ui/json-diff-comparison/src/json-diff.component.html +5 -0
- package/ui/json-diff-comparison/src/json-diff.component.ts +45 -0
- package/ui/lib/index.ts +17 -0
- package/ui/lib/ng-package.json +6 -0
- package/ui/lib/src/form/form-error-message.component.ts +25 -0
- package/ui/lib/src/form/form-error-message.directive.ts +32 -0
- package/ui/lib/src/form/form-field-builder.ts +31 -0
- package/ui/lib/src/form/form-validation.ts +14 -0
- package/ui/lib/src/grid/enum-color-picker.pipe.ts +33 -0
- package/ui/lib/src/grid/flex-grid.directive.ts +10 -0
- package/ui/lib/src/input/baseInput.ts +30 -0
- package/ui/lib/src/input/common-input-validators.service.ts +57 -0
- package/ui/lib/src/input/dx-input-error-message.pipe.ts +16 -0
- package/ui/lib/src/input/input-disabled.directive.ts +15 -0
- package/ui/lib/src/input/input-error-message.pipe.ts +71 -0
- package/ui/lib/src/input/input-transforms.ts +11 -0
- package/ui/lib/src/input/value-accessor.directive.ts +31 -0
- package/ui/loader/ng-package.json +6 -0
- package/ui/loader/src/loader.component.html +7 -0
- package/ui/loader/src/loader.component.scss +6 -0
- package/ui/loader/src/loader.component.ts +14 -0
- package/ui/mask/ng-package.json +6 -0
- package/ui/mask/src/mask.component.css +23 -0
- package/ui/mask/src/mask.component.html +17 -0
- package/ui/mask/src/mask.component.ts +34 -0
- package/ui/multiSelect/ng-package.json +6 -0
- package/ui/multiSelect/src/interfaces.ts +41 -0
- package/ui/multiSelect/src/multi-select.component.html +14 -0
- package/ui/multiSelect/src/multi-select.component.ts +66 -0
- package/ui/ng-package.json +6 -0
- package/ui/number/ng-package.json +6 -0
- package/ui/number/src/number.component.html +26 -0
- package/ui/number/src/number.component.ts +36 -0
- package/ui/operation-types-dialog/ng-package.json +6 -0
- package/ui/operation-types-dialog/src/operation-types-dialog.component.ts +98 -0
- package/ui/overlayPanel/ng-package.json +6 -0
- package/ui/overlayPanel/src/overlay-panel.component.html +5 -0
- package/ui/overlayPanel/src/overlay-panel.component.ts +16 -0
- package/ui/panel/ng-package.json +6 -0
- package/ui/panel/src/panel.component.css +38 -0
- package/ui/panel/src/panel.component.html +44 -0
- package/ui/panel/src/panel.component.ts +31 -0
- package/ui/password/ng-package.json +6 -0
- package/ui/password/src/password.component.html +25 -0
- package/ui/password/src/password.component.ts +22 -0
- package/ui/pdf-viewer/ng-package.json +6 -0
- package/ui/pdf-viewer/src/pdf-viewer.component.html +16 -0
- package/ui/pdf-viewer/src/pdf-viewer.component.scss +8 -0
- package/ui/pdf-viewer/src/pdf-viewer.component.ts +28 -0
- package/ui/progressbar/dist/index.js +13 -0
- package/ui/progressbar/ng-package.json +6 -0
- package/ui/progressbar/src/dist/progressbar.component.js +28 -0
- package/ui/progressbar/src/progressbar.component.html +1 -0
- package/ui/progressbar/src/progressbar.component.ts +18 -0
- package/ui/radioButton/ng-package.json +6 -0
- package/ui/radioButton/src/radio-button.component.html +23 -0
- package/ui/radioButton/src/radio-button.component.scss +17 -0
- package/ui/radioButton/src/radio-button.component.ts +39 -0
- package/ui/relativeDateSelector/index.ts +1 -0
- package/ui/relativeDateSelector/ng-package.json +6 -0
- package/ui/relativeDateSelector/src/enum.ts +29 -0
- package/ui/relativeDateSelector/src/relative-date-selector.component.html +118 -0
- package/ui/relativeDateSelector/src/relative-date-selector.component.scss +154 -0
- package/ui/relativeDateSelector/src/relative-date-selector.component.ts +291 -0
- package/ui/selectBox/ng-package.json +6 -0
- package/ui/selectBox/src/interfaces.ts +41 -0
- package/ui/selectBox/src/select-box.component.html +19 -0
- package/ui/selectBox/src/select-box.component.ts +79 -0
- package/ui/styles/ui.common.scss +42 -0
- package/ui/switch/ng-package.json +6 -0
- package/ui/switch/src/switch.component.html +7 -0
- package/ui/switch/src/switch.component.ts +18 -0
- package/ui/table/index.ts +76 -0
- package/ui/table/ng-package.json +6 -0
- package/ui/table/src/export-overlay-panel.component.ts +330 -0
- package/ui/table/src/interfaces.ts +162 -0
- package/ui/table/src/table-column.component.ts +22 -0
- package/ui/table/src/table.component.html +404 -0
- package/ui/table/src/table.component.scss +15 -0
- package/ui/table/src/table.component.ts +368 -0
- package/ui/table-expand/index.ts +41 -0
- package/ui/table-expand/ng-package.json +6 -0
- package/ui/table-expand/src/table-column.component.ts +32 -0
- package/ui/table-expand/src/table-expand-area.component.ts +18 -0
- package/ui/table-expand/src/table.component.html +101 -0
- package/ui/table-expand/src/table.component.ts +92 -0
- package/ui/tag/index.ts +1 -0
- package/ui/tag/ng-package.json +6 -0
- package/ui/tag/src/interface.ts +1 -0
- package/ui/tag/src/tag.component.html +9 -0
- package/ui/tag/src/tag.component.ts +17 -0
- package/ui/tagBox/ng-package.json +6 -0
- package/ui/tagBox/src/tag-box.component.html +26 -0
- package/ui/tagBox/src/tag-box.component.ts +56 -0
- package/ui/text/ng-package.json +6 -0
- package/ui/text/src/text.component.html +21 -0
- package/ui/text/src/text.component.ts +55 -0
- package/ui/textArea/ng-package.json +6 -0
- package/ui/textArea/src/text-area.component.html +12 -0
- package/ui/textArea/src/text-area.component.ts +22 -0
- package/ui/toggle-button/index.ts +1 -0
- package/ui/toggle-button/ng-package.json +6 -0
- package/ui/toggle-button/src/toggle-button.component.html +13 -0
- package/ui/toggle-button/src/toggle-button.component.scss +19 -0
- package/ui/toggle-button/src/toggle-button.component.ts +22 -0
- package/ui/tooltip/ng-package.json +6 -0
- package/ui/tooltip/src/tooltip-component.html +10 -0
- package/ui/tooltip/src/tooltip-component.ts +20 -0
- package/ui/translate-input/ng-package.json +6 -0
- package/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.html +46 -0
- package/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.scss +9 -0
- package/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.ts +74 -0
- package/ui/translate-input/src/aril-lang-modal/constants.ts +16 -0
- package/ui/translate-input/src/aril-translate-input.component.ts +152 -0
- package/ui/translate-input/src/interface.ts +14 -0
- package/ui/tree/ng-package.json +6 -0
- package/ui/tree/src/tree.component.html +17 -0
- package/ui/tree/src/tree.component.ts +65 -0
- package/ui/treeSelect/ng-package.json +6 -0
- package/ui/treeSelect/src/treeSelect.component.html +18 -0
- package/ui/treeSelect/src/treeSelect.component.ts +43 -0
- package/ui/treeTable/ng-package.json +6 -0
- package/ui/treeTable/src/tree-table.component.html +88 -0
- package/ui/treeTable/src/tree-table.component.ts +57 -0
- package/ui/value/ng-package.json +6 -0
- package/ui/value/src/value.component.html +94 -0
- package/ui/value/src/value.component.scss +6 -0
- package/ui/value/src/value.component.ts +268 -0
- package/ui-business/assetPicker/index.ts +1 -0
- package/ui-business/assetPicker/ng-package.json +6 -0
- package/ui-business/assetPicker/src/asset-picker.component.html +29 -0
- package/ui-business/assetPicker/src/asset-picker.component.ts +259 -0
- package/ui-business/assetPicker/src/interface.ts +83 -0
- package/ui-business/detailed-overlay-panel/ng-package.json +6 -0
- package/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.html +52 -0
- package/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.scss +19 -0
- package/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.ts +66 -0
- package/ui-business/detailed-overlay-panel/src/interface.ts +62 -0
- package/ui-business/enumPicker/index.ts +1 -0
- package/ui-business/enumPicker/ng-package.json +6 -0
- package/ui-business/enumPicker/src/enum-picker.component.html +39 -0
- package/ui-business/enumPicker/src/enum-picker.component.ts +147 -0
- package/ui-business/enumPicker/src/interface.ts +44 -0
- package/ui-business/image-viewer/index.ts +1 -0
- package/ui-business/image-viewer/ng-package.json +6 -0
- package/ui-business/image-viewer/src/aril-image-viewer.component.ts +92 -0
- package/ui-business/index.ts +1 -0
- package/ui-business/multiple-ref-value/ng-package.json +6 -0
- package/ui-business/multiple-ref-value/src/multiple-ref-value.component.html +26 -0
- package/ui-business/multiple-ref-value/src/multiple-ref-value.component.ts +21 -0
- package/ui-business/ng-package.json +6 -0
- package/ui-business/notification-templates-dialog/ng-package.json +6 -0
- package/ui-business/notification-templates-dialog/src/interface.ts +18 -0
- package/ui-business/notification-templates-dialog/src/notification-templates-dialog.component.html +31 -0
- package/ui-business/notification-templates-dialog/src/notification-templates-dialog.component.ts +69 -0
- package/ui-business/operation-types-dialog/ng-package.json +6 -0
- package/ui-business/operation-types-dialog/src/operation-types-dialog.component.ts +78 -0
- package/ui-business/ref-value/ng-package.json +6 -0
- package/ui-business/ref-value/src/ref-value.component.html +29 -0
- package/ui-business/ref-value/src/ref-value.component.ts +41 -0
- package/ui-business/rolePicker/ng-package.json +6 -0
- package/ui-business/rolePicker/src/interface.ts +56 -0
- package/ui-business/rolePicker/src/role-picker.component.html +21 -0
- package/ui-business/rolePicker/src/role-picker.component.ts +88 -0
- package/ui-business/userPicker/index.ts +1 -0
- package/ui-business/userPicker/ng-package.json +6 -0
- package/ui-business/userPicker/src/interface.ts +27 -0
- package/ui-business/userPicker/src/user-picker.component.html +20 -0
- package/ui-business/userPicker/src/user-picker.component.ts +52 -0
- package/util/block/ng-package.json +6 -0
- package/util/block/src/block.ts +65 -0
- package/util/block/src/blockui.css +56 -0
- package/util/block/src/blockui.min.js +7 -0
- package/util/custom_pages/ng-package.json +6 -0
- package/util/custom_pages/src/notFound.component.ts +34 -0
- package/util/directives/ng-package.json +6 -0
- package/util/directives/src/detail-page-customization/detail-page-customization.directive.md +199 -0
- package/util/directives/src/detail-page-customization/detail-page-customization.directive.ts +343 -0
- package/util/directives/src/detail-page-customization/index.ts +2 -0
- package/util/directives/src/detail-page-customization/models.ts +61 -0
- package/util/directives/src/dialog-component/plugin-dialog.component.ts +22 -0
- package/util/directives/src/dialog-service/plugin-dialog.service.ts +12 -0
- package/util/index.ts +1 -0
- package/util/lib/ng-package.json +6 -0
- package/util/lib/src/interfaces.ts +44 -0
- package/util/lib/src/module-router.ts +9 -0
- package/util/lib/src/types.ts +61 -0
- package/util/lib/src/validators/iban.validator.ts +202 -0
- package/util/lib/src/validators/max-array-length.validator.ts +18 -0
- package/util/lib/src/validators/min-array-length.validator.ts +18 -0
- package/util/lib/src/validators/tckn.validator.ts +55 -0
- package/util/lib/src/validators/validators.ts +21 -0
- package/util/loaders/index.ts +1 -0
- package/util/loaders/ng-package.json +6 -0
- package/util/loaders/style/style.loader.service.ts +69 -0
- package/util/ng-package.json +6 -0
- package/util/pipes/ng-package.json +6 -0
- package/util/pipes/src/distance-to-now.pipe.ts +37 -0
- package/util/pipes/src/get-column-by-field.pipe.ts +11 -0
- package/util/pipes/src/parse.pipe.ts +15 -0
- package/util/pipes/src/round-number.pipe.ts +75 -0
- package/util/pipes/src/safe.pipe.ts +27 -0
- package/util/pipes/src/translate-json/index.ts +1 -0
- package/util/pipes/src/translate-json/translate-json.pipe.ts +34 -0
- package/util/primitive-extensions/ng-package.json +6 -0
- package/util/primitive-extensions/src/date.extensions.ts +135 -0
- package/util/primitive-extensions/src/number.extensions.ts +57 -0
- package/util/primitive-extensions/src/string.extensions.ts +39 -0
- package/util/pub-sub/ng-package.json +6 -0
- package/util/pub-sub/src/pub-sub.service.ts +35 -0
- package/util/sync-active-tab-route/ng-package.json +6 -0
- package/util/sync-active-tab-route/src/sync-active-tab-route.directive.ts +47 -0
- package/util/unwrap/ng-package.json +6 -0
- package/util/unwrap/src/unwrap-tag.directive.ts +18 -0
- package/boot/config/api/src/api.service.d.ts +0 -12
- package/boot/config/api/src/interfaces.d.ts +0 -39
- package/boot/config/api.sample.json +0 -8
- package/boot/config/apps/src/apps.service.d.ts +0 -13
- package/boot/config/apps/src/auth.guard.d.ts +0 -9
- package/boot/config/apps/src/interfaces.d.ts +0 -50
- package/boot/config/apps/src/reuse-strategy.d.ts +0 -4
- package/boot/config/apps/src/showdowDOMWrapper.d.ts +0 -10
- package/boot/config/plugins/src/getNgZone.d.ts +0 -5
- package/boot/config/plugins/src/interfaces.d.ts +0 -55
- package/boot/config/plugins/src/plugins.service.d.ts +0 -5
- package/boot/config/translate/constants.d.ts +0 -4
- package/boot/config/translate/primeng/i18n/tr.d.ts +0 -46
- package/boot/host/src/app.component.d.ts +0 -10
- package/boot/host/src/bootstrap.d.ts +0 -4
- package/boot/index.d.ts +0 -1
- package/boot/mfe/src/app.component.d.ts +0 -17
- package/boot/mfe/src/appComponentLoader.d.ts +0 -1
- package/boot/mfe/src/bootstrap.d.ts +0 -5
- package/boot/mfe/src/loadStyles.d.ts +0 -3
- package/boot/mfe/src/monaco.config.d.ts +0 -7
- package/esm2022/aril.mjs +0 -5
- package/esm2022/boot/aril-boot.mjs +0 -5
- package/esm2022/boot/config/api/aril-boot-config-api.mjs +0 -5
- package/esm2022/boot/config/api/index.mjs +0 -2
- package/esm2022/boot/config/api/src/api.service.mjs +0 -59
- package/esm2022/boot/config/api/src/interfaces.mjs +0 -61
- package/esm2022/boot/config/apps/aril-boot-config-apps.mjs +0 -5
- package/esm2022/boot/config/apps/index.mjs +0 -4
- package/esm2022/boot/config/apps/src/apps.service.mjs +0 -53
- package/esm2022/boot/config/apps/src/auth.guard.mjs +0 -22
- package/esm2022/boot/config/apps/src/interfaces.mjs +0 -21
- package/esm2022/boot/config/apps/src/reuse-strategy.mjs +0 -9
- package/esm2022/boot/config/apps/src/showdowDOMWrapper.mjs +0 -35
- package/esm2022/boot/config/plugins/aril-boot-config-plugins.mjs +0 -5
- package/esm2022/boot/config/plugins/index.mjs +0 -3
- package/esm2022/boot/config/plugins/src/getNgZone.mjs +0 -9
- package/esm2022/boot/config/plugins/src/interfaces.mjs +0 -62
- package/esm2022/boot/config/plugins/src/plugins.service.mjs +0 -84
- package/esm2022/boot/config/translate/aril-boot-config-translate.mjs +0 -5
- package/esm2022/boot/config/translate/constants.mjs +0 -6
- package/esm2022/boot/config/translate/index.mjs +0 -3
- package/esm2022/boot/config/translate/primeng/i18n/tr.mjs +0 -60
- package/esm2022/boot/host/aril-boot-host.mjs +0 -5
- package/esm2022/boot/host/index.mjs +0 -2
- package/esm2022/boot/host/src/app.component.mjs +0 -49
- package/esm2022/boot/host/src/bootstrap.mjs +0 -55
- package/esm2022/boot/index.mjs +0 -2
- package/esm2022/boot/mfe/aril-boot-mfe.mjs +0 -5
- package/esm2022/boot/mfe/index.mjs +0 -2
- package/esm2022/boot/mfe/src/app.component.mjs +0 -63
- package/esm2022/boot/mfe/src/appComponentLoader.mjs +0 -5
- package/esm2022/boot/mfe/src/bootstrap.mjs +0 -76
- package/esm2022/boot/mfe/src/loadStyles.mjs +0 -37
- package/esm2022/boot/mfe/src/monaco.config.mjs +0 -247
- package/esm2022/http/aril-http.mjs +0 -5
- package/esm2022/http/index.mjs +0 -12
- package/esm2022/http/lib/enums.mjs +0 -35
- package/esm2022/http/lib/interfaces.mjs +0 -16
- package/esm2022/http/src/httpBackend.mjs +0 -17
- package/esm2022/http/src/httpClient.mjs +0 -16
- package/esm2022/http/src/interceptor/accept-language.interceptor.mjs +0 -21
- package/esm2022/http/src/serviceBase.mjs +0 -140
- package/esm2022/http/src/serviceMockBase.mjs +0 -4
- package/esm2022/http/src/serviceRequest.mjs +0 -23
- package/esm2022/http/src/serviceStateMethods.mjs +0 -167
- package/esm2022/i18n/aril-i18n.mjs +0 -5
- package/esm2022/i18n/index.mjs +0 -6
- package/esm2022/i18n/src/folder-name-token.mjs +0 -3
- package/esm2022/i18n/src/i18n.module.mjs +0 -17
- package/esm2022/i18n/src/loader.mjs +0 -18
- package/esm2022/i18n/src/provideI18n.mjs +0 -16
- package/esm2022/i18n/src/provideScope.mjs +0 -18
- package/esm2022/keycloak/aril-keycloak.mjs +0 -5
- package/esm2022/keycloak/index.mjs +0 -2
- package/esm2022/keycloak/src/auth.interceptor.mjs +0 -92
- package/esm2022/provider/aril-provider.mjs +0 -5
- package/esm2022/provider/index.mjs +0 -2
- package/esm2022/provider/src/index.mjs +0 -5
- package/esm2022/provider/src/prodiveHost.mjs +0 -9
- package/esm2022/provider/src/prodiveHostRouter.mjs +0 -12
- package/esm2022/provider/src/provideHostKeycloak.mjs +0 -28
- package/esm2022/provider/src/provideLocaleId.mjs +0 -20
- package/esm2022/public-api.mjs +0 -3
- package/esm2022/theme/aril-theme.mjs +0 -5
- package/esm2022/theme/index.mjs +0 -2
- package/esm2022/theme/layout/app/breadcrumb/app.breadcrumb.component.mjs +0 -106
- package/esm2022/theme/layout/app/chatbot/app.chatbot.component.mjs +0 -140
- package/esm2022/theme/layout/app/expandableMenu/expandable-menu.component.mjs +0 -250
- package/esm2022/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.mjs +0 -217
- package/esm2022/theme/layout/app/favorite-pages/favorite-pages.service.mjs +0 -60
- package/esm2022/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.mjs +0 -129
- package/esm2022/theme/layout/app/general-search/general-search.component.mjs +0 -75
- package/esm2022/theme/layout/app/general-search/helpers.mjs +0 -92
- package/esm2022/theme/layout/app/general-search/models.mjs +0 -50
- package/esm2022/theme/layout/app/history/history-sidebar.component.mjs +0 -133
- package/esm2022/theme/layout/app/history/history.service.mjs +0 -131
- package/esm2022/theme/layout/app/layout/app.layout.component.mjs +0 -160
- package/esm2022/theme/layout/app/layout/mfe.layout.component.mjs +0 -64
- package/esm2022/theme/layout/app/notifications/notifications-sidebar.component.mjs +0 -191
- package/esm2022/theme/layout/app/profileSidebar/app.profilesidebar.component.mjs +0 -122
- package/esm2022/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.mjs +0 -142
- package/esm2022/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.mjs +0 -202
- package/esm2022/theme/layout/app/profileSidebar/profile.service.mjs +0 -66
- package/esm2022/theme/layout/app/site-map/site-map-sidebar.component.mjs +0 -166
- package/esm2022/theme/layout/app/static-sidebar/static-sidebar.component.mjs +0 -228
- package/esm2022/theme/layout/app/topbar/app.topbar.component.mjs +0 -155
- package/esm2022/theme/layout/aril-theme-layout.mjs +0 -5
- package/esm2022/theme/layout/index.mjs +0 -8
- package/esm2022/theme/layout/service/app.layout.service.mjs +0 -231
- package/esm2022/theme/layout/service/app.menu.service.mjs +0 -46
- package/esm2022/theme/layout/service/breadcrumb.service.mjs +0 -20
- package/esm2022/theme/layout/service/interfaces/enum.mjs +0 -16
- package/esm2022/theme/layout/service/interfaces/interfaces.mjs +0 -2
- package/esm2022/theme/layout/service/menuchangeevent.mjs +0 -2
- package/esm2022/theme/layout/service/notifications.service.mjs +0 -30
- package/esm2022/theme/layout/service/search.service.mjs +0 -25
- package/esm2022/theme/layout/service/selection-group.service.mjs +0 -65
- package/esm2022/ui/aril-ui.mjs +0 -5
- package/esm2022/ui/autoComplete/aril-ui-autoComplete.mjs +0 -5
- package/esm2022/ui/autoComplete/index.mjs +0 -2
- package/esm2022/ui/autoComplete/src/auto-complete.component.mjs +0 -109
- package/esm2022/ui/autoComplete/src/interfaces.mjs +0 -2
- package/esm2022/ui/badge/aril-ui-badge.mjs +0 -5
- package/esm2022/ui/badge/index.mjs +0 -2
- package/esm2022/ui/badge/src/badge.component.mjs +0 -59
- package/esm2022/ui/button/aril-ui-button.mjs +0 -5
- package/esm2022/ui/button/index.mjs +0 -3
- package/esm2022/ui/button/src/button.component.mjs +0 -40
- package/esm2022/ui/button/src/split-button.component.mjs +0 -18
- package/esm2022/ui/calendar/aril-ui-calendar.mjs +0 -5
- package/esm2022/ui/calendar/index.mjs +0 -2
- package/esm2022/ui/calendar/src/calendar.component.mjs +0 -224
- package/esm2022/ui/charts/aril-ui-charts.mjs +0 -5
- package/esm2022/ui/charts/index.mjs +0 -13
- package/esm2022/ui/charts/src/amCharts/column/column-chart.component.mjs +0 -124
- package/esm2022/ui/charts/src/amCharts/line/line-chart.component.mjs +0 -164
- package/esm2022/ui/charts/src/amCharts/pie/pie-chart.component.mjs +0 -116
- package/esm2022/ui/charts/src/highCharts/area/area-chart.component.mjs +0 -114
- package/esm2022/ui/charts/src/highCharts/bar/bar-chart.component.mjs +0 -100
- package/esm2022/ui/charts/src/highCharts/column/column-chart.component.mjs +0 -117
- package/esm2022/ui/charts/src/highCharts/gauge/solid-gauge.component.mjs +0 -180
- package/esm2022/ui/charts/src/highCharts/heatmap/heatMap-chart.component.mjs +0 -252
- package/esm2022/ui/charts/src/highCharts/line/line-chart-datetime-axis.component.mjs +0 -187
- package/esm2022/ui/charts/src/highCharts/line/line-chart-series.component.mjs +0 -89
- package/esm2022/ui/charts/src/highCharts/line/line-chart.component.mjs +0 -82
- package/esm2022/ui/charts/src/highCharts/pie/pie-chart.component.mjs +0 -137
- package/esm2022/ui/charts/src/theme/theme.mjs +0 -54
- package/esm2022/ui/checkbox/aril-ui-checkbox.mjs +0 -5
- package/esm2022/ui/checkbox/index.mjs +0 -3
- package/esm2022/ui/checkbox/src/check-box.component.mjs +0 -27
- package/esm2022/ui/checkbox/src/tri-state-checkbox.component.mjs +0 -24
- package/esm2022/ui/chip/aril-ui-chip.mjs +0 -5
- package/esm2022/ui/chip/index.mjs +0 -2
- package/esm2022/ui/chip/src/chip.component.mjs +0 -129
- package/esm2022/ui/collapse-reorder-list/aril-ui-collapse-reorder-list.mjs +0 -5
- package/esm2022/ui/collapse-reorder-list/index.mjs +0 -2
- package/esm2022/ui/collapse-reorder-list/src/collapse-reorder-list.component.mjs +0 -53
- package/esm2022/ui/dxEditor/aril-ui-dxEditor.mjs +0 -5
- package/esm2022/ui/dxEditor/index.mjs +0 -2
- package/esm2022/ui/dxEditor/src/dx-editor.component.mjs +0 -26
- package/esm2022/ui/dxField/aril-ui-dxField.mjs +0 -5
- package/esm2022/ui/dxField/index.mjs +0 -2
- package/esm2022/ui/dxField/src/dx-field.component.mjs +0 -19
- package/esm2022/ui/editor/aril-ui-editor.mjs +0 -5
- package/esm2022/ui/editor/index.mjs +0 -3
- package/esm2022/ui/editor/src/aril-editor.component.mjs +0 -171
- package/esm2022/ui/editor/src/types.mjs +0 -26
- package/esm2022/ui/field/aril-ui-field.mjs +0 -5
- package/esm2022/ui/field/index.mjs +0 -2
- package/esm2022/ui/field/src/field.component.mjs +0 -45
- package/esm2022/ui/fileUpload/aril-ui-fileUpload.mjs +0 -5
- package/esm2022/ui/fileUpload/index.mjs +0 -2
- package/esm2022/ui/fileUpload/src/file-upload.component.mjs +0 -73
- package/esm2022/ui/form/aril-ui-form.mjs +0 -5
- package/esm2022/ui/form/index.mjs +0 -22
- package/esm2022/ui/form/src/form-submit-button.component.mjs +0 -40
- package/esm2022/ui/form/src/form.component.mjs +0 -27
- package/esm2022/ui/img-viewer/aril-ui-img-viewer.mjs +0 -5
- package/esm2022/ui/img-viewer/index.mjs +0 -2
- package/esm2022/ui/img-viewer/src/img-viewer.component.mjs +0 -57
- package/esm2022/ui/index.mjs +0 -2
- package/esm2022/ui/json-diff-comparison/aril-ui-json-diff-comparison.mjs +0 -5
- package/esm2022/ui/json-diff-comparison/index.mjs +0 -2
- package/esm2022/ui/json-diff-comparison/src/json-diff.component.mjs +0 -49
- package/esm2022/ui/lib/aril-ui-lib.mjs +0 -5
- package/esm2022/ui/lib/index.mjs +0 -16
- package/esm2022/ui/lib/src/form/form-error-message.component.mjs +0 -33
- package/esm2022/ui/lib/src/form/form-error-message.directive.mjs +0 -34
- package/esm2022/ui/lib/src/form/form-field-builder.mjs +0 -23
- package/esm2022/ui/lib/src/form/form-validation.mjs +0 -14
- package/esm2022/ui/lib/src/grid/enum-color-picker.pipe.mjs +0 -35
- package/esm2022/ui/lib/src/grid/flex-grid.directive.mjs +0 -21
- package/esm2022/ui/lib/src/input/baseInput.mjs +0 -24
- package/esm2022/ui/lib/src/input/common-input-validators.service.mjs +0 -49
- package/esm2022/ui/lib/src/input/dx-input-error-message.pipe.mjs +0 -22
- package/esm2022/ui/lib/src/input/input-disabled.directive.mjs +0 -25
- package/esm2022/ui/lib/src/input/input-error-message.pipe.mjs +0 -63
- package/esm2022/ui/lib/src/input/input-transforms.mjs +0 -8
- package/esm2022/ui/lib/src/input/value-accessor.directive.mjs +0 -38
- package/esm2022/ui/loader/aril-ui-loader.mjs +0 -5
- package/esm2022/ui/loader/index.mjs +0 -2
- package/esm2022/ui/loader/src/loader.component.mjs +0 -14
- package/esm2022/ui/mask/aril-ui-mask.mjs +0 -5
- package/esm2022/ui/mask/index.mjs +0 -2
- package/esm2022/ui/mask/src/mask.component.mjs +0 -35
- package/esm2022/ui/multiSelect/aril-ui-multiSelect.mjs +0 -5
- package/esm2022/ui/multiSelect/index.mjs +0 -2
- package/esm2022/ui/multiSelect/src/interfaces.mjs +0 -2
- package/esm2022/ui/multiSelect/src/multi-select.component.mjs +0 -57
- package/esm2022/ui/number/aril-ui-number.mjs +0 -5
- package/esm2022/ui/number/index.mjs +0 -2
- package/esm2022/ui/number/src/number.component.mjs +0 -38
- package/esm2022/ui/operation-types-dialog/aril-ui-operation-types-dialog.mjs +0 -5
- package/esm2022/ui/operation-types-dialog/index.mjs +0 -2
- package/esm2022/ui/operation-types-dialog/src/operation-types-dialog.component.mjs +0 -91
- package/esm2022/ui/overlayPanel/aril-ui-overlayPanel.mjs +0 -5
- package/esm2022/ui/overlayPanel/index.mjs +0 -2
- package/esm2022/ui/overlayPanel/src/overlay-panel.component.mjs +0 -20
- package/esm2022/ui/panel/aril-ui-panel.mjs +0 -5
- package/esm2022/ui/panel/index.mjs +0 -2
- package/esm2022/ui/panel/src/panel.component.mjs +0 -33
- package/esm2022/ui/password/aril-ui-password.mjs +0 -5
- package/esm2022/ui/password/index.mjs +0 -2
- package/esm2022/ui/password/src/password.component.mjs +0 -29
- package/esm2022/ui/pdf-viewer/aril-ui-pdf-viewer.mjs +0 -5
- package/esm2022/ui/pdf-viewer/index.mjs +0 -2
- package/esm2022/ui/pdf-viewer/src/pdf-viewer.component.mjs +0 -27
- package/esm2022/ui/progressbar/aril-ui-progressbar.mjs +0 -5
- package/esm2022/ui/progressbar/index.mjs +0 -2
- package/esm2022/ui/progressbar/src/progressbar.component.mjs +0 -18
- package/esm2022/ui/radioButton/aril-ui-radioButton.mjs +0 -5
- package/esm2022/ui/radioButton/index.mjs +0 -2
- package/esm2022/ui/radioButton/src/radio-button.component.mjs +0 -30
- package/esm2022/ui/relativeDateSelector/aril-ui-relativeDateSelector.mjs +0 -5
- package/esm2022/ui/relativeDateSelector/index.mjs +0 -2
- package/esm2022/ui/relativeDateSelector/src/enum.mjs +0 -31
- package/esm2022/ui/relativeDateSelector/src/relative-date-selector.component.mjs +0 -248
- package/esm2022/ui/selectBox/aril-ui-selectBox.mjs +0 -5
- package/esm2022/ui/selectBox/index.mjs +0 -2
- package/esm2022/ui/selectBox/src/interfaces.mjs +0 -2
- package/esm2022/ui/selectBox/src/select-box.component.mjs +0 -67
- package/esm2022/ui/switch/aril-ui-switch.mjs +0 -5
- package/esm2022/ui/switch/index.mjs +0 -2
- package/esm2022/ui/switch/src/switch.component.mjs +0 -23
- package/esm2022/ui/table/aril-ui-table.mjs +0 -5
- package/esm2022/ui/table/index.mjs +0 -131
- package/esm2022/ui/table/src/export-overlay-panel.component.mjs +0 -321
- package/esm2022/ui/table/src/interfaces.mjs +0 -44
- package/esm2022/ui/table/src/table-column.component.mjs +0 -31
- package/esm2022/ui/table/src/table.component.mjs +0 -334
- package/esm2022/ui/table-expand/aril-ui-table-expand.mjs +0 -5
- package/esm2022/ui/table-expand/index.mjs +0 -61
- package/esm2022/ui/table-expand/src/table-column.component.mjs +0 -25
- package/esm2022/ui/table-expand/src/table-expand-area.component.mjs +0 -17
- package/esm2022/ui/table-expand/src/table.component.mjs +0 -99
- package/esm2022/ui/tag/aril-ui-tag.mjs +0 -5
- package/esm2022/ui/tag/index.mjs +0 -2
- package/esm2022/ui/tag/src/interface.mjs +0 -2
- package/esm2022/ui/tag/src/tag.component.mjs +0 -20
- package/esm2022/ui/tagBox/aril-ui-tagBox.mjs +0 -5
- package/esm2022/ui/tagBox/index.mjs +0 -2
- package/esm2022/ui/tagBox/src/tag-box.component.mjs +0 -55
- package/esm2022/ui/text/aril-ui-text.mjs +0 -5
- package/esm2022/ui/text/index.mjs +0 -2
- package/esm2022/ui/text/src/text.component.mjs +0 -47
- package/esm2022/ui/textArea/aril-ui-textArea.mjs +0 -5
- package/esm2022/ui/textArea/index.mjs +0 -2
- package/esm2022/ui/textArea/src/text-area.component.mjs +0 -27
- package/esm2022/ui/toggle-button/aril-ui-toggle-button.mjs +0 -5
- package/esm2022/ui/toggle-button/index.mjs +0 -2
- package/esm2022/ui/toggle-button/src/toggle-button.component.mjs +0 -25
- package/esm2022/ui/tooltip/aril-ui-tooltip.mjs +0 -5
- package/esm2022/ui/tooltip/index.mjs +0 -2
- package/esm2022/ui/tooltip/src/tooltip-component.mjs +0 -23
- package/esm2022/ui/translate-input/aril-ui-translate-input.mjs +0 -5
- package/esm2022/ui/translate-input/index.mjs +0 -2
- package/esm2022/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.mjs +0 -64
- package/esm2022/ui/translate-input/src/aril-lang-modal/constants.mjs +0 -15
- package/esm2022/ui/translate-input/src/aril-translate-input.component.mjs +0 -128
- package/esm2022/ui/translate-input/src/interface.mjs +0 -2
- package/esm2022/ui/tree/aril-ui-tree.mjs +0 -5
- package/esm2022/ui/tree/index.mjs +0 -2
- package/esm2022/ui/tree/src/tree.component.mjs +0 -53
- package/esm2022/ui/treeSelect/aril-ui-treeSelect.mjs +0 -5
- package/esm2022/ui/treeSelect/index.mjs +0 -2
- package/esm2022/ui/treeSelect/src/treeSelect.component.mjs +0 -41
- package/esm2022/ui/treeTable/aril-ui-treeTable.mjs +0 -5
- package/esm2022/ui/treeTable/index.mjs +0 -2
- package/esm2022/ui/treeTable/src/tree-table.component.mjs +0 -55
- package/esm2022/ui/value/aril-ui-value.mjs +0 -5
- package/esm2022/ui/value/index.mjs +0 -2
- package/esm2022/ui/value/src/value.component.mjs +0 -207
- package/esm2022/ui-business/aril-ui-business.mjs +0 -5
- package/esm2022/ui-business/assetPicker/aril-ui-business-assetPicker.mjs +0 -5
- package/esm2022/ui-business/assetPicker/index.mjs +0 -2
- package/esm2022/ui-business/assetPicker/src/asset-picker.component.mjs +0 -182
- package/esm2022/ui-business/assetPicker/src/interface.mjs +0 -2
- package/esm2022/ui-business/detailed-overlay-panel/aril-ui-business-detailed-overlay-panel.mjs +0 -5
- package/esm2022/ui-business/detailed-overlay-panel/index.mjs +0 -2
- package/esm2022/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.mjs +0 -61
- package/esm2022/ui-business/detailed-overlay-panel/src/interface.mjs +0 -19
- package/esm2022/ui-business/enumPicker/aril-ui-business-enumPicker.mjs +0 -5
- package/esm2022/ui-business/enumPicker/index.mjs +0 -2
- package/esm2022/ui-business/enumPicker/src/enum-picker.component.mjs +0 -124
- package/esm2022/ui-business/enumPicker/src/interface.mjs +0 -2
- package/esm2022/ui-business/image-viewer/aril-ui-business-image-viewer.mjs +0 -5
- package/esm2022/ui-business/image-viewer/index.mjs +0 -2
- package/esm2022/ui-business/image-viewer/src/aril-image-viewer.component.mjs +0 -111
- package/esm2022/ui-business/index.mjs +0 -2
- package/esm2022/ui-business/multiple-ref-value/aril-ui-business-multiple-ref-value.mjs +0 -5
- package/esm2022/ui-business/multiple-ref-value/index.mjs +0 -2
- package/esm2022/ui-business/multiple-ref-value/src/multiple-ref-value.component.mjs +0 -23
- package/esm2022/ui-business/notification-templates-dialog/aril-ui-business-notification-templates-dialog.mjs +0 -5
- package/esm2022/ui-business/notification-templates-dialog/index.mjs +0 -2
- package/esm2022/ui-business/notification-templates-dialog/src/interface.mjs +0 -8
- package/esm2022/ui-business/notification-templates-dialog/src/notification-templates-dialog.component.mjs +0 -56
- package/esm2022/ui-business/operation-types-dialog/aril-ui-business-operation-types-dialog.mjs +0 -5
- package/esm2022/ui-business/operation-types-dialog/index.mjs +0 -2
- package/esm2022/ui-business/operation-types-dialog/src/operation-types-dialog.component.mjs +0 -76
- package/esm2022/ui-business/ref-value/aril-ui-business-ref-value.mjs +0 -5
- package/esm2022/ui-business/ref-value/index.mjs +0 -2
- package/esm2022/ui-business/ref-value/src/ref-value.component.mjs +0 -39
- package/esm2022/ui-business/rolePicker/aril-ui-business-rolePicker.mjs +0 -5
- package/esm2022/ui-business/rolePicker/index.mjs +0 -2
- package/esm2022/ui-business/rolePicker/src/interface.mjs +0 -2
- package/esm2022/ui-business/rolePicker/src/role-picker.component.mjs +0 -71
- package/esm2022/ui-business/userPicker/aril-ui-business-userPicker.mjs +0 -5
- package/esm2022/ui-business/userPicker/index.mjs +0 -2
- package/esm2022/ui-business/userPicker/src/interface.mjs +0 -2
- package/esm2022/ui-business/userPicker/src/user-picker.component.mjs +0 -43
- package/esm2022/util/aril-util.mjs +0 -5
- package/esm2022/util/block/aril-util-block.mjs +0 -5
- package/esm2022/util/block/index.mjs +0 -2
- package/esm2022/util/block/src/block.mjs +0 -64
- package/esm2022/util/custom_pages/aril-util-custom_pages.mjs +0 -5
- package/esm2022/util/custom_pages/index.mjs +0 -2
- package/esm2022/util/custom_pages/src/notFound.component.mjs +0 -65
- package/esm2022/util/directives/aril-util-directives.mjs +0 -5
- package/esm2022/util/directives/index.mjs +0 -4
- package/esm2022/util/directives/src/detail-page-customization/detail-page-customization.directive.mjs +0 -298
- package/esm2022/util/directives/src/detail-page-customization/index.mjs +0 -3
- package/esm2022/util/directives/src/detail-page-customization/models.mjs +0 -4
- package/esm2022/util/directives/src/dialog-component/plugin-dialog.component.mjs +0 -26
- package/esm2022/util/directives/src/dialog-service/plugin-dialog.service.mjs +0 -16
- package/esm2022/util/index.mjs +0 -2
- package/esm2022/util/lib/aril-util-lib.mjs +0 -5
- package/esm2022/util/lib/index.mjs +0 -5
- package/esm2022/util/lib/src/interfaces.mjs +0 -4
- package/esm2022/util/lib/src/module-router.mjs +0 -16
- package/esm2022/util/lib/src/types.mjs +0 -6
- package/esm2022/util/lib/src/validators/iban.validator.mjs +0 -189
- package/esm2022/util/lib/src/validators/index.mjs +0 -5
- package/esm2022/util/lib/src/validators/max-array-length.validator.mjs +0 -16
- package/esm2022/util/lib/src/validators/min-array-length.validator.mjs +0 -16
- package/esm2022/util/lib/src/validators/tckn.validator.mjs +0 -39
- package/esm2022/util/lib/src/validators/validators.mjs +0 -16
- 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/esm2022/util/pipes/aril-util-pipes.mjs +0 -5
- package/esm2022/util/pipes/index.mjs +0 -7
- package/esm2022/util/pipes/src/distance-to-now.pipe.mjs +0 -38
- package/esm2022/util/pipes/src/get-column-by-field.pipe.mjs +0 -17
- package/esm2022/util/pipes/src/parse.pipe.mjs +0 -22
- package/esm2022/util/pipes/src/round-number.pipe.mjs +0 -65
- package/esm2022/util/pipes/src/safe.pipe.mjs +0 -34
- package/esm2022/util/pipes/src/translate-json/index.mjs +0 -2
- package/esm2022/util/pipes/src/translate-json/translate-json.pipe.mjs +0 -41
- package/esm2022/util/primitive-extensions/aril-util-primitive-extensions.mjs +0 -5
- package/esm2022/util/primitive-extensions/index.mjs +0 -5
- package/esm2022/util/primitive-extensions/src/boolean.extensions.mjs +0 -2
- package/esm2022/util/primitive-extensions/src/date.extensions.mjs +0 -116
- package/esm2022/util/primitive-extensions/src/number.extensions.mjs +0 -39
- package/esm2022/util/primitive-extensions/src/string.extensions.mjs +0 -23
- package/esm2022/util/pub-sub/aril-util-pub-sub.mjs +0 -5
- package/esm2022/util/pub-sub/index.mjs +0 -2
- package/esm2022/util/pub-sub/src/pub-sub.service.mjs +0 -30
- package/esm2022/util/sync-active-tab-route/aril-util-sync-active-tab-route.mjs +0 -5
- package/esm2022/util/sync-active-tab-route/index.mjs +0 -2
- package/esm2022/util/sync-active-tab-route/src/sync-active-tab-route.directive.mjs +0 -45
- package/esm2022/util/unwrap/aril-util-unwrap.mjs +0 -5
- package/esm2022/util/unwrap/index.mjs +0 -2
- package/esm2022/util/unwrap/src/unwrap-tag.directive.mjs +0 -24
- package/fesm2022/aril-app.component-hxaLgwmC.mjs +0 -81
- package/fesm2022/aril-app.component-hxaLgwmC.mjs.map +0 -1
- package/fesm2022/aril-boot-config-api.mjs +0 -126
- package/fesm2022/aril-boot-config-api.mjs.map +0 -1
- package/fesm2022/aril-boot-config-apps.mjs +0 -138
- package/fesm2022/aril-boot-config-apps.mjs.map +0 -1
- package/fesm2022/aril-boot-config-plugins.mjs +0 -159
- package/fesm2022/aril-boot-config-plugins.mjs.map +0 -1
- package/fesm2022/aril-boot-config-translate.mjs +0 -72
- package/fesm2022/aril-boot-config-translate.mjs.map +0 -1
- package/fesm2022/aril-boot-host.mjs +0 -108
- package/fesm2022/aril-boot-host.mjs.map +0 -1
- package/fesm2022/aril-boot-mfe-app.component-s1a-tkOD.mjs +0 -80
- package/fesm2022/aril-boot-mfe-app.component-s1a-tkOD.mjs.map +0 -1
- package/fesm2022/aril-boot-mfe-aril-boot-mfe-wLTqwDtz.mjs +0 -369
- package/fesm2022/aril-boot-mfe-aril-boot-mfe-wLTqwDtz.mjs.map +0 -1
- package/fesm2022/aril-boot-mfe.mjs +0 -19
- package/fesm2022/aril-boot-mfe.mjs.map +0 -1
- package/fesm2022/aril-boot.mjs +0 -8
- package/fesm2022/aril-boot.mjs.map +0 -1
- package/fesm2022/aril-http.mjs +0 -437
- package/fesm2022/aril-http.mjs.map +0 -1
- package/fesm2022/aril-i18n.mjs +0 -71
- package/fesm2022/aril-i18n.mjs.map +0 -1
- package/fesm2022/aril-keycloak.mjs +0 -99
- package/fesm2022/aril-keycloak.mjs.map +0 -1
- package/fesm2022/aril-provider.mjs +0 -74
- package/fesm2022/aril-provider.mjs.map +0 -1
- package/fesm2022/aril-theme-layout.mjs +0 -3015
- package/fesm2022/aril-theme-layout.mjs.map +0 -1
- package/fesm2022/aril-theme.mjs +0 -8
- package/fesm2022/aril-theme.mjs.map +0 -1
- package/fesm2022/aril-ui-autoComplete.mjs +0 -116
- package/fesm2022/aril-ui-autoComplete.mjs.map +0 -1
- package/fesm2022/aril-ui-badge.mjs +0 -66
- package/fesm2022/aril-ui-badge.mjs.map +0 -1
- package/fesm2022/aril-ui-business-assetPicker.mjs +0 -189
- package/fesm2022/aril-ui-business-assetPicker.mjs.map +0 -1
- package/fesm2022/aril-ui-business-detailed-overlay-panel.mjs +0 -68
- package/fesm2022/aril-ui-business-detailed-overlay-panel.mjs.map +0 -1
- package/fesm2022/aril-ui-business-enumPicker.mjs +0 -131
- package/fesm2022/aril-ui-business-enumPicker.mjs.map +0 -1
- package/fesm2022/aril-ui-business-image-viewer.mjs +0 -118
- package/fesm2022/aril-ui-business-image-viewer.mjs.map +0 -1
- package/fesm2022/aril-ui-business-multiple-ref-value.mjs +0 -30
- package/fesm2022/aril-ui-business-multiple-ref-value.mjs.map +0 -1
- package/fesm2022/aril-ui-business-notification-templates-dialog.mjs +0 -70
- package/fesm2022/aril-ui-business-notification-templates-dialog.mjs.map +0 -1
- package/fesm2022/aril-ui-business-operation-types-dialog.mjs +0 -83
- package/fesm2022/aril-ui-business-operation-types-dialog.mjs.map +0 -1
- package/fesm2022/aril-ui-business-ref-value.mjs +0 -46
- package/fesm2022/aril-ui-business-ref-value.mjs.map +0 -1
- package/fesm2022/aril-ui-business-rolePicker.mjs +0 -78
- package/fesm2022/aril-ui-business-rolePicker.mjs.map +0 -1
- package/fesm2022/aril-ui-business-userPicker.mjs +0 -50
- package/fesm2022/aril-ui-business-userPicker.mjs.map +0 -1
- package/fesm2022/aril-ui-business.mjs +0 -8
- package/fesm2022/aril-ui-business.mjs.map +0 -1
- package/fesm2022/aril-ui-button.mjs +0 -62
- package/fesm2022/aril-ui-button.mjs.map +0 -1
- package/fesm2022/aril-ui-calendar.mjs +0 -231
- package/fesm2022/aril-ui-calendar.mjs.map +0 -1
- package/fesm2022/aril-ui-charts.mjs +0 -1666
- package/fesm2022/aril-ui-charts.mjs.map +0 -1
- package/fesm2022/aril-ui-checkbox.mjs +0 -50
- package/fesm2022/aril-ui-checkbox.mjs.map +0 -1
- package/fesm2022/aril-ui-chip.mjs +0 -136
- package/fesm2022/aril-ui-chip.mjs.map +0 -1
- package/fesm2022/aril-ui-collapse-reorder-list.mjs +0 -60
- package/fesm2022/aril-ui-collapse-reorder-list.mjs.map +0 -1
- package/fesm2022/aril-ui-dxEditor.mjs +0 -33
- package/fesm2022/aril-ui-dxEditor.mjs.map +0 -1
- package/fesm2022/aril-ui-dxField.mjs +0 -26
- package/fesm2022/aril-ui-dxField.mjs.map +0 -1
- package/fesm2022/aril-ui-editor.mjs +0 -203
- package/fesm2022/aril-ui-editor.mjs.map +0 -1
- package/fesm2022/aril-ui-field.mjs +0 -52
- package/fesm2022/aril-ui-field.mjs.map +0 -1
- package/fesm2022/aril-ui-fileUpload.mjs +0 -80
- package/fesm2022/aril-ui-fileUpload.mjs.map +0 -1
- package/fesm2022/aril-ui-form.mjs +0 -86
- package/fesm2022/aril-ui-form.mjs.map +0 -1
- package/fesm2022/aril-ui-img-viewer.mjs +0 -64
- package/fesm2022/aril-ui-img-viewer.mjs.map +0 -1
- package/fesm2022/aril-ui-json-diff-comparison.mjs +0 -56
- package/fesm2022/aril-ui-json-diff-comparison.mjs.map +0 -1
- package/fesm2022/aril-ui-lib.mjs +0 -376
- package/fesm2022/aril-ui-lib.mjs.map +0 -1
- package/fesm2022/aril-ui-loader.mjs +0 -21
- package/fesm2022/aril-ui-loader.mjs.map +0 -1
- package/fesm2022/aril-ui-mask.mjs +0 -42
- package/fesm2022/aril-ui-mask.mjs.map +0 -1
- package/fesm2022/aril-ui-multiSelect.mjs +0 -64
- package/fesm2022/aril-ui-multiSelect.mjs.map +0 -1
- package/fesm2022/aril-ui-number.mjs +0 -45
- package/fesm2022/aril-ui-number.mjs.map +0 -1
- package/fesm2022/aril-ui-operation-types-dialog.mjs +0 -98
- package/fesm2022/aril-ui-operation-types-dialog.mjs.map +0 -1
- package/fesm2022/aril-ui-overlayPanel.mjs +0 -27
- package/fesm2022/aril-ui-overlayPanel.mjs.map +0 -1
- package/fesm2022/aril-ui-panel.mjs +0 -40
- package/fesm2022/aril-ui-panel.mjs.map +0 -1
- package/fesm2022/aril-ui-password.mjs +0 -36
- package/fesm2022/aril-ui-password.mjs.map +0 -1
- package/fesm2022/aril-ui-pdf-viewer.mjs +0 -34
- package/fesm2022/aril-ui-pdf-viewer.mjs.map +0 -1
- package/fesm2022/aril-ui-progressbar.mjs +0 -25
- package/fesm2022/aril-ui-progressbar.mjs.map +0 -1
- package/fesm2022/aril-ui-radioButton.mjs +0 -37
- package/fesm2022/aril-ui-radioButton.mjs.map +0 -1
- package/fesm2022/aril-ui-relativeDateSelector.mjs +0 -285
- package/fesm2022/aril-ui-relativeDateSelector.mjs.map +0 -1
- package/fesm2022/aril-ui-selectBox.mjs +0 -74
- package/fesm2022/aril-ui-selectBox.mjs.map +0 -1
- package/fesm2022/aril-ui-switch.mjs +0 -30
- package/fesm2022/aril-ui-switch.mjs.map +0 -1
- package/fesm2022/aril-ui-table-expand.mjs +0 -194
- package/fesm2022/aril-ui-table-expand.mjs.map +0 -1
- package/fesm2022/aril-ui-table.mjs +0 -833
- package/fesm2022/aril-ui-table.mjs.map +0 -1
- package/fesm2022/aril-ui-tag.mjs +0 -27
- package/fesm2022/aril-ui-tag.mjs.map +0 -1
- package/fesm2022/aril-ui-tagBox.mjs +0 -62
- package/fesm2022/aril-ui-tagBox.mjs.map +0 -1
- package/fesm2022/aril-ui-text.mjs +0 -54
- package/fesm2022/aril-ui-text.mjs.map +0 -1
- package/fesm2022/aril-ui-textArea.mjs +0 -34
- package/fesm2022/aril-ui-textArea.mjs.map +0 -1
- package/fesm2022/aril-ui-toggle-button.mjs +0 -32
- package/fesm2022/aril-ui-toggle-button.mjs.map +0 -1
- package/fesm2022/aril-ui-tooltip.mjs +0 -30
- package/fesm2022/aril-ui-tooltip.mjs.map +0 -1
- package/fesm2022/aril-ui-translate-input.mjs +0 -207
- package/fesm2022/aril-ui-translate-input.mjs.map +0 -1
- package/fesm2022/aril-ui-tree.mjs +0 -60
- package/fesm2022/aril-ui-tree.mjs.map +0 -1
- package/fesm2022/aril-ui-treeSelect.mjs +0 -48
- package/fesm2022/aril-ui-treeSelect.mjs.map +0 -1
- package/fesm2022/aril-ui-treeTable.mjs +0 -62
- package/fesm2022/aril-ui-treeTable.mjs.map +0 -1
- package/fesm2022/aril-ui-value.mjs +0 -214
- package/fesm2022/aril-ui-value.mjs.map +0 -1
- package/fesm2022/aril-ui.mjs +0 -8
- package/fesm2022/aril-ui.mjs.map +0 -1
- package/fesm2022/aril-util-block.mjs +0 -71
- package/fesm2022/aril-util-block.mjs.map +0 -1
- package/fesm2022/aril-util-custom_pages.mjs +0 -72
- package/fesm2022/aril-util-custom_pages.mjs.map +0 -1
- package/fesm2022/aril-util-directives.mjs +0 -344
- package/fesm2022/aril-util-directives.mjs.map +0 -1
- package/fesm2022/aril-util-lib.mjs +0 -307
- package/fesm2022/aril-util-lib.mjs.map +0 -1
- package/fesm2022/aril-util-loaders.mjs +0 -68
- package/fesm2022/aril-util-loaders.mjs.map +0 -1
- package/fesm2022/aril-util-pipes.mjs +0 -213
- package/fesm2022/aril-util-pipes.mjs.map +0 -1
- package/fesm2022/aril-util-primitive-extensions.mjs +0 -179
- package/fesm2022/aril-util-primitive-extensions.mjs.map +0 -1
- package/fesm2022/aril-util-pub-sub.mjs +0 -37
- package/fesm2022/aril-util-pub-sub.mjs.map +0 -1
- package/fesm2022/aril-util-sync-active-tab-route.mjs +0 -52
- package/fesm2022/aril-util-sync-active-tab-route.mjs.map +0 -1
- package/fesm2022/aril-util-unwrap.mjs +0 -31
- package/fesm2022/aril-util-unwrap.mjs.map +0 -1
- package/fesm2022/aril-util.mjs +0 -8
- package/fesm2022/aril-util.mjs.map +0 -1
- package/fesm2022/aril.mjs +0 -456
- package/fesm2022/aril.mjs.map +0 -1
- package/http/index.d.ts +0 -8
- package/http/lib/enums.d.ts +0 -31
- package/http/lib/interfaces.d.ts +0 -27
- package/http/src/httpBackend.d.ts +0 -8
- package/http/src/httpClient.d.ts +0 -9
- package/http/src/interceptor/accept-language.interceptor.d.ts +0 -2
- package/http/src/serviceBase.d.ts +0 -8
- package/http/src/serviceMockBase.d.ts +0 -6
- package/http/src/serviceRequest.d.ts +0 -4
- package/http/src/serviceStateMethods.d.ts +0 -17
- package/i18n/src/folder-name-token.d.ts +0 -2
- package/i18n/src/i18n.module.d.ts +0 -7
- package/i18n/src/loader.d.ts +0 -8
- package/i18n/src/provideI18n.d.ts +0 -2
- package/i18n/src/provideScope.d.ts +0 -5
- package/index.d.ts +0 -5
- package/keycloak/index.d.ts +0 -1
- package/keycloak/src/auth.interceptor.d.ts +0 -3
- package/provider/src/index.d.ts +0 -4
- package/provider/src/prodiveHost.d.ts +0 -3
- package/provider/src/prodiveHostRouter.d.ts +0 -2
- package/provider/src/provideHostKeycloak.d.ts +0 -5
- package/provider/src/provideLocaleId.d.ts +0 -2
- package/scripts/util/blockui.min.js +0 -7
- package/styles/ui/ui.common.scss +0 -42
- package/styles/util/blockui.css +0 -56
- package/theme/index.d.ts +0 -1
- package/theme/layout/app/breadcrumb/app.breadcrumb.component.d.ts +0 -25
- package/theme/layout/app/chatbot/app.chatbot.component.d.ts +0 -35
- package/theme/layout/app/expandableMenu/expandable-menu.component.d.ts +0 -72
- package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.d.ts +0 -2031
- package/theme/layout/app/favorite-pages/favorite-pages.service.d.ts +0 -56
- package/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.d.ts +0 -36
- package/theme/layout/app/general-search/general-search.component.d.ts +0 -22
- package/theme/layout/app/general-search/helpers.d.ts +0 -7
- package/theme/layout/app/general-search/models.d.ts +0 -131
- package/theme/layout/app/history/history-sidebar.component.d.ts +0 -2018
- package/theme/layout/app/history/history.service.d.ts +0 -36
- package/theme/layout/app/layout/app.layout.component.d.ts +0 -47
- package/theme/layout/app/layout/mfe.layout.component.d.ts +0 -10
- package/theme/layout/app/notifications/notifications-sidebar.component.d.ts +0 -2306
- package/theme/layout/app/profileSidebar/app.profilesidebar.component.d.ts +0 -29
- package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.d.ts +0 -30
- package/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.d.ts +0 -52
- package/theme/layout/app/profileSidebar/profile.service.d.ts +0 -72
- package/theme/layout/app/site-map/site-map-sidebar.component.d.ts +0 -2025
- package/theme/layout/app/static-sidebar/static-sidebar.component.d.ts +0 -57
- package/theme/layout/app/topbar/app.topbar.component.d.ts +0 -35
- package/theme/layout/index.d.ts +0 -7
- package/theme/layout/service/app.layout.service.d.ts +0 -69
- package/theme/layout/service/app.menu.service.d.ts +0 -22
- package/theme/layout/service/breadcrumb.service.d.ts +0 -10
- package/theme/layout/service/interfaces/enum.d.ts +0 -12
- package/theme/layout/service/interfaces/interfaces.d.ts +0 -131
- package/theme/layout/service/menuchangeevent.d.ts +0 -4
- package/theme/layout/service/notifications.service.d.ts +0 -12
- package/theme/layout/service/search.service.d.ts +0 -11
- package/theme/layout/service/selection-group.service.d.ts +0 -17
- package/ui/autoComplete/src/auto-complete.component.d.ts +0 -31
- package/ui/autoComplete/src/interfaces.d.ts +0 -28
- package/ui/badge/src/badge.component.d.ts +0 -32
- package/ui/button/src/button.component.d.ts +0 -28
- package/ui/button/src/split-button.component.d.ts +0 -8
- package/ui/calendar/src/calendar.component.d.ts +0 -63
- package/ui/charts/index.d.ts +0 -12
- package/ui/charts/src/amCharts/column/column-chart.component.d.ts +0 -25
- package/ui/charts/src/amCharts/line/line-chart.component.d.ts +0 -26
- package/ui/charts/src/amCharts/pie/pie-chart.component.d.ts +0 -24
- package/ui/charts/src/highCharts/area/area-chart.component.d.ts +0 -20
- package/ui/charts/src/highCharts/bar/bar-chart.component.d.ts +0 -26
- package/ui/charts/src/highCharts/column/column-chart.component.d.ts +0 -28
- package/ui/charts/src/highCharts/gauge/solid-gauge.component.d.ts +0 -38
- package/ui/charts/src/highCharts/heatmap/heatMap-chart.component.d.ts +0 -32
- package/ui/charts/src/highCharts/line/line-chart-datetime-axis.component.d.ts +0 -24
- package/ui/charts/src/highCharts/line/line-chart-series.component.d.ts +0 -21
- package/ui/charts/src/highCharts/line/line-chart.component.d.ts +0 -21
- package/ui/charts/src/highCharts/pie/pie-chart.component.d.ts +0 -27
- package/ui/charts/src/theme/theme.d.ts +0 -5
- package/ui/checkbox/src/check-box.component.d.ts +0 -12
- package/ui/checkbox/src/tri-state-checkbox.component.d.ts +0 -9
- package/ui/chip/index.d.ts +0 -1
- package/ui/chip/src/chip.component.d.ts +0 -34
- package/ui/collapse-reorder-list/index.d.ts +0 -1
- package/ui/collapse-reorder-list/src/collapse-reorder-list.component.d.ts +0 -21
- package/ui/dxEditor/src/dx-editor.component.d.ts +0 -11
- package/ui/dxField/src/dx-field.component.d.ts +0 -10
- package/ui/editor/src/aril-editor.component.d.ts +0 -28
- package/ui/editor/src/types.d.ts +0 -23
- package/ui/field/src/field.component.d.ts +0 -30
- package/ui/fileUpload/src/file-upload.component.d.ts +0 -49
- package/ui/form/index.d.ts +0 -11
- package/ui/form/src/form-submit-button.component.d.ts +0 -14
- package/ui/form/src/form.component.d.ts +0 -8
- package/ui/img-viewer/index.d.ts +0 -1
- package/ui/img-viewer/src/img-viewer.component.d.ts +0 -13
- package/ui/index.d.ts +0 -1
- package/ui/json-diff-comparison/src/json-diff.component.d.ts +0 -13
- package/ui/lib/index.d.ts +0 -12
- package/ui/lib/src/form/form-error-message.component.d.ts +0 -9
- package/ui/lib/src/form/form-error-message.directive.d.ts +0 -14
- package/ui/lib/src/form/form-field-builder.d.ts +0 -8
- package/ui/lib/src/form/form-validation.d.ts +0 -2
- package/ui/lib/src/grid/enum-color-picker.pipe.d.ts +0 -9
- package/ui/lib/src/grid/flex-grid.directive.d.ts +0 -6
- package/ui/lib/src/input/baseInput.d.ts +0 -7
- package/ui/lib/src/input/common-input-validators.service.d.ts +0 -20
- package/ui/lib/src/input/dx-input-error-message.pipe.d.ts +0 -11
- package/ui/lib/src/input/input-disabled.directive.d.ts +0 -9
- package/ui/lib/src/input/input-error-message.pipe.d.ts +0 -10
- package/ui/lib/src/input/input-transforms.d.ts +0 -5
- package/ui/lib/src/input/value-accessor.directive.d.ts +0 -9
- package/ui/loader/src/loader.component.d.ts +0 -5
- package/ui/mask/src/mask.component.d.ts +0 -21
- package/ui/multiSelect/src/interfaces.d.ts +0 -32
- package/ui/multiSelect/src/multi-select.component.d.ts +0 -28
- package/ui/number/src/number.component.d.ts +0 -29
- package/ui/operation-types-dialog/src/operation-types-dialog.component.d.ts +0 -33
- package/ui/overlayPanel/src/overlay-panel.component.d.ts +0 -8
- package/ui/panel/src/panel.component.d.ts +0 -14
- package/ui/password/src/password.component.d.ts +0 -11
- package/ui/pdf-viewer/src/pdf-viewer.component.d.ts +0 -19
- package/ui/progressbar/src/progressbar.component.d.ts +0 -8
- package/ui/radioButton/src/radio-button.component.d.ts +0 -22
- package/ui/relativeDateSelector/index.d.ts +0 -1
- package/ui/relativeDateSelector/src/enum.d.ts +0 -26
- package/ui/relativeDateSelector/src/relative-date-selector.component.d.ts +0 -61
- package/ui/selectBox/src/interfaces.d.ts +0 -32
- package/ui/selectBox/src/select-box.component.d.ts +0 -30
- package/ui/switch/src/switch.component.d.ts +0 -8
- package/ui/table/index.d.ts +0 -35
- package/ui/table/src/export-overlay-panel.component.d.ts +0 -39
- package/ui/table/src/interfaces.d.ts +0 -145
- package/ui/table/src/table-column.component.d.ts +0 -19
- package/ui/table/src/table.component.d.ts +0 -107
- package/ui/table-expand/index.d.ts +0 -20
- package/ui/table-expand/src/table-column.component.d.ts +0 -28
- package/ui/table-expand/src/table-expand-area.component.d.ts +0 -14
- package/ui/table-expand/src/table.component.d.ts +0 -47
- package/ui/tag/index.d.ts +0 -1
- package/ui/tag/src/interface.d.ts +0 -1
- package/ui/tag/src/tag.component.d.ts +0 -15
- package/ui/tagBox/src/tag-box.component.d.ts +0 -17
- package/ui/text/src/text.component.d.ts +0 -18
- package/ui/textArea/src/text-area.component.d.ts +0 -12
- package/ui/toggle-button/index.d.ts +0 -1
- package/ui/toggle-button/src/toggle-button.component.d.ts +0 -10
- package/ui/tooltip/src/tooltip-component.d.ts +0 -14
- package/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.d.ts +0 -21
- package/ui/translate-input/src/aril-lang-modal/constants.d.ts +0 -2
- package/ui/translate-input/src/aril-translate-input.component.d.ts +0 -26
- package/ui/translate-input/src/interface.d.ts +0 -12
- package/ui/tree/src/tree.component.d.ts +0 -23
- package/ui/treeSelect/src/treeSelect.component.d.ts +0 -23
- package/ui/treeTable/src/tree-table.component.d.ts +0 -21
- package/ui/value/src/value.component.d.ts +0 -43
- package/ui-business/assetPicker/index.d.ts +0 -1
- package/ui-business/assetPicker/src/asset-picker.component.d.ts +0 -48
- package/ui-business/assetPicker/src/interface.d.ts +0 -74
- package/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.d.ts +0 -31
- package/ui-business/detailed-overlay-panel/src/interface.d.ts +0 -54
- package/ui-business/enumPicker/index.d.ts +0 -1
- package/ui-business/enumPicker/src/enum-picker.component.d.ts +0 -47
- package/ui-business/enumPicker/src/interface.d.ts +0 -34
- package/ui-business/image-viewer/index.d.ts +0 -1
- package/ui-business/image-viewer/src/aril-image-viewer.component.d.ts +0 -20
- package/ui-business/index.d.ts +0 -1
- package/ui-business/multiple-ref-value/src/multiple-ref-value.component.d.ts +0 -16
- package/ui-business/notification-templates-dialog/src/interface.d.ts +0 -17
- package/ui-business/notification-templates-dialog/src/notification-templates-dialog.component.d.ts +0 -18
- package/ui-business/operation-types-dialog/src/operation-types-dialog.component.d.ts +0 -28
- package/ui-business/ref-value/src/ref-value.component.d.ts +0 -20
- package/ui-business/rolePicker/src/interface.d.ts +0 -44
- package/ui-business/rolePicker/src/role-picker.component.d.ts +0 -25
- package/ui-business/userPicker/index.d.ts +0 -1
- package/ui-business/userPicker/src/interface.d.ts +0 -25
- package/ui-business/userPicker/src/user-picker.component.d.ts +0 -18
- package/util/block/src/block.d.ts +0 -28
- package/util/custom_pages/src/notFound.component.d.ts +0 -5
- package/util/directives/src/detail-page-customization/detail-page-customization.directive.d.ts +0 -26
- package/util/directives/src/detail-page-customization/index.d.ts +0 -2
- package/util/directives/src/detail-page-customization/models.d.ts +0 -53
- package/util/directives/src/dialog-component/plugin-dialog.component.d.ts +0 -11
- package/util/directives/src/dialog-service/plugin-dialog.service.d.ts +0 -7
- package/util/index.d.ts +0 -1
- package/util/lib/src/interfaces.d.ts +0 -41
- package/util/lib/src/module-router.d.ts +0 -5
- package/util/lib/src/types.d.ts +0 -2290
- package/util/lib/src/validators/iban.validator.d.ts +0 -7
- package/util/lib/src/validators/max-array-length.validator.d.ts +0 -7
- package/util/lib/src/validators/min-array-length.validator.d.ts +0 -7
- package/util/lib/src/validators/tckn.validator.d.ts +0 -7
- package/util/lib/src/validators/validators.d.ts +0 -7
- package/util/loaders/index.d.ts +0 -1
- package/util/loaders/style/style.loader.service.d.ts +0 -13
- package/util/pipes/src/distance-to-now.pipe.d.ts +0 -11
- package/util/pipes/src/get-column-by-field.pipe.d.ts +0 -11
- package/util/pipes/src/parse.pipe.d.ts +0 -7
- package/util/pipes/src/round-number.pipe.d.ts +0 -11
- package/util/pipes/src/safe.pipe.d.ts +0 -10
- package/util/pipes/src/translate-json/index.d.ts +0 -1
- package/util/pipes/src/translate-json/translate-json.pipe.d.ts +0 -10
- package/util/primitive-extensions/src/date.extensions.d.ts +0 -8
- package/util/primitive-extensions/src/number.extensions.d.ts +0 -12
- package/util/primitive-extensions/src/string.extensions.d.ts +0 -11
- package/util/pub-sub/src/pub-sub.service.d.ts +0 -21
- package/util/sync-active-tab-route/src/sync-active-tab-route.directive.d.ts +0 -17
- package/util/unwrap/src/unwrap-tag.directive.d.ts +0 -9
- /package/boot/config/api/{index.d.ts → index.ts} +0 -0
- /package/boot/config/apps/{index.d.ts → index.ts} +0 -0
- /package/boot/config/plugins/{index.d.ts → index.ts} +0 -0
- /package/boot/config/translate/{index.d.ts → index.ts} +0 -0
- /package/boot/host/{index.d.ts → index.ts} +0 -0
- /package/boot/mfe/{index.d.ts → index.ts} +0 -0
- /package/i18n/{index.d.ts → index.ts} +0 -0
- /package/provider/{index.d.ts → index.ts} +0 -0
- /package/{public-api.d.ts → public-api.ts} +0 -0
- /package/ui/autoComplete/{index.d.ts → index.ts} +0 -0
- /package/ui/badge/{index.d.ts → index.ts} +0 -0
- /package/ui/button/{index.d.ts → index.ts} +0 -0
- /package/ui/calendar/{index.d.ts → index.ts} +0 -0
- /package/ui/checkbox/{index.d.ts → index.ts} +0 -0
- /package/ui/dxEditor/{index.d.ts → index.ts} +0 -0
- /package/ui/dxField/{index.d.ts → index.ts} +0 -0
- /package/ui/editor/{index.d.ts → index.ts} +0 -0
- /package/ui/field/{index.d.ts → index.ts} +0 -0
- /package/ui/fileUpload/{index.d.ts → index.ts} +0 -0
- /package/ui/json-diff-comparison/{index.d.ts → index.ts} +0 -0
- /package/ui/loader/{index.d.ts → index.ts} +0 -0
- /package/ui/mask/{index.d.ts → index.ts} +0 -0
- /package/ui/multiSelect/{index.d.ts → index.ts} +0 -0
- /package/ui/number/{index.d.ts → index.ts} +0 -0
- /package/ui/operation-types-dialog/{index.d.ts → index.ts} +0 -0
- /package/ui/overlayPanel/{index.d.ts → index.ts} +0 -0
- /package/ui/panel/{index.d.ts → index.ts} +0 -0
- /package/ui/password/{index.d.ts → index.ts} +0 -0
- /package/ui/pdf-viewer/{index.d.ts → index.ts} +0 -0
- /package/ui/progressbar/{index.d.ts → index.ts} +0 -0
- /package/ui/radioButton/{index.d.ts → index.ts} +0 -0
- /package/ui/selectBox/{index.d.ts → index.ts} +0 -0
- /package/ui/switch/{index.d.ts → index.ts} +0 -0
- /package/ui/tagBox/{index.d.ts → index.ts} +0 -0
- /package/ui/text/{index.d.ts → index.ts} +0 -0
- /package/ui/textArea/{index.d.ts → index.ts} +0 -0
- /package/ui/tooltip/{index.d.ts → index.ts} +0 -0
- /package/ui/translate-input/{index.d.ts → index.ts} +0 -0
- /package/ui/tree/{index.d.ts → index.ts} +0 -0
- /package/ui/treeSelect/{index.d.ts → index.ts} +0 -0
- /package/ui/treeTable/{index.d.ts → index.ts} +0 -0
- /package/ui/value/{index.d.ts → index.ts} +0 -0
- /package/ui-business/detailed-overlay-panel/{index.d.ts → index.ts} +0 -0
- /package/ui-business/multiple-ref-value/{index.d.ts → index.ts} +0 -0
- /package/ui-business/notification-templates-dialog/{index.d.ts → index.ts} +0 -0
- /package/ui-business/operation-types-dialog/{index.d.ts → index.ts} +0 -0
- /package/ui-business/ref-value/{index.d.ts → index.ts} +0 -0
- /package/ui-business/rolePicker/{index.d.ts → index.ts} +0 -0
- /package/util/block/{index.d.ts → index.ts} +0 -0
- /package/util/custom_pages/{index.d.ts → index.ts} +0 -0
- /package/util/directives/{index.d.ts → index.ts} +0 -0
- /package/util/lib/{index.d.ts → index.ts} +0 -0
- /package/util/lib/src/validators/{index.d.ts → index.ts} +0 -0
- /package/util/pipes/{index.d.ts → index.ts} +0 -0
- /package/util/primitive-extensions/{index.d.ts → index.ts} +0 -0
- /package/util/primitive-extensions/src/{boolean.extensions.d.ts → boolean.extensions.ts} +0 -0
- /package/util/pub-sub/{index.d.ts → index.ts} +0 -0
- /package/util/sync-active-tab-route/{index.d.ts → index.ts} +0 -0
- /package/util/unwrap/{index.d.ts → index.ts} +0 -0
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, signal } from '@angular/core';
|
|
3
|
-
import { FormsModule } from '@angular/forms';
|
|
4
|
-
import { RouterModule } from '@angular/router';
|
|
5
|
-
import { ScrollPanelModule } from 'primeng/scrollpanel';
|
|
6
|
-
import { SidebarModule } from 'primeng/sidebar';
|
|
7
|
-
import { TooltipModule } from 'primeng/tooltip';
|
|
8
|
-
import { TranslocoModule } from '@ngneat/transloco';
|
|
9
|
-
import { ButtonComponent } from 'aril/ui/button';
|
|
10
|
-
import { TextComponent } from 'aril/ui/text';
|
|
11
|
-
import { TranslateJsonPipe } from 'aril/util/pipes';
|
|
12
|
-
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
|
13
|
-
import { solidIcons } from 'aril/util/lib';
|
|
14
|
-
import * as i0 from "@angular/core";
|
|
15
|
-
import * as i1 from "../../service/app.layout.service";
|
|
16
|
-
import * as i2 from "@ngneat/transloco";
|
|
17
|
-
import * as i3 from "@angular/common";
|
|
18
|
-
import * as i4 from "@angular/forms";
|
|
19
|
-
import * as i5 from "@angular/router";
|
|
20
|
-
import * as i6 from "primeng/sidebar";
|
|
21
|
-
import * as i7 from "primeng/api";
|
|
22
|
-
import * as i8 from "primeng/scrollpanel";
|
|
23
|
-
import * as i9 from "primeng/tooltip";
|
|
24
|
-
import * as i10 from "@fortawesome/angular-fontawesome";
|
|
25
|
-
export class SiteMapSidebarComponent {
|
|
26
|
-
constructor(layoutService, translocoService) {
|
|
27
|
-
this.layoutService = layoutService;
|
|
28
|
-
this.translocoService = translocoService;
|
|
29
|
-
this.siteMapNodes = signal([]);
|
|
30
|
-
this.filteredNodes = signal([]);
|
|
31
|
-
this.searchTerm = signal('');
|
|
32
|
-
this.totalPages = signal(0);
|
|
33
|
-
this.solidIcons = solidIcons;
|
|
34
|
-
}
|
|
35
|
-
ngOnInit() {
|
|
36
|
-
this.loadSiteMap();
|
|
37
|
-
}
|
|
38
|
-
get visible() {
|
|
39
|
-
return this.layoutService.state.siteMapSidebarVisible;
|
|
40
|
-
}
|
|
41
|
-
set visible(value) {
|
|
42
|
-
this.layoutService.state.siteMapSidebarVisible = value;
|
|
43
|
-
}
|
|
44
|
-
loadSiteMap() {
|
|
45
|
-
const menuItems = globalThis.hostMenuItems?.() || [];
|
|
46
|
-
const nodes = this.buildSiteMapNodes(menuItems);
|
|
47
|
-
const totalCount = this.countTotalPages(nodes);
|
|
48
|
-
this.siteMapNodes.set(nodes);
|
|
49
|
-
this.filteredNodes.set(nodes);
|
|
50
|
-
this.totalPages.set(totalCount);
|
|
51
|
-
}
|
|
52
|
-
buildSiteMapNodes(items, parentKey = '') {
|
|
53
|
-
return items
|
|
54
|
-
.filter((item) => {
|
|
55
|
-
// Keep the home page route ("/") and any non-empty routes
|
|
56
|
-
return !item.routerLink || item.routerLink === '/' || item.routerLink.trim() !== '';
|
|
57
|
-
})
|
|
58
|
-
.map((item, index) => {
|
|
59
|
-
const key = parentKey ? `${parentKey}-${index}` : `${index}`;
|
|
60
|
-
let label;
|
|
61
|
-
if (item.routerLink === '/') {
|
|
62
|
-
label = { tr: 'Anasayfa', en: 'Home' };
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
label = item.label || { tr: 'Bilinmeyen', en: 'Unknown' };
|
|
66
|
-
}
|
|
67
|
-
const node = {
|
|
68
|
-
key,
|
|
69
|
-
label,
|
|
70
|
-
icon: item.icon,
|
|
71
|
-
routerLink: item.routerLink,
|
|
72
|
-
expanded: false
|
|
73
|
-
};
|
|
74
|
-
if (item.items && item.items.length > 0) {
|
|
75
|
-
node.children = this.buildSiteMapNodes(item.items, key);
|
|
76
|
-
}
|
|
77
|
-
return node;
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
countTotalPages(nodes) {
|
|
81
|
-
let count = 0;
|
|
82
|
-
for (const node of nodes) {
|
|
83
|
-
if (node.routerLink) {
|
|
84
|
-
count++;
|
|
85
|
-
}
|
|
86
|
-
if (node.children) {
|
|
87
|
-
count += this.countTotalPages(node.children);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
return count;
|
|
91
|
-
}
|
|
92
|
-
onSearchChange() {
|
|
93
|
-
const searchTerm = this.searchTerm()?.toLowerCase()?.trim();
|
|
94
|
-
if (!searchTerm) {
|
|
95
|
-
this.filteredNodes.set(this.siteMapNodes());
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
const filtered = this.filterNodes(this.siteMapNodes(), searchTerm);
|
|
99
|
-
this.filteredNodes.set(filtered);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
filterNodes(nodes, searchTerm) {
|
|
103
|
-
const filtered = [];
|
|
104
|
-
const currentLang = this.translocoService.getActiveLang();
|
|
105
|
-
for (const node of nodes) {
|
|
106
|
-
// Convert label to string for search based on active language
|
|
107
|
-
const labelText = typeof node.label === 'string' ?
|
|
108
|
-
node.label
|
|
109
|
-
: node.label?.[currentLang] || node.label?.tr || node.label?.en || '';
|
|
110
|
-
const matches = labelText.toLowerCase().includes(searchTerm);
|
|
111
|
-
let filteredChildren = [];
|
|
112
|
-
if (node.children) {
|
|
113
|
-
filteredChildren = this.filterNodes(node.children, searchTerm);
|
|
114
|
-
}
|
|
115
|
-
if (matches || filteredChildren.length > 0) {
|
|
116
|
-
filtered.push({
|
|
117
|
-
...node,
|
|
118
|
-
children: filteredChildren.length > 0 ? filteredChildren : node.children,
|
|
119
|
-
expanded: filteredChildren.length > 0
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
return filtered;
|
|
124
|
-
}
|
|
125
|
-
expandAll() {
|
|
126
|
-
const expanded = this.expandNodes(this.filteredNodes(), true);
|
|
127
|
-
this.filteredNodes.set([...expanded]);
|
|
128
|
-
}
|
|
129
|
-
collapseAll() {
|
|
130
|
-
const collapsed = this.expandNodes(this.filteredNodes(), false);
|
|
131
|
-
this.filteredNodes.set([...collapsed]);
|
|
132
|
-
}
|
|
133
|
-
expandNodes(nodes, expanded) {
|
|
134
|
-
return nodes.map((node) => ({
|
|
135
|
-
...node,
|
|
136
|
-
expanded,
|
|
137
|
-
children: node.children ? this.expandNodes(node.children, expanded) : undefined
|
|
138
|
-
}));
|
|
139
|
-
}
|
|
140
|
-
toggleNode(node) {
|
|
141
|
-
node.expanded = !node.expanded;
|
|
142
|
-
this.filteredNodes.set([...this.filteredNodes()]);
|
|
143
|
-
}
|
|
144
|
-
trackByKey(index, node) {
|
|
145
|
-
return node.key || `${index}`;
|
|
146
|
-
}
|
|
147
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SiteMapSidebarComponent, deps: [{ token: i1.LayoutService }, { token: i2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
148
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: SiteMapSidebarComponent, isStandalone: true, selector: "app-site-map-sidebar", ngImport: i0, template: "<p-sidebar\r\n\t[(visible)]=\"visible\"\r\n\tposition=\"right\"\r\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\r\n\tstyleClass=\"layout-sitemap-sidebar w-full sm:w-30rem\"\r\n\t*transloco=\"let t; read: 'siteMap'\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"flex align-items-center justify-content-between gap-2 w-full\">\r\n\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t<i class=\"pi pi-sitemap text-primary text-xl\"></i>\r\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('siteMap') }}</span>\r\n\t\t\t\t<span class=\"total-pages\">{{ totalPages() }} {{ t('pages') }}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"sitemap-content\">\r\n\t\t<div class=\"search-section grid p-fluid m-0\">\r\n\t\t\t<aril-text\r\n\t\t\t\t[placeholder]=\"t('searchPages')\"\r\n\t\t\t\t[(ngModel)]=\"searchTerm\"\r\n\t\t\t\t(ngModelChange)=\"onSearchChange()\"\r\n\t\t\t\tclass=\"col-10 m-0\">\r\n\t\t\t</aril-text>\r\n\t\t\t@if (filteredNodes().length > 0) {\r\n\t\t\t<div class=\"col-2 flex align-items-center m-0 p-0\">\r\n\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t[icon]=\"solidIcons.faAnglesDown\"\r\n\t\t\t\t\t\tsize=\"xl\"\r\n\t\t\t\t\t\tstyle=\"color: var(--primary-color)\"\r\n\t\t\t\t\t\tclass=\"col-1 cursor-pointer\"\r\n\t\t\t\t\t\t[pTooltip]=\"t('expandAll')\"\r\n\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t(click)=\"expandAll()\">\r\n\t\t\t\t\t</fa-icon>\r\n\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t[icon]=\"solidIcons.faAnglesUp\"\r\n\t\t\t\t\t\tsize=\"xl\"\r\n\t\t\t\t\t\tstyle=\"color: var(--red-500)\"\r\n\t\t\t\t\t\tclass=\"col-1 ml-3 cursor-pointer\"\r\n\t\t\t\t\t\t[pTooltip]=\"t('collapseAll')\"\r\n\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t(click)=\"collapseAll()\">\r\n\t\t\t\t\t</fa-icon>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</div>\r\n\r\n\t\t<!-- Site Map Tree -->\r\n\t\t@if (filteredNodes().length > 0) {\r\n\t\t\t<div class=\"sitemap-tree\">\r\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\r\n\t\t\t\t\t<div class=\"tree-container\">\r\n\t\t\t\t\t\t@for (node of filteredNodes(); track trackByKey($index, node)) {\r\n\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: node, level: 0 }\"></ng-container>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-scrollPanel>\r\n\t\t\t</div>\r\n\t\t} @else {\r\n\t\t\t<div class=\"empty-state\">\r\n\t\t\t\t<div class=\"empty-content\">\r\n\t\t\t\t\t<i class=\"pi pi-sitemap empty-icon\"></i>\r\n\t\t\t\t\t<h3 class=\"empty-title\">\r\n\t\t\t\t\t\t{{ searchTerm() ? t('noSearchResults') : t('noPages') }}\r\n\t\t\t\t\t</h3>\r\n\t\t\t\t\t<p class=\"empty-message\">\r\n\t\t\t\t\t\t{{ searchTerm() ? t('tryDifferentKeywords') : '' }}\r\n\t\t\t\t\t</p>\r\n\t\t\t\t\t@if (searchTerm()) {\r\n\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t[label]=\"t('clearSearch')\"\r\n\t\t\t\t\t\t\ticon=\"TIMES\"\r\n\t\t\t\t\t\t\tcolor=\"secondary\"\r\n\t\t\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t(clickEvent)=\"searchTerm.set(''); onSearchChange()\">\r\n\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t<!-- Recursive Tree Node Template -->\r\n\t\t<ng-template #treeNodeTemplate let-node let-level=\"level\">\r\n\t\t\t<div class=\"tree-node\" [style.margin-left.px]=\"level * 20\">\r\n\t\t\t\t<div\r\n\t\t\t\t\tclass=\"node-item\"\r\n\t\t\t\t\t[class.has-children]=\"node.children && node.children.length > 0\"\r\n\t\t\t\t\t[class.is-page]=\"node.routerLink\"\r\n\t\t\t\t\t[routerLink]=\"node.routerLink\"\r\n\t\t\t\t\t(click)=\"!node.routerLink ? toggleNode(node) : (visible = false)\">\r\n\t\t\t\t\t<div class=\"node-content\">\r\n\t\t\t\t\t\t@if (node.children && node.children.length > 0) {\r\n\t\t\t\t\t\t\t<div class=\"toggle-btn\" (click)=\"$event.stopPropagation(); toggleNode(node)\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi\" [class.pi-chevron-right]=\"!node.expanded\" [class.pi-chevron-down]=\"node.expanded\"></i>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t<i class=\"node-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t<span class=\"node-label\">{{ node.label | translateJson }}</span>\r\n\r\n\t\t\t\t\t\t@if (node.routerLink) {\r\n\t\t\t\t\t\t\t<i class=\"external-icon pi pi-external-link\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<!-- Recursive Children -->\r\n\t\t\t\t@if (node.children && node.expanded) {\r\n\t\t\t\t\t@for (child of node.children; track trackByKey($index, child)) {\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: child, level: level + 1 }\"></ng-container>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t</div>\r\n</p-sidebar>\r\n", styles: [":host ::ng-deep .layout-sitemap-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem .5rem}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header .total-pages{background:#fff3;color:#ffffffe6;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500}.sitemap-content{display:flex;flex-direction:column;height:100%;background:var(--surface-ground)}.search-section{padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.sitemap-tree{flex:1;overflow:hidden}.tree-container{padding:.5rem 0}.tree-node .node-item{display:flex;align-items:center;padding:.5rem 1rem;border-radius:6px;margin:.1rem .5rem;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.tree-node .node-item:hover{background:var(--surface-hover);border-color:var(--surface-border)}.tree-node .node-item.is-page:hover{background:var(--primary-50);border-color:var(--primary-200)}.tree-node .node-item.is-page:hover .external-icon{opacity:1}.tree-node .node-item.has-children{font-weight:500}.tree-node .node-content{display:flex;align-items:center;gap:.5rem;width:100%;min-width:0}.tree-node .toggle-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:transparent;border:none;border-radius:4px;color:var(--text-color-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.tree-node .toggle-btn:hover{background:var(--surface-hover);color:var(--primary-color)}.tree-node .toggle-btn i{font-size:.7rem}.tree-node .node-icon{color:var(--primary-color);font-size:.9rem;flex-shrink:0}.tree-node .node-label{flex:1;font-size:.9rem;color:var(--text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-node .external-icon{color:var(--text-color-secondary);font-size:.7rem;opacity:.6;transition:opacity .2s ease;flex-shrink:0}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.empty-content{text-align:center;max-width:300px}.empty-icon{font-size:3rem;color:var(--text-color-secondary);margin-bottom:1rem;opacity:.5}.empty-message{font-size:.9rem;color:var(--text-color-secondary);line-height:1.4;margin-bottom:1.5rem}:host ::ng-deep .p-scrollpanel-bar-y{background:var(--primary-200);width:4px;border-radius:2px}:host ::ng-deep .p-scrollpanel-bar-y:hover{background:var(--primary-300)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: SidebarModule }, { kind: "component", type: i6.Sidebar, selector: "p-sidebar", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "directive", type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: ScrollPanelModule }, { kind: "component", type: i8.ScrollPanel, selector: "p-scrollPanel", inputs: ["style", "styleClass", "step"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "rounded", "text", "outlined", "badge", "size", "icon", "iconPos", "color"], outputs: ["clickEvent"] }, { kind: "component", type: TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i2.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "pipe", type: TranslateJsonPipe, name: "translateJson" }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i10.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] }); }
|
|
149
|
-
}
|
|
150
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SiteMapSidebarComponent, decorators: [{
|
|
151
|
-
type: Component,
|
|
152
|
-
args: [{ standalone: true, selector: 'app-site-map-sidebar', imports: [
|
|
153
|
-
CommonModule,
|
|
154
|
-
FormsModule,
|
|
155
|
-
RouterModule,
|
|
156
|
-
SidebarModule,
|
|
157
|
-
ScrollPanelModule,
|
|
158
|
-
TooltipModule,
|
|
159
|
-
ButtonComponent,
|
|
160
|
-
TextComponent,
|
|
161
|
-
TranslocoModule,
|
|
162
|
-
TranslateJsonPipe,
|
|
163
|
-
FontAwesomeModule
|
|
164
|
-
], template: "<p-sidebar\r\n\t[(visible)]=\"visible\"\r\n\tposition=\"right\"\r\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\r\n\tstyleClass=\"layout-sitemap-sidebar w-full sm:w-30rem\"\r\n\t*transloco=\"let t; read: 'siteMap'\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"flex align-items-center justify-content-between gap-2 w-full\">\r\n\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t<i class=\"pi pi-sitemap text-primary text-xl\"></i>\r\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('siteMap') }}</span>\r\n\t\t\t\t<span class=\"total-pages\">{{ totalPages() }} {{ t('pages') }}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"sitemap-content\">\r\n\t\t<div class=\"search-section grid p-fluid m-0\">\r\n\t\t\t<aril-text\r\n\t\t\t\t[placeholder]=\"t('searchPages')\"\r\n\t\t\t\t[(ngModel)]=\"searchTerm\"\r\n\t\t\t\t(ngModelChange)=\"onSearchChange()\"\r\n\t\t\t\tclass=\"col-10 m-0\">\r\n\t\t\t</aril-text>\r\n\t\t\t@if (filteredNodes().length > 0) {\r\n\t\t\t<div class=\"col-2 flex align-items-center m-0 p-0\">\r\n\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t[icon]=\"solidIcons.faAnglesDown\"\r\n\t\t\t\t\t\tsize=\"xl\"\r\n\t\t\t\t\t\tstyle=\"color: var(--primary-color)\"\r\n\t\t\t\t\t\tclass=\"col-1 cursor-pointer\"\r\n\t\t\t\t\t\t[pTooltip]=\"t('expandAll')\"\r\n\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t(click)=\"expandAll()\">\r\n\t\t\t\t\t</fa-icon>\r\n\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t[icon]=\"solidIcons.faAnglesUp\"\r\n\t\t\t\t\t\tsize=\"xl\"\r\n\t\t\t\t\t\tstyle=\"color: var(--red-500)\"\r\n\t\t\t\t\t\tclass=\"col-1 ml-3 cursor-pointer\"\r\n\t\t\t\t\t\t[pTooltip]=\"t('collapseAll')\"\r\n\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t(click)=\"collapseAll()\">\r\n\t\t\t\t\t</fa-icon>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</div>\r\n\r\n\t\t<!-- Site Map Tree -->\r\n\t\t@if (filteredNodes().length > 0) {\r\n\t\t\t<div class=\"sitemap-tree\">\r\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\r\n\t\t\t\t\t<div class=\"tree-container\">\r\n\t\t\t\t\t\t@for (node of filteredNodes(); track trackByKey($index, node)) {\r\n\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: node, level: 0 }\"></ng-container>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-scrollPanel>\r\n\t\t\t</div>\r\n\t\t} @else {\r\n\t\t\t<div class=\"empty-state\">\r\n\t\t\t\t<div class=\"empty-content\">\r\n\t\t\t\t\t<i class=\"pi pi-sitemap empty-icon\"></i>\r\n\t\t\t\t\t<h3 class=\"empty-title\">\r\n\t\t\t\t\t\t{{ searchTerm() ? t('noSearchResults') : t('noPages') }}\r\n\t\t\t\t\t</h3>\r\n\t\t\t\t\t<p class=\"empty-message\">\r\n\t\t\t\t\t\t{{ searchTerm() ? t('tryDifferentKeywords') : '' }}\r\n\t\t\t\t\t</p>\r\n\t\t\t\t\t@if (searchTerm()) {\r\n\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t[label]=\"t('clearSearch')\"\r\n\t\t\t\t\t\t\ticon=\"TIMES\"\r\n\t\t\t\t\t\t\tcolor=\"secondary\"\r\n\t\t\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t(clickEvent)=\"searchTerm.set(''); onSearchChange()\">\r\n\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t<!-- Recursive Tree Node Template -->\r\n\t\t<ng-template #treeNodeTemplate let-node let-level=\"level\">\r\n\t\t\t<div class=\"tree-node\" [style.margin-left.px]=\"level * 20\">\r\n\t\t\t\t<div\r\n\t\t\t\t\tclass=\"node-item\"\r\n\t\t\t\t\t[class.has-children]=\"node.children && node.children.length > 0\"\r\n\t\t\t\t\t[class.is-page]=\"node.routerLink\"\r\n\t\t\t\t\t[routerLink]=\"node.routerLink\"\r\n\t\t\t\t\t(click)=\"!node.routerLink ? toggleNode(node) : (visible = false)\">\r\n\t\t\t\t\t<div class=\"node-content\">\r\n\t\t\t\t\t\t@if (node.children && node.children.length > 0) {\r\n\t\t\t\t\t\t\t<div class=\"toggle-btn\" (click)=\"$event.stopPropagation(); toggleNode(node)\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi\" [class.pi-chevron-right]=\"!node.expanded\" [class.pi-chevron-down]=\"node.expanded\"></i>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t<i class=\"node-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t<span class=\"node-label\">{{ node.label | translateJson }}</span>\r\n\r\n\t\t\t\t\t\t@if (node.routerLink) {\r\n\t\t\t\t\t\t\t<i class=\"external-icon pi pi-external-link\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<!-- Recursive Children -->\r\n\t\t\t\t@if (node.children && node.expanded) {\r\n\t\t\t\t\t@for (child of node.children; track trackByKey($index, child)) {\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: child, level: level + 1 }\"></ng-container>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t</div>\r\n</p-sidebar>\r\n", styles: [":host ::ng-deep .layout-sitemap-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem .5rem}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header .total-pages{background:#fff3;color:#ffffffe6;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500}.sitemap-content{display:flex;flex-direction:column;height:100%;background:var(--surface-ground)}.search-section{padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.sitemap-tree{flex:1;overflow:hidden}.tree-container{padding:.5rem 0}.tree-node .node-item{display:flex;align-items:center;padding:.5rem 1rem;border-radius:6px;margin:.1rem .5rem;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.tree-node .node-item:hover{background:var(--surface-hover);border-color:var(--surface-border)}.tree-node .node-item.is-page:hover{background:var(--primary-50);border-color:var(--primary-200)}.tree-node .node-item.is-page:hover .external-icon{opacity:1}.tree-node .node-item.has-children{font-weight:500}.tree-node .node-content{display:flex;align-items:center;gap:.5rem;width:100%;min-width:0}.tree-node .toggle-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:transparent;border:none;border-radius:4px;color:var(--text-color-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.tree-node .toggle-btn:hover{background:var(--surface-hover);color:var(--primary-color)}.tree-node .toggle-btn i{font-size:.7rem}.tree-node .node-icon{color:var(--primary-color);font-size:.9rem;flex-shrink:0}.tree-node .node-label{flex:1;font-size:.9rem;color:var(--text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-node .external-icon{color:var(--text-color-secondary);font-size:.7rem;opacity:.6;transition:opacity .2s ease;flex-shrink:0}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.empty-content{text-align:center;max-width:300px}.empty-icon{font-size:3rem;color:var(--text-color-secondary);margin-bottom:1rem;opacity:.5}.empty-message{font-size:.9rem;color:var(--text-color-secondary);line-height:1.4;margin-bottom:1.5rem}:host ::ng-deep .p-scrollpanel-bar-y{background:var(--primary-200);width:4px;border-radius:2px}:host ::ng-deep .p-scrollpanel-bar-y:hover{background:var(--primary-300)}\n"] }]
|
|
165
|
-
}], ctorParameters: () => [{ type: i1.LayoutService }, { type: i2.TranslocoService }] });
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZS1tYXAtc2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvc2l0ZS1tYXAvc2l0ZS1tYXAtc2lkZWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvc2l0ZS1tYXAvc2l0ZS1tYXAtc2lkZWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0sbUJBQW1CLENBQUM7QUFFdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7O0FBOEIzQyxNQUFNLE9BQU8sdUJBQXVCO0lBT25DLFlBQ1Es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LFdBQ3ZCO3dCQUNSLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsaUJBQWlCO3FCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBTY3JvbGxQYW5lbE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc2Nyb2xscGFuZWwnO1xyXG5pbXBvcnQgeyBTaWRlYmFyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9zaWRlYmFyJztcclxuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xvY29Nb2R1bGUsIFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XHJcblxyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdhcmlsL3VpL2J1dHRvbic7XHJcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICdhcmlsL3VpL3RleHQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVKc29uUGlwZSB9IGZyb20gJ2FyaWwvdXRpbC9waXBlcyc7XHJcblxyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hcHAubGF5b3V0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb250QXdlc29tZU1vZHVsZSB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcclxuaW1wb3J0IHsgc29saWRJY29ucyB9IGZyb20gJ2FyaWwvdXRpbC9saWInO1xyXG5cclxuaW50ZXJmYWNlIE1lbnVOb2RlIHtcclxuXHRrZXk6IHN0cmluZztcclxuXHRsYWJlbDogc3RyaW5nIHwgb2JqZWN0O1xyXG5cdGljb24/OiBzdHJpbmc7XHJcblx0cm91dGVyTGluaz86IHN0cmluZztcclxuXHRjaGlsZHJlbj86IE1lbnVOb2RlW107XHJcblx0ZXhwYW5kZWQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXBwLXNpdGUtbWFwLXNpZGViYXInLFxyXG5cdGltcG9ydHM6IFtcclxuXHRcdENvbW1vbk1vZHVsZSxcclxuXHRcdEZvcm1zTW9kdWxlLFxyXG5cdFx0Um91dGVyTW9kdWxlLFxyXG5cdFx0U2lkZWJhck1vZHVsZSxcclxuXHRcdFNjcm9sbFBhbmVsTW9kdWxlLFxyXG5cdFx0VG9vbHRpcE1vZHVsZSxcclxuXHRcdEJ1dHRvbkNvbXBvbmVudCxcclxuXHRcdFRleHRDb21wb25lbnQsXHJcblx0XHRUcmFuc2xvY29Nb2R1bGUsXHJcblx0XHRUcmFuc2xhdGVKc29uUGlwZSxcclxuXHRcdEZvbnRBd2Vzb21lTW9kdWxlXHJcblx0XSxcclxuXHR0ZW1wbGF0ZVVybDogJy4vc2l0ZS1tYXAtc2lkZWJhci5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vc2l0ZS1tYXAtc2lkZWJhci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaXRlTWFwU2lkZWJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblx0c2l0ZU1hcE5vZGVzID0gc2lnbmFsPE1lbnVOb2RlW10+KFtdKTtcclxuXHRmaWx0ZXJlZE5vZGVzID0gc2lnbmFsPE1lbnVOb2RlW10+KFtdKTtcclxuXHRzZWFyY2hUZXJtID0gc2lnbmFsPHN0cmluZz4oJycpO1xyXG5cdHRvdGFsUGFnZXMgPSBzaWduYWw8bnVtYmVyPigwKTtcclxuICBzb2xpZEljb25zID0gc29saWRJY29ucztcclxuXHRcclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHB1YmxpYyBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlXHJcblx0KSB7fVxyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHRcdHRoaXMubG9hZFNpdGVNYXAoKTtcclxuXHR9XHJcblxyXG5cdGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5zaXRlTWFwU2lkZWJhclZpc2libGU7XHJcblx0fVxyXG5cclxuXHRzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xyXG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLnNpdGVNYXBTaWRlYmFyVmlzaWJsZSA9IHZhbHVlO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBsb2FkU2l0ZU1hcCgpOiB2b2lkIHtcclxuXHRcdGNvbnN0IG1lbnVJdGVtcyA9ICg8YW55Pmdsb2JhbFRoaXMpLmhvc3RNZW51SXRlbXM/LigpIHx8IFtdO1xyXG5cdFx0Y29uc3Qgbm9kZXMgPSB0aGlzLmJ1aWxkU2l0ZU1hcE5vZGVzKG1lbnVJdGVtcyk7XHJcblx0XHRjb25zdCB0b3RhbENvdW50ID0gdGhpcy5jb3VudFRvdGFsUGFnZXMobm9kZXMpO1xyXG5cclxuXHRcdHRoaXMuc2l0ZU1hcE5vZGVzLnNldChub2Rlcyk7XHJcblx0XHR0aGlzLmZpbHRlcmVkTm9kZXMuc2V0KG5vZGVzKTtcclxuXHRcdHRoaXMudG90YWxQYWdlcy5zZXQodG90YWxDb3VudCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGJ1aWxkU2l0ZU1hcE5vZGVzKGl0ZW1zOiBhbnlbXSwgcGFyZW50S2V5ID0gJycpOiBNZW51Tm9kZVtdIHtcclxuXHRcdHJldHVybiBpdGVtc1xyXG5cdFx0XHQuZmlsdGVyKChpdGVtKSA9PiB7XHJcblx0XHRcdFx0Ly8gS2VlcCB0aGUgaG9tZSBwYWdlIHJvdXRlIChcIi9cIikgYW5kIGFueSBub24tZW1wdHkgcm91dGVzXHJcblx0XHRcdFx0cmV0dXJuICFpdGVtLnJvdXRlckxpbmsgfHwgaXRlbS5yb3V0ZXJMaW5rID09PSAnLycgfHwgaXRlbS5yb3V0ZXJMaW5rLnRyaW0oKSAhPT0gJyc7XHJcblx0XHRcdH0pXHJcblx0XHRcdC5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcblx0XHRcdFx0Y29uc3Qga2V5ID0gcGFyZW50S2V5ID8gYCR7cGFyZW50S2V5fS0ke2luZGV4fWAgOiBgJHtpbmRleH1gO1xyXG5cclxuXHRcdFx0XHRsZXQgbGFiZWw6IHN0cmluZyB8IG9iamVjdDtcclxuXHRcdFx0XHRpZiAoaXRlbS5yb3V0ZXJMaW5rID09PSAnLycpIHtcclxuXHRcdFx0XHRcdGxhYmVsID0geyB0cjogJ0FuYXNheWZhJywgZW46ICdIb21lJyB9O1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRsYWJlbCA9IGl0ZW0ubGFiZWwgfHwgeyB0cjogJ0JpbGlubWV5ZW4nLCBlbjogJ1Vua25vd24nIH07XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRjb25zdCBub2RlOiBNZW51Tm9kZSA9IHtcclxuXHRcdFx0XHRcdGtleSxcclxuXHRcdFx0XHRcdGxhYmVsLFxyXG5cdFx0XHRcdFx0aWNvbjogaXRlbS5pY29uLFxyXG5cdFx0XHRcdFx0cm91dGVyTGluazogaXRlbS5yb3V0ZXJMaW5rLFxyXG5cdFx0XHRcdFx0ZXhwYW5kZWQ6IGZhbHNlXHJcblx0XHRcdFx0fTtcclxuXHJcblx0XHRcdFx0aWYgKGl0ZW0uaXRlbXMgJiYgaXRlbS5pdGVtcy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRub2RlLmNoaWxkcmVuID0gdGhpcy5idWlsZFNpdGVNYXBOb2RlcyhpdGVtLml0ZW1zLCBrZXkpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0cmV0dXJuIG5vZGU7XHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBjb3VudFRvdGFsUGFnZXMobm9kZXM6IE1lbnVOb2RlW10pOiBudW1iZXIge1xyXG5cdFx0bGV0IGNvdW50ID0gMDtcclxuXHRcdGZvciAoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xyXG5cdFx0XHRpZiAobm9kZS5yb3V0ZXJMaW5rKSB7XHJcblx0XHRcdFx0Y291bnQrKztcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAobm9kZS5jaGlsZHJlbikge1xyXG5cdFx0XHRcdGNvdW50ICs9IHRoaXMuY291bnRUb3RhbFBhZ2VzKG5vZGUuY2hpbGRyZW4pO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gY291bnQ7XHJcblx0fVxyXG5cclxuXHRvblNlYXJjaENoYW5nZSgpOiB2b2lkIHtcclxuXHRcdGNvbnN0IHNlYXJjaFRlcm0gPSB0aGlzLnNlYXJjaFRlcm0oKT8udG9Mb3dlckNhc2UoKT8udHJpbSgpO1xyXG5cdFx0aWYgKCFzZWFyY2hUZXJtKSB7XHJcblx0XHRcdHRoaXMuZmlsdGVyZWROb2Rlcy5zZXQodGhpcy5zaXRlTWFwTm9kZXMoKSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRjb25zdCBmaWx0ZXJlZCA9IHRoaXMuZmlsdGVyTm9kZXModGhpcy5zaXRlTWFwTm9kZXMoKSwgc2VhcmNoVGVybSk7XHJcblx0XHRcdHRoaXMuZmlsdGVyZWROb2Rlcy5zZXQoZmlsdGVyZWQpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBmaWx0ZXJOb2Rlcyhub2RlczogTWVudU5vZGVbXSwgc2VhcmNoVGVybTogc3RyaW5nKTogTWVudU5vZGVbXSB7XHJcblx0XHRjb25zdCBmaWx0ZXJlZDogTWVudU5vZGVbXSA9IFtdO1xyXG5cdFx0Y29uc3QgY3VycmVudExhbmcgPSB0aGlzLnRyYW5zbG9jb1NlcnZpY2UuZ2V0QWN0aXZlTGFuZygpO1xyXG5cclxuXHRcdGZvciAoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xyXG5cdFx0XHQvLyBDb252ZXJ0IGxhYmVsIHRvIHN0cmluZyBmb3Igc2VhcmNoIGJhc2VkIG9uIGFjdGl2ZSBsYW5ndWFnZVxyXG5cdFx0XHRjb25zdCBsYWJlbFRleHQgPVxyXG5cdFx0XHRcdHR5cGVvZiBub2RlLmxhYmVsID09PSAnc3RyaW5nJyA/XHJcblx0XHRcdFx0XHRub2RlLmxhYmVsXHJcblx0XHRcdFx0Olx0KG5vZGUubGFiZWwgYXMgYW55KT8uW2N1cnJlbnRMYW5nXSB8fCAobm9kZS5sYWJlbCBhcyBhbnkpPy50ciB8fCAobm9kZS5sYWJlbCBhcyBhbnkpPy5lbiB8fCAnJztcclxuXHJcblx0XHRcdGNvbnN0IG1hdGNoZXMgPSBsYWJlbFRleHQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtKTtcclxuXHRcdFx0bGV0IGZpbHRlcmVkQ2hpbGRyZW46IE1lbnVOb2RlW10gPSBbXTtcclxuXHJcblx0XHRcdGlmIChub2RlLmNoaWxkcmVuKSB7XHJcblx0XHRcdFx0ZmlsdGVyZWRDaGlsZHJlbiA9IHRoaXMuZmlsdGVyTm9kZXMobm9kZS5jaGlsZHJlbiwgc2VhcmNoVGVybSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmIChtYXRjaGVzIHx8IGZpbHRlcmVkQ2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdGZpbHRlcmVkLnB1c2goe1xyXG5cdFx0XHRcdFx0Li4ubm9kZSxcclxuXHRcdFx0XHRcdGNoaWxkcmVuOiBmaWx0ZXJlZENoaWxkcmVuLmxlbmd0aCA+IDAgPyBmaWx0ZXJlZENoaWxkcmVuIDogbm9kZS5jaGlsZHJlbixcclxuXHRcdFx0XHRcdGV4cGFuZGVkOiBmaWx0ZXJlZENoaWxkcmVuLmxlbmd0aCA+IDBcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBmaWx0ZXJlZDtcclxuXHR9XHJcblxyXG5cdGV4cGFuZEFsbCgpOiB2b2lkIHtcclxuXHRcdGNvbnN0IGV4cGFuZGVkID0gdGhpcy5leHBhbmROb2Rlcyh0aGlzLmZpbHRlcmVkTm9kZXMoKSwgdHJ1ZSk7XHJcblx0XHR0aGlzLmZpbHRlcmVkTm9kZXMuc2V0KFsuLi5leHBhbmRlZF0pO1xyXG5cdH1cclxuXHJcblx0Y29sbGFwc2VBbGwoKTogdm9pZCB7XHJcblx0XHRjb25zdCBjb2xsYXBzZWQgPSB0aGlzLmV4cGFuZE5vZGVzKHRoaXMuZmlsdGVyZWROb2RlcygpLCBmYWxzZSk7XHJcblx0XHR0aGlzLmZpbHRlcmVkTm9kZXMuc2V0KFsuLi5jb2xsYXBzZWRdKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZXhwYW5kTm9kZXMobm9kZXM6IE1lbnVOb2RlW10sIGV4cGFuZGVkOiBib29sZWFuKTogTWVudU5vZGVbXSB7XHJcblx0XHRyZXR1cm4gbm9kZXMubWFwKChub2RlKSA9PiAoe1xyXG5cdFx0XHQuLi5ub2RlLFxyXG5cdFx0XHRleHBhbmRlZCxcclxuXHRcdFx0Y2hpbGRyZW46IG5vZGUuY2hpbGRyZW4gPyB0aGlzLmV4cGFuZE5vZGVzKG5vZGUuY2hpbGRyZW4sIGV4cGFuZGVkKSA6IHVuZGVmaW5lZFxyXG5cdFx0fSkpO1xyXG5cdH1cclxuXHJcblx0dG9nZ2xlTm9kZShub2RlOiBNZW51Tm9kZSk6IHZvaWQge1xyXG5cdFx0bm9kZS5leHBhbmRlZCA9ICFub2RlLmV4cGFuZGVkO1xyXG5cdFx0dGhpcy5maWx0ZXJlZE5vZGVzLnNldChbLi4udGhpcy5maWx0ZXJlZE5vZGVzKCldKTtcclxuXHR9XHJcblxyXG5cdHRyYWNrQnlLZXkoaW5kZXg6IG51bWJlciwgbm9kZTogTWVudU5vZGUpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIG5vZGUua2V5IHx8IGAke2luZGV4fWA7XHJcblx0fVxyXG59XHJcbiIsIjxwLXNpZGViYXJcclxuXHRbKHZpc2libGUpXT1cInZpc2libGVcIlxyXG5cdHBvc2l0aW9uPVwicmlnaHRcIlxyXG5cdFt0cmFuc2l0aW9uT3B0aW9uc109XCInLjNzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpJ1wiXHJcblx0c3R5bGVDbGFzcz1cImxheW91dC1zaXRlbWFwLXNpZGViYXIgdy1mdWxsIHNtOnctMzByZW1cIlxyXG5cdCp0cmFuc2xvY289XCJsZXQgdDsgcmVhZDogJ3NpdGVNYXAnXCI+XHJcblx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGdhcC0yIHctZnVsbFwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuXHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLXNpdGVtYXAgdGV4dC1wcmltYXJ5IHRleHQteGxcIj48L2k+XHJcblx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmb250LWJvbGQgdGV4dC1sZ1wiPnt7IHQoJ3NpdGVNYXAnKSB9fTwvc3Bhbj5cclxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cInRvdGFsLXBhZ2VzXCI+e3sgdG90YWxQYWdlcygpIH19IHt7IHQoJ3BhZ2VzJykgfX08L3NwYW4+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuXHJcblx0PGRpdiBjbGFzcz1cInNpdGVtYXAtY29udGVudFwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cInNlYXJjaC1zZWN0aW9uIGdyaWQgcC1mbHVpZCBtLTBcIj5cclxuXHRcdFx0PGFyaWwtdGV4dFxyXG5cdFx0XHRcdFtwbGFjZWhvbGRlcl09XCJ0KCdzZWFyY2hQYWdlcycpXCJcclxuXHRcdFx0XHRbKG5nTW9kZWwpXT1cInNlYXJjaFRlcm1cIlxyXG5cdFx0XHRcdChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VhcmNoQ2hhbmdlKClcIlxyXG5cdFx0XHRcdGNsYXNzPVwiY29sLTEwIG0tMFwiPlxyXG5cdFx0XHQ8L2FyaWwtdGV4dD5cclxuXHRcdFx0QGlmIChmaWx0ZXJlZE5vZGVzKCkubGVuZ3RoID4gMCkge1xyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTIgZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbS0wIHAtMFwiPlxyXG5cdFx0XHRcdFx0PGZhLWljb25cclxuXHRcdFx0XHRcdFx0W2ljb25dPVwic29saWRJY29ucy5mYUFuZ2xlc0Rvd25cIlxyXG5cdFx0XHRcdFx0XHRzaXplPVwieGxcIlxyXG5cdFx0XHRcdFx0XHRzdHlsZT1cImNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKVwiXHJcblx0XHRcdFx0XHRcdGNsYXNzPVwiY29sLTEgY3Vyc29yLXBvaW50ZXJcIlxyXG5cdFx0XHRcdFx0XHRbcFRvb2x0aXBdPVwidCgnZXhwYW5kQWxsJylcIlxyXG5cdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG5cdFx0XHRcdFx0XHQoY2xpY2spPVwiZXhwYW5kQWxsKClcIj5cclxuXHRcdFx0XHRcdDwvZmEtaWNvbj5cclxuXHRcdFx0XHRcdDxmYS1pY29uXHJcblx0XHRcdFx0XHRcdFtpY29uXT1cInNvbGlkSWNvbnMuZmFBbmdsZXNVcFwiXHJcblx0XHRcdFx0XHRcdHNpemU9XCJ4bFwiXHJcblx0XHRcdFx0XHRcdHN0eWxlPVwiY29sb3I6IHZhcigtLXJlZC01MDApXCJcclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJjb2wtMSBtbC0zIGN1cnNvci1wb2ludGVyXCJcclxuXHRcdFx0XHRcdFx0W3BUb29sdGlwXT1cInQoJ2NvbGxhcHNlQWxsJylcIlxyXG5cdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG5cdFx0XHRcdFx0XHQoY2xpY2spPVwiY29sbGFwc2VBbGwoKVwiPlxyXG5cdFx0XHRcdFx0PC9mYS1pY29uPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHR9XHJcblx0XHQ8L2Rpdj5cclxuXHJcblx0XHQ8IS0tIFNpdGUgTWFwIFRyZWUgLS0+XHJcblx0XHRAaWYgKGZpbHRlcmVkTm9kZXMoKS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJzaXRlbWFwLXRyZWVcIj5cclxuXHRcdFx0XHQ8cC1zY3JvbGxQYW5lbCBbc3R5bGVdPVwieyB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICcxMDAlJyB9XCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidHJlZS1jb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0QGZvciAobm9kZSBvZiBmaWx0ZXJlZE5vZGVzKCk7IHRyYWNrIHRyYWNrQnlLZXkoJGluZGV4LCBub2RlKSkge1xyXG5cdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cmVlTm9kZVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogbm9kZSwgbGV2ZWw6IDAgfVwiPjwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L3Atc2Nyb2xsUGFuZWw+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0fSBAZWxzZSB7XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJlbXB0eS1zdGF0ZVwiPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJlbXB0eS1jb250ZW50XCI+XHJcblx0XHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLXNpdGVtYXAgZW1wdHktaWNvblwiPjwvaT5cclxuXHRcdFx0XHRcdDxoMyBjbGFzcz1cImVtcHR5LXRpdGxlXCI+XHJcblx0XHRcdFx0XHRcdHt7IHNlYXJjaFRlcm0oKSA/IHQoJ25vU2VhcmNoUmVzdWx0cycpIDogdCgnbm9QYWdlcycpIH19XHJcblx0XHRcdFx0XHQ8L2gzPlxyXG5cdFx0XHRcdFx0PHAgY2xhc3M9XCJlbXB0eS1tZXNzYWdlXCI+XHJcblx0XHRcdFx0XHRcdHt7IHNlYXJjaFRlcm0oKSA/IHQoJ3RyeURpZmZlcmVudEtleXdvcmRzJykgOiAnJyB9fVxyXG5cdFx0XHRcdFx0PC9wPlxyXG5cdFx0XHRcdFx0QGlmIChzZWFyY2hUZXJtKCkpIHtcclxuXHRcdFx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0W2xhYmVsXT1cInQoJ2NsZWFyU2VhcmNoJylcIlxyXG5cdFx0XHRcdFx0XHRcdGljb249XCJUSU1FU1wiXHJcblx0XHRcdFx0XHRcdFx0Y29sb3I9XCJzZWNvbmRhcnlcIlxyXG5cdFx0XHRcdFx0XHRcdFtvdXRsaW5lZF09XCJ0cnVlXCJcclxuXHRcdFx0XHRcdFx0XHRzaXplPVwic21cIlxyXG5cdFx0XHRcdFx0XHRcdChjbGlja0V2ZW50KT1cInNlYXJjaFRlcm0uc2V0KCcnKTsgb25TZWFyY2hDaGFuZ2UoKVwiPlxyXG5cdFx0XHRcdFx0XHQ8L2FyaWwtYnV0dG9uPlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdH1cclxuXHJcblx0XHQ8IS0tIFJlY3Vyc2l2ZSBUcmVlIE5vZGUgVGVtcGxhdGUgLS0+XHJcblx0XHQ8bmctdGVtcGxhdGUgI3RyZWVOb2RlVGVtcGxhdGUgbGV0LW5vZGUgbGV0LWxldmVsPVwibGV2ZWxcIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cInRyZWUtbm9kZVwiIFtzdHlsZS5tYXJnaW4tbGVmdC5weF09XCJsZXZlbCAqIDIwXCI+XHJcblx0XHRcdFx0PGRpdlxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJub2RlLWl0ZW1cIlxyXG5cdFx0XHRcdFx0W2NsYXNzLmhhcy1jaGlsZHJlbl09XCJub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMFwiXHJcblx0XHRcdFx0XHRbY2xhc3MuaXMtcGFnZV09XCJub2RlLnJvdXRlckxpbmtcIlxyXG5cdFx0XHRcdFx0W3JvdXRlckxpbmtdPVwibm9kZS5yb3V0ZXJMaW5rXCJcclxuXHRcdFx0XHRcdChjbGljayk9XCIhbm9kZS5yb3V0ZXJMaW5rID8gdG9nZ2xlTm9kZShub2RlKSA6ICh2aXNpYmxlID0gZmFsc2UpXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibm9kZS1jb250ZW50XCI+XHJcblx0XHRcdFx0XHRcdEBpZiAobm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidG9nZ2xlLWJ0blwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IHRvZ2dsZU5vZGUobm9kZSlcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwicGlcIiBbY2xhc3MucGktY2hldnJvbi1yaWdodF09XCIhbm9kZS5leHBhbmRlZFwiIFtjbGFzcy5waS1jaGV2cm9uLWRvd25dPVwibm9kZS5leHBhbmRlZFwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0QGlmIChub2RlLmljb24pIHtcclxuXHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cIm5vZGUtaWNvblwiIFtjbGFzc109XCJub2RlLmljb25cIj48L2k+XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJub2RlLWxhYmVsXCI+e3sgbm9kZS5sYWJlbCB8IHRyYW5zbGF0ZUpzb24gfX08L3NwYW4+XHJcblxyXG5cdFx0XHRcdFx0XHRAaWYgKG5vZGUucm91dGVyTGluaykge1xyXG5cdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwiZXh0ZXJuYWwtaWNvbiBwaSBwaS1leHRlcm5hbC1saW5rXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHJcblx0XHRcdFx0PCEtLSBSZWN1cnNpdmUgQ2hpbGRyZW4gLS0+XHJcblx0XHRcdFx0QGlmIChub2RlLmNoaWxkcmVuICYmIG5vZGUuZXhwYW5kZWQpIHtcclxuXHRcdFx0XHRcdEBmb3IgKGNoaWxkIG9mIG5vZGUuY2hpbGRyZW47IHRyYWNrIHRyYWNrQnlLZXkoJGluZGV4LCBjaGlsZCkpIHtcclxuXHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lclxyXG5cdFx0XHRcdFx0XHRcdCpuZ1RlbXBsYXRlT3V0bGV0PVwidHJlZU5vZGVUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNoaWxkLCBsZXZlbDogbGV2ZWwgKyAxIH1cIj48L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHQ8L2Rpdj5cclxuPC9wLXNpZGViYXI+XHJcbiJdfQ==
|
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
import { NgClass, NgTemplateOutlet } from '@angular/common';
|
|
2
|
-
import { Component, signal } from '@angular/core';
|
|
3
|
-
import { toSignal } from '@angular/core/rxjs-interop';
|
|
4
|
-
import { FormsModule } from '@angular/forms';
|
|
5
|
-
import { RouterLink } from '@angular/router';
|
|
6
|
-
import { NavigationEnd } from '@angular/router';
|
|
7
|
-
import { ScrollPanelModule } from 'primeng/scrollpanel';
|
|
8
|
-
import { TooltipModule } from 'primeng/tooltip';
|
|
9
|
-
import { TranslocoModule } from '@ngneat/transloco';
|
|
10
|
-
import { filter } from 'rxjs';
|
|
11
|
-
import { TranslateJsonPipe } from 'aril/util/pipes';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
import * as i1 from "../../service/app.menu.service";
|
|
14
|
-
import * as i2 from "@angular/router";
|
|
15
|
-
import * as i3 from "../../service/app.layout.service";
|
|
16
|
-
import * as i4 from "aril/util/pipes";
|
|
17
|
-
import * as i5 from "@ngneat/transloco";
|
|
18
|
-
import * as i6 from "primeng/scrollpanel";
|
|
19
|
-
import * as i7 from "primeng/tooltip";
|
|
20
|
-
import * as i8 from "@angular/forms";
|
|
21
|
-
export class StaticSidebarComponent {
|
|
22
|
-
constructor(menuService, router, layoutService, translateJsonPipe, translocoService) {
|
|
23
|
-
this.menuService = menuService;
|
|
24
|
-
this.router = router;
|
|
25
|
-
this.layoutService = layoutService;
|
|
26
|
-
this.translateJsonPipe = translateJsonPipe;
|
|
27
|
-
this.translocoService = translocoService;
|
|
28
|
-
this.menuNodes = signal([]);
|
|
29
|
-
this.filteredNodes = signal([]);
|
|
30
|
-
this.searchTerm = signal('');
|
|
31
|
-
this.routerSubscription = null;
|
|
32
|
-
this.MAX_LENGTH = { level0: 25, level1: 20, level2: 16, level3: 13 };
|
|
33
|
-
this.activeLang = toSignal(this.translocoService.langChanges$, { initialValue: 'tr' });
|
|
34
|
-
}
|
|
35
|
-
get isCollapsed() {
|
|
36
|
-
return this.layoutService.isStaticSidebarCollapsed();
|
|
37
|
-
}
|
|
38
|
-
get topLevelNodes() {
|
|
39
|
-
return this.menuNodes();
|
|
40
|
-
}
|
|
41
|
-
ngOnInit() {
|
|
42
|
-
this.buildMenuTree();
|
|
43
|
-
this.routerSubscription = this.router.events
|
|
44
|
-
.pipe(filter((event) => event instanceof NavigationEnd))
|
|
45
|
-
.subscribe(() => this.buildMenuTree());
|
|
46
|
-
}
|
|
47
|
-
ngOnDestroy() {
|
|
48
|
-
this.routerSubscription?.unsubscribe();
|
|
49
|
-
}
|
|
50
|
-
isTextTruncated(label, lang, level = 0) {
|
|
51
|
-
if (!label || !lang || !label[lang])
|
|
52
|
-
return false;
|
|
53
|
-
const text = label[lang];
|
|
54
|
-
const len = text.length;
|
|
55
|
-
const limits = [this.MAX_LENGTH.level0, this.MAX_LENGTH.level1, this.MAX_LENGTH.level2, this.MAX_LENGTH.level3];
|
|
56
|
-
return len > limits[Math.min(level, 3)];
|
|
57
|
-
}
|
|
58
|
-
isMobile() {
|
|
59
|
-
return this.layoutService.isMobile();
|
|
60
|
-
}
|
|
61
|
-
buildMenuTree() {
|
|
62
|
-
const menuItems = this.getMenuItems();
|
|
63
|
-
const nodes = this.convertToMenuNodes(menuItems);
|
|
64
|
-
this.menuNodes.set(nodes);
|
|
65
|
-
this.filteredNodes.set([...nodes]);
|
|
66
|
-
this.expandActiveMenu();
|
|
67
|
-
}
|
|
68
|
-
expandActiveMenu() {
|
|
69
|
-
const nodes = this.menuNodes();
|
|
70
|
-
this.findAndExpandActiveNode(nodes);
|
|
71
|
-
this.filteredNodes.set([...this.filteredNodes()]);
|
|
72
|
-
}
|
|
73
|
-
findAndExpandActiveNode(nodes) {
|
|
74
|
-
for (const node of nodes) {
|
|
75
|
-
if (this.isActiveRouteForNode(node)) {
|
|
76
|
-
return node;
|
|
77
|
-
}
|
|
78
|
-
if (node.children && node.children.length > 0) {
|
|
79
|
-
const activeChild = this.findAndExpandActiveNode(node.children);
|
|
80
|
-
if (activeChild) {
|
|
81
|
-
// we find active child and then opened its parent nodes
|
|
82
|
-
node.expanded = true;
|
|
83
|
-
return activeChild;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
return null;
|
|
88
|
-
}
|
|
89
|
-
convertToMenuNodes(items, parentKey = '') {
|
|
90
|
-
return items
|
|
91
|
-
.filter((item) => !item.separator)
|
|
92
|
-
.map((item, index) => {
|
|
93
|
-
const key = parentKey ? `${parentKey}-${index}` : `${index}`;
|
|
94
|
-
const node = {
|
|
95
|
-
key,
|
|
96
|
-
label: item.label,
|
|
97
|
-
icon: item.icon,
|
|
98
|
-
routerLink: item.routerLink,
|
|
99
|
-
expanded: false
|
|
100
|
-
};
|
|
101
|
-
if (item.items && item.items.length > 0) {
|
|
102
|
-
node.children = this.convertToMenuNodes(item.items, key);
|
|
103
|
-
}
|
|
104
|
-
return node;
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
getMenuItems() {
|
|
108
|
-
const isHostMode = globalThis.isHostMode;
|
|
109
|
-
const hostMenuItems = globalThis.hostMenuItems;
|
|
110
|
-
return isHostMode ? hostMenuItems() : this.menuService.menuItems();
|
|
111
|
-
}
|
|
112
|
-
getLocalText(text) {
|
|
113
|
-
return this.translateJsonPipe.transform(text);
|
|
114
|
-
}
|
|
115
|
-
isActiveRouteForNode(node) {
|
|
116
|
-
if (!node.routerLink)
|
|
117
|
-
return false;
|
|
118
|
-
const currentUrl = this.router.url;
|
|
119
|
-
const hashUrl = currentUrl.indexOf('#') > -1 ? currentUrl.split('#')[1] : currentUrl;
|
|
120
|
-
if (hashUrl === node.routerLink || hashUrl === '/' + node.routerLink)
|
|
121
|
-
return true;
|
|
122
|
-
return (node.routerLink !== '/' &&
|
|
123
|
-
(hashUrl.startsWith(node.routerLink + '/') || hashUrl.startsWith('/' + node.routerLink + '/')));
|
|
124
|
-
}
|
|
125
|
-
// use on collapsed mode
|
|
126
|
-
isNodeOrChildActive(node) {
|
|
127
|
-
if (this.isActiveRouteForNode(node)) {
|
|
128
|
-
return true;
|
|
129
|
-
}
|
|
130
|
-
if (node.children && node.children.length > 0) {
|
|
131
|
-
return node.children.some(child => this.isNodeOrChildActive(child));
|
|
132
|
-
}
|
|
133
|
-
return false;
|
|
134
|
-
}
|
|
135
|
-
isTopLevelNodeActive(node) {
|
|
136
|
-
return this.isNodeOrChildActive(node);
|
|
137
|
-
}
|
|
138
|
-
isChildNodeActive(node) {
|
|
139
|
-
return this.isActiveRouteForNode(node);
|
|
140
|
-
}
|
|
141
|
-
toggleNode(node, level = 0) {
|
|
142
|
-
const wasExpanded = node.expanded;
|
|
143
|
-
if (level === 0) {
|
|
144
|
-
// Diğer ana menüleri kapat
|
|
145
|
-
this.closeOtherTopLevelNodes(node);
|
|
146
|
-
}
|
|
147
|
-
node.expanded = !wasExpanded;
|
|
148
|
-
this.filteredNodes.set([...this.filteredNodes()]);
|
|
149
|
-
}
|
|
150
|
-
closeOtherTopLevelNodes(exceptNode) {
|
|
151
|
-
const nodes = this.menuNodes();
|
|
152
|
-
nodes.forEach(node => {
|
|
153
|
-
if (node !== exceptNode) {
|
|
154
|
-
node.expanded = false;
|
|
155
|
-
this.closeAllChildNodes(node);
|
|
156
|
-
}
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
closeAllChildNodes(node) {
|
|
160
|
-
if (node.children) {
|
|
161
|
-
node.children.forEach(child => {
|
|
162
|
-
child.expanded = false;
|
|
163
|
-
this.closeAllChildNodes(child);
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
trackByKey(index, node) {
|
|
168
|
-
return node.key;
|
|
169
|
-
}
|
|
170
|
-
onMenuItemClick() {
|
|
171
|
-
if (this.isMobile()) {
|
|
172
|
-
this.layoutService.closeMobileMenu();
|
|
173
|
-
}
|
|
174
|
-
this.searchTerm.set('');
|
|
175
|
-
this.filteredNodes.set(this.menuNodes() || []);
|
|
176
|
-
}
|
|
177
|
-
onCollapsedItemClick(node) {
|
|
178
|
-
if (this.isCollapsed) {
|
|
179
|
-
this.layoutService.onMenuToggle();
|
|
180
|
-
}
|
|
181
|
-
this.closeOtherTopLevelNodes(node);
|
|
182
|
-
if (node.children && node.children.length > 0) {
|
|
183
|
-
node.expanded = true;
|
|
184
|
-
}
|
|
185
|
-
this.filteredNodes.set([...this.filteredNodes()]);
|
|
186
|
-
if (node.routerLink) {
|
|
187
|
-
this.onMenuItemClick();
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
onSearchChange() {
|
|
191
|
-
const currentSearchTerm = this.searchTerm()?.toLowerCase()?.trim();
|
|
192
|
-
if (!currentSearchTerm) {
|
|
193
|
-
this.filteredNodes.set(this.menuNodes() || []);
|
|
194
|
-
return;
|
|
195
|
-
}
|
|
196
|
-
this.filteredNodes.set(this.filterNodes(this.menuNodes(), currentSearchTerm));
|
|
197
|
-
}
|
|
198
|
-
filterNodes(nodes, searchTerm) {
|
|
199
|
-
const filtered = [];
|
|
200
|
-
const currentLang = this.translocoService.getActiveLang();
|
|
201
|
-
for (const node of nodes) {
|
|
202
|
-
// Convert label to string for search based on active language
|
|
203
|
-
const labelText = typeof node.label === 'string' ?
|
|
204
|
-
node.label
|
|
205
|
-
: node.label?.[currentLang] || node.label?.tr || node.label?.en || '';
|
|
206
|
-
const matches = labelText.toLowerCase().includes(searchTerm);
|
|
207
|
-
let filteredChildren = [];
|
|
208
|
-
if (node.children) {
|
|
209
|
-
filteredChildren = this.filterNodes(node.children, searchTerm);
|
|
210
|
-
}
|
|
211
|
-
if (matches || filteredChildren.length > 0) {
|
|
212
|
-
filtered.push({
|
|
213
|
-
...node,
|
|
214
|
-
children: filteredChildren.length > 0 ? filteredChildren : node.children,
|
|
215
|
-
expanded: filteredChildren.length > 0
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
return filtered;
|
|
220
|
-
}
|
|
221
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: StaticSidebarComponent, deps: [{ token: i1.AppMenuService }, { token: i2.Router }, { token: i3.LayoutService }, { token: i4.TranslateJsonPipe }, { token: i5.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
222
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: StaticSidebarComponent, isStandalone: true, selector: "app-static-sidebar", providers: [TranslateJsonPipe], ngImport: i0, template: "<div class=\"static-sidebar\" [class.collapsed]=\"isCollapsed\">\r\n\t<div class=\"static-sidebar-content\">\r\n\t\t@if (!isCollapsed) {\r\n\t\t\t<div class=\"search-container\" *transloco=\"let t; read: ''\">\r\n\t\t\t\t<div class=\"search-wrapper\">\r\n\t\t\t\t\t<i class=\"pi pi-search search-icon\"></i>\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\tpInputText\r\n\t\t\t\t\t\tvariant=\"filled\"\r\n\t\t\t\t\t\t[placeholder]=\"t('search')\"\r\n\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\r\n\t\t\t\t\t\t(ngModelChange)=\"onSearchChange()\"\r\n\t\t\t\t\t\tclass=\"search-static-sidebar\" />\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: 'calc(100vh - 130px)' }\">\r\n\t\t\t\t<div class=\"tree-container\">\r\n\t\t\t\t\t@for (node of filteredNodes(); track trackByKey($index, node)) {\r\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: node, level: 0 }\"></ng-container>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t</p-scrollPanel>\r\n\t\t} @else {\r\n\t\t\t<!-- Collapsed mode - only icons -->\r\n\t\t\t<div class=\"collapsed-container\">\r\n\t\t\t\t@for (node of topLevelNodes; track trackByKey($index, node)) {\r\n\t\t\t\t\t@if (node.routerLink && (!node.children || node.children.length === 0)) {\r\n\t\t\t\t\t\t<a \r\n\t\t\t\t\t\t\tclass=\"collapsed-item\" \r\n\t\t\t\t\t\t\t[pTooltip]=\"getLocalText(node.label)\" \r\n\t\t\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t\t\t[routerLink]=\"node.routerLink\"\r\n\t\t\t\t\t\t\t[class.active]=\"isTopLevelNodeActive(node)\"\r\n\t\t\t\t\t\t\t(click)=\"onCollapsedItemClick(node)\">\r\n\t\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon pi pi-circle\"></i>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t<div \r\n\t\t\t\t\t\t\tclass=\"collapsed-item\" \r\n\t\t\t\t\t\t\t[pTooltip]=\"getLocalText(node.label)\" \r\n\t\t\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t\t\t[class.active]=\"isTopLevelNodeActive(node)\"\r\n\t\t\t\t\t\t\t(click)=\"onCollapsedItemClick(node)\">\r\n\t\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon pi pi-circle\"></i>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n\r\n\t<!-- Recursive Tree Node Template -->\r\n\t<ng-template #treeNodeTemplate let-node let-level=\"level\">\r\n\t\t<div class=\"tree-node\" [ngClass]=\"'level-' + level\">\r\n\t\t\t@if (node.routerLink) {\r\n\t\t\t\t<a\r\n\t\t\t\t\t[routerLink]=\"node.routerLink\"\r\n\t\t\t\t\tclass=\"node-item\"\r\n\t\t\t\t\t[class.has-children]=\"node.children && node.children.length > 0\"\r\n\t\t\t\t\t[class.is-page]=\"node.routerLink\"\r\n\t\t\t\t\t[class.active]=\"isChildNodeActive(node)\"\r\n\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(node.label, activeLang(), level) ? getLocalText(node.label) : ''\"\r\n\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t(click)=\"onMenuItemClick()\">\r\n\t\t\t\t\t<div class=\"node-content\">\r\n\t\t\t\t\t\t@if (node.children && node.children.length > 0) {\r\n\t\t\t\t\t\t\t<div class=\"toggle-btn\"\r\n\t\t\t\t\t\t\t\t(click)=\"$event.stopPropagation(); toggleNode(node, level)\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi\" [class.pi-chevron-right]=\"!node.expanded\" [class.pi-chevron-down]=\"node.expanded\"></i>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t<i class=\"node-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t<span class=\"node-label\">{{ getLocalText(node.label) }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</a>\r\n\t\t\t} @else {\r\n\t\t\t\t<div\r\n\t\t\t\t\tclass=\"node-item\"\r\n\t\t\t\t\t[class.has-children]=\"node.children && node.children.length > 0\"\r\n\t\t\t\t\t[class.is-page]=\"node.routerLink\"\r\n\t\t\t\t\t[class.active]=\"isChildNodeActive(node)\"\r\n\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(node.label, activeLang(), level) ? getLocalText(node.label) : ''\"\r\n\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t(click)=\"toggleNode(node, level)\">\r\n\t\t\t\t\t<div class=\"node-content\">\r\n\t\t\t\t\t\t@if (node.children && node.children.length > 0) {\r\n\t\t\t\t\t\t\t<div class=\"toggle-btn\"\r\n\t\t\t\t\t\t\t\t(click)=\"$event.stopPropagation(); toggleNode(node, level)\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi\" [class.pi-chevron-right]=\"!node.expanded\" [class.pi-chevron-down]=\"node.expanded\"></i>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t<i class=\"node-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t<span class=\"node-label\">{{ getLocalText(node.label) }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\r\n\t\t\t<!-- Recursive Children -->\r\n\t\t\t@if (node.children && node.expanded) {\r\n\t\t\t\t<div class=\"children-container\" [attr.data-level]=\"level\">\r\n\t\t\t\t\t@for (child of node.children; track trackByKey($index, child)) {\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: child, level: level + 1 }\"></ng-container>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</div>\r\n\t</ng-template>\r\n</div> ", styles: [".search-container{padding:12px 8px;margin:0}.search-wrapper{position:relative;width:100%}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#64748b;font-size:14px;z-index:10;pointer-events:none;transition:color .2s ease}.search-static-sidebar{background:#1e293b!important;border:1px solid rgba(148,163,184,.1)!important;height:36px!important;font-size:13px!important;font-weight:400;color:#cbd5e1!important;padding:0 12px 0 36px!important;border-radius:4px!important;width:100%!important;box-sizing:border-box!important;transition:all .25s ease!important}.search-static-sidebar::placeholder{font-size:12px!important}.search-static-sidebar:hover{background:#0f172ab3!important;border-color:#94a3b826!important}.search-static-sidebar:focus{outline:none!important;border:1px solid rgba(15,23,42,.8)!important;background:#0f172acc!important}.search-wrapper:focus-within .search-icon{color:#cbd5e1}.static-sidebar{width:260px;height:100vh;background:#1e293b;border-right:1px solid #0f172a;display:flex;flex-direction:column;position:fixed;left:0;top:55px;z-index:999;overflow-y:auto;overflow-x:hidden;transition:width .3s ease;box-shadow:2px 0 5px #0000000d}.static-sidebar.collapsed{width:64px;box-shadow:none}.static-sidebar .static-sidebar-content{flex:1;background:transparent;overflow:hidden}.static-sidebar .tree-container{padding:5px 0;overflow-x:hidden}.static-sidebar .tree-node{margin-bottom:4px;position:relative}.static-sidebar .tree-node .node-item{display:flex;align-items:center;padding:10px 12px;border-radius:4px;margin:0 5px;cursor:pointer;transition:all .25s ease;text-decoration:none;color:#cbd5e1!important;overflow:visible;position:relative;white-space:nowrap}.static-sidebar .tree-node .node-item:before{content:\"\";position:absolute;width:0;height:100%;top:0;left:0;background-color:var(--primary-color);opacity:.08;transition:width .25s ease-in-out}.static-sidebar .tree-node .node-item:hover{color:#e8e7e7!important}.static-sidebar .tree-node .node-item:hover:before{width:100%}.static-sidebar .tree-node .node-item:hover .node-label{color:#e8e7e7!important}.static-sidebar .tree-node .node-item:hover .node-icon{color:#e8e7e7!important;transform:translate(2px)}.static-sidebar .tree-node .node-item.is-page:hover{color:#e8e7e7!important}.static-sidebar .tree-node .node-item.is-page:hover:before{width:100%}.static-sidebar .tree-node .node-item.active{background-color:#495465!important;color:#e8e7e7!important;font-weight:500!important;box-shadow:0 2px 5px #0000001a!important}.static-sidebar .tree-node .node-item.active:before{display:none}.static-sidebar .tree-node .node-item.active .node-label,.static-sidebar .tree-node .node-item.active .node-icon,.static-sidebar .tree-node .node-item.active .toggle-btn i{color:#e8e7e7!important}.static-sidebar .tree-node .node-item.active:hover{background-color:var(--primary-color)}.static-sidebar .tree-node .node-content{display:flex;align-items:center;gap:8px;width:100%;min-width:0;position:relative;z-index:2;padding-left:24px}.static-sidebar .tree-node .toggle-btn{position:absolute;left:0;display:flex;align-items:center;justify-content:center;width:20px;height:16px;border:none;border-radius:3px;color:#cbd5e1;cursor:pointer;transition:all .25s ease;flex-shrink:0;z-index:3}.static-sidebar .tree-node .toggle-btn:hover{transform:scale(1.1)}.static-sidebar .tree-node .toggle-btn i{font-size:.7rem;transition:transform .2s ease}.static-sidebar .tree-node .node-icon{color:#cbd5e1;font-size:16px;flex-shrink:0;transition:transform .25s ease,color .25s ease;position:relative}.static-sidebar .tree-node .node-label{flex:1;font-size:13px;font-weight:500;color:#cbd5e1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .25s ease;position:relative}.static-sidebar .collapsed-container{padding:8px 0;display:flex;flex-direction:column;align-items:center;width:100%}.static-sidebar .collapsed-item{width:100%;display:flex;flex-direction:column;align-items:center;padding:12px 0;cursor:pointer;transition:all .25s ease;text-decoration:none;position:relative;overflow:hidden;margin-bottom:4px;color:#cbd5e1}.static-sidebar .collapsed-item:hover{color:#e8e7e7}.static-sidebar .collapsed-item:hover .collapsed-icon{transform:scale(1.15);color:#e8e7e7}.static-sidebar .collapsed-item:hover:after{content:\"\";position:absolute;left:0;top:0;width:3px;height:100%;background-color:#0f172a;opacity:.7}.static-sidebar .collapsed-item.active{background-color:#495465!important}.static-sidebar .collapsed-item.active:before{content:\"\";position:absolute;left:0;top:0;width:3px;height:100%;background-color:#0f172a}.static-sidebar .collapsed-item.active .collapsed-icon{color:#fff!important}.static-sidebar .collapsed-item .collapsed-icon{font-size:22px;color:#cbd5e1;transition:all .2s ease}.static-sidebar .children-container{position:relative}.static-sidebar .children-container:before{content:\"\";position:absolute;left:25px;top:0;bottom:0;width:1px;background-color:#4755694d;z-index:1}.static-sidebar .tree-node{position:relative}.static-sidebar .tree-node.level-0 .node-item{margin-right:20px;width:240px;max-width:240px}.static-sidebar .tree-node.level-0 .node-label{font-size:13px;font-weight:500;color:#cbd5e1}.static-sidebar .tree-node.level-0 .node-icon{font-size:16px}.static-sidebar .tree-node.level-1 .node-item{margin-left:36px;margin-right:20px;padding:8px 12px;width:204px;max-width:204px}.static-sidebar .tree-node.level-1 .node-label{font-size:12px;font-weight:400}.static-sidebar .tree-node.level-1 .node-icon{font-size:15px}.static-sidebar .tree-node.level-2 .node-item{margin-left:52px;margin-right:20px;width:188px;max-width:188px}.static-sidebar .tree-node.level-2 .node-label{font-size:11px;font-weight:400;color:#cbd5e1}.static-sidebar .tree-node.level-2 .node-icon{font-size:14px}.static-sidebar .tree-node.level-2.active .node-item{background-color:#495465!important}.static-sidebar .tree-node.level-2.active .node-item .node-label{color:#e8e7e7!important}.static-sidebar .tree-node.level-3 .node-item{margin-left:68px;margin-right:20px;padding:6px 12px;width:172px;max-width:172px}.static-sidebar .tree-node.level-3 .node-label{font-size:11px;font-weight:400;color:#cbd5e1}.static-sidebar .tree-node.level-3 .node-icon{font-size:13px}:host ::ng-deep .p-scrollpanel .p-scrollpanel-wrapper{border:none}:host ::ng-deep .p-scrollpanel .p-scrollpanel-content{padding-right:5px}:host ::ng-deep .p-scrollpanel-bar-y{background:#1e293b;width:4px;border-radius:4px}:host ::ng-deep .p-scrollpanel-bar-y:hover{background:#1e293b}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ScrollPanelModule }, { kind: "component", type: i6.ScrollPanel, selector: "p-scrollPanel", inputs: ["style", "styleClass", "step"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i7.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.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: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }] }); }
|
|
223
|
-
}
|
|
224
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: StaticSidebarComponent, decorators: [{
|
|
225
|
-
type: Component,
|
|
226
|
-
args: [{ standalone: true, selector: 'app-static-sidebar', imports: [RouterLink, NgClass, NgTemplateOutlet, ScrollPanelModule, TooltipModule, FormsModule, TranslocoModule], providers: [TranslateJsonPipe], template: "<div class=\"static-sidebar\" [class.collapsed]=\"isCollapsed\">\r\n\t<div class=\"static-sidebar-content\">\r\n\t\t@if (!isCollapsed) {\r\n\t\t\t<div class=\"search-container\" *transloco=\"let t; read: ''\">\r\n\t\t\t\t<div class=\"search-wrapper\">\r\n\t\t\t\t\t<i class=\"pi pi-search search-icon\"></i>\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\tpInputText\r\n\t\t\t\t\t\tvariant=\"filled\"\r\n\t\t\t\t\t\t[placeholder]=\"t('search')\"\r\n\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\r\n\t\t\t\t\t\t(ngModelChange)=\"onSearchChange()\"\r\n\t\t\t\t\t\tclass=\"search-static-sidebar\" />\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: 'calc(100vh - 130px)' }\">\r\n\t\t\t\t<div class=\"tree-container\">\r\n\t\t\t\t\t@for (node of filteredNodes(); track trackByKey($index, node)) {\r\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: node, level: 0 }\"></ng-container>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t</p-scrollPanel>\r\n\t\t} @else {\r\n\t\t\t<!-- Collapsed mode - only icons -->\r\n\t\t\t<div class=\"collapsed-container\">\r\n\t\t\t\t@for (node of topLevelNodes; track trackByKey($index, node)) {\r\n\t\t\t\t\t@if (node.routerLink && (!node.children || node.children.length === 0)) {\r\n\t\t\t\t\t\t<a \r\n\t\t\t\t\t\t\tclass=\"collapsed-item\" \r\n\t\t\t\t\t\t\t[pTooltip]=\"getLocalText(node.label)\" \r\n\t\t\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t\t\t[routerLink]=\"node.routerLink\"\r\n\t\t\t\t\t\t\t[class.active]=\"isTopLevelNodeActive(node)\"\r\n\t\t\t\t\t\t\t(click)=\"onCollapsedItemClick(node)\">\r\n\t\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon pi pi-circle\"></i>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t<div \r\n\t\t\t\t\t\t\tclass=\"collapsed-item\" \r\n\t\t\t\t\t\t\t[pTooltip]=\"getLocalText(node.label)\" \r\n\t\t\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t\t\t[class.active]=\"isTopLevelNodeActive(node)\"\r\n\t\t\t\t\t\t\t(click)=\"onCollapsedItemClick(node)\">\r\n\t\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon pi pi-circle\"></i>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n\r\n\t<!-- Recursive Tree Node Template -->\r\n\t<ng-template #treeNodeTemplate let-node let-level=\"level\">\r\n\t\t<div class=\"tree-node\" [ngClass]=\"'level-' + level\">\r\n\t\t\t@if (node.routerLink) {\r\n\t\t\t\t<a\r\n\t\t\t\t\t[routerLink]=\"node.routerLink\"\r\n\t\t\t\t\tclass=\"node-item\"\r\n\t\t\t\t\t[class.has-children]=\"node.children && node.children.length > 0\"\r\n\t\t\t\t\t[class.is-page]=\"node.routerLink\"\r\n\t\t\t\t\t[class.active]=\"isChildNodeActive(node)\"\r\n\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(node.label, activeLang(), level) ? getLocalText(node.label) : ''\"\r\n\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t(click)=\"onMenuItemClick()\">\r\n\t\t\t\t\t<div class=\"node-content\">\r\n\t\t\t\t\t\t@if (node.children && node.children.length > 0) {\r\n\t\t\t\t\t\t\t<div class=\"toggle-btn\"\r\n\t\t\t\t\t\t\t\t(click)=\"$event.stopPropagation(); toggleNode(node, level)\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi\" [class.pi-chevron-right]=\"!node.expanded\" [class.pi-chevron-down]=\"node.expanded\"></i>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t<i class=\"node-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t<span class=\"node-label\">{{ getLocalText(node.label) }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</a>\r\n\t\t\t} @else {\r\n\t\t\t\t<div\r\n\t\t\t\t\tclass=\"node-item\"\r\n\t\t\t\t\t[class.has-children]=\"node.children && node.children.length > 0\"\r\n\t\t\t\t\t[class.is-page]=\"node.routerLink\"\r\n\t\t\t\t\t[class.active]=\"isChildNodeActive(node)\"\r\n\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(node.label, activeLang(), level) ? getLocalText(node.label) : ''\"\r\n\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t(click)=\"toggleNode(node, level)\">\r\n\t\t\t\t\t<div class=\"node-content\">\r\n\t\t\t\t\t\t@if (node.children && node.children.length > 0) {\r\n\t\t\t\t\t\t\t<div class=\"toggle-btn\"\r\n\t\t\t\t\t\t\t\t(click)=\"$event.stopPropagation(); toggleNode(node, level)\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi\" [class.pi-chevron-right]=\"!node.expanded\" [class.pi-chevron-down]=\"node.expanded\"></i>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t<i class=\"node-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t<span class=\"node-label\">{{ getLocalText(node.label) }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\r\n\t\t\t<!-- Recursive Children -->\r\n\t\t\t@if (node.children && node.expanded) {\r\n\t\t\t\t<div class=\"children-container\" [attr.data-level]=\"level\">\r\n\t\t\t\t\t@for (child of node.children; track trackByKey($index, child)) {\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: child, level: level + 1 }\"></ng-container>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</div>\r\n\t</ng-template>\r\n</div> ", styles: [".search-container{padding:12px 8px;margin:0}.search-wrapper{position:relative;width:100%}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#64748b;font-size:14px;z-index:10;pointer-events:none;transition:color .2s ease}.search-static-sidebar{background:#1e293b!important;border:1px solid rgba(148,163,184,.1)!important;height:36px!important;font-size:13px!important;font-weight:400;color:#cbd5e1!important;padding:0 12px 0 36px!important;border-radius:4px!important;width:100%!important;box-sizing:border-box!important;transition:all .25s ease!important}.search-static-sidebar::placeholder{font-size:12px!important}.search-static-sidebar:hover{background:#0f172ab3!important;border-color:#94a3b826!important}.search-static-sidebar:focus{outline:none!important;border:1px solid rgba(15,23,42,.8)!important;background:#0f172acc!important}.search-wrapper:focus-within .search-icon{color:#cbd5e1}.static-sidebar{width:260px;height:100vh;background:#1e293b;border-right:1px solid #0f172a;display:flex;flex-direction:column;position:fixed;left:0;top:55px;z-index:999;overflow-y:auto;overflow-x:hidden;transition:width .3s ease;box-shadow:2px 0 5px #0000000d}.static-sidebar.collapsed{width:64px;box-shadow:none}.static-sidebar .static-sidebar-content{flex:1;background:transparent;overflow:hidden}.static-sidebar .tree-container{padding:5px 0;overflow-x:hidden}.static-sidebar .tree-node{margin-bottom:4px;position:relative}.static-sidebar .tree-node .node-item{display:flex;align-items:center;padding:10px 12px;border-radius:4px;margin:0 5px;cursor:pointer;transition:all .25s ease;text-decoration:none;color:#cbd5e1!important;overflow:visible;position:relative;white-space:nowrap}.static-sidebar .tree-node .node-item:before{content:\"\";position:absolute;width:0;height:100%;top:0;left:0;background-color:var(--primary-color);opacity:.08;transition:width .25s ease-in-out}.static-sidebar .tree-node .node-item:hover{color:#e8e7e7!important}.static-sidebar .tree-node .node-item:hover:before{width:100%}.static-sidebar .tree-node .node-item:hover .node-label{color:#e8e7e7!important}.static-sidebar .tree-node .node-item:hover .node-icon{color:#e8e7e7!important;transform:translate(2px)}.static-sidebar .tree-node .node-item.is-page:hover{color:#e8e7e7!important}.static-sidebar .tree-node .node-item.is-page:hover:before{width:100%}.static-sidebar .tree-node .node-item.active{background-color:#495465!important;color:#e8e7e7!important;font-weight:500!important;box-shadow:0 2px 5px #0000001a!important}.static-sidebar .tree-node .node-item.active:before{display:none}.static-sidebar .tree-node .node-item.active .node-label,.static-sidebar .tree-node .node-item.active .node-icon,.static-sidebar .tree-node .node-item.active .toggle-btn i{color:#e8e7e7!important}.static-sidebar .tree-node .node-item.active:hover{background-color:var(--primary-color)}.static-sidebar .tree-node .node-content{display:flex;align-items:center;gap:8px;width:100%;min-width:0;position:relative;z-index:2;padding-left:24px}.static-sidebar .tree-node .toggle-btn{position:absolute;left:0;display:flex;align-items:center;justify-content:center;width:20px;height:16px;border:none;border-radius:3px;color:#cbd5e1;cursor:pointer;transition:all .25s ease;flex-shrink:0;z-index:3}.static-sidebar .tree-node .toggle-btn:hover{transform:scale(1.1)}.static-sidebar .tree-node .toggle-btn i{font-size:.7rem;transition:transform .2s ease}.static-sidebar .tree-node .node-icon{color:#cbd5e1;font-size:16px;flex-shrink:0;transition:transform .25s ease,color .25s ease;position:relative}.static-sidebar .tree-node .node-label{flex:1;font-size:13px;font-weight:500;color:#cbd5e1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .25s ease;position:relative}.static-sidebar .collapsed-container{padding:8px 0;display:flex;flex-direction:column;align-items:center;width:100%}.static-sidebar .collapsed-item{width:100%;display:flex;flex-direction:column;align-items:center;padding:12px 0;cursor:pointer;transition:all .25s ease;text-decoration:none;position:relative;overflow:hidden;margin-bottom:4px;color:#cbd5e1}.static-sidebar .collapsed-item:hover{color:#e8e7e7}.static-sidebar .collapsed-item:hover .collapsed-icon{transform:scale(1.15);color:#e8e7e7}.static-sidebar .collapsed-item:hover:after{content:\"\";position:absolute;left:0;top:0;width:3px;height:100%;background-color:#0f172a;opacity:.7}.static-sidebar .collapsed-item.active{background-color:#495465!important}.static-sidebar .collapsed-item.active:before{content:\"\";position:absolute;left:0;top:0;width:3px;height:100%;background-color:#0f172a}.static-sidebar .collapsed-item.active .collapsed-icon{color:#fff!important}.static-sidebar .collapsed-item .collapsed-icon{font-size:22px;color:#cbd5e1;transition:all .2s ease}.static-sidebar .children-container{position:relative}.static-sidebar .children-container:before{content:\"\";position:absolute;left:25px;top:0;bottom:0;width:1px;background-color:#4755694d;z-index:1}.static-sidebar .tree-node{position:relative}.static-sidebar .tree-node.level-0 .node-item{margin-right:20px;width:240px;max-width:240px}.static-sidebar .tree-node.level-0 .node-label{font-size:13px;font-weight:500;color:#cbd5e1}.static-sidebar .tree-node.level-0 .node-icon{font-size:16px}.static-sidebar .tree-node.level-1 .node-item{margin-left:36px;margin-right:20px;padding:8px 12px;width:204px;max-width:204px}.static-sidebar .tree-node.level-1 .node-label{font-size:12px;font-weight:400}.static-sidebar .tree-node.level-1 .node-icon{font-size:15px}.static-sidebar .tree-node.level-2 .node-item{margin-left:52px;margin-right:20px;width:188px;max-width:188px}.static-sidebar .tree-node.level-2 .node-label{font-size:11px;font-weight:400;color:#cbd5e1}.static-sidebar .tree-node.level-2 .node-icon{font-size:14px}.static-sidebar .tree-node.level-2.active .node-item{background-color:#495465!important}.static-sidebar .tree-node.level-2.active .node-item .node-label{color:#e8e7e7!important}.static-sidebar .tree-node.level-3 .node-item{margin-left:68px;margin-right:20px;padding:6px 12px;width:172px;max-width:172px}.static-sidebar .tree-node.level-3 .node-label{font-size:11px;font-weight:400;color:#cbd5e1}.static-sidebar .tree-node.level-3 .node-icon{font-size:13px}:host ::ng-deep .p-scrollpanel .p-scrollpanel-wrapper{border:none}:host ::ng-deep .p-scrollpanel .p-scrollpanel-content{padding-right:5px}:host ::ng-deep .p-scrollpanel-bar-y{background:#1e293b;width:4px;border-radius:4px}:host ::ng-deep .p-scrollpanel-bar-y:hover{background:#1e293b}\n"] }]
|
|
227
|
-
}], ctorParameters: () => [{ type: i1.AppMenuService }, { type: i2.Router }, { type: i3.LayoutService }, { type: i4.TranslateJsonPipe }, { type: i5.TranslocoService }] });
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLXNpZGViYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL3N0YXRpYy1zaWRlYmFyL3N0YXRpYy1zaWRlYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdGhlbWUvbGF5b3V0L2FwcC9zdGF0aWMtc2lkZWJhci9zdGF0aWMtc2lkZWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBNkIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFVLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGVBQWUsRUFBb0IsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RSxPQUFPLEVBQWdCLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7OztBQXNCcEQsTUFBTSxPQUFPLHNCQUFzQjtJQVVsQyxZQUNTLFdBQTJCLEVBQzNCLE1BQWMsRUFDZCxhQUE0QixFQUM1QixpQkFBb0MsRUFDcEMsZ0JBQWtDO1FBSmxDLGdCQUFXLEdB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akIsQ0FBQzs4R0E3T1csc0JBQXNCO2tHQUF0QixzQkFBc0IsaUVBRnZCLENBQUMsaUJBQWlCLENBQUMsMEJDbEMvQixxeUtBMkhPLCs5TUQ1RkksVUFBVSxvT0FBRSxPQUFPLG9GQUFFLGdCQUFnQixtSkFBRSxpQkFBaUIsK0lBQUUsYUFBYSxxWEFBRSxXQUFXLDhtQkFBRSxlQUFlOzsyRkFLbkcsc0JBQXNCO2tCQVJsQyxTQUFTO2lDQUNHLElBQUksWUFDTixvQkFBb0IsV0FDckIsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsZUFBZSxDQUFDLGFBR3JHLENBQUMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2lnbmFsLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IFNjcm9sbFBhbmVsTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9zY3JvbGxwYW5lbCc7XHJcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsb2NvTW9kdWxlLCBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZpbHRlciB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgUGx1Z2luTWVudUl0ZW0gfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwcHMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVKc29uUGlwZSB9IGZyb20gJ2FyaWwvdXRpbC9waXBlcyc7XHJcblxyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hcHAubGF5b3V0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBNZW51U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYXBwLm1lbnUuc2VydmljZSc7XHJcblxyXG5pbnRlcmZhY2UgTWVudU5vZGUge1xyXG5cdGtleTogc3RyaW5nO1xyXG5cdGxhYmVsOiBhbnk7XHJcblx0aWNvbj86IHN0cmluZztcclxuXHRyb3V0ZXJMaW5rPzogc3RyaW5nO1xyXG5cdGNoaWxkcmVuPzogTWVudU5vZGVbXTtcclxuXHRleHBhbmRlZDogYm9vbGVhbjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRzZWxlY3RvcjogJ2FwcC1zdGF0aWMtc2lkZWJhcicsXHJcblx0aW1wb3J0czogW1JvdXRlckxpbmssIE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQsIFNjcm9sbFBhbmVsTW9kdWxlLCBUb29sdGlwTW9kdWxlLCBGb3Jtc01vZHVsZSwgVHJhbnNsb2NvTW9kdWxlXSxcclxuXHR0ZW1wbGF0ZVVybDogJy4vc3RhdGljLXNpZGViYXIuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsOiAnLi9zdGF0aWMtc2lkZWJhci5jb21wb25lbnQuc2NzcycsXHJcblx0cHJvdmlkZXJzOiBbVHJhbnNsYXRlSnNvblBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdGF0aWNTaWRlYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cdGFjdGl2ZUxhbmc6IFNpZ25hbDxzdHJpbmc+O1xyXG5cdG1lbnVOb2RlcyA9IHNpZ25hbDxNZW51Tm9kZVtdPihbXSk7XHJcblx0ZmlsdGVyZWROb2RlcyA9IHNpZ25hbDxNZW51Tm9kZVtdPihbXSk7XHJcblx0c2VhcmNoVGVybSA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcclxuXHJcblx0cHJpdmF0ZSByb3V0ZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG5cclxuXHRwcml2YXRlIHJlYWRvbmx5IE1BWF9MRU5HVEggPSB7IGxldmVsMDogMjUsIGxldmVsMTogMjAsIGxldmVsMjogMTYsIGxldmVsMzogMTMgfTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIG1lbnVTZXJ2aWNlOiBBcHBNZW51U2VydmljZSxcclxuXHRcdHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcblx0XHRwcml2YXRlIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXHJcblx0XHRwcml2YXRlIHRyYW5zbGF0ZUpzb25QaXBlOiBUcmFuc2xhdGVKc29uUGlwZSxcclxuXHRcdHByaXZhdGUgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZVxyXG5cdCkge1xyXG5cdFx0dGhpcy5hY3RpdmVMYW5nID0gdG9TaWduYWwodGhpcy50cmFuc2xvY29TZXJ2aWNlLmxhbmdDaGFuZ2VzJCwgeyBpbml0aWFsVmFsdWU6ICd0cicgfSk7XHJcblx0fVxyXG5cclxuXHRnZXQgaXNDb2xsYXBzZWQoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLmlzU3RhdGljU2lkZWJhckNvbGxhcHNlZCgpO1xyXG5cdH1cclxuXHJcblx0Z2V0IHRvcExldmVsTm9kZXMoKTogTWVudU5vZGVbXSB7XHJcblx0XHRyZXR1cm4gdGhpcy5tZW51Tm9kZXMoKTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0dGhpcy5idWlsZE1lbnVUcmVlKCk7XHJcblx0XHR0aGlzLnJvdXRlclN1YnNjcmlwdGlvbiA9IHRoaXMucm91dGVyLmV2ZW50c1xyXG5cdFx0XHQucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxyXG5cdFx0XHQuc3Vic2NyaWJlKCgpID0+IHRoaXMuYnVpbGRNZW51VHJlZSgpKTtcclxuXHR9XHJcblxyXG5cdG5nT25EZXN0cm95KCkge1xyXG5cdFx0dGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcblx0fVxyXG5cclxuXHRpc1RleHRUcnVuY2F0ZWQobGFiZWw6IGFueSwgbGFuZzogc3RyaW5nIHwgbnVsbCwgbGV2ZWwgPSAwKTogYm9vbGVhbiB7XHJcblx0XHRpZiAoIWxhYmVsIHx8ICFsYW5nIHx8ICFsYWJlbFtsYW5nXSkgcmV0dXJuIGZhbHNlO1xyXG5cdFx0Y29uc3QgdGV4dCA9IGxhYmVsW2xhbmddO1xyXG5cdFx0Y29uc3QgbGVuID0gdGV4dC5sZW5ndGg7XHJcblx0XHRjb25zdCBsaW1pdHMgPSBbdGhpcy5NQVhfTEVOR1RILmxldmVsMCwgdGhpcy5NQVhfTEVOR1RILmxldmVsMSwgdGhpcy5NQVhfTEVOR1RILmxldmVsMiwgdGhpcy5NQVhfTEVOR1RILmxldmVsM107XHJcblx0XHRyZXR1cm4gbGVuID4gbGltaXRzW01hdGgubWluKGxldmVsLCAzKV07XHJcblx0fVxyXG5cclxuXHRpc01vYmlsZSgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmxheW91dFNlcnZpY2UuaXNNb2JpbGUoKTtcclxuXHR9XHJcblxyXG5cdGJ1aWxkTWVudVRyZWUoKSB7XHJcblx0XHRjb25zdCBtZW51SXRlbXMgPSB0aGlzLmdldE1lbnVJdGVtcygpO1xyXG5cdFx0Y29uc3Qgbm9kZXMgPSB0aGlzLmNvbnZlcnRUb01lbnVOb2RlcyhtZW51SXRlbXMpO1xyXG5cdFx0dGhpcy5tZW51Tm9kZXMuc2V0KG5vZGVzKTtcclxuXHRcdHRoaXMuZmlsdGVyZWROb2Rlcy5zZXQoWy4uLm5vZGVzXSk7XHJcblx0XHR0aGlzLmV4cGFuZEFjdGl2ZU1lbnUoKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZXhwYW5kQWN0aXZlTWVudSgpIHtcclxuXHRcdGNvbnN0IG5vZGVzID0gdGhpcy5tZW51Tm9kZXMoKTtcclxuXHRcdHRoaXMuZmluZEFuZEV4cGFuZEFjdGl2ZU5vZGUobm9kZXMpO1xyXG5cdFx0dGhpcy5maWx0ZXJlZE5vZGVzLnNldChbLi4udGhpcy5maWx0ZXJlZE5vZGVzKCldKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZmluZEFuZEV4cGFuZEFjdGl2ZU5vZGUobm9kZXM6IE1lbnVOb2RlW10pOiBNZW51Tm9kZSB8IG51bGwge1xyXG5cdFx0Zm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XHJcblx0XHRcdGlmICh0aGlzLmlzQWN0aXZlUm91dGVGb3JOb2RlKG5vZGUpKSB7XHJcblx0XHRcdFx0cmV0dXJuIG5vZGU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdGlmIChub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdGNvbnN0IGFjdGl2ZUNoaWxkID0gdGhpcy5maW5kQW5kRXhwYW5kQWN0aXZlTm9kZShub2RlLmNoaWxkcmVuKTtcclxuXHRcdFx0XHRpZiAoYWN0aXZlQ2hpbGQpIHtcclxuXHRcdFx0XHRcdC8vIHdlIGZpbmQgYWN0aXZlIGNoaWxkIGFuZCB0aGVuIG9wZW5lZCBpdHMgcGFyZW50IG5vZGVzXHJcblx0XHRcdFx0XHRub2RlLmV4cGFuZGVkID0gdHJ1ZTtcclxuXHRcdFx0XHRcdHJldHVybiBhY3RpdmVDaGlsZDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiBudWxsO1xyXG5cdH1cclxuXHJcblx0Y29udmVydFRvTWVudU5vZGVzKGl0ZW1zOiBQbHVnaW5NZW51SXRlbVtdLCBwYXJlbnRLZXkgPSAnJyk6IE1lbnVOb2RlW10ge1xyXG5cdFx0cmV0dXJuIGl0ZW1zXHJcblx0XHRcdC5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLnNlcGFyYXRvcilcclxuXHRcdFx0Lm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuXHRcdFx0XHRjb25zdCBrZXkgPSBwYXJlbnRLZXkgPyBgJHtwYXJlbnRLZXl9LSR7aW5kZXh9YCA6IGAke2luZGV4fWA7XHJcblx0XHRcdFx0Y29uc3Qgbm9kZTogTWVudU5vZGUgPSB7XHJcblx0XHRcdFx0XHRrZXksXHJcblx0XHRcdFx0XHRsYWJlbDogaXRlbS5sYWJlbCxcclxuXHRcdFx0XHRcdGljb246IGl0ZW0uaWNvbixcclxuXHRcdFx0XHRcdHJvdXRlckxpbms6IGl0ZW0ucm91dGVyTGluayxcclxuXHRcdFx0XHRcdGV4cGFuZGVkOiBmYWxzZVxyXG5cdFx0XHRcdH07XHJcblx0XHRcdFx0aWYgKGl0ZW0uaXRlbXMgJiYgaXRlbS5pdGVtcy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRub2RlLmNoaWxkcmVuID0gdGhpcy5jb252ZXJ0VG9NZW51Tm9kZXMoaXRlbS5pdGVtcywga2V5KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuIG5vZGU7XHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHJcblx0Z2V0TWVudUl0ZW1zKCk6IFBsdWdpbk1lbnVJdGVtW10ge1xyXG5cdFx0Y29uc3QgaXNIb3N0TW9kZSA9ICg8YW55Pmdsb2JhbFRoaXMpLmlzSG9zdE1vZGU7XHJcblx0XHRjb25zdCBob3N0TWVudUl0ZW1zID0gKDxhbnk+Z2xvYmFsVGhpcykuaG9zdE1lbnVJdGVtcztcclxuXHRcdHJldHVybiBpc0hvc3RNb2RlID8gaG9zdE1lbnVJdGVtcygpIDogdGhpcy5tZW51U2VydmljZS5tZW51SXRlbXMoKTtcclxuXHR9XHJcblxyXG5cdGdldExvY2FsVGV4dCh0ZXh0OiBhbnkpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRoaXMudHJhbnNsYXRlSnNvblBpcGUudHJhbnNmb3JtKHRleHQpO1xyXG5cdH1cclxuXHJcblx0aXNBY3RpdmVSb3V0ZUZvck5vZGUobm9kZTogTWVudU5vZGUpOiBib29sZWFuIHtcclxuXHRcdGlmICghbm9kZS5yb3V0ZXJMaW5rKSByZXR1cm4gZmFsc2U7XHJcblx0XHRjb25zdCBjdXJyZW50VXJsID0gdGhpcy5yb3V0ZXIudXJsO1xyXG5cdFx0Y29uc3QgaGFzaFVybCA9IGN1cnJlbnRVcmwuaW5kZXhPZignIycpID4gLTEgPyBjdXJyZW50VXJsLnNwbGl0KCcjJylbMV0gOiBjdXJyZW50VXJsO1xyXG5cdFx0aWYgKGhhc2hVcmwgPT09IG5vZGUucm91dGVyTGluayB8fCBoYXNoVXJsID09PSAnLycgKyBub2RlLnJvdXRlckxpbmspIHJldHVybiB0cnVlO1xyXG5cdFx0cmV0dXJuIChcclxuXHRcdFx0bm9kZS5yb3V0ZXJMaW5rICE9PSAnLycgJiZcclxuXHRcdFx0KGhhc2hVcmwuc3RhcnRzV2l0aChub2RlLnJvdXRlckxpbmsgKyAnLycpIHx8IGhhc2hVcmwuc3RhcnRzV2l0aCgnLycgKyBub2RlLnJvdXRlckxpbmsgKyAnLycpKVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8vIHVzZSBvbiBjb2xsYXBzZWQgbW9kZVxyXG5cdGlzTm9kZU9yQ2hpbGRBY3RpdmUobm9kZTogTWVudU5vZGUpOiBib29sZWFuIHtcclxuXHRcdGlmICh0aGlzLmlzQWN0aXZlUm91dGVGb3JOb2RlKG5vZGUpKSB7XHJcblx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0fVxyXG5cdFx0aWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcblx0XHRcdHJldHVybiBub2RlLmNoaWxkcmVuLnNvbWUoY2hpbGQgPT4gdGhpcy5pc05vZGVPckNoaWxkQWN0aXZlKGNoaWxkKSk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcblxyXG5cdGlzVG9wTGV2ZWxOb2RlQWN0aXZlKG5vZGU6IE1lbnVOb2RlKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5pc05vZGVPckNoaWxkQWN0aXZlKG5vZGUpO1xyXG5cdH1cclxuXHJcblx0aXNDaGlsZE5vZGVBY3RpdmUobm9kZTogTWVudU5vZGUpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmlzQWN0aXZlUm91dGVGb3JOb2RlKG5vZGUpO1xyXG5cdH1cclxuXHJcblx0dG9nZ2xlTm9kZShub2RlOiBNZW51Tm9kZSwgbGV2ZWwgPSAwKSB7XHJcblx0XHRjb25zdCB3YXNFeHBhbmRlZCA9IG5vZGUuZXhwYW5kZWQ7XHJcblx0XHRpZiAobGV2ZWwgPT09IDApIHtcclxuXHRcdFx0Ly8gRGnEn2VyIGFuYSBtZW7DvGxlcmkga2FwYXRcclxuXHRcdFx0dGhpcy5jbG9zZU90aGVyVG9wTGV2ZWxOb2Rlcyhub2RlKTtcclxuXHRcdH1cclxuXHRcdG5vZGUuZXhwYW5kZWQgPSAhd2FzRXhwYW5kZWQ7XHJcblx0XHRcclxuXHRcdHRoaXMuZmlsdGVyZWROb2Rlcy5zZXQoWy4uLnRoaXMuZmlsdGVyZWROb2RlcygpXSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGNsb3NlT3RoZXJUb3BMZXZlbE5vZGVzKGV4Y2VwdE5vZGU6IE1lbnVOb2RlKSB7XHJcblx0XHRjb25zdCBub2RlcyA9IHRoaXMubWVudU5vZGVzKCk7XHJcblx0XHRub2Rlcy5mb3JFYWNoKG5vZGUgPT4ge1xyXG5cdFx0XHRpZiAobm9kZSAhPT0gZXhjZXB0Tm9kZSkge1xyXG5cdFx0XHRcdG5vZGUuZXhwYW5kZWQgPSBmYWxzZTtcclxuXHRcdFx0XHR0aGlzLmNsb3NlQWxsQ2hpbGROb2Rlcyhub2RlKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGNsb3NlQWxsQ2hpbGROb2Rlcyhub2RlOiBNZW51Tm9kZSkge1xyXG5cdFx0aWYgKG5vZGUuY2hpbGRyZW4pIHtcclxuXHRcdFx0bm9kZS5jaGlsZHJlbi5mb3JFYWNoKGNoaWxkID0+IHtcclxuXHRcdFx0XHRjaGlsZC5leHBhbmRlZCA9IGZhbHNlO1xyXG5cdFx0XHRcdHRoaXMuY2xvc2VBbGxDaGlsZE5vZGVzKGNoaWxkKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHR0cmFja0J5S2V5KGluZGV4OiBudW1iZXIsIG5vZGU6IE1lbnVOb2RlKTogYW55IHtcclxuXHRcdHJldHVybiBub2RlLmtleTtcclxuXHR9XHJcblxyXG5cdG9uTWVudUl0ZW1DbGljaygpIHtcclxuXHRcdGlmICh0aGlzLmlzTW9iaWxlKCkpIHtcclxuXHRcdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLmNsb3NlTW9iaWxlTWVudSgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuc2VhcmNoVGVybS5zZXQoJycpO1xyXG5cdFx0dGhpcy5maWx0ZXJlZE5vZGVzLnNldCh0aGlzLm1lbnVOb2RlcygpIHx8IFtdKTtcclxuXHR9XHJcblxyXG5cdG9uQ29sbGFwc2VkSXRlbUNsaWNrKG5vZGU6IE1lbnVOb2RlKSB7XHJcblx0XHRpZiAodGhpcy5pc0NvbGxhcHNlZCkge1xyXG5cdFx0XHR0aGlzLmxheW91dFNlcnZpY2Uub25NZW51VG9nZ2xlKCk7XHJcblx0XHR9XHJcblx0XHR0aGlzLmNsb3NlT3RoZXJUb3BMZXZlbE5vZGVzKG5vZGUpO1xyXG5cdFx0aWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcblx0XHRcdG5vZGUuZXhwYW5kZWQgPSB0cnVlO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5maWx0ZXJlZE5vZGVzLnNldChbLi4udGhpcy5maWx0ZXJlZE5vZGVzKCldKTtcclxuXHRcdGlmIChub2RlLnJvdXRlckxpbmspIHtcclxuXHRcdFx0dGhpcy5vbk1lbnVJdGVtQ2xpY2soKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG9uU2VhcmNoQ2hhbmdlKCk6IHZvaWQge1xyXG5cdFx0Y29uc3QgY3VycmVudFNlYXJjaFRlcm0gPSB0aGlzLnNlYXJjaFRlcm0oKT8udG9Mb3dlckNhc2UoKT8udHJpbSgpO1xyXG5cdFx0aWYgKCFjdXJyZW50U2VhcmNoVGVybSkge1xyXG5cdFx0XHR0aGlzLmZpbHRlcmVkTm9kZXMuc2V0KHRoaXMubWVudU5vZGVzKCkgfHwgW10pO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHR0aGlzLmZpbHRlcmVkTm9kZXMuc2V0KHRoaXMuZmlsdGVyTm9kZXModGhpcy5tZW51Tm9kZXMoKSwgY3VycmVudFNlYXJjaFRlcm0pKTtcclxuXHR9XHJcblxyXG5cdFx0cHJpdmF0ZSBmaWx0ZXJOb2Rlcyhub2RlczogTWVudU5vZGVbXSwgc2VhcmNoVGVybTogc3RyaW5nKTogTWVudU5vZGVbXSB7XHJcblx0XHRjb25zdCBmaWx0ZXJlZDogTWVudU5vZGVbXSA9IFtdO1xyXG5cdFx0Y29uc3QgY3VycmVudExhbmcgPSB0aGlzLnRyYW5zbG9jb1NlcnZpY2UuZ2V0QWN0aXZlTGFuZygpO1xyXG5cclxuXHRcdGZvciAoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xyXG5cdFx0XHQvLyBDb252ZXJ0IGxhYmVsIHRvIHN0cmluZyBmb3Igc2VhcmNoIGJhc2VkIG9uIGFjdGl2ZSBsYW5ndWFnZVxyXG5cdFx0XHRjb25zdCBsYWJlbFRleHQgPVxyXG5cdFx0XHRcdHR5cGVvZiBub2RlLmxhYmVsID09PSAnc3RyaW5nJyA/XHJcblx0XHRcdFx0XHRub2RlLmxhYmVsXHJcblx0XHRcdFx0Olx0KG5vZGUubGFiZWwgYXMgYW55KT8uW2N1cnJlbnRMYW5nXSB8fCAobm9kZS5sYWJlbCBhcyBhbnkpPy50ciB8fCAobm9kZS5sYWJlbCBhcyBhbnkpPy5lbiB8fCAnJztcclxuXHJcblx0XHRcdGNvbnN0IG1hdGNoZXMgPSBsYWJlbFRleHQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtKTtcclxuXHRcdFx0bGV0IGZpbHRlcmVkQ2hpbGRyZW46IE1lbnVOb2RlW10gPSBbXTtcclxuXHJcblx0XHRcdGlmIChub2RlLmNoaWxkcmVuKSB7XHJcblx0XHRcdFx0ZmlsdGVyZWRDaGlsZHJlbiA9IHRoaXMuZmlsdGVyTm9kZXMobm9kZS5jaGlsZHJlbiwgc2VhcmNoVGVybSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmIChtYXRjaGVzIHx8IGZpbHRlcmVkQ2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdGZpbHRlcmVkLnB1c2goe1xyXG5cdFx0XHRcdFx0Li4ubm9kZSxcclxuXHRcdFx0XHRcdGNoaWxkcmVuOiBmaWx0ZXJlZENoaWxkcmVuLmxlbmd0aCA+IDAgPyBmaWx0ZXJlZENoaWxkcmVuIDogbm9kZS5jaGlsZHJlbixcclxuXHRcdFx0XHRcdGV4cGFuZGVkOiBmaWx0ZXJlZENoaWxkcmVuLmxlbmd0aCA+IDBcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBmaWx0ZXJlZDtcclxuXHR9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzdGF0aWMtc2lkZWJhclwiIFtjbGFzcy5jb2xsYXBzZWRdPVwiaXNDb2xsYXBzZWRcIj5cclxuXHQ8ZGl2IGNsYXNzPVwic3RhdGljLXNpZGViYXItY29udGVudFwiPlxyXG5cdFx0QGlmICghaXNDb2xsYXBzZWQpIHtcclxuXHRcdFx0PGRpdiBjbGFzcz1cInNlYXJjaC1jb250YWluZXJcIiAqdHJhbnNsb2NvPVwibGV0IHQ7IHJlYWQ6ICcnXCI+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cInNlYXJjaC13cmFwcGVyXCI+XHJcblx0XHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLXNlYXJjaCBzZWFyY2gtaWNvblwiPjwvaT5cclxuXHRcdFx0XHRcdDxpbnB1dFxyXG5cdFx0XHRcdFx0XHR0eXBlPVwidGV4dFwiXHJcblx0XHRcdFx0XHRcdHBJbnB1dFRleHRcclxuXHRcdFx0XHRcdFx0dmFyaWFudD1cImZpbGxlZFwiXHJcblx0XHRcdFx0XHRcdFtwbGFjZWhvbGRlcl09XCJ0KCdzZWFyY2gnKVwiXHJcblx0XHRcdFx0XHRcdFsobmdNb2RlbCldPVwic2VhcmNoVGVybVwiXHJcblx0XHRcdFx0XHRcdChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VhcmNoQ2hhbmdlKClcIlxyXG5cdFx0XHRcdFx0XHRjbGFzcz1cInNlYXJjaC1zdGF0aWMtc2lkZWJhclwiIC8+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8cC1zY3JvbGxQYW5lbCBbc3R5bGVdPVwieyB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICdjYWxjKDEwMHZoIC0gMTMwcHgpJyB9XCI+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cInRyZWUtY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRAZm9yIChub2RlIG9mIGZpbHRlcmVkTm9kZXMoKTsgdHJhY2sgdHJhY2tCeUtleSgkaW5kZXgsIG5vZGUpKSB7XHJcblx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cmVlTm9kZVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogbm9kZSwgbGV2ZWw6IDAgfVwiPjwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L3Atc2Nyb2xsUGFuZWw+XHJcblx0XHR9IEBlbHNlIHtcclxuXHRcdFx0PCEtLSBDb2xsYXBzZWQgbW9kZSAtIG9ubHkgaWNvbnMgLS0+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJjb2xsYXBzZWQtY29udGFpbmVyXCI+XHJcblx0XHRcdFx0QGZvciAobm9kZSBvZiB0b3BMZXZlbE5vZGVzOyB0cmFjayB0cmFja0J5S2V5KCRpbmRleCwgbm9kZSkpIHtcclxuXHRcdFx0XHRcdEBpZiAobm9kZS5yb3V0ZXJMaW5rICYmICghbm9kZS5jaGlsZHJlbiB8fCBub2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkpIHtcclxuXHRcdFx0XHRcdFx0PGEgXHJcblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJjb2xsYXBzZWQtaXRlbVwiIFxyXG5cdFx0XHRcdFx0XHRcdFtwVG9vbHRpcF09XCJnZXRMb2NhbFRleHQobm9kZS5sYWJlbClcIiBcclxuXHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJyaWdodFwiXHJcblx0XHRcdFx0XHRcdFx0W3JvdXRlckxpbmtdPVwibm9kZS5yb3V0ZXJMaW5rXCJcclxuXHRcdFx0XHRcdFx0XHRbY2xhc3MuYWN0aXZlXT1cImlzVG9wTGV2ZWxOb2RlQWN0aXZlKG5vZGUpXCJcclxuXHRcdFx0XHRcdFx0XHQoY2xpY2spPVwib25Db2xsYXBzZWRJdGVtQ2xpY2sobm9kZSlcIj5cclxuXHRcdFx0XHRcdFx0XHRAaWYgKG5vZGUuaWNvbikge1xyXG5cdFx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJjb2xsYXBzZWQtaWNvblwiIFtjbGFzc109XCJub2RlLmljb25cIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0fSBAZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImNvbGxhcHNlZC1pY29uIHBpIHBpLWNpcmNsZVwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdDwvYT5cclxuXHRcdFx0XHRcdH0gQGVsc2Uge1xyXG5cdFx0XHRcdFx0XHQ8ZGl2IFxyXG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwiY29sbGFwc2VkLWl0ZW1cIiBcclxuXHRcdFx0XHRcdFx0XHRbcFRvb2x0aXBdPVwiZ2V0TG9jYWxUZXh0KG5vZGUubGFiZWwpXCIgXHJcblx0XHRcdFx0XHRcdFx0dG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIlxyXG5cdFx0XHRcdFx0XHRcdFtjbGFzcy5hY3RpdmVdPVwiaXNUb3BMZXZlbE5vZGVBY3RpdmUobm9kZSlcIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJvbkNvbGxhcHNlZEl0ZW1DbGljayhub2RlKVwiPlxyXG5cdFx0XHRcdFx0XHRcdEBpZiAobm9kZS5pY29uKSB7XHJcblx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImNvbGxhcHNlZC1pY29uXCIgW2NsYXNzXT1cIm5vZGUuaWNvblwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHR9IEBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwiY29sbGFwc2VkLWljb24gcGkgcGktY2lyY2xlXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdH1cclxuXHQ8L2Rpdj5cclxuXHJcblx0PCEtLSBSZWN1cnNpdmUgVHJlZSBOb2RlIFRlbXBsYXRlIC0tPlxyXG5cdDxuZy10ZW1wbGF0ZSAjdHJlZU5vZGVUZW1wbGF0ZSBsZXQtbm9kZSBsZXQtbGV2ZWw9XCJsZXZlbFwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cInRyZWUtbm9kZVwiIFtuZ0NsYXNzXT1cIidsZXZlbC0nICsgbGV2ZWxcIj5cclxuXHRcdFx0QGlmIChub2RlLnJvdXRlckxpbmspIHtcclxuXHRcdFx0XHQ8YVxyXG5cdFx0XHRcdFx0W3JvdXRlckxpbmtdPVwibm9kZS5yb3V0ZXJMaW5rXCJcclxuXHRcdFx0XHRcdGNsYXNzPVwibm9kZS1pdGVtXCJcclxuXHRcdFx0XHRcdFtjbGFzcy5oYXMtY2hpbGRyZW5dPVwibm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDBcIlxyXG5cdFx0XHRcdFx0W2NsYXNzLmlzLXBhZ2VdPVwibm9kZS5yb3V0ZXJMaW5rXCJcclxuXHRcdFx0XHRcdFtjbGFzcy5hY3RpdmVdPVwiaXNDaGlsZE5vZGVBY3RpdmUobm9kZSlcIlxyXG5cdFx0XHRcdFx0W3BUb29sdGlwXT1cIiFpc01vYmlsZSgpICYmIGlzVGV4dFRydW5jYXRlZChub2RlLmxhYmVsLCBhY3RpdmVMYW5nKCksIGxldmVsKSA/IGdldExvY2FsVGV4dChub2RlLmxhYmVsKSA6ICcnXCJcclxuXHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCJcclxuXHRcdFx0XHRcdChjbGljayk9XCJvbk1lbnVJdGVtQ2xpY2soKVwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm5vZGUtY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHRAaWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRvZ2dsZS1idG5cIlxyXG5cdFx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgdG9nZ2xlTm9kZShub2RlLCBsZXZlbClcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwicGlcIiBbY2xhc3MucGktY2hldnJvbi1yaWdodF09XCIhbm9kZS5leHBhbmRlZFwiIFtjbGFzcy5waS1jaGV2cm9uLWRvd25dPVwibm9kZS5leHBhbmRlZFwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0QGlmIChub2RlLmljb24pIHtcclxuXHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cIm5vZGUtaWNvblwiIFtjbGFzc109XCJub2RlLmljb25cIj48L2k+XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJub2RlLWxhYmVsXCI+e3sgZ2V0TG9jYWxUZXh0KG5vZGUubGFiZWwpIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9hPlxyXG5cdFx0XHR9IEBlbHNlIHtcclxuXHRcdFx0XHQ8ZGl2XHJcblx0XHRcdFx0XHRjbGFzcz1cIm5vZGUtaXRlbVwiXHJcblx0XHRcdFx0XHRbY2xhc3MuaGFzLWNoaWxkcmVuXT1cIm5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwXCJcclxuXHRcdFx0XHRcdFtjbGFzcy5pcy1wYWdlXT1cIm5vZGUucm91dGVyTGlua1wiXHJcblx0XHRcdFx0XHRbY2xhc3MuYWN0aXZlXT1cImlzQ2hpbGROb2RlQWN0aXZlKG5vZGUpXCJcclxuXHRcdFx0XHRcdFtwVG9vbHRpcF09XCIhaXNNb2JpbGUoKSAmJiBpc1RleHRUcnVuY2F0ZWQobm9kZS5sYWJlbCwgYWN0aXZlTGFuZygpLCBsZXZlbCkgPyBnZXRMb2NhbFRleHQobm9kZS5sYWJlbCkgOiAnJ1wiXHJcblx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJyaWdodFwiXHJcblx0XHRcdFx0XHQoY2xpY2spPVwidG9nZ2xlTm9kZShub2RlLCBsZXZlbClcIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJub2RlLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdFx0QGlmIChub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0b2dnbGUtYnRuXCJcclxuXHRcdFx0XHRcdFx0XHRcdChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IHRvZ2dsZU5vZGUobm9kZSwgbGV2ZWwpXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cInBpXCIgW2NsYXNzLnBpLWNoZXZyb24tcmlnaHRdPVwiIW5vZGUuZXhwYW5kZWRcIiBbY2xhc3MucGktY2hldnJvbi1kb3duXT1cIm5vZGUuZXhwYW5kZWRcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdEBpZiAobm9kZS5pY29uKSB7XHJcblx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJub2RlLWljb25cIiBbY2xhc3NdPVwibm9kZS5pY29uXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwibm9kZS1sYWJlbFwiPnt7IGdldExvY2FsVGV4dChub2RlLmxhYmVsKSB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQ8IS0tIFJlY3Vyc2l2ZSBDaGlsZHJlbiAtLT5cclxuXHRcdFx0QGlmIChub2RlLmNoaWxkcmVuICYmIG5vZGUuZXhwYW5kZWQpIHtcclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2hpbGRyZW4tY29udGFpbmVyXCIgW2F0dHIuZGF0YS1sZXZlbF09XCJsZXZlbFwiPlxyXG5cdFx0XHRcdFx0QGZvciAoY2hpbGQgb2Ygbm9kZS5jaGlsZHJlbjsgdHJhY2sgdHJhY2tCeUtleSgkaW5kZXgsIGNoaWxkKSkge1xyXG5cdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyXHJcblx0XHRcdFx0XHRcdFx0Km5nVGVtcGxhdGVPdXRsZXQ9XCJ0cmVlTm9kZVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY2hpbGQsIGxldmVsOiBsZXZlbCArIDEgfVwiPjwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHR9XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG48L2Rpdj4gIl19
|