aril 2.0.1 → 2.0.2
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/esm2022/boot/config/apps/src/apps.service.mjs +4 -4
- package/esm2022/boot/config/apps/src/auth.guard.mjs +4 -4
- package/esm2022/boot/config/apps/src/custom-reuse-outlet.component.mjs +4 -4
- package/esm2022/boot/config/apps/src/custom-route-reuse-strategy.class.mjs +4 -4
- package/esm2022/boot/config/apps/src/nav-link-context-menu.service.mjs +4 -4
- package/esm2022/boot/config/apps/src/nav-link.directive.mjs +4 -4
- package/esm2022/boot/config/apps/src/nav.service.mjs +4 -4
- package/esm2022/boot/config/apps/src/route-close.service.mjs +4 -4
- package/esm2022/boot/config/apps/src/showdowDOMWrapper.mjs +4 -4
- package/esm2022/boot/config/apps/src/tab-aware-url-serializer.mjs +4 -4
- package/esm2022/boot/host/src/app.component.mjs +4 -4
- package/esm2022/boot/mfe/src/app.component.mjs +11 -6
- package/esm2022/boot/mfe/src/isolated-location-strategy.mjs +4 -4
- package/esm2022/boot/pages/src/forbidden.component.mjs +4 -4
- package/esm2022/boot/pages/src/notFound.component.mjs +4 -4
- package/esm2022/http/src/httpBackend.mjs +4 -4
- package/esm2022/i18n/src/i18n.module.mjs +5 -5
- package/esm2022/i18n/src/loader.mjs +4 -4
- package/esm2022/selection/src/selection-group.service.mjs +4 -4
- package/esm2022/theme/layout/app/expandableMenu/expandable-menu.component.mjs +4 -4
- package/esm2022/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.mjs +4 -4
- package/esm2022/theme/layout/app/favorite-pages/favorite-pages.service.mjs +4 -4
- package/esm2022/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.mjs +4 -4
- package/esm2022/theme/layout/app/general-search/general-search.component.mjs +4 -4
- package/esm2022/theme/layout/app/history/history-sidebar.component.mjs +4 -4
- package/esm2022/theme/layout/app/history/history.service.mjs +4 -4
- package/esm2022/theme/layout/app/layout/app.layout.component.mjs +4 -4
- package/esm2022/theme/layout/app/layout/mfe.layout.component.mjs +4 -4
- package/esm2022/theme/layout/app/notifications/notifications-sidebar.component.mjs +4 -4
- package/esm2022/theme/layout/app/profileSidebar/app.profilesidebar.component.mjs +4 -4
- package/esm2022/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.mjs +4 -4
- package/esm2022/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.mjs +4 -4
- package/esm2022/theme/layout/app/profileSidebar/profile.service.mjs +4 -4
- package/esm2022/theme/layout/app/site-map/site-map-sidebar.component.mjs +4 -4
- package/esm2022/theme/layout/app/static-sidebar/static-sidebar.component.mjs +4 -4
- package/esm2022/theme/layout/app/topbar/app.topbar.component.mjs +4 -4
- package/esm2022/theme/layout/service/app.layout.service.mjs +4 -4
- package/esm2022/theme/layout/service/app.menu.service.mjs +4 -4
- package/esm2022/theme/layout/service/breadcrumb-publisher.service.mjs +4 -4
- package/esm2022/theme/layout/service/breadcrumb.service.mjs +4 -4
- package/esm2022/theme/layout/service/notifications.service.mjs +4 -4
- package/esm2022/theme/layout/service/search.service.mjs +4 -4
- package/esm2022/theme/layout/service/tab-session.service.mjs +4 -4
- package/esm2022/ui/autoComplete/src/auto-complete.component.mjs +4 -4
- package/esm2022/ui/badge/src/badge.component.mjs +4 -4
- package/esm2022/ui/button/src/button.component.mjs +4 -4
- package/esm2022/ui/calendar/src/calendar.component.mjs +4 -4
- package/esm2022/ui/charts/src/highCharts/gauge/solid-gauge.component.mjs +4 -4
- package/esm2022/ui/charts/src/highCharts/line/line-chart-datetime-axis.component.mjs +4 -4
- package/esm2022/ui/checkbox/src/check-box.component.mjs +4 -4
- package/esm2022/ui/checkbox/src/tri-state-checkbox.component.mjs +4 -4
- package/esm2022/ui/chip/src/chip.component.mjs +4 -4
- package/esm2022/ui/collapse-reorder-list/src/collapse-reorder-list.component.mjs +4 -4
- package/esm2022/ui/dxField/src/dx-field.component.mjs +4 -4
- package/esm2022/ui/editor/src/aril-editor.component.mjs +4 -4
- package/esm2022/ui/field/src/field.component.mjs +4 -4
- package/esm2022/ui/fileUpload/src/file-upload.component.mjs +4 -4
- package/esm2022/ui/form/index.mjs +5 -5
- package/esm2022/ui/form/src/form-submit-button.component.mjs +4 -4
- package/esm2022/ui/form/src/form.component.mjs +4 -4
- package/esm2022/ui/img-viewer/src/img-viewer.component.mjs +4 -4
- package/esm2022/ui/json-diff-comparison/src/json-diff.component.mjs +4 -4
- package/esm2022/ui/lib/src/form/form-error-message.component.mjs +4 -4
- package/esm2022/ui/lib/src/form/form-error-message.directive.mjs +4 -4
- package/esm2022/ui/lib/src/grid/enum-color-picker.pipe.mjs +4 -4
- package/esm2022/ui/lib/src/grid/flex-grid.directive.mjs +4 -4
- package/esm2022/ui/lib/src/input/dx-input-error-message.pipe.mjs +4 -4
- package/esm2022/ui/lib/src/input/input-error-message.pipe.mjs +4 -4
- package/esm2022/ui/lib/src/input/value-accessor.directive.mjs +4 -4
- package/esm2022/ui/loader/src/loader.component.mjs +4 -4
- package/esm2022/ui/mask/src/mask.component.mjs +4 -4
- package/esm2022/ui/multiSelect/src/multi-select.component.mjs +4 -4
- package/esm2022/ui/number/src/number.component.mjs +4 -4
- package/esm2022/ui/operation-types-dialog/src/operation-types-dialog.component.mjs +4 -4
- package/esm2022/ui/panel/src/panel.component.mjs +4 -4
- package/esm2022/ui/password/src/password.component.mjs +4 -4
- package/esm2022/ui/pdf-viewer/src/pdf-viewer.component.mjs +4 -4
- package/esm2022/ui/progressbar/src/progressbar.component.mjs +4 -4
- package/esm2022/ui/radioButton/src/radio-button.component.mjs +4 -4
- package/esm2022/ui/relativeDateSelector/src/relative-date-selector.component.mjs +4 -4
- package/esm2022/ui/selectBox/src/select-box.component.mjs +4 -4
- package/esm2022/ui/switch/src/switch.component.mjs +4 -4
- package/esm2022/ui/table/index.mjs +5 -5
- package/esm2022/ui/table/src/export-overlay-panel.component.mjs +4 -4
- package/esm2022/ui/table/src/table-column.component.mjs +4 -4
- package/esm2022/ui/table/src/table.component.mjs +4 -4
- package/esm2022/ui/table-expand/index.mjs +5 -5
- package/esm2022/ui/table-expand/src/table-column.component.mjs +4 -4
- package/esm2022/ui/table-expand/src/table-expand-area.component.mjs +4 -4
- package/esm2022/ui/table-expand/src/table.component.mjs +4 -4
- package/esm2022/ui/tag/src/tag.component.mjs +4 -4
- package/esm2022/ui/tagBox/src/tag-box.component.mjs +4 -4
- package/esm2022/ui/text/src/text.component.mjs +4 -4
- package/esm2022/ui/textArea/src/text-area.component.mjs +4 -4
- package/esm2022/ui/toggle-button/src/toggle-button.component.mjs +4 -4
- package/esm2022/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.mjs +4 -4
- package/esm2022/ui/translate-input/src/aril-translate-input.component.mjs +4 -4
- package/esm2022/ui/tree/src/tree.component.mjs +4 -4
- package/esm2022/ui/treeSelect/src/treeSelect.component.mjs +4 -4
- package/esm2022/ui/value/src/value.component.mjs +4 -4
- package/esm2022/ui-business/assetPicker/src/asset-picker.component.mjs +4 -4
- package/esm2022/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.mjs +4 -4
- package/esm2022/ui-business/enumPicker/src/enum-picker.component.mjs +4 -4
- package/esm2022/ui-business/image-viewer/src/aril-image-viewer.component.mjs +4 -4
- package/esm2022/ui-business/multiple-ref-value/src/multiple-ref-value.component.mjs +4 -4
- package/esm2022/ui-business/notification-templates-dialog/src/notification-templates-dialog.component.mjs +4 -4
- package/esm2022/ui-business/pdf-preview-modal/src/pdf-preview-modal.component.mjs +4 -4
- package/esm2022/ui-business/ref-value/src/ref-value.component.mjs +4 -4
- package/esm2022/ui-business/rolePicker/src/role-picker.component.mjs +4 -4
- package/esm2022/ui-business/trace-drawer/src/app-log.service.mjs +4 -4
- package/esm2022/ui-business/trace-drawer/src/trace-drawer.component.mjs +4 -4
- package/esm2022/ui-business/trace-drawer/src/trace-log.service.mjs +4 -4
- package/esm2022/ui-business/trace-id/src/trace-id.component.mjs +4 -4
- package/esm2022/ui-business/userPicker/src/user-picker.component.mjs +4 -4
- package/esm2022/util/activity/src/activity.service.mjs +4 -4
- package/esm2022/util/block/src/block.mjs +4 -4
- package/esm2022/util/directives/src/detail-page-customization/detail-page-customization.directive.mjs +4 -4
- package/esm2022/util/directives/src/dialog-component/plugin-dialog.component.mjs +4 -4
- package/esm2022/util/directives/src/dialog-service/plugin-dialog.service.mjs +4 -4
- package/esm2022/util/lib/src/module-router.mjs +4 -4
- package/esm2022/util/pipes/src/distance-to-now.pipe.mjs +4 -4
- package/esm2022/util/pipes/src/get-column-by-field.pipe.mjs +4 -4
- package/esm2022/util/pipes/src/parse.pipe.mjs +4 -4
- package/esm2022/util/pipes/src/round-number.pipe.mjs +4 -4
- package/esm2022/util/pipes/src/safe.pipe.mjs +4 -4
- package/esm2022/util/pipes/src/translate-json/translate-json.pipe.mjs +4 -4
- package/esm2022/util/pub-sub/src/pub-sub.service.mjs +4 -4
- package/esm2022/util/sync-active-tab-route/src/sync-active-tab-route.directive.mjs +4 -4
- package/fesm2022/{aril-app.component-MjG_tPEe.mjs → aril-app.component-Bl9p6jXU.mjs} +11 -6
- package/fesm2022/aril-app.component-Bl9p6jXU.mjs.map +1 -0
- package/fesm2022/aril-boot-base.mjs +1 -1
- package/fesm2022/aril-boot-base.mjs.map +1 -1
- package/fesm2022/aril-boot-bridge.mjs.map +1 -1
- package/fesm2022/aril-boot-config-api.mjs.map +1 -1
- package/fesm2022/aril-boot-config-apps.mjs +31 -31
- package/fesm2022/aril-boot-config-apps.mjs.map +1 -1
- package/fesm2022/aril-boot-config-plugins.mjs +1 -1
- package/fesm2022/aril-boot-config-plugins.mjs.map +1 -1
- package/fesm2022/aril-boot-config-translate.mjs.map +1 -1
- package/fesm2022/aril-boot-host.mjs +4 -4
- package/fesm2022/aril-boot-host.mjs.map +1 -1
- package/fesm2022/{aril-boot-mfe-app.component-DtspQ3J8.mjs → aril-boot-mfe-app.component-DovYRbZO.mjs} +12 -7
- package/fesm2022/aril-boot-mfe-app.component-DovYRbZO.mjs.map +1 -0
- package/fesm2022/{aril-boot-mfe-aril-boot-mfe-lovoFcgw.mjs → aril-boot-mfe-aril-boot-mfe-D9YM2exR.mjs} +7 -7
- package/fesm2022/{aril-boot-mfe-aril-boot-mfe-lovoFcgw.mjs.map → aril-boot-mfe-aril-boot-mfe-D9YM2exR.mjs.map} +1 -1
- package/fesm2022/aril-boot-mfe.mjs +1 -1
- package/fesm2022/aril-boot-pages.mjs +6 -6
- package/fesm2022/aril-boot-pages.mjs.map +1 -1
- package/fesm2022/aril-http.mjs +3 -3
- package/fesm2022/aril-http.mjs.map +1 -1
- package/fesm2022/aril-i18n.mjs +7 -7
- package/fesm2022/aril-i18n.mjs.map +1 -1
- package/fesm2022/aril-keycloak.mjs.map +1 -1
- package/fesm2022/aril-provider.mjs +1 -1
- package/fesm2022/aril-provider.mjs.map +1 -1
- package/fesm2022/aril-selection.mjs +3 -3
- package/fesm2022/aril-selection.mjs.map +1 -1
- package/fesm2022/aril-theme-layout.mjs +74 -74
- package/fesm2022/aril-theme-layout.mjs.map +1 -1
- package/fesm2022/aril-ui-autoComplete.mjs +6 -6
- package/fesm2022/aril-ui-autoComplete.mjs.map +1 -1
- package/fesm2022/aril-ui-badge.mjs +4 -4
- package/fesm2022/aril-ui-badge.mjs.map +1 -1
- package/fesm2022/aril-ui-business-assetPicker.mjs +5 -5
- package/fesm2022/aril-ui-business-assetPicker.mjs.map +1 -1
- package/fesm2022/aril-ui-business-detailed-overlay-panel.mjs +5 -5
- package/fesm2022/aril-ui-business-detailed-overlay-panel.mjs.map +1 -1
- package/fesm2022/aril-ui-business-enumPicker.mjs +5 -5
- package/fesm2022/aril-ui-business-enumPicker.mjs.map +1 -1
- package/fesm2022/aril-ui-business-image-viewer.mjs +3 -3
- package/fesm2022/aril-ui-business-image-viewer.mjs.map +1 -1
- package/fesm2022/aril-ui-business-multiple-ref-value.mjs +4 -4
- package/fesm2022/aril-ui-business-multiple-ref-value.mjs.map +1 -1
- package/fesm2022/aril-ui-business-notification-templates-dialog.mjs +3 -3
- package/fesm2022/aril-ui-business-notification-templates-dialog.mjs.map +1 -1
- package/fesm2022/aril-ui-business-pdf-preview-modal.mjs +3 -3
- package/fesm2022/aril-ui-business-pdf-preview-modal.mjs.map +1 -1
- package/fesm2022/aril-ui-business-ref-value.mjs +4 -4
- package/fesm2022/aril-ui-business-ref-value.mjs.map +1 -1
- package/fesm2022/aril-ui-business-rolePicker.mjs +4 -4
- package/fesm2022/aril-ui-business-rolePicker.mjs.map +1 -1
- package/fesm2022/aril-ui-business-trace-drawer.mjs +10 -10
- package/fesm2022/aril-ui-business-trace-drawer.mjs.map +1 -1
- package/fesm2022/aril-ui-business-trace-id.mjs +4 -4
- package/fesm2022/aril-ui-business-trace-id.mjs.map +1 -1
- package/fesm2022/aril-ui-business-userPicker.mjs +3 -3
- package/fesm2022/aril-ui-business-userPicker.mjs.map +1 -1
- package/fesm2022/aril-ui-button.mjs +4 -4
- package/fesm2022/aril-ui-button.mjs.map +1 -1
- package/fesm2022/aril-ui-calendar.mjs +3 -3
- package/fesm2022/aril-ui-calendar.mjs.map +1 -1
- package/fesm2022/aril-ui-charts.mjs +6 -6
- package/fesm2022/aril-ui-charts.mjs.map +1 -1
- package/fesm2022/aril-ui-checkbox.mjs +6 -6
- package/fesm2022/aril-ui-checkbox.mjs.map +1 -1
- package/fesm2022/aril-ui-chip.mjs +4 -4
- package/fesm2022/aril-ui-chip.mjs.map +1 -1
- package/fesm2022/aril-ui-collapse-reorder-list.mjs +4 -4
- package/fesm2022/aril-ui-collapse-reorder-list.mjs.map +1 -1
- package/fesm2022/aril-ui-dxField.mjs +4 -4
- package/fesm2022/aril-ui-dxField.mjs.map +1 -1
- package/fesm2022/aril-ui-editor.mjs +4 -4
- package/fesm2022/aril-ui-editor.mjs.map +1 -1
- package/fesm2022/aril-ui-field.mjs +4 -4
- package/fesm2022/aril-ui-field.mjs.map +1 -1
- package/fesm2022/aril-ui-fileUpload.mjs +4 -4
- package/fesm2022/aril-ui-fileUpload.mjs.map +1 -1
- package/fesm2022/aril-ui-form.mjs +11 -11
- package/fesm2022/aril-ui-form.mjs.map +1 -1
- package/fesm2022/aril-ui-img-viewer.mjs +3 -3
- package/fesm2022/aril-ui-img-viewer.mjs.map +1 -1
- package/fesm2022/aril-ui-json-diff-comparison.mjs +4 -4
- package/fesm2022/aril-ui-json-diff-comparison.mjs.map +1 -1
- package/fesm2022/aril-ui-lib.mjs +22 -22
- package/fesm2022/aril-ui-lib.mjs.map +1 -1
- package/fesm2022/aril-ui-loader.mjs +3 -3
- package/fesm2022/aril-ui-loader.mjs.map +1 -1
- package/fesm2022/aril-ui-mask.mjs +3 -3
- package/fesm2022/aril-ui-mask.mjs.map +1 -1
- package/fesm2022/aril-ui-multiSelect.mjs +3 -3
- package/fesm2022/aril-ui-multiSelect.mjs.map +1 -1
- package/fesm2022/aril-ui-number.mjs +3 -3
- package/fesm2022/aril-ui-number.mjs.map +1 -1
- package/fesm2022/aril-ui-operation-types-dialog.mjs +3 -3
- package/fesm2022/aril-ui-operation-types-dialog.mjs.map +1 -1
- package/fesm2022/aril-ui-panel.mjs +4 -4
- package/fesm2022/aril-ui-panel.mjs.map +1 -1
- package/fesm2022/aril-ui-password.mjs +3 -3
- package/fesm2022/aril-ui-password.mjs.map +1 -1
- package/fesm2022/aril-ui-pdf-viewer.mjs +3 -3
- package/fesm2022/aril-ui-pdf-viewer.mjs.map +1 -1
- package/fesm2022/aril-ui-progressbar.mjs +3 -3
- package/fesm2022/aril-ui-progressbar.mjs.map +1 -1
- package/fesm2022/aril-ui-radioButton.mjs +3 -3
- package/fesm2022/aril-ui-radioButton.mjs.map +1 -1
- package/fesm2022/aril-ui-relativeDateSelector.mjs +4 -4
- package/fesm2022/aril-ui-relativeDateSelector.mjs.map +1 -1
- package/fesm2022/aril-ui-selectBox.mjs +5 -5
- package/fesm2022/aril-ui-selectBox.mjs.map +1 -1
- package/fesm2022/aril-ui-switch.mjs +3 -3
- package/fesm2022/aril-ui-switch.mjs.map +1 -1
- package/fesm2022/aril-ui-table-expand.mjs +14 -14
- package/fesm2022/aril-ui-table-expand.mjs.map +1 -1
- package/fesm2022/aril-ui-table.mjs +15 -15
- package/fesm2022/aril-ui-table.mjs.map +1 -1
- package/fesm2022/aril-ui-tag.mjs +3 -3
- package/fesm2022/aril-ui-tag.mjs.map +1 -1
- package/fesm2022/aril-ui-tagBox.mjs +5 -5
- package/fesm2022/aril-ui-tagBox.mjs.map +1 -1
- package/fesm2022/aril-ui-text.mjs +3 -3
- package/fesm2022/aril-ui-text.mjs.map +1 -1
- package/fesm2022/aril-ui-textArea.mjs +3 -3
- package/fesm2022/aril-ui-textArea.mjs.map +1 -1
- package/fesm2022/aril-ui-toggle-button.mjs +4 -4
- package/fesm2022/aril-ui-toggle-button.mjs.map +1 -1
- package/fesm2022/aril-ui-translate-input.mjs +6 -6
- package/fesm2022/aril-ui-translate-input.mjs.map +1 -1
- package/fesm2022/aril-ui-tree.mjs +4 -4
- package/fesm2022/aril-ui-tree.mjs.map +1 -1
- package/fesm2022/aril-ui-treeSelect.mjs +4 -4
- package/fesm2022/aril-ui-treeSelect.mjs.map +1 -1
- package/fesm2022/aril-ui-value.mjs +5 -5
- package/fesm2022/aril-ui-value.mjs.map +1 -1
- package/fesm2022/aril-util-activity.mjs +3 -3
- package/fesm2022/aril-util-activity.mjs.map +1 -1
- package/fesm2022/aril-util-block.mjs +3 -3
- package/fesm2022/aril-util-block.mjs.map +1 -1
- package/fesm2022/aril-util-directives.mjs +10 -10
- package/fesm2022/aril-util-directives.mjs.map +1 -1
- package/fesm2022/aril-util-lib.mjs +3 -3
- package/fesm2022/aril-util-lib.mjs.map +1 -1
- package/fesm2022/aril-util-pipes.mjs +18 -18
- package/fesm2022/aril-util-pipes.mjs.map +1 -1
- package/fesm2022/aril-util-primitive-extensions.mjs.map +1 -1
- package/fesm2022/aril-util-pub-sub.mjs +3 -3
- package/fesm2022/aril-util-pub-sub.mjs.map +1 -1
- package/fesm2022/aril-util-sync-active-tab-route.mjs +4 -4
- package/fesm2022/aril-util-sync-active-tab-route.mjs.map +1 -1
- package/fesm2022/aril.mjs +9 -9
- package/fesm2022/aril.mjs.map +1 -1
- package/package.json +88 -88
- package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.d.ts +16 -0
- package/theme/layout/app/history/history-sidebar.component.d.ts +16 -0
- package/theme/layout/app/notifications/notifications-sidebar.component.d.ts +16 -0
- package/theme/layout/app/site-map/site-map-sidebar.component.d.ts +16 -0
- package/ui/autoComplete/src/auto-complete.component.d.ts +8 -8
- package/ui/badge/src/badge.component.d.ts +9 -9
- package/ui/button/src/button.component.d.ts +12 -12
- package/ui/calendar/src/calendar.component.d.ts +22 -22
- package/ui/charts/src/highCharts/gauge/solid-gauge.component.d.ts +3 -3
- package/ui/charts/src/highCharts/line/line-chart-datetime-axis.component.d.ts +5 -5
- package/ui/checkbox/src/check-box.component.d.ts +3 -3
- package/ui/checkbox/src/tri-state-checkbox.component.d.ts +2 -2
- package/ui/chip/src/chip.component.d.ts +7 -7
- package/ui/collapse-reorder-list/src/collapse-reorder-list.component.d.ts +4 -4
- package/ui/dxField/src/dx-field.component.d.ts +5 -5
- package/ui/editor/src/aril-editor.component.d.ts +3 -3
- package/ui/field/src/field.component.d.ts +9 -9
- package/ui/fileUpload/src/file-upload.component.d.ts +14 -14
- package/ui/form/src/form-submit-button.component.d.ts +1 -1
- package/ui/form/src/form.component.d.ts +1 -1
- package/ui/img-viewer/src/img-viewer.component.d.ts +1 -1
- package/ui/lib/src/form/form-error-message.directive.d.ts +1 -1
- package/ui/mask/src/mask.component.d.ts +6 -6
- package/ui/multiSelect/src/multi-select.component.d.ts +13 -13
- package/ui/number/src/number.component.d.ts +15 -15
- package/ui/panel/src/panel.component.d.ts +6 -6
- package/ui/password/src/password.component.d.ts +4 -4
- package/ui/pdf-viewer/src/pdf-viewer.component.d.ts +12 -12
- package/ui/progressbar/src/progressbar.component.d.ts +3 -3
- package/ui/radioButton/src/radio-button.component.d.ts +3 -3
- package/ui/selectBox/src/select-box.component.d.ts +9 -9
- package/ui/switch/src/switch.component.d.ts +1 -1
- package/ui/table/src/export-overlay-panel.component.d.ts +2 -2
- package/ui/table/src/table-column.component.d.ts +11 -11
- package/ui/table/src/table.component.d.ts +35 -35
- package/ui/table-expand/src/table-column.component.d.ts +6 -6
- package/ui/table-expand/src/table.component.d.ts +20 -20
- package/ui/tag/src/tag.component.d.ts +4 -6
- package/ui/tagBox/src/tag-box.component.d.ts +7 -7
- package/ui/text/src/text.component.d.ts +5 -5
- package/ui/textArea/src/text-area.component.d.ts +5 -5
- package/ui/toggle-button/src/toggle-button.component.d.ts +1 -1
- package/ui/translate-input/src/aril-translate-input.component.d.ts +2 -2
- package/ui/tree/src/tree.component.d.ts +8 -8
- package/ui/treeSelect/src/treeSelect.component.d.ts +12 -12
- package/ui/value/src/value.component.d.ts +15 -15
- package/ui-business/assetPicker/src/asset-picker.component.d.ts +11 -11
- package/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.d.ts +3 -6
- package/ui-business/enumPicker/src/enum-picker.component.d.ts +23 -23
- package/ui-business/image-viewer/src/aril-image-viewer.component.d.ts +8 -8
- package/ui-business/multiple-ref-value/src/multiple-ref-value.component.d.ts +2 -5
- package/ui-business/ref-value/src/ref-value.component.d.ts +5 -5
- package/ui-business/rolePicker/src/role-picker.component.d.ts +6 -6
- package/ui-business/trace-drawer/src/trace-drawer.component.d.ts +8 -8
- package/ui-business/trace-id/src/trace-id.component.d.ts +6 -6
- package/ui-business/userPicker/src/user-picker.component.d.ts +3 -3
- package/util/block/src/block.d.ts +2 -2
- package/util/lib/src/types.d.ts +16 -0
- package/fesm2022/aril-app.component-MjG_tPEe.mjs.map +0 -1
- package/fesm2022/aril-boot-mfe-app.component-DtspQ3J8.mjs.map +0 -1
|
@@ -27,14 +27,14 @@ export class TranslateJsonPipe {
|
|
|
27
27
|
const currentLang = this.translocoService.getActiveLang();
|
|
28
28
|
return languageObj[currentLang] || '';
|
|
29
29
|
}
|
|
30
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
31
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.
|
|
30
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TranslateJsonPipe, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
31
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: TranslateJsonPipe, isStandalone: true, name: "translateJson" }); }
|
|
32
32
|
}
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TranslateJsonPipe, decorators: [{
|
|
34
34
|
type: Pipe,
|
|
35
35
|
args: [{
|
|
36
36
|
name: 'translateJson',
|
|
37
37
|
standalone: true
|
|
38
38
|
}]
|
|
39
39
|
}], ctorParameters: () => [{ type: i1.TranslocoService }] });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLWpzb24ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdXRpbC9waXBlcy9zcmMvdHJhbnNsYXRlLWpzb24vdHJhbnNsYXRlLWpzb24ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7O0FBT3BELE1BQU0sT0FBTyxpQkFBaUI7SUFDN0IsWUFBcUIsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFBRyxDQUFDO0lBRTNELFNBQVMsQ0FBQyxLQUFnQztRQUN6QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWixPQUFPLEVBQUUsQ0FBQztRQUNYLENBQUM7UUFFRCxJQUFJLFdBQWdCLENBQUM7UUFFckIsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMvQixXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLENBQUM7YUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQztnQkFDSixXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDaEIsT0FBTyxLQUFLLENBQUM7WUFDZCxDQUFDO1FBQ0YsQ0FBQzthQUFNLENBQUM7WUFDUCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QixDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzFELE9BQU8sV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QyxDQUFDOytHQXhCVyxpQkFBaUI7NkdBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFKN0IsSUFBSTttQkFBQztvQkFDTCxJQUFJLEVBQUUsZUFBZTtvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nO1xyXG5cclxuQFBpcGUoe1xyXG5cdG5hbWU6ICd0cmFuc2xhdGVKc29uJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVKc29uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cdGNvbnN0cnVjdG9yKHJlYWRvbmx5IHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2UpIHt9XHJcblxyXG5cdHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XHJcblx0XHRpZiAoIXZhbHVlKSB7XHJcblx0XHRcdHJldHVybiAnJztcclxuXHRcdH1cclxuXHJcblx0XHRsZXQgbGFuZ3VhZ2VPYmo6IGFueTtcclxuXHJcblx0XHRpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xyXG5cdFx0XHRsYW5ndWFnZU9iaiA9IHZhbHVlO1xyXG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcblx0XHRcdHRyeSB7XHJcblx0XHRcdFx0bGFuZ3VhZ2VPYmogPSBKU09OLnBhcnNlKHZhbHVlKTtcclxuXHRcdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0XHRyZXR1cm4gdmFsdWU7XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHJldHVybiBTdHJpbmcodmFsdWUpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGN1cnJlbnRMYW5nID0gdGhpcy50cmFuc2xvY29TZXJ2aWNlLmdldEFjdGl2ZUxhbmcoKTtcclxuXHRcdHJldHVybiBsYW5ndWFnZU9ialtjdXJyZW50TGFuZ10gfHwgJyc7XHJcblx0fVxyXG59Il19
|
|
@@ -23,13 +23,13 @@ export class PubSubService {
|
|
|
23
23
|
unSubscribe(eventName, handler) {
|
|
24
24
|
removeEventListener(eventName, handler);
|
|
25
25
|
}
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
27
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PubSubService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
27
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PubSubService, providedIn: 'root' }); }
|
|
28
28
|
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PubSubService, decorators: [{
|
|
30
30
|
type: Injectable,
|
|
31
31
|
args: [{
|
|
32
32
|
providedIn: 'root'
|
|
33
33
|
}]
|
|
34
34
|
}] });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHViLXN1Yi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91dGlsL3B1Yi1zdWIvc3JjL3B1Yi1zdWIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFVM0MsTUFBTSxZQUFZLEdBQUc7SUFDcEIsZUFBZSxFQUFFLGlCQUFpQjtJQUNsQyxlQUFlLEVBQUUsaUJBQWlCO0lBQ2xDLGlCQUFpQixFQUFFLG1CQUFtQjtDQUN0QyxDQUFDO0FBS0YsTUFBTSxPQUFPLGFBQWE7SUFDekIsT0FBTyxDQUFDLENBQWM7UUFDckIsYUFBYSxDQUFDLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsU0FBUyxDQUFDLFNBQW9DLEVBQUUsUUFBNkI7UUFDNUUsa0dBQWtHO1FBQ2xHLDhGQUE4RjtRQUM5RiwwRkFBMEY7UUFDMUYsTUFBTSxPQUFPLEdBQWtCLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDN0MsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUM7UUFDRixnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDckMsT0FBTyxPQUFPLENBQUM7SUFDaEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxTQUFvQyxFQUFFLE9BQXNCO1FBQ3ZFLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN6QyxDQUFDOytHQWxCVyxhQUFhO21IQUFiLGFBQWEsY0FGYixNQUFNOzs0RkFFTixhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxudHlwZSBDdXN0b21FdmVudCA9IHtcclxuXHRuYW1lOiBrZXlvZiB0eXBlb2YgUHViU3ViRXZlbnRzO1xyXG5cdGRhdGE6IHtcclxuXHRcdHBhdGg6IHN0cmluZztcclxuXHRcdGN1c3RvbT86IGFueTtcclxuXHR9O1xyXG59O1xyXG5cclxuY29uc3QgUHViU3ViRXZlbnRzID0ge1xyXG5cdGxhbmd1YWdlQ2hhbmdlZDogJ2xhbmd1YWdlQ2hhbmdlZCcsXHJcblx0bWVudU1vZGVDaGFuZ2VkOiAnbWVudU1vZGVDaGFuZ2VkJyxcclxuXHRicmVhZGNydW1iVXBkYXRlZDogJ2JyZWFkY3J1bWJVcGRhdGVkJ1xyXG59O1xyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUHViU3ViU2VydmljZSB7XHJcblx0cHVibGlzaChlOiBDdXN0b21FdmVudCkge1xyXG5cdFx0ZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoZS5uYW1lLCB7IGRldGFpbDogZS5kYXRhIH0pKTtcclxuXHR9XHJcblxyXG5cdHN1YnNjcmliZShldmVudE5hbWU6IGtleW9mIHR5cGVvZiBQdWJTdWJFdmVudHMsIGxpc3RlbmVyOiAoZGF0YTogYW55KSA9PiB2b2lkKTogRXZlbnRMaXN0ZW5lciB7XHJcblx0XHQvLyBhZGRFdmVudExpc3RlbmVyJ2Ega2F5ZGVkaWxlbiB3cmFwcGVyJ8SxIGTDtm5kw7xyOiB1blN1YnNjcmliZSBhbmNhayBBWU5JIHJlZmVyYW5zbGEga2FsZMSxcmFiaWxpci5cclxuXHRcdC8vIEVza2lkZW4gYW5vbmltIHdyYXBwZXIga2F5ZGVkaWxpcCBvcmlqaW5hbCBsaXN0ZW5lciBrYWxkxLFyxLFsbWF5YSDDp2FsxLHFn8SxbMSxeW9yZHU7IHJlZmVyYW5zbGFyXHJcblx0XHQvLyBlxZ9sZcWfbWVkacSfaSBpw6dpbiB1blN1YnNjcmliZSBoacOnYmlyIHphbWFuIMOnYWzEscWfbcSxeW9yZHUgKGthbMSxY8SxIHdpbmRvdyBsaXN0ZW5lciBsZWFrJ2kpLlxyXG5cdFx0Y29uc3QgaGFuZGxlcjogRXZlbnRMaXN0ZW5lciA9IChldmVudDogYW55KSA9PiB7XHJcblx0XHRcdGxpc3RlbmVyKGV2ZW50LmRldGFpbCk7XHJcblx0XHR9O1xyXG5cdFx0YWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGhhbmRsZXIpO1xyXG5cdFx0cmV0dXJuIGhhbmRsZXI7XHJcblx0fVxyXG5cclxuXHR1blN1YnNjcmliZShldmVudE5hbWU6IGtleW9mIHR5cGVvZiBQdWJTdWJFdmVudHMsIGhhbmRsZXI6IEV2ZW50TGlzdGVuZXIpIHtcclxuXHRcdHJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBoYW5kbGVyKTtcclxuXHR9XHJcbn1cclxuIl19
|
|
@@ -49,10 +49,10 @@ export class SyncActiveTabRouteDirective {
|
|
|
49
49
|
ngOnDestroy() {
|
|
50
50
|
this.subscription.unsubscribe();
|
|
51
51
|
}
|
|
52
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
53
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.
|
|
52
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SyncActiveTabRouteDirective, deps: [{ token: i1.Router }, { token: i2.TabView }, { token: i3.Location }, { token: i1.UrlSerializer }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
53
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: SyncActiveTabRouteDirective, isStandalone: true, selector: "[syncActiveTabRoute]", host: { listeners: { "activeIndexChange": "onTabChange($event)" } }, ngImport: i0 }); }
|
|
54
54
|
}
|
|
55
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SyncActiveTabRouteDirective, decorators: [{
|
|
56
56
|
type: Directive,
|
|
57
57
|
args: [{
|
|
58
58
|
selector: '[syncActiveTabRoute]',
|
|
@@ -62,4 +62,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
62
62
|
type: HostListener,
|
|
63
63
|
args: ['activeIndexChange', ['$event']]
|
|
64
64
|
}] } });
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1hY3RpdmUtdGFiLXJvdXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdXRpbC9zeW5jLWFjdGl2ZS10YWItcm91dGUvc3JjL3N5bmMtYWN0aXZlLXRhYi1yb3V0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBSzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7OztBQU0xQyxNQUFNLE9BQU8sMkJBQTJCO0lBZ0J2QyxZQUNrQixNQUFjLEVBQ2QsT0FBZ0IsRUFDaEIsUUFBa0IsRUFDbEIsYUFBNEI7UUFINUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQW5CN0IsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRW5EOzs7Ozs7Ozs7V0FTRztRQUNjLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBUy9DLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZELENBQUM7SUFFRCxRQUFRO1FBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDeEUsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDNUQsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUNGLENBQUM7SUFDSCxDQUFDO0lBR0QsV0FBVyxDQUFDLENBQVM7UUFDcEIseUZBQXlGO1FBQ3pGLHVFQUF1RTtRQUN2RSx3RkFBd0Y7UUFDeEYsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQ3ZDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRTtZQUN0QyxXQUFXLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFO1lBQzdCLG1CQUFtQixFQUFFLE9BQU87U0FDNUIsQ0FBQyxDQUNGLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3ZFLDJGQUEyRjtRQUMzRiw2RUFBNkU7UUFDN0UscUVBQXFFO1FBQ3JFLFFBQVEsRUFBRSxZQUFZLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxXQUFXO1FBQ1YsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNqQyxDQUFDOytHQXhEVywyQkFBMkI7bUdBQTNCLDJCQUEyQjs7NEZBQTNCLDJCQUEyQjtrQkFKdkMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxVQUFVLEVBQUUsSUFBSTtpQkFDaEI7b0pBcUNBLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciwgVXJsU2VyaWFsaXplciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBUYWJWaWV3IH0gZnJvbSAncHJpbWVuZy90YWJ2aWV3JztcclxuXHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgYnJpZGdlIH0gZnJvbSAnYXJpbC9ib290L2JyaWRnZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuXHRzZWxlY3RvcjogJ1tzeW5jQWN0aXZlVGFiUm91dGVdJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTeW5jQWN0aXZlVGFiUm91dGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblx0cHJpdmF0ZSByZWFkb25seSBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEhvc3QgKHNoZWxsKSBtb2R1bmRhIE1GRSBSb3V0ZXIgYElzb2xhdGVkTG9jYXRpb25TdHJhdGVneWAga3VsbGFuxLFyIOKAlCBicm93c2VyIGhhc2gnxLFuYVxyXG5cdCAqIFlBWk1BWiAodGFiIGl6b2xhc3lvbnUsIGJrei4gYGlzb2xhdGVkLWxvY2F0aW9uLXN0cmF0ZWd5LnRzYCkuIEJ1IHnDvHpkZW4gYD9hY3RpdmVUYWJgXHJcblx0ICogYWRyZXMgw6d1YnXEn3VuZGEgZ8O2csO8bnPDvG4vb2t1bnN1biBkaXllIEhPU1QgUm91dGVyICsgSE9TVCBMb2NhdGlvbidhIGvDtnByw7xsZXJpei5cclxuXHQgKiBTdGFuZGFsb25lIE1GRSBtb2R1bmRhIChgYnJpZGdlLmhvc3RSb3V0ZXJgIG51bGwpIGVza2kgZGF2cmFuxLHFnyBrb3J1bnVyOiBlbmpla3RlIGVkaWxlblxyXG5cdCAqIGNoaWxkIFJvdXRlciArIGNoaWxkIExvY2F0aW9uIChnZXLDp2VrIGBMb2NhdGlvblN0cmF0ZWd5YCBhZHJlcyDDp3VidcSfdW5hIHlhemFyKS5cclxuXHQgKlxyXG5cdCAqIGByZXBsYWNlU3RhdGVgIChuYXZpZ2F0ZSBERcSexLBMKSBrdWxsYW7EsWzEsXI6IE5hdmlnYXRpb25FbmQgZmlyZSBFVE1FWiDihpIgYXBwLmNvbXBvbmVudCdpblxyXG5cdCAqIGhvc3QtTmF2aWdhdGlvbkVuZCBoYW5kbGVyJ8SxIHRldGlrbGVubWV6IOKGkiBNRkUgeWVuaWRlbiBuYXZpZ2F0ZSBvbG1heiAoZMO2bmfDvCB5b2spLlxyXG5cdCAqL1xyXG5cdHByaXZhdGUgcmVhZG9ubHkgaG9zdFJvdXRlciA9IGJyaWRnZS5ob3N0Um91dGVyO1xyXG5cdHByaXZhdGUgcmVhZG9ubHkgZWZmZWN0aXZlUm91dGVyOiBSb3V0ZXI7XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgdGFiVmlldzogVGFiVmlldyxcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgbG9jYXRpb246IExvY2F0aW9uLFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSB1cmxTZXJpYWxpemVyOiBVcmxTZXJpYWxpemVyXHJcblx0KSB7XHJcblx0XHR0aGlzLmVmZmVjdGl2ZVJvdXRlciA9IHRoaXMuaG9zdFJvdXRlciA/PyB0aGlzLnJvdXRlcjtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0dGhpcy5zdWJzY3JpcHRpb24uYWRkKFxyXG5cdFx0XHR0aGlzLmVmZmVjdGl2ZVJvdXRlci5yb3V0ZXJTdGF0ZS5yb290LnF1ZXJ5UGFyYW1NYXAuc3Vic2NyaWJlKChwYXJhbXMpID0+IHtcclxuXHRcdFx0XHRpZiAocGFyYW1zLmhhcygnYWN0aXZlVGFiJykpIHtcclxuXHRcdFx0XHRcdHRoaXMudGFiVmlldy5hY3RpdmVJbmRleCA9IE51bWJlcihwYXJhbXMuZ2V0KCdhY3RpdmVUYWInKSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdEBIb3N0TGlzdGVuZXIoJ2FjdGl2ZUluZGV4Q2hhbmdlJywgWyckZXZlbnQnXSlcclxuXHRvblRhYkNoYW5nZShlOiBudW1iZXIpIHtcclxuXHRcdC8vIGBVcmxUcmVlLnRvU3RyaW5nKClgIGJ1aWx0LWluIGBEZWZhdWx0VXJsU2VyaWFsaXplcmAga3VsbGFuxLFyIOKGkiBgX3RhYmAgYWRyZXMgw6d1YnXEn3VuZGFcclxuXHRcdC8vIGfDtnLDvG7DvHIga2FsxLFyZMSxLiBSb3V0ZXInYSBrYXnEsXRsxLEgYFVybFNlcmlhbGl6ZXJgIChjaGlsZCBpbmplY3RvcidkYVxyXG5cdFx0Ly8gYFRhYkF3YXJlVXJsU2VyaWFsaXplcmApIGlsZSBzZXJpYWxpemUgZWRpcCBgX3RhYmAnxLEgZ2l6bGl5b3J1ejsgYGFjdGl2ZVRhYmAga29ydW51ci5cclxuXHRcdGNvbnN0IHVybCA9IHRoaXMudXJsU2VyaWFsaXplci5zZXJpYWxpemUoXHJcblx0XHRcdHRoaXMuZWZmZWN0aXZlUm91dGVyLmNyZWF0ZVVybFRyZWUoW10sIHtcclxuXHRcdFx0XHRxdWVyeVBhcmFtczogeyBhY3RpdmVUYWI6IGUgfSxcclxuXHRcdFx0XHRxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnXHJcblx0XHRcdH0pXHJcblx0XHQpO1xyXG5cclxuXHRcdGNvbnN0IGxvY2F0aW9uID0gdGhpcy5ob3N0Um91dGVyID8gYnJpZGdlLmhvc3RMb2NhdGlvbiA6IHRoaXMubG9jYXRpb247XHJcblx0XHQvLyBgaGlzdG9yeS5zdGF0ZWAgKGnDp2luZGVraSBgX3RhYmApIEtPUlVOTUFMSTogYExvY2F0aW9uLnJlcGxhY2VTdGF0ZShwYXRoLCBxdWVyeSwgc3RhdGUpYFxyXG5cdFx0Ly8gZGVmYXVsdCBgc3RhdGU9bnVsbGAg4oCUIDMuIGFyZ8O8bWFuIHZlcmlsbWV6c2UgYF90YWJgIHNpbGluaXIgdmUgdGFiIHRlc3BpdGlcclxuXHRcdC8vIChgbmF2LnNlcnZpY2VgL2BhcHAuY29tcG9uZW50YCBgaGlzdG9yeS5zdGF0ZS5fdGFiYCBva3VyKSBib3p1bHVyLlxyXG5cdFx0bG9jYXRpb24/LnJlcGxhY2VTdGF0ZSh1cmwsICcnLCB3aW5kb3cuaGlzdG9yeS5zdGF0ZSk7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcblx0fVxyXG59XHJcbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LocationStrategy } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { inject, ElementRef, effect, Component } from '@angular/core';
|
|
3
|
+
import { inject, ElementRef, effect, untracked, Component } from '@angular/core';
|
|
4
4
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
5
|
import * as i1 from '@angular/router';
|
|
6
6
|
import { EventType } from '@angular/router';
|
|
@@ -119,7 +119,12 @@ class AppComponent {
|
|
|
119
119
|
if (!lastUrl || !lastTabIdForTitle)
|
|
120
120
|
return;
|
|
121
121
|
const title = computeTabTitle();
|
|
122
|
-
|
|
122
|
+
// `untracked`: `activeMFEUrl` SHARED signal'dır (bridge'de tek instance). Aynı remote'un
|
|
123
|
+
// iki tab'ı tek `sharedAppRef` → tek effect-scheduler paylaşır; bu read TRACKED olsaydı
|
|
124
|
+
// tab A'nın yazısı tab B'nin effect'ini (ve tersini) AYNI flush içinde tetikler → flush
|
|
125
|
+
// kuyruğu boşalmaz, sonsuz döngü, app donar. Değer yalnız aşağıdaki dedupe guard'ı için
|
|
126
|
+
// okunur; re-run tetiklemesi İSTENMEZ — effect'i yalnız tab-local `keyValues()` sürmeli.
|
|
127
|
+
const prev = untracked(() => this.bridgeSvc.activeMFEUrl());
|
|
123
128
|
if (prev?.tabId === lastTabIdForTitle && prev?.url === lastUrl && prev?.title === title) {
|
|
124
129
|
return;
|
|
125
130
|
}
|
|
@@ -168,10 +173,10 @@ class AppComponent {
|
|
|
168
173
|
this.primeNgConfig.setTranslation(TR_TRANSLATIONS);
|
|
169
174
|
}
|
|
170
175
|
}
|
|
171
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
172
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
176
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppComponent, deps: [{ token: i1.Router }, { token: i2.TranslocoService }, { token: i3.PrimeNGConfig }, { token: i3$1.MfeBridge }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
177
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AppComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `<mfe-layout></mfe-layout>`, isInline: true, dependencies: [{ kind: "ngmodule", type: ModuleFederationToolsModule }, { kind: "component", type: MFELayoutComponent, selector: "mfe-layout" }] }); }
|
|
173
178
|
}
|
|
174
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
179
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppComponent, decorators: [{
|
|
175
180
|
type: Component,
|
|
176
181
|
args: [{
|
|
177
182
|
standalone: true,
|
|
@@ -181,4 +186,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
181
186
|
}], ctorParameters: () => [{ type: i1.Router }, { type: i2.TranslocoService }, { type: i3.PrimeNGConfig }, { type: i3$1.MfeBridge }] });
|
|
182
187
|
|
|
183
188
|
export { AppComponent };
|
|
184
|
-
//# sourceMappingURL=aril-app.component-
|
|
189
|
+
//# sourceMappingURL=aril-app.component-Bl9p6jXU.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aril-app.component-Bl9p6jXU.mjs","sources":["../../projects/aril/boot/mfe/src/app.component.ts"],"sourcesContent":["import { LocationStrategy } from '@angular/common';\r\nimport { Component, ElementRef, effect, inject, untracked } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { EventType, Router, type Event as RouterEvent } from '@angular/router';\r\n\r\nimport { PrimeNGConfig } from 'primeng/api';\r\n\r\nimport { ModuleFederationToolsModule } from '@angular-architects/module-federation-tools';\r\nimport { TranslocoService } from '@ngneat/transloco';\r\n\r\nimport { MfeBridge } from 'aril/boot/bridge';\r\nimport { safeNavigate } from 'aril/boot/config/apps';\r\nimport { LanguageCode, TR_TRANSLATIONS } from 'aril/boot/config/translate';\r\nimport { BreadcrumbService, MFELayoutComponent } from 'aril/theme/layout';\r\n\r\nimport { appName } from './bootstrap';\r\n\r\n/**\r\n * Tab izolasyonlu MFE app root.\r\n *\r\n * Her `<app-${appName}>` custom element instance'ı kendi `createApplication`'ını yarattığı için\r\n * (bkz. `bootstrap.ts` `MFEAppElement`), `AppComponent` constructor'ı her tab için **bağımsız**\r\n * çalışır — paylaşılan Injector/Router yok. Bu yüzden host Router subscription'ı her tab için\r\n * ayrı kurulur ama \"tab-id filter\" ile **sadece o tab'a ait** `NavigationEnd`'leri MFE Router'a\r\n * iletir; diğer tab'lerin navigation'ları ignore edilir.\r\n *\r\n * Tab kimliği `<app-${appName}>` element'inde `aril-tab-id` attribute olarak yazılır\r\n * (`ArilWebComponentWrapper` route.queryParams._tab'ten okuyup set eder). Filter karşılaştırması:\r\n * `window.history.state._tab === tabId` — `navigateToTab` `extras.state._tab` ile yazıyor.\r\n */\r\n@Component({\r\n\tstandalone: true,\r\n\ttemplate: `<mfe-layout></mfe-layout>`,\r\n\timports: [ModuleFederationToolsModule, MFELayoutComponent]\r\n})\r\nexport class AppComponent {\r\n\tprivate readonly elementRef = inject(ElementRef);\r\n\r\n\tconstructor(\r\n\t\tprivate readonly router: Router,\r\n\t\tprivate readonly translocoService: TranslocoService,\r\n\t\tprivate readonly primeNgConfig: PrimeNGConfig,\r\n\t\tprivate readonly bridgeSvc: MfeBridge\r\n\t) {\r\n\t\t// Bu tab'ın kimliği — wrapper component `aril-tab-id` attribute olarak yazıyor.\r\n\t\t// İlk yükleme cycle'ında URL'de henüz `_tab` yok; NavService `firstCheckForRoute`\r\n\t\t// sonradan `replaceUrl` ile ekliyor. Wrapper queryParams.subscribe ile attribute'u\r\n\t\t// güncelliyor — bu yüzden constructor'da değil, her NavigationEnd'de fresh okuyoruz.\r\n\t\tconst readMyTabId = (): string => (this.elementRef.nativeElement as HTMLElement).getAttribute('aril-tab-id') ?? '';\r\n\r\n\t\tconst initialTabId = readMyTabId();\r\n\t\tconst locStrategy = inject(LocationStrategy);\r\n\t\tconst sameRouter = this.router === this.bridgeSvc.hostRouter;\r\n\t\tconsole.log(\r\n\t\t\t`[MFE:${appName}] host modu — tab=\"${initialTabId || '(pending)'}\" ` +\r\n\t\t\t\t`LocationStrategy=${locStrategy.constructor.name} ` +\r\n\t\t\t\t`router===hostRouter? ${sameRouter}`\r\n\t\t);\r\n\t\tconst initial = this.bridgeSvc.hostRouter!.url;\r\n\t\tconsole.log(`[MFE:${appName}] initial sync:`, initial);\r\n\t\tsafeNavigate(this.router, initial);\r\n\r\n\t\t// MFE içi `routerLink`/`router.navigate` host Router'a yansımıyor (IsolatedLocationStrategy\r\n\t\t// browser hash'ı değiştirmiyor) — NavService tab navLink'ini güncelleyemiyor.\r\n\t\t// MFE NavigationEnd'i `bridge.activeMFEUrl`'a (kaynak tabId ile) yazarız;\r\n\t\t// AppLayoutComponent effect → `syncActiveTabNavLinkForTab(tabId, url)` ile sadece\r\n\t\t// kaynak tab'ın navLink'i güncellenir → cross-tab kontaminasyonu yok.\r\n\t\t// Tab title resolve — kaynak öncelik sırası (en spesifik → en geniş):\r\n\t\t// 1. `route.title` (ÖNERİLEN — Angular Router 16+ standardı, sayfa <title>'ını da set eder)\r\n\t\t// 2. `data.tabName` (ÖNERİLEN — tab adı sayfa <title>'ından farklı olmalıysa)\r\n\t\t// 3. `data.title` (DEPRECATED — geriye uyumluluk için var; yeni route'larda kullanmayın,\r\n\t\t// `route.title` ile aynı semantiği taşıyor ama Angular contract dışı kalıyor)\r\n\t\t// 4. `data.breadcrumb` — mevcut breadcrumb template'i fallback olarak kullanılır\r\n\t\t// (single-brace `{key}` placeholder, literal string, i18n YOK)\r\n\t\t//\r\n\t\t// i18n key'lerinde `{{placeholder}}` Transloco interpolation'ı `BreadcrumbService.keyValues`\r\n\t\t// ile doldurulur. Component cevap geldiğinde `breadcrumbService.set('GatewayMaterialSerialNumber',\r\n\t\t// '12345')` her iki path'i de besler — effect ile re-compute, dinamik tab adı\r\n\t\t// (\"12345 - Modem Detay\").\r\n\t\tconst breadcrumbService = inject(BreadcrumbService);\r\n\t\tconst computeTabTitle = (): string | undefined => {\r\n\t\t\tlet route = this.router.routerState.snapshot.root;\r\n\t\t\twhile (route.firstChild) route = route.firstChild;\r\n\t\t\tconst params = breadcrumbService.keyValues();\r\n\r\n\t\t\tconst i18nKey =\r\n\t\t\t\t(route.title as string | undefined) ??\r\n\t\t\t\t(route.data?.['title'] as string | undefined) ??\r\n\t\t\t\t(route.data?.['tabName'] as string | undefined);\r\n\t\t\tif (i18nKey) {\r\n\t\t\t\tconst translated = this.translocoService.translate(i18nKey, params);\r\n\t\t\t\treturn translated || i18nKey;\r\n\t\t\t}\r\n\r\n\t\t\tconst breadcrumb = route.data?.['breadcrumb'] as string | undefined;\r\n\t\t\tif (breadcrumb) {\r\n\t\t\t\treturn breadcrumb.replace(/\\{([^}]+)\\}/g, (_, key: string) => params[key] ?? '...');\r\n\t\t\t}\r\n\r\n\t\t\treturn undefined;\r\n\t\t};\r\n\r\n\t\tlet lastUrl: string | undefined;\r\n\t\tlet lastTabIdForTitle: string | undefined;\r\n\r\n\t\tthis.router.events.pipe(takeUntilDestroyed()).subscribe((event: RouterEvent) => {\r\n\t\t\tif (event.type === EventType.NavigationEnd) {\r\n\t\t\t\tconst url = event.urlAfterRedirects ?? event.url;\r\n\t\t\t\tconst myTabId = readMyTabId();\r\n\t\t\t\tif (!myTabId) return;\r\n\t\t\t\tlastUrl = url;\r\n\t\t\t\tlastTabIdForTitle = myTabId;\r\n\t\t\t\tconst title = computeTabTitle();\r\n\t\t\t\tconst prev = this.bridgeSvc.activeMFEUrl();\r\n\t\t\t\tif (prev?.tabId === myTabId && prev?.url === url && prev?.title === title) return;\r\n\t\t\t\tthis.bridgeSvc.activeMFEUrl.set({ tabId: myTabId, url, title });\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Component cevap gelince `breadcrumbService.set('meterNo', '12345')` keyValues'ı\r\n\t\t// günceller; effect ile yakalayıp tab title'ı yeniden hesaplarız → \"12345 - Sayaç\r\n\t\t// Detayı\" gibi dinamik sonuçlar tab adına yansır.\r\n\t\teffect(\r\n\t\t\t() => {\r\n\t\t\t\tbreadcrumbService.keyValues();\r\n\t\t\t\tif (!lastUrl || !lastTabIdForTitle) return;\r\n\t\t\t\tconst title = computeTabTitle();\r\n\t\t\t\t// `untracked`: `activeMFEUrl` SHARED signal'dır (bridge'de tek instance). Aynı remote'un\r\n\t\t\t\t// iki tab'ı tek `sharedAppRef` → tek effect-scheduler paylaşır; bu read TRACKED olsaydı\r\n\t\t\t\t// tab A'nın yazısı tab B'nin effect'ini (ve tersini) AYNI flush içinde tetikler → flush\r\n\t\t\t\t// kuyruğu boşalmaz, sonsuz döngü, app donar. Değer yalnız aşağıdaki dedupe guard'ı için\r\n\t\t\t\t// okunur; re-run tetiklemesi İSTENMEZ — effect'i yalnız tab-local `keyValues()` sürmeli.\r\n\t\t\t\tconst prev = untracked(() => this.bridgeSvc.activeMFEUrl());\r\n\t\t\t\tif (prev?.tabId === lastTabIdForTitle && prev?.url === lastUrl && prev?.title === title) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tthis.bridgeSvc.activeMFEUrl.set({ tabId: lastTabIdForTitle, url: lastUrl, title });\r\n\t\t\t},\r\n\t\t\t{ allowSignalWrites: true }\r\n\t\t);\r\n\r\n\t\tconst mfePrefix = `/${appName}`;\r\n\r\n\t\tthis.bridgeSvc.hostRouter!.events.pipe(takeUntilDestroyed()).subscribe((event: RouterEvent) => {\r\n\t\t\tif (event.type === EventType.NavigationEnd) {\r\n\t\t\t\tconst target = event.urlAfterRedirects ?? event.url;\r\n\t\t\t\tif (target !== mfePrefix && !target.startsWith(`${mfePrefix}/`)) return;\r\n\t\t\t\t// **Tab izolasyonu filter**: navigation'ın hedef tab'ı bu instance mı?\r\n\t\t\t\t// `IsolatedLocationStrategy` sayesinde host'a sadece tab tıklamaları\r\n\t\t\t\t// (`tabState({_tab})` ile) gelir — `history.state._tab` her zaman dolu.\r\n\t\t\t\tconst myTabId = readMyTabId();\r\n\t\t\t\tif (myTabId) {\r\n\t\t\t\t\tconst navTabId = (window.history.state as Record<string, unknown> | null)?.['_tab'];\r\n\t\t\t\t\tif (navTabId !== myTabId) return;\r\n\t\t\t\t}\r\n\t\t\t\t// `lastNavigated`/`router.url===target` early-return YOK: izole Router'da (her tab\r\n\t\t\t\t// kendi Router'ı) bir tab'a geri dönüldüğünde MFE Router zaten hedef URL'dedir;\r\n\t\t\t\t// navigate atlanırsa NavigationEnd fire etmez → `BreadcrumbPublisherService` yeniden\r\n\t\t\t\t// yayın yapmaz ve app.layout tab geçişinde breadcrumb'ı `set([])` ile temizlediği için\r\n\t\t\t\t// breadcrumb boş kalır. `onSameUrlNavigation:'reload'` aynı URL'e navigate'i\r\n\t\t\t\t// NavigationEnd ile garanti eder → breadcrumb + tab navLink yeniden yayınlanır.\r\n\t\t\t\tconsole.log(`[MFE:${appName}] tab=\"${myTabId || '(pending)'}\" host NavigationEnd → navigate:`, target);\r\n\t\t\t\tsafeNavigate(this.router, target);\r\n\t\t\t} else if (event.type === EventType.NavigationCancel) {\r\n\t\t\t\tconsole.warn(`[MFE:${appName}] host NavigationCancel:`, event.url, 'reason:', event.reason);\r\n\t\t\t} else if (event.type === EventType.NavigationError) {\r\n\t\t\t\tconsole.error(`[MFE:${appName}] host NavigationError:`, event.url, 'err:', event.error);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.bridgeSvc.activeMF.set(appName);\r\n\t\tconst lang: LanguageCode = (localStorage.getItem('lang') as LanguageCode) ?? LanguageCode.TR;\r\n\r\n\t\tthis.translocoService.setActiveLang(lang);\r\n\r\n\t\tthis.setLocale(lang);\r\n\t}\r\n\r\n\tsetLocale(lang: LanguageCode) {\r\n\t\tif (!lang?.length) return;\r\n\r\n\t\tif (lang === LanguageCode.TR) {\r\n\t\t\tthis.primeNgConfig.setTranslation(TR_TRANSLATIONS);\r\n\t\t}\r\n\t}\r\n}\r\n"],"names":["i4"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA;;;;;;;;;;;;AAYG;MAMU,YAAY,CAAA;AAGxB,IAAA,WAAA,CACkB,MAAc,EACd,gBAAkC,EAClC,aAA4B,EAC5B,SAAoB,EAAA;QAHpB,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QAChB,IAAA,CAAA,aAAa,GAAb,aAAa;QACb,IAAA,CAAA,SAAS,GAAT,SAAS;AANV,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;;;;;AAY/C,QAAA,MAAM,WAAW,GAAG,MAAe,IAAI,CAAC,UAAU,CAAC,aAA6B,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE;AAElH,QAAA,MAAM,YAAY,GAAG,WAAW,EAAE;AAClC,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU;QAC5D,OAAO,CAAC,GAAG,CACV,CAAA,KAAA,EAAQ,OAAO,CAAA,mBAAA,EAAsB,YAAY,IAAI,WAAW,CAAA,EAAA,CAAI;AACnE,YAAA,CAAA,iBAAA,EAAoB,WAAW,CAAC,WAAW,CAAC,IAAI,CAAA,CAAA,CAAG;YACnD,CAAA,qBAAA,EAAwB,UAAU,CAAA,CAAE,CACrC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAW,CAAC,GAAG;QAC9C,OAAO,CAAC,GAAG,CAAC,CAAA,KAAA,EAAQ,OAAO,CAAA,eAAA,CAAiB,EAAE,OAAO,CAAC;AACtD,QAAA,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;AAmBlC,QAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACnD,MAAM,eAAe,GAAG,MAAyB;YAChD,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI;YACjD,OAAO,KAAK,CAAC,UAAU;AAAE,gBAAA,KAAK,GAAG,KAAK,CAAC,UAAU;AACjD,YAAA,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,EAAE;AAE5C,YAAA,MAAM,OAAO,GACX,KAAK,CAAC,KAA4B;AAClC,gBAAA,KAAK,CAAC,IAAI,GAAG,OAAO,CAAwB;AAC5C,gBAAA,KAAK,CAAC,IAAI,GAAG,SAAS,CAAwB;YAChD,IAAI,OAAO,EAAE;AACZ,gBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;gBACnE,OAAO,UAAU,IAAI,OAAO;YAC7B;YAEA,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,GAAG,YAAY,CAAuB;YACnE,IAAI,UAAU,EAAE;gBACf,OAAO,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,GAAW,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;YACpF;AAEA,YAAA,OAAO,SAAS;AACjB,QAAA,CAAC;AAED,QAAA,IAAI,OAA2B;AAC/B,QAAA,IAAI,iBAAqC;AAEzC,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,KAAkB,KAAI;YAC9E,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,aAAa,EAAE;gBAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,GAAG;AAChD,gBAAA,MAAM,OAAO,GAAG,WAAW,EAAE;AAC7B,gBAAA,IAAI,CAAC,OAAO;oBAAE;gBACd,OAAO,GAAG,GAAG;gBACb,iBAAiB,GAAG,OAAO;AAC3B,gBAAA,MAAM,KAAK,GAAG,eAAe,EAAE;gBAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;AAC1C,gBAAA,IAAI,IAAI,EAAE,KAAK,KAAK,OAAO,IAAI,IAAI,EAAE,GAAG,KAAK,GAAG,IAAI,IAAI,EAAE,KAAK,KAAK,KAAK;oBAAE;AAC3E,gBAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;YAChE;AACD,QAAA,CAAC,CAAC;;;;QAKF,MAAM,CACL,MAAK;YACJ,iBAAiB,CAAC,SAAS,EAAE;AAC7B,YAAA,IAAI,CAAC,OAAO,IAAI,CAAC,iBAAiB;gBAAE;AACpC,YAAA,MAAM,KAAK,GAAG,eAAe,EAAE;;;;;;AAM/B,YAAA,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;AAC3D,YAAA,IAAI,IAAI,EAAE,KAAK,KAAK,iBAAiB,IAAI,IAAI,EAAE,GAAG,KAAK,OAAO,IAAI,IAAI,EAAE,KAAK,KAAK,KAAK,EAAE;gBACxF;YACD;AACA,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACnF,QAAA,CAAC,EACD,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAC3B;AAED,QAAA,MAAM,SAAS,GAAG,CAAA,CAAA,EAAI,OAAO,EAAE;AAE/B,QAAA,IAAI,CAAC,SAAS,CAAC,UAAW,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,KAAkB,KAAI;YAC7F,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,aAAa,EAAE;gBAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,GAAG;AACnD,gBAAA,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA,EAAG,SAAS,CAAA,CAAA,CAAG,CAAC;oBAAE;;;;AAIjE,gBAAA,MAAM,OAAO,GAAG,WAAW,EAAE;gBAC7B,IAAI,OAAO,EAAE;oBACZ,MAAM,QAAQ,GAAI,MAAM,CAAC,OAAO,CAAC,KAAwC,GAAG,MAAM,CAAC;oBACnF,IAAI,QAAQ,KAAK,OAAO;wBAAE;gBAC3B;;;;;;;AAOA,gBAAA,OAAO,CAAC,GAAG,CAAC,CAAA,KAAA,EAAQ,OAAO,CAAA,OAAA,EAAU,OAAO,IAAI,WAAW,CAAA,gCAAA,CAAkC,EAAE,MAAM,CAAC;AACtG,gBAAA,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;YAClC;iBAAO,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,gBAAgB,EAAE;AACrD,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAA,KAAA,EAAQ,OAAO,0BAA0B,EAAE,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC;YAC5F;iBAAO,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,eAAe,EAAE;AACpD,gBAAA,OAAO,CAAC,KAAK,CAAC,CAAA,KAAA,EAAQ,OAAO,yBAAyB,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;YACxF;AACD,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AACpC,QAAA,MAAM,IAAI,GAAkB,YAAY,CAAC,OAAO,CAAC,MAAM,CAAkB,IAAI,YAAY,CAAC,EAAE;AAE5F,QAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC;AAEzC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IACrB;AAEA,IAAA,SAAS,CAAC,IAAkB,EAAA;QAC3B,IAAI,CAAC,IAAI,EAAE,MAAM;YAAE;AAEnB,QAAA,IAAI,IAAI,KAAK,YAAY,CAAC,EAAE,EAAE;AAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,eAAe,CAAC;QACnD;IACD;+GArJY,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAHd,CAAA,yBAAA,CAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAC3B,2BAA2B,+BAAE,kBAAkB,EAAA,QAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAE7C,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA,yBAAA,CAA2B;AACrC,oBAAA,OAAO,EAAE,CAAC,2BAA2B,EAAE,kBAAkB;AACzD,iBAAA;;;;;"}
|
|
@@ -5,7 +5,7 @@ import { MessageService, ConfirmationService } from 'primeng/api';
|
|
|
5
5
|
import { KeycloakBearerInterceptor, KeycloakAngularModule } from 'keycloak-angular';
|
|
6
6
|
import { provideMfeBridge } from 'aril/boot/bridge';
|
|
7
7
|
import { acceptLanguageInterceptor } from 'aril/http';
|
|
8
|
-
import {
|
|
8
|
+
import { i18nFolderName, i18nModule } from 'aril/i18n';
|
|
9
9
|
import { authInterceptor, keycloakAuthInterceptor } from 'aril/keycloak';
|
|
10
10
|
import { provideLocaleId } from 'aril/provider';
|
|
11
11
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aril-boot-base.mjs","sources":["../../projects/aril/boot/base/src/create-base-app-config.ts","../../projects/aril/boot/base/aril-boot-base.ts"],"sourcesContent":["import { provideHttpClient, withInterceptors } from '@angular/common/http';\r\nimport { EnvironmentProviders, importProvidersFrom, makeEnvironmentProviders } from '@angular/core';\r\nimport { provideAnimations } from '@angular/platform-browser/animations';\r\n\r\nimport { ConfirmationService, MessageService } from 'primeng/api';\r\n\r\nimport { KeycloakAngularModule, KeycloakBearerInterceptor } from 'keycloak-angular';\r\n\r\nimport { provideMfeBridge } from 'aril/boot/bridge';\r\nimport { acceptLanguageInterceptor } from 'aril/http';\r\nimport { i18nFolderName, i18nModule } from 'aril/i18n';\r\nimport { authInterceptor, keycloakAuthInterceptor } from 'aril/keycloak';\r\nimport { provideLocaleId } from 'aril/provider';\r\n\r\n/** Host ve plugin bootstrap akışlarında i18n asset path alt klasörü. */\r\nexport const HOST_I18N_FOLDER = 'host';\r\n\r\nexport interface BaseAppConfigOptions {\r\n\t/** i18nFolderName token'ına set edilecek değer (host: HOST_I18N_FOLDER, mfe: appName). */\r\n\ti18nFolder: string;\r\n}\r\n\r\n/**\r\n * Host, MFE ve plugin bootstrap akışlarında ortak olan provider'ları döndürür.\r\n * Çağıranlar dönüş değerini `providers` dizisinde diğer özel provider'larının yanına ekler.\r\n */\r\nexport function createBaseAppConfig(options: BaseAppConfigOptions): EnvironmentProviders {\r\n\treturn makeEnvironmentProviders([\r\n\t\tprovideAnimations(),\r\n\t\tprovideMfeBridge(),\r\n\t\tprovideLocaleId(),\r\n\t\tKeycloakBearerInterceptor,\r\n\t\tprovideHttpClient(withInterceptors([acceptLanguageInterceptor, authInterceptor, keycloakAuthInterceptor])),\r\n\t\timportProvidersFrom(i18nModule, KeycloakAngularModule),\r\n\t\tMessageService,\r\n\t\tConfirmationService,\r\n\t\t{ provide: i18nFolderName, useValue: options.i18nFolder }\r\n\t]);\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAcA;AACO,MAAM,gBAAgB,GAAG
|
|
1
|
+
{"version":3,"file":"aril-boot-base.mjs","sources":["../../projects/aril/boot/base/src/create-base-app-config.ts","../../projects/aril/boot/base/aril-boot-base.ts"],"sourcesContent":["import { provideHttpClient, withInterceptors } from '@angular/common/http';\r\nimport { EnvironmentProviders, importProvidersFrom, makeEnvironmentProviders } from '@angular/core';\r\nimport { provideAnimations } from '@angular/platform-browser/animations';\r\n\r\nimport { ConfirmationService, MessageService } from 'primeng/api';\r\n\r\nimport { KeycloakAngularModule, KeycloakBearerInterceptor } from 'keycloak-angular';\r\n\r\nimport { provideMfeBridge } from 'aril/boot/bridge';\r\nimport { acceptLanguageInterceptor } from 'aril/http';\r\nimport { i18nFolderName, i18nModule } from 'aril/i18n';\r\nimport { authInterceptor, keycloakAuthInterceptor } from 'aril/keycloak';\r\nimport { provideLocaleId } from 'aril/provider';\r\n\r\n/** Host ve plugin bootstrap akışlarında i18n asset path alt klasörü. */\r\nexport const HOST_I18N_FOLDER = 'host';\r\n\r\nexport interface BaseAppConfigOptions {\r\n\t/** i18nFolderName token'ına set edilecek değer (host: HOST_I18N_FOLDER, mfe: appName). */\r\n\ti18nFolder: string;\r\n}\r\n\r\n/**\r\n * Host, MFE ve plugin bootstrap akışlarında ortak olan provider'ları döndürür.\r\n * Çağıranlar dönüş değerini `providers` dizisinde diğer özel provider'larının yanına ekler.\r\n */\r\nexport function createBaseAppConfig(options: BaseAppConfigOptions): EnvironmentProviders {\r\n\treturn makeEnvironmentProviders([\r\n\t\tprovideAnimations(),\r\n\t\tprovideMfeBridge(),\r\n\t\tprovideLocaleId(),\r\n\t\tKeycloakBearerInterceptor,\r\n\t\tprovideHttpClient(withInterceptors([acceptLanguageInterceptor, authInterceptor, keycloakAuthInterceptor])),\r\n\t\timportProvidersFrom(i18nModule, KeycloakAngularModule),\r\n\t\tMessageService,\r\n\t\tConfirmationService,\r\n\t\t{ provide: i18nFolderName, useValue: options.i18nFolder }\r\n\t]);\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAcA;AACO,MAAM,gBAAgB,GAAG;AAOhC;;;AAGG;AACG,SAAU,mBAAmB,CAAC,OAA6B,EAAA;AAChE,IAAA,OAAO,wBAAwB,CAAC;AAC/B,QAAA,iBAAiB,EAAE;AACnB,QAAA,gBAAgB,EAAE;AAClB,QAAA,eAAe,EAAE;QACjB,yBAAyB;QACzB,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,yBAAyB,EAAE,eAAe,EAAE,uBAAuB,CAAC,CAAC,CAAC;AAC1G,QAAA,mBAAmB,CAAC,UAAU,EAAE,qBAAqB,CAAC;QACtD,cAAc;QACd,mBAAmB;QACnB,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU;AACvD,KAAA,CAAC;AACH;;ACtCA;;AAEG;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aril-boot-bridge.mjs","sources":["../../projects/aril/boot/bridge/src/mfe-bridge.ts","../../projects/aril/boot/bridge/src/provide-mfe-bridge.ts","../../projects/aril/boot/bridge/aril-boot-bridge.ts"],"sourcesContent":["import type { Location } from '@angular/common';\r\nimport { NgZone, Signal, effect, signal } from '@angular/core';\r\nimport type { Router } from '@angular/router';\r\n\r\nimport type { Apps, PluginMenuItem } from 'aril/boot/config/apps';\r\n\r\nexport interface RouteConfig {\r\n\tpath: string;\r\n\tcontent: string;\r\n\tversion: number;\r\n}\r\n\r\nexport interface Breadcrumb {\r\n\tlabel: string;\r\n\turl?: string;\r\n}\r\n\r\n// Selection-group (enum) modeli — cache state (aşağıda `selectionGroups`) bridge'de yaşadığından\r\n// tipi de burada tanımlanır; `theme/layout` bu tipleri re-export eder (bridge↔theme/layout circular\r\n// entry-point'ini önlemek için bağımlılık tek yönlü: theme/layout → bridge).\r\nexport interface SelectionItem {\r\n\tid: number;\r\n\tgroupId: number;\r\n\tselectionKey: string;\r\n\tselectionDisplay: string;\r\n\tshowOrder: number;\r\n\tparentSelectionKey: string;\r\n\tselectionMultiLanguageDisplays?: Record<string, string>;\r\n}\r\n\r\nexport interface SelectionGroupDTO {\r\n\tid: number;\r\n\tgroupName: string;\r\n\tgroupDescription: string;\r\n\tgroupComment: string;\r\n\tloadStrategy: string;\r\n\tdynamicQuery: string;\r\n\tparentGroupId: number;\r\n\tselectionItems: SelectionItem[];\r\n\tversion?: number;\r\n}\r\n\r\nexport interface LegacyWindowSlots {\r\n\tactiveHost?: Apps;\r\n\tactiveMF?: Apps;\r\n\thostMenuItems?: Signal<PluginMenuItem[]>;\r\n\tpluginJson?: Record<string, unknown>;\r\n\trouteConfigs?: RouteConfig[];\r\n\tngZone?: NgZone;\r\n\thostRouter?: Router;\r\n\t__ARIL_PAGE_TITLE__?: Signal<string>;\r\n}\r\n\r\nexport class MfeBridge {\r\n\treadonly activeHost = signal<Apps | null>(null);\r\n\treadonly activeMF = signal<Apps | null>(null);\r\n\treadonly hostMenuItems = signal<PluginMenuItem[]>([]);\r\n\treadonly pluginJson = signal<Record<string, unknown>>({});\r\n\treadonly routeConfigs = signal<RouteConfig[] | null>(null);\r\n\treadonly pageTitle = signal<string>('');\r\n\treadonly breadcrumbs = signal<Breadcrumb[]>([]);\r\n\t/**\r\n\t * Bir MFE Router'ında olan son `NavigationEnd`'in URL'i ve **hangi tab'a ait olduğu**.\r\n\t * MFE içi sayfa içi navigation'lar host Router'a yansımayabiliyor → `NavService` tab\r\n\t * navLink'ini güncellemek için bu signal'ı izler.\r\n\t *\r\n\t * **Neden tabId taşıyor**: Birden fazla tab'ın MFE Router'ı async event tetikleyebilir\r\n\t * (örn. hidden container'daki tab2 `?activeTab=1` replaceState yaparken). `activeTabId`'ye\r\n\t * bakarak update yaparsak yanlış tab'ı kontamine ederiz. Mesajda kaynak tabId'yi taşıyıp\r\n\t * `NavService.syncActiveTabNavLinkForTab(tabId, url)` ile spesifik tab'ı update ederiz.\r\n\t *\r\n\t * **Custom `equal`**: AppComponent her MFE NavigationEnd'de `set({tabId, url})` çağırır;\r\n\t * yeni object reference olduğu için default reference-equality re-emit eder. Bu durumda\r\n\t * aynı tab+url ile sürekli effect tetiklenir → tab navLink'i kullanıcının anasayfaya\r\n\t * geçtiği gibi (host route'lar MFE NavigationEnd tetiklemez ama signal eski değerinde\r\n\t * kalır) state değişikliklerini geri alır. Value-equality ile yalnızca gerçek URL\r\n\t * değişikliklerinde tetiklensin.\r\n\t */\r\n\treadonly activeMFEUrl = signal<{ tabId: string; url: string; title?: string } | null>(null, {\r\n\t\tequal: (a, b) => a?.tabId === b?.tabId && a?.url === b?.url && a?.title === b?.title\r\n\t});\r\n\r\n\t/**\r\n\t * Aktif tab'ın `tabId`'si — `NavService` tab değişimlerinde günceller.\r\n\t * Plugin Router proxy'leri (`provideHostRouter`) bu signal'ı okuyup `navigate`/`navigateByUrl`\r\n\t * çağrılarına `extras.state._tab` enjekte eder → plugin'lerin yaptığı tüm host\r\n\t * navigation'ları otomatik tab-aware olur, Strategy doğru tab handle'ını korur.\r\n\t */\r\n\treadonly activeTabId = signal<string>('');\r\n\r\n\t/**\r\n\t * Enum (SelectionGroup) cache — cross-MFE paylaşımlı. `SelectionGroupService` her MFE/tab'da\r\n\t * ayrı instance olsa da (Module Federation shared yok) hepsi bu tek state üzerinden okur/yazar\r\n\t * → tek enum cache, tek `/versions` çağrısı, MFE'ler arası localStorage ezme yok.\r\n\t */\r\n\treadonly selectionGroups = signal<{ [key: string]: SelectionGroupDTO | null }>({});\r\n\treadonly selectionLoaded = new Map<string, boolean>();\r\n\treadonly selectionLoading = new Map<string, boolean>();\r\n\t/** Key başına ardışık fetch hatası sayısı — limit aşımında fetchEnum o key'i denemeyi bırakır. */\r\n\treadonly selectionFailures = new Map<string, number>();\r\n\tselectionInitialized = false;\r\n\r\n\thostNgZone: NgZone | null = null;\r\n\thostRouter: Router | null = null;\r\n\t/**\r\n\t * Host (shell) `Location` servisi. Host modda MFE/plugin child injector'larından\r\n\t * erişilemez (child Location izole `IsolatedLocationStrategy`'ye bağlı); browser\r\n\t * adres çubuğuna `replaceState` ile yazmak isteyen directive'ler (örn. `?activeTab`\r\n\t * senkronizasyonu) bunu kullanır. `hostRouter` ile aynı pattern.\r\n\t */\r\n\thostLocation: Location | null = null;\r\n\r\n\tprivate mirrored = false;\r\n\r\n\tmirrorToWindow(): void {\r\n\t\tif (this.mirrored || typeof window === 'undefined') return;\r\n\t\tthis.mirrored = true;\r\n\r\n\t\tconst w = window as Window & LegacyWindowSlots;\r\n\r\n\t\tw.hostMenuItems = this.hostMenuItems;\r\n\t\tw.__ARIL_PAGE_TITLE__ = this.pageTitle;\r\n\r\n\t\teffect(() => {\r\n\t\t\tw.activeHost = this.activeHost() ?? undefined;\r\n\t\t});\r\n\t\teffect(() => {\r\n\t\t\tw.activeMF = this.activeMF() ?? undefined;\r\n\t\t});\r\n\t\teffect(() => {\r\n\t\t\tw.pluginJson = this.pluginJson();\r\n\t\t});\r\n\t\teffect(() => {\r\n\t\t\tw.routeConfigs = this.routeConfigs() ?? undefined;\r\n\t\t});\r\n\r\n\t\tObject.defineProperty(w, 'ngZone', {\r\n\t\t\tconfigurable: true,\r\n\t\t\tget: () => this.hostNgZone\r\n\t\t});\r\n\t\tObject.defineProperty(w, 'hostRouter', {\r\n\t\t\tconfigurable: true,\r\n\t\t\tget: () => this.hostRouter\r\n\t\t});\r\n\t}\r\n}\r\n\r\n// Module Federation shared config olmadığı durumlar için globalThis slot\r\n// üzerinden tek instance garantisi. Host ve her remote MFE ayrı bundle olsa\r\n// bile aynı JS realm'inde aynı instance'ı okur — eski globalThis sözleşmesinin\r\n// yaptığı görevi tek bir tipli slotta birleştirir.\r\nconst BRIDGE_SLOT = '__arilMfeBridge__';\r\ntype BridgeSlotHost = { [BRIDGE_SLOT]?: MfeBridge };\r\n\r\n// Staggered deploy guard'ı için mutable görünüm: slot'u ESKİ bir aril build'inin MfeBridge'i\r\n// doldurmuş olabilir (app'ler ayrı repolardan bağımsız deploy edilir; alan listesi build'ler\r\n// arası genişler). Sonradan eklenen alanlar eski instance'ta yoktur → backfill edilmezse yeni\r\n// lib'li bundle ilk okumada TypeError alır. readonly compile-time kısıtı burada bilinçli aşılır.\r\ntype BridgeBackfill = {\r\n\tselectionGroups?: MfeBridge['selectionGroups'];\r\n\tselectionLoaded?: MfeBridge['selectionLoaded'];\r\n\tselectionLoading?: MfeBridge['selectionLoading'];\r\n\tselectionFailures?: MfeBridge['selectionFailures'];\r\n\tselectionInitialized?: boolean;\r\n};\r\n\r\nexport const bridge: MfeBridge = (() => {\r\n\tconst g = globalThis as unknown as BridgeSlotHost;\r\n\tif (!g[BRIDGE_SLOT]) {\r\n\t\tg[BRIDGE_SLOT] = new MfeBridge();\r\n\t}\r\n\r\n\tconst backfill = g[BRIDGE_SLOT] as unknown as BridgeBackfill;\r\n\tbackfill.selectionGroups ??= signal<{ [key: string]: SelectionGroupDTO | null }>({});\r\n\tbackfill.selectionLoaded ??= new Map<string, boolean>();\r\n\tbackfill.selectionLoading ??= new Map<string, boolean>();\r\n\tbackfill.selectionFailures ??= new Map<string, number>();\r\n\tbackfill.selectionInitialized ??= false;\r\n\r\n\treturn g[BRIDGE_SLOT]!;\r\n})();\r\n","import { makeEnvironmentProviders } from '@angular/core';\r\n\r\nimport { MfeBridge, bridge } from './mfe-bridge';\r\n\r\nexport function provideMfeBridge() {\r\n\treturn makeEnvironmentProviders([{ provide: MfeBridge, useValue: bridge }]);\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;MAqDa,SAAS,CAAA;AAAtB,IAAA,WAAA,GAAA;AACU,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;AACvC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;AACrC,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAmB,EAAE,CAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,EAAE,CAAC,CAAC;AACjD,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAuB,IAAI,CAAC,CAAC;AAClD,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAS,EAAE,CAAC,CAAC;AAC/B,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAe,EAAE,CAAC,CAAC;AAChD;;;;;;;;;;;;;;;;AAgBG;AACM,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAwD,IAAI,EAAE;AAC3F,YAAA,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,KAAK;AACpF,SAAA,CAAC,CAAC;AAEH;;;;;AAKG;AACM,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAS,EAAE,CAAC,CAAC;AAE1C;;;;AAIG;AACM,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAA8C,EAAE,CAAC,CAAC;AAC1E,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,GAAG,EAAmB,CAAC;AAC7C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,GAAG,EAAmB,CAAC;;AAE9C,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACvD,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;QAE7B,IAAU,CAAA,UAAA,GAAkB,IAAI,CAAC;QACjC,IAAU,CAAA,UAAA,GAAkB,IAAI,CAAC;AACjC;;;;;AAKG;QACH,IAAY,CAAA,YAAA,GAAoB,IAAI,CAAC;QAE7B,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;KAiCzB;IA/BA,cAAc,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;AAC3D,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,MAAM,CAAC,GAAG,MAAoC,CAAC;AAE/C,QAAA,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;AACrC,QAAA,CAAC,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC;QAEvC,MAAM,CAAC,MAAK;YACX,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,SAAS,CAAC;AAC/C,SAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAK;YACX,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,SAAS,CAAC;AAC3C,SAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAK;AACX,YAAA,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AAClC,SAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAK;YACX,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,SAAS,CAAC;AACnD,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE;AAClC,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,GAAG,EAAE,MAAM,IAAI,CAAC,UAAU;AAC1B,SAAA,CAAC,CAAC;AACH,QAAA,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE;AACtC,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,GAAG,EAAE,MAAM,IAAI,CAAC,UAAU;AAC1B,SAAA,CAAC,CAAC;KACH;AACD,CAAA;AAED;AACA;AACA;AACA;AACA,MAAM,WAAW,GAAG,mBAAmB,CAAC;AAe3B,MAAA,MAAM,GAAc,CAAC,MAAK;IACtC,MAAM,CAAC,GAAG,UAAuC,CAAC;AAClD,IAAA,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE;AACpB,QAAA,CAAC,CAAC,WAAW,CAAC,GAAG,IAAI,SAAS,EAAE,CAAC;KACjC;AAED,IAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,WAAW,CAA8B,CAAC;AAC7D,IAAA,QAAQ,CAAC,eAAe,KAAK,MAAM,CAA8C,EAAE,CAAC,CAAC;AACrF,IAAA,QAAQ,CAAC,eAAe,KAAK,IAAI,GAAG,EAAmB,CAAC;AACxD,IAAA,QAAQ,CAAC,gBAAgB,KAAK,IAAI,GAAG,EAAmB,CAAC;AACzD,IAAA,QAAQ,CAAC,iBAAiB,KAAK,IAAI,GAAG,EAAkB,CAAC;AACzD,IAAA,QAAQ,CAAC,oBAAoB,KAAK,KAAK,CAAC;AAExC,IAAA,OAAO,CAAC,CAAC,WAAW,CAAE,CAAC;AACxB,CAAC;;SChLe,gBAAgB,GAAA;AAC/B,IAAA,OAAO,wBAAwB,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC7E;;ACNA;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"aril-boot-bridge.mjs","sources":["../../projects/aril/boot/bridge/src/mfe-bridge.ts","../../projects/aril/boot/bridge/src/provide-mfe-bridge.ts","../../projects/aril/boot/bridge/aril-boot-bridge.ts"],"sourcesContent":["import type { Location } from '@angular/common';\r\nimport { NgZone, Signal, effect, signal } from '@angular/core';\r\nimport type { Router } from '@angular/router';\r\n\r\nimport type { Apps, PluginMenuItem } from 'aril/boot/config/apps';\r\n\r\nexport interface RouteConfig {\r\n\tpath: string;\r\n\tcontent: string;\r\n\tversion: number;\r\n}\r\n\r\nexport interface Breadcrumb {\r\n\tlabel: string;\r\n\turl?: string;\r\n}\r\n\r\n// Selection-group (enum) modeli — cache state (aşağıda `selectionGroups`) bridge'de yaşadığından\r\n// tipi de burada tanımlanır; `theme/layout` bu tipleri re-export eder (bridge↔theme/layout circular\r\n// entry-point'ini önlemek için bağımlılık tek yönlü: theme/layout → bridge).\r\nexport interface SelectionItem {\r\n\tid: number;\r\n\tgroupId: number;\r\n\tselectionKey: string;\r\n\tselectionDisplay: string;\r\n\tshowOrder: number;\r\n\tparentSelectionKey: string;\r\n\tselectionMultiLanguageDisplays?: Record<string, string>;\r\n}\r\n\r\nexport interface SelectionGroupDTO {\r\n\tid: number;\r\n\tgroupName: string;\r\n\tgroupDescription: string;\r\n\tgroupComment: string;\r\n\tloadStrategy: string;\r\n\tdynamicQuery: string;\r\n\tparentGroupId: number;\r\n\tselectionItems: SelectionItem[];\r\n\tversion?: number;\r\n}\r\n\r\nexport interface LegacyWindowSlots {\r\n\tactiveHost?: Apps;\r\n\tactiveMF?: Apps;\r\n\thostMenuItems?: Signal<PluginMenuItem[]>;\r\n\tpluginJson?: Record<string, unknown>;\r\n\trouteConfigs?: RouteConfig[];\r\n\tngZone?: NgZone;\r\n\thostRouter?: Router;\r\n\t__ARIL_PAGE_TITLE__?: Signal<string>;\r\n}\r\n\r\nexport class MfeBridge {\r\n\treadonly activeHost = signal<Apps | null>(null);\r\n\treadonly activeMF = signal<Apps | null>(null);\r\n\treadonly hostMenuItems = signal<PluginMenuItem[]>([]);\r\n\treadonly pluginJson = signal<Record<string, unknown>>({});\r\n\treadonly routeConfigs = signal<RouteConfig[] | null>(null);\r\n\treadonly pageTitle = signal<string>('');\r\n\treadonly breadcrumbs = signal<Breadcrumb[]>([]);\r\n\t/**\r\n\t * Bir MFE Router'ında olan son `NavigationEnd`'in URL'i ve **hangi tab'a ait olduğu**.\r\n\t * MFE içi sayfa içi navigation'lar host Router'a yansımayabiliyor → `NavService` tab\r\n\t * navLink'ini güncellemek için bu signal'ı izler.\r\n\t *\r\n\t * **Neden tabId taşıyor**: Birden fazla tab'ın MFE Router'ı async event tetikleyebilir\r\n\t * (örn. hidden container'daki tab2 `?activeTab=1` replaceState yaparken). `activeTabId`'ye\r\n\t * bakarak update yaparsak yanlış tab'ı kontamine ederiz. Mesajda kaynak tabId'yi taşıyıp\r\n\t * `NavService.syncActiveTabNavLinkForTab(tabId, url)` ile spesifik tab'ı update ederiz.\r\n\t *\r\n\t * **Custom `equal`**: AppComponent her MFE NavigationEnd'de `set({tabId, url})` çağırır;\r\n\t * yeni object reference olduğu için default reference-equality re-emit eder. Bu durumda\r\n\t * aynı tab+url ile sürekli effect tetiklenir → tab navLink'i kullanıcının anasayfaya\r\n\t * geçtiği gibi (host route'lar MFE NavigationEnd tetiklemez ama signal eski değerinde\r\n\t * kalır) state değişikliklerini geri alır. Value-equality ile yalnızca gerçek URL\r\n\t * değişikliklerinde tetiklensin.\r\n\t */\r\n\treadonly activeMFEUrl = signal<{ tabId: string; url: string; title?: string } | null>(null, {\r\n\t\tequal: (a, b) => a?.tabId === b?.tabId && a?.url === b?.url && a?.title === b?.title\r\n\t});\r\n\r\n\t/**\r\n\t * Aktif tab'ın `tabId`'si — `NavService` tab değişimlerinde günceller.\r\n\t * Plugin Router proxy'leri (`provideHostRouter`) bu signal'ı okuyup `navigate`/`navigateByUrl`\r\n\t * çağrılarına `extras.state._tab` enjekte eder → plugin'lerin yaptığı tüm host\r\n\t * navigation'ları otomatik tab-aware olur, Strategy doğru tab handle'ını korur.\r\n\t */\r\n\treadonly activeTabId = signal<string>('');\r\n\r\n\t/**\r\n\t * Enum (SelectionGroup) cache — cross-MFE paylaşımlı. `SelectionGroupService` her MFE/tab'da\r\n\t * ayrı instance olsa da (Module Federation shared yok) hepsi bu tek state üzerinden okur/yazar\r\n\t * → tek enum cache, tek `/versions` çağrısı, MFE'ler arası localStorage ezme yok.\r\n\t */\r\n\treadonly selectionGroups = signal<{ [key: string]: SelectionGroupDTO | null }>({});\r\n\treadonly selectionLoaded = new Map<string, boolean>();\r\n\treadonly selectionLoading = new Map<string, boolean>();\r\n\t/** Key başına ardışık fetch hatası sayısı — limit aşımında fetchEnum o key'i denemeyi bırakır. */\r\n\treadonly selectionFailures = new Map<string, number>();\r\n\tselectionInitialized = false;\r\n\r\n\thostNgZone: NgZone | null = null;\r\n\thostRouter: Router | null = null;\r\n\t/**\r\n\t * Host (shell) `Location` servisi. Host modda MFE/plugin child injector'larından\r\n\t * erişilemez (child Location izole `IsolatedLocationStrategy`'ye bağlı); browser\r\n\t * adres çubuğuna `replaceState` ile yazmak isteyen directive'ler (örn. `?activeTab`\r\n\t * senkronizasyonu) bunu kullanır. `hostRouter` ile aynı pattern.\r\n\t */\r\n\thostLocation: Location | null = null;\r\n\r\n\tprivate mirrored = false;\r\n\r\n\tmirrorToWindow(): void {\r\n\t\tif (this.mirrored || typeof window === 'undefined') return;\r\n\t\tthis.mirrored = true;\r\n\r\n\t\tconst w = window as Window & LegacyWindowSlots;\r\n\r\n\t\tw.hostMenuItems = this.hostMenuItems;\r\n\t\tw.__ARIL_PAGE_TITLE__ = this.pageTitle;\r\n\r\n\t\teffect(() => {\r\n\t\t\tw.activeHost = this.activeHost() ?? undefined;\r\n\t\t});\r\n\t\teffect(() => {\r\n\t\t\tw.activeMF = this.activeMF() ?? undefined;\r\n\t\t});\r\n\t\teffect(() => {\r\n\t\t\tw.pluginJson = this.pluginJson();\r\n\t\t});\r\n\t\teffect(() => {\r\n\t\t\tw.routeConfigs = this.routeConfigs() ?? undefined;\r\n\t\t});\r\n\r\n\t\tObject.defineProperty(w, 'ngZone', {\r\n\t\t\tconfigurable: true,\r\n\t\t\tget: () => this.hostNgZone\r\n\t\t});\r\n\t\tObject.defineProperty(w, 'hostRouter', {\r\n\t\t\tconfigurable: true,\r\n\t\t\tget: () => this.hostRouter\r\n\t\t});\r\n\t}\r\n}\r\n\r\n// Module Federation shared config olmadığı durumlar için globalThis slot\r\n// üzerinden tek instance garantisi. Host ve her remote MFE ayrı bundle olsa\r\n// bile aynı JS realm'inde aynı instance'ı okur — eski globalThis sözleşmesinin\r\n// yaptığı görevi tek bir tipli slotta birleştirir.\r\nconst BRIDGE_SLOT = '__arilMfeBridge__';\r\ntype BridgeSlotHost = { [BRIDGE_SLOT]?: MfeBridge };\r\n\r\n// Staggered deploy guard'ı için mutable görünüm: slot'u ESKİ bir aril build'inin MfeBridge'i\r\n// doldurmuş olabilir (app'ler ayrı repolardan bağımsız deploy edilir; alan listesi build'ler\r\n// arası genişler). Sonradan eklenen alanlar eski instance'ta yoktur → backfill edilmezse yeni\r\n// lib'li bundle ilk okumada TypeError alır. readonly compile-time kısıtı burada bilinçli aşılır.\r\ntype BridgeBackfill = {\r\n\tselectionGroups?: MfeBridge['selectionGroups'];\r\n\tselectionLoaded?: MfeBridge['selectionLoaded'];\r\n\tselectionLoading?: MfeBridge['selectionLoading'];\r\n\tselectionFailures?: MfeBridge['selectionFailures'];\r\n\tselectionInitialized?: boolean;\r\n};\r\n\r\nexport const bridge: MfeBridge = (() => {\r\n\tconst g = globalThis as unknown as BridgeSlotHost;\r\n\tif (!g[BRIDGE_SLOT]) {\r\n\t\tg[BRIDGE_SLOT] = new MfeBridge();\r\n\t}\r\n\r\n\tconst backfill = g[BRIDGE_SLOT] as unknown as BridgeBackfill;\r\n\tbackfill.selectionGroups ??= signal<{ [key: string]: SelectionGroupDTO | null }>({});\r\n\tbackfill.selectionLoaded ??= new Map<string, boolean>();\r\n\tbackfill.selectionLoading ??= new Map<string, boolean>();\r\n\tbackfill.selectionFailures ??= new Map<string, number>();\r\n\tbackfill.selectionInitialized ??= false;\r\n\r\n\treturn g[BRIDGE_SLOT]!;\r\n})();\r\n","import { makeEnvironmentProviders } from '@angular/core';\r\n\r\nimport { MfeBridge, bridge } from './mfe-bridge';\r\n\r\nexport function provideMfeBridge() {\r\n\treturn makeEnvironmentProviders([{ provide: MfeBridge, useValue: bridge }]);\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aril-boot-config-api.mjs","sources":["../../projects/aril/boot/config/api/src/interfaces.ts","../../projects/aril/boot/config/api/src/api.service.ts","../../projects/aril/boot/config/api/aril-boot-config-api.ts"],"sourcesContent":["import { Apps } from 'aril/boot/config/apps';\r\n\r\nexport enum AppsRoutes {\r\n\tMNG_BASE_URL = 'mngBaseUrl',\r\n}\r\n\r\nexport interface KeycloakConfig {\r\n\turl: string;\r\n\trealm: string;\r\n\tclientId: string;\r\n}\r\n\r\nexport class ApiConfigsFactory {\r\n\tapi: string = '';\r\n\tfromMail: string = '';\r\n\tmwApi: string = '';\r\n\taiApi: string = '';\r\n\tstatusApi: string = '';\r\n\tenvironment: string = '';\r\n\tkeycloak!: Keycloak.KeycloakConfig;\r\n\troutes: Record<AppsRoutes, string> = {\r\n\t\tmngBaseUrl: '',\r\n\t};\r\n\tprefixMap: Record<Apps, string> = {\r\n\t\t[Apps.THOR]: '',\r\n\t\t[Apps.CRM]: '',\r\n\t\t[Apps.WDM]: '',\r\n\t\t[Apps.BILLING]: '',\r\n\t\t[Apps.PAYMENT]: '',\r\n\t\t[Apps.YEAP]: '',\r\n\t\t[Apps.MW]: '',\r\n\t\t[Apps.LENA]: '',\r\n\t\t[Apps.HES]: '',\r\n\t\t[Apps.CTS]: '',\r\n\t\t[Apps.SIS]: '',\r\n\t\t[Apps.MNG]: '',\r\n\t\t[Apps.STATE_MACHINE]: '',\r\n\t\t[Apps.MDM]:'',\r\n\t\t[Apps.REPORT]: '',\r\n\t\t[Apps.LGC]: '',\r\n\t\t[Apps.DMS]: '',\r\n\t\t[Apps.EVENT_GATEWAY]: ''\r\n\t};\r\n\tgetExternalAppEndpoint(appName: Apps): string {\r\n\t\tconst prefix = this.prefixMap[appName] || this.prefixMap[Apps.MNG];\r\n\t\treturn `${new URL(this.api).origin}/${prefix}`;\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { isDevMode } from '@angular/core';\r\n\r\nimport { KeycloakEventType, KeycloakService } from 'keycloak-angular';\r\nimport { EMPTY, catchError, finalize, firstValueFrom, from, fromEvent, switchMap, takeUntil, tap } from 'rxjs';\r\n\r\nimport { RouteConfig, bridge } from 'aril/boot/bridge';\r\nimport { Apps, MicroAppService } from 'aril/boot/config/apps';\r\n\r\nimport { ApiConfigsFactory } from './interfaces';\r\n\r\nexport const API_CONFIGS = new ApiConfigsFactory();\r\n\r\nexport const loadApiConfigs =\r\n\t(httpClient: HttpClient, keycloak: KeycloakService, appName: string, microAppService?: MicroAppService) => () =>\r\n\t\tnew Promise<void>((resolve) =>\r\n\t\t\thttpClient\r\n\t\t\t\t.get<ApiConfigsFactory>(isDevMode() ? './assets/local-configs/api.local.json' : './api.json')\r\n\t\t\t\t.pipe(\r\n\t\t\t\t\tswitchMap((configs) => {\r\n\t\t\t\t\t\tbridge.hostMenuItems.set([]);\r\n\t\t\t\t\t\tbridge.pluginJson.set({});\r\n\r\n\t\t\t\t\t\tObject.assign(API_CONFIGS, { ...configs });\r\n\r\n\t\t\t\t\t\treturn from(\r\n\t\t\t\t\t\t\tkeycloak.init({\r\n\t\t\t\t\t\t\t\tconfig: API_CONFIGS.keycloak,\r\n\t\t\t\t\t\t\t\tloadUserProfileAtStartUp: true,\r\n\t\t\t\t\t\t\t\tinitOptions: { onLoad: 'login-required', checkLoginIframe: false },\r\n\t\t\t\t\t\t\t\tbearerExcludedUrls: ['/assets']\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t).pipe(\r\n\t\t\t\t\t\t\tfinalize(() =>\r\n\t\t\t\t\t\t\t\taddEventListener('module-ready', (event) => {\r\n\t\t\t\t\t\t\t\t\tconst app = (event as CustomEvent).detail;\r\n\t\t\t\t\t\t\t\t\tdispatchEvent(new CustomEvent(`${app}:init-keycloak`, { detail: keycloak }));\r\n\r\n\t\t\t\t\t\t\t\t\tkeycloak.keycloakEvents$.pipe(takeUntil(fromEvent(window, 'beforeunload'))).subscribe((e) => {\r\n\t\t\t\t\t\t\t\t\t\tif (e.type === KeycloakEventType.OnAuthRefreshSuccess) {\r\n\t\t\t\t\t\t\t\t\t\t\tdispatchEvent(new CustomEvent(`${app}:update-keycloak`, { detail: keycloak }));\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t// Browser arka plandayken refresh edilince token endpoint 400 (invalid_grant /\r\n\t\t\t\t\t\t\t// süresi dolmuş refresh token / silent-SSO timeout) dönüp `keycloak.init()` reject\r\n\t\t\t\t\t\t\t// olabiliyor. Yakalanmazsa \"ERROR undefined\" + auth'suz bozuk açılış oluyordu.\r\n\t\t\t\t\t\t\t// Hatayı yakalayıp temiz yeniden login'e yönlendir (Keycloak login → mevcut URL'e döner).\r\n\t\t\t\t\t\t\tcatchError((err) => {\r\n\t\t\t\t\t\t\t\tconsole.error(\"Keycloak init başarısız — yeniden login'e yönlendiriliyor:\", err);\r\n\t\t\t\t\t\t\t\tvoid keycloak.login();\r\n\t\t\t\t\t\t\t\treturn EMPTY;\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tswitchMap(\r\n\t\t\t\t\t\t() =>\r\n\t\t\t\t\t\t\tmicroAppService?.init(httpClient, API_CONFIGS.api).pipe(\r\n\t\t\t\t\t\t\t\ttap((result) => {\r\n\t\t\t\t\t\t\t\t\tbridge.hostMenuItems.set(result.menuItems);\r\n\t\t\t\t\t\t\t\t\tbridge.pluginJson.set(result.plugins);\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t) ?? EMPTY\r\n\t\t\t\t\t)\r\n\t\t\t\t)\r\n\t\t\t\t.subscribe()\r\n\t\t\t\t.add(resolve)\r\n\t\t);\r\n\r\n/**\r\n * only works when isHostMode is true\r\n * micro-app access its own api.json file when opened in host\r\n */\r\nexport function setApiConfigOnMFEMode(\r\n\thttpClient: HttpClient,\r\n\tkeycloak: KeycloakService,\r\n\tappName: Apps\r\n): () => Promise<any> {\r\n\treturn () => {\r\n\t\tconst observable$ = httpClient\r\n\t\t\t.get<ApiConfigsFactory>(isDevMode() ? './assets/local-configs/api.local.json' : './api.json')\r\n\t\t\t.pipe(\r\n\t\t\t\ttap((configs) => {\r\n\t\t\t\t\tObject.assign(API_CONFIGS, { ...configs });\r\n\t\t\t\t\tif (appName !== Apps.THOR && appName !== Apps.YEAP) {\r\n\t\t\t\t\t\tAPI_CONFIGS.api = API_CONFIGS.getExternalAppEndpoint(appName);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t);\r\n\r\n\t\treturn firstValueFrom(observable$);\r\n\t};\r\n}\r\n\r\nexport const loadInitData = (httpClient: HttpClient) => () =>\r\n\tnew Promise<void>((resolve, _reject) => {\r\n\t\tconst endpoint = API_CONFIGS.api + '/ui-route-content-configs/all';\r\n\t\thttpClient.get<RouteConfig[]>(endpoint).subscribe({\r\n\t\t\tnext: (data) => {\r\n\t\t\t\tbridge.routeConfigs.set(data);\r\n\t\t\t\tresolve();\r\n\t\t\t},\r\n\t\t\terror: (err) => {\r\n\t\t\t\tconsole.error(`Failed to load init data from ${endpoint}:`, err);\r\n\t\t\t\tresolve();\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"aril-boot-config-api.mjs","sources":["../../projects/aril/boot/config/api/src/interfaces.ts","../../projects/aril/boot/config/api/src/api.service.ts","../../projects/aril/boot/config/api/aril-boot-config-api.ts"],"sourcesContent":["import { Apps } from 'aril/boot/config/apps';\r\n\r\nexport enum AppsRoutes {\r\n\tMNG_BASE_URL = 'mngBaseUrl',\r\n}\r\n\r\nexport interface KeycloakConfig {\r\n\turl: string;\r\n\trealm: string;\r\n\tclientId: string;\r\n}\r\n\r\nexport class ApiConfigsFactory {\r\n\tapi: string = '';\r\n\tfromMail: string = '';\r\n\tmwApi: string = '';\r\n\taiApi: string = '';\r\n\tstatusApi: string = '';\r\n\tenvironment: string = '';\r\n\tkeycloak!: Keycloak.KeycloakConfig;\r\n\troutes: Record<AppsRoutes, string> = {\r\n\t\tmngBaseUrl: '',\r\n\t};\r\n\tprefixMap: Record<Apps, string> = {\r\n\t\t[Apps.THOR]: '',\r\n\t\t[Apps.CRM]: '',\r\n\t\t[Apps.WDM]: '',\r\n\t\t[Apps.BILLING]: '',\r\n\t\t[Apps.PAYMENT]: '',\r\n\t\t[Apps.YEAP]: '',\r\n\t\t[Apps.MW]: '',\r\n\t\t[Apps.LENA]: '',\r\n\t\t[Apps.HES]: '',\r\n\t\t[Apps.CTS]: '',\r\n\t\t[Apps.SIS]: '',\r\n\t\t[Apps.MNG]: '',\r\n\t\t[Apps.STATE_MACHINE]: '',\r\n\t\t[Apps.MDM]:'',\r\n\t\t[Apps.REPORT]: '',\r\n\t\t[Apps.LGC]: '',\r\n\t\t[Apps.DMS]: '',\r\n\t\t[Apps.EVENT_GATEWAY]: ''\r\n\t};\r\n\tgetExternalAppEndpoint(appName: Apps): string {\r\n\t\tconst prefix = this.prefixMap[appName] || this.prefixMap[Apps.MNG];\r\n\t\treturn `${new URL(this.api).origin}/${prefix}`;\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { isDevMode } from '@angular/core';\r\n\r\nimport { KeycloakEventType, KeycloakService } from 'keycloak-angular';\r\nimport { EMPTY, catchError, finalize, firstValueFrom, from, fromEvent, switchMap, takeUntil, tap } from 'rxjs';\r\n\r\nimport { RouteConfig, bridge } from 'aril/boot/bridge';\r\nimport { Apps, MicroAppService } from 'aril/boot/config/apps';\r\n\r\nimport { ApiConfigsFactory } from './interfaces';\r\n\r\nexport const API_CONFIGS = new ApiConfigsFactory();\r\n\r\nexport const loadApiConfigs =\r\n\t(httpClient: HttpClient, keycloak: KeycloakService, appName: string, microAppService?: MicroAppService) => () =>\r\n\t\tnew Promise<void>((resolve) =>\r\n\t\t\thttpClient\r\n\t\t\t\t.get<ApiConfigsFactory>(isDevMode() ? './assets/local-configs/api.local.json' : './api.json')\r\n\t\t\t\t.pipe(\r\n\t\t\t\t\tswitchMap((configs) => {\r\n\t\t\t\t\t\tbridge.hostMenuItems.set([]);\r\n\t\t\t\t\t\tbridge.pluginJson.set({});\r\n\r\n\t\t\t\t\t\tObject.assign(API_CONFIGS, { ...configs });\r\n\r\n\t\t\t\t\t\treturn from(\r\n\t\t\t\t\t\t\tkeycloak.init({\r\n\t\t\t\t\t\t\t\tconfig: API_CONFIGS.keycloak,\r\n\t\t\t\t\t\t\t\tloadUserProfileAtStartUp: true,\r\n\t\t\t\t\t\t\t\tinitOptions: { onLoad: 'login-required', checkLoginIframe: false },\r\n\t\t\t\t\t\t\t\tbearerExcludedUrls: ['/assets']\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t).pipe(\r\n\t\t\t\t\t\t\tfinalize(() =>\r\n\t\t\t\t\t\t\t\taddEventListener('module-ready', (event) => {\r\n\t\t\t\t\t\t\t\t\tconst app = (event as CustomEvent).detail;\r\n\t\t\t\t\t\t\t\t\tdispatchEvent(new CustomEvent(`${app}:init-keycloak`, { detail: keycloak }));\r\n\r\n\t\t\t\t\t\t\t\t\tkeycloak.keycloakEvents$.pipe(takeUntil(fromEvent(window, 'beforeunload'))).subscribe((e) => {\r\n\t\t\t\t\t\t\t\t\t\tif (e.type === KeycloakEventType.OnAuthRefreshSuccess) {\r\n\t\t\t\t\t\t\t\t\t\t\tdispatchEvent(new CustomEvent(`${app}:update-keycloak`, { detail: keycloak }));\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t// Browser arka plandayken refresh edilince token endpoint 400 (invalid_grant /\r\n\t\t\t\t\t\t\t// süresi dolmuş refresh token / silent-SSO timeout) dönüp `keycloak.init()` reject\r\n\t\t\t\t\t\t\t// olabiliyor. Yakalanmazsa \"ERROR undefined\" + auth'suz bozuk açılış oluyordu.\r\n\t\t\t\t\t\t\t// Hatayı yakalayıp temiz yeniden login'e yönlendir (Keycloak login → mevcut URL'e döner).\r\n\t\t\t\t\t\t\tcatchError((err) => {\r\n\t\t\t\t\t\t\t\tconsole.error(\"Keycloak init başarısız — yeniden login'e yönlendiriliyor:\", err);\r\n\t\t\t\t\t\t\t\tvoid keycloak.login();\r\n\t\t\t\t\t\t\t\treturn EMPTY;\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tswitchMap(\r\n\t\t\t\t\t\t() =>\r\n\t\t\t\t\t\t\tmicroAppService?.init(httpClient, API_CONFIGS.api).pipe(\r\n\t\t\t\t\t\t\t\ttap((result) => {\r\n\t\t\t\t\t\t\t\t\tbridge.hostMenuItems.set(result.menuItems);\r\n\t\t\t\t\t\t\t\t\tbridge.pluginJson.set(result.plugins);\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t) ?? EMPTY\r\n\t\t\t\t\t)\r\n\t\t\t\t)\r\n\t\t\t\t.subscribe()\r\n\t\t\t\t.add(resolve)\r\n\t\t);\r\n\r\n/**\r\n * only works when isHostMode is true\r\n * micro-app access its own api.json file when opened in host\r\n */\r\nexport function setApiConfigOnMFEMode(\r\n\thttpClient: HttpClient,\r\n\tkeycloak: KeycloakService,\r\n\tappName: Apps\r\n): () => Promise<any> {\r\n\treturn () => {\r\n\t\tconst observable$ = httpClient\r\n\t\t\t.get<ApiConfigsFactory>(isDevMode() ? './assets/local-configs/api.local.json' : './api.json')\r\n\t\t\t.pipe(\r\n\t\t\t\ttap((configs) => {\r\n\t\t\t\t\tObject.assign(API_CONFIGS, { ...configs });\r\n\t\t\t\t\tif (appName !== Apps.THOR && appName !== Apps.YEAP) {\r\n\t\t\t\t\t\tAPI_CONFIGS.api = API_CONFIGS.getExternalAppEndpoint(appName);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t);\r\n\r\n\t\treturn firstValueFrom(observable$);\r\n\t};\r\n}\r\n\r\nexport const loadInitData = (httpClient: HttpClient) => () =>\r\n\tnew Promise<void>((resolve, _reject) => {\r\n\t\tconst endpoint = API_CONFIGS.api + '/ui-route-content-configs/all';\r\n\t\thttpClient.get<RouteConfig[]>(endpoint).subscribe({\r\n\t\t\tnext: (data) => {\r\n\t\t\t\tbridge.routeConfigs.set(data);\r\n\t\t\t\tresolve();\r\n\t\t\t},\r\n\t\t\terror: (err) => {\r\n\t\t\t\tconsole.error(`Failed to load init data from ${endpoint}:`, err);\r\n\t\t\t\tresolve();\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, Injectable, ElementRef,
|
|
2
|
+
import { inject, Injectable, ElementRef, Input, ViewChild, Component, Renderer2, ViewEncapsulation, isDevMode, DestroyRef, signal, HostListener, Directive } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/router';
|
|
4
4
|
import { Router, NavigationEnd, DefaultUrlSerializer } from '@angular/router';
|
|
5
5
|
import { WebComponentWrapper, startsWith } from '@angular-architects/module-federation-tools';
|
|
@@ -68,10 +68,10 @@ class AuthGuard extends KeycloakAuthGuard {
|
|
|
68
68
|
}
|
|
69
69
|
return this.authenticated;
|
|
70
70
|
}
|
|
71
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
72
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
|
71
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
72
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthGuard, providedIn: 'root' }); }
|
|
73
73
|
}
|
|
74
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
74
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthGuard, decorators: [{
|
|
75
75
|
type: Injectable,
|
|
76
76
|
args: [{ providedIn: 'root' }]
|
|
77
77
|
}], ctorParameters: () => [] });
|
|
@@ -258,10 +258,10 @@ class ArilWebComponentWrapper {
|
|
|
258
258
|
this.routeSub = undefined;
|
|
259
259
|
this.isDestroyed = true;
|
|
260
260
|
}
|
|
261
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
262
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
261
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ArilWebComponentWrapper, deps: [{ token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
262
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ArilWebComponentWrapper, selector: "mft-wc-wrapper", inputs: { options: "options", props: "props", events: "events" }, viewQueries: [{ propertyName: "vc", first: true, predicate: ["vc"], descendants: true, read: ElementRef, static: true }], usesOnChanges: true, ngImport: i0, template: '<div #vc></div>', isInline: true }); }
|
|
263
263
|
}
|
|
264
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
264
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ArilWebComponentWrapper, decorators: [{
|
|
265
265
|
type: Component,
|
|
266
266
|
args: [{
|
|
267
267
|
// eslint-disable-next-line @angular-eslint/component-selector
|
|
@@ -296,10 +296,10 @@ class ShadowDOMWrapperComponent extends WebComponentWrapper {
|
|
|
296
296
|
this.renderer.appendChild(shadowRoot, link);
|
|
297
297
|
});
|
|
298
298
|
}
|
|
299
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
300
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
299
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ShadowDOMWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
300
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ShadowDOMWrapperComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "vc", first: true, predicate: ["vc"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: '<div #vc></div>', isInline: true, encapsulation: i0.ViewEncapsulation.ShadowDom }); }
|
|
301
301
|
}
|
|
302
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
302
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ShadowDOMWrapperComponent, decorators: [{
|
|
303
303
|
type: Component,
|
|
304
304
|
args: [{
|
|
305
305
|
standalone: true,
|
|
@@ -383,10 +383,10 @@ class MicroAppService {
|
|
|
383
383
|
}
|
|
384
384
|
return permittedRoles.some((role) => this.userRoles.includes(role));
|
|
385
385
|
}
|
|
386
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
387
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
|
386
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MicroAppService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
387
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MicroAppService, providedIn: 'root' }); }
|
|
388
388
|
}
|
|
389
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
389
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MicroAppService, decorators: [{
|
|
390
390
|
type: Injectable,
|
|
391
391
|
args: [{ providedIn: 'root' }]
|
|
392
392
|
}] });
|
|
@@ -426,10 +426,10 @@ class RouteCloseService {
|
|
|
426
426
|
deleteStoredRoute(key) {
|
|
427
427
|
this.deleteRouteSubject.next(key);
|
|
428
428
|
}
|
|
429
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
430
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
|
429
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RouteCloseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
430
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RouteCloseService, providedIn: 'root' }); }
|
|
431
431
|
}
|
|
432
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
432
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RouteCloseService, decorators: [{
|
|
433
433
|
type: Injectable,
|
|
434
434
|
args: [{
|
|
435
435
|
providedIn: 'root',
|
|
@@ -1032,10 +1032,10 @@ class CustomRouteReuseStrategy {
|
|
|
1032
1032
|
console.log(`[Strategy] shouldReuseRoute normal → ${shouldReuse}. future="${futureKey}"(${futureComp}) curr="${currKey}"(${currComp})`);
|
|
1033
1033
|
return shouldReuse;
|
|
1034
1034
|
}
|
|
1035
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
1036
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
|
1035
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomRouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1036
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomRouteReuseStrategy, providedIn: 'root' }); }
|
|
1037
1037
|
}
|
|
1038
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
1038
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomRouteReuseStrategy, decorators: [{
|
|
1039
1039
|
type: Injectable,
|
|
1040
1040
|
args: [{
|
|
1041
1041
|
providedIn: 'root'
|
|
@@ -1748,10 +1748,10 @@ class NavService {
|
|
|
1748
1748
|
console.log(`[NavService] cleanupTabHandle remoteName="${remoteName}" tabId="${item.tabId}"`);
|
|
1749
1749
|
this.routeCloseService.deleteStoredRoute(`mfe:${remoteName}:${item.tabId}`);
|
|
1750
1750
|
}
|
|
1751
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
1752
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
|
1751
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NavService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1752
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NavService, providedIn: 'root' }); }
|
|
1753
1753
|
}
|
|
1754
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
1754
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NavService, decorators: [{
|
|
1755
1755
|
type: Injectable,
|
|
1756
1756
|
args: [{
|
|
1757
1757
|
providedIn: 'root'
|
|
@@ -1851,10 +1851,10 @@ class NavLinkContextMenuService {
|
|
|
1851
1851
|
];
|
|
1852
1852
|
this.cm.show(event);
|
|
1853
1853
|
}
|
|
1854
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
1855
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
|
1854
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NavLinkContextMenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1855
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NavLinkContextMenuService, providedIn: 'root' }); }
|
|
1856
1856
|
}
|
|
1857
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
1857
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NavLinkContextMenuService, decorators: [{
|
|
1858
1858
|
type: Injectable,
|
|
1859
1859
|
args: [{ providedIn: 'root' }]
|
|
1860
1860
|
}] });
|
|
@@ -1884,10 +1884,10 @@ class NavLinkDirective {
|
|
|
1884
1884
|
event.preventDefault();
|
|
1885
1885
|
this.contextMenuService.open(event, this.navItem);
|
|
1886
1886
|
}
|
|
1887
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
1888
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.
|
|
1887
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NavLinkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1888
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: NavLinkDirective, isStandalone: true, selector: "[arilNavLink]", inputs: { navItem: ["arilNavLink", "navItem"] }, host: { listeners: { "contextmenu": "onContextMenu($event)" } }, ngImport: i0 }); }
|
|
1889
1889
|
}
|
|
1890
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
1890
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NavLinkDirective, decorators: [{
|
|
1891
1891
|
type: Directive,
|
|
1892
1892
|
args: [{
|
|
1893
1893
|
standalone: true,
|
|
@@ -1940,10 +1940,10 @@ class TabAwareUrlSerializer extends DefaultUrlSerializer {
|
|
|
1940
1940
|
.join('&');
|
|
1941
1941
|
return query ? `${path}?${query}${fragment}` : `${path}${fragment}`;
|
|
1942
1942
|
}
|
|
1943
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
1944
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
|
1943
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TabAwareUrlSerializer, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1944
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TabAwareUrlSerializer, providedIn: 'root' }); }
|
|
1945
1945
|
}
|
|
1946
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
1946
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TabAwareUrlSerializer, decorators: [{
|
|
1947
1947
|
type: Injectable,
|
|
1948
1948
|
args: [{ providedIn: 'root' }]
|
|
1949
1949
|
}] });
|