@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,93 @@
|
|
|
1
|
+
import { FormBuilder, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
2
|
+
import { Component, EventEmitter, HostListener, Output } from '@angular/core';
|
|
3
|
+
import { IonicModule, NavController } from '@ionic/angular';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import { Router } from '@angular/router';
|
|
6
|
+
import { EnvironmentService } from '../../services/environment.service';
|
|
7
|
+
import { ApiUrlProviderService } from '../../services/web/api-url-provider.service';
|
|
8
|
+
import { GenericService } from '../../services/generics.service';
|
|
9
|
+
import { AuthService } from '../../services/auth.service';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/forms";
|
|
12
|
+
import * as i2 from "../../services/generics.service";
|
|
13
|
+
import * as i3 from "@ionic/angular";
|
|
14
|
+
import * as i4 from "../../services/auth.service";
|
|
15
|
+
import * as i5 from "../../services/web/api-url-provider.service";
|
|
16
|
+
import * as i6 from "../../services/environment.service";
|
|
17
|
+
import * as i7 from "@angular/router";
|
|
18
|
+
import * as i8 from "@angular/common";
|
|
19
|
+
export class DefaultLoginComponent {
|
|
20
|
+
constructor(fb, genericService, navController, authService, apiUrlProviderService, coreService, router) {
|
|
21
|
+
this.fb = fb;
|
|
22
|
+
this.genericService = genericService;
|
|
23
|
+
this.navController = navController;
|
|
24
|
+
this.authService = authService;
|
|
25
|
+
this.apiUrlProviderService = apiUrlProviderService;
|
|
26
|
+
this.coreService = coreService;
|
|
27
|
+
this.router = router;
|
|
28
|
+
this.submitted = false;
|
|
29
|
+
this.OnLogin = new EventEmitter();
|
|
30
|
+
this.genericService.SetTitle("Login");
|
|
31
|
+
}
|
|
32
|
+
async ngOnInit() {
|
|
33
|
+
this.CreateForm();
|
|
34
|
+
if (!this.coreService.environment.production) {
|
|
35
|
+
this.frm.patchValue(this.coreService.environment.defaultCredentials);
|
|
36
|
+
}
|
|
37
|
+
const Token = await this.authService.LoadToken();
|
|
38
|
+
if (this.authService.isTokenValid(Token)) {
|
|
39
|
+
this.router.navigate(["/"]);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
CreateForm() {
|
|
43
|
+
this.frm = this.fb.group({
|
|
44
|
+
apelido: [null, Validators.required],
|
|
45
|
+
senha: [null, Validators.required]
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
async Login($event) {
|
|
49
|
+
if ($event && $event.key != 'Enter') {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
this.submitted = true;
|
|
53
|
+
this.loading = true;
|
|
54
|
+
if (!this.frm.valid) {
|
|
55
|
+
this.loading = false;
|
|
56
|
+
this.genericService.PresentToast("Usuario / Senha não informado!");
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
try {
|
|
60
|
+
const Token = await this.authService.Login(this.frm.value);
|
|
61
|
+
this.loading = false;
|
|
62
|
+
this.navController.navigateRoot("/");
|
|
63
|
+
this.genericService.PresentToast("Logado com sucesso!", "checkmark-circle");
|
|
64
|
+
this.OnLogin.emit(Token);
|
|
65
|
+
}
|
|
66
|
+
catch (status) {
|
|
67
|
+
if (status == 401) {
|
|
68
|
+
this.genericService.PresentToast("Usuário / Senha inválido (s)!");
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
this.genericService.PresentToast("Ocorreu um erro ao realizar o login!");
|
|
72
|
+
}
|
|
73
|
+
this.loading = false;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultLoginComponent, deps: [{ token: i1.FormBuilder }, { token: i2.GenericService }, { token: i3.NavController }, { token: i4.AuthService }, { token: i5.ApiUrlProviderService }, { token: i6.EnvironmentService }, { token: i7.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
77
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DefaultLoginComponent, isStandalone: true, selector: "login", outputs: { OnLogin: "OnLogin" }, host: { listeners: { "window:keydown": "Login($event)" } }, ngImport: i0, template: "<div class=\"size-full flex justify-center items-center relative\">\r\n <div class=\"landscape:w-4/5 portrait:w-full landscape:h-2/3 portrait:h-full landscape:max-w-[60rem] translucid-border landscape:rounded-3xl landscape:backdrop-blur-xl overflow-hidden\">\r\n <div class=\"size-full flex portrait:flex-col\" style=\"background-color: color-mix(in srgb, var(--ion-color-light) 20%, transparent 80%);\">\r\n <div class=\"shrink-0 w-96 portrait:w-full portrait:h-32 h-full p-3\">\r\n <div class=\"rounded-2xl size-full overflow-x-hidden\">\r\n <ng-content class=\"size-full\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"grow flex items-center justify-center h-full py-3 pr-3 portrait:pl-3\">\r\n <div class=\"w-96 h-full flex flex-col items-center justify-center\" *ngIf=\"frm\" [formGroup]=\"frm\">\r\n\r\n <ion-text class=\"text-5xl my-10 portrait:mt-[-5rem]\"> Login </ion-text>\r\n\r\n <ion-card class=\"w-full backdrop-blur-xl\">\r\n <ion-card-content>\r\n <ion-item lines=\"none\" label=\"Senha\" labelPlacement=\"stacked\" class=\"rounded-2xl my-3 w-full\">\r\n <ion-icon name=\"person\" slot=\"start\"></ion-icon>\r\n <ion-input placeholder=\"Usu\u00E1rio / User\" formControlName=\"apelido\"></ion-input>\r\n </ion-item>\r\n </ion-card-content>\r\n </ion-card>\r\n\r\n <ion-card class=\"w-full backdrop-blur-xl\"> \r\n <ion-card-content>\r\n <ion-item lines=\"none\" class=\"rounded-2xl my-3 w-full\">\r\n <ion-icon name=\"lock-closed\" slot=\"start\"></ion-icon>\r\n <ion-input type=\"password\" formControlName=\"senha\" placeholder=\"Senha / Password\">\r\n <ion-input-password-toggle slot=\"end\"></ion-input-password-toggle>\r\n </ion-input>\r\n </ion-item>\r\n </ion-card-content>\r\n </ion-card>\r\n\r\n <div class=\"flex my-3 w-full\">\r\n <ion-button class=\"rounded-2xl shadow-xl default-transition w-full\" expand=\"block\" (click)=\"Login()\" [disabled]=\"loading\">\r\n <ion-spinner class=\"default-transition\" [ngClass]=\"{'-translate-x-12 opacity-0 size-0': !loading, 'mr-2' : loading}\" slot=\"start\"></ion-spinner>\r\n <ion-icon class=\"default-transition\" [ngClass]=\"{'-translate-x-12 opacity-0 size-0': loading}\" name=\"enter-outline\" slot=\"start\" ></ion-icon>\r\n <span class=\"default-transition\" > Login </span>\r\n </ion-button>\r\n\r\n <ion-button class=\"shrink-0 aspect-square ml-3\" color=\"dark\" hidden>\r\n <svg class=\"size-8\" slot=\"icon-only\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 32 32\" width=\"64\" height=\"64\"><defs><path id=\"A\" d=\"M44.5 20H24v8.5h11.8C34.7 33.9 30.1 37 24 37c-7.2 0-13-5.8-13-13s5.8-13 13-13c3.1 0 5.9 1.1 8.1 2.9l6.4-6.4C34.6 4.1 29.6 2 24 2 11.8 2 2 11.8 2 24s9.8 22 22 22c11 0 21-8 21-22 0-1.3-.2-2.7-.5-4z\"/></defs><clipPath id=\"B\"><use xlink:href=\"#A\"/></clipPath><g transform=\"matrix(.727273 0 0 .727273 -.954545 -1.45455)\"><path d=\"M0 37V11l17 13z\" clip-path=\"url(#B)\" fill=\"#fbbc05\"/><path d=\"M0 11l17 13 7-6.1L48 14V0H0z\" clip-path=\"url(#B)\" fill=\"#ea4335\"/><path d=\"M0 37l30-23 7.9 1L48 0v48H0z\" clip-path=\"url(#B)\" fill=\"#34a853\"/><path d=\"M48 48L17 24l-4-3 35-10z\" clip-path=\"url(#B)\" fill=\"#4285f4\"/></g></svg>\r\n <!-- <ion-icon name=\"logo-google\" ></ion-icon> -->\r\n </ion-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: ["ion-button{transition:all 1s}ion-item.ion-touched,ion-item.ion-pristine{--border-width: 0;--border-color: var(--ion-color-dark) --background: transparent !important;transition:border-color .5s;border-radius:1rem}ion-card{margin:0;margin-top:.5rem;margin-bottom:.5rem;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:1rem;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-light) 15%,transparent 93%);border-bottom-color:var(--ion-color-medium);border-right-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-top-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-left-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-width:1px 1px 2px 1px}ion-card ion-card-content{padding:0}ion-card:hover{background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.submitted.invalid{border-color:color-mix(in srgb,var(--ion-color-danger) 75%,transparent 25%)!important}ion-card ion-card-content{width:100%;height:100%;background-color:transparent;padding:0}ion-item{--background: transparent;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i3.IonInputPasswordToggle, selector: "ion-input-password-toggle", inputs: ["color", "hideIcon", "mode", "showIcon"] }, { 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.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i3.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
|
|
78
|
+
}
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultLoginComponent, decorators: [{
|
|
80
|
+
type: Component,
|
|
81
|
+
args: [{ standalone: true, imports: [
|
|
82
|
+
CommonModule,
|
|
83
|
+
IonicModule,
|
|
84
|
+
FormsModule,
|
|
85
|
+
ReactiveFormsModule,
|
|
86
|
+
], selector: 'login', template: "<div class=\"size-full flex justify-center items-center relative\">\r\n <div class=\"landscape:w-4/5 portrait:w-full landscape:h-2/3 portrait:h-full landscape:max-w-[60rem] translucid-border landscape:rounded-3xl landscape:backdrop-blur-xl overflow-hidden\">\r\n <div class=\"size-full flex portrait:flex-col\" style=\"background-color: color-mix(in srgb, var(--ion-color-light) 20%, transparent 80%);\">\r\n <div class=\"shrink-0 w-96 portrait:w-full portrait:h-32 h-full p-3\">\r\n <div class=\"rounded-2xl size-full overflow-x-hidden\">\r\n <ng-content class=\"size-full\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"grow flex items-center justify-center h-full py-3 pr-3 portrait:pl-3\">\r\n <div class=\"w-96 h-full flex flex-col items-center justify-center\" *ngIf=\"frm\" [formGroup]=\"frm\">\r\n\r\n <ion-text class=\"text-5xl my-10 portrait:mt-[-5rem]\"> Login </ion-text>\r\n\r\n <ion-card class=\"w-full backdrop-blur-xl\">\r\n <ion-card-content>\r\n <ion-item lines=\"none\" label=\"Senha\" labelPlacement=\"stacked\" class=\"rounded-2xl my-3 w-full\">\r\n <ion-icon name=\"person\" slot=\"start\"></ion-icon>\r\n <ion-input placeholder=\"Usu\u00E1rio / User\" formControlName=\"apelido\"></ion-input>\r\n </ion-item>\r\n </ion-card-content>\r\n </ion-card>\r\n\r\n <ion-card class=\"w-full backdrop-blur-xl\"> \r\n <ion-card-content>\r\n <ion-item lines=\"none\" class=\"rounded-2xl my-3 w-full\">\r\n <ion-icon name=\"lock-closed\" slot=\"start\"></ion-icon>\r\n <ion-input type=\"password\" formControlName=\"senha\" placeholder=\"Senha / Password\">\r\n <ion-input-password-toggle slot=\"end\"></ion-input-password-toggle>\r\n </ion-input>\r\n </ion-item>\r\n </ion-card-content>\r\n </ion-card>\r\n\r\n <div class=\"flex my-3 w-full\">\r\n <ion-button class=\"rounded-2xl shadow-xl default-transition w-full\" expand=\"block\" (click)=\"Login()\" [disabled]=\"loading\">\r\n <ion-spinner class=\"default-transition\" [ngClass]=\"{'-translate-x-12 opacity-0 size-0': !loading, 'mr-2' : loading}\" slot=\"start\"></ion-spinner>\r\n <ion-icon class=\"default-transition\" [ngClass]=\"{'-translate-x-12 opacity-0 size-0': loading}\" name=\"enter-outline\" slot=\"start\" ></ion-icon>\r\n <span class=\"default-transition\" > Login </span>\r\n </ion-button>\r\n\r\n <ion-button class=\"shrink-0 aspect-square ml-3\" color=\"dark\" hidden>\r\n <svg class=\"size-8\" slot=\"icon-only\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 32 32\" width=\"64\" height=\"64\"><defs><path id=\"A\" d=\"M44.5 20H24v8.5h11.8C34.7 33.9 30.1 37 24 37c-7.2 0-13-5.8-13-13s5.8-13 13-13c3.1 0 5.9 1.1 8.1 2.9l6.4-6.4C34.6 4.1 29.6 2 24 2 11.8 2 2 11.8 2 24s9.8 22 22 22c11 0 21-8 21-22 0-1.3-.2-2.7-.5-4z\"/></defs><clipPath id=\"B\"><use xlink:href=\"#A\"/></clipPath><g transform=\"matrix(.727273 0 0 .727273 -.954545 -1.45455)\"><path d=\"M0 37V11l17 13z\" clip-path=\"url(#B)\" fill=\"#fbbc05\"/><path d=\"M0 11l17 13 7-6.1L48 14V0H0z\" clip-path=\"url(#B)\" fill=\"#ea4335\"/><path d=\"M0 37l30-23 7.9 1L48 0v48H0z\" clip-path=\"url(#B)\" fill=\"#34a853\"/><path d=\"M48 48L17 24l-4-3 35-10z\" clip-path=\"url(#B)\" fill=\"#4285f4\"/></g></svg>\r\n <!-- <ion-icon name=\"logo-google\" ></ion-icon> -->\r\n </ion-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: ["ion-button{transition:all 1s}ion-item.ion-touched,ion-item.ion-pristine{--border-width: 0;--border-color: var(--ion-color-dark) --background: transparent !important;transition:border-color .5s;border-radius:1rem}ion-card{margin:0;margin-top:.5rem;margin-bottom:.5rem;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:1rem;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-light) 15%,transparent 93%);border-bottom-color:var(--ion-color-medium);border-right-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-top-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-left-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-width:1px 1px 2px 1px}ion-card ion-card-content{padding:0}ion-card:hover{background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.submitted.invalid{border-color:color-mix(in srgb,var(--ion-color-danger) 75%,transparent 25%)!important}ion-card ion-card-content{width:100%;height:100%;background-color:transparent;padding:0}ion-item{--background: transparent;margin:0}\n"] }]
|
|
87
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.GenericService }, { type: i3.NavController }, { type: i4.AuthService }, { type: i5.ApiUrlProviderService }, { type: i6.EnvironmentService }, { type: i7.Router }], propDecorators: { OnLogin: [{
|
|
88
|
+
type: Output
|
|
89
|
+
}], Login: [{
|
|
90
|
+
type: HostListener,
|
|
91
|
+
args: ['window:keydown', ['$event']]
|
|
92
|
+
}] } });
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FwcGhpcmUtaW9uLWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FwcGhpcmUtaW9uLWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBYSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFVLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7OztBQWMxRCxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLFlBQ1UsRUFBZSxFQUNmLGNBQThCLEVBQzlCLGFBQTRCLEVBQzVCLFdBQXdCLEVBQ3pCLHFCQUE0QyxFQUM1QyxXQUErQixFQUM5QixNQUFjO1FBTmQsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN6QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUM5QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBMEJ4QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBRWpCLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQTFCN0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRO1FBQ1osSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRWxCLElBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFDRCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUE7UUFDaEQsSUFBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUdELFVBQVU7UUFDUixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3ZCLE9BQU8sRUFBRyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3JDLEtBQUssRUFBSyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQ3RDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFRRCxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQXNCO1FBQ2hDLElBQUcsTUFBTSxJQUFJLE1BQU0sQ0FBQyxHQUFHLElBQUksT0FBTyxFQUFDLENBQUM7WUFBQyxPQUFPO1FBQUMsQ0FBQztRQUU5QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFLLElBQUksQ0FBQztRQUV0QixJQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUMsQ0FBQztZQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBQUMsT0FBTztRQUM3RSxDQUFDO1FBRUQsSUFBRyxDQUFDO1lBQ0YsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRTNELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLHFCQUFxQixFQUFFLGtCQUFrQixDQUFDLENBQUM7WUFDNUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8sTUFBTSxFQUFDLENBQUM7WUFDYixJQUFHLE1BQU0sSUFBSSxHQUFHLEVBQUMsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsK0JBQStCLENBQUMsQ0FBQztZQUNwRSxDQUFDO2lCQUFJLENBQUM7Z0JBQ0osSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUMzRSxDQUFDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7K0dBbkVVLHFCQUFxQjttR0FBckIscUJBQXFCLDhKQ3ZCbEMsNHJIQWlETSxtNUNEbkNGLFlBQVksZ09BQ1osV0FBVyw2NURBQ1gsV0FBVyxrU0FDWCxtQkFBbUI7OzRGQU1WLHFCQUFxQjtrQkFaakMsU0FBUztpQ0FDSSxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFdBQVc7d0JBQ1gsbUJBQW1CO3FCQUNwQixZQUNTLE9BQU87NlBBeUNQLE9BQU87c0JBQWhCLE1BQU07Z0JBR0QsS0FBSztzQkFEVixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSW9uaWNNb2R1bGUsIE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBpVXJsUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2ViL2FwaS11cmwtcHJvdmlkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZ2VuZXJpY3Muc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSW9uaWNNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgXSxcclxuICBzZWxlY3RvcjogJ2xvZ2luJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbG9naW4uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xvZ2luLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEZWZhdWx0TG9naW5Db21wb25lbnQgIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgZ2VuZXJpY1NlcnZpY2U6IEdlbmVyaWNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBuYXZDb250cm9sbGVyOiBOYXZDb250cm9sbGVyLFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgYXBpVXJsUHJvdmlkZXJTZXJ2aWNlOiBBcGlVcmxQcm92aWRlclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgY29yZVNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcclxuICApIHsgXHJcbiAgICB0aGlzLmdlbmVyaWNTZXJ2aWNlLlNldFRpdGxlKFwiTG9naW5cIik7XHJcbiAgfVxyXG4gIFxyXG4gIGFzeW5jIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5DcmVhdGVGb3JtKCk7XHJcblxyXG4gICAgaWYoIXRoaXMuY29yZVNlcnZpY2UuZW52aXJvbm1lbnQucHJvZHVjdGlvbil7XHJcbiAgICAgIHRoaXMuZnJtLnBhdGNoVmFsdWUodGhpcy5jb3JlU2VydmljZS5lbnZpcm9ubWVudC5kZWZhdWx0Q3JlZGVudGlhbHMpOyBcclxuICAgIH1cclxuICAgIGNvbnN0IFRva2VuID0gYXdhaXQgdGhpcy5hdXRoU2VydmljZS5Mb2FkVG9rZW4oKVxyXG4gICAgaWYodGhpcy5hdXRoU2VydmljZS5pc1Rva2VuVmFsaWQoVG9rZW4pKXtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiL1wiXSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIGZybTogRm9ybUdyb3VwO1xyXG4gIENyZWF0ZUZvcm0oKTogdm9pZHtcclxuICAgIHRoaXMuZnJtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGFwZWxpZG8gOiBbbnVsbCAsVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgIHNlbmhhICAgOiBbbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbG9hZGluZzogYm9vbGVhbjtcclxuICBzdWJtaXR0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpIE9uTG9naW46IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBhc3luYyBMb2dpbigkZXZlbnQ/OiBLZXlib2FyZEV2ZW50KTogUHJvbWlzZTx2b2lkPntcclxuICAgIGlmKCRldmVudCAmJiAkZXZlbnQua2V5ICE9ICdFbnRlcicpeyByZXR1cm47IH1cclxuXHJcbiAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICB0aGlzLmxvYWRpbmcgICA9IHRydWU7XHJcbiAgIFxyXG4gICAgaWYoIXRoaXMuZnJtLnZhbGlkKXtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZ2VuZXJpY1NlcnZpY2UuUHJlc2VudFRvYXN0KFwiVXN1YXJpbyAvIFNlbmhhIG7Do28gaW5mb3JtYWRvIVwiKTsgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRyeXtcclxuICAgICAgY29uc3QgVG9rZW4gPSBhd2FpdCB0aGlzLmF1dGhTZXJ2aWNlLkxvZ2luKHRoaXMuZnJtLnZhbHVlKTtcclxuXHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KFwiL1wiKTtcclxuICAgICAgdGhpcy5nZW5lcmljU2VydmljZS5QcmVzZW50VG9hc3QoXCJMb2dhZG8gY29tIHN1Y2Vzc28hXCIsIFwiY2hlY2ttYXJrLWNpcmNsZVwiKTtcclxuICAgICAgdGhpcy5PbkxvZ2luLmVtaXQoVG9rZW4pO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKHN0YXR1cyl7XHJcbiAgICAgIGlmKHN0YXR1cyA9PSA0MDEpe1xyXG4gICAgICAgIHRoaXMuZ2VuZXJpY1NlcnZpY2UuUHJlc2VudFRvYXN0KFwiVXN1w6FyaW8gLyBTZW5oYSBpbnbDoWxpZG8gKHMpIVwiKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5nZW5lcmljU2VydmljZS5QcmVzZW50VG9hc3QoXCJPY29ycmV1IHVtIGVycm8gYW8gcmVhbGl6YXIgbyBsb2dpbiFcIik7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzaXplLWZ1bGwgZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgcmVsYXRpdmVcIj5cclxuICA8ZGl2IGNsYXNzPVwibGFuZHNjYXBlOnctNC81IHBvcnRyYWl0OnctZnVsbCBsYW5kc2NhcGU6aC0yLzMgcG9ydHJhaXQ6aC1mdWxsIGxhbmRzY2FwZTptYXgtdy1bNjByZW1dIHRyYW5zbHVjaWQtYm9yZGVyIGxhbmRzY2FwZTpyb3VuZGVkLTN4bCBsYW5kc2NhcGU6YmFja2Ryb3AtYmx1ci14bCBvdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzaXplLWZ1bGwgZmxleCBwb3J0cmFpdDpmbGV4LWNvbFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWlvbi1jb2xvci1saWdodCkgMjAlLCB0cmFuc3BhcmVudCA4MCUpO1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2hyaW5rLTAgdy05NiBwb3J0cmFpdDp3LWZ1bGwgcG9ydHJhaXQ6aC0zMiBoLWZ1bGwgcC0zXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdW5kZWQtMnhsIHNpemUtZnVsbCBvdmVyZmxvdy14LWhpZGRlblwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRlbnQgY2xhc3M9XCJzaXplLWZ1bGxcIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JvdyBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBoLWZ1bGwgcHktMyBwci0zIHBvcnRyYWl0OnBsLTNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidy05NiBoLWZ1bGwgZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIiAqbmdJZj1cImZybVwiIFtmb3JtR3JvdXBdPVwiZnJtXCI+XHJcblxyXG4gICAgICAgICAgPGlvbi10ZXh0IGNsYXNzPVwidGV4dC01eGwgbXktMTAgcG9ydHJhaXQ6bXQtWy01cmVtXVwiPiBMb2dpbiA8L2lvbi10ZXh0PlxyXG5cclxuICAgICAgICAgIDxpb24tY2FyZCBjbGFzcz1cInctZnVsbCBiYWNrZHJvcC1ibHVyLXhsXCI+XHJcbiAgICAgICAgICAgIDxpb24tY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICAgIDxpb24taXRlbSBsaW5lcz1cIm5vbmVcIiBsYWJlbD1cIlNlbmhhXCIgbGFiZWxQbGFjZW1lbnQ9XCJzdGFja2VkXCIgY2xhc3M9XCJyb3VuZGVkLTJ4bCBteS0zIHctZnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJwZXJzb25cIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1pbnB1dCBwbGFjZWhvbGRlcj1cIlVzdcOhcmlvIC8gVXNlclwiIGZvcm1Db250cm9sTmFtZT1cImFwZWxpZG9cIj48L2lvbi1pbnB1dD5cclxuICAgICAgICAgICAgICA8L2lvbi1pdGVtPlxyXG4gICAgICAgICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICA8L2lvbi1jYXJkPlxyXG5cclxuICAgICAgICAgIDxpb24tY2FyZCBjbGFzcz1cInctZnVsbCBiYWNrZHJvcC1ibHVyLXhsXCI+IFxyXG4gICAgICAgICAgICA8aW9uLWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgICA8aW9uLWl0ZW0gbGluZXM9XCJub25lXCIgY2xhc3M9XCJyb3VuZGVkLTJ4bCBteS0zIHctZnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJsb2NrLWNsb3NlZFwiIHNsb3Q9XCJzdGFydFwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWlucHV0IHR5cGU9XCJwYXNzd29yZFwiIGZvcm1Db250cm9sTmFtZT1cInNlbmhhXCIgcGxhY2Vob2xkZXI9XCJTZW5oYSAvIFBhc3N3b3JkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpb24taW5wdXQtcGFzc3dvcmQtdG9nZ2xlIHNsb3Q9XCJlbmRcIj48L2lvbi1pbnB1dC1wYXNzd29yZC10b2dnbGU+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1pbnB1dD5cclxuICAgICAgICAgICAgICA8L2lvbi1pdGVtPlxyXG4gICAgICAgICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICA8L2lvbi1jYXJkPlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IG15LTMgdy1mdWxsXCI+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIGNsYXNzPVwicm91bmRlZC0yeGwgc2hhZG93LXhsIGRlZmF1bHQtdHJhbnNpdGlvbiB3LWZ1bGxcIiBleHBhbmQ9XCJibG9ja1wiIChjbGljayk9XCJMb2dpbigpXCIgW2Rpc2FibGVkXT1cImxvYWRpbmdcIj5cclxuICAgICAgICAgICAgICA8aW9uLXNwaW5uZXIgY2xhc3M9XCJkZWZhdWx0LXRyYW5zaXRpb25cIiBbbmdDbGFzc109XCJ7Jy10cmFuc2xhdGUteC0xMiBvcGFjaXR5LTAgc2l6ZS0wJzogIWxvYWRpbmcsICdtci0yJyA6IGxvYWRpbmd9XCIgc2xvdD1cInN0YXJ0XCI+PC9pb24tc3Bpbm5lcj5cclxuICAgICAgICAgICAgICA8aW9uLWljb24gICAgY2xhc3M9XCJkZWZhdWx0LXRyYW5zaXRpb25cIiBbbmdDbGFzc109XCJ7Jy10cmFuc2xhdGUteC0xMiBvcGFjaXR5LTAgc2l6ZS0wJzogIGxvYWRpbmd9XCIgbmFtZT1cImVudGVyLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIiA+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRlZmF1bHQtdHJhbnNpdGlvblwiID4gTG9naW4gPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBjbGFzcz1cInNocmluay0wIGFzcGVjdC1zcXVhcmUgbWwtM1wiIGNvbG9yPVwiZGFya1wiIGhpZGRlbj5cclxuICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwic2l6ZS04XCIgc2xvdD1cImljb24tb25seVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCIgd2lkdGg9XCI2NFwiIGhlaWdodD1cIjY0XCI+PGRlZnM+PHBhdGggaWQ9XCJBXCIgZD1cIk00NC41IDIwSDI0djguNWgxMS44QzM0LjcgMzMuOSAzMC4xIDM3IDI0IDM3Yy03LjIgMC0xMy01LjgtMTMtMTNzNS44LTEzIDEzLTEzYzMuMSAwIDUuOSAxLjEgOC4xIDIuOWw2LjQtNi40QzM0LjYgNC4xIDI5LjYgMiAyNCAyIDExLjggMiAyIDExLjggMiAyNHM5LjggMjIgMjIgMjJjMTEgMCAyMS04IDIxLTIyIDAtMS4zLS4yLTIuNy0uNS00elwiLz48L2RlZnM+PGNsaXBQYXRoIGlkPVwiQlwiPjx1c2UgeGxpbms6aHJlZj1cIiNBXCIvPjwvY2xpcFBhdGg+PGcgdHJhbnNmb3JtPVwibWF0cml4KC43MjcyNzMgMCAwIC43MjcyNzMgLS45NTQ1NDUgLTEuNDU0NTUpXCI+PHBhdGggZD1cIk0wIDM3VjExbDE3IDEzelwiIGNsaXAtcGF0aD1cInVybCgjQilcIiBmaWxsPVwiI2ZiYmMwNVwiLz48cGF0aCBkPVwiTTAgMTFsMTcgMTMgNy02LjFMNDggMTRWMEgwelwiIGNsaXAtcGF0aD1cInVybCgjQilcIiBmaWxsPVwiI2VhNDMzNVwiLz48cGF0aCBkPVwiTTAgMzdsMzAtMjMgNy45IDFMNDggMHY0OEgwelwiIGNsaXAtcGF0aD1cInVybCgjQilcIiBmaWxsPVwiIzM0YTg1M1wiLz48cGF0aCBkPVwiTTQ4IDQ4TDE3IDI0bC00LTMgMzUtMTB6XCIgY2xpcC1wYXRoPVwidXJsKCNCKVwiIGZpbGw9XCIjNDI4NWY0XCIvPjwvZz48L3N2Zz5cclxuICAgICAgICAgICAgICA8IS0tIDxpb24taWNvbiBuYW1lPVwibG9nby1nb29nbGVcIiA+PC9pb24taWNvbj4gLS0+XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, Input, ViewChild } from '@angular/core';
|
|
3
|
+
import { IonicModule } from '@ionic/angular';
|
|
4
|
+
import { RouterLinkWithHref } from '@angular/router';
|
|
5
|
+
import { DrawerComponent } from '../drawer/drawer.component';
|
|
6
|
+
import { AuthService } from '../../services/auth.service';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "../../services/auth.service";
|
|
9
|
+
import * as i2 from "@angular/common";
|
|
10
|
+
import * as i3 from "@ionic/angular";
|
|
11
|
+
export class MainContentComponent {
|
|
12
|
+
constructor(authService) {
|
|
13
|
+
this.authService = authService;
|
|
14
|
+
this.colapsed = false;
|
|
15
|
+
}
|
|
16
|
+
ngOnInit() {
|
|
17
|
+
this.authService.LoadToken().then((res) => {
|
|
18
|
+
this.Token = res;
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
get fullScreen() {
|
|
22
|
+
if (document.fullscreenElement != null) {
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
;
|
|
28
|
+
FullScreen() {
|
|
29
|
+
if (!this.fullScreen) {
|
|
30
|
+
const elem = this.FullScreenConteiner.nativeElement;
|
|
31
|
+
if (elem.requestFullscreen) {
|
|
32
|
+
elem.requestFullscreen();
|
|
33
|
+
}
|
|
34
|
+
else if (elem.msRequestFullscreen) {
|
|
35
|
+
elem.msRequestFullscreen();
|
|
36
|
+
}
|
|
37
|
+
else if (elem.mozRequestFullScreen) {
|
|
38
|
+
elem.mozRequestFullScreen();
|
|
39
|
+
}
|
|
40
|
+
else if (elem.webkitRequestFullscreen) {
|
|
41
|
+
elem.webkitRequestFullscreen();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
document.exitFullscreen();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MainContentComponent, deps: [{ token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
49
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MainContentComponent, isStandalone: true, selector: "main-content", inputs: { colapsed: "colapsed", drawerComponent: "drawerComponent" }, viewQueries: [{ propertyName: "FullScreenConteiner", first: true, predicate: ["target"], descendants: true }], ngImport: i0, template: "<div class=\"size-full flex flex-col\" [ngClass]=\"{'bg-light/50': fullScreen}\" #target>\r\n <div class=\"w-full h-14 relative shrink-0\">\r\n <ion-card class=\"m-0 rounded-none size-full border-none\">\r\n <ion-card-content class=\"p-0 px-2 size-full flex\">\r\n <div class=\"w-1/2 h-full flex items-center justify-start\">\r\n @if (!fullScreen) {\r\n <ion-menu-button [routerLink]=\"['/']\" [autoHide]=\"true\"></ion-menu-button>\r\n }\r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"w-1/2 h-full flex flex-row-reverse items-center justify-start gap-2\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n \r\n @if (!fullScreen) {\r\n <ion-button (click)=\"userPopover.present($event)\" size=\"small\" class=\"size-10 aspect-square\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </ion-button>\r\n <ion-popover #userPopover [dismissOnSelect]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content>\r\n <div class=\"size-full\">\r\n <div class=\"w-full px-3 flex items-center\">\r\n <div class=\"size-10 shrink-0 aspect-square rounded-2xl text-sm 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> <br>\r\n <ion-text color=\"secondary\" class=\"text-sm\">\r\n @{{Token ? Token.Apelido : ''}}\r\n </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"w-full\">\r\n <ng-content class=\"size-full\" select=\"[slot=user-popover]\"></ng-content>\r\n </div>\r\n <div class=\"w-full px-3 py-2 translucid-border !border-x-0 !border-b-0 flex items-center justify-between\">\r\n <ion-text> Log Out </ion-text>\r\n <ion-button (click)=\"authService.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>\r\n </div>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n }\r\n\r\n <ion-button (click)=\"FullScreen()\" fill=\"outline\" color=\"dark\" size=\"small\" class=\"size-10 aspect-square\">\r\n <ion-icon slot=\"icon-only\" name=\"expand\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n <div class=\"size-full relative p-2 bg-light\">\r\n <div class=\"size-full relative rounded-2xl bg-primary/30 content-shadow overflow-hidden\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>", styles: ["#popover-user{--width: 17rem}.content-shadow{--color: color-mix(in srgb, var(--ion-color-primary) 15%, transparent);box-shadow:0 0 0 1px var(--color),0 6px 10px -4px var(--color)}\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.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonMenuButton, selector: "ion-menu-button", inputs: ["autoHide", "color", "disabled", "menu", "mode", "type"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonPopover, selector: "ion-popover" }, { kind: "directive", type: i3.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: RouterLinkWithHref, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
|
|
50
|
+
}
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MainContentComponent, decorators: [{
|
|
52
|
+
type: Component,
|
|
53
|
+
args: [{ standalone: true, imports: [CommonModule, IonicModule, RouterLinkWithHref], selector: 'main-content', template: "<div class=\"size-full flex flex-col\" [ngClass]=\"{'bg-light/50': fullScreen}\" #target>\r\n <div class=\"w-full h-14 relative shrink-0\">\r\n <ion-card class=\"m-0 rounded-none size-full border-none\">\r\n <ion-card-content class=\"p-0 px-2 size-full flex\">\r\n <div class=\"w-1/2 h-full flex items-center justify-start\">\r\n @if (!fullScreen) {\r\n <ion-menu-button [routerLink]=\"['/']\" [autoHide]=\"true\"></ion-menu-button>\r\n }\r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"w-1/2 h-full flex flex-row-reverse items-center justify-start gap-2\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n \r\n @if (!fullScreen) {\r\n <ion-button (click)=\"userPopover.present($event)\" size=\"small\" class=\"size-10 aspect-square\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </ion-button>\r\n <ion-popover #userPopover [dismissOnSelect]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content>\r\n <div class=\"size-full\">\r\n <div class=\"w-full px-3 flex items-center\">\r\n <div class=\"size-10 shrink-0 aspect-square rounded-2xl text-sm 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> <br>\r\n <ion-text color=\"secondary\" class=\"text-sm\">\r\n @{{Token ? Token.Apelido : ''}}\r\n </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"w-full\">\r\n <ng-content class=\"size-full\" select=\"[slot=user-popover]\"></ng-content>\r\n </div>\r\n <div class=\"w-full px-3 py-2 translucid-border !border-x-0 !border-b-0 flex items-center justify-between\">\r\n <ion-text> Log Out </ion-text>\r\n <ion-button (click)=\"authService.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>\r\n </div>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n }\r\n\r\n <ion-button (click)=\"FullScreen()\" fill=\"outline\" color=\"dark\" size=\"small\" class=\"size-10 aspect-square\">\r\n <ion-icon slot=\"icon-only\" name=\"expand\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n <div class=\"size-full relative p-2 bg-light\">\r\n <div class=\"size-full relative rounded-2xl bg-primary/30 content-shadow overflow-hidden\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>", styles: ["#popover-user{--width: 17rem}.content-shadow{--color: color-mix(in srgb, var(--ion-color-primary) 15%, transparent);box-shadow:0 0 0 1px var(--color),0 6px 10px -4px var(--color)}\n"] }]
|
|
54
|
+
}], ctorParameters: () => [{ type: i1.AuthService }], propDecorators: { colapsed: [{
|
|
55
|
+
type: Input
|
|
56
|
+
}], drawerComponent: [{
|
|
57
|
+
type: Input
|
|
58
|
+
}], FullScreenConteiner: [{
|
|
59
|
+
type: ViewChild,
|
|
60
|
+
args: ['target']
|
|
61
|
+
}] } });
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL21haW4tY29udGVudC9tYWluLWNvbnRlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FwcGhpcmUtaW9uLWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvbWFpbi1jb250ZW50L21haW4tY29udGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7OztBQVMxRCxNQUFNLE9BQU8sb0JBQW9CO0lBSy9CLFlBQ1MsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFKeEIsYUFBUSxHQUFZLEtBQUssQ0FBQztJQUsvQixDQUFDO0lBR0wsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osSUFBRyxRQUFRLENBQUMsaUJBQWlCLElBQUksSUFBSSxFQUFDLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQUEsQ0FBQztJQUVGLFVBQVU7UUFDUixJQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxDQUFDO1lBQ25CLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUM7WUFFcEQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUNwQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM3QixDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzlCLENBQUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDakMsQ0FBQztRQUNILENBQUM7YUFBSSxDQUFDO1lBQ0osUUFBUSxDQUFDLGNBQWMsRUFBRSxDQUFBO1FBQzNCLENBQUM7SUFDSCxDQUFDOytHQXZDVSxvQkFBb0I7bUdBQXBCLG9CQUFvQiw2UENkakMscTRHQTRETSw4T0RuRE8sWUFBWSw0SEFBRSxXQUFXLHl5Q0FBRSxrQkFBa0I7OzRGQUs3QyxvQkFBb0I7a0JBUGhDLFNBQVM7aUNBQ0ksSUFBSSxXQUNQLENBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsQ0FBRSxZQUNoRCxjQUFjO2dGQU1mLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFtQmUsbUJBQW1CO3NCQUF2QyxTQUFTO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgUm91dGVyTGlua1dpdGhIcmVmIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRHJhd2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vZHJhd2VyL2RyYXdlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFsgQ29tbW9uTW9kdWxlLCBJb25pY01vZHVsZSwgUm91dGVyTGlua1dpdGhIcmVmIF0sXHJcbiAgc2VsZWN0b3I6ICdtYWluLWNvbnRlbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tYWluLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL21haW4tY29udGVudC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFpbkNvbnRlbnRDb21wb25lbnQgIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KCkgY29sYXBzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBkcmF3ZXJDb21wb25lbnQ6IERyYXdlckNvbXBvbmVudDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgVG9rZW46IGFueTtcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UuTG9hZFRva2VuKCkudGhlbigocmVzKSA9PiB7XHJcbiAgICAgIHRoaXMuVG9rZW4gPSByZXM7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldCBmdWxsU2NyZWVuKCk6IGJvb2xlYW4geyBcclxuICAgIGlmKGRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50ICE9IG51bGwpe1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTsgXHJcbiAgfTtcclxuICBAVmlld0NoaWxkKCd0YXJnZXQnKSBGdWxsU2NyZWVuQ29udGVpbmVyO1xyXG4gIEZ1bGxTY3JlZW4oKTogdm9pZHtcclxuICAgIGlmKCF0aGlzLmZ1bGxTY3JlZW4pe1xyXG4gICAgICBjb25zdCBlbGVtID0gdGhpcy5GdWxsU2NyZWVuQ29udGVpbmVyLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgXHJcbiAgICAgIGlmIChlbGVtLnJlcXVlc3RGdWxsc2NyZWVuKSB7XHJcbiAgICAgICAgZWxlbS5yZXF1ZXN0RnVsbHNjcmVlbigpO1xyXG4gICAgICB9IGVsc2UgaWYgKGVsZW0ubXNSZXF1ZXN0RnVsbHNjcmVlbikge1xyXG4gICAgICAgIGVsZW0ubXNSZXF1ZXN0RnVsbHNjcmVlbigpO1xyXG4gICAgICB9IGVsc2UgaWYgKGVsZW0ubW96UmVxdWVzdEZ1bGxTY3JlZW4pIHtcclxuICAgICAgICBlbGVtLm1velJlcXVlc3RGdWxsU2NyZWVuKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZWxlbS53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbikge1xyXG4gICAgICAgIGVsZW0ud2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4oKTtcclxuICAgICAgfVxyXG4gICAgfWVsc2V7XHJcbiAgICAgIGRvY3VtZW50LmV4aXRGdWxsc2NyZWVuKClcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInNpemUtZnVsbCBmbGV4IGZsZXgtY29sXCIgW25nQ2xhc3NdPVwieydiZy1saWdodC81MCc6IGZ1bGxTY3JlZW59XCIgI3RhcmdldD5cclxuICA8ZGl2IGNsYXNzPVwidy1mdWxsIGgtMTQgcmVsYXRpdmUgc2hyaW5rLTBcIj5cclxuICAgIDxpb24tY2FyZCBjbGFzcz1cIm0tMCByb3VuZGVkLW5vbmUgc2l6ZS1mdWxsIGJvcmRlci1ub25lXCI+XHJcbiAgICAgIDxpb24tY2FyZC1jb250ZW50IGNsYXNzPVwicC0wIHB4LTIgc2l6ZS1mdWxsIGZsZXhcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidy0xLzIgaC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnRcIj5cclxuICAgICAgICAgIEBpZiAoIWZ1bGxTY3JlZW4pIHtcclxuICAgICAgICAgICAgPGlvbi1tZW51LWJ1dHRvbiAgW3JvdXRlckxpbmtdPVwiWycvJ11cIiBbYXV0b0hpZGVdPVwidHJ1ZVwiPjwvaW9uLW1lbnUtYnV0dG9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Nsb3Q9c3RhcnRdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidy0xLzIgaC1mdWxsIGZsZXggZmxleC1yb3ctcmV2ZXJzZSBpdGVtcy1jZW50ZXIganVzdGlmeS1zdGFydCBnYXAtMlwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Nsb3Q9ZW5kXVwiPjwvbmctY29udGVudD5cclxuICAgICAgICAgXHJcbiAgICAgICAgICBAaWYgKCFmdWxsU2NyZWVuKSB7XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJ1c2VyUG9wb3Zlci5wcmVzZW50KCRldmVudClcIiBzaXplPVwic21hbGxcIiBjbGFzcz1cInNpemUtMTAgYXNwZWN0LXNxdWFyZVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXBwZXJjYXNlIHRleHQtd2hpdGVcIj57e1Rva2VuID8gVG9rZW4uTm9tZVswXSA6ICcnfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgPGlvbi1wb3BvdmVyICN1c2VyUG9wb3ZlciBbZGlzbWlzc09uU2VsZWN0XT1cInRydWVcIiB0cmlnZ2VyQWN0aW9uPVwiY2xpY2tcIj5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaXplLWZ1bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIHB4LTMgZmxleCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaXplLTEwIHNocmluay0wIGFzcGVjdC1zcXVhcmUgcm91bmRlZC0yeGwgdGV4dC1zbSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBkZWZhdWx0LXRyYW5zaXRpb25cIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1cHBlcmNhc2UgdGV4dC13aGl0ZVwiPnt7VG9rZW4gPyBUb2tlbi5Ob21lWzBdIDogJyd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3cgbWluLXctMTAgcC0yIGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlciB3aGl0ZXNwYWNlLW5vd3JhcCB0ZXh0LWVsbGlwc2lzIG92ZXJmbG93LWhpZGRlbiBibG9jayBkZWZhdWx0LXRyYW5zaXRpb25cIiBbbmdDbGFzc109XCJ7J29wYWNpdHktMCB3LTAnOiBjb2xhcHNlZH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3tUb2tlbiA/IFRva2VuLk5vbWUgOiAnJ319PC9zcGFuPiA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tdGV4dCBjb2xvcj1cInNlY29uZGFyeVwiIGNsYXNzPVwidGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICYjNjQ7e3tUb2tlbiA/IFRva2VuLkFwZWxpZG8gOiAnJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBjbGFzcz1cInNpemUtZnVsbFwiIHNlbGVjdD1cIltzbG90PXVzZXItcG9wb3Zlcl1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBweC0zIHB5LTIgdHJhbnNsdWNpZC1ib3JkZXIgIWJvcmRlci14LTAgIWJvcmRlci1iLTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW9uLXRleHQ+IExvZyBPdXQgPC9pb24tdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJhdXRoU2VydmljZS5Mb2dnb3V0KClcIiBjbGFzcz1cInNpemUtMTAgc2hyaW5rLTBcIiBzaXplPVwic21hbGxcIiBjb2xvcj1cImRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJleGl0LW91dGxpbmVcIj48L2lvbi1pY29uPiBcclxuICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1jb250ZW50PlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvaW9uLXBvcG92ZXI+XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cIkZ1bGxTY3JlZW4oKVwiIGZpbGw9XCJvdXRsaW5lXCIgY29sb3I9XCJkYXJrXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3M9XCJzaXplLTEwIGFzcGVjdC1zcXVhcmVcIj5cclxuICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiZXhwYW5kXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9pb24tY2FyZC1jb250ZW50PlxyXG4gICAgPC9pb24tY2FyZD5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwic2l6ZS1mdWxsIHJlbGF0aXZlIHAtMiBiZy1saWdodFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNpemUtZnVsbCByZWxhdGl2ZSByb3VuZGVkLTJ4bCBiZy1wcmltYXJ5LzMwIGNvbnRlbnQtc2hhZG93IG92ZXJmbG93LWhpZGRlblwiPlxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Component, Input } 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 StepComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.label = "Label";
|
|
8
|
+
}
|
|
9
|
+
ngOnInit() {
|
|
10
|
+
}
|
|
11
|
+
get index() {
|
|
12
|
+
if (this.parent && this.parent.lstSteps) {
|
|
13
|
+
return this.parent.lstSteps.toArray().indexOf(this);
|
|
14
|
+
}
|
|
15
|
+
return 0;
|
|
16
|
+
}
|
|
17
|
+
get fill() {
|
|
18
|
+
if (this.parent) {
|
|
19
|
+
return this.parent.lstSteps.toArray().indexOf(this) == this.parent._model;
|
|
20
|
+
}
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
;
|
|
24
|
+
get selected() {
|
|
25
|
+
if (this.parent) {
|
|
26
|
+
return this.parent.lstSteps.toArray().indexOf(this) <= this.parent._model;
|
|
27
|
+
}
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
;
|
|
31
|
+
get _fill() {
|
|
32
|
+
return this.fill ? 1 : 0;
|
|
33
|
+
}
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StepComponent, selector: "step", inputs: { label: "label" }, ngImport: i0, template: "<div class=\"px-1 flex flex-col items-center justify-center text-center animated\">\r\n <div [ngClass]=\"{'selected': selected}\" class=\"default-transition min-h-8 min-w-8 bg-red-400 flex items-center justify-center rounded-2xl step\">\r\n <div class=\"wrapper\"><ng-content select=\"ion-icon, ion-text\"></ng-content></div>\r\n <div class=\"default\">\r\n {{index + 1}}\r\n </div>\r\n </div>\r\n \r\n <ion-text> {{label}} </ion-text>\r\n <ion-progress-bar [color]=\"selected ? 'secondary' : 'primary'\" class=\"h-2 ease-in-out\" [value]=\"_fill\"></ion-progress-bar>\r\n</div>", styles: [":host{--stepper-selected-color: var(--ion-color-primary);--stepper-color: var(--ion-color-light-shade)}.step{background-color:var(--stepper-color);color:var(--ion-color-dark)}.selected{background-color:var(--stepper-selected-color);color:var(--ion-color-light)}ion-progress-bar::part(progress){transition:all ease-in-out .3s!important}.wrapper:not(:empty)+.default{display:none}.wrapper:empty{display:none}.animated{animation-name:slidein;animation-duration:.3s;animation-iteration-count:1;animation-timing-function:ease-in-out}@keyframes slidein{0%{opacity:0;transform:translate(3rem)}to{opacity:1;transform:translateX()}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }] }); }
|
|
36
|
+
}
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepComponent, decorators: [{
|
|
38
|
+
type: Component,
|
|
39
|
+
args: [{ selector: 'step', template: "<div class=\"px-1 flex flex-col items-center justify-center text-center animated\">\r\n <div [ngClass]=\"{'selected': selected}\" class=\"default-transition min-h-8 min-w-8 bg-red-400 flex items-center justify-center rounded-2xl step\">\r\n <div class=\"wrapper\"><ng-content select=\"ion-icon, ion-text\"></ng-content></div>\r\n <div class=\"default\">\r\n {{index + 1}}\r\n </div>\r\n </div>\r\n \r\n <ion-text> {{label}} </ion-text>\r\n <ion-progress-bar [color]=\"selected ? 'secondary' : 'primary'\" class=\"h-2 ease-in-out\" [value]=\"_fill\"></ion-progress-bar>\r\n</div>", styles: [":host{--stepper-selected-color: var(--ion-color-primary);--stepper-color: var(--ion-color-light-shade)}.step{background-color:var(--stepper-color);color:var(--ion-color-dark)}.selected{background-color:var(--stepper-selected-color);color:var(--ion-color-light)}ion-progress-bar::part(progress){transition:all ease-in-out .3s!important}.wrapper:not(:empty)+.default{display:none}.wrapper:empty{display:none}.animated{animation-name:slidein;animation-duration:.3s;animation-iteration-count:1;animation-timing-function:ease-in-out}@keyframes slidein{0%{opacity:0;transform:translate(3rem)}to{opacity:1;transform:translateX()}}\n"] }]
|
|
40
|
+
}], ctorParameters: () => [], propDecorators: { label: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}] } });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYXBwaGlyZS1pb24tZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9zdGVwcGVyL3N0ZXAvc3RlcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYXBwaGlyZS1pb24tZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9zdGVwcGVyL3N0ZXAvc3RlcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7OztBQVF6RCxNQUFNLE9BQU8sYUFBYTtJQUl4QjtRQUZnQixVQUFLLEdBQWMsT0FBTyxDQUFDO0lBRTNCLENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7SUFJRCxJQUFJLEtBQUs7UUFDUCxJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUMsQ0FBQztZQUN0QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sSUFBRyxJQUFJLENBQUMsTUFBTSxFQUFDLENBQUM7WUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM1RSxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQUEsQ0FBQztJQUVGLElBQUksUUFBUTtRQUNWLElBQUcsSUFBSSxDQUFDLE1BQU0sRUFBQyxDQUFDO1lBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDNUUsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUFBLENBQUM7SUFFRixJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7K0dBbENVLGFBQWE7bUdBQWIsYUFBYSx3RUNSMUIsdWxCQVVNOzs0RkRGTyxhQUFhO2tCQUx6QixTQUFTOytCQUNFLE1BQU07d0RBTUEsS0FBSztzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdGVwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vc3RlcHBlci5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzdGVwJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3RlcC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc3RlcC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RlcENvbXBvbmVudCAgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIFxyXG4gIEBJbnB1dCgpICAgICAgICBsYWJlbCAgIDogc3RyaW5nID0gXCJMYWJlbFwiO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG4gIHBhcmVudDogU3RlcHBlckNvbXBvbmVudDtcclxuXHJcbiAgZ2V0IGluZGV4KCk6IG51bWJlcnsgXHJcbiAgICBpZih0aGlzLnBhcmVudCAmJiB0aGlzLnBhcmVudC5sc3RTdGVwcyl7XHJcbiAgICAgIHJldHVybiB0aGlzLnBhcmVudC5sc3RTdGVwcy50b0FycmF5KCkuaW5kZXhPZih0aGlzKTtcclxuICAgIH1cclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuICBcclxuICBnZXQgZmlsbCgpOiBib29sZWFue1xyXG4gICAgaWYodGhpcy5wYXJlbnQpe1xyXG4gICAgICByZXR1cm4gdGhpcy5wYXJlbnQubHN0U3RlcHMudG9BcnJheSgpLmluZGV4T2YodGhpcykgPT0gdGhpcy5wYXJlbnQuX21vZGVsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH07XHJcbiAgXHJcbiAgZ2V0IHNlbGVjdGVkKCk6IGJvb2xlYW57XHJcbiAgICBpZih0aGlzLnBhcmVudCl7XHJcbiAgICAgIHJldHVybiB0aGlzLnBhcmVudC5sc3RTdGVwcy50b0FycmF5KCkuaW5kZXhPZih0aGlzKSA8PSB0aGlzLnBhcmVudC5fbW9kZWw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfTtcclxuXHJcbiAgZ2V0IF9maWxsKCl7XHJcbiAgICByZXR1cm4gdGhpcy5maWxsID8gMSA6IDA7IFxyXG4gIH1cclxufSIsIjxkaXYgY2xhc3M9XCJweC0xIGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRleHQtY2VudGVyIGFuaW1hdGVkXCI+XHJcbiAgPGRpdiBbbmdDbGFzc109XCJ7J3NlbGVjdGVkJzogc2VsZWN0ZWR9XCIgY2xhc3M9XCJkZWZhdWx0LXRyYW5zaXRpb24gbWluLWgtOCBtaW4tdy04IGJnLXJlZC00MDAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC0yeGwgc3RlcFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj48bmctY29udGVudCBzZWxlY3Q9XCJpb24taWNvbiwgaW9uLXRleHRcIj48L25nLWNvbnRlbnQ+PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdFwiPlxyXG4gICAgICB7e2luZGV4ICsgMX19XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICBcclxuICA8aW9uLXRleHQ+IHt7bGFiZWx9fSA8L2lvbi10ZXh0PlxyXG4gIDxpb24tcHJvZ3Jlc3MtYmFyIFtjb2xvcl09XCJzZWxlY3RlZCA/ICdzZWNvbmRhcnknIDogJ3ByaW1hcnknXCIgY2xhc3M9XCJoLTIgZWFzZS1pbi1vdXRcIiBbdmFsdWVdPVwiX2ZpbGxcIj48L2lvbi1wcm9ncmVzcy1iYXI+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Component, ContentChildren, QueryList } from '@angular/core';
|
|
2
|
+
import { StepComponent } from './step/step.component';
|
|
3
|
+
import { CustomInput } from '../inputs/custom-input';
|
|
4
|
+
import { InputProviderFactory } from '../inputs/input-provider-factory';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class StepperComponent extends CustomInput {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
this._model = 0;
|
|
10
|
+
}
|
|
11
|
+
ngAfterContentInit() {
|
|
12
|
+
if (this.lstSteps) {
|
|
13
|
+
this.lstSteps.filter(p => !p.parent).forEach(comp => { comp.parent = this; });
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
async ngOnInit() {
|
|
17
|
+
super.ngOnInit();
|
|
18
|
+
}
|
|
19
|
+
writeValue(value) { this.setModel(value); }
|
|
20
|
+
get model() { return this._model; }
|
|
21
|
+
set model(value) { this.setModel(value); this.propagateChange(this._model); }
|
|
22
|
+
setModel(value) {
|
|
23
|
+
this._model = value;
|
|
24
|
+
this.ngAfterContentInit();
|
|
25
|
+
}
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StepperComponent, selector: "stepper", providers: InputProviderFactory.GetProvider(StepperComponent), queries: [{ propertyName: "lstSteps", predicate: StepComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex w-full justify-evenly\">\r\n <ng-content selector=\"step\" class=\"grow\"></ng-content>\r\n</div>", styles: [""] }); }
|
|
28
|
+
}
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepperComponent, decorators: [{
|
|
30
|
+
type: Component,
|
|
31
|
+
args: [{ selector: 'stepper', providers: InputProviderFactory.GetProvider(StepperComponent), template: "<div class=\"flex w-full justify-evenly\">\r\n <ng-content selector=\"step\" class=\"grow\"></ng-content>\r\n</div>" }]
|
|
32
|
+
}], ctorParameters: () => [], propDecorators: { lstSteps: [{
|
|
33
|
+
type: ContentChildren,
|
|
34
|
+
args: [StepComponent]
|
|
35
|
+
}] } });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYXBwaGlyZS1pb24tZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9zdGVwcGVyL3N0ZXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FwcGhpcmUtaW9uLWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFReEUsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFdBQWdCO0lBRXBEO1FBQWdCLEtBQUssRUFBRSxDQUFDO1FBaUJmLFdBQU0sR0FBVyxDQUFDLENBQUM7SUFqQkgsQ0FBQztJQUMxQixrQkFBa0I7UUFDaEIsSUFBRyxJQUFJLENBQUMsUUFBUSxFQUFDLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLENBQUM7SUFDSCxDQUFDO0lBRVEsS0FBSyxDQUFDLFFBQVE7UUFDckIsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFJUSxVQUFVLENBQUMsS0FBVSxJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBQ3ZELElBQWEsS0FBSyxLQUFlLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFFLENBQUM7SUFDdkQsSUFBYSxLQUFLLENBQUMsS0FBVSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFHM0YsUUFBUSxDQUFDLEtBQUs7UUFDWixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDOytHQXZCVSxnQkFBZ0I7bUdBQWhCLGdCQUFnQixrQ0FGaEIsb0JBQW9CLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLG1EQWU1QyxhQUFhLG9EQ3hCaEMsd0hBRU07OzRGRFNPLGdCQUFnQjtrQkFONUIsU0FBUzsrQkFDRSxTQUFTLGFBR1Isb0JBQW9CLENBQUMsV0FBVyxrQkFBa0I7d0RBZTdCLFFBQVE7c0JBQXZDLGVBQWU7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3RlcENvbXBvbmVudCB9IGZyb20gJy4vc3RlcC9zdGVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEN1c3RvbUlucHV0IH0gZnJvbSAnLi4vaW5wdXRzL2N1c3RvbS1pbnB1dCc7XHJcbmltcG9ydCB7IElucHV0UHJvdmlkZXJGYWN0b3J5IH0gZnJvbSAnLi4vaW5wdXRzL2lucHV0LXByb3ZpZGVyLWZhY3RvcnknO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzdGVwcGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3RlcHBlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc3RlcHBlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogSW5wdXRQcm92aWRlckZhY3RvcnkuR2V0UHJvdmlkZXIoU3RlcHBlckNvbXBvbmVudClcclxufSlcclxuZXhwb3J0IGNsYXNzIFN0ZXBwZXJDb21wb25lbnQgZXh0ZW5kcyBDdXN0b21JbnB1dDxhbnk+IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCAge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfVxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmKHRoaXMubHN0U3RlcHMpe1xyXG4gICAgICB0aGlzLmxzdFN0ZXBzLmZpbHRlcihwID0+ICFwLnBhcmVudCkuZm9yRWFjaChjb21wID0+IHsgY29tcC5wYXJlbnQgPSB0aGlzOyB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIGFzeW5jIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICB9XHJcblxyXG4gIEBDb250ZW50Q2hpbGRyZW4oU3RlcENvbXBvbmVudCkgbHN0U3RlcHMgOiBRdWVyeUxpc3Q8U3RlcENvbXBvbmVudD47XHJcblxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSl7IHRoaXMuc2V0TW9kZWwodmFsdWUpIH1cclxuICBvdmVycmlkZSBnZXQgbW9kZWwoKTogYW55ICAgICAgeyByZXR1cm4gdGhpcy5fbW9kZWw7ICB9XHJcbiAgb3ZlcnJpZGUgc2V0IG1vZGVsKHZhbHVlOiBhbnkpIHsgdGhpcy5zZXRNb2RlbCh2YWx1ZSk7IHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuX21vZGVsKTsgfVxyXG5cclxuICBvdmVycmlkZSBfbW9kZWw6IG51bWJlciA9IDA7XHJcbiAgc2V0TW9kZWwodmFsdWUpe1xyXG4gICAgdGhpcy5fbW9kZWwgPSB2YWx1ZTtcclxuICAgIHRoaXMubmdBZnRlckNvbnRlbnRJbml0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbCBqdXN0aWZ5LWV2ZW5seVwiPlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0b3I9XCJzdGVwXCIgY2xhc3M9XCJncm93XCI+PC9uZy1jb250ZW50PlxyXG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { StepComponent } from './step/step.component';
|
|
4
|
+
import { StepperComponent } from './stepper.component';
|
|
5
|
+
import { IonicModule } from '@ionic/angular';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class StepperModule {
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: StepperModule, declarations: [StepComponent, StepperComponent], imports: [CommonModule,
|
|
10
|
+
IonicModule], exports: [StepComponent, StepperComponent] }); }
|
|
11
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepperModule, imports: [CommonModule,
|
|
12
|
+
IonicModule] }); }
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepperModule, decorators: [{
|
|
15
|
+
type: NgModule,
|
|
16
|
+
args: [{
|
|
17
|
+
declarations: [StepComponent, StepperComponent],
|
|
18
|
+
exports: [StepComponent, StepperComponent],
|
|
19
|
+
imports: [
|
|
20
|
+
CommonModule,
|
|
21
|
+
IonicModule
|
|
22
|
+
]
|
|
23
|
+
}]
|
|
24
|
+
}] });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYXBwaGlyZS1pb24tZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9zdGVwcGVyL3N0ZXBwZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBVTdDLE1BQU0sT0FBTyxhQUFhOytHQUFiLGFBQWE7Z0hBQWIsYUFBYSxpQkFQUixhQUFhLEVBQUUsZ0JBQWdCLGFBRzdDLFlBQVk7WUFDWixXQUFXLGFBSEYsYUFBYSxFQUFFLGdCQUFnQjtnSEFNL0IsYUFBYSxZQUp0QixZQUFZO1lBQ1osV0FBVzs7NEZBR0YsYUFBYTtrQkFSekIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBRSxhQUFhLEVBQUUsZ0JBQWdCLENBQUU7b0JBQ2pELE9BQU8sRUFBRSxDQUFFLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBRTtvQkFDNUMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVztxQkFDWjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFN0ZXBDb21wb25lbnQgfSBmcm9tICcuL3N0ZXAvc3RlcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdGVwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zdGVwcGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElvbmljTW9kdWxlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFsgU3RlcENvbXBvbmVudCwgU3RlcHBlckNvbXBvbmVudCBdLFxyXG4gIGV4cG9ydHM6IFsgU3RlcENvbXBvbmVudCwgU3RlcHBlckNvbXBvbmVudCBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIElvbmljTW9kdWxlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RlcHBlck1vZHVsZSB7IH1cclxuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Component, Input, ViewChild, ViewContainerRef } from "@angular/core";
|
|
2
|
+
import { Utils } from "../../../services/utils.service";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "@angular/router";
|
|
6
|
+
export class TabComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.id = null;
|
|
9
|
+
this.label = "Label";
|
|
10
|
+
/** Icone da aba @link https://ionic.io/ionicons */
|
|
11
|
+
this.name = "warning";
|
|
12
|
+
/** Rota aba, quando náo informada irá mostrar o conteudo do componente */
|
|
13
|
+
this.route = null;
|
|
14
|
+
this.active = false;
|
|
15
|
+
this.relative = false;
|
|
16
|
+
this.routerOutlet = null;
|
|
17
|
+
this.guid = Utils.GenerateGUID();
|
|
18
|
+
}
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
20
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TabComponent, selector: "tab", inputs: { id: "id", label: "label", name: "name", route: "route", active: "active", relative: "relative" }, viewQueries: [{ propertyName: "placeToRender", first: true, predicate: ["placeToRender"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<div [ngClass]=\"{'-translate-x-full opacity-0': !active,\r\n '!relative': relative }\" class=\"default-transition overflow-hidden max-h-full size-full absolute top-0 left-0\">\r\n @if(route && active){\r\n <router-outlet class=\"size-full\"></router-outlet>\r\n }@else {\r\n <ng-content></ng-content>\r\n }\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
|
|
21
|
+
}
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TabComponent, decorators: [{
|
|
23
|
+
type: Component,
|
|
24
|
+
args: [{ selector: 'tab', template: "<div [ngClass]=\"{'-translate-x-full opacity-0': !active,\r\n '!relative': relative }\" class=\"default-transition overflow-hidden max-h-full size-full absolute top-0 left-0\">\r\n @if(route && active){\r\n <router-outlet class=\"size-full\"></router-outlet>\r\n }@else {\r\n <ng-content></ng-content>\r\n }\r\n</div>" }]
|
|
25
|
+
}], ctorParameters: () => [], propDecorators: { id: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}], label: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}], name: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], route: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], active: [{
|
|
34
|
+
type: Input
|
|
35
|
+
}], relative: [{
|
|
36
|
+
type: Input
|
|
37
|
+
}], placeToRender: [{
|
|
38
|
+
type: ViewChild,
|
|
39
|
+
args: ['placeToRender', { read: ViewContainerRef }]
|
|
40
|
+
}] } });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3RhYnMvdGFiL3RhYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYXBwaGlyZS1pb24tZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJzL3RhYi90YWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7OztBQU94RCxNQUFNLE9BQU8sWUFBWTtJQVd2QjtRQVZTLE9BQUUsR0FBZSxJQUFJLENBQUM7UUFFdEIsVUFBSyxHQUFZLE9BQU8sQ0FBQztRQUNsQyxtREFBbUQ7UUFDMUMsU0FBSSxHQUFhLFNBQVMsQ0FBQztRQUNwQywwRUFBMEU7UUFDMUQsVUFBSyxHQUFtQixJQUFJLENBQUM7UUFDcEMsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBS25DLGlCQUFZLEdBQXdCLElBQUksQ0FBQztRQUV6QyxTQUFJLEdBQUcsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBTFosQ0FBQzsrR0FYTixZQUFZO21HQUFaLFlBQVksa1BBYVksZ0JBQWdCLDZCQ3RCckQsd1ZBT007OzRGREVPLFlBQVk7a0JBTHhCLFNBQVM7K0JBQ0UsS0FBSzt3REFLTixFQUFFO3NCQUFWLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUlnRCxhQUFhO3NCQUFsRSxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJvdXRlck91dGxldCB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgVXRpbHMgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvdXRpbHMuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0YWInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYi5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFiQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBpZCAgIDogc3RyaW5nICA9IG51bGw7XHJcblxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgID0gXCJMYWJlbFwiO1xyXG4gIC8qKiBJY29uZSBkYSBhYmEgQGxpbmsgaHR0cHM6Ly9pb25pYy5pby9pb25pY29ucyAqL1xyXG4gIEBJbnB1dCgpIG5hbWUgOiBzdHJpbmcgID0gXCJ3YXJuaW5nXCI7XHJcbiAgLyoqIFJvdGEgYWJhLCBxdWFuZG8gbsOhbyBpbmZvcm1hZGEgaXLDoSBtb3N0cmFyIG8gY29udGV1ZG8gZG8gY29tcG9uZW50ZSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByb3V0ZSA6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHJlbGF0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3BsYWNlVG9SZW5kZXInLCB7cmVhZDogVmlld0NvbnRhaW5lclJlZn0pIHBsYWNlVG9SZW5kZXI6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgcm91dGVyT3V0bGV0OiBSb3V0ZXJPdXRsZXQgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgZ3VpZCA9IFV0aWxzLkdlbmVyYXRlR1VJRCgpO1xyXG59XHJcblxyXG4iLCI8ZGl2IFtuZ0NsYXNzXT1cInsnLXRyYW5zbGF0ZS14LWZ1bGwgb3BhY2l0eS0wJzogIWFjdGl2ZSxcclxuICAgICAgICAgICAgICAgICAnIXJlbGF0aXZlJzogcmVsYXRpdmUgfVwiIGNsYXNzPVwiZGVmYXVsdC10cmFuc2l0aW9uIG92ZXJmbG93LWhpZGRlbiBtYXgtaC1mdWxsIHNpemUtZnVsbCBhYnNvbHV0ZSB0b3AtMCBsZWZ0LTBcIj5cclxuICBAaWYocm91dGUgJiYgYWN0aXZlKXtcclxuICAgIDxyb3V0ZXItb3V0bGV0IGNsYXNzPVwic2l6ZS1mdWxsXCI+PC9yb3V0ZXItb3V0bGV0PlxyXG4gIH1AZWxzZSB7XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgfVxyXG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Component, ContentChild, ContentChildren, EventEmitter, Output, QueryList } from '@angular/core';
|
|
2
|
+
import { TabComponent } from '../tab/tab.component';
|
|
3
|
+
import { RouterOutlet } from '@angular/router';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
import * as i2 from "@ionic/angular";
|
|
7
|
+
import * as i3 from "@angular/router";
|
|
8
|
+
export class TabsComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
/** Emitido quando a aba é trocada. Emite o ID do elemento */
|
|
11
|
+
this.changeEmitter = new EventEmitter();
|
|
12
|
+
this.ActiveTab = null;
|
|
13
|
+
this.isComponent = true;
|
|
14
|
+
}
|
|
15
|
+
ngAfterContentInit() {
|
|
16
|
+
let activeTabs = this.lstTabs.filter((tab) => tab.active);
|
|
17
|
+
if (activeTabs.length == 0 && this.lstTabs.length > 0) {
|
|
18
|
+
this.SetActiveTab(this.lstTabs.first);
|
|
19
|
+
}
|
|
20
|
+
let currentLocationTabs = this.lstTabs.filter(tab => tab.route).filter((tab) => window.location.pathname.toLocaleLowerCase().includes((tab.route).toLocaleLowerCase()));
|
|
21
|
+
if (currentLocationTabs.length > 0) {
|
|
22
|
+
this.SetActiveTab(currentLocationTabs[0]);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
SetActiveTab(tab) {
|
|
26
|
+
this.lstTabs.forEach(tab => tab.active = false);
|
|
27
|
+
tab.active = true;
|
|
28
|
+
this.ActiveTab = tab;
|
|
29
|
+
if (tab.route) {
|
|
30
|
+
this.isComponent = false;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
this.isComponent = true;
|
|
34
|
+
}
|
|
35
|
+
this.changeEmitter.emit(this.ActiveTab.id);
|
|
36
|
+
}
|
|
37
|
+
GetElse() {
|
|
38
|
+
return this.lstTabs.some(p => p.route != null) ? './' : undefined;
|
|
39
|
+
}
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
41
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TabsComponent, selector: "tabs", outputs: { changeEmitter: "change" }, queries: [{ propertyName: "router", first: true, predicate: RouterOutlet, descendants: true }, { propertyName: "lstTabs", predicate: TabComponent }], ngImport: i0, template: "<div class=\"flex flex-col size-full\">\r\n <div class=\"h-10 w-full flex px-3 mask-x/3 overflow-x-auto\">\r\n @for (tab of lstTabs; track $index) {\r\n <div [routerLink]=\"tab.route ? '.' + tab.route : GetElse()\" [ngClass]=\"{'selected': tab.active}\" class=\"default-transition !translucid-background translucid-border tab-selector !border-b-0 animated-from-right whitespace-nowrap\" (click)=\"SetActiveTab(tab)\">\r\n <ion-text class=\"mx-auto\" [color]=\"tab.active ? 'dark' : ''\">\r\n <ion-icon [name]=\"tab.name\" class=\"align-sub mr-1\"></ion-icon> {{tab.label}}\r\n </ion-text>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"translucid-border tab-content !overflow-hidden relative\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>", styles: [".tab-selector{display:flex;cursor:pointer;align-items:center;justify-content:center;height:100%;min-width:8rem;overflow:hidden;border-top-left-radius:1rem;border-top-right-radius:1rem;margin-right:-1rem;padding-left:1rem;padding-right:1rem}.tab-selector:hover{margin-right:0;border-color:var(--ion-color-secondary)!important}.tab-selector.selected{margin-right:.5rem;margin-left:1.5rem;border-color:var(--ion-color-primary);background:color-mix(in srgb,var(--ion-color-primary) 30%,transparent 70%)!important}.tab-selector:first-of-type.selected{margin-left:0}.tab-content{width:100%;height:100%;overflow:hidden;border-radius:1rem;border-top-width:.5px;border-top-color:color-mix(in srgb,var(--ion-color-primary) 50%,transparent 50%)!important}\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"] }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i2.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
|
|
42
|
+
}
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TabsComponent, decorators: [{
|
|
44
|
+
type: Component,
|
|
45
|
+
args: [{ selector: 'tabs', template: "<div class=\"flex flex-col size-full\">\r\n <div class=\"h-10 w-full flex px-3 mask-x/3 overflow-x-auto\">\r\n @for (tab of lstTabs; track $index) {\r\n <div [routerLink]=\"tab.route ? '.' + tab.route : GetElse()\" [ngClass]=\"{'selected': tab.active}\" class=\"default-transition !translucid-background translucid-border tab-selector !border-b-0 animated-from-right whitespace-nowrap\" (click)=\"SetActiveTab(tab)\">\r\n <ion-text class=\"mx-auto\" [color]=\"tab.active ? 'dark' : ''\">\r\n <ion-icon [name]=\"tab.name\" class=\"align-sub mr-1\"></ion-icon> {{tab.label}}\r\n </ion-text>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"translucid-border tab-content !overflow-hidden relative\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>", styles: [".tab-selector{display:flex;cursor:pointer;align-items:center;justify-content:center;height:100%;min-width:8rem;overflow:hidden;border-top-left-radius:1rem;border-top-right-radius:1rem;margin-right:-1rem;padding-left:1rem;padding-right:1rem}.tab-selector:hover{margin-right:0;border-color:var(--ion-color-secondary)!important}.tab-selector.selected{margin-right:.5rem;margin-left:1.5rem;border-color:var(--ion-color-primary);background:color-mix(in srgb,var(--ion-color-primary) 30%,transparent 70%)!important}.tab-selector:first-of-type.selected{margin-left:0}.tab-content{width:100%;height:100%;overflow:hidden;border-radius:1rem;border-top-width:.5px;border-top-color:color-mix(in srgb,var(--ion-color-primary) 50%,transparent 50%)!important}\n"] }]
|
|
46
|
+
}], ctorParameters: () => [], propDecorators: { lstTabs: [{
|
|
47
|
+
type: ContentChildren,
|
|
48
|
+
args: [TabComponent]
|
|
49
|
+
}], router: [{
|
|
50
|
+
type: ContentChild,
|
|
51
|
+
args: [RouterOutlet]
|
|
52
|
+
}], changeEmitter: [{
|
|
53
|
+
type: Output,
|
|
54
|
+
args: ['change']
|
|
55
|
+
}] } });
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYXBwaGlyZS1pb24tZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJzL3RhYnMvdGFicy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYXBwaGlyZS1pb24tZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJzL3RhYnMvdGFicy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBTy9DLE1BQU0sT0FBTyxhQUFhO0lBUXhCO1FBSEEsNkRBQTZEO1FBQzNDLGtCQUFhLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFhbkYsY0FBUyxHQUF3QixJQUFJLENBQUM7UUFRdEMsZ0JBQVcsR0FBWSxJQUFJLENBQUM7SUFsQnhCLENBQUM7SUFFTCxrQkFBa0I7UUFDaEIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxRCxJQUFHLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQUMsQ0FBQztRQUVoRyxJQUFJLG1CQUFtQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEssSUFBRyxtQkFBbUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFDLENBQUM7WUFBQyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFBQyxDQUFDO0lBQ2xGLENBQUM7SUFHRCxZQUFZLENBQUMsR0FBaUI7UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQ2hELEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1FBQ3JCLElBQUcsR0FBRyxDQUFDLEtBQUssRUFBQyxDQUFDO1lBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFBQyxDQUFDO2FBQUssQ0FBQztZQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFHRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO0lBQ25FLENBQUM7K0dBL0JVLGFBQWE7bUdBQWIsYUFBYSxzSEFHVixZQUFZLDZEQURULFlBQVksNkJDWC9CLHV4QkFhTTs7NEZESk8sYUFBYTtrQkFMekIsU0FBUzsrQkFDRSxNQUFNO3dEQU1lLE9BQU87c0JBQXJDLGVBQWU7dUJBQUMsWUFBWTtnQkFDQSxNQUFNO3NCQUFsQyxZQUFZO3VCQUFDLFlBQVk7Z0JBR1IsYUFBYTtzQkFBOUIsTUFBTTt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRhYkNvbXBvbmVudCB9IGZyb20gJy4uL3RhYi90YWIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUm91dGVyT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGFicycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYnMuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYnNDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcclxuXHJcbiAgQENvbnRlbnRDaGlsZHJlbihUYWJDb21wb25lbnQpIGxzdFRhYnM6IFF1ZXJ5TGlzdDxUYWJDb21wb25lbnQ+O1xyXG4gIEBDb250ZW50Q2hpbGQoUm91dGVyT3V0bGV0KSAgcm91dGVyOiBSb3V0ZXJPdXRsZXQ7XHJcbiAgXHJcbiAgLyoqIEVtaXRpZG8gcXVhbmRvIGEgYWJhIMOpIHRyb2NhZGEuIEVtaXRlIG8gSUQgZG8gZWxlbWVudG8gKi9cclxuICBAT3V0cHV0KCdjaGFuZ2UnKSBjaGFuZ2VFbWl0dGVyOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICApIHsgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XHJcbiAgICBsZXQgYWN0aXZlVGFicyA9IHRoaXMubHN0VGFicy5maWx0ZXIoKHRhYikgPT4gdGFiLmFjdGl2ZSk7XHJcbiAgICBpZihhY3RpdmVUYWJzLmxlbmd0aCA9PSAwICYmIHRoaXMubHN0VGFicy5sZW5ndGggPiAwKSB7IHRoaXMuU2V0QWN0aXZlVGFiKHRoaXMubHN0VGFicy5maXJzdCk7IH1cclxuICBcclxuICAgIGxldCBjdXJyZW50TG9jYXRpb25UYWJzID0gdGhpcy5sc3RUYWJzLmZpbHRlcih0YWIgPT4gdGFiLnJvdXRlKS5maWx0ZXIoKHRhYikgPT4gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoKHRhYi5yb3V0ZSkudG9Mb2NhbGVMb3dlckNhc2UoKSkpO1xyXG4gICAgaWYoY3VycmVudExvY2F0aW9uVGFicy5sZW5ndGggPiAwKXsgdGhpcy5TZXRBY3RpdmVUYWIoY3VycmVudExvY2F0aW9uVGFic1swXSk7IH1cclxuICB9XHJcblxyXG4gIEFjdGl2ZVRhYjogVGFiQ29tcG9uZW50IHwgbnVsbCA9IG51bGw7XHJcbiAgU2V0QWN0aXZlVGFiKHRhYjogVGFiQ29tcG9uZW50KXtcclxuICAgIHRoaXMubHN0VGFicy5mb3JFYWNoKHRhYiA9PiB0YWIuYWN0aXZlID0gZmFsc2UpO1xyXG4gICAgdGFiLmFjdGl2ZSA9IHRydWU7XHJcbiAgICB0aGlzLkFjdGl2ZVRhYiA9IHRhYjtcclxuICAgIGlmKHRhYi5yb3V0ZSl7IHRoaXMuaXNDb21wb25lbnQgPSBmYWxzZTsgfSBlbHNleyB0aGlzLmlzQ29tcG9uZW50ID0gdHJ1ZTsgfVxyXG4gICAgdGhpcy5jaGFuZ2VFbWl0dGVyLmVtaXQodGhpcy5BY3RpdmVUYWIuaWQpO1xyXG4gIH1cclxuICBpc0NvbXBvbmVudDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEdldEVsc2UoKXtcclxuICAgIHJldHVybiB0aGlzLmxzdFRhYnMuc29tZShwID0+IHAucm91dGUgIT0gbnVsbCkgPyAnLi8nIDogdW5kZWZpbmVkXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHNpemUtZnVsbFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJoLTEwIHctZnVsbCBmbGV4IHB4LTMgbWFzay14LzMgb3ZlcmZsb3cteC1hdXRvXCI+XHJcbiAgICBAZm9yICh0YWIgb2YgbHN0VGFiczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgIDxkaXYgW3JvdXRlckxpbmtdPVwidGFiLnJvdXRlID8gJy4nICsgdGFiLnJvdXRlIDogR2V0RWxzZSgpXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZCc6IHRhYi5hY3RpdmV9XCIgY2xhc3M9XCJkZWZhdWx0LXRyYW5zaXRpb24gIXRyYW5zbHVjaWQtYmFja2dyb3VuZCB0cmFuc2x1Y2lkLWJvcmRlciB0YWItc2VsZWN0b3IgIWJvcmRlci1iLTAgYW5pbWF0ZWQtZnJvbS1yaWdodCB3aGl0ZXNwYWNlLW5vd3JhcFwiIChjbGljayk9XCJTZXRBY3RpdmVUYWIodGFiKVwiPlxyXG4gICAgICAgIDxpb24tdGV4dCBjbGFzcz1cIm14LWF1dG9cIiBbY29sb3JdPVwidGFiLmFjdGl2ZSA/ICdkYXJrJyA6ICcnXCI+XHJcbiAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwidGFiLm5hbWVcIiBjbGFzcz1cImFsaWduLXN1YiBtci0xXCI+PC9pb24taWNvbj4ge3t0YWIubGFiZWx9fVxyXG4gICAgICAgIDwvaW9uLXRleHQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ0cmFuc2x1Y2lkLWJvcmRlciB0YWItY29udGVudCAhb3ZlcmZsb3ctaGlkZGVuIHJlbGF0aXZlXCI+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { RouterLinkWithHref, RouterModule } from '@angular/router';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { IonicModule } from '@ionic/angular';
|
|
4
|
+
import { NgModule } from '@angular/core';
|
|
5
|
+
import { TabsComponent } from './tabs/tabs.component';
|
|
6
|
+
import { TabComponent } from './tab/tab.component';
|
|
7
|
+
import { NgVarDirective } from '../../directives/ng-var.directive';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class TabsModule {
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TabsModule, declarations: [TabsComponent, TabComponent], imports: [CommonModule, IonicModule, NgVarDirective, RouterLinkWithHref, RouterModule], exports: [TabsComponent, TabComponent] }); }
|
|
12
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TabsModule, imports: [CommonModule, IonicModule, RouterModule] }); }
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TabsModule, decorators: [{
|
|
15
|
+
type: NgModule,
|
|
16
|
+
args: [{
|
|
17
|
+
declarations: [TabsComponent, TabComponent],
|
|
18
|
+
exports: [TabsComponent, TabComponent],
|
|
19
|
+
imports: [CommonModule, IonicModule, NgVarDirective, RouterLinkWithHref, RouterModule]
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYXBwaGlyZS1pb24tZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJzL3RhYnMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBT25FLE1BQU0sT0FBTyxVQUFVOytHQUFWLFVBQVU7Z0hBQVYsVUFBVSxpQkFKTCxhQUFhLEVBQUUsWUFBWSxhQUVoQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxZQUFZLGFBRHRFLGFBQWEsRUFBRSxZQUFZO2dIQUdoQyxVQUFVLFlBRlYsWUFBWSxFQUFFLFdBQVcsRUFBc0MsWUFBWTs7NEZBRTNFLFVBQVU7a0JBTHRCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUUsYUFBYSxFQUFFLFlBQVksQ0FBRTtvQkFDN0MsT0FBTyxFQUFPLENBQUUsYUFBYSxFQUFFLFlBQVksQ0FBRTtvQkFDN0MsT0FBTyxFQUFFLENBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxDQUFFO2lCQUN6RiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlckxpbmtXaXRoSHJlZiwgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBUYWJzQ29tcG9uZW50IH0gZnJvbSAnLi90YWJzL3RhYnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFiQ29tcG9uZW50IH0gZnJvbSAnLi90YWIvdGFiLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5nVmFyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9uZy12YXIuZGlyZWN0aXZlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbIFRhYnNDb21wb25lbnQsIFRhYkNvbXBvbmVudCBdLFxyXG4gIGV4cG9ydHMgICAgIDogWyBUYWJzQ29tcG9uZW50LCBUYWJDb21wb25lbnQgXSxcclxuICBpbXBvcnRzOiBbIENvbW1vbk1vZHVsZSwgSW9uaWNNb2R1bGUsIE5nVmFyRGlyZWN0aXZlLCBSb3V0ZXJMaW5rV2l0aEhyZWYsIFJvdXRlck1vZHVsZSBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJzTW9kdWxlIHsgfVxyXG4iXX0=
|