@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,98 @@
|
|
|
1
|
+
import { Component, Output, Input, EventEmitter, HostListener } from '@angular/core';
|
|
2
|
+
import { EnvironmentService } from '../../../../services/environment.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../../../services/environment.service";
|
|
5
|
+
import * as i2 from "@ionic/angular";
|
|
6
|
+
import * as i3 from "@angular/forms";
|
|
7
|
+
import * as i4 from "@angular/router";
|
|
8
|
+
/** Componente de cabeçalho de listagem padrão */
|
|
9
|
+
export class HeaderListComponent {
|
|
10
|
+
onNew() {
|
|
11
|
+
this.onNewEmitter.emit();
|
|
12
|
+
}
|
|
13
|
+
constructor(environmentService) {
|
|
14
|
+
this.environmentService = environmentService;
|
|
15
|
+
this.limitChange = new EventEmitter();
|
|
16
|
+
this.pageChange = new EventEmitter();
|
|
17
|
+
this.searchChange = new EventEmitter();
|
|
18
|
+
/** Evento de refersh
|
|
19
|
+
* Emitido em:
|
|
20
|
+
* - Troca de página
|
|
21
|
+
* - Pesquisa
|
|
22
|
+
*/
|
|
23
|
+
this.refreshEmitter = new EventEmitter();
|
|
24
|
+
/** Link a ser acessado no click do botão NOVO */
|
|
25
|
+
this.link = "view";
|
|
26
|
+
/** Remove o botão NOVO */
|
|
27
|
+
this.noNew = false;
|
|
28
|
+
/** Remove o select de paginas */
|
|
29
|
+
this.noPage = false;
|
|
30
|
+
/** Remove o elemento de pesquisa */
|
|
31
|
+
this.noSearch = false;
|
|
32
|
+
/** Desabilita o redirect de novo em um botão para ser utilizado com [onNewEmitter] */
|
|
33
|
+
this.overrideNew = false;
|
|
34
|
+
/** Evento quando o botáo NOVO é clickado */
|
|
35
|
+
this.onNewEmitter = new EventEmitter();
|
|
36
|
+
this.lstLimits = [];
|
|
37
|
+
this.lstLimits = environmentService.environment.defaultPageLimits;
|
|
38
|
+
this.limit = this.lstLimits[0].value;
|
|
39
|
+
}
|
|
40
|
+
EmitSearch() {
|
|
41
|
+
this.searchChange.emit(this.search);
|
|
42
|
+
this.EmitChange();
|
|
43
|
+
}
|
|
44
|
+
EmitLimit() {
|
|
45
|
+
this.limitChange.emit(this.limit);
|
|
46
|
+
this.pageChange.emit(1);
|
|
47
|
+
this.EmitChange();
|
|
48
|
+
}
|
|
49
|
+
EmitChange() {
|
|
50
|
+
this.refreshEmitter.emit();
|
|
51
|
+
}
|
|
52
|
+
onKeyPress($event) {
|
|
53
|
+
if (($event.ctrlKey || $event.metaKey) && ($event.key == 'F' || $event.key == 'f')) {
|
|
54
|
+
document.getElementById("list_search").setFocus();
|
|
55
|
+
$event.preventDefault();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeaderListComponent, deps: [{ token: i1.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
59
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: HeaderListComponent, selector: "header-list", inputs: { limit: "limit", page: "page", search: "search", loading: "loading", link: "link", noNew: "noNew", noPage: "noPage", noSearch: "noSearch", overrideNew: "overrideNew" }, outputs: { limitChange: "limitChange", pageChange: "pageChange", searchChange: "searchChange", refreshEmitter: "refresh", onNewEmitter: "onNew" }, host: { listeners: { "window:keydown": "onKeyPress($event)" } }, ngImport: i0, template: "<div class=\"flex flex-wrap w-full gap-2\">\r\n @if (!noPage) {\r\n <div class=\"portrait:basis-[calc(50%-0.25rem)] landscape:w-48 portrait:order-1\">\r\n <ion-item class=\"rounded-2xl w-full h-full translucid-border\" lines=\"full\" style=\"--border-radius: 1rem !important; --background: transparent\" >\r\n <ion-select [disabled]=\"loading\" [(ngModel)]=\"limit\" (ionChange)=\"EmitLimit()\" interface=\"popover\">\r\n @for (limit of lstLimits; track limit) {\r\n <ion-select-option [value]=\"limit.value\">{{limit.label}}</ion-select-option>\r\n }\r\n </ion-select>\r\n </ion-item>\r\n </div>\r\n }\r\n \r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n\r\n @if(!noSearch) {\r\n <div class=\"portrait:basis-full portrait:order-3 grow flex items-center justify-center\">\r\n <ion-searchbar class=\"w-full min-h-0 p-0 m-0\" [debounce]=\"500\" [(ngModel)]=\"search\" (ionInput)=\"this.EmitSearch()\" [animated]=\"true\" placeholder=\"Pesquisar...\"></ion-searchbar>\r\n </div>\r\n }\r\n\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n @if(!noNew){\r\n <div class=\"portrait:basis-[calc(50%-0.25rem)] landscape:basis-24 portrait:order-2\">\r\n <ion-button [routerLink]=\"overrideNew ? null : [link]\" (click)=\"onNew()\" class=\"size-full m-0 rounded-2xl text-base\" size=\"small\" fill=\"clear\">\r\n <ion-icon name=\"add\" slot=\"start\"></ion-icon>\r\n <ion-text class=\"text-base\">Novo</ion-text>\r\n </ion-button>\r\n </div>\r\n }\r\n</div>", styles: [""], dependencies: [{ kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocapitalize", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "maxlength", "minlength", "mode", "name", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }, { kind: "component", type: i2.IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "errorText", "expandedIcon", "fill", "helperText", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "required", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: i2.IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i2.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "directive", type: i2.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
60
|
+
}
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeaderListComponent, decorators: [{
|
|
62
|
+
type: Component,
|
|
63
|
+
args: [{ selector: 'header-list', template: "<div class=\"flex flex-wrap w-full gap-2\">\r\n @if (!noPage) {\r\n <div class=\"portrait:basis-[calc(50%-0.25rem)] landscape:w-48 portrait:order-1\">\r\n <ion-item class=\"rounded-2xl w-full h-full translucid-border\" lines=\"full\" style=\"--border-radius: 1rem !important; --background: transparent\" >\r\n <ion-select [disabled]=\"loading\" [(ngModel)]=\"limit\" (ionChange)=\"EmitLimit()\" interface=\"popover\">\r\n @for (limit of lstLimits; track limit) {\r\n <ion-select-option [value]=\"limit.value\">{{limit.label}}</ion-select-option>\r\n }\r\n </ion-select>\r\n </ion-item>\r\n </div>\r\n }\r\n \r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n\r\n @if(!noSearch) {\r\n <div class=\"portrait:basis-full portrait:order-3 grow flex items-center justify-center\">\r\n <ion-searchbar class=\"w-full min-h-0 p-0 m-0\" [debounce]=\"500\" [(ngModel)]=\"search\" (ionInput)=\"this.EmitSearch()\" [animated]=\"true\" placeholder=\"Pesquisar...\"></ion-searchbar>\r\n </div>\r\n }\r\n\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n @if(!noNew){\r\n <div class=\"portrait:basis-[calc(50%-0.25rem)] landscape:basis-24 portrait:order-2\">\r\n <ion-button [routerLink]=\"overrideNew ? null : [link]\" (click)=\"onNew()\" class=\"size-full m-0 rounded-2xl text-base\" size=\"small\" fill=\"clear\">\r\n <ion-icon name=\"add\" slot=\"start\"></ion-icon>\r\n <ion-text class=\"text-base\">Novo</ion-text>\r\n </ion-button>\r\n </div>\r\n }\r\n</div>" }]
|
|
64
|
+
}], ctorParameters: () => [{ type: i1.EnvironmentService }], propDecorators: { limit: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}], limitChange: [{
|
|
67
|
+
type: Output
|
|
68
|
+
}], page: [{
|
|
69
|
+
type: Input
|
|
70
|
+
}], pageChange: [{
|
|
71
|
+
type: Output
|
|
72
|
+
}], search: [{
|
|
73
|
+
type: Input
|
|
74
|
+
}], searchChange: [{
|
|
75
|
+
type: Output
|
|
76
|
+
}], loading: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}], refreshEmitter: [{
|
|
79
|
+
type: Output,
|
|
80
|
+
args: ['refresh']
|
|
81
|
+
}], link: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}], noNew: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], noPage: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], noSearch: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], overrideNew: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}], onNewEmitter: [{
|
|
92
|
+
type: Output,
|
|
93
|
+
args: ['onNew']
|
|
94
|
+
}], onKeyPress: [{
|
|
95
|
+
type: HostListener,
|
|
96
|
+
args: ['window:keydown', ['$event']]
|
|
97
|
+
}] } });
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FwcGhpcmUtaW9uLWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZGVmYXVsdC9kZWZhdWx0LWxpc3QvaGVhZGVyLWxpc3QvaGVhZGVyLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FwcGhpcmUtaW9uLWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZGVmYXVsdC9kZWZhdWx0LWxpc3QvaGVhZGVyLWxpc3QvaGVhZGVyLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHckYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7OztBQUc5RSxrREFBa0Q7QUFNbEQsTUFBTSxPQUFPLG1CQUFtQjtJQXVDOUIsS0FBSztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFlBQW9CLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBdkNoRCxnQkFBVyxHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUk3RSxlQUFVLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFJOUQsaUJBQVksR0FBZ0MsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFJeEY7Ozs7V0FJRztRQUNnQixtQkFBYyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRWpGLGlEQUFpRDtRQUN4QyxTQUFJLEdBQVksTUFBTSxDQUFDO1FBRWhDLDBCQUEwQjtRQUNqQixVQUFLLEdBQVksS0FBSyxDQUFDO1FBQ2hDLGlDQUFpQztRQUN4QixXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ2pDLG9DQUFvQztRQUMzQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBR25DLHNGQUFzRjtRQUM3RSxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUN0Qyw0Q0FBNEM7UUFDM0IsaUJBQVksR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQVc3RSxjQUFTLEdBQWlCLEVBQUUsQ0FBQTtRQUoxQixJQUFJLENBQUMsU0FBUyxHQUFHLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQztRQUNsRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO0lBQ3RDLENBQUM7SUFHRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV4QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFHRCxVQUFVLENBQUMsTUFBcUI7UUFDOUIsSUFBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBQyxDQUFDO1lBQ2hGLFFBQVEsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUF5QixDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzNFLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQzsrR0F2RVUsbUJBQW1CO21HQUFuQixtQkFBbUIseWJDWmhDLHlpREErQk07OzRGRG5CTyxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsYUFBYTt1RkFPYixLQUFLO3NCQUFkLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFHRSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFHRSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkFFRSxPQUFPO3NCQUFmLEtBQUs7Z0JBT2EsY0FBYztzQkFBaEMsTUFBTTt1QkFBQyxTQUFTO2dCQUdSLElBQUk7c0JBQVosS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsV0FBVztzQkFBbkIsS0FBSztnQkFFVyxZQUFZO3NCQUE1QixNQUFNO3VCQUFDLE9BQU87Z0JBNkJmLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBQyxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSW9uU2VhcmNoYmFyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5cclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvZW52aXJvbm1lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IFBhZ2VPcHRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9jbGFzc2VzL3BhZ2Utb3B0aW9uJztcclxuXHJcbi8qKiBDb21wb25lbnRlIGRlIGNhYmXDp2FsaG8gZGUgbGlzdGFnZW0gcGFkcsOjbyAgKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdoZWFkZXItbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9oZWFkZXItbGlzdC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGVhZGVyTGlzdENvbXBvbmVudCB7XHJcblxyXG4gIC8qKiBOw7ptZXJvIGRlIHDDoWdpbmFzIG3DoXhpbW8gKHVzYW5kbyB0d28gd2F5IGRhdGEgYmluZGluZykgKi9cclxuICBASW5wdXQoKSAgbGltaXQ6IG51bWJlciB8IG51bGw7XHJcbiAgQE91dHB1dCgpIGxpbWl0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyIHwgbnVsbD4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlciB8IG51bGw+KCk7XHJcblxyXG4gIC8qKiBWYWxvciBkYSBwYWdpbmEsIHNldGFkbyA9IDEgcXVhbmRvIHRyb2NhLXNlIG8gdmFsb3IgZGUgbGltaXRlIGRlIHBhZ2luYXMgKHVzYW5kbyB0d28gd2F5IGRhdGEgYmluZGluZykgKi9cclxuICBASW5wdXQoKSBwYWdlOiBudW1iZXI7XHJcbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcblxyXG4gIC8qKiBDYW1wbyBkZSBwZXNxdWlzYSAodXNhbmRvIHR3byB3YXkgZGF0YSBiaW5kaW5nKSAqL1xyXG4gIEBJbnB1dCgpIHNlYXJjaDogc3RyaW5nIHwgbnVsbDtcclxuICBAT3V0cHV0KCkgc2VhcmNoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVsbD4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IG51bGw+KCk7XHJcbiAgXHJcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbjtcclxuXHJcbiAgLyoqIEV2ZW50byBkZSByZWZlcnNoXHJcbiAgICogRW1pdGlkbyBlbTpcclxuICAgKiAgLSBUcm9jYSBkZSBww6FnaW5hXHJcbiAgICogIC0gUGVzcXVpc2FcclxuICAgKi9cclxuICBAT3V0cHV0KCdyZWZyZXNoJykgcmVmcmVzaEVtaXR0ZXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgLyoqIExpbmsgYSBzZXIgYWNlc3NhZG8gbm8gY2xpY2sgZG8gYm90w6NvIE5PVk8gKi9cclxuICBASW5wdXQoKSBsaW5rIDogc3RyaW5nID0gXCJ2aWV3XCI7XHJcblxyXG4gIC8qKiBSZW1vdmUgbyBib3TDo28gTk9WTyAqL1xyXG4gIEBJbnB1dCgpIG5vTmV3OiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqIFJlbW92ZSBvIHNlbGVjdCBkZSBwYWdpbmFzICovXHJcbiAgQElucHV0KCkgbm9QYWdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqIFJlbW92ZSBvIGVsZW1lbnRvIGRlIHBlc3F1aXNhICovXHJcbiAgQElucHV0KCkgbm9TZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIFxyXG5cclxuICAvKiogRGVzYWJpbGl0YSBvIHJlZGlyZWN0IGRlIG5vdm8gZW0gdW0gYm90w6NvIHBhcmEgc2VyIHV0aWxpemFkbyBjb20gW29uTmV3RW1pdHRlcl0gKi9cclxuICBASW5wdXQoKSBvdmVycmlkZU5ldzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKiBFdmVudG8gcXVhbmRvIG8gYm90w6FvIE5PVk8gw6kgY2xpY2thZG8gKi9cclxuICBAT3V0cHV0KCdvbk5ldycpIG9uTmV3RW1pdHRlcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBvbk5ldygpOiB2b2lke1xyXG4gICAgdGhpcy5vbk5ld0VtaXR0ZXIuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbnZpcm9ubWVudFNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZSkgeyBcclxuICAgIHRoaXMubHN0TGltaXRzID0gZW52aXJvbm1lbnRTZXJ2aWNlLmVudmlyb25tZW50LmRlZmF1bHRQYWdlTGltaXRzO1xyXG4gICAgdGhpcy5saW1pdCA9IHRoaXMubHN0TGltaXRzWzBdLnZhbHVlXHJcbiAgfVxyXG5cclxuICBsc3RMaW1pdHM6IFBhZ2VPcHRpb25bXSA9IFtdXHJcbiAgRW1pdFNlYXJjaCgpOiB2b2lke1xyXG4gICAgdGhpcy5zZWFyY2hDaGFuZ2UuZW1pdCh0aGlzLnNlYXJjaCk7XHJcbiAgICB0aGlzLkVtaXRDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIEVtaXRMaW1pdCgpOiB2b2lke1xyXG4gICAgdGhpcy5saW1pdENoYW5nZS5lbWl0KHRoaXMubGltaXQpO1xyXG4gICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoMSk7XHJcbiAgICBcclxuICAgIHRoaXMuRW1pdENoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgRW1pdENoYW5nZSgpe1xyXG4gICAgdGhpcy5yZWZyZXNoRW1pdHRlci5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5ZG93bicsWyckZXZlbnQnXSlcclxuICBvbktleVByZXNzKCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYoKCRldmVudC5jdHJsS2V5IHx8ICRldmVudC5tZXRhS2V5KSAmJiAoJGV2ZW50LmtleSA9PSAnRicgfHwgJGV2ZW50LmtleSA9PSAnZicpKXtcclxuICAgICAgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwibGlzdF9zZWFyY2hcIikgYXMgYW55IGFzIElvblNlYXJjaGJhcikuc2V0Rm9jdXMoKTtcclxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIHctZnVsbCBnYXAtMlwiPlxyXG4gIEBpZiAoIW5vUGFnZSkge1xyXG4gICAgPGRpdiBjbGFzcz1cInBvcnRyYWl0OmJhc2lzLVtjYWxjKDUwJS0wLjI1cmVtKV0gbGFuZHNjYXBlOnctNDggcG9ydHJhaXQ6b3JkZXItMVwiPlxyXG4gICAgICA8aW9uLWl0ZW0gY2xhc3M9XCJyb3VuZGVkLTJ4bCB3LWZ1bGwgaC1mdWxsIHRyYW5zbHVjaWQtYm9yZGVyXCIgbGluZXM9XCJmdWxsXCIgc3R5bGU9XCItLWJvcmRlci1yYWRpdXM6IDFyZW0gIWltcG9ydGFudDsgLS1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudFwiID5cclxuICAgICAgICA8aW9uLXNlbGVjdCBbZGlzYWJsZWRdPVwibG9hZGluZ1wiIFsobmdNb2RlbCldPVwibGltaXRcIiAoaW9uQ2hhbmdlKT1cIkVtaXRMaW1pdCgpXCIgaW50ZXJmYWNlPVwicG9wb3ZlclwiPlxyXG4gICAgICAgICAgQGZvciAobGltaXQgb2YgbHN0TGltaXRzOyB0cmFjayBsaW1pdCkge1xyXG4gICAgICAgICAgICA8aW9uLXNlbGVjdC1vcHRpb24gW3ZhbHVlXT1cImxpbWl0LnZhbHVlXCI+e3tsaW1pdC5sYWJlbH19PC9pb24tc2VsZWN0LW9wdGlvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2lvbi1zZWxlY3Q+XHJcbiAgICAgIDwvaW9uLWl0ZW0+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbiAgXHJcbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Nsb3Q9c3RhcnRdXCI+PC9uZy1jb250ZW50PlxyXG5cclxuICBAaWYoIW5vU2VhcmNoKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwicG9ydHJhaXQ6YmFzaXMtZnVsbCBwb3J0cmFpdDpvcmRlci0zIGdyb3cgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cclxuICAgICAgPGlvbi1zZWFyY2hiYXIgY2xhc3M9XCJ3LWZ1bGwgbWluLWgtMCBwLTAgbS0wXCIgW2RlYm91bmNlXT1cIjUwMFwiIFsobmdNb2RlbCldPVwic2VhcmNoXCIgKGlvbklucHV0KT1cInRoaXMuRW1pdFNlYXJjaCgpXCIgW2FuaW1hdGVkXT1cInRydWVcIiBwbGFjZWhvbGRlcj1cIlBlc3F1aXNhci4uLlwiPjwvaW9uLXNlYXJjaGJhcj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuXHJcbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Nsb3Q9ZW5kXVwiPjwvbmctY29udGVudD5cclxuXHJcbiAgQGlmKCFub05ldyl7XHJcbiAgICA8ZGl2IGNsYXNzPVwicG9ydHJhaXQ6YmFzaXMtW2NhbGMoNTAlLTAuMjVyZW0pXSBsYW5kc2NhcGU6YmFzaXMtMjQgcG9ydHJhaXQ6b3JkZXItMlwiPlxyXG4gICAgICA8aW9uLWJ1dHRvbiBbcm91dGVyTGlua109XCJvdmVycmlkZU5ldyA/IG51bGwgOiBbbGlua11cIiAoY2xpY2spPVwib25OZXcoKVwiIGNsYXNzPVwic2l6ZS1mdWxsIG0tMCByb3VuZGVkLTJ4bCB0ZXh0LWJhc2VcIiBzaXplPVwic21hbGxcIiBmaWxsPVwiY2xlYXJcIj5cclxuICAgICAgICA8aW9uLWljb24gbmFtZT1cImFkZFwiIHNsb3Q9XCJzdGFydFwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgPGlvbi10ZXh0IGNsYXNzPVwidGV4dC1iYXNlXCI+Tm92bzwvaW9uLXRleHQ+XHJcbiAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+Il19
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { Component, effect, Input, model } from '@angular/core';
|
|
2
|
+
import { firstValueFrom } from "rxjs";
|
|
3
|
+
import { CompileLstTableField } from "../../../classes/comparison/comparison";
|
|
4
|
+
import { ViewFiltros } from "../../../classes/filters/view-filtros";
|
|
5
|
+
import { LongProperty } from '../../../classes/comparison/properties/long-property';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
//Classe de listagem, implemente carregamento e filtragem de dados
|
|
8
|
+
export class List {
|
|
9
|
+
constructor() {
|
|
10
|
+
/** @optional Filtro a ser aplicado na busca da listagem na API */
|
|
11
|
+
this.preloadFilter = model([]);
|
|
12
|
+
this.lstDados = [];
|
|
13
|
+
this.nested = false;
|
|
14
|
+
this.loading = true;
|
|
15
|
+
this.originalFilters = [];
|
|
16
|
+
/** Filtro précarregado */
|
|
17
|
+
this.frm = new ViewFiltros();
|
|
18
|
+
/** Lista de campos a serem substituídos pelo padrão, armazenado no service enviado como parâmetro */
|
|
19
|
+
this.lstTableFields = [];
|
|
20
|
+
effect(() => {
|
|
21
|
+
this.SetFilters();
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
async ngOnInit() {
|
|
25
|
+
this.originalFilters = this.frm.filter;
|
|
26
|
+
if (this.lstTableFields.length == 0) {
|
|
27
|
+
this.lstTableFields = this.service.lstTableFields;
|
|
28
|
+
}
|
|
29
|
+
if (!this.service.route) {
|
|
30
|
+
console.warn("[ Warning! ] [ Url is undefined ]");
|
|
31
|
+
}
|
|
32
|
+
if (!this.service.title) {
|
|
33
|
+
console.warn("[ Warning! ] [ titulo is undefined ]");
|
|
34
|
+
}
|
|
35
|
+
//[ Nested element ]
|
|
36
|
+
if (this.elementRef.nativeElement.parentElement) {
|
|
37
|
+
this.nested = this.elementRef.nativeElement.parentElement.tagName.toUpperCase() != "ION-CONTENT";
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this.nested = true;
|
|
41
|
+
}
|
|
42
|
+
await this.SetFilters();
|
|
43
|
+
if (this.nested) {
|
|
44
|
+
this.Refresh();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async SetFilters() {
|
|
48
|
+
await this.LoadIdComparison();
|
|
49
|
+
const compiled = CompileLstTableField(this.lstTableFields);
|
|
50
|
+
const preloadFilter = this.preloadFilter();
|
|
51
|
+
this.frm.filter = [...preloadFilter, ...compiled, ...this.originalFilters].map(p => p);
|
|
52
|
+
}
|
|
53
|
+
async LoadIdComparison() {
|
|
54
|
+
try {
|
|
55
|
+
const data = (await firstValueFrom(this.activatedRoute.data));
|
|
56
|
+
const id = this.genericService.GetId(this.activatedRoute, data.idPreloaderConfiguration.routeDepth);
|
|
57
|
+
var index = this.lstTableFields.indexOf(this.lstTableFields.find(p => p.index == data.idPreloaderConfiguration.propertyName));
|
|
58
|
+
const filter = new LongProperty(data.idPreloaderConfiguration.propertyName).Equals(id);
|
|
59
|
+
filter.value = id;
|
|
60
|
+
filter.disableChange = data.idPreloaderConfiguration.disableChange;
|
|
61
|
+
this.lstTableFields[index].filter = [filter];
|
|
62
|
+
}
|
|
63
|
+
finally {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
async Refresh(event) {
|
|
68
|
+
this.loading = true;
|
|
69
|
+
try {
|
|
70
|
+
await this.Load();
|
|
71
|
+
}
|
|
72
|
+
finally {
|
|
73
|
+
if (event) {
|
|
74
|
+
event.target.complete();
|
|
75
|
+
}
|
|
76
|
+
this.loading = false;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
async Load() {
|
|
80
|
+
var vRetorno;
|
|
81
|
+
try {
|
|
82
|
+
if (this.loadFrom) {
|
|
83
|
+
vRetorno = await firstValueFrom(this.service[this.loadFrom.name](this.frm));
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
vRetorno = await firstValueFrom(this.service.List(this.frm));
|
|
87
|
+
}
|
|
88
|
+
this.lstDados = vRetorno.lstDados;
|
|
89
|
+
this.total = vRetorno.total;
|
|
90
|
+
}
|
|
91
|
+
finally {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: List, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
96
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: List, selector: "ng-component", inputs: { service: { classPropertyName: "service", publicName: "service", isSignal: false, isRequired: false, transformFunction: null }, preloadFilter: { classPropertyName: "preloadFilter", publicName: "preloadFilter", isSignal: true, isRequired: false, transformFunction: null }, loadFrom: { classPropertyName: "loadFrom", publicName: "loadFrom", isSignal: false, isRequired: false, transformFunction: null }, frm: { classPropertyName: "frm", publicName: "frm", isSignal: false, isRequired: false, transformFunction: null }, lstTableFields: { classPropertyName: "lstTableFields", publicName: "lstTableFields", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { preloadFilter: "preloadFilterChange" }, ngImport: i0, template: '', isInline: true, styles: [""] }); }
|
|
97
|
+
}
|
|
98
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: List, decorators: [{
|
|
99
|
+
type: Component,
|
|
100
|
+
args: [{ template: '' }]
|
|
101
|
+
}], ctorParameters: () => [], propDecorators: { service: [{
|
|
102
|
+
type: Input
|
|
103
|
+
}], loadFrom: [{
|
|
104
|
+
type: Input
|
|
105
|
+
}], frm: [{
|
|
106
|
+
type: Input
|
|
107
|
+
}], lstTableFields: [{
|
|
108
|
+
type: Input
|
|
109
|
+
}] } });
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC1saXN0L2xpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWMsS0FBSyxFQUFFLEtBQUssRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFFakcsT0FBTyxFQUFjLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdsRCxPQUFPLEVBQUUsb0JBQW9CLEVBQWMsTUFBTSx3Q0FBd0MsQ0FBQztBQUcxRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFHcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNEQUFzRCxDQUFDOztBQUVwRixrRUFBa0U7QUFFbEUsTUFBTSxPQUFnQixJQUFJO0lBT3hCO1FBTUEsa0VBQWtFO1FBQ2xFLGtCQUFhLEdBQThCLEtBQUssQ0FBZSxFQUFFLENBQUMsQ0FBQztRQU1uRSxhQUFRLEdBQVEsRUFBRSxDQUFDO1FBRW5CLFdBQU0sR0FBYyxLQUFLLENBQUM7UUFDMUIsWUFBTyxHQUFhLElBQUksQ0FBQztRQUV6QixvQkFBZSxHQUFpQixFQUFFLENBQUM7UUFFbkMsMkJBQTJCO1FBQ2xCLFFBQUcsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUU5QyxxR0FBcUc7UUFDNUYsbUJBQWMsR0FBaUIsRUFBRSxDQUFDO1FBdkJ6QyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQXNCRCxLQUFLLENBQUMsUUFBUTtRQUNaLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFFdkMsSUFBRyxJQUFJ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QUFJLEVBQUUsQ0FBQztRQUNwQixDQUFDO2dCQUNNLENBQUM7WUFDTixJQUFHLEtBQUssRUFBQyxDQUFDO2dCQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUk7UUFDUixJQUFJLFFBQXFCLENBQUM7UUFFMUIsSUFBRyxDQUFDO1lBQ0YsSUFBRyxJQUFJLENBQUMsUUFBUSxFQUFDLENBQUM7Z0JBQ2hCLFFBQVEsR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDOUUsQ0FBQztpQkFDRyxDQUFDO2dCQUNILFFBQVEsR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMvRCxDQUFDO1lBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQU0sUUFBUSxDQUFDLEtBQUssQ0FBQztRQUNqQyxDQUFDO2dCQUFRLENBQUM7WUFDUixPQUFPO1FBQ1QsQ0FBQztJQUNILENBQUM7K0dBdEdtQixJQUFJO21HQUFKLElBQUksMndCQURILEVBQUU7OzRGQUNILElBQUk7a0JBRHpCLFNBQVM7K0JBQWEsRUFBRTt3REFNZCxPQUFPO3NCQUFmLEtBQUs7Z0JBWUcsUUFBUTtzQkFBaEIsS0FBSztnQkFXRyxHQUFHO3NCQUFYLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBDb21wb25lbnQsIGVmZmVjdCwgRWxlbWVudFJlZiwgSW5wdXQsIG1vZGVsLCBNb2RlbFNpZ25hbCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlZnJlc2hlckN1c3RvbUV2ZW50IH0gZnJvbSBcIkBpb25pYy9hbmd1bGFyXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZpcnN0VmFsdWVGcm9tIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgQ29tcGlsZUxzdFRhYmxlRmllbGQsIENvbXBhcmlzb24gfSBmcm9tIFwiLi4vLi4vLi4vY2xhc3Nlcy9jb21wYXJpc29uL2NvbXBhcmlzb25cIjtcclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UsIFZpZXdSZXRvcm5vIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvd2ViL2h0dHAuc2VydmljZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL2dlbmVyaWNzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVmlld0ZpbHRyb3MgfSBmcm9tIFwiLi4vLi4vLi4vY2xhc3Nlcy9maWx0ZXJzL3ZpZXctZmlsdHJvc1wiO1xyXG5pbXBvcnQgeyBUYWJsZUZpZWxkIH0gZnJvbSBcIi4uLy4uLy4uL2NsYXNzZXMvaW5wdXRzL3RhYmxlLWZpZWxkXCI7XHJcbmltcG9ydCB7IFJvdXRlRGF0YSB9IGZyb20gXCIuLi8uLi8uLi9jbGFzc2VzL3JvdXRlcy9yb3V0ZS1kYXRhXCI7XHJcbmltcG9ydCB7IExvbmdQcm9wZXJ0eSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvY29tcGFyaXNvbi9wcm9wZXJ0aWVzL2xvbmctcHJvcGVydHknO1xyXG5cclxuLy9DbGFzc2UgZGUgbGlzdGFnZW0sIGltcGxlbWVudGUgY2FycmVnYW1lbnRvIGUgZmlsdHJhZ2VtIGRlIGRhZG9zXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycsIHN0eWxlczogJycgfSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExpc3Q8VCBleHRlbmRzIEh0dHBTZXJ2aWNlPFY+LCBWID0gYW55PiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHByb3RlY3RlZCBnZW5lcmljU2VydmljZTogR2VuZXJpY1NlcnZpY2U7XHJcbiAgcHJvdGVjdGVkIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZTtcclxuICBwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZjtcclxuICBASW5wdXQoKSBzZXJ2aWNlOiBUO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgXHJcbiAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICB0aGlzLlNldEZpbHRlcnMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBcclxuICAvKiogQG9wdGlvbmFsIEZpbHRybyBhIHNlciBhcGxpY2FkbyBuYSBidXNjYSBkYSBsaXN0YWdlbSBuYSBBUEkgKi9cclxuICBwcmVsb2FkRmlsdGVyOiBNb2RlbFNpZ25hbDxDb21wYXJpc29uW10+ID0gbW9kZWw8Q29tcGFyaXNvbltdPihbXSk7IFxyXG4gIFxyXG4gIC8qKiBFbmQtcG9pbnQgZGUgY2FycmVnYW1lbnRvIGRlIGRhZG9zLiBEZXZlIHNlciB1bWEgZnVuw6fDo28gbm8gc2VydmljZSBhcGxpY2FkbyAqL1xyXG4gIEBJbnB1dCgpIGxvYWRGcm9tOiAodmlldzogVmlld0ZpbHRyb3MpID0+IE9ic2VydmFibGU8Vmlld1JldG9ybm8+O1xyXG5cclxuXHJcbiAgbHN0RGFkb3M6IFZbXSA9IFtdO1xyXG4gIHRvdGFsICAgOiBudW1iZXI7XHJcbiAgbmVzdGVkICA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBsb2FkaW5nIDogYm9vbGVhbiA9IHRydWU7XHJcbiAgXHJcbiAgb3JpZ2luYWxGaWx0ZXJzOiBDb21wYXJpc29uW10gPSBbXTtcclxuXHJcbiAgLyoqIEZpbHRybyBwcsOpY2FycmVnYWRvICAqL1xyXG4gIEBJbnB1dCgpIGZybTogVmlld0ZpbHRyb3MgPSBuZXcgVmlld0ZpbHRyb3MoKTtcclxuXHJcbiAgLyoqIExpc3RhIGRlIGNhbXBvcyBhIHNlcmVtIHN1YnN0aXR1w61kb3MgcGVsbyBwYWRyw6NvLCBhcm1hemVuYWRvIG5vIHNlcnZpY2UgZW52aWFkbyBjb21vIHBhcsOibWV0cm8gKi9cclxuICBASW5wdXQoKSBsc3RUYWJsZUZpZWxkczogVGFibGVGaWVsZFtdID0gW107XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5vcmlnaW5hbEZpbHRlcnMgPSB0aGlzLmZybS5maWx0ZXI7XHJcblxyXG4gICAgaWYodGhpcy5sc3RUYWJsZUZpZWxkcy5sZW5ndGggPT0gMCl7XHJcbiAgICAgIHRoaXMubHN0VGFibGVGaWVsZHMgPSB0aGlzLnNlcnZpY2UubHN0VGFibGVGaWVsZHM7XHJcbiAgICB9XHJcbiAgICBpZighdGhpcy5zZXJ2aWNlLnJvdXRlKXsgY29uc29sZS53YXJuKFwiWyBXYXJuaW5nISBdIFsgVXJsIGlzIHVuZGVmaW5lZCBdXCIpfVxyXG4gICAgaWYoIXRoaXMuc2VydmljZS50aXRsZSl7IGNvbnNvbGUud2FybihcIlsgV2FybmluZyEgXSBbIHRpdHVsbyBpcyB1bmRlZmluZWQgXVwiKX1cclxuICAgIFxyXG4gICAgLy9bIE5lc3RlZCBlbGVtZW50IF1cclxuICAgIGlmKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQpe1xyXG4gICAgICB0aGlzLm5lc3RlZCA9ICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LnRhZ05hbWUgYXMgc3RyaW5nKS50b1VwcGVyQ2FzZSgpICE9IFwiSU9OLUNPTlRFTlRcIjtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLm5lc3RlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgYXdhaXQgdGhpcy5TZXRGaWx0ZXJzKCk7XHJcbiAgICBpZih0aGlzLm5lc3RlZCl7IHRoaXMuUmVmcmVzaCgpOyB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYXN5bmMgU2V0RmlsdGVycygpOiBQcm9taXNlPHZvaWQ+e1xyXG4gICAgYXdhaXQgdGhpcy5Mb2FkSWRDb21wYXJpc29uKCk7XHJcbiAgICBjb25zdCBjb21waWxlZCAgICAgID0gQ29tcGlsZUxzdFRhYmxlRmllbGQodGhpcy5sc3RUYWJsZUZpZWxkcyk7XHJcbiAgICBjb25zdCBwcmVsb2FkRmlsdGVyID0gdGhpcy5wcmVsb2FkRmlsdGVyKCk7XHJcbiAgICB0aGlzLmZybS5maWx0ZXIgICAgID0gWy4uLnByZWxvYWRGaWx0ZXIsIC4uLmNvbXBpbGVkLCAuLi50aGlzLm9yaWdpbmFsRmlsdGVyc10ubWFwKHAgPT4gcCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBMb2FkSWRDb21wYXJpc29uKCk6IFByb21pc2U8dm9pZD57XHJcbiAgICB0cnl7XHJcbiAgICAgIGNvbnN0IGRhdGE6IFJvdXRlRGF0YSA9IChhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmFjdGl2YXRlZFJvdXRlLmRhdGEpKSBhcyBSb3V0ZURhdGE7XHJcblxyXG4gICAgICBjb25zdCBpZCAgID0gdGhpcy5nZW5lcmljU2VydmljZS5HZXRJZCh0aGlzLmFjdGl2YXRlZFJvdXRlLCBkYXRhLmlkUHJlbG9hZGVyQ29uZmlndXJhdGlvbi5yb3V0ZURlcHRoKTtcclxuICAgICAgdmFyIGluZGV4OiBudW1iZXIgPSB0aGlzLmxzdFRhYmxlRmllbGRzLmluZGV4T2YodGhpcy5sc3RUYWJsZUZpZWxkcy5maW5kKHAgPT4gcC5pbmRleCA9PSBkYXRhLmlkUHJlbG9hZGVyQ29uZmlndXJhdGlvbi5wcm9wZXJ0eU5hbWUpKTtcclxuICAgICAgY29uc3QgZmlsdGVyOiBDb21wYXJpc29uID0gbmV3IExvbmdQcm9wZXJ0eShkYXRhLmlkUHJlbG9hZGVyQ29uZmlndXJhdGlvbi5wcm9wZXJ0eU5hbWUpLkVxdWFscyhpZCk7XHJcblxyXG4gICAgICBmaWx0ZXIudmFsdWUgPSBpZDtcclxuICAgICAgZmlsdGVyLmRpc2FibGVDaGFuZ2UgPSBkYXRhLmlkUHJlbG9hZGVyQ29uZmlndXJhdGlvbi5kaXNhYmxlQ2hhbmdlO1xyXG4gICAgICB0aGlzLmxzdFRhYmxlRmllbGRzW2luZGV4XS5maWx0ZXIgPSBbZmlsdGVyXTtcclxuICAgIH1maW5hbGx5eyBcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgUmVmcmVzaChldmVudD86IFJlZnJlc2hlckN1c3RvbUV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdHJ5e1xyXG4gICAgICBhd2FpdCB0aGlzLkxvYWQoKTtcclxuICAgIH1cclxuICAgIGZpbmFsbHl7XHJcbiAgICAgIGlmKGV2ZW50KXsgZXZlbnQudGFyZ2V0LmNvbXBsZXRlKCk7IH1cclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIGFzeW5jIExvYWQoKTogUHJvbWlzZTx2b2lkPntcclxuICAgIHZhciB2UmV0b3JubzogVmlld1JldG9ybm87XHJcblxyXG4gICAgdHJ5e1xyXG4gICAgICBpZih0aGlzLmxvYWRGcm9tKXtcclxuICAgICAgICB2UmV0b3JubyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuc2VydmljZVt0aGlzLmxvYWRGcm9tLm5hbWVdKHRoaXMuZnJtKSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICB2UmV0b3JubyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuc2VydmljZS5MaXN0KHRoaXMuZnJtKSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5sc3REYWRvcyA9IHZSZXRvcm5vLmxzdERhZG9zOyBcclxuICAgICAgdGhpcy50b3RhbCAgICA9IHZSZXRvcm5vLnRvdGFsOyBcclxuICAgIH0gZmluYWxseXsgXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcbn0iXX0=
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import { GenericService } from '../../../services/generics.service';
|
|
3
|
+
import { Utils } from '../../../services/utils.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../../services/generics.service";
|
|
6
|
+
import * as i2 from "@ionic/angular";
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
8
|
+
import * as i4 from "@angular/forms";
|
|
9
|
+
/** Componente de paginação padrão */
|
|
10
|
+
export class DefaultPaginationComponent {
|
|
11
|
+
/** Valor total de dados */
|
|
12
|
+
set _total(value) {
|
|
13
|
+
this.total = value;
|
|
14
|
+
this.TotalPages = this.GetTotalPages();
|
|
15
|
+
this.lstPages = this.GetlstPages();
|
|
16
|
+
}
|
|
17
|
+
;
|
|
18
|
+
/** Limite de páginas */
|
|
19
|
+
set _limit(value) {
|
|
20
|
+
this.limit = value;
|
|
21
|
+
this.TotalPages = this.GetTotalPages();
|
|
22
|
+
this.lstPages = this.GetlstPages();
|
|
23
|
+
}
|
|
24
|
+
;
|
|
25
|
+
constructor(genericService) {
|
|
26
|
+
this.genericService = genericService;
|
|
27
|
+
this.total = 0;
|
|
28
|
+
this.limit = 0;
|
|
29
|
+
this.pageChange = new EventEmitter();
|
|
30
|
+
/** Evento emitido na mudança de valores (Pagina) */
|
|
31
|
+
this.changeEmitter = new EventEmitter();
|
|
32
|
+
this.pop_id = "popover-id-" + Utils.GenerateGUID();
|
|
33
|
+
this.lstPages = [];
|
|
34
|
+
this.TotalPages = 0;
|
|
35
|
+
}
|
|
36
|
+
ngOnInit() { }
|
|
37
|
+
GetlstPages() {
|
|
38
|
+
if (!this.TotalPages) {
|
|
39
|
+
return [];
|
|
40
|
+
}
|
|
41
|
+
var startIndex;
|
|
42
|
+
var start = [];
|
|
43
|
+
startIndex = this.page - 1;
|
|
44
|
+
var _ = [];
|
|
45
|
+
for (let i = this.TotalPages - 4; i <= this.TotalPages; i++) {
|
|
46
|
+
if (i > 0) {
|
|
47
|
+
_.push(i);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
for (let i = startIndex; i <= this.TotalPages && i < startIndex + 5; i++) {
|
|
51
|
+
if (i > 0) {
|
|
52
|
+
start.push(i);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
if (startIndex == 0 && this.TotalPages >= 5) {
|
|
56
|
+
start.push(5);
|
|
57
|
+
}
|
|
58
|
+
if (start[0] > _[0]) {
|
|
59
|
+
return _;
|
|
60
|
+
}
|
|
61
|
+
return start;
|
|
62
|
+
}
|
|
63
|
+
GetTotalPages() {
|
|
64
|
+
return this.limit ? Math.ceil(this.total / this.limit) : Math.ceil(this.total / this.total);
|
|
65
|
+
}
|
|
66
|
+
PageAdd() {
|
|
67
|
+
if (this.page + 1 > this.TotalPages) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
this.SetPage(this.page + 1);
|
|
71
|
+
}
|
|
72
|
+
PageSub() {
|
|
73
|
+
if (this.page - 1 < 1) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
this.SetPage(this.page - 1);
|
|
77
|
+
}
|
|
78
|
+
SetPage(value) {
|
|
79
|
+
if (value != this.page) {
|
|
80
|
+
this.pageChange.emit(value);
|
|
81
|
+
this.EmitChange();
|
|
82
|
+
setTimeout(() => {
|
|
83
|
+
this.TotalPages = this.GetTotalPages();
|
|
84
|
+
this.lstPages = this.GetlstPages();
|
|
85
|
+
}, 100);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
SetPageManual() {
|
|
89
|
+
if (this._page && this._page > 0 && this._page <= this.TotalPages) {
|
|
90
|
+
this.SetPage(this._page);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
this.genericService.PresentToast("Página inválida");
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
EmitChange() {
|
|
97
|
+
this.changeEmitter.emit();
|
|
98
|
+
}
|
|
99
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultPaginationComponent, deps: [{ token: i1.GenericService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
100
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DefaultPaginationComponent, selector: "default-pagination", inputs: { _total: ["total", "_total"], _limit: ["limit", "_limit"], length: "length", loading: "loading", page: "page" }, outputs: { pageChange: "pageChange", changeEmitter: "change" }, ngImport: i0, template: "<div id=\"pagination\" class=\"flex items-center rounded-b-2xl px-4 py-2 portrait:flex-col\">\r\n <div class=\"w-full h-full items-center justify-start flex portrait:justify-center\">\r\n <ion-spinner [hidden]=\"!(loading && lstPages.length == 0)\"></ion-spinner>\r\n <ion-text [hidden]=\"loading && lstPages.length == 0\">\r\n <div class=\"flex\">\r\n Mostrando \r\n <ion-skeleton-text *ngIf=\"loading\" [animated]=\"true\" style=\"width: 2ch\"></ion-skeleton-text>\r\n <b *ngIf=\"!loading\">{{limit * page - limit + length}}</b> \r\n de \r\n @if (total != null) {\r\n <b> {{total}} </b> items\r\n }\r\n @else{\r\n <b> - </b> items\r\n }\r\n </div>\r\n </ion-text>\r\n </div>\r\n <div class=\"w-full h-full items-center justify-end flex portrait:justify-center\" *ngIf=\"total != null\">\r\n <button class=\"flex items-center\" [disabled]=\"loading\" (click)=\"PageSub()\">\r\n <ion-icon [ngClass]=\"{'opacity-20': page == 1}\" name=\"chevron-back\" class=\"cursor-pointer default transition\"></ion-icon>\r\n </button>\r\n\r\n <ion-spinner *ngIf=\"loading && lstPages.length == 0\"></ion-spinner>\r\n\r\n <button [disabled]=\"loading\" class=\"page\" *ngFor=\"let item of lstPages\" [ngClass]=\"{ 'selected' : page == item }\" (click)=\"SetPage(item)\"> {{item}} </button>\r\n\r\n <button class=\"flex items-center\" [disabled]=\"loading\" (click)=\"PageAdd()\">\r\n <ion-icon [ngClass]=\"{'opacity-20': page == TotalPages }\" name=\"chevron-forward\" class=\"cursor-pointer default transition\"></ion-icon>\r\n </button>\r\n\r\n @if (TotalPages > 5) {\r\n <button [disabled]=\"loading\" class=\"page\" [id]=\"pop_id\"><ion-icon name=\"search\"></ion-icon></button>\r\n <ion-popover [trigger]=\"pop_id\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content>\r\n <div class=\"grid grid-cols-10 pl-3\">\r\n <div class=\"col-span-8 pb-2\">\r\n <ion-input class=\"number-class\" [(ngModel)]=\"_page\" type=\"Number\" labelPlacement=\"stacked\" label=\"P\u00E1gina [Max. {{TotalPages}}]\"></ion-input>\r\n </div>\r\n <div class=\"col-span-2\">\r\n <ion-button [disabled]=\"loading\" class=\"size-full\" size=\"small\" (click)=\"SetPageManual()\" style=\"--border-radius: 0rem\">\r\n <ion-icon class=\"w-4 aspect-square\" slot=\"icon-only\" name=\"checkmark-circle\"></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 </div>\r\n</div>", styles: ["#pagination{background-color:var(--ion-color-step-300);color:var(--ion-color-step-700)}@media (prefers-color-scheme: light){#pagination{background-color:var(--ion-framework-table-light)}}button.page{margin-left:.25rem;margin-right:.25rem;display:flex;height:1.5rem;min-width:1.5rem;cursor:pointer;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;padding-left:.25rem;padding-right:.25rem;text-align:center;border:var(--ion-color-dark) solid 1px;color:var(--ion-color-dark);transition:all .25s}button.page:disabled{opacity:.75}button.page.selected{background-color:var(--ion-color-dark);color:var(--ion-color-dark-contrast)!important}\n"], dependencies: [{ kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.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: i2.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "component", type: i2.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonPopover, selector: "ion-popover" }, { kind: "directive", type: i2.NumericValueAccessor, selector: "ion-input[type=number],ion-range" }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
101
|
+
}
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultPaginationComponent, decorators: [{
|
|
103
|
+
type: Component,
|
|
104
|
+
args: [{ selector: 'default-pagination', template: "<div id=\"pagination\" class=\"flex items-center rounded-b-2xl px-4 py-2 portrait:flex-col\">\r\n <div class=\"w-full h-full items-center justify-start flex portrait:justify-center\">\r\n <ion-spinner [hidden]=\"!(loading && lstPages.length == 0)\"></ion-spinner>\r\n <ion-text [hidden]=\"loading && lstPages.length == 0\">\r\n <div class=\"flex\">\r\n Mostrando \r\n <ion-skeleton-text *ngIf=\"loading\" [animated]=\"true\" style=\"width: 2ch\"></ion-skeleton-text>\r\n <b *ngIf=\"!loading\">{{limit * page - limit + length}}</b> \r\n de \r\n @if (total != null) {\r\n <b> {{total}} </b> items\r\n }\r\n @else{\r\n <b> - </b> items\r\n }\r\n </div>\r\n </ion-text>\r\n </div>\r\n <div class=\"w-full h-full items-center justify-end flex portrait:justify-center\" *ngIf=\"total != null\">\r\n <button class=\"flex items-center\" [disabled]=\"loading\" (click)=\"PageSub()\">\r\n <ion-icon [ngClass]=\"{'opacity-20': page == 1}\" name=\"chevron-back\" class=\"cursor-pointer default transition\"></ion-icon>\r\n </button>\r\n\r\n <ion-spinner *ngIf=\"loading && lstPages.length == 0\"></ion-spinner>\r\n\r\n <button [disabled]=\"loading\" class=\"page\" *ngFor=\"let item of lstPages\" [ngClass]=\"{ 'selected' : page == item }\" (click)=\"SetPage(item)\"> {{item}} </button>\r\n\r\n <button class=\"flex items-center\" [disabled]=\"loading\" (click)=\"PageAdd()\">\r\n <ion-icon [ngClass]=\"{'opacity-20': page == TotalPages }\" name=\"chevron-forward\" class=\"cursor-pointer default transition\"></ion-icon>\r\n </button>\r\n\r\n @if (TotalPages > 5) {\r\n <button [disabled]=\"loading\" class=\"page\" [id]=\"pop_id\"><ion-icon name=\"search\"></ion-icon></button>\r\n <ion-popover [trigger]=\"pop_id\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content>\r\n <div class=\"grid grid-cols-10 pl-3\">\r\n <div class=\"col-span-8 pb-2\">\r\n <ion-input class=\"number-class\" [(ngModel)]=\"_page\" type=\"Number\" labelPlacement=\"stacked\" label=\"P\u00E1gina [Max. {{TotalPages}}]\"></ion-input>\r\n </div>\r\n <div class=\"col-span-2\">\r\n <ion-button [disabled]=\"loading\" class=\"size-full\" size=\"small\" (click)=\"SetPageManual()\" style=\"--border-radius: 0rem\">\r\n <ion-icon class=\"w-4 aspect-square\" slot=\"icon-only\" name=\"checkmark-circle\"></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 </div>\r\n</div>", styles: ["#pagination{background-color:var(--ion-color-step-300);color:var(--ion-color-step-700)}@media (prefers-color-scheme: light){#pagination{background-color:var(--ion-framework-table-light)}}button.page{margin-left:.25rem;margin-right:.25rem;display:flex;height:1.5rem;min-width:1.5rem;cursor:pointer;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;padding-left:.25rem;padding-right:.25rem;text-align:center;border:var(--ion-color-dark) solid 1px;color:var(--ion-color-dark);transition:all .25s}button.page:disabled{opacity:.75}button.page.selected{background-color:var(--ion-color-dark);color:var(--ion-color-dark-contrast)!important}\n"] }]
|
|
105
|
+
}], ctorParameters: () => [{ type: i1.GenericService }], propDecorators: { _total: [{
|
|
106
|
+
type: Input,
|
|
107
|
+
args: ['total']
|
|
108
|
+
}], _limit: [{
|
|
109
|
+
type: Input,
|
|
110
|
+
args: ['limit']
|
|
111
|
+
}], length: [{
|
|
112
|
+
type: Input
|
|
113
|
+
}], loading: [{
|
|
114
|
+
type: Input
|
|
115
|
+
}], page: [{
|
|
116
|
+
type: Input
|
|
117
|
+
}], pageChange: [{
|
|
118
|
+
type: Output
|
|
119
|
+
}], changeEmitter: [{
|
|
120
|
+
type: Output,
|
|
121
|
+
args: ['change']
|
|
122
|
+
}] } });
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1wYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC1wYWdpbmF0aW9uL2RlZmF1bHQtcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYXBwaGlyZS1pb24tZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtcGFnaW5hdGlvbi9kZWZhdWx0LXBhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7QUFFeEQsc0NBQXNDO0FBTXRDLE1BQU0sT0FBTywwQkFBMEI7SUFLckMsMkJBQTJCO0lBQzNCLElBQW9CLE1BQU0sQ0FBQyxLQUFhO1FBQ3RDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFBQSxDQUFDO0lBQ0Ysd0JBQXdCO0lBQ3hCLElBQW9CLE1BQU0sQ0FBQyxLQUFvQjtRQUM3QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2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QyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBHZW5lcmljU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2dlbmVyaWNzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UnO1xyXG5cclxuLyoqIENvbXBvbmVudGUgZGUgcGFnaW5hw6fDo28gcGFkcsOjbyAgKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkZWZhdWx0LXBhZ2luYXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWZhdWx0LXBhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RlZmF1bHQtcGFnaW5hdGlvbi5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVmYXVsdFBhZ2luYXRpb25Db21wb25lbnQgIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcblxyXG4gIHRvdGFsOiBudW1iZXIgPSAwO1xyXG4gIGxpbWl0OiBudW1iZXIgfCBudWxsID0gMDtcclxuICAvKiogVmFsb3IgdG90YWwgZGUgZGFkb3MgKi9cclxuICBASW5wdXQoJ3RvdGFsJykgc2V0IF90b3RhbCh2YWx1ZTogbnVtYmVyKXsgIFxyXG4gICAgdGhpcy50b3RhbCA9IHZhbHVlO1xyXG4gICAgdGhpcy5Ub3RhbFBhZ2VzID0gdGhpcy5HZXRUb3RhbFBhZ2VzKCk7XHJcbiAgICB0aGlzLmxzdFBhZ2VzID0gdGhpcy5HZXRsc3RQYWdlcygpO1xyXG4gIH07XHJcbiAgLyoqIExpbWl0ZSBkZSBww6FnaW5hcyAqL1xyXG4gIEBJbnB1dCgnbGltaXQnKSBzZXQgX2xpbWl0KHZhbHVlOiBudW1iZXIgfCBudWxsKXsgXHJcbiAgICB0aGlzLmxpbWl0ID0gdmFsdWU7XHJcbiAgICB0aGlzLlRvdGFsUGFnZXMgPSB0aGlzLkdldFRvdGFsUGFnZXMoKTtcclxuICAgIHRoaXMubHN0UGFnZXMgPSB0aGlzLkdldGxzdFBhZ2VzKCk7XHJcbiAgfTtcclxuXHJcbiAgLyoqIFF1YW50aWRhZGUgZGUgZGFkb3MgZW0gdGVsYSAqL1xyXG4gIEBJbnB1dCgpIGxlbmd0aDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW47XHJcbiAgXHJcbiAgLyoqIFBhZ2luYSBhdHVhbCAodXNhbmRvIHR3byB3YXkgZGF0YSBiaW5kaW5nKSAqL1xyXG4gIEBJbnB1dCgpIHBhZ2U6IG51bWJlcjtcclxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICBcclxuICAvKiogRXZlbnRvIGVtaXRpZG8gbmEgbXVkYW7Dp2EgZGUgdmFsb3JlcyAoUGFnaW5hKSAqL1xyXG4gIEBPdXRwdXQoJ2NoYW5nZScpIGNoYW5nZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZ2VuZXJpY1NlcnZpY2U6IEdlbmVyaWNTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7fVxyXG4gIHBvcF9pZDogc3RyaW5nID0gXCJwb3BvdmVyLWlkLVwiICsgVXRpbHMuR2VuZXJhdGVHVUlEKCk7XHJcblxyXG4gIEdldGxzdFBhZ2VzKCk6IG51bWJlcltdIHtcclxuICAgIGlmKCF0aGlzLlRvdGFsUGFnZXMpeyByZXR1cm4gW107IH1cclxuICAgIHZhciBzdGFydEluZGV4OiBudW1iZXI7XHJcbiAgICB2YXIgc3RhcnQ6IG51bWJlcltdID0gW107XHJcblxyXG4gICAgc3RhcnRJbmRleCA9IHRoaXMucGFnZSAtIDE7XHJcblxyXG4gICAgdmFyIF86IG51bWJlcltdID0gW107XHJcbiAgICBmb3IobGV0IGkgPSB0aGlzLlRvdGFsUGFnZXMgLSA0OyBpIDw9IHRoaXMuVG90YWxQYWdlcyA7IGkrKyl7XHJcbiAgICAgIGlmKGkgPiAwKXtcclxuICAgICAgICBfLnB1c2goaSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmb3IobGV0IGkgPSBzdGFydEluZGV4OyBpIDw9IHRoaXMuVG90YWxQYWdlcyAmJiBpIDwgc3RhcnRJbmRleCArIDU7IGkrKyl7XHJcbiAgICAgIGlmKGkgPiAwKXtcclxuICAgICAgICBzdGFydC5wdXNoKGkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZihzdGFydEluZGV4ID09IDAgJiYgdGhpcy5Ub3RhbFBhZ2VzID49IDUpe1xyXG4gICAgICBzdGFydC5wdXNoKDUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKHN0YXJ0WzBdID4gX1swXSl7XHJcbiAgICAgIHJldHVybiBfO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBzdGFydDtcclxuICB9XHJcblxyXG4gIEdldFRvdGFsUGFnZXMoKTogbnVtYmVye1xyXG4gICAgcmV0dXJuIHRoaXMubGltaXQgPyBNYXRoLmNlaWwodGhpcy50b3RhbCAvIHRoaXMubGltaXQpIDogTWF0aC5jZWlsKHRoaXMudG90YWwgLyB0aGlzLnRvdGFsKVxyXG4gIH1cclxuXHJcbiAgbHN0UGFnZXMgIDogbnVtYmVyW10gPSBbXTtcclxuICBUb3RhbFBhZ2VzOiBudW1iZXIgPSAwO1xyXG5cclxuICBQYWdlQWRkKCk6IHZvaWR7XHJcbiAgICBpZih0aGlzLnBhZ2UgKyAxID4gdGhpcy5Ub3RhbFBhZ2VzKXsgcmV0dXJuOyB9XHJcbiAgICB0aGlzLlNldFBhZ2UodGhpcy5wYWdlICsgMSk7XHJcbiAgfVxyXG4gIFxyXG4gIFBhZ2VTdWIoKTogdm9pZHtcclxuICAgIGlmKHRoaXMucGFnZSAtIDEgPCAxKXsgcmV0dXJuOyB9XHJcbiAgICB0aGlzLlNldFBhZ2UodGhpcy5wYWdlIC0gMSk7XHJcbiAgfVxyXG5cclxuICBTZXRQYWdlKHZhbHVlOiBudW1iZXIpOiB2b2lke1xyXG4gICAgaWYodmFsdWUgIT0gdGhpcy5wYWdlKXtcclxuICAgICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgICB0aGlzLkVtaXRDaGFuZ2UoKVxyXG5cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5Ub3RhbFBhZ2VzID0gdGhpcy5HZXRUb3RhbFBhZ2VzKCk7XHJcbiAgICAgICAgdGhpcy5sc3RQYWdlcyA9IHRoaXMuR2V0bHN0UGFnZXMoKTtcclxuICAgICAgfSwgMTAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIF9wYWdlOiBudW1iZXI7XHJcbiAgU2V0UGFnZU1hbnVhbCgpe1xyXG4gICAgaWYodGhpcy5fcGFnZSAmJiB0aGlzLl9wYWdlID4gMCAmJiB0aGlzLl9wYWdlIDw9IHRoaXMuVG90YWxQYWdlcyl7XHJcbiAgICAgIHRoaXMuU2V0UGFnZSh0aGlzLl9wYWdlKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmdlbmVyaWNTZXJ2aWNlLlByZXNlbnRUb2FzdChcIlDDoWdpbmEgaW52w6FsaWRhXCIpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBFbWl0Q2hhbmdlKCk6IHZvaWR7XHJcbiAgICB0aGlzLmNoYW5nZUVtaXR0ZXIuZW1pdCgpO1xyXG4gIH1cclxufSIsIjxkaXYgaWQ9XCJwYWdpbmF0aW9uXCIgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciByb3VuZGVkLWItMnhsIHB4LTQgcHktMiBwb3J0cmFpdDpmbGV4LWNvbFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LXN0YXJ0IGZsZXggcG9ydHJhaXQ6anVzdGlmeS1jZW50ZXJcIj5cclxuICAgIDxpb24tc3Bpbm5lciBbaGlkZGVuXT1cIiEobG9hZGluZyAmJiBsc3RQYWdlcy5sZW5ndGggPT0gMClcIj48L2lvbi1zcGlubmVyPlxyXG4gICAgPGlvbi10ZXh0IFtoaWRkZW5dPVwibG9hZGluZyAmJiBsc3RQYWdlcy5sZW5ndGggPT0gMFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgIE1vc3RyYW5kbyAmbmJzcDtcclxuICAgICAgICA8aW9uLXNrZWxldG9uLXRleHQgKm5nSWY9XCJsb2FkaW5nXCIgW2FuaW1hdGVkXT1cInRydWVcIiBzdHlsZT1cIndpZHRoOiAyY2hcIj48L2lvbi1za2VsZXRvbi10ZXh0PlxyXG4gICAgICAgIDxiICpuZ0lmPVwiIWxvYWRpbmdcIj57e2xpbWl0ICogcGFnZSAtIGxpbWl0ICsgbGVuZ3RofX08L2I+ICAmbmJzcDtcclxuICAgICAgICBkZSBcclxuICAgICAgICBAaWYgKHRvdGFsICE9IG51bGwpIHtcclxuICAgICAgICAgIDxiPiZuYnNwOyB7e3RvdGFsfX0gJm5ic3A7PC9iPiBpdGVtc1xyXG4gICAgICAgIH1cclxuICAgICAgICBAZWxzZXtcclxuICAgICAgICAgIDxiPiZuYnNwOyAtICZuYnNwOyA8L2I+IGl0ZW1zXHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvaW9uLXRleHQ+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInctZnVsbCBoLWZ1bGwgaXRlbXMtY2VudGVyIGp1c3RpZnktZW5kIGZsZXggcG9ydHJhaXQ6anVzdGlmeS1jZW50ZXJcIiAqbmdJZj1cInRvdGFsICE9IG51bGxcIj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiIFtkaXNhYmxlZF09XCJsb2FkaW5nXCIgKGNsaWNrKT1cIlBhZ2VTdWIoKVwiPlxyXG4gICAgICA8aW9uLWljb24gW25nQ2xhc3NdPVwieydvcGFjaXR5LTIwJzogcGFnZSA9PSAxfVwiIG5hbWU9XCJjaGV2cm9uLWJhY2tcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyIGRlZmF1bHQgdHJhbnNpdGlvblwiPjwvaW9uLWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8aW9uLXNwaW5uZXIgKm5nSWY9XCJsb2FkaW5nICYmIGxzdFBhZ2VzLmxlbmd0aCA9PSAwXCI+PC9pb24tc3Bpbm5lcj5cclxuXHJcbiAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJsb2FkaW5nXCIgY2xhc3M9XCJwYWdlXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbHN0UGFnZXNcIiBbbmdDbGFzc109XCJ7ICdzZWxlY3RlZCcgOiBwYWdlID09IGl0ZW0gfVwiIChjbGljayk9XCJTZXRQYWdlKGl0ZW0pXCI+IHt7aXRlbX19IDwvYnV0dG9uPlxyXG5cclxuICAgIDxidXR0b24gY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiIFtkaXNhYmxlZF09XCJsb2FkaW5nXCIgKGNsaWNrKT1cIlBhZ2VBZGQoKVwiPlxyXG4gICAgICA8aW9uLWljb24gW25nQ2xhc3NdPVwieydvcGFjaXR5LTIwJzogcGFnZSA9PSBUb3RhbFBhZ2VzIH1cIiBuYW1lPVwiY2hldnJvbi1mb3J3YXJkXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBkZWZhdWx0IHRyYW5zaXRpb25cIj48L2lvbi1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgQGlmIChUb3RhbFBhZ2VzID4gNSkge1xyXG4gICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJsb2FkaW5nXCIgY2xhc3M9XCJwYWdlXCIgW2lkXT1cInBvcF9pZFwiPjxpb24taWNvbiBuYW1lPVwic2VhcmNoXCI+PC9pb24taWNvbj48L2J1dHRvbj5cclxuICAgICAgPGlvbi1wb3BvdmVyIFt0cmlnZ2VyXT1cInBvcF9pZFwiIHRyaWdnZXJBY3Rpb249XCJjbGlja1wiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDxpb24tY29udGVudD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEwIHBsLTNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNwYW4tOCBwYi0yXCI+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWlucHV0IGNsYXNzPVwibnVtYmVyLWNsYXNzXCIgWyhuZ01vZGVsKV09XCJfcGFnZVwiIHR5cGU9XCJOdW1iZXJcIiBsYWJlbFBsYWNlbWVudD1cInN0YWNrZWRcIiBsYWJlbD1cIlDDoWdpbmEgW01heC4ge3tUb3RhbFBhZ2VzfX1dXCI+PC9pb24taW5wdXQ+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zcGFuLTJcIj5cclxuICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIFtkaXNhYmxlZF09XCJsb2FkaW5nXCIgY2xhc3M9XCJzaXplLWZ1bGxcIiBzaXplPVwic21hbGxcIiAoY2xpY2spPVwiU2V0UGFnZU1hbnVhbCgpXCIgc3R5bGU9XCItLWJvcmRlci1yYWRpdXM6IDByZW1cIj5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIGNsYXNzPVwidy00IGFzcGVjdC1zcXVhcmVcIiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNoZWNrbWFyay1jaXJjbGVcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvaW9uLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9pb24tcG9wb3Zlcj5cclxuICAgIH1cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|