@sapphire-ion/framework 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- 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 +32 -0
- package/esm2022/lib/classes/filters/view-filtros.mjs +18 -0
- package/esm2022/lib/classes/inputs/table-field-form-builder.mjs +10 -0
- package/esm2022/lib/classes/inputs/table-field.mjs +63 -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 +94 -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 +110 -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 +206 -0
- package/esm2022/lib/components/default/default-table/th-filter/th-filter.component.mjs +182 -0
- package/esm2022/lib/components/default/default-view/abstract-view.mjs +18 -0
- package/esm2022/lib/components/default/default-view/default-view.component.mjs +51 -0
- package/esm2022/lib/components/default/default-view/header-view/header-view.component.mjs +72 -0
- package/esm2022/lib/components/default/default-view/view.mjs +170 -0
- package/esm2022/lib/components/default/default.module.mjs +87 -0
- package/esm2022/lib/components/default-page/default.page.mjs +73 -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 +49 -0
- package/esm2022/lib/components/drawer/drawer.component.mjs +117 -0
- package/esm2022/lib/components/drawer/menu.mjs +15 -0
- package/esm2022/lib/components/filter/filter.component.mjs +124 -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 +77 -0
- package/esm2022/lib/components/inputs/custom-signal-input.mjs +74 -0
- package/esm2022/lib/components/inputs/input-bool/input-bool.component.mjs +43 -0
- package/esm2022/lib/components/inputs/input-bool/input-bool.configuration.mjs +16 -0
- package/esm2022/lib/components/inputs/input-color/input-color.component.mjs +487 -0
- package/esm2022/lib/components/inputs/input-configuration.mjs +2 -0
- package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.mjs +93 -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 +119 -0
- package/esm2022/lib/components/inputs/input-date/input-date.configuration.mjs +8 -0
- package/esm2022/lib/components/inputs/input-decimal/input-decimal.component.mjs +269 -0
- package/esm2022/lib/components/inputs/input-decimal/input-decimal.configuration.mjs +45 -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 +91 -0
- package/esm2022/lib/components/inputs/input-file/input-file.component.mjs +128 -0
- package/esm2022/lib/components/inputs/input-file/input-file.configuration.mjs +11 -0
- package/esm2022/lib/components/inputs/input-loading/input-loading.component.mjs +16 -0
- package/esm2022/lib/components/inputs/input-provider-factory.mjs +15 -0
- package/esm2022/lib/components/inputs/input-select/ISelect.mjs +11 -0
- package/esm2022/lib/components/inputs/input-select/input-select-internal-option/input-select-internal-option.component.mjs +42 -0
- package/esm2022/lib/components/inputs/input-select/input-select-option/input-select-option.component.mjs +46 -0
- package/esm2022/lib/components/inputs/input-select/input-select-template.directive.mjs +16 -0
- package/esm2022/lib/components/inputs/input-select/input-select.component.mjs +322 -0
- package/esm2022/lib/components/inputs/input-select/input.select.configuration.mjs +164 -0
- package/esm2022/lib/components/inputs/input-string/input-string.component.mjs +50 -0
- package/esm2022/lib/components/inputs/input-string/input-string.configuration.mjs +18 -0
- package/esm2022/lib/components/inputs/input-textarea/input-textarea.component.mjs +47 -0
- package/esm2022/lib/components/inputs/input-type.mjs +18 -0
- package/esm2022/lib/components/inputs/input-validators.mjs +90 -0
- package/esm2022/lib/components/inputs/inputs.module.mjs +101 -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 +93 -0
- package/esm2022/lib/components/main-content/main-content.component.mjs +62 -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 +29 -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 +106 -0
- package/esm2022/lib/guards/token.interceptor.mjs +25 -0
- package/esm2022/lib/index.mjs +172 -0
- package/esm2022/lib/pipes/secure.pipe.mjs +42 -0
- package/esm2022/lib/services/auth.service.mjs +149 -0
- package/esm2022/lib/services/environment.service.mjs +26 -0
- package/esm2022/lib/services/generics.service.mjs +84 -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 +149 -0
- package/esm2022/lib/services/web/api-url-provider.service.mjs +29 -0
- package/esm2022/lib/services/web/http.ativo.service.mjs +55 -0
- package/esm2022/lib/services/web/http.service.mjs +175 -0
- package/esm2022/lib/services/web/storage.service.mjs +115 -0
- package/esm2022/public-api.mjs +5 -0
- package/esm2022/sapphire-ion-framework.mjs +5 -0
- package/fesm2022/sapphire-ion-framework.mjs +6080 -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/lib/classes/credentials.d.ts +5 -0
- package/lib/classes/environment.d.ts +13 -0
- package/lib/classes/filters/view-filtros.d.ts +10 -0
- package/lib/classes/inputs/table-field-form-builder.d.ts +5 -0
- package/lib/classes/inputs/table-field.d.ts +19 -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 +42 -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 +37 -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 +71 -0
- package/lib/components/default/default-table/th-filter/th-filter.component.d.ts +20 -0
- package/lib/components/default/default-view/abstract-view.d.ts +16 -0
- package/lib/components/default/default-view/default-view.component.d.ts +26 -0
- package/lib/components/default/default-view/header-view/header-view.component.d.ts +25 -0
- package/lib/components/default/default-view/view.d.ts +55 -0
- package/lib/components/default/default.module.d.ts +28 -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 +23 -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 +36 -0
- package/lib/components/inputs/custom-signal-input.d.ts +38 -0
- package/lib/components/inputs/input-bool/input-bool.component.d.ts +19 -0
- package/lib/components/inputs/input-bool/input-bool.configuration.d.ts +17 -0
- package/lib/components/inputs/input-color/input-color.component.d.ts +80 -0
- package/lib/components/inputs/input-configuration.d.ts +8 -0
- package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.d.ts +24 -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 +30 -0
- package/lib/components/inputs/input-date/input-date.configuration.d.ts +7 -0
- package/lib/components/inputs/input-decimal/input-decimal.component.d.ts +41 -0
- package/lib/components/inputs/input-decimal/input-decimal.configuration.d.ts +25 -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 +36 -0
- package/lib/components/inputs/input-file/input-file.component.d.ts +39 -0
- package/lib/components/inputs/input-file/input-file.configuration.d.ts +11 -0
- package/lib/components/inputs/input-loading/input-loading.component.d.ts +7 -0
- package/lib/components/inputs/input-provider-factory.d.ts +4 -0
- package/lib/components/inputs/input-select/ISelect.d.ts +21 -0
- package/lib/components/inputs/input-select/input-select-internal-option/input-select-internal-option.component.d.ts +18 -0
- package/lib/components/inputs/input-select/input-select-option/input-select-option.component.d.ts +24 -0
- package/lib/components/inputs/input-select/input-select-template.directive.d.ts +8 -0
- package/lib/components/inputs/input-select/input-select.component.d.ts +66 -0
- package/lib/components/inputs/input-select/input.select.configuration.d.ts +87 -0
- package/lib/components/inputs/input-string/input-string.component.d.ts +19 -0
- package/lib/components/inputs/input-string/input-string.configuration.d.ts +14 -0
- package/lib/components/inputs/input-textarea/input-textarea.component.d.ts +18 -0
- package/lib/components/inputs/input-type.d.ts +16 -0
- package/lib/components/inputs/input-validators.d.ts +19 -0
- package/lib/components/inputs/inputs.module.d.ts +28 -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 +28 -0
- package/lib/components/main-content/main-content.component.d.ts +17 -0
- package/lib/components/stepper/step/step.component.d.ts +15 -0
- package/lib/components/stepper/stepper.component.d.ts +17 -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 +11 -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 +108 -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/generics.service.d.ts +22 -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 +36 -0
- package/lib/services/web/api-url-provider.service.d.ts +13 -0
- package/lib/services/web/http.ativo.service.d.ts +31 -0
- package/lib/services/web/http.service.d.ts +51 -0
- package/lib/services/web/storage.service.d.ts +25 -0
- package/package.json +41 -0
- package/public-api.d.ts +1 -0
- package/themes/compiled-styles.scss +2291 -0
- package/themes/components/_inputs_new/input-string/input-string.component.scss +0 -0
- package/themes/components/_inputs_new/inputs.scss +15 -0
- package/themes/components/carousel/carousel-image/carousel-image.component.scss +0 -0
- package/themes/components/carousel/carousel-item/carousel-item.component.scss +0 -0
- package/themes/components/carousel/carousel.component.scss +9 -0
- package/themes/components/content-block/content-block.component.scss +0 -0
- package/themes/components/default/default-list/default-list.component.scss +0 -0
- package/themes/components/default/default-list/header-list/header-list.component.scss +0 -0
- package/themes/components/default/default-pagination/default-pagination.component.scss +22 -0
- package/themes/components/default/default-table/default-table.component.scss +33 -0
- package/themes/components/default/default-table/th-filter/th-filter.component.scss +24 -0
- package/themes/components/default/default-view/default-view.component.scss +5 -0
- package/themes/components/default/default-view/header-view/header-view.component.scss +7 -0
- package/themes/components/default-page/default.page.scss +4 -0
- package/themes/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.scss +9 -0
- package/themes/components/drawer/default-drawer-end/default-drawer-end.component.scss +0 -0
- package/themes/components/drawer/drawer-group/drawer-group.component.scss +22 -0
- package/themes/components/drawer/drawer.component.scss +46 -0
- package/themes/components/filter/filter.component.scss +0 -0
- package/themes/components/http-responses-pages/forbidden-403/forbidden-403.component.scss +19 -0
- package/themes/components/image/image.component.scss +0 -0
- package/themes/components/info-popover/info-popover.component.scss +3 -0
- package/themes/components/inputs/input-bool/input-bool.component.scss +14 -0
- package/themes/components/inputs/input-color/input-color.component.scss +48 -0
- package/themes/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.scss +0 -0
- package/themes/components/inputs/input-date/input-date.component.scss +41 -0
- package/themes/components/inputs/input-decimal/input-decimal.component.scss +44 -0
- package/themes/components/inputs/input-file/download-button/download-button.component.scss +3 -0
- package/themes/components/inputs/input-file/input-file.component.scss +3 -0
- package/themes/components/inputs/input-loading/input-loading.component.scss +0 -0
- package/themes/components/inputs/input-select/input-select-internal-option/input-select-internal-option.component.scss +0 -0
- package/themes/components/inputs/input-select/input-select-option/input-select-option.component.scss +0 -0
- package/themes/components/inputs/input-select/input-select.component.scss +28 -0
- package/themes/components/inputs/input-string/input-string.component.scss +0 -0
- package/themes/components/inputs/input-textarea/input-textarea.component.scss +0 -0
- package/themes/components/inputs/inputs.scss +67 -0
- package/themes/components/loading/loading.component.scss +0 -0
- package/themes/components/login/login-admin/login-admin.component.scss +3 -0
- package/themes/components/login/login.component.scss +40 -0
- package/themes/components/main-content/main-content.component.scss +9 -0
- package/themes/components/stepper/step/step.component.scss +48 -0
- package/themes/components/stepper/stepper.component.scss +0 -0
- package/themes/components/tabs/tab/tab.component.scss +0 -0
- package/themes/components/tabs/tabs/tabs.component.scss +23 -0
- package/themes/components/text-tooltip/text-tooltip.component.scss +0 -0
- package/themes/components/tooltip/tooltip.component.scss +23 -0
- package/themes/styles/components.scss +52 -0
- package/themes/styles/core.styles.scss +409 -0
- package/themes/styles/ionic/ion-action-sheet.scss +8 -0
- package/themes/styles/ionic/ion-alert.scss +9 -0
- package/themes/styles/ionic/ion-button.scss +3 -0
- package/themes/styles/ionic/ion-card.scss +3 -0
- package/themes/styles/ionic/ion-content.scss +3 -0
- package/themes/styles/ionic/ion-datetime.scss +6 -0
- package/themes/styles/ionic/ion-item.scss +10 -0
- package/themes/styles/ionic/ion-list.scss +4 -0
- package/themes/styles/ionic/ion-modal.scss +8 -0
- package/themes/styles/ionic/ion-popover.scss +31 -0
- package/themes/styles/ionic/ion-progress-bar.scss +3 -0
- package/themes/styles/ionic/ion-searchbar.scss +4 -0
- package/themes/styles/ionic/ion-toast.scss +14 -0
- package/themes/styles/ionic.scss +13 -0
- package/themes/styles/login-default.scss +87 -0
- package/themes/styles/mixins.scss +467 -0
- package/themes/styles/styles.scss +1 -0
- package/themes/styles/translucid.scss +21 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { ActivatedRoute, RouterLinkWithHref } from '@angular/router';
|
|
2
|
+
import { Component } from '@angular/core';
|
|
3
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
4
|
+
import { firstValueFrom } from 'rxjs';
|
|
5
|
+
import { CommonModule } from '@angular/common';
|
|
6
|
+
import { IonicModule } from '@ionic/angular';
|
|
7
|
+
import { FormsModule } from '@angular/forms';
|
|
8
|
+
import { RouteProviderService } from '../../services/route/route.provider.service';
|
|
9
|
+
import { EnvironmentService } from '../../services/environment.service';
|
|
10
|
+
import { LoadingComponent } from '../loading/loading.component';
|
|
11
|
+
import { GenericService } from '../../services/generics.service';
|
|
12
|
+
import { InputsModule } from '../inputs/inputs.module';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "@angular/router";
|
|
15
|
+
import * as i2 from "../../services/environment.service";
|
|
16
|
+
import * as i3 from "../../services/generics.service";
|
|
17
|
+
import * as i4 from "../../services/route/route.provider.service";
|
|
18
|
+
import * as i5 from "@angular/common";
|
|
19
|
+
import * as i6 from "@ionic/angular";
|
|
20
|
+
import * as i7 from "@ngx-translate/core";
|
|
21
|
+
/** Pagina Default - mostra os botões de rotas horizontalmente - componente padrão */
|
|
22
|
+
export class DefaultPage {
|
|
23
|
+
constructor(route, coreService, genericService, routeProviderService) {
|
|
24
|
+
this.route = route;
|
|
25
|
+
this.coreService = coreService;
|
|
26
|
+
this.genericService = genericService;
|
|
27
|
+
this.routeProviderService = routeProviderService;
|
|
28
|
+
this.useTranslation = false;
|
|
29
|
+
this.TranslationModule = {
|
|
30
|
+
Permissao: 'Entities.Permissao.',
|
|
31
|
+
PermissaoGrupo: 'Entities.PermissaoGrupo.'
|
|
32
|
+
};
|
|
33
|
+
this.title = this.coreService.environment.applicationName;
|
|
34
|
+
this.lstMenu = [];
|
|
35
|
+
this.configuration = null;
|
|
36
|
+
}
|
|
37
|
+
async ngOnInit() {
|
|
38
|
+
this.loading = true;
|
|
39
|
+
this.configuration = await firstValueFrom(this.route.data);
|
|
40
|
+
this.lstMenu = await firstValueFrom(this.routeProviderService.GetData());
|
|
41
|
+
this.loading = false;
|
|
42
|
+
}
|
|
43
|
+
SetTitle(item) {
|
|
44
|
+
this.genericService.SetTitle(item.title);
|
|
45
|
+
}
|
|
46
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultPage, deps: [{ token: i1.ActivatedRoute }, { token: i2.EnvironmentService }, { token: i3.GenericService }, { token: i4.RouteProviderService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
47
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DefaultPage, isStandalone: true, selector: "app-default", ngImport: i0, template: "<ion-content [fullscreen]=\"true\">\r\n <div class=\"wrapper\">\r\n <ion-breadcrumbs>\r\n <ion-breadcrumb [routerLink]=\"[null]\">\r\n <ion-icon slot=\"start\" name=\"home\"></ion-icon> Inicio\r\n </ion-breadcrumb>\r\n </ion-breadcrumbs>\r\n \r\n <ion-card>\r\n <ion-card-content class=\"flex flex-col items-center justify-center !p-8\">\r\n <div class=\"w-full shrink-0 text-center\">\r\n @if(configuration?.image){\r\n <ion-img [class]=\"configuration.image.classes\" [src]=\"configuration.image.src\" (ion-error)=\"configuration.image = null\"></ion-img>\r\n }\r\n @else {\r\n <ion-text class=\"text-8xl font-poppins w-full\"> {{title}} </ion-text>\r\n }\r\n </div>\r\n <div class=\"!overflow-y-auto w-full portrait:grow relative\">\r\n <loading [type]=\"3\" [loading]=\"loading\"></loading>\r\n <div class=\"flex flex-wrap items-start justify-start mt-4 portrait:!grid portrait:!grid-cols-1\"> \r\n @for (item of lstMenu; track item; let i = $index) {\r\n @if(item.type == \"Menu\"){\r\n <ion-button fill=\"outline\" class=\"mx-1 mt-2 flex-grow shrink-0\" [routerLink]=\"[item.route]\">\r\n <ion-icon slot=\"start\" [name]=\"item.icon\"></ion-icon> \r\n {{useTranslation ? (TranslationModule.Permissao + item.id | translate) : item.title}}\r\n </ion-button>\r\n }\r\n @if(item.type == \"MenuGroup\"){\r\n <ion-button fill=\"outline\" class=\"mx-1 mt-2 flex-grow shrink-0\" (click)=\"popover.present($event)\">\r\n <ion-icon slot=\"start\" [name]=\"item.icon\"></ion-icon> \r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + item.id | translate) : item.title}}\r\n </ion-button>\r\n <ion-popover #popover class=\"overflow-y-auto\" [dismissOnSelect]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-list class=\"no-outer-border\">\r\n <ion-item class=\"bg-transparent\" (click)=\"SetTitle(menu)\" *ngFor=\"let menu of item.lstMenu\" [routerLink]=\"['./' + menu.route]\" lines=\"none\" detail=\"false\" routerLinkActive=\"selected\">\r\n <ion-icon [name]=\"menu.icon\" slot=\"start\"></ion-icon> \r\n <ion-label> \r\n {{useTranslation ? (TranslationModule.Permissao + menu.id | translate) : menu.title}} \r\n </ion-label>\r\n </ion-item>\r\n </ion-list>\r\n </ng-template>\r\n </ion-popover>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n</ion-content>", styles: ["ion-popover::part(content){overflow-y:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i6.IonBreadcrumb, selector: "ion-breadcrumb", inputs: ["active", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "separator", "target"] }, { kind: "component", type: i6.IonBreadcrumbs, selector: "ion-breadcrumbs", inputs: ["color", "itemsAfterCollapse", "itemsBeforeCollapse", "maxItems", "mode"] }, { kind: "component", type: i6.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: i6.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i6.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i6.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i6.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i6.IonImg, selector: "ion-img", inputs: ["alt", "src"] }, { kind: "component", type: i6.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i6.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i6.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i6.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i6.IonPopover, selector: "ion-popover" }, { kind: "directive", type: i6.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "ngmodule", type: InputsModule }, { kind: "directive", type: RouterLinkWithHref, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: LoadingComponent, selector: "loading", inputs: ["text", "type", "loading"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
|
|
48
|
+
}
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultPage, decorators: [{
|
|
50
|
+
type: Component,
|
|
51
|
+
args: [{ standalone: true, selector: 'app-default', imports: [
|
|
52
|
+
CommonModule,
|
|
53
|
+
FormsModule,
|
|
54
|
+
IonicModule,
|
|
55
|
+
InputsModule,
|
|
56
|
+
RouterLinkWithHref,
|
|
57
|
+
LoadingComponent,
|
|
58
|
+
TranslateModule,
|
|
59
|
+
], template: "<ion-content [fullscreen]=\"true\">\r\n <div class=\"wrapper\">\r\n <ion-breadcrumbs>\r\n <ion-breadcrumb [routerLink]=\"[null]\">\r\n <ion-icon slot=\"start\" name=\"home\"></ion-icon> Inicio\r\n </ion-breadcrumb>\r\n </ion-breadcrumbs>\r\n \r\n <ion-card>\r\n <ion-card-content class=\"flex flex-col items-center justify-center !p-8\">\r\n <div class=\"w-full shrink-0 text-center\">\r\n @if(configuration?.image){\r\n <ion-img [class]=\"configuration.image.classes\" [src]=\"configuration.image.src\" (ion-error)=\"configuration.image = null\"></ion-img>\r\n }\r\n @else {\r\n <ion-text class=\"text-8xl font-poppins w-full\"> {{title}} </ion-text>\r\n }\r\n </div>\r\n <div class=\"!overflow-y-auto w-full portrait:grow relative\">\r\n <loading [type]=\"3\" [loading]=\"loading\"></loading>\r\n <div class=\"flex flex-wrap items-start justify-start mt-4 portrait:!grid portrait:!grid-cols-1\"> \r\n @for (item of lstMenu; track item; let i = $index) {\r\n @if(item.type == \"Menu\"){\r\n <ion-button fill=\"outline\" class=\"mx-1 mt-2 flex-grow shrink-0\" [routerLink]=\"[item.route]\">\r\n <ion-icon slot=\"start\" [name]=\"item.icon\"></ion-icon> \r\n {{useTranslation ? (TranslationModule.Permissao + item.id | translate) : item.title}}\r\n </ion-button>\r\n }\r\n @if(item.type == \"MenuGroup\"){\r\n <ion-button fill=\"outline\" class=\"mx-1 mt-2 flex-grow shrink-0\" (click)=\"popover.present($event)\">\r\n <ion-icon slot=\"start\" [name]=\"item.icon\"></ion-icon> \r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + item.id | translate) : item.title}}\r\n </ion-button>\r\n <ion-popover #popover class=\"overflow-y-auto\" [dismissOnSelect]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-list class=\"no-outer-border\">\r\n <ion-item class=\"bg-transparent\" (click)=\"SetTitle(menu)\" *ngFor=\"let menu of item.lstMenu\" [routerLink]=\"['./' + menu.route]\" lines=\"none\" detail=\"false\" routerLinkActive=\"selected\">\r\n <ion-icon [name]=\"menu.icon\" slot=\"start\"></ion-icon> \r\n <ion-label> \r\n {{useTranslation ? (TranslationModule.Permissao + menu.id | translate) : menu.title}} \r\n </ion-label>\r\n </ion-item>\r\n </ion-list>\r\n </ng-template>\r\n </ion-popover>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n</ion-content>", styles: ["ion-popover::part(content){overflow-y:auto}\n"] }]
|
|
60
|
+
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.EnvironmentService }, { type: i3.GenericService }, { type: i4.RouteProviderService }] });
|
|
61
|
+
export class DefaultPageConfiguration {
|
|
62
|
+
constructor(image = null, useTranslation = false) {
|
|
63
|
+
this.image = image;
|
|
64
|
+
this.useTranslation = useTranslation;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export class DefaultPageImage {
|
|
68
|
+
constructor(src = null, classes = '') {
|
|
69
|
+
this.src = src;
|
|
70
|
+
this.classes = classes;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FwcGhpcmUtaW9uLWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZGVmYXVsdC1wYWdlL2RlZmF1bHQucGFnZS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RlZmF1bHQtcGFnZS9kZWZhdWx0LnBhZ2UuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7QUFHdkQscUZBQXFGO0FBZ0JyRixNQUFNLE9BQU8sV0FBVztJQVF0QixZQUNVLEtBQXFCLEVBQ3JCLFdBQStCLEVBQy9CLGNBQThCLEVBQzlCLG9CQUEwQztRQUgxQyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0IsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFWcEQsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsc0JBQWlCLEdBQVE7WUFDdkIsU0FBUyxFQUFPLHFCQUFxQjtZQUNyQyxjQUFjLEVBQUUsMEJBQTBCO1NBQzNDLENBQUM7UUFVRixVQUFLLEdBQVcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDO1FBRTdELFlBQU8sR0FBVyxFQUFFLENBQUE7UUFDcEIsa0JBQWEsR0FBb0MsSUFBSSxDQUFDO0lBTHRELENBQUM7SUFNRCxLQUFLLENBQUMsUUFBUTtRQUNaLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQTZCLENBQUM7UUFDdkYsSUFBSSxDQUFDLE9BQU8sR0FBUyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVU7UUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7K0dBN0JVLFdBQVc7bUdBQVgsV0FBVyx1RUMvQnhCLGkyRkFvRGMsc0dEaENWLFlBQVksMkpBQ1osV0FBVyw4QkFDWCxXQUFXLGtoRUFDWCxZQUFZLCtCQUNaLGtCQUFrQixvT0FDbEIsZ0JBQWdCLHdGQUNoQixlQUFlOzs0RkFLTixXQUFXO2tCQWZ2QixTQUFTO2lDQUNJLElBQUksWUFDTixhQUFhLFdBQ2Q7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsZUFBZTtxQkFDaEI7O0FBb0NILE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsWUFDUyxRQUFpQyxJQUFJLEVBQ3JDLGlCQUEwQixLQUFLO1FBRC9CLFVBQUssR0FBTCxLQUFLLENBQWdDO1FBQ3JDLG1CQUFjLEdBQWQsY0FBYyxDQUFpQjtJQUV4QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFlBQ1MsTUFBcUIsSUFBSSxFQUN6QixVQUFrQixFQUFFO1FBRHBCLFFBQUcsR0FBSCxHQUFHLENBQXNCO1FBQ3pCLFlBQU8sR0FBUCxPQUFPLENBQWE7SUFDM0IsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlckxpbmtXaXRoSHJlZiB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBSb3V0ZVByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3JvdXRlL3JvdXRlLnByb3ZpZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJy4uL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBHZW5lcmljU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2dlbmVyaWNzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbnB1dHNNb2R1bGUgfSBmcm9tICcuLi9pbnB1dHMvaW5wdXRzLm1vZHVsZSc7XHJcbmltcG9ydCB7IE1lbnUgfSBmcm9tICcuLi9kcmF3ZXIvbWVudSc7XHJcblxyXG4vKiogUGFnaW5hIERlZmF1bHQgLSBtb3N0cmEgb3MgYm90w7VlcyBkZSByb3RhcyBob3Jpem9udGFsbWVudGUgLSBjb21wb25lbnRlIHBhZHLDo28gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBzZWxlY3RvcjogJ2FwcC1kZWZhdWx0JyxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIElvbmljTW9kdWxlLFxyXG4gICAgSW5wdXRzTW9kdWxlLFxyXG4gICAgUm91dGVyTGlua1dpdGhIcmVmLFxyXG4gICAgTG9hZGluZ0NvbXBvbmVudCxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWZhdWx0LnBhZ2UuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGVmYXVsdC5wYWdlLnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERlZmF1bHRQYWdlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBcclxuICB1c2VUcmFuc2xhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIFRyYW5zbGF0aW9uTW9kdWxlOiBhbnkgPSB7XHJcbiAgICBQZXJtaXNzYW8gICAgIDogJ0VudGl0aWVzLlBlcm1pc3Nhby4nLFxyXG4gICAgUGVybWlzc2FvR3J1cG86ICdFbnRpdGllcy5QZXJtaXNzYW9HcnVwby4nXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgY29yZVNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgZ2VuZXJpY1NlcnZpY2U6IEdlbmVyaWNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZVByb3ZpZGVyU2VydmljZTogUm91dGVQcm92aWRlclNlcnZpY2UgXHJcbiAgKSB7IFxyXG4gIH1cclxuICBcclxuICB0aXRsZTogc3RyaW5nID0gdGhpcy5jb3JlU2VydmljZS5lbnZpcm9ubWVudC5hcHBsaWNhdGlvbk5hbWU7XHJcbiAgbG9hZGluZzogYm9vbGVhbjtcclxuICBsc3RNZW51OiBNZW51W10gPSBbXSBcclxuICBjb25maWd1cmF0aW9uOiBEZWZhdWx0UGFnZUNvbmZpZ3VyYXRpb24gfCBudWxsID0gbnVsbDtcclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnJvdXRlLmRhdGEpIGFzIERlZmF1bHRQYWdlQ29uZmlndXJhdGlvbjtcclxuICAgIHRoaXMubHN0TWVudSAgICAgICA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMucm91dGVQcm92aWRlclNlcnZpY2UuR2V0RGF0YSgpKTtcclxuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgU2V0VGl0bGUoaXRlbTogTWVudSl7XHJcbiAgICB0aGlzLmdlbmVyaWNTZXJ2aWNlLlNldFRpdGxlKGl0ZW0udGl0bGUpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERlZmF1bHRQYWdlQ29uZmlndXJhdGlvbntcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpbWFnZTogRGVmYXVsdFBhZ2VJbWFnZSB8IG51bGwgPSBudWxsLFxyXG4gICAgcHVibGljIHVzZVRyYW5zbGF0aW9uOiBib29sZWFuID0gZmFsc2VcclxuICApe1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERlZmF1bHRQYWdlSW1hZ2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHNyYzogc3RyaW5nIHwgbnVsbCA9IG51bGwsXHJcbiAgICBwdWJsaWMgY2xhc3Nlczogc3RyaW5nID0gJydcclxuICApe31cclxufVxyXG4iLCI8aW9uLWNvbnRlbnQgW2Z1bGxzY3JlZW5dPVwidHJ1ZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICA8aW9uLWJyZWFkY3J1bWJzPlxyXG4gICAgICA8aW9uLWJyZWFkY3J1bWIgW3JvdXRlckxpbmtdPVwiW251bGxdXCI+XHJcbiAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJob21lXCI+PC9pb24taWNvbj4gSW5pY2lvXHJcbiAgICAgIDwvaW9uLWJyZWFkY3J1bWI+XHJcbiAgICA8L2lvbi1icmVhZGNydW1icz5cclxuICBcclxuICAgIDxpb24tY2FyZD5cclxuICAgICAgPGlvbi1jYXJkLWNvbnRlbnQgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciAhcC04XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBzaHJpbmstMCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgQGlmKGNvbmZpZ3VyYXRpb24/LmltYWdlKXtcclxuICAgICAgICAgICAgPGlvbi1pbWcgW2NsYXNzXT1cImNvbmZpZ3VyYXRpb24uaW1hZ2UuY2xhc3Nlc1wiIFtzcmNdPVwiY29uZmlndXJhdGlvbi5pbWFnZS5zcmNcIiAoaW9uLWVycm9yKT1cImNvbmZpZ3VyYXRpb24uaW1hZ2UgPSBudWxsXCI+PC9pb24taW1nPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICA8aW9uLXRleHQgY2xhc3M9XCJ0ZXh0LTh4bCBmb250LXBvcHBpbnMgdy1mdWxsXCI+IHt7dGl0bGV9fSA8L2lvbi10ZXh0PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCIhb3ZlcmZsb3cteS1hdXRvIHctZnVsbCBwb3J0cmFpdDpncm93IHJlbGF0aXZlXCI+XHJcbiAgICAgICAgICA8bG9hZGluZyBbdHlwZV09XCIzXCIgW2xvYWRpbmddPVwibG9hZGluZ1wiPjwvbG9hZGluZz5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBpdGVtcy1zdGFydCBqdXN0aWZ5LXN0YXJ0IG10LTQgcG9ydHJhaXQ6IWdyaWQgcG9ydHJhaXQ6IWdyaWQtY29scy0xXCI+IFxyXG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIGxzdE1lbnU7IHRyYWNrIGl0ZW07IGxldCBpID0gJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgQGlmKGl0ZW0udHlwZSA9PSBcIk1lbnVcIil7XHJcbiAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwib3V0bGluZVwiIGNsYXNzPVwibXgtMSBtdC0yIGZsZXgtZ3JvdyBzaHJpbmstMFwiIFtyb3V0ZXJMaW5rXT1cIltpdGVtLnJvdXRlXVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgW25hbWVdPVwiaXRlbS5pY29uXCI+PC9pb24taWNvbj4gXHJcbiAgICAgICAgICAgICAgICAgIHt7dXNlVHJhbnNsYXRpb24gPyAoVHJhbnNsYXRpb25Nb2R1bGUuUGVybWlzc2FvICsgaXRlbS5pZCB8IHRyYW5zbGF0ZSkgOiBpdGVtLnRpdGxlfX1cclxuICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgQGlmKGl0ZW0udHlwZSA9PSBcIk1lbnVHcm91cFwiKXtcclxuICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJvdXRsaW5lXCIgY2xhc3M9XCJteC0xIG10LTIgZmxleC1ncm93IHNocmluay0wXCIgKGNsaWNrKT1cInBvcG92ZXIucHJlc2VudCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwic3RhcnRcIiBbbmFtZV09XCJpdGVtLmljb25cIj48L2lvbi1pY29uPiBcclxuICAgICAgICAgICAgICAgICAge3t1c2VUcmFuc2xhdGlvbiA/IChUcmFuc2xhdGlvbk1vZHVsZS5QZXJtaXNzYW9HcnVwbyArIGl0ZW0uaWQgfCB0cmFuc2xhdGUpIDogaXRlbS50aXRsZX19XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8aW9uLXBvcG92ZXIgI3BvcG92ZXIgY2xhc3M9XCJvdmVyZmxvdy15LWF1dG9cIiBbZGlzbWlzc09uU2VsZWN0XT1cInRydWVcIiB0cmlnZ2VyQWN0aW9uPVwiY2xpY2tcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tbGlzdCBjbGFzcz1cIm5vLW91dGVyLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGlvbi1pdGVtIGNsYXNzPVwiYmctdHJhbnNwYXJlbnRcIiAoY2xpY2spPVwiU2V0VGl0bGUobWVudSlcIiAqbmdGb3I9XCJsZXQgbWVudSBvZiBpdGVtLmxzdE1lbnVcIiBbcm91dGVyTGlua109XCJbJy4vJyArIG1lbnUucm91dGVdXCIgbGluZXM9XCJub25lXCIgZGV0YWlsPVwiZmFsc2VcIiByb3V0ZXJMaW5rQWN0aXZlPVwic2VsZWN0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cIm1lbnUuaWNvblwiIHNsb3Q9XCJzdGFydFwiPjwvaW9uLWljb24+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWxhYmVsPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e3VzZVRyYW5zbGF0aW9uID8gKFRyYW5zbGF0aW9uTW9kdWxlLlBlcm1pc3NhbyArIG1lbnUuaWQgfCB0cmFuc2xhdGUpIDogbWVudS50aXRsZX19ICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaW9uLWxpc3Q+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1wb3BvdmVyPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvaW9uLWNhcmQtY29udGVudD5cclxuICAgIDwvaW9uLWNhcmQ+XHJcbiAgPC9kaXY+XHJcbjwvaW9uLWNvbnRlbnQ+Il19
|
|
@@ -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.13", ngImport: i0, type: DragDropFileDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
35
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", 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.13", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLWZpbGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FwcGhpcmUtaW9uLWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHJhZy1kcm9wLWZpbGUvZHJhZy1kcm9wLWZpbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saURBQWlELENBQUM7O0FBSzNGLE1BQU0sT0FBTyxxQkFBcUI7SUFFaEM7UUFHVSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFIbkMsQ0FBQztJQU9qQixvQkFBb0I7SUFDa0IsVUFBVSxDQUFDLEdBQWM7UUFDN0QsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JCLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDdkMsQ0FBQztJQUVELHFCQUFxQjtJQUN5QixXQUFXLENBQUMsR0FBYztRQUN0RSxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDckIsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QyxDQUFDO0lBRUQsZ0JBQWdCO0lBQ3lCLE1BQU0sQ0FBQyxHQUFjO1FBQzVELEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNyQixHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RDLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ25DLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDM0MsQ0FBQztJQUNILENBQUM7K0dBbkNVLHFCQUFxQjttR0FBckIscUJBQXFCLHdUQU9sQix3QkFBd0I7OzRGQVAzQixxQkFBcUI7a0JBSGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtpQkFDM0I7d0RBS2dDLFFBQVE7c0JBQXRDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUNuQixXQUFXO3NCQUFwQixNQUFNO2dCQUVpQyxlQUFlO3NCQUF0RCxZQUFZO3VCQUFDLHdCQUF3QjtnQkFHQSxVQUFVO3NCQUEvQyxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRVSxXQUFXO3NCQUF4RCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRSSxNQUFNO3NCQUE5QyxZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRlbnRDaGlsZCwgRGlyZWN0aXZlLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BPdmVybGF5Q29tcG9uZW50IH0gZnJvbSAnLi9kcmFnLWRyb3Atb3ZlcmxheS9kcmFnLWRyb3Atb3ZlcmxheS5jb21wb25lbnQnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbRHJhZ0Ryb3BGaWxlXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIERyYWdEcm9wRmlsZURpcmVjdGl2ZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZmlsZU92ZXInKSBmaWxlT3ZlcjogYm9vbGVhbjtcclxuICBAT3V0cHV0KCkgZmlsZURyb3BwZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVbXT4oKTtcclxuXHJcbiAgQENvbnRlbnRDaGlsZChEcmFnRHJvcE92ZXJsYXlDb21wb25lbnQpIGRyYWdEcm9wT3ZlcmxheTogRHJhZ0Ryb3BPdmVybGF5Q29tcG9uZW50IFxyXG5cclxuICAvLyBEcmFnb3ZlciBsaXN0ZW5lclxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnXSkgb25EcmFnT3ZlcihldnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmZpbGVPdmVyID0gdHJ1ZTtcclxuICAgIHRoaXMuZHJhZ0Ryb3BPdmVybGF5LmZpbGVPdmVyID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8vIERyYWdsZWF2ZSBsaXN0ZW5lclxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pIHB1YmxpYyBvbkRyYWdMZWF2ZShldnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmZpbGVPdmVyID0gZmFsc2U7XHJcbiAgICB0aGlzLmRyYWdEcm9wT3ZlcmxheS5maWxlT3ZlciA9IGZhbHNlO1xyXG4gIH1cclxuICBcclxuICAvLyBEcm9wIGxpc3RlbmVyXHJcbiAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pIHB1YmxpYyBvbkRyb3AoZXZ0OiBEcmFnRXZlbnQpIHtcclxuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5maWxlT3ZlciA9IGZhbHNlO1xyXG4gICAgdGhpcy5kcmFnRHJvcE92ZXJsYXkuZmlsZU92ZXIgPSBmYWxzZTtcclxuICAgIGxldCBmaWxlcyA9IGV2dC5kYXRhVHJhbnNmZXIuZmlsZXM7XHJcbiAgICBpZiAoZmlsZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmZpbGVEcm9wcGVkLmVtaXQoQXJyYXkuZnJvbShmaWxlcykpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -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.13", ngImport: i0, type: DragDropFileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", 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.13", ngImport: i0, type: DragDropFileModule, imports: [CommonModule,
|
|
18
|
+
IonicModule] }); }
|
|
19
|
+
}
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLWZpbGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FwcGhpcmUtaW9uLWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHJhZy1kcm9wLWZpbGUvZHJhZy1kcm9wLWZpbGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFN0MsTUFBTSxNQUFNLEdBQUc7SUFDYixxQkFBcUI7SUFDckIsd0JBQXdCO0NBQ3pCLENBQUE7QUFXRCxNQUFNLE9BQU8sa0JBQWtCOytHQUFsQixrQkFBa0I7Z0hBQWxCLGtCQUFrQixpQkFiN0IscUJBQXFCO1lBQ3JCLHdCQUF3QixhQVF0QixZQUFZO1lBQ1osV0FBVyxhQVZiLHFCQUFxQjtZQUNyQix3QkFBd0I7Z0hBWWIsa0JBQWtCLFlBSjNCLFlBQVk7WUFDWixXQUFXOzs0RkFHRixrQkFBa0I7a0JBUjlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUUsR0FBRyxNQUFNLENBQUU7b0JBQzNCLE9BQU8sRUFBTyxDQUFFLEdBQUcsTUFBTSxDQUFFO29CQUMzQixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3FCQUNaO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BGaWxlRGlyZWN0aXZlIH0gZnJvbSAnLi9kcmFnLWRyb3AtZmlsZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBEcmFnRHJvcE92ZXJsYXlDb21wb25lbnQgfSBmcm9tICcuL2RyYWctZHJvcC1vdmVybGF5L2RyYWctZHJvcC1vdmVybGF5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElvbmljTW9kdWxlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5cclxuY29uc3QgdmFsdWVzID0gW1xyXG4gIERyYWdEcm9wRmlsZURpcmVjdGl2ZSxcclxuICBEcmFnRHJvcE92ZXJsYXlDb21wb25lbnRcclxuXVxyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbIC4uLnZhbHVlcyBdLFxyXG4gIGV4cG9ydHMgICAgIDogWyAuLi52YWx1ZXMgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBJb25pY01vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIERyYWdEcm9wRmlsZU1vZHVsZSB7IH1cclxuIl19
|
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.13", ngImport: i0, type: DragDropOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", 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.13", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLW92ZXJsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FwcGhpcmUtaW9uLWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHJhZy1kcm9wLWZpbGUvZHJhZy1kcm9wLW92ZXJsYXkvZHJhZy1kcm9wLW92ZXJsYXkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FwcGhpcmUtaW9uLWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHJhZy1kcm9wLWZpbGUvZHJhZy1kcm9wLW92ZXJsYXkvZHJhZy1kcm9wLW92ZXJsYXkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7OztBQVFsRCxNQUFNLE9BQU8sd0JBQXdCO0lBRW5DLGdCQUFnQixDQUFDO0lBRWpCLFFBQVEsS0FBSSxDQUFDOytHQUpGLHdCQUF3QjttR0FBeEIsd0JBQXdCLHlEQ1RyQyx5V0FJTTs7NEZES08sd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElvbmljTW9kdWxlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkcmFnLWRyb3Atb3ZlcmxheScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RyYWctZHJvcC1vdmVybGF5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kcmFnLWRyb3Atb3ZlcmxheS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJhZ0Ryb3BPdmVybGF5Q29tcG9uZW50ICBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge31cclxuXHJcbiAgZmlsZU92ZXI6IGJvb2xlYW47XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCBzaXplLWZ1bGwgei01MCBwLTQgcG9pbnRlci1ldmVudHMtbm9uZVwiIFtuZ0NsYXNzXT1cInsnZmlsZU92ZXInOiBmaWxlT3Zlcn1cIj5cclxuICA8ZGl2IGNsYXNzPVwiYm9yZGVyLTQgYm9yZGVyLWRhc2hlZCBib3JkZXItdHJhbnNwYXJlbnQgZGVmYXVsdC10cmFuc2l0aW9uIHJvdW5kZWQtMnhsIHNpemUtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgPGlvbi1pY29uIGNsYXNzPVwidGV4dC05eGwgdGV4dC10cmFuc3BhcmVudFwiIG5hbWU9XCJjbG91ZC11cGxvYWRcIj48L2lvbi1pY29uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
@@ -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.13", 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.13", type: DefaultDrawerEndComponent, isStandalone: true, selector: "default-drawer-end", inputs: { colapsed: "colapsed" }, ngImport: i0, template: "<div class=\"mt-1 w-full default-transition flex p-3\" [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.13", 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=\"mt-1 w-full default-transition flex p-3\" [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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1kcmF3ZXItZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RyYXdlci9kZWZhdWx0LWRyYXdlci1lbmQvZGVmYXVsdC1kcmF3ZXItZW5kLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RyYXdlci9kZWZhdWx0LWRyYXdlci1lbmQvZGVmYXVsdC1kcmF3ZXItZW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7OztBQWE3RCxNQUFNLE9BQU8seUJBQXlCO0lBRXBDLFlBQ1MsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFHeEIsYUFBUSxHQUFZLEtBQUssQ0FBQztJQUYvQixDQUFDO0lBS0wsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBR0QsT0FBTyxLQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDOytHQWhCcEMseUJBQXlCO21HQUF6Qix5QkFBeUIsZ0hDakJ0Qyw2eEJBV00seURERkYsWUFBWSw0SEFDWixXQUFXOzs0RkFPRix5QkFBeUI7a0JBWHJDLFNBQVM7aUNBQ0ksSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxrQkFBa0I7cUJBQ25CLFlBQ1Msb0JBQW9CO2dGQVVyQixRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlckxpbmtXaXRoSHJlZiB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IElvbmljTW9kdWxlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIElvbmljTW9kdWxlLFxyXG4gICAgUm91dGVyTGlua1dpdGhIcmVmLFxyXG4gIF0sXHJcbiAgc2VsZWN0b3I6ICdkZWZhdWx0LWRyYXdlci1lbmQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWZhdWx0LWRyYXdlci1lbmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RlZmF1bHQtZHJhd2VyLWVuZC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVmYXVsdERyYXdlckVuZENvbXBvbmVudCAgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBhdXRoU2VydmljZTogQXV0aFNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBASW5wdXQoKSBjb2xhcHNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBUb2tlbjogYW55O1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5Mb2FkVG9rZW4oKS50aGVuKChyZXMpID0+IHtcclxuICAgICAgdGhpcy5Ub2tlbiA9IHJlcztcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgTG9nZ291dCgpOiB2b2lkIHsgdGhpcy5hdXRoU2VydmljZS5Mb2dnb3V0KCk7IH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibXQtMSB3LWZ1bGwgZGVmYXVsdC10cmFuc2l0aW9uIGZsZXggcC0zXCIgW25nQ2xhc3NdPVwieychdy0xNic6IGNvbGFwc2VkfVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ3LTEwIHNocmluay0wIGFzcGVjdC1zcXVhcmUgcm91bmRlZC0yeGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZGVmYXVsdC10cmFuc2l0aW9uXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cInVwcGVyY2FzZSB0ZXh0LXdoaXRlXCI+e3tUb2tlbiA/IFRva2VuLk5vbWVbMF0gOiAnJ319PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJncm93IG1pbi13LTEwIHAtMiBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgd2hpdGVzcGFjZS1ub3dyYXAgdGV4dC1lbGxpcHNpcyBvdmVyZmxvdy1oaWRkZW4gYmxvY2sgZGVmYXVsdC10cmFuc2l0aW9uXCIgW25nQ2xhc3NdPVwieydvcGFjaXR5LTAgdy0wJzogY29sYXBzZWR9XCI+XHJcbiAgICA8c3Bhbj57e1Rva2VuID8gVG9rZW4uTm9tZSA6ICcnfX08L3NwYW4+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxpb24tYnV0dG9uIChjbGljayk9XCJMb2dnb3V0KClcIiBjbGFzcz1cInNpemUtMTAgc2hyaW5rLTBcIiBzaXplPVwic21hbGxcIiBjb2xvcj1cImRhbmdlclwiPlxyXG4gICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiZXhpdC1vdXRsaW5lXCI+PC9pb24taWNvbj4gXHJcbiAgPC9pb24tYnV0dG9uPlxyXG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,49 @@
|
|
|
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 } from '@angular/router';
|
|
6
|
+
import { GenericService } from '../../../services/generics.service';
|
|
7
|
+
import { NgVarDirective } from '../../../directives/ng-var.directive';
|
|
8
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/router";
|
|
11
|
+
import * as i2 from "@ionic/angular";
|
|
12
|
+
import * as i3 from "../../../services/generics.service";
|
|
13
|
+
import * as i4 from "@angular/common";
|
|
14
|
+
import * as i5 from "@ngx-translate/core";
|
|
15
|
+
export class DrawerGroupComponent {
|
|
16
|
+
constructor(router, navController, genericService) {
|
|
17
|
+
this.router = router;
|
|
18
|
+
this.navController = navController;
|
|
19
|
+
this.genericService = genericService;
|
|
20
|
+
this.TranslationModule = {
|
|
21
|
+
Permissao: 'Entities.Permissao.',
|
|
22
|
+
PermissaoGrupo: 'Entities.PermissaoGrupo.'
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
ngOnInit() { }
|
|
26
|
+
HandleNav(item) {
|
|
27
|
+
this.SetTitle(item);
|
|
28
|
+
this.navController.navigateRoot('/' + item.route);
|
|
29
|
+
}
|
|
30
|
+
SetTitle(item) {
|
|
31
|
+
this.genericService.SetTitle(item.title);
|
|
32
|
+
}
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DrawerGroupComponent, deps: [{ token: i1.Router }, { token: i2.NavController }, { token: i3.GenericService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", 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=\"w-full text-center mb-2\">\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>\r\n\r\n<div class=\"grid gap-2 w-full overflow-hidden\">\r\n @for (mGroup of MenuGroup.lstMenu; track $index) {\r\n <!-- Menu -->\r\n @if(mGroup.type == \"Menu\"){\r\n <ion-item \r\n class=\"bg-inactive\" 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\">\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", styles: [".bg-active{--background: color-mix(in srgb, var(--ion-color-secondary) 70%, transparent 30%) !important}.bg-inactive{cursor:pointer;--border-radius: 1rem;--background: color-mix(in srgb, var(--ion-color-light-shade) 50%, transparent 50%)}.bg-inactive::part(native){transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.bg-inactive:hover{--background: color-mix(in srgb, var(--ion-color-light-shade) 70%, transparent 30%)}@media (prefers-color-scheme: dark){.bg-inactive{--background: color-mix(in srgb, var(--ion-color-light-tint) 70%, transparent 30%)}.bg-inactive:hover{--background: var(--ion-color-light-tint)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.IonAccordion, selector: "ion-accordion", inputs: ["disabled", "mode", "readonly", "toggleIcon", "toggleIconSlot", "value"] }, { kind: "component", type: i2.IonAccordionGroup, selector: "ion-accordion-group", inputs: ["animated", "disabled", "expand", "mode", "multiple", "readonly", "value"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { 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: i5.TranslatePipe, name: "translate" }] }); }
|
|
35
|
+
}
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DrawerGroupComponent, decorators: [{
|
|
37
|
+
type: Component,
|
|
38
|
+
args: [{ standalone: true, imports: [CommonModule, IonicModule, NgVarDirective, TranslateModule], selector: 'drawer-group', template: "<div class=\"w-full text-center mb-2\">\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>\r\n\r\n<div class=\"grid gap-2 w-full overflow-hidden\">\r\n @for (mGroup of MenuGroup.lstMenu; track $index) {\r\n <!-- Menu -->\r\n @if(mGroup.type == \"Menu\"){\r\n <ion-item \r\n class=\"bg-inactive\" 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\">\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", styles: [".bg-active{--background: color-mix(in srgb, var(--ion-color-secondary) 70%, transparent 30%) !important}.bg-inactive{cursor:pointer;--border-radius: 1rem;--background: color-mix(in srgb, var(--ion-color-light-shade) 50%, transparent 50%)}.bg-inactive::part(native){transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.bg-inactive:hover{--background: color-mix(in srgb, var(--ion-color-light-shade) 70%, transparent 30%)}@media (prefers-color-scheme: dark){.bg-inactive{--background: color-mix(in srgb, var(--ion-color-light-tint) 70%, transparent 30%)}.bg-inactive:hover{--background: var(--ion-color-light-tint)}}\n"] }]
|
|
39
|
+
}], ctorParameters: () => [{ type: i1.Router }, { type: i2.NavController }, { type: i3.GenericService }], propDecorators: { MenuGroup: [{
|
|
40
|
+
type: Input
|
|
41
|
+
}], colapsed: [{
|
|
42
|
+
type: Input
|
|
43
|
+
}], useTranslation: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], lstIonAcordionGroup: [{
|
|
46
|
+
type: ViewChildren,
|
|
47
|
+
args: [IonAccordionGroup]
|
|
48
|
+
}] } });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RyYXdlci9kcmF3ZXItZ3JvdXAvZHJhd2VyLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RyYXdlci9kcmF3ZXItZ3JvdXAvZHJhd2VyLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBZ0IsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBU3RELE1BQU0sT0FBTyxvQkFBb0I7SUFVL0IsWUFDUyxNQUFjLEVBQ2IsYUFBNEIsRUFDNUIsY0FBOEI7UUFGL0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNiLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQVh4QyxzQkFBaUIsR0FBUTtZQUN2QixTQUFTLEVBQU8scUJBQXFCO1lBQ3JDLGNBQWMsRUFBRSwwQkFBMEI7U0FDM0MsQ0FBQztJQVNFLENBQUM7SUFFTCxRQUFRLEtBQUksQ0FBQztJQUViLFNBQVMsQ0FBQyxJQUFnQjtRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUNELFFBQVEsQ0FBQyxJQUFVO1FBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDOytHQXhCVSxvQkFBb0I7bUdBQXBCLG9CQUFvQiw0TUEwQmpCLGlCQUFpQixnREMxQ2pDLG1oR0E2REEsaXRCRGxEWSxZQUFZLDRIQUFFLFdBQVcsODZCQUFrQixlQUFlOzs0RkFLekQsb0JBQW9CO2tCQVBoQyxTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLGVBQWUsQ0FBQyxZQUMzRCxjQUFjO29JQVVmLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQWtCMkIsbUJBQW1CO3NCQUFuRCxZQUFZO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSW9uQWNjb3JkaW9uLCBJb25BY2NvcmRpb25Hcm91cCwgSW9uaWNNb2R1bGUsIE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IE1lbnUgfSBmcm9tICcuLi8uL21lbnUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBHZW5lcmljU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2dlbmVyaWNzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOZ1ZhckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvbmctdmFyLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25pY01vZHVsZSwgTmdWYXJEaXJlY3RpdmUsIFRyYW5zbGF0ZU1vZHVsZV0sXHJcbiAgc2VsZWN0b3I6ICdkcmF3ZXItZ3JvdXAnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kcmF3ZXItZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RyYXdlci1ncm91cC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJhd2VyR3JvdXBDb21wb25lbnQgIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgVHJhbnNsYXRpb25Nb2R1bGU6IGFueSA9IHtcclxuICAgIFBlcm1pc3NhbyAgICAgOiAnRW50aXRpZXMuUGVybWlzc2FvLicsXHJcbiAgICBQZXJtaXNzYW9HcnVwbzogJ0VudGl0aWVzLlBlcm1pc3Nhb0dydXBvLidcclxuICB9O1xyXG4gIEBJbnB1dCgpIE1lbnVHcm91cDogTWVudTtcclxuICBASW5wdXQoKSBjb2xhcHNlZDogYm9vbGVhbjtcclxuICBASW5wdXQoKSB1c2VUcmFuc2xhdGlvbjogYm9vbGVhbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIG5hdkNvbnRyb2xsZXI6IE5hdkNvbnRyb2xsZXIsXHJcbiAgICBwcml2YXRlIGdlbmVyaWNTZXJ2aWNlOiBHZW5lcmljU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge31cclxuXHJcbiAgSGFuZGxlTmF2KGl0ZW06IE1lbnUgfCBhbnkpe1xyXG4gICAgdGhpcy5TZXRUaXRsZShpdGVtKTtcclxuICAgIHRoaXMubmF2Q29udHJvbGxlci5uYXZpZ2F0ZVJvb3QoJy8nICsgaXRlbS5yb3V0ZSk7XHJcbiAgfVxyXG4gIFNldFRpdGxlKGl0ZW06IE1lbnUpe1xyXG4gICAgdGhpcy5nZW5lcmljU2VydmljZS5TZXRUaXRsZShpdGVtLnRpdGxlKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oSW9uQWNjb3JkaW9uR3JvdXApIGxzdElvbkFjb3JkaW9uR3JvdXA6IFF1ZXJ5TGlzdDxJb25BY2NvcmRpb24+XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInctZnVsbCB0ZXh0LWNlbnRlciBtYi0yXCI+XHJcbiAgPGlvbi1pdGVtIGNsYXNzPVwiYmctaW5hY3RpdmUgYmctYWN0aXZlXCIgbGluZXM9XCJub25lXCIgc3R5bGU9XCItLWJvcmRlci1yYWRpdXM6IDFyZW1cIj5cclxuICAgIDxpb24tbGFiZWwgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgICA8aW9uLWljb24gY2xhc3M9XCJ0ZXh0LTJ4bFwiIFtuYW1lXT1cIk1lbnVHcm91cC5pY29uXCI+PC9pb24taWNvbj4gPGJyPlxyXG4gICAgICA8aW9uLXRleHQgY2xhc3M9XCJ0ZXh0LWxnXCI+XHJcbiAgICAgICAge3t1c2VUcmFuc2xhdGlvbiA/IChUcmFuc2xhdGlvbk1vZHVsZS5QZXJtaXNzYW9HcnVwbyArIE1lbnVHcm91cC5pZCB8IHRyYW5zbGF0ZSkgOiBNZW51R3JvdXAudGl0bGV9fSBcclxuICAgICAgPC9pb24tdGV4dD5cclxuICAgIDwvaW9uLWxhYmVsPlxyXG4gIDwvaW9uLWl0ZW0+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cImdyaWQgZ2FwLTIgdy1mdWxsIG92ZXJmbG93LWhpZGRlblwiPlxyXG4gIEBmb3IgKG1Hcm91cCBvZiBNZW51R3JvdXAubHN0TWVudTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICA8IS0tIE1lbnUgLS0+XHJcbiAgICBAaWYobUdyb3VwLnR5cGUgPT0gXCJNZW51XCIpe1xyXG4gICAgICA8aW9uLWl0ZW0gXHJcbiAgICAgICAgY2xhc3M9XCJiZy1pbmFjdGl2ZVwiIGxpbmVzPVwibm9uZVwiIFxyXG4gICAgICAgIChjbGljayk9XCJIYW5kbGVOYXYobUdyb3VwKVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieydjb2xhcHNlZCc6IGNvbGFwc2VkLCAnYmctYWN0aXZlJyA6IHJvdXRlci5pc0FjdGl2ZSgnLycgKyBtR3JvdXAucm91dGUsIGZhbHNlKX1cIj5cclxuICAgICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgW25hbWVdPVwibUdyb3VwLmljb25cIj48L2lvbi1pY29uPlxyXG4gICAgICAgIDxpb24tbGFiZWwgY2xhc3M9XCJpb24tdGV4dC1ub3dyYXBcIj5cclxuICAgICAgICAgIHt7dXNlVHJhbnNsYXRpb24gPyAoVHJhbnNsYXRpb25Nb2R1bGUuUGVybWlzc2FvICsgbUdyb3VwLmlkIHwgdHJhbnNsYXRlKSA6IG1Hcm91cC50aXRsZX19ICAgICAgICAgIFxyXG4gICAgICAgIDwvaW9uLWxhYmVsPlxyXG4gICAgICA8L2lvbi1pdGVtPlxyXG4gICAgfSBcclxuICAgIEBlbHNlIGlmIChtR3JvdXAudHlwZSA9PSBcIk1lbnVHcm91cFwiKSB7XHJcbiAgICAgIDwhLS0gTWVudUdyb3VwIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIG92ZXJmbG93LWhpZGRlblwiPlxyXG4gICAgICAgIDxpb24tYWNjb3JkaW9uLWdyb3VwIGNsYXNzPVwiaW9uLXRleHQtbm93cmFwIHctZnVsbFwiPlxyXG4gICAgICAgICAgPGlvbi1hY2NvcmRpb24gY2xhc3M9XCJiZy10cmFuc3BhcmVudFwiIFt2YWx1ZV09XCJtR3JvdXBcIj5cclxuICAgICAgICAgICAgPGlvbi1pdGVtIHNsb3Q9XCJoZWFkZXJcIiBjb2xvcj1cImxpZ2h0XCIgY2xhc3M9XCJpb24tdGV4dC1ub3dyYXAgYmctaW5hY3RpdmVcIiBzdHlsZT1cIi0taW9uLWNvbG9yLWJhc2U6IHZhcigtLWJhY2tncm91bmQpICFpbXBvcnRhbnRcIj5cclxuICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgW25hbWVdPVwibUdyb3VwLmljb25cIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgIDxpb24tbGFiZWw+XHJcbiAgICAgICAgICAgICAgICB7e3VzZVRyYW5zbGF0aW9uID8gKFRyYW5zbGF0aW9uTW9kdWxlLlBlcm1pc3Nhb0dydXBvICsgbUdyb3VwLmlkIHwgdHJhbnNsYXRlKSA6IG1Hcm91cC50aXRsZX19XHJcbiAgICAgICAgICAgICAgPC9pb24tbGFiZWw+XHJcbiAgICAgICAgICAgIDwvaW9uLWl0ZW0+XHJcbiAgICAgICAgICAgIDxkaXYgc2xvdD1cImNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGwtOFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBib3JkZXItbC0yIGJvcmRlci1zb2xpZCByb3VuZGVkLWJsLTJ4bCBncmlkIGdhcC0yIHBsLTIgcHktMlwiIHN0eWxlPVwiYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpIDMwJSwgdHJhbnNwYXJlbnQgNzAlKVwiPlxyXG4gICAgICAgICAgICAgICAgICBAZm9yIChtTWVudSBvZiBtR3JvdXAubHN0TWVudTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGlmIChtTWVudS50eXBlID09IFwiTWVudVwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW9uLWl0ZW0gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmctaW5hY3RpdmVcIiBsaW5lcz1cIm5vbmVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIkhhbmRsZU5hdihtTWVudSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2NvbGFwc2VkJzogY29sYXBzZWQsICdiZy1hY3RpdmUnIDogcm91dGVyLmlzQWN0aXZlKCcvJyArIG1NZW51LnJvdXRlLCBmYWxzZSl9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwic3RhcnRcIiBbbmFtZV09XCJtTWVudS5pY29uXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1sYWJlbCBjbGFzcz1cImlvbi10ZXh0LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7dXNlVHJhbnNsYXRpb24gPyAoVHJhbnNsYXRpb25Nb2R1bGUuUGVybWlzc2FvICsgbU1lbnUuaWQgfCB0cmFuc2xhdGUpIDogbU1lbnUudGl0bGV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2lvbi1hY2NvcmRpb24+XHJcbiAgICAgICAgPC9pb24tYWNjb3JkaW9uLWdyb3VwPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICB9XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { Component, computed, effect, EventEmitter, input, Input, Output } from '@angular/core';
|
|
2
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { IonicModule } from '@ionic/angular';
|
|
5
|
+
import { DrawerGroupComponent } from './drawer-group/drawer-group.component';
|
|
6
|
+
import { LoadingComponent } from '../../components/loading/loading.component';
|
|
7
|
+
import { GenericService } from '../../services/generics.service';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "../../services/generics.service";
|
|
10
|
+
import * as i2 from "@angular/common";
|
|
11
|
+
import * as i3 from "@ionic/angular";
|
|
12
|
+
import * as i4 from "@ngx-translate/core";
|
|
13
|
+
export class DrawerComponent {
|
|
14
|
+
constructor(genericService) {
|
|
15
|
+
this.genericService = genericService;
|
|
16
|
+
this.TranslationModule = {
|
|
17
|
+
Permissao: 'Entities.Permissao.',
|
|
18
|
+
PermissaoGrupo: 'Entities.PermissaoGrupo.'
|
|
19
|
+
};
|
|
20
|
+
this.loading = true;
|
|
21
|
+
this.lstMenu = input();
|
|
22
|
+
this.lstFlattenMenu = computed(() => { return FlattenMenus(this.lstMenu()); });
|
|
23
|
+
this.colapsed = false;
|
|
24
|
+
this.colapsedChange = new EventEmitter;
|
|
25
|
+
this.useTranslation = false;
|
|
26
|
+
this.CurrentGroupActive = null;
|
|
27
|
+
this._enterColapsed = false;
|
|
28
|
+
effect(() => {
|
|
29
|
+
//Handle Menu Title
|
|
30
|
+
const lstFlat = this.lstFlattenMenu();
|
|
31
|
+
const currentMenu = lstFlat.find(p => window.location.pathname.includes('/' + p.route));
|
|
32
|
+
const group = FindMenuParent(this.lstMenu(), currentMenu);
|
|
33
|
+
if (group) {
|
|
34
|
+
this.CurrentGroupActive = group;
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
this.CurrentGroupActive = this.lstMenu()[0];
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
ToggleCollapsed() {
|
|
42
|
+
this.colapsedChange.emit(!this._enterColapsed);
|
|
43
|
+
this._enterColapsed = false;
|
|
44
|
+
}
|
|
45
|
+
onMouseEnter() {
|
|
46
|
+
if (this.colapsed) {
|
|
47
|
+
this._enterColapsed = true;
|
|
48
|
+
this.colapsedChange.emit(false);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
onMouseLeave() {
|
|
52
|
+
if (this._enterColapsed) {
|
|
53
|
+
this._enterColapsed = false;
|
|
54
|
+
this.colapsedChange.emit(true);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DrawerComponent, deps: [{ token: i1.GenericService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
58
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", 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 w-[19rem] flex flex-col bg-light\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n <div class=\"w-full px-2 h-14 pt-2 flex justify-between items-center text-3xl text-center\">\r\n <ion-button id=\"drawer-button\" class=\"shrink-0 portrait:hidden aspect-square h-12 z-10 default-transition m-0\" size=\"small\" fill=\"outline\" color=\"dark\" style=\"--border-radius: 999rem; --border-width: 0;\" (click)=\"ToggleCollapsed()\"> \r\n <ion-icon name=\"menu\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n <div class=\"size-full\">\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': colapsed }\"> \r\n {{title}}\r\n </ion-text>\r\n }\r\n <div #ref class=\"size-full flex items-center justify-center\">\r\n <ng-content select=\"[slot=logo]\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div id=\"menu-conteiner\" class=\"mask-y flex flex-col relative\">\r\n <loading [type]=\"3\" [loading]=\"loading\" text=\"\"></loading>\r\n <div class=\"size-full shrink flex\">\r\n <div class=\"h-full w-16 p-2 shrink-0\">\r\n <div class=\"grid gap-2\">\r\n @for (item of lstMenu(); track $index) {\r\n <ion-item \r\n id=\"group-menu\" [title]=\"item.title\" class=\"bg-inactive relative overflow-visible\" lines=\"none\" style=\"--padding-start: 0;\"\r\n (click)=\"CurrentGroupActive = item\" \r\n [ngClass]=\"{'bg-active': CurrentGroupActive == item}\"\r\n >\r\n <div id=\"tooltip\" class=\"opacity-0 !pointer-events-none -translate-x-4 absolute top-0 bottom-0 default-transition left-14 px-2 my-auto text-nowrap h-8 bg-[var(--ion-color-secondary)] -z-30 rounded-xl flex items-center justify-center\">\r\n <div class=\"absolute -left-1 top-0 rounded bottom-0 my-auto rotate-45 h-4 aspect-square bg-[var(--ion-color-secondary)]\"></div>\r\n <ion-icon class=\"z-50 mr-2\" [name]=\"item.icon\"></ion-icon>\r\n <ion-text class=\"z-50\"> \r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + item.id | translate) : item.title}}\r\n </ion-text>\r\n </div>\r\n <div class=\"absolute top-0 size-full flex items-center justify-center overflow-visible\">\r\n <ion-icon class=\"text-2xl\" [name]=\"item.icon\"></ion-icon>\r\n </div>\r\n </ion-item>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"h-full w-full border-dashed border-l relative\" style=\"border-color: color-mix(in srgb, var(--ion-color-dark) 20%, transparent 80%);\">\r\n @for (mGroup of lstMenu(); track $index) {\r\n <div class=\"absolute top-0 left-0 px-2 py-2 size-full default-transition opacity-0 translate-x-full z-0 mask-y overflow-y-auto\" [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\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</div>\r\n", styles: ["#drawer-button{border-radius:9999px}#drawer-button:hover{background-color:color-mix(in srgb,var(--ion-color-dark-tint) 50%,transparent 50%)}#drawer-button:hover ion-icon{color:var(--ion-color-light)}#menu-conteiner{width:100%;height:100%;overflow-y:auto;overflow-x:hidden}#group-menu{--min-height: 3rem;--min-width: 3rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}#group-menu:hover #tooltip{width:fit-content!important;--tw-translate-x: 0px !important;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important;opacity:1!important}.bg-active{--background: color-mix(in srgb, var(--ion-color-secondary) 70%, transparent 30%) !important}.bg-inactive{cursor:pointer;--border-radius: 1rem;--background: color-mix(in srgb, var(--ion-color-light-shade) 50%, transparent 50%) }.bg-inactive::part(native){transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.bg-inactive:hover{--background: color-mix(in srgb, var(--ion-color-light-shade) 70%, transparent 30%) }@media (prefers-color-scheme: dark){.bg-inactive{--background: color-mix(in srgb, var(--ion-color-light-tint) 70%, transparent 30%)}.bg-inactive:hover{--background: var(--ion-color-light-tint)}}\n"], 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"] }, { kind: "component", type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { 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: i4.TranslatePipe, name: "translate" }] }); }
|
|
59
|
+
}
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DrawerComponent, decorators: [{
|
|
61
|
+
type: Component,
|
|
62
|
+
args: [{ standalone: true, imports: [
|
|
63
|
+
CommonModule,
|
|
64
|
+
IonicModule,
|
|
65
|
+
LoadingComponent,
|
|
66
|
+
DrawerGroupComponent,
|
|
67
|
+
TranslateModule
|
|
68
|
+
], selector: 'drawer', template: "<div class=\"absolute left-0 top-0 h-full w-[19rem] flex flex-col bg-light\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n <div class=\"w-full px-2 h-14 pt-2 flex justify-between items-center text-3xl text-center\">\r\n <ion-button id=\"drawer-button\" class=\"shrink-0 portrait:hidden aspect-square h-12 z-10 default-transition m-0\" size=\"small\" fill=\"outline\" color=\"dark\" style=\"--border-radius: 999rem; --border-width: 0;\" (click)=\"ToggleCollapsed()\"> \r\n <ion-icon name=\"menu\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n <div class=\"size-full\">\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': colapsed }\"> \r\n {{title}}\r\n </ion-text>\r\n }\r\n <div #ref class=\"size-full flex items-center justify-center\">\r\n <ng-content select=\"[slot=logo]\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div id=\"menu-conteiner\" class=\"mask-y flex flex-col relative\">\r\n <loading [type]=\"3\" [loading]=\"loading\" text=\"\"></loading>\r\n <div class=\"size-full shrink flex\">\r\n <div class=\"h-full w-16 p-2 shrink-0\">\r\n <div class=\"grid gap-2\">\r\n @for (item of lstMenu(); track $index) {\r\n <ion-item \r\n id=\"group-menu\" [title]=\"item.title\" class=\"bg-inactive relative overflow-visible\" lines=\"none\" style=\"--padding-start: 0;\"\r\n (click)=\"CurrentGroupActive = item\" \r\n [ngClass]=\"{'bg-active': CurrentGroupActive == item}\"\r\n >\r\n <div id=\"tooltip\" class=\"opacity-0 !pointer-events-none -translate-x-4 absolute top-0 bottom-0 default-transition left-14 px-2 my-auto text-nowrap h-8 bg-[var(--ion-color-secondary)] -z-30 rounded-xl flex items-center justify-center\">\r\n <div class=\"absolute -left-1 top-0 rounded bottom-0 my-auto rotate-45 h-4 aspect-square bg-[var(--ion-color-secondary)]\"></div>\r\n <ion-icon class=\"z-50 mr-2\" [name]=\"item.icon\"></ion-icon>\r\n <ion-text class=\"z-50\"> \r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + item.id | translate) : item.title}}\r\n </ion-text>\r\n </div>\r\n <div class=\"absolute top-0 size-full flex items-center justify-center overflow-visible\">\r\n <ion-icon class=\"text-2xl\" [name]=\"item.icon\"></ion-icon>\r\n </div>\r\n </ion-item>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"h-full w-full border-dashed border-l relative\" style=\"border-color: color-mix(in srgb, var(--ion-color-dark) 20%, transparent 80%);\">\r\n @for (mGroup of lstMenu(); track $index) {\r\n <div class=\"absolute top-0 left-0 px-2 py-2 size-full default-transition opacity-0 translate-x-full z-0 mask-y overflow-y-auto\" [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\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</div>\r\n", styles: ["#drawer-button{border-radius:9999px}#drawer-button:hover{background-color:color-mix(in srgb,var(--ion-color-dark-tint) 50%,transparent 50%)}#drawer-button:hover ion-icon{color:var(--ion-color-light)}#menu-conteiner{width:100%;height:100%;overflow-y:auto;overflow-x:hidden}#group-menu{--min-height: 3rem;--min-width: 3rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}#group-menu:hover #tooltip{width:fit-content!important;--tw-translate-x: 0px !important;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important;opacity:1!important}.bg-active{--background: color-mix(in srgb, var(--ion-color-secondary) 70%, transparent 30%) !important}.bg-inactive{cursor:pointer;--border-radius: 1rem;--background: color-mix(in srgb, var(--ion-color-light-shade) 50%, transparent 50%) }.bg-inactive::part(native){transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.bg-inactive:hover{--background: color-mix(in srgb, var(--ion-color-light-shade) 70%, transparent 30%) }@media (prefers-color-scheme: dark){.bg-inactive{--background: color-mix(in srgb, var(--ion-color-light-tint) 70%, transparent 30%)}.bg-inactive:hover{--background: var(--ion-color-light-tint)}}\n"] }]
|
|
69
|
+
}], ctorParameters: () => [{ type: i1.GenericService }], propDecorators: { loading: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], colapsed: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], colapsedChange: [{
|
|
74
|
+
type: Output
|
|
75
|
+
}], title: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}], useTranslation: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}] } });
|
|
80
|
+
/**
|
|
81
|
+
* Flattens a hierarchical Menu[] structure into a single array
|
|
82
|
+
* containing all Menu items from the original array and all nested items
|
|
83
|
+
* @param menus The array of Menu items to flatten
|
|
84
|
+
* @returns A flattened array containing all Menu items
|
|
85
|
+
*/
|
|
86
|
+
function FlattenMenus(menus) {
|
|
87
|
+
const result = [];
|
|
88
|
+
function addMenuItems(items) {
|
|
89
|
+
for (const menu of items) {
|
|
90
|
+
// Add current menu to result
|
|
91
|
+
result.push(menu);
|
|
92
|
+
// Process nested menus if they exist
|
|
93
|
+
if (menu.lstMenu && menu.lstMenu.length > 0) {
|
|
94
|
+
addMenuItems(menu.lstMenu);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
addMenuItems(menus);
|
|
99
|
+
return result;
|
|
100
|
+
}
|
|
101
|
+
function FindMenuParent(menus, targetMenu) {
|
|
102
|
+
for (const menu of menus) {
|
|
103
|
+
// Check if current menu has the target in its direct children
|
|
104
|
+
if (menu.lstMenu && menu.lstMenu.some(m => m === targetMenu)) {
|
|
105
|
+
return menu;
|
|
106
|
+
}
|
|
107
|
+
// Search deeper in the hierarchy
|
|
108
|
+
if (menu.lstMenu && menu.lstMenu.length > 0) {
|
|
109
|
+
const parent = FindMenuParent(menu.lstMenu, targetMenu);
|
|
110
|
+
if (parent) {
|
|
111
|
+
return parent;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RyYXdlci9kcmF3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FwcGhpcmUtaW9uLWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHJhd2VyL2RyYXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQWUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7O0FBY2pFLE1BQU0sT0FBTyxlQUFlO0lBZ0IxQixZQUNVLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQWZ4QyxzQkFBaUIsR0FBUTtZQUN2QixTQUFTLEVBQU8scUJBQXFCO1lBQ3JDLGNBQWMsRUFBRSwwQkFBMEI7U0FDM0MsQ0FBQztRQUVPLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFDakMsWUFBTyxHQUF3QixLQUFLLEVBQVUsQ0FBQTtRQUM5QyxtQkFBYyxHQUFtQixRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVoRixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQ3pCLG1CQUFjLEdBQTBCLElBQUksWUFBcUIsQ0FBQztRQUVuRSxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQWtCekMsdUJBQWtCLEdBQVMsSUFBSSxDQUFDO1FBT2hDLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBcEI5QixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsbUJBQW1CO1lBQ25CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN4RixNQUFNLEtBQUssR0FBZ0IsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUN2RSxJQUFHLEtBQUssRUFBQyxDQUFDO2dCQUNSLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7WUFDbEMsQ0FBQztpQkFDRyxDQUFDO2dCQUNILElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELGVBQWU7UUFDYixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBR0QsWUFBWTtRQUNWLElBQUcsSUFBSSxDQUFDLFFBQVEsRUFBQyxDQUFDO1lBQ2hCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDO0lBQ0QsWUFBWTtRQUNWLElBQUcsSUFBSSxDQUFDLGNBQWMsRUFBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1lBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDOytHQW5EVSxlQUFlO21HQUFmLGVBQWUseXdCQ3RCNUIsODNHQXdEQSwyNkNENUNJLFlBQVksNEhBQ1osV0FBVyxrd0JBQ1gsZ0JBQWdCLHlGQUNoQixvQkFBb0IsNkdBQ3BCLGVBQWU7OzRGQU1OLGVBQWU7a0JBYjNCLFNBQVM7aUNBQ0ksSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIsZUFBZTtxQkFDaEIsWUFDUyxRQUFRO21GQVdULE9BQU87c0JBQWYsS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0UsS0FBSztzQkFBYixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7O0FBd0NSOzs7OztHQUtHO0FBQ0gsU0FBUyxZQUFZLENBQUMsS0FBYTtJQUNqQyxNQUFNLE1BQU0sR0FBVyxFQUFFLENBQUM7SUFFMUIsU0FBUyxZQUFZLENBQUMsS0FBYTtRQUNqQyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLDZCQUE2QjtZQUM3QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRWxCLHFDQUFxQztZQUNyQyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzVDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BCLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxLQUFhLEVBQUUsVUFBZ0I7SUFDckQsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN6Qiw4REFBOEQ7UUFDOUQsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDN0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsaUNBQWlDO1FBQ2pDLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztZQUN4RCxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgRXZlbnRFbWl0dGVyLCBpbnB1dCwgSW5wdXQsIElucHV0U2lnbmFsLCBPdXRwdXQsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IE1lbnUgfSBmcm9tICcuL21lbnUnO1xyXG5cclxuaW1wb3J0IHsgRHJhd2VyR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2RyYXdlci1ncm91cC9kcmF3ZXItZ3JvdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZ2VuZXJpY3Muc2VydmljZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSW9uaWNNb2R1bGUsXHJcbiAgICBMb2FkaW5nQ29tcG9uZW50LFxyXG4gICAgRHJhd2VyR3JvdXBDb21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGVcclxuICBdLFxyXG4gIHNlbGVjdG9yOiAnZHJhd2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHJhd2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kcmF3ZXIuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERyYXdlckNvbXBvbmVudCB7XHJcblxyXG4gIFRyYW5zbGF0aW9uTW9kdWxlOiBhbnkgPSB7XHJcbiAgICBQZXJtaXNzYW8gICAgIDogJ0VudGl0aWVzLlBlcm1pc3Nhby4nLFxyXG4gICAgUGVybWlzc2FvR3J1cG86ICdFbnRpdGllcy5QZXJtaXNzYW9HcnVwby4nXHJcbiAgfTtcclxuXHJcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgbHN0TWVudTogSW5wdXRTaWduYWw8TWVudVtdPiA9IGlucHV0PE1lbnVbXT4oKSBcclxuICBsc3RGbGF0dGVuTWVudTogU2lnbmFsPE1lbnVbXT4gPSBjb21wdXRlZCgoKSA9PiB7IHJldHVybiBGbGF0dGVuTWVudXModGhpcy5sc3RNZW51KCkpIH0pO1xyXG5cclxuICBASW5wdXQoKSBjb2xhcHNlZDogYm9vbGVhbiA9IGZhbHNlOyAgXHJcbiAgQE91dHB1dCgpIGNvbGFwc2VkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+OyAgXHJcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcclxuICBASW5wdXQoKSB1c2VUcmFuc2xhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIFxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBnZW5lcmljU2VydmljZTogR2VuZXJpY1NlcnZpY2UsXHJcbiAgKSB7IFxyXG4gICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgLy9IYW5kbGUgTWVudSBUaXRsZVxyXG4gICAgICBjb25zdCBsc3RGbGF0ID0gdGhpcy5sc3RGbGF0dGVuTWVudSgpO1xyXG4gICAgICBjb25zdCBjdXJyZW50TWVudSA9IGxzdEZsYXQuZmluZChwID0+IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5pbmNsdWRlcygnLycgKyBwLnJvdXRlKSk7XHJcbiAgICAgIGNvbnN0IGdyb3VwOiBNZW51IHwgbnVsbCA9IEZpbmRNZW51UGFyZW50KHRoaXMubHN0TWVudSgpLCBjdXJyZW50TWVudSk7XHJcbiAgICAgIGlmKGdyb3VwKXtcclxuICAgICAgICB0aGlzLkN1cnJlbnRHcm91cEFjdGl2ZSA9IGdyb3VwO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdGhpcy5DdXJyZW50R3JvdXBBY3RpdmUgPSB0aGlzLmxzdE1lbnUoKVswXTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIEN1cnJlbnRHcm91cEFjdGl2ZTogTWVudSA9IG51bGw7XHJcblxyXG4gIFRvZ2dsZUNvbGxhcHNlZCgpe1xyXG4gICAgdGhpcy5jb2xhcHNlZENoYW5nZS5lbWl0KCF0aGlzLl9lbnRlckNvbGFwc2VkKTtcclxuICAgIHRoaXMuX2VudGVyQ29sYXBzZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIF9lbnRlckNvbGFwc2VkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgb25Nb3VzZUVudGVyKCl7XHJcbiAgICBpZih0aGlzLmNvbGFwc2VkKXtcclxuICAgICAgdGhpcy5fZW50ZXJDb2xhcHNlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuY29sYXBzZWRDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uTW91c2VMZWF2ZSgpe1xyXG4gICAgaWYodGhpcy5fZW50ZXJDb2xhcHNlZCl7XHJcbiAgICAgIHRoaXMuX2VudGVyQ29sYXBzZWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jb2xhcHNlZENoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEZsYXR0ZW5zIGEgaGllcmFyY2hpY2FsIE1lbnVbXSBzdHJ1Y3R1cmUgaW50byBhIHNpbmdsZSBhcnJheVxyXG4gKiBjb250YWluaW5nIGFsbCBNZW51IGl0ZW1zIGZyb20gdGhlIG9yaWdpbmFsIGFycmF5IGFuZCBhbGwgbmVzdGVkIGl0ZW1zXHJcbiAqIEBwYXJhbSBtZW51cyBUaGUgYXJyYXkgb2YgTWVudSBpdGVtcyB0byBmbGF0dGVuXHJcbiAqIEByZXR1cm5zIEEgZmxhdHRlbmVkIGFycmF5IGNvbnRhaW5pbmcgYWxsIE1lbnUgaXRlbXNcclxuICovXHJcbmZ1bmN0aW9uIEZsYXR0ZW5NZW51cyhtZW51czogTWVudVtdKTogTWVudVtdIHtcclxuICBjb25zdCByZXN1bHQ6IE1lbnVbXSA9IFtdO1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGFkZE1lbnVJdGVtcyhpdGVtczogTWVudVtdKSB7XHJcbiAgICBmb3IgKGNvbnN0IG1lbnUgb2YgaXRlbXMpIHtcclxuICAgICAgLy8gQWRkIGN1cnJlbnQgbWVudSB0byByZXN1bHRcclxuICAgICAgcmVzdWx0LnB1c2gobWVudSk7XHJcbiAgICAgIFxyXG4gICAgICAvLyBQcm9jZXNzIG5lc3RlZCBtZW51cyBpZiB0aGV5IGV4aXN0XHJcbiAgICAgIGlmIChtZW51LmxzdE1lbnUgJiYgbWVudS5sc3RNZW51Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICBhZGRNZW51SXRlbXMobWVudS5sc3RNZW51KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICBhZGRNZW51SXRlbXMobWVudXMpO1xyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIEZpbmRNZW51UGFyZW50KG1lbnVzOiBNZW51W10sIHRhcmdldE1lbnU6IE1lbnUpOiBNZW51IHwgbnVsbCB7XHJcbiAgZm9yIChjb25zdCBtZW51IG9mIG1lbnVzKSB7XHJcbiAgICAvLyBDaGVjayBpZiBjdXJyZW50IG1lbnUgaGFzIHRoZSB0YXJnZXQgaW4gaXRzIGRpcmVjdCBjaGlsZHJlblxyXG4gICAgaWYgKG1lbnUubHN0TWVudSAmJiBtZW51LmxzdE1lbnUuc29tZShtID0+IG0gPT09IHRhcmdldE1lbnUpKSB7XHJcbiAgICAgIHJldHVybiBtZW51O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvLyBTZWFyY2ggZGVlcGVyIGluIHRoZSBoaWVyYXJjaHlcclxuICAgIGlmIChtZW51LmxzdE1lbnUgJiYgbWVudS5sc3RNZW51Lmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgcGFyZW50ID0gRmluZE1lbnVQYXJlbnQobWVudS5sc3RNZW51LCB0YXJnZXRNZW51KTtcclxuICAgICAgaWYgKHBhcmVudCkge1xyXG4gICAgICAgIHJldHVybiBwYXJlbnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgcmV0dXJuIG51bGw7XHJcbn0iLCI8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgbGVmdC0wIHRvcC0wIGgtZnVsbCB3LVsxOXJlbV0gZmxleCBmbGV4LWNvbCBiZy1saWdodFwiIChtb3VzZWVudGVyKT1cIm9uTW91c2VFbnRlcigpXCIgKG1vdXNlbGVhdmUpPVwib25Nb3VzZUxlYXZlKClcIj5cclxuICA8ZGl2IGNsYXNzPVwidy1mdWxsIHB4LTIgaC0xNCBwdC0yIGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciB0ZXh0LTN4bCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgPGlvbi1idXR0b24gaWQ9XCJkcmF3ZXItYnV0dG9uXCIgY2xhc3M9XCJzaHJpbmstMCBwb3J0cmFpdDpoaWRkZW4gYXNwZWN0LXNxdWFyZSBoLTEyIHotMTAgZGVmYXVsdC10cmFuc2l0aW9uIG0tMFwiIHNpemU9XCJzbWFsbFwiIGZpbGw9XCJvdXRsaW5lXCIgY29sb3I9XCJkYXJrXCIgc3R5bGU9XCItLWJvcmRlci1yYWRpdXM6IDk5OXJlbTsgLS1ib3JkZXItd2lkdGg6IDA7XCIgKGNsaWNrKT1cIlRvZ2dsZUNvbGxhcHNlZCgpXCI+IFxyXG4gICAgICA8aW9uLWljb24gbmFtZT1cIm1lbnVcIiBzbG90PVwiaWNvbi1vbmx5XCI+PC9pb24taWNvbj5cclxuICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgIDxkaXYgY2xhc3M9XCJzaXplLWZ1bGxcIj5cclxuICAgICAgQGlmICghcmVmLmNoaWxkcmVuLmxlbmd0aCkge1xyXG4gICAgICAgIDxpb24tdGV4dCBjbGFzcz1cInNpemUtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBkZWZhdWx0LXRyYW5zaXRpb24gei0wXCIgW25nQ2xhc3NdPVwieydvcGFjaXR5LTAgLXRyYW5zbGF0ZS14LTEvMic6IGNvbGFwc2VkIH1cIj4gXHJcbiAgICAgICAgICB7e3RpdGxlfX1cclxuICAgICAgICA8L2lvbi10ZXh0PlxyXG4gICAgICB9XHJcbiAgICAgIDxkaXYgI3JlZiBjbGFzcz1cInNpemUtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzbG90PWxvZ29dXCI+PC9uZy1jb250ZW50PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGlkPVwibWVudS1jb250ZWluZXJcIiBjbGFzcz1cIm1hc2steSBmbGV4IGZsZXgtY29sIHJlbGF0aXZlXCI+XHJcbiAgICA8bG9hZGluZyBbdHlwZV09XCIzXCIgW2xvYWRpbmddPVwibG9hZGluZ1wiIHRleHQ9XCJcIj48L2xvYWRpbmc+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2l6ZS1mdWxsIHNocmluayBmbGV4XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoLWZ1bGwgdy0xNiBwLTIgc2hyaW5rLTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBnYXAtMlwiPlxyXG4gICAgICAgICAgQGZvciAoaXRlbSBvZiBsc3RNZW51KCk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICA8aW9uLWl0ZW0gXHJcbiAgICAgICAgICAgICAgaWQ9XCJncm91cC1tZW51XCIgW3RpdGxlXT1cIml0ZW0udGl0bGVcIiBjbGFzcz1cImJnLWluYWN0aXZlIHJlbGF0aXZlIG92ZXJmbG93LXZpc2libGVcIiBsaW5lcz1cIm5vbmVcIiBzdHlsZT1cIi0tcGFkZGluZy1zdGFydDogMDtcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJDdXJyZW50R3JvdXBBY3RpdmUgPSBpdGVtXCIgXHJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydiZy1hY3RpdmUnOiBDdXJyZW50R3JvdXBBY3RpdmUgPT0gaXRlbX1cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiBpZD1cInRvb2x0aXBcIiBjbGFzcz1cIm9wYWNpdHktMCAhcG9pbnRlci1ldmVudHMtbm9uZSAtdHJhbnNsYXRlLXgtNCBhYnNvbHV0ZSB0b3AtMCBib3R0b20tMCBkZWZhdWx0LXRyYW5zaXRpb24gbGVmdC0xNCBweC0yIG15LWF1dG8gdGV4dC1ub3dyYXAgaC04IGJnLVt2YXIoLS1pb24tY29sb3Itc2Vjb25kYXJ5KV0gLXotMzAgcm91bmRlZC14bCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIC1sZWZ0LTEgdG9wLTAgcm91bmRlZCBib3R0b20tMCBteS1hdXRvIHJvdGF0ZS00NSBoLTQgYXNwZWN0LXNxdWFyZSBiZy1bdmFyKC0taW9uLWNvbG9yLXNlY29uZGFyeSldXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWljb24gY2xhc3M9XCJ6LTUwIG1yLTJcIiBbbmFtZV09XCJpdGVtLmljb25cIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAgPGlvbi10ZXh0IGNsYXNzPVwiei01MFwiPiBcclxuICAgICAgICAgICAgICAgICAge3t1c2VUcmFuc2xhdGlvbiA/IChUcmFuc2xhdGlvbk1vZHVsZS5QZXJtaXNzYW9HcnVwbyArIGl0ZW0uaWQgfCB0cmFuc2xhdGUpIDogaXRlbS50aXRsZX19XHJcbiAgICAgICAgICAgICAgICA8L2lvbi10ZXh0PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBzaXplLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgb3ZlcmZsb3ctdmlzaWJsZVwiPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIGNsYXNzPVwidGV4dC0yeGxcIiBbbmFtZV09XCJpdGVtLmljb25cIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2lvbi1pdGVtPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImgtZnVsbCB3LWZ1bGwgYm9yZGVyLWRhc2hlZCBib3JkZXItbCByZWxhdGl2ZVwiIHN0eWxlPVwiYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0taW9uLWNvbG9yLWRhcmspIDIwJSwgdHJhbnNwYXJlbnQgODAlKTtcIj5cclxuICAgICAgICBAZm9yIChtR3JvdXAgb2YgbHN0TWVudSgpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcHgtMiBweS0yIHNpemUtZnVsbCBkZWZhdWx0LXRyYW5zaXRpb24gb3BhY2l0eS0wIHRyYW5zbGF0ZS14LWZ1bGwgei0wIG1hc2steSBvdmVyZmxvdy15LWF1dG9cIiBbbmdDbGFzc109XCJ7J29wYWNpdHktMTAwICF0cmFuc2xhdGUteC0wJzogQ3VycmVudEdyb3VwQWN0aXZlID09IG1Hcm91cH1cIj5cclxuICAgICAgICAgICAgPGRyYXdlci1ncm91cCBbTWVudUdyb3VwXT1cIm1Hcm91cFwiIFt1c2VUcmFuc2xhdGlvbl09XCJ1c2VUcmFuc2xhdGlvblwiIFtjb2xhcHNlZF09XCJjb2xhcHNlZFwiPjwvZHJhd2VyLWdyb3VwPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PiBcclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic2hyaW5rLTAgdy1mdWxsXCI+XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzbG90PWRyYXdlcl1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RyYXdlci9tZW51LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE1BQU0sT0FBTyxJQUFJO0lBT2YsWUFBWSxJQUEwQixFQUFFLEtBQWEsRUFBRSxJQUFvQixFQUFFLFVBQWtCLEVBQUUsRUFBRSxRQUF1QixJQUFJO1FBQzVILElBQUksQ0FBQyxJQUFJLEdBQUksSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUcsSUFBSSxFQUFDLENBQUM7WUFDUCxJQUFJLENBQUMsSUFBSSxHQUFJLElBQUksQ0FBQztRQUNwQixDQUFDO2FBQUksQ0FBQztZQUNKLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0IGNsYXNzIE1lbnV7XHJcbiAgaWQ6IG51bWJlcjtcclxuICByb3V0ZTogc3RyaW5nIHwgbnVsbDtcclxuICBpY29uIDogc3RyaW5nIHwgbnVsbDtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGxzdE1lbnU6IE1lbnVbXTtcclxuICB0eXBlOiAnTWVudScgfCAnTWVudUdyb3VwJ1xyXG4gIGNvbnN0cnVjdG9yKHR5cGU6ICdNZW51JyB8ICdNZW51R3JvdXAnLCB0aXRsZTogc3RyaW5nLCBpY29uIDogc3RyaW5nIHwgbnVsbCwgbHN0TWVudTogTWVudVtdID0gW10sIHJvdXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbCl7XHJcbiAgICB0aGlzLnR5cGUgID0gdHlwZTsgXHJcbiAgICB0aGlzLnRpdGxlID0gdGl0bGU7XHJcbiAgICB0aGlzLnJvdXRlID0gcm91dGU7XHJcbiAgICBpZihpY29uKXtcclxuICAgICAgdGhpcy5pY29uICA9IGljb247XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5pY29uID0gXCJsYXllcnNcIjtcclxuICAgIH1cclxuICAgIHRoaXMubHN0TWVudSA9IGxzdE1lbnU7XHJcbiAgfVxyXG59Il19
|