@sapphire-ion/framework 1.3.5 → 1.3.8
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/lib/classes/comparison/comparison-operator.mjs +18 -0
- package/esm2022/lib/classes/comparison/comparison-value-type.mjs +25 -0
- package/esm2022/lib/classes/comparison/comparison.mjs +41 -0
- package/esm2022/lib/classes/comparison/properties/bool-property.mjs +15 -0
- package/esm2022/lib/classes/comparison/properties/date-property.mjs +27 -0
- package/esm2022/lib/classes/comparison/properties/datetime-property.mjs +27 -0
- package/esm2022/lib/classes/comparison/properties/decimal-property.mjs +27 -0
- package/esm2022/lib/classes/comparison/properties/enum-property.mjs +27 -0
- package/esm2022/lib/classes/comparison/properties/implicit-property.mjs +12 -0
- package/esm2022/lib/classes/comparison/properties/int-property.mjs +27 -0
- package/esm2022/lib/classes/comparison/properties/long-property.mjs +27 -0
- package/esm2022/lib/classes/comparison/properties/string-property.mjs +15 -0
- package/esm2022/lib/classes/comparison/properties/time-property.mjs +27 -0
- package/esm2022/lib/classes/credentials.mjs +2 -0
- package/esm2022/lib/classes/environment.mjs +34 -0
- package/esm2022/lib/classes/filters/view-filtros.mjs +18 -0
- package/esm2022/lib/classes/infinite-scroll.mjs +90 -0
- package/esm2022/lib/classes/inputs/table-field-form-builder.mjs +10 -0
- package/esm2022/lib/classes/inputs/table-field.mjs +79 -0
- package/esm2022/lib/classes/page-option.mjs +2 -0
- package/esm2022/lib/classes/routes/default-routing-factory.mjs +23 -0
- package/esm2022/lib/classes/routes/id-preloader-configuration.mjs +22 -0
- package/esm2022/lib/classes/routes/route-data.mjs +9 -0
- package/esm2022/lib/components/carousel/carousel-image/carousel-image.component.mjs +18 -0
- package/esm2022/lib/components/carousel/carousel-item/carousel-item.component.mjs +15 -0
- package/esm2022/lib/components/carousel/carousel.component.mjs +79 -0
- package/esm2022/lib/components/carousel/carousel.module.mjs +31 -0
- package/esm2022/lib/components/carousel/i-carousel-item.component.mjs +16 -0
- package/esm2022/lib/components/content-block/content-block.component.mjs +27 -0
- package/esm2022/lib/components/default/default-list/abstract-list.mjs +49 -0
- package/esm2022/lib/components/default/default-list/default-list.component.mjs +95 -0
- package/esm2022/lib/components/default/default-list/header-list/header-list.component.mjs +98 -0
- package/esm2022/lib/components/default/default-list/list.mjs +120 -0
- package/esm2022/lib/components/default/default-pagination/default-pagination.component.mjs +123 -0
- package/esm2022/lib/components/default/default-table/default-table.component.mjs +216 -0
- package/esm2022/lib/components/default/default-table/th-filter/th-filter.component.mjs +212 -0
- package/esm2022/lib/components/default/default-view/abstract-view.mjs +22 -0
- package/esm2022/lib/components/default/default-view/default-view.component.mjs +76 -0
- package/esm2022/lib/components/default/default-view/header-view/header-view.component.mjs +81 -0
- package/esm2022/lib/components/default/default-view/view.mjs +198 -0
- package/esm2022/lib/components/default/default.module.mjs +98 -0
- package/esm2022/lib/components/default-page/default.page.mjs +75 -0
- package/esm2022/lib/components/drag-drop-file/drag-drop-file.directive.mjs +60 -0
- package/esm2022/lib/components/drag-drop-file/drag-drop-file.module.mjs +31 -0
- package/esm2022/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.mjs +15 -0
- package/esm2022/lib/components/drawer/default-drawer-end/default-drawer-end.component.mjs +34 -0
- package/esm2022/lib/components/drawer/drawer-group/drawer-group.component.mjs +52 -0
- package/esm2022/lib/components/drawer/drawer.component.mjs +156 -0
- package/esm2022/lib/components/drawer/menu.mjs +15 -0
- package/esm2022/lib/components/filter/filter.component.mjs +145 -0
- package/esm2022/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.mjs +17 -0
- package/esm2022/lib/components/image/image.component.mjs +91 -0
- package/esm2022/lib/components/info-popover/info-popover.component.mjs +91 -0
- package/esm2022/lib/components/inputs/custom-input.mjs +85 -0
- package/esm2022/lib/components/inputs/input-bool/input-bool.component.mjs +46 -0
- package/esm2022/lib/components/inputs/input-bool/input-bool.configuration.mjs +16 -0
- package/esm2022/lib/components/inputs/input-cep/input-cep.component.mjs +50 -0
- package/esm2022/lib/components/inputs/input-cep/input-cep.configuration.mjs +4 -0
- package/esm2022/lib/components/inputs/input-color/input-color.component.mjs +481 -0
- package/esm2022/lib/components/inputs/input-configuration.mjs +2 -0
- package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.mjs +116 -0
- package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.mjs +6 -0
- package/esm2022/lib/components/inputs/input-date/input-date.component.mjs +263 -0
- package/esm2022/lib/components/inputs/input-date/input-date.configuration.mjs +11 -0
- package/esm2022/lib/components/inputs/input-decimal/input-decimal.component.mjs +276 -0
- package/esm2022/lib/components/inputs/input-decimal/input-decimal.configuration.mjs +50 -0
- package/esm2022/lib/components/inputs/input-default-configurations.mjs +14 -0
- package/esm2022/lib/components/inputs/input-file/download-button/download-button.component.mjs +102 -0
- package/esm2022/lib/components/inputs/input-file/input-file.component.mjs +100 -0
- package/esm2022/lib/components/inputs/input-file/input-file.configuration.mjs +24 -0
- package/esm2022/lib/components/inputs/input-icon/fluenticons.mjs +3734 -0
- package/esm2022/lib/components/inputs/input-icon/input-icon.component.mjs +60 -0
- package/esm2022/lib/components/inputs/input-icon/ionicons.mjs +1360 -0
- package/esm2022/lib/components/inputs/input-provider-factory.mjs +12 -0
- package/esm2022/lib/components/inputs/input-select/directives/sion-label-template.directive.mjs +16 -0
- package/esm2022/lib/components/inputs/input-select/directives/sion-option-template.directive.mjs +16 -0
- package/esm2022/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.mjs +16 -0
- package/esm2022/lib/components/inputs/input-select/input-select.component.mjs +376 -0
- package/esm2022/lib/components/inputs/input-select/input.select.configuration.mjs +233 -0
- package/esm2022/lib/components/inputs/input-string/input-string.component.mjs +41 -0
- package/esm2022/lib/components/inputs/input-string/input-string.configuration.mjs +20 -0
- package/esm2022/lib/components/inputs/input-telefone/input-telefone.component.mjs +74 -0
- package/esm2022/lib/components/inputs/input-telefone/input-telefone.configuration.mjs +12 -0
- package/esm2022/lib/components/inputs/input-textarea/input-textarea.component.mjs +82 -0
- package/esm2022/lib/components/inputs/input-textarea/input-textarea.configuration.mjs +7 -0
- package/esm2022/lib/components/inputs/input-type.mjs +24 -0
- package/esm2022/lib/components/inputs/input-validators.mjs +121 -0
- package/esm2022/lib/components/inputs/inputs.module.mjs +133 -0
- package/esm2022/lib/components/loading/loading.component.mjs +34 -0
- package/esm2022/lib/components/login/login-admin/login-admin.component.mjs +52 -0
- package/esm2022/lib/components/login/login.component.mjs +99 -0
- package/esm2022/lib/components/main-content/main-content.component.mjs +100 -0
- package/esm2022/lib/components/popover/sion-popover/sion-popover.component.mjs +182 -0
- package/esm2022/lib/components/popover/sion-popover.module.mjs +21 -0
- package/esm2022/lib/components/sion-card/sion-card.component.mjs +26 -0
- package/esm2022/lib/components/stepper/step/step.component.mjs +43 -0
- package/esm2022/lib/components/stepper/stepper.component.mjs +36 -0
- package/esm2022/lib/components/stepper/stepper.module.mjs +25 -0
- package/esm2022/lib/components/tabs/tab/tab.component.mjs +41 -0
- package/esm2022/lib/components/tabs/tabs/tabs.component.mjs +56 -0
- package/esm2022/lib/components/tabs/tabs.module.mjs +22 -0
- package/esm2022/lib/components/text-tooltip/text-tooltip.component.mjs +51 -0
- package/esm2022/lib/components/tooltip/tooltip.component.mjs +21 -0
- package/esm2022/lib/core.module.mjs +38 -0
- package/esm2022/lib/directives/ng-var.directive.mjs +29 -0
- package/esm2022/lib/guards/auth.guard.mjs +26 -0
- package/esm2022/lib/guards/error.interceptor.mjs +107 -0
- package/esm2022/lib/guards/token.interceptor.mjs +25 -0
- package/esm2022/lib/index.mjs +188 -0
- package/esm2022/lib/pipes/secure.pipe.mjs +42 -0
- package/esm2022/lib/services/auth.service.mjs +146 -0
- package/esm2022/lib/services/environment.service.mjs +26 -0
- package/esm2022/lib/services/generic.service.mjs +84 -0
- package/esm2022/lib/services/modal-focus-trap.service.mjs +62 -0
- package/esm2022/lib/services/navigation-context.service.mjs +111 -0
- package/esm2022/lib/services/popover-focus-trap.service.mjs +62 -0
- package/esm2022/lib/services/route/route.cache.service.mjs +15 -0
- package/esm2022/lib/services/route/route.provider.service.mjs +42 -0
- package/esm2022/lib/services/usuario.service.mjs +49 -0
- package/esm2022/lib/services/utils.service.mjs +190 -0
- package/esm2022/lib/services/web/api-url-provider.service.mjs +29 -0
- package/esm2022/lib/services/web/http.ativo.service.mjs +37 -0
- package/esm2022/lib/services/web/http.service.mjs +184 -0
- package/esm2022/lib/services/web/storage.service.mjs +186 -0
- package/esm2022/public-api.mjs +5 -0
- package/esm2022/sapphire-ion-framework.mjs +5 -0
- package/fesm2022/sapphire-ion-framework.mjs +12491 -0
- package/fesm2022/sapphire-ion-framework.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/classes/comparison/comparison-operator.d.ts +9 -0
- package/lib/classes/comparison/comparison-value-type.d.ts +23 -0
- package/lib/classes/comparison/comparison.d.ts +25 -0
- package/lib/classes/comparison/properties/bool-property.d.ts +7 -0
- package/lib/classes/comparison/properties/date-property.d.ts +11 -0
- package/lib/classes/comparison/properties/datetime-property.d.ts +11 -0
- package/lib/classes/comparison/properties/decimal-property.d.ts +11 -0
- package/lib/classes/comparison/properties/enum-property.d.ts +11 -0
- package/lib/classes/comparison/properties/implicit-property.d.ts +6 -0
- package/lib/classes/comparison/properties/int-property.d.ts +11 -0
- package/lib/classes/comparison/properties/long-property.d.ts +11 -0
- package/lib/classes/comparison/properties/string-property.d.ts +7 -0
- package/lib/classes/comparison/properties/time-property.d.ts +11 -0
- package/{src/lib/classes/credentials.ts → lib/classes/credentials.d.ts} +5 -5
- package/lib/classes/environment.d.ts +14 -0
- package/lib/classes/filters/view-filtros.d.ts +10 -0
- package/lib/classes/infinite-scroll.d.ts +26 -0
- package/lib/classes/inputs/table-field-form-builder.d.ts +5 -0
- package/lib/classes/inputs/table-field.d.ts +20 -0
- package/lib/classes/page-option.d.ts +7 -0
- package/lib/classes/routes/default-routing-factory.d.ts +8 -0
- package/lib/classes/routes/id-preloader-configuration.d.ts +28 -0
- package/lib/classes/routes/route-data.d.ts +5 -0
- package/lib/components/carousel/carousel-image/carousel-image.component.d.ts +10 -0
- package/lib/components/carousel/carousel-item/carousel-item.component.d.ts +9 -0
- package/lib/components/carousel/carousel.component.d.ts +32 -0
- package/lib/components/carousel/carousel.module.d.ts +12 -0
- package/lib/components/carousel/i-carousel-item.component.d.ts +9 -0
- package/lib/components/content-block/content-block.component.d.ts +15 -0
- package/lib/components/default/default-list/abstract-list.d.ts +21 -0
- package/lib/components/default/default-list/default-list.component.d.ts +47 -0
- package/lib/components/default/default-list/header-list/header-list.component.d.ts +45 -0
- package/lib/components/default/default-list/list.d.ts +40 -0
- package/lib/components/default/default-pagination/default-pagination.component.d.ts +36 -0
- package/lib/components/default/default-table/default-table.component.d.ts +90 -0
- package/lib/components/default/default-table/th-filter/th-filter.component.d.ts +23 -0
- package/lib/components/default/default-view/abstract-view.d.ts +18 -0
- package/lib/components/default/default-view/default-view.component.d.ts +40 -0
- package/lib/components/default/default-view/header-view/header-view.component.d.ts +36 -0
- package/lib/components/default/default-view/view.d.ts +67 -0
- package/lib/components/default/default.module.d.ts +31 -0
- package/lib/components/default-page/default.page.d.ts +35 -0
- package/lib/components/drag-drop-file/drag-drop-file.directive.d.ts +14 -0
- package/lib/components/drag-drop-file/drag-drop-file.module.d.ts +10 -0
- package/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.d.ts +9 -0
- package/lib/components/drawer/default-drawer-end/default-drawer-end.component.d.ts +13 -0
- package/lib/components/drawer/drawer-group/drawer-group.component.d.ts +22 -0
- package/lib/components/drawer/drawer.component.d.ts +31 -0
- package/lib/components/drawer/menu.d.ts +9 -0
- package/lib/components/filter/filter.component.d.ts +29 -0
- package/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.d.ts +8 -0
- package/lib/components/image/image.component.d.ts +23 -0
- package/lib/components/info-popover/info-popover.component.d.ts +15 -0
- package/lib/components/inputs/custom-input.d.ts +40 -0
- package/lib/components/inputs/input-bool/input-bool.component.d.ts +16 -0
- package/lib/components/inputs/input-bool/input-bool.configuration.d.ts +17 -0
- package/lib/components/inputs/input-cep/input-cep.component.d.ts +18 -0
- package/lib/components/inputs/input-cep/input-cep.configuration.d.ts +3 -0
- package/lib/components/inputs/input-color/input-color.component.d.ts +77 -0
- package/{src/lib/components/inputs/input-configuration.ts → lib/components/inputs/input-configuration.d.ts} +10 -23
- package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.d.ts +19 -0
- package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.d.ts +5 -0
- package/lib/components/inputs/input-date/input-date.component.d.ts +61 -0
- package/lib/components/inputs/input-date/input-date.configuration.d.ts +11 -0
- package/lib/components/inputs/input-decimal/input-decimal.component.d.ts +27 -0
- package/lib/components/inputs/input-decimal/input-decimal.configuration.d.ts +28 -0
- package/lib/components/inputs/input-default-configurations.d.ts +13 -0
- package/lib/components/inputs/input-file/download-button/download-button.component.d.ts +40 -0
- package/lib/components/inputs/input-file/input-file.component.d.ts +28 -0
- package/lib/components/inputs/input-file/input-file.configuration.d.ts +8 -0
- package/lib/components/inputs/input-icon/fluenticons.d.ts +1 -0
- package/lib/components/inputs/input-icon/input-icon.component.d.ts +20 -0
- package/lib/components/inputs/input-icon/ionicons.d.ts +1 -0
- package/lib/components/inputs/input-provider-factory.d.ts +4 -0
- package/lib/components/inputs/input-select/directives/sion-label-template.directive.d.ts +18 -0
- package/lib/components/inputs/input-select/directives/sion-option-template.directive.d.ts +14 -0
- package/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.d.ts +18 -0
- package/lib/components/inputs/input-select/input-select.component.d.ts +83 -0
- package/lib/components/inputs/input-select/input.select.configuration.d.ts +127 -0
- package/lib/components/inputs/input-string/input-string.component.d.ts +14 -0
- package/lib/components/inputs/input-string/input-string.configuration.d.ts +15 -0
- package/lib/components/inputs/input-telefone/input-telefone.component.d.ts +19 -0
- package/lib/components/inputs/input-telefone/input-telefone.configuration.d.ts +9 -0
- package/lib/components/inputs/input-textarea/input-textarea.component.d.ts +17 -0
- package/lib/components/inputs/input-textarea/input-textarea.configuration.d.ts +4 -0
- package/lib/components/inputs/input-type.d.ts +22 -0
- package/lib/components/inputs/input-validators.d.ts +25 -0
- package/lib/components/inputs/inputs.module.d.ts +33 -0
- package/lib/components/loading/loading.component.d.ts +18 -0
- package/lib/components/login/login-admin/login-admin.component.d.ts +20 -0
- package/lib/components/login/login.component.d.ts +29 -0
- package/lib/components/main-content/main-content.component.d.ts +27 -0
- package/lib/components/popover/sion-popover/sion-popover.component.d.ts +43 -0
- package/lib/components/popover/sion-popover.module.d.ts +9 -0
- package/lib/components/sion-card/sion-card.component.d.ts +11 -0
- package/lib/components/stepper/step/step.component.d.ts +15 -0
- package/lib/components/stepper/stepper.component.d.ts +14 -0
- package/lib/components/stepper/stepper.module.d.ts +10 -0
- package/lib/components/tabs/tab/tab.component.d.ts +19 -0
- package/lib/components/tabs/tabs/tabs.component.d.ts +18 -0
- package/lib/components/tabs/tabs.module.d.ts +12 -0
- package/lib/components/text-tooltip/text-tooltip.component.d.ts +16 -0
- package/lib/components/tooltip/tooltip.component.d.ts +7 -0
- package/lib/core.module.d.ts +16 -0
- package/lib/directives/ng-var.directive.d.ts +12 -0
- package/lib/guards/auth.guard.d.ts +11 -0
- package/lib/guards/error.interceptor.d.ts +32 -0
- package/lib/guards/token.interceptor.d.ts +11 -0
- package/lib/index.d.ts +118 -0
- package/lib/pipes/secure.pipe.d.ts +15 -0
- package/lib/services/auth.service.d.ts +47 -0
- package/lib/services/environment.service.d.ts +10 -0
- package/lib/services/generic.service.d.ts +22 -0
- package/lib/services/modal-focus-trap.service.d.ts +13 -0
- package/lib/services/navigation-context.service.d.ts +14 -0
- package/lib/services/popover-focus-trap.service.d.ts +13 -0
- package/lib/services/route/route.cache.service.d.ts +7 -0
- package/lib/services/route/route.provider.service.d.ts +13 -0
- package/lib/services/usuario.service.d.ts +21 -0
- package/lib/services/utils.service.d.ts +53 -0
- package/lib/services/web/api-url-provider.service.d.ts +13 -0
- package/lib/services/web/http.ativo.service.d.ts +20 -0
- package/lib/services/web/http.service.d.ts +59 -0
- package/lib/services/web/storage.service.d.ts +46 -0
- package/package.json +47 -44
- package/public-api.d.ts +1 -0
- package/build.ps1 +0 -39
- package/ng-package.json +0 -10
- package/src/lib/classes/comparison/comparison-operator.ts +0 -17
- package/src/lib/classes/comparison/comparison-value-type.ts +0 -34
- package/src/lib/classes/comparison/comparison.ts +0 -45
- package/src/lib/classes/comparison/properties/bool-property.ts +0 -16
- package/src/lib/classes/comparison/properties/date-property.ts +0 -28
- package/src/lib/classes/comparison/properties/datetime-property.ts +0 -28
- package/src/lib/classes/comparison/properties/decimal-property.ts +0 -28
- package/src/lib/classes/comparison/properties/enum-property.ts +0 -28
- package/src/lib/classes/comparison/properties/implicit-property.ts +0 -13
- package/src/lib/classes/comparison/properties/int-property.ts +0 -28
- package/src/lib/classes/comparison/properties/long-property.ts +0 -28
- package/src/lib/classes/comparison/properties/string-property.ts +0 -16
- package/src/lib/classes/comparison/properties/time-property.ts +0 -28
- package/src/lib/classes/environment.ts +0 -37
- package/src/lib/classes/filters/view-filtros.ts +0 -18
- package/src/lib/classes/infinite-scroll.ts +0 -112
- package/src/lib/classes/inputs/table-field-form-builder.ts +0 -12
- package/src/lib/classes/inputs/table-field.ts +0 -62
- package/src/lib/classes/page-option.ts +0 -8
- package/src/lib/classes/routes/default-routing-factory.ts +0 -24
- package/src/lib/classes/routes/id-preloader-configuration.ts +0 -21
- package/src/lib/classes/routes/route-data.ts +0 -9
- package/src/lib/components/carousel/carousel-image/carousel-image.component.html +0 -4
- package/src/lib/components/carousel/carousel-image/carousel-image.component.ts +0 -15
- package/src/lib/components/carousel/carousel-item/carousel-item.component.html +0 -3
- package/src/lib/components/carousel/carousel-item/carousel-item.component.ts +0 -14
- package/src/lib/components/carousel/carousel.component.html +0 -22
- package/src/lib/components/carousel/carousel.component.ts +0 -83
- package/src/lib/components/carousel/carousel.module.ts +0 -20
- package/src/lib/components/carousel/i-carousel-item.component.ts +0 -8
- package/src/lib/components/content-block/content-block.component.html +0 -6
- package/src/lib/components/content-block/content-block.component.ts +0 -25
- package/src/lib/components/default/default-list/abstract-list.ts +0 -56
- package/src/lib/components/default/default-list/default-list.component.html +0 -60
- package/src/lib/components/default/default-list/default-list.component.ts +0 -72
- package/src/lib/components/default/default-list/header-list/header-list.component.html +0 -32
- package/src/lib/components/default/default-list/header-list/header-list.component.ts +0 -85
- package/src/lib/components/default/default-list/list.ts +0 -127
- package/src/lib/components/default/default-pagination/default-pagination.component.html +0 -52
- package/src/lib/components/default/default-pagination/default-pagination.component.ts +0 -118
- package/src/lib/components/default/default-table/default-table.component.html +0 -104
- package/src/lib/components/default/default-table/default-table.component.ts +0 -255
- package/src/lib/components/default/default-table/th-filter/th-filter.component.html +0 -69
- package/src/lib/components/default/default-table/th-filter/th-filter.component.ts +0 -205
- package/src/lib/components/default/default-view/abstract-view.ts +0 -25
- package/src/lib/components/default/default-view/default-view.component.html +0 -111
- package/src/lib/components/default/default-view/default-view.component.ts +0 -56
- package/src/lib/components/default/default-view/header-view/header-view.component.html +0 -64
- package/src/lib/components/default/default-view/header-view/header-view.component.ts +0 -62
- package/src/lib/components/default/default-view/view.ts +0 -195
- package/src/lib/components/default/default.module.ts +0 -61
- package/src/lib/components/default-page/default.page.html +0 -63
- package/src/lib/components/default-page/default.page.ts +0 -84
- package/src/lib/components/drag-drop-file/drag-drop-file.directive.ts +0 -44
- package/src/lib/components/drag-drop-file/drag-drop-file.module.ts +0 -21
- package/src/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.html +0 -5
- package/src/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.ts +0 -17
- package/src/lib/components/drawer/default-drawer-end/default-drawer-end.component.html +0 -12
- package/src/lib/components/drawer/default-drawer-end/default-drawer-end.component.ts +0 -35
- package/src/lib/components/drawer/drawer-group/drawer-group.component.html +0 -79
- package/src/lib/components/drawer/drawer-group/drawer-group.component.ts +0 -49
- package/src/lib/components/drawer/drawer.component.html +0 -120
- package/src/lib/components/drawer/drawer.component.ts +0 -157
- package/src/lib/components/drawer/menu.ts +0 -20
- package/src/lib/components/filter/filter.component.html +0 -43
- package/src/lib/components/filter/filter.component.ts +0 -141
- package/src/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.html +0 -35
- package/src/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.ts +0 -19
- package/src/lib/components/image/image.component.html +0 -17
- package/src/lib/components/image/image.component.ts +0 -95
- package/src/lib/components/info-popover/info-popover.component.html +0 -23
- package/src/lib/components/info-popover/info-popover.component.ts +0 -75
- package/src/lib/components/inputs/custom-input.ts +0 -94
- package/src/lib/components/inputs/input-bool/input-bool.component.html +0 -26
- package/src/lib/components/inputs/input-bool/input-bool.component.ts +0 -39
- package/src/lib/components/inputs/input-bool/input-bool.configuration.ts +0 -14
- package/src/lib/components/inputs/input-cep/input-cep.component.html +0 -27
- package/src/lib/components/inputs/input-cep/input-cep.component.ts +0 -41
- package/src/lib/components/inputs/input-cep/input-cep.configuration.ts +0 -4
- package/src/lib/components/inputs/input-color/input-color.component.html +0 -79
- package/src/lib/components/inputs/input-color/input-color.component.ts +0 -544
- package/src/lib/components/inputs/input-color/input-color.configuration.ts +0 -0
- package/src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.html +0 -28
- package/src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.ts +0 -99
- package/src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.ts +0 -4
- package/src/lib/components/inputs/input-date/input-date.component.html +0 -89
- package/src/lib/components/inputs/input-date/input-date.component.ts +0 -269
- package/src/lib/components/inputs/input-date/input-date.configuration.ts +0 -8
- package/src/lib/components/inputs/input-decimal/input-decimal.component.html +0 -32
- package/src/lib/components/inputs/input-decimal/input-decimal.component.ts +0 -283
- package/src/lib/components/inputs/input-decimal/input-decimal.configuration.ts +0 -47
- package/src/lib/components/inputs/input-default-configurations.ts +0 -15
- package/src/lib/components/inputs/input-file/download-button/download-button.component.html +0 -56
- package/src/lib/components/inputs/input-file/download-button/download-button.component.ts +0 -91
- package/src/lib/components/inputs/input-file/input-file.component.html +0 -56
- package/src/lib/components/inputs/input-file/input-file.component.ts +0 -97
- package/src/lib/components/inputs/input-file/input-file.configuration.ts +0 -25
- package/src/lib/components/inputs/input-icon/fluenticons.ts +0 -3733
- package/src/lib/components/inputs/input-icon/input-icon.component.html +0 -8
- package/src/lib/components/inputs/input-icon/input-icon.component.ts +0 -52
- package/src/lib/components/inputs/input-icon/ionicons.ts +0 -1359
- package/src/lib/components/inputs/input-provider-factory.ts +0 -12
- package/src/lib/components/inputs/input-select/directives/sion-label-template.directive.ts +0 -19
- package/src/lib/components/inputs/input-select/directives/sion-option-template.directive.ts +0 -16
- package/src/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.ts +0 -19
- package/src/lib/components/inputs/input-select/input-select.component.html +0 -176
- package/src/lib/components/inputs/input-select/input-select.component.ts +0 -366
- package/src/lib/components/inputs/input-select/input.select.configuration.ts +0 -300
- package/src/lib/components/inputs/input-string/input-string.component.html +0 -27
- package/src/lib/components/inputs/input-string/input-string.component.ts +0 -31
- package/src/lib/components/inputs/input-string/input-string.configuration.ts +0 -20
- package/src/lib/components/inputs/input-telefone/input-telefone.component.html +0 -29
- package/src/lib/components/inputs/input-telefone/input-telefone.component.ts +0 -63
- package/src/lib/components/inputs/input-telefone/input-telefone.configuration.ts +0 -8
- package/src/lib/components/inputs/input-textarea/input-textarea.component.html +0 -27
- package/src/lib/components/inputs/input-textarea/input-textarea.component.ts +0 -75
- package/src/lib/components/inputs/input-textarea/input-textarea.configuration.ts +0 -7
- package/src/lib/components/inputs/input-type.ts +0 -22
- package/src/lib/components/inputs/input-validators.ts +0 -111
- package/src/lib/components/inputs/inputs.module.ts +0 -74
- package/src/lib/components/loading/loading.component.html +0 -28
- package/src/lib/components/loading/loading.component.ts +0 -29
- package/src/lib/components/login/login-admin/login-admin.component.html +0 -28
- package/src/lib/components/login/login-admin/login-admin.component.ts +0 -51
- package/src/lib/components/login/login.component.html +0 -104
- package/src/lib/components/login/login.component.ts +0 -96
- package/src/lib/components/main-content/main-content.component.html +0 -145
- package/src/lib/components/main-content/main-content.component.ts +0 -93
- package/src/lib/components/popover/sion-popover/sion-popover.component.html +0 -21
- package/src/lib/components/popover/sion-popover/sion-popover.component.ts +0 -182
- package/src/lib/components/popover/sion-popover.module.ts +0 -12
- package/src/lib/components/sion-card/sion-card.component.html +0 -12
- package/src/lib/components/sion-card/sion-card.component.ts +0 -23
- package/src/lib/components/stepper/step/step.component.html +0 -11
- package/src/lib/components/stepper/step/step.component.ts +0 -44
- package/src/lib/components/stepper/stepper.component.html +0 -3
- package/src/lib/components/stepper/stepper.component.ts +0 -37
- package/src/lib/components/stepper/stepper.module.ts +0 -15
- package/src/lib/components/tabs/tab/tab.component.html +0 -8
- package/src/lib/components/tabs/tab/tab.component.ts +0 -28
- package/src/lib/components/tabs/tabs/tabs.component.html +0 -14
- package/src/lib/components/tabs/tabs/tabs.component.ts +0 -42
- package/src/lib/components/tabs/tabs.module.ts +0 -15
- package/src/lib/components/text-tooltip/text-tooltip.component.html +0 -8
- package/src/lib/components/text-tooltip/text-tooltip.component.ts +0 -45
- package/src/lib/components/tooltip/tooltip.component.html +0 -53
- package/src/lib/components/tooltip/tooltip.component.ts +0 -16
- package/src/lib/core.module.ts +0 -29
- package/src/lib/directives/ng-var.directive.ts +0 -26
- package/src/lib/guards/auth.guard.ts +0 -19
- package/src/lib/guards/error.interceptor.ts +0 -108
- package/src/lib/guards/token.interceptor.ts +0 -28
- package/src/lib/index.ts +0 -191
- package/src/lib/pipes/secure.pipe.ts +0 -39
- package/src/lib/services/auth.service.ts +0 -150
- package/src/lib/services/crypto.service.ts +0 -164
- package/src/lib/services/environment.service.ts +0 -17
- package/src/lib/services/generic.service.ts +0 -85
- package/src/lib/services/modal-focus-trap.service.ts +0 -65
- package/src/lib/services/navigation-context.service.ts +0 -121
- package/src/lib/services/popover-focus-trap.service.ts +0 -65
- package/src/lib/services/route/route.cache.service.ts +0 -17
- package/src/lib/services/route/route.provider.service.ts +0 -49
- package/src/lib/services/usuario.service.ts +0 -44
- package/src/lib/services/utils.service.ts +0 -216
- package/src/lib/services/web/api-url-provider.service.ts +0 -48
- package/src/lib/services/web/http.ativo.service.ts +0 -37
- package/src/lib/services/web/http.service.ts +0 -206
- package/src/lib/services/web/storage.service.ts +0 -210
- package/src/public-api.ts +0 -5
- package/tailwind.config.js +0 -27
- package/tsconfig.lib.json +0 -31
- package/tsconfig.lib.prod.json +0 -23
- package/tsconfig.spec.json +0 -27
- /package/{src/lib → themes}/compiled-styles.scss +0 -0
- /package/{src/lib → themes}/components/carousel/carousel-image/carousel-image.component.scss +0 -0
- /package/{src/lib → themes}/components/carousel/carousel-item/carousel-item.component.scss +0 -0
- /package/{src/lib → themes}/components/carousel/carousel.component.scss +0 -0
- /package/{src/lib → themes}/components/content-block/content-block.component.scss +0 -0
- /package/{src/lib → themes}/components/default/default-list/default-list.component.scss +0 -0
- /package/{src/lib → themes}/components/default/default-list/header-list/header-list.component.scss +0 -0
- /package/{src/lib → themes}/components/default/default-pagination/default-pagination.component.scss +0 -0
- /package/{src/lib → themes}/components/default/default-table/default-table.component.scss +0 -0
- /package/{src/lib → themes}/components/default/default-table/th-filter/th-filter.component.scss +0 -0
- /package/{src/lib → themes}/components/default/default-view/default-view.component.scss +0 -0
- /package/{src/lib → themes}/components/default/default-view/header-view/header-view.component.scss +0 -0
- /package/{src/lib → themes}/components/default-page/default.page.scss +0 -0
- /package/{src/lib → themes}/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.scss +0 -0
- /package/{src/lib → themes}/components/drawer/default-drawer-end/default-drawer-end.component.scss +0 -0
- /package/{src/lib → themes}/components/drawer/drawer-group/drawer-group.component.scss +0 -0
- /package/{src/lib → themes}/components/drawer/drawer.component.scss +0 -0
- /package/{src/lib → themes}/components/filter/filter.component.scss +0 -0
- /package/{src/lib → themes}/components/http-responses-pages/forbidden-403/forbidden-403.component.scss +0 -0
- /package/{src/lib → themes}/components/image/image.component.scss +0 -0
- /package/{src/lib → themes}/components/info-popover/info-popover.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-bool/input-bool.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-cep/input-cep.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-color/input-color.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-date/input-date.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-decimal/input-decimal.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-file/download-button/download-button.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-file/input-file.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-icon/input-icon.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-select/input-select.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-string/input-string.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-telefone/input-telefone.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-textarea/input-textarea.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/inputs.scss +0 -0
- /package/{src/lib → themes}/components/loading/loading.component.scss +0 -0
- /package/{src/lib → themes}/components/login/login-admin/login-admin.component.scss +0 -0
- /package/{src/lib → themes}/components/login/login.component.scss +0 -0
- /package/{src/lib → themes}/components/main-content/main-content.component.scss +0 -0
- /package/{src/lib → themes}/components/popover/sion-popover/sion-popover.component.scss +0 -0
- /package/{src/lib → themes}/components/sion-card/sion-card.component.scss +0 -0
- /package/{src/lib → themes}/components/stepper/step/step.component.scss +0 -0
- /package/{src/lib → themes}/components/stepper/stepper.component.scss +0 -0
- /package/{src/lib → themes}/components/tabs/tab/tab.component.scss +0 -0
- /package/{src/lib → themes}/components/tabs/tabs/tabs.component.scss +0 -0
- /package/{src/lib → themes}/components/text-tooltip/text-tooltip.component.scss +0 -0
- /package/{src/lib → themes}/components/tooltip/tooltip.component.scss +0 -0
- /package/{src/lib → themes}/styles/components.scss +0 -0
- /package/{src/lib → themes}/styles/core.styles.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-action-sheet.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-alert.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-button.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-card.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-content.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-datetime.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-item.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-list.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-modal.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-popover.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-progress-bar.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-searchbar.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-toast.scss +0 -0
- /package/{src/lib → themes}/styles/ionic.scss +0 -0
- /package/{src/lib → themes}/styles/login-default.scss +0 -0
- /package/{src/lib → themes}/styles/mixins.scss +0 -0
- /package/{src/lib → themes}/styles/styles.scss +0 -0
- /package/{src/lib → themes}/styles/translucid.scss +0 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { ContentChild, Directive } from '@angular/core';
|
|
2
|
+
import { Output, EventEmitter, HostBinding, HostListener } from '@angular/core';
|
|
3
|
+
import { DragDropOverlayComponent } from './drag-drop-overlay/drag-drop-overlay.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class DragDropFileDirective {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.fileDropped = new EventEmitter();
|
|
8
|
+
}
|
|
9
|
+
// Dragover listener
|
|
10
|
+
onDragOver(evt) {
|
|
11
|
+
evt.preventDefault();
|
|
12
|
+
evt.stopPropagation();
|
|
13
|
+
this.fileOver = true;
|
|
14
|
+
this.dragDropOverlay.fileOver = true;
|
|
15
|
+
}
|
|
16
|
+
// Dragleave listener
|
|
17
|
+
onDragLeave(evt) {
|
|
18
|
+
evt.preventDefault();
|
|
19
|
+
evt.stopPropagation();
|
|
20
|
+
this.fileOver = false;
|
|
21
|
+
this.dragDropOverlay.fileOver = false;
|
|
22
|
+
}
|
|
23
|
+
// Drop listener
|
|
24
|
+
onDrop(evt) {
|
|
25
|
+
evt.preventDefault();
|
|
26
|
+
evt.stopPropagation();
|
|
27
|
+
this.fileOver = false;
|
|
28
|
+
this.dragDropOverlay.fileOver = false;
|
|
29
|
+
let files = evt.dataTransfer.files;
|
|
30
|
+
if (files.length > 0) {
|
|
31
|
+
this.fileDropped.emit(Array.from(files));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DragDropFileDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
35
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: DragDropFileDirective, selector: "[DragDropFile]", outputs: { fileDropped: "fileDropped" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" }, properties: { "class.fileOver": "this.fileOver" } }, queries: [{ propertyName: "dragDropOverlay", first: true, predicate: DragDropOverlayComponent, descendants: true }], ngImport: i0 }); }
|
|
36
|
+
}
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DragDropFileDirective, decorators: [{
|
|
38
|
+
type: Directive,
|
|
39
|
+
args: [{
|
|
40
|
+
selector: '[DragDropFile]'
|
|
41
|
+
}]
|
|
42
|
+
}], ctorParameters: () => [], propDecorators: { fileOver: [{
|
|
43
|
+
type: HostBinding,
|
|
44
|
+
args: ['class.fileOver']
|
|
45
|
+
}], fileDropped: [{
|
|
46
|
+
type: Output
|
|
47
|
+
}], dragDropOverlay: [{
|
|
48
|
+
type: ContentChild,
|
|
49
|
+
args: [DragDropOverlayComponent]
|
|
50
|
+
}], onDragOver: [{
|
|
51
|
+
type: HostListener,
|
|
52
|
+
args: ['dragover', ['$event']]
|
|
53
|
+
}], onDragLeave: [{
|
|
54
|
+
type: HostListener,
|
|
55
|
+
args: ['dragleave', ['$event']]
|
|
56
|
+
}], onDrop: [{
|
|
57
|
+
type: HostListener,
|
|
58
|
+
args: ['drop', ['$event']]
|
|
59
|
+
}] } });
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLWZpbGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RyYWctZHJvcC1maWxlL2RyYWctZHJvcC1maWxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOztBQUszRixNQUFNLE9BQU8scUJBQXFCO0lBRWhDO1FBR1UsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBSG5DLENBQUM7SUFPakIsb0JBQW9CO0lBQ2tCLFVBQVUsQ0FBQyxHQUFjO1FBQzdELEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNyQixHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxxQkFBcUI7SUFDeUIsV0FBVyxDQUFDLEdBQWM7UUFDdEUsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JCLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEMsQ0FBQztJQUVELGdCQUFnQjtJQUN5QixNQUFNLENBQUMsR0FBYztRQUM1RCxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDckIsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QyxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUNuQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDOytHQW5DVSxxQkFBcUI7bUdBQXJCLHFCQUFxQix3VEFPbEIsd0JBQXdCOzs0RkFQM0IscUJBQXFCO2tCQUhqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7aUJBQzNCO3dEQUtnQyxRQUFRO3NCQUF0QyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFDbkIsV0FBVztzQkFBcEIsTUFBTTtnQkFFaUMsZUFBZTtzQkFBdEQsWUFBWTt1QkFBQyx3QkFBd0I7Z0JBR0EsVUFBVTtzQkFBL0MsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBUVUsV0FBVztzQkFBeEQsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBUUksTUFBTTtzQkFBOUMsWUFBWTt1QkFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250ZW50Q2hpbGQsIERpcmVjdGl2ZSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE91dHB1dCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERyYWdEcm9wT3ZlcmxheUNvbXBvbmVudCB9IGZyb20gJy4vZHJhZy1kcm9wLW92ZXJsYXkvZHJhZy1kcm9wLW92ZXJsYXkuY29tcG9uZW50JztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW0RyYWdEcm9wRmlsZV0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcmFnRHJvcEZpbGVEaXJlY3RpdmUge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZpbGVPdmVyJykgZmlsZU92ZXI6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIGZpbGVEcm9wcGVkID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlW10+KCk7XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoRHJhZ0Ryb3BPdmVybGF5Q29tcG9uZW50KSBkcmFnRHJvcE92ZXJsYXk6IERyYWdEcm9wT3ZlcmxheUNvbXBvbmVudCBcclxuXHJcbiAgLy8gRHJhZ292ZXIgbGlzdGVuZXJcclxuICBASG9zdExpc3RlbmVyKCdkcmFnb3ZlcicsIFsnJGV2ZW50J10pIG9uRHJhZ092ZXIoZXZ0OiBEcmFnRXZlbnQpIHtcclxuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5maWxlT3ZlciA9IHRydWU7XHJcbiAgICB0aGlzLmRyYWdEcm9wT3ZlcmxheS5maWxlT3ZlciA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvLyBEcmFnbGVhdmUgbGlzdGVuZXJcclxuICBASG9zdExpc3RlbmVyKCdkcmFnbGVhdmUnLCBbJyRldmVudCddKSBwdWJsaWMgb25EcmFnTGVhdmUoZXZ0OiBEcmFnRXZlbnQpIHtcclxuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5maWxlT3ZlciA9IGZhbHNlO1xyXG4gICAgdGhpcy5kcmFnRHJvcE92ZXJsYXkuZmlsZU92ZXIgPSBmYWxzZTtcclxuICB9XHJcbiAgXHJcbiAgLy8gRHJvcCBsaXN0ZW5lclxyXG4gIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKSBwdWJsaWMgb25Ecm9wKGV2dDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuZmlsZU92ZXIgPSBmYWxzZTtcclxuICAgIHRoaXMuZHJhZ0Ryb3BPdmVybGF5LmZpbGVPdmVyID0gZmFsc2U7XHJcbiAgICBsZXQgZmlsZXMgPSBldnQuZGF0YVRyYW5zZmVyLmZpbGVzO1xyXG4gICAgaWYgKGZpbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5maWxlRHJvcHBlZC5lbWl0KEFycmF5LmZyb20oZmlsZXMpKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { DragDropFileDirective } from './drag-drop-file.directive';
|
|
4
|
+
import { DragDropOverlayComponent } from './drag-drop-overlay/drag-drop-overlay.component';
|
|
5
|
+
import { IonicModule } from '@ionic/angular';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
const values = [
|
|
8
|
+
DragDropFileDirective,
|
|
9
|
+
DragDropOverlayComponent
|
|
10
|
+
];
|
|
11
|
+
export class DragDropFileModule {
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DragDropFileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: DragDropFileModule, declarations: [DragDropFileDirective,
|
|
14
|
+
DragDropOverlayComponent], imports: [CommonModule,
|
|
15
|
+
IonicModule], exports: [DragDropFileDirective,
|
|
16
|
+
DragDropOverlayComponent] }); }
|
|
17
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DragDropFileModule, imports: [CommonModule,
|
|
18
|
+
IonicModule] }); }
|
|
19
|
+
}
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DragDropFileModule, decorators: [{
|
|
21
|
+
type: NgModule,
|
|
22
|
+
args: [{
|
|
23
|
+
declarations: [...values],
|
|
24
|
+
exports: [...values],
|
|
25
|
+
imports: [
|
|
26
|
+
CommonModule,
|
|
27
|
+
IonicModule
|
|
28
|
+
]
|
|
29
|
+
}]
|
|
30
|
+
}] });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLWZpbGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RyYWctZHJvcC1maWxlL2RyYWctZHJvcC1maWxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRTdDLE1BQU0sTUFBTSxHQUFHO0lBQ2IscUJBQXFCO0lBQ3JCLHdCQUF3QjtDQUN6QixDQUFBO0FBV0QsTUFBTSxPQUFPLGtCQUFrQjsrR0FBbEIsa0JBQWtCO2dIQUFsQixrQkFBa0IsaUJBYjdCLHFCQUFxQjtZQUNyQix3QkFBd0IsYUFRdEIsWUFBWTtZQUNaLFdBQVcsYUFWYixxQkFBcUI7WUFDckIsd0JBQXdCO2dIQVliLGtCQUFrQixZQUozQixZQUFZO1lBQ1osV0FBVzs7NEZBR0Ysa0JBQWtCO2tCQVI5QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFFLEdBQUcsTUFBTSxDQUFFO29CQUMzQixPQUFPLEVBQU8sQ0FBRSxHQUFHLE1BQU0sQ0FBRTtvQkFDM0IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVztxQkFDWjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IERyYWdEcm9wRmlsZURpcmVjdGl2ZSB9IGZyb20gJy4vZHJhZy1kcm9wLWZpbGUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BPdmVybGF5Q29tcG9uZW50IH0gZnJvbSAnLi9kcmFnLWRyb3Atb3ZlcmxheS9kcmFnLWRyb3Atb3ZlcmxheS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuXHJcbmNvbnN0IHZhbHVlcyA9IFtcclxuICBEcmFnRHJvcEZpbGVEaXJlY3RpdmUsXHJcbiAgRHJhZ0Ryb3BPdmVybGF5Q29tcG9uZW50XHJcbl1cclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogWyAuLi52YWx1ZXMgXSxcclxuICBleHBvcnRzICAgICA6IFsgLi4udmFsdWVzIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSW9uaWNNb2R1bGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcmFnRHJvcEZpbGVNb2R1bGUgeyB9XHJcbiJdfQ==
|
package/esm2022/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.mjs
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "@ionic/angular";
|
|
5
|
+
export class DragDropOverlayComponent {
|
|
6
|
+
constructor() { }
|
|
7
|
+
ngOnInit() { }
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DragDropOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DragDropOverlayComponent, selector: "drag-drop-overlay", ngImport: i0, template: "<div class=\"absolute top-0 left-0 size-full z-50 p-4 pointer-events-none\" [ngClass]=\"{'fileOver': fileOver}\">\r\n <div class=\"border-4 border-dashed border-transparent default-transition rounded-2xl size-full flex items-center justify-center\">\r\n <ion-icon class=\"text-9xl text-transparent\" name=\"cloud-upload\"></ion-icon>\r\n </div>\r\n</div>", styles: [".fileOver{top:0!important;--tw-backdrop-blur: blur(4px) !important;--tw-backdrop-grayscale: grayscale(.5) !important;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important;backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important}.fileOver div{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.fileOver div ion-icon{color:var(--ion-color-dark)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
10
|
+
}
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DragDropOverlayComponent, decorators: [{
|
|
12
|
+
type: Component,
|
|
13
|
+
args: [{ selector: 'drag-drop-overlay', template: "<div class=\"absolute top-0 left-0 size-full z-50 p-4 pointer-events-none\" [ngClass]=\"{'fileOver': fileOver}\">\r\n <div class=\"border-4 border-dashed border-transparent default-transition rounded-2xl size-full flex items-center justify-center\">\r\n <ion-icon class=\"text-9xl text-transparent\" name=\"cloud-upload\"></ion-icon>\r\n </div>\r\n</div>", styles: [".fileOver{top:0!important;--tw-backdrop-blur: blur(4px) !important;--tw-backdrop-grayscale: grayscale(.5) !important;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important;backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important}.fileOver div{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.fileOver div ion-icon{color:var(--ion-color-dark)}\n"] }]
|
|
14
|
+
}], ctorParameters: () => [] });
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLW92ZXJsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RyYWctZHJvcC1maWxlL2RyYWctZHJvcC1vdmVybGF5L2RyYWctZHJvcC1vdmVybGF5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kcmFnLWRyb3AtZmlsZS9kcmFnLWRyb3Atb3ZlcmxheS9kcmFnLWRyb3Atb3ZlcmxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBUWxELE1BQU0sT0FBTyx3QkFBd0I7SUFFbkMsZ0JBQWdCLENBQUM7SUFFakIsUUFBUSxLQUFJLENBQUM7K0dBSkYsd0JBQXdCO21HQUF4Qix3QkFBd0IseURDVHJDLHlXQUlNOzs0RkRLTyx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RyYWctZHJvcC1vdmVybGF5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHJhZy1kcm9wLW92ZXJsYXkuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RyYWctZHJvcC1vdmVybGF5LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcmFnRHJvcE92ZXJsYXlDb21wb25lbnQgIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7fVxyXG5cclxuICBmaWxlT3ZlcjogYm9vbGVhbjtcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHNpemUtZnVsbCB6LTUwIHAtNCBwb2ludGVyLWV2ZW50cy1ub25lXCIgW25nQ2xhc3NdPVwieydmaWxlT3Zlcic6IGZpbGVPdmVyfVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJib3JkZXItNCBib3JkZXItZGFzaGVkIGJvcmRlci10cmFuc3BhcmVudCBkZWZhdWx0LXRyYW5zaXRpb24gcm91bmRlZC0yeGwgc2l6ZS1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XHJcbiAgICA8aW9uLWljb24gY2xhc3M9XCJ0ZXh0LTl4bCB0ZXh0LXRyYW5zcGFyZW50XCIgbmFtZT1cImNsb3VkLXVwbG9hZFwiPjwvaW9uLWljb24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { RouterLinkWithHref } from '@angular/router';
|
|
3
|
+
import { IonicModule } from '@ionic/angular';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import { AuthService } from '../../../services/auth.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../../../services/auth.service";
|
|
8
|
+
import * as i2 from "@angular/common";
|
|
9
|
+
import * as i3 from "@ionic/angular";
|
|
10
|
+
export class DefaultDrawerEndComponent {
|
|
11
|
+
constructor(authService) {
|
|
12
|
+
this.authService = authService;
|
|
13
|
+
this.colapsed = false;
|
|
14
|
+
}
|
|
15
|
+
ngOnInit() {
|
|
16
|
+
this.authService.LoadToken().then((res) => {
|
|
17
|
+
this.Token = res;
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
Loggout() { this.authService.Loggout(); }
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultDrawerEndComponent, deps: [{ token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DefaultDrawerEndComponent, isStandalone: true, selector: "default-drawer-end", inputs: { colapsed: "colapsed" }, ngImport: i0, template: "<div class=\"w-full default-transition flex\" [ngClass]=\"{'!w-16': colapsed}\">\r\n <div class=\"w-10 shrink-0 aspect-square rounded-2xl flex items-center justify-center default-transition\" style=\"background-color: var(--ion-color-primary);\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </div>\r\n <div class=\"grow min-w-10 p-2 justify-center items-center whitespace-nowrap text-ellipsis overflow-hidden block default-transition\" [ngClass]=\"{'opacity-0 w-0': colapsed}\">\r\n <span>{{Token ? Token.Nome : ''}}</span>\r\n </div>\r\n\r\n <ion-button (click)=\"Loggout()\" class=\"size-10 shrink-0\" size=\"small\" color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"exit-outline\"></ion-icon> \r\n </ion-button>\r\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultDrawerEndComponent, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{ standalone: true, imports: [
|
|
27
|
+
CommonModule,
|
|
28
|
+
IonicModule,
|
|
29
|
+
RouterLinkWithHref,
|
|
30
|
+
], selector: 'default-drawer-end', template: "<div class=\"w-full default-transition flex\" [ngClass]=\"{'!w-16': colapsed}\">\r\n <div class=\"w-10 shrink-0 aspect-square rounded-2xl flex items-center justify-center default-transition\" style=\"background-color: var(--ion-color-primary);\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </div>\r\n <div class=\"grow min-w-10 p-2 justify-center items-center whitespace-nowrap text-ellipsis overflow-hidden block default-transition\" [ngClass]=\"{'opacity-0 w-0': colapsed}\">\r\n <span>{{Token ? Token.Nome : ''}}</span>\r\n </div>\r\n\r\n <ion-button (click)=\"Loggout()\" class=\"size-10 shrink-0\" size=\"small\" color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"exit-outline\"></ion-icon> \r\n </ion-button>\r\n</div>" }]
|
|
31
|
+
}], ctorParameters: () => [{ type: i1.AuthService }], propDecorators: { colapsed: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}] } });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1kcmF3ZXItZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kcmF3ZXIvZGVmYXVsdC1kcmF3ZXItZW5kL2RlZmF1bHQtZHJhd2VyLWVuZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZHJhd2VyL2RlZmF1bHQtZHJhd2VyLWVuZC9kZWZhdWx0LWRyYXdlci1lbmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7O0FBYTdELE1BQU0sT0FBTyx5QkFBeUI7SUFFcEMsWUFDUyxXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUd4QixhQUFRLEdBQVksS0FBSyxDQUFDO0lBRi9CLENBQUM7SUFLTCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUN4QyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFHRCxPQUFPLEtBQVcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7K0dBaEJwQyx5QkFBeUI7bUdBQXpCLHlCQUF5QixnSENqQnRDLG94QkFXTSx5RERGRixZQUFZLDRIQUNaLFdBQVc7OzRGQU9GLHlCQUF5QjtrQkFYckMsU0FBUztpQ0FDSSxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGtCQUFrQjtxQkFDbkIsWUFDUyxvQkFBb0I7Z0ZBVXJCLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyTGlua1dpdGhIcmVmIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSW9uaWNNb2R1bGUsXHJcbiAgICBSb3V0ZXJMaW5rV2l0aEhyZWYsXHJcbiAgXSxcclxuICBzZWxlY3RvcjogJ2RlZmF1bHQtZHJhd2VyLWVuZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RlZmF1bHQtZHJhd2VyLWVuZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGVmYXVsdC1kcmF3ZXItZW5kLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEZWZhdWx0RHJhd2VyRW5kQ29tcG9uZW50ICBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIEBJbnB1dCgpIGNvbGFwc2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIFRva2VuOiBhbnk7XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLkxvYWRUb2tlbigpLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICB0aGlzLlRva2VuID0gcmVzO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuICBMb2dnb3V0KCk6IHZvaWQgeyB0aGlzLmF1dGhTZXJ2aWNlLkxvZ2dvdXQoKTsgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ3LWZ1bGwgZGVmYXVsdC10cmFuc2l0aW9uIGZsZXhcIiBbbmdDbGFzc109XCJ7JyF3LTE2JzogY29sYXBzZWR9XCI+XHJcbiAgPGRpdiBjbGFzcz1cInctMTAgc2hyaW5rLTAgYXNwZWN0LXNxdWFyZSByb3VuZGVkLTJ4bCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBkZWZhdWx0LXRyYW5zaXRpb25cIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwidXBwZXJjYXNlIHRleHQtd2hpdGVcIj57e1Rva2VuID8gVG9rZW4uTm9tZVswXSA6ICcnfX08L3NwYW4+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImdyb3cgbWluLXctMTAgcC0yIGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlciB3aGl0ZXNwYWNlLW5vd3JhcCB0ZXh0LWVsbGlwc2lzIG92ZXJmbG93LWhpZGRlbiBibG9jayBkZWZhdWx0LXRyYW5zaXRpb25cIiBbbmdDbGFzc109XCJ7J29wYWNpdHktMCB3LTAnOiBjb2xhcHNlZH1cIj5cclxuICAgIDxzcGFuPnt7VG9rZW4gPyBUb2tlbi5Ob21lIDogJyd9fTwvc3Bhbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGlvbi1idXR0b24gKGNsaWNrKT1cIkxvZ2dvdXQoKVwiIGNsYXNzPVwic2l6ZS0xMCBzaHJpbmstMFwiIHNpemU9XCJzbWFsbFwiIGNvbG9yPVwiZGFuZ2VyXCI+XHJcbiAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJleGl0LW91dGxpbmVcIj48L2lvbi1pY29uPiBcclxuICA8L2lvbi1idXR0b24+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, Input, QueryList, ViewChildren } from '@angular/core';
|
|
3
|
+
import { IonAccordionGroup, IonicModule, NavController } from '@ionic/angular';
|
|
4
|
+
import { Menu } from '.././menu';
|
|
5
|
+
import { Router, RouterLinkWithHref } from '@angular/router';
|
|
6
|
+
import { GenericService } from '../../../services/generic.service';
|
|
7
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/router";
|
|
10
|
+
import * as i2 from "@ionic/angular";
|
|
11
|
+
import * as i3 from "../../../services/generic.service";
|
|
12
|
+
import * as i4 from "@ngx-translate/core";
|
|
13
|
+
export class DrawerGroupComponent {
|
|
14
|
+
constructor(router, navController, genericService) {
|
|
15
|
+
this.router = router;
|
|
16
|
+
this.navController = navController;
|
|
17
|
+
this.genericService = genericService;
|
|
18
|
+
this.TranslationModule = {
|
|
19
|
+
Permissao: 'Entities.Permissao.',
|
|
20
|
+
PermissaoGrupo: 'Entities.PermissaoGrupo.'
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
ngOnInit() { }
|
|
24
|
+
HandleNav(item, event) {
|
|
25
|
+
if (event.ctrlKey || event.metaKey) {
|
|
26
|
+
window.open(window.origin + '/' + item.route, '_blank');
|
|
27
|
+
event.preventDefault();
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
this.SetTitle(item);
|
|
31
|
+
this.navController.navigateRoot('/' + item.route);
|
|
32
|
+
}
|
|
33
|
+
SetTitle(item) {
|
|
34
|
+
this.genericService.SetTitle(item.title);
|
|
35
|
+
}
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerGroupComponent, deps: [{ token: i1.Router }, { token: i2.NavController }, { token: i3.GenericService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DrawerGroupComponent, isStandalone: true, selector: "drawer-group", inputs: { MenuGroup: "MenuGroup", colapsed: "colapsed", useTranslation: "useTranslation" }, viewQueries: [{ propertyName: "lstIonAcordionGroup", predicate: IonAccordionGroup, descendants: true }], ngImport: i0, template: "<div class=\"size-full flex flex-col verflow-hidden\">\r\n <div class=\"w-full text-center\">\r\n <!-- <ion-item class=\"bg-inactive bg-active\" lines=\"none\" style=\"--border-radius: 1rem\">\r\n <ion-label class=\"text-center\">\r\n <ion-icon class=\"text-2xl\" [name]=\"MenuGroup.icon\"></ion-icon> <br>\r\n <ion-text class=\"text-lg\">\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + MenuGroup.id | translate) : MenuGroup.title}} \r\n </ion-text>\r\n </ion-label>\r\n </ion-item> -->\r\n <div class=\"gradient-background header flex flex-col gap-1 p-2 text-center items-center justify-center rounded-xl\">\r\n <ion-icon class=\"text-2xl\" [name]=\"MenuGroup.icon\"></ion-icon>\r\n <ion-text class=\"text-dark\">\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + MenuGroup.id | translate) : MenuGroup.title}} \r\n </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-col gap-2 w-full pt-2 mask-y overflow-y-auto\">\r\n @for (mGroup of MenuGroup.lstMenu; track $index) {\r\n <!-- Menu -->\r\n @if(mGroup.type == \"Menu\"){\r\n <div (click)=\"HandleNav(mGroup, $event)\" \r\n class=\"bg-inactive gradient-background menu\"\r\n [class.bg-active]=\"router.isActive('/' + mGroup.route, false)\"\r\n >\r\n <div class=\"content\">\r\n <ion-icon class=\"shrink-0\" [name]=\"mGroup.icon\"></ion-icon>\r\n <ion-label class=\"shrink\">\r\n {{useTranslation ? (TranslationModule.Permissao + mGroup.id | translate) : mGroup.title}} \r\n </ion-label>\r\n </div>\r\n </div>\r\n <!-- <ion-item \r\n class=\"bg-inactive shrink-0\" lines=\"none\" \r\n (click)=\"HandleNav(mGroup)\"\r\n [ngClass]=\"{'colapsed': colapsed, 'bg-active' : router.isActive('/' + mGroup.route, false)}\">\r\n <ion-icon slot=\"start\" [name]=\"mGroup.icon\"></ion-icon>\r\n <ion-label class=\"ion-text-nowrap\">\r\n {{useTranslation ? (TranslationModule.Permissao + mGroup.id | translate) : mGroup.title}} \r\n </ion-label>\r\n </ion-item> -->\r\n } \r\n @else if (mGroup.type == \"MenuGroup\") {\r\n <!-- MenuGroup -->\r\n <!-- <div class=\"w-full overflow-hidden shrink-0\">\r\n <ion-accordion-group class=\"ion-text-nowrap w-full\">\r\n <ion-accordion class=\"bg-transparent\" [value]=\"mGroup\">\r\n <ion-item slot=\"header\" color=\"light\" class=\"ion-text-nowrap bg-inactive\" style=\"--ion-color-base: var(--background) !important\">\r\n <ion-icon slot=\"start\" [name]=\"mGroup.icon\"></ion-icon>\r\n <ion-label>\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + mGroup.id | translate) : mGroup.title}}\r\n </ion-label>\r\n </ion-item>\r\n <div slot=\"content\">\r\n <div class=\"pl-8\">\r\n <div class=\"w-full border-l-2 border-solid rounded-bl-2xl grid gap-2 pl-2 py-2\" style=\"border-color: color-mix(in srgb, var(--ion-color-primary) 30%, transparent 70%)\">\r\n @for (mMenu of mGroup.lstMenu; track $index) {\r\n @if (mMenu.type == \"Menu\") {\r\n <ion-item \r\n class=\"bg-inactive\" lines=\"none\" \r\n (click)=\"HandleNav(mMenu)\"\r\n [ngClass]=\"{'colapsed': colapsed, 'bg-active' : router.isActive('/' + mMenu.route, false)}\">\r\n <ion-icon slot=\"start\" [name]=\"mMenu.icon\"></ion-icon>\r\n <ion-label class=\"ion-text-nowrap\">\r\n {{useTranslation ? (TranslationModule.Permissao + mMenu.id | translate) : mMenu.title}}\r\n </ion-label>\r\n </ion-item>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </ion-accordion>\r\n </ion-accordion-group>\r\n </div> -->\r\n }\r\n }\r\n </div>\r\n</div>", styles: [".menu{display:flex;flex-shrink:0;cursor:pointer;align-items:center;justify-content:flex-start;overflow:hidden;border-radius:.75rem;padding:.375rem;transition:--color-primary,--step-1-opacity,--step-2-opacity .2s ease-in-out;--inset: var(--color-primary) 0px 1.75px 2px 0px inset;box-shadow:var(--inset)}.menu .content{display:flex;align-items:center;justify-content:flex-start;gap:.5rem}.menu.bg-active:after{content:\"\";position:absolute;top:50%;right:0;width:.375rem;height:75%;transform:translateY(-50%);border-radius:inherit;background-color:color-mix(in srgb,var(--ion-color-primary) 70%,transparent);opacity:1!important;filter:drop-shadow(color-mix(in srgb,var(--ion-color-primary) 70%,transparent) 0px 0px 3px)}.menu.bg-active:before{content:\"\";position:absolute;top:50%;right:-2.3rem;width:5rem;height:7rem;transform:translateY(-50%);border-radius:inherit;opacity:.5!important;background:radial-gradient(color-mix(in srgb,var(--ion-color-primary) 70%,transparent) 0%,transparent 66%)}.menu.bg-inactive{--color-primary: var(--ion-color-step-250);--step-1-opacity: .5;--step-2-opacity: .4;--step-3-opacity: .8;position:relative}.menu.bg-inactive:after{content:\"\";opacity:0;transition:opacity .2s ease-in-out;will-change:opacity}.menu.bg-inactive:before{content:\"\";opacity:0;transition:opacity .2s ease-in-out;will-change:opacity}.header{--color-primary: var(--ion-color-primary) !important;--step-1-opacity: .7 !important;--step-2-opacity: .3 !important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
|
|
38
|
+
}
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerGroupComponent, decorators: [{
|
|
40
|
+
type: Component,
|
|
41
|
+
args: [{ standalone: true, imports: [CommonModule, IonicModule, RouterLinkWithHref, TranslateModule], selector: 'drawer-group', template: "<div class=\"size-full flex flex-col verflow-hidden\">\r\n <div class=\"w-full text-center\">\r\n <!-- <ion-item class=\"bg-inactive bg-active\" lines=\"none\" style=\"--border-radius: 1rem\">\r\n <ion-label class=\"text-center\">\r\n <ion-icon class=\"text-2xl\" [name]=\"MenuGroup.icon\"></ion-icon> <br>\r\n <ion-text class=\"text-lg\">\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + MenuGroup.id | translate) : MenuGroup.title}} \r\n </ion-text>\r\n </ion-label>\r\n </ion-item> -->\r\n <div class=\"gradient-background header flex flex-col gap-1 p-2 text-center items-center justify-center rounded-xl\">\r\n <ion-icon class=\"text-2xl\" [name]=\"MenuGroup.icon\"></ion-icon>\r\n <ion-text class=\"text-dark\">\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + MenuGroup.id | translate) : MenuGroup.title}} \r\n </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-col gap-2 w-full pt-2 mask-y overflow-y-auto\">\r\n @for (mGroup of MenuGroup.lstMenu; track $index) {\r\n <!-- Menu -->\r\n @if(mGroup.type == \"Menu\"){\r\n <div (click)=\"HandleNav(mGroup, $event)\" \r\n class=\"bg-inactive gradient-background menu\"\r\n [class.bg-active]=\"router.isActive('/' + mGroup.route, false)\"\r\n >\r\n <div class=\"content\">\r\n <ion-icon class=\"shrink-0\" [name]=\"mGroup.icon\"></ion-icon>\r\n <ion-label class=\"shrink\">\r\n {{useTranslation ? (TranslationModule.Permissao + mGroup.id | translate) : mGroup.title}} \r\n </ion-label>\r\n </div>\r\n </div>\r\n <!-- <ion-item \r\n class=\"bg-inactive shrink-0\" lines=\"none\" \r\n (click)=\"HandleNav(mGroup)\"\r\n [ngClass]=\"{'colapsed': colapsed, 'bg-active' : router.isActive('/' + mGroup.route, false)}\">\r\n <ion-icon slot=\"start\" [name]=\"mGroup.icon\"></ion-icon>\r\n <ion-label class=\"ion-text-nowrap\">\r\n {{useTranslation ? (TranslationModule.Permissao + mGroup.id | translate) : mGroup.title}} \r\n </ion-label>\r\n </ion-item> -->\r\n } \r\n @else if (mGroup.type == \"MenuGroup\") {\r\n <!-- MenuGroup -->\r\n <!-- <div class=\"w-full overflow-hidden shrink-0\">\r\n <ion-accordion-group class=\"ion-text-nowrap w-full\">\r\n <ion-accordion class=\"bg-transparent\" [value]=\"mGroup\">\r\n <ion-item slot=\"header\" color=\"light\" class=\"ion-text-nowrap bg-inactive\" style=\"--ion-color-base: var(--background) !important\">\r\n <ion-icon slot=\"start\" [name]=\"mGroup.icon\"></ion-icon>\r\n <ion-label>\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + mGroup.id | translate) : mGroup.title}}\r\n </ion-label>\r\n </ion-item>\r\n <div slot=\"content\">\r\n <div class=\"pl-8\">\r\n <div class=\"w-full border-l-2 border-solid rounded-bl-2xl grid gap-2 pl-2 py-2\" style=\"border-color: color-mix(in srgb, var(--ion-color-primary) 30%, transparent 70%)\">\r\n @for (mMenu of mGroup.lstMenu; track $index) {\r\n @if (mMenu.type == \"Menu\") {\r\n <ion-item \r\n class=\"bg-inactive\" lines=\"none\" \r\n (click)=\"HandleNav(mMenu)\"\r\n [ngClass]=\"{'colapsed': colapsed, 'bg-active' : router.isActive('/' + mMenu.route, false)}\">\r\n <ion-icon slot=\"start\" [name]=\"mMenu.icon\"></ion-icon>\r\n <ion-label class=\"ion-text-nowrap\">\r\n {{useTranslation ? (TranslationModule.Permissao + mMenu.id | translate) : mMenu.title}}\r\n </ion-label>\r\n </ion-item>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </ion-accordion>\r\n </ion-accordion-group>\r\n </div> -->\r\n }\r\n }\r\n </div>\r\n</div>", styles: [".menu{display:flex;flex-shrink:0;cursor:pointer;align-items:center;justify-content:flex-start;overflow:hidden;border-radius:.75rem;padding:.375rem;transition:--color-primary,--step-1-opacity,--step-2-opacity .2s ease-in-out;--inset: var(--color-primary) 0px 1.75px 2px 0px inset;box-shadow:var(--inset)}.menu .content{display:flex;align-items:center;justify-content:flex-start;gap:.5rem}.menu.bg-active:after{content:\"\";position:absolute;top:50%;right:0;width:.375rem;height:75%;transform:translateY(-50%);border-radius:inherit;background-color:color-mix(in srgb,var(--ion-color-primary) 70%,transparent);opacity:1!important;filter:drop-shadow(color-mix(in srgb,var(--ion-color-primary) 70%,transparent) 0px 0px 3px)}.menu.bg-active:before{content:\"\";position:absolute;top:50%;right:-2.3rem;width:5rem;height:7rem;transform:translateY(-50%);border-radius:inherit;opacity:.5!important;background:radial-gradient(color-mix(in srgb,var(--ion-color-primary) 70%,transparent) 0%,transparent 66%)}.menu.bg-inactive{--color-primary: var(--ion-color-step-250);--step-1-opacity: .5;--step-2-opacity: .4;--step-3-opacity: .8;position:relative}.menu.bg-inactive:after{content:\"\";opacity:0;transition:opacity .2s ease-in-out;will-change:opacity}.menu.bg-inactive:before{content:\"\";opacity:0;transition:opacity .2s ease-in-out;will-change:opacity}.header{--color-primary: var(--ion-color-primary) !important;--step-1-opacity: .7 !important;--step-2-opacity: .3 !important}\n"] }]
|
|
42
|
+
}], ctorParameters: () => [{ type: i1.Router }, { type: i2.NavController }, { type: i3.GenericService }], propDecorators: { MenuGroup: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}], colapsed: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}], useTranslation: [{
|
|
47
|
+
type: Input
|
|
48
|
+
}], lstIonAcordionGroup: [{
|
|
49
|
+
type: ViewChildren,
|
|
50
|
+
args: [IonAccordionGroup]
|
|
51
|
+
}] } });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kcmF3ZXIvZHJhd2VyLWdyb3VwL2RyYXdlci1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZHJhd2VyL2RyYXdlci1ncm91cC9kcmF3ZXItZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFnQixpQkFBaUIsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0YsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqQyxPQUFPLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBU3RELE1BQU0sT0FBTyxvQkFBb0I7SUFVL0IsWUFDUyxNQUFjLEVBQ2IsYUFBNEIsRUFDNUIsY0FBOEI7UUFGL0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNiLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQVh4QyxzQkFBaUIsR0FBUTtZQUN2QixTQUFTLEVBQU8scUJBQXFCO1lBQ3JDLGNBQWMsRUFBRSwwQkFBMEI7U0FDM0MsQ0FBQztJQVNFLENBQUM7SUFFTCxRQUFRLEtBQUksQ0FBQztJQUViLFNBQVMsQ0FBQyxJQUFnQixFQUFFLEtBQWlCO1FBQzNDLElBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFDLENBQUM7WUFDakMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3hELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBQ0QsUUFBUSxDQUFDLElBQVU7UUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7K0dBN0JVLG9CQUFvQjttR0FBcEIsb0JBQW9CLDRNQStCakIsaUJBQWlCLGdEQy9DakMsK3FJQThFTSxzL0NEbkVNLFlBQVksOEJBQUUsV0FBVyxxWUFBc0IsZUFBZTs7NEZBSzdELG9CQUFvQjtrQkFQaEMsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsQ0FBQyxZQUMvRCxjQUFjO29JQVVmLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQXVCMkIsbUJBQW1CO3NCQUFuRCxZQUFZO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSW9uQWNjb3JkaW9uLCBJb25BY2NvcmRpb25Hcm91cCwgSW9uaWNNb2R1bGUsIE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IE1lbnUgfSBmcm9tICcuLi8uL21lbnUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIFJvdXRlckxpbmtXaXRoSHJlZiB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZ2VuZXJpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmdWYXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL25nLXZhci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uaWNNb2R1bGUsIFJvdXRlckxpbmtXaXRoSHJlZiwgVHJhbnNsYXRlTW9kdWxlXSxcclxuICBzZWxlY3RvcjogJ2RyYXdlci1ncm91cCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RyYXdlci1ncm91cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZHJhd2VyLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcmF3ZXJHcm91cENvbXBvbmVudCAgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBUcmFuc2xhdGlvbk1vZHVsZTogYW55ID0ge1xyXG4gICAgUGVybWlzc2FvICAgICA6ICdFbnRpdGllcy5QZXJtaXNzYW8uJyxcclxuICAgIFBlcm1pc3Nhb0dydXBvOiAnRW50aXRpZXMuUGVybWlzc2FvR3J1cG8uJ1xyXG4gIH07XHJcbiAgQElucHV0KCkgTWVudUdyb3VwOiBNZW51O1xyXG4gIEBJbnB1dCgpIGNvbGFwc2VkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHVzZVRyYW5zbGF0aW9uOiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgbmF2Q29udHJvbGxlcjogTmF2Q29udHJvbGxlcixcclxuICAgIHByaXZhdGUgZ2VuZXJpY1NlcnZpY2U6IEdlbmVyaWNTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7fVxyXG5cclxuICBIYW5kbGVOYXYoaXRlbTogTWVudSB8IGFueSwgZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSl7XHJcbiAgICAgIHdpbmRvdy5vcGVuKHdpbmRvdy5vcmlnaW4gKyAnLycgKyBpdGVtLnJvdXRlLCAnX2JsYW5rJyk7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuU2V0VGl0bGUoaXRlbSk7XHJcbiAgICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KCcvJyArIGl0ZW0ucm91dGUpO1xyXG4gIH1cclxuICBTZXRUaXRsZShpdGVtOiBNZW51KXtcclxuICAgIHRoaXMuZ2VuZXJpY1NlcnZpY2UuU2V0VGl0bGUoaXRlbS50aXRsZSk7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkcmVuKElvbkFjY29yZGlvbkdyb3VwKSBsc3RJb25BY29yZGlvbkdyb3VwOiBRdWVyeUxpc3Q8SW9uQWNjb3JkaW9uPlxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzaXplLWZ1bGwgZmxleCBmbGV4LWNvbCAgdmVyZmxvdy1oaWRkZW5cIj5cclxuICA8ZGl2IGNsYXNzPVwidy1mdWxsIHRleHQtY2VudGVyXCI+XHJcbiAgICA8IS0tIDxpb24taXRlbSBjbGFzcz1cImJnLWluYWN0aXZlIGJnLWFjdGl2ZVwiIGxpbmVzPVwibm9uZVwiIHN0eWxlPVwiLS1ib3JkZXItcmFkaXVzOiAxcmVtXCI+XHJcbiAgICAgIDxpb24tbGFiZWwgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIDxpb24taWNvbiBjbGFzcz1cInRleHQtMnhsXCIgW25hbWVdPVwiTWVudUdyb3VwLmljb25cIj48L2lvbi1pY29uPiA8YnI+XHJcbiAgICAgICAgPGlvbi10ZXh0IGNsYXNzPVwidGV4dC1sZ1wiPlxyXG4gICAgICAgICAge3t1c2VUcmFuc2xhdGlvbiA/IChUcmFuc2xhdGlvbk1vZHVsZS5QZXJtaXNzYW9HcnVwbyArIE1lbnVHcm91cC5pZCB8IHRyYW5zbGF0ZSkgOiBNZW51R3JvdXAudGl0bGV9fSBcclxuICAgICAgICA8L2lvbi10ZXh0PlxyXG4gICAgICA8L2lvbi1sYWJlbD5cclxuICAgIDwvaW9uLWl0ZW0+IC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImdyYWRpZW50LWJhY2tncm91bmQgaGVhZGVyIGZsZXggZmxleC1jb2wgZ2FwLTEgcC0yIHRleHQtY2VudGVyIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLXhsXCI+XHJcbiAgICAgIDxpb24taWNvbiBjbGFzcz1cInRleHQtMnhsXCIgW25hbWVdPVwiTWVudUdyb3VwLmljb25cIj48L2lvbi1pY29uPlxyXG4gICAgICA8aW9uLXRleHQgY2xhc3M9XCJ0ZXh0LWRhcmtcIj5cclxuICAgICAgICB7e3VzZVRyYW5zbGF0aW9uID8gKFRyYW5zbGF0aW9uTW9kdWxlLlBlcm1pc3Nhb0dydXBvICsgTWVudUdyb3VwLmlkIHwgdHJhbnNsYXRlKSA6IE1lbnVHcm91cC50aXRsZX19IFxyXG4gICAgICA8L2lvbi10ZXh0PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTIgdy1mdWxsIHB0LTIgbWFzay15IG92ZXJmbG93LXktYXV0b1wiPlxyXG4gICAgQGZvciAobUdyb3VwIG9mIE1lbnVHcm91cC5sc3RNZW51OyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgPCEtLSBNZW51IC0tPlxyXG4gICAgICBAaWYobUdyb3VwLnR5cGUgPT0gXCJNZW51XCIpe1xyXG4gICAgICAgIDxkaXYgKGNsaWNrKT1cIkhhbmRsZU5hdihtR3JvdXAsICRldmVudClcIiBcclxuICAgICAgICAgIGNsYXNzPVwiYmctaW5hY3RpdmUgZ3JhZGllbnQtYmFja2dyb3VuZCBtZW51XCJcclxuICAgICAgICAgIFtjbGFzcy5iZy1hY3RpdmVdPVwicm91dGVyLmlzQWN0aXZlKCcvJyArIG1Hcm91cC5yb3V0ZSwgZmFsc2UpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICA8aW9uLWljb24gY2xhc3M9XCJzaHJpbmstMFwiIFtuYW1lXT1cIm1Hcm91cC5pY29uXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgPGlvbi1sYWJlbCBjbGFzcz1cInNocmlua1wiPlxyXG4gICAgICAgICAgICAgIHt7dXNlVHJhbnNsYXRpb24gPyAoVHJhbnNsYXRpb25Nb2R1bGUuUGVybWlzc2FvICsgbUdyb3VwLmlkIHwgdHJhbnNsYXRlKSA6IG1Hcm91cC50aXRsZX19ICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2lvbi1sYWJlbD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS0gPGlvbi1pdGVtIFxyXG4gICAgICAgICAgY2xhc3M9XCJiZy1pbmFjdGl2ZSBzaHJpbmstMFwiIGxpbmVzPVwibm9uZVwiIFxyXG4gICAgICAgICAgKGNsaWNrKT1cIkhhbmRsZU5hdihtR3JvdXApXCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsnY29sYXBzZWQnOiBjb2xhcHNlZCwgJ2JnLWFjdGl2ZScgOiByb3V0ZXIuaXNBY3RpdmUoJy8nICsgbUdyb3VwLnJvdXRlLCBmYWxzZSl9XCI+XHJcbiAgICAgICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgW25hbWVdPVwibUdyb3VwLmljb25cIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgPGlvbi1sYWJlbCBjbGFzcz1cImlvbi10ZXh0LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICB7e3VzZVRyYW5zbGF0aW9uID8gKFRyYW5zbGF0aW9uTW9kdWxlLlBlcm1pc3NhbyArIG1Hcm91cC5pZCB8IHRyYW5zbGF0ZSkgOiBtR3JvdXAudGl0bGV9fSAgICAgICAgICBcclxuICAgICAgICAgIDwvaW9uLWxhYmVsPlxyXG4gICAgICAgIDwvaW9uLWl0ZW0+IC0tPlxyXG4gICAgICB9IFxyXG4gICAgICBAZWxzZSBpZiAobUdyb3VwLnR5cGUgPT0gXCJNZW51R3JvdXBcIikge1xyXG4gICAgICAgIDwhLS0gTWVudUdyb3VwIC0tPlxyXG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInctZnVsbCBvdmVyZmxvdy1oaWRkZW4gc2hyaW5rLTBcIj5cclxuICAgICAgICAgIDxpb24tYWNjb3JkaW9uLWdyb3VwIGNsYXNzPVwiaW9uLXRleHQtbm93cmFwIHctZnVsbFwiPlxyXG4gICAgICAgICAgICA8aW9uLWFjY29yZGlvbiBjbGFzcz1cImJnLXRyYW5zcGFyZW50XCIgW3ZhbHVlXT1cIm1Hcm91cFwiPlxyXG4gICAgICAgICAgICAgIDxpb24taXRlbSBzbG90PVwiaGVhZGVyXCIgY29sb3I9XCJsaWdodFwiIGNsYXNzPVwiaW9uLXRleHQtbm93cmFwIGJnLWluYWN0aXZlXCIgc3R5bGU9XCItLWlvbi1jb2xvci1iYXNlOiB2YXIoLS1iYWNrZ3JvdW5kKSAhaW1wb3J0YW50XCI+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgW25hbWVdPVwibUdyb3VwLmljb25cIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAge3t1c2VUcmFuc2xhdGlvbiA/IChUcmFuc2xhdGlvbk1vZHVsZS5QZXJtaXNzYW9HcnVwbyArIG1Hcm91cC5pZCB8IHRyYW5zbGF0ZSkgOiBtR3JvdXAudGl0bGV9fVxyXG4gICAgICAgICAgICAgICAgPC9pb24tbGFiZWw+XHJcbiAgICAgICAgICAgICAgPC9pb24taXRlbT5cclxuICAgICAgICAgICAgICA8ZGl2IHNsb3Q9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGwtOFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIGJvcmRlci1sLTIgYm9yZGVyLXNvbGlkIHJvdW5kZWQtYmwtMnhsIGdyaWQgZ2FwLTIgcGwtMiBweS0yXCIgc3R5bGU9XCJib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSkgMzAlLCB0cmFuc3BhcmVudCA3MCUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQGZvciAobU1lbnUgb2YgbUdyb3VwLmxzdE1lbnU7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChtTWVudS50eXBlID09IFwiTWVudVwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24taXRlbSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJnLWluYWN0aXZlXCIgbGluZXM9XCJub25lXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIkhhbmRsZU5hdihtTWVudSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnY29sYXBzZWQnOiBjb2xhcHNlZCwgJ2JnLWFjdGl2ZScgOiByb3V0ZXIuaXNBY3RpdmUoJy8nICsgbU1lbnUucm91dGUsIGZhbHNlKX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgW25hbWVdPVwibU1lbnUuaWNvblwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1sYWJlbCBjbGFzcz1cImlvbi10ZXh0LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3t1c2VUcmFuc2xhdGlvbiA/IChUcmFuc2xhdGlvbk1vZHVsZS5QZXJtaXNzYW8gKyBtTWVudS5pZCB8IHRyYW5zbGF0ZSkgOiBtTWVudS50aXRsZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2lvbi1hY2NvcmRpb24+XHJcbiAgICAgICAgICA8L2lvbi1hY2NvcmRpb24tZ3JvdXA+XHJcbiAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { Component, computed, effect, EventEmitter, input, Input, Output, signal } from '@angular/core';
|
|
2
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { IonicModule, NavController } from '@ionic/angular';
|
|
5
|
+
import { Menu } from './menu';
|
|
6
|
+
import { DrawerGroupComponent } from './drawer-group/drawer-group.component';
|
|
7
|
+
import { LoadingComponent } from '../../components/loading/loading.component';
|
|
8
|
+
import { SIonPopoverModule } from '../popover/sion-popover.module';
|
|
9
|
+
import { Router, RouterLinkWithHref } from '@angular/router';
|
|
10
|
+
import { GenericService } from '../../services/generic.service';
|
|
11
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "@angular/router";
|
|
14
|
+
import * as i2 from "@ionic/angular";
|
|
15
|
+
import * as i3 from "../../services/generic.service";
|
|
16
|
+
import * as i4 from "@angular/common";
|
|
17
|
+
import * as i5 from "@ngx-translate/core";
|
|
18
|
+
import * as i6 from "../popover/sion-popover/sion-popover.component";
|
|
19
|
+
import * as i7 from "@angular/forms";
|
|
20
|
+
export class DrawerComponent {
|
|
21
|
+
constructor(router, navController, genericService) {
|
|
22
|
+
this.router = router;
|
|
23
|
+
this.navController = navController;
|
|
24
|
+
this.genericService = genericService;
|
|
25
|
+
this.TranslationModule = {
|
|
26
|
+
Permissao: 'Entities.Permissao.',
|
|
27
|
+
PermissaoGrupo: 'Entities.PermissaoGrupo.',
|
|
28
|
+
SemResultado: 'Messages.SemResultado'
|
|
29
|
+
};
|
|
30
|
+
this.loading = true;
|
|
31
|
+
this.lstMenu = input();
|
|
32
|
+
this.lstFlattenMenu = computed(() => { return FlattenMenus(this.lstMenu()); });
|
|
33
|
+
this.colapsed = false;
|
|
34
|
+
this.colapsedChange = new EventEmitter;
|
|
35
|
+
this.useTranslation = false;
|
|
36
|
+
this.CurrentGroupActive = null;
|
|
37
|
+
this._enterColapsed = false;
|
|
38
|
+
this.search = signal("");
|
|
39
|
+
this.lstMenuFiltered = computed(() => {
|
|
40
|
+
const str = this.search().toLowerCase();
|
|
41
|
+
const lstS1 = this.lstMenu().map(p => {
|
|
42
|
+
return new Menu(p.type, p.title, p.icon, p.lstMenu.filter(x => x.title.toLowerCase().includes(str)), p.route);
|
|
43
|
+
});
|
|
44
|
+
const lstS2 = lstS1.filter(p => p.lstMenu.length > 0);
|
|
45
|
+
return lstS2;
|
|
46
|
+
});
|
|
47
|
+
effect(() => {
|
|
48
|
+
//Handle Menu Title
|
|
49
|
+
const lstFlat = this.lstFlattenMenu();
|
|
50
|
+
const currentMenu = lstFlat.find(p => window.location.pathname.includes('/' + p.route));
|
|
51
|
+
const group = FindMenuParent(this.lstMenu(), currentMenu);
|
|
52
|
+
if (group) {
|
|
53
|
+
this.CurrentGroupActive = group;
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
this.CurrentGroupActive = this.lstMenu()[0];
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
ToggleCollapsed() {
|
|
61
|
+
this.colapsedChange.emit(!this._enterColapsed);
|
|
62
|
+
this._enterColapsed = false;
|
|
63
|
+
}
|
|
64
|
+
onMouseEnter() {
|
|
65
|
+
if (this.colapsed) {
|
|
66
|
+
this._enterColapsed = true;
|
|
67
|
+
this.colapsedChange.emit(false);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
onMouseLeave() {
|
|
71
|
+
if (this._enterColapsed) {
|
|
72
|
+
this._enterColapsed = false;
|
|
73
|
+
this.colapsedChange.emit(true);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
HandleNav(item, event) {
|
|
77
|
+
if (event.ctrlKey || event.metaKey) {
|
|
78
|
+
window.open(window.origin + '/' + item.route, '_blank');
|
|
79
|
+
event.preventDefault();
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
this.SetTitle(item);
|
|
83
|
+
const vGroup = FindMenuParent(this.lstMenu(), item);
|
|
84
|
+
if (vGroup) {
|
|
85
|
+
this.CurrentGroupActive = vGroup;
|
|
86
|
+
}
|
|
87
|
+
this.navController.navigateRoot('/' + item.route);
|
|
88
|
+
}
|
|
89
|
+
SetTitle(item) {
|
|
90
|
+
this.genericService.SetTitle(item.title);
|
|
91
|
+
}
|
|
92
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerComponent, deps: [{ token: i1.Router }, { token: i2.NavController }, { token: i3.GenericService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
93
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DrawerComponent, isStandalone: true, selector: "drawer", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: false, isRequired: false, transformFunction: null }, lstMenu: { classPropertyName: "lstMenu", publicName: "lstMenu", isSignal: true, isRequired: false, transformFunction: null }, colapsed: { classPropertyName: "colapsed", publicName: "colapsed", isSignal: false, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: false, isRequired: false, transformFunction: null }, useTranslation: { classPropertyName: "useTranslation", publicName: "useTranslation", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { colapsedChange: "colapsedChange" }, ngImport: i0, template: "<div class=\"absolute left-0 top-0 h-full bg-light size-full flex flex-col p-2 !pr-0 w-[19rem] overflow-hidden\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n <!-- [ Header ] -->\r\n <div class=\"shrink-0 w-full flex justify-between items-center\">\r\n <div #anchor\r\n (click)=\"ToggleCollapsed()\" \r\n class=\"toggle size-10 aspect-square shrink-0 rounded-xl bg-inactive gradient-background menu\"\r\n >\r\n <ion-icon name=\"menu\" slot=\"icon-only\"></ion-icon>\r\n </div>\r\n <!-- <ion-button class=\"size-10 shrink-0 aspect-square\" size=\"small\" color=\"medium\" (click)=\"ToggleCollapsed()\">\r\n <ion-icon name=\"menu\" slot=\"icon-only\"></ion-icon>\r\n </ion-button> -->\r\n\r\n <div class=\"size-full shrink flex pl-2 \">\r\n <div class=\"size-full max-h-10 flex flex-wrap overflow-hidden\">\r\n @if (!ref.children.length) {\r\n <ion-text class=\"size-full flex items-center justify-center default-transition z-0\" [ngClass]=\"{'opacity-0 -translate-x-1/2 pointer-events-none': colapsed }\"> \r\n {{title}}\r\n </ion-text>\r\n }\r\n <div #ref class=\"size-full flex items-center justify-center shrink-0\">\r\n <ng-content select=\"[slot=logo]\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- [ Content ] -->\r\n <div class=\"size-full shrink flex flex-col relative overflow-hidden\">\r\n <loading [type]=\"3\" [loading]=\"loading\" text=\"\"></loading>\r\n <div class=\"size-full shrink flex gap-2\">\r\n <div class=\"h-full w-12 pr-2 py-2 mask-y shrink-0 flex flex-col gap-2 overflow-y-auto overflow-x-hidden border-dashed border-r border-r-medium/30\">\r\n <div #searchAnchor (click)=\"modal.present()\" class=\"search-button size-10 aspect-square shrink-0 rounded-xl bg-inactive gradient-background menu\">\r\n <ion-icon name=\"search\" slot=\"icon-only\"></ion-icon>\r\n </div>\r\n\r\n @for (item of lstMenu(); track $index) {\r\n <div>\r\n <div\r\n [class.bg-active]=\"CurrentGroupActive == item\"\r\n #anchor (mouseenter)=\"popover.present($event)\" \r\n (mouseleave)=\"popover.dismiss()\" \r\n (click)=\"CurrentGroupActive = item\" \r\n class=\"w-10 aspect-square shrink-0 rounded-xl bg-inactive gradient-background menu\"\r\n >\r\n <ion-icon [name]=\"item.icon\"></ion-icon>\r\n </div>\r\n <sion-popover #popover [anchor]=\"anchor\" [flip]=\"false\" placement=\"right\" fill=\"solid\">\r\n <div class=\"p-1\">\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + item.id | translate) : item.title}}\r\n </div>\r\n </sion-popover>\r\n </div>\r\n }\r\n\r\n </div>\r\n <div class=\"size-full shrink relative\">\r\n @for (mGroup of lstMenu(); track $index) {\r\n <div class=\"absolute top-0 left-0 size-full py-2 default-transition opacity-0 translate-x-full z-0 overflow-hidden\" [ngClass]=\"{'opacity-100 !translate-x-0': CurrentGroupActive == mGroup}\">\r\n <drawer-group [MenuGroup]=\"mGroup\" [useTranslation]=\"useTranslation\" [colapsed]=\"colapsed\"></drawer-group>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- [ End ] -->\r\n <div class=\"shrink-0 w-full\">\r\n <ng-content select=\"[slot=drawer]\"></ng-content>\r\n </div>\r\n</div>\r\n\r\n<ion-modal #modal [keepContentsMounted]=\"true\" (onWillDismiss)=\"search.set('')\">\r\n <ng-template>\r\n <ion-content>\r\n <ion-card class=\"size-full m-0 overflow-hidden\">\r\n <ion-card-content class=\"size-full flex flex-col overflow-hidden p-0\">\r\n <div class=\"shrink-0 w-full flex items-center justify-center\">\r\n <ion-searchbar class=\"p-0 !pl-2 !py-2\" [ngModel]=\"this.search()\" (ngModelChange)=\"this.search.set($event)\" [debounce]=\"200\"></ion-searchbar>\r\n <ion-button size=\"small\" fill=\"clear\" (click)=\"modal.dismiss()\">\r\n <ion-icon name=\"close\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n\r\n <div class=\"size-full flex flex-col shrink gap-2 overflow-y-auto p-2 mask-y\">\r\n @for (vGroup of lstMenuFiltered(); track $index) {\r\n <ion-card class=\"m-0 shrink-0\">\r\n <ion-card-content class=\"p-0 gradient-background bg-inactive flex flex-col\">\r\n <div class=\"w-10 flex items-center !justify-start gap-2 text-dark shrink-0 p-2\">\r\n <ion-icon [name]=\"vGroup.icon\"></ion-icon>\r\n <ion-text>\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + vGroup.id | translate) : vGroup.title}} \r\n </ion-text>\r\n </div>\r\n @for (vMenu of vGroup.lstMenu; track $index) {\r\n <div \r\n (click)=\"HandleNav(vMenu, $event); modal.dismiss()\"\r\n [class.bg-active]=\"router.isActive('/' + vMenu.route, false)\"\r\n class=\"w-full flex items-center !justify-start gap-2 text-dark shrink-0 !pl-8 p-1.5 border-t border-t-medium/30 menu-search\">\r\n <ion-icon [name]=\"vMenu.icon\"></ion-icon>\r\n <ion-text>\r\n {{useTranslation ? (TranslationModule.Permissao + vMenu.id | translate) : vMenu.title}} \r\n </ion-text>\r\n </div>\r\n }\r\n </ion-card-content>\r\n </ion-card>\r\n }\r\n\r\n @if (lstMenuFiltered().length == 0) {\r\n <ion-text class=\"text-center text-medium\">\r\n {{useTranslation ? (TranslationModule.SemResultado | translate) : 'Sem resultados encontrados'}}\r\n </ion-text>\r\n }\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </ion-content>\r\n </ng-template>\r\n</ion-modal>", styles: [".bg-active{--color-primary: var(--ion-color-primary) !important;--step-1-opacity: .7 !important;--step-2-opacity: .3 !important}.bg-inactive{--color-primary: var(--ion-color-step-250);--step-1-opacity: .5;--step-2-opacity: .4;--step-3-opacity: .8}.menu{display:flex;cursor:pointer;align-items:center;justify-content:center;gap:.5rem;border-radius:.75rem;padding:.5rem;transition:--color-primary,--step-1-opacity,--step-2-opacity .2s ease-in-out;--inset: var(--color-primary) 0px 1.75px 2px 0px inset;box-shadow:var(--inset)}.toggle:hover{--color-primary: var(--ion-color-step-500) !important;transition:--color-primary .2s ease-in-out}.search-button{--inset2: var(--ion-color-medium) 0px 0px 5px -1px inset;box-shadow:var(--inset2)}.menu-search{position:relative;cursor:pointer;overflow:hidden}.menu-search.bg-active:after{content:\"\";position:absolute;top:50%;right:0;width:.375rem;height:75%;transform:translateY(-50%);border-radius:1rem;background-color:color-mix(in srgb,var(--ion-color-primary) 70%,transparent);opacity:1!important;filter:drop-shadow(color-mix(in srgb,var(--ion-color-primary) 70%,transparent) 0px 0px 3px)}.menu-search.bg-active:before{content:\"\";position:absolute;top:50%;right:-2.3rem;width:5rem;height:7rem;transform:translateY(-50%);border-radius:1rem;opacity:.5!important;background:radial-gradient(color-mix(in srgb,var(--ion-color-primary) 70%,transparent) 0%,transparent 66%)}.menu-search.bg-inactive{--color-primary: var(--ion-color-step-250);--step-1-opacity: .5;--step-2-opacity: .4;--step-3-opacity: .8;position:relative}.menu-search.bg-inactive:after{content:\"\";opacity:0;transition:opacity .2s ease-in-out;will-change:opacity}.menu-search.bg-inactive:before{content:\"\";opacity:0;transition:opacity .2s ease-in-out;will-change:opacity}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocapitalize", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "maxlength", "minlength", "mode", "name", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonModal, selector: "ion-modal" }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-input-otp[type=text],ion-textarea,ion-searchbar" }, { kind: "component", type: LoadingComponent, selector: "loading", inputs: ["text", "type", "loading"] }, { kind: "component", type: DrawerGroupComponent, selector: "drawer-group", inputs: ["MenuGroup", "colapsed", "useTranslation"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: SIonPopoverModule }, { kind: "component", type: i6.SIonPopoverComponent, selector: "sion-popover", inputs: ["fill", "arrow", "flip", "placement", "height", "width", "anchor"], outputs: ["onWillPresent", "onDidPresent", "onWillDismiss", "onDidDismiss"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
94
|
+
}
|
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerComponent, decorators: [{
|
|
96
|
+
type: Component,
|
|
97
|
+
args: [{ standalone: true, imports: [
|
|
98
|
+
CommonModule,
|
|
99
|
+
IonicModule,
|
|
100
|
+
LoadingComponent,
|
|
101
|
+
DrawerGroupComponent,
|
|
102
|
+
TranslateModule,
|
|
103
|
+
SIonPopoverModule,
|
|
104
|
+
RouterLinkWithHref,
|
|
105
|
+
ReactiveFormsModule,
|
|
106
|
+
FormsModule
|
|
107
|
+
], selector: 'drawer', template: "<div class=\"absolute left-0 top-0 h-full bg-light size-full flex flex-col p-2 !pr-0 w-[19rem] overflow-hidden\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n <!-- [ Header ] -->\r\n <div class=\"shrink-0 w-full flex justify-between items-center\">\r\n <div #anchor\r\n (click)=\"ToggleCollapsed()\" \r\n class=\"toggle size-10 aspect-square shrink-0 rounded-xl bg-inactive gradient-background menu\"\r\n >\r\n <ion-icon name=\"menu\" slot=\"icon-only\"></ion-icon>\r\n </div>\r\n <!-- <ion-button class=\"size-10 shrink-0 aspect-square\" size=\"small\" color=\"medium\" (click)=\"ToggleCollapsed()\">\r\n <ion-icon name=\"menu\" slot=\"icon-only\"></ion-icon>\r\n </ion-button> -->\r\n\r\n <div class=\"size-full shrink flex pl-2 \">\r\n <div class=\"size-full max-h-10 flex flex-wrap overflow-hidden\">\r\n @if (!ref.children.length) {\r\n <ion-text class=\"size-full flex items-center justify-center default-transition z-0\" [ngClass]=\"{'opacity-0 -translate-x-1/2 pointer-events-none': colapsed }\"> \r\n {{title}}\r\n </ion-text>\r\n }\r\n <div #ref class=\"size-full flex items-center justify-center shrink-0\">\r\n <ng-content select=\"[slot=logo]\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- [ Content ] -->\r\n <div class=\"size-full shrink flex flex-col relative overflow-hidden\">\r\n <loading [type]=\"3\" [loading]=\"loading\" text=\"\"></loading>\r\n <div class=\"size-full shrink flex gap-2\">\r\n <div class=\"h-full w-12 pr-2 py-2 mask-y shrink-0 flex flex-col gap-2 overflow-y-auto overflow-x-hidden border-dashed border-r border-r-medium/30\">\r\n <div #searchAnchor (click)=\"modal.present()\" class=\"search-button size-10 aspect-square shrink-0 rounded-xl bg-inactive gradient-background menu\">\r\n <ion-icon name=\"search\" slot=\"icon-only\"></ion-icon>\r\n </div>\r\n\r\n @for (item of lstMenu(); track $index) {\r\n <div>\r\n <div\r\n [class.bg-active]=\"CurrentGroupActive == item\"\r\n #anchor (mouseenter)=\"popover.present($event)\" \r\n (mouseleave)=\"popover.dismiss()\" \r\n (click)=\"CurrentGroupActive = item\" \r\n class=\"w-10 aspect-square shrink-0 rounded-xl bg-inactive gradient-background menu\"\r\n >\r\n <ion-icon [name]=\"item.icon\"></ion-icon>\r\n </div>\r\n <sion-popover #popover [anchor]=\"anchor\" [flip]=\"false\" placement=\"right\" fill=\"solid\">\r\n <div class=\"p-1\">\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + item.id | translate) : item.title}}\r\n </div>\r\n </sion-popover>\r\n </div>\r\n }\r\n\r\n </div>\r\n <div class=\"size-full shrink relative\">\r\n @for (mGroup of lstMenu(); track $index) {\r\n <div class=\"absolute top-0 left-0 size-full py-2 default-transition opacity-0 translate-x-full z-0 overflow-hidden\" [ngClass]=\"{'opacity-100 !translate-x-0': CurrentGroupActive == mGroup}\">\r\n <drawer-group [MenuGroup]=\"mGroup\" [useTranslation]=\"useTranslation\" [colapsed]=\"colapsed\"></drawer-group>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- [ End ] -->\r\n <div class=\"shrink-0 w-full\">\r\n <ng-content select=\"[slot=drawer]\"></ng-content>\r\n </div>\r\n</div>\r\n\r\n<ion-modal #modal [keepContentsMounted]=\"true\" (onWillDismiss)=\"search.set('')\">\r\n <ng-template>\r\n <ion-content>\r\n <ion-card class=\"size-full m-0 overflow-hidden\">\r\n <ion-card-content class=\"size-full flex flex-col overflow-hidden p-0\">\r\n <div class=\"shrink-0 w-full flex items-center justify-center\">\r\n <ion-searchbar class=\"p-0 !pl-2 !py-2\" [ngModel]=\"this.search()\" (ngModelChange)=\"this.search.set($event)\" [debounce]=\"200\"></ion-searchbar>\r\n <ion-button size=\"small\" fill=\"clear\" (click)=\"modal.dismiss()\">\r\n <ion-icon name=\"close\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n\r\n <div class=\"size-full flex flex-col shrink gap-2 overflow-y-auto p-2 mask-y\">\r\n @for (vGroup of lstMenuFiltered(); track $index) {\r\n <ion-card class=\"m-0 shrink-0\">\r\n <ion-card-content class=\"p-0 gradient-background bg-inactive flex flex-col\">\r\n <div class=\"w-10 flex items-center !justify-start gap-2 text-dark shrink-0 p-2\">\r\n <ion-icon [name]=\"vGroup.icon\"></ion-icon>\r\n <ion-text>\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + vGroup.id | translate) : vGroup.title}} \r\n </ion-text>\r\n </div>\r\n @for (vMenu of vGroup.lstMenu; track $index) {\r\n <div \r\n (click)=\"HandleNav(vMenu, $event); modal.dismiss()\"\r\n [class.bg-active]=\"router.isActive('/' + vMenu.route, false)\"\r\n class=\"w-full flex items-center !justify-start gap-2 text-dark shrink-0 !pl-8 p-1.5 border-t border-t-medium/30 menu-search\">\r\n <ion-icon [name]=\"vMenu.icon\"></ion-icon>\r\n <ion-text>\r\n {{useTranslation ? (TranslationModule.Permissao + vMenu.id | translate) : vMenu.title}} \r\n </ion-text>\r\n </div>\r\n }\r\n </ion-card-content>\r\n </ion-card>\r\n }\r\n\r\n @if (lstMenuFiltered().length == 0) {\r\n <ion-text class=\"text-center text-medium\">\r\n {{useTranslation ? (TranslationModule.SemResultado | translate) : 'Sem resultados encontrados'}}\r\n </ion-text>\r\n }\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </ion-content>\r\n </ng-template>\r\n</ion-modal>", styles: [".bg-active{--color-primary: var(--ion-color-primary) !important;--step-1-opacity: .7 !important;--step-2-opacity: .3 !important}.bg-inactive{--color-primary: var(--ion-color-step-250);--step-1-opacity: .5;--step-2-opacity: .4;--step-3-opacity: .8}.menu{display:flex;cursor:pointer;align-items:center;justify-content:center;gap:.5rem;border-radius:.75rem;padding:.5rem;transition:--color-primary,--step-1-opacity,--step-2-opacity .2s ease-in-out;--inset: var(--color-primary) 0px 1.75px 2px 0px inset;box-shadow:var(--inset)}.toggle:hover{--color-primary: var(--ion-color-step-500) !important;transition:--color-primary .2s ease-in-out}.search-button{--inset2: var(--ion-color-medium) 0px 0px 5px -1px inset;box-shadow:var(--inset2)}.menu-search{position:relative;cursor:pointer;overflow:hidden}.menu-search.bg-active:after{content:\"\";position:absolute;top:50%;right:0;width:.375rem;height:75%;transform:translateY(-50%);border-radius:1rem;background-color:color-mix(in srgb,var(--ion-color-primary) 70%,transparent);opacity:1!important;filter:drop-shadow(color-mix(in srgb,var(--ion-color-primary) 70%,transparent) 0px 0px 3px)}.menu-search.bg-active:before{content:\"\";position:absolute;top:50%;right:-2.3rem;width:5rem;height:7rem;transform:translateY(-50%);border-radius:1rem;opacity:.5!important;background:radial-gradient(color-mix(in srgb,var(--ion-color-primary) 70%,transparent) 0%,transparent 66%)}.menu-search.bg-inactive{--color-primary: var(--ion-color-step-250);--step-1-opacity: .5;--step-2-opacity: .4;--step-3-opacity: .8;position:relative}.menu-search.bg-inactive:after{content:\"\";opacity:0;transition:opacity .2s ease-in-out;will-change:opacity}.menu-search.bg-inactive:before{content:\"\";opacity:0;transition:opacity .2s ease-in-out;will-change:opacity}\n"] }]
|
|
108
|
+
}], ctorParameters: () => [{ type: i1.Router }, { type: i2.NavController }, { type: i3.GenericService }], propDecorators: { loading: [{
|
|
109
|
+
type: Input
|
|
110
|
+
}], colapsed: [{
|
|
111
|
+
type: Input
|
|
112
|
+
}], colapsedChange: [{
|
|
113
|
+
type: Output
|
|
114
|
+
}], title: [{
|
|
115
|
+
type: Input
|
|
116
|
+
}], useTranslation: [{
|
|
117
|
+
type: Input
|
|
118
|
+
}] } });
|
|
119
|
+
/**
|
|
120
|
+
* Flattens a hierarchical Menu[] structure into a single array
|
|
121
|
+
* containing all Menu items from the original array and all nested items
|
|
122
|
+
* @param menus The array of Menu items to flatten
|
|
123
|
+
* @returns A flattened array containing all Menu items
|
|
124
|
+
*/
|
|
125
|
+
function FlattenMenus(menus) {
|
|
126
|
+
const result = [];
|
|
127
|
+
function addMenuItems(items) {
|
|
128
|
+
for (const menu of items) {
|
|
129
|
+
// Add current menu to result
|
|
130
|
+
result.push(menu);
|
|
131
|
+
// Process nested menus if they exist
|
|
132
|
+
if (menu.lstMenu && menu.lstMenu.length > 0) {
|
|
133
|
+
addMenuItems(menu.lstMenu);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
addMenuItems(menus);
|
|
138
|
+
return result;
|
|
139
|
+
}
|
|
140
|
+
function FindMenuParent(menus, targetMenu) {
|
|
141
|
+
for (const menu of menus) {
|
|
142
|
+
// Check if current menu has the target in its direct children
|
|
143
|
+
if (menu.lstMenu && menu.lstMenu.some(m => m === targetMenu)) {
|
|
144
|
+
return menu;
|
|
145
|
+
}
|
|
146
|
+
// Search deeper in the hierarchy
|
|
147
|
+
if (menu.lstMenu && menu.lstMenu.length > 0) {
|
|
148
|
+
const parent = FindMenuParent(menu.lstMenu, targetMenu);
|
|
149
|
+
if (parent) {
|
|
150
|
+
return parent;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kcmF3ZXIvZHJhd2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kcmF3ZXIvZHJhd2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBZSxNQUFNLEVBQUUsTUFBTSxFQUEwQixNQUFNLGVBQWUsQ0FBQztBQUM3SSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUU5QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBa0JsRSxNQUFNLE9BQU8sZUFBZTtJQWlCMUIsWUFDUyxNQUFjLEVBQ2IsYUFBNEIsRUFDNUIsY0FBOEI7UUFGL0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNiLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQWxCeEMsc0JBQWlCLEdBQVE7WUFDdkIsU0FBUyxFQUFPLHFCQUFxQjtZQUNyQyxjQUFjLEVBQUUsMEJBQTBCO1lBQzFDLFlBQVksRUFBSSx1QkFBdUI7U0FDeEMsQ0FBQztRQUVPLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFDakMsWUFBTyxHQUF3QixLQUFLLEVBQVUsQ0FBQztRQUMvQyxtQkFBYyxHQUFtQixRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVoRixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQ3pCLG1CQUFjLEdBQTBCLElBQUksWUFBcUIsQ0FBQztRQUVuRSxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQW9CekMsdUJBQWtCLEdBQVMsSUFBSSxDQUFDO1FBT2hDLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBK0JoQyxXQUFNLEdBQTJCLE1BQU0sQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUNwRCxvQkFBZSxHQUFtQixRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzlDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN4QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNuQyxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEgsQ0FBQyxDQUFDLENBQUM7WUFDSCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDdEQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQztRQTNERCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsbUJBQW1CO1lBQ25CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN4RixNQUFNLEtBQUssR0FBZ0IsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUN2RSxJQUFHLEtBQUssRUFBQyxDQUFDO2dCQUNSLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7WUFDbEMsQ0FBQztpQkFDRyxDQUFDO2dCQUNILElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELGVBQWU7UUFDYixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBR0QsWUFBWTtRQUNWLElBQUcsSUFBSSxDQUFDLFFBQVEsRUFBQyxDQUFDO1lBQ2hCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDO0lBQ0QsWUFBWTtRQUNWLElBQUcsSUFBSSxDQUFDLGNBQWMsRUFBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1lBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLElBQWdCLEVBQUUsS0FBaUI7UUFDM0MsSUFBRyxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUMsQ0FBQztZQUNqQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDeEQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixNQUFNLE1BQU0sR0FBZ0IsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqRSxJQUFHLE1BQU0sRUFBQyxDQUFDO1lBQ1QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQztRQUNuQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBQ0QsUUFBUSxDQUFDLElBQVU7UUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7K0dBdkVVLGVBQWU7bUdBQWYsZUFBZSx5d0JDOUI1Qixvak1BdUhZLDZ5RER2R1IsWUFBWSw0SEFDWixXQUFXLHdsREFDWCxnQkFBZ0IseUZBQ2hCLG9CQUFvQiw2R0FDcEIsZUFBZSwyRkFDZixpQkFBaUIsd1FBRWpCLG1CQUFtQixzSUFDbkIsV0FBVzs7NEZBTUYsZUFBZTtrQkFqQjNCLFNBQVM7aUNBQ0ksSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixXQUFXO3FCQUNaLFlBQ1MsUUFBUTtvSUFZVCxPQUFPO3NCQUFmLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNFLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLOztBQXFFUjs7Ozs7R0FLRztBQUNILFNBQVMsWUFBWSxDQUFDLEtBQWE7SUFDakMsTUFBTSxNQUFNLEdBQVcsRUFBRSxDQUFDO0lBRTFCLFNBQVMsWUFBWSxDQUFDLEtBQWE7UUFDakMsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN6Qiw2QkFBNkI7WUFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVsQixxQ0FBcUM7WUFDckMsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM1QyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsS0FBYSxFQUFFLFVBQWdCO0lBQ3JELEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDekIsOERBQThEO1FBQzlELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzdELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELGlDQUFpQztRQUNqQyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUMsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDeEQsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIEV2ZW50RW1pdHRlciwgaW5wdXQsIElucHV0LCBJbnB1dFNpZ25hbCwgT3V0cHV0LCBzaWduYWwsIFNpZ25hbCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IElvbmljTW9kdWxlLCBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBNZW51IH0gZnJvbSAnLi9tZW51JztcclxuXHJcbmltcG9ydCB7IERyYXdlckdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9kcmF3ZXItZ3JvdXAvZHJhd2VyLWdyb3VwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExvYWRpbmdDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTSW9uUG9wb3Zlck1vZHVsZSB9IGZyb20gJy4uL3BvcG92ZXIvc2lvbi1wb3BvdmVyLm1vZHVsZSc7XHJcbmltcG9ydCB7IFJvdXRlciwgUm91dGVyTGlua1dpdGhIcmVmIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgR2VuZXJpY1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9nZW5lcmljLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZWFyY2ggfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSW9uaWNNb2R1bGUsXHJcbiAgICBMb2FkaW5nQ29tcG9uZW50LFxyXG4gICAgRHJhd2VyR3JvdXBDb21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBTSW9uUG9wb3Zlck1vZHVsZSxcclxuICAgIFJvdXRlckxpbmtXaXRoSHJlZixcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZVxyXG4gIF0sXHJcbiAgc2VsZWN0b3I6ICdkcmF3ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kcmF3ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RyYXdlci5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJhd2VyQ29tcG9uZW50IHtcclxuXHJcbiAgVHJhbnNsYXRpb25Nb2R1bGU6IGFueSA9IHtcclxuICAgIFBlcm1pc3NhbyAgICAgOiAnRW50aXRpZXMuUGVybWlzc2FvLicsXHJcbiAgICBQZXJtaXNzYW9HcnVwbzogJ0VudGl0aWVzLlBlcm1pc3Nhb0dydXBvLicsXHJcbiAgICBTZW1SZXN1bHRhZG8gIDogJ01lc3NhZ2VzLlNlbVJlc3VsdGFkbydcclxuICB9O1xyXG5cclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBsc3RNZW51OiBJbnB1dFNpZ25hbDxNZW51W10+ID0gaW5wdXQ8TWVudVtdPigpO1xyXG4gIGxzdEZsYXR0ZW5NZW51OiBTaWduYWw8TWVudVtdPiA9IGNvbXB1dGVkKCgpID0+IHsgcmV0dXJuIEZsYXR0ZW5NZW51cyh0aGlzLmxzdE1lbnUoKSkgfSk7XHJcblxyXG4gIEBJbnB1dCgpIGNvbGFwc2VkOiBib29sZWFuID0gZmFsc2U7ICBcclxuICBAT3V0cHV0KCkgY29sYXBzZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47ICBcclxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHVzZVRyYW5zbGF0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIG5hdkNvbnRyb2xsZXI6IE5hdkNvbnRyb2xsZXIsXHJcbiAgICBwcml2YXRlIGdlbmVyaWNTZXJ2aWNlOiBHZW5lcmljU2VydmljZVxyXG4gICkgeyBcclxuICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgIC8vSGFuZGxlIE1lbnUgVGl0bGVcclxuICAgICAgY29uc3QgbHN0RmxhdCA9IHRoaXMubHN0RmxhdHRlbk1lbnUoKTtcclxuICAgICAgY29uc3QgY3VycmVudE1lbnUgPSBsc3RGbGF0LmZpbmQocCA9PiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuaW5jbHVkZXMoJy8nICsgcC5yb3V0ZSkpO1xyXG4gICAgICBjb25zdCBncm91cDogTWVudSB8IG51bGwgPSBGaW5kTWVudVBhcmVudCh0aGlzLmxzdE1lbnUoKSwgY3VycmVudE1lbnUpO1xyXG4gICAgICBpZihncm91cCl7XHJcbiAgICAgICAgdGhpcy5DdXJyZW50R3JvdXBBY3RpdmUgPSBncm91cDtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIHRoaXMuQ3VycmVudEdyb3VwQWN0aXZlID0gdGhpcy5sc3RNZW51KClbMF07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBDdXJyZW50R3JvdXBBY3RpdmU6IE1lbnUgPSBudWxsO1xyXG5cclxuICBUb2dnbGVDb2xsYXBzZWQoKXtcclxuICAgIHRoaXMuY29sYXBzZWRDaGFuZ2UuZW1pdCghdGhpcy5fZW50ZXJDb2xhcHNlZCk7XHJcbiAgICB0aGlzLl9lbnRlckNvbGFwc2VkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBfZW50ZXJDb2xhcHNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG9uTW91c2VFbnRlcigpe1xyXG4gICAgaWYodGhpcy5jb2xhcHNlZCl7XHJcbiAgICAgIHRoaXMuX2VudGVyQ29sYXBzZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmNvbGFwc2VkQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbk1vdXNlTGVhdmUoKXtcclxuICAgIGlmKHRoaXMuX2VudGVyQ29sYXBzZWQpe1xyXG4gICAgICB0aGlzLl9lbnRlckNvbGFwc2VkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY29sYXBzZWRDaGFuZ2UuZW1pdCh0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEhhbmRsZU5hdihpdGVtOiBNZW51IHwgYW55LCBldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgaWYoZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5KXtcclxuICAgICAgd2luZG93Lm9wZW4od2luZG93Lm9yaWdpbiArICcvJyArIGl0ZW0ucm91dGUsICdfYmxhbmsnKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5TZXRUaXRsZShpdGVtKTtcclxuICAgIGNvbnN0IHZHcm91cDogTWVudSB8IG51bGwgPSBGaW5kTWVudVBhcmVudCh0aGlzLmxzdE1lbnUoKSwgaXRlbSk7XHJcbiAgICBpZih2R3JvdXApe1xyXG4gICAgICB0aGlzLkN1cnJlbnRHcm91cEFjdGl2ZSA9IHZHcm91cDtcclxuICAgIH1cclxuICAgIHRoaXMubmF2Q29udHJvbGxlci5uYXZpZ2F0ZVJvb3QoJy8nICsgaXRlbS5yb3V0ZSk7XHJcbiAgfVxyXG4gIFNldFRpdGxlKGl0ZW06IE1lbnUpe1xyXG4gICAgdGhpcy5nZW5lcmljU2VydmljZS5TZXRUaXRsZShpdGVtLnRpdGxlKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaDogV3JpdGFibGVTaWduYWw8c3RyaW5nPiA9IHNpZ25hbDxzdHJpbmc+KFwiXCIpO1xyXG4gIGxzdE1lbnVGaWx0ZXJlZDogU2lnbmFsPE1lbnVbXT4gPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBjb25zdCBzdHIgPSB0aGlzLnNlYXJjaCgpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBjb25zdCBsc3RTMSA9IHRoaXMubHN0TWVudSgpLm1hcChwID0+IHtcclxuICAgICAgcmV0dXJuIG5ldyBNZW51KHAudHlwZSwgcC50aXRsZSwgcC5pY29uLCBwLmxzdE1lbnUuZmlsdGVyKHggPT4geC50aXRsZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHN0cikpLCBwLnJvdXRlKTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgbHN0UzIgPSBsc3RTMS5maWx0ZXIocCA9PiBwLmxzdE1lbnUubGVuZ3RoID4gMCk7XHJcbiAgICByZXR1cm4gbHN0UzI7XHJcbiAgfSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBGbGF0dGVucyBhIGhpZXJhcmNoaWNhbCBNZW51W10gc3RydWN0dXJlIGludG8gYSBzaW5nbGUgYXJyYXlcclxuICogY29udGFpbmluZyBhbGwgTWVudSBpdGVtcyBmcm9tIHRoZSBvcmlnaW5hbCBhcnJheSBhbmQgYWxsIG5lc3RlZCBpdGVtc1xyXG4gKiBAcGFyYW0gbWVudXMgVGhlIGFycmF5IG9mIE1lbnUgaXRlbXMgdG8gZmxhdHRlblxyXG4gKiBAcmV0dXJucyBBIGZsYXR0ZW5lZCBhcnJheSBjb250YWluaW5nIGFsbCBNZW51IGl0ZW1zXHJcbiAqL1xyXG5mdW5jdGlvbiBGbGF0dGVuTWVudXMobWVudXM6IE1lbnVbXSk6IE1lbnVbXSB7XHJcbiAgY29uc3QgcmVzdWx0OiBNZW51W10gPSBbXTtcclxuICBcclxuICBmdW5jdGlvbiBhZGRNZW51SXRlbXMoaXRlbXM6IE1lbnVbXSkge1xyXG4gICAgZm9yIChjb25zdCBtZW51IG9mIGl0ZW1zKSB7XHJcbiAgICAgIC8vIEFkZCBjdXJyZW50IG1lbnUgdG8gcmVzdWx0XHJcbiAgICAgIHJlc3VsdC5wdXNoKG1lbnUpO1xyXG4gICAgICBcclxuICAgICAgLy8gUHJvY2VzcyBuZXN0ZWQgbWVudXMgaWYgdGhleSBleGlzdFxyXG4gICAgICBpZiAobWVudS5sc3RNZW51ICYmIG1lbnUubHN0TWVudS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgYWRkTWVudUl0ZW1zKG1lbnUubHN0TWVudSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgYWRkTWVudUl0ZW1zKG1lbnVzKTtcclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5mdW5jdGlvbiBGaW5kTWVudVBhcmVudChtZW51czogTWVudVtdLCB0YXJnZXRNZW51OiBNZW51KTogTWVudSB8IG51bGwge1xyXG4gIGZvciAoY29uc3QgbWVudSBvZiBtZW51cykge1xyXG4gICAgLy8gQ2hlY2sgaWYgY3VycmVudCBtZW51IGhhcyB0aGUgdGFyZ2V0IGluIGl0cyBkaXJlY3QgY2hpbGRyZW5cclxuICAgIGlmIChtZW51LmxzdE1lbnUgJiYgbWVudS5sc3RNZW51LnNvbWUobSA9PiBtID09PSB0YXJnZXRNZW51KSkge1xyXG4gICAgICByZXR1cm4gbWVudTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLy8gU2VhcmNoIGRlZXBlciBpbiB0aGUgaGllcmFyY2h5XHJcbiAgICBpZiAobWVudS5sc3RNZW51ICYmIG1lbnUubHN0TWVudS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IHBhcmVudCA9IEZpbmRNZW51UGFyZW50KG1lbnUubHN0TWVudSwgdGFyZ2V0TWVudSk7XHJcbiAgICAgIGlmIChwYXJlbnQpIHtcclxuICAgICAgICByZXR1cm4gcGFyZW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIHJldHVybiBudWxsO1xyXG59IiwiPGRpdiBjbGFzcz1cImFic29sdXRlIGxlZnQtMCB0b3AtMCBoLWZ1bGwgYmctbGlnaHQgc2l6ZS1mdWxsIGZsZXggZmxleC1jb2wgcC0yICFwci0wIHctWzE5cmVtXSBvdmVyZmxvdy1oaWRkZW5cIiAobW91c2VlbnRlcik9XCJvbk1vdXNlRW50ZXIoKVwiIChtb3VzZWxlYXZlKT1cIm9uTW91c2VMZWF2ZSgpXCI+XHJcbiAgPCEtLSBbIEhlYWRlciBdIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJzaHJpbmstMCB3LWZ1bGwgZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyXCI+XHJcbiAgICA8ZGl2ICNhbmNob3JcclxuICAgICAgKGNsaWNrKT1cIlRvZ2dsZUNvbGxhcHNlZCgpXCIgXHJcbiAgICAgIGNsYXNzPVwidG9nZ2xlIHNpemUtMTAgYXNwZWN0LXNxdWFyZSBzaHJpbmstMCByb3VuZGVkLXhsIGJnLWluYWN0aXZlIGdyYWRpZW50LWJhY2tncm91bmQgbWVudVwiXHJcbiAgICA+XHJcbiAgICAgIDxpb24taWNvbiBuYW1lPVwibWVudVwiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIDxpb24tYnV0dG9uIGNsYXNzPVwic2l6ZS0xMCBzaHJpbmstMCBhc3BlY3Qtc3F1YXJlXCIgc2l6ZT1cInNtYWxsXCIgY29sb3I9XCJtZWRpdW1cIiAoY2xpY2spPVwiVG9nZ2xlQ29sbGFwc2VkKClcIj5cclxuICAgICAgPGlvbi1pY29uIG5hbWU9XCJtZW51XCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XHJcbiAgICA8L2lvbi1idXR0b24+IC0tPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzaXplLWZ1bGwgc2hyaW5rIGZsZXggcGwtMiBcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNpemUtZnVsbCBtYXgtaC0xMCBmbGV4IGZsZXgtd3JhcCBvdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgICAgICBAaWYgKCFyZWYuY2hpbGRyZW4ubGVuZ3RoKSB7XHJcbiAgICAgICAgICA8aW9uLXRleHQgY2xhc3M9XCJzaXplLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZGVmYXVsdC10cmFuc2l0aW9uIHotMFwiIFtuZ0NsYXNzXT1cInsnb3BhY2l0eS0wIC10cmFuc2xhdGUteC0xLzIgcG9pbnRlci1ldmVudHMtbm9uZSc6IGNvbGFwc2VkIH1cIj4gXHJcbiAgICAgICAgICAgIHt7dGl0bGV9fVxyXG4gICAgICAgICAgPC9pb24tdGV4dD5cclxuICAgICAgICB9XHJcbiAgICAgICAgPGRpdiAjcmVmIGNsYXNzPVwic2l6ZS1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHNocmluay0wXCI+XHJcbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD1sb2dvXVwiPjwvbmctY29udGVudD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBbIENvbnRlbnQgXSAtLT5cclxuICA8ZGl2IGNsYXNzPVwic2l6ZS1mdWxsIHNocmluayBmbGV4IGZsZXgtY29sIHJlbGF0aXZlIG92ZXJmbG93LWhpZGRlblwiPlxyXG4gICAgPGxvYWRpbmcgW3R5cGVdPVwiM1wiIFtsb2FkaW5nXT1cImxvYWRpbmdcIiB0ZXh0PVwiXCI+PC9sb2FkaW5nPlxyXG4gICAgPGRpdiBjbGFzcz1cInNpemUtZnVsbCBzaHJpbmsgZmxleCBnYXAtMlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaC1mdWxsIHctMTIgcHItMiBweS0yIG1hc2steSBzaHJpbmstMCBmbGV4IGZsZXgtY29sIGdhcC0yIG92ZXJmbG93LXktYXV0byBvdmVyZmxvdy14LWhpZGRlbiBib3JkZXItZGFzaGVkIGJvcmRlci1yIGJvcmRlci1yLW1lZGl1bS8zMFwiPlxyXG4gICAgICAgIDxkaXYgI3NlYXJjaEFuY2hvciAoY2xpY2spPVwibW9kYWwucHJlc2VudCgpXCIgY2xhc3M9XCJzZWFyY2gtYnV0dG9uIHNpemUtMTAgYXNwZWN0LXNxdWFyZSBzaHJpbmstMCByb3VuZGVkLXhsIGJnLWluYWN0aXZlIGdyYWRpZW50LWJhY2tncm91bmQgbWVudVwiPlxyXG4gICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJzZWFyY2hcIiBzbG90PVwiaWNvbi1vbmx5XCI+PC9pb24taWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgQGZvciAoaXRlbSBvZiBsc3RNZW51KCk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5iZy1hY3RpdmVdPVwiQ3VycmVudEdyb3VwQWN0aXZlID09IGl0ZW1cIlxyXG4gICAgICAgICAgICAgICNhbmNob3IgKG1vdXNlZW50ZXIpPVwicG9wb3Zlci5wcmVzZW50KCRldmVudClcIiBcclxuICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJwb3BvdmVyLmRpc21pc3MoKVwiIFxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJDdXJyZW50R3JvdXBBY3RpdmUgPSBpdGVtXCIgXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ3LTEwIGFzcGVjdC1zcXVhcmUgc2hyaW5rLTAgcm91bmRlZC14bCBiZy1pbmFjdGl2ZSBncmFkaWVudC1iYWNrZ3JvdW5kIG1lbnVcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cIml0ZW0uaWNvblwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c2lvbi1wb3BvdmVyICNwb3BvdmVyIFthbmNob3JdPVwiYW5jaG9yXCIgW2ZsaXBdPVwiZmFsc2VcIiBwbGFjZW1lbnQ9XCJyaWdodFwiIGZpbGw9XCJzb2xpZFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLTFcIj5cclxuICAgICAgICAgICAgICAgIHt7dXNlVHJhbnNsYXRpb24gPyAoVHJhbnNsYXRpb25Nb2R1bGUuUGVybWlzc2FvR3J1cG8gKyBpdGVtLmlkIHwgdHJhbnNsYXRlKSA6IGl0ZW0udGl0bGV9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3Npb24tcG9wb3Zlcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2l6ZS1mdWxsIHNocmluayByZWxhdGl2ZVwiPlxyXG4gICAgICAgIEBmb3IgKG1Hcm91cCBvZiBsc3RNZW51KCk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCBzaXplLWZ1bGwgcHktMiBkZWZhdWx0LXRyYW5zaXRpb24gb3BhY2l0eS0wIHRyYW5zbGF0ZS14LWZ1bGwgei0wIG92ZXJmbG93LWhpZGRlblwiIFtuZ0NsYXNzXT1cInsnb3BhY2l0eS0xMDAgIXRyYW5zbGF0ZS14LTAnOiBDdXJyZW50R3JvdXBBY3RpdmUgPT0gbUdyb3VwfVwiPlxyXG4gICAgICAgICAgICA8ZHJhd2VyLWdyb3VwIFtNZW51R3JvdXBdPVwibUdyb3VwXCIgW3VzZVRyYW5zbGF0aW9uXT1cInVzZVRyYW5zbGF0aW9uXCIgW2NvbGFwc2VkXT1cImNvbGFwc2VkXCI+PC9kcmF3ZXItZ3JvdXA+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gWyBFbmQgXSAtLT5cclxuICA8ZGl2IGNsYXNzPVwic2hyaW5rLTAgdy1mdWxsXCI+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD1kcmF3ZXJdXCI+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxpb24tbW9kYWwgI21vZGFsIFtrZWVwQ29udGVudHNNb3VudGVkXT1cInRydWVcIiAob25XaWxsRGlzbWlzcyk9XCJzZWFyY2guc2V0KCcnKVwiPlxyXG4gIDxuZy10ZW1wbGF0ZT5cclxuICAgIDxpb24tY29udGVudD5cclxuICAgICAgPGlvbi1jYXJkIGNsYXNzPVwic2l6ZS1mdWxsIG0tMCBvdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgICAgICA8aW9uLWNhcmQtY29udGVudCBjbGFzcz1cInNpemUtZnVsbCBmbGV4IGZsZXgtY29sIG92ZXJmbG93LWhpZGRlbiBwLTBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaHJpbmstMCB3LWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGlvbi1zZWFyY2hiYXIgY2xhc3M9XCJwLTAgIXBsLTIgIXB5LTJcIiBbbmdNb2RlbF09XCJ0aGlzLnNlYXJjaCgpXCIgKG5nTW9kZWxDaGFuZ2UpPVwidGhpcy5zZWFyY2guc2V0KCRldmVudClcIiBbZGVib3VuY2VdPVwiMjAwXCI+PC9pb24tc2VhcmNoYmFyPlxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaXplPVwic21hbGxcIiBmaWxsPVwiY2xlYXJcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjbG9zZVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaXplLWZ1bGwgZmxleCBmbGV4LWNvbCBzaHJpbmsgZ2FwLTIgb3ZlcmZsb3cteS1hdXRvIHAtMiBtYXNrLXlcIj5cclxuICAgICAgICAgICAgQGZvciAodkdyb3VwIG9mIGxzdE1lbnVGaWx0ZXJlZCgpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICA8aW9uLWNhcmQgY2xhc3M9XCJtLTAgc2hyaW5rLTBcIj5cclxuICAgICAgICAgICAgICAgIDxpb24tY2FyZC1jb250ZW50IGNsYXNzPVwicC0wIGdyYWRpZW50LWJhY2tncm91bmQgYmctaW5hY3RpdmUgZmxleCBmbGV4LWNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMCBmbGV4IGl0ZW1zLWNlbnRlciAhanVzdGlmeS1zdGFydCBnYXAtMiB0ZXh0LWRhcmsgc2hyaW5rLTAgcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cInZHcm91cC5pY29uXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7e3VzZVRyYW5zbGF0aW9uID8gKFRyYW5zbGF0aW9uTW9kdWxlLlBlcm1pc3Nhb0dydXBvICsgdkdyb3VwLmlkIHwgdHJhbnNsYXRlKSA6IHZHcm91cC50aXRsZX19IFxyXG4gICAgICAgICAgICAgICAgICAgIDwvaW9uLXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICBAZm9yICh2TWVudSBvZiB2R3JvdXAubHN0TWVudTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBcclxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJIYW5kbGVOYXYodk1lbnUsICRldmVudCk7IG1vZGFsLmRpc21pc3MoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYmctYWN0aXZlXT1cInJvdXRlci5pc0FjdGl2ZSgnLycgKyB2TWVudS5yb3V0ZSwgZmFsc2UpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIGZsZXggaXRlbXMtY2VudGVyICFqdXN0aWZ5LXN0YXJ0IGdhcC0yIHRleHQtZGFyayBzaHJpbmstMCAhcGwtOCBwLTEuNSBib3JkZXItdCBib3JkZXItdC1tZWRpdW0vMzAgbWVudS1zZWFyY2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJ2TWVudS5pY29uXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpb24tdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3t1c2VUcmFuc2xhdGlvbiA/IChUcmFuc2xhdGlvbk1vZHVsZS5QZXJtaXNzYW8gKyB2TWVudS5pZCB8IHRyYW5zbGF0ZSkgOiB2TWVudS50aXRsZX19IFxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9pb24tdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPC9pb24tY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNhcmQ+XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIEBpZiAobHN0TWVudUZpbHRlcmVkKCkubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgICA8aW9uLXRleHQgY2xhc3M9XCJ0ZXh0LWNlbnRlciB0ZXh0LW1lZGl1bVwiPlxyXG4gICAgICAgICAgICAgICAge3t1c2VUcmFuc2xhdGlvbiA/IChUcmFuc2xhdGlvbk1vZHVsZS5TZW1SZXN1bHRhZG8gfCB0cmFuc2xhdGUpIDogJ1NlbSByZXN1bHRhZG9zIGVuY29udHJhZG9zJ319XHJcbiAgICAgICAgICAgICAgPC9pb24tdGV4dD5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9pb24tY2FyZC1jb250ZW50PlxyXG4gICAgICA8L2lvbi1jYXJkPlxyXG4gICAgPC9pb24tY29udGVudD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2lvbi1tb2RhbD4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export class Menu {
|
|
2
|
+
constructor(type, title, icon, lstMenu = [], route = null) {
|
|
3
|
+
this.type = type;
|
|
4
|
+
this.title = title;
|
|
5
|
+
this.route = route;
|
|
6
|
+
if (icon) {
|
|
7
|
+
this.icon = icon;
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
this.icon = "layers";
|
|
11
|
+
}
|
|
12
|
+
this.lstMenu = lstMenu;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kcmF3ZXIvbWVudS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLE9BQU8sSUFBSTtJQU9mLFlBQVksSUFBMEIsRUFBRSxLQUFhLEVBQUUsSUFBb0IsRUFBRSxVQUFrQixFQUFFLEVBQUUsUUFBdUIsSUFBSTtRQUM1SCxJQUFJLENBQUMsSUFBSSxHQUFJLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFHLElBQUksRUFBQyxDQUFDO1lBQ1AsSUFBSSxDQUFDLElBQUksR0FBSSxJQUFJLENBQUM7UUFDcEIsQ0FBQzthQUFJLENBQUM7WUFDSixJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUN2QixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCBjbGFzcyBNZW51e1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgcm91dGU6IHN0cmluZyB8IG51bGw7XHJcbiAgaWNvbiA6IHN0cmluZyB8IG51bGw7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBsc3RNZW51OiBNZW51W107XHJcbiAgdHlwZTogJ01lbnUnIHwgJ01lbnVHcm91cCdcclxuICBjb25zdHJ1Y3Rvcih0eXBlOiAnTWVudScgfCAnTWVudUdyb3VwJywgdGl0bGU6IHN0cmluZywgaWNvbiA6IHN0cmluZyB8IG51bGwsIGxzdE1lbnU6IE1lbnVbXSA9IFtdLCByb3V0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGwpe1xyXG4gICAgdGhpcy50eXBlICA9IHR5cGU7IFxyXG4gICAgdGhpcy50aXRsZSA9IHRpdGxlO1xyXG4gICAgdGhpcy5yb3V0ZSA9IHJvdXRlO1xyXG4gICAgaWYoaWNvbil7XHJcbiAgICAgIHRoaXMuaWNvbiAgPSBpY29uO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuaWNvbiA9IFwibGF5ZXJzXCI7XHJcbiAgICB9XHJcbiAgICB0aGlzLmxzdE1lbnUgPSBsc3RNZW51O1xyXG4gIH1cclxufSJdfQ==
|