@sapphire-ion/framework 1.2.63 → 1.3.2
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/build.ps1 +39 -0
- package/ng-package.json +10 -0
- package/package.json +43 -47
- package/src/lib/classes/comparison/comparison-operator.ts +17 -0
- package/src/lib/classes/comparison/comparison-value-type.ts +34 -0
- package/src/lib/classes/comparison/comparison.ts +45 -0
- package/src/lib/classes/comparison/properties/bool-property.ts +16 -0
- package/src/lib/classes/comparison/properties/date-property.ts +28 -0
- package/src/lib/classes/comparison/properties/datetime-property.ts +28 -0
- package/src/lib/classes/comparison/properties/decimal-property.ts +28 -0
- package/src/lib/classes/comparison/properties/enum-property.ts +28 -0
- package/src/lib/classes/comparison/properties/implicit-property.ts +13 -0
- package/src/lib/classes/comparison/properties/int-property.ts +28 -0
- package/src/lib/classes/comparison/properties/long-property.ts +28 -0
- package/src/lib/classes/comparison/properties/string-property.ts +16 -0
- package/src/lib/classes/comparison/properties/time-property.ts +28 -0
- package/{lib/classes/credentials.d.ts → src/lib/classes/credentials.ts} +5 -5
- package/src/lib/classes/environment.ts +37 -0
- package/src/lib/classes/filters/view-filtros.ts +18 -0
- package/src/lib/classes/infinite-scroll.ts +112 -0
- package/src/lib/classes/inputs/table-field-form-builder.ts +12 -0
- package/src/lib/classes/inputs/table-field.ts +62 -0
- package/src/lib/classes/page-option.ts +8 -0
- package/src/lib/classes/routes/default-routing-factory.ts +24 -0
- package/src/lib/classes/routes/id-preloader-configuration.ts +21 -0
- package/src/lib/classes/routes/route-data.ts +9 -0
- package/src/lib/components/carousel/carousel-image/carousel-image.component.html +4 -0
- package/src/lib/components/carousel/carousel-image/carousel-image.component.ts +15 -0
- package/src/lib/components/carousel/carousel-item/carousel-item.component.html +3 -0
- package/src/lib/components/carousel/carousel-item/carousel-item.component.ts +14 -0
- package/src/lib/components/carousel/carousel.component.html +22 -0
- package/src/lib/components/carousel/carousel.component.ts +83 -0
- package/src/lib/components/carousel/carousel.module.ts +20 -0
- package/src/lib/components/carousel/i-carousel-item.component.ts +8 -0
- package/src/lib/components/content-block/content-block.component.html +6 -0
- package/src/lib/components/content-block/content-block.component.ts +25 -0
- package/src/lib/components/default/default-list/abstract-list.ts +56 -0
- package/src/lib/components/default/default-list/default-list.component.html +60 -0
- package/src/lib/components/default/default-list/default-list.component.ts +72 -0
- package/src/lib/components/default/default-list/header-list/header-list.component.html +32 -0
- package/src/lib/components/default/default-list/header-list/header-list.component.ts +85 -0
- package/src/lib/components/default/default-list/list.ts +127 -0
- package/src/lib/components/default/default-pagination/default-pagination.component.html +52 -0
- package/src/lib/components/default/default-pagination/default-pagination.component.ts +118 -0
- package/src/lib/components/default/default-table/default-table.component.html +104 -0
- package/src/lib/components/default/default-table/default-table.component.ts +255 -0
- package/src/lib/components/default/default-table/th-filter/th-filter.component.html +69 -0
- package/src/lib/components/default/default-table/th-filter/th-filter.component.ts +205 -0
- package/src/lib/components/default/default-view/abstract-view.ts +25 -0
- package/src/lib/components/default/default-view/default-view.component.html +111 -0
- package/src/lib/components/default/default-view/default-view.component.ts +56 -0
- package/src/lib/components/default/default-view/header-view/header-view.component.html +64 -0
- package/src/lib/components/default/default-view/header-view/header-view.component.ts +62 -0
- package/src/lib/components/default/default-view/view.ts +195 -0
- package/src/lib/components/default/default.module.ts +61 -0
- package/src/lib/components/default-page/default.page.html +63 -0
- package/src/lib/components/default-page/default.page.ts +84 -0
- package/src/lib/components/drag-drop-file/drag-drop-file.directive.ts +44 -0
- package/src/lib/components/drag-drop-file/drag-drop-file.module.ts +21 -0
- package/src/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.html +5 -0
- package/src/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.ts +17 -0
- package/src/lib/components/drawer/default-drawer-end/default-drawer-end.component.html +12 -0
- package/src/lib/components/drawer/default-drawer-end/default-drawer-end.component.ts +35 -0
- package/src/lib/components/drawer/drawer-group/drawer-group.component.html +79 -0
- package/src/lib/components/drawer/drawer-group/drawer-group.component.ts +49 -0
- package/src/lib/components/drawer/drawer.component.html +120 -0
- package/src/lib/components/drawer/drawer.component.ts +157 -0
- package/src/lib/components/drawer/menu.ts +20 -0
- package/src/lib/components/filter/filter.component.html +43 -0
- package/src/lib/components/filter/filter.component.ts +141 -0
- package/src/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.html +35 -0
- package/src/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.ts +19 -0
- package/src/lib/components/image/image.component.html +17 -0
- package/src/lib/components/image/image.component.ts +95 -0
- package/src/lib/components/info-popover/info-popover.component.html +23 -0
- package/src/lib/components/info-popover/info-popover.component.ts +75 -0
- package/src/lib/components/inputs/custom-input.ts +94 -0
- package/src/lib/components/inputs/input-bool/input-bool.component.html +26 -0
- package/src/lib/components/inputs/input-bool/input-bool.component.ts +39 -0
- package/src/lib/components/inputs/input-bool/input-bool.configuration.ts +14 -0
- package/src/lib/components/inputs/input-cep/input-cep.component.html +27 -0
- package/src/lib/components/inputs/input-cep/input-cep.component.ts +41 -0
- package/src/lib/components/inputs/input-cep/input-cep.configuration.ts +4 -0
- package/src/lib/components/inputs/input-color/input-color.component.html +79 -0
- package/src/lib/components/inputs/input-color/input-color.component.ts +544 -0
- package/{lib/components/inputs/input-configuration.d.ts → src/lib/components/inputs/input-configuration.ts} +23 -10
- package/src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.html +28 -0
- package/src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.ts +99 -0
- package/src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.ts +4 -0
- package/src/lib/components/inputs/input-date/input-date.component.html +89 -0
- package/src/lib/components/inputs/input-date/input-date.component.ts +269 -0
- package/src/lib/components/inputs/input-date/input-date.configuration.ts +8 -0
- package/src/lib/components/inputs/input-decimal/input-decimal.component.html +32 -0
- package/src/lib/components/inputs/input-decimal/input-decimal.component.ts +283 -0
- package/src/lib/components/inputs/input-decimal/input-decimal.configuration.ts +47 -0
- package/src/lib/components/inputs/input-default-configurations.ts +15 -0
- package/src/lib/components/inputs/input-file/download-button/download-button.component.html +56 -0
- package/src/lib/components/inputs/input-file/download-button/download-button.component.ts +91 -0
- package/src/lib/components/inputs/input-file/input-file.component.html +56 -0
- package/src/lib/components/inputs/input-file/input-file.component.ts +97 -0
- package/src/lib/components/inputs/input-file/input-file.configuration.ts +25 -0
- package/src/lib/components/inputs/input-icon/fluenticons.ts +3733 -0
- package/src/lib/components/inputs/input-icon/input-icon.component.html +8 -0
- package/src/lib/components/inputs/input-icon/input-icon.component.ts +52 -0
- package/src/lib/components/inputs/input-icon/ionicons.ts +1359 -0
- package/src/lib/components/inputs/input-provider-factory.ts +12 -0
- package/src/lib/components/inputs/input-select/directives/sion-label-template.directive.ts +19 -0
- package/src/lib/components/inputs/input-select/directives/sion-option-template.directive.ts +16 -0
- package/src/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.ts +19 -0
- package/src/lib/components/inputs/input-select/input-select.component.html +176 -0
- package/src/lib/components/inputs/input-select/input-select.component.ts +366 -0
- package/src/lib/components/inputs/input-select/input.select.configuration.ts +300 -0
- package/src/lib/components/inputs/input-string/input-string.component.html +27 -0
- package/src/lib/components/inputs/input-string/input-string.component.ts +31 -0
- package/src/lib/components/inputs/input-string/input-string.configuration.ts +20 -0
- package/src/lib/components/inputs/input-telefone/input-telefone.component.html +29 -0
- package/src/lib/components/inputs/input-telefone/input-telefone.component.ts +63 -0
- package/src/lib/components/inputs/input-telefone/input-telefone.configuration.ts +8 -0
- package/src/lib/components/inputs/input-textarea/input-textarea.component.html +27 -0
- package/src/lib/components/inputs/input-textarea/input-textarea.component.ts +75 -0
- package/src/lib/components/inputs/input-textarea/input-textarea.configuration.ts +7 -0
- package/src/lib/components/inputs/input-type.ts +22 -0
- package/src/lib/components/inputs/input-validators.ts +111 -0
- package/src/lib/components/inputs/inputs.module.ts +74 -0
- package/src/lib/components/loading/loading.component.html +28 -0
- package/src/lib/components/loading/loading.component.ts +29 -0
- package/src/lib/components/login/login-admin/login-admin.component.html +28 -0
- package/src/lib/components/login/login-admin/login-admin.component.ts +51 -0
- package/src/lib/components/login/login.component.html +104 -0
- package/src/lib/components/login/login.component.ts +96 -0
- package/src/lib/components/main-content/main-content.component.html +145 -0
- package/src/lib/components/main-content/main-content.component.ts +93 -0
- package/src/lib/components/popover/sion-popover/sion-popover.component.html +21 -0
- package/src/lib/components/popover/sion-popover/sion-popover.component.ts +182 -0
- package/src/lib/components/popover/sion-popover.module.ts +12 -0
- package/src/lib/components/sion-card/sion-card.component.html +12 -0
- package/src/lib/components/sion-card/sion-card.component.ts +23 -0
- package/src/lib/components/stepper/step/step.component.html +11 -0
- package/src/lib/components/stepper/step/step.component.ts +44 -0
- package/src/lib/components/stepper/stepper.component.html +3 -0
- package/src/lib/components/stepper/stepper.component.ts +37 -0
- package/src/lib/components/stepper/stepper.module.ts +15 -0
- package/src/lib/components/tabs/tab/tab.component.html +8 -0
- package/src/lib/components/tabs/tab/tab.component.ts +28 -0
- package/src/lib/components/tabs/tabs/tabs.component.html +14 -0
- package/src/lib/components/tabs/tabs/tabs.component.ts +42 -0
- package/src/lib/components/tabs/tabs.module.ts +15 -0
- package/src/lib/components/text-tooltip/text-tooltip.component.html +8 -0
- package/src/lib/components/text-tooltip/text-tooltip.component.scss +0 -0
- package/src/lib/components/text-tooltip/text-tooltip.component.ts +45 -0
- package/src/lib/components/tooltip/tooltip.component.html +53 -0
- package/src/lib/components/tooltip/tooltip.component.ts +16 -0
- package/src/lib/core.module.ts +29 -0
- package/src/lib/directives/ng-var.directive.ts +26 -0
- package/src/lib/guards/auth.guard.ts +19 -0
- package/src/lib/guards/error.interceptor.ts +108 -0
- package/src/lib/guards/token.interceptor.ts +28 -0
- package/src/lib/index.ts +191 -0
- package/src/lib/pipes/secure.pipe.ts +39 -0
- package/src/lib/services/auth.service.ts +150 -0
- package/src/lib/services/crypto.service.ts +164 -0
- package/src/lib/services/environment.service.ts +17 -0
- package/src/lib/services/generic.service.ts +85 -0
- package/src/lib/services/modal-focus-trap.service.ts +65 -0
- package/src/lib/services/navigation-context.service.ts +121 -0
- package/src/lib/services/popover-focus-trap.service.ts +65 -0
- package/src/lib/services/route/route.cache.service.ts +17 -0
- package/src/lib/services/route/route.provider.service.ts +49 -0
- package/src/lib/services/usuario.service.ts +44 -0
- package/src/lib/services/utils.service.ts +216 -0
- package/src/lib/services/web/api-url-provider.service.ts +48 -0
- package/src/lib/services/web/http.ativo.service.ts +37 -0
- package/src/lib/services/web/http.service.ts +206 -0
- package/src/lib/services/web/storage.service.ts +210 -0
- package/src/public-api.ts +5 -0
- package/tailwind.config.js +27 -0
- package/tsconfig.lib.json +29 -0
- package/tsconfig.lib.prod.json +23 -0
- package/tsconfig.spec.json +27 -0
- package/esm2022/lib/classes/comparison/comparison-operator.mjs +0 -18
- package/esm2022/lib/classes/comparison/comparison-value-type.mjs +0 -25
- package/esm2022/lib/classes/comparison/comparison.mjs +0 -41
- package/esm2022/lib/classes/comparison/properties/bool-property.mjs +0 -15
- package/esm2022/lib/classes/comparison/properties/date-property.mjs +0 -27
- package/esm2022/lib/classes/comparison/properties/datetime-property.mjs +0 -27
- package/esm2022/lib/classes/comparison/properties/decimal-property.mjs +0 -27
- package/esm2022/lib/classes/comparison/properties/enum-property.mjs +0 -27
- package/esm2022/lib/classes/comparison/properties/implicit-property.mjs +0 -12
- package/esm2022/lib/classes/comparison/properties/int-property.mjs +0 -27
- package/esm2022/lib/classes/comparison/properties/long-property.mjs +0 -27
- package/esm2022/lib/classes/comparison/properties/string-property.mjs +0 -15
- package/esm2022/lib/classes/comparison/properties/time-property.mjs +0 -27
- package/esm2022/lib/classes/credentials.mjs +0 -2
- package/esm2022/lib/classes/environment.mjs +0 -34
- package/esm2022/lib/classes/filters/view-filtros.mjs +0 -18
- package/esm2022/lib/classes/infinite-scroll.mjs +0 -90
- package/esm2022/lib/classes/inputs/table-field-form-builder.mjs +0 -10
- package/esm2022/lib/classes/inputs/table-field.mjs +0 -79
- package/esm2022/lib/classes/page-option.mjs +0 -2
- package/esm2022/lib/classes/routes/default-routing-factory.mjs +0 -23
- package/esm2022/lib/classes/routes/id-preloader-configuration.mjs +0 -22
- package/esm2022/lib/classes/routes/route-data.mjs +0 -9
- package/esm2022/lib/components/carousel/carousel-image/carousel-image.component.mjs +0 -18
- package/esm2022/lib/components/carousel/carousel-item/carousel-item.component.mjs +0 -15
- package/esm2022/lib/components/carousel/carousel.component.mjs +0 -79
- package/esm2022/lib/components/carousel/carousel.module.mjs +0 -31
- package/esm2022/lib/components/carousel/i-carousel-item.component.mjs +0 -16
- package/esm2022/lib/components/content-block/content-block.component.mjs +0 -27
- package/esm2022/lib/components/default/default-list/abstract-list.mjs +0 -49
- package/esm2022/lib/components/default/default-list/default-list.component.mjs +0 -95
- package/esm2022/lib/components/default/default-list/header-list/header-list.component.mjs +0 -98
- package/esm2022/lib/components/default/default-list/list.mjs +0 -120
- package/esm2022/lib/components/default/default-pagination/default-pagination.component.mjs +0 -123
- package/esm2022/lib/components/default/default-table/default-table.component.mjs +0 -216
- package/esm2022/lib/components/default/default-table/th-filter/th-filter.component.mjs +0 -212
- package/esm2022/lib/components/default/default-view/abstract-view.mjs +0 -22
- package/esm2022/lib/components/default/default-view/default-view.component.mjs +0 -76
- package/esm2022/lib/components/default/default-view/header-view/header-view.component.mjs +0 -81
- package/esm2022/lib/components/default/default-view/view.mjs +0 -198
- package/esm2022/lib/components/default/default.module.mjs +0 -98
- package/esm2022/lib/components/default-page/default.page.mjs +0 -75
- package/esm2022/lib/components/drag-drop-file/drag-drop-file.directive.mjs +0 -60
- package/esm2022/lib/components/drag-drop-file/drag-drop-file.module.mjs +0 -31
- package/esm2022/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.mjs +0 -15
- package/esm2022/lib/components/drawer/default-drawer-end/default-drawer-end.component.mjs +0 -34
- package/esm2022/lib/components/drawer/drawer-group/drawer-group.component.mjs +0 -52
- package/esm2022/lib/components/drawer/drawer.component.mjs +0 -156
- package/esm2022/lib/components/drawer/menu.mjs +0 -15
- package/esm2022/lib/components/filter/filter.component.mjs +0 -145
- package/esm2022/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.mjs +0 -17
- package/esm2022/lib/components/image/image.component.mjs +0 -91
- package/esm2022/lib/components/info-popover/info-popover.component.mjs +0 -91
- package/esm2022/lib/components/inputs/custom-input.mjs +0 -85
- package/esm2022/lib/components/inputs/input-bool/input-bool.component.mjs +0 -46
- package/esm2022/lib/components/inputs/input-bool/input-bool.configuration.mjs +0 -16
- package/esm2022/lib/components/inputs/input-cep/input-cep.component.mjs +0 -50
- package/esm2022/lib/components/inputs/input-cep/input-cep.configuration.mjs +0 -4
- package/esm2022/lib/components/inputs/input-color/input-color.component.mjs +0 -481
- package/esm2022/lib/components/inputs/input-configuration.mjs +0 -2
- package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.mjs +0 -116
- package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.mjs +0 -6
- package/esm2022/lib/components/inputs/input-date/input-date.component.mjs +0 -263
- package/esm2022/lib/components/inputs/input-date/input-date.configuration.mjs +0 -11
- package/esm2022/lib/components/inputs/input-decimal/input-decimal.component.mjs +0 -276
- package/esm2022/lib/components/inputs/input-decimal/input-decimal.configuration.mjs +0 -50
- package/esm2022/lib/components/inputs/input-default-configurations.mjs +0 -14
- package/esm2022/lib/components/inputs/input-file/download-button/download-button.component.mjs +0 -102
- package/esm2022/lib/components/inputs/input-file/input-file.component.mjs +0 -100
- package/esm2022/lib/components/inputs/input-file/input-file.configuration.mjs +0 -24
- package/esm2022/lib/components/inputs/input-icon/fluenticons.mjs +0 -3734
- package/esm2022/lib/components/inputs/input-icon/input-icon.component.mjs +0 -60
- package/esm2022/lib/components/inputs/input-icon/ionicons.mjs +0 -1360
- package/esm2022/lib/components/inputs/input-provider-factory.mjs +0 -12
- package/esm2022/lib/components/inputs/input-select/directives/sion-label-template.directive.mjs +0 -16
- package/esm2022/lib/components/inputs/input-select/directives/sion-option-template.directive.mjs +0 -16
- package/esm2022/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.mjs +0 -16
- package/esm2022/lib/components/inputs/input-select/input-select.component.mjs +0 -376
- package/esm2022/lib/components/inputs/input-select/input.select.configuration.mjs +0 -233
- package/esm2022/lib/components/inputs/input-string/input-string.component.mjs +0 -41
- package/esm2022/lib/components/inputs/input-string/input-string.configuration.mjs +0 -20
- package/esm2022/lib/components/inputs/input-telefone/input-telefone.component.mjs +0 -74
- package/esm2022/lib/components/inputs/input-telefone/input-telefone.configuration.mjs +0 -12
- package/esm2022/lib/components/inputs/input-textarea/input-textarea.component.mjs +0 -82
- package/esm2022/lib/components/inputs/input-textarea/input-textarea.configuration.mjs +0 -7
- package/esm2022/lib/components/inputs/input-type.mjs +0 -24
- package/esm2022/lib/components/inputs/input-validators.mjs +0 -121
- package/esm2022/lib/components/inputs/inputs.module.mjs +0 -133
- package/esm2022/lib/components/loading/loading.component.mjs +0 -34
- package/esm2022/lib/components/login/login-admin/login-admin.component.mjs +0 -52
- package/esm2022/lib/components/login/login.component.mjs +0 -99
- package/esm2022/lib/components/main-content/main-content.component.mjs +0 -100
- package/esm2022/lib/components/popover/sion-popover/sion-popover.component.mjs +0 -182
- package/esm2022/lib/components/popover/sion-popover.module.mjs +0 -21
- package/esm2022/lib/components/sion-card/sion-card.component.mjs +0 -26
- package/esm2022/lib/components/stepper/step/step.component.mjs +0 -43
- package/esm2022/lib/components/stepper/stepper.component.mjs +0 -36
- package/esm2022/lib/components/stepper/stepper.module.mjs +0 -25
- package/esm2022/lib/components/tabs/tab/tab.component.mjs +0 -41
- package/esm2022/lib/components/tabs/tabs/tabs.component.mjs +0 -56
- package/esm2022/lib/components/tabs/tabs.module.mjs +0 -22
- package/esm2022/lib/components/text-tooltip/text-tooltip.component.mjs +0 -51
- package/esm2022/lib/components/tooltip/tooltip.component.mjs +0 -21
- package/esm2022/lib/core.module.mjs +0 -38
- package/esm2022/lib/directives/ng-var.directive.mjs +0 -29
- package/esm2022/lib/guards/auth.guard.mjs +0 -26
- package/esm2022/lib/guards/error.interceptor.mjs +0 -107
- package/esm2022/lib/guards/token.interceptor.mjs +0 -25
- package/esm2022/lib/index.mjs +0 -188
- package/esm2022/lib/pipes/secure.pipe.mjs +0 -42
- package/esm2022/lib/services/auth.service.mjs +0 -146
- package/esm2022/lib/services/environment.service.mjs +0 -26
- package/esm2022/lib/services/generic.service.mjs +0 -84
- package/esm2022/lib/services/modal-focus-trap.service.mjs +0 -62
- package/esm2022/lib/services/navigation-context.service.mjs +0 -111
- package/esm2022/lib/services/popover-focus-trap.service.mjs +0 -62
- package/esm2022/lib/services/route/route.cache.service.mjs +0 -15
- package/esm2022/lib/services/route/route.provider.service.mjs +0 -42
- package/esm2022/lib/services/usuario.service.mjs +0 -49
- package/esm2022/lib/services/utils.service.mjs +0 -190
- package/esm2022/lib/services/web/api-url-provider.service.mjs +0 -29
- package/esm2022/lib/services/web/http.ativo.service.mjs +0 -37
- package/esm2022/lib/services/web/http.service.mjs +0 -184
- package/esm2022/lib/services/web/storage.service.mjs +0 -186
- package/esm2022/public-api.mjs +0 -5
- package/esm2022/sapphire-ion-framework.mjs +0 -5
- package/fesm2022/sapphire-ion-framework.mjs +0 -12491
- package/fesm2022/sapphire-ion-framework.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/lib/classes/comparison/comparison-operator.d.ts +0 -9
- package/lib/classes/comparison/comparison-value-type.d.ts +0 -23
- package/lib/classes/comparison/comparison.d.ts +0 -25
- package/lib/classes/comparison/properties/bool-property.d.ts +0 -7
- package/lib/classes/comparison/properties/date-property.d.ts +0 -11
- package/lib/classes/comparison/properties/datetime-property.d.ts +0 -11
- package/lib/classes/comparison/properties/decimal-property.d.ts +0 -11
- package/lib/classes/comparison/properties/enum-property.d.ts +0 -11
- package/lib/classes/comparison/properties/implicit-property.d.ts +0 -6
- package/lib/classes/comparison/properties/int-property.d.ts +0 -11
- package/lib/classes/comparison/properties/long-property.d.ts +0 -11
- package/lib/classes/comparison/properties/string-property.d.ts +0 -7
- package/lib/classes/comparison/properties/time-property.d.ts +0 -11
- package/lib/classes/environment.d.ts +0 -14
- package/lib/classes/filters/view-filtros.d.ts +0 -10
- package/lib/classes/infinite-scroll.d.ts +0 -26
- package/lib/classes/inputs/table-field-form-builder.d.ts +0 -5
- package/lib/classes/inputs/table-field.d.ts +0 -20
- package/lib/classes/page-option.d.ts +0 -7
- package/lib/classes/routes/default-routing-factory.d.ts +0 -8
- package/lib/classes/routes/id-preloader-configuration.d.ts +0 -28
- package/lib/classes/routes/route-data.d.ts +0 -5
- package/lib/components/carousel/carousel-image/carousel-image.component.d.ts +0 -10
- package/lib/components/carousel/carousel-item/carousel-item.component.d.ts +0 -9
- package/lib/components/carousel/carousel.component.d.ts +0 -32
- package/lib/components/carousel/carousel.module.d.ts +0 -12
- package/lib/components/carousel/i-carousel-item.component.d.ts +0 -9
- package/lib/components/content-block/content-block.component.d.ts +0 -15
- package/lib/components/default/default-list/abstract-list.d.ts +0 -21
- package/lib/components/default/default-list/default-list.component.d.ts +0 -47
- package/lib/components/default/default-list/header-list/header-list.component.d.ts +0 -45
- package/lib/components/default/default-list/list.d.ts +0 -40
- package/lib/components/default/default-pagination/default-pagination.component.d.ts +0 -36
- package/lib/components/default/default-table/default-table.component.d.ts +0 -90
- package/lib/components/default/default-table/th-filter/th-filter.component.d.ts +0 -23
- package/lib/components/default/default-view/abstract-view.d.ts +0 -18
- package/lib/components/default/default-view/default-view.component.d.ts +0 -40
- package/lib/components/default/default-view/header-view/header-view.component.d.ts +0 -36
- package/lib/components/default/default-view/view.d.ts +0 -67
- package/lib/components/default/default.module.d.ts +0 -31
- package/lib/components/default-page/default.page.d.ts +0 -35
- package/lib/components/drag-drop-file/drag-drop-file.directive.d.ts +0 -14
- package/lib/components/drag-drop-file/drag-drop-file.module.d.ts +0 -10
- package/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.d.ts +0 -9
- package/lib/components/drawer/default-drawer-end/default-drawer-end.component.d.ts +0 -13
- package/lib/components/drawer/drawer-group/drawer-group.component.d.ts +0 -22
- package/lib/components/drawer/drawer.component.d.ts +0 -31
- package/lib/components/drawer/menu.d.ts +0 -9
- package/lib/components/filter/filter.component.d.ts +0 -29
- package/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.d.ts +0 -8
- package/lib/components/image/image.component.d.ts +0 -23
- package/lib/components/info-popover/info-popover.component.d.ts +0 -15
- package/lib/components/inputs/custom-input.d.ts +0 -40
- package/lib/components/inputs/input-bool/input-bool.component.d.ts +0 -16
- package/lib/components/inputs/input-bool/input-bool.configuration.d.ts +0 -17
- package/lib/components/inputs/input-cep/input-cep.component.d.ts +0 -18
- package/lib/components/inputs/input-cep/input-cep.configuration.d.ts +0 -3
- package/lib/components/inputs/input-color/input-color.component.d.ts +0 -77
- package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.d.ts +0 -19
- package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.d.ts +0 -5
- package/lib/components/inputs/input-date/input-date.component.d.ts +0 -61
- package/lib/components/inputs/input-date/input-date.configuration.d.ts +0 -11
- package/lib/components/inputs/input-decimal/input-decimal.component.d.ts +0 -27
- package/lib/components/inputs/input-decimal/input-decimal.configuration.d.ts +0 -28
- package/lib/components/inputs/input-default-configurations.d.ts +0 -13
- package/lib/components/inputs/input-file/download-button/download-button.component.d.ts +0 -40
- package/lib/components/inputs/input-file/input-file.component.d.ts +0 -28
- package/lib/components/inputs/input-file/input-file.configuration.d.ts +0 -8
- package/lib/components/inputs/input-icon/fluenticons.d.ts +0 -1
- package/lib/components/inputs/input-icon/input-icon.component.d.ts +0 -20
- package/lib/components/inputs/input-icon/ionicons.d.ts +0 -1
- package/lib/components/inputs/input-provider-factory.d.ts +0 -4
- package/lib/components/inputs/input-select/directives/sion-label-template.directive.d.ts +0 -18
- package/lib/components/inputs/input-select/directives/sion-option-template.directive.d.ts +0 -14
- package/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.d.ts +0 -18
- package/lib/components/inputs/input-select/input-select.component.d.ts +0 -83
- package/lib/components/inputs/input-select/input.select.configuration.d.ts +0 -127
- package/lib/components/inputs/input-string/input-string.component.d.ts +0 -14
- package/lib/components/inputs/input-string/input-string.configuration.d.ts +0 -15
- package/lib/components/inputs/input-telefone/input-telefone.component.d.ts +0 -19
- package/lib/components/inputs/input-telefone/input-telefone.configuration.d.ts +0 -9
- package/lib/components/inputs/input-textarea/input-textarea.component.d.ts +0 -17
- package/lib/components/inputs/input-textarea/input-textarea.configuration.d.ts +0 -4
- package/lib/components/inputs/input-type.d.ts +0 -22
- package/lib/components/inputs/input-validators.d.ts +0 -25
- package/lib/components/inputs/inputs.module.d.ts +0 -33
- package/lib/components/loading/loading.component.d.ts +0 -18
- package/lib/components/login/login-admin/login-admin.component.d.ts +0 -20
- package/lib/components/login/login.component.d.ts +0 -29
- package/lib/components/main-content/main-content.component.d.ts +0 -27
- package/lib/components/popover/sion-popover/sion-popover.component.d.ts +0 -43
- package/lib/components/popover/sion-popover.module.d.ts +0 -9
- package/lib/components/sion-card/sion-card.component.d.ts +0 -11
- package/lib/components/stepper/step/step.component.d.ts +0 -15
- package/lib/components/stepper/stepper.component.d.ts +0 -14
- package/lib/components/stepper/stepper.module.d.ts +0 -10
- package/lib/components/tabs/tab/tab.component.d.ts +0 -19
- package/lib/components/tabs/tabs/tabs.component.d.ts +0 -18
- package/lib/components/tabs/tabs.module.d.ts +0 -12
- package/lib/components/text-tooltip/text-tooltip.component.d.ts +0 -16
- package/lib/components/tooltip/tooltip.component.d.ts +0 -7
- package/lib/core.module.d.ts +0 -16
- package/lib/directives/ng-var.directive.d.ts +0 -12
- package/lib/guards/auth.guard.d.ts +0 -11
- package/lib/guards/error.interceptor.d.ts +0 -32
- package/lib/guards/token.interceptor.d.ts +0 -11
- package/lib/index.d.ts +0 -118
- package/lib/pipes/secure.pipe.d.ts +0 -15
- package/lib/services/auth.service.d.ts +0 -47
- package/lib/services/environment.service.d.ts +0 -10
- package/lib/services/generic.service.d.ts +0 -22
- package/lib/services/modal-focus-trap.service.d.ts +0 -13
- package/lib/services/navigation-context.service.d.ts +0 -14
- package/lib/services/popover-focus-trap.service.d.ts +0 -13
- package/lib/services/route/route.cache.service.d.ts +0 -7
- package/lib/services/route/route.provider.service.d.ts +0 -13
- package/lib/services/usuario.service.d.ts +0 -21
- package/lib/services/utils.service.d.ts +0 -53
- package/lib/services/web/api-url-provider.service.d.ts +0 -13
- package/lib/services/web/http.ativo.service.d.ts +0 -20
- package/lib/services/web/http.service.d.ts +0 -59
- package/lib/services/web/storage.service.d.ts +0 -46
- package/public-api.d.ts +0 -1
- /package/{themes → src/lib}/compiled-styles.scss +0 -0
- /package/{themes → src/lib}/components/carousel/carousel-image/carousel-image.component.scss +0 -0
- /package/{themes → src/lib}/components/carousel/carousel-item/carousel-item.component.scss +0 -0
- /package/{themes → src/lib}/components/carousel/carousel.component.scss +0 -0
- /package/{themes → src/lib}/components/content-block/content-block.component.scss +0 -0
- /package/{themes → src/lib}/components/default/default-list/default-list.component.scss +0 -0
- /package/{themes → src/lib}/components/default/default-list/header-list/header-list.component.scss +0 -0
- /package/{themes → src/lib}/components/default/default-pagination/default-pagination.component.scss +0 -0
- /package/{themes → src/lib}/components/default/default-table/default-table.component.scss +0 -0
- /package/{themes → src/lib}/components/default/default-table/th-filter/th-filter.component.scss +0 -0
- /package/{themes → src/lib}/components/default/default-view/default-view.component.scss +0 -0
- /package/{themes → src/lib}/components/default/default-view/header-view/header-view.component.scss +0 -0
- /package/{themes → src/lib}/components/default-page/default.page.scss +0 -0
- /package/{themes → src/lib}/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.scss +0 -0
- /package/{themes → src/lib}/components/drawer/default-drawer-end/default-drawer-end.component.scss +0 -0
- /package/{themes → src/lib}/components/drawer/drawer-group/drawer-group.component.scss +0 -0
- /package/{themes → src/lib}/components/drawer/drawer.component.scss +0 -0
- /package/{themes → src/lib}/components/filter/filter.component.scss +0 -0
- /package/{themes → src/lib}/components/http-responses-pages/forbidden-403/forbidden-403.component.scss +0 -0
- /package/{themes → src/lib}/components/image/image.component.scss +0 -0
- /package/{themes → src/lib}/components/info-popover/info-popover.component.scss +0 -0
- /package/{themes → src/lib}/components/inputs/input-bool/input-bool.component.scss +0 -0
- /package/{themes → src/lib}/components/inputs/input-cep/input-cep.component.scss +0 -0
- /package/{themes → src/lib}/components/inputs/input-color/input-color.component.scss +0 -0
- /package/{themes/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.scss → src/lib/components/inputs/input-color/input-color.configuration.ts} +0 -0
- /package/{themes/components/inputs/input-icon/input-icon.component.scss → src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.scss} +0 -0
- /package/{themes → src/lib}/components/inputs/input-date/input-date.component.scss +0 -0
- /package/{themes → src/lib}/components/inputs/input-decimal/input-decimal.component.scss +0 -0
- /package/{themes → src/lib}/components/inputs/input-file/download-button/download-button.component.scss +0 -0
- /package/{themes → src/lib}/components/inputs/input-file/input-file.component.scss +0 -0
- /package/{themes/components/inputs/input-string/input-string.component.scss → src/lib/components/inputs/input-icon/input-icon.component.scss} +0 -0
- /package/{themes → src/lib}/components/inputs/input-select/input-select.component.scss +0 -0
- /package/{themes/components/inputs/input-telefone/input-telefone.component.scss → src/lib/components/inputs/input-string/input-string.component.scss} +0 -0
- /package/{themes/components/loading/loading.component.scss → src/lib/components/inputs/input-telefone/input-telefone.component.scss} +0 -0
- /package/{themes → src/lib}/components/inputs/input-textarea/input-textarea.component.scss +0 -0
- /package/{themes → src/lib}/components/inputs/inputs.scss +0 -0
- /package/{themes/components/sion-card/sion-card.component.scss → src/lib/components/loading/loading.component.scss} +0 -0
- /package/{themes → src/lib}/components/login/login-admin/login-admin.component.scss +0 -0
- /package/{themes → src/lib}/components/login/login.component.scss +0 -0
- /package/{themes → src/lib}/components/main-content/main-content.component.scss +0 -0
- /package/{themes → src/lib}/components/popover/sion-popover/sion-popover.component.scss +0 -0
- /package/{themes/components/stepper/stepper.component.scss → src/lib/components/sion-card/sion-card.component.scss} +0 -0
- /package/{themes → src/lib}/components/stepper/step/step.component.scss +0 -0
- /package/{themes/components/tabs/tab/tab.component.scss → src/lib/components/stepper/stepper.component.scss} +0 -0
- /package/{themes/components/text-tooltip/text-tooltip.component.scss → src/lib/components/tabs/tab/tab.component.scss} +0 -0
- /package/{themes → src/lib}/components/tabs/tabs/tabs.component.scss +0 -0
- /package/{themes → src/lib}/components/tooltip/tooltip.component.scss +0 -0
- /package/{themes → src/lib}/styles/components.scss +0 -0
- /package/{themes → src/lib}/styles/core.styles.scss +0 -0
- /package/{themes → src/lib}/styles/ionic/ion-action-sheet.scss +0 -0
- /package/{themes → src/lib}/styles/ionic/ion-alert.scss +0 -0
- /package/{themes → src/lib}/styles/ionic/ion-button.scss +0 -0
- /package/{themes → src/lib}/styles/ionic/ion-card.scss +0 -0
- /package/{themes → src/lib}/styles/ionic/ion-content.scss +0 -0
- /package/{themes → src/lib}/styles/ionic/ion-datetime.scss +0 -0
- /package/{themes → src/lib}/styles/ionic/ion-item.scss +0 -0
- /package/{themes → src/lib}/styles/ionic/ion-list.scss +0 -0
- /package/{themes → src/lib}/styles/ionic/ion-modal.scss +0 -0
- /package/{themes → src/lib}/styles/ionic/ion-popover.scss +0 -0
- /package/{themes → src/lib}/styles/ionic/ion-progress-bar.scss +0 -0
- /package/{themes → src/lib}/styles/ionic/ion-searchbar.scss +0 -0
- /package/{themes → src/lib}/styles/ionic/ion-toast.scss +0 -0
- /package/{themes → src/lib}/styles/ionic.scss +0 -0
- /package/{themes → src/lib}/styles/login-default.scss +0 -0
- /package/{themes → src/lib}/styles/mixins.scss +0 -0
- /package/{themes → src/lib}/styles/styles.scss +0 -0
- /package/{themes → src/lib}/styles/translucid.scss +0 -0
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
-
import { GenericService } from '../../../services/generic.service';
|
|
3
|
-
import { Utils } from '../../../services/utils.service';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../../../services/generic.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.14", 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.14", 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 p-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> itens\r\n }\r\n @else{\r\n <b> - </b> itens\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:color-mix(in srgb,var(--ion-color-dark) 10%,var(--ion-color-light));color:var(--ion-color-step-700)}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-input-otp:not([type=text]),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.14", ngImport: i0, type: DefaultPaginationComponent, decorators: [{
|
|
103
|
-
type: Component,
|
|
104
|
-
args: [{ selector: 'default-pagination', template: "<div id=\"pagination\" class=\"flex items-center rounded-b-2xl p-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> itens\r\n }\r\n @else{\r\n <b> - </b> itens\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:color-mix(in srgb,var(--ion-color-dark) 10%,var(--ion-color-light));color:var(--ion-color-step-700)}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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1wYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtcGFnaW5hdGlvbi9kZWZhdWx0LXBhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC1wYWdpbmF0aW9uL2RlZmF1bHQtcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7OztBQUV4RCxzQ0FBc0M7QUFNdEMsTUFBTSxPQUFPLDBCQUEwQjtJQUtyQywyQkFBMkI7SUFDM0IsSUFBb0IsTUFBTSxDQUFDLEtBQWE7UUFDdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUFBLENBQUM7SUFDRix3QkFBd0I7SUFDeEIsSUFBb0IsTUFBTSxDQUFDLEtBQW9CO1FBQzdDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFBQSxDQUFDO0lB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RXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZ2VuZXJpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuXHJcbi8qKiBDb21wb25lbnRlIGRlIHBhZ2luYcOnw6NvIHBhZHLDo28gICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGVmYXVsdC1wYWdpbmF0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGVmYXVsdC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kZWZhdWx0LXBhZ2luYXRpb24uY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERlZmF1bHRQYWdpbmF0aW9uQ29tcG9uZW50ICBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG5cclxuICB0b3RhbDogbnVtYmVyID0gMDtcclxuICBsaW1pdDogbnVtYmVyIHwgbnVsbCA9IDA7XHJcbiAgLyoqIFZhbG9yIHRvdGFsIGRlIGRhZG9zICovXHJcbiAgQElucHV0KCd0b3RhbCcpIHNldCBfdG90YWwodmFsdWU6IG51bWJlcil7ICBcclxuICAgIHRoaXMudG90YWwgPSB2YWx1ZTtcclxuICAgIHRoaXMuVG90YWxQYWdlcyA9IHRoaXMuR2V0VG90YWxQYWdlcygpO1xyXG4gICAgdGhpcy5sc3RQYWdlcyA9IHRoaXMuR2V0bHN0UGFnZXMoKTtcclxuICB9O1xyXG4gIC8qKiBMaW1pdGUgZGUgcMOhZ2luYXMgKi9cclxuICBASW5wdXQoJ2xpbWl0Jykgc2V0IF9saW1pdCh2YWx1ZTogbnVtYmVyIHwgbnVsbCl7IFxyXG4gICAgdGhpcy5saW1pdCA9IHZhbHVlO1xyXG4gICAgdGhpcy5Ub3RhbFBhZ2VzID0gdGhpcy5HZXRUb3RhbFBhZ2VzKCk7XHJcbiAgICB0aGlzLmxzdFBhZ2VzID0gdGhpcy5HZXRsc3RQYWdlcygpO1xyXG4gIH07XHJcblxyXG4gIC8qKiBRdWFudGlkYWRlIGRlIGRhZG9zIGVtIHRlbGEgKi9cclxuICBASW5wdXQoKSBsZW5ndGg6IG51bWJlcjtcclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xyXG4gIFxyXG4gIC8qKiBQYWdpbmEgYXR1YWwgKHVzYW5kbyB0d28gd2F5IGRhdGEgYmluZGluZykgKi9cclxuICBASW5wdXQoKSBwYWdlOiBudW1iZXI7XHJcbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgXHJcbiAgLyoqIEV2ZW50byBlbWl0aWRvIG5hIG11ZGFuw6dhIGRlIHZhbG9yZXMgKFBhZ2luYSkgKi9cclxuICBAT3V0cHV0KCdjaGFuZ2UnKSBjaGFuZ2VFbWl0dGVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGdlbmVyaWNTZXJ2aWNlOiBHZW5lcmljU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge31cclxuICBwb3BfaWQ6IHN0cmluZyA9IFwicG9wb3Zlci1pZC1cIiArIFV0aWxzLkdlbmVyYXRlR1VJRCgpO1xyXG5cclxuICBHZXRsc3RQYWdlcygpOiBudW1iZXJbXSB7XHJcbiAgICBpZighdGhpcy5Ub3RhbFBhZ2VzKXsgcmV0dXJuIFtdOyB9XHJcbiAgICB2YXIgc3RhcnRJbmRleDogbnVtYmVyO1xyXG4gICAgdmFyIHN0YXJ0OiBudW1iZXJbXSA9IFtdO1xyXG5cclxuICAgIHN0YXJ0SW5kZXggPSB0aGlzLnBhZ2UgLSAxO1xyXG5cclxuICAgIHZhciBfOiBudW1iZXJbXSA9IFtdO1xyXG4gICAgZm9yKGxldCBpID0gdGhpcy5Ub3RhbFBhZ2VzIC0gNDsgaSA8PSB0aGlzLlRvdGFsUGFnZXMgOyBpKyspe1xyXG4gICAgICBpZihpID4gMCl7XHJcbiAgICAgICAgXy5wdXNoKGkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZm9yKGxldCBpID0gc3RhcnRJbmRleDsgaSA8PSB0aGlzLlRvdGFsUGFnZXMgJiYgaSA8IHN0YXJ0SW5kZXggKyA1OyBpKyspe1xyXG4gICAgICBpZihpID4gMCl7XHJcbiAgICAgICAgc3RhcnQucHVzaChpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYoc3RhcnRJbmRleCA9PSAwICYmIHRoaXMuVG90YWxQYWdlcyA+PSA1KXtcclxuICAgICAgc3RhcnQucHVzaCg1KTtcclxuICAgIH1cclxuXHJcbiAgICBpZihzdGFydFswXSA+IF9bMF0pe1xyXG4gICAgICByZXR1cm4gXztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc3RhcnQ7XHJcbiAgfVxyXG5cclxuICBHZXRUb3RhbFBhZ2VzKCk6IG51bWJlcntcclxuICAgIHJldHVybiB0aGlzLmxpbWl0ID8gTWF0aC5jZWlsKHRoaXMudG90YWwgLyB0aGlzLmxpbWl0KSA6IE1hdGguY2VpbCh0aGlzLnRvdGFsIC8gdGhpcy50b3RhbClcclxuICB9XHJcblxyXG4gIGxzdFBhZ2VzICA6IG51bWJlcltdID0gW107XHJcbiAgVG90YWxQYWdlczogbnVtYmVyID0gMDtcclxuXHJcbiAgUGFnZUFkZCgpOiB2b2lke1xyXG4gICAgaWYodGhpcy5wYWdlICsgMSA+IHRoaXMuVG90YWxQYWdlcyl7IHJldHVybjsgfVxyXG4gICAgdGhpcy5TZXRQYWdlKHRoaXMucGFnZSArIDEpO1xyXG4gIH1cclxuICBcclxuICBQYWdlU3ViKCk6IHZvaWR7XHJcbiAgICBpZih0aGlzLnBhZ2UgLSAxIDwgMSl7IHJldHVybjsgfVxyXG4gICAgdGhpcy5TZXRQYWdlKHRoaXMucGFnZSAtIDEpO1xyXG4gIH1cclxuXHJcbiAgU2V0UGFnZSh2YWx1ZTogbnVtYmVyKTogdm9pZHtcclxuICAgIGlmKHZhbHVlICE9IHRoaXMucGFnZSl7XHJcbiAgICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHZhbHVlKTtcclxuICAgICAgdGhpcy5FbWl0Q2hhbmdlKClcclxuXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuVG90YWxQYWdlcyA9IHRoaXMuR2V0VG90YWxQYWdlcygpO1xyXG4gICAgICAgIHRoaXMubHN0UGFnZXMgPSB0aGlzLkdldGxzdFBhZ2VzKCk7XHJcbiAgICAgIH0sIDEwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBfcGFnZTogbnVtYmVyO1xyXG4gIFNldFBhZ2VNYW51YWwoKXtcclxuICAgIGlmKHRoaXMuX3BhZ2UgJiYgdGhpcy5fcGFnZSA+IDAgJiYgdGhpcy5fcGFnZSA8PSB0aGlzLlRvdGFsUGFnZXMpe1xyXG4gICAgICB0aGlzLlNldFBhZ2UodGhpcy5fcGFnZSk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5nZW5lcmljU2VydmljZS5QcmVzZW50VG9hc3QoXCJQw6FnaW5hIGludsOhbGlkYVwiKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgRW1pdENoYW5nZSgpOiB2b2lke1xyXG4gICAgdGhpcy5jaGFuZ2VFbWl0dGVyLmVtaXQoKTtcclxuICB9XHJcbn0iLCI8ZGl2IGlkPVwicGFnaW5hdGlvblwiIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgcm91bmRlZC1iLTJ4bCBwLTIgcG9ydHJhaXQ6ZmxleC1jb2xcIj5cclxuICA8ZGl2IGNsYXNzPVwidy1mdWxsIGgtZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1zdGFydCBmbGV4IHBvcnRyYWl0Omp1c3RpZnktY2VudGVyXCI+XHJcbiAgICA8aW9uLXNwaW5uZXIgW2hpZGRlbl09XCIhKGxvYWRpbmcgJiYgbHN0UGFnZXMubGVuZ3RoID09IDApXCI+PC9pb24tc3Bpbm5lcj5cclxuICAgIDxpb24tdGV4dCBbaGlkZGVuXT1cImxvYWRpbmcgJiYgbHN0UGFnZXMubGVuZ3RoID09IDBcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cclxuICAgICAgICBNb3N0cmFuZG8gJm5ic3A7XHJcbiAgICAgICAgPGlvbi1za2VsZXRvbi10ZXh0ICpuZ0lmPVwibG9hZGluZ1wiIFthbmltYXRlZF09XCJ0cnVlXCIgc3R5bGU9XCJ3aWR0aDogMmNoXCI+PC9pb24tc2tlbGV0b24tdGV4dD5cclxuICAgICAgICA8YiAqbmdJZj1cIiFsb2FkaW5nXCI+e3tsaW1pdCAqIHBhZ2UgLSBsaW1pdCArIGxlbmd0aH19PC9iPiAgJm5ic3A7XHJcbiAgICAgICAgZGUgXHJcbiAgICAgICAgQGlmICh0b3RhbCAhPSBudWxsKSB7XHJcbiAgICAgICAgICA8Yj4mbmJzcDsge3t0b3RhbH19ICZuYnNwOzwvYj4gaXRlbnNcclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2V7XHJcbiAgICAgICAgICA8Yj4mbmJzcDsgLSAmbmJzcDsgPC9iPiBpdGVuc1xyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2lvbi10ZXh0PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWVuZCBmbGV4IHBvcnRyYWl0Omp1c3RpZnktY2VudGVyXCIgKm5nSWY9XCJ0b3RhbCAhPSBudWxsXCI+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiIChjbGljayk9XCJQYWdlU3ViKClcIj5cclxuICAgICAgPGlvbi1pY29uIFtuZ0NsYXNzXT1cInsnb3BhY2l0eS0yMCc6IHBhZ2UgPT0gMX1cIiBuYW1lPVwiY2hldnJvbi1iYWNrXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBkZWZhdWx0IHRyYW5zaXRpb25cIj48L2lvbi1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPGlvbi1zcGlubmVyICpuZ0lmPVwibG9hZGluZyAmJiBsc3RQYWdlcy5sZW5ndGggPT0gMFwiPjwvaW9uLXNwaW5uZXI+XHJcblxyXG4gICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiIGNsYXNzPVwicGFnZVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxzdFBhZ2VzXCIgW25nQ2xhc3NdPVwieyAnc2VsZWN0ZWQnIDogcGFnZSA9PSBpdGVtIH1cIiAoY2xpY2spPVwiU2V0UGFnZShpdGVtKVwiPiB7e2l0ZW19fSA8L2J1dHRvbj5cclxuXHJcbiAgICA8YnV0dG9uIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiIChjbGljayk9XCJQYWdlQWRkKClcIj5cclxuICAgICAgPGlvbi1pY29uIFtuZ0NsYXNzXT1cInsnb3BhY2l0eS0yMCc6IHBhZ2UgPT0gVG90YWxQYWdlcyB9XCIgbmFtZT1cImNoZXZyb24tZm9yd2FyZFwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZGVmYXVsdCB0cmFuc2l0aW9uXCI+PC9pb24taWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIEBpZiAoVG90YWxQYWdlcyA+IDUpIHtcclxuICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiIGNsYXNzPVwicGFnZVwiIFtpZF09XCJwb3BfaWRcIj48aW9uLWljb24gbmFtZT1cInNlYXJjaFwiPjwvaW9uLWljb24+PC9idXR0b24+XHJcbiAgICAgIDxpb24tcG9wb3ZlciBbdHJpZ2dlcl09XCJwb3BfaWRcIiB0cmlnZ2VyQWN0aW9uPVwiY2xpY2tcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8aW9uLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtY29scy0xMCBwbC0zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zcGFuLTggcGItMlwiPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1pbnB1dCBjbGFzcz1cIm51bWJlci1jbGFzc1wiIFsobmdNb2RlbCldPVwiX3BhZ2VcIiB0eXBlPVwiTnVtYmVyXCIgbGFiZWxQbGFjZW1lbnQ9XCJzdGFja2VkXCIgbGFiZWw9XCJQw6FnaW5hIFtNYXguIHt7VG90YWxQYWdlc319XVwiPjwvaW9uLWlucHV0PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc3Bhbi0yXCI+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiIGNsYXNzPVwic2l6ZS1mdWxsXCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cIlNldFBhZ2VNYW51YWwoKVwiIHN0eWxlPVwiLS1ib3JkZXItcmFkaXVzOiAwcmVtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBjbGFzcz1cInctNCBhc3BlY3Qtc3F1YXJlXCIgc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjaGVja21hcmstY2lyY2xlXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2lvbi1jb250ZW50PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvaW9uLXBvcG92ZXI+XHJcbiAgICB9XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
import { formatNumber } from '@angular/common';
|
|
2
|
-
import { Component, computed, effect, Input, input, model, output, TemplateRef } from '@angular/core';
|
|
3
|
-
import { ActivatedRoute, Router } from '@angular/router';
|
|
4
|
-
import { FormatTelefoneCelular } from '../../inputs/input-telefone/input-telefone.component';
|
|
5
|
-
import { StorageService } from '../../../services/web/storage.service';
|
|
6
|
-
import { FormatCpfCnpj } from '../../inputs/input-cpf-cnpj/input-cpf-cnpj.component';
|
|
7
|
-
import { CompileLstTableField } from '../../../classes/comparison/comparison';
|
|
8
|
-
import { FormatCep } from '../../inputs/input-cep/input-cep.component';
|
|
9
|
-
import { InputType } from '../../inputs/input-type';
|
|
10
|
-
import { Utils } from '../../../services/utils.service';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
import * as i1 from "../../../services/web/storage.service";
|
|
13
|
-
import * as i2 from "@angular/router";
|
|
14
|
-
import * as i3 from "@ionic/angular";
|
|
15
|
-
import * as i4 from "@angular/common";
|
|
16
|
-
import * as i5 from "../../inputs/input-file/download-button/download-button.component";
|
|
17
|
-
import * as i6 from "@angular/forms";
|
|
18
|
-
import * as i7 from "../../loading/loading.component";
|
|
19
|
-
import * as i8 from "../../content-block/content-block.component";
|
|
20
|
-
import * as i9 from "../default-pagination/default-pagination.component";
|
|
21
|
-
import * as i10 from "./th-filter/th-filter.component";
|
|
22
|
-
export class DefaultTableComponent {
|
|
23
|
-
constructor(storageService, activatedRoute, router) {
|
|
24
|
-
this.storageService = storageService;
|
|
25
|
-
this.activatedRoute = activatedRoute;
|
|
26
|
-
this.router = router;
|
|
27
|
-
/** Template de ações, deve ser um elemento ```<ng-template>``` */
|
|
28
|
-
// acoesTemplate: InputSignal<TemplateRef<any>> = input<TemplateRef<any>>();
|
|
29
|
-
/** Service a ser utilizado na listagem */
|
|
30
|
-
this.service = input();
|
|
31
|
-
this.total = model(0);
|
|
32
|
-
/** Número de items máximo (usando two way data binding) */
|
|
33
|
-
this.limit = model();
|
|
34
|
-
/** Valor da pagina, setado = 1 quando troca-se o valor de limite de paginas (usando two way data binding) */
|
|
35
|
-
this.page = model(1);
|
|
36
|
-
/** Propriedade de ordenação (usando two way data binding) */
|
|
37
|
-
this.orderByProperty = model(null);
|
|
38
|
-
/** Propriedade de ordenação
|
|
39
|
-
* Se = true Ordenará de menor ao maior
|
|
40
|
-
* Se = false Ordenará de maior ao menor (usando two way data binding) */
|
|
41
|
-
this.ascending = model(true);
|
|
42
|
-
/** Filtros (usando two way data binding) */
|
|
43
|
-
this.filter = model([]);
|
|
44
|
-
/** Evento emitido quando um dos dados é ativado. Emite o id do dado */
|
|
45
|
-
this.ativar = output();
|
|
46
|
-
this.refresh = output();
|
|
47
|
-
this.loading = model(false);
|
|
48
|
-
/** Lista de dados a ser exibidos */
|
|
49
|
-
this.items = model([]);
|
|
50
|
-
/** Lista de campos a ser exibidos */
|
|
51
|
-
this.lstTableFields = model([]);
|
|
52
|
-
this.lstTableFieldsAvailable = computed(() => {
|
|
53
|
-
return this.lstTableFields().filter(p => !p.hidden).map(tf => {
|
|
54
|
-
return new AvailableTableField(tf, this.ascending() && this.orderByProperty() == tf.index, !this.ascending() && this.orderByProperty() == tf.index);
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
/** Remove os filtros no cabeçalho da tabela */
|
|
58
|
-
this.noFilters = input(false);
|
|
59
|
-
/** Aplica classes de CSS na coluna de acirdo com o retorno da função passada como parametro */
|
|
60
|
-
this.columnClass = input(null);
|
|
61
|
-
/** Aplica style de CSS na coluna de acirco com o retorno da função passada como parametro */
|
|
62
|
-
this.columnStyle = input(null);
|
|
63
|
-
/** Remove a paginação da listagem */
|
|
64
|
-
this.noPagination = input(false);
|
|
65
|
-
/** Caminho de redirecionamento do item */
|
|
66
|
-
this.itemPath = input('view/:id');
|
|
67
|
-
this.itemClick = output();
|
|
68
|
-
this.InputType = InputType;
|
|
69
|
-
this.lstRows = [];
|
|
70
|
-
effect(() => {
|
|
71
|
-
for (const tf of this.lstTableFields().filter(p => p.type == InputType.Select)) {
|
|
72
|
-
tf.configuration.loader.Refresh().then(() => this.SetLstRows());
|
|
73
|
-
}
|
|
74
|
-
this.SetLstRows();
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
Redirect(field, item) {
|
|
78
|
-
if (field == null) {
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
this.itemClick.emit({ item, field });
|
|
82
|
-
if (field.index == 'ativo') {
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
if (field.type == 'File') {
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
if (this.itemPath()) {
|
|
89
|
-
const id = item['id'];
|
|
90
|
-
const path = this.itemPath().replace(":id", id.toString());
|
|
91
|
-
this.router.navigate([`./${path}`], { relativeTo: this.activatedRoute });
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
SetLstRows() {
|
|
95
|
-
this.lstRows = this.items().map(item => {
|
|
96
|
-
return new DefaultTableRow(item, item['id'], this.GetColumns(item), '', '');
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
GetColumns(item) {
|
|
100
|
-
return this.lstTableFields().filter(p => !p.hidden).map(tf => {
|
|
101
|
-
const value = item[tf.index];
|
|
102
|
-
const column = new DefaultTableColumn(value, tf);
|
|
103
|
-
column.class = this.columnClass() ? this.columnClass()(tf.index, item) : '';
|
|
104
|
-
column.style = this.columnStyle() ? this.columnStyle()(tf.index, item) : '';
|
|
105
|
-
if (!value) {
|
|
106
|
-
column.label = '-';
|
|
107
|
-
return column;
|
|
108
|
-
}
|
|
109
|
-
if (tf.type == InputType.Bool) {
|
|
110
|
-
column.label = "<bool>";
|
|
111
|
-
}
|
|
112
|
-
else if (tf.type == InputType.Cep) {
|
|
113
|
-
column.label = FormatCep(value);
|
|
114
|
-
}
|
|
115
|
-
else if (tf.type == InputType.Color) {
|
|
116
|
-
column.label = value;
|
|
117
|
-
}
|
|
118
|
-
else if ([InputType.Cpf, InputType.Cnpj, InputType.CpfCnpj].includes(tf.type)) {
|
|
119
|
-
column.label = FormatCpfCnpj(value);
|
|
120
|
-
}
|
|
121
|
-
else if (tf.type == InputType.DateTime) {
|
|
122
|
-
column.class += ' font-mono';
|
|
123
|
-
column.label = Utils.DateISOToDDMMYYYYHHMM(value);
|
|
124
|
-
}
|
|
125
|
-
else if (tf.type == InputType.Date) {
|
|
126
|
-
column.class += ' font-mono';
|
|
127
|
-
column.label = Utils.DateISOToDDMMYYYY(value);
|
|
128
|
-
}
|
|
129
|
-
else if (tf.type == InputType.Time) {
|
|
130
|
-
column.class += ' font-mono';
|
|
131
|
-
column.label = value;
|
|
132
|
-
}
|
|
133
|
-
else if ([InputType.Decimal, InputType.Decimal, InputType.Currency, InputType.Number].includes(tf.type)) {
|
|
134
|
-
const configuration = tf.configuration;
|
|
135
|
-
column.label = [
|
|
136
|
-
configuration.prefix,
|
|
137
|
-
formatNumber(value, 'pt-BR', `1.${configuration.precision}-${configuration.precision}`),
|
|
138
|
-
configuration.sufix,
|
|
139
|
-
].join(' ');
|
|
140
|
-
}
|
|
141
|
-
else if (tf.type == InputType.File) {
|
|
142
|
-
column.label = '<file>';
|
|
143
|
-
}
|
|
144
|
-
else if (tf.type == InputType.Icon) {
|
|
145
|
-
column.label = 'icon';
|
|
146
|
-
}
|
|
147
|
-
else if (tf.type == InputType.Select) {
|
|
148
|
-
column.label = tf.configuration.loader.GetLabel(value);
|
|
149
|
-
column.loading = !tf.configuration.loader.isLoaded;
|
|
150
|
-
}
|
|
151
|
-
else if ([InputType.String, InputType.TextArea].includes(tf.type)) {
|
|
152
|
-
column.label = value;
|
|
153
|
-
}
|
|
154
|
-
else if ([InputType.Telefone, InputType.Celular, InputType.TelefoneCelular].includes(tf.type)) {
|
|
155
|
-
column.label = FormatTelefoneCelular(value);
|
|
156
|
-
}
|
|
157
|
-
return column;
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
ngOnInit() { this.SetLstRows(); }
|
|
161
|
-
SwitchOrder(tf) {
|
|
162
|
-
if (this.orderByProperty() != tf.index) {
|
|
163
|
-
this.orderByProperty.set(tf.index);
|
|
164
|
-
this.ascending.set(true);
|
|
165
|
-
}
|
|
166
|
-
else if (this.ascending()) {
|
|
167
|
-
this.ascending.set(false);
|
|
168
|
-
}
|
|
169
|
-
else {
|
|
170
|
-
this.orderByProperty.set(null);
|
|
171
|
-
}
|
|
172
|
-
this.refresh.emit();
|
|
173
|
-
}
|
|
174
|
-
ChangeFilter() {
|
|
175
|
-
this.filter.set(CompileLstTableField(this.lstTableFields()));
|
|
176
|
-
this.page.set(1);
|
|
177
|
-
this.refresh.emit();
|
|
178
|
-
}
|
|
179
|
-
Ativar(id) {
|
|
180
|
-
this.ativar.emit(id);
|
|
181
|
-
}
|
|
182
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultTableComponent, deps: [{ token: i1.StorageService }, { token: i2.ActivatedRoute }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
183
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DefaultTableComponent, selector: "default-table", inputs: { acoesTemplate: { classPropertyName: "acoesTemplate", publicName: "acoesTemplate", isSignal: false, isRequired: false, transformFunction: null }, service: { classPropertyName: "service", publicName: "service", isSignal: true, isRequired: false, transformFunction: null }, total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: false, transformFunction: null }, limit: { classPropertyName: "limit", publicName: "limit", isSignal: true, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, orderByProperty: { classPropertyName: "orderByProperty", publicName: "orderByProperty", isSignal: true, isRequired: false, transformFunction: null }, ascending: { classPropertyName: "ascending", publicName: "ascending", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, lstTableFields: { classPropertyName: "lstTableFields", publicName: "lstTableFields", isSignal: true, isRequired: false, transformFunction: null }, noFilters: { classPropertyName: "noFilters", publicName: "noFilters", isSignal: true, isRequired: false, transformFunction: null }, columnClass: { classPropertyName: "columnClass", publicName: "columnClass", isSignal: true, isRequired: false, transformFunction: null }, columnStyle: { classPropertyName: "columnStyle", publicName: "columnStyle", isSignal: true, isRequired: false, transformFunction: null }, noPagination: { classPropertyName: "noPagination", publicName: "noPagination", isSignal: true, isRequired: false, transformFunction: null }, itemPath: { classPropertyName: "itemPath", publicName: "itemPath", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { total: "totalChange", limit: "limitChange", page: "pageChange", orderByProperty: "orderByPropertyChange", ascending: "ascendingChange", filter: "filterChange", ativar: "ativar", refresh: "refresh", loading: "loadingChange", items: "itemsChange", lstTableFields: "lstTableFieldsChange", itemClick: "itemClick" }, ngImport: i0, template: "<div class=\"size-full rounded-xl flex flex-col overflow-hidden relative\">\r\n <loading [type]=\"3\" [loading]=\"loading()\"></loading>\r\n <content-block text=\"Sem Dados\" [value]=\"!(items.length != 0 || loading)\"></content-block>\r\n\r\n <div class=\"size-full shrink relative overflow-y-auto\">\r\n <table>\r\n <thead>\r\n <tr>\r\n @if(acoesTemplate){\r\n <th scope=\"col\" class=\"p-2\"> \r\n A\u00E7\u00F5es \r\n </th>\r\n }\r\n\r\n @for (tfa of lstTableFieldsAvailable(); track tfa.tf.index) {\r\n <th scope=\"col\" class=\"p-2\"> \r\n <div class=\"flex gap-2 items-center justify-start th\">\r\n @if(!noFilters()){\r\n <th-filter class=\"!text-base\" style=\"text-transform: none !important\" \r\n *ngIf=\"((tfa.tf.type != InputType.File || (tfa.tf.filter && tfa.tf.disabledChange())) && !noFilters())\"\r\n [field]=\"tfa.tf\"\r\n (change)=\"ChangeFilter()\"\r\n ></th-filter>\r\n }\r\n\r\n {{tfa.tf.header}} \r\n\r\n @if((tfa.tf.type != InputType.File || (tfa.tf.filter && tfa.tf.disabledChange())) && !noFilters()){\r\n <a [ngClass]=\"{ 'bg-light/10 !opacity-100': tfa.ascending || tfa.descending }\"\r\n class=\"order h-4 w-5 relative cursor-pointer rounded-lg opacity-0 default-transition\" \r\n (click)=\"SwitchOrder(tfa.tf)\"\r\n >\r\n <ion-icon \r\n [class.text-primary]=\"tfa.ascending\"\r\n class=\"absolute left-0 top-0\" \r\n name=\"arrow-up\"\r\n ></ion-icon> \r\n <ion-icon \r\n [class.text-primary]=\"tfa.descending\"\r\n class=\"absolute right-0 bottom-0\" \r\n name=\"arrow-down\"\r\n ></ion-icon> \r\n </a>\r\n }\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (row of lstRows; track row.id || $index) {\r\n <tr [hidden]=\"loading()\">\r\n @if(acoesTemplate){\r\n <td (click)=\"Redirect(undefined, row.item)\" class=\"whitespace-nowrap py-1 px-3 {{row.acoesClass}}\" [style]=\"row.acoesStyle\" >\r\n <ng-container *ngTemplateOutlet=\"acoesTemplate; context: { $implicit: row.item }\"></ng-container>\r\n </td>\r\n }\r\n\r\n @for (col of row.lstColumns; track col.tf.index) {\r\n <td class=\"{{col.class}} p-2 cursor-pointer\" (click)=\"Redirect(col.tf, row.item)\" [style]=\"'white-space: var(--ion-table-row-wrap);' + col.style\">\r\n @if(col.tf.index == 'ativo') {\r\n <div class=\"size-full flex items-center justify-start\" [routerLink]=\"null\">\r\n <ion-toggle [checked]=\"col.value\" [disabled]=\"loading()\" (ionChange)=\"Ativar(row.id)\" ></ion-toggle>\r\n </div>\r\n }\r\n @else if (col.tf.type == InputType.Bool){\r\n <div class=\"h-full flex items-center justify-start\">\r\n @if(col.tf.configuration.type == 'toggle') {\r\n <ion-toggle [checked]=\"col.value\" [disabled]=\"true\"></ion-toggle>\r\n }\r\n @else {\r\n <ion-checkbox [checked]=\"col.value\" [disabled]=\"true\"></ion-checkbox>\r\n }\r\n </div>\r\n }\r\n @else if (col.tf.type == InputType.File) {\r\n <download-button [(ngModel)]=\"col.value\" [configuration]=\"col.tf.configuration\"></download-button>\r\n }\r\n @else if (col.loading){\r\n <ion-spinner name=\"dots\"></ion-spinner>\r\n } @else {\r\n <span [ngClass]=\"col.class\">{{ col.label }}</span>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n <ng-content select=\"[slot=item-end]\"></ng-content>\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n @if(!noPagination()){\r\n <div class=\"shrink-0 z-[100]\">\r\n <default-pagination\r\n [page]=\"page()\"\r\n (pageChange)=\"page.set($event); refresh.emit()\"\r\n [total]=\"total()\"\r\n [limit]=\"limit()\"\r\n [length]=\"items().length\"\r\n [loading]=\"loading()\"\r\n ></default-pagination>\r\n </div>\r\n }\r\n</div>", styles: [".th:hover>.order{opacity:1;background-color:color-mix(in srgb,var(--ion-color-light) 10%,transparent)}\n"], dependencies: [{ kind: "component", type: i3.IonCheckbox, selector: "ion-checkbox", inputs: ["alignment", "checked", "color", "disabled", "errorText", "helperText", "indeterminate", "justify", "labelPlacement", "mode", "name", "required", "value"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: i3.IonToggle, selector: "ion-toggle", inputs: ["alignment", "checked", "color", "disabled", "enableOnOffLabels", "errorText", "helperText", "justify", "labelPlacement", "mode", "name", "required", "value"] }, { kind: "directive", type: i3.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }, { kind: "directive", type: i3.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.DownloadButtonComponent, selector: "download-button", inputs: ["expand", "value", "size", "color", "params", "disabled", "post", "configuration", "customLabel", "label", "fileName"], outputs: ["valueChange"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.LoadingComponent, selector: "loading", inputs: ["text", "type", "loading"] }, { kind: "component", type: i8.ContentBlockComponent, selector: "content-block", inputs: ["text", "value"] }, { kind: "component", type: i9.DefaultPaginationComponent, selector: "default-pagination", inputs: ["total", "limit", "length", "loading", "page"], outputs: ["pageChange", "change"] }, { kind: "component", type: i10.ThFilterComponent, selector: "th-filter", inputs: ["field"], outputs: ["change"] }] }); }
|
|
184
|
-
}
|
|
185
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultTableComponent, decorators: [{
|
|
186
|
-
type: Component,
|
|
187
|
-
args: [{ selector: 'default-table', template: "<div class=\"size-full rounded-xl flex flex-col overflow-hidden relative\">\r\n <loading [type]=\"3\" [loading]=\"loading()\"></loading>\r\n <content-block text=\"Sem Dados\" [value]=\"!(items.length != 0 || loading)\"></content-block>\r\n\r\n <div class=\"size-full shrink relative overflow-y-auto\">\r\n <table>\r\n <thead>\r\n <tr>\r\n @if(acoesTemplate){\r\n <th scope=\"col\" class=\"p-2\"> \r\n A\u00E7\u00F5es \r\n </th>\r\n }\r\n\r\n @for (tfa of lstTableFieldsAvailable(); track tfa.tf.index) {\r\n <th scope=\"col\" class=\"p-2\"> \r\n <div class=\"flex gap-2 items-center justify-start th\">\r\n @if(!noFilters()){\r\n <th-filter class=\"!text-base\" style=\"text-transform: none !important\" \r\n *ngIf=\"((tfa.tf.type != InputType.File || (tfa.tf.filter && tfa.tf.disabledChange())) && !noFilters())\"\r\n [field]=\"tfa.tf\"\r\n (change)=\"ChangeFilter()\"\r\n ></th-filter>\r\n }\r\n\r\n {{tfa.tf.header}} \r\n\r\n @if((tfa.tf.type != InputType.File || (tfa.tf.filter && tfa.tf.disabledChange())) && !noFilters()){\r\n <a [ngClass]=\"{ 'bg-light/10 !opacity-100': tfa.ascending || tfa.descending }\"\r\n class=\"order h-4 w-5 relative cursor-pointer rounded-lg opacity-0 default-transition\" \r\n (click)=\"SwitchOrder(tfa.tf)\"\r\n >\r\n <ion-icon \r\n [class.text-primary]=\"tfa.ascending\"\r\n class=\"absolute left-0 top-0\" \r\n name=\"arrow-up\"\r\n ></ion-icon> \r\n <ion-icon \r\n [class.text-primary]=\"tfa.descending\"\r\n class=\"absolute right-0 bottom-0\" \r\n name=\"arrow-down\"\r\n ></ion-icon> \r\n </a>\r\n }\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (row of lstRows; track row.id || $index) {\r\n <tr [hidden]=\"loading()\">\r\n @if(acoesTemplate){\r\n <td (click)=\"Redirect(undefined, row.item)\" class=\"whitespace-nowrap py-1 px-3 {{row.acoesClass}}\" [style]=\"row.acoesStyle\" >\r\n <ng-container *ngTemplateOutlet=\"acoesTemplate; context: { $implicit: row.item }\"></ng-container>\r\n </td>\r\n }\r\n\r\n @for (col of row.lstColumns; track col.tf.index) {\r\n <td class=\"{{col.class}} p-2 cursor-pointer\" (click)=\"Redirect(col.tf, row.item)\" [style]=\"'white-space: var(--ion-table-row-wrap);' + col.style\">\r\n @if(col.tf.index == 'ativo') {\r\n <div class=\"size-full flex items-center justify-start\" [routerLink]=\"null\">\r\n <ion-toggle [checked]=\"col.value\" [disabled]=\"loading()\" (ionChange)=\"Ativar(row.id)\" ></ion-toggle>\r\n </div>\r\n }\r\n @else if (col.tf.type == InputType.Bool){\r\n <div class=\"h-full flex items-center justify-start\">\r\n @if(col.tf.configuration.type == 'toggle') {\r\n <ion-toggle [checked]=\"col.value\" [disabled]=\"true\"></ion-toggle>\r\n }\r\n @else {\r\n <ion-checkbox [checked]=\"col.value\" [disabled]=\"true\"></ion-checkbox>\r\n }\r\n </div>\r\n }\r\n @else if (col.tf.type == InputType.File) {\r\n <download-button [(ngModel)]=\"col.value\" [configuration]=\"col.tf.configuration\"></download-button>\r\n }\r\n @else if (col.loading){\r\n <ion-spinner name=\"dots\"></ion-spinner>\r\n } @else {\r\n <span [ngClass]=\"col.class\">{{ col.label }}</span>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n <ng-content select=\"[slot=item-end]\"></ng-content>\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n @if(!noPagination()){\r\n <div class=\"shrink-0 z-[100]\">\r\n <default-pagination\r\n [page]=\"page()\"\r\n (pageChange)=\"page.set($event); refresh.emit()\"\r\n [total]=\"total()\"\r\n [limit]=\"limit()\"\r\n [length]=\"items().length\"\r\n [loading]=\"loading()\"\r\n ></default-pagination>\r\n </div>\r\n }\r\n</div>", styles: [".th:hover>.order{opacity:1;background-color:color-mix(in srgb,var(--ion-color-light) 10%,transparent)}\n"] }]
|
|
188
|
-
}], ctorParameters: () => [{ type: i1.StorageService }, { type: i2.ActivatedRoute }, { type: i2.Router }], propDecorators: { acoesTemplate: [{
|
|
189
|
-
type: Input
|
|
190
|
-
}] } });
|
|
191
|
-
class DefaultTableRow {
|
|
192
|
-
constructor(item, id, lstColumns, acoesClass = '', acoesStyle = '') {
|
|
193
|
-
this.item = item;
|
|
194
|
-
this.id = id;
|
|
195
|
-
this.lstColumns = lstColumns;
|
|
196
|
-
this.acoesClass = acoesClass;
|
|
197
|
-
this.acoesStyle = acoesStyle;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
class DefaultTableColumn {
|
|
201
|
-
constructor(value = null, tf) {
|
|
202
|
-
this.value = value;
|
|
203
|
-
this.tf = tf;
|
|
204
|
-
this.loading = false;
|
|
205
|
-
this.class = '';
|
|
206
|
-
this.style = '';
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
class AvailableTableField {
|
|
210
|
-
constructor(tf, ascending, descending) {
|
|
211
|
-
this.tf = tf;
|
|
212
|
-
this.ascending = ascending;
|
|
213
|
-
this.descending = descending;
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZGVmYXVsdC9kZWZhdWx0LXRhYmxlL2RlZmF1bHQtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC10YWJsZS9kZWZhdWx0LXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBZSxLQUFLLEVBQXVCLE1BQU0sRUFBdUMsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdLLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDN0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUdyRixPQUFPLEVBQWMsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7Ozs7O0FBU3hELE1BQU0sT0FBTyxxQkFBcUI7SUFvRWhDLFlBQ1MsY0FBK0IsRUFDOUIsY0FBOEIsRUFDOUIsTUFBc0I7UUFGdkIsbUJBQWMsR0FBZCxjQUFjLENBQWlCO1FBQzlC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ME1SLE1BQU0sZUFBZTtJQUNuQixZQUNTLElBQU8sRUFDUCxFQUFzQixFQUN0QixVQUFnQyxFQUNoQyxhQUFxQixFQUFFLEVBQ3ZCLGFBQXFCLEVBQUU7UUFKdkIsU0FBSSxHQUFKLElBQUksQ0FBRztRQUNQLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQ3RCLGVBQVUsR0FBVixVQUFVLENBQXNCO1FBQ2hDLGVBQVUsR0FBVixVQUFVLENBQWE7UUFDdkIsZUFBVSxHQUFWLFVBQVUsQ0FBYTtJQUM5QixDQUFDO0NBQ0o7QUFFRCxNQUFNLGtCQUFrQjtJQUt0QixZQUNTLFFBQWEsSUFBSSxFQUNqQixFQUFjO1FBRGQsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBTGhCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFDekIsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixVQUFLLEdBQVcsRUFBRSxDQUFDO0lBSXhCLENBQUM7Q0FDSjtBQUVELE1BQU0sbUJBQW1CO0lBQ3ZCLFlBQ1MsRUFBYyxFQUNkLFNBQWtCLEVBQ2xCLFVBQW1CO1FBRm5CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxjQUFTLEdBQVQsU0FBUyxDQUFTO1FBQ2xCLGVBQVUsR0FBVixVQUFVLENBQVM7SUFDMUIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0TnVtYmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBJbnB1dCwgaW5wdXQsIElucHV0U2lnbmFsLCBtb2RlbCwgTW9kZWxTaWduYWwsIE9uSW5pdCwgb3V0cHV0LCBPdXRwdXRFbWl0dGVyUmVmLCBPdXRwdXRSZWYsIFNpZ25hbCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBJbnB1dERlY2ltYWxDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vaW5wdXRzL2lucHV0LWRlY2ltYWwvaW5wdXQtZGVjaW1hbC5jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgSW5wdXRTZWxlY3RDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vaW5wdXRzL2lucHV0LXNlbGVjdC9pbnB1dC5zZWxlY3QuY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IEZvcm1hdFRlbGVmb25lQ2VsdWxhciB9IGZyb20gJy4uLy4uL2lucHV0cy9pbnB1dC10ZWxlZm9uZS9pbnB1dC10ZWxlZm9uZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3dlYi9zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtYXRDcGZDbnBqIH0gZnJvbSAnLi4vLi4vaW5wdXRzL2lucHV0LWNwZi1jbnBqL2lucHV0LWNwZi1jbnBqLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvd2ViL2h0dHAuc2VydmljZSdcclxuaW1wb3J0IHsgVGFibGVGaWVsZCB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvaW5wdXRzL3RhYmxlLWZpZWxkJztcclxuaW1wb3J0IHsgQ29tcGFyaXNvbiwgQ29tcGlsZUxzdFRhYmxlRmllbGQgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2NvbXBhcmlzb24vY29tcGFyaXNvbic7XHJcbmltcG9ydCB7IEZvcm1hdENlcCB9IGZyb20gJy4uLy4uL2lucHV0cy9pbnB1dC1jZXAvaW5wdXQtY2VwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElucHV0VHlwZSB9IGZyb20gJy4uLy4uL2lucHV0cy9pbnB1dC10eXBlJztcclxuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuXHJcbnR5cGUgQ1NTU3R5bGVTdHJpbmdHZW5lcmF0b3IgPSAoaW5kZXg6IHN0cmluZywgb2JqZWN0OiBhbnkpID0+IHN0cmluZztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGVmYXVsdC10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RlZmF1bHQtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RlZmF1bHQtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERlZmF1bHRUYWJsZUNvbXBvbmVudDxTZXJ2aWNlIGV4dGVuZHMgSHR0cFNlcnZpY2UsIFQgPSBhbnk+IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KCkgYWNvZXNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICAvKiogVGVtcGxhdGUgZGUgYcOnw7VlcywgZGV2ZSBzZXIgdW0gZWxlbWVudG8gYGBgPG5nLXRlbXBsYXRlPmBgYCAqL1xyXG4gIC8vIGFjb2VzVGVtcGxhdGU6IElucHV0U2lnbmFsPFRlbXBsYXRlUmVmPGFueT4+ID0gaW5wdXQ8VGVtcGxhdGVSZWY8YW55Pj4oKTtcclxuXHJcbiAgLyoqIFNlcnZpY2UgYSBzZXIgdXRpbGl6YWRvIG5hIGxpc3RhZ2VtICovXHJcbiAgc2VydmljZTogSW5wdXRTaWduYWw8U2VydmljZT4gPSBpbnB1dDxTZXJ2aWNlPigpO1xyXG5cclxuICB0b3RhbDogTW9kZWxTaWduYWw8bnVtYmVyPiA9IG1vZGVsPG51bWJlcj4oMCk7XHJcblxyXG4gIC8qKiBOw7ptZXJvIGRlIGl0ZW1zIG3DoXhpbW8gKHVzYW5kbyB0d28gd2F5IGRhdGEgYmluZGluZykgKi9cclxuICBsaW1pdDogTW9kZWxTaWduYWw8bnVtYmVyPiA9IG1vZGVsPG51bWJlcj4oKTtcclxuXHJcbiAgLyoqIFZhbG9yIGRhIHBhZ2luYSwgc2V0YWRvID0gMSBxdWFuZG8gdHJvY2Etc2UgbyB2YWxvciBkZSBsaW1pdGUgZGUgcGFnaW5hcyAodXNhbmRvIHR3byB3YXkgZGF0YSBiaW5kaW5nKSAqL1xyXG4gIHBhZ2U6IE1vZGVsU2lnbmFsPG51bWJlcj4gPSBtb2RlbDxudW1iZXI+KDEpO1xyXG5cclxuICAvKiogUHJvcHJpZWRhZGUgZGUgb3JkZW5hw6fDo28gKHVzYW5kbyB0d28gd2F5IGRhdGEgYmluZGluZykgKi9cclxuICBvcmRlckJ5UHJvcGVydHk6IE1vZGVsU2lnbmFsPHN0cmluZyB8IG51bGw+ID0gbW9kZWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XHJcbiAgICBcclxuICAvKiogUHJvcHJpZWRhZGUgZGUgb3JkZW5hw6fDo29cclxuICAgKiBTZSA9IHRydWUgIE9yZGVuYXLDoSBkZSBtZW5vciBhbyBtYWlvciBcclxuICAgKiBTZSA9IGZhbHNlIE9yZGVuYXLDoSBkZSBtYWlvciBhbyBtZW5vciAodXNhbmRvIHR3byB3YXkgZGF0YSBiaW5kaW5nKSAqL1xyXG4gIGFzY2VuZGluZzogTW9kZWxTaWduYWw8Ym9vbGVhbj4gPSBtb2RlbDxib29sZWFuPih0cnVlKTtcclxuXHJcbiAgLyoqIEZpbHRyb3MgKHVzYW5kbyB0d28gd2F5IGRhdGEgYmluZGluZykgKi8gXHJcbiAgZmlsdGVyOiBNb2RlbFNpZ25hbDxDb21wYXJpc29uW10+ID0gbW9kZWw8Q29tcGFyaXNvbltdPihbXSk7XHJcblxyXG4gIC8qKiBFdmVudG8gZW1pdGlkbyBxdWFuZG8gdW0gZG9zIGRhZG9zIMOpIGF0aXZhZG8uIEVtaXRlIG8gaWQgZG8gZGFkbyAqLyAgXHJcbiAgYXRpdmFyIDogT3V0cHV0RW1pdHRlclJlZjxudW1iZXI+ID0gb3V0cHV0PG51bWJlcj4oKTtcclxuICByZWZyZXNoOiBPdXRwdXRFbWl0dGVyUmVmPHZvaWQ+ID0gb3V0cHV0PHZvaWQ+KCk7XHJcblxyXG5cclxuICBsb2FkaW5nOiBNb2RlbFNpZ25hbDxib29sZWFuPiA9IG1vZGVsPGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcbiAgLyoqIExpc3RhIGRlIGRhZG9zIGEgc2VyIGV4aWJpZG9zICovXHJcbiAgaXRlbXM6IE1vZGVsU2lnbmFsPFRbXT4gPSBtb2RlbDxUW10+KFtdKTtcclxuXHJcbiAgLyoqIExpc3RhIGRlIGNhbXBvcyBhIHNlciBleGliaWRvcyAqL1xyXG4gIGxzdFRhYmxlRmllbGRzOiBNb2RlbFNpZ25hbDxUYWJsZUZpZWxkW10+ID0gbW9kZWw8VGFibGVGaWVsZFtdPihbXSk7XHJcbiAgbHN0VGFibGVGaWVsZHNBdmFpbGFibGU6IFNpZ25hbDxBdmFpbGFibGVUYWJsZUZpZWxkW10+ID0gY29tcHV0ZWQ8QXZhaWxhYmxlVGFibGVGaWVsZFtdPigoKSA9PiB7IFxyXG4gICAgcmV0dXJuIHRoaXMubHN0VGFibGVGaWVsZHMoKS5maWx0ZXIocCA9PiAhcC5oaWRkZW4pLm1hcCh0ZiA9PiB7XHJcbiAgICAgIHJldHVybiBuZXcgQXZhaWxhYmxlVGFibGVGaWVsZChcclxuICAgICAgICB0ZiwgXHJcbiAgICAgICAgdGhpcy5hc2NlbmRpbmcoKSAmJiB0aGlzLm9yZGVyQnlQcm9wZXJ0eSgpID09IHRmLmluZGV4LCBcclxuICAgICAgICAhdGhpcy5hc2NlbmRpbmcoKSAmJiB0aGlzLm9yZGVyQnlQcm9wZXJ0eSgpID09IHRmLmluZGV4XHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9KTtcclxuXHJcbiAgLyoqIFJlbW92ZSBvcyBmaWx0cm9zIG5vIGNhYmXDp2FsaG8gZGEgdGFiZWxhICAqL1xyXG4gIG5vRmlsdGVyczogSW5wdXRTaWduYWw8Ym9vbGVhbj4gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIC8qKiBBcGxpY2EgY2xhc3NlcyBkZSBDU1MgbmEgY29sdW5hIGRlIGFjaXJkbyBjb20gbyByZXRvcm5vIGRhIGZ1bsOnw6NvIHBhc3NhZGEgY29tbyBwYXJhbWV0cm8gICovXHJcbiAgY29sdW1uQ2xhc3M6IElucHV0U2lnbmFsPENTU1N0eWxlU3RyaW5nR2VuZXJhdG9yIHwgbnVsbD4gPSBpbnB1dDxDU1NTdHlsZVN0cmluZ0dlbmVyYXRvciB8IG51bGw+KG51bGwpO1xyXG5cclxuICAvKiogQXBsaWNhIHN0eWxlIGRlIENTUyBuYSBjb2x1bmEgZGUgYWNpcmNvIGNvbSBvIHJldG9ybm8gZGEgZnVuw6fDo28gcGFzc2FkYSBjb21vIHBhcmFtZXRybyAgKi9cclxuICBjb2x1bW5TdHlsZTogSW5wdXRTaWduYWw8Q1NTU3R5bGVTdHJpbmdHZW5lcmF0b3IgfCBudWxsPiA9IGlucHV0PENTU1N0eWxlU3RyaW5nR2VuZXJhdG9yIHwgbnVsbD4obnVsbCk7XHJcblxyXG4gIC8qKiBSZW1vdmUgYSBwYWdpbmHDp8OjbyBkYSBsaXN0YWdlbSAqL1xyXG4gIG5vUGFnaW5hdGlvbjogSW5wdXRTaWduYWw8Ym9vbGVhbj4gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIC8qKiBDYW1pbmhvIGRlIHJlZGlyZWNpb25hbWVudG8gZG8gaXRlbSAqL1xyXG4gIGl0ZW1QYXRoOiBJbnB1dFNpZ25hbDxzdHJpbmc+ID0gaW5wdXQ8c3RyaW5nPigndmlldy86aWQnKTtcclxuICBpdGVtQ2xpY2s6IE91dHB1dEVtaXR0ZXJSZWY8e2l0ZW06IFQsIGZpZWxkOiBUYWJsZUZpZWxkfT4gPSBvdXRwdXQ8e2l0ZW06IFQsIGZpZWxkOiBUYWJsZUZpZWxkfT4oKTtcclxuXHJcbiAgSW5wdXRUeXBlID0gSW5wdXRUeXBlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBzdG9yYWdlU2VydmljZSA6IFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHJvdXRlciAgICAgICAgOiBSb3V0ZXIsXHJcbiAgKSB7IFxyXG4gICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgZm9yIChjb25zdCB0ZiBvZiB0aGlzLmxzdFRhYmxlRmllbGRzKCkuZmlsdGVyKHAgPT4gcC50eXBlID09IElucHV0VHlwZS5TZWxlY3QpKSB7XHJcbiAgICAgICAgKHRmLmNvbmZpZ3VyYXRpb24gYXMgSW5wdXRTZWxlY3RDb25maWd1cmF0aW9uKS5sb2FkZXIuUmVmcmVzaCgpLnRoZW4oKCkgPT4gdGhpcy5TZXRMc3RSb3dzKCkpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuU2V0THN0Um93cygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuUmVkaXJlY3QoZmllbGQ6IFRhYmxlRmllbGQgfCB1bmRlZmluZWQsIGl0ZW06IFQpOiB2b2lkIHtcclxuICBpZiAoZmllbGQgPT0gbnVsbCkge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICB0aGlzLml0ZW1DbGljay5lbWl0KHsgaXRlbSwgZmllbGQgfSk7XHJcbiAgaWYgKGZpZWxkLmluZGV4ID09ICdhdGl2bycpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgaWYgKGZpZWxkLnR5cGUgPT0gJ0ZpbGUnKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIGlmICh0aGlzLml0ZW1QYXRoKCkpIHtcclxuICAgIGNvbnN0IGlkID0gaXRlbVsnaWQnXTtcclxuICAgIGNvbnN0IHBhdGggPSB0aGlzLml0ZW1QYXRoKCkucmVwbGFjZShcIjppZFwiLCBpZC50b1N0cmluZygpKTtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgLi8ke3BhdGh9YF0sIHsgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZSB9KVxyXG4gIH1cclxufVxyXG5cclxuICBTZXRMc3RSb3dzKCl7IFxyXG4gICAgdGhpcy5sc3RSb3dzID0gdGhpcy5pdGVtcygpLm1hcChpdGVtID0+IHtcclxuICAgICAgcmV0dXJuIG5ldyBEZWZhdWx0VGFibGVSb3c8VD4oXHJcbiAgICAgICAgaXRlbSwgXHJcbiAgICAgICAgaXRlbVsnaWQnXSxcclxuICAgICAgICB0aGlzLkdldENvbHVtbnMoaXRlbSksXHJcbiAgICAgICAgJycsXHJcbiAgICAgICAgJycsXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgXHJcbiAgbHN0Um93czogRGVmYXVsdFRhYmxlUm93PFQ+W10gPSBbXTsgXHJcblxyXG4gIEdldENvbHVtbnMoaXRlbTogVCk6IERlZmF1bHRUYWJsZUNvbHVtbltdIHtcclxuICAgIHJldHVybiB0aGlzLmxzdFRhYmxlRmllbGRzKCkuZmlsdGVyKHAgPT4gIXAuaGlkZGVuKS5tYXAodGYgPT4ge1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IGl0ZW1bdGYuaW5kZXhdO1xyXG4gICAgICBjb25zdCBjb2x1bW4gPSBuZXcgRGVmYXVsdFRhYmxlQ29sdW1uKHZhbHVlLCB0Zik7XHJcbiAgICAgIGNvbHVtbi5jbGFzcyA9IHRoaXMuY29sdW1uQ2xhc3MoKSA/IHRoaXMuY29sdW1uQ2xhc3MoKSh0Zi5pbmRleCwgaXRlbSkgOiAnJztcclxuICAgICAgY29sdW1uLnN0eWxlID0gdGhpcy5jb2x1bW5TdHlsZSgpID8gdGhpcy5jb2x1bW5TdHlsZSgpKHRmLmluZGV4LCBpdGVtKSA6ICcnO1xyXG4gICAgICBcclxuICAgICAgaWYoIXZhbHVlKXsgXHJcbiAgICAgICAgY29sdW1uLmxhYmVsID0gJy0nIFxyXG4gICAgICAgIHJldHVybiBjb2x1bW47XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIGlmKHRmLnR5cGUgPT0gSW5wdXRUeXBlLkJvb2wpe1xyXG4gICAgICAgIGNvbHVtbi5sYWJlbCA9IFwiPGJvb2w+XCJcclxuICAgICAgfSBlbHNlXHJcbiAgICAgIGlmKHRmLnR5cGUgPT0gSW5wdXRUeXBlLkNlcCl7XHJcbiAgICAgICAgY29sdW1uLmxhYmVsID0gRm9ybWF0Q2VwKHZhbHVlKTtcclxuICAgICAgfSBlbHNlXHJcbiAgICAgIGlmKHRmLnR5cGUgPT0gSW5wdXRUeXBlLkNvbG9yKXtcclxuICAgICAgICBjb2x1bW4ubGFiZWwgPSB2YWx1ZTtcclxuICAgICAgfSBlbHNlXHJcbiAgICAgIGlmKFtJbnB1dFR5cGUuQ3BmLCBJbnB1dFR5cGUuQ25waiwgSW5wdXRUeXBlLkNwZkNucGpdLmluY2x1ZGVzKHRmLnR5cGUpKXtcclxuICAgICAgICBjb2x1bW4ubGFiZWwgPSBGb3JtYXRDcGZDbnBqKHZhbHVlKTtcclxuICAgICAgfSBlbHNlXHJcbiAgICAgIGlmKHRmLnR5cGUgPT0gSW5wdXRUeXBlLkRhdGVUaW1lKXtcclxuICAgICAgICBjb2x1bW4uY2xhc3MgKz0gJyBmb250LW1vbm8nO1xyXG4gICAgICAgIGNvbHVtbi5sYWJlbCA9IFV0aWxzLkRhdGVJU09Ub0RETU1ZWVlZSEhNTSh2YWx1ZSk7XHJcbiAgICAgIH0gZWxzZVxyXG4gICAgICBpZih0Zi50eXBlID09IElucHV0VHlwZS5EYXRlKXtcclxuICAgICAgICBjb2x1bW4uY2xhc3MgKz0gJyBmb250LW1vbm8nO1xyXG4gICAgICAgIGNvbHVtbi5sYWJlbCA9IFV0aWxzLkRhdGVJU09Ub0RETU1ZWVlZKHZhbHVlKTtcclxuICAgICAgfSBlbHNlXHJcbiAgICAgIGlmKHRmLnR5cGUgPT0gSW5wdXRUeXBlLlRpbWUpe1xyXG4gICAgICAgIGNvbHVtbi5jbGFzcyArPSAnIGZvbnQtbW9ubyc7XHJcbiAgICAgICAgY29sdW1uLmxhYmVsID0gdmFsdWU7XHJcbiAgICAgIH0gZWxzZVxyXG4gICAgICBpZihbSW5wdXRUeXBlLkRlY2ltYWwsIElucHV0VHlwZS5EZWNpbWFsLCBJbnB1dFR5cGUuQ3VycmVuY3ksIElucHV0VHlwZS5OdW1iZXJdLmluY2x1ZGVzKHRmLnR5cGUpKXtcclxuICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uOiBJbnB1dERlY2ltYWxDb25maWd1cmF0aW9uID0gdGYuY29uZmlndXJhdGlvbjtcclxuICAgICAgICBjb2x1bW4ubGFiZWwgPSBbXHJcbiAgICAgICAgICBjb25maWd1cmF0aW9uLnByZWZpeCwgXHJcbiAgICAgICAgICBmb3JtYXROdW1iZXIodmFsdWUgYXMgbnVtYmVyLCAncHQtQlInLCBgMS4ke2NvbmZpZ3VyYXRpb24ucHJlY2lzaW9ufS0ke2NvbmZpZ3VyYXRpb24ucHJlY2lzaW9ufWApLFxyXG4gICAgICAgICAgY29uZmlndXJhdGlvbi5zdWZpeCwgXHJcbiAgICAgICAgXS5qb2luKCcgJyk7XHJcbiAgICAgIH0gZWxzZVxyXG4gICAgICBpZih0Zi50eXBlID09IElucHV0VHlwZS5GaWxlKXtcclxuICAgICAgICBjb2x1bW4ubGFiZWwgPSAnPGZpbGU+JztcclxuICAgICAgfSBlbHNlXHJcbiAgICAgIGlmKHRmLnR5cGUgPT0gSW5wdXRUeXBlLkljb24pe1xyXG4gICAgICAgIGNvbHVtbi5sYWJlbCA9ICdpY29uJztcclxuICAgICAgfSBlbHNlXHJcbiAgICAgIGlmKHRmLnR5cGUgPT0gSW5wdXRUeXBlLlNlbGVjdCl7XHJcbiAgICAgICAgY29sdW1uLmxhYmVsID0gKHRmLmNvbmZpZ3VyYXRpb24gYXMgSW5wdXRTZWxlY3RDb25maWd1cmF0aW9uKS5sb2FkZXIuR2V0TGFiZWwodmFsdWUpO1xyXG4gICAgICAgIGNvbHVtbi5sb2FkaW5nID0gISh0Zi5jb25maWd1cmF0aW9uIGFzIElucHV0U2VsZWN0Q29uZmlndXJhdGlvbikubG9hZGVyLmlzTG9hZGVkO1xyXG4gICAgICB9IGVsc2VcclxuICAgICAgaWYoW0lucHV0VHlwZS5TdHJpbmcsIElucHV0VHlwZS5UZXh0QXJlYV0uaW5jbHVkZXModGYudHlwZSkpe1xyXG4gICAgICAgIGNvbHVtbi5sYWJlbCA9IHZhbHVlXHJcbiAgICAgIH0gZWxzZVxyXG4gICAgICBpZihbSW5wdXRUeXBlLlRlbGVmb25lLCBJbnB1dFR5cGUuQ2VsdWxhciwgSW5wdXRUeXBlLlRlbGVmb25lQ2VsdWxhcl0uaW5jbHVkZXModGYudHlwZSkpe1xyXG4gICAgICAgIGNvbHVtbi5sYWJlbCA9IEZvcm1hdFRlbGVmb25lQ2VsdWxhcih2YWx1ZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBjb2x1bW47XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkgeyB0aGlzLlNldExzdFJvd3MoKTsgfVxyXG5cclxuICBTd2l0Y2hPcmRlcih0ZjogVGFibGVGaWVsZCk6IHZvaWR7XHJcbiAgICBpZih0aGlzLm9yZGVyQnlQcm9wZXJ0eSgpICE9IHRmLmluZGV4KXtcclxuICAgICAgdGhpcy5vcmRlckJ5UHJvcGVydHkuc2V0KHRmLmluZGV4KTtcclxuICAgICAgdGhpcy5hc2NlbmRpbmcuc2V0KHRydWUpO1xyXG4gICAgfSBlbHNlIFxyXG4gICAgaWYodGhpcy5hc2NlbmRpbmcoKSl7XHJcbiAgICAgIHRoaXMuYXNjZW5kaW5nLnNldChmYWxzZSk7XHJcbiAgICB9IGVsc2V7IFxyXG4gICAgICB0aGlzLm9yZGVyQnlQcm9wZXJ0eS5zZXQobnVsbCk7IFxyXG4gICAgfVxyXG4gICAgdGhpcy5yZWZyZXNoLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIENoYW5nZUZpbHRlcigpOiB2b2lke1xyXG4gICAgdGhpcy5maWx0ZXIuc2V0KENvbXBpbGVMc3RUYWJsZUZpZWxkKHRoaXMubHN0VGFibGVGaWVsZHMoKSkpO1xyXG4gICAgdGhpcy5wYWdlLnNldCgxKTtcclxuICAgIHRoaXMucmVmcmVzaC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBBdGl2YXIoaWQ6IG51bWJlcik6IHZvaWR7XHJcbiAgICB0aGlzLmF0aXZhci5lbWl0KGlkKTtcclxuICB9XHJcbn1cclxuXHJcbmNsYXNzIERlZmF1bHRUYWJsZVJvdzxUPntcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpdGVtOiBULFxyXG4gICAgcHVibGljIGlkOiBudW1iZXIgfCB1bmRlZmluZWQsXHJcbiAgICBwdWJsaWMgbHN0Q29sdW1uczogRGVmYXVsdFRhYmxlQ29sdW1uW10sXHJcbiAgICBwdWJsaWMgYWNvZXNDbGFzczogc3RyaW5nID0gJycsXHJcbiAgICBwdWJsaWMgYWNvZXNTdHlsZTogc3RyaW5nID0gJycsXHJcbiAgKXt9XHJcbn0gXHJcblxyXG5jbGFzcyBEZWZhdWx0VGFibGVDb2x1bW57XHJcbiAgcHVibGljIGxhYmVsOiBzdHJpbmcgfCBudWxsXHJcbiAgcHVibGljIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgY2xhc3M6IHN0cmluZyA9ICcnO1xyXG4gIHB1YmxpYyBzdHlsZTogc3RyaW5nID0gJyc7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdmFsdWU6IGFueSA9IG51bGwsXHJcbiAgICBwdWJsaWMgdGY6IFRhYmxlRmllbGQsXHJcbiAgKXt9XHJcbn1cclxuXHJcbmNsYXNzIEF2YWlsYWJsZVRhYmxlRmllbGR7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdGY6IFRhYmxlRmllbGQsXHJcbiAgICBwdWJsaWMgYXNjZW5kaW5nOiBib29sZWFuLFxyXG4gICAgcHVibGljIGRlc2NlbmRpbmc6IGJvb2xlYW4sXHJcbiAgKXt9XHJcbn0iLCI8ZGl2IGNsYXNzPVwic2l6ZS1mdWxsIHJvdW5kZWQteGwgZmxleCBmbGV4LWNvbCBvdmVyZmxvdy1oaWRkZW4gcmVsYXRpdmVcIj5cclxuICAgIDxsb2FkaW5nIFt0eXBlXT1cIjNcIiBbbG9hZGluZ109XCJsb2FkaW5nKClcIj48L2xvYWRpbmc+XHJcbiAgICA8Y29udGVudC1ibG9jayB0ZXh0PVwiU2VtIERhZG9zXCIgW3ZhbHVlXT1cIiEoaXRlbXMubGVuZ3RoICE9IDAgfHwgbG9hZGluZylcIj48L2NvbnRlbnQtYmxvY2s+XHJcblxyXG4gICAgIDxkaXYgY2xhc3M9XCJzaXplLWZ1bGwgc2hyaW5rIHJlbGF0aXZlIG92ZXJmbG93LXktYXV0b1wiPlxyXG4gICAgICAgIDx0YWJsZT5cclxuICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgIEBpZihhY29lc1RlbXBsYXRlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJwLTJcIj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBw6fDtWVzIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgQGZvciAodGZhIG9mIGxzdFRhYmxlRmllbGRzQXZhaWxhYmxlKCk7IHRyYWNrIHRmYS50Zi5pbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cInAtMlwiPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LXN0YXJ0IHRoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKCFub0ZpbHRlcnMoKSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aC1maWx0ZXIgY2xhc3M9XCIhdGV4dC1iYXNlXCIgc3R5bGU9XCJ0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50XCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiKCh0ZmEudGYudHlwZSAhPSBJbnB1dFR5cGUuRmlsZSB8fCAodGZhLnRmLmZpbHRlciAmJiB0ZmEudGYuZGlzYWJsZWRDaGFuZ2UoKSkpICYmICFub0ZpbHRlcnMoKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkXT1cInRmYS50ZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIkNoYW5nZUZpbHRlcigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdGgtZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t0ZmEudGYuaGVhZGVyfX0gXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZigodGZhLnRmLnR5cGUgIT0gSW5wdXRUeXBlLkZpbGUgfHwgKHRmYS50Zi5maWx0ZXIgJiYgdGZhLnRmLmRpc2FibGVkQ2hhbmdlKCkpKSAmJiAhbm9GaWx0ZXJzKCkpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBbbmdDbGFzc109XCJ7ICdiZy1saWdodC8xMCAhb3BhY2l0eS0xMDAnOiB0ZmEuYXNjZW5kaW5nIHx8IHRmYS5kZXNjZW5kaW5nIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJvcmRlciBoLTQgdy01IHJlbGF0aXZlIGN1cnNvci1wb2ludGVyIHJvdW5kZWQtbGcgb3BhY2l0eS0wIGRlZmF1bHQtdHJhbnNpdGlvblwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlN3aXRjaE9yZGVyKHRmYS50ZilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnRleHQtcHJpbWFyeV09XCJ0ZmEuYXNjZW5kaW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFic29sdXRlIGxlZnQtMCB0b3AtMFwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJhcnJvdy11cFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9pb24taWNvbj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnRleHQtcHJpbWFyeV09XCJ0ZmEuZGVzY2VuZGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSByaWdodC0wIGJvdHRvbS0wXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImFycm93LWRvd25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvaW9uLWljb24+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgQGZvciAocm93IG9mIGxzdFJvd3M7IHRyYWNrIHJvdy5pZCB8fCAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICA8dHIgW2hpZGRlbl09XCJsb2FkaW5nKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGFjb2VzVGVtcGxhdGUpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIChjbGljayk9XCJSZWRpcmVjdCh1bmRlZmluZWQsIHJvdy5pdGVtKVwiIGNsYXNzPVwid2hpdGVzcGFjZS1ub3dyYXAgcHktMSBweC0zIHt7cm93LmFjb2VzQ2xhc3N9fVwiIFtzdHlsZV09XCJyb3cuYWNvZXNTdHlsZVwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWNvZXNUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHJvdy5pdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGNvbCBvZiByb3cubHN0Q29sdW1uczsgdHJhY2sgY29sLnRmLmluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ7e2NvbC5jbGFzc319IHAtMiBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJSZWRpcmVjdChjb2wudGYsIHJvdy5pdGVtKVwiIFtzdHlsZV09XCInd2hpdGUtc3BhY2U6IHZhcigtLWlvbi10YWJsZS1yb3ctd3JhcCk7JyArIGNvbC5zdHlsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihjb2wudGYuaW5kZXggPT0gJ2F0aXZvJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2l6ZS1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnRcIiBbcm91dGVyTGlua109XCJudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLXRvZ2dsZSBbY2hlY2tlZF09XCJjb2wudmFsdWVcIiBbZGlzYWJsZWRdPVwibG9hZGluZygpXCIgKGlvbkNoYW5nZSk9XCJBdGl2YXIocm93LmlkKVwiID48L2lvbi10b2dnbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZWxzZSBpZiAoY29sLnRmLnR5cGUgPT0gSW5wdXRUeXBlLkJvb2wpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihjb2wudGYuY29uZmlndXJhdGlvbi50eXBlID09ICd0b2dnbGUnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi10b2dnbGUgW2NoZWNrZWRdPVwiY29sLnZhbHVlXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L2lvbi10b2dnbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1jaGVja2JveCBbY2hlY2tlZF09XCJjb2wudmFsdWVcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwvaW9uLWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGVsc2UgaWYgKGNvbC50Zi50eXBlID09IElucHV0VHlwZS5GaWxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkb3dubG9hZC1idXR0b24gWyhuZ01vZGVsKV09XCJjb2wudmFsdWVcIiBbY29uZmlndXJhdGlvbl09XCJjb2wudGYuY29uZmlndXJhdGlvblwiPjwvZG93bmxvYWQtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZWxzZSBpZiAoY29sLmxvYWRpbmcpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImRvdHNcIj48L2lvbi1zcGlubmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJjb2wuY2xhc3NcIj57eyBjb2wubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Nsb3Q9aXRlbS1lbmRdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgIDwvdGFibGU+XHJcbiAgICAgPC9kaXY+XHJcbiAgICAgQGlmKCFub1BhZ2luYXRpb24oKSl7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNocmluay0wIHotWzEwMF1cIj5cclxuICAgICAgICAgICAgPGRlZmF1bHQtcGFnaW5hdGlvblxyXG4gICAgICAgICAgICAgICAgW3BhZ2VdPVwicGFnZSgpXCJcclxuICAgICAgICAgICAgICAgIChwYWdlQ2hhbmdlKT1cInBhZ2Uuc2V0KCRldmVudCk7IHJlZnJlc2guZW1pdCgpXCJcclxuICAgICAgICAgICAgICAgIFt0b3RhbF09XCJ0b3RhbCgpXCJcclxuICAgICAgICAgICAgICAgIFtsaW1pdF09XCJsaW1pdCgpXCJcclxuICAgICAgICAgICAgICAgIFtsZW5ndGhdPVwiaXRlbXMoKS5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgW2xvYWRpbmddPVwibG9hZGluZygpXCJcclxuICAgICAgICAgICAgPjwvZGVmYXVsdC1wYWdpbmF0aW9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG48L2Rpdj4iXX0=
|