aril 0.0.48 → 0.0.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +41 -0
- package/boot/config/api/{index.d.ts → index.ts} +1 -1
- package/boot/config/api/ng-package.json +6 -0
- package/boot/config/api/src/api.service.ts +57 -0
- package/boot/config/api/src/interfaces.ts +13 -0
- package/boot/config/apps/{index.d.ts → index.ts} +2 -2
- package/boot/config/apps/ng-package.json +6 -0
- package/boot/config/apps/src/apps.service.ts +64 -0
- package/boot/config/apps/src/interfaces.ts +27 -0
- package/boot/config/apps/src/showdowDOMWrapper.ts +28 -0
- package/boot/config/plugins/{index.d.ts → index.ts} +2 -2
- package/boot/config/plugins/ng-package.json +6 -0
- package/boot/config/plugins/src/getNgZone.ts +9 -0
- package/boot/config/plugins/src/interfaces.ts +11 -0
- package/boot/config/plugins/src/plugins.service.ts +81 -0
- package/boot/host/{index.d.ts → index.ts} +1 -1
- package/boot/host/ng-package.json +6 -0
- package/boot/host/src/app.component.ts +27 -0
- package/boot/host/src/bootstrap.ts +61 -0
- package/boot/index.ts +1 -0
- package/boot/mfe/{index.d.ts → index.ts} +1 -1
- package/boot/mfe/ng-package.json +6 -0
- package/boot/mfe/src/app.component.ts +57 -0
- package/boot/mfe/src/appComponentLoader.ts +4 -0
- package/boot/mfe/src/bootstrap.ts +78 -0
- package/boot/mfe/src/loadStyles.ts +19 -0
- package/boot/ng-package.json +6 -0
- package/http/{index.d.ts → index.ts} +13 -8
- package/http/lib/enums.ts +13 -0
- package/http/lib/interfaces.ts +38 -0
- package/http/ng-package.json +6 -0
- package/http/src/httpBackend.ts +12 -0
- package/http/src/httpClient.ts +20 -0
- package/http/src/interceptor/state-machine.interceptor.ts +9 -0
- package/http/src/serviceBase.ts +91 -0
- package/http/src/serviceMockBase.ts +12 -0
- package/http/src/serviceRequest.ts +26 -0
- package/http/src/serviceStateMethods.ts +155 -0
- package/i18n/{index.d.ts → index.ts} +5 -5
- package/i18n/ng-package.json +6 -0
- package/i18n/src/folder-name-token.ts +3 -0
- package/i18n/src/i18n.module.ts +11 -0
- package/i18n/src/loader.ts +16 -0
- package/i18n/src/provideI18n.ts +18 -0
- package/i18n/src/provideScope.ts +20 -0
- package/keycloak/{index.d.ts → index.ts} +3 -3
- package/keycloak/ng-package.json +6 -0
- package/keycloak/src/auth.guard.ts +37 -0
- package/keycloak/src/auth.interceptor.ts +13 -0
- package/keycloak/src/keycloak.manager.ts +89 -0
- package/ng-package.json +14 -0
- package/package.json +31 -314
- package/project.json +39 -0
- package/{public-api.d.ts → public-api.ts} +2 -2
- package/tsconfig.lib.json +12 -0
- package/tsconfig.lib.prod.json +10 -0
- package/tsconfig.spec.json +9 -0
- package/ui/autoComplete/{index.d.ts → index.ts} +1 -1
- package/ui/autoComplete/ng-package.json +6 -0
- package/ui/autoComplete/src/auto-complete.component.html +11 -0
- package/ui/autoComplete/src/auto-complete.component.ts +92 -0
- package/ui/autoComplete/src/interfaces.ts +30 -0
- package/ui/badge/{index.d.ts → index.ts} +1 -1
- package/ui/badge/ng-package.json +6 -0
- package/ui/badge/src/badge.component.html +3 -0
- package/ui/badge/src/badge.component.ts +19 -0
- package/ui/button/{index.d.ts → index.ts} +2 -2
- package/ui/button/ng-package.json +6 -0
- package/ui/button/src/button.component.html +10 -0
- package/ui/button/src/button.component.ts +43 -0
- package/ui/button/src/split-button.component.html +2 -0
- package/ui/button/src/split-button.component.ts +17 -0
- package/ui/calendar/{index.d.ts → index.ts} +1 -1
- package/ui/calendar/ng-package.json +6 -0
- package/ui/calendar/src/calendar.component.html +31 -0
- package/ui/calendar/src/calendar.component.ts +136 -0
- package/ui/checkbox/{index.d.ts → index.ts} +2 -2
- package/ui/checkbox/ng-package.json +6 -0
- package/ui/checkbox/src/check-box.component.html +9 -0
- package/ui/checkbox/src/check-box.component.ts +19 -0
- package/ui/checkbox/src/tri-state-checkbox.component.html +7 -0
- package/ui/checkbox/src/tri-state-checkbox.component.ts +20 -0
- package/ui/dxField/{index.d.ts → index.ts} +1 -1
- package/ui/dxField/ng-package.json +6 -0
- package/ui/dxField/src/dx-field.component.html +8 -0
- package/ui/dxField/src/dx-field.component.ts +16 -0
- package/ui/field/{index.d.ts → index.ts} +1 -1
- package/ui/field/ng-package.json +6 -0
- package/ui/field/src/field.component.html +22 -0
- package/ui/field/src/field.component.ts +46 -0
- package/ui/fileUpload/{index.d.ts → index.ts} +1 -1
- package/ui/fileUpload/ng-package.json +6 -0
- package/ui/fileUpload/src/file-upload.component.html +38 -0
- package/ui/fileUpload/src/file-upload.component.ts +72 -0
- package/ui/form/index.ts +18 -0
- package/ui/form/ng-package.json +6 -0
- package/ui/form/src/form-submit-button.component.html +12 -0
- package/ui/form/src/form-submit-button.component.ts +36 -0
- package/ui/form/src/form.component.ts +20 -0
- package/ui/index.ts +1 -0
- package/ui/lib/{index.d.ts → index.ts} +16 -11
- package/ui/lib/ng-package.json +6 -0
- package/ui/lib/src/form/form-error-message.component.ts +25 -0
- package/ui/lib/src/form/form-error-message.directive.ts +32 -0
- package/ui/lib/src/form/form-field-builder.ts +31 -0
- package/ui/lib/src/form/form-validation.ts +14 -0
- package/ui/lib/src/grid/flex-grid.directive.ts +10 -0
- package/ui/lib/src/input/baseInput.ts +30 -0
- package/ui/lib/src/input/common-input-validators.service.ts +57 -0
- package/ui/lib/src/input/dx-input-error-message.pipe.ts +16 -0
- package/ui/lib/src/input/input-disabled.directive.ts +15 -0
- package/ui/lib/src/input/input-error-message.pipe.ts +39 -0
- package/ui/lib/src/input/input-transforms.ts +11 -0
- package/ui/lib/src/input/value-accessor.directive.ts +27 -0
- package/ui/mask/{index.d.ts → index.ts} +1 -1
- package/ui/mask/ng-package.json +6 -0
- package/ui/mask/src/mask.component.css +23 -0
- package/ui/mask/src/mask.component.html +17 -0
- package/ui/mask/src/mask.component.ts +34 -0
- package/ui/ng-package.json +6 -0
- package/ui/number/{index.d.ts → index.ts} +1 -1
- package/ui/number/ng-package.json +6 -0
- package/ui/number/src/number.component.html +25 -0
- package/ui/number/src/number.component.ts +34 -0
- package/ui/overlayPanel/{index.d.ts → index.ts} +1 -1
- package/ui/overlayPanel/ng-package.json +6 -0
- package/ui/overlayPanel/src/overlay-panel.component.html +5 -0
- package/ui/overlayPanel/src/overlay-panel.component.ts +16 -0
- package/ui/panel/{index.d.ts → index.ts} +1 -1
- package/ui/panel/ng-package.json +6 -0
- package/ui/panel/src/panel.component.css +25 -0
- package/ui/panel/src/panel.component.html +38 -0
- package/ui/panel/src/panel.component.ts +24 -0
- package/ui/password/{index.d.ts → index.ts} +1 -1
- package/ui/password/ng-package.json +6 -0
- package/ui/password/src/password.component.html +24 -0
- package/ui/password/src/password.component.ts +22 -0
- package/ui/radioButton/{index.d.ts → index.ts} +1 -1
- package/ui/radioButton/ng-package.json +6 -0
- package/ui/radioButton/src/radio-button.component.html +17 -0
- package/ui/radioButton/src/radio-button.component.ts +36 -0
- package/ui/selectBox/{index.d.ts → index.ts} +1 -1
- package/ui/selectBox/ng-package.json +6 -0
- package/ui/selectBox/src/interfaces.ts +41 -0
- package/ui/selectBox/src/select-box.component.html +17 -0
- package/ui/selectBox/src/select-box.component.ts +69 -0
- package/ui/switch/{index.d.ts → index.ts} +1 -1
- package/ui/switch/ng-package.json +6 -0
- package/ui/switch/src/switch.component.html +7 -0
- package/ui/switch/src/switch.component.ts +18 -0
- package/ui/table/index.ts +34 -0
- package/ui/table/ng-package.json +6 -0
- package/ui/table/src/i18n.ts +55 -0
- package/ui/table/src/table-column.component.ts +28 -0
- package/ui/table/src/table.component.html +136 -0
- package/ui/table/src/table.component.ts +99 -0
- package/ui/tagBox/{index.d.ts → index.ts} +1 -1
- package/ui/tagBox/ng-package.json +6 -0
- package/ui/tagBox/src/tag-box.component.html +21 -0
- package/ui/tagBox/src/tag-box.component.ts +53 -0
- package/ui/text/{index.d.ts → index.ts} +1 -1
- package/ui/text/ng-package.json +6 -0
- package/ui/text/src/text.component.html +21 -0
- package/ui/text/src/text.component.ts +47 -0
- package/ui/textArea/{index.d.ts → index.ts} +1 -1
- package/ui/textArea/ng-package.json +6 -0
- package/ui/textArea/src/text-area.component.html +11 -0
- package/ui/textArea/src/text-area.component.ts +21 -0
- package/ui/toggle-button/index.ts +1 -0
- package/ui/toggle-button/ng-package.json +6 -0
- package/ui/toggle-button/src/toggle-button.component.html +13 -0
- package/ui/toggle-button/src/toggle-button.component.scss +19 -0
- package/ui/toggle-button/src/toggle-button.component.ts +22 -0
- package/ui/tree/{index.d.ts → index.ts} +1 -1
- package/ui/tree/ng-package.json +6 -0
- package/ui/tree/src/tree.component.html +16 -0
- package/ui/tree/src/tree.component.ts +52 -0
- package/ui/treeTable/{index.d.ts → index.ts} +1 -1
- package/ui/treeTable/ng-package.json +6 -0
- package/ui/treeTable/src/tree-table.component.html +88 -0
- package/ui/treeTable/src/tree-table.component.ts +57 -0
- package/ui/value/{index.d.ts → index.ts} +1 -1
- package/ui/value/ng-package.json +6 -0
- package/ui/value/src/value.component.html +19 -0
- package/ui/value/src/value.component.ts +39 -0
- package/util/block/{index.d.ts → index.ts} +1 -1
- package/util/block/ng-package.json +6 -0
- package/util/block/src/block.ts +65 -0
- package/util/custom_pages/{index.d.ts → index.ts} +1 -1
- package/util/custom_pages/ng-package.json +6 -0
- package/util/custom_pages/src/notFound.component.ts +34 -0
- package/util/index.ts +1 -0
- package/util/init-event/{index.d.ts → index.ts} +1 -1
- package/util/init-event/ng-package.json +6 -0
- package/util/init-event/src/init-event.directive.ts +13 -0
- package/util/lib/{index.d.ts → index.ts} +3 -3
- package/util/lib/ng-package.json +6 -0
- package/util/lib/src/interfaces.ts +44 -0
- package/util/lib/src/module-router.ts +10 -0
- package/util/lib/src/types.ts +49 -0
- package/util/loaders/{index.d.ts → index.ts} +2 -2
- package/util/loaders/ng-package.json +6 -0
- package/util/loaders/script/script.loader.service.ts +69 -0
- package/util/loaders/style/style.loader.service.ts +69 -0
- package/util/ng-package.json +6 -0
- package/util/primitive-extensions/{index.d.ts → index.ts} +4 -4
- package/util/primitive-extensions/ng-package.json +6 -0
- package/util/primitive-extensions/src/{boolean.extensions.d.ts → boolean.extensions.ts} +1 -1
- package/util/primitive-extensions/src/date.extensions.ts +135 -0
- package/util/primitive-extensions/src/number.extensions.ts +57 -0
- package/util/primitive-extensions/src/string.extensions.ts +39 -0
- package/util/pub-sub/{index.d.ts → index.ts} +1 -1
- package/util/pub-sub/ng-package.json +6 -0
- package/util/pub-sub/src/pub-sub.service.ts +34 -0
- package/boot/config/api/src/api.service.d.ts +0 -14
- package/boot/config/api/src/interfaces.d.ts +0 -9
- package/boot/config/apps/src/apps.service.d.ts +0 -16
- package/boot/config/apps/src/interfaces.d.ts +0 -23
- package/boot/config/apps/src/showdowDOMWrapper.d.ts +0 -10
- package/boot/config/plugins/src/getNgZone.d.ts +0 -5
- package/boot/config/plugins/src/interfaces.d.ts +0 -18
- package/boot/config/plugins/src/plugins.service.d.ts +0 -9
- package/boot/host/src/app.component.d.ts +0 -8
- package/boot/host/src/bootstrap.d.ts +0 -2
- package/boot/index.d.ts +0 -1
- package/boot/mfe/src/app.component.d.ts +0 -12
- package/boot/mfe/src/appComponentLoader.d.ts +0 -1
- package/boot/mfe/src/bootstrap.d.ts +0 -6
- package/boot/mfe/src/loadStyles.d.ts +0 -3
- package/esm2022/aril.mjs +0 -5
- package/esm2022/boot/aril-boot.mjs +0 -5
- package/esm2022/boot/config/api/aril-boot-config-api.mjs +0 -5
- package/esm2022/boot/config/api/index.mjs +0 -2
- package/esm2022/boot/config/api/src/api.service.mjs +0 -42
- package/esm2022/boot/config/api/src/interfaces.mjs +0 -11
- package/esm2022/boot/config/apps/aril-boot-config-apps.mjs +0 -5
- package/esm2022/boot/config/apps/index.mjs +0 -3
- package/esm2022/boot/config/apps/src/apps.service.mjs +0 -51
- package/esm2022/boot/config/apps/src/interfaces.mjs +0 -17
- package/esm2022/boot/config/apps/src/showdowDOMWrapper.mjs +0 -35
- package/esm2022/boot/config/plugins/aril-boot-config-plugins.mjs +0 -5
- package/esm2022/boot/config/plugins/index.mjs +0 -3
- package/esm2022/boot/config/plugins/src/getNgZone.mjs +0 -12
- package/esm2022/boot/config/plugins/src/interfaces.mjs +0 -3
- package/esm2022/boot/config/plugins/src/plugins.service.mjs +0 -65
- package/esm2022/boot/host/aril-boot-host.mjs +0 -5
- package/esm2022/boot/host/index.mjs +0 -2
- package/esm2022/boot/host/src/app.component.mjs +0 -32
- package/esm2022/boot/host/src/bootstrap.mjs +0 -50
- package/esm2022/boot/index.mjs +0 -2
- package/esm2022/boot/mfe/aril-boot-mfe.mjs +0 -5
- package/esm2022/boot/mfe/index.mjs +0 -2
- package/esm2022/boot/mfe/src/app.component.mjs +0 -60
- package/esm2022/boot/mfe/src/appComponentLoader.mjs +0 -5
- package/esm2022/boot/mfe/src/bootstrap.mjs +0 -64
- package/esm2022/boot/mfe/src/loadStyles.mjs +0 -16
- package/esm2022/http/aril-http.mjs +0 -5
- package/esm2022/http/index.mjs +0 -12
- package/esm2022/http/lib/enums.mjs +0 -16
- package/esm2022/http/lib/interfaces.mjs +0 -15
- package/esm2022/http/src/httpBackend.mjs +0 -17
- package/esm2022/http/src/httpClient.mjs +0 -14
- package/esm2022/http/src/interceptor/state-machine.interceptor.mjs +0 -8
- package/esm2022/http/src/serviceBase.mjs +0 -60
- package/esm2022/http/src/serviceMockBase.mjs +0 -5
- package/esm2022/http/src/serviceRequest.mjs +0 -21
- package/esm2022/http/src/serviceStateMethods.mjs +0 -118
- package/esm2022/i18n/aril-i18n.mjs +0 -5
- package/esm2022/i18n/index.mjs +0 -6
- package/esm2022/i18n/src/folder-name-token.mjs +0 -3
- package/esm2022/i18n/src/i18n.module.mjs +0 -17
- package/esm2022/i18n/src/loader.mjs +0 -20
- package/esm2022/i18n/src/provideI18n.mjs +0 -16
- package/esm2022/i18n/src/provideScope.mjs +0 -18
- package/esm2022/keycloak/aril-keycloak.mjs +0 -5
- package/esm2022/keycloak/index.mjs +0 -4
- package/esm2022/keycloak/src/auth.guard.mjs +0 -39
- package/esm2022/keycloak/src/auth.interceptor.mjs +0 -10
- package/esm2022/keycloak/src/keycloak.manager.mjs +0 -76
- package/esm2022/public-api.mjs +0 -3
- package/esm2022/theme/aril-theme.mjs +0 -5
- package/esm2022/theme/index.mjs +0 -2
- package/esm2022/theme/layout/app/breadcrumb/app.breadcrumb.component.mjs +0 -41
- package/esm2022/theme/layout/app/config/app.config.component.mjs +0 -132
- package/esm2022/theme/layout/app/layout/app.layout.component.mjs +0 -147
- package/esm2022/theme/layout/app/layout/mfe.layout.component.mjs +0 -67
- package/esm2022/theme/layout/app/menu/app.menu.component.mjs +0 -398
- package/esm2022/theme/layout/app/profileSidebar/app.profilesidebar.component.mjs +0 -28
- package/esm2022/theme/layout/app/sidebar/app.sidebar.component.mjs +0 -41
- package/esm2022/theme/layout/app/topbar/app.topbar.component.mjs +0 -34
- package/esm2022/theme/layout/aril-theme-layout.mjs +0 -5
- package/esm2022/theme/layout/index.mjs +0 -4
- package/esm2022/theme/layout/service/app.layout.service.mjs +0 -127
- package/esm2022/theme/layout/service/app.menu.service.mjs +0 -53
- package/esm2022/theme/layout/service/menuchangeevent.mjs +0 -2
- package/esm2022/ui/aril-ui.mjs +0 -5
- package/esm2022/ui/autoComplete/aril-ui-autoComplete.mjs +0 -5
- package/esm2022/ui/autoComplete/index.mjs +0 -2
- package/esm2022/ui/autoComplete/src/auto-complete.component.mjs +0 -81
- package/esm2022/ui/autoComplete/src/interfaces.mjs +0 -2
- package/esm2022/ui/badge/aril-ui-badge.mjs +0 -5
- package/esm2022/ui/badge/index.mjs +0 -2
- package/esm2022/ui/badge/src/badge.component.mjs +0 -19
- package/esm2022/ui/button/aril-ui-button.mjs +0 -5
- package/esm2022/ui/button/index.mjs +0 -3
- package/esm2022/ui/button/src/button.component.mjs +0 -37
- package/esm2022/ui/button/src/split-button.component.mjs +0 -18
- package/esm2022/ui/calendar/aril-ui-calendar.mjs +0 -5
- package/esm2022/ui/calendar/index.mjs +0 -2
- package/esm2022/ui/calendar/src/calendar.component.mjs +0 -119
- package/esm2022/ui/checkbox/aril-ui-checkbox.mjs +0 -5
- package/esm2022/ui/checkbox/index.mjs +0 -3
- package/esm2022/ui/checkbox/src/check-box.component.mjs +0 -24
- package/esm2022/ui/checkbox/src/tri-state-checkbox.component.mjs +0 -24
- package/esm2022/ui/dxField/aril-ui-dxField.mjs +0 -5
- package/esm2022/ui/dxField/index.mjs +0 -2
- package/esm2022/ui/dxField/src/dx-field.component.mjs +0 -18
- package/esm2022/ui/field/aril-ui-field.mjs +0 -5
- package/esm2022/ui/field/index.mjs +0 -2
- package/esm2022/ui/field/src/field.component.mjs +0 -39
- package/esm2022/ui/fileUpload/aril-ui-fileUpload.mjs +0 -5
- package/esm2022/ui/fileUpload/index.mjs +0 -2
- package/esm2022/ui/fileUpload/src/file-upload.component.mjs +0 -61
- package/esm2022/ui/form/aril-ui-form.mjs +0 -5
- package/esm2022/ui/form/index.mjs +0 -22
- package/esm2022/ui/form/src/form-submit-button.component.mjs +0 -40
- package/esm2022/ui/form/src/form.component.mjs +0 -27
- package/esm2022/ui/index.mjs +0 -2
- package/esm2022/ui/lib/aril-ui-lib.mjs +0 -5
- package/esm2022/ui/lib/index.mjs +0 -15
- package/esm2022/ui/lib/src/form/form-error-message.component.mjs +0 -33
- package/esm2022/ui/lib/src/form/form-error-message.directive.mjs +0 -34
- package/esm2022/ui/lib/src/form/form-field-builder.mjs +0 -23
- package/esm2022/ui/lib/src/form/form-validation.mjs +0 -14
- package/esm2022/ui/lib/src/grid/flex-grid.directive.mjs +0 -21
- package/esm2022/ui/lib/src/input/baseInput.mjs +0 -24
- package/esm2022/ui/lib/src/input/common-input-validators.service.mjs +0 -49
- package/esm2022/ui/lib/src/input/dx-input-error-message.pipe.mjs +0 -22
- package/esm2022/ui/lib/src/input/input-disabled.directive.mjs +0 -25
- package/esm2022/ui/lib/src/input/input-error-message.pipe.mjs +0 -42
- package/esm2022/ui/lib/src/input/input-transforms.mjs +0 -8
- package/esm2022/ui/lib/src/input/value-accessor.directive.mjs +0 -38
- package/esm2022/ui/mask/aril-ui-mask.mjs +0 -5
- package/esm2022/ui/mask/index.mjs +0 -2
- package/esm2022/ui/mask/src/mask.component.mjs +0 -35
- package/esm2022/ui/number/aril-ui-number.mjs +0 -5
- package/esm2022/ui/number/index.mjs +0 -2
- package/esm2022/ui/number/src/number.component.mjs +0 -36
- package/esm2022/ui/overlayPanel/aril-ui-overlayPanel.mjs +0 -5
- package/esm2022/ui/overlayPanel/index.mjs +0 -2
- package/esm2022/ui/overlayPanel/src/overlay-panel.component.mjs +0 -20
- package/esm2022/ui/panel/aril-ui-panel.mjs +0 -5
- package/esm2022/ui/panel/index.mjs +0 -2
- package/esm2022/ui/panel/src/panel.component.mjs +0 -24
- package/esm2022/ui/password/aril-ui-password.mjs +0 -5
- package/esm2022/ui/password/index.mjs +0 -2
- package/esm2022/ui/password/src/password.component.mjs +0 -29
- package/esm2022/ui/radioButton/aril-ui-radioButton.mjs +0 -5
- package/esm2022/ui/radioButton/index.mjs +0 -2
- package/esm2022/ui/radioButton/src/radio-button.component.mjs +0 -30
- package/esm2022/ui/selectBox/aril-ui-selectBox.mjs +0 -5
- package/esm2022/ui/selectBox/index.mjs +0 -2
- package/esm2022/ui/selectBox/src/interfaces.mjs +0 -2
- package/esm2022/ui/selectBox/src/select-box.component.mjs +0 -54
- package/esm2022/ui/switch/aril-ui-switch.mjs +0 -5
- package/esm2022/ui/switch/index.mjs +0 -2
- package/esm2022/ui/switch/src/switch.component.mjs +0 -23
- package/esm2022/ui/table/aril-ui-table.mjs +0 -5
- package/esm2022/ui/table/index.mjs +0 -49
- package/esm2022/ui/table/src/i18n.mjs +0 -56
- package/esm2022/ui/table/src/table-column.component.mjs +0 -23
- package/esm2022/ui/table/src/table.component.mjs +0 -94
- package/esm2022/ui/tagBox/aril-ui-tagBox.mjs +0 -5
- package/esm2022/ui/tagBox/index.mjs +0 -2
- package/esm2022/ui/tagBox/src/tag-box.component.mjs +0 -50
- package/esm2022/ui/text/aril-ui-text.mjs +0 -5
- package/esm2022/ui/text/index.mjs +0 -2
- package/esm2022/ui/text/src/text.component.mjs +0 -40
- package/esm2022/ui/textArea/aril-ui-textArea.mjs +0 -5
- package/esm2022/ui/textArea/index.mjs +0 -2
- package/esm2022/ui/textArea/src/text-area.component.mjs +0 -26
- package/esm2022/ui/toggle-button/aril-ui-toggle-button.mjs +0 -5
- package/esm2022/ui/toggle-button/index.mjs +0 -2
- package/esm2022/ui/toggle-button/src/toggle-button.component.mjs +0 -25
- package/esm2022/ui/tree/aril-ui-tree.mjs +0 -5
- package/esm2022/ui/tree/index.mjs +0 -2
- package/esm2022/ui/tree/src/tree.component.mjs +0 -34
- package/esm2022/ui/treeTable/aril-ui-treeTable.mjs +0 -5
- package/esm2022/ui/treeTable/index.mjs +0 -2
- package/esm2022/ui/treeTable/src/tree-table.component.mjs +0 -55
- package/esm2022/ui/value/aril-ui-value.mjs +0 -5
- package/esm2022/ui/value/index.mjs +0 -2
- package/esm2022/ui/value/src/value.component.mjs +0 -35
- package/esm2022/util/aril-util.mjs +0 -5
- package/esm2022/util/block/aril-util-block.mjs +0 -5
- package/esm2022/util/block/index.mjs +0 -2
- package/esm2022/util/block/src/block.mjs +0 -64
- package/esm2022/util/custom_pages/aril-util-custom_pages.mjs +0 -5
- package/esm2022/util/custom_pages/index.mjs +0 -2
- package/esm2022/util/custom_pages/src/notFound.component.mjs +0 -65
- package/esm2022/util/index.mjs +0 -2
- package/esm2022/util/init-event/aril-util-init-event.mjs +0 -5
- package/esm2022/util/init-event/index.mjs +0 -2
- package/esm2022/util/init-event/src/init-event.directive.mjs +0 -22
- package/esm2022/util/lib/aril-util-lib.mjs +0 -5
- package/esm2022/util/lib/index.mjs +0 -4
- package/esm2022/util/lib/src/interfaces.mjs +0 -4
- package/esm2022/util/lib/src/module-router.mjs +0 -17
- package/esm2022/util/lib/src/types.mjs +0 -3
- package/esm2022/util/loaders/aril-util-loaders.mjs +0 -5
- package/esm2022/util/loaders/index.mjs +0 -3
- package/esm2022/util/loaders/script/script.loader.service.mjs +0 -61
- package/esm2022/util/loaders/style/style.loader.service.mjs +0 -61
- package/esm2022/util/primitive-extensions/aril-util-primitive-extensions.mjs +0 -5
- package/esm2022/util/primitive-extensions/index.mjs +0 -5
- package/esm2022/util/primitive-extensions/src/boolean.extensions.mjs +0 -2
- package/esm2022/util/primitive-extensions/src/date.extensions.mjs +0 -116
- package/esm2022/util/primitive-extensions/src/number.extensions.mjs +0 -39
- package/esm2022/util/primitive-extensions/src/string.extensions.mjs +0 -23
- package/esm2022/util/pub-sub/aril-util-pub-sub.mjs +0 -5
- package/esm2022/util/pub-sub/index.mjs +0 -2
- package/esm2022/util/pub-sub/src/pub-sub.service.mjs +0 -29
- package/fesm2022/aril-app.component-c363Er6g.mjs +0 -76
- package/fesm2022/aril-app.component-c363Er6g.mjs.map +0 -1
- package/fesm2022/aril-boot-config-api.mjs +0 -59
- package/fesm2022/aril-boot-config-api.mjs.map +0 -1
- package/fesm2022/aril-boot-config-apps.mjs +0 -106
- package/fesm2022/aril-boot-config-apps.mjs.map +0 -1
- package/fesm2022/aril-boot-config-plugins.mjs +0 -84
- package/fesm2022/aril-boot-config-plugins.mjs.map +0 -1
- package/fesm2022/aril-boot-host.mjs +0 -86
- package/fesm2022/aril-boot-host.mjs.map +0 -1
- package/fesm2022/aril-boot-mfe-app.component-WWRmTfs5.mjs +0 -75
- package/fesm2022/aril-boot-mfe-app.component-WWRmTfs5.mjs.map +0 -1
- package/fesm2022/aril-boot-mfe-aril-boot-mfe-PwAGdNZE.mjs +0 -90
- package/fesm2022/aril-boot-mfe-aril-boot-mfe-PwAGdNZE.mjs.map +0 -1
- package/fesm2022/aril-boot-mfe.mjs +0 -16
- package/fesm2022/aril-boot-mfe.mjs.map +0 -1
- package/fesm2022/aril-boot.mjs +0 -8
- package/fesm2022/aril-boot.mjs.map +0 -1
- package/fesm2022/aril-http.mjs +0 -273
- package/fesm2022/aril-http.mjs.map +0 -1
- package/fesm2022/aril-i18n.mjs +0 -72
- package/fesm2022/aril-i18n.mjs.map +0 -1
- package/fesm2022/aril-keycloak.mjs +0 -129
- package/fesm2022/aril-keycloak.mjs.map +0 -1
- package/fesm2022/aril-theme-layout.mjs +0 -1010
- package/fesm2022/aril-theme-layout.mjs.map +0 -1
- package/fesm2022/aril-theme.mjs +0 -8
- package/fesm2022/aril-theme.mjs.map +0 -1
- package/fesm2022/aril-ui-autoComplete.mjs +0 -88
- package/fesm2022/aril-ui-autoComplete.mjs.map +0 -1
- package/fesm2022/aril-ui-badge.mjs +0 -26
- package/fesm2022/aril-ui-badge.mjs.map +0 -1
- package/fesm2022/aril-ui-button.mjs +0 -59
- package/fesm2022/aril-ui-button.mjs.map +0 -1
- package/fesm2022/aril-ui-calendar.mjs +0 -125
- package/fesm2022/aril-ui-calendar.mjs.map +0 -1
- package/fesm2022/aril-ui-checkbox.mjs +0 -47
- package/fesm2022/aril-ui-checkbox.mjs.map +0 -1
- package/fesm2022/aril-ui-dxField.mjs +0 -25
- package/fesm2022/aril-ui-dxField.mjs.map +0 -1
- package/fesm2022/aril-ui-field.mjs +0 -46
- package/fesm2022/aril-ui-field.mjs.map +0 -1
- package/fesm2022/aril-ui-fileUpload.mjs +0 -68
- package/fesm2022/aril-ui-fileUpload.mjs.map +0 -1
- package/fesm2022/aril-ui-form.mjs +0 -86
- package/fesm2022/aril-ui-form.mjs.map +0 -1
- package/fesm2022/aril-ui-lib.mjs +0 -322
- package/fesm2022/aril-ui-lib.mjs.map +0 -1
- package/fesm2022/aril-ui-mask.mjs +0 -42
- package/fesm2022/aril-ui-mask.mjs.map +0 -1
- package/fesm2022/aril-ui-number.mjs +0 -43
- package/fesm2022/aril-ui-number.mjs.map +0 -1
- package/fesm2022/aril-ui-overlayPanel.mjs +0 -27
- package/fesm2022/aril-ui-overlayPanel.mjs.map +0 -1
- package/fesm2022/aril-ui-panel.mjs +0 -31
- package/fesm2022/aril-ui-panel.mjs.map +0 -1
- package/fesm2022/aril-ui-password.mjs +0 -36
- package/fesm2022/aril-ui-password.mjs.map +0 -1
- package/fesm2022/aril-ui-radioButton.mjs +0 -37
- package/fesm2022/aril-ui-radioButton.mjs.map +0 -1
- package/fesm2022/aril-ui-selectBox.mjs +0 -61
- package/fesm2022/aril-ui-selectBox.mjs.map +0 -1
- package/fesm2022/aril-ui-switch.mjs +0 -30
- package/fesm2022/aril-ui-switch.mjs.map +0 -1
- package/fesm2022/aril-ui-table.mjs +0 -219
- package/fesm2022/aril-ui-table.mjs.map +0 -1
- package/fesm2022/aril-ui-tagBox.mjs +0 -57
- package/fesm2022/aril-ui-tagBox.mjs.map +0 -1
- package/fesm2022/aril-ui-text.mjs +0 -47
- package/fesm2022/aril-ui-text.mjs.map +0 -1
- package/fesm2022/aril-ui-textArea.mjs +0 -33
- package/fesm2022/aril-ui-textArea.mjs.map +0 -1
- package/fesm2022/aril-ui-toggle-button.mjs +0 -32
- package/fesm2022/aril-ui-toggle-button.mjs.map +0 -1
- package/fesm2022/aril-ui-tree.mjs +0 -41
- package/fesm2022/aril-ui-tree.mjs.map +0 -1
- package/fesm2022/aril-ui-treeTable.mjs +0 -62
- package/fesm2022/aril-ui-treeTable.mjs.map +0 -1
- package/fesm2022/aril-ui-value.mjs +0 -42
- package/fesm2022/aril-ui-value.mjs.map +0 -1
- package/fesm2022/aril-ui.mjs +0 -8
- package/fesm2022/aril-ui.mjs.map +0 -1
- package/fesm2022/aril-util-block.mjs +0 -71
- package/fesm2022/aril-util-block.mjs.map +0 -1
- package/fesm2022/aril-util-custom_pages.mjs +0 -72
- package/fesm2022/aril-util-custom_pages.mjs.map +0 -1
- package/fesm2022/aril-util-init-event.mjs +0 -29
- package/fesm2022/aril-util-init-event.mjs.map +0 -1
- package/fesm2022/aril-util-lib.mjs +0 -29
- package/fesm2022/aril-util-lib.mjs.map +0 -1
- package/fesm2022/aril-util-loaders.mjs +0 -126
- package/fesm2022/aril-util-loaders.mjs.map +0 -1
- package/fesm2022/aril-util-primitive-extensions.mjs +0 -179
- package/fesm2022/aril-util-primitive-extensions.mjs.map +0 -1
- package/fesm2022/aril-util-pub-sub.mjs +0 -36
- package/fesm2022/aril-util-pub-sub.mjs.map +0 -1
- package/fesm2022/aril-util.mjs +0 -8
- package/fesm2022/aril-util.mjs.map +0 -1
- package/fesm2022/aril.mjs +0 -157
- package/fesm2022/aril.mjs.map +0 -1
- package/http/lib/enums.d.ts +0 -13
- package/http/lib/interfaces.d.ts +0 -21
- package/http/src/httpBackend.d.ts +0 -8
- package/http/src/httpClient.d.ts +0 -8
- package/http/src/interceptor/state-machine.interceptor.d.ts +0 -2
- package/http/src/serviceBase.d.ts +0 -5
- package/http/src/serviceMockBase.d.ts +0 -6
- package/http/src/serviceRequest.d.ts +0 -4
- package/http/src/serviceStateMethods.d.ts +0 -14
- package/i18n/src/folder-name-token.d.ts +0 -2
- package/i18n/src/i18n.module.d.ts +0 -7
- package/i18n/src/loader.d.ts +0 -9
- package/i18n/src/provideI18n.d.ts +0 -2
- package/i18n/src/provideScope.d.ts +0 -5
- package/index.d.ts +0 -5
- package/keycloak/src/auth.guard.d.ts +0 -11
- package/keycloak/src/auth.interceptor.d.ts +0 -2
- package/keycloak/src/keycloak.manager.d.ts +0 -25
- package/theme/index.d.ts +0 -1
- package/theme/layout/app/breadcrumb/app.breadcrumb.component.d.ts +0 -16
- package/theme/layout/app/config/app.config.component.d.ts +0 -36
- package/theme/layout/app/layout/app.layout.component.d.ts +0 -48
- package/theme/layout/app/layout/mfe.layout.component.d.ts +0 -8
- package/theme/layout/app/menu/app.menu.component.d.ts +0 -50
- package/theme/layout/app/profileSidebar/app.profilesidebar.component.d.ts +0 -13
- package/theme/layout/app/sidebar/app.sidebar.component.d.ts +0 -15
- package/theme/layout/app/topbar/app.topbar.component.d.ts +0 -16
- package/theme/layout/index.d.ts +0 -3
- package/theme/layout/service/app.layout.service.d.ts +0 -51
- package/theme/layout/service/app.menu.service.d.ts +0 -23
- package/theme/layout/service/menuchangeevent.d.ts +0 -4
- package/ui/autoComplete/src/auto-complete.component.d.ts +0 -24
- package/ui/autoComplete/src/interfaces.d.ts +0 -24
- package/ui/badge/src/badge.component.d.ts +0 -11
- package/ui/button/src/button.component.d.ts +0 -24
- package/ui/button/src/split-button.component.d.ts +0 -8
- package/ui/calendar/src/calendar.component.d.ts +0 -38
- package/ui/checkbox/src/check-box.component.d.ts +0 -9
- package/ui/checkbox/src/tri-state-checkbox.component.d.ts +0 -9
- package/ui/dxField/src/dx-field.component.d.ts +0 -9
- package/ui/field/src/field.component.d.ts +0 -25
- package/ui/fileUpload/src/file-upload.component.d.ts +0 -47
- package/ui/form/index.d.ts +0 -11
- package/ui/form/src/form-submit-button.component.d.ts +0 -14
- package/ui/form/src/form.component.d.ts +0 -8
- package/ui/index.d.ts +0 -1
- package/ui/lib/src/form/form-error-message.component.d.ts +0 -9
- package/ui/lib/src/form/form-error-message.directive.d.ts +0 -14
- package/ui/lib/src/form/form-field-builder.d.ts +0 -8
- package/ui/lib/src/form/form-validation.d.ts +0 -2
- package/ui/lib/src/grid/flex-grid.directive.d.ts +0 -6
- package/ui/lib/src/input/baseInput.d.ts +0 -7
- package/ui/lib/src/input/common-input-validators.service.d.ts +0 -20
- package/ui/lib/src/input/dx-input-error-message.pipe.d.ts +0 -11
- package/ui/lib/src/input/input-disabled.directive.d.ts +0 -9
- package/ui/lib/src/input/input-error-message.pipe.d.ts +0 -7
- package/ui/lib/src/input/input-transforms.d.ts +0 -5
- package/ui/lib/src/input/value-accessor.directive.d.ts +0 -9
- package/ui/mask/src/mask.component.d.ts +0 -21
- package/ui/number/src/number.component.d.ts +0 -27
- package/ui/overlayPanel/src/overlay-panel.component.d.ts +0 -8
- package/ui/panel/src/panel.component.d.ts +0 -10
- package/ui/password/src/password.component.d.ts +0 -11
- package/ui/radioButton/src/radio-button.component.d.ts +0 -20
- package/ui/selectBox/src/interfaces.d.ts +0 -32
- package/ui/selectBox/src/select-box.component.d.ts +0 -25
- package/ui/switch/src/switch.component.d.ts +0 -8
- package/ui/table/index.d.ts +0 -16
- package/ui/table/src/i18n.d.ts +0 -42
- package/ui/table/src/table-column.component.d.ts +0 -24
- package/ui/table/src/table.component.d.ts +0 -41
- package/ui/tagBox/src/tag-box.component.d.ts +0 -15
- package/ui/text/src/text.component.d.ts +0 -17
- package/ui/textArea/src/text-area.component.d.ts +0 -11
- package/ui/toggle-button/index.d.ts +0 -1
- package/ui/toggle-button/src/toggle-button.component.d.ts +0 -10
- package/ui/tree/src/tree.component.d.ts +0 -19
- package/ui/treeTable/src/tree-table.component.d.ts +0 -21
- package/ui/value/src/value.component.d.ts +0 -13
- package/util/block/src/block.d.ts +0 -28
- package/util/custom_pages/src/notFound.component.d.ts +0 -5
- package/util/index.d.ts +0 -1
- package/util/init-event/src/init-event.directive.d.ts +0 -8
- package/util/lib/src/interfaces.d.ts +0 -41
- package/util/lib/src/module-router.d.ts +0 -5
- package/util/lib/src/types.d.ts +0 -29
- package/util/loaders/script/script.loader.service.d.ts +0 -13
- package/util/loaders/style/style.loader.service.d.ts +0 -13
- package/util/primitive-extensions/src/date.extensions.d.ts +0 -8
- package/util/primitive-extensions/src/number.extensions.d.ts +0 -12
- package/util/primitive-extensions/src/string.extensions.d.ts +0 -11
- package/util/pub-sub/src/pub-sub.service.d.ts +0 -20
- /package/boot/config/{api.sample.json → api/src/api.sample.json} +0 -0
- /package/{styles/ui → ui/styles}/ui.common.scss +0 -0
- /package/{styles/util → util/block/src}/blockui.css +0 -0
- /package/{scripts/util → util/block/src}/blockui.min.js +0 -0
package/.eslintrc.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "../../.eslintrc.json",
|
|
3
|
+
"ignorePatterns": ["!**/*"],
|
|
4
|
+
"overrides": [
|
|
5
|
+
{
|
|
6
|
+
"files": ["*.ts"],
|
|
7
|
+
"rules": {
|
|
8
|
+
"@angular-eslint/directive-selector": [
|
|
9
|
+
"error",
|
|
10
|
+
{
|
|
11
|
+
"type": "attribute",
|
|
12
|
+
"prefix": "aril",
|
|
13
|
+
"style": "camelCase"
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"@angular-eslint/component-selector": [
|
|
17
|
+
"error",
|
|
18
|
+
{
|
|
19
|
+
"type": "element",
|
|
20
|
+
"prefix": "aril",
|
|
21
|
+
"style": "kebab-case"
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"@angular-eslint/no-input-rename": "off",
|
|
25
|
+
"rules": {
|
|
26
|
+
"no-multiple-empty-lines": [
|
|
27
|
+
"error",
|
|
28
|
+
{
|
|
29
|
+
"max": 1,
|
|
30
|
+
"maxEOF": 0,
|
|
31
|
+
"maxBOF": 0
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"files": ["*.html"]
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './src/api.service';
|
|
1
|
+
export * from './src/api.service';
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
|
2
|
+
import { isDevMode } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
import { firstValueFrom, tap } from 'rxjs';
|
|
5
|
+
|
|
6
|
+
import { Apps } from 'aril/boot/config/apps';
|
|
7
|
+
import { KeycloakManager } from 'aril/keycloak';
|
|
8
|
+
|
|
9
|
+
import { ApiConfigsFactory } from './interfaces';
|
|
10
|
+
|
|
11
|
+
export const API_CONFIGS = new ApiConfigsFactory();
|
|
12
|
+
|
|
13
|
+
export function loadApiConfigs(
|
|
14
|
+
httpBackend: { httpClient: HttpClient },
|
|
15
|
+
keycloak: KeycloakManager,
|
|
16
|
+
appName: string
|
|
17
|
+
): () => Promise<any> {
|
|
18
|
+
return () => {
|
|
19
|
+
const configDeps: Promise<any>[] = [];
|
|
20
|
+
|
|
21
|
+
const observable$ = httpBackend.httpClient
|
|
22
|
+
.get<ApiConfigsFactory>(isDevMode() ? './assets/local-configs/api.local.json' : './api.json')
|
|
23
|
+
.pipe(
|
|
24
|
+
tap((configs) => {
|
|
25
|
+
Object.assign(API_CONFIGS, { ...configs });
|
|
26
|
+
|
|
27
|
+
if (isDevMode()) (<any>globalThis).hostAPI = API_CONFIGS.api;
|
|
28
|
+
|
|
29
|
+
configDeps.push(keycloak.init(API_CONFIGS.keycloak));
|
|
30
|
+
})
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
return firstValueFrom(observable$).then(() => {
|
|
34
|
+
return Promise.all(configDeps);
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* micro-app cannot access its own api.json file when opened in host
|
|
41
|
+
* MNG has different controller (host, state-machine etc.)
|
|
42
|
+
*/
|
|
43
|
+
export function setApiConfigOnMFEMode(
|
|
44
|
+
httpBackend: { httpClient: HttpClient },
|
|
45
|
+
keycloak: KeycloakManager,
|
|
46
|
+
appName: string
|
|
47
|
+
): () => void {
|
|
48
|
+
return () => {
|
|
49
|
+
if (isDevMode()) {
|
|
50
|
+
if (appName === Apps.MNG) API_CONFIGS.api = (<any>globalThis).hostAPI;
|
|
51
|
+
else API_CONFIGS.api = (<any>globalThis).hostAPI + '/' + appName + '/v1';
|
|
52
|
+
} else {
|
|
53
|
+
if (appName === Apps.MNG) API_CONFIGS.api = window.location.origin;
|
|
54
|
+
else API_CONFIGS.api = window.location.origin + '/' + appName + '/v1';
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './src/apps.service';
|
|
2
|
-
export * from './src/interfaces';
|
|
1
|
+
export * from './src/apps.service';
|
|
2
|
+
export * from './src/interfaces';
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
|
2
|
+
import { Injectable, inject, isDevMode } from '@angular/core';
|
|
3
|
+
import { Router, Routes } from '@angular/router';
|
|
4
|
+
|
|
5
|
+
import { MenuItem } from 'primeng/api';
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
WebComponentWrapper,
|
|
9
|
+
WebComponentWrapperOptions,
|
|
10
|
+
startsWith
|
|
11
|
+
} from '@angular-architects/module-federation-tools';
|
|
12
|
+
import { Observable, catchError, of, tap } from 'rxjs';
|
|
13
|
+
|
|
14
|
+
import { AppMenuService } from 'aril/theme/layout';
|
|
15
|
+
import { NotFoundComponent } from 'aril/util/custom_pages';
|
|
16
|
+
|
|
17
|
+
import { MicroAppConfig } from './interfaces';
|
|
18
|
+
import { ShadowDOMWrapperComponent } from './showdowDOMWrapper';
|
|
19
|
+
|
|
20
|
+
@Injectable({ providedIn: 'root' })
|
|
21
|
+
export class MicroAppService {
|
|
22
|
+
private router = inject(Router);
|
|
23
|
+
private appMenuService = inject(AppMenuService);
|
|
24
|
+
|
|
25
|
+
init(httpBackend: { httpClient: HttpClient }): () => Observable<MicroAppConfig[]> {
|
|
26
|
+
return () =>
|
|
27
|
+
httpBackend.httpClient
|
|
28
|
+
.get<MicroAppConfig[]>(isDevMode() ? './assets/local-configs/app.local.json' : './assets/app.json')
|
|
29
|
+
.pipe(
|
|
30
|
+
tap((apps: MicroAppConfig[]) => {
|
|
31
|
+
const routes = this.buildRoutes(apps);
|
|
32
|
+
|
|
33
|
+
this.router.resetConfig([...this.router.config, ...routes, { path: '**', component: NotFoundComponent }]);
|
|
34
|
+
this.setMenuItems(apps);
|
|
35
|
+
}),
|
|
36
|
+
catchError((err) => {
|
|
37
|
+
console.log('Error Micro Apps Loading', err);
|
|
38
|
+
return of();
|
|
39
|
+
})
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
buildRoutes(apps: MicroAppConfig[]): Routes {
|
|
44
|
+
const routes: Routes = apps.map((config) => ({
|
|
45
|
+
matcher: startsWith(config.remoteName),
|
|
46
|
+
component: config.shadowDomPassive ? WebComponentWrapper : ShadowDOMWrapperComponent,
|
|
47
|
+
data: config as WebComponentWrapperOptions
|
|
48
|
+
}));
|
|
49
|
+
|
|
50
|
+
return routes;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
setMenuItems(apps: MicroAppConfig[]): void {
|
|
54
|
+
const menuItems: MenuItem[] = apps.map((config) => {
|
|
55
|
+
return {
|
|
56
|
+
label: config.remoteName,
|
|
57
|
+
icon: 'pi pi-fw pi-bars',
|
|
58
|
+
routerLink: config.remoteName
|
|
59
|
+
};
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
this.appMenuService.menuConfig.set({ items: menuItems });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { RemoteConfig } from '@angular-architects/module-federation';
|
|
2
|
+
|
|
3
|
+
export enum Apps {
|
|
4
|
+
THOR = 'thor',
|
|
5
|
+
CRM = 'crm',
|
|
6
|
+
WDM = 'wdm',
|
|
7
|
+
BILLING = 'billing',
|
|
8
|
+
PAYMENT = 'payment',
|
|
9
|
+
YEAP = 'yeap',
|
|
10
|
+
MD = 'md',
|
|
11
|
+
MW = 'mw',
|
|
12
|
+
LENA = 'lena',
|
|
13
|
+
HES = 'hes',
|
|
14
|
+
MTH = 'mth',
|
|
15
|
+
SIS = 'sis',
|
|
16
|
+
MNG = 'mng'
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export type MicroAppConfig = RemoteConfig & {
|
|
20
|
+
remoteName: string;
|
|
21
|
+
exposedModule: string;
|
|
22
|
+
elementName: string;
|
|
23
|
+
shadowDomPassive?: boolean;
|
|
24
|
+
styleUrls?: string[];
|
|
25
|
+
// route: string;
|
|
26
|
+
// displayName: string;
|
|
27
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Component, ElementRef, OnInit, Renderer2, ViewChild, ViewEncapsulation, inject } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
import { WebComponentWrapper } from '@angular-architects/module-federation-tools';
|
|
4
|
+
|
|
5
|
+
@Component({
|
|
6
|
+
standalone: true,
|
|
7
|
+
template: '<div #vc></div>',
|
|
8
|
+
encapsulation: ViewEncapsulation.ShadowDom
|
|
9
|
+
})
|
|
10
|
+
export class ShadowDOMWrapperComponent extends WebComponentWrapper implements OnInit {
|
|
11
|
+
@ViewChild('vc', { read: ElementRef, static: true }) override vc!: ElementRef;
|
|
12
|
+
|
|
13
|
+
private renderer = inject(Renderer2);
|
|
14
|
+
|
|
15
|
+
ngOnInit(): void {
|
|
16
|
+
const shadowRoot = this.vc.nativeElement.parentNode;
|
|
17
|
+
const styleUrls = this['route'].snapshot.data.styleUrls || [];
|
|
18
|
+
|
|
19
|
+
// Inject styles into the Shadow DOM
|
|
20
|
+
styleUrls.forEach((url: string) => {
|
|
21
|
+
const link = this.renderer.createElement('link');
|
|
22
|
+
link.setAttribute('rel', 'stylesheet');
|
|
23
|
+
link.setAttribute('type', 'text/css');
|
|
24
|
+
link.setAttribute('href', url);
|
|
25
|
+
this.renderer.appendChild(shadowRoot, link);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './src/plugins.service';
|
|
2
|
-
export * from './src/getNgZone';
|
|
1
|
+
export * from './src/plugins.service';
|
|
2
|
+
export * from './src/getNgZone';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { NgZone } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
export const getNgZone = () => {
|
|
4
|
+
if ((<any>globalThis).hostZone) {
|
|
5
|
+
return { provide: NgZone, useValue: (<any>globalThis).hostZone };
|
|
6
|
+
} else if ((<any>globalThis).mfeZone) {
|
|
7
|
+
return { provide: NgZone, useValue: (<any>globalThis).mfeZone };
|
|
8
|
+
} else return [];
|
|
9
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { LoadRemoteModuleScriptOptions } from '@angular-architects/module-federation';
|
|
2
|
+
|
|
3
|
+
interface PluginItem {
|
|
4
|
+
options: LoadRemoteModuleScriptOptions & { elementName: string };
|
|
5
|
+
props: { [key in string]: any };
|
|
6
|
+
events: { [key in string]: Function };
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export type PluginConfigs = { [key in string]: PluginItem };
|
|
10
|
+
|
|
11
|
+
export class FactoryClass {}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { HttpClient, provideHttpClient, withInterceptors } from '@angular/common/http';
|
|
2
|
+
import { APP_INITIALIZER, ApplicationConfig, Type, importProvidersFrom, isDevMode } from '@angular/core';
|
|
3
|
+
import { createCustomElement } from '@angular/elements';
|
|
4
|
+
import { createApplication } from '@angular/platform-browser';
|
|
5
|
+
import { provideAnimations } from '@angular/platform-browser/animations';
|
|
6
|
+
|
|
7
|
+
import { ConfirmationService, MessageService } from 'primeng/api';
|
|
8
|
+
import { ConfirmDialogModule } from 'primeng/confirmdialog';
|
|
9
|
+
import { ConfirmPopupModule } from 'primeng/confirmpopup';
|
|
10
|
+
import { DialogModule } from 'primeng/dialog';
|
|
11
|
+
import { MessagesModule } from 'primeng/messages';
|
|
12
|
+
import { ToastModule } from 'primeng/toast';
|
|
13
|
+
|
|
14
|
+
import { KeycloakAngularModule } from 'keycloak-angular';
|
|
15
|
+
import { Observable, catchError, of, tap } from 'rxjs';
|
|
16
|
+
|
|
17
|
+
import { API_CONFIGS } from 'aril/boot/config/api';
|
|
18
|
+
import { i18nFolderName, i18nModule } from 'aril/i18n';
|
|
19
|
+
import { authInterceptor } from 'aril/keycloak';
|
|
20
|
+
|
|
21
|
+
import { getNgZone } from './getNgZone';
|
|
22
|
+
import { FactoryClass, PluginConfigs } from './interfaces';
|
|
23
|
+
|
|
24
|
+
export const PLUGINS = new FactoryClass() as FactoryClass & PluginConfigs;
|
|
25
|
+
|
|
26
|
+
export function loadPlugins(httpBackend: { httpClient: HttpClient }): () => Observable<any> {
|
|
27
|
+
return () => {
|
|
28
|
+
return httpBackend.httpClient
|
|
29
|
+
.get<PluginConfigs>(isDevMode() ? './assets/local-configs/plugin.local.json' : './assets/plugin.json')
|
|
30
|
+
.pipe(
|
|
31
|
+
tap((configs) => {
|
|
32
|
+
Object.assign(PLUGINS, { ...configs });
|
|
33
|
+
}),
|
|
34
|
+
catchError((err) => {
|
|
35
|
+
console.log('Error Plugins Loading', err);
|
|
36
|
+
return of();
|
|
37
|
+
})
|
|
38
|
+
);
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export async function bootPlugin(selector: string, component: Type<any>) {
|
|
43
|
+
if (customElements.get(selector)) return;
|
|
44
|
+
|
|
45
|
+
const config: ApplicationConfig = {
|
|
46
|
+
providers: [
|
|
47
|
+
provideAnimations(),
|
|
48
|
+
provideHttpClient(withInterceptors([authInterceptor])),
|
|
49
|
+
importProvidersFrom(
|
|
50
|
+
i18nModule,
|
|
51
|
+
KeycloakAngularModule,
|
|
52
|
+
ConfirmDialogModule,
|
|
53
|
+
ConfirmPopupModule,
|
|
54
|
+
DialogModule,
|
|
55
|
+
MessagesModule,
|
|
56
|
+
ToastModule
|
|
57
|
+
),
|
|
58
|
+
getNgZone(),
|
|
59
|
+
MessageService,
|
|
60
|
+
ConfirmationService,
|
|
61
|
+
{
|
|
62
|
+
provide: APP_INITIALIZER,
|
|
63
|
+
useFactory: () => {
|
|
64
|
+
return () => {
|
|
65
|
+
API_CONFIGS.api = (<any>globalThis).hostAPI;
|
|
66
|
+
};
|
|
67
|
+
},
|
|
68
|
+
multi: true
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
provide: i18nFolderName,
|
|
72
|
+
useValue: 'host'
|
|
73
|
+
}
|
|
74
|
+
]
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
const appRef = await createApplication(config);
|
|
78
|
+
const plugin = createCustomElement(component, { injector: appRef.injector });
|
|
79
|
+
|
|
80
|
+
customElements.define(selector, plugin);
|
|
81
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './src/bootstrap';
|
|
1
|
+
export * from './src/bootstrap';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { Component, NgZone, inject } from '@angular/core';
|
|
3
|
+
import { Router, RouterOutlet } from '@angular/router';
|
|
4
|
+
|
|
5
|
+
import { AppLayoutComponent } from 'aril/theme/layout';
|
|
6
|
+
import { PubSubService } from 'aril/util/pub-sub';
|
|
7
|
+
|
|
8
|
+
@Component({
|
|
9
|
+
standalone: true,
|
|
10
|
+
selector: 'aril-root',
|
|
11
|
+
template: ` <app-layout></app-layout> `,
|
|
12
|
+
imports: [RouterOutlet, AppLayoutComponent]
|
|
13
|
+
})
|
|
14
|
+
export class AppComponent {
|
|
15
|
+
constructor(router: Router, pubSubService: PubSubService) {
|
|
16
|
+
(<any>globalThis).hostZone = inject(NgZone);
|
|
17
|
+
(<any>globalThis).isHostMode = true;
|
|
18
|
+
|
|
19
|
+
pubSubService.subscribe('navigateBetweenApps', (data: any) => {
|
|
20
|
+
router.navigateByUrl(data.path);
|
|
21
|
+
pubSubService.publish({
|
|
22
|
+
name: 'navigateInApps',
|
|
23
|
+
data: data
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { provideHttpClient, withInterceptors } from '@angular/common/http';
|
|
2
|
+
import { APP_INITIALIZER, ApplicationConfig, importProvidersFrom } from '@angular/core';
|
|
3
|
+
import { bootstrapApplication } from '@angular/platform-browser';
|
|
4
|
+
import { provideAnimations } from '@angular/platform-browser/animations';
|
|
5
|
+
import {
|
|
6
|
+
Routes,
|
|
7
|
+
provideRouter,
|
|
8
|
+
withComponentInputBinding,
|
|
9
|
+
withHashLocation,
|
|
10
|
+
withViewTransitions
|
|
11
|
+
} from '@angular/router';
|
|
12
|
+
|
|
13
|
+
import { ConfirmationService, MessageService } from 'primeng/api';
|
|
14
|
+
|
|
15
|
+
import { KeycloakAngularModule } from 'keycloak-angular';
|
|
16
|
+
|
|
17
|
+
import { loadApiConfigs } from 'aril/boot/config/api';
|
|
18
|
+
import { MicroAppService } from 'aril/boot/config/apps';
|
|
19
|
+
import { loadPlugins } from 'aril/boot/config/plugins';
|
|
20
|
+
import { HttpBackendService, stateMachineInterceptor } from 'aril/http';
|
|
21
|
+
import { i18nFolderName, i18nModule } from 'aril/i18n';
|
|
22
|
+
import { KeycloakManager, authInterceptor } from 'aril/keycloak';
|
|
23
|
+
|
|
24
|
+
import { AppComponent } from './app.component';
|
|
25
|
+
|
|
26
|
+
export const boot = (routes: Routes) => {
|
|
27
|
+
const appConfig: ApplicationConfig = {
|
|
28
|
+
providers: [
|
|
29
|
+
provideAnimations(),
|
|
30
|
+
provideHttpClient(withInterceptors([authInterceptor, stateMachineInterceptor])),
|
|
31
|
+
provideRouter(routes, withComponentInputBinding(), withHashLocation(), withViewTransitions()),
|
|
32
|
+
importProvidersFrom(i18nModule, KeycloakAngularModule),
|
|
33
|
+
MessageService,
|
|
34
|
+
ConfirmationService,
|
|
35
|
+
{
|
|
36
|
+
provide: APP_INITIALIZER,
|
|
37
|
+
useFactory: loadApiConfigs,
|
|
38
|
+
multi: true,
|
|
39
|
+
deps: [HttpBackendService, KeycloakManager, i18nFolderName]
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
provide: APP_INITIALIZER,
|
|
43
|
+
useFactory: (mAppService: MicroAppService, httpBackend: HttpBackendService) => mAppService.init(httpBackend),
|
|
44
|
+
multi: true,
|
|
45
|
+
deps: [MicroAppService, HttpBackendService]
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
provide: APP_INITIALIZER,
|
|
49
|
+
useFactory: loadPlugins,
|
|
50
|
+
multi: true,
|
|
51
|
+
deps: [HttpBackendService]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
provide: i18nFolderName,
|
|
55
|
+
useValue: 'host'
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err));
|
|
61
|
+
};
|
package/boot/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const aril_boot = 'ARiL-BOOT';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { boot } from './src/bootstrap';
|
|
1
|
+
export { boot } from './src/bootstrap';
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { Component, NgZone, inject } from '@angular/core';
|
|
3
|
+
import { Router, RouterOutlet } from '@angular/router';
|
|
4
|
+
|
|
5
|
+
import { ModuleFederationToolsModule } from '@angular-architects/module-federation-tools';
|
|
6
|
+
|
|
7
|
+
import { AppLayoutComponent, AppMenuService, MFELayoutComponent } from 'aril/theme/layout';
|
|
8
|
+
import { PubSubService } from 'aril/util/pub-sub';
|
|
9
|
+
|
|
10
|
+
import { appName, menuItems } from './bootstrap';
|
|
11
|
+
|
|
12
|
+
@Component({
|
|
13
|
+
standalone: true,
|
|
14
|
+
template: `
|
|
15
|
+
@if (isHostMode) {
|
|
16
|
+
<mfe-layout></mfe-layout>
|
|
17
|
+
} @else {
|
|
18
|
+
<app-layout></app-layout>
|
|
19
|
+
}
|
|
20
|
+
`,
|
|
21
|
+
imports: [RouterOutlet, ModuleFederationToolsModule, AppLayoutComponent, MFELayoutComponent]
|
|
22
|
+
})
|
|
23
|
+
export class AppComponent {
|
|
24
|
+
constructor(
|
|
25
|
+
private router: Router,
|
|
26
|
+
pubSubService: PubSubService,
|
|
27
|
+
appMenuService: AppMenuService
|
|
28
|
+
) {
|
|
29
|
+
if (!this.isHostMode && !(<any>globalThis).mfeZone) {
|
|
30
|
+
(<any>globalThis).mfeZone = inject(NgZone);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
this.connectRouter();
|
|
34
|
+
|
|
35
|
+
(<any>globalThis).activeMF = appName;
|
|
36
|
+
|
|
37
|
+
pubSubService.subscribe('navigateInApps', (data: any) => {
|
|
38
|
+
if (data.path.startsWith(appName, 1)) router.navigateByUrl(data.path);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
if (this.isHostMode) {
|
|
42
|
+
appMenuService.subMenuConfig.set({ items: structuredClone(menuItems), prefix: appName });
|
|
43
|
+
} else {
|
|
44
|
+
appMenuService.menuConfig.set({ items: structuredClone(menuItems), prefix: appName });
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
isHostMode = (<any>globalThis).isHostMode;
|
|
49
|
+
|
|
50
|
+
connectRouter() {
|
|
51
|
+
this.router.initialNavigation();
|
|
52
|
+
|
|
53
|
+
window.addEventListener('popstate', () => {
|
|
54
|
+
this.router.initialNavigation();
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { provideHttpClient, withInterceptors } from '@angular/common/http';
|
|
2
|
+
import { APP_INITIALIZER, ApplicationConfig, importProvidersFrom } from '@angular/core';
|
|
3
|
+
import { createCustomElement } from '@angular/elements';
|
|
4
|
+
import { createApplication } from '@angular/platform-browser';
|
|
5
|
+
import { provideAnimations } from '@angular/platform-browser/animations';
|
|
6
|
+
import {
|
|
7
|
+
Routes,
|
|
8
|
+
provideRouter,
|
|
9
|
+
withComponentInputBinding,
|
|
10
|
+
withHashLocation,
|
|
11
|
+
withViewTransitions
|
|
12
|
+
} from '@angular/router';
|
|
13
|
+
|
|
14
|
+
import { ConfirmationService, MenuItem, MessageService } from 'primeng/api';
|
|
15
|
+
|
|
16
|
+
import { KeycloakAngularModule } from 'keycloak-angular';
|
|
17
|
+
|
|
18
|
+
import { loadApiConfigs, setApiConfigOnMFEMode } from 'aril/boot/config/api';
|
|
19
|
+
import { Apps } from 'aril/boot/config/apps';
|
|
20
|
+
import { getNgZone, loadPlugins } from 'aril/boot/config/plugins';
|
|
21
|
+
import { HttpBackendService, stateMachineInterceptor } from 'aril/http';
|
|
22
|
+
import { i18nFolderName, i18nModule } from 'aril/i18n';
|
|
23
|
+
import { KeycloakManager, authInterceptor } from 'aril/keycloak';
|
|
24
|
+
import { StyleLoaderService } from 'aril/util/loaders';
|
|
25
|
+
|
|
26
|
+
import { appComponentLoader } from './appComponentLoader';
|
|
27
|
+
import { loadStyles } from './loadStyles';
|
|
28
|
+
|
|
29
|
+
export var appName: Apps;
|
|
30
|
+
export var menuItems: MenuItem[] = [];
|
|
31
|
+
|
|
32
|
+
export const boot = (_appName: Apps, _routes: Routes, _menuItems: MenuItem[]) => {
|
|
33
|
+
if (customElements.get(`app-${_appName}`)) return;
|
|
34
|
+
|
|
35
|
+
appName = _appName;
|
|
36
|
+
menuItems = _menuItems;
|
|
37
|
+
|
|
38
|
+
const appBootConfig: ApplicationConfig = {
|
|
39
|
+
providers: [
|
|
40
|
+
provideAnimations(),
|
|
41
|
+
provideHttpClient(withInterceptors([authInterceptor, stateMachineInterceptor])),
|
|
42
|
+
provideRouter(_routes, withComponentInputBinding(), withHashLocation(), withViewTransitions()),
|
|
43
|
+
importProvidersFrom(i18nModule, KeycloakAngularModule),
|
|
44
|
+
getNgZone(),
|
|
45
|
+
MessageService,
|
|
46
|
+
ConfirmationService,
|
|
47
|
+
{
|
|
48
|
+
provide: APP_INITIALIZER,
|
|
49
|
+
useFactory: (<any>globalThis).isHostMode ? setApiConfigOnMFEMode : loadApiConfigs,
|
|
50
|
+
multi: true,
|
|
51
|
+
deps: [HttpBackendService, KeycloakManager, i18nFolderName]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
provide: APP_INITIALIZER,
|
|
55
|
+
useFactory: loadPlugins,
|
|
56
|
+
multi: true,
|
|
57
|
+
deps: [HttpBackendService]
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
provide: APP_INITIALIZER,
|
|
61
|
+
useFactory: loadStyles,
|
|
62
|
+
multi: true,
|
|
63
|
+
deps: [StyleLoaderService, i18nFolderName]
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
provide: i18nFolderName,
|
|
67
|
+
useValue: _appName
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
createApplication(appBootConfig).then((appRef) => {
|
|
73
|
+
appComponentLoader().then((AppComponent) => {
|
|
74
|
+
const app = createCustomElement(AppComponent, { injector: appRef.injector });
|
|
75
|
+
customElements.define(`app-${appName}`, app);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Apps } from 'aril/boot/config/apps';
|
|
2
|
+
import { StyleLoaderService } from 'aril/util/loaders';
|
|
3
|
+
|
|
4
|
+
export function loadStyles(styleLoaderService: StyleLoaderService, appName: Apps): () => Promise<any> {
|
|
5
|
+
const styles = [
|
|
6
|
+
'layout.css',
|
|
7
|
+
'ui.common.css',
|
|
8
|
+
'preloading.css',
|
|
9
|
+
'primeng.min.css',
|
|
10
|
+
'theme.light.indigo.css',
|
|
11
|
+
'dx.fluent.saas.light.css',
|
|
12
|
+
`assets/${appName}/styles/primeflex/primeflex.min.css`,
|
|
13
|
+
`assets/${appName}/styles/primeicons/primeicons.css`
|
|
14
|
+
];
|
|
15
|
+
|
|
16
|
+
if ((<any>globalThis).isHostMode) return () => Promise.resolve();
|
|
17
|
+
|
|
18
|
+
return () => styleLoaderService.load(styles);
|
|
19
|
+
}
|