@sapphire-ion/framework 0.30.27 → 0.30.28
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 +37 -41
- 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 +35 -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 +58 -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/{themes → src/lib}/compiled-styles.scss +2338 -2338
- package/src/lib/components/_inputs_new/classes/input-control-base.ts +85 -0
- package/src/lib/components/_inputs_new/classes/input-provider-factory.ts +16 -0
- package/src/lib/components/_inputs_new/input-string/input-string.component.html +4 -0
- package/src/lib/components/_inputs_new/input-string/input-string.component.ts +15 -0
- package/src/lib/components/_inputs_new/inputs.module.ts +16 -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 +71 -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 +121 -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 +105 -0
- package/src/lib/components/default/default-table/default-table.component.ts +197 -0
- package/src/lib/components/default/default-table/th-filter/th-filter.component.html +61 -0
- package/src/lib/components/default/default-table/th-filter/th-filter.component.ts +178 -0
- package/src/lib/components/default/default-view/abstract-view.ts +25 -0
- package/src/lib/components/default/default-view/default-view.component.html +81 -0
- package/src/lib/components/default/default-view/default-view.component.ts +34 -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 +54 -0
- package/src/lib/components/default/default-view/view.ts +171 -0
- package/src/lib/components/default/default.module.ts +55 -0
- package/src/lib/components/default-page/default.page.html +53 -0
- package/src/lib/components/default-page/default.page.ts +77 -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 +61 -0
- package/src/lib/components/drawer/drawer-group/drawer-group.component.ts +44 -0
- package/src/lib/components/drawer/drawer.component.html +56 -0
- package/src/lib/components/drawer/drawer.component.ts +119 -0
- package/src/lib/components/drawer/menu.ts +20 -0
- package/src/lib/components/filter/filter.component.html +31 -0
- package/src/lib/components/filter/filter.component.ts +133 -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 +67 -0
- package/src/lib/components/inputs/custom-signal-input.ts +70 -0
- package/src/lib/components/inputs/input-bool/input-bool.component.html +18 -0
- package/src/lib/components/inputs/input-bool/input-bool.component.ts +36 -0
- package/src/lib/components/inputs/input-bool/input-bool.configuration.ts +14 -0
- package/src/lib/components/inputs/input-color/input-color.component.html +132 -0
- package/src/lib/components/inputs/input-color/input-color.component.ts +561 -0
- package/{lib/components/inputs/input-configuration.d.ts → src/lib/components/inputs/input-configuration.ts} +18 -8
- package/src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.html +26 -0
- package/src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.ts +78 -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 +40 -0
- package/src/lib/components/inputs/input-date/input-date.component.ts +98 -0
- package/src/lib/components/inputs/input-date/input-date.configuration.ts +6 -0
- package/src/lib/components/inputs/input-decimal/input-decimal.component.html +24 -0
- package/src/lib/components/inputs/input-decimal/input-decimal.component.ts +296 -0
- package/src/lib/components/inputs/input-decimal/input-decimal.configuration.ts +42 -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 +85 -0
- package/src/lib/components/inputs/input-file/input-file.component.html +101 -0
- package/src/lib/components/inputs/input-file/input-file.component.ts +120 -0
- package/src/lib/components/inputs/input-file/input-file.configuration.ts +8 -0
- package/src/lib/components/inputs/input-loading/input-loading.component.html +3 -0
- package/src/lib/components/inputs/input-loading/input-loading.component.ts +13 -0
- package/src/lib/components/inputs/input-provider-factory.ts +15 -0
- package/src/lib/components/inputs/input-select/ISelect.ts +26 -0
- package/src/lib/components/inputs/input-select/input-select-internal-option/input-select-internal-option.component.html +16 -0
- package/src/lib/components/inputs/input-select/input-select-internal-option/input-select-internal-option.component.ts +38 -0
- package/src/lib/components/inputs/input-select/input-select-option/input-select-option.component.html +15 -0
- package/src/lib/components/inputs/input-select/input-select-option/input-select-option.component.ts +47 -0
- package/src/lib/components/inputs/input-select/input-select-template.directive.ts +8 -0
- package/src/lib/components/inputs/input-select/input-select.component.html +66 -0
- package/src/lib/components/inputs/input-select/input-select.component.ts +323 -0
- package/src/lib/components/inputs/input-select/input.select.configuration.ts +188 -0
- package/src/lib/components/inputs/input-string/input-string.component.html +22 -0
- package/src/lib/components/inputs/input-string/input-string.component.ts +36 -0
- package/src/lib/components/inputs/input-string/input-string.configuration.ts +18 -0
- package/src/lib/components/inputs/input-textarea/input-textarea.component.html +25 -0
- package/src/lib/components/inputs/input-textarea/input-textarea.component.ts +35 -0
- package/src/lib/components/inputs/input-type.ts +16 -0
- package/src/lib/components/inputs/input-validators.ts +76 -0
- package/src/lib/components/inputs/inputs.module.ts +64 -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 +97 -0
- package/src/lib/components/main-content/main-content.component.html +61 -0
- package/src/lib/components/main-content/main-content.component.ts +55 -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 +36 -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.scss +0 -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 +26 -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 +107 -0
- package/src/lib/guards/token.interceptor.ts +28 -0
- package/src/lib/index.ts +175 -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/generics.service.ts +85 -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 +161 -0
- package/src/lib/services/web/api-url-provider.service.ts +48 -0
- package/src/lib/services/web/http.ativo.service.ts +52 -0
- package/src/lib/services/web/http.service.ts +184 -0
- package/src/lib/services/web/storage.service.ts +131 -0
- package/{themes → src/lib}/styles/core.styles.scss +4 -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 -32
- 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 -69
- 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 -99
- 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 -110
- 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 -222
- package/esm2022/lib/components/default/default-table/th-filter/th-filter.component.mjs +0 -186
- package/esm2022/lib/components/default/default-view/abstract-view.mjs +0 -22
- package/esm2022/lib/components/default/default-view/default-view.component.mjs +0 -51
- package/esm2022/lib/components/default/default-view/header-view/header-view.component.mjs +0 -75
- package/esm2022/lib/components/default/default-view/view.mjs +0 -175
- package/esm2022/lib/components/default/default.module.mjs +0 -87
- package/esm2022/lib/components/default-page/default.page.mjs +0 -73
- 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 -49
- package/esm2022/lib/components/drawer/drawer.component.mjs +0 -117
- package/esm2022/lib/components/drawer/menu.mjs +0 -15
- package/esm2022/lib/components/filter/filter.component.mjs +0 -127
- 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 -77
- package/esm2022/lib/components/inputs/custom-signal-input.mjs +0 -74
- package/esm2022/lib/components/inputs/input-bool/input-bool.component.mjs +0 -43
- package/esm2022/lib/components/inputs/input-bool/input-bool.configuration.mjs +0 -16
- package/esm2022/lib/components/inputs/input-color/input-color.component.mjs +0 -487
- package/esm2022/lib/components/inputs/input-configuration.mjs +0 -2
- package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.mjs +0 -93
- 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 -122
- package/esm2022/lib/components/inputs/input-date/input-date.configuration.mjs +0 -8
- package/esm2022/lib/components/inputs/input-decimal/input-decimal.component.mjs +0 -269
- package/esm2022/lib/components/inputs/input-decimal/input-decimal.configuration.mjs +0 -45
- 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 -94
- package/esm2022/lib/components/inputs/input-file/input-file.component.mjs +0 -131
- package/esm2022/lib/components/inputs/input-file/input-file.configuration.mjs +0 -11
- package/esm2022/lib/components/inputs/input-loading/input-loading.component.mjs +0 -16
- package/esm2022/lib/components/inputs/input-provider-factory.mjs +0 -15
- package/esm2022/lib/components/inputs/input-select/ISelect.mjs +0 -11
- package/esm2022/lib/components/inputs/input-select/input-select-internal-option/input-select-internal-option.component.mjs +0 -42
- package/esm2022/lib/components/inputs/input-select/input-select-option/input-select-option.component.mjs +0 -46
- package/esm2022/lib/components/inputs/input-select/input-select-template.directive.mjs +0 -16
- package/esm2022/lib/components/inputs/input-select/input-select.component.mjs +0 -322
- package/esm2022/lib/components/inputs/input-select/input.select.configuration.mjs +0 -164
- package/esm2022/lib/components/inputs/input-string/input-string.component.mjs +0 -50
- package/esm2022/lib/components/inputs/input-string/input-string.configuration.mjs +0 -18
- package/esm2022/lib/components/inputs/input-textarea/input-textarea.component.mjs +0 -47
- package/esm2022/lib/components/inputs/input-type.mjs +0 -18
- package/esm2022/lib/components/inputs/input-validators.mjs +0 -90
- package/esm2022/lib/components/inputs/inputs.module.mjs +0 -105
- 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 -102
- package/esm2022/lib/components/main-content/main-content.component.mjs +0 -62
- 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 -29
- 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 -106
- package/esm2022/lib/guards/token.interceptor.mjs +0 -25
- package/esm2022/lib/index.mjs +0 -173
- 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/generics.service.mjs +0 -84
- 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 -149
- package/esm2022/lib/services/web/api-url-provider.service.mjs +0 -29
- package/esm2022/lib/services/web/http.ativo.service.mjs +0 -55
- package/esm2022/lib/services/web/http.service.mjs +0 -169
- package/esm2022/lib/services/web/storage.service.mjs +0 -128
- package/esm2022/public-api.mjs +0 -5
- package/esm2022/sapphire-ion-framework.mjs +0 -5
- package/fesm2022/sapphire-ion-framework.mjs +0 -6240
- 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 -13
- 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 -44
- 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 -38
- 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 -72
- package/lib/components/default/default-table/th-filter/th-filter.component.d.ts +0 -20
- package/lib/components/default/default-view/abstract-view.d.ts +0 -18
- package/lib/components/default/default-view/default-view.component.d.ts +0 -26
- package/lib/components/default/default-view/header-view/header-view.component.d.ts +0 -26
- package/lib/components/default/default-view/view.d.ts +0 -56
- package/lib/components/default/default.module.d.ts +0 -28
- 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 -23
- 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 -36
- package/lib/components/inputs/custom-signal-input.d.ts +0 -38
- package/lib/components/inputs/input-bool/input-bool.component.d.ts +0 -19
- package/lib/components/inputs/input-bool/input-bool.configuration.d.ts +0 -17
- package/lib/components/inputs/input-color/input-color.component.d.ts +0 -80
- package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.d.ts +0 -24
- 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 -30
- package/lib/components/inputs/input-date/input-date.configuration.d.ts +0 -7
- package/lib/components/inputs/input-decimal/input-decimal.component.d.ts +0 -41
- package/lib/components/inputs/input-decimal/input-decimal.configuration.d.ts +0 -25
- 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 -37
- package/lib/components/inputs/input-file/input-file.component.d.ts +0 -39
- package/lib/components/inputs/input-file/input-file.configuration.d.ts +0 -11
- package/lib/components/inputs/input-loading/input-loading.component.d.ts +0 -7
- package/lib/components/inputs/input-provider-factory.d.ts +0 -4
- package/lib/components/inputs/input-select/ISelect.d.ts +0 -21
- package/lib/components/inputs/input-select/input-select-internal-option/input-select-internal-option.component.d.ts +0 -18
- package/lib/components/inputs/input-select/input-select-option/input-select-option.component.d.ts +0 -24
- package/lib/components/inputs/input-select/input-select-template.directive.d.ts +0 -8
- package/lib/components/inputs/input-select/input-select.component.d.ts +0 -66
- package/lib/components/inputs/input-select/input.select.configuration.d.ts +0 -87
- package/lib/components/inputs/input-string/input-string.component.d.ts +0 -19
- package/lib/components/inputs/input-string/input-string.configuration.d.ts +0 -14
- package/lib/components/inputs/input-textarea/input-textarea.component.d.ts +0 -18
- package/lib/components/inputs/input-type.d.ts +0 -16
- package/lib/components/inputs/input-validators.d.ts +0 -19
- package/lib/components/inputs/inputs.module.d.ts +0 -29
- 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 -17
- package/lib/components/stepper/step/step.component.d.ts +0 -15
- package/lib/components/stepper/stepper.component.d.ts +0 -17
- 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 -11
- 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 -109
- 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/generics.service.d.ts +0 -22
- 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 -36
- package/lib/services/web/api-url-provider.service.d.ts +0 -13
- package/lib/services/web/http.ativo.service.d.ts +0 -31
- package/lib/services/web/http.service.d.ts +0 -50
- package/lib/services/web/storage.service.d.ts +0 -25
- package/public-api.d.ts +0 -1
- /package/{themes → src/lib}/components/_inputs_new/input-string/input-string.component.scss +0 -0
- /package/{themes → src/lib}/components/_inputs_new/inputs.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-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-loading/input-loading.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-select/input-select-internal-option/input-select-internal-option.component.scss → src/lib/components/inputs/input-loading/input-bool.configuration.ts} +0 -0
- /package/{themes/components/inputs/input-select/input-select-option/input-select-option.component.scss → src/lib/components/inputs/input-loading/input-loading.component.scss} +0 -0
- /package/{themes/components/inputs/input-string/input-string.component.scss → src/lib/components/inputs/input-select/input-select-internal-option/input-select-internal-option.component.scss} +0 -0
- /package/{themes/components/inputs/input-textarea/input-textarea.component.scss → src/lib/components/inputs/input-select/input-select-option/input-select-option.component.scss} +0 -0
- /package/{themes → src/lib}/components/inputs/input-select/input-select.component.scss +0 -0
- /package/{themes/components/loading/loading.component.scss → src/lib/components/inputs/input-string/input-string.component.scss} +0 -0
- /package/{themes/components/stepper/stepper.component.scss → 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/tabs/tab/tab.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/stepper/step/step.component.scss +0 -0
- /package/{themes/components/text-tooltip/text-tooltip.component.scss → src/lib/components/stepper/stepper.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/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,322 +0,0 @@
|
|
|
1
|
-
import { Component, ContentChildren, ElementRef, Host, HostListener, Optional, QueryList, SkipSelf, ViewChild, ViewChildren, computed, effect, forwardRef, model, signal } from '@angular/core';
|
|
2
|
-
import { IonInput, IonItem, IonPopover, IonSearchbar } from '@ionic/angular';
|
|
3
|
-
import { ControlContainer } from '@angular/forms';
|
|
4
|
-
import { interval } from 'rxjs';
|
|
5
|
-
import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
|
|
6
|
-
import { BindLabelFactory, BindValueFactory, InputSelectConfiguration } from './input.select.configuration';
|
|
7
|
-
import { InputSelectInternalOptionComponent } from './input-select-internal-option/input-select-internal-option.component';
|
|
8
|
-
import { InputSelectOptionComponent } from './input-select-option/input-select-option.component';
|
|
9
|
-
import { ISelect } from './ISelect';
|
|
10
|
-
import { InputProviderFactory } from '../input-provider-factory';
|
|
11
|
-
import { CustomSignalInput } from '../custom-signal-input';
|
|
12
|
-
import { Search } from '../../../services/utils.service';
|
|
13
|
-
import * as i0 from "@angular/core";
|
|
14
|
-
import * as i1 from "@angular/forms";
|
|
15
|
-
import * as i2 from "@angular/common";
|
|
16
|
-
import * as i3 from "@ionic/angular";
|
|
17
|
-
import * as i4 from "@angular/cdk/scrolling";
|
|
18
|
-
import * as i5 from "../input-loading/input-loading.component";
|
|
19
|
-
import * as i6 from "./input-select-internal-option/input-select-internal-option.component";
|
|
20
|
-
export class InputSelectComponent extends CustomSignalInput {
|
|
21
|
-
constructor(controlContainer, elementRef) {
|
|
22
|
-
super();
|
|
23
|
-
this.controlContainer = controlContainer;
|
|
24
|
-
this.elementRef = elementRef;
|
|
25
|
-
/** Items disponíveis no select */
|
|
26
|
-
this.items = model([]);
|
|
27
|
-
/** Configuração do select */
|
|
28
|
-
this.configuration = model(new InputSelectConfiguration());
|
|
29
|
-
this.loadingFromLoader = false;
|
|
30
|
-
this.useDefaultModelOptions = signal(false);
|
|
31
|
-
this.bindValue = computed(() => {
|
|
32
|
-
if (this.useDefaultModelOptions()) {
|
|
33
|
-
return ((obj) => { return obj.value; });
|
|
34
|
-
}
|
|
35
|
-
return BindValueFactory(this.configuration());
|
|
36
|
-
});
|
|
37
|
-
this.bindLabel = computed(() => {
|
|
38
|
-
if (this.useDefaultModelOptions()) {
|
|
39
|
-
return ((obj) => { return obj.label; });
|
|
40
|
-
}
|
|
41
|
-
return BindLabelFactory(this.configuration());
|
|
42
|
-
});
|
|
43
|
-
this.lastItemsQtd = null;
|
|
44
|
-
this.CurrentLabel = "";
|
|
45
|
-
this.CurrentlyNoValue = true;
|
|
46
|
-
//[ Model ]
|
|
47
|
-
this._model = null;
|
|
48
|
-
this.interfaceOptions = { cssClass: 'wider-popover' };
|
|
49
|
-
this.Search = model("");
|
|
50
|
-
this.lstSearchItens = computed(() => { return Search(this.items(), this.Search(), this.bindLabel()); });
|
|
51
|
-
effect(() => { this.Update(); }, { allowSignalWrites: true });
|
|
52
|
-
this.updateInterval = interval(1000);
|
|
53
|
-
this.updateSubscription = this.updateInterval.subscribe(() => {
|
|
54
|
-
if (this.lastItemsQtd != this.items().length) {
|
|
55
|
-
this.lastItemsQtd = this.items().length;
|
|
56
|
-
this.Update();
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
ngOnDestroy() {
|
|
61
|
-
this.updateSubscription.unsubscribe();
|
|
62
|
-
}
|
|
63
|
-
ngOnInit() {
|
|
64
|
-
super.ngOnInit();
|
|
65
|
-
this.configuration().loader.AddComponent(this);
|
|
66
|
-
this.configuration().loader.Refresh(this.items());
|
|
67
|
-
}
|
|
68
|
-
Clear() {
|
|
69
|
-
this.model = null;
|
|
70
|
-
this.Update();
|
|
71
|
-
}
|
|
72
|
-
Update() {
|
|
73
|
-
this.UpdateSelected();
|
|
74
|
-
this.UpdateCurrentLabel();
|
|
75
|
-
}
|
|
76
|
-
UpdateCurrentLabel() {
|
|
77
|
-
if (this._model == null) {
|
|
78
|
-
this.CurrentLabel = this.configuration().placeholder;
|
|
79
|
-
this.CurrentlyNoValue = true;
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
if (!this.configuration().multiple) {
|
|
83
|
-
const m = this.items().find(p => this.bindValue()(p) == this._model);
|
|
84
|
-
if (m) {
|
|
85
|
-
this.CurrentLabel = this.bindLabel()(m);
|
|
86
|
-
this.CurrentlyNoValue = false;
|
|
87
|
-
}
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
if (!this._model) {
|
|
92
|
-
this.CurrentLabel = this.configuration().placeholder;
|
|
93
|
-
this.CurrentlyNoValue = true;
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
else if (Array.isArray(this.model) && !this.model.length) {
|
|
97
|
-
this.CurrentLabel = this.configuration().placeholder;
|
|
98
|
-
this.CurrentlyNoValue = true;
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
this.CurrentLabel = "";
|
|
102
|
-
this.CurrentlyNoValue = false;
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
UpdateSelected() {
|
|
107
|
-
if (this.lstOptions && this.lstOptions.length) {
|
|
108
|
-
this.lstOptions.forEach(p => p.isSelected = false);
|
|
109
|
-
this.lstOptions.filter(p => Array.isArray(this._model) ? this._model.includes(p.value) : this._model == p.value).forEach(p => p.isSelected = true);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
IsSelected(item) {
|
|
113
|
-
if (Array.isArray(this._model)) {
|
|
114
|
-
return this._model.includes(this.bindValue()(item));
|
|
115
|
-
}
|
|
116
|
-
return this._model == this.bindValue()(item);
|
|
117
|
-
}
|
|
118
|
-
/** Applies only on multiple */
|
|
119
|
-
GetSelectedItens() {
|
|
120
|
-
if (this._model && this.lstOptions.length) {
|
|
121
|
-
return this.lstOptions.filter(p => p.isSelected).map(p => p.model());
|
|
122
|
-
}
|
|
123
|
-
if (this._model && this.items()) {
|
|
124
|
-
return this.items().filter(p => Array.isArray(this._model) ? this._model.includes(this.bindValue()(p)) : this._model == this.bindValue()(p));
|
|
125
|
-
}
|
|
126
|
-
return [];
|
|
127
|
-
}
|
|
128
|
-
get model() { return this._model; }
|
|
129
|
-
set model(value) {
|
|
130
|
-
this.SetModel(value);
|
|
131
|
-
this.propagateChange(this._model);
|
|
132
|
-
}
|
|
133
|
-
SetModel(value) {
|
|
134
|
-
if (value == null) {
|
|
135
|
-
this._model = null;
|
|
136
|
-
return;
|
|
137
|
-
}
|
|
138
|
-
this._model = value;
|
|
139
|
-
this.Update();
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
142
|
-
SearchChanged() {
|
|
143
|
-
if (this.lstOptions.length) {
|
|
144
|
-
this.useDefaultModelOptions.set(true);
|
|
145
|
-
var lst = Search(this.lstOptions.map(p => p.model()), this.Search(), this.bindLabel());
|
|
146
|
-
this.lstOptions.forEach(p => p.hidden = !lst.includes(p.model()));
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
GetUseDefaultModelOptions() {
|
|
150
|
-
if (this.lstOptions && this.lstOptions.length) {
|
|
151
|
-
return true;
|
|
152
|
-
}
|
|
153
|
-
return false;
|
|
154
|
-
}
|
|
155
|
-
UpdateUseDefaultModelOptions() {
|
|
156
|
-
this.useDefaultModelOptions.set(this.GetUseDefaultModelOptions());
|
|
157
|
-
if (this.useDefaultModelOptions()) {
|
|
158
|
-
if (this.items().length != this.lstOptions.length) {
|
|
159
|
-
this.items.set(this.lstOptions.map(p => p.model()));
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
//[ Select ]
|
|
164
|
-
writeValue(obj) { this.SetModel(obj); }
|
|
165
|
-
Select(item) {
|
|
166
|
-
this.UpdateUseDefaultModelOptions();
|
|
167
|
-
if (!this.configuration().multiple) {
|
|
168
|
-
this.model = this.bindValue()(item);
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
var value = this.bindValue()(item);
|
|
172
|
-
if (this._model) {
|
|
173
|
-
if (this._model.includes(value)) {
|
|
174
|
-
this.model = [...this._model.filter(p => p != value)];
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
this.model = [...this._model, value];
|
|
178
|
-
}
|
|
179
|
-
return;
|
|
180
|
-
}
|
|
181
|
-
this.model = [value];
|
|
182
|
-
return;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
async PresentPopover($event) {
|
|
186
|
-
Object.defineProperty($event, 'target', { writable: false, value: this.inputContainer.nativeElement });
|
|
187
|
-
const Popover = this.ionPopoverComponent;
|
|
188
|
-
const PopoverElement = this.ionPopoverElement.nativeElement;
|
|
189
|
-
const PopoverContent = Array.from(Array.from(PopoverElement.shadowRoot.children).find(p => p.classList.contains("popover-wrapper")).children).find(p => p.classList.contains("popover-content"));
|
|
190
|
-
PopoverContent.style.width = this.inputContainer.nativeElement.offsetWidth + 'px';
|
|
191
|
-
await Popover.present($event);
|
|
192
|
-
this.searchbarComponent.setFocus();
|
|
193
|
-
if (this.cdkVirtualScrollViewport) {
|
|
194
|
-
this.cdkVirtualScrollViewport.nativeElement.scroll({ top: 1, behavior: 'smooth' });
|
|
195
|
-
}
|
|
196
|
-
this.focusedModel = null;
|
|
197
|
-
this.UpdateUseDefaultModelOptions();
|
|
198
|
-
}
|
|
199
|
-
;
|
|
200
|
-
async HandleKeyboardEvent(event) {
|
|
201
|
-
if (!this.inputComponent || !this.searchbarComponent) {
|
|
202
|
-
return;
|
|
203
|
-
}
|
|
204
|
-
const inputComponent = await this.inputComponent.getInputElement();
|
|
205
|
-
const searchbarComponent = await this.searchbarComponent.getInputElement();
|
|
206
|
-
if (event.target == inputComponent && event.key == "ArrowDown" && this.configuration().searcheable) {
|
|
207
|
-
this.itemComponent.nativeElement.click();
|
|
208
|
-
event.preventDefault();
|
|
209
|
-
}
|
|
210
|
-
else if (event.target == searchbarComponent) {
|
|
211
|
-
this.UpdateUseDefaultModelOptions();
|
|
212
|
-
const items = this.lstSearchItens();
|
|
213
|
-
if (event.key == "ArrowDown") {
|
|
214
|
-
if (this.focusedModel) {
|
|
215
|
-
const index = items.indexOf(this.focusedModel);
|
|
216
|
-
if (items[index + 1]) {
|
|
217
|
-
this.SetFocusedElement(items[index + 1]);
|
|
218
|
-
}
|
|
219
|
-
else {
|
|
220
|
-
this.SetFocusedElement(items[0]);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
else {
|
|
224
|
-
if (items[0]) {
|
|
225
|
-
this.SetFocusedElement(items[0]);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
else if (event.key == "ArrowUp") {
|
|
230
|
-
if (this.focusedModel) {
|
|
231
|
-
const index = items.indexOf(this.focusedModel);
|
|
232
|
-
if (items[index - 1]) {
|
|
233
|
-
this.SetFocusedElement(items[index - 1]);
|
|
234
|
-
}
|
|
235
|
-
else {
|
|
236
|
-
this.SetFocusedElement(items[items.length - 1]);
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
else if (event.key == "Enter") {
|
|
241
|
-
var Option;
|
|
242
|
-
if (this.useDefaultModelOptions()) {
|
|
243
|
-
Option = this.lstOptions.find(p => p.model() == this.focusedModel);
|
|
244
|
-
}
|
|
245
|
-
else {
|
|
246
|
-
Option = this.lstInternalOptions.find(p => p.model == this.focusedModel);
|
|
247
|
-
}
|
|
248
|
-
if (!Option.disabled) {
|
|
249
|
-
this.Select(this.focusedModel);
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
SetFocusedElement(focusedModel, scroll = true) {
|
|
255
|
-
this.focusedModel = focusedModel;
|
|
256
|
-
var Option;
|
|
257
|
-
if (this.useDefaultModelOptions()) {
|
|
258
|
-
Option = this.lstOptions.find(p => p.model() == focusedModel);
|
|
259
|
-
this.lstOptions.filter(p => p.onFocus).forEach(p => p.onFocus = false);
|
|
260
|
-
Option.onFocus = true;
|
|
261
|
-
}
|
|
262
|
-
else {
|
|
263
|
-
Option = this.lstInternalOptions.find(p => p.model == focusedModel);
|
|
264
|
-
this.lstInternalOptions.filter(p => p.onFocus).forEach(p => p.onFocus = false);
|
|
265
|
-
Option.onFocus = true;
|
|
266
|
-
}
|
|
267
|
-
if (scroll) {
|
|
268
|
-
Option.GetNativeElement().scrollIntoView({ behavior: 'smooth' });
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputSelectComponent, deps: [{ token: i1.ControlContainer, host: true, optional: true, skipSelf: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
272
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: InputSelectComponent, selector: "input-select", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: true, isRequired: false, transformFunction: null }, Search: { classPropertyName: "Search", publicName: "Search", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { items: "itemsChange", configuration: "configurationChange", Search: "SearchChange" }, host: { listeners: { "document:keydown": "HandleKeyboardEvent($event)" } }, providers: [InputProviderFactory.GetProvider(InputSelectComponent, [
|
|
273
|
-
{
|
|
274
|
-
provide: ISelect, useExisting: forwardRef(() => InputSelectComponent)
|
|
275
|
-
}
|
|
276
|
-
])], queries: [{ propertyName: "lstOptions", predicate: InputSelectOptionComponent }], viewQueries: [{ propertyName: "cdkVirtualScrollViewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true, read: (ElementRef) }, { propertyName: "inputContainer", first: true, predicate: ["container"], descendants: true, read: ElementRef }, { propertyName: "ionPopoverComponent", first: true, predicate: IonPopover, descendants: true }, { propertyName: "ionPopoverElement", first: true, predicate: IonPopover, descendants: true, read: ElementRef }, { propertyName: "searchbarComponent", first: true, predicate: IonSearchbar, descendants: true }, { propertyName: "inputComponent", first: true, predicate: IonInput, descendants: true }, { propertyName: "itemComponent", first: true, predicate: IonItem, descendants: true, read: ElementRef }, { propertyName: "lstInternalOptions", predicate: InputSelectInternalOptionComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"relative flex overflow-hidden\" #container>\r\n <ion-card \r\n class=\"focus-within:on-focus ion-card-input\" \r\n [disabled]=\"loading || loadingFromLoader || disabled\" \r\n [class.invalid]=\"invalid\"\r\n [class.submitted]=\"submitted\"\r\n [class.disabled]=\"disabled\"\r\n [ngClass]=\"{'!rounded-l-2xl !rounded-r-none !border-r-0': configuration().clearable}\"\r\n >\r\n <ion-card-content>\r\n <ion-item lines=\"none\" class=\"rounded-2xl w-full relative\" (click)=\"PresentPopover($event)\" [ngClass]=\"{'!rounded-l-2xl !rounded-r-none': configuration().clearable }\">\r\n <ion-input fill=\"none\" [readonly]=\"true\" labelPlacement=\"stacked\" [value]=\"CurrentLabel\" [class.no-items-opacity]=\"CurrentlyNoValue\">\r\n <ion-text id=\"label\" [ngClass]=\"{'required': required() }\" slot=\"label\" class=\"!text-dark\"> \r\n {{label}} \r\n </ion-text>\r\n </ion-input>\r\n @if(configuration().multiple){\r\n <div class=\"absolute left-0 bottom-0 h-6 w-full flex z-[90] overflow-x-auto\">\r\n @for(item of GetSelectedItens(); track $index){\r\n <div class=\"h-full flex bg-medium/10 border translucid-border rounded-lg mr-1 animated\">\r\n <div (click)=\"Select(item); $event.stopPropagation()\" class=\"bg-medium/10 cursor-pointer translucid-border min-w-min !border-l-0 !border-y-0 h-full aspect-square flex items-center justify-center rounded-r-lg\"> \r\n <ion-icon color=\"danger\" name=\"close\"></ion-icon>\r\n </div>\r\n <div class=\"h-full px-1 select-none\"> {{bindLabel()(item)}} </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </ion-item>\r\n \r\n </ion-card-content>\r\n </ion-card>\r\n <input-loading [loading]=\"loading || loadingFromLoader\"></input-loading>\r\n @if(configuration().clearable){\r\n <div class=\"w-12\">\r\n <ion-button (click)=\"Clear()\" [disabled]=\"loading || disabled || loadingFromLoader\" size=\"small\" fill=\"outline\" color=\"medium\" class=\"rounded-r-2xl h-full w-full\" style=\"--border-width: 1px 1px 2px 1px;\">\r\n <ion-icon name=\"backspace\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n }\r\n</div>\r\n\r\n<ion-popover class=\"input-select-popover\" [keepContentsMounted]=\"false\" [dismissOnSelect]=\"!configuration().multiple\" (didDismiss)=\"Search.set('')\">\r\n <ng-template>\r\n <div class=\"size-full flex flex-col bg-primary/10\">\r\n <div class=\"w-full shrink-0\" [hidden]=\"!configuration().searcheable\">\r\n <ion-searchbar [(ngModel)]=\"Search\" (ngModelChange)=\"SearchChanged()\" placeholder=\"Pesquisa...\" class=\"size-full bg-transparent\" [debounce]=\"100\"></ion-searchbar>\r\n </div>\r\n\r\n <div class=\"h-48 w-full overflow-hidden translucid-border !border-x-0 !border-b-0 rounded-t-2xl bg-light\" [ngClass]=\"{'!border-0': !configuration().searcheable}\">\r\n @if(!lstOptions || !lstOptions.length){\r\n <cdk-virtual-scroll-viewport itemSize=\"45\" [minBufferPx]=\"200\" [maxBufferPx]=\"300\" class=\"size-full\">\r\n <input-select-internal-option [model]=\"item\" *cdkVirtualFor=\"let item of lstSearchItens()\" [isSelected]=\"IsSelected(item)\">\r\n <ion-label class=\"truncate\">{{bindLabel()(item)}}</ion-label>\r\n </input-select-internal-option>\r\n </cdk-virtual-scroll-viewport>\r\n }\r\n @else {\r\n <div class=\"size-full overflow-y-auto overflow-x-hidden mask-y\">\r\n <ng-content select=\"input-select-option\"></ng-content>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </ng-template>\r\n</ion-popover>", styles: [".no-items-opacity{--color: color-mix(in srgb, var(--ion-color-dark) 60%, transparent 40%)}.rounded-2xl,.\\!rounded-2xl{--border-radius: 1rem}.rounded-r-2xl,.\\!rounded-r-2xl{--border-radius: 0rem 1rem 1rem 0rem}.rounded-l-2xl,.\\!rounded-l-2xl{--border-radius: 1rem 0rem 0rem 1rem}.rounded-tr-none,.\\!rounded-tr-none{--border-radius: 0rem 0rem 1rem 0rem}\n", ".on-hover{background:color-mix(in srgb,var(--ion-color-light) 97%,transparent 3%)}.on-hover:hover{transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.ion-card-input{margin:0;display:flex;height:100%;width:100%;align-items:center;justify-content:center;overflow:hidden;border-radius:1rem;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-light) 97%,transparent 3%);border-bottom-color:var(--ion-color-medium);border-right-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-top-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-left-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-width:1px 1px 2px 1px;min-height:58px;max-height:58px;height:58px}ion-card.ion-card-input:hover{background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.ion-card-input.submitted.invalid{border-color:color-mix(in srgb,var(--ion-color-danger) 75%,transparent 25%)!important}ion-card.ion-card-input.disabled{background-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%)!important}ion-card.ion-card-input ion-card-content{width:100%;height:100%;background-color:transparent;padding:0}ion-item{--background: transparent}ion-text#label.required:after{content:\"*\";color:var(--ion-color-danger);vertical-align:text-bottom;font-size:small}ion-text#label:not(.required):after{content:var(--input-opcional-label, \"(Opcional)\");color:var(--ion-color-medium);vertical-align:text-bottom;font-size:small}.on-focus{border-bottom-color:var(--ion-color-primary)}.focus-within\\:on-focus:focus-within{border-bottom-color:var(--ion-color-primary)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocapitalize", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "maxlength", "minlength", "mode", "name", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonPopover, selector: "ion-popover" }, { kind: "directive", type: i3.TextValueAccessor, selector: "ion-input:not([type=number]),ion-input-otp[type=text],ion-textarea,ion-searchbar" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i4.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i5.InputLoadingComponent, selector: "input-loading", inputs: ["loading"] }, { kind: "component", type: i6.InputSelectInternalOptionComponent, selector: "input-select-internal-option", inputs: ["hidden", "disabled", "label", "model", "isSelected"], outputs: ["labelChange"] }] }); }
|
|
277
|
-
}
|
|
278
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputSelectComponent, decorators: [{
|
|
279
|
-
type: Component,
|
|
280
|
-
args: [{ selector: 'input-select', providers: [InputProviderFactory.GetProvider(InputSelectComponent, [
|
|
281
|
-
{
|
|
282
|
-
provide: ISelect, useExisting: forwardRef(() => InputSelectComponent)
|
|
283
|
-
}
|
|
284
|
-
])], template: "<div class=\"relative flex overflow-hidden\" #container>\r\n <ion-card \r\n class=\"focus-within:on-focus ion-card-input\" \r\n [disabled]=\"loading || loadingFromLoader || disabled\" \r\n [class.invalid]=\"invalid\"\r\n [class.submitted]=\"submitted\"\r\n [class.disabled]=\"disabled\"\r\n [ngClass]=\"{'!rounded-l-2xl !rounded-r-none !border-r-0': configuration().clearable}\"\r\n >\r\n <ion-card-content>\r\n <ion-item lines=\"none\" class=\"rounded-2xl w-full relative\" (click)=\"PresentPopover($event)\" [ngClass]=\"{'!rounded-l-2xl !rounded-r-none': configuration().clearable }\">\r\n <ion-input fill=\"none\" [readonly]=\"true\" labelPlacement=\"stacked\" [value]=\"CurrentLabel\" [class.no-items-opacity]=\"CurrentlyNoValue\">\r\n <ion-text id=\"label\" [ngClass]=\"{'required': required() }\" slot=\"label\" class=\"!text-dark\"> \r\n {{label}} \r\n </ion-text>\r\n </ion-input>\r\n @if(configuration().multiple){\r\n <div class=\"absolute left-0 bottom-0 h-6 w-full flex z-[90] overflow-x-auto\">\r\n @for(item of GetSelectedItens(); track $index){\r\n <div class=\"h-full flex bg-medium/10 border translucid-border rounded-lg mr-1 animated\">\r\n <div (click)=\"Select(item); $event.stopPropagation()\" class=\"bg-medium/10 cursor-pointer translucid-border min-w-min !border-l-0 !border-y-0 h-full aspect-square flex items-center justify-center rounded-r-lg\"> \r\n <ion-icon color=\"danger\" name=\"close\"></ion-icon>\r\n </div>\r\n <div class=\"h-full px-1 select-none\"> {{bindLabel()(item)}} </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </ion-item>\r\n \r\n </ion-card-content>\r\n </ion-card>\r\n <input-loading [loading]=\"loading || loadingFromLoader\"></input-loading>\r\n @if(configuration().clearable){\r\n <div class=\"w-12\">\r\n <ion-button (click)=\"Clear()\" [disabled]=\"loading || disabled || loadingFromLoader\" size=\"small\" fill=\"outline\" color=\"medium\" class=\"rounded-r-2xl h-full w-full\" style=\"--border-width: 1px 1px 2px 1px;\">\r\n <ion-icon name=\"backspace\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n }\r\n</div>\r\n\r\n<ion-popover class=\"input-select-popover\" [keepContentsMounted]=\"false\" [dismissOnSelect]=\"!configuration().multiple\" (didDismiss)=\"Search.set('')\">\r\n <ng-template>\r\n <div class=\"size-full flex flex-col bg-primary/10\">\r\n <div class=\"w-full shrink-0\" [hidden]=\"!configuration().searcheable\">\r\n <ion-searchbar [(ngModel)]=\"Search\" (ngModelChange)=\"SearchChanged()\" placeholder=\"Pesquisa...\" class=\"size-full bg-transparent\" [debounce]=\"100\"></ion-searchbar>\r\n </div>\r\n\r\n <div class=\"h-48 w-full overflow-hidden translucid-border !border-x-0 !border-b-0 rounded-t-2xl bg-light\" [ngClass]=\"{'!border-0': !configuration().searcheable}\">\r\n @if(!lstOptions || !lstOptions.length){\r\n <cdk-virtual-scroll-viewport itemSize=\"45\" [minBufferPx]=\"200\" [maxBufferPx]=\"300\" class=\"size-full\">\r\n <input-select-internal-option [model]=\"item\" *cdkVirtualFor=\"let item of lstSearchItens()\" [isSelected]=\"IsSelected(item)\">\r\n <ion-label class=\"truncate\">{{bindLabel()(item)}}</ion-label>\r\n </input-select-internal-option>\r\n </cdk-virtual-scroll-viewport>\r\n }\r\n @else {\r\n <div class=\"size-full overflow-y-auto overflow-x-hidden mask-y\">\r\n <ng-content select=\"input-select-option\"></ng-content>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </ng-template>\r\n</ion-popover>", styles: [".no-items-opacity{--color: color-mix(in srgb, var(--ion-color-dark) 60%, transparent 40%)}.rounded-2xl,.\\!rounded-2xl{--border-radius: 1rem}.rounded-r-2xl,.\\!rounded-r-2xl{--border-radius: 0rem 1rem 1rem 0rem}.rounded-l-2xl,.\\!rounded-l-2xl{--border-radius: 1rem 0rem 0rem 1rem}.rounded-tr-none,.\\!rounded-tr-none{--border-radius: 0rem 0rem 1rem 0rem}\n", ".on-hover{background:color-mix(in srgb,var(--ion-color-light) 97%,transparent 3%)}.on-hover:hover{transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.ion-card-input{margin:0;display:flex;height:100%;width:100%;align-items:center;justify-content:center;overflow:hidden;border-radius:1rem;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-light) 97%,transparent 3%);border-bottom-color:var(--ion-color-medium);border-right-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-top-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-left-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-width:1px 1px 2px 1px;min-height:58px;max-height:58px;height:58px}ion-card.ion-card-input:hover{background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.ion-card-input.submitted.invalid{border-color:color-mix(in srgb,var(--ion-color-danger) 75%,transparent 25%)!important}ion-card.ion-card-input.disabled{background-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%)!important}ion-card.ion-card-input ion-card-content{width:100%;height:100%;background-color:transparent;padding:0}ion-item{--background: transparent}ion-text#label.required:after{content:\"*\";color:var(--ion-color-danger);vertical-align:text-bottom;font-size:small}ion-text#label:not(.required):after{content:var(--input-opcional-label, \"(Opcional)\");color:var(--ion-color-medium);vertical-align:text-bottom;font-size:small}.on-focus{border-bottom-color:var(--ion-color-primary)}.focus-within\\:on-focus:focus-within{border-bottom-color:var(--ion-color-primary)}\n"] }]
|
|
285
|
-
}], ctorParameters: () => [{ type: i1.ControlContainer, decorators: [{
|
|
286
|
-
type: Optional
|
|
287
|
-
}, {
|
|
288
|
-
type: Host
|
|
289
|
-
}, {
|
|
290
|
-
type: SkipSelf
|
|
291
|
-
}] }, { type: i0.ElementRef }], propDecorators: { lstOptions: [{
|
|
292
|
-
type: ContentChildren,
|
|
293
|
-
args: [InputSelectOptionComponent]
|
|
294
|
-
}], lstInternalOptions: [{
|
|
295
|
-
type: ViewChildren,
|
|
296
|
-
args: [InputSelectInternalOptionComponent]
|
|
297
|
-
}], cdkVirtualScrollViewport: [{
|
|
298
|
-
type: ViewChild,
|
|
299
|
-
args: [CdkVirtualScrollViewport, { read: (ElementRef) }]
|
|
300
|
-
}], inputContainer: [{
|
|
301
|
-
type: ViewChild,
|
|
302
|
-
args: ['container', { read: ElementRef }]
|
|
303
|
-
}], ionPopoverComponent: [{
|
|
304
|
-
type: ViewChild,
|
|
305
|
-
args: [IonPopover]
|
|
306
|
-
}], ionPopoverElement: [{
|
|
307
|
-
type: ViewChild,
|
|
308
|
-
args: [IonPopover, { read: ElementRef }]
|
|
309
|
-
}], searchbarComponent: [{
|
|
310
|
-
type: ViewChild,
|
|
311
|
-
args: [IonSearchbar]
|
|
312
|
-
}], inputComponent: [{
|
|
313
|
-
type: ViewChild,
|
|
314
|
-
args: [IonInput]
|
|
315
|
-
}], itemComponent: [{
|
|
316
|
-
type: ViewChild,
|
|
317
|
-
args: [IonItem, { read: ElementRef }]
|
|
318
|
-
}], HandleKeyboardEvent: [{
|
|
319
|
-
type: HostListener,
|
|
320
|
-
args: ['document:keydown', ['$event']]
|
|
321
|
-
}] } });
|
|
322
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtc2VsZWN0L2lucHV0LXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXNlbGVjdC9pbnB1dC1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQWtDLFFBQVEsRUFBRSxTQUFTLEVBQVUsUUFBUSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWtCLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeFAsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQTRCLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQXVCLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakksT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sdUVBQXVFLENBQUM7QUFDM0gsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLE9BQU8sRUFBaUIsTUFBTSxXQUFXLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJC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SEFpRWM7OzRGRHZDRCxvQkFBb0I7a0JBWmhDLFNBQVM7K0JBQ0UsY0FBYyxhQUdiLENBQUMsb0JBQW9CLENBQUMsV0FBVyx1QkFDMUM7NEJBQ0U7Z0NBQ0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs2QkFDdEU7eUJBQ0YsQ0FDRixDQUFDOzswQkF5QkMsUUFBUTs7MEJBQUksSUFBSTs7MEJBQUksUUFBUTtrRUFmYyxVQUFVO3NCQUF0RCxlQUFlO3VCQUFDLDBCQUEwQjtnQkFDTyxrQkFBa0I7c0JBQW5FLFlBQVk7dUJBQUMsa0NBQWtDO2dCQUNnQix3QkFBd0I7c0JBQXZGLFNBQVM7dUJBQUMsd0JBQXdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQSxVQUFlLENBQUEsRUFBRTtnQkFrTGhCLGNBQWM7c0JBQTNELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFDckIsbUJBQW1CO3NCQUF6QyxTQUFTO3VCQUFDLFVBQVU7Z0JBQ3dCLGlCQUFpQjtzQkFBN0QsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUNsQixrQkFBa0I7c0JBQTFDLFNBQVM7dUJBQUMsWUFBWTtnQkE4QkYsY0FBYztzQkFBbEMsU0FBUzt1QkFBQyxRQUFRO2dCQUN3QixhQUFhO3NCQUF2RCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBRWxDLG1CQUFtQjtzQkFEeEIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBIb3N0LCBIb3N0TGlzdGVuZXIsIE1vZGVsU2lnbmFsLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIFF1ZXJ5TGlzdCwgU2lnbmFsLCBTa2lwU2VsZiwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4sIFdyaXRhYmxlU2lnbmFsLCBjb21wdXRlZCwgZWZmZWN0LCBmb3J3YXJkUmVmLCBtb2RlbCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElvbklucHV0LCBJb25JdGVtLCBJb25Qb3BvdmVyLCBJb25TZWFyY2hiYXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIGludGVydmFsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xyXG5cclxuaW1wb3J0IHsgQmluZExhYmVsRmFjdG9yeSwgQmluZFZhbHVlRmFjdG9yeSwgRGVmYXVsdE1vZGVsT3B0aW9ucywgSW5wdXRTZWxlY3RDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9pbnB1dC5zZWxlY3QuY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IElucHV0U2VsZWN0SW50ZXJuYWxPcHRpb25Db21wb25lbnQgfSBmcm9tICcuL2lucHV0LXNlbGVjdC1pbnRlcm5hbC1vcHRpb24vaW5wdXQtc2VsZWN0LWludGVybmFsLW9wdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dFNlbGVjdE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtc2VsZWN0LW9wdGlvbi9pbnB1dC1zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElTZWxlY3QsIElTZWxlY3RPcHRpb24gfSBmcm9tICcuL0lTZWxlY3QnO1xyXG5pbXBvcnQgeyBJbnB1dFByb3ZpZGVyRmFjdG9yeSB9IGZyb20gJy4uL2lucHV0LXByb3ZpZGVyLWZhY3RvcnknO1xyXG5pbXBvcnQgeyBDdXN0b21TaWduYWxJbnB1dCB9IGZyb20gJy4uL2N1c3RvbS1zaWduYWwtaW5wdXQnO1xyXG5pbXBvcnQgeyBTZWFyY2ggfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaW5wdXQtc2VsZWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC1zZWxlY3QuY29tcG9uZW50LnNjc3MnLCAnLi4vaW5wdXRzLnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtJbnB1dFByb3ZpZGVyRmFjdG9yeS5HZXRQcm92aWRlcihJbnB1dFNlbGVjdENvbXBvbmVudCwgXHJcbiAgICBbXHJcbiAgICAgIHsgXHJcbiAgICAgICAgcHJvdmlkZTogSVNlbGVjdCwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5wdXRTZWxlY3RDb21wb25lbnQpXHJcbiAgICAgIH1cclxuICAgIF1cclxuICApXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBDdXN0b21TaWduYWxJbnB1dDxhbnk+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBJU2VsZWN0IHtcclxuXHJcbiAgLyoqIEl0ZW1zIGRpc3BvbsOtdmVpcyBubyBzZWxlY3QgKi9cclxuICBwdWJsaWMgaXRlbXMgICAgICAgICAgICA6IE1vZGVsU2lnbmFsPGFueVtdPiAgICAgICAgICAgICAgICAgICAgPSBtb2RlbDxhbnlbXT4oW10pO1xyXG4gIC8qKiBDb25maWd1cmHDp8OjbyBkbyBzZWxlY3QgKi9cclxuICBwdWJsaWMgY29uZmlndXJhdGlvbiAgICA6IE1vZGVsU2lnbmFsPElucHV0U2VsZWN0Q29uZmlndXJhdGlvbj4gPSBtb2RlbDxJbnB1dFNlbGVjdENvbmZpZ3VyYXRpb24+KG5ldyBJbnB1dFNlbGVjdENvbmZpZ3VyYXRpb24oKSk7IFxyXG4gIHB1YmxpYyBsb2FkaW5nRnJvbUxvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAQ29udGVudENoaWxkcmVuKElucHV0U2VsZWN0T3B0aW9uQ29tcG9uZW50KSBsc3RPcHRpb25zOiBRdWVyeUxpc3Q8SW5wdXRTZWxlY3RPcHRpb25Db21wb25lbnQ+O1xyXG4gIEBWaWV3Q2hpbGRyZW4oSW5wdXRTZWxlY3RJbnRlcm5hbE9wdGlvbkNvbXBvbmVudCkgbHN0SW50ZXJuYWxPcHRpb25zOiBRdWVyeUxpc3Q8SW5wdXRTZWxlY3RJbnRlcm5hbE9wdGlvbkNvbXBvbmVudD47XHJcbiAgQFZpZXdDaGlsZChDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQsIHsgcmVhZDogRWxlbWVudFJlZjxhbnk+IH0pIGNka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydDogRWxlbWVudFJlZjxhbnk+XHJcblxyXG4gIHByaXZhdGUgdXNlRGVmYXVsdE1vZGVsT3B0aW9uczogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHByb3RlY3RlZCBiaW5kVmFsdWU6IFNpZ25hbDwoKGFyZ3M6IGFueSkgPT4gYW55KT4gICAgICAgICA9IGNvbXB1dGVkKCgpID0+IHsgXHJcbiAgICBpZih0aGlzLnVzZURlZmF1bHRNb2RlbE9wdGlvbnMoKSl7IHJldHVybiAoKG9iajogRGVmYXVsdE1vZGVsT3B0aW9ucyk6IHN0cmluZyA9PiB7IHJldHVybiBvYmoudmFsdWU7IH0pOyB9XHJcbiAgICByZXR1cm4gQmluZFZhbHVlRmFjdG9yeSh0aGlzLmNvbmZpZ3VyYXRpb24oKSk7XHJcbiAgfSk7XHJcbiAgcHJvdGVjdGVkIGJpbmRMYWJlbDogU2lnbmFsPCgoYXJnczogYW55KSA9PiBzdHJpbmcpPiAgICAgID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgaWYodGhpcy51c2VEZWZhdWx0TW9kZWxPcHRpb25zKCkpeyByZXR1cm4gKChvYmo6IERlZmF1bHRNb2RlbE9wdGlvbnMpOiBzdHJpbmcgPT4geyByZXR1cm4gb2JqLmxhYmVsOyB9KTsgfVxyXG4gICAgcmV0dXJuIEJpbmRMYWJlbEZhY3RvcnkodGhpcy5jb25maWd1cmF0aW9uKCkpO1xyXG4gIH0pO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgQFNraXBTZWxmKClcclxuICAgIG92ZXJyaWRlIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsXHJcbiAgICBvdmVycmlkZSBlbGVtZW50UmVmICAgICAgOiBFbGVtZW50UmVmXHJcbiAgKSB7IHN1cGVyKCk7XHJcbiAgICBlZmZlY3QoKCkgPT4geyB0aGlzLlVwZGF0ZSgpOyB9LCB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pO1xyXG5cclxuICAgIHRoaXMudXBkYXRlSW50ZXJ2YWwgICAgID0gaW50ZXJ2YWwoMTAwMCk7XHJcbiAgICB0aGlzLnVwZGF0ZVN1YnNjcmlwdGlvbiA9IHRoaXMudXBkYXRlSW50ZXJ2YWwuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgaWYodGhpcy5sYXN0SXRlbXNRdGQgIT0gdGhpcy5pdGVtcygpLmxlbmd0aCl7XHJcbiAgICAgICAgdGhpcy5sYXN0SXRlbXNRdGQgPSB0aGlzLml0ZW1zKCkubGVuZ3RoO1xyXG4gICAgICAgIHRoaXMuVXBkYXRlKCk7XHJcbiAgICAgIH0gXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy51cGRhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUludGVydmFsOiBPYnNlcnZhYmxlPG51bWJlcj4gfCBudWxsO1xyXG4gIHVwZGF0ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBsYXN0SXRlbXNRdGQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIFxyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuXHJcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb24oKS5sb2FkZXIuQWRkQ29tcG9uZW50KHRoaXMpO1xyXG4gICAgdGhpcy5jb25maWd1cmF0aW9uKCkubG9hZGVyLlJlZnJlc2godGhpcy5pdGVtcygpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBDbGVhcigpOiB2b2lkeyBcclxuICAgIHRoaXMubW9kZWwgPSBudWxsOyBcclxuICAgIHRoaXMuVXBkYXRlKCk7XHJcbiAgfVxyXG4gIFxyXG4gIHByb3RlY3RlZCBDdXJyZW50TGFiZWwgICAgICA6IHN0cmluZyAgPSBcIlwiO1xyXG4gIHByb3RlY3RlZCBDdXJyZW50bHlOb1ZhbHVlICA6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBwdWJsaWMgVXBkYXRlKCl7XHJcbiAgICB0aGlzLlVwZGF0ZVNlbGVjdGVkKCk7XHJcbiAgICB0aGlzLlVwZGF0ZUN1cnJlbnRMYWJlbCgpOyBcclxuICB9XHJcbiAgcHJpdmF0ZSBVcGRhdGVDdXJyZW50TGFiZWwoKTogdm9pZHtcclxuICAgIGlmKHRoaXMuX21vZGVsID09IG51bGwpeyBcclxuICAgICAgdGhpcy5DdXJyZW50TGFiZWwgPSB0aGlzLmNvbmZpZ3VyYXRpb24oKS5wbGFjZWhvbGRlcjtcclxuICAgICAgdGhpcy5DdXJyZW50bHlOb1ZhbHVlID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYoIXRoaXMuY29uZmlndXJhdGlvbigpLm11bHRpcGxlKXtcclxuICAgICAgY29uc3QgbTogYW55IHwgbnVsbCA9IHRoaXMuaXRlbXMoKS5maW5kKHAgPT4gdGhpcy5iaW5kVmFsdWUoKShwKSA9PSB0aGlzLl9tb2RlbCk7XHJcbiAgICAgIGlmKG0peyBcclxuICAgICAgICB0aGlzLkN1cnJlbnRMYWJlbCAgICAgPSB0aGlzLmJpbmRMYWJlbCgpKG0pO1xyXG4gICAgICAgIHRoaXMuQ3VycmVudGx5Tm9WYWx1ZSA9IGZhbHNlOyBcclxuICAgICAgfVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9ZWxzZXtcclxuICAgICAgaWYoIXRoaXMuX21vZGVsKXsgXHJcbiAgICAgICAgdGhpcy5DdXJyZW50TGFiZWwgPSB0aGlzLmNvbmZpZ3VyYXRpb24oKS5wbGFjZWhvbGRlcjsgXHJcbiAgICAgICAgdGhpcy5DdXJyZW50bHlOb1ZhbHVlID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm47IFxyXG4gICAgICB9ZWxzZVxyXG4gICAgICBpZihBcnJheS5pc0FycmF5KHRoaXMubW9kZWwpICYmICF0aGlzLm1vZGVsLmxlbmd0aCl7IFxyXG4gICAgICAgIHRoaXMuQ3VycmVudExhYmVsID0gdGhpcy5jb25maWd1cmF0aW9uKCkucGxhY2Vob2xkZXI7IFxyXG4gICAgICAgIHRoaXMuQ3VycmVudGx5Tm9WYWx1ZSA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuOyBcclxuICAgICAgfVxyXG4gICAgICB0aGlzLkN1cnJlbnRMYWJlbCAgICAgPSBcIlwiOyBcclxuICAgICAgdGhpcy5DdXJyZW50bHlOb1ZhbHVlID0gZmFsc2U7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBVcGRhdGVTZWxlY3RlZCgpe1xyXG4gICAgaWYodGhpcy5sc3RPcHRpb25zICYmIHRoaXMubHN0T3B0aW9ucy5sZW5ndGgpe1xyXG4gICAgICB0aGlzLmxzdE9wdGlvbnMuZm9yRWFjaChwID0+IHAuaXNTZWxlY3RlZCA9IGZhbHNlKTtcclxuICAgICAgdGhpcy5sc3RPcHRpb25zLmZpbHRlcihwID0+IEFycmF5LmlzQXJyYXkodGhpcy5fbW9kZWwpID8gdGhpcy5fbW9kZWwuaW5jbHVkZXMocC52YWx1ZSkgOiB0aGlzLl9tb2RlbCA9PSBwLnZhbHVlKS5mb3JFYWNoKHAgPT4gcC5pc1NlbGVjdGVkID0gdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBJc1NlbGVjdGVkKGl0ZW06IGFueSl7XHJcbiAgICBpZihBcnJheS5pc0FycmF5KHRoaXMuX21vZGVsKSl7XHJcbiAgICAgIHJldHVybiB0aGlzLl9tb2RlbC5pbmNsdWRlcyh0aGlzLmJpbmRWYWx1ZSgpKGl0ZW0pKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9tb2RlbCA9PSB0aGlzLmJpbmRWYWx1ZSgpKGl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIEFwcGxpZXMgb25seSBvbiBtdWx0aXBsZSAqL1xyXG4gIHByb3RlY3RlZCBHZXRTZWxlY3RlZEl0ZW5zKCk6IGFueVtde1xyXG4gICAgaWYodGhpcy5fbW9kZWwgJiYgdGhpcy5sc3RPcHRpb25zLmxlbmd0aCl7XHJcbiAgICAgIHJldHVybiB0aGlzLmxzdE9wdGlvbnMuZmlsdGVyKHAgPT4gcC5pc1NlbGVjdGVkKS5tYXAocCA9PiBwLm1vZGVsKCkpOyBcclxuICAgIH1cclxuICAgIGlmKHRoaXMuX21vZGVsICYmIHRoaXMuaXRlbXMoKSl7XHJcbiAgICAgIHJldHVybiB0aGlzLml0ZW1zKCkuZmlsdGVyKHAgPT4gQXJyYXkuaXNBcnJheSh0aGlzLl9tb2RlbCkgPyB0aGlzLl9tb2RlbC5pbmNsdWRlcyh0aGlzLmJpbmRWYWx1ZSgpKHApKSA6IHRoaXMuX21vZGVsID09IHRoaXMuYmluZFZhbHVlKCkocCkpOyBcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gW107XHJcbiAgfVxyXG5cclxuICAvL1sgTW9kZWwgXVxyXG4gIG92ZXJyaWRlIF9tb2RlbDogYW55ID0gbnVsbDtcclxuICBvdmVycmlkZSBnZXQgbW9kZWwoKTogYW55ICAgICAgeyByZXR1cm4gdGhpcy5fbW9kZWw7ICB9XHJcbiAgb3ZlcnJpZGUgc2V0IG1vZGVsKHZhbHVlOiBhbnkpIHsgXHJcbiAgICB0aGlzLlNldE1vZGVsKHZhbHVlKTtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuX21vZGVsKTsgXHJcbiAgfVxyXG4gIHByb3RlY3RlZCBTZXRNb2RlbCh2YWx1ZTogYW55KTogdm9pZCB7IFxyXG4gICAgaWYodmFsdWUgPT0gbnVsbCApeyB0aGlzLl9tb2RlbCA9IG51bGw7IHJldHVybjsgfVxyXG5cclxuICAgIHRoaXMuX21vZGVsID0gdmFsdWU7XHJcblxyXG4gICAgdGhpcy5VcGRhdGUoKTtcclxuICAgIHJldHVybjsgXHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgU2VhcmNoQ2hhbmdlZCgpOiB2b2lke1xyXG4gICAgaWYodGhpcy5sc3RPcHRpb25zLmxlbmd0aCl7XHJcbiAgICAgIHRoaXMudXNlRGVmYXVsdE1vZGVsT3B0aW9ucy5zZXQodHJ1ZSk7XHJcbiAgICAgIHZhciBsc3QgPSBTZWFyY2godGhpcy5sc3RPcHRpb25zLm1hcChwID0+IHAubW9kZWwoKSksIHRoaXMuU2VhcmNoKCksIHRoaXMuYmluZExhYmVsKCkpOyBcclxuICAgICAgdGhpcy5sc3RPcHRpb25zLmZvckVhY2gocCA9PiBwLmhpZGRlbiA9ICFsc3QuaW5jbHVkZXMocC5tb2RlbCgpKSlcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgcHJvdGVjdGVkIEdldFVzZURlZmF1bHRNb2RlbE9wdGlvbnMoKTogYm9vbGVhbntcclxuICAgIGlmKHRoaXMubHN0T3B0aW9ucyAmJiB0aGlzLmxzdE9wdGlvbnMubGVuZ3RoKXsgcmV0dXJuIHRydWU7IH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBVcGRhdGVVc2VEZWZhdWx0TW9kZWxPcHRpb25zKCk6IHZvaWR7XHJcbiAgICB0aGlzLnVzZURlZmF1bHRNb2RlbE9wdGlvbnMuc2V0KHRoaXMuR2V0VXNlRGVmYXVsdE1vZGVsT3B0aW9ucygpKTtcclxuICAgIGlmKHRoaXMudXNlRGVmYXVsdE1vZGVsT3B0aW9ucygpKXsgXHJcbiAgICAgIGlmKHRoaXMuaXRlbXMoKS5sZW5ndGggIT0gdGhpcy5sc3RPcHRpb25zLmxlbmd0aCl7XHJcbiAgICAgICAgdGhpcy5pdGVtcy5zZXQodGhpcy5sc3RPcHRpb25zLm1hcChwID0+IHAubW9kZWwoKSkpOyBcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9bIFNlbGVjdCBdXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQgeyB0aGlzLlNldE1vZGVsKG9iaik7IH1cclxuXHJcbiAgcHVibGljIFNlbGVjdChpdGVtOiBhbnkpOiB2b2lke1xyXG4gICAgdGhpcy5VcGRhdGVVc2VEZWZhdWx0TW9kZWxPcHRpb25zKCk7XHJcbiAgICBcclxuICAgIGlmKCF0aGlzLmNvbmZpZ3VyYXRpb24oKS5tdWx0aXBsZSl7IFxyXG4gICAgICB0aGlzLm1vZGVsID0gdGhpcy5iaW5kVmFsdWUoKShpdGVtKTsgXHJcbiAgICB9IFxyXG4gICAgZWxzZXtcclxuICAgICAgdmFyIHZhbHVlID0gIHRoaXMuYmluZFZhbHVlKCkoaXRlbSk7XHJcblxyXG4gICAgICBpZih0aGlzLl9tb2RlbCl7XHJcbiAgICAgICAgaWYodGhpcy5fbW9kZWwuaW5jbHVkZXModmFsdWUpKXsgXHJcbiAgICAgICAgICB0aGlzLm1vZGVsID0gWy4uLnRoaXMuX21vZGVsLmZpbHRlcihwID0+IHAgIT0gdmFsdWUpXTsgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsID0gWy4uLnRoaXMuX21vZGVsLCB2YWx1ZV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5tb2RlbCA9IFt2YWx1ZV07XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBpbnRlcmZhY2VPcHRpb25zID0geyBjc3NDbGFzcyA6ICd3aWRlci1wb3BvdmVyJyB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBpbnB1dENvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZChJb25Qb3BvdmVyKSBpb25Qb3BvdmVyQ29tcG9uZW50OiBJb25Qb3BvdmVyO1xyXG4gIEBWaWV3Q2hpbGQoSW9uUG9wb3ZlciwgeyByZWFkOiBFbGVtZW50UmVmIH0pIGlvblBvcG92ZXJFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKElvblNlYXJjaGJhcikgc2VhcmNoYmFyQ29tcG9uZW50OiBJb25TZWFyY2hiYXI7XHJcblxyXG4gIHB1YmxpYyBhc3luYyBQcmVzZW50UG9wb3ZlcigkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSgkZXZlbnQsICd0YXJnZXQnLCB7IHdyaXRhYmxlOiBmYWxzZSwgdmFsdWU6IHRoaXMuaW5wdXRDb250YWluZXIubmF0aXZlRWxlbWVudCB9KTtcclxuICAgIGNvbnN0IFBvcG92ZXIgICAgICAgID0gdGhpcy5pb25Qb3BvdmVyQ29tcG9uZW50O1xyXG4gICAgY29uc3QgUG9wb3ZlckVsZW1lbnQgPSB0aGlzLmlvblBvcG92ZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBcclxuICAgIGNvbnN0IFBvcG92ZXJDb250ZW50ID0gQXJyYXkuZnJvbShcclxuICAgICAgQXJyYXkuZnJvbShQb3BvdmVyRWxlbWVudC5zaGFkb3dSb290LmNoaWxkcmVuKS5maW5kKFxyXG4gICAgICAgIHAgPT4gcC5jbGFzc0xpc3QuY29udGFpbnMoXCJwb3BvdmVyLXdyYXBwZXJcIilcclxuICAgICAgKS5jaGlsZHJlblxyXG4gICAgKS5maW5kKFxyXG4gICAgICBwID0+IHAuY2xhc3NMaXN0LmNvbnRhaW5zKFwicG9wb3Zlci1jb250ZW50XCIpXHJcbiAgICApIGFzIEhUTUxFbGVtZW50XHJcbiAgICBQb3BvdmVyQ29udGVudC5zdHlsZS53aWR0aCA9IHRoaXMuaW5wdXRDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCArICdweCc7XHJcbiAgICBhd2FpdCBQb3BvdmVyLnByZXNlbnQoJGV2ZW50KTtcclxuICAgIHRoaXMuc2VhcmNoYmFyQ29tcG9uZW50LnNldEZvY3VzKCk7XHJcblxyXG4gICAgaWYodGhpcy5jZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQpe1xyXG4gICAgICB0aGlzLmNka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydC5uYXRpdmVFbGVtZW50LnNjcm9sbCh7IHRvcDogMSwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZm9jdXNlZE1vZGVsID0gbnVsbDtcclxuICAgIHRoaXMuVXBkYXRlVXNlRGVmYXVsdE1vZGVsT3B0aW9ucygpO1xyXG4gIH07XHJcblxyXG4gIHByb3RlY3RlZCBTZWFyY2ggICAgICAgIDogTW9kZWxTaWduYWw8c3RyaW5nPiA9IG1vZGVsPHN0cmluZz4oXCJcIik7XHJcbiAgcHJvdGVjdGVkIGxzdFNlYXJjaEl0ZW5zOiBTaWduYWw8YW55W10+ICAgICAgID0gY29tcHV0ZWQ8YW55W10+KCgpID0+IHsgcmV0dXJuIFNlYXJjaCh0aGlzLml0ZW1zKCksIHRoaXMuU2VhcmNoKCksIHRoaXMuYmluZExhYmVsKCkpOyB9KVxyXG5cclxuICAvLyNyZWdpb24gWyBBcnJvdy9UYWIgQ29udHJvbCBdXHJcbiAgQFZpZXdDaGlsZChJb25JbnB1dCkgaW5wdXRDb21wb25lbnQ6IElvbklucHV0O1xyXG4gIEBWaWV3Q2hpbGQoSW9uSXRlbSwgeyByZWFkOiBFbGVtZW50UmVmIH0pICBpdGVtQ29tcG9uZW50IDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgYXN5bmMgSGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYoIXRoaXMuaW5wdXRDb21wb25lbnQgfHwgIXRoaXMuc2VhcmNoYmFyQ29tcG9uZW50KXsgcmV0dXJuOyB9XHJcbiAgICBcclxuICAgIGNvbnN0IGlucHV0Q29tcG9uZW50ICAgICA9IGF3YWl0IHRoaXMuaW5wdXRDb21wb25lbnQuZ2V0SW5wdXRFbGVtZW50KCk7XHJcbiAgICBjb25zdCBzZWFyY2hiYXJDb21wb25lbnQgPSBhd2FpdCB0aGlzLnNlYXJjaGJhckNvbXBvbmVudC5nZXRJbnB1dEVsZW1lbnQoKTtcclxuICAgIFxyXG4gICAgaWYoZXZlbnQudGFyZ2V0ID09IGlucHV0Q29tcG9uZW50ICYmIGV2ZW50LmtleSA9PSBcIkFycm93RG93blwiICYmIHRoaXMuY29uZmlndXJhdGlvbigpLnNlYXJjaGVhYmxlKXtcclxuICAgICAgdGhpcy5pdGVtQ29tcG9uZW50Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1lbHNlXHJcbiAgICBpZihldmVudC50YXJnZXQgPT0gc2VhcmNoYmFyQ29tcG9uZW50KXtcclxuICAgICAgdGhpcy5VcGRhdGVVc2VEZWZhdWx0TW9kZWxPcHRpb25zKCk7XHJcblxyXG4gICAgICBjb25zdCBpdGVtcyAgPSB0aGlzLmxzdFNlYXJjaEl0ZW5zKCk7XHJcbiAgICAgIGlmKGV2ZW50LmtleSA9PSBcIkFycm93RG93blwiKXtcclxuICAgICAgICBpZih0aGlzLmZvY3VzZWRNb2RlbCl7XHJcbiAgICAgICAgICBjb25zdCBpbmRleCA9IGl0ZW1zLmluZGV4T2YodGhpcy5mb2N1c2VkTW9kZWwpO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBpZihpdGVtc1tpbmRleCArIDFdKXtcclxuICAgICAgICAgICAgdGhpcy5TZXRGb2N1c2VkRWxlbWVudChpdGVtc1tpbmRleCArIDFdKTtcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLlNldEZvY3VzZWRFbGVtZW50KGl0ZW1zWzBdKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIGlmKGl0ZW1zWzBdKXtcclxuICAgICAgICAgICAgdGhpcy5TZXRGb2N1c2VkRWxlbWVudChpdGVtc1swXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9ZWxzZVxyXG4gICAgICBpZihldmVudC5rZXkgPT0gXCJBcnJvd1VwXCIpe1xyXG4gICAgICAgIGlmKHRoaXMuZm9jdXNlZE1vZGVsKXtcclxuICAgICAgICAgIGNvbnN0IGluZGV4ID0gaXRlbXMuaW5kZXhPZih0aGlzLmZvY3VzZWRNb2RlbCk7XHJcblxyXG4gICAgICAgICAgaWYoaXRlbXNbaW5kZXggLSAxXSl7XHJcbiAgICAgICAgICAgIHRoaXMuU2V0Rm9jdXNlZEVsZW1lbnQoaXRlbXNbaW5kZXggLSAxXSk7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5TZXRGb2N1c2VkRWxlbWVudChpdGVtc1tpdGVtcy5sZW5ndGggLTFdKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1lbHNlXHJcbiAgICAgIGlmKGV2ZW50LmtleSA9PSBcIkVudGVyXCIpe1xyXG4gICAgICAgIHZhciBPcHRpb246IElTZWxlY3RPcHRpb247XHJcbiAgICAgICAgaWYodGhpcy51c2VEZWZhdWx0TW9kZWxPcHRpb25zKCkpe1xyXG4gICAgICAgICAgT3B0aW9uID0gdGhpcy5sc3RPcHRpb25zLmZpbmQocCA9PiBwLm1vZGVsKCkgPT0gdGhpcy5mb2N1c2VkTW9kZWwpO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgT3B0aW9uID0gdGhpcy5sc3RJbnRlcm5hbE9wdGlvbnMuZmluZChwID0+IHAubW9kZWwgPT0gdGhpcy5mb2N1c2VkTW9kZWwpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZighT3B0aW9uLmRpc2FibGVkKXtcclxuICAgICAgICAgIHRoaXMuU2VsZWN0KHRoaXMuZm9jdXNlZE1vZGVsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgU2V0Rm9jdXNlZEVsZW1lbnQoZm9jdXNlZE1vZGVsOiBhbnksIHNjcm9sbDogYm9vbGVhbiA9IHRydWUsKTogdm9pZHtcclxuICAgIHRoaXMuZm9jdXNlZE1vZGVsID0gZm9jdXNlZE1vZGVsO1xyXG4gICAgXHJcbiAgICB2YXIgT3B0aW9uOiBJU2VsZWN0T3B0aW9uO1xyXG4gICAgaWYodGhpcy51c2VEZWZhdWx0TW9kZWxPcHRpb25zKCkpe1xyXG4gICAgICBPcHRpb24gPSB0aGlzLmxzdE9wdGlvbnMuZmluZChwID0+IHAubW9kZWwoKSA9PSBmb2N1c2VkTW9kZWwpO1xyXG4gICAgICB0aGlzLmxzdE9wdGlvbnMuZmlsdGVyKHAgPT4gcC5vbkZvY3VzKS5mb3JFYWNoKHAgPT4gcC5vbkZvY3VzID0gZmFsc2UpO1xyXG4gICAgICBPcHRpb24ub25Gb2N1cyA9IHRydWU7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgT3B0aW9uID0gdGhpcy5sc3RJbnRlcm5hbE9wdGlvbnMuZmluZChwID0+IHAubW9kZWwgPT0gZm9jdXNlZE1vZGVsKTtcclxuICAgICAgdGhpcy5sc3RJbnRlcm5hbE9wdGlvbnMuZmlsdGVyKHAgPT4gcC5vbkZvY3VzKS5mb3JFYWNoKHAgPT4gcC5vbkZvY3VzID0gZmFsc2UpO1xyXG4gICAgICBPcHRpb24ub25Gb2N1cyA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmKHNjcm9sbCl7IE9wdGlvbi5HZXROYXRpdmVFbGVtZW50KCkuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcgfSk7IH1cclxuICB9XHJcblxyXG4gIGZvY3VzZWRNb2RlbDogYW55IHwgbnVsbDtcclxuICAvLyNlbmRyZWdpb24gWyBBcnJvdy9UYWIgQ29udHJvbCBdXHJcbn0iLCI8ZGl2IGNsYXNzPVwicmVsYXRpdmUgZmxleCBvdmVyZmxvdy1oaWRkZW5cIiAjY29udGFpbmVyPlxyXG4gIDxpb24tY2FyZCBcclxuICAgICAgY2xhc3M9XCJmb2N1cy13aXRoaW46b24tZm9jdXMgaW9uLWNhcmQtaW5wdXRcIiBcclxuICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmcgfHwgbG9hZGluZ0Zyb21Mb2FkZXIgfHwgZGlzYWJsZWRcIiBcclxuICAgICAgW2NsYXNzLmludmFsaWRdPVwiaW52YWxpZFwiXHJcbiAgICAgIFtjbGFzcy5zdWJtaXR0ZWRdPVwic3VibWl0dGVkXCJcclxuICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgW25nQ2xhc3NdPVwieychcm91bmRlZC1sLTJ4bCAhcm91bmRlZC1yLW5vbmUgIWJvcmRlci1yLTAnOiBjb25maWd1cmF0aW9uKCkuY2xlYXJhYmxlfVwiXHJcbiAgICA+XHJcbiAgICA8aW9uLWNhcmQtY29udGVudD5cclxuICAgICAgPGlvbi1pdGVtIGxpbmVzPVwibm9uZVwiIGNsYXNzPVwicm91bmRlZC0yeGwgdy1mdWxsIHJlbGF0aXZlXCIgKGNsaWNrKT1cIlByZXNlbnRQb3BvdmVyKCRldmVudClcIiBbbmdDbGFzc109XCJ7JyFyb3VuZGVkLWwtMnhsICFyb3VuZGVkLXItbm9uZSc6IGNvbmZpZ3VyYXRpb24oKS5jbGVhcmFibGUgfVwiPlxyXG4gICAgICAgIDxpb24taW5wdXQgZmlsbD1cIm5vbmVcIiBbcmVhZG9ubHldPVwidHJ1ZVwiIGxhYmVsUGxhY2VtZW50PVwic3RhY2tlZFwiIFt2YWx1ZV09XCJDdXJyZW50TGFiZWxcIiBbY2xhc3Mubm8taXRlbXMtb3BhY2l0eV09XCJDdXJyZW50bHlOb1ZhbHVlXCI+XHJcbiAgICAgICAgICA8aW9uLXRleHQgaWQ9XCJsYWJlbFwiIFtuZ0NsYXNzXT1cInsncmVxdWlyZWQnOiByZXF1aXJlZCgpIH1cIiBzbG90PVwibGFiZWxcIiBjbGFzcz1cIiF0ZXh0LWRhcmtcIj4gXHJcbiAgICAgICAgICAgIHt7bGFiZWx9fSBcclxuICAgICAgICAgIDwvaW9uLXRleHQ+XHJcbiAgICAgICAgPC9pb24taW5wdXQ+XHJcbiAgICAgICAgQGlmKGNvbmZpZ3VyYXRpb24oKS5tdWx0aXBsZSl7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgbGVmdC0wIGJvdHRvbS0wIGgtNiB3LWZ1bGwgZmxleCB6LVs5MF0gb3ZlcmZsb3cteC1hdXRvXCI+XHJcbiAgICAgICAgICAgIEBmb3IoaXRlbSBvZiBHZXRTZWxlY3RlZEl0ZW5zKCk7IHRyYWNrICRpbmRleCl7XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtZnVsbCBmbGV4IGJnLW1lZGl1bS8xMCBib3JkZXIgdHJhbnNsdWNpZC1ib3JkZXIgcm91bmRlZC1sZyBtci0xIGFuaW1hdGVkXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJTZWxlY3QoaXRlbSk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIGNsYXNzPVwiYmctbWVkaXVtLzEwIGN1cnNvci1wb2ludGVyIHRyYW5zbHVjaWQtYm9yZGVyIG1pbi13LW1pbiAhYm9yZGVyLWwtMCAhYm9yZGVyLXktMCBoLWZ1bGwgYXNwZWN0LXNxdWFyZSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLXItbGdcIj4gXHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIGNvbG9yPVwiZGFuZ2VyXCIgbmFtZT1cImNsb3NlXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtZnVsbCBweC0xIHNlbGVjdC1ub25lXCI+IHt7YmluZExhYmVsKCkoaXRlbSl9fSA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2lvbi1pdGVtPlxyXG4gICAgICBcclxuICAgIDwvaW9uLWNhcmQtY29udGVudD5cclxuICA8L2lvbi1jYXJkPlxyXG4gIDxpbnB1dC1sb2FkaW5nIFtsb2FkaW5nXT1cImxvYWRpbmcgfHwgbG9hZGluZ0Zyb21Mb2FkZXJcIj48L2lucHV0LWxvYWRpbmc+XHJcbiAgQGlmKGNvbmZpZ3VyYXRpb24oKS5jbGVhcmFibGUpe1xyXG4gICAgPGRpdiBjbGFzcz1cInctMTJcIj5cclxuICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cIkNsZWFyKClcIiBbZGlzYWJsZWRdPVwibG9hZGluZyB8fCBkaXNhYmxlZCB8fCBsb2FkaW5nRnJvbUxvYWRlclwiIHNpemU9XCJzbWFsbFwiIGZpbGw9XCJvdXRsaW5lXCIgY29sb3I9XCJtZWRpdW1cIiBjbGFzcz1cInJvdW5kZWQtci0yeGwgaC1mdWxsIHctZnVsbFwiIHN0eWxlPVwiLS1ib3JkZXItd2lkdGg6IDFweCAxcHggMnB4IDFweDtcIj5cclxuICAgICAgICA8aW9uLWljb24gbmFtZT1cImJhY2tzcGFjZVwiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPlxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbjwvZGl2PlxyXG5cclxuPGlvbi1wb3BvdmVyIGNsYXNzPVwiaW5wdXQtc2VsZWN0LXBvcG92ZXJcIiBba2VlcENvbnRlbnRzTW91bnRlZF09XCJmYWxzZVwiIFtkaXNtaXNzT25TZWxlY3RdPVwiIWNvbmZpZ3VyYXRpb24oKS5tdWx0aXBsZVwiIChkaWREaXNtaXNzKT1cIlNlYXJjaC5zZXQoJycpXCI+XHJcbiAgPG5nLXRlbXBsYXRlPlxyXG4gICAgPGRpdiBjbGFzcz1cInNpemUtZnVsbCBmbGV4IGZsZXgtY29sIGJnLXByaW1hcnkvMTBcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBzaHJpbmstMFwiIFtoaWRkZW5dPVwiIWNvbmZpZ3VyYXRpb24oKS5zZWFyY2hlYWJsZVwiPlxyXG4gICAgICAgIDxpb24tc2VhcmNoYmFyIFsobmdNb2RlbCldPVwiU2VhcmNoXCIgKG5nTW9kZWxDaGFuZ2UpPVwiU2VhcmNoQ2hhbmdlZCgpXCIgcGxhY2Vob2xkZXI9XCJQZXNxdWlzYS4uLlwiIGNsYXNzPVwic2l6ZS1mdWxsIGJnLXRyYW5zcGFyZW50XCIgW2RlYm91bmNlXT1cIjEwMFwiPjwvaW9uLXNlYXJjaGJhcj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaC00OCB3LWZ1bGwgb3ZlcmZsb3ctaGlkZGVuIHRyYW5zbHVjaWQtYm9yZGVyICFib3JkZXIteC0wICFib3JkZXItYi0wIHJvdW5kZWQtdC0yeGwgYmctbGlnaHRcIiBbbmdDbGFzc109XCJ7JyFib3JkZXItMCc6ICFjb25maWd1cmF0aW9uKCkuc2VhcmNoZWFibGV9XCI+XHJcbiAgICAgICAgQGlmKCFsc3RPcHRpb25zIHx8ICFsc3RPcHRpb25zLmxlbmd0aCl7XHJcbiAgICAgICAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0IGl0ZW1TaXplPVwiNDVcIiBbbWluQnVmZmVyUHhdPVwiMjAwXCIgW21heEJ1ZmZlclB4XT1cIjMwMFwiIGNsYXNzPVwic2l6ZS1mdWxsXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dC1zZWxlY3QtaW50ZXJuYWwtb3B0aW9uIFttb2RlbF09XCJpdGVtXCIgKmNka1ZpcnR1YWxGb3I9XCJsZXQgaXRlbSBvZiBsc3RTZWFyY2hJdGVucygpXCIgW2lzU2VsZWN0ZWRdPVwiSXNTZWxlY3RlZChpdGVtKVwiPlxyXG4gICAgICAgICAgICAgIDxpb24tbGFiZWwgY2xhc3M9XCJ0cnVuY2F0ZVwiPnt7YmluZExhYmVsKCkoaXRlbSl9fTwvaW9uLWxhYmVsPlxyXG4gICAgICAgICAgICA8L2lucHV0LXNlbGVjdC1pbnRlcm5hbC1vcHRpb24+XHJcbiAgICAgICAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNpemUtZnVsbCBvdmVyZmxvdy15LWF1dG8gb3ZlcmZsb3cteC1oaWRkZW4gbWFzay15XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImlucHV0LXNlbGVjdC1vcHRpb25cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9pb24tcG9wb3Zlcj4iXX0=
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
import { firstValueFrom } from "rxjs";
|
|
2
|
-
import { HttpService } from "../../../services/web/http.service";
|
|
3
|
-
import { HttpServiceAtivo } from "../../../services/web/http.ativo.service";
|
|
4
|
-
import { ViewFiltros } from "../../../classes/filters/view-filtros";
|
|
5
|
-
import { INT_MAX } from "../../../services/utils.service";
|
|
6
|
-
export class InputSelectConfiguration {
|
|
7
|
-
constructor(
|
|
8
|
-
/** Valor que será setado no formControl */
|
|
9
|
-
bindValue = "id",
|
|
10
|
-
/** Valor que será exibido */
|
|
11
|
-
bindLabel = "nome",
|
|
12
|
-
/** Indica se o select pode ser nulo e limpavel */
|
|
13
|
-
clearable = true,
|
|
14
|
-
/** Indica se o select pode ser pesquisado */
|
|
15
|
-
searcheable = true,
|
|
16
|
-
/**
|
|
17
|
-
* Se LoadFrom instanceof HttpService -> Os dados serão carregados do List()
|
|
18
|
-
* Se LoadFrom instanceof HttpServiceAtivo -> Os dados serão carregados do ListAtivo()
|
|
19
|
-
* Se LoadFrom instanceof Observable -> Os dados serão carregados da função indicada
|
|
20
|
-
* Se LoadFrom instanceof Array -> Os dados serão o array
|
|
21
|
-
*/
|
|
22
|
-
loadFrom,
|
|
23
|
-
/** Se = true Os valores no form control seráo um array dos items selecionados */
|
|
24
|
-
multiple = false,
|
|
25
|
-
/** Aplica os filtros na pesquisa */
|
|
26
|
-
vFiltros = null,
|
|
27
|
-
/** Desativa os items que estão de acordo com a função */
|
|
28
|
-
disableConditional = null) {
|
|
29
|
-
this.bindValue = bindValue;
|
|
30
|
-
this.bindLabel = bindLabel;
|
|
31
|
-
this.clearable = clearable;
|
|
32
|
-
this.searcheable = searcheable;
|
|
33
|
-
this.loadFrom = loadFrom;
|
|
34
|
-
this.multiple = multiple;
|
|
35
|
-
this.disableConditional = disableConditional;
|
|
36
|
-
this.placeholder = "Selecione um item...";
|
|
37
|
-
this.noItensFoundText = "Sem items encontrados...";
|
|
38
|
-
this.vFiltros = null;
|
|
39
|
-
this.clearable = clearable;
|
|
40
|
-
this.searcheable = searcheable;
|
|
41
|
-
this.multiple = multiple;
|
|
42
|
-
if (vFiltros != null) {
|
|
43
|
-
const v = vFiltros;
|
|
44
|
-
if (v.ascending == null || v.ascending == undefined) {
|
|
45
|
-
v.ascending = true;
|
|
46
|
-
}
|
|
47
|
-
this.vFiltros = new ViewFiltros(INT_MAX, v.search, 1, v.orderByProperty, v.ascending);
|
|
48
|
-
this.vFiltros.filter = v.filter;
|
|
49
|
-
}
|
|
50
|
-
if (loadFrom) {
|
|
51
|
-
if (Array.isArray(loadFrom)) {
|
|
52
|
-
this.loadFromArray = loadFrom;
|
|
53
|
-
}
|
|
54
|
-
else if (loadFrom instanceof HttpService || loadFrom instanceof HttpServiceAtivo) {
|
|
55
|
-
this.loadFromService = loadFrom;
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
this.loadFromFunction = loadFrom;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
this.loader = new InputSelectDataLoader(this);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
export class InputSelectDataLoader {
|
|
65
|
-
constructor(configuration) {
|
|
66
|
-
this.lstComponents = [];
|
|
67
|
-
/** Valor que será setado no formControl */
|
|
68
|
-
this.bindValue = null;
|
|
69
|
-
/** Valor que será exibido */
|
|
70
|
-
this.bindLabel = null;
|
|
71
|
-
this._isLoaded = false;
|
|
72
|
-
this.items = [];
|
|
73
|
-
this.configuration = configuration;
|
|
74
|
-
this.bindValue = BindValueFactory(configuration);
|
|
75
|
-
this.bindLabel = BindLabelFactory(configuration);
|
|
76
|
-
}
|
|
77
|
-
GetLabel(value) {
|
|
78
|
-
if (!this.items || !this.bindValue || !this.bindLabel) {
|
|
79
|
-
return "";
|
|
80
|
-
}
|
|
81
|
-
const item = this.items.find(p => this.bindValue(p) == value);
|
|
82
|
-
if (!item) {
|
|
83
|
-
return "";
|
|
84
|
-
}
|
|
85
|
-
return this.bindLabel(item);
|
|
86
|
-
}
|
|
87
|
-
AddComponent(component) {
|
|
88
|
-
this.lstComponents.push(component);
|
|
89
|
-
}
|
|
90
|
-
async Refresh(items) {
|
|
91
|
-
this.lstComponents.forEach(component => { component.loadingFromLoader = true; });
|
|
92
|
-
if (!this.configuration.loadFromService && !this.configuration.loadFromFunction && (!this.configuration.loadFromArray || !(this.configuration.loadFromArray.length > 0))) {
|
|
93
|
-
this.items = items;
|
|
94
|
-
this._isLoaded = true;
|
|
95
|
-
this.lstComponents.forEach(component => { component.items.set(this.items); });
|
|
96
|
-
}
|
|
97
|
-
try {
|
|
98
|
-
await this.Load();
|
|
99
|
-
this._isLoaded = true;
|
|
100
|
-
this.lstComponents.forEach(component => { component.items.set(this.items); });
|
|
101
|
-
}
|
|
102
|
-
finally {
|
|
103
|
-
this.lstComponents.forEach(component => { component.loadingFromLoader = false; });
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
SetLstComponentsThisItens() {
|
|
107
|
-
this.lstComponents.forEach(component => { component.items.set(this.items); return; });
|
|
108
|
-
}
|
|
109
|
-
async Load() {
|
|
110
|
-
if (this._isLoaded) {
|
|
111
|
-
this.SetLstComponentsThisItens();
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
//[ Load from Array ]
|
|
115
|
-
if (this.configuration.loadFromArray != undefined && this.configuration.loadFromArray.length) {
|
|
116
|
-
this.items = this.configuration.loadFromArray;
|
|
117
|
-
this.SetLstComponentsThisItens();
|
|
118
|
-
return;
|
|
119
|
-
}
|
|
120
|
-
//[ Load from api ]
|
|
121
|
-
var vFiltros = this.configuration.vFiltros;
|
|
122
|
-
try {
|
|
123
|
-
var lstDados = [];
|
|
124
|
-
if (this.configuration.loadFromService) {
|
|
125
|
-
lstDados = (await firstValueFrom(this.configuration.loadFromService.List(vFiltros))).lstDados;
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
lstDados = (await firstValueFrom(this.configuration.loadFromFunction)).lstDados;
|
|
129
|
-
}
|
|
130
|
-
this.items = lstDados;
|
|
131
|
-
this.SetLstComponentsThisItens();
|
|
132
|
-
}
|
|
133
|
-
finally {
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
export function BindValueFactory(configuration) {
|
|
139
|
-
const cBindValue = configuration.bindValue;
|
|
140
|
-
var bindValue = null;
|
|
141
|
-
if (typeof (cBindValue) == 'string') {
|
|
142
|
-
var bvS = cBindValue;
|
|
143
|
-
bindValue = ((obj) => { return obj[bvS]; });
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
146
|
-
var bvF = cBindValue;
|
|
147
|
-
bindValue = ((obj) => { return bvF(obj); });
|
|
148
|
-
}
|
|
149
|
-
return bindValue;
|
|
150
|
-
}
|
|
151
|
-
export function BindLabelFactory(configuration) {
|
|
152
|
-
const cBindLabel = configuration.bindLabel;
|
|
153
|
-
var bindLabel = null;
|
|
154
|
-
if (typeof (cBindLabel) == 'string') {
|
|
155
|
-
var blS = cBindLabel;
|
|
156
|
-
bindLabel = ((obj) => { return obj[blS] + ''; });
|
|
157
|
-
}
|
|
158
|
-
else {
|
|
159
|
-
var blF = cBindLabel;
|
|
160
|
-
bindLabel = ((obj) => { return blF(obj) + ''; });
|
|
161
|
-
}
|
|
162
|
-
return bindLabel;
|
|
163
|
-
}
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuc2VsZWN0LmNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXNlbGVjdC9pbnB1dC5zZWxlY3QuY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWxELE9BQU8sRUFBRSxXQUFXLEVBQWUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBTTFELE1BQU0sT0FBTyx3QkFBd0I7SUFXbkM7SUFDRSwyQ0FBMkM7SUFDcEMsWUFBOEMsSUFBSTtJQUN6RCw2QkFBNkI7SUFDdEIsWUFBOEMsTUFBTTtJQUUzRCxrREFBa0Q7SUFDM0MsWUFBdUIsSUFBSTtJQUNsQyw2Q0FBNkM7SUFDdEMsY0FBdUIsSUFBSTtJQUVsQzs7Ozs7T0FLRztJQUNJLFFBQTRFO0lBQ25GLGlGQUFpRjtJQUMxRSxXQUFxQixLQUFLO0lBQ2pDLG9DQUFvQztJQUNwQyxXQVNZLElBQUk7SUFDaEIseURBQXlEO0lBQ2xELHFCQUFxRCxJQUFJO1FBOUJ6RCxjQUFTLEdBQVQsU0FBUyxDQUF5QztRQUVsRCxjQUFTLEdBQVQsU0FBUyxDQUEyQztRQUdwRCxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUUzQixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFRM0IsYUFBUSxHQUFSLFFBQVEsQ0FBb0U7UUFFNUUsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFhMUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUF1QztRQTFDbEUsZ0JBQVcsR0FBZ0Isc0JBQXNCLENBQUE7UUFD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LENBQUMsR0FBUSxFQUFVLEVBQUUsR0FBRyxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIGZpcnN0VmFsdWVGcm9tIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlLCBWaWV3UmV0b3JubyB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy93ZWIvaHR0cC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlQXRpdm8gfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvd2ViL2h0dHAuYXRpdm8uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBWaWV3RmlsdHJvcyB9IGZyb20gXCIuLi8uLi8uLi9jbGFzc2VzL2ZpbHRlcnMvdmlldy1maWx0cm9zXCI7XHJcbmltcG9ydCB7IElOVF9NQVggfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvdXRpbHMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBJU2VsZWN0IH0gZnJvbSBcIi4vSVNlbGVjdFwiO1xyXG5pbXBvcnQgeyBDb21wYXJpc29uIH0gZnJvbSBcIi4uLy4uLy4uL2NsYXNzZXMvY29tcGFyaXNvbi9jb21wYXJpc29uXCI7XHJcblxyXG5leHBvcnQgdHlwZSBEZWZhdWx0TW9kZWxPcHRpb25zID0geyB2YWx1ZTogc3RyaW5nLCBsYWJlbDogc3RyaW5nIH07XHJcblxyXG5leHBvcnQgY2xhc3MgSW5wdXRTZWxlY3RDb25maWd1cmF0aW9ue1xyXG4gIHBsYWNlaG9sZGVyICAgICA6IHN0cmluZyA9IFwiU2VsZWNpb25lIHVtIGl0ZW0uLi5cIlxyXG4gIG5vSXRlbnNGb3VuZFRleHQ6IHN0cmluZyA9IFwiU2VtIGl0ZW1zIGVuY29udHJhZG9zLi4uXCJcclxuXHJcbiAgbG9hZGVyOiBJbnB1dFNlbGVjdERhdGFMb2FkZXI7XHJcbiAgbG9hZEZyb21BcnJheSAgIDogYW55W107XHJcbiAgbG9hZEZyb21TZXJ2aWNlIDogSHR0cFNlcnZpY2UgfCBIdHRwU2VydmljZUF0aXZvXHJcbiAgbG9hZEZyb21GdW5jdGlvbjogT2JzZXJ2YWJsZTxhbnk+XHJcblxyXG4gIHB1YmxpYyB2RmlsdHJvczogVmlld0ZpbHRyb3MgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvKiogVmFsb3IgcXVlIHNlcsOhIHNldGFkbyBubyBmb3JtQ29udHJvbCAqL1xyXG4gICAgcHVibGljIGJpbmRWYWx1ZTogc3RyaW5nIHwgKChvYmo6IGFueSkgPT4gYW55KSAgICAgPSBcImlkXCIgICxcclxuICAgIC8qKiBWYWxvciBxdWUgc2Vyw6EgZXhpYmlkbyAqL1xyXG4gICAgcHVibGljIGJpbmRMYWJlbDogc3RyaW5nIHwgKChvYmo6IGFueSkgPT4gc3RyaW5nKSAgPSBcIm5vbWVcIiwgXHJcbiAgICBcclxuICAgIC8qKiBJbmRpY2Egc2UgbyBzZWxlY3QgcG9kZSBzZXIgbnVsbyBlIGxpbXBhdmVsICovXHJcbiAgICBwdWJsaWMgY2xlYXJhYmxlICA6IGJvb2xlYW4gPSB0cnVlLCBcclxuICAgIC8qKiBJbmRpY2Egc2UgbyBzZWxlY3QgcG9kZSBzZXIgcGVzcXVpc2FkbyAqL1xyXG4gICAgcHVibGljIHNlYXJjaGVhYmxlOiBib29sZWFuID0gdHJ1ZSwgXHJcbiAgICBcclxuICAgIC8qKiBcclxuICAgICAqIFNlIExvYWRGcm9tIGluc3RhbmNlb2YgSHR0cFNlcnZpY2UgICAgICAtPiBPcyBkYWRvcyBzZXLDo28gY2FycmVnYWRvcyBkbyBMaXN0KClcclxuICAgICAqIFNlIExvYWRGcm9tIGluc3RhbmNlb2YgSHR0cFNlcnZpY2VBdGl2byAtPiBPcyBkYWRvcyBzZXLDo28gY2FycmVnYWRvcyBkbyBMaXN0QXRpdm8oKVxyXG4gICAgICogU2UgTG9hZEZyb20gaW5zdGFuY2VvZiBPYnNlcnZhYmxlICAgICAgIC0+IE9zIGRhZG9zIHNlcsOjbyBjYXJyZWdhZG9zIGRhIGZ1bsOnw6NvIGluZGljYWRhXHJcbiAgICAgKiBTZSBMb2FkRnJvbSBpbnN0YW5jZW9mIEFycmF5ICAgICAgICAgICAgLT4gT3MgZGFkb3Mgc2Vyw6NvIG8gYXJyYXlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGxvYWRGcm9tPzogIEh0dHBTZXJ2aWNlIHwgSHR0cFNlcnZpY2VBdGl2byB8IE9ic2VydmFibGU8Vmlld1JldG9ybm8+IHwgYW55W10sIFxyXG4gICAgLyoqIFNlID0gdHJ1ZSBPcyB2YWxvcmVzIG5vIGZvcm0gY29udHJvbCBzZXLDoW8gdW0gYXJyYXkgZG9zIGl0ZW1zIHNlbGVjaW9uYWRvcyAqL1xyXG4gICAgcHVibGljIG11bHRpcGxlIDogYm9vbGVhbiA9IGZhbHNlLFxyXG4gICAgLyoqIEFwbGljYSBvcyBmaWx0cm9zIG5hIHBlc3F1aXNhICovXHJcbiAgICB2RmlsdHJvcyA6IFBhcnRpYWw8eyBcclxuICAgICAgLyoqIEFwbGljYSB1bWEgcGVzcXVpc2EgZW0gdGV4dG8gICovXHJcbiAgICAgIHNlYXJjaDogc3RyaW5nXHJcbiAgICAgIC8qKiBQcm9wcmllZGFkZSBkZSBvcmRlbmHDp8OjbyAqL1xyXG4gICAgICBvcmRlckJ5UHJvcGVydHk6IHN0cmluZ1xyXG4gICAgICAvKiogT3JpZW50YcOnw6NvIGRlIG9yZGVuYcOnw6NvICovXHJcbiAgICAgIGFzY2VuZGluZzogYm9vbGVhbixcclxuICAgICAgLyoqIEZpbHRybyAgKi9cclxuICAgICAgZmlsdGVyOiBDb21wYXJpc29uW11cclxuICAgIH0+IHwgbnVsbCA9IG51bGwsXHJcbiAgICAvKiogRGVzYXRpdmEgb3MgaXRlbXMgcXVlIGVzdMOjbyBkZSBhY29yZG8gY29tIGEgZnVuw6fDo28gKi9cclxuICAgIHB1YmxpYyBkaXNhYmxlQ29uZGl0aW9uYWw6ICgob2JqOiBhbnkpID0+IGJvb2xlYW4pIHwgbnVsbCA9IG51bGxcclxuICApe1xyXG4gICAgdGhpcy5jbGVhcmFibGUgICA9IGNsZWFyYWJsZTtcclxuICAgIHRoaXMuc2VhcmNoZWFibGUgPSBzZWFyY2hlYWJsZTtcclxuICAgIHRoaXMubXVsdGlwbGUgICAgPSBtdWx0aXBsZTtcclxuXHJcbiAgICBpZih2RmlsdHJvcyAhPSBudWxsKXtcclxuICAgICAgY29uc3QgdiA9IHZGaWx0cm9zO1xyXG4gICAgICBpZih2LmFzY2VuZGluZyA9PSBudWxsIHx8IHYuYXNjZW5kaW5nID09IHVuZGVmaW5lZCl7IHYuYXNjZW5kaW5nID0gdHJ1ZTsgfVxyXG4gICAgICB0aGlzLnZGaWx0cm9zID0gbmV3IFZpZXdGaWx0cm9zKElOVF9NQVgsIHYuc2VhcmNoLCAxLCB2Lm9yZGVyQnlQcm9wZXJ0eSwgdi5hc2NlbmRpbmcpO1xyXG4gICAgICAodGhpcy52RmlsdHJvcyBhcyBWaWV3RmlsdHJvcykuZmlsdGVyID0gdi5maWx0ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYobG9hZEZyb20pe1xyXG4gICAgICBpZihBcnJheS5pc0FycmF5KGxvYWRGcm9tKSl7IFxyXG4gICAgICAgIHRoaXMubG9hZEZyb21BcnJheSAgICA9IGxvYWRGcm9tOyBcclxuICAgICAgfSBlbHNlXHJcbiAgICAgIGlmKGxvYWRGcm9tIGluc3RhbmNlb2YgSHR0cFNlcnZpY2UgfHwgbG9hZEZyb20gaW5zdGFuY2VvZiBIdHRwU2VydmljZUF0aXZvKXsgXHJcbiAgICAgICAgdGhpcy5sb2FkRnJvbVNlcnZpY2UgID0gbG9hZEZyb207XHJcbiAgICAgIH0gZWxzZSB7ICBcclxuICAgICAgICB0aGlzLmxvYWRGcm9tRnVuY3Rpb24gPSBsb2FkRnJvbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5sb2FkZXIgPSBuZXcgSW5wdXRTZWxlY3REYXRhTG9hZGVyKHRoaXMpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIElucHV0U2VsZWN0RGF0YUxvYWRlcntcclxuICBsc3RDb21wb25lbnRzOiBJU2VsZWN0W10gPSBbXTtcclxuICBjb25maWd1cmF0aW9uOiBJbnB1dFNlbGVjdENvbmZpZ3VyYXRpb247XHJcblxyXG4gIC8qKiBWYWxvciBxdWUgc2Vyw6Egc2V0YWRvIG5vIGZvcm1Db250cm9sICovXHJcbiAgcHVibGljIGJpbmRWYWx1ZTogKChvYmo6IGFueSkgPT4gYW55KSAgIHwgbnVsbCA9IG51bGw7XHJcbiAgLyoqIFZhbG9yIHF1ZSBzZXLDoSBleGliaWRvICovXHJcbiAgcHVibGljIGJpbmRMYWJlbDogKChvYmo6IGFueSkgPT4gc3RyaW5nKXwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNvbmZpZ3VyYXRpb246IElucHV0U2VsZWN0Q29uZmlndXJhdGlvbil7IFxyXG4gICAgdGhpcy5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjsgXHJcbiAgICB0aGlzLmJpbmRWYWx1ZSA9IEJpbmRWYWx1ZUZhY3RvcnkoY29uZmlndXJhdGlvbilcclxuICAgIHRoaXMuYmluZExhYmVsID0gQmluZExhYmVsRmFjdG9yeShjb25maWd1cmF0aW9uKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldExhYmVsKHZhbHVlOiBhbnkpe1xyXG4gICAgaWYoIXRoaXMuaXRlbXMgfHwgIXRoaXMuYmluZFZhbHVlIHx8ICF0aGlzLmJpbmRMYWJlbCl7IHJldHVybiBcIlwiOyB9XHJcbiAgICBjb25zdCBpdGVtID0gdGhpcy5pdGVtcy5maW5kKHAgPT4gdGhpcy5iaW5kVmFsdWUocCkgPT0gdmFsdWUpO1xyXG4gICAgaWYoIWl0ZW0peyByZXR1cm4gXCJcIiA7fVxyXG4gICAgcmV0dXJuIHRoaXMuYmluZExhYmVsKGl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgQWRkQ29tcG9uZW50KGNvbXBvbmVudDogSVNlbGVjdCl7IFxyXG4gICAgdGhpcy5sc3RDb21wb25lbnRzLnB1c2goY29tcG9uZW50KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2lzTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGFzeW5jIFJlZnJlc2goaXRlbXM/OiBhbnlbXSk6IFByb21pc2U8dm9pZD57XHJcbiAgICB0aGlzLmxzdENvbXBvbmVudHMuZm9yRWFjaChjb21wb25lbnQgPT4geyBjb21wb25lbnQubG9hZGluZ0Zyb21Mb2FkZXIgPSB0cnVlOyB9KTtcclxuICAgIFxyXG4gICAgaWYoIXRoaXMuY29uZmlndXJhdGlvbi5sb2FkRnJvbVNlcnZpY2UgJiYgIXRoaXMuY29uZmlndXJhdGlvbi5sb2FkRnJvbUZ1bmN0aW9uICYmICghdGhpcy5jb25maWd1cmF0aW9uLmxvYWRGcm9tQXJyYXkgfHwgISh0aGlzLmNvbmZpZ3VyYXRpb24ubG9hZEZyb21BcnJheS5sZW5ndGggPiAwKSkpe1xyXG4gICAgICB0aGlzLml0ZW1zID0gaXRlbXM7XHJcbiAgICAgIHRoaXMuX2lzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5sc3RDb21wb25lbnRzLmZvckVhY2goY29tcG9uZW50ID0+IHsgY29tcG9uZW50Lml0ZW1zLnNldCh0aGlzLml0ZW1zKTsgfSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHRyeXtcclxuICAgICAgYXdhaXQgdGhpcy5Mb2FkKCk7XHJcbiAgICAgIHRoaXMuX2lzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5sc3RDb21wb25lbnRzLmZvckVhY2goY29tcG9uZW50ID0+IHsgY29tcG9uZW50Lml0ZW1zLnNldCh0aGlzLml0ZW1zKTsgfSk7XHJcbiAgICB9XHJcbiAgICBmaW5hbGx5e1xyXG4gICAgICB0aGlzLmxzdENvbXBvbmVudHMuZm9yRWFjaChjb21wb25lbnQgPT4geyBjb21wb25lbnQubG9hZGluZ0Zyb21Mb2FkZXIgPSBmYWxzZTsgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIFNldExzdENvbXBvbmVudHNUaGlzSXRlbnMoKXtcclxuICAgIHRoaXMubHN0Q29tcG9uZW50cy5mb3JFYWNoKGNvbXBvbmVudCA9PiB7IGNvbXBvbmVudC5pdGVtcy5zZXQodGhpcy5pdGVtcyk7IHJldHVybjsgfSk7XHJcbiAgfVxyXG5cclxuICBpdGVtczogYW55W10gPSBbXTtcclxuICBhc3luYyBMb2FkKCk6IFByb21pc2U8dm9pZD57XHJcbiAgICBpZih0aGlzLl9pc0xvYWRlZCl7XHJcbiAgICAgIHRoaXMuU2V0THN0Q29tcG9uZW50c1RoaXNJdGVucygpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy9bIExvYWQgZnJvbSBBcnJheSBdXHJcbiAgICBpZih0aGlzLmNvbmZpZ3VyYXRpb24ubG9hZEZyb21BcnJheSAhPSB1bmRlZmluZWQgJiYgdGhpcy5jb25maWd1cmF0aW9uLmxvYWRGcm9tQXJyYXkubGVuZ3RoKXtcclxuICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuY29uZmlndXJhdGlvbi5sb2FkRnJvbUFycmF5O1xyXG4gICAgICB0aGlzLlNldExzdENvbXBvbmVudHNUaGlzSXRlbnMoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vWyBMb2FkIGZyb20gYXBpIF1cclxuICAgIHZhciB2RmlsdHJvczogVmlld0ZpbHRyb3MgfCBudWxsID0gdGhpcy5jb25maWd1cmF0aW9uLnZGaWx0cm9zO1xyXG4gICAgdHJ5e1xyXG4gICAgICB2YXIgbHN0RGFkb3M6IGFueVtdID0gW107XHJcbiAgICAgIFxyXG4gICAgICBpZih0aGlzLmNvbmZpZ3VyYXRpb24ubG9hZEZyb21TZXJ2aWNlKXtcclxuICAgICAgICBsc3REYWRvcyA9IChhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmNvbmZpZ3VyYXRpb24ubG9hZEZyb21TZXJ2aWNlLkxpc3QodkZpbHRyb3MpKSkubHN0RGFkb3NcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgbHN0RGFkb3MgPSAoYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5jb25maWd1cmF0aW9uLmxvYWRGcm9tRnVuY3Rpb24pKS5sc3REYWRvcztcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5pdGVtcyA9IGxzdERhZG9zO1xyXG4gICAgICB0aGlzLlNldExzdENvbXBvbmVudHNUaGlzSXRlbnMoKTtcclxuICAgIH1maW5hbGx5eyByZXR1cm47IH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBCaW5kVmFsdWVGYWN0b3J5KGNvbmZpZ3VyYXRpb246IElucHV0U2VsZWN0Q29uZmlndXJhdGlvbik6ICgob2JqOiBhbnkpID0+IGFueSkge1xyXG4gIGNvbnN0IGNCaW5kVmFsdWUgPSBjb25maWd1cmF0aW9uLmJpbmRWYWx1ZTtcclxuICB2YXIgYmluZFZhbHVlOiAoKGFyZ3M6IGFueSkgPT4gYW55KSA9IG51bGw7XHJcbiAgaWYodHlwZW9mKGNCaW5kVmFsdWUpID09ICdzdHJpbmcnKXtcclxuICAgIHZhciBidlM6IHN0cmluZyAgICAgICAgICAgICAgID0gY0JpbmRWYWx1ZTtcclxuICAgIGJpbmRWYWx1ZSA9ICgob2JqOiBhbnkpOiBhbnkgPT4geyByZXR1cm4gb2JqW2J2U107IH0pO1xyXG4gIH1lbHNle1xyXG4gICAgdmFyIGJ2RjogKChhcmdzOiBhbnkpID0+IGFueSkgPSBjQmluZFZhbHVlO1xyXG4gICAgYmluZFZhbHVlID0gKChvYmo6IGFueSk6IGFueSA9PiB7IHJldHVybiBidkYob2JqKTsgfSk7XHJcbiAgfVxyXG4gIHJldHVybiBiaW5kVmFsdWU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBCaW5kTGFiZWxGYWN0b3J5KGNvbmZpZ3VyYXRpb246IElucHV0U2VsZWN0Q29uZmlndXJhdGlvbik6ICgob2JqOiBhbnkpID0+IHN0cmluZyl7XHJcbiAgY29uc3QgY0JpbmRMYWJlbCA9IGNvbmZpZ3VyYXRpb24uYmluZExhYmVsO1xyXG4gIHZhciBiaW5kTGFiZWw6ICgoYXJnczogYW55KSA9PiBzdHJpbmcpID0gbnVsbDtcclxuICBpZih0eXBlb2YoY0JpbmRMYWJlbCkgPT0gJ3N0cmluZycpe1xyXG4gICAgdmFyIGJsUzogc3RyaW5nICAgICAgICAgICAgICAgPSBjQmluZExhYmVsO1xyXG4gICAgYmluZExhYmVsID0gKChvYmo6IGFueSk6IHN0cmluZyA9PiB7IHJldHVybiBvYmpbYmxTXSArICcnOyB9KTtcclxuICB9ZWxzZXtcclxuICAgIHZhciBibEY6ICgoYXJnczogYW55KSA9PiBhbnkpID0gY0JpbmRMYWJlbDtcclxuICAgIGJpbmRMYWJlbCA9ICgob2JqOiBhbnkpOiBzdHJpbmcgPT4geyByZXR1cm4gYmxGKG9iaikgKyAnJzsgfSk7XHJcbiAgfVxyXG4gIHJldHVybiBiaW5kTGFiZWw7XHJcbn0iXX0=
|