@sapphire-ion/framework 1.2.43 → 1.2.45
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/esm2022/lib/classes/comparison/comparison-operator.mjs +18 -0
- package/esm2022/lib/classes/comparison/comparison-value-type.mjs +25 -0
- package/esm2022/lib/classes/comparison/comparison.mjs +41 -0
- package/esm2022/lib/classes/comparison/properties/bool-property.mjs +15 -0
- package/esm2022/lib/classes/comparison/properties/date-property.mjs +27 -0
- package/esm2022/lib/classes/comparison/properties/datetime-property.mjs +27 -0
- package/esm2022/lib/classes/comparison/properties/decimal-property.mjs +27 -0
- package/esm2022/lib/classes/comparison/properties/enum-property.mjs +27 -0
- package/esm2022/lib/classes/comparison/properties/implicit-property.mjs +12 -0
- package/esm2022/lib/classes/comparison/properties/int-property.mjs +27 -0
- package/esm2022/lib/classes/comparison/properties/long-property.mjs +27 -0
- package/esm2022/lib/classes/comparison/properties/string-property.mjs +15 -0
- package/esm2022/lib/classes/comparison/properties/time-property.mjs +27 -0
- package/esm2022/lib/classes/credentials.mjs +2 -0
- package/esm2022/lib/classes/environment.mjs +34 -0
- package/esm2022/lib/classes/filters/view-filtros.mjs +18 -0
- package/esm2022/lib/classes/infinite-scroll.mjs +90 -0
- package/esm2022/lib/classes/inputs/table-field-form-builder.mjs +10 -0
- package/esm2022/lib/classes/inputs/table-field.mjs +79 -0
- package/esm2022/lib/classes/page-option.mjs +2 -0
- package/esm2022/lib/classes/routes/default-routing-factory.mjs +23 -0
- package/esm2022/lib/classes/routes/id-preloader-configuration.mjs +22 -0
- package/esm2022/lib/classes/routes/route-data.mjs +9 -0
- package/esm2022/lib/components/carousel/carousel-image/carousel-image.component.mjs +18 -0
- package/esm2022/lib/components/carousel/carousel-item/carousel-item.component.mjs +15 -0
- package/esm2022/lib/components/carousel/carousel.component.mjs +79 -0
- package/esm2022/lib/components/carousel/carousel.module.mjs +31 -0
- package/esm2022/lib/components/carousel/i-carousel-item.component.mjs +16 -0
- package/esm2022/lib/components/content-block/content-block.component.mjs +27 -0
- package/esm2022/lib/components/default/default-list/abstract-list.mjs +49 -0
- package/esm2022/lib/components/default/default-list/default-list.component.mjs +95 -0
- package/esm2022/lib/components/default/default-list/header-list/header-list.component.mjs +98 -0
- package/esm2022/lib/components/default/default-list/list.mjs +120 -0
- package/esm2022/lib/components/default/default-pagination/default-pagination.component.mjs +123 -0
- package/esm2022/lib/components/default/default-table/default-table.component.mjs +216 -0
- package/esm2022/lib/components/default/default-table/th-filter/th-filter.component.mjs +206 -0
- package/esm2022/lib/components/default/default-view/abstract-view.mjs +22 -0
- package/esm2022/lib/components/default/default-view/default-view.component.mjs +63 -0
- package/esm2022/lib/components/default/default-view/header-view/header-view.component.mjs +78 -0
- package/esm2022/lib/components/default/default-view/view.mjs +188 -0
- package/esm2022/lib/components/default/default.module.mjs +98 -0
- package/esm2022/lib/components/default-page/default.page.mjs +75 -0
- package/esm2022/lib/components/drag-drop-file/drag-drop-file.directive.mjs +60 -0
- package/esm2022/lib/components/drag-drop-file/drag-drop-file.module.mjs +31 -0
- package/esm2022/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.mjs +15 -0
- package/esm2022/lib/components/drawer/default-drawer-end/default-drawer-end.component.mjs +34 -0
- package/esm2022/lib/components/drawer/drawer-group/drawer-group.component.mjs +52 -0
- package/esm2022/lib/components/drawer/drawer.component.mjs +156 -0
- package/esm2022/lib/components/drawer/menu.mjs +15 -0
- package/esm2022/lib/components/filter/filter.component.mjs +145 -0
- package/esm2022/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.mjs +17 -0
- package/esm2022/lib/components/image/image.component.mjs +91 -0
- package/esm2022/lib/components/info-popover/info-popover.component.mjs +91 -0
- package/esm2022/lib/components/inputs/custom-input.mjs +85 -0
- package/esm2022/lib/components/inputs/input-bool/input-bool.component.mjs +46 -0
- package/esm2022/lib/components/inputs/input-bool/input-bool.configuration.mjs +16 -0
- package/esm2022/lib/components/inputs/input-cep/input-cep.component.mjs +50 -0
- package/esm2022/lib/components/inputs/input-cep/input-cep.configuration.mjs +4 -0
- package/esm2022/lib/components/inputs/input-color/input-color.component.mjs +481 -0
- package/esm2022/lib/components/inputs/input-configuration.mjs +2 -0
- package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.mjs +116 -0
- package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.mjs +6 -0
- package/esm2022/lib/components/inputs/input-date/input-date.component.mjs +235 -0
- package/esm2022/lib/components/inputs/input-date/input-date.configuration.mjs +8 -0
- package/esm2022/lib/components/inputs/input-decimal/input-decimal.component.mjs +243 -0
- package/esm2022/lib/components/inputs/input-decimal/input-decimal.configuration.mjs +50 -0
- package/esm2022/lib/components/inputs/input-default-configurations.mjs +14 -0
- package/esm2022/lib/components/inputs/input-file/download-button/download-button.component.mjs +99 -0
- package/esm2022/lib/components/inputs/input-file/input-file.component.mjs +101 -0
- package/esm2022/lib/components/inputs/input-file/input-file.configuration.mjs +24 -0
- package/esm2022/lib/components/inputs/input-icon/fluenticons.mjs +3734 -0
- package/esm2022/lib/components/inputs/input-icon/input-icon.component.mjs +60 -0
- package/esm2022/lib/components/inputs/input-icon/ionicons.mjs +1360 -0
- package/esm2022/lib/components/inputs/input-provider-factory.mjs +12 -0
- package/esm2022/lib/components/inputs/input-select/directives/sion-label-template.directive.mjs +16 -0
- package/esm2022/lib/components/inputs/input-select/directives/sion-option-template.directive.mjs +16 -0
- package/esm2022/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.mjs +16 -0
- package/esm2022/lib/components/inputs/input-select/input-select.component.mjs +373 -0
- package/esm2022/lib/components/inputs/input-select/input.select.configuration.mjs +229 -0
- package/esm2022/lib/components/inputs/input-string/input-string.component.mjs +41 -0
- package/esm2022/lib/components/inputs/input-string/input-string.configuration.mjs +20 -0
- package/esm2022/lib/components/inputs/input-telefone/input-telefone.component.mjs +74 -0
- package/esm2022/lib/components/inputs/input-telefone/input-telefone.configuration.mjs +12 -0
- package/esm2022/lib/components/inputs/input-textarea/input-textarea.component.mjs +74 -0
- package/esm2022/lib/components/inputs/input-textarea/input-textarea.configuration.mjs +7 -0
- package/esm2022/lib/components/inputs/input-type.mjs +24 -0
- package/esm2022/lib/components/inputs/input-validators.mjs +121 -0
- package/esm2022/lib/components/inputs/inputs.module.mjs +133 -0
- package/esm2022/lib/components/loading/loading.component.mjs +34 -0
- package/esm2022/lib/components/login/login-admin/login-admin.component.mjs +52 -0
- package/esm2022/lib/components/login/login.component.mjs +99 -0
- package/esm2022/lib/components/main-content/main-content.component.mjs +100 -0
- package/esm2022/lib/components/popover/sion-popover/sion-popover.component.mjs +182 -0
- package/esm2022/lib/components/popover/sion-popover.module.mjs +21 -0
- package/esm2022/lib/components/sion-card/sion-card.component.mjs +26 -0
- package/esm2022/lib/components/stepper/step/step.component.mjs +43 -0
- package/esm2022/lib/components/stepper/stepper.component.mjs +36 -0
- package/esm2022/lib/components/stepper/stepper.module.mjs +25 -0
- package/esm2022/lib/components/tabs/tab/tab.component.mjs +41 -0
- package/esm2022/lib/components/tabs/tabs/tabs.component.mjs +56 -0
- package/esm2022/lib/components/tabs/tabs.module.mjs +22 -0
- package/esm2022/lib/components/text-tooltip/text-tooltip.component.mjs +51 -0
- package/esm2022/lib/components/tooltip/tooltip.component.mjs +21 -0
- package/esm2022/lib/core.module.mjs +38 -0
- package/esm2022/lib/directives/ng-var.directive.mjs +29 -0
- package/esm2022/lib/guards/auth.guard.mjs +26 -0
- package/esm2022/lib/guards/error.interceptor.mjs +107 -0
- package/esm2022/lib/guards/token.interceptor.mjs +25 -0
- package/esm2022/lib/index.mjs +187 -0
- package/esm2022/lib/pipes/secure.pipe.mjs +42 -0
- package/esm2022/lib/services/auth.service.mjs +146 -0
- package/esm2022/lib/services/environment.service.mjs +26 -0
- package/esm2022/lib/services/generic.service.mjs +84 -0
- package/esm2022/lib/services/modal-focus-trap.service.mjs +62 -0
- package/esm2022/lib/services/popover-focus-trap.service.mjs +62 -0
- package/esm2022/lib/services/route/route.cache.service.mjs +15 -0
- package/esm2022/lib/services/route/route.provider.service.mjs +42 -0
- package/esm2022/lib/services/usuario.service.mjs +49 -0
- package/esm2022/lib/services/utils.service.mjs +190 -0
- package/esm2022/lib/services/web/api-url-provider.service.mjs +29 -0
- package/esm2022/lib/services/web/http.ativo.service.mjs +37 -0
- package/esm2022/lib/services/web/http.service.mjs +177 -0
- package/esm2022/lib/services/web/storage.service.mjs +183 -0
- package/esm2022/public-api.mjs +5 -0
- package/esm2022/sapphire-ion-framework.mjs +5 -0
- package/fesm2022/sapphire-ion-framework.mjs +12265 -0
- package/fesm2022/sapphire-ion-framework.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/classes/comparison/comparison-operator.d.ts +9 -0
- package/lib/classes/comparison/comparison-value-type.d.ts +23 -0
- package/lib/classes/comparison/comparison.d.ts +25 -0
- package/lib/classes/comparison/properties/bool-property.d.ts +7 -0
- package/lib/classes/comparison/properties/date-property.d.ts +11 -0
- package/lib/classes/comparison/properties/datetime-property.d.ts +11 -0
- package/lib/classes/comparison/properties/decimal-property.d.ts +11 -0
- package/lib/classes/comparison/properties/enum-property.d.ts +11 -0
- package/lib/classes/comparison/properties/implicit-property.d.ts +6 -0
- package/lib/classes/comparison/properties/int-property.d.ts +11 -0
- package/lib/classes/comparison/properties/long-property.d.ts +11 -0
- package/lib/classes/comparison/properties/string-property.d.ts +7 -0
- package/lib/classes/comparison/properties/time-property.d.ts +11 -0
- package/{src/lib/classes/credentials.ts → lib/classes/credentials.d.ts} +5 -5
- package/lib/classes/environment.d.ts +14 -0
- package/lib/classes/filters/view-filtros.d.ts +10 -0
- package/lib/classes/infinite-scroll.d.ts +26 -0
- package/lib/classes/inputs/table-field-form-builder.d.ts +5 -0
- package/lib/classes/inputs/table-field.d.ts +20 -0
- package/lib/classes/page-option.d.ts +7 -0
- package/lib/classes/routes/default-routing-factory.d.ts +8 -0
- package/lib/classes/routes/id-preloader-configuration.d.ts +28 -0
- package/lib/classes/routes/route-data.d.ts +5 -0
- package/lib/components/carousel/carousel-image/carousel-image.component.d.ts +10 -0
- package/lib/components/carousel/carousel-item/carousel-item.component.d.ts +9 -0
- package/lib/components/carousel/carousel.component.d.ts +32 -0
- package/lib/components/carousel/carousel.module.d.ts +12 -0
- package/lib/components/carousel/i-carousel-item.component.d.ts +9 -0
- package/lib/components/content-block/content-block.component.d.ts +15 -0
- package/lib/components/default/default-list/abstract-list.d.ts +21 -0
- package/lib/components/default/default-list/default-list.component.d.ts +47 -0
- package/lib/components/default/default-list/header-list/header-list.component.d.ts +45 -0
- package/lib/components/default/default-list/list.d.ts +40 -0
- package/lib/components/default/default-pagination/default-pagination.component.d.ts +36 -0
- package/lib/components/default/default-table/default-table.component.d.ts +90 -0
- package/lib/components/default/default-table/th-filter/th-filter.component.d.ts +23 -0
- package/lib/components/default/default-view/abstract-view.d.ts +18 -0
- package/lib/components/default/default-view/default-view.component.d.ts +32 -0
- package/lib/components/default/default-view/header-view/header-view.component.d.ts +29 -0
- package/lib/components/default/default-view/view.d.ts +59 -0
- package/lib/components/default/default.module.d.ts +31 -0
- package/lib/components/default-page/default.page.d.ts +35 -0
- package/lib/components/drag-drop-file/drag-drop-file.directive.d.ts +14 -0
- package/lib/components/drag-drop-file/drag-drop-file.module.d.ts +10 -0
- package/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.d.ts +9 -0
- package/lib/components/drawer/default-drawer-end/default-drawer-end.component.d.ts +13 -0
- package/lib/components/drawer/drawer-group/drawer-group.component.d.ts +22 -0
- package/lib/components/drawer/drawer.component.d.ts +31 -0
- package/lib/components/drawer/menu.d.ts +9 -0
- package/lib/components/filter/filter.component.d.ts +29 -0
- package/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.d.ts +8 -0
- package/lib/components/image/image.component.d.ts +23 -0
- package/lib/components/info-popover/info-popover.component.d.ts +15 -0
- package/lib/components/inputs/custom-input.d.ts +40 -0
- package/lib/components/inputs/input-bool/input-bool.component.d.ts +16 -0
- package/lib/components/inputs/input-bool/input-bool.configuration.d.ts +17 -0
- package/lib/components/inputs/input-cep/input-cep.component.d.ts +18 -0
- package/lib/components/inputs/input-cep/input-cep.configuration.d.ts +3 -0
- package/lib/components/inputs/input-color/input-color.component.d.ts +77 -0
- package/{src/lib/components/inputs/input-configuration.ts → lib/components/inputs/input-configuration.d.ts} +10 -23
- package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.d.ts +19 -0
- package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.d.ts +5 -0
- package/lib/components/inputs/input-date/input-date.component.d.ts +60 -0
- package/lib/components/inputs/input-date/input-date.configuration.d.ts +7 -0
- package/lib/components/inputs/input-decimal/input-decimal.component.d.ts +26 -0
- package/lib/components/inputs/input-decimal/input-decimal.configuration.d.ts +28 -0
- package/lib/components/inputs/input-default-configurations.d.ts +13 -0
- package/lib/components/inputs/input-file/download-button/download-button.component.d.ts +39 -0
- package/lib/components/inputs/input-file/input-file.component.d.ts +27 -0
- package/lib/components/inputs/input-file/input-file.configuration.d.ts +8 -0
- package/lib/components/inputs/input-icon/fluenticons.d.ts +1 -0
- package/lib/components/inputs/input-icon/input-icon.component.d.ts +20 -0
- package/lib/components/inputs/input-icon/ionicons.d.ts +1 -0
- package/lib/components/inputs/input-provider-factory.d.ts +4 -0
- package/lib/components/inputs/input-select/directives/sion-label-template.directive.d.ts +18 -0
- package/lib/components/inputs/input-select/directives/sion-option-template.directive.d.ts +14 -0
- package/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.d.ts +18 -0
- package/lib/components/inputs/input-select/input-select.component.d.ts +83 -0
- package/lib/components/inputs/input-select/input.select.configuration.d.ts +122 -0
- package/lib/components/inputs/input-string/input-string.component.d.ts +14 -0
- package/lib/components/inputs/input-string/input-string.configuration.d.ts +15 -0
- package/lib/components/inputs/input-telefone/input-telefone.component.d.ts +19 -0
- package/lib/components/inputs/input-telefone/input-telefone.configuration.d.ts +9 -0
- package/lib/components/inputs/input-textarea/input-textarea.component.d.ts +16 -0
- package/lib/components/inputs/input-textarea/input-textarea.configuration.d.ts +4 -0
- package/lib/components/inputs/input-type.d.ts +22 -0
- package/lib/components/inputs/input-validators.d.ts +25 -0
- package/lib/components/inputs/inputs.module.d.ts +33 -0
- package/lib/components/loading/loading.component.d.ts +18 -0
- package/lib/components/login/login-admin/login-admin.component.d.ts +20 -0
- package/lib/components/login/login.component.d.ts +29 -0
- package/lib/components/main-content/main-content.component.d.ts +27 -0
- package/lib/components/popover/sion-popover/sion-popover.component.d.ts +43 -0
- package/lib/components/popover/sion-popover.module.d.ts +9 -0
- package/lib/components/sion-card/sion-card.component.d.ts +11 -0
- package/lib/components/stepper/step/step.component.d.ts +15 -0
- package/lib/components/stepper/stepper.component.d.ts +14 -0
- package/lib/components/stepper/stepper.module.d.ts +10 -0
- package/lib/components/tabs/tab/tab.component.d.ts +19 -0
- package/lib/components/tabs/tabs/tabs.component.d.ts +18 -0
- package/lib/components/tabs/tabs.module.d.ts +12 -0
- package/lib/components/text-tooltip/text-tooltip.component.d.ts +16 -0
- package/lib/components/tooltip/tooltip.component.d.ts +7 -0
- package/lib/core.module.d.ts +16 -0
- package/lib/directives/ng-var.directive.d.ts +12 -0
- package/lib/guards/auth.guard.d.ts +11 -0
- package/lib/guards/error.interceptor.d.ts +32 -0
- package/lib/guards/token.interceptor.d.ts +11 -0
- package/lib/index.d.ts +117 -0
- package/lib/pipes/secure.pipe.d.ts +15 -0
- package/lib/services/auth.service.d.ts +47 -0
- package/lib/services/environment.service.d.ts +10 -0
- package/lib/services/generic.service.d.ts +22 -0
- package/lib/services/modal-focus-trap.service.d.ts +13 -0
- package/lib/services/popover-focus-trap.service.d.ts +13 -0
- package/lib/services/route/route.cache.service.d.ts +7 -0
- package/lib/services/route/route.provider.service.d.ts +13 -0
- package/lib/services/usuario.service.d.ts +21 -0
- package/lib/services/utils.service.d.ts +53 -0
- package/lib/services/web/api-url-provider.service.d.ts +13 -0
- package/lib/services/web/http.ativo.service.d.ts +20 -0
- package/lib/services/web/http.service.d.ts +59 -0
- package/lib/services/web/storage.service.d.ts +46 -0
- package/package.json +47 -43
- package/public-api.d.ts +1 -0
- package/{src/lib → themes}/compiled-styles.scss +2551 -2551
- package/build.ps1 +0 -39
- package/ng-package.json +0 -10
- package/src/lib/classes/comparison/comparison-operator.ts +0 -17
- package/src/lib/classes/comparison/comparison-value-type.ts +0 -34
- package/src/lib/classes/comparison/comparison.ts +0 -45
- package/src/lib/classes/comparison/properties/bool-property.ts +0 -16
- package/src/lib/classes/comparison/properties/date-property.ts +0 -28
- package/src/lib/classes/comparison/properties/datetime-property.ts +0 -28
- package/src/lib/classes/comparison/properties/decimal-property.ts +0 -28
- package/src/lib/classes/comparison/properties/enum-property.ts +0 -28
- package/src/lib/classes/comparison/properties/implicit-property.ts +0 -13
- package/src/lib/classes/comparison/properties/int-property.ts +0 -28
- package/src/lib/classes/comparison/properties/long-property.ts +0 -28
- package/src/lib/classes/comparison/properties/string-property.ts +0 -16
- package/src/lib/classes/comparison/properties/time-property.ts +0 -28
- package/src/lib/classes/environment.ts +0 -37
- package/src/lib/classes/filters/view-filtros.ts +0 -18
- package/src/lib/classes/infinite-scroll.ts +0 -112
- package/src/lib/classes/inputs/table-field-form-builder.ts +0 -12
- package/src/lib/classes/inputs/table-field.ts +0 -62
- package/src/lib/classes/page-option.ts +0 -8
- package/src/lib/classes/routes/default-routing-factory.ts +0 -24
- package/src/lib/classes/routes/id-preloader-configuration.ts +0 -21
- package/src/lib/classes/routes/route-data.ts +0 -9
- package/src/lib/components/carousel/carousel-image/carousel-image.component.html +0 -4
- package/src/lib/components/carousel/carousel-image/carousel-image.component.ts +0 -15
- package/src/lib/components/carousel/carousel-item/carousel-item.component.html +0 -3
- package/src/lib/components/carousel/carousel-item/carousel-item.component.ts +0 -14
- package/src/lib/components/carousel/carousel.component.html +0 -22
- package/src/lib/components/carousel/carousel.component.ts +0 -83
- package/src/lib/components/carousel/carousel.module.ts +0 -20
- package/src/lib/components/carousel/i-carousel-item.component.ts +0 -8
- package/src/lib/components/content-block/content-block.component.html +0 -6
- package/src/lib/components/content-block/content-block.component.ts +0 -25
- package/src/lib/components/default/default-list/abstract-list.ts +0 -56
- package/src/lib/components/default/default-list/default-list.component.html +0 -60
- package/src/lib/components/default/default-list/default-list.component.ts +0 -72
- package/src/lib/components/default/default-list/header-list/header-list.component.html +0 -32
- package/src/lib/components/default/default-list/header-list/header-list.component.ts +0 -85
- package/src/lib/components/default/default-list/list.ts +0 -127
- package/src/lib/components/default/default-pagination/default-pagination.component.html +0 -52
- package/src/lib/components/default/default-pagination/default-pagination.component.ts +0 -118
- package/src/lib/components/default/default-table/default-table.component.html +0 -104
- package/src/lib/components/default/default-table/default-table.component.ts +0 -255
- package/src/lib/components/default/default-table/th-filter/th-filter.component.html +0 -69
- package/src/lib/components/default/default-table/th-filter/th-filter.component.ts +0 -183
- package/src/lib/components/default/default-view/abstract-view.ts +0 -25
- package/src/lib/components/default/default-view/default-view.component.html +0 -111
- package/src/lib/components/default/default-view/default-view.component.ts +0 -44
- package/src/lib/components/default/default-view/header-view/header-view.component.html +0 -64
- package/src/lib/components/default/default-view/header-view/header-view.component.ts +0 -57
- package/src/lib/components/default/default-view/view.ts +0 -183
- package/src/lib/components/default/default.module.ts +0 -61
- package/src/lib/components/default-page/default.page.html +0 -63
- package/src/lib/components/default-page/default.page.ts +0 -84
- package/src/lib/components/drag-drop-file/drag-drop-file.directive.ts +0 -44
- package/src/lib/components/drag-drop-file/drag-drop-file.module.ts +0 -21
- package/src/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.html +0 -5
- package/src/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.ts +0 -17
- package/src/lib/components/drawer/default-drawer-end/default-drawer-end.component.html +0 -12
- package/src/lib/components/drawer/default-drawer-end/default-drawer-end.component.ts +0 -35
- package/src/lib/components/drawer/drawer-group/drawer-group.component.html +0 -79
- package/src/lib/components/drawer/drawer-group/drawer-group.component.ts +0 -49
- package/src/lib/components/drawer/drawer.component.html +0 -120
- package/src/lib/components/drawer/drawer.component.ts +0 -157
- package/src/lib/components/drawer/menu.ts +0 -20
- package/src/lib/components/filter/filter.component.html +0 -43
- package/src/lib/components/filter/filter.component.ts +0 -141
- package/src/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.html +0 -35
- package/src/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.ts +0 -19
- package/src/lib/components/image/image.component.html +0 -17
- package/src/lib/components/image/image.component.ts +0 -95
- package/src/lib/components/info-popover/info-popover.component.html +0 -23
- package/src/lib/components/info-popover/info-popover.component.ts +0 -75
- package/src/lib/components/inputs/custom-input.ts +0 -94
- package/src/lib/components/inputs/input-bool/input-bool.component.html +0 -26
- package/src/lib/components/inputs/input-bool/input-bool.component.ts +0 -39
- package/src/lib/components/inputs/input-bool/input-bool.configuration.ts +0 -14
- package/src/lib/components/inputs/input-cep/input-cep.component.html +0 -27
- package/src/lib/components/inputs/input-cep/input-cep.component.ts +0 -41
- package/src/lib/components/inputs/input-cep/input-cep.configuration.ts +0 -4
- package/src/lib/components/inputs/input-color/input-color.component.html +0 -79
- package/src/lib/components/inputs/input-color/input-color.component.ts +0 -544
- package/src/lib/components/inputs/input-color/input-color.configuration.ts +0 -0
- package/src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.html +0 -28
- package/src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.ts +0 -99
- package/src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.ts +0 -4
- package/src/lib/components/inputs/input-date/input-date.component.html +0 -88
- package/src/lib/components/inputs/input-date/input-date.component.ts +0 -241
- package/src/lib/components/inputs/input-date/input-date.configuration.ts +0 -6
- package/src/lib/components/inputs/input-decimal/input-decimal.component.html +0 -31
- package/src/lib/components/inputs/input-decimal/input-decimal.component.ts +0 -249
- package/src/lib/components/inputs/input-decimal/input-decimal.configuration.ts +0 -47
- package/src/lib/components/inputs/input-default-configurations.ts +0 -15
- package/src/lib/components/inputs/input-file/download-button/download-button.component.html +0 -56
- package/src/lib/components/inputs/input-file/download-button/download-button.component.ts +0 -89
- package/src/lib/components/inputs/input-file/input-file.component.html +0 -59
- package/src/lib/components/inputs/input-file/input-file.component.ts +0 -96
- package/src/lib/components/inputs/input-file/input-file.configuration.ts +0 -25
- package/src/lib/components/inputs/input-icon/fluenticons.ts +0 -3733
- package/src/lib/components/inputs/input-icon/input-icon.component.html +0 -8
- package/src/lib/components/inputs/input-icon/input-icon.component.ts +0 -52
- package/src/lib/components/inputs/input-icon/ionicons.ts +0 -1359
- package/src/lib/components/inputs/input-provider-factory.ts +0 -12
- package/src/lib/components/inputs/input-select/directives/sion-label-template.directive.ts +0 -19
- package/src/lib/components/inputs/input-select/directives/sion-option-template.directive.ts +0 -16
- package/src/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.ts +0 -19
- package/src/lib/components/inputs/input-select/input-select.component.html +0 -176
- package/src/lib/components/inputs/input-select/input-select.component.ts +0 -361
- package/src/lib/components/inputs/input-select/input.select.configuration.ts +0 -292
- package/src/lib/components/inputs/input-string/input-string.component.html +0 -27
- package/src/lib/components/inputs/input-string/input-string.component.ts +0 -31
- package/src/lib/components/inputs/input-string/input-string.configuration.ts +0 -18
- package/src/lib/components/inputs/input-telefone/input-telefone.component.html +0 -29
- package/src/lib/components/inputs/input-telefone/input-telefone.component.ts +0 -63
- package/src/lib/components/inputs/input-telefone/input-telefone.configuration.ts +0 -8
- package/src/lib/components/inputs/input-textarea/input-textarea.component.html +0 -27
- package/src/lib/components/inputs/input-textarea/input-textarea.component.ts +0 -31
- package/src/lib/components/inputs/input-textarea/input-textarea.configuration.ts +0 -7
- package/src/lib/components/inputs/input-type.ts +0 -22
- package/src/lib/components/inputs/input-validators.ts +0 -111
- package/src/lib/components/inputs/inputs.module.ts +0 -74
- package/src/lib/components/loading/loading.component.html +0 -28
- package/src/lib/components/loading/loading.component.ts +0 -29
- package/src/lib/components/login/login-admin/login-admin.component.html +0 -28
- package/src/lib/components/login/login-admin/login-admin.component.ts +0 -51
- package/src/lib/components/login/login.component.html +0 -104
- package/src/lib/components/login/login.component.ts +0 -96
- package/src/lib/components/main-content/main-content.component.html +0 -145
- package/src/lib/components/main-content/main-content.component.ts +0 -93
- package/src/lib/components/popover/sion-popover/sion-popover.component.html +0 -21
- package/src/lib/components/popover/sion-popover/sion-popover.component.ts +0 -182
- package/src/lib/components/popover/sion-popover.module.ts +0 -12
- package/src/lib/components/sion-card/sion-card.component.html +0 -12
- package/src/lib/components/sion-card/sion-card.component.ts +0 -23
- package/src/lib/components/stepper/step/step.component.html +0 -11
- package/src/lib/components/stepper/step/step.component.ts +0 -44
- package/src/lib/components/stepper/stepper.component.html +0 -3
- package/src/lib/components/stepper/stepper.component.ts +0 -37
- package/src/lib/components/stepper/stepper.module.ts +0 -15
- package/src/lib/components/tabs/tab/tab.component.html +0 -8
- package/src/lib/components/tabs/tab/tab.component.ts +0 -28
- package/src/lib/components/tabs/tabs/tabs.component.html +0 -14
- package/src/lib/components/tabs/tabs/tabs.component.ts +0 -42
- package/src/lib/components/tabs/tabs.module.ts +0 -15
- package/src/lib/components/text-tooltip/text-tooltip.component.html +0 -8
- package/src/lib/components/text-tooltip/text-tooltip.component.ts +0 -45
- package/src/lib/components/tooltip/tooltip.component.html +0 -53
- package/src/lib/components/tooltip/tooltip.component.ts +0 -16
- package/src/lib/core.module.ts +0 -29
- package/src/lib/directives/ng-var.directive.ts +0 -26
- package/src/lib/guards/auth.guard.ts +0 -19
- package/src/lib/guards/error.interceptor.ts +0 -108
- package/src/lib/guards/token.interceptor.ts +0 -28
- package/src/lib/index.ts +0 -190
- package/src/lib/pipes/secure.pipe.ts +0 -39
- package/src/lib/services/auth.service.ts +0 -153
- package/src/lib/services/crypto.service.ts +0 -164
- package/src/lib/services/environment.service.ts +0 -17
- package/src/lib/services/generic.service.ts +0 -85
- package/src/lib/services/modal-focus-trap.service.ts +0 -65
- package/src/lib/services/popover-focus-trap.service.ts +0 -65
- package/src/lib/services/route/route.cache.service.ts +0 -17
- package/src/lib/services/route/route.provider.service.ts +0 -49
- package/src/lib/services/usuario.service.ts +0 -44
- package/src/lib/services/utils.service.ts +0 -216
- package/src/lib/services/web/api-url-provider.service.ts +0 -48
- package/src/lib/services/web/http.ativo.service.ts +0 -37
- package/src/lib/services/web/http.service.ts +0 -193
- package/src/lib/services/web/storage.service.ts +0 -206
- package/src/public-api.ts +0 -5
- package/tailwind.config.js +0 -27
- package/tsconfig.lib.json +0 -29
- package/tsconfig.lib.prod.json +0 -23
- package/tsconfig.spec.json +0 -27
- /package/{src/lib → themes}/components/carousel/carousel-image/carousel-image.component.scss +0 -0
- /package/{src/lib → themes}/components/carousel/carousel-item/carousel-item.component.scss +0 -0
- /package/{src/lib → themes}/components/carousel/carousel.component.scss +0 -0
- /package/{src/lib → themes}/components/content-block/content-block.component.scss +0 -0
- /package/{src/lib → themes}/components/default/default-list/default-list.component.scss +0 -0
- /package/{src/lib → themes}/components/default/default-list/header-list/header-list.component.scss +0 -0
- /package/{src/lib → themes}/components/default/default-pagination/default-pagination.component.scss +0 -0
- /package/{src/lib → themes}/components/default/default-table/default-table.component.scss +0 -0
- /package/{src/lib → themes}/components/default/default-table/th-filter/th-filter.component.scss +0 -0
- /package/{src/lib → themes}/components/default/default-view/default-view.component.scss +0 -0
- /package/{src/lib → themes}/components/default/default-view/header-view/header-view.component.scss +0 -0
- /package/{src/lib → themes}/components/default-page/default.page.scss +0 -0
- /package/{src/lib → themes}/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.scss +0 -0
- /package/{src/lib → themes}/components/drawer/default-drawer-end/default-drawer-end.component.scss +0 -0
- /package/{src/lib → themes}/components/drawer/drawer-group/drawer-group.component.scss +0 -0
- /package/{src/lib → themes}/components/drawer/drawer.component.scss +0 -0
- /package/{src/lib → themes}/components/filter/filter.component.scss +0 -0
- /package/{src/lib → themes}/components/http-responses-pages/forbidden-403/forbidden-403.component.scss +0 -0
- /package/{src/lib → themes}/components/image/image.component.scss +0 -0
- /package/{src/lib → themes}/components/info-popover/info-popover.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-bool/input-bool.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-cep/input-cep.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-color/input-color.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-date/input-date.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-decimal/input-decimal.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-file/download-button/download-button.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-file/input-file.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-icon/input-icon.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-select/input-select.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-string/input-string.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-telefone/input-telefone.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/input-textarea/input-textarea.component.scss +0 -0
- /package/{src/lib → themes}/components/inputs/inputs.scss +0 -0
- /package/{src/lib → themes}/components/loading/loading.component.scss +0 -0
- /package/{src/lib → themes}/components/login/login-admin/login-admin.component.scss +0 -0
- /package/{src/lib → themes}/components/login/login.component.scss +0 -0
- /package/{src/lib → themes}/components/main-content/main-content.component.scss +0 -0
- /package/{src/lib → themes}/components/popover/sion-popover/sion-popover.component.scss +0 -0
- /package/{src/lib → themes}/components/sion-card/sion-card.component.scss +0 -0
- /package/{src/lib → themes}/components/stepper/step/step.component.scss +0 -0
- /package/{src/lib → themes}/components/stepper/stepper.component.scss +0 -0
- /package/{src/lib → themes}/components/tabs/tab/tab.component.scss +0 -0
- /package/{src/lib → themes}/components/tabs/tabs/tabs.component.scss +0 -0
- /package/{src/lib → themes}/components/text-tooltip/text-tooltip.component.scss +0 -0
- /package/{src/lib → themes}/components/tooltip/tooltip.component.scss +0 -0
- /package/{src/lib → themes}/styles/components.scss +0 -0
- /package/{src/lib → themes}/styles/core.styles.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-action-sheet.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-alert.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-button.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-card.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-content.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-datetime.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-item.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-list.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-modal.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-popover.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-progress-bar.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-searchbar.scss +0 -0
- /package/{src/lib → themes}/styles/ionic/ion-toast.scss +0 -0
- /package/{src/lib → themes}/styles/ionic.scss +0 -0
- /package/{src/lib → themes}/styles/login-default.scss +0 -0
- /package/{src/lib → themes}/styles/mixins.scss +0 -0
- /package/{src/lib → themes}/styles/styles.scss +0 -0
- /package/{src/lib → themes}/styles/translucid.scss +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sapphire-ion-framework.mjs","sources":["../../src/lib/classes/comparison/comparison-operator.ts","../../src/lib/classes/comparison/comparison.ts","../../src/lib/classes/comparison/comparison-value-type.ts","../../src/lib/classes/comparison/properties/bool-property.ts","../../src/lib/classes/comparison/properties/date-property.ts","../../src/lib/classes/comparison/properties/datetime-property.ts","../../src/lib/classes/comparison/properties/decimal-property.ts","../../src/lib/classes/comparison/properties/enum-property.ts","../../src/lib/classes/comparison/properties/implicit-property.ts","../../src/lib/classes/comparison/properties/int-property.ts","../../src/lib/classes/comparison/properties/long-property.ts","../../src/lib/classes/comparison/properties/string-property.ts","../../src/lib/classes/comparison/properties/time-property.ts","../../src/lib/services/utils.service.ts","../../src/lib/classes/filters/view-filtros.ts","../../src/lib/classes/inputs/table-field-form-builder.ts","../../src/lib/components/inputs/input-type.ts","../../src/lib/components/inputs/input-decimal/input-decimal.configuration.ts","../../src/lib/components/inputs/input-string/input-string.configuration.ts","../../src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.ts","../../src/lib/services/modal-focus-trap.service.ts","../../src/lib/services/popover-focus-trap.service.ts","../../src/lib/core.module.ts","../../src/lib/classes/environment.ts","../../src/lib/services/environment.service.ts","../../src/lib/services/web/api-url-provider.service.ts","../../src/lib/services/generic.service.ts","../../src/lib/services/web/http.service.ts","../../src/lib/components/inputs/input-bool/input-bool.configuration.ts","../../src/lib/services/web/http.ativo.service.ts","../../src/lib/components/inputs/input-select/input.select.configuration.ts","../../src/lib/components/inputs/input-date/input-date.configuration.ts","../../src/lib/components/inputs/input-file/input-file.configuration.ts","../../src/lib/classes/inputs/table-field.ts","../../src/lib/classes/routes/default-routing-factory.ts","../../src/lib/classes/routes/id-preloader-configuration.ts","../../src/lib/classes/routes/route-data.ts","../../src/lib/classes/infinite-scroll.ts","../../src/lib/components/carousel/i-carousel-item.component.ts","../../src/lib/components/loading/loading.component.ts","../../src/lib/components/loading/loading.component.html","../../src/lib/services/auth.service.ts","../../src/lib/pipes/secure.pipe.ts","../../src/lib/components/image/image.component.ts","../../src/lib/components/image/image.component.html","../../src/lib/components/carousel/carousel-image/carousel-image.component.ts","../../src/lib/components/carousel/carousel-image/carousel-image.component.html","../../src/lib/components/carousel/carousel-item/carousel-item.component.ts","../../src/lib/components/carousel/carousel-item/carousel-item.component.html","../../src/lib/components/carousel/carousel.component.ts","../../src/lib/components/carousel/carousel.component.html","../../src/lib/components/carousel/carousel.module.ts","../../src/lib/components/content-block/content-block.component.ts","../../src/lib/components/content-block/content-block.component.html","../../src/lib/components/default/default-list/header-list/header-list.component.ts","../../src/lib/components/default/default-list/header-list/header-list.component.html","../../src/lib/components/default/default-list/list.ts","../../src/lib/components/inputs/input-telefone/input-telefone.configuration.ts","../../src/lib/components/inputs/input-provider-factory.ts","../../src/lib/components/inputs/custom-input.ts","../../src/lib/components/inputs/input-telefone/input-telefone.component.ts","../../src/lib/components/inputs/input-telefone/input-telefone.component.html","../../src/lib/services/web/storage.service.ts","../../src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.ts","../../src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.html","../../src/lib/components/inputs/input-cep/input-cep.configuration.ts","../../src/lib/components/inputs/input-cep/input-cep.component.ts","../../src/lib/components/inputs/input-cep/input-cep.component.html","../../src/lib/directives/ng-var.directive.ts","../../src/lib/components/inputs/input-file/download-button/download-button.component.ts","../../src/lib/components/inputs/input-file/download-button/download-button.component.html","../../src/lib/components/default/default-pagination/default-pagination.component.ts","../../src/lib/components/default/default-pagination/default-pagination.component.html","../../src/lib/components/popover/sion-popover/sion-popover.component.ts","../../src/lib/components/popover/sion-popover/sion-popover.component.html","../../src/lib/components/inputs/input-date/input-date.component.ts","../../src/lib/components/inputs/input-date/input-date.component.html","../../src/lib/components/inputs/input-decimal/input-decimal.component.ts","../../src/lib/components/inputs/input-decimal/input-decimal.component.html","../../src/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.ts","../../src/lib/components/inputs/input-select/directives/sion-option-template.directive.ts","../../src/lib/components/inputs/input-select/directives/sion-label-template.directive.ts","../../src/lib/components/inputs/input-select/input-select.component.ts","../../src/lib/components/inputs/input-select/input-select.component.html","../../src/lib/components/inputs/input-string/input-string.component.ts","../../src/lib/components/inputs/input-string/input-string.component.html","../../src/lib/components/default/default-table/th-filter/th-filter.component.ts","../../src/lib/components/default/default-table/th-filter/th-filter.component.html","../../src/lib/components/default/default-table/default-table.component.ts","../../src/lib/components/default/default-table/default-table.component.html","../../src/lib/components/default/default-list/default-list.component.ts","../../src/lib/components/default/default-list/default-list.component.html","../../src/lib/components/default/default-list/abstract-list.ts","../../src/lib/components/default/default-view/header-view/header-view.component.ts","../../src/lib/components/default/default-view/header-view/header-view.component.html","../../src/lib/components/default/default-view/view.ts","../../src/lib/components/inputs/input-bool/input-bool.component.ts","../../src/lib/components/inputs/input-bool/input-bool.component.html","../../src/lib/components/inputs/input-color/input-color.component.ts","../../src/lib/components/inputs/input-color/input-color.component.html","../../src/lib/components/inputs/input-file/input-file.component.ts","../../src/lib/components/inputs/input-file/input-file.component.html","../../src/lib/components/inputs/input-icon/ionicons.ts","../../src/lib/components/inputs/input-icon/fluenticons.ts","../../src/lib/components/inputs/input-icon/input-icon.component.ts","../../src/lib/components/inputs/input-icon/input-icon.component.html","../../src/lib/components/inputs/input-textarea/input-textarea.configuration.ts","../../src/lib/components/inputs/input-textarea/input-textarea.component.ts","../../src/lib/components/inputs/input-textarea/input-textarea.component.html","../../src/lib/components/default/default-view/default-view.component.ts","../../src/lib/components/default/default-view/default-view.component.html","../../src/lib/components/default/default-view/abstract-view.ts","../../src/lib/components/popover/sion-popover.module.ts","../../src/lib/components/inputs/inputs.module.ts","../../src/lib/components/default/default.module.ts","../../src/lib/services/route/route.cache.service.ts","../../src/lib/services/route/route.provider.service.ts","../../src/lib/components/default-page/default.page.ts","../../src/lib/components/default-page/default.page.html","../../src/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.ts","../../src/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.html","../../src/lib/components/drag-drop-file/drag-drop-file.directive.ts","../../src/lib/components/drag-drop-file/drag-drop-file.module.ts","../../src/lib/components/drawer/default-drawer-end/default-drawer-end.component.ts","../../src/lib/components/drawer/default-drawer-end/default-drawer-end.component.html","../../src/lib/components/drawer/menu.ts","../../src/lib/components/drawer/drawer-group/drawer-group.component.ts","../../src/lib/components/drawer/drawer-group/drawer-group.component.html","../../src/lib/components/drawer/drawer.component.ts","../../src/lib/components/drawer/drawer.component.html","../../src/lib/components/filter/filter.component.ts","../../src/lib/components/filter/filter.component.html","../../src/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.ts","../../src/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.html","../../src/lib/components/info-popover/info-popover.component.ts","../../src/lib/components/info-popover/info-popover.component.html","../../src/lib/components/inputs/input-default-configurations.ts","../../src/lib/components/inputs/input-validators.ts","../../src/lib/services/usuario.service.ts","../../src/lib/components/login/login-admin/login-admin.component.ts","../../src/lib/components/login/login-admin/login-admin.component.html","../../src/lib/components/login/login.component.ts","../../src/lib/components/login/login.component.html","../../src/lib/components/main-content/main-content.component.ts","../../src/lib/components/main-content/main-content.component.html","../../src/lib/components/sion-card/sion-card.component.ts","../../src/lib/components/sion-card/sion-card.component.html","../../src/lib/components/stepper/step/step.component.ts","../../src/lib/components/stepper/step/step.component.html","../../src/lib/components/stepper/stepper.component.ts","../../src/lib/components/stepper/stepper.component.html","../../src/lib/components/stepper/stepper.module.ts","../../src/lib/components/tabs/tab/tab.component.ts","../../src/lib/components/tabs/tab/tab.component.html","../../src/lib/components/tabs/tabs/tabs.component.ts","../../src/lib/components/tabs/tabs/tabs.component.html","../../src/lib/components/tabs/tabs.module.ts","../../src/lib/components/tooltip/tooltip.component.ts","../../src/lib/components/tooltip/tooltip.component.html","../../src/lib/components/text-tooltip/text-tooltip.component.ts","../../src/lib/components/text-tooltip/text-tooltip.component.html","../../src/lib/guards/auth.guard.ts","../../src/lib/guards/error.interceptor.ts","../../src/lib/guards/token.interceptor.ts","../../src/lib/index.ts","../../src/public-api.ts","../../src/sapphire-ion-framework.ts"],"sourcesContent":["export enum ComparisonOperator{\r\n Equals = 1,\r\n GreaterThan = 2,\r\n GreaterThanOrEqual = 3,\r\n LessThan = 4,\r\n LessThanOrEqual = 5,\r\n IsContainedIn = 6,\r\n}\r\n\r\nexport const ComparisonOperatorString: Map<ComparisonOperator, string> = new Map<ComparisonOperator, string>([\r\n [ComparisonOperator.Equals , \"Equals\" ],\r\n [ComparisonOperator.GreaterThan , \"GreaterThan\" ],\r\n [ComparisonOperator.GreaterThanOrEqual, \"GreaterThanOrEqual\"],\r\n [ComparisonOperator.LessThan , \"LessThan\" ],\r\n [ComparisonOperator.LessThanOrEqual , \"LessThanOrEqual\" ],\r\n [ComparisonOperator.IsContainedIn , \"IsContainedIn\" ],\r\n]);\r\n","import { TableField } from \"../inputs/table-field\";\r\nimport { ComparisonOperator, ComparisonOperatorString } from \"./comparison-operator\";\r\nimport { ComparisonValueType } from \"./comparison-value-type\";\r\n\r\nexport class Comparison<T = any> {\r\n constructor(\r\n public propertyName: string,\r\n public operator: ComparisonOperator,\r\n public value: T | undefined = undefined,\r\n public valueType: ComparisonValueType,\r\n\r\n public disableChange: boolean = false,\r\n\r\n /** @beta */\r\n public isNot: boolean = false,\r\n\r\n /** @beta */\r\n public targetTable: string | undefined = undefined,\r\n ){}\r\n\r\n public toString(): string {\r\n return `${this.propertyName} ${ComparisonOperatorString.get(this.operator)} ${this.value}`;\r\n }\r\n}\r\n\r\nexport function CompileLstTableField(lstTableFields: TableField[]): Comparison[] {\r\n var lstComparison: Comparison[] = [];\r\n for (const tf of lstTableFields) {\r\n if(!tf.filter){ continue; } \r\n\r\n if(lstComparison){\r\n lstComparison.push(...tf.filter);\r\n }else{\r\n lstComparison = [...tf.filter]; \r\n }\r\n }\r\n return lstComparison;\r\n}\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport function CompileFilters(filter: Comparison[]){\r\n return filter.map(p => p);\r\n}","export enum ComparisonValueType{\r\n Long = 10,\r\n ListLong = 11,\r\n \r\n Int = 20,\r\n ListInt = 21,\r\n \r\n Enum = 30,\r\n ListEnum = 31,\r\n\r\n Decimal = 40,\r\n ListDecimal = 41,\r\n\r\n String = 50,\r\n ListString = 51,\r\n\r\n DateTime = 60,\r\n ListDateTime = 61,\r\n\r\n Date = 70,\r\n ListDate = 71,\r\n\r\n Time = 80,\r\n ListTime = 81,\r\n\r\n\r\n List = 90,\r\n ListList = 91,\r\n\r\n Bool = 100,\r\n ListBool = 101,\r\n\r\n ListUnknown = 200,\r\n}","import { Comparison } from \"../comparison\";\r\nimport { ComparisonOperator } from \"../comparison-operator\";\r\nimport { ComparisonValueType } from \"../comparison-value-type\";\r\n\r\nexport class BoolProperty {\r\n constructor(\r\n public propertyName: string\r\n ) { }\r\n \r\n Equals(value: boolean): Comparison<boolean> {\r\n return new Comparison<boolean>(this.propertyName, ComparisonOperator.Equals, value, ComparisonValueType.Bool);\r\n }\r\n IsContainedIn(value: boolean[]): Comparison<boolean[]> {\r\n return new Comparison<boolean[]>(this.propertyName, ComparisonOperator.IsContainedIn, value, ComparisonValueType.ListBool);\r\n }\r\n}","import { Comparison } from \"../comparison\";\r\nimport { ComparisonOperator } from \"../comparison-operator\";\r\nimport { ComparisonValueType } from \"../comparison-value-type\";\r\n\r\nexport class DateProperty {\r\n constructor(\r\n public propertyName: string\r\n ) { }\r\n \r\n Equals(value: string): Comparison<string> {\r\n return new Comparison<string>(this.propertyName, ComparisonOperator.Equals, value, ComparisonValueType.Date);\r\n }\r\n GreaterThan(value: string): Comparison<string> {\r\n return new Comparison<string>(this.propertyName, ComparisonOperator.GreaterThan, value, ComparisonValueType.Date);\r\n }\r\n GreaterThanOrEqual(value: string): Comparison<string> {\r\n return new Comparison<string>(this.propertyName, ComparisonOperator.GreaterThanOrEqual, value, ComparisonValueType.Date);\r\n }\r\n LessThan(value: string): Comparison<string> {\r\n return new Comparison<string>(this.propertyName, ComparisonOperator.LessThan, value, ComparisonValueType.Date);\r\n }\r\n LessThanOrEqual(value: string): Comparison<string> {\r\n return new Comparison<string>(this.propertyName, ComparisonOperator.LessThanOrEqual, value, ComparisonValueType.Date);\r\n }\r\n IsContainedIn(value: string[]): Comparison<string[]> {\r\n return new Comparison<string[]>(this.propertyName, ComparisonOperator.IsContainedIn, value, ComparisonValueType.ListDate);\r\n }\r\n}","import { Comparison } from \"../comparison\";\r\nimport { ComparisonOperator } from \"../comparison-operator\";\r\nimport { ComparisonValueType } from \"../comparison-value-type\";\r\n\r\nexport class DateTimeProperty {\r\n constructor(\r\n public propertyName: string\r\n ) { }\r\n \r\n Equals(value: string): Comparison<string> {\r\n return new Comparison<string>(this.propertyName, ComparisonOperator.Equals, value, ComparisonValueType.DateTime);\r\n }\r\n GreaterThan(value: string): Comparison<string> {\r\n return new Comparison<string>(this.propertyName, ComparisonOperator.GreaterThan, value, ComparisonValueType.DateTime);\r\n }\r\n GreaterThanOrEqual(value: string): Comparison<string> {\r\n return new Comparison<string>(this.propertyName, ComparisonOperator.GreaterThanOrEqual, value, ComparisonValueType.DateTime);\r\n }\r\n LessThan(value: string): Comparison<string> {\r\n return new Comparison<string>(this.propertyName, ComparisonOperator.LessThan, value, ComparisonValueType.DateTime);\r\n }\r\n LessThanOrEqual(value: string): Comparison<string> {\r\n return new Comparison<string>(this.propertyName, ComparisonOperator.LessThanOrEqual, value, ComparisonValueType.DateTime);\r\n }\r\n IsContainedIn(value: string[]): Comparison<string[]> {\r\n return new Comparison<string[]>(this.propertyName, ComparisonOperator.IsContainedIn, value, ComparisonValueType.ListDateTime);\r\n }\r\n}","import { Comparison } from \"../comparison\";\r\nimport { ComparisonOperator } from \"../comparison-operator\";\r\nimport { ComparisonValueType } from \"../comparison-value-type\";\r\n\r\nexport class DecimalProperty {\r\n constructor(\r\n public propertyName: string\r\n ) { }\r\n \r\n Equals(value: number): Comparison<number> {\r\n return new Comparison<number>(this.propertyName, ComparisonOperator.Equals, value, ComparisonValueType.Decimal);\r\n }\r\n GreaterThan(value: number): Comparison<number> {\r\n return new Comparison<number>(this.propertyName, ComparisonOperator.GreaterThan, value, ComparisonValueType.Decimal);\r\n }\r\n GreaterThanOrEqual(value: number): Comparison<number> {\r\n return new Comparison<number>(this.propertyName, ComparisonOperator.GreaterThanOrEqual, value, ComparisonValueType.Decimal);\r\n }\r\n LessThan(value: number): Comparison<number> {\r\n return new Comparison<number>(this.propertyName, ComparisonOperator.LessThan, value, ComparisonValueType.Decimal);\r\n }\r\n LessThanOrEqual(value: number): Comparison<number> {\r\n return new Comparison<number>(this.propertyName, ComparisonOperator.LessThanOrEqual, value, ComparisonValueType.Decimal);\r\n }\r\n IsContainedIn(value: number[]): Comparison<number[]> {\r\n return new Comparison<number[]>(this.propertyName, ComparisonOperator.IsContainedIn, value, ComparisonValueType.ListDecimal);\r\n }\r\n}","import { Comparison } from \"../comparison\";\r\nimport { ComparisonOperator } from \"../comparison-operator\";\r\nimport { ComparisonValueType } from \"../comparison-value-type\";\r\n\r\nexport class EnumProperty {\r\n constructor(\r\n public propertyName: string\r\n ) { }\r\n \r\n Equals(value: number): Comparison<number> {\r\n return new Comparison<number>(this.propertyName, ComparisonOperator.Equals, value, ComparisonValueType.Enum);\r\n }\r\n GreaterThan(value: number): Comparison<number> {\r\n return new Comparison<number>(this.propertyName, ComparisonOperator.GreaterThan, value, ComparisonValueType.Enum);\r\n }\r\n GreaterThanOrEqual(value: number): Comparison<number> {\r\n return new Comparison<number>(this.propertyName, ComparisonOperator.GreaterThanOrEqual, value, ComparisonValueType.Enum);\r\n }\r\n LessThan(value: number): Comparison<number> {\r\n return new Comparison<number>(this.propertyName, ComparisonOperator.LessThan, value, ComparisonValueType.Enum);\r\n }\r\n LessThanOrEqual(value: number): Comparison<number> {\r\n return new Comparison<number>(this.propertyName, ComparisonOperator.LessThanOrEqual, value, ComparisonValueType.Enum);\r\n }\r\n IsContainedIn(value: number[]): Comparison<number[]> {\r\n return new Comparison<number[]>(this.propertyName, ComparisonOperator.IsContainedIn, value, ComparisonValueType.ListEnum);\r\n }\r\n}","import { Comparison } from \"../comparison\";\r\nimport { ComparisonOperator } from \"../comparison-operator\";\r\nimport { ComparisonValueType } from \"../comparison-value-type\";\r\n\r\nexport class ImplicitProperty {\r\n constructor(\r\n public propertyName: string\r\n ) { }\r\n \r\n IsContainedIn(value: string): Comparison<string> {\r\n return new Comparison<string>(this.propertyName, ComparisonOperator.IsContainedIn, value, ComparisonValueType.ListUnknown);\r\n }\r\n}","import { Comparison } from \"../comparison\";\r\nimport { ComparisonOperator } from \"../comparison-operator\";\r\nimport { ComparisonValueType } from \"../comparison-value-type\";\r\n\r\nexport class IntProperty {\r\n constructor(\r\n public propertyName: string\r\n ) { }\r\n \r\n Equals(value: number): Comparison<number> {\r\n return new Comparison<number>(this.propertyName, ComparisonOperator.Equals, value, ComparisonValueType.Int);\r\n }\r\n GreaterThan(value: number): Comparison<number> {\r\n return new Comparison<number>(this.propertyName, ComparisonOperator.GreaterThan, value, ComparisonValueType.Int);\r\n }\r\n GreaterThanOrEqual(value: number): Comparison<number> {\r\n return new Comparison<number>(this.propertyName, ComparisonOperator.GreaterThanOrEqual, value, ComparisonValueType.Int);\r\n }\r\n LessThan(value: number): Comparison<number> {\r\n return new Comparison<number>(this.propertyName, ComparisonOperator.LessThan, value, ComparisonValueType.Int);\r\n }\r\n LessThanOrEqual(value: number): Comparison<number> {\r\n return new Comparison<number>(this.propertyName, ComparisonOperator.LessThanOrEqual, value, ComparisonValueType.Int);\r\n }\r\n IsContainedIn(value: number[]): Comparison<number[]> {\r\n return new Comparison<number[]>(this.propertyName, ComparisonOperator.IsContainedIn, value, ComparisonValueType.ListInt);\r\n }\r\n}","import { Comparison } from \"../comparison\";\r\nimport { ComparisonOperator } from \"../comparison-operator\";\r\nimport { ComparisonValueType } from \"../comparison-value-type\";\r\n\r\nexport class LongProperty {\r\n constructor(\r\n public propertyName: string\r\n ) { }\r\n \r\n Equals(value: number): Comparison<number> {\r\n return new Comparison<number>(this.propertyName, ComparisonOperator.Equals, value, ComparisonValueType.Long);\r\n }\r\n GreaterThan(value: number): Comparison<number> {\r\n return new Comparison<number>(this.propertyName, ComparisonOperator.GreaterThan, value, ComparisonValueType.Long);\r\n }\r\n GreaterThanOrEqual(value: number): Comparison<number> {\r\n return new Comparison<number>(this.propertyName, ComparisonOperator.GreaterThanOrEqual, value, ComparisonValueType.Long);\r\n }\r\n LessThan(value: number): Comparison<number> {\r\n return new Comparison<number>(this.propertyName, ComparisonOperator.LessThan, value, ComparisonValueType.Long);\r\n }\r\n LessThanOrEqual(value: number): Comparison<number> {\r\n return new Comparison<number>(this.propertyName, ComparisonOperator.LessThanOrEqual, value, ComparisonValueType.Long);\r\n }\r\n IsContainedIn(value: number[]): Comparison<number[]> {\r\n return new Comparison<number[]>(this.propertyName, ComparisonOperator.IsContainedIn, value, ComparisonValueType.ListLong);\r\n }\r\n}","import { Comparison } from \"../comparison\";\r\nimport { ComparisonOperator } from \"../comparison-operator\";\r\nimport { ComparisonValueType } from \"../comparison-value-type\";\r\n\r\nexport class StringProperty {\r\n constructor(\r\n public propertyName: string\r\n ) { }\r\n \r\n Equals(value: string): Comparison<string> {\r\n return new Comparison<string>(this.propertyName, ComparisonOperator.Equals, value, ComparisonValueType.String);\r\n }\r\n IsContainedIn(value: string): Comparison<string> {\r\n return new Comparison<string>(this.propertyName, ComparisonOperator.IsContainedIn, value, ComparisonValueType.String);\r\n } \r\n}","import { Comparison } from \"../comparison\";\r\nimport { ComparisonOperator } from \"../comparison-operator\";\r\nimport { ComparisonValueType } from \"../comparison-value-type\";\r\n\r\nexport class TimeProperty {\r\n constructor(\r\n public propertyName: string\r\n ) { }\r\n \r\n Equals(value: string): Comparison<string> {\r\n return new Comparison<string>(this.propertyName, ComparisonOperator.Equals, value, ComparisonValueType.Time);\r\n }\r\n GreaterThan(value: string): Comparison<string> {\r\n return new Comparison<string>(this.propertyName, ComparisonOperator.GreaterThan, value, ComparisonValueType.Time);\r\n }\r\n GreaterThanOrEqual(value: string): Comparison<string> {\r\n return new Comparison<string>(this.propertyName, ComparisonOperator.GreaterThanOrEqual, value, ComparisonValueType.Time);\r\n }\r\n LessThan(value: string): Comparison<string> {\r\n return new Comparison<string>(this.propertyName, ComparisonOperator.LessThan, value, ComparisonValueType.Time);\r\n }\r\n LessThanOrEqual(value: string): Comparison<string> {\r\n return new Comparison<string>(this.propertyName, ComparisonOperator.LessThanOrEqual, value, ComparisonValueType.Time);\r\n }\r\n IsContainedIn(value: string[]): Comparison<string[]> {\r\n return new Comparison<string[]>(this.propertyName, ComparisonOperator.IsContainedIn, value, ComparisonValueType.ListTime);\r\n }\r\n}","import { ActionSheetButton, ActionSheetController } from '@ionic/angular';\r\nimport { FilePicker, PickFilesResult, PickedFile, PickFilesOptions } from '@capawesome/capacitor-file-picker';\r\nimport { Camera, CameraResultType, CameraSource } from '@capacitor/camera';\r\nimport { OverlayEventDetail } from '@ionic/core';\r\nimport { Injectable } from '@angular/core';\r\nimport moment from 'moment';\r\nimport { Buffer } from 'buffer';\r\nimport mime from 'mime';\r\nimport { InputFileConfiguration } from '../components/inputs/input-file/input-file.configuration';\r\nimport { Capacitor } from '@capacitor/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UtilsService{\r\n\r\n constructor(private actionSheetController: ActionSheetController) {\r\n }\r\n\r\n /** Retorna um array de arquivos de acordo com o tipo de configutação */\r\n async SelectFile(configuration: InputFileConfiguration): Promise<File>{\r\n enum SelectType {\r\n camera = 1,\r\n galery = 2,\r\n file = 3,\r\n deny = 4,\r\n }\r\n\r\n const btnCamera: ActionSheetButton = { text: 'Câmera' , icon: 'camera' , data: SelectType.camera }\r\n const btnGalery: ActionSheetButton = { text: 'Galeria' , icon: 'image' , data: SelectType.galery }\r\n const btnFile : ActionSheetButton = { text: 'Selecionar Arquivo', icon: 'document' , data: SelectType.file }\r\n const btnDeny : ActionSheetButton = { text: 'Cancelar' , icon: 'close-circle', data: SelectType.deny, role: 'cancel', };\r\n\r\n const isApp = (!document.URL.startsWith('http') || document.URL.startsWith('http://localhost:8080'));\r\n\r\n var lstBtn: any[] = [];\r\n if(isApp){ \r\n lstBtn.push(btnCamera); \r\n lstBtn.push(btnGalery);\r\n }\r\n lstBtn.push(btnFile);\r\n lstBtn.push(btnDeny);\r\n\r\n var res: OverlayEventDetail<any>;\r\n if(lstBtn.length > 2){\r\n const actionSheet = await this.actionSheetController.create({ buttons: lstBtn });\r\n actionSheet.present();\r\n res = await actionSheet.onDidDismiss();\r\n }else{\r\n res = { role: 'confirm', data: lstBtn[0].data };\r\n }\r\n\r\n \r\n if(['backdrop', 'cancel'].includes(res.role)){ return; }\r\n\r\n if([SelectType.camera, SelectType.galery].includes(res.data)){ \r\n const Source = res.data == SelectType.camera ? CameraSource.Camera : CameraSource.Photos\r\n //const photo = await Camera.getPhoto({ resultType: CameraResultType.Uri, source: Source, quality: 100 });\r\n console.error(\"[ TODO ]\")\r\n return null;\r\n }else{\r\n const res: Promise<PickFilesResult> = FilePicker.pickFiles({ types: configuration.types, limit: 1 });\r\n const files: PickedFile[] = (await res).files;\r\n return files.map(p => <File>p.blob)[0];\r\n }\r\n } \r\n}\r\n\r\nexport class Utils {\r\n /** Converte de unix para Date object */\r\n static UNIXToDate(unix_timestamp: number): Date {\r\n var date = new Date(unix_timestamp * 1000);\r\n return date;\r\n }\r\n \r\n /**\r\n * @param DateStr - Date on ISO format, e.g: \r\n * [ 2010-10-05T14:48:00.000Z ]\r\n * @returns Date on format DD/MM/YYYY\r\n */\r\n static DateISOToDDMMYYYYHHMM(iso: string, onInvalidDateString: string = '-'): string{\r\n if(!iso){ return onInvalidDateString; }\r\n return moment(iso).format(\"DD/MM/YYYY HH:mm\");\r\n }\r\n\r\n /**\r\n * @param iso - Date on ISO format, e.g: \r\n * [ 2010-10-05T14:48:00.000Z ]\r\n * @returns Date on format DD/MM/YYYY\r\n */\r\n static DateISOToDDMMYYYY(iso: string, onInvalidDateString: string = '-'): string{\r\n if(!iso){ return onInvalidDateString; }\r\n return moment(iso).format(\"DD/MM/YYYY\");\r\n }\r\n\r\n static GenerateGUID(): string {\r\n return 'id-xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r\n var r = Math.random() * 16 | 0,\r\n v = c === 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n }\r\n\r\n /** \r\n * @param file: base64 | Blob\r\n */\r\n static async DownloadFile(file: string | Blob, fileName: string){\r\n var blob: Blob = null;\r\n if(!(file instanceof Blob)){\r\n blob = await Utils.Base64ToBlob(file, Utils.FindMimeFromNameOrExtension(fileName));\r\n }\r\n else{ \r\n blob = file; \r\n }\r\n\r\n var fileURL = URL.createObjectURL(blob);\r\n const linkElement = document.createElement(\"a\");\r\n linkElement.setAttribute(\"href\", fileURL);\r\n linkElement.setAttribute(\"target\", \"_blank\");\r\n linkElement.setAttribute(\"download\", fileName);\r\n\r\n let me = new MouseEvent(\"click\", {\r\n view: window,\r\n bubbles: true,\r\n cancelable: false,\r\n });\r\n\r\n linkElement.dispatchEvent(me);\r\n }\r\n\r\n public static async BlobToBase64(blob: Blob): Promise<string> {\r\n const ab = await blob.arrayBuffer();\r\n return Buffer.from(ab).toString(\"base64\");\r\n }\r\n\r\n public static async Base64ToBlob(base64: string, mimeType: string): Promise<Blob> {\r\n return new Blob([Buffer.from(base64, \"base64\")], { type: mimeType })\r\n }\r\n\r\n public static async GetPhoto(params?: {\r\n quality?: number,\r\n source?: CameraSource\r\n }): Promise<{\r\n blob: Blob\r\n fileName: string\r\n }>{\r\n const quality = params?.quality || 70;\r\n const source = params?.source || CameraSource.Camera;\r\n const ph = await Camera.getPhoto({ \r\n resultType: CameraResultType.Uri, \r\n source : source,\r\n quality: quality\r\n });\r\n const file = await fetch(ph.webPath);\r\n const blob = await file.blob();\r\n return { blob, fileName: ph.path.split('/').at(-1) };\r\n }\r\n\r\n public static async PickFile(options?: PickFilesOptions): Promise<{\r\n blob: Blob,\r\n mimeType: string,\r\n name: string,\r\n size: number,\r\n }[]> {\r\n const Pick = await FilePicker.pickFiles(options);\r\n let lstBlob = Pick.files.map(async vFile => {\r\n let blob = null;\r\n if(Capacitor.isNativePlatform()){\r\n blob = new Blob([await (await fetch(Capacitor.convertFileSrc(vFile.path))).blob()], { type: vFile.mimeType });\r\n }\r\n else{\r\n blob = vFile.blob;\r\n }\r\n return {\r\n blob,\r\n mimeType: vFile.mimeType,\r\n name: vFile.name,\r\n size: vFile.size,\r\n };\r\n });\r\n return Promise.all(lstBlob); \r\n }\r\n\r\n static FindMimeFromNameOrExtension(pathOrExtension: string){\r\n return mime.getType(pathOrExtension) || 'application/octet-stream';\r\n }\r\n}\r\n\r\nexport function Search<T = any>(items: T[], Search: string, bindLabel: ((obj: T) => string)): T[] {\r\n return items.filter(p => bindLabel(p)?.toLowerCase().includes(Search.toLowerCase()));\r\n}\r\n\r\nexport function Timeout(timeout: number): Promise<void>{\r\n return new Promise(resolve => setTimeout(resolve, timeout));\r\n}\r\n\r\n//[ Base 64 ]\r\nfunction DecodeBase64<T>(b64: string): T{\r\n return JSON.parse(Buffer.from(b64, 'base64').toString('utf-8'));\r\n}\r\n\r\nfunction DecodeBase64AsString(b64: string) {\r\n return Buffer.from(b64, 'base64').toString('utf-8');\r\n}\r\n\r\nfunction EncodeBase64(obj: any | string): string{\r\n if(typeof obj == \"object\"){\r\n return Buffer.from(JSON.stringify(obj)).toString('base64');\r\n }\r\n else\r\n if(typeof obj == \"string\"){\r\n return Buffer.from(obj).toString('base64');\r\n }\r\n}\r\n\r\nexport const INT_MAX = 2_147_483_646;","import { INT_MAX } from \"../../services/utils.service\";\r\nimport { Comparison } from \"../comparison/comparison\";\r\n\r\nexport class ViewFiltros{\r\n limit : number = 0;\r\n public filter : Comparison[] = [];\r\n\r\n constructor(\r\n limit : number | null = 25, \r\n public search: string = \"\", \r\n public page : number = 1, \r\n public orderByProperty: string | null = null, \r\n public ascending : boolean = true\r\n ){\r\n if(limit == null){ this.limit = INT_MAX } \r\n else { this.limit = limit; }\r\n }\r\n}","import { FormBuilder, FormGroup } from \"@angular/forms\";\r\nimport { TableField } from \"./table-field\";\r\n\r\nexport class TableFieldFormBuilder {\r\n static create<T = any>(lstTableFields: TableField[], fb: FormBuilder): FormGroup{\r\n const frm: FormGroup = fb.group({});\r\n for (const field of lstTableFields) {\r\n frm.addControl(field.index, field.formControl);\r\n }\r\n return frm;\r\n }\r\n}","export enum InputType {\r\n Bool = \"Bool\",\r\n Cep = \"Cep\",\r\n Color = \"Color\",\r\n CpfCnpj = \"CpfCnpj\",\r\n Cpf = \"Cpf\",\r\n Cnpj = \"Cnpj\",\r\n Date = \"Date\",\r\n DateTime = \"DateTime\",\r\n Time = \"Time\",\r\n Decimal = \"Decimal\",\r\n Currency = \"Currency\",\r\n Number = \"Number\",\r\n File = \"File\",\r\n Icon = \"Icon\",\r\n Select = \"Select\",\r\n String = \"String\",\r\n TelefoneCelular = \"TelefoneCelular\",\r\n Telefone = \"Telefone\",\r\n Celular = \"Celular\",\r\n TextArea = \"TextArea\",\r\n}\r\n","export class InputDecimalConfiguration{\r\n prefix : string;\r\n sufix : string;\r\n placeholder : string;\r\n\r\n constructor(\r\n /** Declara a quantidade de numeros apos o ponto */\r\n public precision: number = 2, \r\n /** Texto no inicio do input */\r\n prefix: string | null = null, \r\n /** Texto no fim do input */\r\n sufix: string | null = null, \r\n /** Se = false não aplica virgulas no lugar do separador a cada 3 unidades */\r\n public thousandSeparator: string = '.',\r\n public decimalSeparator : string = ','\r\n ){\r\n if(!prefix){ this.prefix = ''; }else{ this.prefix = prefix; }\r\n if(!sufix ){ this.sufix = ''; }else{ this.sufix = sufix; }\r\n\r\n this.placeholder = \"-\";\r\n if(precision > 0){\r\n this.placeholder += this.decimalSeparator;\r\n for(let i = precision; i > 0; i--){\r\n this.placeholder += \"-\";\r\n }\r\n }\r\n }\r\n} \r\nexport class InputNumberConfiguration extends InputDecimalConfiguration {\r\n constructor(\r\n prefix: string = \"\", \r\n sufix : string = \"\", \r\n thousandSeparator: string = '.'\r\n ){\r\n super(0, prefix, sufix, thousandSeparator);\r\n }\r\n}\r\nexport class InputCurrencyConfiguration extends InputDecimalConfiguration {\r\n constructor(prefix: string = \"R$\", sufix: string = \"\", thousandSeparator: string = '.'){\r\n super(2, prefix, sufix, thousandSeparator);\r\n }\r\n}\r\nexport class InputPercentageConfiguration extends InputDecimalConfiguration {\r\n constructor(prefix: string = \"\", sufix: string = \"%\", thousandSeparator: string = '.'){\r\n super(2, prefix, sufix, thousandSeparator);\r\n }\r\n}\r\n","export enum InputStringType{\r\n Text = \"text\", \r\n Password = \"password\", \r\n Email = \"email\", \r\n Number = \"number\", \r\n Search = \"search\", \r\n Tel = \"tel\", \r\n Url = \"url\"\r\n}\r\n\r\nexport class InputStringConfiguration{\r\n maxlength: number;\r\n type: InputStringType = InputStringType.Text;\r\n autoGrow: boolean = false;\r\n constructor(type: InputStringType = InputStringType.Text, maxlength: number = 50, autoGrow = false){\r\n this.type = type; \r\n this.maxlength = maxlength;\r\n this.autoGrow = autoGrow;\r\n }\r\n}\r\n","export type CPFCnpj = 'CPF' | 'CNPJ' | 'CPFCNPJ'\r\nexport class InputCpfCnpjConfiguration {\r\n constructor(public type: CPFCnpj = 'CPFCNPJ'){}\r\n}","import { Injectable } from '@angular/core';\r\n\r\n/**\r\n * Corrige o focus trap em modais do Ionic, permite que o foco não fique preso dentro do modal.\r\n * Utilizado para concertar interatividade com popovers e outros elementos que podem ser interativos fora do modal.\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ModalFocusTrapService {\r\n \r\n constructor() {\r\n this.initGlobalFocusTrapDisable();\r\n }\r\n\r\n private initGlobalFocusTrapDisable() {\r\n // Wait for the platform to be ready\r\n document.addEventListener('DOMContentLoaded', () => {\r\n this.setupModalObserver();\r\n });\r\n }\r\n\r\n private setupModalObserver() {\r\n // Create a mutation observer to watch for new modals\r\n const observer = new MutationObserver((mutations) => {\r\n mutations.forEach((mutation) => {\r\n mutation.addedNodes.forEach((node) => {\r\n if (node.nodeType === Node.ELEMENT_NODE) {\r\n const element = node as Element;\r\n \r\n // Check if the added node is an ion-modal\r\n if (element.tagName?.toLowerCase() === 'ion-modal') {\r\n this.disableFocusTrap(element);\r\n }\r\n \r\n // Check for ion-modal children\r\n const modals = element.querySelectorAll?.('ion-modal');\r\n modals?.forEach(modal => this.disableFocusTrap(modal));\r\n }\r\n });\r\n });\r\n });\r\n\r\n // Start observing\r\n observer.observe(document.body, {\r\n childList: true,\r\n subtree: true\r\n });\r\n\r\n // Also handle existing modals\r\n const existingModals = document.querySelectorAll('ion-modal');\r\n existingModals.forEach(modal => this.disableFocusTrap(modal));\r\n }\r\n\r\n private disableFocusTrap(modal: Element) {\r\n // Add the CSS class\r\n modal.classList.add('ion-disable-focus-trap');\r\n \r\n // Set the property if it exists\r\n const modalElement = modal as any;\r\n if (modalElement.disableFocusTrap !== undefined) {\r\n modalElement.disableFocusTrap = true;\r\n }\r\n }\r\n}","import { Injectable } from '@angular/core';\r\n\r\n/**\r\n * Corrige o focus trap em modais do Ionic, permite que o foco não fique preso dentro do popover.\r\n * Utilizado para concertar interatividade com popovers e outros elementos que podem ser interativos fora do popover.\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PopoverFocusTrapService {\r\n \r\n constructor() {\r\n this.initGlobalFocusTrapDisable();\r\n }\r\n\r\n private initGlobalFocusTrapDisable() {\r\n // Wait for the platform to be ready\r\n document.addEventListener('DOMContentLoaded', () => {\r\n this.setuppopoverObserver();\r\n });\r\n }\r\n\r\n private setuppopoverObserver() {\r\n // Create a mutation observer to watch for new popovers\r\n const observer = new MutationObserver((mutations) => {\r\n mutations.forEach((mutation) => {\r\n mutation.addedNodes.forEach((node) => {\r\n if (node.nodeType === Node.ELEMENT_NODE) {\r\n const element = node as Element;\r\n \r\n // Check if the added node is an ion-popover\r\n if (element.tagName?.toLowerCase() === 'ion-popover') {\r\n this.disableFocusTrap(element);\r\n }\r\n \r\n // Check for ion-popover children\r\n const popovers = element.querySelectorAll?.('ion-popover');\r\n popovers?.forEach(popover => this.disableFocusTrap(popover));\r\n }\r\n });\r\n });\r\n });\r\n\r\n // Start observing\r\n observer.observe(document.body, {\r\n childList: true,\r\n subtree: true\r\n });\r\n\r\n // Also handle existing popovers\r\n const existingpopovers = document.querySelectorAll('ion-popover');\r\n existingpopovers.forEach(popover => this.disableFocusTrap(popover));\r\n }\r\n\r\n private disableFocusTrap(popover: Element) {\r\n // Add the CSS class\r\n popover.classList.add('ion-disable-focus-trap');\r\n \r\n // Set the property if it exists\r\n const popoverElement = popover as any;\r\n if (popoverElement.disableFocusTrap !== undefined) {\r\n popoverElement.disableFocusTrap = true;\r\n }\r\n }\r\n}","import { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { Environment } from './classes/environment';\r\nimport { EnvironmentService } from './services/environment.service';\r\nimport { ModalFocusTrapService } from './services/modal-focus-trap.service';\r\nimport { PopoverFocusTrapService } from './services/popover-focus-trap.service';\r\n\r\nexport const EnvironmentInjectionToken = new InjectionToken<Environment>('Environment');\r\n@NgModule({\r\n declarations: [],\r\n exports : [],\r\n imports: [ CommonModule, ],\r\n providers: [ ModalFocusTrapService , PopoverFocusTrapService],\r\n})\r\nexport class SapphireIonFrameworkModule { \r\n constructor( private mis: ModalFocusTrapService, private pos : PopoverFocusTrapService ) {}\r\n\r\n static forRoot(config: Environment): ModuleWithProviders<SapphireIonFrameworkModule> {\r\n return { \r\n ngModule: SapphireIonFrameworkModule,\r\n providers: [ \r\n ModalFocusTrapService,\r\n PopoverFocusTrapService,\r\n EnvironmentService, { provide: EnvironmentInjectionToken, useValue: config }, \r\n ]\r\n }\r\n }\r\n}\r\n","import { INT_MAX } from \"../services/utils.service\";\r\nimport { Credentials } from \"./credentials\";\r\nimport { ViewFiltros } from \"./filters/view-filtros\";\r\nimport { PageOption } from \"./page-option\";\r\n\r\nexport class Environment {\r\n useFluentIcons : boolean = false;\r\n production : boolean = false;\r\n applicationName: string = \"Panel\";\r\n apiUrl : string | null = null;\r\n defaultCredentials: Credentials = { apelido: \"admin\", senha: \"Coopertec@2017\" };\r\n defaultPageLimits : PageOption[] = [\r\n { value: 25 , label: \"25\" },\r\n { value: 50 , label: \"50\" },\r\n { value: 100 , label: \"100\" },\r\n { value: 200 , label: \"200\" },\r\n { value: INT_MAX, label: \"Todos\" },\r\n ];\r\n get defaultPageLimit(): number | null {\r\n return this.defaultPageLimits[0].value\r\n }\r\n get defaultPaginationObject(): ViewFiltros{\r\n return new ViewFiltros(10, \"\", 1)\r\n }\r\n\r\n constructor(production: boolean, applicationName: string, apiUrl: string, defaultCredentials?: Credentials, defaultPageLimits?: PageOption[], useFluentIcons: boolean = false) {\r\n this.production = production;\r\n this.applicationName = applicationName;\r\n this.apiUrl = apiUrl;\r\n //[ ApiUrls ]\r\n if(defaultCredentials)\r\n this.defaultCredentials = defaultCredentials;\r\n if(defaultPageLimits)\r\n this.defaultPageLimits = defaultPageLimits;\r\n this.useFluentIcons = useFluentIcons;\r\n }\r\n}","import { Inject, Injectable } from \"@angular/core\";\r\nimport { EnvironmentInjectionToken } from \"../core.module\";\r\nimport { Environment } from \"../classes/environment\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EnvironmentService {\r\n constructor(@Inject(EnvironmentInjectionToken) private config: Environment) {\r\n this._environment = this.config;\r\n }\r\n\r\n private _environment: Environment\r\n get environment(): Environment{\r\n return this._environment;\r\n }\r\n}","import { Injectable, OnInit } from '@angular/core';\r\nimport { EnvironmentService } from '../environment.service';\r\nimport { Preferences } from '@capacitor/preferences';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiUrlProviderService {\r\n\r\n constructor(\r\n private coreService: EnvironmentService,\r\n ) { \r\n this._production = coreService.environment.production;\r\n\r\n this.apiUrl = this.coreService.environment.apiUrl;;\r\n\r\n console.log(`%c [ @sapphire-ion/framework : ${this.coreService.environment.applicationName} started @ development ] | Conectado em: ${this.apiUrl}`, \"background-color: #2fdf75; color: black;\")\r\n }\r\n\r\n //#region [ API URL ]\r\n public _apiUrl: string = '';\r\n\r\n public get apiUrl(): string{ return this._apiUrl; }\r\n public set apiUrl(value: string){\r\n this._apiUrl = value;\r\n }\r\n \r\n private _production: boolean;\r\n\r\n public get production() { return this._production; }\r\n //#endregion [ API URL ]\r\n}\r\n\r\n// export class ApiUrl{\r\n// label : string; \r\n// value : string;\r\n// production: boolean;\r\n// constructor(value: string, port: number, production: boolean, https: boolean = false){\r\n// this.production = production;\r\n// if(!production){\r\n// this.value = `http${https ? 's' : ''}://${value}:${port}/`;\r\n// this.label = value;\r\n// }else{\r\n// this.value = `http${https ? 's' : ''}://${value}/`;\r\n// this.label = 'Produção'\r\n// }\r\n// }\r\n// }","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { Title } from '@angular/platform-browser';\r\nimport { AlertButton, AlertController, ToastController } from \"@ionic/angular\";\r\n\r\nimport { EnvironmentService } from './environment.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class GenericService{\r\n constructor(\r\n private toastController: ToastController,\r\n private alertController: AlertController,\r\n private titleController: Title,\r\n private coreService: EnvironmentService,\r\n ){}\r\n\r\n public async PresentToast(message: string, icon = 'alert-circle') {\r\n const toast = await this.toastController.create({\r\n message: message,\r\n duration: 1750,\r\n icon: icon,\r\n position: 'bottom',\r\n translucent: false, \r\n });\r\n\r\n await toast.present();\r\n }\r\n \r\n public async PresentToastSuccess(message: string = \"Salvo com sucesso!\") {\r\n const toast = await this.toastController.create({\r\n message: message,\r\n duration: 1750,\r\n icon: 'checkmark-circle',\r\n position: 'bottom',\r\n translucent: false,\r\n });\r\n\r\n await toast.present();\r\n return toast.onDidDismiss();\r\n }\r\n\r\n public static CancelButton: AlertButton = {\r\n text: 'Cancelar',\r\n role: 'cancel',\r\n }\r\n public static ConfirmButton : AlertButton = {\r\n text: 'OK',\r\n role: 'confirm',\r\n }\r\n static defaultAlertButtons: AlertButton[] = [GenericService.ConfirmButton];\r\n\r\n public async PresentAlert(header: string, message: string, buttons: AlertButton[] = GenericService.defaultAlertButtons) {\r\n const alert = await this.alertController.create({\r\n header: header,\r\n message: message,\r\n buttons: buttons,\r\n });\r\n await alert.present();\r\n return alert.onDidDismiss();\r\n }\r\n\r\n public SetTitle(title: string){\r\n this.titleController.setTitle(this.coreService.environment.applicationName + \" | \" + title)\r\n }\r\n\r\n public GetId(activatedRoute: ActivatedRoute, depth: number = 2): number | null{\r\n try{\r\n var Route = activatedRoute;\r\n for(let i = 0; i < depth; i++){\r\n Route = Route.parent;\r\n }\r\n if(Route.snapshot.paramMap.has('id')){\r\n return Number(Route.snapshot.paramMap.get('id'));\r\n }\r\n else{\r\n return 0;\r\n }\r\n }catch{\r\n return null;\r\n }\r\n }\r\n}","import { BehaviorSubject, Observable, firstValueFrom } from 'rxjs';\r\nimport { HttpClient, HttpEvent, HttpEventType } from '@angular/common/http';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { NavController } from '@ionic/angular';\r\n\r\nimport { ApiUrlProviderService } from './api-url-provider.service';\r\nimport { GenericService } from '../generic.service';\r\nimport { ViewFiltros } from '../../classes/filters/view-filtros';\r\nimport { TableField } from '../../classes/inputs/table-field';\r\nimport { InputType } from '../../components/inputs/input-type';\r\nimport { View } from '../../components/default/default-view/view';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport abstract class HttpService<V = any> {\r\n\r\n public abstract route: string; \r\n public abstract title: string; \r\n\r\n constructor(\r\n protected http? : HttpClient,\r\n protected fb? : FormBuilder, \r\n protected genericService?: GenericService,\r\n protected navController? : NavController,\r\n protected apiUrlProviderService?: ApiUrlProviderService,\r\n ) { \r\n this.http = inject(HttpClient);\r\n this.fb = inject(FormBuilder);\r\n this.genericService = inject(GenericService);\r\n this.navController = inject(NavController);\r\n this.apiUrlProviderService = inject(ApiUrlProviderService);\r\n }\r\n\r\n /**\r\n * Retorna a rota completa do serviço\r\n * @return string\r\n * @example 'https://api.example.com/{route}'\r\n */\r\n public get fullRoute(): string{\r\n return this.apiUrlProviderService.apiUrl + this.route\r\n }\r\n\r\n /** \r\n * Retorna os dados de acordo com os filtros \r\n * @param vFilter Filtra os dados (Pesquisa, Paginação e IComparison)\r\n */\r\n public List(vFilter?: ViewFiltros): Observable<ViewRetorno<V>>{\r\n return this.http.post<ViewRetorno<V>>(this.fullRoute + `/list`, vFilter);\r\n }\r\n\r\n /** Retorna o dado da tabela associada com a rota com o id indicado \r\n * @param id id do dado\r\n */\r\n public Get(id: number): Observable<V> { \r\n return this.http.get<V>(this.fullRoute +`/get/${id}`);\r\n }\r\n \r\n /** Salva as alterações no dado recebido */\r\n public Save<T = number>(obj: any | FormGroup | V, view?: View<HttpService>): Observable<T>{\r\n if(view){ view.submitted = true; }\r\n\r\n var object = obj;\r\n \r\n if(obj instanceof FormGroup){ \r\n if(obj.invalid){ \r\n const subject = new BehaviorSubject(null)\r\n subject.error(\"[ Invalid Form ]\");\r\n subject.complete();\r\n this.genericService.PresentToast(\"Verifique os campos!\")\r\n return subject;\r\n }\r\n \r\n object = obj.value; \r\n }\r\n\r\n const formData = this.FilesToForm(object);\r\n formData.append('view', JSON.stringify(object));\r\n\r\n //Check in the case it has a file and the view is not passed\r\n if(Object.entries(object).find(p => p[1] instanceof File) && this.hasFileForm && !view){ \r\n console.error(\"[ FormGroup contains file, but view isnt a valid parameter ]\"); \r\n } else \r\n if(view){ \r\n return this._Save(formData, view); \r\n } \r\n\r\n return this.http.post<T>(this.fullRoute + `/save`, formData);\r\n }\r\n\r\n /** Exclui a entidade */\r\n public Delete(id: number): Observable<void> {\r\n return this.http.delete<void>(this.fullRoute + `/delete/`+id);\r\n }\r\n\r\n /** Retorna todos os dados */\r\n public Load(vFiltros?: ViewFiltros): Promise<ViewRetorno<V>>{\r\n return firstValueFrom(this.List(vFiltros));\r\n }\r\n\r\n /** Retorna os campos da tabela */\r\n get lstTableFields() : TableField[] { return []; }\r\n /** Retorna os campos da tabela para visualização/edição (se vazio retornara o padrão (lstTableFields)) */ \r\n get lstTableFieldsView(): TableField[] { return this.lstTableFields; } \r\n\r\n /** Retora o TableField padrão de id */\r\n get defaultId() {\r\n var control = this.fb.control(0);\r\n const field = new TableField(\"id\", \"id\", control, InputType.Number); \r\n field.hidden = true;\r\n field.hiddenView = true;\r\n return field\r\n }\r\n\r\n /** Retora o TableField padrão de idEmpresa */\r\n get defaultIdEmpresa() {\r\n var control = this.fb.control(0);\r\n const field = new TableField(\"Empresa\", \"idEmpresa\", control, InputType.Select); \r\n field.hiddenView = true;\r\n field.hidden = true;\r\n return field;\r\n }\r\n\r\n private get hasFileForm(): boolean { return this.lstTableFieldsView.filter(p => p.type == InputType.File).length > 0; } \r\n\r\n protected _Save(formData: FormData, view: View<HttpService>): Observable<any | void>{\r\n view.loading = true;\r\n\r\n const subject = new BehaviorSubject<HttpEvent<any>>(null);\r\n\r\n this.http.post(this.fullRoute + `/save`, formData, { reportProgress: true, observe: 'events' }).subscribe({\r\n next: (rez) => { \r\n if(rez.type == HttpEventType.UploadProgress){\r\n const res = rez.loaded / rez.total!; \r\n subject.next(rez);\r\n view.progress = res; \r\n }else \r\n if(rez.type == HttpEventType.Response){\r\n view.loading = false; \r\n view.submitted = false; \r\n view.Refresh(); \r\n\r\n const id: number = Number(rez.body)\r\n\r\n //[ Redirect to view/:id | redirectPath ]\r\n if(!view.id && id){ \r\n this.RedirectRoute(id, view.redirectPath, view.GetCurrentRouting()); \r\n }\r\n }\r\n },\r\n error:(err) => { \r\n subject.error(err); \r\n view.loading = false; \r\n view.submitted = false; \r\n subject.complete(); \r\n },\r\n complete:() => { \r\n this.genericService.PresentToastSuccess();\r\n subject.complete(); \r\n }\r\n });\r\n\r\n return subject;\r\n }\r\n private RedirectRoute(id: number, redirectPath: string, activatedRoute: ActivatedRoute): void {\r\n if(!redirectPath){ return; }\r\n const path = redirectPath.replace(\":id\", id.toString());\r\n this.navController.navigateRoot([`../${path}`], { relativeTo: activatedRoute })\r\n }\r\n\r\n public FilesToForm(object: V, formData: FormData = new FormData(), lstTableFieldsView: TableField[] | null = null): FormData {\r\n if(!lstTableFieldsView){ lstTableFieldsView = this.lstTableFieldsView.filter(p => p.type == InputType.File); }\r\n\r\n for (const [key, value] of Object.entries(object)) {\r\n if(lstTableFieldsView.find(p => p.index == key && p.type == InputType.File)){\r\n if(value && typeof(value) != \"string\"){\r\n const file = value as File;\r\n const name = `file-${key}`;\r\n formData.append(name, file, file.name);\r\n object[key] = \"\";\r\n }\r\n }\r\n }\r\n return formData;\r\n }\r\n}\r\n\r\nexport class ViewRetorno<T = any> {\r\n lstDados: T[] = [];\r\n total: number;\r\n}","\r\nexport class InputBoolConfiguration{\r\n constructor(\r\n /** Estilo do ckeckbox \r\n * - checkbox : @link https://ionicframework.com/docs/api/checkbox\r\n * - toggle : @link https://ionicframework.com/docs/api/toggle\r\n */\r\n public type: InputBoolType = InputBoolType.Checkbox\r\n ){} \r\n}\r\nexport enum InputBoolType{\r\n Checkbox = \"checkbox\",\r\n Toggle = \"toogle\",\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { InputBoolConfiguration, InputBoolType} from '../../components/inputs/input-bool/input-bool.configuration';\r\nimport { HttpService, ViewRetorno } from './http.service';\r\nimport { ViewFiltros } from '../../classes/filters/view-filtros';\r\nimport { TableField } from '../../classes/inputs/table-field';\r\nimport { InputType } from '../../components/inputs/input-type';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport abstract class HttpServiceAtivo<V = any> extends HttpService<V> {\r\n\r\n /**\r\n * Troca o status de ativo da entidade\r\n */\r\n Ativar(id: number): Observable<boolean> {\r\n return this.http.post<boolean>(this.fullRoute + `/ativar/${id}`, {});\r\n }\r\n\r\n /**\r\n * Lista todos os dados ativos\r\n * @param vFilter\r\n */\r\n ListAtivo<T = ViewRetorno>(vFilter?: ViewFiltros): Observable<T> {\r\n return this.http.post<T>(this.fullRoute + `/listAtivo`, vFilter);\r\n }\r\n\r\n /** Table Field padrão de ativo */\r\n get defaultAtivo(): TableField {\r\n var control = this.fb.control(true);\r\n const field = new TableField(\"Ativo\", \"ativo\", control, InputType.Bool);\r\n field.configuration = new InputBoolConfiguration(InputBoolType.Toggle); \r\n return field;\r\n }\r\n}","import { Observable, firstValueFrom } from \"rxjs\";\r\n\r\nimport { HttpService, ViewRetorno } from \"../../../services/web/http.service\";\r\nimport { HttpServiceAtivo } from \"../../../services/web/http.ativo.service\";\r\nimport { ViewFiltros } from \"../../../classes/filters/view-filtros\";\r\nimport { INT_MAX } from \"../../../services/utils.service\";\r\nimport { Comparison } from \"../../../classes/comparison/comparison\";\r\nimport { InputSelectComponent } from \"./input-select.component\";\r\nimport { Placement } from \"@floating-ui/dom\";\r\n\r\nexport type DefaultModelOptions = { value: string, label: string };\r\n\r\nexport enum SelectInterfaces {\r\n /** Interface padrão do select \r\n * Popover quando web, Modal quando mobile\r\n */\r\n Dynamic = 0,\r\n Popover = 0,\r\n Modal = 1,\r\n ActionSheet = 2,\r\n} \r\n\r\nexport class InputSelectConfiguration{\r\n static Create(options: {\r\n bindLabel: string | ((obj: any) => string),\r\n bindValue: string | ((obj: any) => any),\r\n clearable?: boolean,\r\n searcheable?: boolean,\r\n loadFrom?: HttpService | Observable<ViewRetorno> | any[],\r\n multiple?: boolean,\r\n vFiltros?: Partial<{ \r\n search: string,\r\n orderByProperty: string,\r\n ascending: boolean,\r\n filter: Comparison[]\r\n }>,\r\n disableConditional?: ((obj: any) => boolean)\r\n useInfiniteScroll?: boolean | undefined,\r\n placeholder?: string,\r\n noItensFoundText?: string,\r\n interface?: SelectInterfaces,\r\n }\r\n ){\r\n const config = new InputSelectConfiguration(\r\n options.bindValue,\r\n options.bindLabel,\r\n options.clearable,\r\n options.searcheable,\r\n options.loadFrom,\r\n options.multiple,\r\n options.vFiltros || null,\r\n options.disableConditional || null\r\n );\r\n if(options.placeholder){\r\n config.placeholder = options.placeholder;\r\n }\r\n if(options.noItensFoundText){\r\n config.noItensFoundText = options.noItensFoundText;\r\n }\r\n if(options.useInfiniteScroll != undefined){\r\n config.useInfiniteScroll = options.useInfiniteScroll;\r\n }\r\n if(options.interface){\r\n config.interface = options.interface;\r\n }\r\n return config;\r\n };\r\n\r\n\r\n placeholder : string = \"Selecione um item...\"\r\n noItensFoundText: string = \"Sem items encontrados...\"\r\n\r\n loader: InputSelectDataLoader;\r\n loadFromArray : any[];\r\n loadFromService : HttpService | HttpServiceAtivo\r\n loadFromFunction: Observable<any>\r\n\r\n popoverConfiguration: {\r\n flip: boolean,\r\n placement: Placement,\r\n } = {\r\n flip: true,\r\n placement: \"bottom\"\r\n }\r\n\r\n public vFiltros: ViewFiltros | null = null;\r\n public useInfiniteScroll?: boolean | undefined = undefined;\r\n\r\n /** Interface do select */\r\n public interface: SelectInterfaces = SelectInterfaces.Dynamic;\r\n\r\n constructor(\r\n /** Valor que será setado no formControl */\r\n public bindValue: string | ((obj: any) => any) = \"id\" ,\r\n /** Valor que será exibido */\r\n public bindLabel: string | ((obj: any) => string) = \"nome\", \r\n \r\n /** Indica se o select pode ser nulo e limpavel */\r\n public clearable : boolean = true, \r\n /** Indica se o select pode ser pesquisado */\r\n public searcheable: boolean = true, \r\n \r\n /** \r\n * Se LoadFrom instanceof HttpService -> Os dados serão carregados do List()\r\n * Se LoadFrom instanceof Observable -> Os dados serão carregados da função indicada\r\n * Se LoadFrom instanceof Array -> Os dados serão o array\r\n */\r\n public loadFrom?: HttpService | Observable<ViewRetorno> | any[], \r\n /** Se = true Os valores no form control seráo um array dos items selecionados */\r\n public multiple : boolean = false,\r\n /** Aplica os filtros na pesquisa */\r\n vFiltros : Partial<{ \r\n /** Aplica uma pesquisa em texto */\r\n search: string\r\n /** Propriedade de ordenação */\r\n orderByProperty: string\r\n /** Orientação de ordenação */\r\n ascending: boolean,\r\n /** Filtro */\r\n filter: Comparison[]\r\n }> | null = null,\r\n /** Desativa os items que estão de acordo com a função */\r\n public disableConditional: ((obj: any) => boolean) | null = null\r\n ){\r\n this.clearable = clearable;\r\n this.searcheable = searcheable;\r\n this.multiple = multiple;\r\n\r\n if(vFiltros != null){\r\n const v = vFiltros;\r\n if(v.ascending == null || v.ascending == undefined){ \r\n v.ascending = true; \r\n }\r\n this.vFiltros = new ViewFiltros(INT_MAX, v.search, 1, v.orderByProperty, v.ascending);\r\n this.vFiltros.filter = v.filter;\r\n }\r\n\r\n if(loadFrom){\r\n if(Array.isArray(loadFrom)){ \r\n this.loadFromArray = loadFrom; \r\n } else\r\n if(loadFrom instanceof HttpService || loadFrom instanceof HttpServiceAtivo){ \r\n this.loadFromService = loadFrom;\r\n } else { \r\n this.loadFromFunction = loadFrom;\r\n }\r\n }\r\n\r\n this.loader = new InputSelectDataLoader(this);\r\n }\r\n}\r\n\r\nexport class InputSelectDataLoader{\r\n private lstComponents: InputSelectComponent[] = [];\r\n private configuration: InputSelectConfiguration;\r\n\r\n /** Valor que será setado no formControl */\r\n public bindValue: ((obj: any) => any) | null = null;\r\n /** Valor que será exibido */\r\n public bindLabel: ((obj: any) => string)| null = null;\r\n\r\n constructor(configuration: InputSelectConfiguration) { \r\n this.configuration = configuration; \r\n this.bindValue = BindValueFactory(configuration)\r\n this.bindLabel = BindLabelFactory(configuration)\r\n }\r\n\r\n public AddComponent(component: InputSelectComponent): void { \r\n this.lstComponents.push(component);\r\n }\r\n\r\n //TODO Remove function\r\n public GetLabel(value: any){\r\n if(!this.items || !this.bindValue || !this.bindLabel){ return \"\"; }\r\n const item = this.items.find(p => this.bindValue(p) == value);\r\n if(!item){ return \"\" ;}\r\n return this.bindLabel(item);\r\n }\r\n\r\n isLoaded: boolean = false;\r\n error : boolean = false;\r\n\r\n async Refresh(items?: any[]): Promise<void>{\r\n for (const component of this.lstComponents) {\r\n component.loadingFromLoader = true;\r\n }\r\n \r\n if(!this.configuration.loadFromService && \r\n !this.configuration.loadFromFunction && \r\n (!this.configuration.loadFromArray || !this.configuration.loadFromArray.length)\r\n ){\r\n this.items = [...items || []];\r\n this.isLoaded = true;\r\n for (const component of this.lstComponents) {\r\n if(!component.destroyed)\r\n component.items.set([...this.items]); \r\n this.CheckForInfiniteScroll();\r\n }\r\n }\r\n \r\n try{\r\n await this.Load();\r\n this.isLoaded = true;\r\n for (const component of this.lstComponents) {\r\n if(!component.destroyed)\r\n component.items.set([...this.items]);\r\n }\r\n }\r\n finally{\r\n for (const component of this.lstComponents) {\r\n component.loadingFromLoader = false;\r\n }\r\n }\r\n }\r\n\r\n CheckForInfiniteScroll(): void {\r\n if(this.items.length > 100 && this.configuration.useInfiniteScroll == undefined){\r\n this.configuration.useInfiniteScroll = true;\r\n }\r\n }\r\n\r\n items: any[] = [];\r\n async Load(): Promise<void>{\r\n if(this.isLoaded){\r\n for (const component of this.lstComponents) {\r\n if(!component.destroyed)\r\n component.items.set([...this.items]); \r\n this.CheckForInfiniteScroll();\r\n }\r\n\r\n return;\r\n }\r\n\r\n //[ Load from Array ]\r\n if(this.configuration.loadFromArray != undefined && this.configuration.loadFromArray.length){\r\n this.items = [...this.configuration.loadFromArray];\r\n for (const component of this.lstComponents) {\r\n if(!component.destroyed)\r\n component.items.set([...this.items]); \r\n this.CheckForInfiniteScroll();\r\n }\r\n return;\r\n }\r\n\r\n //[ Load from api ]\r\n let vFiltros: ViewFiltros | null = this.configuration.vFiltros;\r\n try{\r\n let lstDados: any[] = [];\r\n \r\n if(this.configuration.loadFromService){\r\n lstDados = (await firstValueFrom(this.configuration.loadFromService.List(vFiltros))).lstDados\r\n }else{\r\n lstDados = (await firstValueFrom(this.configuration.loadFromFunction)).lstDados;\r\n }\r\n\r\n this.items = lstDados;\r\n for (const component of this.lstComponents) {\r\n if(!component.destroyed)\r\n component.items.set([...this.items]); \r\n this.CheckForInfiniteScroll();}\r\n ;\r\n this.error = false;\r\n }\r\n catch (e){ this.error = true; throw e; }\r\n }\r\n}\r\n\r\nexport function BindValueFactory(configuration: InputSelectConfiguration): ((obj: any) => any) {\r\n const cBindValue = configuration.bindValue;\r\n let bindValue: ((args: any) => any) = null;\r\n if(typeof(cBindValue) == 'string'){\r\n let bvS: string = cBindValue;\r\n bindValue = ((obj: any): any => { return obj[bvS]; });\r\n }else{\r\n let bvF: ((args: any) => any) = cBindValue;\r\n bindValue = ((obj: any): any => { return bvF(obj); });\r\n }\r\n return bindValue;\r\n}\r\n\r\nexport function BindLabelFactory(configuration: InputSelectConfiguration): ((obj: any) => string) {\r\n const cBindLabel = configuration.bindLabel;\r\n let bindLabel: ((args: any) => string) = null;\r\n if(typeof(cBindLabel) == 'string'){\r\n let blS: string = cBindLabel;\r\n bindLabel = ((obj: any): string => { return obj[blS] + ''; });\r\n }else{\r\n let blF: ((args: any) => any) = cBindLabel;\r\n bindLabel = ((obj: any): string => { return blF(obj) + ''; });\r\n }\r\n return bindLabel;\r\n}","export class InputDateConfiguration{\r\n constructor(\r\n /** Habilita o botão de limpar os dados */\r\n public clearable: boolean = false\r\n ){}\r\n}","export class InputFileConfiguration{\r\n constructor(\r\n /** Tipos de arquivos que podem ser selecionados */\r\n public types: any | [] = ['image/*'], \r\n // /** Declara se mais do que um arquivo pode ser selecionado */\r\n // public multiple: boolean = false\r\n ){}\r\n}\r\n\r\nexport const lstImageTypes: string[] = [\r\n 'jpe',\r\n 'jpg',\r\n 'jpeg',\r\n 'gif',\r\n 'png',\r\n 'bmp',\r\n 'ico',\r\n 'svg',\r\n 'svgz',\r\n 'tif',\r\n 'tiff',\r\n 'webp',\r\n 'jfif',\r\n 'avif',\r\n] ","import { FormControl } from \"@angular/forms\";\r\nimport { Comparison } from \"../comparison/comparison\";\r\nimport { InputType } from \"../../components/inputs/input-type\";\r\n\r\nimport { InputDecimalConfiguration, InputCurrencyConfiguration, InputNumberConfiguration } from '../../components/inputs/input-decimal/input-decimal.configuration';\r\nimport { InputStringConfiguration } from '../../components/inputs/input-string/input-string.configuration';\r\nimport { InputCpfCnpjConfiguration } from \"../../components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration\";\r\nimport { InputSelectConfiguration } from '../../components/inputs/input-select/input.select.configuration';\r\nimport { InputDateConfiguration } from '../../components/inputs/input-date/input-date.configuration';\r\nimport { InputFileConfiguration } from '../../components/inputs/input-file/input-file.configuration';\r\nimport { InputBoolConfiguration } from '../../components/inputs/input-bool/input-bool.configuration';\r\nimport { InputConfiguration } from \"../../components/inputs/input-configuration\";\r\n\r\nexport class TableField{\r\n class : string = \"xl:col-span-3 md:col-span-6 col-span-full\"\r\n hiddenView: boolean = false;\r\n hidden : boolean = false;\r\n filter : Comparison[] = [];\r\n\r\n private SelectDisableMultiple(){\r\n if(this.type == InputType.Select && this.configuration){\r\n return this.configuration.multiple;\r\n }\r\n return false;\r\n }\r\n disabledChange(): boolean {\r\n return this.filter.some(p => p.disableChange) || this.SelectDisableMultiple();\r\n };\r\n\r\n\r\n constructor(\r\n public header: string, \r\n public index : string, \r\n public formControl : FormControl | null, \r\n public type : InputType | null, \r\n public configuration: InputConfiguration | null = null,\r\n public disabled : boolean = false\r\n ){\r\n if(configuration){ this.configuration = configuration }\r\n else{\r\n if(TableField.dateTypes.includes(type)){ this.configuration = new InputDateConfiguration() } else\r\n if(type == InputType.CpfCnpj ){ this.configuration = new InputCpfCnpjConfiguration(\"CPFCNPJ\") }else\r\n if(type == InputType.Cpf ){ this.configuration = new InputCpfCnpjConfiguration(\"CPF\") }else\r\n if(type == InputType.Cnpj ){ this.configuration = new InputCpfCnpjConfiguration(\"CNPJ\") }else\r\n if(type == InputType.File ){ this.configuration = new InputFileConfiguration() }else\r\n if(type == InputType.Number ){ this.configuration = new InputNumberConfiguration() }else\r\n if(type == InputType.Decimal ){ this.configuration = new InputDecimalConfiguration() }else\r\n if(type == InputType.Currency){ this.configuration = new InputCurrencyConfiguration() }else\r\n if(type == InputType.String ){ this.configuration = new InputStringConfiguration() }else\r\n if(type == InputType.Select ){ this.configuration = new InputSelectConfiguration() }else\r\n if(type == InputType.TextArea){ \r\n this.configuration = new InputStringConfiguration(); \r\n this.class = \"col-span-full\" \r\n }else \r\n if(type == InputType.Bool ){ \r\n this.configuration = new InputBoolConfiguration(); \r\n if(this.formControl.value == null){ this.formControl.setValue(false); } \r\n }\r\n }\r\n }\r\n private static readonly dateTypes = [InputType.Date, InputType.DateTime, InputType.Time];\r\n}","import { Routes } from \"@angular/router\";\r\n\r\nexport class DefaultRoutingFactory{\r\n /** Retorna as rotas padrões, incluindo listagem, view(novo) e view:id\r\n * @param ListComponent Componente de listagem a ser invocado\r\n * @param ViewCompnent Componente de listagem a ser invocado\r\n */\r\n public static GetRoutes(ListComponent, ViewCompnent): Routes{\r\n return [\r\n {\r\n path: '',\r\n component: ListComponent\r\n },\r\n {\r\n path: 'view',\r\n component: ViewCompnent\r\n },\r\n {\r\n path: 'view/:id',\r\n component: ViewCompnent,\r\n }\r\n ]\r\n } \r\n}","import { Comparison } from \"../comparison/comparison\";\r\n\r\n/** Configuração de rota: Automaticamente aplica o id de uma rota superior para a filtragem de uma listagem de uma tebela filha\r\n * * A propriedade precisa existir no seu determinado service para ser aplicado\r\n */\r\nexport class idPreloaderConfiguration{\r\n constructor(\r\n /** Propriedade no banco de dados a ser comparada */\r\n public propertyName: string,\r\n /** \r\n * Se idPreloaderChange == true : o valor PODERÁ ser modificado na listagem pelo usuário\r\n * Se idPreloaderChange == false : o valor NÃO poderá ser modificado na listagem pelo usuário\r\n * */\r\n public disableChange: boolean = false,\r\n\r\n /** Profundidade da rota para buscar o parametro :id\r\n * Valor minimo é 0\r\n */\r\n public routeDepth : number = 2,\r\n ){ }\r\n}","import { idPreloaderConfiguration } from \"./id-preloader-configuration\";\r\n\r\nexport class RouteData{\r\n idPreloaderConfiguration: idPreloaderConfiguration | null = null;\r\n \r\n constructor(data: Partial<RouteData>){\r\n if(data.idPreloaderConfiguration){ this.idPreloaderConfiguration = data.idPreloaderConfiguration }\r\n }\r\n}","import { InfiniteScrollCustomEvent } from \"@ionic/angular\";\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport class InfiniteScroll {\r\n public configuration: InfiniteScrollConfiguration;\r\n\r\n private console: InfiniteScrollConsole;\r\n \r\n constructor(configuration: InfiniteScrollConfiguration){\r\n this.configuration = configuration;\r\n \r\n this.console = new InfiniteScrollConsole(configuration.logging);\r\n } \r\n\r\n get pushTreshhold(): number { return this.configuration.pushTreshold } \r\n\r\n private originalArray: any[] = [];\r\n public internalArray: any[] = [];\r\n\r\n public array: any[] = [];\r\n\r\n get CanScroll(): boolean{\r\n return this.array.length != this.internalArray.length\r\n }\r\n get NoItems(): boolean{\r\n return this.array.length == 0;\r\n }\r\n\r\n public PushItens(event? : InfiniteScrollCustomEvent): void {\r\n const minimum = this.array.length;\r\n const size = this.array.length + this.pushTreshhold;\r\n\r\n for (let i = minimum; i < size; i++) {\r\n this.console.log(\"[ Pushing @ ]\", i, minimum, size, this.originalArray.length)\r\n if(i > this.originalArray.length){ \r\n this.console.warn(\"[ Warning! ] [ End of array! ]\"); \r\n break; \r\n }\r\n\r\n const data = this.internalArray[i];\r\n if(data){ this.array.push(data); }\r\n }\r\n\r\n if(event){ event.target.complete(); }\r\n }\r\n\r\n public search: string = \"\";\r\n \r\n public SetArray(array: any[]){\r\n this.originalArray = array;\r\n this.internalArray = array;\r\n this.array = [];\r\n }\r\n \r\n public Search(){\r\n this.internalArray = [];\r\n this.array = [];\r\n \r\n var search: string = this.search.toLowerCase();\r\n\r\n this.originalArray.forEach(el => {\r\n var hidden: boolean = true;\r\n const lbl = this.getLabel(el).toLowerCase();\r\n try{\r\n hidden = !lbl.includes(search);\r\n }catch{ \r\n this.console.warn(\"[ Error in searching @ object! ]\", this.configuration, el) \r\n }\r\n\r\n if(!hidden){ this.internalArray.push(el); }\r\n });\r\n\r\n this.PushItens();\r\n }\r\n\r\n private getLabel(item: any): string{\r\n return typeof(this.configuration.bindLabel) == 'function' ? this.configuration.bindLabel(item) + '' : item[this.configuration.bindLabel] + ''\r\n }\r\n}\r\n \r\nexport class InfiniteScrollConfiguration{\r\n bindLabel : string | ((...args: any[]) => string);\r\n pushTreshold : number = 50;\r\n logging : boolean = false;\r\n constructor(bindLabel: string | ((...args: any[]) => string) = \"nome\", pushTreshold: number = 50, logging: boolean = false){\r\n this.bindLabel = bindLabel\r\n this.pushTreshold = pushTreshold\r\n this.logging = logging\r\n }\r\n}\r\n\r\nclass InfiniteScrollConsole {\r\n private logging: boolean = false;\r\n constructor(logging: boolean){\r\n this.logging = logging;\r\n const _ = ((...args: any[]) : void => { return; })\r\n this.warn = _;\r\n this.log = _;\r\n this.error = _;\r\n if(logging){\r\n this.log = console.log;\r\n this.warn = console.warn;\r\n this.error = console.error;\r\n }\r\n }\r\n\r\n warn : ((...args: any[]) => void );\r\n log : ((...args: any[]) => void );\r\n error : ((...args: any[]) => void );\r\n}\r\n","import { Component, Input, model, ModelSignal, Signal, signal, WritableSignal } from \"@angular/core\";\r\n\r\n@Component({ template: '' })\r\nexport abstract class ICarouselItem {\r\n index: WritableSignal<number> = signal(0);\r\n carouselIndex: Signal<number> = signal(0);\r\n value: ModelSignal<any> = model<any>(undefined)\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [ CommonModule, IonicModule ],\r\n selector: 'loading',\r\n templateUrl: './loading.component.html',\r\n styleUrls: ['./loading.component.scss'],\r\n})\r\nexport class LoadingComponent implements OnInit {\r\n\r\n /** Texto exibido */\r\n @Input() text : string = \"Carregando, por favor aguarde...\";\r\n /** Tipo do loading\r\n * 1 - Componente basico - h-16 de altura \r\n * 2 - Componente basico - h-16 de altura \r\n * 3 - Componente absoluto, preenche o elemento superior relativo\r\n */\r\n @Input() type : 1 | 2 | 3 = 1;\r\n /** Utilizado no tipo 3, quando inativo é hidden */\r\n @Input() loading : boolean = true;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {}\r\n\r\n}\r\n","@switch (type) {\r\n @case (1) {\r\n <div class=\"w-full text-center h-16 flex items-center justify-center\">\r\n <div class=\"flex items-center justify-center\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n @if(text){\r\n <span>{{text}}</span>\r\n }\r\n </div>\r\n }\r\n @case (2) {\r\n <div class=\"w-full text-center h-16 flex items-center justify-center\">\r\n <div class=\"flex items-center justify-center\">\r\n <ion-spinner></ion-spinner> \r\n @if (text) {\r\n <span class=\"ml-3\">{{text}}</span>\r\n }\r\n </div>\r\n </div>\r\n }\r\n @case (3) {\r\n <div class=\"absolute top-0 left-0 size-full opacity-0 -z-50 default-transition -translate-y-12 flex items-center justify-center !translucid-background\" \r\n [ngClass]=\"{'!z-20 !opacity-100 !translate-y-0': loading}\">\r\n <loading [type]=\"2\" [text]=\"text\"></loading> \r\n </div>\r\n }\r\n}","import { Observable, firstValueFrom } from 'rxjs';\r\nimport { NavController } from '@ionic/angular';\r\nimport { Preferences } from '@capacitor/preferences';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { jwtDecode } from 'jwt-decode';\r\n\r\nimport { ApiUrlProviderService } from '../services/web/api-url-provider.service';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { Utils } from './utils.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private navController: NavController,\r\n private coreService: EnvironmentService,\r\n private apiUrlProviderService: ApiUrlProviderService \r\n ) {\r\n this.SetToken();\r\n }\r\n\r\n private localUserKey : string = this.coreService.environment.applicationName.toUpperCase() + \"_USER_KEY\";\r\n private localAdminKey : string = this.coreService.environment.applicationName.toUpperCase() + \"_ADMIN_KEY\";\r\n public currentToken: string | null = null;\r\n\r\n async SetToken(): Promise<void> {\r\n const Token = await this.LoadToken();\r\n const TokenAdmin = await this.LoadTokenAdmin();\r\n if(this.isTokenValid(Token)){\r\n this.currentToken = await this.JWToken();\r\n }\r\n\r\n if(TokenAdmin && this.isTokenValid(TokenAdmin)){\r\n this._isAdmin = true;\r\n }\r\n\r\n return;\r\n }\r\n\r\n async Loggout(): Promise<void> {\r\n await Preferences.remove({ key: this.localUserKey });\r\n await Preferences.remove({ key: this.localAdminKey });\r\n this.currentToken = null;\r\n this.navController.navigateRoot(\"login\");\r\n }\r\n \r\n _isAdmin: boolean = false;\r\n get isAdmin(){ return this._isAdmin; }\r\n\r\n async Login(credentials: Authentication): Promise<any> {\r\n try{\r\n const JWToken = await firstValueFrom(this.ApiLogin(credentials));\r\n await this.SaveToken(JWToken);\r\n await this.SetToken();\r\n return (jwtDecode(JWToken));\r\n }\r\n catch (Error){\r\n throw Error;\r\n }\r\n }\r\n\r\n async BypassLogin(id: number): Promise<any> {\r\n try{\r\n const JWToken = await firstValueFrom(this.ApiBypassLogin(id));\r\n await this.SaveToken(JWToken);\r\n await this.SetToken();\r\n return (jwtDecode(JWToken));\r\n }\r\n catch (Error){\r\n throw Error;\r\n }\r\n }\r\n\r\n ApiLogin(credentials: Authentication): Observable<string> {\r\n return this.http.post<string>(this.apiUrlProviderService.apiUrl + 'auth', credentials);\r\n }\r\n ApiBypassLogin(id: number): Observable<string> {\r\n return this.http.get<string>(this.apiUrlProviderService.apiUrl + `auth/${id}`);\r\n }\r\n\r\n async SaveToken(JWToken: string): Promise<void>{\r\n if((jwtDecode(JWToken) as Token).id == 1){ \r\n await Preferences.set({ key: this.localAdminKey, value: JWToken});\r\n }\r\n await Preferences.set({ key: this.localUserKey, value: JWToken })\r\n }\r\n\r\n async LoadToken(): Promise<Token | null | any> {\r\n const JWToken = (await Preferences.get({ key: this.localUserKey})).value;\r\n if(JWToken){\r\n const ParsedObject = jwtDecode(JWToken);\r\n return ParsedObject;\r\n }else{\r\n return null;\r\n }\r\n }\r\n async LoadTokenAdmin(): Promise<Token | null | any> {\r\n const JWToken = (await Preferences.get({ key: this.localAdminKey})).value;\r\n if(JWToken){\r\n const ParsedObject = jwtDecode(JWToken);\r\n return ParsedObject;\r\n }else{\r\n return null;\r\n }\r\n }\r\n\r\n async JWToken(): Promise<string> {\r\n const JWToken: string = (await Preferences.get({ key: this.localUserKey })).value;\r\n return JWToken;\r\n }\r\n\r\n async GetBearer(): Promise<string>{\r\n return `Bearer ${await this.JWToken()}`\r\n }\r\n\r\n public isTokenValid(Token: any): boolean{\r\n if(!Token){ return false; }else\r\n return !(Utils.UNIXToDate(Token.exp) < new Date())\r\n }\r\n}\r\n\r\nclass Authentication{\r\n public Apelido: string = null;\r\n public Senha : string = null;\r\n}\r\n\r\nclass Token {\r\n [prop: string]: any;\r\n Acesso : number = 0;\r\n Apelido : string = \"\";\r\n Nome : string = \"\";\r\n id : number = 0;\r\n idEmpresa: number = 0;\r\n \r\n constructor(){}\r\n \r\n patch(token: Token | any): void{\r\n for(let prop of Object.getOwnPropertyNames(token)){\r\n if(Number((token[prop]))){\r\n this[prop] = Number(token[prop]); \r\n continue;\r\n }\r\n this[prop] = token[prop];\r\n }\r\n }\r\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, from, switchMap } from 'rxjs';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { ApiUrlProviderService } from '../services/web/api-url-provider.service';\r\nimport { AuthService } from '../services/auth.service';\r\n\r\n@Pipe({\r\n name: 'secure',\r\n standalone: true,\r\n})\r\nexport class SecurePipe implements PipeTransform {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private auth: AuthService,\r\n private apiUrlProviderService: ApiUrlProviderService\r\n ) {}\r\n\r\n transform(src: string): Observable<string> | Promise<string> {\r\n if(src.startsWith(this.apiUrlProviderService.apiUrl)){\r\n // Convert the Promise to an Observable and chain the HTTP request\r\n return from(this.auth.LoadToken())\r\n .pipe(\r\n switchMap((Bearer: string) => {\r\n const headers = new HttpHeaders({ 'Authorization': `Bearer ${Bearer}` });\r\n return this.http.get(src, { headers, responseType: 'blob' });\r\n }),\r\n switchMap((blob: Blob) => {\r\n const url = URL.createObjectURL(blob);\r\n return from(Promise.resolve(url));\r\n })\r\n );\r\n }\r\n else{\r\n return Promise.resolve(src);\r\n }\r\n }\r\n}","import { Component, computed, effect, input, Input, InputSignal, OnInit, Signal } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\nimport { ApiUrlProviderService } from '../../services/web/api-url-provider.service';\r\nimport { LoadingComponent } from '../loading/loading.component';\r\nimport { SecurePipe } from '../../pipes/secure.pipe';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [IonicModule, CommonModule, LoadingComponent, SecurePipe],\r\n selector: 'image',\r\n templateUrl: './image.component.html',\r\n styleUrls: ['./image.component.scss'],\r\n})\r\nexport class ImageComponent implements OnInit {\r\n\r\n /** Tipo de prenchimento e borda do objeto */\r\n @Input() fill: 'clear'| 'outline' | 'solid' = 'outline';\r\n /** Tipo de prenchimento da imagem */\r\n @Input() object: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down' = 'contain';\r\n\r\n ClassFill: string;\r\n SetClassFill(): void{\r\n switch(this.fill){\r\n case('clear'):{\r\n this.ClassFill = ''\r\n break;\r\n }\r\n case('outline'):{\r\n this.ClassFill = 'p-2 translucid-border rounded-2xl'\r\n break;\r\n }\r\n case('solid'):{\r\n this.ClassFill = 'p-2 translucid-border bg-medium/10 rounded-2xl'\r\n break;\r\n }\r\n }\r\n }\r\n ClassObject: string\r\n SetClassObject(): void{\r\n switch(this.object){\r\n case('contain'):{\r\n this.ClassFill = 'object-contain'\r\n break;\r\n }\r\n case('cover'):{\r\n this.ClassFill = 'object-cover'\r\n break;\r\n }\r\n case('fill'):{\r\n this.ClassFill = 'object-fill'\r\n break;\r\n }\r\n case('none'):{\r\n this.ClassFill = 'object-none'\r\n break;\r\n }\r\n case('scale-down'):{\r\n this.ClassFill = 'object-scale-down'\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /** Link */\r\n src: InputSignal<string | null> = input<string | null>();\r\n _src: Signal<string> = computed(() => { \r\n if(this.src()?.startsWith(\"http\")){\r\n return this.src();\r\n }\r\n else\r\n if(this.src()?.startsWith('assets')){\r\n return window.origin + '/' + this.src()\r\n }\r\n else{\r\n return this.apiUrlProviderService.apiUrl + this.src()\r\n }\r\n });\r\n\r\n err: boolean = false;\r\n loading: boolean = false;\r\n\r\n constructor(\r\n public apiUrlProviderService: ApiUrlProviderService\r\n ) { \r\n effect(() => {\r\n this.err = !this.src();\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.SetClassFill();\r\n }\r\n}\r\n","@if (!err && _src()) {\r\n <div class=\"animated-from-top flex items-center justify-center relative overflow-hidden size-full {{ClassObject}} {{ClassFill}}\" >\r\n <loading class=\"!text-sm\" [loading]=\"loading\" [type]=\"3\" text=\"\"></loading>\r\n <ion-img \r\n class=\"-translate-y-12 opacity-0 default-transition animated-from-top object-contain size-full\" \r\n [ngClass]=\"{'opacity-100 translate-y-0': !loading }\"\r\n [src]=\"src() ? (_src() | secure | async) : null\" \r\n (ionImgWillLoad)=\"loading = true\"\r\n (ionError)=\"loading = false; err = true\"\r\n (ionImgDidLoad)=\"loading = false;\"\r\n ></ion-img>\r\n </div>\r\n}@else {\r\n <div class=\"animated-from-top flex items-center justify-center size-full {{ClassObject}} {{ClassFill}}\">\r\n <ion-icon class=\"text-xl\" name=\"image\" color=\"dark\"></ion-icon>\r\n </div>\r\n}","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ICarouselItem } from '../i-carousel-item.component';\r\n\r\n@Component({\r\n selector: 'carousel-image',\r\n templateUrl: './carousel-image.component.html',\r\n styleUrls: ['./carousel-image.component.scss'],\r\n providers: [{ provide: ICarouselItem, useExisting: CarouselImageComponent }],\r\n})\r\nexport class CarouselImageComponent extends ICarouselItem implements OnInit {\r\n @Input() src: string; \r\n constructor() { super(); }\r\n\r\n ngOnInit() {}\r\n}","<image class=\"absolute top-0 left-0 block size-full default-transition rounded-xl\" fill=\"clear\" \r\n [ngClass]=\"{'opacity-20 -translate-x-full': carouselIndex() > index(), 'opacity-20 translate-x-full': carouselIndex() < index() }\" \r\n [src]=\"src\"\r\n></image>","import { Component, OnInit } from '@angular/core';\r\nimport { ICarouselItem } from '../i-carousel-item.component';\r\n\r\n@Component({\r\n selector: 'carousel-item',\r\n templateUrl: './carousel-item.component.html',\r\n styleUrls: ['./carousel-item.component.scss'],\r\n providers: [{ provide: ICarouselItem, useExisting: CarouselItemComponent }],\r\n})\r\nexport class CarouselItemComponent extends ICarouselItem implements OnInit {\r\n constructor() { super(); }\r\n\r\n ngOnInit() {}\r\n}","<div class=\"absolute top-0 left-0 size-full default-transition rounded-xl\" [ngClass]=\"{'opacity-20 -translate-x-full': carouselIndex() > index(), 'opacity-20 translate-x-full': carouselIndex() < index() }\">\r\n <ng-content></ng-content>\r\n</div>","import { AfterContentInit, Component, contentChildren, ContentChildren, effect, forwardRef, input, InputSignal, output, OutputEmitterRef, QueryList, signal, Signal, WritableSignal } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ICarouselItem } from './i-carousel-item.component';\r\n\r\n@Component({\r\n selector: 'carousel',\r\n templateUrl: './carousel.component.html',\r\n styleUrls: ['./carousel.component.scss'],\r\n providers: [{ provide : NG_VALUE_ACCESSOR, \r\n useExisting: forwardRef(() => CarouselComponent),\r\n multi: true \r\n }]\r\n})\r\nexport class CarouselComponent implements AfterContentInit, ControlValueAccessor {\r\n\r\n @ContentChildren(ICarouselItem) components: QueryList<ICarouselItem>;\r\n lst: Signal<readonly ICarouselItem[]> = contentChildren(ICarouselItem);\r\n \r\n value: InputSignal<any> = input<any>();\r\n constructor() {\r\n effect(() => {\r\n if(this.value()){\r\n this._model = this.value();\r\n this.index.set(this.lst().find(p => p.value() == this.value())?.index())\r\n }\r\n else{\r\n if(this.lst().length){\r\n this.model = this.lst()[0].value();\r\n }\r\n }\r\n this.UpdateIndex();\r\n\r\n }, { allowSignalWrites: true });\r\n }\r\n\r\n index: WritableSignal<number> = signal<number>(0);\r\n\r\n ngAfterContentInit() {\r\n this.UpdateIndex();\r\n }\r\n\r\n UpdateIndex(): void{\r\n const lst = this.lst();\r\n for(let carouselItem of lst){\r\n carouselItem.index.set(lst.indexOf(carouselItem));\r\n carouselItem.carouselIndex = this.index;\r\n }\r\n }\r\n SetIndex(index: number){\r\n this.index.set(index);\r\n this.UpdateModel();\r\n }\r\n IndexUp(){\r\n this.index.set(this.index() + 1);\r\n this.UpdateModel();\r\n }\r\n IndexDown(){\r\n this.index.set(this.index() - 1);\r\n this.UpdateModel();\r\n }\r\n UpdateModel(){\r\n this.model = this.lst().find(p => p.index() == this.index())?.value();\r\n }\r\n\r\n protected _model: any | null = null;\r\n get model(): any { return this._model; }\r\n set model(value: any) { this._model = value; this.propagateChange(this._model); }\r\n \r\n\r\n writeValue(value: string){ this.model = value; }\r\n\r\n //[ ControlValueAccessor ]\r\n /** Acionado quando um elemento perde o foco. */\r\n blur : OutputEmitterRef<any> = output<any>();\r\n /** Emitido quando o valor é alterado. */\r\n change: OutputEmitterRef<any> = output<any>();\r\n propagateChange(obj: any): void{ this.onChange(obj); this.change.emit(obj);; }\r\n\r\n onChange: (value: any) => void = (v: any) => { return; }\r\n onTouch : (value: any) => void = (v: any) => { return; }\r\n registerOnChange (fn: (value: any) => void ){ this.onChange = fn }\r\n registerOnTouched(fn: (value: any) => void ){ this.onTouch = fn }\r\n}\r\n","<ion-card class=\"size-full m-0\">\r\n <ion-card-content class=\"size-full p-0 relative\">\r\n <ng-content></ng-content>\r\n\r\n <ion-button color=\"dark\" size=\"small\" class=\"absolute backdrop-blur-sm w-3 h-10 top-0 bottom-0 my-auto left-0 ml-2 default-transition\" [disabled]=\"index() == 0\" [ngClass]=\"{'opacity-0': index() == 0}\" style=\"--border-radius: .5rem;\" (click)=\"IndexDown()\">\r\n <ion-icon slot=\"icon-only\" name=\"chevron-back\"></ion-icon>\r\n </ion-button>\r\n <ion-button color=\"dark\" size=\"small\" class=\"absolute backdrop-blur-sm w-3 h-10 top-0 bottom-0 my-auto right-0 mr-2 default-transition\" [disabled]=\" index() >= lst().length - 1\" [ngClass]=\"{'opacity-0': index() >= lst().length - 1}\" style=\"--border-radius: .5rem;\" (click)=\"IndexUp()\">\r\n <ion-icon slot=\"icon-only\" name=\"chevron-forward\"></ion-icon>\r\n </ion-button>\r\n\r\n @if(lst().length){\r\n <div class=\"absolute left-0 bottom-0 h-8 w-full flex items-center justify-center\">\r\n <div class=\"bg-dark/50 h-3 rounded-full flex items-center justify-center default-transition gap-0.5 p-0.5\">\r\n @for (item of lst(); track $index) {\r\n <div class=\"bg-light cursor-pointer border border-light/40 h-full aspect-square rounded-full backdrop-blur-sm default-transition\" (click)=\"SetIndex($index)\" [ngClass]=\"{'bg-dark': $index != index()}\"></div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </ion-card-content>\r\n</ion-card>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CarouselComponent } from './carousel.component';\r\nimport { CarouselImageComponent } from './carousel-image/carousel-image.component';\r\nimport { CarouselItemComponent } from './carousel-item/carousel-item.component';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { ImageComponent } from '../image/image.component';\r\n\r\nconst lstComponents = [ CarouselComponent, CarouselImageComponent, CarouselItemComponent ]\r\n\r\n@NgModule({\r\n declarations: [...lstComponents],\r\n exports : [...lstComponents],\r\n imports: [\r\n CommonModule,\r\n IonicModule,\r\n ImageComponent\r\n ]\r\n})\r\nexport class CarouselModule { }\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\n\r\n/** Bloqueia o conteudo na div que é aplicada\r\n * O elemento superior NÃO deve ter posicionamento INSET\r\n */\r\n@Component({\r\n standalone: true,\r\n imports: [ CommonModule ],\r\n selector: 'content-block',\r\n templateUrl: './content-block.component.html',\r\n styleUrls: ['./content-block.component.scss'],\r\n})\r\nexport class ContentBlockComponent implements OnInit {\r\n\r\n /** Texto a ser exibido */\r\n @Input() text : string = \"Carregando, por favor aguarde...\";\r\n /** Define se o conteudo é bloqueado ou não */\r\n @Input() value: boolean = true;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {}\r\n\r\n}\r\n","<div class=\"absolute top-0 left-0 size-full opacity-0 -z-50 default-transition -translate-y-12 flex items-center justify-center !translucid-background\" \r\n [ngClass]=\"{'!z-20 !opacity-100 !translate-y-0': value}\">\r\n <div class=\"w-full text-center h-16 flex items-center justify-center\">\r\n {{text}}\r\n </div>\r\n</div>","import { Component, Output, Input, EventEmitter, HostListener } from '@angular/core';\r\nimport { IonSearchbar } from '@ionic/angular';\r\n\r\nimport { EnvironmentService } from '../../../../services/environment.service';\r\nimport { PageOption } from '../../../../classes/page-option';\r\n\r\n/** Componente de cabeçalho de listagem padrão */\r\n@Component({\r\n selector: 'header-list',\r\n templateUrl: './header-list.component.html',\r\n styleUrls: ['./header-list.component.scss'],\r\n})\r\nexport class HeaderListComponent {\r\n\r\n /** Número de páginas máximo (usando two way data binding) */\r\n @Input() limit: number | null;\r\n @Output() limitChange: EventEmitter<number | null> = new EventEmitter<number | null>();\r\n\r\n /** Valor da pagina, setado = 1 quando troca-se o valor de limite de paginas (usando two way data binding) */\r\n @Input() page: number;\r\n @Output() pageChange: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n /** Campo de pesquisa (usando two way data binding) */\r\n @Input() search: string | null;\r\n @Output() searchChange: EventEmitter<string | null> = new EventEmitter<string | null>();\r\n \r\n @Input() loading: boolean;\r\n\r\n /** Evento de refersh\r\n * Emitido em:\r\n * - Troca de página\r\n * - Pesquisa\r\n */\r\n @Output('refresh') refreshEmitter: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n /** Link a ser acessado no click do botão NOVO */\r\n @Input() link : string = \"view\";\r\n\r\n /** Remove o botão NOVO */\r\n @Input() noNew: boolean = false;\r\n /** Remove o select de paginas */\r\n @Input() noPage: boolean = false;\r\n /** Remove o elemento de pesquisa */\r\n @Input() noSearch: boolean = false;\r\n \r\n\r\n /** Desabilita o redirect de novo em um botão para ser utilizado com [onNewEmitter] */\r\n @Input() overrideNew: boolean = false;\r\n /** Evento quando o botáo NOVO é clickado */\r\n @Output('onNew') onNewEmitter: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n onNew(): void{\r\n this.onNewEmitter.emit();\r\n }\r\n\r\n constructor(private environmentService: EnvironmentService) { \r\n this.lstLimits = environmentService.environment.defaultPageLimits;\r\n this.limit = this.lstLimits[0].value\r\n }\r\n\r\n lstLimits: PageOption[] = []\r\n EmitSearch(): void{\r\n this.searchChange.emit(this.search);\r\n this.EmitChange();\r\n }\r\n\r\n EmitLimit(): void{\r\n this.limitChange.emit(this.limit);\r\n this.pageChange.emit(1);\r\n \r\n this.EmitChange();\r\n }\r\n\r\n EmitChange(){\r\n this.refreshEmitter.emit();\r\n }\r\n\r\n @HostListener('window:keydown',['$event'])\r\n onKeyPress($event: KeyboardEvent) {\r\n if(($event.ctrlKey || $event.metaKey) && ($event.key == 'F' || $event.key == 'f')){\r\n (document.getElementById(\"list_search\") as any as IonSearchbar).setFocus();\r\n $event.preventDefault();\r\n }\r\n }\r\n}","<div class=\"flex flex-wrap w-full gap-2\">\r\n @if (!noPage) {\r\n <div class=\"portrait:basis-[calc(50%-0.25rem)] landscape:w-48 portrait:order-1\">\r\n <ion-item class=\"rounded-2xl w-full h-full translucid-border\" lines=\"full\" style=\"--border-radius: 1rem !important; --background: transparent\" >\r\n <ion-select [disabled]=\"loading\" [(ngModel)]=\"limit\" (ionChange)=\"EmitLimit()\" interface=\"popover\">\r\n @for (limit of lstLimits; track limit) {\r\n <ion-select-option [value]=\"limit.value\">{{limit.label}}</ion-select-option>\r\n }\r\n </ion-select>\r\n </ion-item>\r\n </div>\r\n }\r\n \r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n\r\n @if(!noSearch) {\r\n <div class=\"portrait:basis-full portrait:order-3 grow flex items-center justify-center\">\r\n <ion-searchbar class=\"w-full min-h-0 p-0 m-0\" [debounce]=\"500\" [(ngModel)]=\"search\" (ionInput)=\"this.EmitSearch()\" [animated]=\"true\" placeholder=\"Pesquisar...\"></ion-searchbar>\r\n </div>\r\n }\r\n\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n @if(!noNew){\r\n <div class=\"portrait:basis-[calc(50%-0.25rem)] landscape:basis-24 portrait:order-2\">\r\n <ion-button [routerLink]=\"overrideNew ? null : [link]\" (click)=\"onNew()\" class=\"size-full m-0 rounded-2xl text-base\" size=\"small\" fill=\"clear\">\r\n <ion-icon name=\"add\" slot=\"start\"></ion-icon>\r\n <ion-text class=\"text-base\">Novo</ion-text>\r\n </ion-button>\r\n </div>\r\n }\r\n</div>","\r\nimport { Component, effect, ElementRef, EventEmitter, Input, model, ModelSignal, OnInit, Output } from '@angular/core';\r\nimport { RefresherCustomEvent } from \"@ionic/angular\";\r\nimport { Observable, firstValueFrom } from \"rxjs\";\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { CompileLstTableField, Comparison } from \"../../../classes/comparison/comparison\";\r\nimport { HttpService, ViewRetorno } from '../../../services/web/http.service';\r\nimport { GenericService } from \"../../../services/generic.service\";\r\nimport { ViewFiltros } from \"../../../classes/filters/view-filtros\";\r\nimport { TableField } from \"../../../classes/inputs/table-field\";\r\nimport { RouteData } from \"../../../classes/routes/route-data\";\r\nimport { LongProperty } from '../../../classes/comparison/properties/long-property';\r\n\r\n//Classe de listagem, implemente carregamento e filtragem de dados\r\n@Component({ template: '', styles: '' })\r\nexport abstract class List<T extends HttpService<V>, V = any> implements OnInit {\r\n\r\n protected genericService: GenericService;\r\n protected activatedRoute: ActivatedRoute;\r\n protected elementRef: ElementRef;\r\n @Input() service: T;\r\n\r\n constructor() { \r\n effect(() => {\r\n this.SetFilters();\r\n });\r\n }\r\n \r\n /** @optional Filtro a ser aplicado na busca da listagem na API */\r\n preloadFilter: ModelSignal<Comparison[]> = model<Comparison[]>([]); \r\n \r\n //TODO FIX https://stackoverflow.com/a/73761805 \r\n /** End-point de carregamento de dados. Deve ser uma função no service aplicado */\r\n @Input() loadFrom: (view: ViewFiltros) => Observable<ViewRetorno>;\r\n\r\n\r\n lstDados: V[] = [];\r\n total : number;\r\n nested : boolean = false;\r\n loading : boolean = true;\r\n \r\n originalFilters: Comparison[] = [];\r\n\r\n /** Filtro précarregado */\r\n @Input() frm: ViewFiltros = new ViewFiltros();\r\n\r\n /** Lista de campos a serem substituídos pelo padrão, armazenado no service enviado como parâmetro */\r\n @Input() lstTableFields: TableField[] = [];\r\n\r\n async ngOnInit(): Promise<void> {\r\n this.originalFilters = this.frm.filter;\r\n\r\n if(this.lstTableFields.length == 0){\r\n this.lstTableFields = this.service.lstTableFields;\r\n }\r\n if(!this.service.route){ console.warn(\"[ Warning! ] [ Url is undefined ]\")}\r\n if(!this.service.title){ console.warn(\"[ Warning! ] [ titulo is undefined ]\")}\r\n \r\n //[ Nested element ]\r\n if(this.elementRef.nativeElement.parentElement){\r\n this.nested = (this.elementRef.nativeElement.parentElement.tagName as string).toUpperCase() != \"ION-CONTENT\";\r\n }else{\r\n this.nested = true;\r\n }\r\n\r\n await this.SetFilters();\r\n if(this.nested){ this.Refresh(); }\r\n }\r\n\r\n /** Carrega os filtros pré-carregados e os filtros compilados */\r\n protected async SetFilters(): Promise<void>{\r\n await this.LoadIdComparison();\r\n const compiled = CompileLstTableField(this.lstTableFields);\r\n const preloadFilter = this.preloadFilter();\r\n // Adiciona os filtros pré-carregados, os filtros compilados e os filtros originais e remove os nulos\r\n this.frm.filter = [...preloadFilter, ...compiled, ...this.originalFilters].filter(p => p);\r\n }\r\n\r\n async LoadIdComparison(): Promise<void>{\r\n try{\r\n const data: RouteData = (await firstValueFrom(this.activatedRoute.data)) as RouteData;\r\n\r\n const id = this.genericService.GetId(this.activatedRoute, data.idPreloaderConfiguration.routeDepth);\r\n var index: number = this.lstTableFields.indexOf(this.lstTableFields.find(p => p.index == data.idPreloaderConfiguration.propertyName));\r\n const filter: Comparison = new LongProperty(data.idPreloaderConfiguration.propertyName).Equals(id);\r\n\r\n filter.value = id;\r\n filter.disableChange = data.idPreloaderConfiguration.disableChange;\r\n this.lstTableFields[index].filter = [filter];\r\n }finally{ \r\n return;\r\n }\r\n }\r\n\r\n @Output('WillRefresh') WillRefresh: EventEmitter<void> = new EventEmitter<void>();\r\n @Output('DidRefresh') DidRefresh: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n async Refresh(event?: RefresherCustomEvent): Promise<void> {\r\n this.WillRefresh.emit();\r\n this.loading = true;\r\n try{\r\n await this.Load();\r\n }\r\n finally{ }\r\n \r\n if(event){ event.target.complete(); }\r\n this.loading = false;\r\n this.DidRefresh.emit();\r\n }\r\n \r\n async Load(): Promise<void>{\r\n var vRetorno: ViewRetorno;\r\n\r\n try{\r\n if(this.loadFrom){\r\n vRetorno = await firstValueFrom(this.service[this.loadFrom.name](this.frm));\r\n }\r\n else{\r\n vRetorno = await firstValueFrom(this.service.List(this.frm));\r\n }\r\n this.lstDados = vRetorno.lstDados; \r\n this.total = vRetorno.total; \r\n } finally{ }\r\n return;\r\n }\r\n}","export enum TelefoneCelular {\r\n 'Tel' = 'Tel',\r\n 'Cel' = 'Cel',\r\n 'TelCel' = 'TelCel',\r\n} \r\nexport class InputTelefoneCelularConfiguration {\r\n constructor(public type: TelefoneCelular = TelefoneCelular.TelCel){}\r\n}","import { forwardRef, Provider } from \"@angular/core\";\r\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\n\r\nexport class InputProviderFactory{\r\n static GetProviders(component: unknown): Provider[] {\r\n return [ {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => component),\r\n multi: true,\r\n } ]\r\n }\r\n}","import { Component, ElementRef, Input, InputSignal, OnInit, OutputEmitterRef, ViewChild, WritableSignal, effect, inject, input, model, output, signal } from \"@angular/core\";\r\nimport { AbstractControl, ControlContainer, ControlEvent, ControlValueAccessor, ValidationErrors, Validator, Validators } from \"@angular/forms\";\r\nimport { InputProviderFactory } from \"./input-provider-factory\";\r\n\r\n@Component({ \r\n template: '', \r\n providers: [\r\n ...InputProviderFactory.GetProviders(CustomInput)\r\n ] \r\n})\r\nexport abstract class CustomInput<T> implements ControlValueAccessor, OnInit{\r\n\r\n /** Exibe o spinner de carregamento */\r\n loading: WritableSignal<boolean> = model(false);\r\n /** Se ativo desabilita o Input */\r\n disabled: WritableSignal<boolean> = model(false);\r\n /** Indica se o formulário foi enviado */\r\n submitted: WritableSignal<boolean> = model(false);\r\n /** Titulo do Input */\r\n label: InputSignal<string> = input<string>(\"Label\");\r\n\r\n /** Torna o input obrigatorio */\r\n required: WritableSignal<boolean> = model<boolean>(false)\r\n \r\n abstract writeValue(obj: T): void | Promise<void>;\r\n abstract setFocus(event: MouseEvent | null): void;\r\n\r\n //[ Value ]\r\n \r\n value: WritableSignal<T | undefined> = signal<T | undefined>(undefined);\r\n\r\n /** @virtual */\r\n SetValue(obj: T): void {\r\n this.value.set(obj); \r\n this.runValidation();\r\n this.propagateChange(obj); \r\n }\r\n // /** @virtual */\r\n // GetValue(): T | undefined { return this.value; }\r\n\r\n //[ Handle Form / NgModel ]\r\n @Input() formControlName : string;\r\n public controlContainer: ControlContainer;\r\n @Input('formControl') \r\n public control : AbstractControl;\r\n protected elementRef : ElementRef;\r\n\r\n constructor(){\r\n try {\r\n this.controlContainer = inject(ControlContainer);\r\n } catch {}\r\n effect(() => { \r\n if(this.control){ this.invalid = this.control.invalid; }\r\n });\r\n }\r\n\r\n /** @virtual */\r\n ngOnInit(): void | Promise<void> {\r\n if(!this.control && this.controlContainer && this.formControlName){ \r\n this.control = this.controlContainer.control.get(this.formControlName); \r\n }\r\n \r\n if(this.control){ \r\n this.required.set(this.control.hasValidator(Validators.required)); \r\n this.invalid = this.control.invalid;\r\n\r\n this.control.events.subscribe({ next: (event) => { this.runValidation(); } });\r\n }\r\n }\r\n\r\n protected runValidation(): void{\r\n if(this.control){\r\n this.required.set(this.control.hasValidator(Validators.required)); \r\n this.invalid = this.control.invalid;\r\n }\r\n else{\r\n this.invalid = !this.value() && this.required();\r\n }\r\n }\r\n \r\n protected invalid: boolean = false;\r\n\r\n //[ ControlValueAccessor ]\r\n /** Acionado quando um elemento perde o foco. */\r\n blur : OutputEmitterRef<FocusEvent> = output<FocusEvent>();\r\n /** Emitido quando o valor é alterado. */\r\n change: OutputEmitterRef<T> = output<T>();\r\n propagateChange(obj: T): void{ this.onChange(obj); this.change.emit(obj);; }\r\n\r\n onChange: (value: T) => void = (value: T) => { return; }\r\n onTouch : (value: T) => void = (value: T) => { return; }\r\n registerOnChange (fn: (value: T) => void ){ this.onChange = fn }\r\n registerOnTouched(fn: (value: T) => void ){ this.onTouch = fn }\r\n}","import { Component, ElementRef, forwardRef, model, ModelSignal, OnInit, ViewChild } from '@angular/core';\r\nimport { MaskitoMaskExpression, MaskitoOptions, maskitoTransform } from '@maskito/core';\r\nimport { maskitoPhoneOptionsGenerator } from '@maskito/phone';\r\nimport metadata from 'libphonenumber-js/min/metadata';\r\n\r\nimport { InputTelefoneCelularConfiguration } from './input-telefone.configuration';\r\nimport { InputProviderFactory } from '../input-provider-factory';\r\nimport { TelefoneCelular } from './input-telefone.configuration';\r\nimport { CustomInput } from '../custom-input';\r\n\r\n@Component({\r\n selector: 'input-telefone, input-celular, input-telefone-celular',\r\n templateUrl: './input-telefone.component.html',\r\n styleUrls: ['./input-telefone.component.scss', '../inputs.scss'],\r\n providers: [\r\n ...InputProviderFactory.GetProviders(InputTelefoneComponent),\r\n { provide: CustomInput, useExisting: forwardRef(() => InputTelefoneComponent) },\r\n ],\r\n})\r\nexport class InputTelefoneComponent extends CustomInput<string> {\r\n configuration: ModelSignal<InputTelefoneCelularConfiguration> = model<InputTelefoneCelularConfiguration>(new InputTelefoneCelularConfiguration());\r\n\r\n @ViewChild('input') input: ElementRef<HTMLInputElement>;\r\n @ViewChild('inputContainer') inputContainer: ElementRef<HTMLDivElement>;\r\n override setFocus(event: MouseEvent | null): void {\r\n if(this.input && (event == null || event.target == this.inputContainer.nativeElement)) { this.input.nativeElement.focus(); } \r\n }\r\n\r\n constructor(\r\n protected override elementRef: ElementRef<HTMLInputElement>\r\n ) { \r\n super(); \r\n if(this.elementRef.nativeElement.tagName.toLowerCase() == 'input-cpf-cnpj'){\r\n this.configuration.set(new InputTelefoneCelularConfiguration());\r\n }else{\r\n const selector: string = this.elementRef.nativeElement.tagName.toLowerCase().split('-')[1];\r\n if(selector == 'celular' ){ this.configuration.set(new InputTelefoneCelularConfiguration(TelefoneCelular.Cel)) } else\r\n if(selector == 'telefone'){ this.configuration.set(new InputTelefoneCelularConfiguration(TelefoneCelular.TelCel)) } \r\n }\r\n this.value.set('+55');\r\n }\r\n\r\n override writeValue(obj: string): void | Promise<void> {\r\n this.value.set(obj);\r\n this.runValidation();\r\n }\r\n\r\n override SetValue(obj: string): void {\r\n this.value.set(obj);\r\n this.runValidation();\r\n this.propagateChange(obj.replaceAll('.', '').replaceAll('-', '').replaceAll(' ', ''));\r\n }\r\n\r\n readonly mask: MaskitoOptions = mask;\r\n}\r\nconst mask: MaskitoOptions = maskitoPhoneOptionsGenerator({\r\n metadata,\r\n strict: false,\r\n countryIsoCode: 'BR',\r\n});\r\nexport function FormatTelefoneCelular(value: string): string {\r\n return maskitoTransform(value, mask);\r\n}","<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n <input #input\r\n (focus)=\"!value() ? SetValue('+55') : null\"\r\n [ngModel]=\"value()\" \r\n [maskito]=\"mask\"\r\n inputmode=\"numeric\"\r\n [type]=\"'text'\" \r\n (ngModelChange)=\"SetValue($event)\"\r\n [disabled]=\"disabled() || loading()\"\r\n (blur)=\"blur.emit($event)\"\r\n />\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>","import { HttpClient, HttpEvent, HttpEventType, HttpResponse } from '@angular/common/http';\r\nimport { BehaviorSubject, Observable, lastValueFrom, map, filter } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { ApiUrlProviderService } from './api-url-provider.service';\r\nimport { GenericService } from '../generic.service';\r\nimport { Utils } from '../utils.service';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StorageService {\r\n\r\n constructor(\r\n private http : HttpClient,\r\n private apiUrlProviderService: ApiUrlProviderService,\r\n private genericService: GenericService\r\n ) { }\r\n\r\n private currentlyDownloading: Download[] = [];\r\n\r\n public GetProgress(file: string): number{\r\n const Download = this.currentlyDownloading.find(p => p.file == file)\r\n return Download ? Download.progress : 0;\r\n }\r\n\r\n public StartDownload(file: string, params?: any, post: boolean = false): Download {\r\n if(!this.currentlyDownloading.find(p => p.file == file)){\r\n const download = new Download(file);\r\n this.currentlyDownloading.push(download);\r\n this.HandleDownload(download, params, post);\r\n return download;\r\n }\r\n return this.currentlyDownloading.find(p => p.file == file);\r\n }\r\n\r\n private HandleDownload(download: Download, params?: any, post: boolean = false){\r\n var request: Observable<any> = this.GetFile(download.file, params, post);\r\n\r\n const requestProgess = new BehaviorSubject<any>(null);\r\n download.requestProgess = requestProgess;\r\n request.subscribe({\r\n next: (event) => {\r\n if (event.type === HttpEventType.DownloadProgress) { \r\n download.progress = event.loaded / event.total; \r\n requestProgess.next(download.progress);\r\n } else \r\n if (event.type === HttpEventType.Response) {\r\n DownloadFile(event, download.file);\r\n this.currentlyDownloading.splice(this.currentlyDownloading.indexOf(download), 1);\r\n requestProgess.complete(); \r\n }\r\n if(event.status == 404){\r\n this.genericService.PresentToast(\"Arquivo não encontrado / Url inválida\")\r\n requestProgess.error(event); \r\n requestProgess.complete(); \r\n }\r\n },\r\n error: (err) => {\r\n this.currentlyDownloading.splice(this.currentlyDownloading.indexOf(download), 1)\r\n }\r\n });\r\n return request;\r\n }\r\n\r\n public static SanitizeFileName(v: string): string{\r\n try{\r\n var filenameEnd: string = v.split('/').at(-1);\r\n \r\n if(filenameEnd.split('.').length <= 2){\r\n return filenameEnd;\r\n }else{\r\n var lst = filenameEnd.split('.');\r\n lst[0] = '';\r\n return lst.join('.').replace('.', '');\r\n }\r\n }catch{\r\n return v;\r\n }\r\n };\r\n\r\n public GetFile(fileUrl: string, params?: any, post: boolean = false): Observable<HttpEvent<Blob>> {\r\n var url: string;\r\n if(fileUrl[0] == '/'){ \r\n url = fileUrl.slice(1, fileUrl.length - 1);\r\n }else{\r\n url = `${this.apiUrlProviderService.apiUrl}${fileUrl}`;\r\n }\r\n url = encodeURI(url).replace(/#/g, '%23')\r\n\r\n if(!post){\r\n return this.http.get(url, {\r\n reportProgress: true,\r\n observe: 'events',\r\n responseType: 'blob',\r\n params: params\r\n });\r\n }else{\r\n return this.http.post(url, params, {\r\n reportProgress: true,\r\n observe: 'events',\r\n responseType: 'blob'\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * @param lstFiles \r\n * lista de arquivos a serem baixados \r\n * @param onUpdate \r\n * funcao chamada a cada progresso de download\r\n * @returns \r\n * lista de respostas dos arquivos, como promise, quando todos estiverem completos ou deram erro, é retornada\r\n */\r\n public async GetBlobBatchLiveResponse(lstFiles: string[], onUpdate: (totalProgress: number, lstResponse?: LiveResponse[], eventType?: HttpEventType) => void): Promise<LiveResponse[]> {\r\n if(!lstFiles || lstFiles.length === 0) {\r\n return Promise.resolve([]);\r\n }\r\n\r\n const lst: LiveResponse[] = lstFiles.map(p => ({\r\n path : p,\r\n observable: this.GetFile(p),\r\n progress : 0,\r\n success : undefined,\r\n blob : undefined\r\n }));\r\n\r\n const isAllComplete = () => lst.every(obs => obs.progress >= 1);\r\n const getTotalProgressAvg = () => lst.reduce((acc, obs) => acc + obs.progress, 0) / lst.length;\r\n\r\n return new Promise<LiveResponse[]>((resolve) => {\r\n for (const obs of lst) {\r\n obs.observable.subscribe({\r\n next: (event) => {\r\n if (event.type === HttpEventType.DownloadProgress) {\r\n obs.progress = event.loaded / event.total;\r\n onUpdate(getTotalProgressAvg(), lst, event.type);\r\n } \r\n else\r\n if (event.type === HttpEventType.Response) {\r\n obs.blob = new Blob([event.body], { type: event.body.type });\r\n obs.success = true;\r\n if(isAllComplete()){\r\n resolve(lst);\r\n }\r\n onUpdate(getTotalProgressAvg(), lst, event.type);\r\n }\r\n },\r\n error: (err) => {\r\n obs.success = false;\r\n obs.progress = 1;\r\n onUpdate(getTotalProgressAvg(), lst);\r\n if(isAllComplete()){\r\n resolve(lst);\r\n }\r\n }\r\n });\r\n }\r\n })\r\n }\r\n\r\n public async GetBlobLiveResponse(file: string, onUpdate?: (progress: number, response?: LiveResponse, eventType?: HttpEventType) => void): Promise<LiveResponse> {\r\n return (await this.GetBlobBatchLiveResponse([file], (totalProgress, lstResponse, eventType) => {\r\n onUpdate?.(totalProgress, lstResponse[0], eventType);\r\n }))[0];\r\n }\r\n}\r\n\r\nexport interface GetFileResponse{\r\n path: string;\r\n blob?: Blob;\r\n}\r\n\r\nexport interface LiveResponse{\r\n path: string;\r\n observable: Observable<HttpEvent<Blob>>;\r\n progress: number;\r\n blob?: Blob;\r\n success?: boolean;\r\n}\r\n\r\nexport class Download {\r\n requestProgess: Observable<any>;\r\n progress : number = 0.00001;\r\n constructor(public file: string){}\r\n}\r\n\r\nfunction DownloadFile(data: HttpResponse<Blob>, fileUrl) {\r\n const downloadedFile = new Blob([data.body], { type: data.body.type });\r\n\r\n var fileURL = URL.createObjectURL(downloadedFile);\r\n const linkElement = document.createElement(\"a\");\r\n linkElement.setAttribute(\"href\", fileURL);\r\n linkElement.setAttribute(\"target\", \"_blank\");\r\n linkElement.setAttribute(\"download\", StorageService.SanitizeFileName(fileUrl));\r\n\r\n let me = new MouseEvent(\"click\", {\r\n view: window,\r\n bubbles: true,\r\n cancelable: false,\r\n });\r\n\r\n linkElement.dispatchEvent(me);\r\n}","import { Component, ElementRef, forwardRef, model, ModelSignal, ViewChild } from '@angular/core';\r\nimport { MaskitoMaskExpression, MaskitoOptions, maskitoTransform } from '@maskito/core';\r\nimport { CustomInput } from '../custom-input';\r\nimport { InputCpfCnpjConfiguration } from './input-cpf-cnpj.configuration';\r\nimport { InputProviderFactory } from '../input-provider-factory';\r\n\r\n@Component({\r\n selector: 'input-cpf-cnpj, input-cpf, input-cnpj',\r\n templateUrl: './input-cpf-cnpj.component.html',\r\n styleUrls: ['./input-cpf-cnpj.component.scss', '../inputs.scss'],\r\n providers: [\r\n ...InputProviderFactory.GetProviders(InputCpfCnpjComponent),\r\n { provide: CustomInput, useExisting: forwardRef(() => InputCpfCnpjComponent) },\r\n ],\r\n})\r\nexport class InputCpfCnpjComponent extends CustomInput<string> {\r\n\r\n configuration: ModelSignal<InputCpfCnpjConfiguration> = model<InputCpfCnpjConfiguration>(new InputCpfCnpjConfiguration());\r\n\r\n @ViewChild('input') input: ElementRef<HTMLInputElement>;\r\n @ViewChild('inputContainer') inputContainer: ElementRef<HTMLDivElement>;\r\n override setFocus(event: MouseEvent | null): void {\r\n if(this.input && (event == null || event.target == this.inputContainer.nativeElement)) { this.input.nativeElement.focus(); } \r\n }\r\n\r\n constructor(\r\n protected override elementRef: ElementRef<HTMLInputElement>\r\n ) { \r\n super(); \r\n if(this.elementRef.nativeElement.tagName.toLowerCase() == 'input-cpf-cnpj'){\r\n this.configuration.set(new InputCpfCnpjConfiguration());\r\n }else{\r\n const selector: string = this.elementRef.nativeElement.tagName.toLowerCase().split('-')[1];\r\n if(selector == 'cpf' ){ this.configuration.set(new InputCpfCnpjConfiguration('CPF')) } else\r\n if(selector == 'cnpj'){ this.configuration.set(new InputCpfCnpjConfiguration('CNPJ')) } \r\n }\r\n }\r\n\r\n override writeValue(obj: string): void | Promise<void> {\r\n this.value.set(obj);\r\n this.runValidation();\r\n }\r\n \r\n override SetValue(obj: string): void {\r\n this.value.set(obj);\r\n this.runValidation();\r\n this.propagateChange(obj.replaceAll('.', '').replaceAll('-', '').replaceAll('/', ''));\r\n }\r\n\r\n\r\n readonly mask: MaskitoOptions = {\r\n mask: (elementState) => {\r\n if(this.configuration().type == 'CPFCNPJ'){\r\n if(!elementState.value){ \r\n return cpfMask;\r\n }else{\r\n if(elementState.value.includes('.')){\r\n if(elementState.value.length <= 14) { \r\n return cpfMask; \r\n }\r\n return cnpjMask;\r\n }else{\r\n if(elementState.value.length <= 11) { \r\n return cpfMask; \r\n }\r\n return cnpjMask;\r\n }\r\n }\r\n }\r\n if(this.configuration().type == 'CNPJ'){ return cnpjMask; }\r\n if(this.configuration().type == 'CPF' ){ return cpfMask; }\r\n },\r\n };\r\n}\r\n\r\nconst cpfMask : MaskitoMaskExpression = [ /\\d/, /\\d/, /\\d/, '.', /\\d/, /\\d/, /\\d/, '.', /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/ ];\r\nconst cnpjMask: MaskitoMaskExpression = [ /\\d/, /\\d/, '.', /\\d/, /\\d/, /\\d/, '.', /\\d/, /\\d/, /\\d/, '/', /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/];\r\nconst cpfCnpjMask: MaskitoOptions = {\r\n mask: (elementState) => {\r\n if(!elementState.value){ \r\n return cpfMask;\r\n }else{\r\n if(elementState.value.includes('.')){\r\n if(elementState.value.length <= 14) { \r\n return cpfMask; \r\n }\r\n return cnpjMask;\r\n }else{\r\n if(elementState.value.length <= 11) { \r\n return cpfMask; \r\n }\r\n return cnpjMask;\r\n }\r\n }\r\n }\r\n}\r\nexport function FormatCpfCnpj(value: string): string {\r\n return maskitoTransform(value, cpfCnpjMask);\r\n}","<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n <input #input\r\n [ngModel]=\"value()\" \r\n [maskito]=\"mask\"\r\n inputmode=\"numeric\"\r\n [type]=\"'text'\" \r\n (ngModelChange)=\"SetValue($event)\"\r\n [disabled]=\"disabled() || loading()\"\r\n (blur)=\"blur.emit($event)\"\r\n />\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>","export class InputCepConfiguration{\r\n constructor(\r\n ){}\r\n}","import { Component, ElementRef, forwardRef, input, InputSignal, model, ModelSignal, ViewChild } from '@angular/core';\r\nimport { MaskitoMaskExpression, MaskitoOptions, maskitoTransform } from '@maskito/core';\r\nimport { CustomInput } from '../custom-input';\r\nimport { InputProviderFactory } from '../input-provider-factory';\r\nimport { InputCepConfiguration } from './input-cep.configuration';\r\n\r\n@Component({\r\n selector: 'input-cep',\r\n templateUrl: './input-cep.component.html',\r\n styleUrls: ['./input-cep.component.scss', '../inputs.scss'],\r\n providers: [\r\n ...InputProviderFactory.GetProviders(InputCepComponent),\r\n { provide: CustomInput, useExisting: forwardRef(() => InputCepComponent) },\r\n ],\r\n})\r\nexport class InputCepComponent extends CustomInput<string> {\r\n configuration: InputSignal<InputCepConfiguration> = input<InputCepConfiguration>(new InputCepConfiguration());\r\n\r\n @ViewChild('input') input: ElementRef<HTMLInputElement>;\r\n @ViewChild('inputContainer') inputContainer: ElementRef<HTMLDivElement>;\r\n override setFocus(event: MouseEvent | null): void {\r\n if(this.input && (event == null || event.target == this.inputContainer.nativeElement)) { this.input.nativeElement.focus(); } \r\n }\r\n\r\n constructor(\r\n protected override elementRef: ElementRef<HTMLInputElement>\r\n ) { super(); }\r\n\r\n override writeValue(obj: string): void | Promise<void> {\r\n this.value.set(obj);\r\n this.runValidation();\r\n }\r\n\r\n readonly mask: MaskitoOptions = mask;\r\n}\r\n\r\nconst cepMask : MaskitoMaskExpression = [ /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/ ];\r\nconst mask: MaskitoOptions = { mask: cepMask };\r\nexport function FormatCep(value: string): string {\r\n return maskitoTransform(value, mask); \r\n}\r\n","<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n <input #input\r\n [ngModel]=\"value()\" \r\n [maskito]=\"mask\"\r\n inputmode=\"numeric\"\r\n (ngModelChange)=\"SetValue($event)\"\r\n [disabled]=\"disabled() || loading()\"\r\n (blur)=\"blur.emit($event)\"\r\n />\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>","import { Directive, Input, TemplateRef, ViewContainerRef } from \"@angular/core\";\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[ngVar]',\r\n})\r\nexport class NgVarDirective {\r\n @Input()\r\n set ngVar(context: unknown) {\r\n this.context.$implicit = this.context.ngVar = context;\r\n\r\n if (!this.hasView) {\r\n this.vcRef.createEmbeddedView(this.templateRef, this.context);\r\n this.hasView = true;\r\n }\r\n }\r\n\r\n private context: { $implicit: unknown; ngVar: unknown; } = { $implicit: null, ngVar: null, };\r\n\r\n private hasView: boolean = false;\r\n\r\n constructor(\r\n private templateRef: TemplateRef<any>,\r\n private vcRef: ViewContainerRef\r\n ) {}\r\n}","import { Component, computed, ElementRef, Input, model, ModelSignal, Signal } from '@angular/core';\r\nimport { ControlValueAccessor } from '@angular/forms';\r\n\r\nimport { InputFileConfiguration } from '../input-file.configuration';\r\nimport { ApiUrlProviderService } from '../../../../services/web/api-url-provider.service';\r\nimport { InputProviderFactory } from '../../input-provider-factory';\r\nimport { StorageService } from '../../../../services/web/storage.service';\r\nimport { lstImageTypes } from '../input-file.configuration';\r\nimport { Utils } from '../../../../services/utils.service';\r\n\r\n@Component({\r\n selector: 'download-button',\r\n templateUrl: './download-button.component.html',\r\n styleUrls: ['./download-button.component.scss'],\r\n providers: InputProviderFactory.GetProviders(DownloadButtonComponent)\r\n})\r\nexport class DownloadButtonComponent implements ControlValueAccessor {\r\n\r\n @Input() expand: string = \"\";\r\n value: ModelSignal<string> = model<string>();\r\n @Input() size: string = \"small\";\r\n @Input() color: string = \"primary\";\r\n @Input() params: any;\r\n @Input() disabled: boolean;\r\n @Input() post: boolean = false;\r\n @Input() configuration: InputFileConfiguration = new InputFileConfiguration();\r\n \r\n @Input() customLabel: boolean = false;\r\n\r\n @Input() label : string = \"\";\r\n constructor(\r\n public storageService: StorageService,\r\n private elementRef: ElementRef,\r\n private apiUrlProviderService: ApiUrlProviderService\r\n ) { }\r\n\r\n registerOnChange(fn: any): void {\r\n //throw new Error('Method not implemented.');\r\n }\r\n registerOnTouched(fn: any): void {\r\n //throw new Error('Method not implemented.');\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n //throw new Error('Method not implemented.');\r\n }\r\n\r\n guid : string = \"\";\r\n apiUrl: string;\r\n\r\n ngOnInit() {\r\n this.apiUrl = this.apiUrlProviderService.apiUrl;\r\n this.guid = `${Utils.GenerateGUID()}${this.elementRef.nativeElement.tagName.toLowerCase()}`\r\n }\r\n\r\n lstFiles: Signal<string[]> = computed(() => {\r\n if(typeof(this.value()) == \"string\"){\r\n return this.value().split(';');\r\n }else{\r\n return [];\r\n }\r\n });\r\n\r\n writeValue(value: string): void { this.value.set(value); }\r\n\r\n Download(value: string): void{\r\n this.storageService.StartDownload(value, this.params, this.post);\r\n }\r\n\r\n Sanitize(v): string {\r\n return StorageService.SanitizeFileName(v);\r\n }\r\n\r\n ExtensionIsImage(v){\r\n try{\r\n return lstImageTypes.includes(v.split('.')[v.split('.').length - 1])\r\n }catch{}\r\n }\r\n\r\n lstLoading: string[] = [];\r\n SetLoading(path: string){\r\n this.lstLoading.push(path);\r\n }\r\n SetNotLoading(path: string){\r\n this.lstLoading.splice(this.lstLoading.indexOf(path), 1);\r\n }\r\n isLoading(path: string){\r\n return this.lstLoading.indexOf(path) != -1;\r\n }\r\n}\r\n","@if(lstFiles().length == 0){\r\n <ion-button [color]=\"color\" fill=\"outline\" [disabled]=\"true\" [size]=\"size\"> \r\n <ion-icon name=\"close-circle\" slot=\"start\"></ion-icon> \r\n <ion-label> Sem arquivos... </ion-label>\r\n </ion-button>\r\n}\r\n@else if(lstFiles().length == 1){\r\n <ion-button [color]=\"color\" *ngVar=\"storageService.GetProgress(lstFiles()[0]) as val\" class=\"relative block {{expand == 'block' ? 'size-full' : ''}}\" [disabled]=\"val != 0 || disabled\" (click)=\"Download(lstFiles()[0])\" fill=\"outline\" [size]=\"size\"> \r\n <ion-icon name=\"download\" slot=\"start\"></ion-icon> \r\n <ion-label> {{customLabel ? label : Sanitize(lstFiles()[0])}} </ion-label>\r\n <div class=\"absolute size-full h-[calc(100%+var(--padding-top)+var(--padding-bottom))] w-[calc(100%+var(--padding-end)+var(--padding-start))]\">\r\n <loading [type]=\"3\" [loading]=\"val != 0\"></loading>\r\n <div class=\"size-full flex flex-row-reverse relative\">\r\n <ion-progress-bar class=\"absolute bottom-0 left-0 w-full h-1 default-transition\" [ngClass]=\"{'-translate-y-4 opacity-0': (!val || val == 0)}\" [value]=\"val\"></ion-progress-bar>\r\n </div>\r\n </div>\r\n </ion-button>\r\n}\r\n@else{\r\n <ion-button [color]=\"color\" [id]=\"guid\" fill=\"outline\" [size]=\"size\"> \r\n <ion-icon name=\"download\" slot=\"start\"></ion-icon> \r\n <ion-label> {{lstFiles().length}} Arquivos </ion-label>\r\n </ion-button>\r\n\r\n <ion-popover [trigger]=\"guid\" [keepContentsMounted]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content class=\"p-0 bg-transparent\">\r\n <ion-list>\r\n @for (item of lstFiles(); track item; let i = $index; let l = $last) {\r\n <section *ngVar=\"storageService.GetProgress(item) as val\">\r\n <ion-item style=\"--background: transparent\" lines=\"{{l ? 'none' : 'full'}}\" button [detail]=\"false\">\r\n\r\n <ion-icon name=\"download\" (click)=\"Download(item)\" slot=\"start\"></ion-icon> \r\n @if (ExtensionIsImage(item)) {\r\n <ion-icon [id]=\"guid + '-' + i + '-nested-popover'\" name=\"image\" slot=\"start\"></ion-icon> \r\n }\r\n\r\n <ion-label>{{Sanitize(item)}}</ion-label>\r\n <ion-text *ngIf=\"val != 0\" slot=\"end\" class=\"text-sm\"><b>{{val * 100 | number : '1.2-2'}}%</b></ion-text>\r\n </ion-item>\r\n <ion-progress-bar class=\"h-0 default-transition\" [ngClass]=\"{'h-1': val != 0 }\" [value]=\"val\"></ion-progress-bar>\r\n <ion-popover *ngIf=\"ExtensionIsImage(item)\" side=\"end\" alignment=\"center\" [trigger]=\"guid + '-' + i + '-nested-popover'\" [dismissOnSelect]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content *ngVar=\"isLoading(item) as isLoading\">\r\n <loading [hidden]=\"!isLoading\"></loading>\r\n <ion-img [hidden]=\"isLoading\" [src]=\"apiUrl + item\" (ionImgWillLoad)=\"SetLoading(item)\" (ionImgDidLoad)=\"SetNotLoading(item)\"></ion-img>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n </section>\r\n }\r\n </ion-list>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n}","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { GenericService } from '../../../services/generic.service';\r\nimport { Utils } from '../../../services/utils.service';\r\n\r\n/** Componente de paginação padrão */\r\n@Component({\r\n selector: 'default-pagination',\r\n templateUrl: './default-pagination.component.html',\r\n styleUrls: ['./default-pagination.component.scss'],\r\n})\r\nexport class DefaultPaginationComponent implements OnInit {\r\n\r\n\r\n total: number = 0;\r\n limit: number | null = 0;\r\n /** Valor total de dados */\r\n @Input('total') set _total(value: number){ \r\n this.total = value;\r\n this.TotalPages = this.GetTotalPages();\r\n this.lstPages = this.GetlstPages();\r\n };\r\n /** Limite de páginas */\r\n @Input('limit') set _limit(value: number | null){ \r\n this.limit = value;\r\n this.TotalPages = this.GetTotalPages();\r\n this.lstPages = this.GetlstPages();\r\n };\r\n\r\n /** Quantidade de dados em tela */\r\n @Input() length: number;\r\n @Input() loading: boolean;\r\n \r\n /** Pagina atual (usando two way data binding) */\r\n @Input() page: number;\r\n @Output() pageChange: EventEmitter<number> = new EventEmitter<number>();\r\n \r\n /** Evento emitido na mudança de valores (Pagina) */\r\n @Output('change') changeEmitter: EventEmitter<void> = new EventEmitter<void>();\r\n \r\n constructor(\r\n private genericService: GenericService\r\n ) { }\r\n\r\n ngOnInit() {}\r\n pop_id: string = \"popover-id-\" + Utils.GenerateGUID();\r\n\r\n GetlstPages(): number[] {\r\n if(!this.TotalPages){ return []; }\r\n var startIndex: number;\r\n var start: number[] = [];\r\n\r\n startIndex = this.page - 1;\r\n\r\n var _: number[] = [];\r\n for(let i = this.TotalPages - 4; i <= this.TotalPages ; i++){\r\n if(i > 0){\r\n _.push(i);\r\n }\r\n }\r\n\r\n for(let i = startIndex; i <= this.TotalPages && i < startIndex + 5; i++){\r\n if(i > 0){\r\n start.push(i);\r\n }\r\n }\r\n if(startIndex == 0 && this.TotalPages >= 5){\r\n start.push(5);\r\n }\r\n\r\n if(start[0] > _[0]){\r\n return _;\r\n }\r\n\r\n return start;\r\n }\r\n\r\n GetTotalPages(): number{\r\n return this.limit ? Math.ceil(this.total / this.limit) : Math.ceil(this.total / this.total)\r\n }\r\n\r\n lstPages : number[] = [];\r\n TotalPages: number = 0;\r\n\r\n PageAdd(): void{\r\n if(this.page + 1 > this.TotalPages){ return; }\r\n this.SetPage(this.page + 1);\r\n }\r\n \r\n PageSub(): void{\r\n if(this.page - 1 < 1){ return; }\r\n this.SetPage(this.page - 1);\r\n }\r\n\r\n SetPage(value: number): void{\r\n if(value != this.page){\r\n this.pageChange.emit(value);\r\n this.EmitChange()\r\n\r\n setTimeout(() => {\r\n this.TotalPages = this.GetTotalPages();\r\n this.lstPages = this.GetlstPages();\r\n }, 100);\r\n }\r\n }\r\n\r\n _page: number;\r\n SetPageManual(){\r\n if(this._page && this._page > 0 && this._page <= this.TotalPages){\r\n this.SetPage(this._page);\r\n }else{\r\n this.genericService.PresentToast(\"Página inválida\")\r\n }\r\n }\r\n\r\n EmitChange(): void{\r\n this.changeEmitter.emit();\r\n }\r\n}","<div id=\"pagination\" class=\"flex items-center rounded-b-2xl p-2 portrait:flex-col\">\r\n <div class=\"w-full h-full items-center justify-start flex portrait:justify-center\">\r\n <ion-spinner [hidden]=\"!(loading && lstPages.length == 0)\"></ion-spinner>\r\n <ion-text [hidden]=\"loading && lstPages.length == 0\">\r\n <div class=\"flex\">\r\n Mostrando \r\n <ion-skeleton-text *ngIf=\"loading\" [animated]=\"true\" style=\"width: 2ch\"></ion-skeleton-text>\r\n <b *ngIf=\"!loading\">{{limit * page - limit + length}}</b> \r\n de \r\n @if (total != null) {\r\n <b> {{total}} </b> itens\r\n }\r\n @else{\r\n <b> - </b> itens\r\n }\r\n </div>\r\n </ion-text>\r\n </div>\r\n <div class=\"w-full h-full items-center justify-end flex portrait:justify-center\" *ngIf=\"total != null\">\r\n <button class=\"flex items-center\" [disabled]=\"loading\" (click)=\"PageSub()\">\r\n <ion-icon [ngClass]=\"{'opacity-20': page == 1}\" name=\"chevron-back\" class=\"cursor-pointer default transition\"></ion-icon>\r\n </button>\r\n\r\n <ion-spinner *ngIf=\"loading && lstPages.length == 0\"></ion-spinner>\r\n\r\n <button [disabled]=\"loading\" class=\"page\" *ngFor=\"let item of lstPages\" [ngClass]=\"{ 'selected' : page == item }\" (click)=\"SetPage(item)\"> {{item}} </button>\r\n\r\n <button class=\"flex items-center\" [disabled]=\"loading\" (click)=\"PageAdd()\">\r\n <ion-icon [ngClass]=\"{'opacity-20': page == TotalPages }\" name=\"chevron-forward\" class=\"cursor-pointer default transition\"></ion-icon>\r\n </button>\r\n\r\n @if (TotalPages > 5) {\r\n <button [disabled]=\"loading\" class=\"page\" [id]=\"pop_id\"><ion-icon name=\"search\"></ion-icon></button>\r\n <ion-popover [trigger]=\"pop_id\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content>\r\n <div class=\"grid grid-cols-10 pl-3\">\r\n <div class=\"col-span-8 pb-2\">\r\n <ion-input class=\"number-class\" [(ngModel)]=\"_page\" type=\"Number\" labelPlacement=\"stacked\" label=\"Página [Max. {{TotalPages}}]\"></ion-input>\r\n </div>\r\n <div class=\"col-span-2\">\r\n <ion-button [disabled]=\"loading\" class=\"size-full\" size=\"small\" (click)=\"SetPageManual()\" style=\"--border-radius: 0rem\">\r\n <ion-icon class=\"w-4 aspect-square\" slot=\"icon-only\" name=\"checkmark-circle\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n </div>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n }\r\n </div>\r\n</div>","import { AfterViewInit, Component, ElementRef, EmbeddedViewRef, EventEmitter, Input, NgZone, OnDestroy, OnInit, Output, TemplateRef, ViewChild, ViewContainerRef, ViewRef } from '@angular/core';\r\nimport { autoUpdate, computePosition, ComputePositionReturn, flip, limitShift, offset, Placement, shift, arrow } from '@floating-ui/dom';\r\nimport { Timeout } from '../../../services/utils.service';\r\n\r\ntype Fill = 'solid' | 'outline' | 'blur' | 'clear';\r\n\r\n@Component({\r\n selector: 'sion-popover',\r\n templateUrl: './sion-popover.component.html',\r\n styleUrls: ['./sion-popover.component.scss'],\r\n})\r\nexport class SIonPopoverComponent implements AfterViewInit, OnDestroy {\r\n\r\n @Input() fill: Fill = 'blur';\r\n @Input() arrow: boolean = true;\r\n @Input() flip : boolean = true;\r\n\r\n\r\n @Input() placement: Placement = 'bottom';\r\n @Input() height: string = 'auto';\r\n @Input() width: string = 'auto';\r\n\r\n\r\n @Output() onWillPresent: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() onDidPresent: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @Output() onWillDismiss: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() onDidDismiss: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @Input() anchor: HTMLElement | undefined = undefined;\r\n\r\n constructor(\r\n private ngZone: NgZone\r\n ) { }\r\n\r\n @ViewChild('popoverWrapper' , { read: ElementRef }) contentContainer: ElementRef<HTMLDivElement>;\r\n \r\n ngAfterViewInit() {\r\n //TODO: Use Renderer2 to add event listeners for better Angular compatibility when updating to Angular 19\r\n this.ngZone.runOutsideAngular(() => {\r\n this.documentClickListener = (event: MouseEvent) => {\r\n // Run back inside Angular's zone when handling the event\r\n this.ngZone.run(() => {\r\n if(!this._instance){ return;}\r\n if (\r\n !this._instance.contains(event.target as Node) &&\r\n !this.anchor.contains(event.target as Node)\r\n ) {\r\n this.dismiss();\r\n }\r\n });\r\n };\r\n \r\n // Use the native DOM API directly with capture phase\r\n document.addEventListener('click', this.documentClickListener, true);\r\n });\r\n }\r\n documentClickListener: (event: MouseEvent) => void;\r\n viewRef?: ViewRef;\r\n\r\n private _embeddedView?: EmbeddedViewRef<any> | undefined;\r\n private get _instance(): HTMLElement | undefined {\r\n return this.contentContainer?.nativeElement;\r\n }\r\n\r\n get arrowEl(): HTMLElement | undefined {\r\n return this._instance.querySelector('.popover-arrow') as HTMLElement;\r\n }\r\n \r\n private cleanupAutoUpdate?: () => void;\r\n public state: POPOVER_STATE = POPOVER_STATE.IDLE;\r\n public async present(event?: Event): Promise<void> {\r\n if(this.state != POPOVER_STATE.IDLE) { return; }\r\n document.body.appendChild(this._instance);\r\n\r\n this.onWillPresent.emit();\r\n \r\n this.state = POPOVER_STATE.PRESENTING;\r\n const refEl = this.anchor ? this.anchor : event.target as HTMLElement;\r\n const arrowEl = this.arrowEl;\r\n\r\n await this.update(refEl, arrowEl)\r\n this._instance.classList.add('show');\r\n this.cleanupAutoUpdate = autoUpdate(refEl, this._instance, async () => this.update(refEl, arrowEl));\r\n \r\n this.state = POPOVER_STATE.VISIBLE;\r\n this.onDidPresent.emit();\r\n }\r\n\r\n private async update(refEl: HTMLElement, arrowEl: HTMLElement): Promise<void> {\r\n const computePositionReturn: ComputePositionReturn = await this.GetComputePositionReturn(refEl, this._instance, arrowEl);\r\n this.HandleComputePositionReturn(computePositionReturn, arrowEl);\r\n }\r\n\r\n public async dismiss(): Promise<void> {\r\n if(this.state == POPOVER_STATE.IDLE) { return; }\r\n \r\n if(this.cleanupAutoUpdate) {\r\n this.cleanupAutoUpdate();\r\n this.cleanupAutoUpdate = undefined;\r\n }\r\n this.onWillDismiss.emit();\r\n this.state = POPOVER_STATE.DISMISSING;\r\n this._instance.classList.remove('show');\r\n await Timeout(200);\r\n this._instance?.remove();\r\n this.state = POPOVER_STATE.IDLE;\r\n this.onDidDismiss.emit();\r\n }\r\n\r\n HandleComputePositionReturn(computePositionReturn: ComputePositionReturn, arrowEl: HTMLElement): void {\r\n Object.assign(this._instance.style, {\r\n left: `${computePositionReturn.x}px`,\r\n top: `${computePositionReturn.y}px`,\r\n width : this.width,\r\n height: this.height,\r\n position: 'absolute',\r\n });\r\n if(computePositionReturn.middlewareData.arrow){\r\n const { x: arrowX, y: arrowY } = computePositionReturn.middlewareData.arrow;\r\n const position = computePositionReturn.placement.split('-')[0];\r\n const staticSide = STATIC_SIDES[position];\r\n Object.assign(arrowEl.style, {\r\n left: arrowX != null ? `${arrowX}px` : '',\r\n top : arrowY != null ? `${arrowY}px` : '',\r\n right : '',\r\n bottom: '',\r\n [staticSide]: `-7px`,\r\n });\r\n arrowEl.style.setProperty(`--rotation`, ROTATIONS[position]);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if(this._instance) {\r\n this._instance?.remove();\r\n }\r\n if(this._embeddedView) {\r\n this._embeddedView.destroy();\r\n this._embeddedView = undefined;\r\n }\r\n\r\n if (this.documentClickListener) {\r\n document.removeEventListener('click', this.documentClickListener, true);\r\n }\r\n if (this.viewRef) {\r\n this.viewRef.destroy();\r\n this.viewRef = undefined;\r\n }\r\n }\r\n\r\n async GetComputePositionReturn(refEl: HTMLElement, popEl: HTMLElement, arrowEl: HTMLElement): Promise<ComputePositionReturn> {\r\n return await computePosition(refEl, popEl, {\r\n placement: this.placement,\r\n middleware: [ \r\n offset(10), \r\n this.flip ? flip({ crossAxis: false }) : undefined, \r\n shift({ limiter: limitShift(), padding: 5 }), \r\n this.arrow ? arrow({ element: arrowEl, padding: 10 }) : undefined,\r\n ].filter(p => p),\r\n });\r\n }\r\n}\r\n\r\nenum POPOVER_STATE{\r\n IDLE = 1,\r\n PRESENTING = 2,\r\n DISMISSING = 3,\r\n VISIBLE = 4\r\n}\r\nconst STATIC_SIDES = {\r\n top: \"bottom\",\r\n right: \"left\",\r\n bottom: \"top\",\r\n left: \"right\"\r\n};\r\nconst ROTATIONS = {\r\n bottom: \"135deg\",\r\n top: \"315deg\",\r\n left: \"225deg\",\r\n right: \"45deg\",\r\n}\r\n","<div #popoverWrapper \r\n class=\"popover-wrapper translucid-border\"\r\n [style.height]=\"height\"\r\n [style.width]=\"width\"\r\n [ngClass]=\"{\r\n 'bg-light' : fill == 'solid',\r\n 'bg-transparent' : fill == 'outline',\r\n 'bg-light/90' : fill == 'blur',\r\n '!border-0' : fill == 'clear',\r\n }\"\r\n> \r\n <div #popoverArrow class=\"popover-arrow size-4 translucid-border\"\r\n [ngClass]=\"{\r\n 'bg-light' : fill == 'solid',\r\n 'bg-transparent' : fill == 'outline',\r\n 'bg-light/90' : fill == 'blur',\r\n '!border-0' : fill == 'clear',\r\n }\"\r\n ></div>\r\n <ng-content #content></ng-content>\r\n</div>","import { Component, computed, ElementRef, forwardRef, HostListener, input, InputSignal, OnInit, Signal, signal, ViewChild, WritableSignal } from '@angular/core';\r\nimport { maskitoDateTimeOptionsGenerator } from '@maskito/kit';\r\nimport { maskitoDateOptionsGenerator } from '@maskito/kit';\r\nimport { maskitoTimeOptionsGenerator } from '@maskito/kit';\r\nimport { MaskitoOptions } from '@maskito/core';\r\nimport moment, { Moment } from 'moment';\r\n\r\nimport { InputDateConfiguration } from './input-date.configuration';\r\nimport { InputProviderFactory } from '../input-provider-factory';\r\nimport { CustomInput } from '../custom-input';\r\nimport { IonDatetime, IonModal, IonPopover } from '@ionic/angular';\r\nimport { SIonPopoverComponent } from '../../popover/sion-popover/sion-popover.component';\r\nimport { MatCalendar, MatDatepicker } from '@angular/material/datepicker';\r\n\r\n\r\n@Component({\r\n selector: 'input-date, input-date-time, input-time',\r\n templateUrl: './input-date.component.html',\r\n styleUrls: ['./input-date.component.scss', '../inputs.scss'],\r\n providers: [\r\n ...InputProviderFactory.GetProviders(InputDateComponent),\r\n { provide: CustomInput, useExisting: forwardRef(() => InputDateComponent) },\r\n ],\r\n})\r\nexport class InputDateComponent extends CustomInput<string> {\r\n static FormatISO = 'YYYY-MM-DDTHH:mm:ss';\r\n \r\n configuration: InputSignal<InputDateConfiguration> = input<InputDateConfiguration>(new InputDateConfiguration());\r\n @ViewChild('input') input: ElementRef<HTMLInputElement>;\r\n @ViewChild('inputContainer') inputContainer: ElementRef<HTMLDivElement>;\r\n override setFocus(event: MouseEvent | null): void {\r\n if(this.input && (event == null || event.target == this.inputContainer.nativeElement)) { this.input.nativeElement.focus(); } \r\n }\r\n \r\n options: MaskitoOptions;\r\n // Formato do input html (string)\r\n momentFormat: 'DD/MM/YYYY HH:mm' | 'DD/MM/YYYY' | 'HH:mm' = 'DD/MM/YYYY HH:mm';\r\n\r\n\r\n //Handle input interface\r\n windowSize: WritableSignal<number> = signal<number>(window.innerWidth);\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event: any) { this.windowSize.set(window.innerWidth); }\r\n interface: Signal<DateInterfaces> = computed<DateInterfaces>(() => {\r\n return this.windowSize() > window.innerHeight ? DateInterfaces.Popover : DateInterfaces.Modal;\r\n });\r\n DateInterfaces = DateInterfaces;\r\n\r\n\r\n constructor(\r\n override elementRef: ElementRef\r\n ) { \r\n super(); \r\n const presentation = (this.elementRef.nativeElement.tagName.toLowerCase() as string).replace('input-', '');\r\n this.presentation = {\r\n 'date-time': DatePresentation.DateTime,\r\n 'date': DatePresentation.Date,\r\n 'time': DatePresentation.Time,\r\n }[presentation] ?? DatePresentation.DateTime;\r\n\r\n if(this.presentation == DatePresentation.DateTime){ \r\n this.momentFormat = 'DD/MM/YYYY HH:mm';\r\n this.options = maskitoDateTimeOptionsGenerator({\r\n dateMode: 'dd/mm/yyyy',\r\n timeMode: 'HH:MM',\r\n dateSeparator: '/',\r\n dateTimeSeparator: ' ',\r\n timeStep: 1,\r\n });\r\n } else\r\n if(this.presentation == DatePresentation.Date) {\r\n this.momentFormat = 'DD/MM/YYYY';\r\n this.options = maskitoDateOptionsGenerator({ mode: 'dd/mm/yyyy', separator: '/'});\r\n } else\r\n if(this.presentation == DatePresentation.Time) {\r\n this.momentFormat = 'HH:mm'; \r\n this.options = maskitoTimeOptionsGenerator({\r\n mode: 'HH:MM',\r\n step: 1,\r\n });\r\n }\r\n }\r\n \r\n ClearValue(event?: MouseEvent) {\r\n if (event) {\r\n event.stopPropagation(); // impede de abrir o calendário ao clicar no clear\r\n }\r\n this.value.set(null);\r\n this.momentValue = undefined;\r\n this.readableValue = '';\r\n this.hour = '00';\r\n this.minute = '00';\r\n this.propagateChange(null);\r\n }\r\n\r\n public presentation: DatePresentation = DatePresentation.DateTime;\r\n \r\n readableValue: string = '';\r\n SetValueFromReadable(value: string): void {\r\n const m = moment(value, this.momentFormat, true).format(InputDateComponent.FormatISO); \r\n this.SetValue(m);\r\n }\r\n SetValueFromMoment(value: moment.Moment | null): void {\r\n if (this.presentation === DatePresentation.Time) {\r\n const formatted = value?.format('HH:mm');\r\n this.value.set(formatted);\r\n this.readableValue = formatted;\r\n this.propagateChange(formatted);\r\n } else {\r\n this.SetValue(value.format(InputDateComponent.FormatISO));\r\n }\r\n }\r\n\r\n @ViewChild('calendar') calendar: MatCalendar<moment.Moment>;\r\n /**\r\n * @param obj String in ISO format (YYYY-MM-DDThh:mm:ss)\r\n */\r\n override SetValue(obj: string): void {\r\n this.value.set(obj);\r\n\r\n if(this.value()){\r\n this.momentValue = moment(this.value(), InputDateComponent.FormatISO, true);\r\n this.readableValue = this.momentValue.format(this.momentFormat.toString());\r\n\r\n if(this.calendar){\r\n this.calendar.activeDate = this.momentValue; // set the active date to the selected date\r\n this.calendar.updateTodaysDate(); // update calendar state\r\n }\r\n if(this.momentValue){\r\n this.hour = this.momentValue.get('hour').toString().padStart(2,'0');\r\n this.minute = this.momentValue.get('minute').toString().padStart(2,'0');\r\n }\r\n }\r\n \r\n this.runValidation();\r\n if(this.momentValue.isValid()){\r\n this.propagateChange(obj);\r\n } else{\r\n this.propagateChange(null);\r\n }\r\n }\r\n\r\n momentValue?: moment.Moment;\r\n\r\n @ViewChild(IonDatetime) datetime: IonDatetime;\r\n \r\n override writeValue(obj?: string): void | Promise<void> {\r\n this.value.set(obj);\r\n \r\n if (this.value()) {\r\n if (this.presentation === DatePresentation.Time) {\r\n this.readableValue = moment(this.value(), 'HH:mm', true).format('HH:mm');\r\n \r\n // cria momentValue se quiser manipular hora/minuto depois\r\n this.momentValue = moment(this.readableValue, 'HH:mm', true);\r\n \r\n this.hour = this.momentValue.get('hour').toString().padStart(2,'0');\r\n this.minute = this.momentValue.get('minute').toString().padStart(2,'0');\r\n } else {\r\n this.momentValue = moment(this.value(), InputDateComponent.FormatISO, true);\r\n this.readableValue = this.momentValue.format(this.momentFormat.toString());\r\n \r\n if (this.calendar) {\r\n this.calendar.activeDate = this.momentValue;\r\n this.calendar.updateTodaysDate();\r\n }\r\n if (this.momentValue) {\r\n this.hour = this.momentValue.get('hour').toString().padStart(2,'0');\r\n this.minute = this.momentValue.get('minute').toString().padStart(2,'0');\r\n }\r\n }\r\n }\r\n this.runValidation();\r\n }\r\n\r\n\r\n @ViewChild(SIonPopoverComponent) popover: SIonPopoverComponent;\r\n @ViewChild(IonModal) modal: IonModal;\r\n async Present(event: MouseEvent) {\r\n if(this.interface() == DateInterfaces.Popover){\r\n return this.popover.present(event);\r\n } else {\r\n return this.modal.present();\r\n }\r\n }\r\n\r\n async Dismiss() {\r\n if(this.popover){\r\n this.popover.dismiss();\r\n }\r\n if(this.modal){\r\n this.modal.dismiss();\r\n }\r\n }\r\n\r\n DatePresentation = DatePresentation;\r\n\r\n lstHours = lstHours;\r\n lstMinutes = lstMinutes;\r\n\r\n hour : string = '00';\r\n minute: string = '00';\r\n\r\n OnChangeHour(event: string) {\r\n if (event == this.hour) { return; }\r\n this.hour = event;\r\n \r\n if (!this.momentValue) {\r\n this.momentValue = moment().startOf('day'); // cria um moment base\r\n }\r\n \r\n this.momentValue.set('hour', Number(event));\r\n this.SetValueFromMoment(this.momentValue);\r\n }\r\n \r\n OnChangeMinute(event: string) {\r\n if (event == this.minute) { return; }\r\n this.minute = event;\r\n \r\n if (!this.momentValue) {\r\n this.momentValue = moment().startOf('day');\r\n }\r\n \r\n this.momentValue.set('minute', Number(event));\r\n this.SetValueFromMoment(this.momentValue);\r\n }\r\n}\r\n\r\n\r\nenum DatePresentation {\r\n DateTime = 1,\r\n Date = 2,\r\n Time = 3\r\n}\r\nenum DateInterfaces{\r\n Popover = 1,\r\n Modal = 2,\r\n}\r\n\r\nconst lstHours = Array.from(Array(24).keys()).map(i => i.toString().padStart(2,'0'));\r\nconst lstMinutes = Array.from(Array(60).keys()).map(i => i.toString().padStart(2,'0'));","<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n \r\n <input #input\r\n [ngModel]=\"readableValue\" \r\n (ngModelChange)=\"SetValueFromReadable($event);\"\r\n [maskito]=\"options\"\r\n [disabled]=\"disabled() || loading()\"\r\n (blur)=\"blur.emit($event)\"\r\n />\r\n <ion-button *ngIf=\"configuration().clearable && readableValue\" tabindex=\"-1\" class=\"absolute right-8 bottom-1\" \r\n (click)=\"ClearValue($event)\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\"\r\n >\r\n <ion-icon name=\"close\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n \r\n <ion-button tabindex=\"-1\" class=\"absolute right-2 bottom-1\" (click)=\"Present($event)\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\">\r\n <ion-icon [name]=\"presentation == DatePresentation.Time ? 'time' : 'calendar'\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>\r\n\r\n@if (interface() == DateInterfaces.Popover) {\r\n <sion-popover\r\n #popover \r\n [anchor]=\"inputContainer\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"datetimeTemplate;\"></ng-container>\r\n </sion-popover>\r\n}\r\n@else {\r\n <ion-modal \r\n #modal\r\n [class.time]=\"presentation == DatePresentation.Time\" \r\n [class.date]=\"presentation == DatePresentation.Date\" \r\n [class.datetime]=\"presentation == DatePresentation.DateTime\"\r\n >\r\n <ng-template>\r\n <ng-container *ngTemplateOutlet=\"datetimeTemplate;\"></ng-container>\r\n </ng-template>\r\n </ion-modal>\r\n}\r\n\r\n\r\n<ng-template #datetimeTemplate>\r\n <div class=\"flex items-center justify-center bg-[--ion-color-light] rounded-xl\" tabindex=\"-1\">\r\n \r\n @if ([DatePresentation.DateTime, DatePresentation.Date].includes(presentation)) {\r\n <mat-calendar #calendar class=\"w-72 text-dark\" \r\n [(selected)]=\"momentValue\" \r\n (selectedChange)=\"SetValueFromMoment($event)\"\r\n ></mat-calendar>\r\n }\r\n @if ([DatePresentation.DateTime, DatePresentation.Time].includes(presentation)) {\r\n <div class=\"flex h-full mask-y/30 items-center justify-center\">\r\n <ion-picker>\r\n <ion-picker-column (ionChange)=\"OnChangeHour($event.target.value.toString())\" [value]=\"hour\">\r\n @for (item of lstHours; track $index) {\r\n <ion-picker-column-option [value]=\"item\">{{item}}</ion-picker-column-option>\r\n }\r\n </ion-picker-column>\r\n <ion-picker-column (ionChange)=\"OnChangeMinute($event.target.value.toString())\" [value]=\"minute\">\r\n @for (item of lstMinutes; track $index) {\r\n <ion-picker-column-option [value]=\"item\">{{item}}</ion-picker-column-option>\r\n }\r\n </ion-picker-column>\r\n </ion-picker>\r\n </div>\r\n }\r\n\r\n </div>\r\n</ng-template>\r\n","import { Component, computed, ElementRef, forwardRef, HostListener, model, ModelSignal, Signal, ViewChild } from '@angular/core';\r\nimport { formatNumber } from '@angular/common';\r\nimport { InputCurrencyConfiguration, InputDecimalConfiguration, InputNumberConfiguration, InputPercentageConfiguration } from './input-decimal.configuration';\r\nimport { InputProviderFactory } from '../input-provider-factory';\r\nimport { CustomInput } from '../custom-input';\r\nimport { Timeout } from '../../../services/utils.service';\r\n\r\n@Component({\r\n selector: 'input-decimal, input-number, input-currency, input-percentage',\r\n templateUrl: './input-decimal.component.html',\r\n styleUrls: ['./input-decimal.component.scss', '../inputs.scss'],\r\n providers: [\r\n ...InputProviderFactory.GetProviders(InputDecimalComponent),\r\n { provide: CustomInput, useExisting: forwardRef(() => InputDecimalComponent) },\r\n ],\r\n})\r\nexport class InputDecimalComponent extends CustomInput<number> {\r\n\r\n configuration: ModelSignal<InputDecimalConfiguration> = model<InputDecimalConfiguration>();\r\n digitsInfo: Signal<string> = computed(() => `1.${this.configuration().precision}-${this.configuration().precision}`);\r\n divider: Signal<number> = computed(() => Math.pow(10, this.configuration().precision));\r\n\r\n @ViewChild('input') input: ElementRef<HTMLInputElement>;\r\n @ViewChild('inputContainer') inputContainer: ElementRef<HTMLDivElement>;\r\n override setFocus(event: MouseEvent | null): void {\r\n if(this.input && event.target == this.inputContainer.nativeElement) { \r\n this.input.nativeElement.focus(); \r\n this.input.nativeElement.setSelectionRange(this.valueString.length, this.valueString.length); \r\n } \r\n }\r\n constructor(\r\n override elementRef: ElementRef\r\n ) { \r\n super(); \r\n this.value.set(0);\r\n const selector: string = this.elementRef.nativeElement.tagName.toLowerCase().split('-').at(-1);\r\n if(selector == \"number\" && !this.configuration()){ this.configuration.set(new InputNumberConfiguration()); } else\r\n if(selector == \"decimal\" && !this.configuration()){ this.configuration.set(new InputDecimalConfiguration()); } else\r\n if(selector == \"currency\" && !this.configuration()){ this.configuration.set(new InputCurrencyConfiguration()); } else\r\n if(selector == \"percentage\" && !this.configuration()){ this.configuration.set(new InputPercentageConfiguration()); }\r\n this.SetValueString(); \r\n }\r\n \r\n override writeValue(obj: number): void | Promise<void> {\r\n this.value.set(obj);\r\n this.SetValueString();\r\n this.runValidation();\r\n }\r\n override SetValue(obj: number): void {\r\n this.value.set(obj);\r\n this.SetValueString();\r\n this.runValidation();\r\n this.propagateChange(obj); \r\n }\r\n SetValueString(): void {\r\n this.valueString = formatNumber(this.value(), \"pt-BR\", this.digitsInfo());\r\n }\r\n \r\n valueString: string;\r\n\r\n @HostListener('paste', ['$event'])\r\n onPaste(event: ClipboardEvent): void {\r\n event.preventDefault();\r\n \r\n let clipboardData = event.clipboardData || window['clipboardData'];\r\n let pastedText = clipboardData.getData('text');\r\n\r\n const s = pastedText.replaceAll('.', '').replaceAll(',', '.');\r\n const n = Number(s);\r\n\r\n if(Number(s) && isFinite(n)){ \r\n this.SetValue(n);\r\n }\r\n event.preventDefault();\r\n }\r\n\r\n async onKeyDown(event: KeyboardEvent): Promise<void>{\r\n const value: string = this.input.nativeElement.value;\r\n\r\n const selectionStart: number = this.input.nativeElement.selectionStart;\r\n const selectionEnd : number = this.input.nativeElement.selectionEnd;\r\n\r\n const atLeft = value.slice(0, selectionStart); \r\n const atRight = value.slice(selectionEnd, value.length); \r\n if([\"-\"].includes(event.key)){ \r\n return await this.HandleNegative(event, selectionStart, selectionEnd, value, atLeft, atRight);\r\n }else\r\n if(lstNumbers.includes(event.key)){ \r\n return await this.HandleNumber(event, selectionStart, selectionEnd, value, atLeft, atRight); \r\n }else\r\n if(lstEspecialCases.includes(event.key)){ \r\n return await this.HandleEspecial(event, selectionStart, selectionEnd, value, atLeft, atRight); \r\n }else\r\n if([\"A\", \"a\"].includes(event.key) && event.ctrlKey){ \r\n return; \r\n }else\r\n if([\"C\", \"c\"].includes(event.key) && event.ctrlKey){ \r\n return; \r\n }else\r\n if([\"V\", \"v\"].includes(event.key) && event.ctrlKey){ \r\n return; \r\n }else\r\n if(lstIgnoreNotPrevent.includes(event.key)){ \r\n return; \r\n }else{\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n async HandleNegative(event: KeyboardEvent, selectionStart: number, selectionEnd: number, value: string, atLeft: string, atRight: string): Promise<void>{\r\n event.preventDefault();\r\n\r\n let focusEnd = (selectionStart == 0 && selectionEnd == this.valueString.length);\r\n /** [ Remove decimalSeparator & thousandSeparator ] */\r\n let f;\r\n if(!atLeft.includes('-')){\r\n f = event.key + atLeft + atRight;\r\n }else{\r\n f = (atLeft + atRight).replace('-', '')\r\n }\r\n\r\n if(f == \"-\"){ \r\n if(value.includes('-')){\r\n f = value.replace('-', '');\r\n }\r\n else{\r\n f = `-${value}`;\r\n }\r\n }\r\n\r\n const CurrentValue: number = this.SanitizeValue(f);\r\n if(CurrentValue == this.value()){ return; }\r\n \r\n //[ Handle Set Cursor Position]\r\n this.SetValue(CurrentValue);\r\n const newPos = selectionStart + 1 + this.valueString.split('.').length - value.split('.').length;\r\n \r\n //Horrivel, mas nao tem uma alternativa boa, https://stackoverflow.com/questions/511088/use-javascript-to-place-cursor-at-end-of-text-in-text-input-element\r\n await Timeout(0);\r\n this.input.nativeElement.setSelectionRange(newPos, newPos); \r\n if(focusEnd){\r\n this.input.nativeElement.setSelectionRange(this.valueString.length, this.valueString.length); \r\n }\r\n return;\r\n }\r\n\r\n async HandleNumber(event: KeyboardEvent, selectionStart: number, selectionEnd: number, value: string, atLeft: string, atRight: string): Promise<void> {\r\n event.preventDefault();\r\n \r\n let focusEnd = (selectionStart == 0 && selectionEnd == this.valueString.length);\r\n /** [ Remove decimalSeparator & thousandSeparator ] */\r\n const f = atLeft + event.key + atRight;\r\n const CurrentValue: number = this.SanitizeValue(f);\r\n if(CurrentValue == this.value()){ return; }\r\n if(CurrentValue > decimalMaxValue){ return; }\r\n \r\n //[ Handle Set Cursor Position]\r\n this.SetValue(CurrentValue);\r\n const newPosition = selectionStart + 1 + this.valueString.split('.').length - value.split('.').length;\r\n \r\n //Horrivel, mas nao sem uma alternativa boa, https://stackoverflow.com/questions/511088/use-javascript-to-place-cursor-at-end-of-text-in-text-input-element\r\n await Timeout(0);\r\n this.input.nativeElement.setSelectionRange(newPosition, newPosition); \r\n if(focusEnd){\r\n this.input.nativeElement.setSelectionRange(this.valueString.length, this.valueString.length); \r\n }\r\n return;\r\n }\r\n\r\n SanitizeValue(f: string): number{\r\n var CurrentValue: number = Number(Sanitize(f)) / this.divider();\r\n if(CurrentValue >= decimalMaxValue){ \r\n return this.value(); \r\n }\r\n return CurrentValue;\r\n }\r\n\r\n async HandleEspecial(event: KeyboardEvent, selectionStart: number, selectionEnd: number, value: string, atLeft: string, atRight: string): Promise<void> {\r\n event.preventDefault();\r\n if(selectionStart == selectionEnd){\r\n if(event.key == \"Backspace\"){\r\n if(selectionStart == selectionEnd && selectionStart == 0){ \r\n return; \r\n }\r\n\r\n const previousChar: string = atLeft.at(-1);\r\n const isNumber = lstNumbers.includes(previousChar);\r\n const f = atLeft.slice(0, atLeft.length - (isNumber ? 1 : 2)) + atRight;\r\n const CurrentValue = this.SanitizeValue(f);\r\n \r\n //[ Handle Set Cursor Position]\r\n this.SetValue(CurrentValue);\r\n await Timeout(0);\r\n let pos = isNumber ? selectionStart - 1 : selectionStart - 2;\r\n\r\n if (selectionEnd == this.valueString.length) {\r\n pos++;\r\n }\r\n this.input.nativeElement.setSelectionRange(pos, pos); \r\n return;\r\n }else\r\n if(event.key == \"Delete\"){\r\n const nextChar: string = atRight[0];\r\n const isNumber = lstNumbers.includes(nextChar);\r\n const f = atLeft + atRight.slice(isNumber ? 1 : 2);\r\n const CurrentValue = this.SanitizeValue(f);\r\n \r\n //[ Handle Set Cursor Position]\r\n this.SetValue(CurrentValue);\r\n var pos: number = selectionStart;\r\n if(pos <= -1){ pos = 0; }\r\n if(CurrentValue < 1){\r\n pos++;\r\n }\r\n if(!isNumber){\r\n pos++;\r\n }\r\n\r\n await Timeout(0);\r\n this.input.nativeElement.setSelectionRange(pos, pos);\r\n return;\r\n }\r\n }else{\r\n const f = atLeft + atRight;\r\n const CurrentValue = this.SanitizeValue(f);\r\n this.SetValue(CurrentValue);\r\n \r\n await Timeout(0);\r\n this.input.nativeElement.setSelectionRange(this.valueString.length, this.valueString.length); \r\n\r\n return;\r\n }\r\n }\r\n}\r\n\r\n\r\nconst decimalMaxValue = 9_000_000_000_000.00\r\n\r\nconst decimalSeparator : string = \",\";\r\nconst thousandSeparator: string = \".\";\r\n\r\nconst Sanitize: Function = ((v: string): string => { \r\n return v.replaceAll(thousandSeparator, '')\r\n .replace (decimalSeparator , '') \r\n });\r\n\r\nconst lstNumbers = [ \"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\" ];\r\nconst lstIgnoreNotPrevent = [ \"Tab\", \"CapsLock\", \"Shift\", \"Control\", \"Alt\", \"ArrowRight\", \"ArrowUp\", \"ArrowDown\", \"ArrowLeft\"];\r\nconst lstEspecialCases = [ \"Backspace\", \"Delete\" ];","<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n\r\n <div class=\"decimal-input-container text-dark\">\r\n <span *ngIf=\"configuration().prefix\" slot=\"start\">{{configuration().prefix}}</span>\r\n <input #input\r\n inputmode=\"numeric\"\r\n [value]=\"valueString\" \r\n (keydown)=\"onKeyDown($event)\"\r\n [disabled]=\"disabled() || loading()\"\r\n (blur)=\"blur.emit($event)\"\r\n />\r\n <span *ngIf=\"configuration().sufix\" slot=\"end\" >{{configuration().sufix}}</span>\r\n </div>\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sionPlaceholderTemplate]',\r\n})\r\nexport class SIonPlaceholderTemplateDirective {\r\n constructor(public template: TemplateRef<PlaceholderTemplateContext>) {}\r\n}\r\n\r\nexport interface PlaceholderTemplateContext {\r\n /**\r\n * Placeholder na configuração do componente de input select.\r\n */\r\n $implicit: string;\r\n /**\r\n * Placeholder na configuração do componente de input select.\r\n */\r\n placeholder: string;\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sionOptionTemplate]',\r\n})\r\nexport class SIonOptionTemplateDirective<T> {\r\n constructor(public template: TemplateRef<OptionTemplateContext<T>>) {}\r\n}\r\n\r\n\r\nexport interface OptionTemplateContext<T> {\r\n /**\r\n * O item naquela opção\r\n */\r\n item: T;\r\n}","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sionLabelTemplate]',\r\n})\r\nexport class SIonLabelTemplateDirective<T> {\r\n constructor(public template: TemplateRef<LabelTemplateContext<T>>) {}\r\n}\r\n\r\nexport interface LabelTemplateContext<T> {\r\n /**\r\n * O valor do item via bindLabel que está sendo renderizado.\r\n */\r\n $implicit: string;\r\n /**\r\n * O item selecionado no componente de input select.\r\n */\r\n item: T;\r\n}","import { afterNextRender, AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, ContentChild, effect, ElementRef, forwardRef, HostListener, inject, Injector, input, InputSignal, model, ModelSignal, signal, Signal, TemplateRef, ViewChild, WritableSignal, } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { ActionSheetButton, AlertButton, AlertInput, InfiniteScrollCustomEvent, IonActionSheet, IonAlert, IonContent, IonModal } from '@ionic/angular';\r\n\r\nimport { debounceTime, distinctUntilChanged, Subject, Subscription, takeUntil } from 'rxjs';\r\nimport { BindLabelFactory, BindValueFactory, InputSelectConfiguration, SelectInterfaces } from './input.select.configuration';\r\nimport { SIonPopoverComponent } from '../../popover/sion-popover/sion-popover.component';\r\nimport { InputProviderFactory } from '../input-provider-factory';\r\nimport { CustomInput } from '../custom-input';\r\nimport { Search, Timeout } from '../../../services/utils.service';\r\n\r\nimport { PlaceholderTemplateContext, SIonPlaceholderTemplateDirective } from './directives/sion-placeholder-template.directive';\r\nimport { OptionTemplateContext, SIonOptionTemplateDirective } from './directives/sion-option-template.directive';\r\nimport { LabelTemplateContext, SIonLabelTemplateDirective } from './directives/sion-label-template.directive';\r\nimport { HttpServiceAtivo } from '../../../services/web/http.ativo.service';\r\n\r\n@Component({\r\n selector: 'input-select',\r\n templateUrl: './input-select.component.html',\r\n styleUrls: ['./input-select.component.scss', '../inputs.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n ...InputProviderFactory.GetProviders(InputSelectComponent),\r\n { provide: CustomInput, useExisting: forwardRef(() => InputSelectComponent) },\r\n ],\r\n})\r\nexport class InputSelectComponent<T = any> extends CustomInput<T | T[]> implements AfterViewInit {\r\n\r\n SelectInterfaces = SelectInterfaces;\r\n\r\n /** Items disponíveis no select */\r\n items : ModelSignal<any[]> = model<any[]>([]);\r\n /** Configuração do select */\r\n configuration : InputSignal<InputSelectConfiguration> = input<InputSelectConfiguration>(new InputSelectConfiguration()); \r\n loadingFromLoader: boolean = false;\r\n\r\n currentLabel: string | undefined = undefined;\r\n currentItems : any | ItemValue<any>[] | undefined = undefined;\r\n \r\n SetCurrentItemLabel(): void {\r\n if(this.configuration().multiple){\r\n this.currentLabel = this.lstOptionsItemValue().filter(p => p.selected).map(p => p.label).join(', ');\r\n this.currentItems = this.lstOptionsItemValue().filter(p => p.selected);\r\n }\r\n else{\r\n this.currentLabel = this.lstOptionsItemValue().find(p => p.selected)?.label;\r\n this.currentItems = this.lstOptionsItemValue().find(p => p.selected);\r\n }\r\n }\r\n\r\n lstOptionsItemValue: Signal<ItemValue<any>[]> = computed(() => {\r\n const bindLabel = BindLabelFactory(this.configuration());\r\n const bindValue = BindValueFactory(this.configuration());\r\n return this.items().filter(p => (this.somenteAtivos() && this.isServiceAtivo()) ? p.ativo : true) .map(p => {\r\n const item = new ItemValue<any>();\r\n item.label = bindLabel(p);\r\n item.value = bindValue(p);\r\n item.item = p;\r\n item.selected = this.value() == item.value;\r\n item.disabled = p.disabled || false || (this.isServiceAtivo() && p.ativo == false);\r\n return item;\r\n });\r\n });\r\n\r\n windowSize: WritableSignal<number> = signal<number>(window.innerWidth);\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event: any) {\r\n this.windowSize.set(window.innerWidth);\r\n this.SetInterface();\r\n }\r\n SetInterface(): void {\r\n var _interface = this.configuration().interface;\r\n if(_interface == SelectInterfaces.Dynamic){\r\n _interface = isPortrait() ? SelectInterfaces.ActionSheet : SelectInterfaces.Popover;\r\n }\r\n this.interface.set(_interface);\r\n }\r\n interface: WritableSignal<SelectInterfaces> = signal<SelectInterfaces>(undefined);\r\n\r\n lstOptions: ItemValue<any>[] = [];\r\n lstOptionsAlert : AlertInput[] = [];\r\n lstButtonsAlert : AlertButton[] = [];\r\n lstOptionsActionSheet: ActionSheetButton[] = [];\r\n\r\n infiniteScrollPage: WritableSignal<number> = signal<number>(1);\r\n AddPage(event: InfiniteScrollCustomEvent): void {\r\n this.infiniteScrollPage.set(this.infiniteScrollPage() + 1);\r\n event.target.complete();\r\n }\r\n\r\n UpdateLstOptions(search: string): void {\r\n // Update the search \r\n if (search) {\r\n this.lstOptions = Search<ItemValue<any>>(this.lstOptionsItemValue(), search, (item: ItemValue<any>) => item.label);\r\n } else { \r\n this.lstOptions = this.lstOptionsItemValue(); \r\n }\r\n if(this.configuration().useInfiniteScroll){\r\n this.lstOptions = this.lstOptions.slice(0, this.infiniteScrollPage() * 25);\r\n }\r\n \r\n if(this.interface() == SelectInterfaces.ActionSheet){\r\n this.lstOptionsActionSheet = [...this.lstOptions.map(p => {\r\n return {\r\n text: p.label,\r\n handler: () => { this.Select(p); },\r\n role : p.selected ? 'selected' : '',\r\n };\r\n }), \r\n {\r\n text: 'Cancelar',\r\n role: 'cancel',\r\n data: { action: 'cancel', },\r\n handler() {\r\n this.renderInterface = false;\r\n },\r\n }\r\n ];\r\n }\r\n }\r\n UpdateSelected(): void {\r\n if (this.configuration().multiple){\r\n const arr = this.value() as any[] || [];\r\n for (const item of this.lstOptions) {\r\n item.selected = arr.find(p => p == item.value) != undefined;\r\n }\r\n } else {\r\n this.lstOptions.forEach((item: ItemValue<any>) => { item.selected = this.value() == item.value; });\r\n }\r\n this.SetCurrentItemLabel();\r\n }\r\n\r\n @ContentChild(SIonLabelTemplateDirective , { read: TemplateRef }) labelTemplate : TemplateRef<LabelTemplateContext<T>>;\r\n @ContentChild(SIonOptionTemplateDirective , { read: TemplateRef }) optionTemplate : TemplateRef<OptionTemplateContext<T>>;\r\n @ContentChild(SIonPlaceholderTemplateDirective, { read: TemplateRef }) placeholderTemplate: TemplateRef<PlaceholderTemplateContext>;\r\n\r\n\r\n @ViewChild('inputContainer') inputContainer: ElementRef<HTMLDivElement>;\r\n @ViewChild('inputSelectLabel') inputSelectLabel: ElementRef<HTMLDivElement>;\r\n override setFocus(event: MouseEvent | null): void { \r\n if(this.configuration().loader.error || this.loadingFromLoader || this.loading() || this.disabled()) { return; }\r\n this.Present(event);\r\n }\r\n\r\n \r\n constructor(\r\n private cdr: ChangeDetectorRef\r\n ) { \r\n super(); \r\n effect(() => {\r\n this.cdr.markForCheck(); \r\n this.UpdateLstOptions(this.searchValue());\r\n this.UpdateSelected();\r\n\r\n }, { allowSignalWrites: true }) \r\n }\r\n override async ngOnInit(): Promise<void> {\r\n await super.ngOnInit();\r\n this.SetInterface();\r\n this.configuration().loader.AddComponent(this);\r\n this.configuration().loader.Refresh(this.items());\r\n }\r\n isServiceAtivo: Signal<boolean> = computed(() => { return this.configuration().loadFromService instanceof HttpServiceAtivo; });\r\n somenteAtivos: WritableSignal<boolean> = signal<boolean>(true);\r\n\r\n @HostListener('document:keydown', ['$event'])\r\n HandleKeyboardEvent(event: KeyboardEvent): void {\r\n // [ Popover ]\r\n if(this.selectContent?.nativeElement?.contains(event.target as Node)){\r\n if(event.key == \"Tab\"){\r\n event.preventDefault();\r\n return;\r\n } else\r\n if (event.key == \"Escape\"){\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.Dismiss();\r\n return;\r\n }\r\n }\r\n // [ inputContainer ]\r\n if(this.inputContainer?.nativeElement?.contains(event.target as Node)){ \r\n if([\"ArrowDown\", \"ArrowUp\"].includes(event.key)){\r\n event.preventDefault();\r\n this.Present(event);\r\n return;\r\n }\r\n }\r\n // [ inputSelectSearchBar ]\r\n if(this.inputSearchBar?.nativeElement == event.target){\r\n if(event.key == \"Enter\"){\r\n event.preventDefault();\r\n // If the select is not ativo ignore the selected item\r\n const item = this.lstOptions[this.selectedIndex!];\r\n if(this.isServiceAtivo() && !item.item.ativo) { return; }\r\n this.Select(item);\r\n return;\r\n } else \r\n if(event.key == \"ArrowDown\"){\r\n if(this.selectedIndex == undefined){ this.selectedIndex = 0; return; }\r\n event.preventDefault();\r\n this.selectedIndex = (this.selectedIndex < this.lstOptions.length - 1 ? this.selectedIndex + 1 : this.selectedIndex)\r\n return;\r\n } else \r\n if(event.key == \"ArrowUp\"){\r\n if(this.selectedIndex == undefined){ this.selectedIndex = 0; return; }\r\n event.preventDefault();\r\n this.selectedIndex = (this.selectedIndex > 0 ? this.selectedIndex - 1 : this.selectedIndex)\r\n return;\r\n }\r\n }\r\n }\r\n selectedIndex: number | undefined = undefined;\r\n\r\n //[ Search Bar ]\r\n @ViewChild('inputSearchBar') inputSearchBar: ElementRef<HTMLInputElement>;\r\n searchBarControl: FormControl = new FormControl('');\r\n searchValue : WritableSignal<string> = signal<string>(\"\");\r\n private searchBarSubscription: Subscription | null = null;\r\n private destroy$ = new Subject<void>();\r\n public destroyed: boolean = false\r\n\r\n ngAfterViewInit(): void {\r\n const observable = this.searchBarControl.valueChanges.pipe(\r\n takeUntil(this.destroy$),\r\n distinctUntilChanged(),\r\n debounceTime(200),\r\n )\r\n //OnSearchChange\r\n this.searchBarSubscription = observable.subscribe(async (value: string) => { \r\n this.selectedIndex = undefined;\r\n this.searchValue.set(value); \r\n });\r\n }\r\n\r\n ClearSearchBar(): void {\r\n this.destroyed = true;\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n if (this.searchBarSubscription) { this.searchBarSubscription.unsubscribe(); }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ClearSearchBar();\r\n }\r\n\r\n override writeValue(obj: T | T[]): void | Promise<void> {\r\n this.value.set(obj);\r\n this.runValidation();\r\n this.UpdateSelected();\r\n }\r\n \r\n override SetValue(obj: T | T[]): void {\r\n this.value.set(obj);\r\n this.runValidation();\r\n this.UpdateSelected();\r\n this.propagateChange(this.value());\r\n if(!this.configuration().multiple){\r\n this.Dismiss();\r\n }\r\n }\r\n Clear(event: MouseEvent): void {\r\n event.stopPropagation();\r\n if(this.configuration().multiple){\r\n this.SetValue([]);\r\n }\r\n else {\r\n this.SetValue(undefined);\r\n }\r\n }\r\n public Select(itemValue: ItemValue<T>): void{\r\n const item = itemValue.value;\r\n if(this.configuration().multiple){\r\n const currentValue = this.value();\r\n if(Array.isArray(currentValue)){\r\n const index = currentValue.findIndex(p => p == item);\r\n if(index > -1){\r\n currentValue.splice(index, 1);\r\n } else {\r\n currentValue.push(item);\r\n }\r\n this.SetValue([...currentValue]);\r\n } else {\r\n this.SetValue([item]);\r\n }\r\n } else {\r\n this.SetValue(item);\r\n this.Dismiss();\r\n }\r\n }\r\n\r\n //#region [ Popover / Modal ]\r\n @ViewChild('selectContent') selectContent: ElementRef<HTMLDivElement>;\r\n \r\n @ViewChild(SIonPopoverComponent) popover: SIonPopoverComponent;\r\n @ViewChild(IonModal) modal: IonModal;\r\n @ViewChild(IonAlert) alert: IonAlert;\r\n @ViewChild(IonActionSheet) actionSheet: IonActionSheet;\r\n\r\n floatingVisible: boolean = false;\r\n renderInterface: boolean = false;\r\n @ViewChild('scrollContent') ionContent: IonContent;\r\n async Present(event: Event): Promise<void> {\r\n this.renderInterface = true;\r\n this.cdr.markForCheck();\r\n await Timeout(0); //Espera a renderização da interface\r\n if(this.interface() == SelectInterfaces.Modal){\r\n await this.modal.present();\r\n this.inputSearchBar.nativeElement.focus();\r\n } else\r\n if(this.interface() == SelectInterfaces.Popover){\r\n await this.popover.present(event);\r\n this.inputSearchBar.nativeElement.focus();\r\n } else\r\n if(this.interface() == SelectInterfaces.ActionSheet){\r\n await this.actionSheet.present();\r\n this.inputSearchBar?.nativeElement?.focus();\r\n }\r\n }\r\n\r\n async Dismiss(): Promise<void> {\r\n if(this.modal) {\r\n await this.modal.dismiss();\r\n }\r\n if(this.popover) {\r\n await this.popover.dismiss();\r\n }\r\n this.selectedIndex = undefined;\r\n if(this.inputSelectLabel?.nativeElement){ \r\n this.inputSelectLabel.nativeElement.focus();\r\n }\r\n if(this.configuration().useInfiniteScroll){\r\n this.infiniteScrollPage.set(1);\r\n }\r\n }\r\n OnDismiss(): void {\r\n this.renderInterface = false;\r\n this.floatingVisible = false; \r\n this.searchValue.set('');\r\n this.searchBarControl.setValue('');\r\n }\r\n OnPresent(): void {\r\n this.floatingVisible = true;\r\n }\r\n\r\n isArray(obj : any ) {\r\n return Array.isArray(obj)\r\n }\r\n}\r\n\r\nclass ItemValue<T>{\r\n label: string;\r\n value: T;\r\n selected: boolean = false;\r\n item : any; \r\n disabled: boolean = false;\r\n}\r\n\r\nfunction isPortrait() {\r\n return window.innerHeight > window.innerWidth;\r\n}","<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event);\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.manual-focus]=\"floatingVisible\"\r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"loading() || loadingFromLoader || disabled()\"\r\n [class.loading]=\"loading() || loadingFromLoader\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n \r\n <div class=\"w-full truncate outline-none\" [class.pr-7]=\"!configuration().clearable\" [class.pr-10]=\"configuration().clearable\" #inputSelectLabel tabindex=\"0\">\r\n @if (!configuration().multiple && currentLabel){\r\n @if(labelTemplate){\r\n <ng-container \r\n [ngTemplateOutlet]=\"labelTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: currentLabel, item: currentItems.item }\">\r\n </ng-container>\r\n }\r\n @else {\r\n <span class=\"input-select-label\"> {{currentLabel}} </span>\r\n }\r\n }\r\n @else if (configuration().multiple && isArray(currentItems) && $any(currentItems).length) {\r\n <div class=\"w-full min-h-6 overflow-hidden relative\">\r\n <div class=\"absolute left-0 top-0 overflow-x-auto flex gap-2 size-full mask-x/2\">\r\n @for (item of currentItems; track $index) {\r\n <div class=\"translucid-border rounded-lg flex items-center justify-center gap-2 pl-2\">\r\n @if(labelTemplate){\r\n <ng-container \r\n [ngTemplateOutlet]=\"labelTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item.label, item: item.item }\">\r\n </ng-container>\r\n }\r\n @else {\r\n <span class=\"input-select-label\"> {{item.label}} </span>\r\n }\r\n \r\n <div class=\"h-full aspect-square flex items-center justify-center cursor-pointer\" (click)=\"Select(item); $event.stopPropagation()\">\r\n <ion-icon name=\"close\" color=\"danger\" slot=\"icon-only\"></ion-icon>\r\n </div>\r\n <!-- <ion-button class=\"m-0 h-full\" (click)=\"Select(item.value); $event.stopPropagation()\" color=\"medium\" size=\"small\" fill=\"outline\" style=\"--border-radius: .5rem\">\r\n <ion-icon name=\"close\" color=\"danger\" slot=\"icon-only\"></ion-icon>\r\n </ion-button> -->\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n @else {\r\n @if(placeholderTemplate){\r\n <ng-container \r\n [ngTemplateOutlet]=\"placeholderTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: this.configuration().placeholder, placeholder: this.configuration().placeholder }\">\r\n </ng-container>\r\n }\r\n @else {\r\n <span class=\"input-select-label !text-medium\"> {{this.configuration().placeholder}} </span>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"absolute bottom-1 flex flex-col items-center justify-center size-7\" [class.right-1]=\"!configuration().clearable\" [class.right-8]=\"configuration().clearable\">\r\n <ion-icon class=\"-mb-0.5\" name=\"chevron-up\"></ion-icon>\r\n <ion-icon class=\"-mt-0.5\" name=\"chevron-down\"></ion-icon>\r\n </div>\r\n @if(configuration().clearable){\r\n <ion-button class=\"absolute right-1 bottom-1\" (click)=\"Clear($event)\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\">\r\n <ion-icon name=\"close\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n } \r\n\r\n <div class=\"loading-container\" [class.loading]=\"loading() || loadingFromLoader\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n <div class=\"error-container\" (click)=\"configuration().loader.Refresh()\" [class.active]=\"configuration().loader.error && !loadingFromLoader\">\r\n <ion-icon class=\"text-xl\" color=\"danger\" name=\"refresh-circle\"></ion-icon>\r\n </div>\r\n</div>\r\n\r\n@if(!disabled() && renderInterface){\r\n @switch (interface()) {\r\n @case (SelectInterfaces.Popover) {\r\n <sion-popover \r\n #popover \r\n [width]=\"inputContainer.offsetWidth + 'px'\" \r\n (onWillPresent)=\"OnPresent()\" \r\n (onDidDismiss)=\"OnDismiss()\" \r\n [anchor]=\"inputContainer\" \r\n [placement]=\"configuration().popoverConfiguration.placement\" \r\n [flip]=\"configuration().popoverConfiguration.flip\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"selectContentTemplate\"></ng-container>\r\n </sion-popover>\r\n }\r\n @case (SelectInterfaces.Modal) {\r\n <ion-modal #modal (ionModalWillPresent)=\"OnPresent()\" (didDismiss)=\"OnDismiss()\" [initialBreakpoint]=\"0.9\" [keepContentsMounted]=\"true\">\r\n <ng-template>\r\n <ion-header>\r\n <ion-toolbar>\r\n <ion-title class=\"text-center\">\r\n {{label()}}\r\n </ion-title>\r\n <ion-buttons slot=\"end\">\r\n <ion-button (click)=\"modal.dismiss()\">\r\n <ion-icon name=\"close-circle\"></ion-icon>\r\n </ion-button>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n </ion-header>\r\n \r\n <ng-container [ngTemplateOutlet]=\"selectContentTemplate\" [ngTemplateOutletContext]=\"{ modal: true }\"></ng-container>\r\n </ng-template>\r\n </ion-modal>\r\n }\r\n @case (SelectInterfaces.ActionSheet) {\r\n <ion-action-sheet #actionSheet trigger=\"open-action-sheet\" [header]=\"label()\" [buttons]=\"lstOptionsActionSheet\"></ion-action-sheet>\r\n }\r\n }\r\n}\r\n\r\n<ng-template #selectContentTemplate let-modal=\"modal\">\r\n <div #selectContent class=\"select-content\" [class.!size-full]=\"modal\">\r\n <div class=\"select-search-bar-container\">\r\n <div class=\"select-search-bar-icon-container !border-r-0 border-primary/70 bg-primary/70 shrink-0\">\r\n <ion-icon color=\"dark\" name=\"search\"></ion-icon>\r\n </div>\r\n <input #inputSearchBar tabindex=\"-1\" class=\"select-search-bar border-primary/70 !rounded-l-none\" [formControl]=\"searchBarControl\"/>\r\n </div> \r\n <ul class=\"select-item-list mask-y\" role=\"listbox\" [attr.aria-activedescendant]=\"'sion-is-' + selectedIndex\">\r\n <ion-content #scrollContent class=\"size-full\" [scrollY]=\"true\">\r\n @for (item of lstOptions; track item.value) { \r\n <ng-container \r\n [ngTemplateOutlet]=\"baseOptionTemplate\"\r\n [ngTemplateOutletContext]=\"{ item: item, index: $index }\">\r\n </ng-container>\r\n }\r\n @if(configuration().useInfiniteScroll){\r\n <ion-infinite-scroll threshold=\"10px\" *ngIf=\"lstOptions.length && lstOptions.length != lstOptionsItemValue().length\" (ionInfinite)=\"AddPage($event)\">\r\n <ion-infinite-scroll-content></ion-infinite-scroll-content>\r\n </ion-infinite-scroll>\r\n }\r\n </ion-content>\r\n </ul>\r\n @if(isServiceAtivo()){\r\n <div class=\"w-full text-xs flex items-center justify-end\">\r\n <ion-checkbox [ngModel]=\"somenteAtivos()\" (ngModelChange)=\"somenteAtivos.set($event)\" class=\"scale-75\"> Somente ativos </ion-checkbox>\r\n </div>\r\n }\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #baseOptionTemplate let-item=\"item\" let-index=\"index\">\r\n <li [id]=\"'sion-is-' + index\" class=\"select-item\" [class.disabled]=\"item.disabled\" [attr.aria-selected]=\"index == selectedIndex\" (mouseenter)=\"selectedIndex = index\" (click)=\"Select(item)\">\r\n <div class=\"select-item-checkmark-conteiner\">\r\n @if(item.selected) {\r\n <ion-icon class=\"select-item-checkmark\" color=\"primary\" name=\"checkmark\"></ion-icon>\r\n }\r\n </div>\r\n @if (optionTemplate) {\r\n <ng-container \r\n [ngTemplateOutlet]=\"optionTemplate\"\r\n [ngTemplateOutletContext]=\"{ item: item.item }\">\r\n </ng-container>\r\n }\r\n @else {\r\n <span class=\"select-item-label\"> {{item.label}} </span>\r\n }\r\n </li>\r\n</ng-template>","import { Component, ElementRef, forwardRef, input, InputSignal, OnInit, ViewChild } from '@angular/core';\r\nimport { CustomInput } from '../custom-input';\r\nimport { InputProviderFactory } from '../input-provider-factory';\r\nimport { InputStringConfiguration } from './input-string.configuration';\r\n\r\n@Component({\r\n selector: 'input-string',\r\n templateUrl: './input-string.component.html',\r\n styleUrls: ['./input-string.component.scss', '../inputs.scss'],\r\n providers: [\r\n ...InputProviderFactory.GetProviders(InputStringComponent),\r\n { provide: CustomInput, useExisting: forwardRef(() => InputStringComponent) },\r\n ],\r\n})\r\nexport class InputStringComponent extends CustomInput<string> {\r\n \r\n configuration: InputSignal<InputStringConfiguration> = input<InputStringConfiguration>(new InputStringConfiguration());\r\n\r\n @ViewChild('input') input: ElementRef<HTMLInputElement>;\r\n @ViewChild('inputContainer') inputContainer: ElementRef<HTMLDivElement>;\r\n override setFocus(event: MouseEvent | null = null): void {\r\n if(this.input && (event == null || event.target == this.inputContainer.nativeElement)) { this.input.nativeElement.focus(); } \r\n }\r\n\r\n constructor() { super(); }\r\n\r\n override writeValue(obj: string): void | Promise<void> {\r\n this.value.set(obj);\r\n this.runValidation();\r\n }\r\n}\r\n","<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n <input #input\r\n [ngModel]=\"value()\" \r\n [type]=\"configuration().type\" \r\n (ngModelChange)=\"SetValue($event)\"\r\n [disabled]=\"disabled() || loading()\"\r\n [maxlength]=\"configuration().maxlength\"\r\n (blur)=\"blur.emit($event)\"\r\n />\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>","import { Component, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren, viewChildren } from '@angular/core';\r\n\r\nimport { TableField } from '../../../../classes/inputs/table-field';\r\nimport { InputType } from '../../../inputs/input-type';\r\nimport { Utils } from '../../../../services/utils.service';\r\n\r\nimport { InputDecimalConfiguration, InputCurrencyConfiguration, InputNumberConfiguration } from '../../../inputs/input-decimal/input-decimal.configuration';\r\nimport { InputStringConfiguration } from '../../../inputs/input-string/input-string.configuration';\r\nimport { InputSelectConfiguration } from '../../../inputs/input-select/input.select.configuration';\r\nimport { InputDateConfiguration } from '../../../inputs/input-date/input-date.configuration';\r\nimport { InputFileConfiguration } from '../../../inputs/input-file/input-file.configuration';\r\nimport { InputBoolConfiguration } from '../../../inputs/input-bool/input-bool.configuration';\r\nimport { InputConfiguration } from '../../../inputs/input-configuration';\r\n\r\nimport { ImplicitProperty } from '../../../../classes/comparison/properties/implicit-property';\r\nimport { DecimalProperty } from '../../../../classes/comparison/properties/decimal-property';\r\nimport { StringProperty } from '../../../../classes/comparison/properties/string-property';\r\nimport { BoolProperty } from '../../../../classes/comparison/properties/bool-property';\r\nimport { DateProperty } from '../../../../classes/comparison/properties/date-property';\r\n\r\nimport { Comparison } from '../../../../classes/comparison/comparison';\r\nimport { InputDateComponent } from '../../../inputs/input-date/input-date.component';\r\nimport { InputCpfCnpjConfiguration } from '../../../inputs/input-cpf-cnpj/input-cpf-cnpj.configuration';\r\nimport { InputCepConfiguration } from '../../../inputs/input-cep/input-cep.configuration';\r\n\r\n@Component({\r\n selector: 'th-filter',\r\n templateUrl: './th-filter.component.html',\r\n styleUrls: ['./th-filter.component.scss'],\r\n})\r\nexport class ThFilterComponent implements OnInit {\r\n\r\n @Input() field : TableField \r\n\r\n guid: string = Utils.GenerateGUID();\r\n configuration: InputConfiguration;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.configuration = this.field.configuration;\r\n \r\n if(!this.configuration){\r\n if([InputType.Date, InputType.DateTime, InputType.Time].includes(this.field.type)){ this.configuration = new InputDateConfiguration() } else\r\n if(this.field.type == InputType.File ){ this.configuration = new InputFileConfiguration() }else\r\n if(this.field.type == InputType.Number ){ this.configuration = new InputNumberConfiguration() }else\r\n if(this.field.type == InputType.Decimal ){ this.configuration = new InputDecimalConfiguration() }else\r\n if(this.field.type == InputType.Currency){ this.configuration = new InputCurrencyConfiguration() }else\r\n if(this.field.type == InputType.String ){ this.configuration = new InputStringConfiguration() }else\r\n if(this.field.type == InputType.Select ){ this.configuration = new InputSelectConfiguration() }else\r\n if(this.field.type == InputType.TextArea){ this.configuration = new InputStringConfiguration(); }else \r\n if(this.field.type == InputType.Bool ){ this.configuration = new InputBoolConfiguration(); } else\r\n if(this.field.type == InputType.Cpf ){ this.configuration = new InputCpfCnpjConfiguration(\"CPF\"); } else\r\n if(this.field.type == InputType.Cnpj ){ this.configuration = new InputCpfCnpjConfiguration(\"CNPJ\"); } else\r\n if(this.field.type == InputType.CpfCnpj ){ this.configuration = new InputCpfCnpjConfiguration(\"CPFCNPJ\"); } else\r\n if(this.field.type == InputType.Cep ){ this.configuration = new InputCepConfiguration(); }\r\n }\r\n\r\n if(this.configuration instanceof InputSelectConfiguration){\r\n this.configuration = new InputSelectConfiguration(\r\n this.configuration.bindValue,\r\n this.configuration.bindLabel,\r\n true,\r\n true,\r\n this.configuration.loadFrom,\r\n true,\r\n );\r\n (this.configuration as InputSelectConfiguration).popoverConfiguration.flip = false;\r\n }\r\n\r\n if(this.configuration instanceof InputDateConfiguration){\r\n this.configuration = new InputDateConfiguration(true);\r\n }\r\n\r\n if(this.field.type == InputType.Bool){\r\n if(this.field.index == \"ativo\"){\r\n this.configuration = this.configuration = new InputSelectConfiguration('value', 'label', true, true, [\r\n { label: 'Somente Ativos' , value: true },\r\n { label: 'Somente Não Ativos', value: false },\r\n ]);\r\n this.model = true;\r\n }\r\n else{\r\n this.configuration = new InputSelectConfiguration('value', 'label', true, false, [\r\n { label: 'Sim', value: true },\r\n { label: 'Não', value: false },\r\n ])\r\n }\r\n }\r\n }\r\n\r\n isFilterActive: boolean = false;\r\n\r\n model: any | null = null;\r\n modelMinimum: any | null = null;\r\n modelMaximum: any | null = null;\r\n @Output('change') changeEmitter: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n Change(): void{\r\n if(((typeof(this.model) == 'string' && !this.model) || \r\n this.model == null || \r\n (Array.isArray(this.model) && this.model.length == 0)) && \r\n !this.modelMinimum && !this.modelMaximum)\r\n {\r\n this.SetInactive();\r\n return;\r\n }\r\n\r\n if([InputType.Currency, InputType.Decimal, InputType.Number].includes(this.field.type)){\r\n var Comparison: Comparison[] = [];\r\n if(this.modelMinimum){\r\n var Bigger = new DecimalProperty(this.field.index).GreaterThanOrEqual(this.modelMinimum);\r\n Comparison = [Bigger];\r\n }\r\n if(this.modelMaximum){\r\n var Smaller = new DecimalProperty(this.field.index).LessThanOrEqual(this.modelMaximum);\r\n if(Comparison.length){ Comparison.push(Smaller); } \r\n else { Comparison = [Smaller]; }\r\n }\r\n\r\n this.field.filter = Comparison;\r\n this.isFilterActive = true;\r\n this.changeEmitter.emit();\r\n return;\r\n }else\r\n if([InputType.String, InputType.TextArea, InputType.Cep, InputType.Cpf, InputType.Cnpj, InputType.CpfCnpj].includes(this.field.type)){\r\n this.field.filter = [new StringProperty(this.field.index).IsContainedIn(this.model)];\r\n this.isFilterActive = true;\r\n this.changeEmitter.emit();\r\n return;\r\n }else\r\n if(this.field.type == InputType.Select){\r\n this.field.filter = [new ImplicitProperty(this.field.index).IsContainedIn(this.model)];\r\n this.isFilterActive = true;\r\n this.changeEmitter.emit();\r\n return;\r\n }else\r\n if(this.field.type == InputType.Bool){\r\n this.field.filter = [new BoolProperty(this.field.index).Equals(this.model)];\r\n this.isFilterActive = true;\r\n this.changeEmitter.emit();\r\n return;\r\n } else\r\n if([InputType.Date, InputType.DateTime].includes(this.field.type)){\r\n if(this.modelMinimum){\r\n if(this.field.type == InputType.Date){ this.modelMinimum = this.modelMinimum.split(\"T\")[0] + \"T23:59:59\" }\r\n }\r\n if(this.modelMaximum){\r\n if(this.field.type == InputType.Date){ this.modelMaximum = this.modelMaximum.split(\"T\")[0] + \"T23:59:59\" }\r\n }\r\n \r\n var Comparison: Comparison[] = [];\r\n if(this.modelMinimum){\r\n var BiggerDate = new DateProperty(this.field.index).GreaterThanOrEqual(this.modelMinimum);\r\n Comparison = [BiggerDate];\r\n }\r\n if(this.modelMaximum){\r\n var SmallerDate = new DateProperty(this.field.index).LessThanOrEqual(this.modelMaximum);\r\n if(Comparison.length){ Comparison.push(SmallerDate); } \r\n else { Comparison = [SmallerDate] ; }\r\n }\r\n this.field.filter = Comparison;\r\n this.isFilterActive = true;\r\n this.changeEmitter.emit();\r\n return;\r\n }\r\n\r\n this.changeEmitter.emit();\r\n }\r\n\r\n SetInactive(): void{\r\n this.field.filter = null;\r\n this.isFilterActive = false;\r\n this.changeEmitter.emit();\r\n return;\r\n }\r\n\r\n @ViewChildren(InputDateComponent) lstInputDate: QueryList<InputDateComponent>;\r\n WillDismiss(): void{\r\n console.log(this.lstInputDate.toArray());\r\n this.lstInputDate.forEach(i => i.Dismiss());\r\n }\r\n}\r\n","<div #anchor class=\"h-5 aspect-square flex items-center justify-center cursor-pointer\">\r\n <ion-icon name=\"filter-circle\" (click)=\"popover.present($event)\" class=\"text-xl align-sub size-full\" [color]=\"isFilterActive ? 'secondary' : 'medium' \"></ion-icon>\r\n</div>\r\n\r\n<ion-popover class=\"th-filter\" fill=\"solid\" #popover triggerAction=\"click\" (onWillDismiss)=\"WillDismiss()\">\r\n <ng-template>\r\n <div class=\"w-72 flex flex-col gap-2 p-2\" >\r\n @if(!['Select', 'Bool', 'String', 'TextArea', 'Cpf', 'Cnpj', 'CpfCnpj', 'Cep'].includes(field.type)){\r\n <ion-label class=\"w-full flex items-center justify-center\"> Filtro - {{field.header}} </ion-label>\r\n }\r\n @switch (field.type) {\r\n @case ('String') {\r\n <input-string [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\" (blur)=\"Change()\"></input-string>\r\n }\r\n @case ('Number') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-number (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Valor Mínimo\" [configuration]=\"field.configuration\"></input-number>\r\n <input-number (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Valor Maximo\" [configuration]=\"field.configuration\"></input-number>\r\n </div>\r\n }\r\n @case ('Decimal') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-decimal (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Valor Mínimo\" [configuration]=\"field.configuration\"></input-decimal>\r\n <input-decimal (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Valor Maximo\" [configuration]=\"field.configuration\"></input-decimal>\r\n </div>\r\n }\r\n @case ('Currency') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-currency (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Valor Mínimo\" [configuration]=\"field.configuration\"></input-currency>\r\n <input-currency (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Valor Maximo\" [configuration]=\"field.configuration\"></input-currency>\r\n </div>\r\n }\r\n @case ('Select') {\r\n <input-select (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\" [configuration]=\"configuration\"></input-select>\r\n }\r\n @case ('TextArea') {\r\n <input-string (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\"></input-string>\r\n }\r\n @case ('Bool') {\r\n <input-select (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\" placeholder=\"\" [configuration]=\"configuration\"></input-select>\r\n }\r\n @case ('Date') {\r\n <div class=\"size-full grid grid-cols-1 gap-2\">\r\n <input-date (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Data Mínima\" [configuration]=\"configuration\"></input-date>\r\n <input-date (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Data Maxima\" [configuration]=\"configuration\"></input-date>\r\n </div>\r\n }\r\n @case ('DateTime') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-date-time (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Data Mínima\" [configuration]=\"configuration\"></input-date-time>\r\n <input-date-time (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Data Maxima\" [configuration]=\"configuration\"></input-date-time>\r\n </div>\r\n }\r\n @case(\"Cep\") {\r\n <input-cep (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\"></input-cep>\r\n }\r\n @case ('Cpf') {\r\n <input-cpf (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\"></input-cpf>\r\n }\r\n @case ('Cnpj') {\r\n <input-cnpj (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\"></input-cnpj>\r\n }\r\n @case ('CpfCnpj') {\r\n <input-cpf-cnpj (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\"></input-cpf-cnpj>\r\n }\r\n }\r\n </div>\r\n </ng-template>\r\n</ion-popover>\r\n","import { formatNumber } from '@angular/common';\r\nimport { Component, computed, effect, Input, input, InputSignal, model, ModelSignal, OnInit, output, OutputEmitterRef, OutputRef, Signal, TemplateRef } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { InputDecimalConfiguration } from '../../inputs/input-decimal/input-decimal.configuration';\r\nimport { InputSelectConfiguration } from '../../inputs/input-select/input.select.configuration';\r\nimport { FormatTelefoneCelular } from '../../inputs/input-telefone/input-telefone.component';\r\nimport { StorageService } from '../../../services/web/storage.service';\r\nimport { FormatCpfCnpj } from '../../inputs/input-cpf-cnpj/input-cpf-cnpj.component';\r\nimport { HttpService } from '../../../services/web/http.service'\r\nimport { TableField } from '../../../classes/inputs/table-field';\r\nimport { Comparison, CompileLstTableField } from '../../../classes/comparison/comparison';\r\nimport { FormatCep } from '../../inputs/input-cep/input-cep.component';\r\nimport { InputType } from '../../inputs/input-type';\r\nimport { Utils } from '../../../services/utils.service';\r\n\r\ntype CSSStyleStringGenerator = (index: string, object: any) => string;\r\n\r\n@Component({\r\n selector: 'default-table',\r\n templateUrl: './default-table.component.html',\r\n styleUrls: ['./default-table.component.scss'],\r\n})\r\nexport class DefaultTableComponent<Service extends HttpService, T = any> implements OnInit {\r\n\r\n @Input() acoesTemplate: TemplateRef<any>;\r\n /** Template de ações, deve ser um elemento ```<ng-template>``` */\r\n // acoesTemplate: InputSignal<TemplateRef<any>> = input<TemplateRef<any>>();\r\n\r\n /** Service a ser utilizado na listagem */\r\n service: InputSignal<Service> = input<Service>();\r\n\r\n total: ModelSignal<number> = model<number>(0);\r\n\r\n /** Número de items máximo (usando two way data binding) */\r\n limit: ModelSignal<number> = model<number>();\r\n\r\n /** Valor da pagina, setado = 1 quando troca-se o valor de limite de paginas (usando two way data binding) */\r\n page: ModelSignal<number> = model<number>(1);\r\n\r\n /** Propriedade de ordenação (usando two way data binding) */\r\n orderByProperty: ModelSignal<string | null> = model<string | null>(null);\r\n \r\n /** Propriedade de ordenação\r\n * Se = true Ordenará de menor ao maior \r\n * Se = false Ordenará de maior ao menor (usando two way data binding) */\r\n ascending: ModelSignal<boolean> = model<boolean>(true);\r\n\r\n /** Filtros (usando two way data binding) */ \r\n filter: ModelSignal<Comparison[]> = model<Comparison[]>([]);\r\n\r\n /** Evento emitido quando um dos dados é ativado. Emite o id do dado */ \r\n ativar : OutputEmitterRef<number> = output<number>();\r\n refresh: OutputEmitterRef<void> = output<void>();\r\n\r\n\r\n loading: ModelSignal<boolean> = model<boolean>(false);\r\n\r\n /** Lista de dados a ser exibidos */\r\n items: ModelSignal<T[]> = model<T[]>([]);\r\n\r\n /** Lista de campos a ser exibidos */\r\n lstTableFields: ModelSignal<TableField[]> = model<TableField[]>([]);\r\n lstTableFieldsAvailable: Signal<AvailableTableField[]> = computed<AvailableTableField[]>(() => { \r\n return this.lstTableFields().filter(p => !p.hidden).map(tf => {\r\n return new AvailableTableField(\r\n tf, \r\n this.ascending() && this.orderByProperty() == tf.index, \r\n !this.ascending() && this.orderByProperty() == tf.index\r\n );\r\n });\r\n });\r\n\r\n /** Remove os filtros no cabeçalho da tabela */\r\n noFilters: InputSignal<boolean> = input<boolean>(false);\r\n\r\n /** Aplica classes de CSS na coluna de acirdo com o retorno da função passada como parametro */\r\n columnClass: InputSignal<CSSStyleStringGenerator | null> = input<CSSStyleStringGenerator | null>(null);\r\n\r\n /** Aplica style de CSS na coluna de acirco com o retorno da função passada como parametro */\r\n columnStyle: InputSignal<CSSStyleStringGenerator | null> = input<CSSStyleStringGenerator | null>(null);\r\n\r\n /** Remove a paginação da listagem */\r\n noPagination: InputSignal<boolean> = input<boolean>(false);\r\n\r\n /** Caminho de redirecionamento do item */\r\n itemPath: InputSignal<string> = input<string>('view/:id');\r\n itemClick: OutputEmitterRef<{item: T, field: TableField}> = output<{item: T, field: TableField}>();\r\n\r\n InputType = InputType;\r\n\r\n constructor(\r\n public storageService : StorageService,\r\n private activatedRoute: ActivatedRoute,\r\n private router : Router,\r\n ) { \r\n effect(() => {\r\n for (const tf of this.lstTableFields().filter(p => p.type == InputType.Select)) {\r\n (tf.configuration as InputSelectConfiguration).loader.Refresh().then(() => this.SetLstRows());\r\n }\r\n this.SetLstRows();\r\n });\r\n }\r\n\r\n Redirect(field: TableField | undefined, item: T): void{\r\n this.itemClick.emit({item, field});\r\n if(!field){\r\n return;\r\n } else\r\n if(field.index == 'ativo'){\r\n return;\r\n }else\r\n if(field.type == 'File'){\r\n return;\r\n }else\r\n if(this.itemPath()){\r\n const id = item['id']; \r\n const path = this.itemPath().replace(\":id\", id.toString());\r\n this.router.navigate([`./${path}`], { relativeTo: this.activatedRoute })\r\n }\r\n }\r\n\r\n SetLstRows(){ \r\n this.lstRows = this.items().map(item => {\r\n return new DefaultTableRow<T>(\r\n item, \r\n item['id'],\r\n this.GetColumns(item),\r\n this.columnClass() ? this.columnClass()('acoes', item) : '',\r\n this.columnStyle() ? this.columnStyle()('acoes', item) : '',\r\n );\r\n });\r\n }\r\n \r\n lstRows: DefaultTableRow<T>[] = []; \r\n\r\n GetColumns(item: T): DefaultTableColumn[] {\r\n return this.lstTableFields().filter(p => !p.hidden).map(tf => {\r\n const value = item[tf.index];\r\n const column = new DefaultTableColumn(value, tf);\r\n column.class = this.columnClass() ? this.columnClass()(tf.index, item) : '';\r\n column.style = this.columnStyle() ? this.columnStyle()(tf.index, item) : '';\r\n \r\n if(!value){ \r\n column.label = '-' \r\n return column;\r\n }\r\n \r\n if(tf.type == InputType.Bool){\r\n column.label = \"<bool>\"\r\n } else\r\n if(tf.type == InputType.Cep){\r\n column.label = FormatCep(value);\r\n } else\r\n if(tf.type == InputType.Color){\r\n column.label = value;\r\n } else\r\n if([InputType.Cpf, InputType.Cnpj, InputType.CpfCnpj].includes(tf.type)){\r\n column.label = FormatCpfCnpj(value);\r\n } else\r\n if(tf.type == InputType.DateTime){\r\n column.class += ' font-mono';\r\n column.label = Utils.DateISOToDDMMYYYYHHMM(value);\r\n } else\r\n if(tf.type == InputType.Date){\r\n column.class += ' font-mono';\r\n column.label = Utils.DateISOToDDMMYYYYHHMM(value);\r\n } else\r\n if(tf.type == InputType.Time){\r\n column.class += ' font-mono';\r\n column.label = value;\r\n } else\r\n if([InputType.Decimal, InputType.Decimal, InputType.Currency, InputType.Number].includes(tf.type)){\r\n const configuration: InputDecimalConfiguration = tf.configuration;\r\n column.label = [\r\n configuration.prefix, \r\n formatNumber(value as number, 'pt-BR', `1.${configuration.precision}-${configuration.precision}`),\r\n configuration.sufix, \r\n ].join(' ');\r\n } else\r\n if(tf.type == InputType.File){\r\n column.label = '<file>';\r\n } else\r\n if(tf.type == InputType.Icon){\r\n column.label = 'icon';\r\n } else\r\n if(tf.type == InputType.Select){\r\n column.label = (tf.configuration as InputSelectConfiguration).loader.GetLabel(value);\r\n column.loading = !(tf.configuration as InputSelectConfiguration).loader.isLoaded;\r\n } else\r\n if([InputType.String, InputType.TextArea].includes(tf.type)){\r\n column.label = value\r\n } else\r\n if([InputType.Telefone, InputType.Celular, InputType.TelefoneCelular].includes(tf.type)){\r\n column.label = FormatTelefoneCelular(value);\r\n }\r\n\r\n return column;\r\n });\r\n }\r\n\r\n ngOnInit() { this.SetLstRows(); }\r\n\r\n SwitchOrder(tf: TableField): void{\r\n if(this.orderByProperty() != tf.index){\r\n this.orderByProperty.set(tf.index);\r\n this.ascending.set(true);\r\n } else \r\n if(this.ascending()){\r\n this.ascending.set(false);\r\n } else{ \r\n this.orderByProperty.set(null); \r\n }\r\n this.refresh.emit();\r\n }\r\n\r\n ChangeFilter(): void{\r\n this.filter.set(CompileLstTableField(this.lstTableFields()));\r\n this.page.set(1);\r\n this.refresh.emit();\r\n }\r\n\r\n Ativar(id: number): void{\r\n this.ativar.emit(id);\r\n }\r\n}\r\n\r\nclass DefaultTableRow<T>{\r\n constructor(\r\n public item: T,\r\n public id: number | undefined,\r\n public lstColumns: DefaultTableColumn[],\r\n public acoesClass: string = '',\r\n public acoesStyle: string = '',\r\n ){}\r\n} \r\n\r\nclass DefaultTableColumn{\r\n public label: string | null\r\n public loading: boolean = false;\r\n public class: string = '';\r\n public style: string = '';\r\n constructor(\r\n public value: any = null,\r\n public tf: TableField,\r\n ){}\r\n}\r\n\r\nclass AvailableTableField{\r\n constructor(\r\n public tf: TableField,\r\n public ascending: boolean,\r\n public descending: boolean,\r\n ){}\r\n}","<div class=\"size-full rounded-xl flex flex-col overflow-hidden relative\">\r\n <loading [type]=\"3\" [loading]=\"loading()\"></loading>\r\n <content-block text=\"Sem Dados\" [value]=\"!(items.length != 0 || loading)\"></content-block>\r\n\r\n <div class=\"size-full shrink relative overflow-y-auto\">\r\n <table>\r\n <thead>\r\n <tr>\r\n @if(acoesTemplate){\r\n <th scope=\"col\" class=\"p-2\"> \r\n Ações \r\n </th>\r\n }\r\n\r\n @for (tfa of lstTableFieldsAvailable(); track tfa.tf.index) {\r\n <th scope=\"col\" class=\"p-2\"> \r\n <div class=\"flex gap-2 items-center justify-start th\">\r\n @if(!noFilters()){\r\n <th-filter class=\"!text-base\" style=\"text-transform: none !important\" \r\n *ngIf=\"((tfa.tf.type != InputType.File || (tfa.tf.filter && tfa.tf.disabledChange())) && !noFilters())\"\r\n [field]=\"tfa.tf\"\r\n (change)=\"ChangeFilter()\"\r\n ></th-filter>\r\n }\r\n\r\n {{tfa.tf.header}} \r\n\r\n @if((tfa.tf.type != InputType.File || (tfa.tf.filter && tfa.tf.disabledChange())) && !noFilters()){\r\n <a [ngClass]=\"{ 'bg-light/10 !opacity-100': tfa.ascending || tfa.descending }\"\r\n class=\"order h-4 w-5 relative cursor-pointer rounded-lg opacity-0 default-transition\" \r\n (click)=\"SwitchOrder(tfa.tf)\"\r\n >\r\n <ion-icon \r\n [class.text-primary]=\"tfa.ascending\"\r\n class=\"absolute left-0 top-0\" \r\n name=\"arrow-up\"\r\n ></ion-icon> \r\n <ion-icon \r\n [class.text-primary]=\"tfa.descending\"\r\n class=\"absolute right-0 bottom-0\" \r\n name=\"arrow-down\"\r\n ></ion-icon> \r\n </a>\r\n }\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (row of lstRows; track row.id || $index) {\r\n <tr [hidden]=\"loading()\">\r\n @if(acoesTemplate){\r\n <td (click)=\"Redirect(undefined, row.item)\" class=\"whitespace-nowrap py-1 px-3 {{row.acoesClass}}\" [style]=\"row.acoesStyle\" >\r\n <ng-container *ngTemplateOutlet=\"acoesTemplate; context: { $implicit: row.item }\"></ng-container>\r\n </td>\r\n }\r\n\r\n @for (col of row.lstColumns; track col.tf.index) {\r\n <td class=\"{{col.class}} p-2 cursor-pointer\" (click)=\"Redirect(col.tf, row.item)\" [style]=\"'white-space: var(--ion-table-row-wrap);' + col.style\">\r\n @if(col.tf.index == 'ativo') {\r\n <div class=\"size-full flex items-center justify-start\" [routerLink]=\"null\">\r\n <ion-toggle [checked]=\"col.value\" [disabled]=\"loading()\" (ionChange)=\"Ativar(row.id)\" ></ion-toggle>\r\n </div>\r\n }\r\n @else if (col.tf.type == InputType.Bool){\r\n <div class=\"h-full flex items-center justify-start\">\r\n @if(col.tf.configuration.type == 'toggle') {\r\n <ion-toggle [checked]=\"col.value\" [disabled]=\"true\"></ion-toggle>\r\n }\r\n @else {\r\n <ion-checkbox [checked]=\"col.value\" [disabled]=\"true\"></ion-checkbox>\r\n }\r\n </div>\r\n }\r\n @else if (col.tf.type == InputType.File) {\r\n <download-button [(ngModel)]=\"col.value\" [configuration]=\"col.tf.configuration\"></download-button>\r\n }\r\n @else if (col.loading){\r\n <ion-spinner name=\"dots\"></ion-spinner>\r\n } @else {\r\n <span [ngClass]=\"col.class\">{{ col.label }}</span>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n <ng-content select=\"[slot=item-end]\"></ng-content>\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n @if(!noPagination()){\r\n <div class=\"shrink-0 z-[100]\">\r\n <default-pagination\r\n [page]=\"page()\"\r\n (pageChange)=\"page.set($event); refresh.emit()\"\r\n [total]=\"total()\"\r\n [limit]=\"limit()\"\r\n [length]=\"items().length\"\r\n [loading]=\"loading()\"\r\n ></default-pagination>\r\n </div>\r\n }\r\n</div>","import { Component, ContentChild, ElementRef, EventEmitter, Input, OnInit, output, Output, OutputEmitterRef, OutputRef, TemplateRef } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { firstValueFrom } from 'rxjs';\r\n\r\nimport { HttpServiceAtivo } from '../../../services/web/http.ativo.service';\r\nimport { GenericService } from '../../../services/generic.service';\r\nimport { HttpService } from '../../../services/web/http.service';\r\nimport { List } from './list';\r\nimport { TableField } from '../../../classes/inputs/table-field';\r\n\r\n/** Componente de listagem padrão\r\n * Tipo Generic deve ser um service HttpService \r\n * @link https://sapphire-ion-framework.gitbook.io/framework/componentes-default/default-list\r\n */\r\n@Component({\r\n selector: 'default-list',\r\n templateUrl: './default-list.component.html',\r\n styleUrls: ['./default-list.component.scss'],\r\n})\r\nexport class DefaultListComponent<T extends HttpService> extends List<T> implements OnInit {\r\n\r\n //#region [@Table]\r\n /** Remove o botão NOVO da listagem */\r\n @Input() noNew: boolean = false;\r\n /** Remove a paginação da listagem */\r\n @Input() noPage: boolean = false;\r\n /** Remove o elemento de pesquisa da listagem */\r\n @Input() noSearch: boolean = false;\r\n \r\n /** Aplica classes de CSS na coluna de acirdo com o retorno da função passada como parametro */\r\n @Input() columnClass: ((index:string, object: any) => string) | null = null;\r\n /** Aplica style de CSS na coluna de acirdo com o retorno da função passada como parametro */\r\n @Input() columnStyle: ((index:string, object: any) => string) | null = null;\r\n \r\n /** Desabilita o redirect de novo em um botão para ser utilizado com [onNewEmitter] */\r\n @Input() overrideNew: boolean = false;\r\n /** Evento quando o botão NOVO é clicado */\r\n @Output('onNew') onNewEmitter: EventEmitter<void> = new EventEmitter<void>();\r\n /** Template de ações, é enviado com #tmpAcoes, deve ser um elemento ```<ng-template>``` */\r\n @ContentChild('tmpAcoes', { static: false }) acoesTemplate!: TemplateRef<any>;\r\n //#endregion [@Table]\r\n\r\n /** Remove a paginação da listagem */\r\n @Input() noPagination : boolean = false;\r\n /** Remove os breadcrumbs da listagem */\r\n @Input() noBreadcrumbs: boolean = false;\r\n /** Caminho de redirecionamento do item */\r\n @Input() itemPath: string | null = \"view/:id\"\r\n\r\n itemClick: OutputEmitterRef<{item: any, field: TableField}> = output<{item: any, field: TableField}>();\r\n\r\n constructor(\r\n public override elementRef : ElementRef,\r\n public override activatedRoute: ActivatedRoute,\r\n public override genericService: GenericService\r\n ) { super(); }\r\n \r\n public async Ativar(id: number): Promise<void>{\r\n if(!(this.service instanceof HttpServiceAtivo)){ return; }\r\n this.loading = true;\r\n try{\r\n await firstValueFrom(this.service.Ativar(id));\r\n this.Refresh();\r\n }catch{\r\n this.loading = false;\r\n }\r\n }\r\n\r\n override async ngOnInit() {\r\n await super.ngOnInit(); \r\n }\r\n}","<ion-content class=\"bg-transparent\">\r\n <div class=\"wrapper\" [ngClass]=\"{'!p-0 translucid-primary-background': nested}\">\r\n @if (!noBreadcrumbs) {\r\n <ion-breadcrumbs>\r\n <ion-breadcrumb [routerLink]=\"[service ? service.route : '']\" [replaceUrl]=\"true\">{{service.title}}</ion-breadcrumb>\r\n </ion-breadcrumbs>\r\n }\r\n <ion-card>\r\n <ion-card-header [ngClass]=\"{'!px-0 !pb-0': noNew && noPage && noSearch}\">\r\n <header-list \r\n [(limit)]=\"frm.limit\"\r\n [(search)]=\"frm.search\" \r\n [(page)]=\"frm.page\" \r\n [loading]=\"loading\" \r\n (refresh)=\"Refresh()\"\r\n [noNew]=\"noNew\"\r\n [noPage]=\"noPage\"\r\n [noSearch]=\"noSearch\"\r\n [overrideNew]=\"overrideNew\"\r\n (onNew)=\"onNewEmitter.emit()\"\r\n > \r\n <ng-content slot=\"start\" select=\"[slot=header-start]\"></ng-content>\r\n <ng-content slot=\"end\" select=\"[slot=header-end]\"></ng-content>\r\n </header-list>\r\n </ion-card-header>\r\n <ion-card-content>\r\n <ion-refresher slot=\"fixed\" class=\"z-20\" (ionRefresh)=\"Refresh($event)\">\r\n <ion-refresher-content></ion-refresher-content>\r\n </ion-refresher>\r\n <div class=\"size-full ion-content-scroll-host\">\r\n @if(frm){\r\n <default-table \r\n class=\"block size-full relative\" \r\n [ngClass]=\"{ 'translate-y-0' : !loading }\"\r\n [loading]=\"loading\"\r\n [items]=\"lstDados\" \r\n [total]=\"total\"\r\n [(limit)]=\"frm.limit\"\r\n [(page)]=\"frm.page\"\r\n [(ascending)]=\"frm.ascending\"\r\n [(orderByProperty)]=\"frm.orderByProperty\"\r\n [(filter)]=\"frm.filter\"\r\n (itemClick)=\"itemClick.emit($event)\"\r\n [itemPath]=\"itemPath\"\r\n [columnClass]=\"columnClass\"\r\n [columnStyle]=\"columnStyle\"\r\n [service]=\"service\"\r\n [acoesTemplate]=\"acoesTemplate\"\r\n (refresh)=\"Refresh();\"\r\n (ativar)=\"Ativar($event)\"\r\n [lstTableFields]=\"lstTableFields\"\r\n [noPagination]=\"noPagination\"\r\n >\r\n </default-table>\r\n }\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n</ion-content>","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { firstValueFrom } from \"rxjs\";\r\nimport { AlertButton } from \"@ionic/angular\";\r\n\r\nimport { DefaultListComponent } from \"./default-list.component\";\r\nimport { GenericService } from \"../../../services/generic.service\";\r\nimport { HttpService } from \"../../../services/web/http.service\";\r\nimport { RouteData } from \"../../../classes/routes/route-data\";\r\n\r\n/** Componente padrão para a invocação do DefaultList */\r\n@Component({ template: '', styles: '' })\r\nexport abstract class AbstractList<T extends HttpService> implements OnInit {\r\n \r\n protected service: T\r\n protected genericService: GenericService\r\n protected activatedRoute: ActivatedRoute;\r\n\r\n public id: number;\r\n \r\n ngOnInit(): void { \r\n this.LoadId();\r\n if(this.activatedRoute){ this.LoadId(); }\r\n }\r\n\r\n /** Busca o id da tabela se estiver configurado */\r\n async LoadId(){\r\n if(this.activatedRoute){\r\n const data: RouteData = (await firstValueFrom(this.activatedRoute.data)) as RouteData;\r\n if(data && data.idPreloaderConfiguration){\r\n this.id = this.genericService.GetId(this.activatedRoute, data.idPreloaderConfiguration.routeDepth);\r\n }\r\n }\r\n }\r\n\r\n @ViewChild('defList') DefaultList: DefaultListComponent<T>;\r\n ionViewWillEnter(): void{\r\n if(this.DefaultList){\r\n this.DefaultList.Refresh();\r\n }\r\n }\r\n \r\n Delete(id: number): void {\r\n const buttons: AlertButton[] = [\r\n { text: \"Cancelar\", role: 'cancel' },\r\n { text: \"OK\" , role: 'confirm', handler: (() => { \r\n this.service.Delete(id).subscribe({ \r\n next: (() => { this.DefaultList.Refresh(); this.genericService.PresentToastSuccess(\"Excluido com sucesso!\"); }) \r\n }); \r\n }) \r\n }\r\n ]\r\n\r\n this.genericService.PresentAlert(\"Atenção!\", \"Tem certeza que deseja excluir o dado?\", buttons)\r\n }\r\n}","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { IonBackButton, NavController } from '@ionic/angular';\r\nimport { ActivatedRoute, UrlTree } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'header-view',\r\n templateUrl: './header-view.component.html',\r\n styleUrls: ['./header-view.component.scss'],\r\n})\r\nexport class HeaderViewComponent implements OnInit {\r\n\r\n @Input() novo: boolean = false;\r\n @Input() loading: boolean;\r\n @Input() progress: number | null = null;\r\n @Output('save') saveEmitter: EventEmitter<void> = new EventEmitter<void>(); \r\n\r\n @Input() noBack: boolean = false;\r\n @Input() noNew : boolean = false;\r\n @Input() useDefaultRouting: boolean = false;\r\n /** \r\n * Rota para voltar, caso não seja definida, o componente irá tentar usar rota do ionic\r\n */\r\n @Input() backRouterLink: string | any[] | UrlTree | undefined = undefined;\r\n\r\n constructor(\r\n private navController: NavController,\r\n private activatedRoute: ActivatedRoute\r\n ) { }\r\n\r\n ngOnInit() {}\r\n\r\n protected get DefaultBackRoute(){\r\n const fullRoute = window.location.pathname.split('/')\r\n\r\n const li = fullRoute[fullRoute.length - 1];\r\n var offset = 1;\r\n if(Number(li)){ offset++; }\r\n let route: string[] = []\r\n for(let i = 0; i < fullRoute.length - offset; i++){ route.push(fullRoute[i]); }\r\n return route.join('/');\r\n }\r\n\r\n @ViewChild(IonBackButton) IonBackButtonElement: IonBackButton; \r\n public Back($event = null){\r\n this.IonBackButtonElement.onClick($event)\r\n }\r\n @ViewChild('new') NewIonButtonElement: ElementRef; \r\n public New(){\r\n if(!this.novo){\r\n this.navController.navigateForward(['../'], { relativeTo: this.activatedRoute});\r\n }\r\n }\r\n\r\n Save(): void{\r\n this.saveEmitter.emit();\r\n }\r\n}\r\n","<div class=\"w-full h-7 flex\">\r\n <div class=\"w-1/2 flex items-center justify-start gap-3\">\r\n @if(!noBack){\r\n @if(useDefaultRouting || backRouterLink){\r\n <ion-button class=\"m-0\" fill=\"clear\" size=\"small\" [routerLink]=\"backRouterLink ? backRouterLink : DefaultBackRoute\">\r\n <ion-icon class=\"text-[1.7rem]\" name=\"chevron-back\" slot=\"icon-only\"></ion-icon>\r\n <ion-text class=\"text-base\">Voltar</ion-text>\r\n </ion-button>\r\n }\r\n @else{\r\n <ion-back-button style=\"--min-height: 100%;\" [disabled]=\"loading\" text=\"Voltar\" [defaultHref]=\"DefaultBackRoute\"></ion-back-button>\r\n }\r\n\r\n <!-- <ion-card button [disabled]=\"loading\" class=\"h-full w-12 m-0 default-transition\" style=\"border-color: var(--ion-color-primary)\">\r\n <ion-card-content class=\"p-0 bg-transparent\">\r\n @if(!useDefaultRouting){\r\n <ion-back-button class=\"scale-75 size-full\" style=\"--min-height: 100%;\" text=\"\" [defaultHref]=\"BackRoute\" >\r\n </ion-back-button>\r\n }@else {\r\n <ion-button class=\"size-full\" size=\"small\" fill=\"clear\" [routerLink]=\"BackRoute\">\r\n <ion-icon name=\"chevron-back\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n }\r\n </ion-card-content>\r\n </ion-card> -->\r\n }\r\n @if(!noBack){\r\n <div class=\"h-full border-r-2 border-r-primary border-solid mask-y/50\"></div>\r\n }\r\n\r\n <div class=\"relative\">\r\n <ion-button class=\"-mx-2\" [disabled]=\"loading\" fill=\"clear\" size=\"small\" (click)=\"Save()\">\r\n <ion-icon class=\"text-base\" slot=\"start\" name=\"save\"></ion-icon>\r\n <ion-text class=\"text-base\">\r\n Salvar\r\n </ion-text>\r\n </ion-button>\r\n\r\n <div class=\"absolute w-[125%] h-[125%] -top-[12.5%] -left-[12.5%] flex flex-col items-center justify-center default-transition backdrop-blur-sm\" [ngClass]=\"{'opacity-0 -translate-y-8': !loading}\">\r\n <ion-text color=\"success\" class=\"text-sm mt-1\"><b>\r\n @if(progress){\r\n {{(progress * 100) | number: '1.1-1'}}%\r\n }@else {\r\n {{0 | number: '1.1-1'}}%\r\n }\r\n </b></ion-text>\r\n <ion-progress-bar [value]=\"progress\" color=\"success\" class=\"w-full default-transition\"></ion-progress-bar>\r\n </div>\r\n </div>\r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n </div>\r\n <div class=\"w-1/2 flex justify-end items-center gap-2\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n @if(!(noNew || novo)){\r\n <ion-button #new [routerLink]=\"['../']\" class=\"m-0\" fill=\"clear\" size=\"small\">\r\n <ion-icon class=\"text-base\" name=\"add\" slot=\"start\"></ion-icon> \r\n <ion-text class=\"text-base\">\r\n Novo\r\n </ion-text>\r\n </ion-button>\r\n }\r\n </div>\r\n</div>","import { Component, ElementRef, EventEmitter, HostListener, inject, Input, OnInit, Output, QueryList, ViewChild, viewChild, ViewChildren } from \"@angular/core\";\r\nimport { FormBuilder, FormGroup } from \"@angular/forms\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\n\r\nimport { HttpService } from \"../../../services/web/http.service\";\r\nimport { HttpServiceAtivo } from \"../../../services/web/http.ativo.service\";\r\nimport { GenericService } from \"../../../services/generic.service\";\r\nimport { TableFieldFormBuilder } from \"../../../classes/inputs/table-field-form-builder\";\r\nimport { NavController } from \"@ionic/angular\";\r\nimport { firstValueFrom, lastValueFrom } from \"rxjs\";\r\nimport { HeaderViewComponent } from \"./header-view/header-view.component\";\r\nimport { TableField } from \"../../../classes/inputs/table-field\";\r\nimport { RouteData } from \"../../../classes/routes/route-data\";\r\nimport { CustomInput } from \"../../inputs/custom-input\";\r\nimport { Timeout } from \"../../../services/utils.service\";\r\n\r\n@Component({ template: '', styles: '' })\r\nexport abstract class View<T extends HttpService | HttpServiceAtivo> implements OnInit {\r\n /** Id do dado a ser carregado */\r\n @Input() id : number | null = null;\r\n @Input() loading : boolean = false;\r\n @Input() submitted: boolean = false;\r\n /** Progresso de salvamento */\r\n @Input() progress : number;\r\n /** Service a ser utlizado na view */\r\n @Input() service : T;\r\n \r\n protected genericService: GenericService;\r\n protected activatedRoute: ActivatedRoute;\r\n protected elementRef: ElementRef;\r\n protected fb: FormBuilder;\r\n\r\n protected nested: boolean = false;\r\n\r\n constructor(){\r\n this.genericService = inject(GenericService)\r\n this.activatedRoute = inject(ActivatedRoute)\r\n this.elementRef = inject(ElementRef)\r\n this.fb = inject(FormBuilder)\r\n }\r\n\r\n /** Lista de TableFields a serem invocados de acordo com sua configuração.\r\n * Automaticamente preenchido com service.lstTableFieldsView ou service.lstTableFields quando não informado\r\n */\r\n @Input() lstTableFields: TableField[] = [];\r\n @Input() public redirectPath: string | null = \"/view/:id\"\r\n \r\n \r\n @ViewChild('.wrapper') Wrapper: HTMLElement;\r\n async ngOnInit() {\r\n if(this.lstTableFields.length == 0){\r\n if(this.service.lstTableFieldsView.length != 0){\r\n this.lstTableFields = this.service.lstTableFieldsView;\r\n }else{\r\n this.lstTableFields = this.service.lstTableFields;\r\n }\r\n }\r\n\r\n if(this.id == null){\r\n this.id = this.genericService.GetId(this.activatedRoute, 0);\r\n }\r\n \r\n if(!this.service){ console.warn(\"[ View service is not valid! ]\"); }\r\n if (instanceOfViewWillCreateForm(this)) { this.OnViewWillCreateForm() }\r\n await this.CreateForm();\r\n if (instanceOfViewDidCreateForm(this)) { this.OnViewDidCreateForm() }\r\n \r\n if(this.elementRef && this.elementRef.nativeElement && this.elementRef.nativeElement.parentElement){\r\n this.nested = (this.elementRef.nativeElement.parentElement.tagName as string).toUpperCase() != \"ION-CONTENT\";\r\n }else{\r\n this.nested = true;\r\n }\r\n\r\n await this.Refresh();\r\n await this.FocusOnFirstField();\r\n\r\n }\r\n\r\n @ViewChildren(CustomInput) lstCustomInputs: QueryList<CustomInput<any>>;\r\n async FocusOnFirstField(): Promise<void> {\r\n try{\r\n await Timeout(100);\r\n this.lstCustomInputs.first.setFocus(null);\r\n }catch{}\r\n }\r\n\r\n @Output('ViewDidRefresh') ViewDidRefreshEmitter: EventEmitter<void> = new EventEmitter<void>();\r\n async Refresh() {\r\n this.loading = true;\r\n try{\r\n await this.Load();\r\n }finally{ }\r\n this.loading = false;\r\n this.ViewDidRefreshEmitter.emit();\r\n }\r\n\r\n async Load(): Promise<void>{\r\n if(!this.id){ return; }\r\n const res = await firstValueFrom(this.service.Get(this.id));\r\n this.frm.patchValue(res);\r\n }\r\n\r\n frm: FormGroup;\r\n async CreateForm() {\r\n this.frm = TableFieldFormBuilder.create(this.lstTableFields, this.fb);\r\n await this.LoadIdComparison();\r\n }\r\n\r\n async LoadIdComparison(): Promise<void> {\r\n try{\r\n const data: RouteData = await firstValueFrom(this.activatedRoute.data) as RouteData;\r\n if(!data){ return; }\r\n const id = this.genericService.GetId(this.activatedRoute, data.idPreloaderConfiguration.routeDepth);\r\n \r\n if(!id){ return; }\r\n\r\n this.frm.controls[data.idPreloaderConfiguration.propertyName].setValue(id);\r\n this.lstTableFields.find(p => p.index == data.idPreloaderConfiguration.propertyName).disabled = true;\r\n }catch{ }\r\n }\r\n\r\n /** Emite o id da entidade salva apos o salvamento */\r\n @Output('Save') SaveEmitter: EventEmitter<number> = new EventEmitter<number>();\r\n async Save() {\r\n await lastValueFrom(this.service.Save(this.frm, this));\r\n this.SaveEmitter.emit(this.id);\r\n }\r\n\r\n public get BackRoute(){\r\n const fullRoute = window.location.pathname.split('/')\r\n\r\n const li = fullRoute[fullRoute.length - 1];\r\n var offset = 1;\r\n if(Number(li)){ offset++; }\r\n let route: string[] = []\r\n for(let i = 0; i < fullRoute.length - offset; i++){ route.push(fullRoute[i]); }\r\n return route.join('/');\r\n }\r\n\r\n public GetCurrentRouting(): ActivatedRoute { return this.activatedRoute; }\r\n\r\n protected navController: NavController;\r\n protected NavigateToList(): void{ this.navController.navigateBack(this.BackRoute); }\r\n\r\n\r\n @ViewChild(HeaderViewComponent) HeaderViewComponentElement: HeaderViewComponent;\r\n\r\n @HostListener('window:keydown',['$event'])\r\n onKeyPress($event: KeyboardEvent) {\r\n if(!(this.elementRef.nativeElement.contains(document.activeElement) || document.activeElement == this.elementRef.nativeElement)){\r\n return;\r\n }\r\n if($event.key == 'Escape'){\r\n this.HeaderViewComponentElement.Back($event);\r\n $event.preventDefault();\r\n return;\r\n }\r\n if(($event.ctrlKey || $event.metaKey) && ($event.key == 'Enter')){\r\n this.Save();\r\n $event.preventDefault();\r\n return;\r\n }\r\n if($event.altKey && $event.key == 'Insert'){\r\n this.HeaderViewComponentElement.New();\r\n $event.preventDefault();\r\n return;\r\n }\r\n }\r\n}\r\n\r\nexport interface ViewWillCreateForm{\r\n OnViewWillCreateForm(): void | any;\r\n} \r\nfunction instanceOfViewWillCreateForm(object: any): object is ViewWillCreateForm {\r\n return 'OnViewWillCreateForm' in object;\r\n}\r\nexport interface ViewDidCreateForm {\r\n OnViewDidCreateForm(): void | any;\r\n} \r\nfunction instanceOfViewDidCreateForm(object: any): object is ViewDidCreateForm {\r\n return 'OnViewDidCreateForm' in object;\r\n}\r\n\r\n","import { Component, ElementRef, forwardRef, input, InputSignal, OnInit, ViewChild } from '@angular/core';\r\nimport { InputBoolConfiguration } from './input-bool.configuration';\r\nimport { InputProviderFactory } from '../input-provider-factory';\r\nimport { CustomInput } from '../custom-input';\r\nimport { IonCheckbox, IonToggle } from '@ionic/angular';\r\n\r\n@Component({\r\n selector: 'input-bool',\r\n templateUrl: './input-bool.component.html',\r\n styleUrls: ['./input-bool.component.scss', '../inputs.scss'],\r\n providers: [\r\n ...InputProviderFactory.GetProviders(InputBoolComponent), \r\n { provide: CustomInput, useExisting: forwardRef(() => InputBoolComponent) },\r\n ],\r\n})\r\n\r\n\r\n\r\nexport class InputBoolComponent extends CustomInput<boolean> {\r\n\r\n configuration: InputSignal<InputBoolConfiguration> = input<InputBoolConfiguration>(new InputBoolConfiguration());\r\n\r\n @ViewChild(IonCheckbox) ionCheckbox: ElementRef<IonCheckbox>;\r\n @ViewChild(IonToggle) ionToggle: ElementRef<IonToggle>;\r\n @ViewChild('inputContainer') inputContainer: ElementRef<HTMLDivElement>;\r\n override setFocus(event: MouseEvent | null): void { \r\n if(this.inputContainer) { \r\n this.inputContainer.nativeElement.focus(); \r\n this.SetValue(!this.value);\r\n }\r\n }\r\n\r\n constructor() { super(); }\r\n\r\n override writeValue(obj: boolean): void | Promise<void> {\r\n this.value.set(obj);\r\n this.runValidation();\r\n }\r\n}\r\n","<div \r\n #inputContainer\r\n tabindex=\"-1\"\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n @if(configuration().type == \"checkbox\"){\r\n <ion-checkbox (click)=\"$event.stopPropagation()\" #checkbox [ngModel]=\"value()\" (ngModelChange)=\"SetValue(!value())\" class=\"text-sm text-dark my-1.5\">\r\n {{label()}}\r\n </ion-checkbox>\r\n }\r\n @else { \r\n <!-- toogle -->\r\n <ion-toggle (click)=\"$event.stopPropagation()\" #toggle [ngModel]=\"value()\" (ngModelChange)=\"SetValue(!value())\" class=\"text-sm text-dark\">\r\n {{label()}}\r\n </ion-toggle>\r\n }\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>","import { Component, ElementRef, forwardRef, ViewChild } from '@angular/core';\r\nimport { CustomInput } from '../custom-input';\r\nimport { Clipboard } from '@capacitor/clipboard';\r\nimport { GenericService } from '../../../services/generic.service';\r\nimport { SIonPopoverComponent } from '../../popover/sion-popover/sion-popover.component';\r\nimport { MaskitoMaskExpression, MaskitoOptions } from '@maskito/core';\r\nimport { InputProviderFactory } from '../input-provider-factory';\r\n\r\ntype RGB = { r: number, g: number, b: number };\r\ntype HSL = { h: number, l: number, s: number };\r\n\r\n@Component({\r\n selector: 'input-color',\r\n templateUrl: './input-color.component.html',\r\n styleUrls: ['./input-color.component.scss', '../inputs.scss'],\r\n providers: [\r\n ...InputProviderFactory.GetProviders(InputColorComponent),\r\n { provide: CustomInput, useExisting: forwardRef(() => InputColorComponent) },\r\n ],\r\n})\r\nexport class InputColorComponent extends CustomInput<string> {\r\n \r\n // configuration: InputSignal<InputStringConfiguration> = input<InputStringConfiguration>(new InputStringConfiguration());\r\n\r\n @ViewChild('input') input: ElementRef<HTMLInputElement>;\r\n @ViewChild('inputContainer') inputContainer: ElementRef<HTMLDivElement>;\r\n override setFocus(event: MouseEvent | null): void {\r\n if(this.input && (event == null || event.target == this.inputContainer.nativeElement)) { this.input.nativeElement.focus(); } \r\n }\r\n\r\n constructor(\r\n private genericService: GenericService\r\n ) { super(); this.value.set(\"\"); }\r\n\r\n\r\n @ViewChild(SIonPopoverComponent) popover: SIonPopoverComponent;\r\n\r\n rgbColor : RGB = { r: 255, g: 0, b: 0 };\r\n hslColor : HSL = { h: 0, s: 100, l: 50 };\r\n alpha : number = 100\r\n override writeValue(obj: string): void | Promise<void> {\r\n this.value.set(obj);\r\n this.runValidation();\r\n }\r\n\r\n override SetValue(value: string): void {\r\n this.value.set(value);\r\n this.runValidation();\r\n this.propagateChange(value);\r\n }\r\n\r\n rendering: boolean = false;\r\n async Present(event: MouseEvent): Promise<void> {\r\n this.rendering = true;\r\n await this.popover.present(event);\r\n this.InitializeGradient()\r\n this.InitializeHueSlider()\r\n this.InitializeAlphaSlider()\r\n this.DrawColorGradient()\r\n this.DrawHueSlider()\r\n this.DrawAlphaSlider()\r\n this.rendering = false;\r\n }\r\n\r\n //#region [ Gradient ]\r\n indicatorX: number = 100\r\n indicatorY: number = 0\r\n\r\n @ViewChild('gradient' ) gradient: ElementRef<HTMLCanvasElement>;\r\n private isGradientDragging: boolean = false;\r\n private gradientCtx: CanvasRenderingContext2D;\r\n private gradientWidth: number = 0;\r\n private gradientHeight: number = 0;\r\n InitializeGradient(): void {\r\n const gradient = this.gradient.nativeElement;\r\n this.gradientWidth = gradient.width; \r\n this.gradientHeight = gradient.height; \r\n this.gradientCtx = gradient.getContext('2d');\r\n\r\n gradient.addEventListener('mousedown' , this.StartGradientDrag.bind(this));\r\n gradient.addEventListener('mousemove' , this.GradientDrag.bind(this));\r\n gradient.addEventListener('mouseup' , this.EndGradientDrag.bind(this));\r\n gradient.addEventListener('mouseleave', this.EndGradientDrag.bind(this));\r\n\r\n // Touch events\r\n gradient.addEventListener('touchstart', this.HandleGradientTouch.bind(this));\r\n gradient.addEventListener('touchmove' , this.HandleGradientTouch.bind(this));\r\n gradient.addEventListener('touchend' , this.EndGradientDrag.bind(this));\r\n }\r\n StartGradientDrag(e: MouseEvent): void {\r\n this.isGradientDragging = true\r\n this.HandleColorSelection(e.offsetX, e.offsetY)\r\n }\r\n GradientDrag(e: MouseEvent): void {\r\n if (this.isGradientDragging) {\r\n this.HandleColorSelection(e.offsetX, e.offsetY)\r\n }\r\n }\r\n EndGradientDrag(): void {\r\n this.isGradientDragging = false\r\n }\r\n HandleGradientTouch(e: TouchEvent): void {\r\n e.preventDefault()\r\n if (e.type === \"touchstart\") {\r\n this.isGradientDragging = true\r\n }\r\n\r\n if (this.isGradientDragging) {\r\n const rect = this.gradient.nativeElement.getBoundingClientRect()\r\n const touch = e.touches[0]\r\n const x = touch.clientX - rect.left\r\n const y = touch.clientY - rect.top\r\n this.HandleColorSelection(x, y)\r\n }\r\n }\r\n\r\n HandleColorSelection(x: number, y: number): void {\r\n // Constrain coordinates to canvas bounds\r\n x = Math.max(0, Math.min(x, this.gradientWidth))\r\n y = Math.max(0, Math.min(y, this.gradientHeight))\r\n\r\n // Store the raw position percentage for the indicator\r\n this.indicatorX = (x / this.gradientWidth) * 100\r\n this.indicatorY = (y / this.gradientHeight) * 100\r\n\r\n // Calculate saturation and lightness based on position\r\n this.hslColor.s = Math.round(this.indicatorX)\r\n // Adjust lightness calculation:\r\n // - Top of canvas (y=0) should be white (lightness=100) on the left and pure color (lightness=50) on the right\r\n // - Bottom of canvas (y=height) should be black (lightness=0)\r\n if (this.hslColor.s === 0) {\r\n // Left edge is always white to black, regardless of y position\r\n this.hslColor.l = Math.round(100 - this.indicatorY)\r\n } else {\r\n // For other saturation values, top is 50-100% lightness (based on saturation), bottom is 0%\r\n const maxLightness = 100 - this.hslColor.s / 2\r\n this.hslColor.l = Math.round(maxLightness - (this.indicatorY / 100) * maxLightness)\r\n }\r\n\r\n // Update selected color\r\n this.UpdateSelectedColor(this.hslColor.s, this.hslColor.l, true)\r\n\r\n // Redraw alpha slider with new color\r\n this.DrawAlphaSlider()\r\n }\r\n //#endregion [ Gradient ]\r\n \r\n UpdateSelectedColor(saturation: number | null = null, lightness: number | null = null, emitChanges: boolean = false): void {\r\n // Update HSL values\r\n if(saturation != null){\r\n this.hslColor.s = saturation\r\n }\r\n if(lightness != null){\r\n this.hslColor.l = lightness\r\n }\r\n // Convert HSL to RGB\r\n const rgb = HSLToRGB(this.hslColor);\r\n\r\n this.rgbColor = rgb\r\n\r\n // Convert RGB to HEX\r\n const hex = RGBToHex(rgb, this.alpha / 100);\r\n if(emitChanges){ \r\n this.SetValue(hex);\r\n } else { \r\n this.value.set(hex);\r\n }\r\n }\r\n\r\n //#region [ Hue Slider ]\r\n @ViewChild(\"hueSlider\" ) hueSlider: ElementRef<HTMLCanvasElement>\r\n private isHueDragging: boolean = false;\r\n private hueCtx: CanvasRenderingContext2D;\r\n private hueSliderWidth: number = 0;\r\n private hueSliderHeight: number = 0;\r\n InitializeHueSlider(): void {\r\n const hueSlider = this.hueSlider.nativeElement\r\n this.hueSliderWidth = hueSlider.width;\r\n this.hueSliderHeight = hueSlider.height;\r\n this.hueCtx = hueSlider.getContext(\"2d\")\r\n\r\n hueSlider.addEventListener(\"mousedown\" , this.StartHueDrag.bind(this))\r\n hueSlider.addEventListener(\"mousemove\" , this.HueDrag.bind(this))\r\n hueSlider.addEventListener(\"mouseup\" , this.EndHueDrag.bind(this))\r\n hueSlider.addEventListener(\"mouseleave\", this.EndHueDrag.bind(this))\r\n\r\n // Touch events\r\n hueSlider.addEventListener(\"touchstart\", this.HandleHueTouch.bind(this))\r\n hueSlider.addEventListener(\"touchmove\" , this.HandleHueTouch.bind(this))\r\n hueSlider.addEventListener(\"touchend\" , this.EndHueDrag.bind(this))\r\n }\r\n\r\n StartHueDrag(e: MouseEvent): void {\r\n this.isHueDragging = true\r\n this.HandleHueSelection(e.offsetX)\r\n }\r\n\r\n HueDrag(e: MouseEvent): void {\r\n if (this.isHueDragging) {\r\n this.HandleHueSelection(e.offsetX)\r\n }\r\n }\r\n\r\n EndHueDrag(): void {\r\n this.isHueDragging = false\r\n }\r\n HandleHueTouch(e: TouchEvent): void {\r\n e.preventDefault()\r\n if (e.type === \"touchstart\") {\r\n this.isHueDragging = true\r\n }\r\n\r\n if (this.isHueDragging) {\r\n const rect = this.hueSlider.nativeElement.getBoundingClientRect()\r\n const touch = e.touches[0]\r\n const x = touch.clientX - rect.left\r\n this.HandleHueSelection(x)\r\n }\r\n }\r\n HandleHueSelection(x: number): void {\r\n // Constrain x to canvas bounds\r\n x = Math.max(0, Math.min(x, this.hueSliderWidth))\r\n\r\n // Calculate hue based on x position (0-360)\r\n this.hslColor.h = Math.round((x / this.hueSliderWidth) * 360)\r\n\r\n // Redraw color gradient with new hue\r\n this.DrawColorGradient()\r\n\r\n // Redraw alpha slider with new color\r\n this.DrawAlphaSlider()\r\n\r\n // Update selected color\r\n this.UpdateSelectedColor(this.hslColor.s, this.hslColor.l, true)\r\n }\r\n //#endregion [ Hue Slider ]\r\n\r\n //#region [ Alpha Slider ]\r\n @ViewChild(\"alphaSlider\") alphaSlider: ElementRef<HTMLCanvasElement>\r\n private isAlphaDragging: boolean = false;\r\n private alphaCtx: CanvasRenderingContext2D;\r\n private alphaSliderWidth: number = 0;\r\n private alphaSliderHeight: number = 0;\r\n InitializeAlphaSlider(): void {\r\n const alphaSlider = this.alphaSlider.nativeElement;\r\n this.alphaSliderHeight = alphaSlider.height;\r\n this.alphaSliderWidth = alphaSlider.width;\r\n\r\n this.alphaCtx = alphaSlider.getContext(\"2d\")\r\n\r\n alphaSlider.addEventListener(\"mousedown\" , this.StartAlphaDrag.bind(this))\r\n alphaSlider.addEventListener(\"mousemove\" , this.AlphaDrag.bind(this))\r\n alphaSlider.addEventListener(\"mouseup\" , this.EndAlphaDrag.bind(this))\r\n alphaSlider.addEventListener(\"mouseleave\", this.EndAlphaDrag.bind(this))\r\n\r\n // Touch events\r\n alphaSlider.addEventListener(\"touchstart\", this.HandleAlphaTouch.bind(this))\r\n alphaSlider.addEventListener(\"touchmove\" , this.HandleAlphaTouch.bind(this))\r\n alphaSlider.addEventListener(\"touchend\" , this.EndAlphaDrag.bind(this))\r\n }\r\n StartAlphaDrag(e: MouseEvent): void {\r\n this.isAlphaDragging = true\r\n this.HandleAlphaSelection(e.offsetX)\r\n }\r\n\r\n AlphaDrag(e: MouseEvent): void {\r\n if (this.isAlphaDragging) {\r\n this.HandleAlphaSelection(e.offsetX)\r\n }\r\n }\r\n\r\n EndAlphaDrag(): void {\r\n this.isAlphaDragging = false\r\n }\r\n\r\n HandleAlphaTouch(e: TouchEvent): void {\r\n e.preventDefault()\r\n if (e.type === \"touchstart\") {\r\n this.isAlphaDragging = true\r\n }\r\n\r\n if (this.isAlphaDragging) {\r\n const rect = this.alphaSlider.nativeElement.getBoundingClientRect()\r\n const touch = e.touches[0]\r\n const x = touch.clientX - rect.left\r\n this.HandleAlphaSelection(x)\r\n }\r\n }\r\n\r\n HandleAlphaSelection(x: number): void {\r\n // Constrain x to canvas bounds\r\n x = Math.max(0, Math.min(x, this.alphaSliderWidth))\r\n\r\n // Calculate alpha based on x position (0-100)\r\n this.alpha = Math.round((x / this.alphaSliderWidth) * 100)\r\n\r\n // Update selected color\r\n this.UpdateSelectedColor(this.hslColor.s, this.hslColor.l, true)\r\n }\r\n //#endregion [ Alpha Slider ]\r\n\r\n SetColorFromHex(hexColor: string, updateCanvas: boolean = true, emitChanges: boolean = false): void {\r\n // Remove # if present\r\n hexColor = hexColor.replace(/^#/, \"\")\r\n\r\n let r: number, g: number, b: number, a = 1\r\n\r\n // Parse hex values based on string length\r\n if (hexColor.length === 3) {\r\n // Short hex (#RGB)\r\n r = Number.parseInt(hexColor.charAt(0) + hexColor.charAt(0), 16)\r\n g = Number.parseInt(hexColor.charAt(1) + hexColor.charAt(1), 16)\r\n b = Number.parseInt(hexColor.charAt(2) + hexColor.charAt(2), 16)\r\n } else \r\n if (hexColor.length === 6) {\r\n // Standard hex (#RRGGBB)\r\n r = Number.parseInt(hexColor.substring(0, 2), 16)\r\n g = Number.parseInt(hexColor.substring(2, 4), 16)\r\n b = Number.parseInt(hexColor.substring(4, 6), 16)\r\n } else \r\n if (hexColor.length === 8) {\r\n // Hex with alpha (#RRGGBBAA)\r\n r = Number.parseInt(hexColor.substring(0, 2), 16)\r\n g = Number.parseInt(hexColor.substring(2, 4), 16)\r\n b = Number.parseInt(hexColor.substring(4, 6), 16)\r\n a = Number.parseInt(hexColor.substring(6, 8), 16) / 255\r\n } else {\r\n // Invalid hex, use default\r\n console.error(\"Invalid hex color format\")\r\n return;\r\n }\r\n\r\n // Update RGB color\r\n this.rgbColor = { r, g, b }\r\n\r\n // Convert RGB to HSL\r\n this.hslColor = RGBToHSL(this.rgbColor)\r\n\r\n // Update alpha\r\n this.alpha = Math.round(a * 100)\r\n\r\n // Update selected color\r\n const hex = RGBToHex(this.rgbColor, a)\r\n if(emitChanges){ \r\n this.SetValue(hex);\r\n } else { \r\n this.value.set(hex);\r\n }\r\n\r\n if(updateCanvas){\r\n // Calculate indicator position\r\n this.UpdateIndicatorPositions()\r\n \r\n // Redraw components\r\n this.DrawColorGradient()\r\n this.DrawAlphaSlider()\r\n }\r\n \r\n }\r\n\r\n DrawColorGradient(): void {\r\n const ctx = this.gradientCtx;\r\n\r\n // Clear canvas\r\n ctx.clearRect(0, 0, this.gradientWidth, this.gradientHeight)\r\n\r\n // Draw the pure hue color at the top-right corner\r\n ctx.fillStyle = `hsl(${this.hslColor.h}, 100%, 50%)`\r\n ctx.fillRect(0, 0, this.gradientWidth, this.gradientHeight)\r\n\r\n // White gradient (horizontal - saturation)\r\n const whiteGradient = ctx.createLinearGradient(0, 0, this.gradientWidth, 0)\r\n whiteGradient.addColorStop(0, \"white\")\r\n whiteGradient.addColorStop(1, \"rgba(255, 255, 255, 0)\")\r\n ctx.fillStyle = whiteGradient\r\n ctx.fillRect(0, 0, this.gradientWidth, this.gradientHeight)\r\n\r\n // Black gradient (vertical - brightness)\r\n const blackGradient = ctx.createLinearGradient(0, 0, 0, this.gradientHeight)\r\n blackGradient.addColorStop(0, \"rgba(0, 0, 0, 0)\")\r\n blackGradient.addColorStop(1, \"black\")\r\n ctx.fillStyle = blackGradient\r\n ctx.fillRect(0, 0, this.gradientWidth, this.gradientHeight)\r\n }\r\n\r\n DrawHueSlider(): void {\r\n const ctx = this.hueCtx\r\n\r\n // Create hue gradient\r\n const gradient = ctx.createLinearGradient(0, 0, this.hueSliderWidth, 0)\r\n for (let i = 0; i <= 360; i += 60) {\r\n gradient.addColorStop(i / 360, `hsl(${i}, 100%, 50%)`)\r\n }\r\n\r\n ctx.fillStyle = gradient\r\n ctx.fillRect(0, 0, this.hueSliderWidth, this.hueSliderHeight)\r\n }\r\n\r\n DrawAlphaSlider(): void {\r\n const ctx = this.alphaCtx\r\n const width = this.alphaSliderWidth\r\n const height = this.alphaSliderHeight\r\n\r\n // Clear canvas\r\n ctx.clearRect(0, 0, width, height)\r\n\r\n // Create checkerboard pattern for transparency\r\n const squareSize = 8\r\n for (let i = 0; i < width; i += squareSize) {\r\n for (let j = 0; j < height; j += squareSize) {\r\n const isEven = (i / squareSize + j / squareSize) % 2 === 0\r\n ctx.fillStyle = isEven ? \"#ffffff\" : \"#cccccc\"\r\n ctx.fillRect(i, j, squareSize, squareSize)\r\n }\r\n }\r\n \r\n\r\n // Create alpha gradient\r\n const gradient = ctx.createLinearGradient(0, 0, width, 0)\r\n const rgb = HSLToRGB(this.hslColor);\r\n\r\n gradient.addColorStop(0, `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, 0)`)\r\n gradient.addColorStop(1, `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, 1)`)\r\n\r\n ctx.fillStyle = gradient\r\n ctx.fillRect(0, 0, width, height)\r\n }\r\n\r\n async CopyToClipboard() {\r\n await Clipboard.write({\r\n string: this.value()\r\n });\r\n await this.genericService.PresentToastSuccess(`${this.value()} copiada para a área de transferência!`);\r\n }\r\n\r\n UpdateIndicatorPositions(): void {\r\n // Set X position directly from saturation (0-100)\r\n this.indicatorX = this.hslColor.s;\r\n\r\n // Calculate Y position using the inverse of the HandleColorSelection logic\r\n if (this.hslColor.s === 0) {\r\n // Left edge: simple white to black mapping\r\n this.indicatorY = 100 - this.hslColor.l;\r\n } else {\r\n // For other saturation values, we need to reverse the maxLightness calculation\r\n const maxLightness = 100 - this.hslColor.s / 2;\r\n this.indicatorY = ((maxLightness - this.hslColor.l) / maxLightness) * 100;\r\n }\r\n \r\n // Ensure the position stays within bounds\r\n this.indicatorY = Math.max(0, Math.min(100, this.indicatorY));\r\n }\r\n\r\n HEXMask: MaskitoOptions = { mask: HEXMask };\r\n}\r\n\r\nfunction HSLToRGB(hsl: HSL): RGB {\r\n var h = hsl.h / 360;\r\n var s = hsl.s / 100;\r\n var l = hsl.l / 100;\r\n\r\n let r: number, g: number, b: number\r\n\r\n if (s === 0) {\r\n r = g = b = l // achromatic\r\n } else {\r\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s\r\n const p = 2 * l - q\r\n\r\n r = HUEtoRGB(p, q, h + 1 / 3)\r\n g = HUEtoRGB(p, q, h)\r\n b = HUEtoRGB(p, q, h - 1 / 3)\r\n }\r\n\r\n return {\r\n r: Math.round(r * 255),\r\n g: Math.round(g * 255),\r\n b: Math.round(b * 255),\r\n }\r\n}\r\nfunction HUEtoRGB(p: number, q: number, t: number): number {\r\n if (t < 0) t += 1\r\n if (t > 1) t -= 1\r\n if (t < 1 / 6) return p + (q - p) * 6 * t\r\n if (t < 1 / 2) return q\r\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6\r\n return p\r\n}\r\n\r\nfunction RGBToHSL(rgb: RGB): HSL {\r\n var r = rgb.r / 255\r\n var g = rgb.g / 255\r\n var b = rgb.b / 255\r\n\r\n const max = Math.max(r, g, b)\r\n const min = Math.min(r, g, b)\r\n let h = 0,\r\n s = 0\r\n const l = (max + min) / 2\r\n\r\n if (max !== min) {\r\n const d = max - min\r\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min)\r\n\r\n switch (max) {\r\n case r:\r\n h = ((g - b) / d + (g < b ? 6 : 0)) / 6\r\n break\r\n case g:\r\n h = ((b - r) / d + 2) / 6\r\n break\r\n case b:\r\n h = ((r - g) / d + 4) / 6\r\n break\r\n }\r\n }\r\n\r\n return {\r\n h: Math.round(h * 360),\r\n s: Math.round(s * 100),\r\n l: Math.round(l * 100),\r\n }\r\n}\r\n\r\nfunction RGBToHex(rgb: RGB, alpha = 1): string {\r\n let { r, g, b } = rgb\r\n\r\n const alphaHex = Math.round(alpha * 255)\r\n .toString(16)\r\n .padStart(2, \"0\")\r\n return (\r\n \"#\" +\r\n [r, g, b]\r\n .map((x) => {\r\n const hex = x.toString(16)\r\n return hex.length === 1 ? \"0\" + hex : hex\r\n })\r\n .join(\"\") +\r\n (alpha < 1 ? alphaHex : \"\")\r\n ).toUpperCase();\r\n}\r\n\r\nconst HEXDigitRegex: RegExp = /[0-9a-f]+/i;\r\nconst HEXMask: MaskitoMaskExpression = [ '#', HEXDigitRegex, HEXDigitRegex, HEXDigitRegex, HEXDigitRegex, HEXDigitRegex, HEXDigitRegex, HEXDigitRegex ];","<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event); Present($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n <input #input\r\n [maskito]=\"HEXMask\"\r\n [ngModel]=\"value()\"\r\n (ngModelChange)=\"SetColorFromHex($event, true, true)\" \r\n [disabled]=\"disabled() || loading()\"\r\n (blur)=\"blur.emit($event)\"\r\n />\r\n <div class=\" absolute bottom-2 right-8 size-5 rounded-sm overflow-hidden\" [style]=\"{ 'background': value() }\"> </div>\r\n\r\n <ion-button tabindex=\"-1\" class=\"absolute right-1 bottom-1\" (click)=\"CopyToClipboard(); $event.stopPropagation();\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\">\r\n <ion-icon name=\"clipboard\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n\r\n <!-- [maxlength]=\"configuration().maxlength\" -->\r\n <!-- [type]=\"configuration().type\" -->\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>\r\n\r\n<sion-popover\r\n #popover \r\n width=\"fit-content\" \r\n [anchor]=\"inputContainer\" \r\n>\r\n <div class=\"size-full p-2 flex gap-1\"> \r\n <div class=\"flex flex-col w-44 shrink-0 gap-1\">\r\n <div id=\"gradientWrapper\" class=\"w-44 h-32 relative\">\r\n <canvas #gradient width=\"176\" height=\"128\" class=\"size-full rounded-sm translucid-border\"></canvas>\r\n <div class=\"color-indicator quick-transition\" [style.left.%]=\"indicatorX\" [style.top.%]=\"indicatorY\"></div>\r\n </div>\r\n\r\n <div id=\"hueWrapper\" class=\"w-full relative\">\r\n <canvas #hueSlider class=\"w-full rounded h-[22px]\" width=\"176\" height=\"22\"></canvas>\r\n <div class=\"indicator quick-transition\" [style.left.%]=\"hslColor.h / 3.6\"></div>\r\n </div>\r\n\r\n <div id=\"alphaWrapper\" class=\"w-full relative\">\r\n <canvas #alphaSlider class=\"w-full rounded h-[22px]\" width=\"176\" height=\"22\"></canvas>\r\n <div class=\"indicator quick-transition\" [style.left.%]=\"alpha\"></div>\r\n </div>\r\n\r\n <div class=\"w-full flex shrink-0\">\r\n <div class=\"w-full grid grid-cols-5 gap-1\">\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#000000FF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#3880FFFF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#2DD36FFF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#FFC409FF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#EB445AFF' }\"></ng-container>\r\n \r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#FFFFFFFF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#59168bFF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#C6005CFF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#FB2C36FF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#314158FF' }\"></ng-container>\r\n </div>\r\n </div> \r\n </div>\r\n </div>\r\n</sion-popover>\r\n\r\n<ng-template #templateColor let-color>\r\n <div class=\"size-8 rounded translucid-border cursor-pointer\" (click)=\"SetColorFromHex(color, true, true)\" [style.background]=\"color\"></div>\r\n</ng-template>","import { Component, ElementRef, forwardRef, input, InputSignal, OnInit, ViewChild } from '@angular/core';\r\nimport { CustomInput } from '../custom-input';\r\nimport { InputFileConfiguration } from './input-file.configuration';\r\nimport { InputProviderFactory } from '../input-provider-factory';\r\nimport { UtilsService } from '../../../services/utils.service';\r\nimport { StorageService } from '../../../services/web/storage.service';\r\n\r\n@Component({\r\n selector: 'input-file',\r\n templateUrl: './input-file.component.html',\r\n styleUrls: ['./input-file.component.scss', '../inputs.scss'],\r\n providers: [\r\n ...InputProviderFactory.GetProviders(InputFileComponent),\r\n { provide: CustomInput, useExisting: forwardRef(() => InputFileComponent) },\r\n ],\r\n \r\n})\r\nexport class InputFileComponent extends CustomInput<File | string> {\r\n\r\n configuration: InputSignal<InputFileConfiguration> = input<InputFileConfiguration>(new InputFileConfiguration());\r\n\r\n @ViewChild('inputContainer') inputContainer: ElementRef<HTMLDivElement>;\r\n override setFocus(event: MouseEvent | null): void {\r\n if(event){\r\n this.Upload();\r\n }\r\n this.inputContainer.nativeElement.focus();\r\n }\r\n\r\n constructor(\r\n private utilsService: UtilsService,\r\n public storageService: StorageService\r\n ) { super(); }\r\n\r\n valueString: string = \"\";\r\n isString: boolean = false;\r\n isImage: boolean = false;\r\n objectURL: string | null = null;\r\n\r\n\r\n override writeValue(obj: File | string): void | Promise<void> {\r\n this.value.set(obj);\r\n this.SetValueString();\r\n this.runValidation();\r\n }\r\n override SetValue(value: File | string): void {\r\n this.value.set(value);\r\n this.SetValueString();\r\n this.runValidation();\r\n this.propagateChange(this.value());\r\n }\r\n \r\n SetValueString(): void {\r\n this.objectURL = null;\r\n this.isString = typeof this.value() == \"string\";\r\n if(!this.value()) { this.valueString = \"...\"; return; }\r\n this.valueString = typeof this.value() == \"string\" ? StorageService.SanitizeFileName(this.value().toString()) : (this.value() as File).name;\r\n \r\n this.isImage = lstImage.includes(this.valueString.split('.').at(-1).toLowerCase());\r\n if(this.isImage && !this.isString){\r\n this.objectURL = URL.createObjectURL(this.value() as File);\r\n }\r\n }\r\n\r\n async Upload(): Promise<void>{\r\n try{\r\n const res = await this.utilsService.SelectFile(this.configuration());\r\n if(res){ this.SetValue(res); }\r\n }catch{}\r\n }\r\n\r\n Clear(event: MouseEvent): void {\r\n event.stopPropagation();\r\n this.SetValue(null);\r\n }\r\n\r\n Download(): void{\r\n this.storageService.StartDownload(this.value() as string);\r\n }\r\n}\r\nexport const lstImage: string[] = [\r\n 'jpe',\r\n 'jpg',\r\n 'jpeg',\r\n 'gif',\r\n 'png',\r\n 'bmp',\r\n 'ico',\r\n 'svg',\r\n 'svgz',\r\n 'tif',\r\n 'tiff',\r\n 'webp',\r\n 'jfif',\r\n 'avif',\r\n] ","<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n <div tabindex=\"0\" class=\"file-label-container text-dark\" [title]=\"valueString\" (click)=\"Upload()\">\r\n <ion-icon class=\"shrink-0\" color=\"dark\" name=\"document\"></ion-icon> \r\n <span class=\"shrink truncate\">\r\n {{valueString}}\r\n </span>\r\n\r\n <ion-button [class.available]=\"value()\" color=\"medium\" class=\"ellipsis-button ml-auto shrink-0\" fill=\"clear\" style=\"--border-radius: .5rem\" size=\"small\" (click)=\"popover.present($event); $event.stopPropagation()\">\r\n <ion-icon name=\"ellipsis-vertical\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n <ion-popover #popover>\r\n <ng-template>\r\n <ion-content>\r\n <div class=\"size-full flex flex-col\">\r\n @if(value()){\r\n <ion-button color=\"danger\"size=\"small\" style=\"--border-radius: 0rem\" (click)=\"Clear($event); popover.dismiss()\">\r\n <ion-icon color=\"dark\" name=\"trash\" slot=\"icon-only\"></ion-icon>\r\n Limpar\r\n </ion-button>\r\n }\r\n @if(isString){\r\n <ion-button color=\"secondary\" size=\"small\" style=\"--border-radius: 0rem\" (click)=\"Download()\">\r\n <ion-icon color=\"dark\" name=\"download\" slot=\"start\"></ion-icon>\r\n Download\r\n </ion-button>\r\n @if(storageService.GetProgress(this.value().toString())){\r\n <ion-progress-bar [value]=\"storageService.GetProgress(this.value().toString())\"></ion-progress-bar>\r\n }\r\n @if(isImage){\r\n <image fill=\"clear\" [src]=\"value().toString()\"></image>\r\n }\r\n }\r\n @else if(isImage){\r\n <ion-img [src]=\"objectURL\" class=\"w-full h-32\"></ion-img>\r\n }\r\n </div>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n </div>\r\n\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>","export const lstIconsIonicons = [\r\n \"accessibility-outline.svg\",\r\n \"accessibility-sharp.svg\",\r\n \"accessibility.svg\",\r\n \"add-circle-outline.svg\",\r\n \"add-circle-sharp.svg\",\r\n \"add-circle.svg\",\r\n \"add-outline.svg\",\r\n \"add-sharp.svg\",\r\n \"add.svg\",\r\n \"airplane-outline.svg\",\r\n \"airplane-sharp.svg\",\r\n \"airplane.svg\",\r\n \"alarm-outline.svg\",\r\n \"alarm-sharp.svg\",\r\n \"alarm.svg\",\r\n \"albums-outline.svg\",\r\n \"albums-sharp.svg\",\r\n \"albums.svg\",\r\n \"alert-circle-outline.svg\",\r\n \"alert-circle-sharp.svg\",\r\n \"alert-circle.svg\",\r\n \"alert-outline.svg\",\r\n \"alert-sharp.svg\",\r\n \"alert.svg\",\r\n \"american-football-outline.svg\",\r\n \"american-football-sharp.svg\",\r\n \"american-football.svg\",\r\n \"analytics-outline.svg\",\r\n \"analytics-sharp.svg\",\r\n \"analytics.svg\",\r\n \"aperture-outline.svg\",\r\n \"aperture-sharp.svg\",\r\n \"aperture.svg\",\r\n \"apps-outline.svg\",\r\n \"apps-sharp.svg\",\r\n \"apps.svg\",\r\n \"archive-outline.svg\",\r\n \"archive-sharp.svg\",\r\n \"archive.svg\",\r\n \"arrow-back-circle-outline.svg\",\r\n \"arrow-back-circle-sharp.svg\",\r\n \"arrow-back-circle.svg\",\r\n \"arrow-back-outline.svg\",\r\n \"arrow-back-sharp.svg\",\r\n \"arrow-back.svg\",\r\n \"arrow-down-circle-outline.svg\",\r\n \"arrow-down-circle-sharp.svg\",\r\n \"arrow-down-circle.svg\",\r\n \"arrow-down-left-box-outline.svg\",\r\n \"arrow-down-left-box-sharp.svg\",\r\n \"arrow-down-left-box.svg\",\r\n \"arrow-down-outline.svg\",\r\n \"arrow-down-right-box-outline.svg\",\r\n \"arrow-down-right-box-sharp.svg\",\r\n \"arrow-down-right-box.svg\",\r\n \"arrow-down-sharp.svg\",\r\n \"arrow-down.svg\",\r\n \"arrow-forward-circle-outline.svg\",\r\n \"arrow-forward-circle-sharp.svg\",\r\n \"arrow-forward-circle.svg\",\r\n \"arrow-forward-outline.svg\",\r\n \"arrow-forward-sharp.svg\",\r\n \"arrow-forward.svg\",\r\n \"arrow-redo-circle-outline.svg\",\r\n \"arrow-redo-circle-sharp.svg\",\r\n \"arrow-redo-circle.svg\",\r\n \"arrow-redo-outline.svg\",\r\n \"arrow-redo-sharp.svg\",\r\n \"arrow-redo.svg\",\r\n \"arrow-undo-circle-outline.svg\",\r\n \"arrow-undo-circle-sharp.svg\",\r\n \"arrow-undo-circle.svg\",\r\n \"arrow-undo-outline.svg\",\r\n \"arrow-undo-sharp.svg\",\r\n \"arrow-undo.svg\",\r\n \"arrow-up-circle-outline.svg\",\r\n \"arrow-up-circle-sharp.svg\",\r\n \"arrow-up-circle.svg\",\r\n \"arrow-up-left-box-outline.svg\",\r\n \"arrow-up-left-box-sharp.svg\",\r\n \"arrow-up-left-box.svg\",\r\n \"arrow-up-outline.svg\",\r\n \"arrow-up-right-box-outline.svg\",\r\n \"arrow-up-right-box-sharp.svg\",\r\n \"arrow-up-right-box.svg\",\r\n \"arrow-up-sharp.svg\",\r\n \"arrow-up.svg\",\r\n \"at-circle-outline.svg\",\r\n \"at-circle-sharp.svg\",\r\n \"at-circle.svg\",\r\n \"at-outline.svg\",\r\n \"at-sharp.svg\",\r\n \"at.svg\",\r\n \"attach-outline.svg\",\r\n \"attach-sharp.svg\",\r\n \"attach.svg\",\r\n \"backspace-outline.svg\",\r\n \"backspace-sharp.svg\",\r\n \"backspace.svg\",\r\n \"bag-add-outline.svg\",\r\n \"bag-add-sharp.svg\",\r\n \"bag-add.svg\",\r\n \"bag-check-outline.svg\",\r\n \"bag-check-sharp.svg\",\r\n \"bag-check.svg\",\r\n \"bag-handle-outline.svg\",\r\n \"bag-handle-sharp.svg\",\r\n \"bag-handle.svg\",\r\n \"bag-outline.svg\",\r\n \"bag-remove-outline.svg\",\r\n \"bag-remove-sharp.svg\",\r\n \"bag-remove.svg\",\r\n \"bag-sharp.svg\",\r\n \"bag.svg\",\r\n \"balloon-outline.svg\",\r\n \"balloon-sharp.svg\",\r\n \"balloon.svg\",\r\n \"ban-outline.svg\",\r\n \"ban-sharp.svg\",\r\n \"ban.svg\",\r\n \"bandage-outline.svg\",\r\n \"bandage-sharp.svg\",\r\n \"bandage.svg\",\r\n \"bar-chart-outline.svg\",\r\n \"bar-chart-sharp.svg\",\r\n \"bar-chart.svg\",\r\n \"barbell-outline.svg\",\r\n \"barbell-sharp.svg\",\r\n \"barbell.svg\",\r\n \"barcode-outline.svg\",\r\n \"barcode-sharp.svg\",\r\n \"barcode.svg\",\r\n \"baseball-outline.svg\",\r\n \"baseball-sharp.svg\",\r\n \"baseball.svg\",\r\n \"basket-outline.svg\",\r\n \"basket-sharp.svg\",\r\n \"basket.svg\",\r\n \"basketball-outline.svg\",\r\n \"basketball-sharp.svg\",\r\n \"basketball.svg\",\r\n \"battery-charging-outline.svg\",\r\n \"battery-charging-sharp.svg\",\r\n \"battery-charging.svg\",\r\n \"battery-dead-outline.svg\",\r\n \"battery-dead-sharp.svg\",\r\n \"battery-dead.svg\",\r\n \"battery-full-outline.svg\",\r\n \"battery-full-sharp.svg\",\r\n \"battery-full.svg\",\r\n \"battery-half-outline.svg\",\r\n \"battery-half-sharp.svg\",\r\n \"battery-half.svg\",\r\n \"beaker-outline.svg\",\r\n \"beaker-sharp.svg\",\r\n \"beaker.svg\",\r\n \"bed-outline.svg\",\r\n \"bed-sharp.svg\",\r\n \"bed.svg\",\r\n \"beer-outline.svg\",\r\n \"beer-sharp.svg\",\r\n \"beer.svg\",\r\n \"bicycle-outline.svg\",\r\n \"bicycle-sharp.svg\",\r\n \"bicycle.svg\",\r\n \"binoculars-outline.svg\",\r\n \"binoculars-sharp.svg\",\r\n \"binoculars.svg\",\r\n \"bluetooth-outline.svg\",\r\n \"bluetooth-sharp.svg\",\r\n \"bluetooth.svg\",\r\n \"boat-outline.svg\",\r\n \"boat-sharp.svg\",\r\n \"boat.svg\",\r\n \"body-outline.svg\",\r\n \"body-sharp.svg\",\r\n \"body.svg\",\r\n \"bonfire-outline.svg\",\r\n \"bonfire-sharp.svg\",\r\n \"bonfire.svg\",\r\n \"book-outline.svg\",\r\n \"book-sharp.svg\",\r\n \"book.svg\",\r\n \"bookmark-outline.svg\",\r\n \"bookmark-sharp.svg\",\r\n \"bookmark.svg\",\r\n \"bookmarks-outline.svg\",\r\n \"bookmarks-sharp.svg\",\r\n \"bookmarks.svg\",\r\n \"bowling-ball-outline.svg\",\r\n \"bowling-ball-sharp.svg\",\r\n \"bowling-ball.svg\",\r\n \"briefcase-outline.svg\",\r\n \"briefcase-sharp.svg\",\r\n \"briefcase.svg\",\r\n \"browsers-outline.svg\",\r\n \"browsers-sharp.svg\",\r\n \"browsers.svg\",\r\n \"brush-outline.svg\",\r\n \"brush-sharp.svg\",\r\n \"brush.svg\",\r\n \"bug-outline.svg\",\r\n \"bug-sharp.svg\",\r\n \"bug.svg\",\r\n \"build-outline.svg\",\r\n \"build-sharp.svg\",\r\n \"build.svg\",\r\n \"bulb-outline.svg\",\r\n \"bulb-sharp.svg\",\r\n \"bulb.svg\",\r\n \"bus-outline.svg\",\r\n \"bus-sharp.svg\",\r\n \"bus.svg\",\r\n \"business-outline.svg\",\r\n \"business-sharp.svg\",\r\n \"business.svg\",\r\n \"cafe-outline.svg\",\r\n \"cafe-sharp.svg\",\r\n \"cafe.svg\",\r\n \"calculator-outline.svg\",\r\n \"calculator-sharp.svg\",\r\n \"calculator.svg\",\r\n \"calendar-clear-outline.svg\",\r\n \"calendar-clear-sharp.svg\",\r\n \"calendar-clear.svg\",\r\n \"calendar-number-outline.svg\",\r\n \"calendar-number-sharp.svg\",\r\n \"calendar-number.svg\",\r\n \"calendar-outline.svg\",\r\n \"calendar-sharp.svg\",\r\n \"calendar.svg\",\r\n \"call-outline.svg\",\r\n \"call-sharp.svg\",\r\n \"call.svg\",\r\n \"camera-outline.svg\",\r\n \"camera-reverse-outline.svg\",\r\n \"camera-reverse-sharp.svg\",\r\n \"camera-reverse.svg\",\r\n \"camera-sharp.svg\",\r\n \"camera.svg\",\r\n \"car-outline.svg\",\r\n \"car-sharp.svg\",\r\n \"car-sport-outline.svg\",\r\n \"car-sport-sharp.svg\",\r\n \"car-sport.svg\",\r\n \"car.svg\",\r\n \"card-outline.svg\",\r\n \"card-sharp.svg\",\r\n \"card.svg\",\r\n \"caret-back-circle-outline.svg\",\r\n \"caret-back-circle-sharp.svg\",\r\n \"caret-back-circle.svg\",\r\n \"caret-back-outline.svg\",\r\n \"caret-back-sharp.svg\",\r\n \"caret-back.svg\",\r\n \"caret-down-circle-outline.svg\",\r\n \"caret-down-circle-sharp.svg\",\r\n \"caret-down-circle.svg\",\r\n \"caret-down-outline.svg\",\r\n \"caret-down-sharp.svg\",\r\n \"caret-down.svg\",\r\n \"caret-forward-circle-outline.svg\",\r\n \"caret-forward-circle-sharp.svg\",\r\n \"caret-forward-circle.svg\",\r\n \"caret-forward-outline.svg\",\r\n \"caret-forward-sharp.svg\",\r\n \"caret-forward.svg\",\r\n \"caret-up-circle-outline.svg\",\r\n \"caret-up-circle-sharp.svg\",\r\n \"caret-up-circle.svg\",\r\n \"caret-up-outline.svg\",\r\n \"caret-up-sharp.svg\",\r\n \"caret-up.svg\",\r\n \"cart-outline.svg\",\r\n \"cart-sharp.svg\",\r\n \"cart.svg\",\r\n \"cash-outline.svg\",\r\n \"cash-sharp.svg\",\r\n \"cash.svg\",\r\n \"cellular-outline.svg\",\r\n \"cellular-sharp.svg\",\r\n \"cellular.svg\",\r\n \"chatbox-ellipses-outline.svg\",\r\n \"chatbox-ellipses-sharp.svg\",\r\n \"chatbox-ellipses.svg\",\r\n \"chatbox-outline.svg\",\r\n \"chatbox-sharp.svg\",\r\n \"chatbox.svg\",\r\n \"chatbubble-ellipses-outline.svg\",\r\n \"chatbubble-ellipses-sharp.svg\",\r\n \"chatbubble-ellipses.svg\",\r\n \"chatbubble-outline.svg\",\r\n \"chatbubble-sharp.svg\",\r\n \"chatbubble.svg\",\r\n \"chatbubbles-outline.svg\",\r\n \"chatbubbles-sharp.svg\",\r\n \"chatbubbles.svg\",\r\n \"checkbox-outline.svg\",\r\n \"checkbox-sharp.svg\",\r\n \"checkbox.svg\",\r\n \"checkmark-circle-outline.svg\",\r\n \"checkmark-circle-sharp.svg\",\r\n \"checkmark-circle.svg\",\r\n \"checkmark-done-circle-outline.svg\",\r\n \"checkmark-done-circle-sharp.svg\",\r\n \"checkmark-done-circle.svg\",\r\n \"checkmark-done-outline.svg\",\r\n \"checkmark-done-sharp.svg\",\r\n \"checkmark-done.svg\",\r\n \"checkmark-outline.svg\",\r\n \"checkmark-sharp.svg\",\r\n \"checkmark.svg\",\r\n \"chevron-back-circle-outline.svg\",\r\n \"chevron-back-circle-sharp.svg\",\r\n \"chevron-back-circle.svg\",\r\n \"chevron-back-outline.svg\",\r\n \"chevron-back-sharp.svg\",\r\n \"chevron-back.svg\",\r\n \"chevron-collapse-outline.svg\",\r\n \"chevron-collapse-sharp.svg\",\r\n \"chevron-collapse.svg\",\r\n \"chevron-down-circle-outline.svg\",\r\n \"chevron-down-circle-sharp.svg\",\r\n \"chevron-down-circle.svg\",\r\n \"chevron-down-outline.svg\",\r\n \"chevron-down-sharp.svg\",\r\n \"chevron-down.svg\",\r\n \"chevron-expand-outline.svg\",\r\n \"chevron-expand-sharp.svg\",\r\n \"chevron-expand.svg\",\r\n \"chevron-forward-circle-outline.svg\",\r\n \"chevron-forward-circle-sharp.svg\",\r\n \"chevron-forward-circle.svg\",\r\n \"chevron-forward-outline.svg\",\r\n \"chevron-forward-sharp.svg\",\r\n \"chevron-forward.svg\",\r\n \"chevron-up-circle-outline.svg\",\r\n \"chevron-up-circle-sharp.svg\",\r\n \"chevron-up-circle.svg\",\r\n \"chevron-up-outline.svg\",\r\n \"chevron-up-sharp.svg\",\r\n \"chevron-up.svg\",\r\n \"clipboard-outline.svg\",\r\n \"clipboard-sharp.svg\",\r\n \"clipboard.svg\",\r\n \"close-circle-outline.svg\",\r\n \"close-circle-sharp.svg\",\r\n \"close-circle.svg\",\r\n \"close-outline.svg\",\r\n \"close-sharp.svg\",\r\n \"close.svg\",\r\n \"cloud-circle-outline.svg\",\r\n \"cloud-circle-sharp.svg\",\r\n \"cloud-circle.svg\",\r\n \"cloud-done-outline.svg\",\r\n \"cloud-done-sharp.svg\",\r\n \"cloud-done.svg\",\r\n \"cloud-download-outline.svg\",\r\n \"cloud-download-sharp.svg\",\r\n \"cloud-download.svg\",\r\n \"cloud-offline-outline.svg\",\r\n \"cloud-offline-sharp.svg\",\r\n \"cloud-offline.svg\",\r\n \"cloud-outline.svg\",\r\n \"cloud-sharp.svg\",\r\n \"cloud-upload-outline.svg\",\r\n \"cloud-upload-sharp.svg\",\r\n \"cloud-upload.svg\",\r\n \"cloud.svg\",\r\n \"cloudy-night-outline.svg\",\r\n \"cloudy-night-sharp.svg\",\r\n \"cloudy-night.svg\",\r\n \"cloudy-outline.svg\",\r\n \"cloudy-sharp.svg\",\r\n \"cloudy.svg\",\r\n \"code-download-outline.svg\",\r\n \"code-download-sharp.svg\",\r\n \"code-download.svg\",\r\n \"code-outline.svg\",\r\n \"code-sharp.svg\",\r\n \"code-slash-outline.svg\",\r\n \"code-slash-sharp.svg\",\r\n \"code-slash.svg\",\r\n \"code-working-outline.svg\",\r\n \"code-working-sharp.svg\",\r\n \"code-working.svg\",\r\n \"code.svg\",\r\n \"cog-outline.svg\",\r\n \"cog-sharp.svg\",\r\n \"cog.svg\",\r\n \"color-fill-outline.svg\",\r\n \"color-fill-sharp.svg\",\r\n \"color-fill.svg\",\r\n \"color-filter-outline.svg\",\r\n \"color-filter-sharp.svg\",\r\n \"color-filter.svg\",\r\n \"color-palette-outline.svg\",\r\n \"color-palette-sharp.svg\",\r\n \"color-palette.svg\",\r\n \"color-wand-outline.svg\",\r\n \"color-wand-sharp.svg\",\r\n \"color-wand.svg\",\r\n \"compass-outline.svg\",\r\n \"compass-sharp.svg\",\r\n \"compass.svg\",\r\n \"construct-outline.svg\",\r\n \"construct-sharp.svg\",\r\n \"construct.svg\",\r\n \"contract-outline.svg\",\r\n \"contract-sharp.svg\",\r\n \"contract.svg\",\r\n \"contrast-outline.svg\",\r\n \"contrast-sharp.svg\",\r\n \"contrast.svg\",\r\n \"copy-outline.svg\",\r\n \"copy-sharp.svg\",\r\n \"copy.svg\",\r\n \"create-outline.svg\",\r\n \"create-sharp.svg\",\r\n \"create.svg\",\r\n \"crop-outline.svg\",\r\n \"crop-sharp.svg\",\r\n \"crop.svg\",\r\n \"cube-outline.svg\",\r\n \"cube-sharp.svg\",\r\n \"cube.svg\",\r\n \"cut-outline.svg\",\r\n \"cut-sharp.svg\",\r\n \"cut.svg\",\r\n \"desktop-outline.svg\",\r\n \"desktop-sharp.svg\",\r\n \"desktop.svg\",\r\n \"diamond-outline.svg\",\r\n \"diamond-sharp.svg\",\r\n \"diamond.svg\",\r\n \"dice-outline.svg\",\r\n \"dice-sharp.svg\",\r\n \"dice.svg\",\r\n \"disc-outline.svg\",\r\n \"disc-sharp.svg\",\r\n \"disc.svg\",\r\n \"document-attach-outline.svg\",\r\n \"document-attach-sharp.svg\",\r\n \"document-attach.svg\",\r\n \"document-lock-outline.svg\",\r\n \"document-lock-sharp.svg\",\r\n \"document-lock.svg\",\r\n \"document-outline.svg\",\r\n \"document-sharp.svg\",\r\n \"document-text-outline.svg\",\r\n \"document-text-sharp.svg\",\r\n \"document-text.svg\",\r\n \"document.svg\",\r\n \"documents-outline.svg\",\r\n \"documents-sharp.svg\",\r\n \"documents.svg\",\r\n \"download-outline.svg\",\r\n \"download-sharp.svg\",\r\n \"download.svg\",\r\n \"duplicate-outline.svg\",\r\n \"duplicate-sharp.svg\",\r\n \"duplicate.svg\",\r\n \"ear-outline.svg\",\r\n \"ear-sharp.svg\",\r\n \"ear.svg\",\r\n \"earth-outline.svg\",\r\n \"earth-sharp.svg\",\r\n \"earth.svg\",\r\n \"easel-outline.svg\",\r\n \"easel-sharp.svg\",\r\n \"easel.svg\",\r\n \"egg-outline.svg\",\r\n \"egg-sharp.svg\",\r\n \"egg.svg\",\r\n \"ellipse-outline.svg\",\r\n \"ellipse-sharp.svg\",\r\n \"ellipse.svg\",\r\n \"ellipsis-horizontal-circle-outline.svg\",\r\n \"ellipsis-horizontal-circle-sharp.svg\",\r\n \"ellipsis-horizontal-circle.svg\",\r\n \"ellipsis-horizontal-outline.svg\",\r\n \"ellipsis-horizontal-sharp.svg\",\r\n \"ellipsis-horizontal.svg\",\r\n \"ellipsis-vertical-circle-outline.svg\",\r\n \"ellipsis-vertical-circle-sharp.svg\",\r\n \"ellipsis-vertical-circle.svg\",\r\n \"ellipsis-vertical-outline.svg\",\r\n \"ellipsis-vertical-sharp.svg\",\r\n \"ellipsis-vertical.svg\",\r\n \"enter-outline.svg\",\r\n \"enter-sharp.svg\",\r\n \"enter.svg\",\r\n \"exit-outline.svg\",\r\n \"exit-sharp.svg\",\r\n \"exit.svg\",\r\n \"expand-outline.svg\",\r\n \"expand-sharp.svg\",\r\n \"expand.svg\",\r\n \"extension-puzzle-outline.svg\",\r\n \"extension-puzzle-sharp.svg\",\r\n \"extension-puzzle.svg\",\r\n \"eye-off-outline.svg\",\r\n \"eye-off-sharp.svg\",\r\n \"eye-off.svg\",\r\n \"eye-outline.svg\",\r\n \"eye-sharp.svg\",\r\n \"eye.svg\",\r\n \"eyedrop-outline.svg\",\r\n \"eyedrop-sharp.svg\",\r\n \"eyedrop.svg\",\r\n \"fast-food-outline.svg\",\r\n \"fast-food-sharp.svg\",\r\n \"fast-food.svg\",\r\n \"female-outline.svg\",\r\n \"female-sharp.svg\",\r\n \"female.svg\",\r\n \"file-tray-full-outline.svg\",\r\n \"file-tray-full-sharp.svg\",\r\n \"file-tray-full.svg\",\r\n \"file-tray-outline.svg\",\r\n \"file-tray-sharp.svg\",\r\n \"file-tray-stacked-outline.svg\",\r\n \"file-tray-stacked-sharp.svg\",\r\n \"file-tray-stacked.svg\",\r\n \"file-tray.svg\",\r\n \"film-outline.svg\",\r\n \"film-sharp.svg\",\r\n \"film.svg\",\r\n \"filter-circle-outline.svg\",\r\n \"filter-circle-sharp.svg\",\r\n \"filter-circle.svg\",\r\n \"filter-outline.svg\",\r\n \"filter-sharp.svg\",\r\n \"filter.svg\",\r\n \"finger-print-outline.svg\",\r\n \"finger-print-sharp.svg\",\r\n \"finger-print.svg\",\r\n \"fish-outline.svg\",\r\n \"fish-sharp.svg\",\r\n \"fish.svg\",\r\n \"fitness-outline.svg\",\r\n \"fitness-sharp.svg\",\r\n \"fitness.svg\",\r\n \"flag-outline.svg\",\r\n \"flag-sharp.svg\",\r\n \"flag.svg\",\r\n \"flame-outline.svg\",\r\n \"flame-sharp.svg\",\r\n \"flame.svg\",\r\n \"flash-off-outline.svg\",\r\n \"flash-off-sharp.svg\",\r\n \"flash-off.svg\",\r\n \"flash-outline.svg\",\r\n \"flash-sharp.svg\",\r\n \"flash.svg\",\r\n \"flashlight-outline.svg\",\r\n \"flashlight-sharp.svg\",\r\n \"flashlight.svg\",\r\n \"flask-outline.svg\",\r\n \"flask-sharp.svg\",\r\n \"flask.svg\",\r\n \"flower-outline.svg\",\r\n \"flower-sharp.svg\",\r\n \"flower.svg\",\r\n \"folder-open-outline.svg\",\r\n \"folder-open-sharp.svg\",\r\n \"folder-open.svg\",\r\n \"folder-outline.svg\",\r\n \"folder-sharp.svg\",\r\n \"folder.svg\",\r\n \"football-outline.svg\",\r\n \"football-sharp.svg\",\r\n \"football.svg\",\r\n \"footsteps-outline.svg\",\r\n \"footsteps-sharp.svg\",\r\n \"footsteps.svg\",\r\n \"funnel-outline.svg\",\r\n \"funnel-sharp.svg\",\r\n \"funnel.svg\",\r\n \"game-controller-outline.svg\",\r\n \"game-controller-sharp.svg\",\r\n \"game-controller.svg\",\r\n \"gift-outline.svg\",\r\n \"gift-sharp.svg\",\r\n \"gift.svg\",\r\n \"git-branch-outline.svg\",\r\n \"git-branch-sharp.svg\",\r\n \"git-branch.svg\",\r\n \"git-commit-outline.svg\",\r\n \"git-commit-sharp.svg\",\r\n \"git-commit.svg\",\r\n \"git-compare-outline.svg\",\r\n \"git-compare-sharp.svg\",\r\n \"git-compare.svg\",\r\n \"git-merge-outline.svg\",\r\n \"git-merge-sharp.svg\",\r\n \"git-merge.svg\",\r\n \"git-network-outline.svg\",\r\n \"git-network-sharp.svg\",\r\n \"git-network.svg\",\r\n \"git-pull-request-outline.svg\",\r\n \"git-pull-request-sharp.svg\",\r\n \"git-pull-request.svg\",\r\n \"glasses-outline.svg\",\r\n \"glasses-sharp.svg\",\r\n \"glasses.svg\",\r\n \"globe-outline.svg\",\r\n \"globe-sharp.svg\",\r\n \"globe.svg\",\r\n \"golf-outline.svg\",\r\n \"golf-sharp.svg\",\r\n \"golf.svg\",\r\n \"grid-outline.svg\",\r\n \"grid-sharp.svg\",\r\n \"grid.svg\",\r\n \"hammer-outline.svg\",\r\n \"hammer-sharp.svg\",\r\n \"hammer.svg\",\r\n \"hand-left-outline.svg\",\r\n \"hand-left-sharp.svg\",\r\n \"hand-left.svg\",\r\n \"hand-right-outline.svg\",\r\n \"hand-right-sharp.svg\",\r\n \"hand-right.svg\",\r\n \"happy-outline.svg\",\r\n \"happy-sharp.svg\",\r\n \"happy.svg\",\r\n \"hardware-chip-outline.svg\",\r\n \"hardware-chip-sharp.svg\",\r\n \"hardware-chip.svg\",\r\n \"headset-outline.svg\",\r\n \"headset-sharp.svg\",\r\n \"headset.svg\",\r\n \"heart-circle-outline.svg\",\r\n \"heart-circle-sharp.svg\",\r\n \"heart-circle.svg\",\r\n \"heart-dislike-circle-outline.svg\",\r\n \"heart-dislike-circle-sharp.svg\",\r\n \"heart-dislike-circle.svg\",\r\n \"heart-dislike-outline.svg\",\r\n \"heart-dislike-sharp.svg\",\r\n \"heart-dislike.svg\",\r\n \"heart-half-outline.svg\",\r\n \"heart-half-sharp.svg\",\r\n \"heart-half.svg\",\r\n \"heart-outline.svg\",\r\n \"heart-sharp.svg\",\r\n \"heart.svg\",\r\n \"help-buoy-outline.svg\",\r\n \"help-buoy-sharp.svg\",\r\n \"help-buoy.svg\",\r\n \"help-circle-outline.svg\",\r\n \"help-circle-sharp.svg\",\r\n \"help-circle.svg\",\r\n \"help-outline.svg\",\r\n \"help-sharp.svg\",\r\n \"help.svg\",\r\n \"home-outline.svg\",\r\n \"home-sharp.svg\",\r\n \"home.svg\",\r\n \"hourglass-outline.svg\",\r\n \"hourglass-sharp.svg\",\r\n \"hourglass.svg\",\r\n \"ice-cream-outline.svg\",\r\n \"ice-cream-sharp.svg\",\r\n \"ice-cream.svg\",\r\n \"id-card-outline.svg\",\r\n \"id-card-sharp.svg\",\r\n \"id-card.svg\",\r\n \"image-outline.svg\",\r\n \"image-sharp.svg\",\r\n \"image.svg\",\r\n \"images-outline.svg\",\r\n \"images-sharp.svg\",\r\n \"images.svg\",\r\n \"infinite-outline.svg\",\r\n \"infinite-sharp.svg\",\r\n \"infinite.svg\",\r\n \"information-circle-outline.svg\",\r\n \"information-circle-sharp.svg\",\r\n \"information-circle.svg\",\r\n \"information-outline.svg\",\r\n \"information-sharp.svg\",\r\n \"information.svg\",\r\n \"invert-mode-outline.svg\",\r\n \"invert-mode-sharp.svg\",\r\n \"invert-mode.svg\",\r\n \"journal-outline.svg\",\r\n \"journal-sharp.svg\",\r\n \"journal.svg\",\r\n \"key-outline.svg\",\r\n \"key-sharp.svg\",\r\n \"key.svg\",\r\n \"keypad-outline.svg\",\r\n \"keypad-sharp.svg\",\r\n \"keypad.svg\",\r\n \"language-outline.svg\",\r\n \"language-sharp.svg\",\r\n \"language.svg\",\r\n \"laptop-outline.svg\",\r\n \"laptop-sharp.svg\",\r\n \"laptop.svg\",\r\n \"layers-outline.svg\",\r\n \"layers-sharp.svg\",\r\n \"layers.svg\",\r\n \"leaf-outline.svg\",\r\n \"leaf-sharp.svg\",\r\n \"leaf.svg\",\r\n \"library-outline.svg\",\r\n \"library-sharp.svg\",\r\n \"library.svg\",\r\n \"link-outline.svg\",\r\n \"link-sharp.svg\",\r\n \"link.svg\",\r\n \"list-circle-outline.svg\",\r\n \"list-circle-sharp.svg\",\r\n \"list-circle.svg\",\r\n \"list-outline.svg\",\r\n \"list-sharp.svg\",\r\n \"list.svg\",\r\n \"locate-outline.svg\",\r\n \"locate-sharp.svg\",\r\n \"locate.svg\",\r\n \"location-outline.svg\",\r\n \"location-sharp.svg\",\r\n \"location.svg\",\r\n \"lock-closed-outline.svg\",\r\n \"lock-closed-sharp.svg\",\r\n \"lock-closed.svg\",\r\n \"lock-open-outline.svg\",\r\n \"lock-open-sharp.svg\",\r\n \"lock-open.svg\",\r\n \"log-in-outline.svg\",\r\n \"log-in-sharp.svg\",\r\n \"log-in.svg\",\r\n \"log-out-outline.svg\",\r\n \"log-out-sharp.svg\",\r\n \"log-out.svg\",\r\n \"logo-alipay.svg\",\r\n \"logo-amazon.svg\",\r\n \"logo-amplify.svg\",\r\n \"logo-android.svg\",\r\n \"logo-angular.svg\",\r\n \"logo-appflow.svg\",\r\n \"logo-apple-appstore.svg\",\r\n \"logo-apple-ar.svg\",\r\n \"logo-apple.svg\",\r\n \"logo-behance.svg\",\r\n \"logo-bitbucket.svg\",\r\n \"logo-bitcoin.svg\",\r\n \"logo-buffer.svg\",\r\n \"logo-capacitor.svg\",\r\n \"logo-chrome.svg\",\r\n \"logo-closed-captioning.svg\",\r\n \"logo-codepen.svg\",\r\n \"logo-css3.svg\",\r\n \"logo-designernews.svg\",\r\n \"logo-deviantart.svg\",\r\n \"logo-discord.svg\",\r\n \"logo-docker.svg\",\r\n \"logo-dribbble.svg\",\r\n \"logo-dropbox.svg\",\r\n \"logo-edge.svg\",\r\n \"logo-electron.svg\",\r\n \"logo-euro.svg\",\r\n \"logo-facebook.svg\",\r\n \"logo-figma.svg\",\r\n \"logo-firebase.svg\",\r\n \"logo-firefox.svg\",\r\n \"logo-flickr.svg\",\r\n \"logo-foursquare.svg\",\r\n \"logo-github.svg\",\r\n \"logo-gitlab.svg\",\r\n \"logo-google-playstore.svg\",\r\n \"logo-google.svg\",\r\n \"logo-hackernews.svg\",\r\n \"logo-html5.svg\",\r\n \"logo-instagram.svg\",\r\n \"logo-ionic.svg\",\r\n \"logo-ionitron.svg\",\r\n \"logo-javascript.svg\",\r\n \"logo-laravel.svg\",\r\n \"logo-linkedin.svg\",\r\n \"logo-markdown.svg\",\r\n \"logo-mastodon.svg\",\r\n \"logo-medium.svg\",\r\n \"logo-microsoft.svg\",\r\n \"logo-no-smoking.svg\",\r\n \"logo-nodejs.svg\",\r\n \"logo-npm.svg\",\r\n \"logo-octocat.svg\",\r\n \"logo-paypal.svg\",\r\n \"logo-pinterest.svg\",\r\n \"logo-playstation.svg\",\r\n \"logo-pwa.svg\",\r\n \"logo-python.svg\",\r\n \"logo-react.svg\",\r\n \"logo-reddit.svg\",\r\n \"logo-rss.svg\",\r\n \"logo-sass.svg\",\r\n \"logo-skype.svg\",\r\n \"logo-slack.svg\",\r\n \"logo-snapchat.svg\",\r\n \"logo-soundcloud.svg\",\r\n \"logo-stackoverflow.svg\",\r\n \"logo-steam.svg\",\r\n \"logo-stencil.svg\",\r\n \"logo-tableau.svg\",\r\n \"logo-threads.svg\",\r\n \"logo-tiktok.svg\",\r\n \"logo-trapeze.svg\",\r\n \"logo-tumblr.svg\",\r\n \"logo-tux.svg\",\r\n \"logo-twitch.svg\",\r\n \"logo-twitter.svg\",\r\n \"logo-usd.svg\",\r\n \"logo-venmo.svg\",\r\n \"logo-vercel.svg\",\r\n \"logo-vimeo.svg\",\r\n \"logo-vk.svg\",\r\n \"logo-vue.svg\",\r\n \"logo-web-component.svg\",\r\n \"logo-wechat.svg\",\r\n \"logo-whatsapp.svg\",\r\n \"logo-windows.svg\",\r\n \"logo-wordpress.svg\",\r\n \"logo-x.svg\",\r\n \"logo-xbox.svg\",\r\n \"logo-xing.svg\",\r\n \"logo-yahoo.svg\",\r\n \"logo-yen.svg\",\r\n \"logo-youtube.svg\",\r\n \"magnet-outline.svg\",\r\n \"magnet-sharp.svg\",\r\n \"magnet.svg\",\r\n \"mail-open-outline.svg\",\r\n \"mail-open-sharp.svg\",\r\n \"mail-open.svg\",\r\n \"mail-outline.svg\",\r\n \"mail-sharp.svg\",\r\n \"mail-unread-outline.svg\",\r\n \"mail-unread-sharp.svg\",\r\n \"mail-unread.svg\",\r\n \"mail.svg\",\r\n \"male-female-outline.svg\",\r\n \"male-female-sharp.svg\",\r\n \"male-female.svg\",\r\n \"male-outline.svg\",\r\n \"male-sharp.svg\",\r\n \"male.svg\",\r\n \"man-outline.svg\",\r\n \"man-sharp.svg\",\r\n \"man.svg\",\r\n \"map-outline.svg\",\r\n \"map-sharp.svg\",\r\n \"map.svg\",\r\n \"medal-outline.svg\",\r\n \"medal-sharp.svg\",\r\n \"medal.svg\",\r\n \"medical-outline.svg\",\r\n \"medical-sharp.svg\",\r\n \"medical.svg\",\r\n \"medkit-outline.svg\",\r\n \"medkit-sharp.svg\",\r\n \"medkit.svg\",\r\n \"megaphone-outline.svg\",\r\n \"megaphone-sharp.svg\",\r\n \"megaphone.svg\",\r\n \"menu-outline.svg\",\r\n \"menu-sharp.svg\",\r\n \"menu.svg\",\r\n \"mic-circle-outline.svg\",\r\n \"mic-circle-sharp.svg\",\r\n \"mic-circle.svg\",\r\n \"mic-off-circle-outline.svg\",\r\n \"mic-off-circle-sharp.svg\",\r\n \"mic-off-circle.svg\",\r\n \"mic-off-outline.svg\",\r\n \"mic-off-sharp.svg\",\r\n \"mic-off.svg\",\r\n \"mic-outline.svg\",\r\n \"mic-sharp.svg\",\r\n \"mic.svg\",\r\n \"moon-outline.svg\",\r\n \"moon-sharp.svg\",\r\n \"moon.svg\",\r\n \"move-outline.svg\",\r\n \"move-sharp.svg\",\r\n \"move.svg\",\r\n \"musical-note-outline.svg\",\r\n \"musical-note-sharp.svg\",\r\n \"musical-note.svg\",\r\n \"musical-notes-outline.svg\",\r\n \"musical-notes-sharp.svg\",\r\n \"musical-notes.svg\",\r\n \"navigate-circle-outline.svg\",\r\n \"navigate-circle-sharp.svg\",\r\n \"navigate-circle.svg\",\r\n \"navigate-outline.svg\",\r\n \"navigate-sharp.svg\",\r\n \"navigate.svg\",\r\n \"newspaper-outline.svg\",\r\n \"newspaper-sharp.svg\",\r\n \"newspaper.svg\",\r\n \"notifications-circle-outline.svg\",\r\n \"notifications-circle-sharp.svg\",\r\n \"notifications-circle.svg\",\r\n \"notifications-off-circle-outline.svg\",\r\n \"notifications-off-circle-sharp.svg\",\r\n \"notifications-off-circle.svg\",\r\n \"notifications-off-outline.svg\",\r\n \"notifications-off-sharp.svg\",\r\n \"notifications-off.svg\",\r\n \"notifications-outline.svg\",\r\n \"notifications-sharp.svg\",\r\n \"notifications.svg\",\r\n \"nuclear-outline.svg\",\r\n \"nuclear-sharp.svg\",\r\n \"nuclear.svg\",\r\n \"nutrition-outline.svg\",\r\n \"nutrition-sharp.svg\",\r\n \"nutrition.svg\",\r\n \"open-outline.svg\",\r\n \"open-sharp.svg\",\r\n \"open.svg\",\r\n \"options-outline.svg\",\r\n \"options-sharp.svg\",\r\n \"options.svg\",\r\n \"paper-plane-outline.svg\",\r\n \"paper-plane-sharp.svg\",\r\n \"paper-plane.svg\",\r\n \"partly-sunny-outline.svg\",\r\n \"partly-sunny-sharp.svg\",\r\n \"partly-sunny.svg\",\r\n \"pause-circle-outline.svg\",\r\n \"pause-circle-sharp.svg\",\r\n \"pause-circle.svg\",\r\n \"pause-outline.svg\",\r\n \"pause-sharp.svg\",\r\n \"pause.svg\",\r\n \"paw-outline.svg\",\r\n \"paw-sharp.svg\",\r\n \"paw.svg\",\r\n \"pencil-outline.svg\",\r\n \"pencil-sharp.svg\",\r\n \"pencil.svg\",\r\n \"people-circle-outline.svg\",\r\n \"people-circle-sharp.svg\",\r\n \"people-circle.svg\",\r\n \"people-outline.svg\",\r\n \"people-sharp.svg\",\r\n \"people.svg\",\r\n \"person-add-outline.svg\",\r\n \"person-add-sharp.svg\",\r\n \"person-add.svg\",\r\n \"person-circle-outline.svg\",\r\n \"person-circle-sharp.svg\",\r\n \"person-circle.svg\",\r\n \"person-outline.svg\",\r\n \"person-remove-outline.svg\",\r\n \"person-remove-sharp.svg\",\r\n \"person-remove.svg\",\r\n \"person-sharp.svg\",\r\n \"person.svg\",\r\n \"phone-landscape-outline.svg\",\r\n \"phone-landscape-sharp.svg\",\r\n \"phone-landscape.svg\",\r\n \"phone-portrait-outline.svg\",\r\n \"phone-portrait-sharp.svg\",\r\n \"phone-portrait.svg\",\r\n \"pie-chart-outline.svg\",\r\n \"pie-chart-sharp.svg\",\r\n \"pie-chart.svg\",\r\n \"pin-outline.svg\",\r\n \"pin-sharp.svg\",\r\n \"pin.svg\",\r\n \"pint-outline.svg\",\r\n \"pint-sharp.svg\",\r\n \"pint.svg\",\r\n \"pizza-outline.svg\",\r\n \"pizza-sharp.svg\",\r\n \"pizza.svg\",\r\n \"planet-outline.svg\",\r\n \"planet-sharp.svg\",\r\n \"planet.svg\",\r\n \"play-back-circle-outline.svg\",\r\n \"play-back-circle-sharp.svg\",\r\n \"play-back-circle.svg\",\r\n \"play-back-outline.svg\",\r\n \"play-back-sharp.svg\",\r\n \"play-back.svg\",\r\n \"play-circle-outline.svg\",\r\n \"play-circle-sharp.svg\",\r\n \"play-circle.svg\",\r\n \"play-forward-circle-outline.svg\",\r\n \"play-forward-circle-sharp.svg\",\r\n \"play-forward-circle.svg\",\r\n \"play-forward-outline.svg\",\r\n \"play-forward-sharp.svg\",\r\n \"play-forward.svg\",\r\n \"play-outline.svg\",\r\n \"play-sharp.svg\",\r\n \"play-skip-back-circle-outline.svg\",\r\n \"play-skip-back-circle-sharp.svg\",\r\n \"play-skip-back-circle.svg\",\r\n \"play-skip-back-outline.svg\",\r\n \"play-skip-back-sharp.svg\",\r\n \"play-skip-back.svg\",\r\n \"play-skip-forward-circle-outline.svg\",\r\n \"play-skip-forward-circle-sharp.svg\",\r\n \"play-skip-forward-circle.svg\",\r\n \"play-skip-forward-outline.svg\",\r\n \"play-skip-forward-sharp.svg\",\r\n \"play-skip-forward.svg\",\r\n \"play.svg\",\r\n \"podium-outline.svg\",\r\n \"podium-sharp.svg\",\r\n \"podium.svg\",\r\n \"power-outline.svg\",\r\n \"power-sharp.svg\",\r\n \"power.svg\",\r\n \"pricetag-outline.svg\",\r\n \"pricetag-sharp.svg\",\r\n \"pricetag.svg\",\r\n \"pricetags-outline.svg\",\r\n \"pricetags-sharp.svg\",\r\n \"pricetags.svg\",\r\n \"print-outline.svg\",\r\n \"print-sharp.svg\",\r\n \"print.svg\",\r\n \"prism-outline.svg\",\r\n \"prism-sharp.svg\",\r\n \"prism.svg\",\r\n \"pulse-outline.svg\",\r\n \"pulse-sharp.svg\",\r\n \"pulse.svg\",\r\n \"push-outline.svg\",\r\n \"push-sharp.svg\",\r\n \"push.svg\",\r\n \"qr-code-outline.svg\",\r\n \"qr-code-sharp.svg\",\r\n \"qr-code.svg\",\r\n \"radio-button-off-outline.svg\",\r\n \"radio-button-off-sharp.svg\",\r\n \"radio-button-off.svg\",\r\n \"radio-button-on-outline.svg\",\r\n \"radio-button-on-sharp.svg\",\r\n \"radio-button-on.svg\",\r\n \"radio-outline.svg\",\r\n \"radio-sharp.svg\",\r\n \"radio.svg\",\r\n \"rainy-outline.svg\",\r\n \"rainy-sharp.svg\",\r\n \"rainy.svg\",\r\n \"reader-outline.svg\",\r\n \"reader-sharp.svg\",\r\n \"reader.svg\",\r\n \"receipt-outline.svg\",\r\n \"receipt-sharp.svg\",\r\n \"receipt.svg\",\r\n \"recording-outline.svg\",\r\n \"recording-sharp.svg\",\r\n \"recording.svg\",\r\n \"refresh-circle-outline.svg\",\r\n \"refresh-circle-sharp.svg\",\r\n \"refresh-circle.svg\",\r\n \"refresh-outline.svg\",\r\n \"refresh-sharp.svg\",\r\n \"refresh.svg\",\r\n \"reload-circle-outline.svg\",\r\n \"reload-circle-sharp.svg\",\r\n \"reload-circle.svg\",\r\n \"reload-outline.svg\",\r\n \"reload-sharp.svg\",\r\n \"reload.svg\",\r\n \"remove-circle-outline.svg\",\r\n \"remove-circle-sharp.svg\",\r\n \"remove-circle.svg\",\r\n \"remove-outline.svg\",\r\n \"remove-sharp.svg\",\r\n \"remove.svg\",\r\n \"reorder-four-outline.svg\",\r\n \"reorder-four-sharp.svg\",\r\n \"reorder-four.svg\",\r\n \"reorder-three-outline.svg\",\r\n \"reorder-three-sharp.svg\",\r\n \"reorder-three.svg\",\r\n \"reorder-two-outline.svg\",\r\n \"reorder-two-sharp.svg\",\r\n \"reorder-two.svg\",\r\n \"repeat-outline.svg\",\r\n \"repeat-sharp.svg\",\r\n \"repeat.svg\",\r\n \"resize-outline.svg\",\r\n \"resize-sharp.svg\",\r\n \"resize.svg\",\r\n \"restaurant-outline.svg\",\r\n \"restaurant-sharp.svg\",\r\n \"restaurant.svg\",\r\n \"return-down-back-outline.svg\",\r\n \"return-down-back-sharp.svg\",\r\n \"return-down-back.svg\",\r\n \"return-down-forward-outline.svg\",\r\n \"return-down-forward-sharp.svg\",\r\n \"return-down-forward.svg\",\r\n \"return-up-back-outline.svg\",\r\n \"return-up-back-sharp.svg\",\r\n \"return-up-back.svg\",\r\n \"return-up-forward-outline.svg\",\r\n \"return-up-forward-sharp.svg\",\r\n \"return-up-forward.svg\",\r\n \"ribbon-outline.svg\",\r\n \"ribbon-sharp.svg\",\r\n \"ribbon.svg\",\r\n \"rocket-outline.svg\",\r\n \"rocket-sharp.svg\",\r\n \"rocket.svg\",\r\n \"rose-outline.svg\",\r\n \"rose-sharp.svg\",\r\n \"rose.svg\",\r\n \"sad-outline.svg\",\r\n \"sad-sharp.svg\",\r\n \"sad.svg\",\r\n \"save-outline.svg\",\r\n \"save-sharp.svg\",\r\n \"save.svg\",\r\n \"scale-outline.svg\",\r\n \"scale-sharp.svg\",\r\n \"scale.svg\",\r\n \"scan-circle-outline.svg\",\r\n \"scan-circle-sharp.svg\",\r\n \"scan-circle.svg\",\r\n \"scan-outline.svg\",\r\n \"scan-sharp.svg\",\r\n \"scan.svg\",\r\n \"school-outline.svg\",\r\n \"school-sharp.svg\",\r\n \"school.svg\",\r\n \"search-circle-outline.svg\",\r\n \"search-circle-sharp.svg\",\r\n \"search-circle.svg\",\r\n \"search-outline.svg\",\r\n \"search-sharp.svg\",\r\n \"search.svg\",\r\n \"send-outline.svg\",\r\n \"send-sharp.svg\",\r\n \"send.svg\",\r\n \"server-outline.svg\",\r\n \"server-sharp.svg\",\r\n \"server.svg\",\r\n \"settings-outline.svg\",\r\n \"settings-sharp.svg\",\r\n \"settings.svg\",\r\n \"shapes-outline.svg\",\r\n \"shapes-sharp.svg\",\r\n \"shapes.svg\",\r\n \"share-outline.svg\",\r\n \"share-sharp.svg\",\r\n \"share-social-outline.svg\",\r\n \"share-social-sharp.svg\",\r\n \"share-social.svg\",\r\n \"share.svg\",\r\n \"shield-checkmark-outline.svg\",\r\n \"shield-checkmark-sharp.svg\",\r\n \"shield-checkmark.svg\",\r\n \"shield-half-outline.svg\",\r\n \"shield-half-sharp.svg\",\r\n \"shield-half.svg\",\r\n \"shield-outline.svg\",\r\n \"shield-sharp.svg\",\r\n \"shield.svg\",\r\n \"shirt-outline.svg\",\r\n \"shirt-sharp.svg\",\r\n \"shirt.svg\",\r\n \"shuffle-outline.svg\",\r\n \"shuffle-sharp.svg\",\r\n \"shuffle.svg\",\r\n \"skull-outline.svg\",\r\n \"skull-sharp.svg\",\r\n \"skull.svg\",\r\n \"snow-outline.svg\",\r\n \"snow-sharp.svg\",\r\n \"snow.svg\",\r\n \"sparkles-outline.svg\",\r\n \"sparkles-sharp.svg\",\r\n \"sparkles.svg\",\r\n \"speedometer-outline.svg\",\r\n \"speedometer-sharp.svg\",\r\n \"speedometer.svg\",\r\n \"square-outline.svg\",\r\n \"square-sharp.svg\",\r\n \"square.svg\",\r\n \"star-half-outline.svg\",\r\n \"star-half-sharp.svg\",\r\n \"star-half.svg\",\r\n \"star-outline.svg\",\r\n \"star-sharp.svg\",\r\n \"star.svg\",\r\n \"stats-chart-outline.svg\",\r\n \"stats-chart-sharp.svg\",\r\n \"stats-chart.svg\",\r\n \"stop-circle-outline.svg\",\r\n \"stop-circle-sharp.svg\",\r\n \"stop-circle.svg\",\r\n \"stop-outline.svg\",\r\n \"stop-sharp.svg\",\r\n \"stop.svg\",\r\n \"stopwatch-outline.svg\",\r\n \"stopwatch-sharp.svg\",\r\n \"stopwatch.svg\",\r\n \"storefront-outline.svg\",\r\n \"storefront-sharp.svg\",\r\n \"storefront.svg\",\r\n \"subway-outline.svg\",\r\n \"subway-sharp.svg\",\r\n \"subway.svg\",\r\n \"sunny-outline.svg\",\r\n \"sunny-sharp.svg\",\r\n \"sunny.svg\",\r\n \"swap-horizontal-outline.svg\",\r\n \"swap-horizontal-sharp.svg\",\r\n \"swap-horizontal.svg\",\r\n \"swap-vertical-outline.svg\",\r\n \"swap-vertical-sharp.svg\",\r\n \"swap-vertical.svg\",\r\n \"sync-circle-outline.svg\",\r\n \"sync-circle-sharp.svg\",\r\n \"sync-circle.svg\",\r\n \"sync-outline.svg\",\r\n \"sync-sharp.svg\",\r\n \"sync.svg\",\r\n \"tablet-landscape-outline.svg\",\r\n \"tablet-landscape-sharp.svg\",\r\n \"tablet-landscape.svg\",\r\n \"tablet-portrait-outline.svg\",\r\n \"tablet-portrait-sharp.svg\",\r\n \"tablet-portrait.svg\",\r\n \"telescope-outline.svg\",\r\n \"telescope-sharp.svg\",\r\n \"telescope.svg\",\r\n \"tennisball-outline.svg\",\r\n \"tennisball-sharp.svg\",\r\n \"tennisball.svg\",\r\n \"terminal-outline.svg\",\r\n \"terminal-sharp.svg\",\r\n \"terminal.svg\",\r\n \"text-outline.svg\",\r\n \"text-sharp.svg\",\r\n \"text.svg\",\r\n \"thermometer-outline.svg\",\r\n \"thermometer-sharp.svg\",\r\n \"thermometer.svg\",\r\n \"thumbs-down-outline.svg\",\r\n \"thumbs-down-sharp.svg\",\r\n \"thumbs-down.svg\",\r\n \"thumbs-up-outline.svg\",\r\n \"thumbs-up-sharp.svg\",\r\n \"thumbs-up.svg\",\r\n \"thunderstorm-outline.svg\",\r\n \"thunderstorm-sharp.svg\",\r\n \"thunderstorm.svg\",\r\n \"ticket-outline.svg\",\r\n \"ticket-sharp.svg\",\r\n \"ticket.svg\",\r\n \"time-outline.svg\",\r\n \"time-sharp.svg\",\r\n \"time.svg\",\r\n \"timer-outline.svg\",\r\n \"timer-sharp.svg\",\r\n \"timer.svg\",\r\n \"today-outline.svg\",\r\n \"today-sharp.svg\",\r\n \"today.svg\",\r\n \"toggle-outline.svg\",\r\n \"toggle-sharp.svg\",\r\n \"toggle.svg\",\r\n \"trail-sign-outline.svg\",\r\n \"trail-sign-sharp.svg\",\r\n \"trail-sign.svg\",\r\n \"train-outline.svg\",\r\n \"train-sharp.svg\",\r\n \"train.svg\",\r\n \"transgender-outline.svg\",\r\n \"transgender-sharp.svg\",\r\n \"transgender.svg\",\r\n \"trash-bin-outline.svg\",\r\n \"trash-bin-sharp.svg\",\r\n \"trash-bin.svg\",\r\n \"trash-outline.svg\",\r\n \"trash-sharp.svg\",\r\n \"trash.svg\",\r\n \"trending-down-outline.svg\",\r\n \"trending-down-sharp.svg\",\r\n \"trending-down.svg\",\r\n \"trending-up-outline.svg\",\r\n \"trending-up-sharp.svg\",\r\n \"trending-up.svg\",\r\n \"triangle-outline.svg\",\r\n \"triangle-sharp.svg\",\r\n \"triangle.svg\",\r\n \"trophy-outline.svg\",\r\n \"trophy-sharp.svg\",\r\n \"trophy.svg\",\r\n \"tv-outline.svg\",\r\n \"tv-sharp.svg\",\r\n \"tv.svg\",\r\n \"umbrella-outline.svg\",\r\n \"umbrella-sharp.svg\",\r\n \"umbrella.svg\",\r\n \"unlink-outline.svg\",\r\n \"unlink-sharp.svg\",\r\n \"unlink.svg\",\r\n \"videocam-off-outline.svg\",\r\n \"videocam-off-sharp.svg\",\r\n \"videocam-off.svg\",\r\n \"videocam-outline.svg\",\r\n \"videocam-sharp.svg\",\r\n \"videocam.svg\",\r\n \"volume-high-outline.svg\",\r\n \"volume-high-sharp.svg\",\r\n \"volume-high.svg\",\r\n \"volume-low-outline.svg\",\r\n \"volume-low-sharp.svg\",\r\n \"volume-low.svg\",\r\n \"volume-medium-outline.svg\",\r\n \"volume-medium-sharp.svg\",\r\n \"volume-medium.svg\",\r\n \"volume-mute-outline.svg\",\r\n \"volume-mute-sharp.svg\",\r\n \"volume-mute.svg\",\r\n \"volume-off-outline.svg\",\r\n \"volume-off-sharp.svg\",\r\n \"volume-off.svg\",\r\n \"walk-outline.svg\",\r\n \"walk-sharp.svg\",\r\n \"walk.svg\",\r\n \"wallet-outline.svg\",\r\n \"wallet-sharp.svg\",\r\n \"wallet.svg\",\r\n \"warning-outline.svg\",\r\n \"warning-sharp.svg\",\r\n \"warning.svg\",\r\n \"watch-outline.svg\",\r\n \"watch-sharp.svg\",\r\n \"watch.svg\",\r\n \"water-outline.svg\",\r\n \"water-sharp.svg\",\r\n \"water.svg\",\r\n \"wifi-outline.svg\",\r\n \"wifi-sharp.svg\",\r\n \"wifi.svg\",\r\n \"wine-outline.svg\",\r\n \"wine-sharp.svg\",\r\n \"wine.svg\",\r\n \"woman-outline.svg\",\r\n \"woman-sharp.svg\",\r\n \"woman.svg\"\r\n];","export const lstFluenticons = [\r\n \"fluent-access-time-outline.svg\",\r\n \"fluent-access-time.svg\",\r\n \"fluent-accessibility-checkmark.svg\",\r\n \"fluent-accessibility-error.svg\",\r\n \"fluent-accessibility-more.svg\",\r\n \"fluent-accessibility-outline.svg\",\r\n \"fluent-accessibility.svg\",\r\n \"fluent-add-circle-outline.svg\",\r\n \"fluent-add-circle.svg\",\r\n \"fluent-add-outline.svg\",\r\n \"fluent-add-square-multiple.svg\",\r\n \"fluent-add-square-outline.svg\",\r\n \"fluent-add-square.svg\",\r\n \"fluent-add-subtract-circle.svg\",\r\n \"fluent-add.svg\",\r\n \"fluent-airplane-landing-outline.svg\",\r\n \"fluent-airplane-landing.svg\",\r\n \"fluent-airplane-outline.svg\",\r\n \"fluent-airplane-take-off-outline.svg\",\r\n \"fluent-airplane-take-off.svg\",\r\n \"fluent-airplane.svg\",\r\n \"fluent-album-add-outline.svg\",\r\n \"fluent-album-add.svg\",\r\n \"fluent-album-outline.svg\",\r\n \"fluent-album.svg\",\r\n \"fluent-alert-badge-outline.svg\",\r\n \"fluent-alert-badge.svg\",\r\n \"fluent-alert-off-outline.svg\",\r\n \"fluent-alert-off.svg\",\r\n \"fluent-alert-on-outline.svg\",\r\n \"fluent-alert-on.svg\",\r\n \"fluent-alert-outline.svg\",\r\n \"fluent-alert-snooze-outline.svg\",\r\n \"fluent-alert-snooze.svg\",\r\n \"fluent-alert-urgent-outline.svg\",\r\n \"fluent-alert-urgent.svg\",\r\n \"fluent-alert.svg\",\r\n \"fluent-align-bottom-outline.svg\",\r\n \"fluent-align-bottom.svg\",\r\n \"fluent-align-center-horizontal.svg\",\r\n \"fluent-align-center-vertical.svg\",\r\n \"fluent-align-left-outline.svg\",\r\n \"fluent-align-left.svg\",\r\n \"fluent-align-right-outline.svg\",\r\n \"fluent-align-right.svg\",\r\n \"fluent-align-straighten-outline.svg\",\r\n \"fluent-align-straighten.svg\",\r\n \"fluent-align-top-outline.svg\",\r\n \"fluent-align-top.svg\",\r\n \"fluent-animal-cat-outline.svg\",\r\n \"fluent-animal-cat.svg\",\r\n \"fluent-animal-dog-outline.svg\",\r\n \"fluent-animal-dog.svg\",\r\n \"fluent-animal-rabbit-outline.svg\",\r\n \"fluent-animal-rabbit.svg\",\r\n \"fluent-animal-turtle-outline.svg\",\r\n \"fluent-animal-turtle.svg\",\r\n \"fluent-app-folder-outline.svg\",\r\n \"fluent-app-folder.svg\",\r\n \"fluent-app-generic-outline.svg\",\r\n \"fluent-app-generic.svg\",\r\n \"fluent-app-recent-outline.svg\",\r\n \"fluent-app-recent.svg\",\r\n \"fluent-app-store-outline.svg\",\r\n \"fluent-app-store.svg\",\r\n \"fluent-app-title-outline.svg\",\r\n \"fluent-app-title.svg\",\r\n \"fluent-approvals-app-outline.svg\",\r\n \"fluent-approvals-app.svg\",\r\n \"fluent-apps-add-in-outline.svg\",\r\n \"fluent-apps-add-in.svg\",\r\n \"fluent-apps-list-detail-outline.svg\",\r\n \"fluent-apps-list-detail.svg\",\r\n \"fluent-apps-list-outline.svg\",\r\n \"fluent-apps-list.svg\",\r\n \"fluent-apps-outline.svg\",\r\n \"fluent-apps.svg\",\r\n \"fluent-archive-arrow-back.svg\",\r\n \"fluent-archive-multiple-outline.svg\",\r\n \"fluent-archive-multiple.svg\",\r\n \"fluent-archive-outline.svg\",\r\n \"fluent-archive-settings-outline.svg\",\r\n \"fluent-archive-settings.svg\",\r\n \"fluent-archive.svg\",\r\n \"fluent-arrow-autofit-content.svg\",\r\n \"fluent-arrow-autofit-down.svg\",\r\n \"fluent-arrow-autofit-height-in.svg\",\r\n \"fluent-arrow-autofit-height.svg\",\r\n \"fluent-arrow-autofit-up-outline.svg\",\r\n \"fluent-arrow-autofit-up.svg\",\r\n \"fluent-arrow-autofit-width.svg\",\r\n \"fluent-arrow-between-down.svg\",\r\n \"fluent-arrow-bounce-outline.svg\",\r\n \"fluent-arrow-bounce.svg\",\r\n \"fluent-arrow-circle-down-double.svg\",\r\n \"fluent-arrow-circle-down-outline.svg\",\r\n \"fluent-arrow-circle-down-right.svg\",\r\n \"fluent-arrow-circle-down-split.svg\",\r\n \"fluent-arrow-circle-down.svg\",\r\n \"fluent-arrow-circle-left-outline.svg\",\r\n \"fluent-arrow-circle-left.svg\",\r\n \"fluent-arrow-circle-right.svg\",\r\n \"fluent-arrow-circle-up-left.svg\",\r\n \"fluent-arrow-circle-up-outline.svg\",\r\n \"fluent-arrow-circle-up-right.svg\",\r\n \"fluent-arrow-circle-up.svg\",\r\n \"fluent-arrow-clockwise-dashes.svg\",\r\n \"fluent-arrow-clockwise-outline.svg\",\r\n \"fluent-arrow-clockwise.svg\",\r\n \"fluent-arrow-collapse-all.svg\",\r\n \"fluent-arrow-counterclockwise.svg\",\r\n \"fluent-arrow-curve-down-left.svg\",\r\n \"fluent-arrow-down-exclamation.svg\",\r\n \"fluent-arrow-down-left-outline.svg\",\r\n \"fluent-arrow-down-left.svg\",\r\n \"fluent-arrow-down-outline.svg\",\r\n \"fluent-arrow-down.svg\",\r\n \"fluent-arrow-download-off.svg\",\r\n \"fluent-arrow-download-outline.svg\",\r\n \"fluent-arrow-download.svg\",\r\n \"fluent-arrow-enter-left-outline.svg\",\r\n \"fluent-arrow-enter-left.svg\",\r\n \"fluent-arrow-enter-up-outline.svg\",\r\n \"fluent-arrow-enter-up.svg\",\r\n \"fluent-arrow-expand-all-outline.svg\",\r\n \"fluent-arrow-expand-all.svg\",\r\n \"fluent-arrow-expand-outline.svg\",\r\n \"fluent-arrow-expand.svg\",\r\n \"fluent-arrow-export-ltr-outline.svg\",\r\n \"fluent-arrow-export-ltr.svg\",\r\n \"fluent-arrow-export-outline.svg\",\r\n \"fluent-arrow-export-rtl-outline.svg\",\r\n \"fluent-arrow-export-rtl.svg\",\r\n \"fluent-arrow-export-up-outline.svg\",\r\n \"fluent-arrow-export-up.svg\",\r\n \"fluent-arrow-export.svg\",\r\n \"fluent-arrow-fit-in-outline.svg\",\r\n \"fluent-arrow-fit-in.svg\",\r\n \"fluent-arrow-fit-outline.svg\",\r\n \"fluent-arrow-fit.svg\",\r\n \"fluent-arrow-flow-up-right.svg\",\r\n \"fluent-arrow-forward-down-person.svg\",\r\n \"fluent-arrow-forward-outline.svg\",\r\n \"fluent-arrow-forward.svg\",\r\n \"fluent-arrow-hook-down-left.svg\",\r\n \"fluent-arrow-hook-down-right.svg\",\r\n \"fluent-arrow-hook-up-left.svg\",\r\n \"fluent-arrow-hook-up-right.svg\",\r\n \"fluent-arrow-import-outline.svg\",\r\n \"fluent-arrow-import.svg\",\r\n \"fluent-arrow-left-outline.svg\",\r\n \"fluent-arrow-left.svg\",\r\n \"fluent-arrow-maximize-outline.svg\",\r\n \"fluent-arrow-maximize-vertical.svg\",\r\n \"fluent-arrow-maximize.svg\",\r\n \"fluent-arrow-minimize-outline.svg\",\r\n \"fluent-arrow-minimize-vertical.svg\",\r\n \"fluent-arrow-minimize.svg\",\r\n \"fluent-arrow-move-outline.svg\",\r\n \"fluent-arrow-move.svg\",\r\n \"fluent-arrow-next-outline.svg\",\r\n \"fluent-arrow-next.svg\",\r\n \"fluent-arrow-outline-down-left.svg\",\r\n \"fluent-arrow-outline-up-right.svg\",\r\n \"fluent-arrow-paragraph-outline.svg\",\r\n \"fluent-arrow-paragraph.svg\",\r\n \"fluent-arrow-previous-outline.svg\",\r\n \"fluent-arrow-previous.svg\",\r\n \"fluent-arrow-redo-outline.svg\",\r\n \"fluent-arrow-redo.svg\",\r\n \"fluent-arrow-repeat-1-outline.svg\",\r\n \"fluent-arrow-repeat-1.svg\",\r\n \"fluent-arrow-repeat-all-off.svg\",\r\n \"fluent-arrow-repeat-all-outline.svg\",\r\n \"fluent-arrow-repeat-all.svg\",\r\n \"fluent-arrow-reply-all-outline.svg\",\r\n \"fluent-arrow-reply-all.svg\",\r\n \"fluent-arrow-reply-down-outline.svg\",\r\n \"fluent-arrow-reply-down.svg\",\r\n \"fluent-arrow-reply-outline.svg\",\r\n \"fluent-arrow-reply.svg\",\r\n \"fluent-arrow-reset-outline.svg\",\r\n \"fluent-arrow-reset.svg\",\r\n \"fluent-arrow-right-outline.svg\",\r\n \"fluent-arrow-right.svg\",\r\n \"fluent-arrow-rotate-clockwise.svg\",\r\n \"fluent-arrow-routing-outline.svg\",\r\n \"fluent-arrow-routing.svg\",\r\n \"fluent-arrow-shuffle-off-outline.svg\",\r\n \"fluent-arrow-shuffle-off.svg\",\r\n \"fluent-arrow-shuffle-outline.svg\",\r\n \"fluent-arrow-shuffle.svg\",\r\n \"fluent-arrow-sort-down-lines.svg\",\r\n \"fluent-arrow-sort-down-outline.svg\",\r\n \"fluent-arrow-sort-down.svg\",\r\n \"fluent-arrow-sort-outline.svg\",\r\n \"fluent-arrow-sort-up-lines.svg\",\r\n \"fluent-arrow-sort-up-outline.svg\",\r\n \"fluent-arrow-sort-up.svg\",\r\n \"fluent-arrow-sort.svg\",\r\n \"fluent-arrow-split-outline.svg\",\r\n \"fluent-arrow-split.svg\",\r\n \"fluent-arrow-square-down-outline.svg\",\r\n \"fluent-arrow-square-down.svg\",\r\n \"fluent-arrow-square-up-right.svg\",\r\n \"fluent-arrow-step-in-left.svg\",\r\n \"fluent-arrow-step-in-outline.svg\",\r\n \"fluent-arrow-step-in-right.svg\",\r\n \"fluent-arrow-step-in.svg\",\r\n \"fluent-arrow-step-out-outline.svg\",\r\n \"fluent-arrow-step-out.svg\",\r\n \"fluent-arrow-swap-outline.svg\",\r\n \"fluent-arrow-swap.svg\",\r\n \"fluent-arrow-sync-checkmark.svg\",\r\n \"fluent-arrow-sync-circle-outline.svg\",\r\n \"fluent-arrow-sync-circle.svg\",\r\n \"fluent-arrow-sync-dismiss.svg\",\r\n \"fluent-arrow-sync-outline.svg\",\r\n \"fluent-arrow-sync.svg\",\r\n \"fluent-arrow-trending-checkmark.svg\",\r\n \"fluent-arrow-trending-down.svg\",\r\n \"fluent-arrow-trending-lines.svg\",\r\n \"fluent-arrow-trending-outline.svg\",\r\n \"fluent-arrow-trending-settings.svg\",\r\n \"fluent-arrow-trending-sparkle.svg\",\r\n \"fluent-arrow-trending-text.svg\",\r\n \"fluent-arrow-trending-wrench.svg\",\r\n \"fluent-arrow-trending.svg\",\r\n \"fluent-arrow-turn-right-outline.svg\",\r\n \"fluent-arrow-turn-right.svg\",\r\n \"fluent-arrow-undo-outline.svg\",\r\n \"fluent-arrow-undo.svg\",\r\n \"fluent-arrow-up-exclamation.svg\",\r\n \"fluent-arrow-up-left-outline.svg\",\r\n \"fluent-arrow-up-left.svg\",\r\n \"fluent-arrow-up-outline.svg\",\r\n \"fluent-arrow-up-right-outline.svg\",\r\n \"fluent-arrow-up-right.svg\",\r\n \"fluent-arrow-up-square-settings.svg\",\r\n \"fluent-arrow-up.svg\",\r\n \"fluent-arrow-upload-outline.svg\",\r\n \"fluent-arrow-upload.svg\",\r\n \"fluent-arrows-bidirectional.svg\",\r\n \"fluent-attach-arrow-right.svg\",\r\n \"fluent-attach-outline.svg\",\r\n \"fluent-attach-text-outline.svg\",\r\n \"fluent-attach-text.svg\",\r\n \"fluent-attach.svg\",\r\n \"fluent-auto-fit-height-outline.svg\",\r\n \"fluent-auto-fit-height.svg\",\r\n \"fluent-auto-fit-width-outline.svg\",\r\n \"fluent-auto-fit-width.svg\",\r\n \"fluent-autocorrect-outline.svg\",\r\n \"fluent-autocorrect.svg\",\r\n \"fluent-autosum-outline.svg\",\r\n \"fluent-autosum.svg\",\r\n \"fluent-backpack-add-outline.svg\",\r\n \"fluent-backpack-add.svg\",\r\n \"fluent-backpack-outline.svg\",\r\n \"fluent-backpack.svg\",\r\n \"fluent-backspace-outline.svg\",\r\n \"fluent-backspace.svg\",\r\n \"fluent-badge-outline.svg\",\r\n \"fluent-badge.svg\",\r\n \"fluent-balloon-outline.svg\",\r\n \"fluent-balloon.svg\",\r\n \"fluent-barcode-scanner-outline.svg\",\r\n \"fluent-barcode-scanner.svg\",\r\n \"fluent-battery-0-outline.svg\",\r\n \"fluent-battery-0.svg\",\r\n \"fluent-battery-1-outline.svg\",\r\n \"fluent-battery-1.svg\",\r\n \"fluent-battery-10-outline.svg\",\r\n \"fluent-battery-10.svg\",\r\n \"fluent-battery-2-outline.svg\",\r\n \"fluent-battery-2.svg\",\r\n \"fluent-battery-3-outline.svg\",\r\n \"fluent-battery-3.svg\",\r\n \"fluent-battery-4-outline.svg\",\r\n \"fluent-battery-4.svg\",\r\n \"fluent-battery-5-outline.svg\",\r\n \"fluent-battery-5.svg\",\r\n \"fluent-battery-6-outline.svg\",\r\n \"fluent-battery-6.svg\",\r\n \"fluent-battery-7-outline.svg\",\r\n \"fluent-battery-7.svg\",\r\n \"fluent-battery-8-outline.svg\",\r\n \"fluent-battery-8.svg\",\r\n \"fluent-battery-9-outline.svg\",\r\n \"fluent-battery-9.svg\",\r\n \"fluent-battery-charge-outline.svg\",\r\n \"fluent-battery-charge.svg\",\r\n \"fluent-battery-checkmark-outline.svg\",\r\n \"fluent-battery-checkmark.svg\",\r\n \"fluent-battery-saver-outline.svg\",\r\n \"fluent-battery-saver.svg\",\r\n \"fluent-battery-warning-outline.svg\",\r\n \"fluent-battery-warning.svg\",\r\n \"fluent-beach-outline.svg\",\r\n \"fluent-beach.svg\",\r\n \"fluent-beaker-add-outline.svg\",\r\n \"fluent-beaker-add.svg\",\r\n \"fluent-beaker-dismiss-outline.svg\",\r\n \"fluent-beaker-dismiss.svg\",\r\n \"fluent-beaker-edit-outline.svg\",\r\n \"fluent-beaker-edit.svg\",\r\n \"fluent-beaker-outline.svg\",\r\n \"fluent-beaker.svg\",\r\n \"fluent-bed-outline.svg\",\r\n \"fluent-bed.svg\",\r\n \"fluent-bench-outline.svg\",\r\n \"fluent-bench.svg\",\r\n \"fluent-bin-full-outline.svg\",\r\n \"fluent-bin-full.svg\",\r\n \"fluent-bin-recycle-full-outline.svg\",\r\n \"fluent-bin-recycle-full.svg\",\r\n \"fluent-bin-recycle-outline.svg\",\r\n \"fluent-bin-recycle.svg\",\r\n \"fluent-binder-triangle-outline.svg\",\r\n \"fluent-binder-triangle.svg\",\r\n \"fluent-bluetooth-connected.svg\",\r\n \"fluent-bluetooth-disabled.svg\",\r\n \"fluent-bluetooth-outline.svg\",\r\n \"fluent-bluetooth-searching.svg\",\r\n \"fluent-bluetooth.svg\",\r\n \"fluent-blur-outline.svg\",\r\n \"fluent-blur.svg\",\r\n \"fluent-board-heart-outline.svg\",\r\n \"fluent-board-heart.svg\",\r\n \"fluent-board-outline.svg\",\r\n \"fluent-board-split-outline.svg\",\r\n \"fluent-board-split.svg\",\r\n \"fluent-board.svg\",\r\n \"fluent-book-add-outline.svg\",\r\n \"fluent-book-add.svg\",\r\n \"fluent-book-arrow-clockwise.svg\",\r\n \"fluent-book-clock-outline.svg\",\r\n \"fluent-book-clock.svg\",\r\n \"fluent-book-coins-outline.svg\",\r\n \"fluent-book-coins.svg\",\r\n \"fluent-book-compass-outline.svg\",\r\n \"fluent-book-compass.svg\",\r\n \"fluent-book-contacts-outline.svg\",\r\n \"fluent-book-contacts.svg\",\r\n \"fluent-book-database-outline.svg\",\r\n \"fluent-book-database.svg\",\r\n \"fluent-book-exclamation-mark.svg\",\r\n \"fluent-book-globe-outline.svg\",\r\n \"fluent-book-globe.svg\",\r\n \"fluent-book-information-outline.svg\",\r\n \"fluent-book-information.svg\",\r\n \"fluent-book-letter-outline.svg\",\r\n \"fluent-book-letter.svg\",\r\n \"fluent-book-number-outline.svg\",\r\n \"fluent-book-number.svg\",\r\n \"fluent-book-open-globe-outline.svg\",\r\n \"fluent-book-open-globe.svg\",\r\n \"fluent-book-open-microphone.svg\",\r\n \"fluent-book-open-outline.svg\",\r\n \"fluent-book-open.svg\",\r\n \"fluent-book-outline.svg\",\r\n \"fluent-book-pulse-outline.svg\",\r\n \"fluent-book-pulse.svg\",\r\n \"fluent-book-question-mark-rtl.svg\",\r\n \"fluent-book-question-mark.svg\",\r\n \"fluent-book-search-outline.svg\",\r\n \"fluent-book-search.svg\",\r\n \"fluent-book-star-outline.svg\",\r\n \"fluent-book-star.svg\",\r\n \"fluent-book-theta-outline.svg\",\r\n \"fluent-book-theta.svg\",\r\n \"fluent-book-toolbox-outline.svg\",\r\n \"fluent-book-toolbox.svg\",\r\n \"fluent-book.svg\",\r\n \"fluent-bookmark-add-outline.svg\",\r\n \"fluent-bookmark-add.svg\",\r\n \"fluent-bookmark-multiple-outline.svg\",\r\n \"fluent-bookmark-multiple.svg\",\r\n \"fluent-bookmark-off-outline.svg\",\r\n \"fluent-bookmark-off.svg\",\r\n \"fluent-bookmark-outline.svg\",\r\n \"fluent-bookmark-search-outline.svg\",\r\n \"fluent-bookmark-search.svg\",\r\n \"fluent-bookmark.svg\",\r\n \"fluent-border-all-outline.svg\",\r\n \"fluent-border-all.svg\",\r\n \"fluent-border-bottom-double.svg\",\r\n \"fluent-border-bottom-outline.svg\",\r\n \"fluent-border-bottom-thick.svg\",\r\n \"fluent-border-bottom.svg\",\r\n \"fluent-border-inside-outline.svg\",\r\n \"fluent-border-inside.svg\",\r\n \"fluent-border-left-outline.svg\",\r\n \"fluent-border-left-right-outline.svg\",\r\n \"fluent-border-left-right.svg\",\r\n \"fluent-border-left.svg\",\r\n \"fluent-border-none-outline.svg\",\r\n \"fluent-border-none.svg\",\r\n \"fluent-border-outside-outline.svg\",\r\n \"fluent-border-outside-thick.svg\",\r\n \"fluent-border-outside.svg\",\r\n \"fluent-border-right-outline.svg\",\r\n \"fluent-border-right.svg\",\r\n \"fluent-border-top-bottom-double.svg\",\r\n \"fluent-border-top-bottom-outline.svg\",\r\n \"fluent-border-top-bottom-thick.svg\",\r\n \"fluent-border-top-bottom.svg\",\r\n \"fluent-border-top-outline.svg\",\r\n \"fluent-border-top.svg\",\r\n \"fluent-bot-add-outline.svg\",\r\n \"fluent-bot-add.svg\",\r\n \"fluent-bot-outline.svg\",\r\n \"fluent-bot-sparkle-outline.svg\",\r\n \"fluent-bot-sparkle.svg\",\r\n \"fluent-bot.svg\",\r\n \"fluent-bow-tie-outline.svg\",\r\n \"fluent-bow-tie.svg\",\r\n \"fluent-bowl-chopsticks-outline.svg\",\r\n \"fluent-bowl-chopsticks.svg\",\r\n \"fluent-bowl-salad-outline.svg\",\r\n \"fluent-bowl-salad.svg\",\r\n \"fluent-box-arrow-left-outline.svg\",\r\n \"fluent-box-arrow-left.svg\",\r\n \"fluent-box-arrow-up-outline.svg\",\r\n \"fluent-box-arrow-up.svg\",\r\n \"fluent-box-checkmark-outline.svg\",\r\n \"fluent-box-checkmark.svg\",\r\n \"fluent-box-dismiss-outline.svg\",\r\n \"fluent-box-dismiss.svg\",\r\n \"fluent-box-edit-outline.svg\",\r\n \"fluent-box-edit.svg\",\r\n \"fluent-box-multiple-arrow-left.svg\",\r\n \"fluent-box-multiple-arrow-right.svg\",\r\n \"fluent-box-multiple-checkmark.svg\",\r\n \"fluent-box-multiple-outline.svg\",\r\n \"fluent-box-multiple-search.svg\",\r\n \"fluent-box-multiple.svg\",\r\n \"fluent-box-outline.svg\",\r\n \"fluent-box-search-outline.svg\",\r\n \"fluent-box-search.svg\",\r\n \"fluent-box-toolbox-outline.svg\",\r\n \"fluent-box-toolbox.svg\",\r\n \"fluent-box.svg\",\r\n \"fluent-braces-outline.svg\",\r\n \"fluent-braces-variable-outline.svg\",\r\n \"fluent-braces-variable.svg\",\r\n \"fluent-braces.svg\",\r\n \"fluent-brain-circuit-outline.svg\",\r\n \"fluent-brain-circuit.svg\",\r\n \"fluent-branch-compare-outline.svg\",\r\n \"fluent-branch-compare.svg\",\r\n \"fluent-branch-fork-hint-outline.svg\",\r\n \"fluent-branch-fork-hint.svg\",\r\n \"fluent-branch-fork-link-outline.svg\",\r\n \"fluent-branch-fork-link.svg\",\r\n \"fluent-branch-fork-outline.svg\",\r\n \"fluent-branch-fork.svg\",\r\n \"fluent-branch-outline.svg\",\r\n \"fluent-branch.svg\",\r\n \"fluent-breakout-room-outline.svg\",\r\n \"fluent-breakout-room.svg\",\r\n \"fluent-briefcase-medical-outline.svg\",\r\n \"fluent-briefcase-medical.svg\",\r\n \"fluent-briefcase-off-outline.svg\",\r\n \"fluent-briefcase-off.svg\",\r\n \"fluent-briefcase-outline.svg\",\r\n \"fluent-briefcase-person-outline.svg\",\r\n \"fluent-briefcase-person.svg\",\r\n \"fluent-briefcase-search-outline.svg\",\r\n \"fluent-briefcase-search.svg\",\r\n \"fluent-briefcase.svg\",\r\n \"fluent-brightness-high-outline.svg\",\r\n \"fluent-brightness-high.svg\",\r\n \"fluent-brightness-low-outline.svg\",\r\n \"fluent-brightness-low.svg\",\r\n \"fluent-broad-activity-feed.svg\",\r\n \"fluent-broom-outline.svg\",\r\n \"fluent-broom.svg\",\r\n \"fluent-bug-outline.svg\",\r\n \"fluent-bug.svg\",\r\n \"fluent-building-bank-link.svg\",\r\n \"fluent-building-bank-outline.svg\",\r\n \"fluent-building-bank-toolbox.svg\",\r\n \"fluent-building-bank.svg\",\r\n \"fluent-building-cloud-outline.svg\",\r\n \"fluent-building-cloud.svg\",\r\n \"fluent-building-desktop-outline.svg\",\r\n \"fluent-building-desktop.svg\",\r\n \"fluent-building-factory-outline.svg\",\r\n \"fluent-building-factory.svg\",\r\n \"fluent-building-government.svg\",\r\n \"fluent-building-home-outline.svg\",\r\n \"fluent-building-home.svg\",\r\n \"fluent-building-lighthouse.svg\",\r\n \"fluent-building-mosque-outline.svg\",\r\n \"fluent-building-mosque.svg\",\r\n \"fluent-building-multiple-outline.svg\",\r\n \"fluent-building-multiple.svg\",\r\n \"fluent-building-outline.svg\",\r\n \"fluent-building-people-outline.svg\",\r\n \"fluent-building-people.svg\",\r\n \"fluent-building-retail-money.svg\",\r\n \"fluent-building-retail-more.svg\",\r\n \"fluent-building-retail-outline.svg\",\r\n \"fluent-building-retail-shield.svg\",\r\n \"fluent-building-retail-toolbox.svg\",\r\n \"fluent-building-retail.svg\",\r\n \"fluent-building-shop-outline.svg\",\r\n \"fluent-building-shop.svg\",\r\n \"fluent-building-skyscraper.svg\",\r\n \"fluent-building-swap-outline.svg\",\r\n \"fluent-building-swap.svg\",\r\n \"fluent-building-townhouse.svg\",\r\n \"fluent-building.svg\",\r\n \"fluent-calculator-multiple.svg\",\r\n \"fluent-calculator-outline.svg\",\r\n \"fluent-calculator.svg\",\r\n \"fluent-calendar-3-day-outline.svg\",\r\n \"fluent-calendar-3-day.svg\",\r\n \"fluent-calendar-add-outline.svg\",\r\n \"fluent-calendar-add.svg\",\r\n \"fluent-calendar-agenda-outline.svg\",\r\n \"fluent-calendar-agenda.svg\",\r\n \"fluent-calendar-arrow-down.svg\",\r\n \"fluent-calendar-arrow-repeat-all.svg\",\r\n \"fluent-calendar-arrow-right.svg\",\r\n \"fluent-calendar-assistant.svg\",\r\n \"fluent-calendar-cancel-outline.svg\",\r\n \"fluent-calendar-cancel.svg\",\r\n \"fluent-calendar-chat-outline.svg\",\r\n \"fluent-calendar-chat.svg\",\r\n \"fluent-calendar-checkmark.svg\",\r\n \"fluent-calendar-clock-outline.svg\",\r\n \"fluent-calendar-clock.svg\",\r\n \"fluent-calendar-data-bar-outline.svg\",\r\n \"fluent-calendar-data-bar.svg\",\r\n \"fluent-calendar-date-outline.svg\",\r\n \"fluent-calendar-date.svg\",\r\n \"fluent-calendar-day-outline.svg\",\r\n \"fluent-calendar-day.svg\",\r\n \"fluent-calendar-edit-outline.svg\",\r\n \"fluent-calendar-edit.svg\",\r\n \"fluent-calendar-empty-outline.svg\",\r\n \"fluent-calendar-empty.svg\",\r\n \"fluent-calendar-error-outline.svg\",\r\n \"fluent-calendar-error.svg\",\r\n \"fluent-calendar-link-outline.svg\",\r\n \"fluent-calendar-link.svg\",\r\n \"fluent-calendar-lock-outline.svg\",\r\n \"fluent-calendar-lock.svg\",\r\n \"fluent-calendar-ltr-outline.svg\",\r\n \"fluent-calendar-ltr.svg\",\r\n \"fluent-calendar-month-outline.svg\",\r\n \"fluent-calendar-month.svg\",\r\n \"fluent-calendar-multiple-outline.svg\",\r\n \"fluent-calendar-multiple.svg\",\r\n \"fluent-calendar-note-outline.svg\",\r\n \"fluent-calendar-note.svg\",\r\n \"fluent-calendar-outline.svg\",\r\n \"fluent-calendar-person-outline.svg\",\r\n \"fluent-calendar-person.svg\",\r\n \"fluent-calendar-play-outline.svg\",\r\n \"fluent-calendar-play.svg\",\r\n \"fluent-calendar-question-mark.svg\",\r\n \"fluent-calendar-record-outline.svg\",\r\n \"fluent-calendar-record.svg\",\r\n \"fluent-calendar-reply-outline.svg\",\r\n \"fluent-calendar-reply.svg\",\r\n \"fluent-calendar-rtl-outline.svg\",\r\n \"fluent-calendar-rtl.svg\",\r\n \"fluent-calendar-settings-outline.svg\",\r\n \"fluent-calendar-settings.svg\",\r\n \"fluent-calendar-shield-outline.svg\",\r\n \"fluent-calendar-shield.svg\",\r\n \"fluent-calendar-sparkle-outline.svg\",\r\n \"fluent-calendar-sparkle.svg\",\r\n \"fluent-calendar-star-outline.svg\",\r\n \"fluent-calendar-star.svg\",\r\n \"fluent-calendar-sync-outline.svg\",\r\n \"fluent-calendar-sync.svg\",\r\n \"fluent-calendar-template-outline.svg\",\r\n \"fluent-calendar-template.svg\",\r\n \"fluent-calendar-today-outline.svg\",\r\n \"fluent-calendar-today.svg\",\r\n \"fluent-calendar-toolbox-outline.svg\",\r\n \"fluent-calendar-toolbox.svg\",\r\n \"fluent-calendar-video-outline.svg\",\r\n \"fluent-calendar-video.svg\",\r\n \"fluent-calendar-week-numbers.svg\",\r\n \"fluent-calendar-week-start.svg\",\r\n \"fluent-calendar-work-week.svg\",\r\n \"fluent-calendar.svg\",\r\n \"fluent-call-add-outline.svg\",\r\n \"fluent-call-add.svg\",\r\n \"fluent-call-checkmark-outline.svg\",\r\n \"fluent-call-checkmark.svg\",\r\n \"fluent-call-dismiss-outline.svg\",\r\n \"fluent-call-dismiss.svg\",\r\n \"fluent-call-end-outline.svg\",\r\n \"fluent-call-end.svg\",\r\n \"fluent-call-forward-outline.svg\",\r\n \"fluent-call-forward.svg\",\r\n \"fluent-call-inbound-outline.svg\",\r\n \"fluent-call-inbound.svg\",\r\n \"fluent-call-missed-outline.svg\",\r\n \"fluent-call-missed.svg\",\r\n \"fluent-call-outbound-outline.svg\",\r\n \"fluent-call-outbound.svg\",\r\n \"fluent-call-outline.svg\",\r\n \"fluent-call-park-outline.svg\",\r\n \"fluent-call-park.svg\",\r\n \"fluent-call-pause-outline.svg\",\r\n \"fluent-call-pause.svg\",\r\n \"fluent-call-prohibited-outline.svg\",\r\n \"fluent-call-prohibited.svg\",\r\n \"fluent-call-transfer-outline.svg\",\r\n \"fluent-call-transfer.svg\",\r\n \"fluent-call.svg\",\r\n \"fluent-calligraphy-pen-outline.svg\",\r\n \"fluent-calligraphy-pen.svg\",\r\n \"fluent-camera-add-outline.svg\",\r\n \"fluent-camera-add.svg\",\r\n \"fluent-camera-arrow-up-outline.svg\",\r\n \"fluent-camera-arrow-up.svg\",\r\n \"fluent-camera-dome-outline.svg\",\r\n \"fluent-camera-dome.svg\",\r\n \"fluent-camera-off-outline.svg\",\r\n \"fluent-camera-off.svg\",\r\n \"fluent-camera-outline.svg\",\r\n \"fluent-camera-sparkles-outline.svg\",\r\n \"fluent-camera-sparkles.svg\",\r\n \"fluent-camera-switch-outline.svg\",\r\n \"fluent-camera-switch.svg\",\r\n \"fluent-camera.svg\",\r\n \"fluent-card-ui-outline.svg\",\r\n \"fluent-card-ui-portrait-flip.svg\",\r\n \"fluent-card-ui.svg\",\r\n \"fluent-caret-down-outline.svg\",\r\n \"fluent-caret-down-right-outline.svg\",\r\n \"fluent-caret-down-right.svg\",\r\n \"fluent-caret-down.svg\",\r\n \"fluent-caret-left-outline.svg\",\r\n \"fluent-caret-left.svg\",\r\n \"fluent-caret-right-outline.svg\",\r\n \"fluent-caret-right.svg\",\r\n \"fluent-caret-up-outline.svg\",\r\n \"fluent-caret-up.svg\",\r\n \"fluent-cart-outline.svg\",\r\n \"fluent-cart.svg\",\r\n \"fluent-cast-multiple-outline.svg\",\r\n \"fluent-cast-multiple.svg\",\r\n \"fluent-cast-outline.svg\",\r\n \"fluent-cast.svg\",\r\n \"fluent-catch-up-outline.svg\",\r\n \"fluent-catch-up.svg\",\r\n \"fluent-cellular-3g-outline.svg\",\r\n \"fluent-cellular-3g.svg\",\r\n \"fluent-cellular-4g-outline.svg\",\r\n \"fluent-cellular-4g.svg\",\r\n \"fluent-cellular-5g-outline.svg\",\r\n \"fluent-cellular-5g.svg\",\r\n \"fluent-cellular-data-1-outline.svg\",\r\n \"fluent-cellular-data-1.svg\",\r\n \"fluent-cellular-data-2-outline.svg\",\r\n \"fluent-cellular-data-2.svg\",\r\n \"fluent-cellular-data-3-outline.svg\",\r\n \"fluent-cellular-data-3.svg\",\r\n \"fluent-cellular-data-4-outline.svg\",\r\n \"fluent-cellular-data-4.svg\",\r\n \"fluent-cellular-data-5-outline.svg\",\r\n \"fluent-cellular-data-5.svg\",\r\n \"fluent-cellular-off-outline.svg\",\r\n \"fluent-cellular-off.svg\",\r\n \"fluent-cellular-warning-outline.svg\",\r\n \"fluent-cellular-warning.svg\",\r\n \"fluent-center-horizontal-outline.svg\",\r\n \"fluent-center-horizontal.svg\",\r\n \"fluent-center-vertical-outline.svg\",\r\n \"fluent-center-vertical.svg\",\r\n \"fluent-certificate-outline.svg\",\r\n \"fluent-certificate.svg\",\r\n \"fluent-channel-add-outline.svg\",\r\n \"fluent-channel-add.svg\",\r\n \"fluent-channel-alert-outline.svg\",\r\n \"fluent-channel-alert.svg\",\r\n \"fluent-channel-arrow-left.svg\",\r\n \"fluent-channel-dismiss-outline.svg\",\r\n \"fluent-channel-dismiss.svg\",\r\n \"fluent-channel-outline.svg\",\r\n \"fluent-channel-share-outline.svg\",\r\n \"fluent-channel-share.svg\",\r\n \"fluent-channel-subtract-outline.svg\",\r\n \"fluent-channel-subtract.svg\",\r\n \"fluent-channel.svg\",\r\n \"fluent-chart-multiple-outline.svg\",\r\n \"fluent-chart-multiple.svg\",\r\n \"fluent-chart-person-outline.svg\",\r\n \"fluent-chart-person.svg\",\r\n \"fluent-chat-add-outline.svg\",\r\n \"fluent-chat-add.svg\",\r\n \"fluent-chat-arrow-back-down.svg\",\r\n \"fluent-chat-bubbles-question.svg\",\r\n \"fluent-chat-cursor-outline.svg\",\r\n \"fluent-chat-cursor.svg\",\r\n \"fluent-chat-dismiss-outline.svg\",\r\n \"fluent-chat-dismiss.svg\",\r\n \"fluent-chat-empty-outline.svg\",\r\n \"fluent-chat-empty.svg\",\r\n \"fluent-chat-help-outline.svg\",\r\n \"fluent-chat-help.svg\",\r\n \"fluent-chat-lock-outline.svg\",\r\n \"fluent-chat-lock.svg\",\r\n \"fluent-chat-multiple-heart.svg\",\r\n \"fluent-chat-multiple-outline.svg\",\r\n \"fluent-chat-multiple.svg\",\r\n \"fluent-chat-off-outline.svg\",\r\n \"fluent-chat-off.svg\",\r\n \"fluent-chat-outline.svg\",\r\n \"fluent-chat-settings-outline.svg\",\r\n \"fluent-chat-settings.svg\",\r\n \"fluent-chat-sparkle-outline.svg\",\r\n \"fluent-chat-sparkle.svg\",\r\n \"fluent-chat-video-outline.svg\",\r\n \"fluent-chat-video.svg\",\r\n \"fluent-chat-warning-outline.svg\",\r\n \"fluent-chat-warning.svg\",\r\n \"fluent-chat.svg\",\r\n \"fluent-check-outline.svg\",\r\n \"fluent-check.svg\",\r\n \"fluent-checkbox-1-outline.svg\",\r\n \"fluent-checkbox-1.svg\",\r\n \"fluent-checkbox-2-outline.svg\",\r\n \"fluent-checkbox-2.svg\",\r\n \"fluent-checkbox-arrow-right.svg\",\r\n \"fluent-checkbox-checked-outline.svg\",\r\n \"fluent-checkbox-checked.svg\",\r\n \"fluent-checkbox-indeterminate.svg\",\r\n \"fluent-checkbox-person-outline.svg\",\r\n \"fluent-checkbox-person.svg\",\r\n \"fluent-checkbox-unchecked.svg\",\r\n \"fluent-checkbox-warning-outline.svg\",\r\n \"fluent-checkbox-warning.svg\",\r\n \"fluent-checkmark-circle-outline.svg\",\r\n \"fluent-checkmark-circle-square.svg\",\r\n \"fluent-checkmark-circle-warning.svg\",\r\n \"fluent-checkmark-circle.svg\",\r\n \"fluent-checkmark-lock-outline.svg\",\r\n \"fluent-checkmark-lock.svg\",\r\n \"fluent-checkmark-outline.svg\",\r\n \"fluent-checkmark-square-outline.svg\",\r\n \"fluent-checkmark-square.svg\",\r\n \"fluent-checkmark-starburst.svg\",\r\n \"fluent-checkmark.svg\",\r\n \"fluent-chevron-circle-down.svg\",\r\n \"fluent-chevron-circle-left.svg\",\r\n \"fluent-chevron-circle-right.svg\",\r\n \"fluent-chevron-circle-up-outline.svg\",\r\n \"fluent-chevron-circle-up.svg\",\r\n \"fluent-chevron-down-outline.svg\",\r\n \"fluent-chevron-down-up-outline.svg\",\r\n \"fluent-chevron-down-up.svg\",\r\n \"fluent-chevron-down.svg\",\r\n \"fluent-chevron-left-outline.svg\",\r\n \"fluent-chevron-left.svg\",\r\n \"fluent-chevron-right-outline.svg\",\r\n \"fluent-chevron-right.svg\",\r\n \"fluent-chevron-up-down-outline.svg\",\r\n \"fluent-chevron-up-down.svg\",\r\n \"fluent-chevron-up-outline.svg\",\r\n \"fluent-chevron-up.svg\",\r\n \"fluent-circle-edit-outline.svg\",\r\n \"fluent-circle-edit.svg\",\r\n \"fluent-circle-half-fill-outline.svg\",\r\n \"fluent-circle-half-fill.svg\",\r\n \"fluent-circle-highlight-outline.svg\",\r\n \"fluent-circle-highlight.svg\",\r\n \"fluent-circle-hint-half-vertical.svg\",\r\n \"fluent-circle-hint-outline.svg\",\r\n \"fluent-circle-hint.svg\",\r\n \"fluent-circle-image-outline.svg\",\r\n \"fluent-circle-image.svg\",\r\n \"fluent-circle-line-outline.svg\",\r\n \"fluent-circle-line.svg\",\r\n \"fluent-circle-outline.svg\",\r\n \"fluent-circle-shadow-outline.svg\",\r\n \"fluent-circle-shadow.svg\",\r\n \"fluent-circle-small-outline.svg\",\r\n \"fluent-circle-small.svg\",\r\n \"fluent-circle.svg\",\r\n \"fluent-city-outline.svg\",\r\n \"fluent-city.svg\",\r\n \"fluent-class-outline.svg\",\r\n \"fluent-class.svg\",\r\n \"fluent-classification-outline.svg\",\r\n \"fluent-classification.svg\",\r\n \"fluent-clear-formatting-outline.svg\",\r\n \"fluent-clear-formatting.svg\",\r\n \"fluent-clipboard-3-day-outline.svg\",\r\n \"fluent-clipboard-3-day.svg\",\r\n \"fluent-clipboard-arrow-right.svg\",\r\n \"fluent-clipboard-brush-outline.svg\",\r\n \"fluent-clipboard-brush.svg\",\r\n \"fluent-clipboard-checkmark.svg\",\r\n \"fluent-clipboard-clock-outline.svg\",\r\n \"fluent-clipboard-clock.svg\",\r\n \"fluent-clipboard-code-outline.svg\",\r\n \"fluent-clipboard-code.svg\",\r\n \"fluent-clipboard-data-bar.svg\",\r\n \"fluent-clipboard-day-outline.svg\",\r\n \"fluent-clipboard-day.svg\",\r\n \"fluent-clipboard-error-outline.svg\",\r\n \"fluent-clipboard-error.svg\",\r\n \"fluent-clipboard-heart-outline.svg\",\r\n \"fluent-clipboard-heart.svg\",\r\n \"fluent-clipboard-image-outline.svg\",\r\n \"fluent-clipboard-image.svg\",\r\n \"fluent-clipboard-letter-outline.svg\",\r\n \"fluent-clipboard-letter.svg\",\r\n \"fluent-clipboard-link-outline.svg\",\r\n \"fluent-clipboard-link.svg\",\r\n \"fluent-clipboard-math-formula.svg\",\r\n \"fluent-clipboard-month-outline.svg\",\r\n \"fluent-clipboard-month.svg\",\r\n \"fluent-clipboard-more-outline.svg\",\r\n \"fluent-clipboard-more.svg\",\r\n \"fluent-clipboard-number-123.svg\",\r\n \"fluent-clipboard-outline.svg\",\r\n \"fluent-clipboard-paste-outline.svg\",\r\n \"fluent-clipboard-paste.svg\",\r\n \"fluent-clipboard-pulse-outline.svg\",\r\n \"fluent-clipboard-pulse.svg\",\r\n \"fluent-clipboard-search-outline.svg\",\r\n \"fluent-clipboard-search.svg\",\r\n \"fluent-clipboard-settings.svg\",\r\n \"fluent-clipboard-task-add.svg\",\r\n \"fluent-clipboard-task-list-ltr.svg\",\r\n \"fluent-clipboard-task-list-rtl.svg\",\r\n \"fluent-clipboard-task-outline.svg\",\r\n \"fluent-clipboard-task.svg\",\r\n \"fluent-clipboard-text-edit.svg\",\r\n \"fluent-clipboard-text-ltr.svg\",\r\n \"fluent-clipboard-text-rtl.svg\",\r\n \"fluent-clipboard.svg\",\r\n \"fluent-clock-alarm-outline.svg\",\r\n \"fluent-clock-alarm.svg\",\r\n \"fluent-clock-arrow-download.svg\",\r\n \"fluent-clock-bill-outline.svg\",\r\n \"fluent-clock-bill.svg\",\r\n \"fluent-clock-dismiss-outline.svg\",\r\n \"fluent-clock-dismiss.svg\",\r\n \"fluent-clock-lock-outline.svg\",\r\n \"fluent-clock-lock.svg\",\r\n \"fluent-clock-outline.svg\",\r\n \"fluent-clock-pause-outline.svg\",\r\n \"fluent-clock-pause.svg\",\r\n \"fluent-clock-toolbox-outline.svg\",\r\n \"fluent-clock-toolbox.svg\",\r\n \"fluent-clock.svg\",\r\n \"fluent-closed-caption-off.svg\",\r\n \"fluent-closed-caption-outline.svg\",\r\n \"fluent-closed-caption.svg\",\r\n \"fluent-cloud-add-outline.svg\",\r\n \"fluent-cloud-add.svg\",\r\n \"fluent-cloud-archive-outline.svg\",\r\n \"fluent-cloud-archive.svg\",\r\n \"fluent-cloud-arrow-down-outline.svg\",\r\n \"fluent-cloud-arrow-down.svg\",\r\n \"fluent-cloud-arrow-right-outline.svg\",\r\n \"fluent-cloud-arrow-right.svg\",\r\n \"fluent-cloud-arrow-up-outline.svg\",\r\n \"fluent-cloud-arrow-up.svg\",\r\n \"fluent-cloud-beaker-outline.svg\",\r\n \"fluent-cloud-beaker.svg\",\r\n \"fluent-cloud-bidirectional.svg\",\r\n \"fluent-cloud-checkmark-outline.svg\",\r\n \"fluent-cloud-checkmark.svg\",\r\n \"fluent-cloud-cube-outline.svg\",\r\n \"fluent-cloud-cube.svg\",\r\n \"fluent-cloud-dismiss-outline.svg\",\r\n \"fluent-cloud-dismiss.svg\",\r\n \"fluent-cloud-edit-outline.svg\",\r\n \"fluent-cloud-edit.svg\",\r\n \"fluent-cloud-error-outline.svg\",\r\n \"fluent-cloud-error.svg\",\r\n \"fluent-cloud-flow-outline.svg\",\r\n \"fluent-cloud-flow.svg\",\r\n \"fluent-cloud-link-outline.svg\",\r\n \"fluent-cloud-link.svg\",\r\n \"fluent-cloud-off-outline.svg\",\r\n \"fluent-cloud-off.svg\",\r\n \"fluent-cloud-outline.svg\",\r\n \"fluent-cloud-swap-outline.svg\",\r\n \"fluent-cloud-swap.svg\",\r\n \"fluent-cloud-sync-outline.svg\",\r\n \"fluent-cloud-sync.svg\",\r\n \"fluent-cloud-words-outline.svg\",\r\n \"fluent-cloud-words.svg\",\r\n \"fluent-cloud.svg\",\r\n \"fluent-clover-outline.svg\",\r\n \"fluent-clover.svg\",\r\n \"fluent-code-block-outline.svg\",\r\n \"fluent-code-block.svg\",\r\n \"fluent-code-circle-outline.svg\",\r\n \"fluent-code-circle.svg\",\r\n \"fluent-code-outline.svg\",\r\n \"fluent-code.svg\",\r\n \"fluent-coin-stack-outline.svg\",\r\n \"fluent-coin-stack.svg\",\r\n \"fluent-collections-add-outline.svg\",\r\n \"fluent-collections-add.svg\",\r\n \"fluent-collections-outline.svg\",\r\n \"fluent-collections.svg\",\r\n \"fluent-color-background-outline.svg\",\r\n \"fluent-color-background.svg\",\r\n \"fluent-color-fill-accent-outline.svg\",\r\n \"fluent-color-fill-outline.svg\",\r\n \"fluent-color-fill.svg\",\r\n \"fluent-color-line-accent-outline.svg\",\r\n \"fluent-color-line-outline.svg\",\r\n \"fluent-color-line.svg\",\r\n \"fluent-color-outline.svg\",\r\n \"fluent-color.svg\",\r\n \"fluent-column-edit-outline.svg\",\r\n \"fluent-column-edit.svg\",\r\n \"fluent-column-outline.svg\",\r\n \"fluent-column-triple-edit.svg\",\r\n \"fluent-column-triple-outline.svg\",\r\n \"fluent-column-triple.svg\",\r\n \"fluent-column.svg\",\r\n \"fluent-comma-outline.svg\",\r\n \"fluent-comma.svg\",\r\n \"fluent-comment-add-outline.svg\",\r\n \"fluent-comment-add.svg\",\r\n \"fluent-comment-arrow-left.svg\",\r\n \"fluent-comment-arrow-right.svg\",\r\n \"fluent-comment-checkmark-outline.svg\",\r\n \"fluent-comment-checkmark.svg\",\r\n \"fluent-comment-dismiss-outline.svg\",\r\n \"fluent-comment-dismiss.svg\",\r\n \"fluent-comment-edit-outline.svg\",\r\n \"fluent-comment-edit.svg\",\r\n \"fluent-comment-error-outline.svg\",\r\n \"fluent-comment-error.svg\",\r\n \"fluent-comment-lightning-outline.svg\",\r\n \"fluent-comment-lightning.svg\",\r\n \"fluent-comment-link-outline.svg\",\r\n \"fluent-comment-link.svg\",\r\n \"fluent-comment-mention-outline.svg\",\r\n \"fluent-comment-mention.svg\",\r\n \"fluent-comment-multiple-link.svg\",\r\n \"fluent-comment-multiple-outline.svg\",\r\n \"fluent-comment-multiple.svg\",\r\n \"fluent-comment-note-outline.svg\",\r\n \"fluent-comment-note.svg\",\r\n \"fluent-comment-off-outline.svg\",\r\n \"fluent-comment-off.svg\",\r\n \"fluent-comment-outline.svg\",\r\n \"fluent-comment.svg\",\r\n \"fluent-communication-outline.svg\",\r\n \"fluent-communication-person.svg\",\r\n \"fluent-communication-shield.svg\",\r\n \"fluent-communication.svg\",\r\n \"fluent-compass-northwest-outline.svg\",\r\n \"fluent-compass-northwest.svg\",\r\n \"fluent-compose-outline.svg\",\r\n \"fluent-compose.svg\",\r\n \"fluent-conference-room-outline.svg\",\r\n \"fluent-conference-room.svg\",\r\n \"fluent-connector-outline.svg\",\r\n \"fluent-connector.svg\",\r\n \"fluent-contact-card-group.svg\",\r\n \"fluent-contact-card-outline.svg\",\r\n \"fluent-contact-card-ribbon.svg\",\r\n \"fluent-contact-card.svg\",\r\n \"fluent-content-settings-outline.svg\",\r\n \"fluent-content-settings.svg\",\r\n \"fluent-content-view-gallery.svg\",\r\n \"fluent-content-view-outline.svg\",\r\n \"fluent-content-view.svg\",\r\n \"fluent-contract-down-left.svg\",\r\n \"fluent-contract-up-right-outline.svg\",\r\n \"fluent-contract-up-right.svg\",\r\n \"fluent-control-button-outline.svg\",\r\n \"fluent-control-button.svg\",\r\n \"fluent-convert-range-outline.svg\",\r\n \"fluent-convert-range.svg\",\r\n \"fluent-cookies-outline.svg\",\r\n \"fluent-cookies.svg\",\r\n \"fluent-copy-add-outline.svg\",\r\n \"fluent-copy-add.svg\",\r\n \"fluent-copy-arrow-right-outline.svg\",\r\n \"fluent-copy-arrow-right.svg\",\r\n \"fluent-copy-outline.svg\",\r\n \"fluent-copy-select-outline.svg\",\r\n \"fluent-copy-select.svg\",\r\n \"fluent-copy.svg\",\r\n \"fluent-couch-outline.svg\",\r\n \"fluent-couch.svg\",\r\n \"fluent-credit-card-clock-outline.svg\",\r\n \"fluent-credit-card-clock.svg\",\r\n \"fluent-credit-card-person.svg\",\r\n \"fluent-credit-card-toolbox.svg\",\r\n \"fluent-crop-arrow-rotate-outline.svg\",\r\n \"fluent-crop-arrow-rotate.svg\",\r\n \"fluent-crop-interim-off-outline.svg\",\r\n \"fluent-crop-interim-off.svg\",\r\n \"fluent-crop-interim-outline.svg\",\r\n \"fluent-crop-interim.svg\",\r\n \"fluent-crop-outline.svg\",\r\n \"fluent-crop-sparkle-outline.svg\",\r\n \"fluent-crop-sparkle.svg\",\r\n \"fluent-crop.svg\",\r\n \"fluent-crown-outline.svg\",\r\n \"fluent-crown-subtract-outline.svg\",\r\n \"fluent-crown-subtract.svg\",\r\n \"fluent-crown.svg\",\r\n \"fluent-cube-multiple-outline.svg\",\r\n \"fluent-cube-multiple.svg\",\r\n \"fluent-cube-outline.svg\",\r\n \"fluent-cube-quick-outline.svg\",\r\n \"fluent-cube-quick.svg\",\r\n \"fluent-cube-sync-outline.svg\",\r\n \"fluent-cube-sync.svg\",\r\n \"fluent-cube-tree-outline.svg\",\r\n \"fluent-cube-tree.svg\",\r\n \"fluent-cube.svg\",\r\n \"fluent-currency-dollar-euro.svg\",\r\n \"fluent-currency-dollar-rupee.svg\",\r\n \"fluent-cursor-click-outline.svg\",\r\n \"fluent-cursor-click.svg\",\r\n \"fluent-cursor-hover-off-outline.svg\",\r\n \"fluent-cursor-hover-off.svg\",\r\n \"fluent-cursor-hover-outline.svg\",\r\n \"fluent-cursor-hover.svg\",\r\n \"fluent-cursor-outline.svg\",\r\n \"fluent-cursor.svg\",\r\n \"fluent-cut-outline.svg\",\r\n \"fluent-cut.svg\",\r\n \"fluent-dark-theme-outline.svg\",\r\n \"fluent-dark-theme.svg\",\r\n \"fluent-data-area-outline.svg\",\r\n \"fluent-data-area.svg\",\r\n \"fluent-data-bar-horizontal.svg\",\r\n \"fluent-data-bar-vertical-add.svg\",\r\n \"fluent-data-bar-vertical-outline.svg\",\r\n \"fluent-data-bar-vertical-star.svg\",\r\n \"fluent-data-bar-vertical.svg\",\r\n \"fluent-data-funnel-outline.svg\",\r\n \"fluent-data-funnel.svg\",\r\n \"fluent-data-histogram-outline.svg\",\r\n \"fluent-data-histogram.svg\",\r\n \"fluent-data-line-outline.svg\",\r\n \"fluent-data-line.svg\",\r\n \"fluent-data-pie-outline.svg\",\r\n \"fluent-data-pie.svg\",\r\n \"fluent-data-scatter-outline.svg\",\r\n \"fluent-data-scatter.svg\",\r\n \"fluent-data-sunburst-outline.svg\",\r\n \"fluent-data-sunburst.svg\",\r\n \"fluent-data-treemap-outline.svg\",\r\n \"fluent-data-treemap.svg\",\r\n \"fluent-data-trending-outline.svg\",\r\n \"fluent-data-trending.svg\",\r\n \"fluent-data-usage-edit-outline.svg\",\r\n \"fluent-data-usage-edit.svg\",\r\n \"fluent-data-usage-outline.svg\",\r\n \"fluent-data-usage-settings.svg\",\r\n \"fluent-data-usage-toolbox.svg\",\r\n \"fluent-data-usage.svg\",\r\n \"fluent-data-waterfall-outline.svg\",\r\n \"fluent-data-waterfall.svg\",\r\n \"fluent-data-whisker-outline.svg\",\r\n \"fluent-data-whisker.svg\",\r\n \"fluent-database-arrow-right.svg\",\r\n \"fluent-database-link-outline.svg\",\r\n \"fluent-database-link.svg\",\r\n \"fluent-database-outline.svg\",\r\n \"fluent-database-person-outline.svg\",\r\n \"fluent-database-person.svg\",\r\n \"fluent-database-search-outline.svg\",\r\n \"fluent-database-search.svg\",\r\n \"fluent-database.svg\",\r\n \"fluent-decimal-arrow-left.svg\",\r\n \"fluent-decimal-arrow-right.svg\",\r\n \"fluent-delete-dismiss-outline.svg\",\r\n \"fluent-delete-dismiss.svg\",\r\n \"fluent-delete-off-outline.svg\",\r\n \"fluent-delete-off.svg\",\r\n \"fluent-delete-outline.svg\",\r\n \"fluent-delete.svg\",\r\n \"fluent-dentist-outline.svg\",\r\n \"fluent-dentist.svg\",\r\n \"fluent-design-ideas-outline.svg\",\r\n \"fluent-design-ideas.svg\",\r\n \"fluent-desk-outline.svg\",\r\n \"fluent-desk.svg\",\r\n \"fluent-desktop-arrow-down.svg\",\r\n \"fluent-desktop-arrow-right.svg\",\r\n \"fluent-desktop-checkmark-outline.svg\",\r\n \"fluent-desktop-checkmark.svg\",\r\n \"fluent-desktop-cursor-outline.svg\",\r\n \"fluent-desktop-cursor.svg\",\r\n \"fluent-desktop-edit-outline.svg\",\r\n \"fluent-desktop-edit.svg\",\r\n \"fluent-desktop-flow-outline.svg\",\r\n \"fluent-desktop-flow.svg\",\r\n \"fluent-desktop-keyboard-outline.svg\",\r\n \"fluent-desktop-keyboard.svg\",\r\n \"fluent-desktop-mac-outline.svg\",\r\n \"fluent-desktop-mac.svg\",\r\n \"fluent-desktop-off-outline.svg\",\r\n \"fluent-desktop-off.svg\",\r\n \"fluent-desktop-outline.svg\",\r\n \"fluent-desktop-pulse-outline.svg\",\r\n \"fluent-desktop-pulse.svg\",\r\n \"fluent-desktop-signal-outline.svg\",\r\n \"fluent-desktop-signal.svg\",\r\n \"fluent-desktop-speaker-off.svg\",\r\n \"fluent-desktop-speaker-outline.svg\",\r\n \"fluent-desktop-speaker.svg\",\r\n \"fluent-desktop-sync-outline.svg\",\r\n \"fluent-desktop-sync.svg\",\r\n \"fluent-desktop-toolbox-outline.svg\",\r\n \"fluent-desktop-toolbox.svg\",\r\n \"fluent-desktop-tower-outline.svg\",\r\n \"fluent-desktop-tower.svg\",\r\n \"fluent-desktop.svg\",\r\n \"fluent-developer-board-outline.svg\",\r\n \"fluent-developer-board-search.svg\",\r\n \"fluent-developer-board.svg\",\r\n \"fluent-device-eq-outline.svg\",\r\n \"fluent-device-eq.svg\",\r\n \"fluent-device-meeting-room.svg\",\r\n \"fluent-diagram-outline.svg\",\r\n \"fluent-diagram.svg\",\r\n \"fluent-dialpad-off-outline.svg\",\r\n \"fluent-dialpad-off.svg\",\r\n \"fluent-dialpad-outline.svg\",\r\n \"fluent-dialpad-question-mark.svg\",\r\n \"fluent-dialpad.svg\",\r\n \"fluent-diamond-outline.svg\",\r\n \"fluent-diamond.svg\",\r\n \"fluent-directions-outline.svg\",\r\n \"fluent-directions.svg\",\r\n \"fluent-dishwasher-outline.svg\",\r\n \"fluent-dishwasher.svg\",\r\n \"fluent-dismiss-circle-outline.svg\",\r\n \"fluent-dismiss-circle.svg\",\r\n \"fluent-dismiss-outline.svg\",\r\n \"fluent-dismiss-square-outline.svg\",\r\n \"fluent-dismiss-square.svg\",\r\n \"fluent-dismiss.svg\",\r\n \"fluent-diversity-outline.svg\",\r\n \"fluent-diversity.svg\",\r\n \"fluent-divider-short-outline.svg\",\r\n \"fluent-divider-short.svg\",\r\n \"fluent-divider-tall-outline.svg\",\r\n \"fluent-divider-tall.svg\",\r\n \"fluent-dock-outline.svg\",\r\n \"fluent-dock-row-outline.svg\",\r\n \"fluent-dock-row.svg\",\r\n \"fluent-dock.svg\",\r\n \"fluent-doctor-outline.svg\",\r\n \"fluent-doctor.svg\",\r\n \"fluent-document-100-outline.svg\",\r\n \"fluent-document-100.svg\",\r\n \"fluent-document-add-outline.svg\",\r\n \"fluent-document-add.svg\",\r\n \"fluent-document-arrow-down.svg\",\r\n \"fluent-document-arrow-left.svg\",\r\n \"fluent-document-arrow-right.svg\",\r\n \"fluent-document-border-outline.svg\",\r\n \"fluent-document-border-print.svg\",\r\n \"fluent-document-border.svg\",\r\n \"fluent-document-briefcase.svg\",\r\n \"fluent-document-bullet-list-cube.svg\",\r\n \"fluent-document-bullet-list-off.svg\",\r\n \"fluent-document-bullet-list.svg\",\r\n \"fluent-document-catch-up-outline.svg\",\r\n \"fluent-document-catch-up.svg\",\r\n \"fluent-document-checkmark.svg\",\r\n \"fluent-document-chevron-double.svg\",\r\n \"fluent-document-copy-outline.svg\",\r\n \"fluent-document-copy.svg\",\r\n \"fluent-document-css-outline.svg\",\r\n \"fluent-document-css.svg\",\r\n \"fluent-document-cube-outline.svg\",\r\n \"fluent-document-cube.svg\",\r\n \"fluent-document-data-link.svg\",\r\n \"fluent-document-data-lock.svg\",\r\n \"fluent-document-data-outline.svg\",\r\n \"fluent-document-data.svg\",\r\n \"fluent-document-database-outline.svg\",\r\n \"fluent-document-database.svg\",\r\n \"fluent-document-dismiss-outline.svg\",\r\n \"fluent-document-dismiss.svg\",\r\n \"fluent-document-edit-outline.svg\",\r\n \"fluent-document-edit.svg\",\r\n \"fluent-document-endnote-outline.svg\",\r\n \"fluent-document-endnote.svg\",\r\n \"fluent-document-error-outline.svg\",\r\n \"fluent-document-error.svg\",\r\n \"fluent-document-fit-outline.svg\",\r\n \"fluent-document-fit.svg\",\r\n \"fluent-document-flowchart.svg\",\r\n \"fluent-document-folder-outline.svg\",\r\n \"fluent-document-folder.svg\",\r\n \"fluent-document-footer-dismiss.svg\",\r\n \"fluent-document-footer-outline.svg\",\r\n \"fluent-document-footer.svg\",\r\n \"fluent-document-globe-outline.svg\",\r\n \"fluent-document-globe.svg\",\r\n \"fluent-document-header-dismiss.svg\",\r\n \"fluent-document-header-footer.svg\",\r\n \"fluent-document-header-outline.svg\",\r\n \"fluent-document-header.svg\",\r\n \"fluent-document-heart-outline.svg\",\r\n \"fluent-document-heart-pulse.svg\",\r\n \"fluent-document-heart.svg\",\r\n \"fluent-document-javascript.svg\",\r\n \"fluent-document-landscape-data.svg\",\r\n \"fluent-document-landscape-split.svg\",\r\n \"fluent-document-landscape.svg\",\r\n \"fluent-document-lightning.svg\",\r\n \"fluent-document-link-outline.svg\",\r\n \"fluent-document-link.svg\",\r\n \"fluent-document-lock-outline.svg\",\r\n \"fluent-document-lock.svg\",\r\n \"fluent-document-margins-outline.svg\",\r\n \"fluent-document-margins.svg\",\r\n \"fluent-document-mention-outline.svg\",\r\n \"fluent-document-mention.svg\",\r\n \"fluent-document-multiple-outline.svg\",\r\n \"fluent-document-multiple-percent.svg\",\r\n \"fluent-document-multiple.svg\",\r\n \"fluent-document-one-page-add.svg\",\r\n \"fluent-document-one-page-columns.svg\",\r\n \"fluent-document-one-page-link.svg\",\r\n \"fluent-document-one-page-outline.svg\",\r\n \"fluent-document-one-page-sparkle.svg\",\r\n \"fluent-document-one-page.svg\",\r\n \"fluent-document-outline.svg\",\r\n \"fluent-document-page-bottom-left.svg\",\r\n \"fluent-document-page-break.svg\",\r\n \"fluent-document-page-number.svg\",\r\n \"fluent-document-page-top-center.svg\",\r\n \"fluent-document-page-top-left.svg\",\r\n \"fluent-document-page-top-right.svg\",\r\n \"fluent-document-pdf-outline.svg\",\r\n \"fluent-document-pdf.svg\",\r\n \"fluent-document-percent-outline.svg\",\r\n \"fluent-document-percent.svg\",\r\n \"fluent-document-pill-outline.svg\",\r\n \"fluent-document-pill.svg\",\r\n \"fluent-document-print-outline.svg\",\r\n \"fluent-document-print.svg\",\r\n \"fluent-document-prohibited.svg\",\r\n \"fluent-document-question-mark.svg\",\r\n \"fluent-document-queue-add.svg\",\r\n \"fluent-document-queue-multiple.svg\",\r\n \"fluent-document-queue-outline.svg\",\r\n \"fluent-document-queue.svg\",\r\n \"fluent-document-ribbon-outline.svg\",\r\n \"fluent-document-ribbon.svg\",\r\n \"fluent-document-save-outline.svg\",\r\n \"fluent-document-save.svg\",\r\n \"fluent-document-search-outline.svg\",\r\n \"fluent-document-search.svg\",\r\n \"fluent-document-signature.svg\",\r\n \"fluent-document-split-hint-off.svg\",\r\n \"fluent-document-split-hint.svg\",\r\n \"fluent-document-sync-outline.svg\",\r\n \"fluent-document-sync.svg\",\r\n \"fluent-document-table-checkmark.svg\",\r\n \"fluent-document-table-cube.svg\",\r\n \"fluent-document-table-outline.svg\",\r\n \"fluent-document-table-search.svg\",\r\n \"fluent-document-table-truck.svg\",\r\n \"fluent-document-table.svg\",\r\n \"fluent-document-target-outline.svg\",\r\n \"fluent-document-target.svg\",\r\n \"fluent-document-text-clock.svg\",\r\n \"fluent-document-text-extract.svg\",\r\n \"fluent-document-text-link.svg\",\r\n \"fluent-document-text-outline.svg\",\r\n \"fluent-document-text-toolbox.svg\",\r\n \"fluent-document-text.svg\",\r\n \"fluent-document-toolbox-outline.svg\",\r\n \"fluent-document-toolbox.svg\",\r\n \"fluent-document-width-outline.svg\",\r\n \"fluent-document-width.svg\",\r\n \"fluent-document.svg\",\r\n \"fluent-door-arrow-left-outline.svg\",\r\n \"fluent-door-arrow-left.svg\",\r\n \"fluent-door-tag-outline.svg\",\r\n \"fluent-door-tag.svg\",\r\n \"fluent-double-swipe-down-outline.svg\",\r\n \"fluent-double-swipe-down.svg\",\r\n \"fluent-double-swipe-up-outline.svg\",\r\n \"fluent-double-swipe-up.svg\",\r\n \"fluent-double-tap-swipe-down.svg\",\r\n \"fluent-double-tap-swipe-up.svg\",\r\n \"fluent-drafts-outline.svg\",\r\n \"fluent-drafts.svg\",\r\n \"fluent-drag-outline.svg\",\r\n \"fluent-drag.svg\",\r\n \"fluent-draw-image-outline.svg\",\r\n \"fluent-draw-image.svg\",\r\n \"fluent-draw-shape-outline.svg\",\r\n \"fluent-draw-shape.svg\",\r\n \"fluent-draw-text-outline.svg\",\r\n \"fluent-draw-text.svg\",\r\n \"fluent-drawer-add-outline.svg\",\r\n \"fluent-drawer-add.svg\",\r\n \"fluent-drawer-arrow-download.svg\",\r\n \"fluent-drawer-dismiss-outline.svg\",\r\n \"fluent-drawer-dismiss.svg\",\r\n \"fluent-drawer-outline.svg\",\r\n \"fluent-drawer-play-outline.svg\",\r\n \"fluent-drawer-play.svg\",\r\n \"fluent-drawer-subtract-outline.svg\",\r\n \"fluent-drawer-subtract.svg\",\r\n \"fluent-drawer.svg\",\r\n \"fluent-drink-beer-outline.svg\",\r\n \"fluent-drink-beer.svg\",\r\n \"fluent-drink-coffee-outline.svg\",\r\n \"fluent-drink-coffee.svg\",\r\n \"fluent-drink-margarita-outline.svg\",\r\n \"fluent-drink-margarita.svg\",\r\n \"fluent-drink-to-go-outline.svg\",\r\n \"fluent-drink-to-go.svg\",\r\n \"fluent-drink-wine-outline.svg\",\r\n \"fluent-drink-wine.svg\",\r\n \"fluent-drive-train-outline.svg\",\r\n \"fluent-drive-train.svg\",\r\n \"fluent-drop-outline.svg\",\r\n \"fluent-drop.svg\",\r\n \"fluent-dual-screen-add-outline.svg\",\r\n \"fluent-dual-screen-add.svg\",\r\n \"fluent-dual-screen-arrow-right.svg\",\r\n \"fluent-dual-screen-arrow-up.svg\",\r\n \"fluent-dual-screen-clock-outline.svg\",\r\n \"fluent-dual-screen-clock.svg\",\r\n \"fluent-dual-screen-closed-alert.svg\",\r\n \"fluent-dual-screen-desktop.svg\",\r\n \"fluent-dual-screen-dismiss.svg\",\r\n \"fluent-dual-screen-group-outline.svg\",\r\n \"fluent-dual-screen-group.svg\",\r\n \"fluent-dual-screen-header.svg\",\r\n \"fluent-dual-screen-lock-outline.svg\",\r\n \"fluent-dual-screen-lock.svg\",\r\n \"fluent-dual-screen-mirror.svg\",\r\n \"fluent-dual-screen-outline.svg\",\r\n \"fluent-dual-screen-pagination.svg\",\r\n \"fluent-dual-screen-settings.svg\",\r\n \"fluent-dual-screen-span-outline.svg\",\r\n \"fluent-dual-screen-span.svg\",\r\n \"fluent-dual-screen-speaker.svg\",\r\n \"fluent-dual-screen-status-bar.svg\",\r\n \"fluent-dual-screen-tablet.svg\",\r\n \"fluent-dual-screen-update.svg\",\r\n \"fluent-dual-screen-vibrate.svg\",\r\n \"fluent-dual-screen.svg\",\r\n \"fluent-dumbbell-outline.svg\",\r\n \"fluent-dumbbell.svg\",\r\n \"fluent-dust-outline.svg\",\r\n \"fluent-dust.svg\",\r\n \"fluent-earth-leaf-outline.svg\",\r\n \"fluent-earth-leaf.svg\",\r\n \"fluent-earth-outline.svg\",\r\n \"fluent-earth.svg\",\r\n \"fluent-edit-arrow-back-outline.svg\",\r\n \"fluent-edit-arrow-back.svg\",\r\n \"fluent-edit-line-horizontal-3.svg\",\r\n \"fluent-edit-lock-outline.svg\",\r\n \"fluent-edit-lock.svg\",\r\n \"fluent-edit-off-outline.svg\",\r\n \"fluent-edit-off.svg\",\r\n \"fluent-edit-outline.svg\",\r\n \"fluent-edit-person-outline.svg\",\r\n \"fluent-edit-person.svg\",\r\n \"fluent-edit-prohibited-outline.svg\",\r\n \"fluent-edit-prohibited.svg\",\r\n \"fluent-edit-settings-outline.svg\",\r\n \"fluent-edit-settings.svg\",\r\n \"fluent-edit.svg\",\r\n \"fluent-elevator-outline.svg\",\r\n \"fluent-elevator.svg\",\r\n \"fluent-emoji-add-outline.svg\",\r\n \"fluent-emoji-add.svg\",\r\n \"fluent-emoji-angry-outline.svg\",\r\n \"fluent-emoji-angry.svg\",\r\n \"fluent-emoji-edit-outline.svg\",\r\n \"fluent-emoji-edit.svg\",\r\n \"fluent-emoji-hand-outline.svg\",\r\n \"fluent-emoji-hand.svg\",\r\n \"fluent-emoji-hint-outline.svg\",\r\n \"fluent-emoji-hint.svg\",\r\n \"fluent-emoji-laugh-outline.svg\",\r\n \"fluent-emoji-laugh.svg\",\r\n \"fluent-emoji-meh-outline.svg\",\r\n \"fluent-emoji-meh.svg\",\r\n \"fluent-emoji-meme-outline.svg\",\r\n \"fluent-emoji-meme.svg\",\r\n \"fluent-emoji-multiple-outline.svg\",\r\n \"fluent-emoji-multiple.svg\",\r\n \"fluent-emoji-outline.svg\",\r\n \"fluent-emoji-sad-outline.svg\",\r\n \"fluent-emoji-sad-slight-outline.svg\",\r\n \"fluent-emoji-sad-slight.svg\",\r\n \"fluent-emoji-sad.svg\",\r\n \"fluent-emoji-smile-slight.svg\",\r\n \"fluent-emoji-sparkle-outline.svg\",\r\n \"fluent-emoji-sparkle.svg\",\r\n \"fluent-emoji-surprise-outline.svg\",\r\n \"fluent-emoji-surprise.svg\",\r\n \"fluent-emoji.svg\",\r\n \"fluent-engine-outline.svg\",\r\n \"fluent-engine.svg\",\r\n \"fluent-equal-circle-outline.svg\",\r\n \"fluent-equal-circle.svg\",\r\n \"fluent-equal-off-outline.svg\",\r\n \"fluent-equal-off.svg\",\r\n \"fluent-eraser-medium-outline.svg\",\r\n \"fluent-eraser-medium.svg\",\r\n \"fluent-eraser-outline.svg\",\r\n \"fluent-eraser-segment-outline.svg\",\r\n \"fluent-eraser-segment.svg\",\r\n \"fluent-eraser-small-outline.svg\",\r\n \"fluent-eraser-small.svg\",\r\n \"fluent-eraser-tool-outline.svg\",\r\n \"fluent-eraser-tool.svg\",\r\n \"fluent-eraser.svg\",\r\n \"fluent-error-circle-outline.svg\",\r\n \"fluent-error-circle.svg\",\r\n \"fluent-expand-up-left-outline.svg\",\r\n \"fluent-expand-up-left.svg\",\r\n \"fluent-expand-up-right-outline.svg\",\r\n \"fluent-expand-up-right.svg\",\r\n \"fluent-extended-dock-outline.svg\",\r\n \"fluent-extended-dock.svg\",\r\n \"fluent-eye-lines-outline.svg\",\r\n \"fluent-eye-lines.svg\",\r\n \"fluent-eye-off-outline.svg\",\r\n \"fluent-eye-off.svg\",\r\n \"fluent-eye-outline.svg\",\r\n \"fluent-eye-tracking-off-outline.svg\",\r\n \"fluent-eye-tracking-off.svg\",\r\n \"fluent-eye-tracking-outline.svg\",\r\n \"fluent-eye-tracking.svg\",\r\n \"fluent-eye.svg\",\r\n \"fluent-eyedropper-off-outline.svg\",\r\n \"fluent-eyedropper-off.svg\",\r\n \"fluent-eyedropper-outline.svg\",\r\n \"fluent-eyedropper.svg\",\r\n \"fluent-f-stop-outline.svg\",\r\n \"fluent-f-stop.svg\",\r\n \"fluent-fast-acceleration-outline.svg\",\r\n \"fluent-fast-acceleration.svg\",\r\n \"fluent-fast-forward-outline.svg\",\r\n \"fluent-fast-forward.svg\",\r\n \"fluent-feed-outline.svg\",\r\n \"fluent-feed.svg\",\r\n \"fluent-filmstrip-image-outline.svg\",\r\n \"fluent-filmstrip-image.svg\",\r\n \"fluent-filmstrip-outline.svg\",\r\n \"fluent-filmstrip-play-outline.svg\",\r\n \"fluent-filmstrip-play.svg\",\r\n \"fluent-filmstrip-split-outline.svg\",\r\n \"fluent-filmstrip-split.svg\",\r\n \"fluent-filmstrip.svg\",\r\n \"fluent-filter-dismiss-outline.svg\",\r\n \"fluent-filter-dismiss.svg\",\r\n \"fluent-filter-outline.svg\",\r\n \"fluent-filter-sync-outline.svg\",\r\n \"fluent-filter-sync.svg\",\r\n \"fluent-filter.svg\",\r\n \"fluent-fingerprint-outline.svg\",\r\n \"fluent-fingerprint.svg\",\r\n \"fluent-fire-outline.svg\",\r\n \"fluent-fire.svg\",\r\n \"fluent-fireplace-outline.svg\",\r\n \"fluent-fireplace.svg\",\r\n \"fluent-fixed-width-outline.svg\",\r\n \"fluent-fixed-width.svg\",\r\n \"fluent-flag-clock-outline.svg\",\r\n \"fluent-flag-clock.svg\",\r\n \"fluent-flag-off-outline.svg\",\r\n \"fluent-flag-off.svg\",\r\n \"fluent-flag-outline.svg\",\r\n \"fluent-flag-pride-philadelphia.svg\",\r\n \"fluent-flag-pride-progress.svg\",\r\n \"fluent-flag-pride.svg\",\r\n \"fluent-flag.svg\",\r\n \"fluent-flash-auto-outline.svg\",\r\n \"fluent-flash-auto.svg\",\r\n \"fluent-flash-checkmark-outline.svg\",\r\n \"fluent-flash-checkmark.svg\",\r\n \"fluent-flash-flow-outline.svg\",\r\n \"fluent-flash-flow.svg\",\r\n \"fluent-flash-off-outline.svg\",\r\n \"fluent-flash-off.svg\",\r\n \"fluent-flash-outline.svg\",\r\n \"fluent-flash-settings-outline.svg\",\r\n \"fluent-flash-settings.svg\",\r\n \"fluent-flash-sparkle-outline.svg\",\r\n \"fluent-flash-sparkle.svg\",\r\n \"fluent-flash.svg\",\r\n \"fluent-flashlight-off-outline.svg\",\r\n \"fluent-flashlight-off.svg\",\r\n \"fluent-flashlight-outline.svg\",\r\n \"fluent-flashlight.svg\",\r\n \"fluent-flip-horizontal-outline.svg\",\r\n \"fluent-flip-horizontal.svg\",\r\n \"fluent-flip-vertical-outline.svg\",\r\n \"fluent-flip-vertical.svg\",\r\n \"fluent-flow-outline.svg\",\r\n \"fluent-flow.svg\",\r\n \"fluent-flowchart-circle-outline.svg\",\r\n \"fluent-flowchart-circle.svg\",\r\n \"fluent-flowchart-outline.svg\",\r\n \"fluent-flowchart.svg\",\r\n \"fluent-fluent-outline.svg\",\r\n \"fluent-fluent.svg\",\r\n \"fluent-fluid-outline.svg\",\r\n \"fluent-fluid.svg\",\r\n \"fluent-folder-add-outline.svg\",\r\n \"fluent-folder-add.svg\",\r\n \"fluent-folder-arrow-left-outline.svg\",\r\n \"fluent-folder-arrow-left.svg\",\r\n \"fluent-folder-arrow-right.svg\",\r\n \"fluent-folder-arrow-up-outline.svg\",\r\n \"fluent-folder-arrow-up.svg\",\r\n \"fluent-folder-lightning-outline.svg\",\r\n \"fluent-folder-lightning.svg\",\r\n \"fluent-folder-link-outline.svg\",\r\n \"fluent-folder-link.svg\",\r\n \"fluent-folder-mail-outline.svg\",\r\n \"fluent-folder-mail.svg\",\r\n \"fluent-folder-open-outline.svg\",\r\n \"fluent-folder-open-vertical.svg\",\r\n \"fluent-folder-open.svg\",\r\n \"fluent-folder-outline.svg\",\r\n \"fluent-folder-people-outline.svg\",\r\n \"fluent-folder-people.svg\",\r\n \"fluent-folder-person-outline.svg\",\r\n \"fluent-folder-person.svg\",\r\n \"fluent-folder-prohibited-outline.svg\",\r\n \"fluent-folder-prohibited.svg\",\r\n \"fluent-folder-search-outline.svg\",\r\n \"fluent-folder-search.svg\",\r\n \"fluent-folder-swap-outline.svg\",\r\n \"fluent-folder-swap.svg\",\r\n \"fluent-folder-sync-outline.svg\",\r\n \"fluent-folder-sync.svg\",\r\n \"fluent-folder-zip-outline.svg\",\r\n \"fluent-folder-zip.svg\",\r\n \"fluent-folder.svg\",\r\n \"fluent-font-decrease-outline.svg\",\r\n \"fluent-font-decrease.svg\",\r\n \"fluent-font-increase-outline.svg\",\r\n \"fluent-font-increase.svg\",\r\n \"fluent-font-space-tracking-in.svg\",\r\n \"fluent-font-space-tracking-out.svg\",\r\n \"fluent-food-apple-outline.svg\",\r\n \"fluent-food-apple.svg\",\r\n \"fluent-food-cake-outline.svg\",\r\n \"fluent-food-cake.svg\",\r\n \"fluent-food-carrot-outline.svg\",\r\n \"fluent-food-carrot.svg\",\r\n \"fluent-food-chicken-leg-outline.svg\",\r\n \"fluent-food-chicken-leg.svg\",\r\n \"fluent-food-egg-outline.svg\",\r\n \"fluent-food-egg.svg\",\r\n \"fluent-food-fish-outline.svg\",\r\n \"fluent-food-fish.svg\",\r\n \"fluent-food-grains-outline.svg\",\r\n \"fluent-food-grains.svg\",\r\n \"fluent-food-outline.svg\",\r\n \"fluent-food-pizza-outline.svg\",\r\n \"fluent-food-pizza.svg\",\r\n \"fluent-food-toast-outline.svg\",\r\n \"fluent-food-toast.svg\",\r\n \"fluent-food.svg\",\r\n \"fluent-form-multiple-outline.svg\",\r\n \"fluent-form-multiple.svg\",\r\n \"fluent-form-new-outline.svg\",\r\n \"fluent-form-new.svg\",\r\n \"fluent-form-outline.svg\",\r\n \"fluent-form.svg\",\r\n \"fluent-fps-120-outline.svg\",\r\n \"fluent-fps-120.svg\",\r\n \"fluent-fps-240-outline.svg\",\r\n \"fluent-fps-240.svg\",\r\n \"fluent-fps-30-outline.svg\",\r\n \"fluent-fps-30.svg\",\r\n \"fluent-fps-60-outline.svg\",\r\n \"fluent-fps-60.svg\",\r\n \"fluent-fps-960-outline.svg\",\r\n \"fluent-fps-960.svg\",\r\n \"fluent-frame-outline.svg\",\r\n \"fluent-frame.svg\",\r\n \"fluent-full-screen-maximize.svg\",\r\n \"fluent-full-screen-minimize.svg\",\r\n \"fluent-games-outline.svg\",\r\n \"fluent-games.svg\",\r\n \"fluent-gantt-chart-outline.svg\",\r\n \"fluent-gantt-chart.svg\",\r\n \"fluent-gas-outline.svg\",\r\n \"fluent-gas-pump-outline.svg\",\r\n \"fluent-gas-pump.svg\",\r\n \"fluent-gas.svg\",\r\n \"fluent-gauge-outline.svg\",\r\n \"fluent-gauge.svg\",\r\n \"fluent-gavel-outline.svg\",\r\n \"fluent-gavel.svg\",\r\n \"fluent-gesture-outline.svg\",\r\n \"fluent-gesture.svg\",\r\n \"fluent-gif-outline.svg\",\r\n \"fluent-gif.svg\",\r\n \"fluent-gift-card-add-outline.svg\",\r\n \"fluent-gift-card-add.svg\",\r\n \"fluent-gift-card-arrow-right.svg\",\r\n \"fluent-gift-card-money-outline.svg\",\r\n \"fluent-gift-card-money.svg\",\r\n \"fluent-gift-card-multiple.svg\",\r\n \"fluent-gift-card-outline.svg\",\r\n \"fluent-gift-card.svg\",\r\n \"fluent-gift-open-outline.svg\",\r\n \"fluent-gift-open.svg\",\r\n \"fluent-gift-outline.svg\",\r\n \"fluent-gift.svg\",\r\n \"fluent-glance-horizontal-outline.svg\",\r\n \"fluent-glance-horizontal.svg\",\r\n \"fluent-glance-outline.svg\",\r\n \"fluent-glance.svg\",\r\n \"fluent-glasses-off-outline.svg\",\r\n \"fluent-glasses-off.svg\",\r\n \"fluent-glasses-outline.svg\",\r\n \"fluent-glasses.svg\",\r\n \"fluent-globe-add-outline.svg\",\r\n \"fluent-globe-add.svg\",\r\n \"fluent-globe-arrow-forward.svg\",\r\n \"fluent-globe-arrow-up-outline.svg\",\r\n \"fluent-globe-arrow-up.svg\",\r\n \"fluent-globe-clock-outline.svg\",\r\n \"fluent-globe-clock.svg\",\r\n \"fluent-globe-desktop-outline.svg\",\r\n \"fluent-globe-desktop.svg\",\r\n \"fluent-globe-error-outline.svg\",\r\n \"fluent-globe-error.svg\",\r\n \"fluent-globe-location-outline.svg\",\r\n \"fluent-globe-location.svg\",\r\n \"fluent-globe-off-outline.svg\",\r\n \"fluent-globe-off.svg\",\r\n \"fluent-globe-outline.svg\",\r\n \"fluent-globe-person-outline.svg\",\r\n \"fluent-globe-person.svg\",\r\n \"fluent-globe-prohibited-outline.svg\",\r\n \"fluent-globe-prohibited.svg\",\r\n \"fluent-globe-search-outline.svg\",\r\n \"fluent-globe-search.svg\",\r\n \"fluent-globe-shield-outline.svg\",\r\n \"fluent-globe-shield.svg\",\r\n \"fluent-globe-surface-outline.svg\",\r\n \"fluent-globe-surface.svg\",\r\n \"fluent-globe-sync-outline.svg\",\r\n \"fluent-globe-sync.svg\",\r\n \"fluent-globe-video-outline.svg\",\r\n \"fluent-globe-video.svg\",\r\n \"fluent-globe-warning-outline.svg\",\r\n \"fluent-globe-warning.svg\",\r\n \"fluent-globe.svg\",\r\n \"fluent-grid-circles-outline.svg\",\r\n \"fluent-grid-circles.svg\",\r\n \"fluent-grid-dots-outline.svg\",\r\n \"fluent-grid-dots.svg\",\r\n \"fluent-grid-outline.svg\",\r\n \"fluent-grid.svg\",\r\n \"fluent-group-dismiss-outline.svg\",\r\n \"fluent-group-dismiss.svg\",\r\n \"fluent-group-list-outline.svg\",\r\n \"fluent-group-list.svg\",\r\n \"fluent-group-outline.svg\",\r\n \"fluent-group-return-outline.svg\",\r\n \"fluent-group-return.svg\",\r\n \"fluent-group.svg\",\r\n \"fluent-guardian-outline.svg\",\r\n \"fluent-guardian.svg\",\r\n \"fluent-guest-add-outline.svg\",\r\n \"fluent-guest-add.svg\",\r\n \"fluent-guest-outline.svg\",\r\n \"fluent-guest.svg\",\r\n \"fluent-guitar-outline.svg\",\r\n \"fluent-guitar.svg\",\r\n \"fluent-hand-draw-outline.svg\",\r\n \"fluent-hand-draw.svg\",\r\n \"fluent-hand-left-chat-outline.svg\",\r\n \"fluent-hand-left-chat.svg\",\r\n \"fluent-hand-left-outline.svg\",\r\n \"fluent-hand-left.svg\",\r\n \"fluent-hand-point-outline.svg\",\r\n \"fluent-hand-point.svg\",\r\n \"fluent-hand-right-off-outline.svg\",\r\n \"fluent-hand-right-off.svg\",\r\n \"fluent-hand-right-outline.svg\",\r\n \"fluent-hand-right.svg\",\r\n \"fluent-hand-wave-outline.svg\",\r\n \"fluent-hand-wave.svg\",\r\n \"fluent-handshake-outline.svg\",\r\n \"fluent-handshake.svg\",\r\n \"fluent-haptic-strong-outline.svg\",\r\n \"fluent-haptic-strong.svg\",\r\n \"fluent-haptic-weak-outline.svg\",\r\n \"fluent-haptic-weak.svg\",\r\n \"fluent-hard-drive-call-outline.svg\",\r\n \"fluent-hard-drive-call.svg\",\r\n \"fluent-hard-drive-outline.svg\",\r\n \"fluent-hard-drive.svg\",\r\n \"fluent-hat-graduation-add.svg\",\r\n \"fluent-hat-graduation-outline.svg\",\r\n \"fluent-hat-graduation-sparkle.svg\",\r\n \"fluent-hat-graduation.svg\",\r\n \"fluent-hd-outline.svg\",\r\n \"fluent-hd.svg\",\r\n \"fluent-hdr-off-outline.svg\",\r\n \"fluent-hdr-off.svg\",\r\n \"fluent-hdr-outline.svg\",\r\n \"fluent-hdr.svg\",\r\n \"fluent-headphones-outline.svg\",\r\n \"fluent-headphones-sound-wave.svg\",\r\n \"fluent-headphones.svg\",\r\n \"fluent-headset-add-outline.svg\",\r\n \"fluent-headset-add.svg\",\r\n \"fluent-headset-outline.svg\",\r\n \"fluent-headset-vr-outline.svg\",\r\n \"fluent-headset-vr.svg\",\r\n \"fluent-headset.svg\",\r\n \"fluent-heart-broken-outline.svg\",\r\n \"fluent-heart-broken.svg\",\r\n \"fluent-heart-circle-hint-outline.svg\",\r\n \"fluent-heart-circle-hint.svg\",\r\n \"fluent-heart-circle-outline.svg\",\r\n \"fluent-heart-circle.svg\",\r\n \"fluent-heart-off-outline.svg\",\r\n \"fluent-heart-off.svg\",\r\n \"fluent-heart-outline.svg\",\r\n \"fluent-heart-pulse-outline.svg\",\r\n \"fluent-heart-pulse.svg\",\r\n \"fluent-heart.svg\",\r\n \"fluent-hexagon-outline.svg\",\r\n \"fluent-hexagon-sparkle-outline.svg\",\r\n \"fluent-hexagon-sparkle.svg\",\r\n \"fluent-hexagon-three-outline.svg\",\r\n \"fluent-hexagon-three.svg\",\r\n \"fluent-hexagon.svg\",\r\n \"fluent-highlight-accent.svg\",\r\n \"fluent-highlight-outline.svg\",\r\n \"fluent-highlight.svg\",\r\n \"fluent-highway-outline.svg\",\r\n \"fluent-highway.svg\",\r\n \"fluent-history-dismiss-outline.svg\",\r\n \"fluent-history-dismiss.svg\",\r\n \"fluent-history-outline.svg\",\r\n \"fluent-history.svg\",\r\n \"fluent-home-add-outline.svg\",\r\n \"fluent-home-add.svg\",\r\n \"fluent-home-checkmark-outline.svg\",\r\n \"fluent-home-checkmark.svg\",\r\n \"fluent-home-database-outline.svg\",\r\n \"fluent-home-database.svg\",\r\n \"fluent-home-garage-outline.svg\",\r\n \"fluent-home-garage.svg\",\r\n \"fluent-home-heart-outline.svg\",\r\n \"fluent-home-heart.svg\",\r\n \"fluent-home-more-outline.svg\",\r\n \"fluent-home-more.svg\",\r\n \"fluent-home-outline.svg\",\r\n \"fluent-home-person-outline.svg\",\r\n \"fluent-home-person.svg\",\r\n \"fluent-home-split-outline.svg\",\r\n \"fluent-home-split.svg\",\r\n \"fluent-home.svg\",\r\n \"fluent-hourglass-half-outline.svg\",\r\n \"fluent-hourglass-half.svg\",\r\n \"fluent-hourglass-one-quarter.svg\",\r\n \"fluent-hourglass-outline.svg\",\r\n \"fluent-hourglass-three-quarter.svg\",\r\n \"fluent-hourglass.svg\",\r\n \"fluent-icons-outline.svg\",\r\n \"fluent-icons.svg\",\r\n \"fluent-image-add-outline.svg\",\r\n \"fluent-image-add.svg\",\r\n \"fluent-image-alt-text-outline.svg\",\r\n \"fluent-image-alt-text.svg\",\r\n \"fluent-image-arrow-back-outline.svg\",\r\n \"fluent-image-arrow-back.svg\",\r\n \"fluent-image-arrow-forward.svg\",\r\n \"fluent-image-border-outline.svg\",\r\n \"fluent-image-border.svg\",\r\n \"fluent-image-circle-outline.svg\",\r\n \"fluent-image-circle.svg\",\r\n \"fluent-image-copy-outline.svg\",\r\n \"fluent-image-copy.svg\",\r\n \"fluent-image-edit-outline.svg\",\r\n \"fluent-image-edit.svg\",\r\n \"fluent-image-globe-outline.svg\",\r\n \"fluent-image-globe.svg\",\r\n \"fluent-image-multiple-outline.svg\",\r\n \"fluent-image-multiple.svg\",\r\n \"fluent-image-off-outline.svg\",\r\n \"fluent-image-off.svg\",\r\n \"fluent-image-outline.svg\",\r\n \"fluent-image-prohibited-outline.svg\",\r\n \"fluent-image-prohibited.svg\",\r\n \"fluent-image-reflection-outline.svg\",\r\n \"fluent-image-reflection.svg\",\r\n \"fluent-image-search-outline.svg\",\r\n \"fluent-image-search.svg\",\r\n \"fluent-image-shadow-outline.svg\",\r\n \"fluent-image-shadow.svg\",\r\n \"fluent-image-sparkle-outline.svg\",\r\n \"fluent-image-sparkle.svg\",\r\n \"fluent-image-split-outline.svg\",\r\n \"fluent-image-split.svg\",\r\n \"fluent-image-table-outline.svg\",\r\n \"fluent-image-table.svg\",\r\n \"fluent-image.svg\",\r\n \"fluent-immersive-reader-outline.svg\",\r\n \"fluent-immersive-reader.svg\",\r\n \"fluent-important-outline.svg\",\r\n \"fluent-important.svg\",\r\n \"fluent-incognito-outline.svg\",\r\n \"fluent-incognito.svg\",\r\n \"fluent-info-outline.svg\",\r\n \"fluent-info.svg\",\r\n \"fluent-ink-stroke-arrow-down.svg\",\r\n \"fluent-ink-stroke-arrow-up-down.svg\",\r\n \"fluent-ink-stroke-outline.svg\",\r\n \"fluent-ink-stroke.svg\",\r\n \"fluent-inking-tool-accent.svg\",\r\n \"fluent-inking-tool-outline.svg\",\r\n \"fluent-inking-tool.svg\",\r\n \"fluent-inprivate-account-outline.svg\",\r\n \"fluent-inprivate-account.svg\",\r\n \"fluent-ios-arrow-ltr-outline.svg\",\r\n \"fluent-ios-arrow-ltr.svg\",\r\n \"fluent-ios-arrow-outline.svg\",\r\n \"fluent-ios-arrow-rtl-outline.svg\",\r\n \"fluent-ios-arrow-rtl.svg\",\r\n \"fluent-ios-arrow.svg\",\r\n \"fluent-iot-alert-outline.svg\",\r\n \"fluent-iot-alert.svg\",\r\n \"fluent-iot-outline.svg\",\r\n \"fluent-iot.svg\",\r\n \"fluent-javascript-outline.svg\",\r\n \"fluent-javascript.svg\",\r\n \"fluent-key-command-outline.svg\",\r\n \"fluent-key-command.svg\",\r\n \"fluent-key-multiple-outline.svg\",\r\n \"fluent-key-multiple.svg\",\r\n \"fluent-key-outline.svg\",\r\n \"fluent-key-reset-outline.svg\",\r\n \"fluent-key-reset.svg\",\r\n \"fluent-key.svg\",\r\n \"fluent-keyboard-123-outline.svg\",\r\n \"fluent-keyboard-123.svg\",\r\n \"fluent-keyboard-dock-outline.svg\",\r\n \"fluent-keyboard-dock.svg\",\r\n \"fluent-keyboard-layout-float.svg\",\r\n \"fluent-keyboard-layout-resize.svg\",\r\n \"fluent-keyboard-layout-split.svg\",\r\n \"fluent-keyboard-outline.svg\",\r\n \"fluent-keyboard-shift-outline.svg\",\r\n \"fluent-keyboard-shift-uppercase.svg\",\r\n \"fluent-keyboard-shift.svg\",\r\n \"fluent-keyboard-tab-outline.svg\",\r\n \"fluent-keyboard-tab.svg\",\r\n \"fluent-keyboard.svg\",\r\n \"fluent-kiosk-outline.svg\",\r\n \"fluent-kiosk.svg\",\r\n \"fluent-laptop-briefcase-outline.svg\",\r\n \"fluent-laptop-briefcase.svg\",\r\n \"fluent-laptop-multiple-outline.svg\",\r\n \"fluent-laptop-multiple.svg\",\r\n \"fluent-laptop-outline.svg\",\r\n \"fluent-laptop-person-outline.svg\",\r\n \"fluent-laptop-person.svg\",\r\n \"fluent-laptop-settings-outline.svg\",\r\n \"fluent-laptop-settings.svg\",\r\n \"fluent-laptop.svg\",\r\n \"fluent-lasso-outline.svg\",\r\n \"fluent-lasso.svg\",\r\n \"fluent-launcher-settings-outline.svg\",\r\n \"fluent-launcher-settings.svg\",\r\n \"fluent-layer-diagonal-add.svg\",\r\n \"fluent-layer-diagonal-outline.svg\",\r\n \"fluent-layer-diagonal-person.svg\",\r\n \"fluent-layer-diagonal-sparkle.svg\",\r\n \"fluent-layer-diagonal.svg\",\r\n \"fluent-layer-outline.svg\",\r\n \"fluent-layer.svg\",\r\n \"fluent-layout-cell-four-outline.svg\",\r\n \"fluent-layout-cell-four.svg\",\r\n \"fluent-layout-column-four.svg\",\r\n \"fluent-layout-column-three.svg\",\r\n \"fluent-layout-column-two-outline.svg\",\r\n \"fluent-layout-column-two.svg\",\r\n \"fluent-layout-row-four-focus-top.svg\",\r\n \"fluent-layout-row-four-outline.svg\",\r\n \"fluent-layout-row-four.svg\",\r\n \"fluent-layout-row-three-outline.svg\",\r\n \"fluent-layout-row-three.svg\",\r\n \"fluent-layout-row-two-focus-top.svg\",\r\n \"fluent-layout-row-two-outline.svg\",\r\n \"fluent-layout-row-two-settings.svg\",\r\n \"fluent-layout-row-two-split-top.svg\",\r\n \"fluent-layout-row-two.svg\",\r\n \"fluent-leaf-one-outline.svg\",\r\n \"fluent-leaf-one.svg\",\r\n \"fluent-leaf-three-outline.svg\",\r\n \"fluent-leaf-three.svg\",\r\n \"fluent-leaf-two-outline.svg\",\r\n \"fluent-leaf-two.svg\",\r\n \"fluent-learning-app-outline.svg\",\r\n \"fluent-learning-app.svg\",\r\n \"fluent-library-outline.svg\",\r\n \"fluent-library.svg\",\r\n \"fluent-lightbulb-circle-outline.svg\",\r\n \"fluent-lightbulb-circle.svg\",\r\n \"fluent-lightbulb-filament.svg\",\r\n \"fluent-lightbulb-outline.svg\",\r\n \"fluent-lightbulb-person-outline.svg\",\r\n \"fluent-lightbulb-person.svg\",\r\n \"fluent-lightbulb.svg\",\r\n \"fluent-likert-outline.svg\",\r\n \"fluent-likert.svg\",\r\n \"fluent-line-dashes-outline.svg\",\r\n \"fluent-line-dashes.svg\",\r\n \"fluent-line-horizontal-1-dashes.svg\",\r\n \"fluent-line-horizontal-1-outline.svg\",\r\n \"fluent-line-horizontal-1.svg\",\r\n \"fluent-line-outline.svg\",\r\n \"fluent-line-style-outline.svg\",\r\n \"fluent-line-style-sketch-outline.svg\",\r\n \"fluent-line-style-sketch.svg\",\r\n \"fluent-line-style.svg\",\r\n \"fluent-line-thickness-outline.svg\",\r\n \"fluent-line-thickness.svg\",\r\n \"fluent-line.svg\",\r\n \"fluent-link-add-outline.svg\",\r\n \"fluent-link-add.svg\",\r\n \"fluent-link-dismiss-outline.svg\",\r\n \"fluent-link-dismiss.svg\",\r\n \"fluent-link-edit-outline.svg\",\r\n \"fluent-link-edit.svg\",\r\n \"fluent-link-multiple-outline.svg\",\r\n \"fluent-link-multiple.svg\",\r\n \"fluent-link-outline.svg\",\r\n \"fluent-link-person-outline.svg\",\r\n \"fluent-link-person.svg\",\r\n \"fluent-link-settings-outline.svg\",\r\n \"fluent-link-settings.svg\",\r\n \"fluent-link-square-outline.svg\",\r\n \"fluent-link-square.svg\",\r\n \"fluent-link.svg\",\r\n \"fluent-list-outline.svg\",\r\n \"fluent-list.svg\",\r\n \"fluent-live-off-outline.svg\",\r\n \"fluent-live-off.svg\",\r\n \"fluent-live-outline.svg\",\r\n \"fluent-live.svg\",\r\n \"fluent-local-language-outline.svg\",\r\n \"fluent-local-language.svg\",\r\n \"fluent-location-add-outline.svg\",\r\n \"fluent-location-add.svg\",\r\n \"fluent-location-arrow-outline.svg\",\r\n \"fluent-location-arrow.svg\",\r\n \"fluent-location-dismiss-outline.svg\",\r\n \"fluent-location-dismiss.svg\",\r\n \"fluent-location-live-outline.svg\",\r\n \"fluent-location-live.svg\",\r\n \"fluent-location-off-outline.svg\",\r\n \"fluent-location-off.svg\",\r\n \"fluent-location-outline.svg\",\r\n \"fluent-location-ripple-outline.svg\",\r\n \"fluent-location-ripple.svg\",\r\n \"fluent-location-target-square.svg\",\r\n \"fluent-location.svg\",\r\n \"fluent-lock-closed-key-outline.svg\",\r\n \"fluent-lock-closed-key.svg\",\r\n \"fluent-lock-closed-outline.svg\",\r\n \"fluent-lock-closed.svg\",\r\n \"fluent-lock-multiple-outline.svg\",\r\n \"fluent-lock-multiple.svg\",\r\n \"fluent-lock-open-outline.svg\",\r\n \"fluent-lock-open.svg\",\r\n \"fluent-lock-shield-outline.svg\",\r\n \"fluent-lock-shield.svg\",\r\n \"fluent-lottery-outline.svg\",\r\n \"fluent-lottery.svg\",\r\n \"fluent-luggage-outline.svg\",\r\n \"fluent-luggage.svg\",\r\n \"fluent-mail-add-outline.svg\",\r\n \"fluent-mail-add.svg\",\r\n \"fluent-mail-alert-outline.svg\",\r\n \"fluent-mail-alert.svg\",\r\n \"fluent-mail-all-read-outline.svg\",\r\n \"fluent-mail-all-read.svg\",\r\n \"fluent-mail-arrow-clockwise.svg\",\r\n \"fluent-mail-arrow-double-back.svg\",\r\n \"fluent-mail-arrow-up-outline.svg\",\r\n \"fluent-mail-arrow-up.svg\",\r\n \"fluent-mail-attach-outline.svg\",\r\n \"fluent-mail-attach.svg\",\r\n \"fluent-mail-checkmark-outline.svg\",\r\n \"fluent-mail-checkmark.svg\",\r\n \"fluent-mail-clock-outline.svg\",\r\n \"fluent-mail-clock.svg\",\r\n \"fluent-mail-copy-outline.svg\",\r\n \"fluent-mail-copy.svg\",\r\n \"fluent-mail-dismiss-outline.svg\",\r\n \"fluent-mail-dismiss.svg\",\r\n \"fluent-mail-edit-outline.svg\",\r\n \"fluent-mail-edit.svg\",\r\n \"fluent-mail-error-outline.svg\",\r\n \"fluent-mail-error.svg\",\r\n \"fluent-mail-inbox-add-outline.svg\",\r\n \"fluent-mail-inbox-add.svg\",\r\n \"fluent-mail-inbox-all-outline.svg\",\r\n \"fluent-mail-inbox-all.svg\",\r\n \"fluent-mail-inbox-arrow-right.svg\",\r\n \"fluent-mail-inbox-arrow-up.svg\",\r\n \"fluent-mail-inbox-checkmark.svg\",\r\n \"fluent-mail-inbox-dismiss.svg\",\r\n \"fluent-mail-inbox-outline.svg\",\r\n \"fluent-mail-inbox.svg\",\r\n \"fluent-mail-link-outline.svg\",\r\n \"fluent-mail-link.svg\",\r\n \"fluent-mail-list-outline.svg\",\r\n \"fluent-mail-list.svg\",\r\n \"fluent-mail-multiple-outline.svg\",\r\n \"fluent-mail-multiple.svg\",\r\n \"fluent-mail-off-outline.svg\",\r\n \"fluent-mail-off.svg\",\r\n \"fluent-mail-open-person-outline.svg\",\r\n \"fluent-mail-open-person.svg\",\r\n \"fluent-mail-outline.svg\",\r\n \"fluent-mail-prohibited-outline.svg\",\r\n \"fluent-mail-prohibited.svg\",\r\n \"fluent-mail-read-multiple.svg\",\r\n \"fluent-mail-read-outline.svg\",\r\n \"fluent-mail-read.svg\",\r\n \"fluent-mail-rewind-outline.svg\",\r\n \"fluent-mail-rewind.svg\",\r\n \"fluent-mail-template-outline.svg\",\r\n \"fluent-mail-template.svg\",\r\n \"fluent-mail-unread-outline.svg\",\r\n \"fluent-mail-unread.svg\",\r\n \"fluent-mail-warning-outline.svg\",\r\n \"fluent-mail-warning.svg\",\r\n \"fluent-mail.svg\",\r\n \"fluent-map-drive-outline.svg\",\r\n \"fluent-map-drive.svg\",\r\n \"fluent-map-outline.svg\",\r\n \"fluent-map.svg\",\r\n \"fluent-match-app-layout-outline.svg\",\r\n \"fluent-match-app-layout.svg\",\r\n \"fluent-math-format-linear.svg\",\r\n \"fluent-math-format-professional.svg\",\r\n \"fluent-math-formula-outline.svg\",\r\n \"fluent-math-formula.svg\",\r\n \"fluent-math-symbols-outline.svg\",\r\n \"fluent-math-symbols.svg\",\r\n \"fluent-maximize-outline.svg\",\r\n \"fluent-maximize.svg\",\r\n \"fluent-meet-now-outline.svg\",\r\n \"fluent-meet-now.svg\",\r\n \"fluent-megaphone-circle-outline.svg\",\r\n \"fluent-megaphone-circle.svg\",\r\n \"fluent-megaphone-loud-outline.svg\",\r\n \"fluent-megaphone-loud.svg\",\r\n \"fluent-megaphone-off-outline.svg\",\r\n \"fluent-megaphone-off.svg\",\r\n \"fluent-megaphone-outline.svg\",\r\n \"fluent-megaphone.svg\",\r\n \"fluent-mention-outline.svg\",\r\n \"fluent-mention.svg\",\r\n \"fluent-merge-outline.svg\",\r\n \"fluent-merge.svg\",\r\n \"fluent-mic-off-outline.svg\",\r\n \"fluent-mic-off.svg\",\r\n \"fluent-mic-outline.svg\",\r\n \"fluent-mic-prohibited-outline.svg\",\r\n \"fluent-mic-prohibited.svg\",\r\n \"fluent-mic-pulse-off-outline.svg\",\r\n \"fluent-mic-pulse-off.svg\",\r\n \"fluent-mic-pulse-outline.svg\",\r\n \"fluent-mic-pulse.svg\",\r\n \"fluent-mic-record-outline.svg\",\r\n \"fluent-mic-record.svg\",\r\n \"fluent-mic-settings-outline.svg\",\r\n \"fluent-mic-settings.svg\",\r\n \"fluent-mic-sparkle-outline.svg\",\r\n \"fluent-mic-sparkle.svg\",\r\n \"fluent-mic.svg\",\r\n \"fluent-microscope-outline.svg\",\r\n \"fluent-microscope.svg\",\r\n \"fluent-midi-outline.svg\",\r\n \"fluent-midi.svg\",\r\n \"fluent-mobile-optimized-outline.svg\",\r\n \"fluent-mobile-optimized.svg\",\r\n \"fluent-mold-outline.svg\",\r\n \"fluent-mold.svg\",\r\n \"fluent-molecule-outline.svg\",\r\n \"fluent-molecule.svg\",\r\n \"fluent-money-calculator-outline.svg\",\r\n \"fluent-money-calculator.svg\",\r\n \"fluent-money-dismiss-outline.svg\",\r\n \"fluent-money-dismiss.svg\",\r\n \"fluent-money-hand-outline.svg\",\r\n \"fluent-money-hand.svg\",\r\n \"fluent-money-off-outline.svg\",\r\n \"fluent-money-off.svg\",\r\n \"fluent-money-outline.svg\",\r\n \"fluent-money-settings-outline.svg\",\r\n \"fluent-money-settings.svg\",\r\n \"fluent-money.svg\",\r\n \"fluent-more-circle-outline.svg\",\r\n \"fluent-more-circle.svg\",\r\n \"fluent-more-horizontal-outline.svg\",\r\n \"fluent-more-horizontal.svg\",\r\n \"fluent-more-vertical-outline.svg\",\r\n \"fluent-more-vertical.svg\",\r\n \"fluent-mountain-location-bottom.svg\",\r\n \"fluent-mountain-location-top.svg\",\r\n \"fluent-mountain-trail-outline.svg\",\r\n \"fluent-mountain-trail.svg\",\r\n \"fluent-movies-and-tv-outline.svg\",\r\n \"fluent-movies-and-tv.svg\",\r\n \"fluent-multiplier-1-2x-outline.svg\",\r\n \"fluent-multiplier-1-2x.svg\",\r\n \"fluent-multiplier-1-5x-outline.svg\",\r\n \"fluent-multiplier-1-5x.svg\",\r\n \"fluent-multiplier-1-8x-outline.svg\",\r\n \"fluent-multiplier-1-8x.svg\",\r\n \"fluent-multiplier-1x-outline.svg\",\r\n \"fluent-multiplier-1x.svg\",\r\n \"fluent-multiplier-2x-outline.svg\",\r\n \"fluent-multiplier-2x.svg\",\r\n \"fluent-multiplier-5x-outline.svg\",\r\n \"fluent-multiplier-5x.svg\",\r\n \"fluent-multiselect-ltr-outline.svg\",\r\n \"fluent-multiselect-ltr.svg\",\r\n \"fluent-multiselect-rtl-outline.svg\",\r\n \"fluent-multiselect-rtl.svg\",\r\n \"fluent-music-note-1-outline.svg\",\r\n \"fluent-music-note-1.svg\",\r\n \"fluent-music-note-2-outline.svg\",\r\n \"fluent-music-note-2.svg\",\r\n \"fluent-music-note-off-1-outline.svg\",\r\n \"fluent-music-note-off-1.svg\",\r\n \"fluent-music-note-off-2-outline.svg\",\r\n \"fluent-music-note-off-2.svg\",\r\n \"fluent-my-location-outline.svg\",\r\n \"fluent-my-location.svg\",\r\n \"fluent-navigation-outline.svg\",\r\n \"fluent-navigation-unread-outline.svg\",\r\n \"fluent-navigation-unread.svg\",\r\n \"fluent-navigation.svg\",\r\n \"fluent-network-check-outline.svg\",\r\n \"fluent-network-check.svg\",\r\n \"fluent-new-outline.svg\",\r\n \"fluent-new.svg\",\r\n \"fluent-news-outline.svg\",\r\n \"fluent-news.svg\",\r\n \"fluent-next-frame-outline.svg\",\r\n \"fluent-next-frame.svg\",\r\n \"fluent-next-outline.svg\",\r\n \"fluent-next.svg\",\r\n \"fluent-note-add-outline.svg\",\r\n \"fluent-note-add.svg\",\r\n \"fluent-note-edit-outline.svg\",\r\n \"fluent-note-edit.svg\",\r\n \"fluent-note-outline.svg\",\r\n \"fluent-note.svg\",\r\n \"fluent-notebook-add-outline.svg\",\r\n \"fluent-notebook-add.svg\",\r\n \"fluent-notebook-error-outline.svg\",\r\n \"fluent-notebook-error.svg\",\r\n \"fluent-notebook-lightning.svg\",\r\n \"fluent-notebook-outline.svg\",\r\n \"fluent-notebook-question-mark.svg\",\r\n \"fluent-notebook-section-outline.svg\",\r\n \"fluent-notebook-section.svg\",\r\n \"fluent-notebook-subsection.svg\",\r\n \"fluent-notebook-sync-outline.svg\",\r\n \"fluent-notebook-sync.svg\",\r\n \"fluent-notebook.svg\",\r\n \"fluent-notepad-outline.svg\",\r\n \"fluent-notepad-person-outline.svg\",\r\n \"fluent-notepad-person.svg\",\r\n \"fluent-notepad-sparkle-outline.svg\",\r\n \"fluent-notepad-sparkle.svg\",\r\n \"fluent-notepad.svg\",\r\n \"fluent-number-circle-0-outline.svg\",\r\n \"fluent-number-circle-0.svg\",\r\n \"fluent-number-circle-1-outline.svg\",\r\n \"fluent-number-circle-1.svg\",\r\n \"fluent-number-circle-2-outline.svg\",\r\n \"fluent-number-circle-2.svg\",\r\n \"fluent-number-circle-3-outline.svg\",\r\n \"fluent-number-circle-3.svg\",\r\n \"fluent-number-circle-4-outline.svg\",\r\n \"fluent-number-circle-4.svg\",\r\n \"fluent-number-circle-5-outline.svg\",\r\n \"fluent-number-circle-5.svg\",\r\n \"fluent-number-circle-6-outline.svg\",\r\n \"fluent-number-circle-6.svg\",\r\n \"fluent-number-circle-7-outline.svg\",\r\n \"fluent-number-circle-7.svg\",\r\n \"fluent-number-circle-8-outline.svg\",\r\n \"fluent-number-circle-8.svg\",\r\n \"fluent-number-circle-9-outline.svg\",\r\n \"fluent-number-circle-9.svg\",\r\n \"fluent-number-row-outline.svg\",\r\n \"fluent-number-row.svg\",\r\n \"fluent-number-symbol-dismiss.svg\",\r\n \"fluent-number-symbol-outline.svg\",\r\n \"fluent-number-symbol-square.svg\",\r\n \"fluent-number-symbol.svg\",\r\n \"fluent-open-folder-outline.svg\",\r\n \"fluent-open-folder.svg\",\r\n \"fluent-open-off-outline.svg\",\r\n \"fluent-open-off.svg\",\r\n \"fluent-open-outline.svg\",\r\n \"fluent-open.svg\",\r\n \"fluent-options-outline.svg\",\r\n \"fluent-options.svg\",\r\n \"fluent-organization-horizontal.svg\",\r\n \"fluent-organization-outline.svg\",\r\n \"fluent-organization.svg\",\r\n \"fluent-orientation-outline.svg\",\r\n \"fluent-orientation.svg\",\r\n \"fluent-oval-outline.svg\",\r\n \"fluent-oval.svg\",\r\n \"fluent-oven-outline.svg\",\r\n \"fluent-oven.svg\",\r\n \"fluent-padding-down-outline.svg\",\r\n \"fluent-padding-down.svg\",\r\n \"fluent-padding-left-outline.svg\",\r\n \"fluent-padding-left.svg\",\r\n \"fluent-padding-right-outline.svg\",\r\n \"fluent-padding-right.svg\",\r\n \"fluent-padding-top-outline.svg\",\r\n \"fluent-padding-top.svg\",\r\n \"fluent-page-fit-outline.svg\",\r\n \"fluent-page-fit.svg\",\r\n \"fluent-paint-brush-arrow-down.svg\",\r\n \"fluent-paint-brush-arrow-up.svg\",\r\n \"fluent-paint-brush-outline.svg\",\r\n \"fluent-paint-brush-sparkle.svg\",\r\n \"fluent-paint-brush-subtract.svg\",\r\n \"fluent-paint-brush.svg\",\r\n \"fluent-paint-bucket-outline.svg\",\r\n \"fluent-paint-bucket.svg\",\r\n \"fluent-pair-outline.svg\",\r\n \"fluent-pair.svg\",\r\n \"fluent-panel-left-add-outline.svg\",\r\n \"fluent-panel-left-add.svg\",\r\n \"fluent-panel-left-contract.svg\",\r\n \"fluent-panel-left-expand-outline.svg\",\r\n \"fluent-panel-left-expand.svg\",\r\n \"fluent-panel-left-focus-right.svg\",\r\n \"fluent-panel-left-header-add.svg\",\r\n \"fluent-panel-left-header-key.svg\",\r\n \"fluent-panel-left-header-outline.svg\",\r\n \"fluent-panel-left-header.svg\",\r\n \"fluent-panel-left-key-outline.svg\",\r\n \"fluent-panel-left-key.svg\",\r\n \"fluent-panel-left-outline.svg\",\r\n \"fluent-panel-left-text-add.svg\",\r\n \"fluent-panel-left-text-dismiss.svg\",\r\n \"fluent-panel-left-text-outline.svg\",\r\n \"fluent-panel-left-text.svg\",\r\n \"fluent-panel-left.svg\",\r\n \"fluent-panel-right-contract.svg\",\r\n \"fluent-panel-right-cursor.svg\",\r\n \"fluent-panel-right-gallery.svg\",\r\n \"fluent-panel-right-outline.svg\",\r\n \"fluent-panel-right.svg\",\r\n \"fluent-panel-top-gallery-outline.svg\",\r\n \"fluent-panel-top-gallery.svg\",\r\n \"fluent-password-outline.svg\",\r\n \"fluent-password.svg\",\r\n \"fluent-patch-outline.svg\",\r\n \"fluent-patch.svg\",\r\n \"fluent-patient-outline.svg\",\r\n \"fluent-patient.svg\",\r\n \"fluent-pause-circle-outline.svg\",\r\n \"fluent-pause-circle.svg\",\r\n \"fluent-pause-outline.svg\",\r\n \"fluent-pause.svg\",\r\n \"fluent-payment-outline.svg\",\r\n \"fluent-payment-wireless-outline.svg\",\r\n \"fluent-payment-wireless.svg\",\r\n \"fluent-payment.svg\",\r\n \"fluent-pen-dismiss-outline.svg\",\r\n \"fluent-pen-dismiss.svg\",\r\n \"fluent-pen-off-outline.svg\",\r\n \"fluent-pen-off.svg\",\r\n \"fluent-pen-outline.svg\",\r\n \"fluent-pen-prohibited-outline.svg\",\r\n \"fluent-pen-prohibited.svg\",\r\n \"fluent-pen-sparkle-outline.svg\",\r\n \"fluent-pen-sparkle.svg\",\r\n \"fluent-pen.svg\",\r\n \"fluent-people-add-outline.svg\",\r\n \"fluent-people-add.svg\",\r\n \"fluent-people-audience-outline.svg\",\r\n \"fluent-people-audience.svg\",\r\n \"fluent-people-call-outline.svg\",\r\n \"fluent-people-call.svg\",\r\n \"fluent-people-chat-outline.svg\",\r\n \"fluent-people-chat.svg\",\r\n \"fluent-people-checkmark-outline.svg\",\r\n \"fluent-people-checkmark.svg\",\r\n \"fluent-people-community-add.svg\",\r\n \"fluent-people-community-outline.svg\",\r\n \"fluent-people-community.svg\",\r\n \"fluent-people-edit-outline.svg\",\r\n \"fluent-people-edit.svg\",\r\n \"fluent-people-error-outline.svg\",\r\n \"fluent-people-error.svg\",\r\n \"fluent-people-list-outline.svg\",\r\n \"fluent-people-list.svg\",\r\n \"fluent-people-lock-outline.svg\",\r\n \"fluent-people-lock.svg\",\r\n \"fluent-people-money-outline.svg\",\r\n \"fluent-people-money.svg\",\r\n \"fluent-people-outline.svg\",\r\n \"fluent-people-prohibited-outline.svg\",\r\n \"fluent-people-prohibited.svg\",\r\n \"fluent-people-queue-outline.svg\",\r\n \"fluent-people-queue.svg\",\r\n \"fluent-people-search-outline.svg\",\r\n \"fluent-people-search.svg\",\r\n \"fluent-people-settings-outline.svg\",\r\n \"fluent-people-settings.svg\",\r\n \"fluent-people-star-outline.svg\",\r\n \"fluent-people-star.svg\",\r\n \"fluent-people-subtract-outline.svg\",\r\n \"fluent-people-subtract.svg\",\r\n \"fluent-people-swap-outline.svg\",\r\n \"fluent-people-swap.svg\",\r\n \"fluent-people-team-add-outline.svg\",\r\n \"fluent-people-team-add.svg\",\r\n \"fluent-people-team-delete.svg\",\r\n \"fluent-people-team-outline.svg\",\r\n \"fluent-people-team-toolbox.svg\",\r\n \"fluent-people-team.svg\",\r\n \"fluent-people.svg\",\r\n \"fluent-person-accounts-outline.svg\",\r\n \"fluent-person-accounts.svg\",\r\n \"fluent-person-add-outline.svg\",\r\n \"fluent-person-add.svg\",\r\n \"fluent-person-alert-off-outline.svg\",\r\n \"fluent-person-alert-off.svg\",\r\n \"fluent-person-alert-outline.svg\",\r\n \"fluent-person-alert.svg\",\r\n \"fluent-person-arrow-back-outline.svg\",\r\n \"fluent-person-arrow-back.svg\",\r\n \"fluent-person-arrow-left-outline.svg\",\r\n \"fluent-person-arrow-left.svg\",\r\n \"fluent-person-arrow-right.svg\",\r\n \"fluent-person-available-outline.svg\",\r\n \"fluent-person-available.svg\",\r\n \"fluent-person-board-add-outline.svg\",\r\n \"fluent-person-board-add.svg\",\r\n \"fluent-person-board-outline.svg\",\r\n \"fluent-person-board.svg\",\r\n \"fluent-person-call-outline.svg\",\r\n \"fluent-person-call.svg\",\r\n \"fluent-person-chat-outline.svg\",\r\n \"fluent-person-chat.svg\",\r\n \"fluent-person-circle-outline.svg\",\r\n \"fluent-person-circle.svg\",\r\n \"fluent-person-clock-outline.svg\",\r\n \"fluent-person-clock.svg\",\r\n \"fluent-person-delete-outline.svg\",\r\n \"fluent-person-delete.svg\",\r\n \"fluent-person-edit-outline.svg\",\r\n \"fluent-person-edit.svg\",\r\n \"fluent-person-feedback-outline.svg\",\r\n \"fluent-person-feedback.svg\",\r\n \"fluent-person-heart-outline.svg\",\r\n \"fluent-person-heart.svg\",\r\n \"fluent-person-home-outline.svg\",\r\n \"fluent-person-home.svg\",\r\n \"fluent-person-info-outline.svg\",\r\n \"fluent-person-info.svg\",\r\n \"fluent-person-lightbulb-outline.svg\",\r\n \"fluent-person-lightbulb.svg\",\r\n \"fluent-person-link-outline.svg\",\r\n \"fluent-person-link.svg\",\r\n \"fluent-person-lock-outline.svg\",\r\n \"fluent-person-lock.svg\",\r\n \"fluent-person-mail-outline.svg\",\r\n \"fluent-person-mail.svg\",\r\n \"fluent-person-money-outline.svg\",\r\n \"fluent-person-money.svg\",\r\n \"fluent-person-note-outline.svg\",\r\n \"fluent-person-note.svg\",\r\n \"fluent-person-outline.svg\",\r\n \"fluent-person-passkey-outline.svg\",\r\n \"fluent-person-passkey.svg\",\r\n \"fluent-person-phone-outline.svg\",\r\n \"fluent-person-phone.svg\",\r\n \"fluent-person-pill-outline.svg\",\r\n \"fluent-person-pill.svg\",\r\n \"fluent-person-prohibited-outline.svg\",\r\n \"fluent-person-prohibited.svg\",\r\n \"fluent-person-question-mark.svg\",\r\n \"fluent-person-ribbon-outline.svg\",\r\n \"fluent-person-ribbon.svg\",\r\n \"fluent-person-search-outline.svg\",\r\n \"fluent-person-search.svg\",\r\n \"fluent-person-square-add-outline.svg\",\r\n \"fluent-person-square-add.svg\",\r\n \"fluent-person-square-checkmark.svg\",\r\n \"fluent-person-square-outline.svg\",\r\n \"fluent-person-square.svg\",\r\n \"fluent-person-star-outline.svg\",\r\n \"fluent-person-star.svg\",\r\n \"fluent-person-starburst-outline.svg\",\r\n \"fluent-person-starburst.svg\",\r\n \"fluent-person-subtract-outline.svg\",\r\n \"fluent-person-subtract.svg\",\r\n \"fluent-person-support-outline.svg\",\r\n \"fluent-person-support.svg\",\r\n \"fluent-person-swap-outline.svg\",\r\n \"fluent-person-swap.svg\",\r\n \"fluent-person-sync-outline.svg\",\r\n \"fluent-person-sync.svg\",\r\n \"fluent-person-tag-outline.svg\",\r\n \"fluent-person-tag.svg\",\r\n \"fluent-person-tentative-outline.svg\",\r\n \"fluent-person-tentative.svg\",\r\n \"fluent-person-voice-outline.svg\",\r\n \"fluent-person-voice.svg\",\r\n \"fluent-person-walking-outline.svg\",\r\n \"fluent-person-walking.svg\",\r\n \"fluent-person-warning-outline.svg\",\r\n \"fluent-person-warning.svg\",\r\n \"fluent-person.svg\",\r\n \"fluent-phone-add-outline.svg\",\r\n \"fluent-phone-add.svg\",\r\n \"fluent-phone-arrow-right-outline.svg\",\r\n \"fluent-phone-arrow-right.svg\",\r\n \"fluent-phone-briefcase-outline.svg\",\r\n \"fluent-phone-briefcase.svg\",\r\n \"fluent-phone-chat-outline.svg\",\r\n \"fluent-phone-chat.svg\",\r\n \"fluent-phone-desktop-outline.svg\",\r\n \"fluent-phone-desktop.svg\",\r\n \"fluent-phone-dismiss-outline.svg\",\r\n \"fluent-phone-dismiss.svg\",\r\n \"fluent-phone-edit-outline.svg\",\r\n \"fluent-phone-edit.svg\",\r\n \"fluent-phone-footer-arrow-down.svg\",\r\n \"fluent-phone-header-arrow-up.svg\",\r\n \"fluent-phone-key-outline.svg\",\r\n \"fluent-phone-key.svg\",\r\n \"fluent-phone-laptop-outline.svg\",\r\n \"fluent-phone-laptop.svg\",\r\n \"fluent-phone-link-setup-outline.svg\",\r\n \"fluent-phone-link-setup.svg\",\r\n \"fluent-phone-lock-outline.svg\",\r\n \"fluent-phone-lock.svg\",\r\n \"fluent-phone-multiple-outline.svg\",\r\n \"fluent-phone-multiple-settings.svg\",\r\n \"fluent-phone-multiple.svg\",\r\n \"fluent-phone-outline.svg\",\r\n \"fluent-phone-page-header-outline.svg\",\r\n \"fluent-phone-page-header.svg\",\r\n \"fluent-phone-pagination-outline.svg\",\r\n \"fluent-phone-pagination.svg\",\r\n \"fluent-phone-person-outline.svg\",\r\n \"fluent-phone-person.svg\",\r\n \"fluent-phone-screen-time-outline.svg\",\r\n \"fluent-phone-screen-time.svg\",\r\n \"fluent-phone-shake-outline.svg\",\r\n \"fluent-phone-shake.svg\",\r\n \"fluent-phone-span-in-outline.svg\",\r\n \"fluent-phone-span-in.svg\",\r\n \"fluent-phone-span-out-outline.svg\",\r\n \"fluent-phone-span-out.svg\",\r\n \"fluent-phone-speaker-outline.svg\",\r\n \"fluent-phone-speaker.svg\",\r\n \"fluent-phone-status-bar-outline.svg\",\r\n \"fluent-phone-status-bar.svg\",\r\n \"fluent-phone-subtract-outline.svg\",\r\n \"fluent-phone-subtract.svg\",\r\n \"fluent-phone-tablet-outline.svg\",\r\n \"fluent-phone-tablet.svg\",\r\n \"fluent-phone-update-checkmark.svg\",\r\n \"fluent-phone-update-outline.svg\",\r\n \"fluent-phone-update.svg\",\r\n \"fluent-phone-vertical-scroll.svg\",\r\n \"fluent-phone-vibrate-outline.svg\",\r\n \"fluent-phone-vibrate.svg\",\r\n \"fluent-phone.svg\",\r\n \"fluent-photo-filter-outline.svg\",\r\n \"fluent-photo-filter.svg\",\r\n \"fluent-pi-outline.svg\",\r\n \"fluent-pi.svg\",\r\n \"fluent-picture-in-picture-enter.svg\",\r\n \"fluent-picture-in-picture-exit.svg\",\r\n \"fluent-picture-in-picture.svg\",\r\n \"fluent-pill-outline.svg\",\r\n \"fluent-pill.svg\",\r\n \"fluent-pin-off-outline.svg\",\r\n \"fluent-pin-off.svg\",\r\n \"fluent-pin-outline.svg\",\r\n \"fluent-pin.svg\",\r\n \"fluent-pipeline-outline.svg\",\r\n \"fluent-pipeline.svg\",\r\n \"fluent-pivot-outline.svg\",\r\n \"fluent-pivot.svg\",\r\n \"fluent-plant-cattail-outline.svg\",\r\n \"fluent-plant-cattail.svg\",\r\n \"fluent-plant-grass-outline.svg\",\r\n \"fluent-plant-grass.svg\",\r\n \"fluent-plant-ragweed-outline.svg\",\r\n \"fluent-plant-ragweed.svg\",\r\n \"fluent-play-circle-hint-outline.svg\",\r\n \"fluent-play-circle-hint.svg\",\r\n \"fluent-play-circle-outline.svg\",\r\n \"fluent-play-circle-sparkle.svg\",\r\n \"fluent-play-circle.svg\",\r\n \"fluent-play-outline.svg\",\r\n \"fluent-play.svg\",\r\n \"fluent-plug-connected-outline.svg\",\r\n \"fluent-plug-connected-settings.svg\",\r\n \"fluent-plug-connected.svg\",\r\n \"fluent-plug-disconnected-outline.svg\",\r\n \"fluent-plug-disconnected.svg\",\r\n \"fluent-point-scan-outline.svg\",\r\n \"fluent-point-scan.svg\",\r\n \"fluent-poll-horizontal-outline.svg\",\r\n \"fluent-poll-horizontal.svg\",\r\n \"fluent-poll-off-outline.svg\",\r\n \"fluent-poll-off.svg\",\r\n \"fluent-poll-outline.svg\",\r\n \"fluent-poll.svg\",\r\n \"fluent-port-hdmi-outline.svg\",\r\n \"fluent-port-hdmi.svg\",\r\n \"fluent-port-micro-usb-outline.svg\",\r\n \"fluent-port-micro-usb.svg\",\r\n \"fluent-port-usb-a-outline.svg\",\r\n \"fluent-port-usb-a.svg\",\r\n \"fluent-port-usb-c-outline.svg\",\r\n \"fluent-port-usb-c.svg\",\r\n \"fluent-position-backward-outline.svg\",\r\n \"fluent-position-backward.svg\",\r\n \"fluent-position-forward-outline.svg\",\r\n \"fluent-position-forward.svg\",\r\n \"fluent-position-to-back-outline.svg\",\r\n \"fluent-position-to-back.svg\",\r\n \"fluent-position-to-front-outline.svg\",\r\n \"fluent-position-to-front.svg\",\r\n \"fluent-power-outline.svg\",\r\n \"fluent-power.svg\",\r\n \"fluent-predictions-outline.svg\",\r\n \"fluent-predictions.svg\",\r\n \"fluent-premium-outline.svg\",\r\n \"fluent-premium-person-outline.svg\",\r\n \"fluent-premium-person.svg\",\r\n \"fluent-premium.svg\",\r\n \"fluent-presence-available.svg\",\r\n \"fluent-presence-away-outline.svg\",\r\n \"fluent-presence-away.svg\",\r\n \"fluent-presence-blocked-outline.svg\",\r\n \"fluent-presence-busy.svg\",\r\n \"fluent-presence-dnd-outline.svg\",\r\n \"fluent-presence-dnd.svg\",\r\n \"fluent-presence-offline-outline.svg\",\r\n \"fluent-presence-oof-outline.svg\",\r\n \"fluent-presence-unknown-outline.svg\",\r\n \"fluent-presenter-off-outline.svg\",\r\n \"fluent-presenter-off.svg\",\r\n \"fluent-presenter-outline.svg\",\r\n \"fluent-presenter.svg\",\r\n \"fluent-preview-link-outline.svg\",\r\n \"fluent-preview-link.svg\",\r\n \"fluent-previous-frame-outline.svg\",\r\n \"fluent-previous-frame.svg\",\r\n \"fluent-previous-outline.svg\",\r\n \"fluent-previous.svg\",\r\n \"fluent-print-add-outline.svg\",\r\n \"fluent-print-add.svg\",\r\n \"fluent-print-outline.svg\",\r\n \"fluent-print.svg\",\r\n \"fluent-production-checkmark.svg\",\r\n \"fluent-production-outline.svg\",\r\n \"fluent-production.svg\",\r\n \"fluent-prohibited-multiple.svg\",\r\n \"fluent-prohibited-outline.svg\",\r\n \"fluent-prohibited.svg\",\r\n \"fluent-projection-screen-dismiss.svg\",\r\n \"fluent-projection-screen-outline.svg\",\r\n \"fluent-projection-screen-text.svg\",\r\n \"fluent-projection-screen.svg\",\r\n \"fluent-prompt-outline.svg\",\r\n \"fluent-prompt.svg\",\r\n \"fluent-protocol-handler-outline.svg\",\r\n \"fluent-protocol-handler.svg\",\r\n \"fluent-pulse-outline.svg\",\r\n \"fluent-pulse-square-outline.svg\",\r\n \"fluent-pulse-square.svg\",\r\n \"fluent-pulse.svg\",\r\n \"fluent-puzzle-cube-outline.svg\",\r\n \"fluent-puzzle-cube.svg\",\r\n \"fluent-puzzle-piece-outline.svg\",\r\n \"fluent-puzzle-piece.svg\",\r\n \"fluent-qr-code-outline.svg\",\r\n \"fluent-qr-code.svg\",\r\n \"fluent-question-circle-outline.svg\",\r\n \"fluent-question-circle.svg\",\r\n \"fluent-question-outline.svg\",\r\n \"fluent-question.svg\",\r\n \"fluent-quiz-new-outline.svg\",\r\n \"fluent-quiz-new.svg\",\r\n \"fluent-radio-button-outline.svg\",\r\n \"fluent-radio-button.svg\",\r\n \"fluent-rating-mature-outline.svg\",\r\n \"fluent-rating-mature.svg\",\r\n \"fluent-ratio-one-to-one-outline.svg\",\r\n \"fluent-ratio-one-to-one.svg\",\r\n \"fluent-re-order-dots-horizontal.svg\",\r\n \"fluent-re-order-dots-vertical.svg\",\r\n \"fluent-re-order-outline.svg\",\r\n \"fluent-re-order.svg\",\r\n \"fluent-read-aloud-outline.svg\",\r\n \"fluent-read-aloud.svg\",\r\n \"fluent-reading-list-add-outline.svg\",\r\n \"fluent-reading-list-add.svg\",\r\n \"fluent-reading-list-outline.svg\",\r\n \"fluent-reading-list.svg\",\r\n \"fluent-reading-mode-mobile.svg\",\r\n \"fluent-real-estate-outline.svg\",\r\n \"fluent-real-estate.svg\",\r\n \"fluent-receipt-add-outline.svg\",\r\n \"fluent-receipt-add.svg\",\r\n \"fluent-receipt-bag-outline.svg\",\r\n \"fluent-receipt-bag.svg\",\r\n \"fluent-receipt-cube-outline.svg\",\r\n \"fluent-receipt-cube.svg\",\r\n \"fluent-receipt-money-outline.svg\",\r\n \"fluent-receipt-money.svg\",\r\n \"fluent-receipt-outline.svg\",\r\n \"fluent-receipt-play-outline.svg\",\r\n \"fluent-receipt-play.svg\",\r\n \"fluent-receipt-sparkles-outline.svg\",\r\n \"fluent-receipt-sparkles.svg\",\r\n \"fluent-receipt.svg\",\r\n \"fluent-record-outline.svg\",\r\n \"fluent-record-stop-outline.svg\",\r\n \"fluent-record-stop.svg\",\r\n \"fluent-record.svg\",\r\n \"fluent-rectangle-landscape-sync.svg\",\r\n \"fluent-rectangle-landscape.svg\",\r\n \"fluent-remix-add-outline.svg\",\r\n \"fluent-remix-add.svg\",\r\n \"fluent-rename-outline.svg\",\r\n \"fluent-rename.svg\",\r\n \"fluent-replay-outline.svg\",\r\n \"fluent-replay.svg\",\r\n \"fluent-resize-image-outline.svg\",\r\n \"fluent-resize-image.svg\",\r\n \"fluent-resize-large-outline.svg\",\r\n \"fluent-resize-large.svg\",\r\n \"fluent-resize-outline.svg\",\r\n \"fluent-resize-small-outline.svg\",\r\n \"fluent-resize-small.svg\",\r\n \"fluent-resize-table-outline.svg\",\r\n \"fluent-resize-table.svg\",\r\n \"fluent-resize-video-outline.svg\",\r\n \"fluent-resize-video.svg\",\r\n \"fluent-resize.svg\",\r\n \"fluent-reward-outline.svg\",\r\n \"fluent-reward.svg\",\r\n \"fluent-rewind-outline.svg\",\r\n \"fluent-rewind.svg\",\r\n \"fluent-rhombus-outline.svg\",\r\n \"fluent-rhombus.svg\",\r\n \"fluent-ribbon-add-outline.svg\",\r\n \"fluent-ribbon-add.svg\",\r\n \"fluent-ribbon-off-outline.svg\",\r\n \"fluent-ribbon-off.svg\",\r\n \"fluent-ribbon-outline.svg\",\r\n \"fluent-ribbon-star-outline.svg\",\r\n \"fluent-ribbon-star.svg\",\r\n \"fluent-ribbon.svg\",\r\n \"fluent-road-cone-outline.svg\",\r\n \"fluent-road-cone.svg\",\r\n \"fluent-road-outline.svg\",\r\n \"fluent-road.svg\",\r\n \"fluent-rocket-outline.svg\",\r\n \"fluent-rocket.svg\",\r\n \"fluent-rotate-left-outline.svg\",\r\n \"fluent-rotate-left.svg\",\r\n \"fluent-rotate-right-outline.svg\",\r\n \"fluent-rotate-right.svg\",\r\n \"fluent-router-outline.svg\",\r\n \"fluent-router.svg\",\r\n \"fluent-row-triple-outline.svg\",\r\n \"fluent-row-triple.svg\",\r\n \"fluent-rss-outline.svg\",\r\n \"fluent-rss.svg\",\r\n \"fluent-ruler-outline.svg\",\r\n \"fluent-ruler.svg\",\r\n \"fluent-run-outline.svg\",\r\n \"fluent-run.svg\",\r\n \"fluent-sanitize-outline.svg\",\r\n \"fluent-sanitize.svg\",\r\n \"fluent-save-arrow-right-outline.svg\",\r\n \"fluent-save-arrow-right.svg\",\r\n \"fluent-save-copy-outline.svg\",\r\n \"fluent-save-copy.svg\",\r\n \"fluent-save-edit-outline.svg\",\r\n \"fluent-save-edit.svg\",\r\n \"fluent-save-multiple-outline.svg\",\r\n \"fluent-save-multiple.svg\",\r\n \"fluent-save-outline.svg\",\r\n \"fluent-save.svg\",\r\n \"fluent-savings-outline.svg\",\r\n \"fluent-savings.svg\",\r\n \"fluent-scale-fill-outline.svg\",\r\n \"fluent-scale-fill.svg\",\r\n \"fluent-scale-fit-outline.svg\",\r\n \"fluent-scale-fit.svg\",\r\n \"fluent-scales-outline.svg\",\r\n \"fluent-scales.svg\",\r\n \"fluent-scan-camera-outline.svg\",\r\n \"fluent-scan-camera.svg\",\r\n \"fluent-scan-dash-outline.svg\",\r\n \"fluent-scan-dash.svg\",\r\n \"fluent-scan-object-outline.svg\",\r\n \"fluent-scan-object.svg\",\r\n \"fluent-scan-outline.svg\",\r\n \"fluent-scan-person-outline.svg\",\r\n \"fluent-scan-person.svg\",\r\n \"fluent-scan-qr-code-outline.svg\",\r\n \"fluent-scan-qr-code.svg\",\r\n \"fluent-scan-table-outline.svg\",\r\n \"fluent-scan-table.svg\",\r\n \"fluent-scan-text-outline.svg\",\r\n \"fluent-scan-text.svg\",\r\n \"fluent-scan-thumb-up-off-outline.svg\",\r\n \"fluent-scan-thumb-up-off.svg\",\r\n \"fluent-scan-thumb-up-outline.svg\",\r\n \"fluent-scan-thumb-up.svg\",\r\n \"fluent-scan-type-checkmark.svg\",\r\n \"fluent-scan-type-off-outline.svg\",\r\n \"fluent-scan-type-off.svg\",\r\n \"fluent-scan-type-outline.svg\",\r\n \"fluent-scan-type.svg\",\r\n \"fluent-scan.svg\",\r\n \"fluent-scratchpad-outline.svg\",\r\n \"fluent-scratchpad.svg\",\r\n \"fluent-screen-search-outline.svg\",\r\n \"fluent-screen-search.svg\",\r\n \"fluent-screenshot-outline.svg\",\r\n \"fluent-screenshot-record-outline.svg\",\r\n \"fluent-screenshot-record.svg\",\r\n \"fluent-screenshot.svg\",\r\n \"fluent-script-outline.svg\",\r\n \"fluent-script.svg\",\r\n \"fluent-search-info-outline.svg\",\r\n \"fluent-search-info.svg\",\r\n \"fluent-search-outline.svg\",\r\n \"fluent-search-sparkle-outline.svg\",\r\n \"fluent-search-sparkle.svg\",\r\n \"fluent-search-square-outline.svg\",\r\n \"fluent-search-square.svg\",\r\n \"fluent-search-visual-outline.svg\",\r\n \"fluent-search-visual.svg\",\r\n \"fluent-search.svg\",\r\n \"fluent-seat-add-outline.svg\",\r\n \"fluent-seat-add.svg\",\r\n \"fluent-seat-outline.svg\",\r\n \"fluent-seat.svg\",\r\n \"fluent-select-all-off-outline.svg\",\r\n \"fluent-select-all-off.svg\",\r\n \"fluent-select-all-on-outline.svg\",\r\n \"fluent-select-all-on.svg\",\r\n \"fluent-select-object-outline.svg\",\r\n \"fluent-select-object-skew-edit.svg\",\r\n \"fluent-select-object-skew.svg\",\r\n \"fluent-select-object.svg\",\r\n \"fluent-send-beaker-outline.svg\",\r\n \"fluent-send-beaker.svg\",\r\n \"fluent-send-clock-outline.svg\",\r\n \"fluent-send-clock.svg\",\r\n \"fluent-send-copy-outline.svg\",\r\n \"fluent-send-copy.svg\",\r\n \"fluent-send-outline.svg\",\r\n \"fluent-send-person-outline.svg\",\r\n \"fluent-send-person.svg\",\r\n \"fluent-send.svg\",\r\n \"fluent-serial-port-outline.svg\",\r\n \"fluent-serial-port.svg\",\r\n \"fluent-server-link-outline.svg\",\r\n \"fluent-server-link.svg\",\r\n \"fluent-server-outline.svg\",\r\n \"fluent-server.svg\",\r\n \"fluent-service-bell-outline.svg\",\r\n \"fluent-service-bell.svg\",\r\n \"fluent-settings-chat-outline.svg\",\r\n \"fluent-settings-chat.svg\",\r\n \"fluent-settings-cog-multiple.svg\",\r\n \"fluent-settings-outline.svg\",\r\n \"fluent-settings.svg\",\r\n \"fluent-shape-exclude-outline.svg\",\r\n \"fluent-shape-exclude.svg\",\r\n \"fluent-shape-intersect-outline.svg\",\r\n \"fluent-shape-intersect.svg\",\r\n \"fluent-shape-organic-outline.svg\",\r\n \"fluent-shape-organic.svg\",\r\n \"fluent-shape-subtract-outline.svg\",\r\n \"fluent-shape-subtract.svg\",\r\n \"fluent-shape-union-outline.svg\",\r\n \"fluent-shape-union.svg\",\r\n \"fluent-shapes-outline.svg\",\r\n \"fluent-shapes.svg\",\r\n \"fluent-share-android-outline.svg\",\r\n \"fluent-share-android.svg\",\r\n \"fluent-share-close-tray-outline.svg\",\r\n \"fluent-share-close-tray.svg\",\r\n \"fluent-share-ios-outline.svg\",\r\n \"fluent-share-ios.svg\",\r\n \"fluent-share-multiple-outline.svg\",\r\n \"fluent-share-multiple.svg\",\r\n \"fluent-share-outline.svg\",\r\n \"fluent-share-screen-person-p.svg\",\r\n \"fluent-share-screen-person.svg\",\r\n \"fluent-share-screen-start.svg\",\r\n \"fluent-share-screen-stop-outline.svg\",\r\n \"fluent-share-screen-stop.svg\",\r\n \"fluent-share.svg\",\r\n \"fluent-shield-add-outline.svg\",\r\n \"fluent-shield-add.svg\",\r\n \"fluent-shield-badge-outline.svg\",\r\n \"fluent-shield-badge.svg\",\r\n \"fluent-shield-checkmark-outline.svg\",\r\n \"fluent-shield-checkmark.svg\",\r\n \"fluent-shield-dismiss-outline.svg\",\r\n \"fluent-shield-dismiss.svg\",\r\n \"fluent-shield-error-outline.svg\",\r\n \"fluent-shield-error.svg\",\r\n \"fluent-shield-globe-outline.svg\",\r\n \"fluent-shield-globe.svg\",\r\n \"fluent-shield-keyhole-outline.svg\",\r\n \"fluent-shield-keyhole.svg\",\r\n \"fluent-shield-lock-outline.svg\",\r\n \"fluent-shield-lock.svg\",\r\n \"fluent-shield-outline.svg\",\r\n \"fluent-shield-prohibited-outline.svg\",\r\n \"fluent-shield-prohibited.svg\",\r\n \"fluent-shield-question-outline.svg\",\r\n \"fluent-shield-question.svg\",\r\n \"fluent-shield-task-outline.svg\",\r\n \"fluent-shield-task.svg\",\r\n \"fluent-shield.svg\",\r\n \"fluent-shifts-30-minutes-outline.svg\",\r\n \"fluent-shifts-30-minutes.svg\",\r\n \"fluent-shifts-activity-outline.svg\",\r\n \"fluent-shifts-activity.svg\",\r\n \"fluent-shifts-add-outline.svg\",\r\n \"fluent-shifts-add.svg\",\r\n \"fluent-shifts-availability.svg\",\r\n \"fluent-shifts-checkmark-outline.svg\",\r\n \"fluent-shifts-checkmark.svg\",\r\n \"fluent-shifts-day-outline.svg\",\r\n \"fluent-shifts-day.svg\",\r\n \"fluent-shifts-open-outline.svg\",\r\n \"fluent-shifts-open.svg\",\r\n \"fluent-shifts-outline.svg\",\r\n \"fluent-shifts-prohibited-outline.svg\",\r\n \"fluent-shifts-prohibited.svg\",\r\n \"fluent-shifts-question-mark.svg\",\r\n \"fluent-shifts-team-outline.svg\",\r\n \"fluent-shifts-team.svg\",\r\n \"fluent-shifts.svg\",\r\n \"fluent-shopping-bag-add-outline.svg\",\r\n \"fluent-shopping-bag-add.svg\",\r\n \"fluent-shopping-bag-arrow-left.svg\",\r\n \"fluent-shopping-bag-dismiss.svg\",\r\n \"fluent-shopping-bag-outline.svg\",\r\n \"fluent-shopping-bag-pause.svg\",\r\n \"fluent-shopping-bag-percent.svg\",\r\n \"fluent-shopping-bag-play-outline.svg\",\r\n \"fluent-shopping-bag-play.svg\",\r\n \"fluent-shopping-bag-tag-outline.svg\",\r\n \"fluent-shopping-bag-tag.svg\",\r\n \"fluent-shopping-bag.svg\",\r\n \"fluent-shortpick-outline.svg\",\r\n \"fluent-shortpick.svg\",\r\n \"fluent-showerhead-outline.svg\",\r\n \"fluent-showerhead.svg\",\r\n \"fluent-sign-out-outline.svg\",\r\n \"fluent-sign-out.svg\",\r\n \"fluent-signature-outline.svg\",\r\n \"fluent-signature.svg\",\r\n \"fluent-sim-outline.svg\",\r\n \"fluent-sim.svg\",\r\n \"fluent-skip-back-10-outline.svg\",\r\n \"fluent-skip-back-10.svg\",\r\n \"fluent-skip-forward-10-outline.svg\",\r\n \"fluent-skip-forward-10.svg\",\r\n \"fluent-skip-forward-30-outline.svg\",\r\n \"fluent-skip-forward-30.svg\",\r\n \"fluent-skip-forward-tab-outline.svg\",\r\n \"fluent-skip-forward-tab.svg\",\r\n \"fluent-slash-forward-outline.svg\",\r\n \"fluent-slash-forward.svg\",\r\n \"fluent-sleep-outline.svg\",\r\n \"fluent-sleep.svg\",\r\n \"fluent-slide-add-outline.svg\",\r\n \"fluent-slide-add.svg\",\r\n \"fluent-slide-arrow-right-outline.svg\",\r\n \"fluent-slide-arrow-right.svg\",\r\n \"fluent-slide-content-outline.svg\",\r\n \"fluent-slide-content.svg\",\r\n \"fluent-slide-eraser-outline.svg\",\r\n \"fluent-slide-eraser.svg\",\r\n \"fluent-slide-grid-outline.svg\",\r\n \"fluent-slide-grid.svg\",\r\n \"fluent-slide-hide-outline.svg\",\r\n \"fluent-slide-hide.svg\",\r\n \"fluent-slide-layout-outline.svg\",\r\n \"fluent-slide-layout.svg\",\r\n \"fluent-slide-link-outline.svg\",\r\n \"fluent-slide-link.svg\",\r\n \"fluent-slide-microphone-outline.svg\",\r\n \"fluent-slide-microphone.svg\",\r\n \"fluent-slide-multiple-outline.svg\",\r\n \"fluent-slide-multiple-search.svg\",\r\n \"fluent-slide-multiple.svg\",\r\n \"fluent-slide-play-outline.svg\",\r\n \"fluent-slide-play.svg\",\r\n \"fluent-slide-record-outline.svg\",\r\n \"fluent-slide-record.svg\",\r\n \"fluent-slide-search-outline.svg\",\r\n \"fluent-slide-search.svg\",\r\n \"fluent-slide-settings-outline.svg\",\r\n \"fluent-slide-settings.svg\",\r\n \"fluent-slide-size-outline.svg\",\r\n \"fluent-slide-size.svg\",\r\n \"fluent-slide-text-call-outline.svg\",\r\n \"fluent-slide-text-call.svg\",\r\n \"fluent-slide-text-cursor-outline.svg\",\r\n \"fluent-slide-text-cursor.svg\",\r\n \"fluent-slide-text-edit-outline.svg\",\r\n \"fluent-slide-text-edit.svg\",\r\n \"fluent-slide-text-multiple.svg\",\r\n \"fluent-slide-text-outline.svg\",\r\n \"fluent-slide-text-person-outline.svg\",\r\n \"fluent-slide-text-person.svg\",\r\n \"fluent-slide-text-sparkle.svg\",\r\n \"fluent-slide-text.svg\",\r\n \"fluent-slide-transition-outline.svg\",\r\n \"fluent-slide-transition.svg\",\r\n \"fluent-smartwatch-dot-outline.svg\",\r\n \"fluent-smartwatch-dot.svg\",\r\n \"fluent-smartwatch-outline.svg\",\r\n \"fluent-smartwatch.svg\",\r\n \"fluent-snooze-outline.svg\",\r\n \"fluent-snooze.svg\",\r\n \"fluent-sound-source-outline.svg\",\r\n \"fluent-sound-source.svg\",\r\n \"fluent-sound-wave-circle-outline.svg\",\r\n \"fluent-sound-wave-circle.svg\",\r\n \"fluent-space-3d-outline.svg\",\r\n \"fluent-space-3d.svg\",\r\n \"fluent-spacebar-outline.svg\",\r\n \"fluent-spacebar.svg\",\r\n \"fluent-sparkle-circle-outline.svg\",\r\n \"fluent-sparkle-circle.svg\",\r\n \"fluent-sparkle-outline.svg\",\r\n \"fluent-sparkle.svg\",\r\n \"fluent-spatula-spoon-outline.svg\",\r\n \"fluent-spatula-spoon.svg\",\r\n \"fluent-speaker-0-outline.svg\",\r\n \"fluent-speaker-0.svg\",\r\n \"fluent-speaker-1-outline.svg\",\r\n \"fluent-speaker-1.svg\",\r\n \"fluent-speaker-2-outline.svg\",\r\n \"fluent-speaker-2.svg\",\r\n \"fluent-speaker-bluetooth-outline.svg\",\r\n \"fluent-speaker-bluetooth.svg\",\r\n \"fluent-speaker-box-outline.svg\",\r\n \"fluent-speaker-box.svg\",\r\n \"fluent-speaker-edit-outline.svg\",\r\n \"fluent-speaker-edit.svg\",\r\n \"fluent-speaker-mute-outline.svg\",\r\n \"fluent-speaker-mute.svg\",\r\n \"fluent-speaker-off-outline.svg\",\r\n \"fluent-speaker-off.svg\",\r\n \"fluent-speaker-settings-outline.svg\",\r\n \"fluent-speaker-settings.svg\",\r\n \"fluent-speaker-usb-outline.svg\",\r\n \"fluent-speaker-usb.svg\",\r\n \"fluent-split-horizontal-outline.svg\",\r\n \"fluent-split-horizontal.svg\",\r\n \"fluent-split-vertical-outline.svg\",\r\n \"fluent-split-vertical.svg\",\r\n \"fluent-sport-american-football.svg\",\r\n \"fluent-sport-baseball-outline.svg\",\r\n \"fluent-sport-baseball.svg\",\r\n \"fluent-sport-basketball-outline.svg\",\r\n \"fluent-sport-basketball.svg\",\r\n \"fluent-sport-hockey-outline.svg\",\r\n \"fluent-sport-hockey.svg\",\r\n \"fluent-sport-outline.svg\",\r\n \"fluent-sport-soccer-outline.svg\",\r\n \"fluent-sport-soccer.svg\",\r\n \"fluent-sport.svg\",\r\n \"fluent-square-arrow-forward.svg\",\r\n \"fluent-square-dovetail-joint.svg\",\r\n \"fluent-square-hint-apps-outline.svg\",\r\n \"fluent-square-hint-apps.svg\",\r\n \"fluent-square-hint-hexagon.svg\",\r\n \"fluent-square-hint-outline.svg\",\r\n \"fluent-square-hint-sparkles.svg\",\r\n \"fluent-square-hint.svg\",\r\n \"fluent-square-multiple-outline.svg\",\r\n \"fluent-square-multiple.svg\",\r\n \"fluent-square-outline.svg\",\r\n \"fluent-square.svg\",\r\n \"fluent-stack-add-outline.svg\",\r\n \"fluent-stack-add.svg\",\r\n \"fluent-stack-arrow-forward.svg\",\r\n \"fluent-stack-outline.svg\",\r\n \"fluent-stack-star-outline.svg\",\r\n \"fluent-stack-star.svg\",\r\n \"fluent-stack-vertical-outline.svg\",\r\n \"fluent-stack-vertical.svg\",\r\n \"fluent-stack.svg\",\r\n \"fluent-star-add-outline.svg\",\r\n \"fluent-star-add.svg\",\r\n \"fluent-star-arrow-back-outline.svg\",\r\n \"fluent-star-arrow-back.svg\",\r\n \"fluent-star-arrow-right-end.svg\",\r\n \"fluent-star-arrow-right-start.svg\",\r\n \"fluent-star-checkmark-outline.svg\",\r\n \"fluent-star-checkmark.svg\",\r\n \"fluent-star-dismiss-outline.svg\",\r\n \"fluent-star-dismiss.svg\",\r\n \"fluent-star-edit-outline.svg\",\r\n \"fluent-star-edit.svg\",\r\n \"fluent-star-emphasis-outline.svg\",\r\n \"fluent-star-emphasis.svg\",\r\n \"fluent-star-half-outline.svg\",\r\n \"fluent-star-half.svg\",\r\n \"fluent-star-line-horizontal-3.svg\",\r\n \"fluent-star-off-outline.svg\",\r\n \"fluent-star-off.svg\",\r\n \"fluent-star-one-quarter-outline.svg\",\r\n \"fluent-star-one-quarter.svg\",\r\n \"fluent-star-outline.svg\",\r\n \"fluent-star-prohibited-outline.svg\",\r\n \"fluent-star-prohibited.svg\",\r\n \"fluent-star-settings-outline.svg\",\r\n \"fluent-star-settings.svg\",\r\n \"fluent-star-three-quarter.svg\",\r\n \"fluent-star.svg\",\r\n \"fluent-status-outline.svg\",\r\n \"fluent-status.svg\",\r\n \"fluent-step-outline.svg\",\r\n \"fluent-step.svg\",\r\n \"fluent-steps-outline.svg\",\r\n \"fluent-steps.svg\",\r\n \"fluent-stethoscope-outline.svg\",\r\n \"fluent-stethoscope.svg\",\r\n \"fluent-sticker-add-outline.svg\",\r\n \"fluent-sticker-add.svg\",\r\n \"fluent-sticker-outline.svg\",\r\n \"fluent-sticker.svg\",\r\n \"fluent-stop-outline.svg\",\r\n \"fluent-stop.svg\",\r\n \"fluent-storage-outline.svg\",\r\n \"fluent-storage.svg\",\r\n \"fluent-store-microsoft-outline.svg\",\r\n \"fluent-store-microsoft.svg\",\r\n \"fluent-stream-outline.svg\",\r\n \"fluent-stream.svg\",\r\n \"fluent-street-sign-outline.svg\",\r\n \"fluent-street-sign.svg\",\r\n \"fluent-style-guide-outline.svg\",\r\n \"fluent-style-guide.svg\",\r\n \"fluent-sub-grid-outline.svg\",\r\n \"fluent-sub-grid.svg\",\r\n \"fluent-subtitles-outline.svg\",\r\n \"fluent-subtitles.svg\",\r\n \"fluent-subtract-circle-outline.svg\",\r\n \"fluent-subtract-circle.svg\",\r\n \"fluent-subtract-outline.svg\",\r\n \"fluent-subtract-parentheses.svg\",\r\n \"fluent-subtract-square-outline.svg\",\r\n \"fluent-subtract-square.svg\",\r\n \"fluent-subtract.svg\",\r\n \"fluent-surface-earbuds-outline.svg\",\r\n \"fluent-surface-earbuds.svg\",\r\n \"fluent-surface-hub-outline.svg\",\r\n \"fluent-surface-hub.svg\",\r\n \"fluent-swimming-pool-outline.svg\",\r\n \"fluent-swimming-pool.svg\",\r\n \"fluent-swipe-down-outline.svg\",\r\n \"fluent-swipe-down.svg\",\r\n \"fluent-swipe-right-outline.svg\",\r\n \"fluent-swipe-right.svg\",\r\n \"fluent-swipe-up-outline.svg\",\r\n \"fluent-swipe-up.svg\",\r\n \"fluent-symbols-outline.svg\",\r\n \"fluent-symbols.svg\",\r\n \"fluent-syringe-outline.svg\",\r\n \"fluent-syringe.svg\",\r\n \"fluent-system-outline.svg\",\r\n \"fluent-system.svg\",\r\n \"fluent-tab-add-outline.svg\",\r\n \"fluent-tab-add.svg\",\r\n \"fluent-tab-arrow-left-outline.svg\",\r\n \"fluent-tab-arrow-left.svg\",\r\n \"fluent-tab-desktop-bottom.svg\",\r\n \"fluent-tab-desktop-image-outline.svg\",\r\n \"fluent-tab-desktop-image.svg\",\r\n \"fluent-tab-desktop-link-outline.svg\",\r\n \"fluent-tab-desktop-link.svg\",\r\n \"fluent-tab-desktop-multiple.svg\",\r\n \"fluent-tab-desktop-outline.svg\",\r\n \"fluent-tab-desktop-search.svg\",\r\n \"fluent-tab-desktop.svg\",\r\n \"fluent-tab-group-outline.svg\",\r\n \"fluent-tab-group.svg\",\r\n \"fluent-tab-in-private-outline.svg\",\r\n \"fluent-tab-in-private.svg\",\r\n \"fluent-tab-inprivate-account.svg\",\r\n \"fluent-tab-outline.svg\",\r\n \"fluent-tab-prohibited-outline.svg\",\r\n \"fluent-tab-prohibited.svg\",\r\n \"fluent-tab-shield-dismiss.svg\",\r\n \"fluent-tab.svg\",\r\n \"fluent-table-add-outline.svg\",\r\n \"fluent-table-add.svg\",\r\n \"fluent-table-arrow-up-outline.svg\",\r\n \"fluent-table-arrow-up.svg\",\r\n \"fluent-table-bottom-row-outline.svg\",\r\n \"fluent-table-bottom-row.svg\",\r\n \"fluent-table-cell-edit-outline.svg\",\r\n \"fluent-table-cell-edit.svg\",\r\n \"fluent-table-cells-merge-outline.svg\",\r\n \"fluent-table-cells-merge.svg\",\r\n \"fluent-table-cells-split-outline.svg\",\r\n \"fluent-table-cells-split.svg\",\r\n \"fluent-table-column-top-bottom.svg\",\r\n \"fluent-table-cursor-outline.svg\",\r\n \"fluent-table-cursor.svg\",\r\n \"fluent-table-delete-column.svg\",\r\n \"fluent-table-delete-row-outline.svg\",\r\n \"fluent-table-delete-row.svg\",\r\n \"fluent-table-dismiss-outline.svg\",\r\n \"fluent-table-dismiss.svg\",\r\n \"fluent-table-edit-outline.svg\",\r\n \"fluent-table-edit.svg\",\r\n \"fluent-table-freeze-column.svg\",\r\n \"fluent-table-freeze-row-outline.svg\",\r\n \"fluent-table-freeze-row.svg\",\r\n \"fluent-table-insert-column.svg\",\r\n \"fluent-table-insert-row-outline.svg\",\r\n \"fluent-table-insert-row.svg\",\r\n \"fluent-table-lightning-outline.svg\",\r\n \"fluent-table-lightning.svg\",\r\n \"fluent-table-link-outline.svg\",\r\n \"fluent-table-link.svg\",\r\n \"fluent-table-lock-outline.svg\",\r\n \"fluent-table-lock.svg\",\r\n \"fluent-table-move-above-outline.svg\",\r\n \"fluent-table-move-above.svg\",\r\n \"fluent-table-move-below-outline.svg\",\r\n \"fluent-table-move-below.svg\",\r\n \"fluent-table-move-left-outline.svg\",\r\n \"fluent-table-move-left.svg\",\r\n \"fluent-table-move-right-outline.svg\",\r\n \"fluent-table-move-right.svg\",\r\n \"fluent-table-offset-add-outline.svg\",\r\n \"fluent-table-offset-add.svg\",\r\n \"fluent-table-offset-outline.svg\",\r\n \"fluent-table-offset-settings.svg\",\r\n \"fluent-table-offset.svg\",\r\n \"fluent-table-outline.svg\",\r\n \"fluent-table-resize-column.svg\",\r\n \"fluent-table-resize-row-outline.svg\",\r\n \"fluent-table-resize-row.svg\",\r\n \"fluent-table-settings-outline.svg\",\r\n \"fluent-table-settings.svg\",\r\n \"fluent-table-simple-checkmark.svg\",\r\n \"fluent-table-simple-exclude.svg\",\r\n \"fluent-table-simple-include.svg\",\r\n \"fluent-table-simple-multiple.svg\",\r\n \"fluent-table-simple-outline.svg\",\r\n \"fluent-table-simple.svg\",\r\n \"fluent-table-sparkle-outline.svg\",\r\n \"fluent-table-sparkle.svg\",\r\n \"fluent-table-stack-above-outline.svg\",\r\n \"fluent-table-stack-above.svg\",\r\n \"fluent-table-stack-below-outline.svg\",\r\n \"fluent-table-stack-below.svg\",\r\n \"fluent-table-stack-left-outline.svg\",\r\n \"fluent-table-stack-left.svg\",\r\n \"fluent-table-stack-right-outline.svg\",\r\n \"fluent-table-stack-right.svg\",\r\n \"fluent-table-switch-outline.svg\",\r\n \"fluent-table-switch.svg\",\r\n \"fluent-table.svg\",\r\n \"fluent-tablet-laptop-outline.svg\",\r\n \"fluent-tablet-laptop.svg\",\r\n \"fluent-tablet-outline.svg\",\r\n \"fluent-tablet-speaker-outline.svg\",\r\n \"fluent-tablet-speaker.svg\",\r\n \"fluent-tablet.svg\",\r\n \"fluent-tabs-outline.svg\",\r\n \"fluent-tabs.svg\",\r\n \"fluent-tag-dismiss-outline.svg\",\r\n \"fluent-tag-dismiss.svg\",\r\n \"fluent-tag-error-outline.svg\",\r\n \"fluent-tag-error.svg\",\r\n \"fluent-tag-lock-accent.svg\",\r\n \"fluent-tag-lock-outline.svg\",\r\n \"fluent-tag-lock.svg\",\r\n \"fluent-tag-multiple-outline.svg\",\r\n \"fluent-tag-multiple.svg\",\r\n \"fluent-tag-off-outline.svg\",\r\n \"fluent-tag-off.svg\",\r\n \"fluent-tag-outline.svg\",\r\n \"fluent-tag-question-mark-outline.svg\",\r\n \"fluent-tag-question-mark.svg\",\r\n \"fluent-tag-reset-outline.svg\",\r\n \"fluent-tag-reset.svg\",\r\n \"fluent-tag-search-outline.svg\",\r\n \"fluent-tag-search.svg\",\r\n \"fluent-tag.svg\",\r\n \"fluent-tap-double-outline.svg\",\r\n \"fluent-tap-double.svg\",\r\n \"fluent-tap-single-outline.svg\",\r\n \"fluent-tap-single.svg\",\r\n \"fluent-target-add-outline.svg\",\r\n \"fluent-target-add.svg\",\r\n \"fluent-target-arrow-outline.svg\",\r\n \"fluent-target-arrow.svg\",\r\n \"fluent-target-dismiss-outline.svg\",\r\n \"fluent-target-dismiss.svg\",\r\n \"fluent-target-edit-outline.svg\",\r\n \"fluent-target-edit.svg\",\r\n \"fluent-target-outline.svg\",\r\n \"fluent-target.svg\",\r\n \"fluent-task-list-add-outline.svg\",\r\n \"fluent-task-list-add.svg\",\r\n \"fluent-task-list-ltr-outline.svg\",\r\n \"fluent-task-list-ltr.svg\",\r\n \"fluent-task-list-rtl-outline.svg\",\r\n \"fluent-task-list-rtl.svg\",\r\n \"fluent-task-list-square-add.svg\",\r\n \"fluent-task-list-square-ltr.svg\",\r\n \"fluent-task-list-square-rtl.svg\",\r\n \"fluent-tasks-app-outline.svg\",\r\n \"fluent-tasks-app.svg\",\r\n \"fluent-teaching-outline.svg\",\r\n \"fluent-teaching.svg\",\r\n \"fluent-teardrop-bottom-right.svg\",\r\n \"fluent-teddy-outline.svg\",\r\n \"fluent-teddy.svg\",\r\n \"fluent-temperature-outline.svg\",\r\n \"fluent-temperature.svg\",\r\n \"fluent-tent-outline.svg\",\r\n \"fluent-tent.svg\",\r\n \"fluent-tetris-app-outline.svg\",\r\n \"fluent-tetris-app.svg\",\r\n \"fluent-text-add-space-after.svg\",\r\n \"fluent-text-add-space-before.svg\",\r\n \"fluent-text-add-t-outline.svg\",\r\n \"fluent-text-add-t.svg\",\r\n \"fluent-text-align-center-outline.svg\",\r\n \"fluent-text-align-center.svg\",\r\n \"fluent-text-align-distributed.svg\",\r\n \"fluent-text-align-justify-low-90.svg\",\r\n \"fluent-text-align-justify-low.svg\",\r\n \"fluent-text-align-justify.svg\",\r\n \"fluent-text-align-left-outline.svg\",\r\n \"fluent-text-align-left-rotate-90.svg\",\r\n \"fluent-text-align-left.svg\",\r\n \"fluent-text-align-right-outline.svg\",\r\n \"fluent-text-align-right.svg\",\r\n \"fluent-text-bold-outline.svg\",\r\n \"fluent-text-bold.svg\",\r\n \"fluent-text-box-settings-outline.svg\",\r\n \"fluent-text-box-settings.svg\",\r\n \"fluent-text-bullet-list-270.svg\",\r\n \"fluent-text-bullet-list-90.svg\",\r\n \"fluent-text-bullet-list-add.svg\",\r\n \"fluent-text-bullet-list-ltr-90.svg\",\r\n \"fluent-text-bullet-list-ltr.svg\",\r\n \"fluent-text-bullet-list-outline.svg\",\r\n \"fluent-text-bullet-list-rtl.svg\",\r\n \"fluent-text-bullet-list-square.svg\",\r\n \"fluent-text-bullet-list-tree.svg\",\r\n \"fluent-text-bullet-list.svg\",\r\n \"fluent-text-case-lowercase.svg\",\r\n \"fluent-text-case-title-outline.svg\",\r\n \"fluent-text-case-title.svg\",\r\n \"fluent-text-case-uppercase.svg\",\r\n \"fluent-text-change-case-outline.svg\",\r\n \"fluent-text-change-case.svg\",\r\n \"fluent-text-clear-formatting.svg\",\r\n \"fluent-text-collapse-outline.svg\",\r\n \"fluent-text-collapse.svg\",\r\n \"fluent-text-color-accent.svg\",\r\n \"fluent-text-color-outline.svg\",\r\n \"fluent-text-color.svg\",\r\n \"fluent-text-column-one-narrow.svg\",\r\n \"fluent-text-column-one-outline.svg\",\r\n \"fluent-text-column-one-wide.svg\",\r\n \"fluent-text-column-one.svg\",\r\n \"fluent-text-column-three-outline.svg\",\r\n \"fluent-text-column-three.svg\",\r\n \"fluent-text-column-two-left.svg\",\r\n \"fluent-text-column-two-outline.svg\",\r\n \"fluent-text-column-two-right.svg\",\r\n \"fluent-text-column-two.svg\",\r\n \"fluent-text-column-wide-outline.svg\",\r\n \"fluent-text-column-wide.svg\",\r\n \"fluent-text-continuous-outline.svg\",\r\n \"fluent-text-continuous.svg\",\r\n \"fluent-text-density-outline.svg\",\r\n \"fluent-text-density.svg\",\r\n \"fluent-text-description-ltr.svg\",\r\n \"fluent-text-description-outline.svg\",\r\n \"fluent-text-description-rtl.svg\",\r\n \"fluent-text-description.svg\",\r\n \"fluent-text-direction-vertical.svg\",\r\n \"fluent-text-edit-style-outline.svg\",\r\n \"fluent-text-edit-style.svg\",\r\n \"fluent-text-effects-outline.svg\",\r\n \"fluent-text-effects-sparkle.svg\",\r\n \"fluent-text-effects.svg\",\r\n \"fluent-text-expand-outline.svg\",\r\n \"fluent-text-expand.svg\",\r\n \"fluent-text-field-outline.svg\",\r\n \"fluent-text-field.svg\",\r\n \"fluent-text-first-line-outline.svg\",\r\n \"fluent-text-first-line.svg\",\r\n \"fluent-text-font-info-outline.svg\",\r\n \"fluent-text-font-info.svg\",\r\n \"fluent-text-font-outline.svg\",\r\n \"fluent-text-font-size-outline.svg\",\r\n \"fluent-text-font-size.svg\",\r\n \"fluent-text-font.svg\",\r\n \"fluent-text-footnote-outline.svg\",\r\n \"fluent-text-footnote.svg\",\r\n \"fluent-text-grammar-arrow-left.svg\",\r\n \"fluent-text-grammar-arrow-right.svg\",\r\n \"fluent-text-grammar-checkmark.svg\",\r\n \"fluent-text-grammar-dismiss.svg\",\r\n \"fluent-text-grammar-lightning.svg\",\r\n \"fluent-text-grammar-settings.svg\",\r\n \"fluent-text-grammar-wand-outline.svg\",\r\n \"fluent-text-grammar-wand.svg\",\r\n \"fluent-text-hanging-outline.svg\",\r\n \"fluent-text-hanging.svg\",\r\n \"fluent-text-header-1-lines-caret.svg\",\r\n \"fluent-text-header-1-lines.svg\",\r\n \"fluent-text-header-1-outline.svg\",\r\n \"fluent-text-header-1.svg\",\r\n \"fluent-text-header-2-lines-caret.svg\",\r\n \"fluent-text-header-2-lines.svg\",\r\n \"fluent-text-header-2-outline.svg\",\r\n \"fluent-text-header-2.svg\",\r\n \"fluent-text-header-3-lines-caret.svg\",\r\n \"fluent-text-header-3-lines.svg\",\r\n \"fluent-text-header-3-outline.svg\",\r\n \"fluent-text-header-3.svg\",\r\n \"fluent-text-indent-decrease-ltr.svg\",\r\n \"fluent-text-indent-decrease-rtl.svg\",\r\n \"fluent-text-indent-decrease.svg\",\r\n \"fluent-text-indent-increase-ltr.svg\",\r\n \"fluent-text-indent-increase-rtl.svg\",\r\n \"fluent-text-indent-increase.svg\",\r\n \"fluent-text-italic-outline.svg\",\r\n \"fluent-text-italic.svg\",\r\n \"fluent-text-line-spacing-outline.svg\",\r\n \"fluent-text-line-spacing.svg\",\r\n \"fluent-text-more-outline.svg\",\r\n \"fluent-text-more.svg\",\r\n \"fluent-text-number-format.svg\",\r\n \"fluent-text-number-list-ltr-90.svg\",\r\n \"fluent-text-number-list-ltr.svg\",\r\n \"fluent-text-number-list-rtl-90.svg\",\r\n \"fluent-text-number-list-rtl.svg\",\r\n \"fluent-text-paragraph-direction.svg\",\r\n \"fluent-text-paragraph-outline.svg\",\r\n \"fluent-text-paragraph.svg\",\r\n \"fluent-text-position-behind.svg\",\r\n \"fluent-text-position-front.svg\",\r\n \"fluent-text-position-line.svg\",\r\n \"fluent-text-position-square-left.svg\",\r\n \"fluent-text-position-square.svg\",\r\n \"fluent-text-position-through.svg\",\r\n \"fluent-text-position-tight.svg\",\r\n \"fluent-text-position-top-bottom.svg\",\r\n \"fluent-text-proofing-tools.svg\",\r\n \"fluent-text-quote-outline.svg\",\r\n \"fluent-text-quote.svg\",\r\n \"fluent-text-sort-ascending.svg\",\r\n \"fluent-text-sort-descending.svg\",\r\n \"fluent-text-strikethrough.svg\",\r\n \"fluent-text-subscript-outline.svg\",\r\n \"fluent-text-subscript.svg\",\r\n \"fluent-text-superscript-outline.svg\",\r\n \"fluent-text-superscript.svg\",\r\n \"fluent-text-t-outline.svg\",\r\n \"fluent-text-t.svg\",\r\n \"fluent-text-underline-double.svg\",\r\n \"fluent-text-underline-outline.svg\",\r\n \"fluent-text-underline.svg\",\r\n \"fluent-text-word-count-outline.svg\",\r\n \"fluent-text-word-count.svg\",\r\n \"fluent-text-wrap-off-outline.svg\",\r\n \"fluent-text-wrap-off.svg\",\r\n \"fluent-text-wrap-outline.svg\",\r\n \"fluent-text-wrap.svg\",\r\n \"fluent-textbox-align-bottom-left.svg\",\r\n \"fluent-textbox-align-bottom.svg\",\r\n \"fluent-textbox-align-center.svg\",\r\n \"fluent-textbox-align-middle-left.svg\",\r\n \"fluent-textbox-align-middle.svg\",\r\n \"fluent-textbox-align-top-center.svg\",\r\n \"fluent-textbox-align-top-left.svg\",\r\n \"fluent-textbox-align-top-outline.svg\",\r\n \"fluent-textbox-align-top-right.svg\",\r\n \"fluent-textbox-align-top.svg\",\r\n \"fluent-textbox-more-outline.svg\",\r\n \"fluent-textbox-more.svg\",\r\n \"fluent-textbox-outline.svg\",\r\n \"fluent-textbox-rotate-90-outline.svg\",\r\n \"fluent-textbox-rotate-90.svg\",\r\n \"fluent-textbox-settings-outline.svg\",\r\n \"fluent-textbox-settings.svg\",\r\n \"fluent-textbox.svg\",\r\n \"fluent-thinking-outline.svg\",\r\n \"fluent-thinking.svg\",\r\n \"fluent-thumb-dislike-outline.svg\",\r\n \"fluent-thumb-dislike.svg\",\r\n \"fluent-thumb-like-dislike.svg\",\r\n \"fluent-thumb-like-outline.svg\",\r\n \"fluent-thumb-like.svg\",\r\n \"fluent-ticket-diagonal-outline.svg\",\r\n \"fluent-ticket-diagonal.svg\",\r\n \"fluent-ticket-horizontal-outline.svg\",\r\n \"fluent-ticket-horizontal.svg\",\r\n \"fluent-time-and-weather-outline.svg\",\r\n \"fluent-time-and-weather.svg\",\r\n \"fluent-time-picker-outline.svg\",\r\n \"fluent-time-picker.svg\",\r\n \"fluent-timeline-outline.svg\",\r\n \"fluent-timeline.svg\",\r\n \"fluent-timer-10-outline.svg\",\r\n \"fluent-timer-10.svg\",\r\n \"fluent-timer-2-outline.svg\",\r\n \"fluent-timer-2.svg\",\r\n \"fluent-timer-3-outline.svg\",\r\n \"fluent-timer-3.svg\",\r\n \"fluent-timer-off-outline.svg\",\r\n \"fluent-timer-off.svg\",\r\n \"fluent-timer-outline.svg\",\r\n \"fluent-timer.svg\",\r\n \"fluent-toggle-left-outline.svg\",\r\n \"fluent-toggle-left.svg\",\r\n \"fluent-toggle-multiple-outline.svg\",\r\n \"fluent-toggle-multiple.svg\",\r\n \"fluent-toggle-right-outline.svg\",\r\n \"fluent-toggle-right.svg\",\r\n \"fluent-toolbox-outline.svg\",\r\n \"fluent-toolbox.svg\",\r\n \"fluent-tooltip-quote-outline.svg\",\r\n \"fluent-tooltip-quote.svg\",\r\n \"fluent-top-speed-outline.svg\",\r\n \"fluent-top-speed.svg\",\r\n \"fluent-translate-auto-outline.svg\",\r\n \"fluent-translate-auto.svg\",\r\n \"fluent-translate-off-outline.svg\",\r\n \"fluent-translate-off.svg\",\r\n \"fluent-translate-outline.svg\",\r\n \"fluent-translate.svg\",\r\n \"fluent-transmission-outline.svg\",\r\n \"fluent-transmission.svg\",\r\n \"fluent-transparency-square.svg\",\r\n \"fluent-tray-item-add-outline.svg\",\r\n \"fluent-tray-item-add.svg\",\r\n \"fluent-tray-item-remove-outline.svg\",\r\n \"fluent-tray-item-remove.svg\",\r\n \"fluent-tree-deciduous-outline.svg\",\r\n \"fluent-tree-deciduous.svg\",\r\n \"fluent-triangle-down-outline.svg\",\r\n \"fluent-triangle-down.svg\",\r\n \"fluent-triangle-outline.svg\",\r\n \"fluent-triangle.svg\",\r\n \"fluent-trophy-lock-outline.svg\",\r\n \"fluent-trophy-lock.svg\",\r\n \"fluent-trophy-off-outline.svg\",\r\n \"fluent-trophy-off.svg\",\r\n \"fluent-trophy-outline.svg\",\r\n \"fluent-trophy.svg\",\r\n \"fluent-tv-outline.svg\",\r\n \"fluent-tv-usb-outline.svg\",\r\n \"fluent-tv-usb.svg\",\r\n \"fluent-tv.svg\",\r\n \"fluent-umbrella-outline.svg\",\r\n \"fluent-umbrella.svg\",\r\n \"fluent-uninstall-app-outline.svg\",\r\n \"fluent-uninstall-app.svg\",\r\n \"fluent-usb-plug-outline.svg\",\r\n \"fluent-usb-plug.svg\",\r\n \"fluent-usb-stick-outline.svg\",\r\n \"fluent-usb-stick.svg\",\r\n \"fluent-vault-outline.svg\",\r\n \"fluent-vault.svg\",\r\n \"fluent-vehicle-bicycle-outline.svg\",\r\n \"fluent-vehicle-bicycle.svg\",\r\n \"fluent-vehicle-bus-outline.svg\",\r\n \"fluent-vehicle-bus.svg\",\r\n \"fluent-vehicle-cab-outline.svg\",\r\n \"fluent-vehicle-cab.svg\",\r\n \"fluent-vehicle-cable-car-outline.svg\",\r\n \"fluent-vehicle-cable-car.svg\",\r\n \"fluent-vehicle-car-collision.svg\",\r\n \"fluent-vehicle-car-outline.svg\",\r\n \"fluent-vehicle-car-parking.svg\",\r\n \"fluent-vehicle-car-profile-ltr.svg\",\r\n \"fluent-vehicle-car-profile-rtl.svg\",\r\n \"fluent-vehicle-car-profile.svg\",\r\n \"fluent-vehicle-car.svg\",\r\n \"fluent-vehicle-motorcycle.svg\",\r\n \"fluent-vehicle-ship-outline.svg\",\r\n \"fluent-vehicle-ship.svg\",\r\n \"fluent-vehicle-subway-clock.svg\",\r\n \"fluent-vehicle-subway-outline.svg\",\r\n \"fluent-vehicle-subway.svg\",\r\n \"fluent-vehicle-tractor-outline.svg\",\r\n \"fluent-vehicle-tractor.svg\",\r\n \"fluent-vehicle-truck-bag-outline.svg\",\r\n \"fluent-vehicle-truck-bag.svg\",\r\n \"fluent-vehicle-truck-cube.svg\",\r\n \"fluent-vehicle-truck-outline.svg\",\r\n \"fluent-vehicle-truck-profile.svg\",\r\n \"fluent-vehicle-truck.svg\",\r\n \"fluent-video-360-outline.svg\",\r\n \"fluent-video-360.svg\",\r\n \"fluent-video-add-outline.svg\",\r\n \"fluent-video-add.svg\",\r\n \"fluent-video-background-effect.svg\",\r\n \"fluent-video-chat-outline.svg\",\r\n \"fluent-video-chat.svg\",\r\n \"fluent-video-clip-multiple.svg\",\r\n \"fluent-video-clip-off-outline.svg\",\r\n \"fluent-video-clip-off.svg\",\r\n \"fluent-video-clip-optimize.svg\",\r\n \"fluent-video-clip-outline.svg\",\r\n \"fluent-video-clip-wand-outline.svg\",\r\n \"fluent-video-clip-wand.svg\",\r\n \"fluent-video-clip.svg\",\r\n \"fluent-video-link-outline.svg\",\r\n \"fluent-video-link.svg\",\r\n \"fluent-video-off-outline.svg\",\r\n \"fluent-video-off.svg\",\r\n \"fluent-video-outline.svg\",\r\n \"fluent-video-person-call-outline.svg\",\r\n \"fluent-video-person-call.svg\",\r\n \"fluent-video-person-clock.svg\",\r\n \"fluent-video-person-off-outline.svg\",\r\n \"fluent-video-person-off.svg\",\r\n \"fluent-video-person-outline.svg\",\r\n \"fluent-video-person-pulse.svg\",\r\n \"fluent-video-person-sparkle-off.svg\",\r\n \"fluent-video-person-sparkle.svg\",\r\n \"fluent-video-person-star-off.svg\",\r\n \"fluent-video-person-star-outline.svg\",\r\n \"fluent-video-person-star.svg\",\r\n \"fluent-video-person.svg\",\r\n \"fluent-video-play-pause-outline.svg\",\r\n \"fluent-video-play-pause.svg\",\r\n \"fluent-video-prohibited-outline.svg\",\r\n \"fluent-video-prohibited.svg\",\r\n \"fluent-video-security-outline.svg\",\r\n \"fluent-video-security.svg\",\r\n \"fluent-video-switch-outline.svg\",\r\n \"fluent-video-switch.svg\",\r\n \"fluent-video.svg\",\r\n \"fluent-view-desktop-mobile.svg\",\r\n \"fluent-view-desktop-outline.svg\",\r\n \"fluent-view-desktop.svg\",\r\n \"fluent-voicemail-outline.svg\",\r\n \"fluent-voicemail-shield-outline.svg\",\r\n \"fluent-voicemail-shield.svg\",\r\n \"fluent-voicemail.svg\",\r\n \"fluent-vote-outline.svg\",\r\n \"fluent-vote.svg\",\r\n \"fluent-walkie-talkie-outline.svg\",\r\n \"fluent-walkie-talkie.svg\",\r\n \"fluent-wallet-credit-card.svg\",\r\n \"fluent-wallet-outline.svg\",\r\n \"fluent-wallet.svg\",\r\n \"fluent-wallpaper-outline.svg\",\r\n \"fluent-wallpaper.svg\",\r\n \"fluent-wand-outline.svg\",\r\n \"fluent-wand.svg\",\r\n \"fluent-warning-lock-open-outline.svg\",\r\n \"fluent-warning-lock-open.svg\",\r\n \"fluent-warning-outline.svg\",\r\n \"fluent-warning.svg\",\r\n \"fluent-washer-outline.svg\",\r\n \"fluent-washer.svg\",\r\n \"fluent-water-outline.svg\",\r\n \"fluent-water.svg\",\r\n \"fluent-weather-blowing-snow.svg\",\r\n \"fluent-weather-cloudy-outline.svg\",\r\n \"fluent-weather-cloudy.svg\",\r\n \"fluent-weather-drizzle-outline.svg\",\r\n \"fluent-weather-drizzle.svg\",\r\n \"fluent-weather-duststorm-outline.svg\",\r\n \"fluent-weather-duststorm.svg\",\r\n \"fluent-weather-fog-outline.svg\",\r\n \"fluent-weather-fog.svg\",\r\n \"fluent-weather-hail-day-outline.svg\",\r\n \"fluent-weather-hail-day.svg\",\r\n \"fluent-weather-hail-night.svg\",\r\n \"fluent-weather-haze-outline.svg\",\r\n \"fluent-weather-haze.svg\",\r\n \"fluent-weather-moon-off-outline.svg\",\r\n \"fluent-weather-moon-off.svg\",\r\n \"fluent-weather-moon-outline.svg\",\r\n \"fluent-weather-moon.svg\",\r\n \"fluent-weather-partly-cloudy-day.svg\",\r\n \"fluent-weather-rain-outline.svg\",\r\n \"fluent-weather-rain-showers-day.svg\",\r\n \"fluent-weather-rain-snow-outline.svg\",\r\n \"fluent-weather-rain-snow.svg\",\r\n \"fluent-weather-rain.svg\",\r\n \"fluent-weather-snow-outline.svg\",\r\n \"fluent-weather-snow-shower-day.svg\",\r\n \"fluent-weather-snow-shower-night.svg\",\r\n \"fluent-weather-snow.svg\",\r\n \"fluent-weather-snowflake-outline.svg\",\r\n \"fluent-weather-snowflake.svg\",\r\n \"fluent-weather-squalls-outline.svg\",\r\n \"fluent-weather-squalls.svg\",\r\n \"fluent-weather-sunny-high.svg\",\r\n \"fluent-weather-sunny-low-outline.svg\",\r\n \"fluent-weather-sunny-low.svg\",\r\n \"fluent-weather-sunny-outline.svg\",\r\n \"fluent-weather-sunny.svg\",\r\n \"fluent-weather-thunderstorm.svg\",\r\n \"fluent-web-asset-outline.svg\",\r\n \"fluent-web-asset.svg\",\r\n \"fluent-whiteboard-off-outline.svg\",\r\n \"fluent-whiteboard-off.svg\",\r\n \"fluent-whiteboard-outline.svg\",\r\n \"fluent-whiteboard.svg\",\r\n \"fluent-wifi-1-outline.svg\",\r\n \"fluent-wifi-1.svg\",\r\n \"fluent-wifi-2-outline.svg\",\r\n \"fluent-wifi-2.svg\",\r\n \"fluent-wifi-3-outline.svg\",\r\n \"fluent-wifi-3.svg\",\r\n \"fluent-wifi-4-outline.svg\",\r\n \"fluent-wifi-4.svg\",\r\n \"fluent-wifi-lock-outline.svg\",\r\n \"fluent-wifi-lock.svg\",\r\n \"fluent-wifi-off-outline.svg\",\r\n \"fluent-wifi-off.svg\",\r\n \"fluent-wifi-warning-outline.svg\",\r\n \"fluent-wifi-warning.svg\",\r\n \"fluent-window-ad-outline.svg\",\r\n \"fluent-window-ad.svg\",\r\n \"fluent-window-apps-outline.svg\",\r\n \"fluent-window-apps.svg\",\r\n \"fluent-window-arrow-up-outline.svg\",\r\n \"fluent-window-arrow-up.svg\",\r\n \"fluent-window-brush-outline.svg\",\r\n \"fluent-window-brush.svg\",\r\n \"fluent-window-database-outline.svg\",\r\n \"fluent-window-database.svg\",\r\n \"fluent-window-dev-tools-outline.svg\",\r\n \"fluent-window-dev-tools.svg\",\r\n \"fluent-window-fingerprint.svg\",\r\n \"fluent-window-new-outline.svg\",\r\n \"fluent-window-new.svg\",\r\n \"fluent-window-outline.svg\",\r\n \"fluent-window-shield-outline.svg\",\r\n \"fluent-window-shield.svg\",\r\n \"fluent-window-wrench-outline.svg\",\r\n \"fluent-window-wrench.svg\",\r\n \"fluent-window.svg\",\r\n \"fluent-wrench-outline.svg\",\r\n \"fluent-wrench-screwdriver.svg\",\r\n \"fluent-wrench-settings-outline.svg\",\r\n \"fluent-wrench-settings.svg\",\r\n \"fluent-wrench.svg\",\r\n \"fluent-xbox-console-outline.svg\",\r\n \"fluent-xbox-console.svg\",\r\n \"fluent-xbox-controller-error.svg\",\r\n \"fluent-xbox-controller-outline.svg\",\r\n \"fluent-xbox-controller.svg\",\r\n \"fluent-xray-outline.svg\",\r\n \"fluent-xray.svg\",\r\n \"fluent-zoom-fit-outline.svg\",\r\n \"fluent-zoom-fit.svg\",\r\n \"fluent-zoom-in-outline.svg\",\r\n \"fluent-zoom-in.svg\",\r\n \"fluent-zoom-out-outline.svg\",\r\n \"fluent-zoom-out.svg\"\r\n];","import { Component, ElementRef, forwardRef, OnInit, ViewChild } from '@angular/core';\r\nimport { CustomInput } from '../custom-input';\r\nimport { InputProviderFactory } from '../input-provider-factory';\r\nimport { EnvironmentService } from '../../../services/environment.service';\r\nimport { lstIconsIonicons } from './ionicons';\r\nimport { lstFluenticons } from './fluenticons';\r\nimport { InputSelectConfiguration } from '../input-select/input.select.configuration';\r\n\r\n@Component({\r\n selector: 'input-icon',\r\n templateUrl: './input-icon.component.html',\r\n styleUrls: ['./input-icon.component.scss', '../inputs.scss'],\r\n providers: [\r\n ...InputProviderFactory.GetProviders(InputIconComponent),\r\n { provide: CustomInput, useExisting: forwardRef(() => InputIconComponent) },\r\n ]\r\n})\r\nexport class InputIconComponent extends CustomInput<string> {\r\n \r\n lstIcons: { name: string }[] = [];\r\n\r\n @ViewChild('input') input: ElementRef<HTMLInputElement>;\r\n @ViewChild('inputContainer') inputContainer: ElementRef<HTMLDivElement>;\r\n override setFocus(event: MouseEvent | null): void {\r\n if(this.input && (event == null || event.target == this.inputContainer.nativeElement)) { this.input.nativeElement.focus(); } \r\n }\r\n\r\n config: InputSelectConfiguration;\r\n\r\n constructor(\r\n private environmentService: EnvironmentService\r\n ) { super(); \r\n console.log('this.environmentService.environment.useFluentIcons', this.environmentService.environment.useFluentIcons);\r\n const lst = this.environmentService.environment.useFluentIcons ? [...lstIconsIonicons, ...lstFluenticons] : [...lstIconsIonicons];\r\n this.lstIcons = lst.map(icon => { \r\n return { name: icon.replaceAll('.svg', '') };\r\n });\r\n this.config = new InputSelectConfiguration(\"name\", \"name\", true, true, null, false);\r\n }\r\n\r\n override writeValue(obj: string): void | Promise<void> {\r\n this.value.set(obj);\r\n this.runValidation();\r\n }\r\n\r\n override SetValue(obj: string): void {\r\n this.value.set(obj);\r\n this.runValidation();\r\n this.propagateChange(obj);\r\n }\r\n}\r\n\r\n","<input-select [ngModel]=\"value()\" (ngModelChange)=\"SetValue($event)\" [items]=\"lstIcons\" [configuration]=\"config\" [submitted]=\"submitted()\" [label]=\"label()\" [required]=\"required()\" [disabled]=\"disabled()\" [loading]=\"loading()\">\r\n <ng-template sionLabelTemplate sionOptionTemplate let-item=\"item\">\r\n <div class=\"flex truncate items-center justify-start gap-2 text-dark\">\r\n <ion-icon [name]=\"item.name\" class=\"size-5\"></ion-icon>\r\n <span class=\"truncate\">{{item.name}}</span>\r\n </div>\r\n </ng-template>\r\n</input-select>","import { InputStringConfiguration, InputStringType } from \"../input-string/input-string.configuration\";\r\n\r\nexport class InputTextAreaConfiguration extends InputStringConfiguration{\r\n constructor(maxlength: number = 255, autoGrow: boolean = false){\r\n super(InputStringType.Text, maxlength, autoGrow);\r\n }\r\n}","import { Component, ElementRef, forwardRef, HostListener, input, InputSignal, ViewChild } from '@angular/core';\r\nimport { InputTextAreaConfiguration } from './input-textarea.configuration';\r\nimport { InputProviderFactory } from '../input-provider-factory';\r\nimport { CustomInput } from '../custom-input';\r\n\r\n@Component({\r\n selector: 'input-textarea',\r\n templateUrl: './input-textarea.component.html',\r\n styleUrls: ['./input-textarea.component.scss', '../inputs.scss'],\r\n providers: [\r\n ...InputProviderFactory.GetProviders(InputTextareaComponent),\r\n { provide: CustomInput, useExisting: forwardRef(() => InputTextareaComponent) },\r\n ],\r\n})\r\nexport class InputTextareaComponent extends CustomInput<string> {\r\n\r\n configuration: InputSignal<InputTextAreaConfiguration> = input<InputTextAreaConfiguration>(new InputTextAreaConfiguration());\r\n\r\n @ViewChild('textarea') input: ElementRef<HTMLTextAreaElement>;\r\n @ViewChild('inputContainer') inputContainer: ElementRef<HTMLDivElement>;\r\n override setFocus(event: MouseEvent | null): void {\r\n if(this.input && (event == null || event.target == this.inputContainer.nativeElement)) { this.input.nativeElement.focus(); } \r\n }\r\n\r\n constructor() { super(); }\r\n\r\n private resize(): void {\r\n if (this.configuration().autoGrow) {\r\n setTimeout(() => {\r\n if (this.input?.nativeElement) {\r\n const textarea = this.input.nativeElement;\r\n const isFocused = document.activeElement === textarea;\r\n\r\n // ✅ PASSO 1: Salva a posição do cursor ANTES de qualquer manipulação\r\n const selectionStart = textarea.selectionStart;\r\n const selectionEnd = textarea.selectionEnd;\r\n\r\n // Lógica de resize que você já tem\r\n textarea.style.height = 'auto';\r\n textarea.style.height = `${textarea.scrollHeight}px`;\r\n\r\n // Se estava focado, devolvemos o foco e a posição do cursor\r\n if (isFocused) {\r\n // Devolve o foco para evitar o pulo da tela\r\n textarea.focus({ preventScroll: true });\r\n\r\n // ✅ PASSO 2: Restaura a posição do cursor DEPOIS de focar\r\n textarea.setSelectionRange(selectionStart, selectionEnd);\r\n }\r\n }\r\n }, 0);\r\n }\r\n}\r\n\r\n @HostListener('input')\r\n onInput(): void {\r\n // Só executa se autoGrow for true\r\n if (this.configuration().autoGrow) {\r\n this.resize();\r\n }\r\n }\r\n\r\n override writeValue(obj: string): void | Promise<void> {\r\n this.value.set(obj);\r\n this.runValidation();\r\n this.resize();\r\n }\r\n \r\n}","<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n <textarea #textarea\r\n [ngModel]=\"value()\" \r\n (ngModelChange)=\"SetValue($event)\"\r\n [disabled]=\"disabled() || loading()\"\r\n [maxlength]=\"configuration().maxlength\"\r\n (blur)=\"blur.emit($event)\"\r\n >\r\n </textarea>\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>","import { FormBuilder } from '@angular/forms';\r\nimport { Component, ElementRef, Input, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, UrlTree } from '@angular/router';\r\nimport { NavController } from '@ionic/angular';\r\n\r\n\r\nimport { HttpServiceAtivo } from '../../../services/web/http.ativo.service';\r\nimport { HttpService } from '../../../services/web/http.service';\r\nimport { GenericService } from '../../../services/generic.service';\r\nimport { View } from './view';\r\nimport { InputType } from '../../inputs/input-type';\r\n\r\n/** Componente View Padão */\r\n@Component({\r\n selector: 'default-view',\r\n templateUrl: './default-view.component.html',\r\n styleUrls: ['./default-view.component.scss'],\r\n})\r\nexport class DefaultViewComponent<T extends HttpService | HttpServiceAtivo> extends View<T> implements OnInit {\r\n\r\n /** Remove o botão de voltar */\r\n @Input() noBack: boolean = false;\r\n /** Remove o botão NOVO da listagem */\r\n @Input() noNew : boolean = false;\r\n /** Remove os breadcrumbs da listagem */\r\n @Input() noBreadcrumbs: boolean = false;\r\n\r\n InputType = InputType;\r\n\r\n\r\n \r\n /** \r\n * Rota para voltar, caso não seja definida, o componente irá tentar usar rota do ionic\r\n */\r\n @Input() backRouterLink: string | any[] | UrlTree | undefined = undefined;\r\n\r\n constructor(\r\n public override fb: FormBuilder,\r\n public override elementRef: ElementRef,\r\n public override activatedRoute: ActivatedRoute,\r\n public override genericService: GenericService,\r\n public override navController: NavController,\r\n ) { super(); }\r\n}","<ion-content class=\"bg-transparent\"> \r\n <div class=\"wrapper\" [ngClass]=\"{'!p-0 translucid-primary-background': nested}\" tabindex=\"-1\">\r\n @if (!noBreadcrumbs) {\r\n <ion-breadcrumbs>\r\n <ion-breadcrumb class=\"cursor-pointer\" (click)=\"NavigateToList()\">\r\n {{service.title}}\r\n </ion-breadcrumb>\r\n <ion-breadcrumb> \r\n {{id == 0 ? 'Novo Registro' : 'Editar Registro' }} \r\n </ion-breadcrumb>\r\n </ion-breadcrumbs>\r\n }\r\n \r\n <ion-card>\r\n <ion-card-header class=\"!block\">\r\n @if (service) {\r\n <header-view \r\n *ngIf=\"service\" \r\n [novo]=\"id == 0\" \r\n [useDefaultRouting]=\"nested\" \r\n [loading]=\"loading\" \r\n [progress]=\"progress\" \r\n (save)=\"Save()\" \r\n [noBack]=\"noBack\" \r\n [noNew]=\"noNew\"\r\n [backRouterLink]=\"backRouterLink\"\r\n ></header-view>\r\n }\r\n </ion-card-header>\r\n <ion-card-content class=\"p-0 h-full !overflow-y-auto overflow-x-hidden\">\r\n <div class=\"grid grid-cols-12 gap-2 w-full\" *ngIf=\"frm\" [formGroup]=\"frm\">\r\n \r\n @for (field of lstTableFields; track $index) {\r\n @if (field.index != 'id') {\r\n @if (!field.hiddenView) {\r\n @switch (field.type) {\r\n @case (InputType.Bool) {\r\n <input-bool [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\" ></input-bool>\r\n }\r\n @case (InputType.Cep){\r\n <input-cep [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\"></input-cep>\r\n }\r\n @case (InputType.Color){\r\n <input-color [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\"></input-color>\r\n }\r\n @case (InputType.CpfCnpj) {\r\n <input-cpf [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-cpf>\r\n }\r\n @case (InputType.Cpf) {\r\n <input-cpf [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-cpf>\r\n }\r\n @case (InputType.Cnpj) {\r\n <input-cnpj [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-cnpj>\r\n }\r\n @case (InputType.Date) {\r\n <input-date [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-date>\r\n }\r\n @case (InputType.DateTime) {\r\n <input-date-time [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-date-time>\r\n }\r\n @case (InputType.Time) {\r\n <input-time [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-time>\r\n }\r\n @case (InputType.Decimal) {\r\n <input-decimal [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-decimal>\r\n }\r\n @case (InputType.Currency) {\r\n <input-currency [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-currency>\r\n }\r\n @case (InputType.Number) {\r\n <input-number [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-number>\r\n }\r\n @case (InputType.File) {\r\n <input-file [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-file>\r\n }\r\n @case (InputType.Icon) {\r\n <input-icon [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\"></input-icon>\r\n }\r\n @case (InputType.Select) {\r\n <input-select [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-select>\r\n }\r\n @case (InputType.String) {\r\n <input-string [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-string>\r\n }\r\n @case (InputType.TelefoneCelular) {\r\n <input-telefone-celular [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-telefone-celular>\r\n }\r\n @case (InputType.Telefone) {\r\n <input-telefone [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-telefone>\r\n }\r\n @case (InputType.Celular) {\r\n <input-celular [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-celular>\r\n }\r\n @case (InputType.TextArea) {\r\n <input-textarea [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-textarea>\r\n }\r\n }\r\n }\r\n }\r\n }\r\n \r\n <div class=\"col-span-full rounded-2xl p-3 flex items-center justify-center\" *ngIf=\"!service || service.lstTableFields.length == 0\" style=\"background: var(--ion-color-danger);\">\r\n <ion-text class=\"text-2xl text-light\">\r\n <ion-icon class=\"align-sub text-3xl\" name=\"alert-circle\"></ion-icon> [ Invalid Configuration ]\r\n </ion-text>\r\n </div>\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n</ion-content>","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\n\r\nimport { GenericService } from \"../../../services/generic.service\";\r\nimport { HttpService } from \"../../../services/web/http.service\";\r\nimport { DefaultViewComponent } from \"./default-view.component\";\r\n\r\n/** Componente padrão para a invocação do DefaultView */\r\n@Component({ template: '', styles: '' })\r\nexport abstract class AbstractView<T extends HttpService> implements OnInit {\r\n public service : T;\r\n public genericService: GenericService;\r\n public activatedRoute: ActivatedRoute;\r\n \r\n public id: number;\r\n \r\n ngOnInit(): void {\r\n this.id = this.genericService.GetId(this.activatedRoute, 0);\r\n }\r\n\r\n @ViewChild(DefaultViewComponent<any>) public DefaultView: DefaultViewComponent<any>;\r\n public static GetProvider(component): any[]{\r\n return [{ provide: AbstractView, useExisting: component }]\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SIonPopoverComponent } from './sion-popover/sion-popover.component';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\n@NgModule({\r\n declarations: [ SIonPopoverComponent ],\r\n exports: [ SIonPopoverComponent ],\r\n imports: [\r\n CommonModule, OverlayModule\r\n ]\r\n})\r\nexport class SIonPopoverModule { }\r\n","import { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MaskitoDirective } from '@maskito/angular';\r\nimport { CommonModule } from '@angular/common';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { InputTextareaComponent } from './input-textarea/input-textarea.component';\r\nimport { InputStringComponent } from './input-string/input-string.component';\r\nimport { InputDecimalComponent } from './input-decimal/input-decimal.component';\r\nimport { InputBoolComponent } from './input-bool/input-bool.component';\r\nimport { InputFileComponent } from './input-file/input-file.component';\r\nimport { ImageComponent } from '../image/image.component';\r\nimport { InputDateComponent } from './input-date/input-date.component';\r\nimport { InputSelectComponent } from './input-select/input-select.component';\r\nimport { SIonPopoverModule } from '../popover/sion-popover.module';\r\nimport { SIonLabelTemplateDirective } from './input-select/directives/sion-label-template.directive';\r\nimport { SIonOptionTemplateDirective } from './input-select/directives/sion-option-template.directive';\r\nimport { SIonPlaceholderTemplateDirective } from './input-select/directives/sion-placeholder-template.directive';\r\nimport { InputCpfCnpjComponent } from './input-cpf-cnpj/input-cpf-cnpj.component';\r\nimport { DownloadButtonComponent } from './input-file/download-button/download-button.component';\r\nimport { LoadingComponent } from '../loading/loading.component';\r\nimport { NgVarDirective } from '../../directives/ng-var.directive';\r\nimport { InputColorComponent } from './input-color/input-color.component';\r\nimport { InputCepComponent } from './input-cep/input-cep.component';\r\nimport { InputTelefoneComponent } from './input-telefone/input-telefone.component';\r\nimport { InputIconComponent } from './input-icon/input-icon.component';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { MAT_MOMENT_DATE_FORMATS, MomentDateAdapter } from '@angular/material-moment-adapter';\r\nimport { MatCardModule } from '@angular/material/card';\r\n\r\nconst lstComponents = [\r\n InputBoolComponent,\r\n InputCepComponent,\r\n InputColorComponent,\r\n InputCpfCnpjComponent,\r\n InputDateComponent,\r\n InputDecimalComponent,\r\n InputFileComponent,\r\n InputIconComponent,\r\n InputSelectComponent,\r\n SIonLabelTemplateDirective,\r\n SIonOptionTemplateDirective,\r\n SIonPlaceholderTemplateDirective,\r\n InputStringComponent,\r\n InputTelefoneComponent,\r\n InputTextareaComponent,\r\n DownloadButtonComponent,\r\n]\r\n\r\n@NgModule({\r\n declarations: [ ...lstComponents ],\r\n exports : [ ...lstComponents ],\r\n imports: [\r\n IonicModule,\r\n CommonModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n ImageComponent,\r\n MaskitoDirective,\r\n SIonPopoverModule,\r\n LoadingComponent,\r\n NgVarDirective,\r\n OverlayModule,\r\n MatDatepickerModule,\r\n MatCardModule\r\n ],\r\n providers: [\r\n {provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE]},\r\n {provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS},\r\n ]\r\n})\r\nexport class InputsModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { RouterLink, RouterLinkWithHref, RouterModule, RouterOutlet } from '@angular/router';\r\n\r\nimport { NgVarDirective } from '../../directives/ng-var.directive';\r\nimport { InputsModule } from '../inputs/inputs.module';\r\n\r\nimport { LoadingComponent } from '../loading/loading.component';\r\nimport { DefaultListComponent } from './default-list/default-list.component';\r\nimport { DefaultViewComponent } from './default-view/default-view.component';\r\nimport { HeaderListComponent } from './default-list/header-list/header-list.component';\r\nimport { HeaderViewComponent } from './default-view/header-view/header-view.component';\r\nimport { DefaultTableComponent } from './default-table/default-table.component';\r\nimport { DefaultPaginationComponent } from './default-pagination/default-pagination.component';\r\nimport { ThFilterComponent } from './default-table/th-filter/th-filter.component';\r\nimport { SIonPopoverModule } from '../popover/sion-popover.module';\r\nimport { ContentBlockComponent } from '../content-block/content-block.component';\r\nimport { CdkDragPlaceholder } from \"@angular/cdk/drag-drop\";\r\n\r\nconst lstComponents = [\r\n HeaderListComponent,\r\n DefaultListComponent,\r\n\r\n DefaultViewComponent,\r\n HeaderViewComponent,\r\n DefaultTableComponent,\r\n DefaultPaginationComponent,\r\n ThFilterComponent\r\n]\r\n\r\n/** Modulo parão, inclui os seguiintes componentes:\r\n * - HeaderListComponent,\r\n - DefaultListComponent,\r\n - DefaultViewComponent,\r\n - HeaderViewComponent,\r\n - DefaultTableComponent,\r\n - DefaultPaginationComponent,\r\n */\r\n@NgModule({\r\n declarations: [...lstComponents],\r\n exports : [...lstComponents],\r\n imports: [\r\n IonicModule,\r\n CommonModule,\r\n InputsModule,\r\n ReactiveFormsModule,\r\n RouterLinkWithHref,\r\n FormsModule,\r\n RouterModule,\r\n RouterOutlet,\r\n RouterLink,\r\n LoadingComponent,\r\n NgVarDirective,\r\n SIonPopoverModule,\r\n ContentBlockComponent,\r\n CdkDragPlaceholder\r\n]\r\n})\r\nexport class DefaultModule { }\r\n","import { Menu } from \"../../components/drawer/menu\";\r\n\r\nexport class RouteCacheService {\r\n private cachedData: Menu[] | null = null;\r\n\r\n getCachedData(): Menu[] {\r\n return this.cachedData;\r\n }\r\n\r\n setCachedData(data: Menu[]): void {\r\n this.cachedData = data;\r\n }\r\n\r\n isDataCached(): boolean {\r\n return this.cachedData != null;\r\n }\r\n}","import { Observable, tap, share, finalize } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { RouteCacheService } from './route.cache.service';\r\nimport { Menu } from '../../components/drawer/menu';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RouteProviderService {\r\n\r\n loadFrom: Observable<Menu[]> | Menu[] = [];\r\n private routeCacheService: RouteCacheService = new RouteCacheService();\r\n private loading$: Observable<Menu[]> | null = null;\r\n\r\n constructor(\r\n ) { }\r\n\r\n resolver: Promise<Menu[]>\r\n\r\n GetData(): Observable<Menu[]> {\r\n // If a request is already in progress, return that Observable\r\n if (this.loading$) {\r\n return this.loading$;\r\n }\r\n\r\n if(Array.isArray(this.loadFrom)){\r\n this.routeCacheService.setCachedData(this.loadFrom);\r\n }\r\n\r\n const cachedData = this.routeCacheService.getCachedData();\r\n\r\n if (cachedData) {\r\n return new Observable(observer => {\r\n observer.next(cachedData);\r\n observer.complete();\r\n });\r\n } else {\r\n // Store the loading Observable and make sure to reset it when it completes\r\n this.loading$ = (this.loadFrom as Observable<Menu[]>).pipe(\r\n tap(data => this.routeCacheService.setCachedData(data)),\r\n finalize(() => this.loading$ = null),\r\n share() // Share the same subscription with multiple subscribers\r\n );\r\n \r\n return this.loading$;\r\n }\r\n }\r\n}\r\n","import { ActivatedRoute, RouterLinkWithHref } from '@angular/router';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { CommonModule } from '@angular/common';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { RouteProviderService } from '../../services/route/route.provider.service';\r\nimport { EnvironmentService } from '../../services/environment.service';\r\nimport { LoadingComponent } from '../loading/loading.component';\r\nimport { GenericService } from '../../services/generic.service';\r\nimport { InputsModule } from '../inputs/inputs.module';\r\nimport { Menu } from '../drawer/menu';\r\n\r\n/** Pagina Default - mostra os botões de rotas horizontalmente - componente padrão */\r\n@Component({\r\n standalone: true,\r\n selector: 'app-default',\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n IonicModule,\r\n InputsModule,\r\n RouterLinkWithHref,\r\n LoadingComponent,\r\n TranslateModule,\r\n ],\r\n templateUrl: './default.page.html',\r\n styleUrls: ['./default.page.scss'],\r\n})\r\nexport class DefaultPage implements OnInit {\r\n\r\n useTranslation: boolean = false;\r\n TranslationModule: any = {\r\n Permissao : 'Entities.Permissao.',\r\n PermissaoGrupo: 'Entities.PermissaoGrupo.'\r\n };\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private coreService: EnvironmentService,\r\n private genericService: GenericService,\r\n private routeProviderService: RouteProviderService \r\n ) { \r\n }\r\n \r\n title: string = this.coreService.environment.applicationName;\r\n loading: boolean;\r\n lstMenu: Menu[] = [];\r\n\r\n lstImage: DefaultPageImage[] = null;\r\n\r\n async ngOnInit(): Promise<void> {\r\n this.loading = true;\r\n \r\n const conf = await firstValueFrom(this.route.data) as DefaultPageConfiguration;\r\n\r\n this.lstImage = Array.isArray(conf.image) ? conf.image : \r\n conf.image ? [conf.image] : undefined;\r\n\r\n this.lstMenu = await firstValueFrom(this.routeProviderService.GetData());\r\n this.loading = false;\r\n }\r\n\r\n SetTitle(item: Menu){\r\n this.genericService.SetTitle(item.title);\r\n }\r\n}\r\n\r\nexport class DefaultPageConfiguration{\r\n constructor(\r\n public image: DefaultPageImage | DefaultPageImage[] | null = null,\r\n public useTranslation: boolean = false\r\n ){\r\n }\r\n}\r\n\r\nexport class DefaultPageImage {\r\n constructor(\r\n public src: string | null = null,\r\n public classes: string = ''\r\n ){}\r\n}\r\n","<ion-content [fullscreen]=\"true\">\r\n <div class=\"wrapper\">\r\n <ion-breadcrumbs>\r\n <ion-breadcrumb [routerLink]=\"[null]\">\r\n <ion-icon slot=\"start\" name=\"home\"></ion-icon> Inicio\r\n </ion-breadcrumb>\r\n </ion-breadcrumbs>\r\n \r\n <ion-card>\r\n <ion-card-content class=\"flex flex-col items-center justify-center !p-6\">\r\n <div class=\"w-full shrink-0 text-center\">\r\n @if(lstImage){\r\n @for (item of lstImage; track $index) {\r\n <ion-img [class]=\"item.classes\" [src]=\"item.src\" (ion-error)=\"lstImage\"></ion-img>\r\n }\r\n }\r\n @else {\r\n <ion-text class=\"text-8xl font-poppins w-full\"> {{title}} </ion-text>\r\n }\r\n </div>\r\n\r\n <div class=\"overflow-hidden p-2 w-full relative\">\r\n <loading [type]=\"3\" [loading]=\"loading\"></loading>\r\n <div class=\"size-full flex flex-wrap portrait:!grid gap-2\">\r\n @for (item of lstMenu; track item; let i = $index) {\r\n @if(item.type == \"Menu\"){\r\n <ion-button fill=\"outline\" class=\"grow min-w-fit\" [routerLink]=\"[item.route]\">\r\n <ion-icon slot=\"start\" [name]=\"item.icon\"></ion-icon> \r\n {{useTranslation ? (TranslationModule.Permissao + item.id | translate) : item.title}}\r\n </ion-button>\r\n }\r\n @if(item.type == \"MenuGroup\"){\r\n <ion-button fill=\"outline\" class=\"grow min-w-fit\" (click)=\"popover.present($event)\">\r\n <ion-icon slot=\"start\" [name]=\"item.icon\"></ion-icon> \r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + item.id | translate) : item.title}}\r\n </ion-button>\r\n\r\n <ion-popover #popover class=\"overflow-y-auto\" [dismissOnSelect]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-list class=\"no-outer-border\">\r\n <ion-item class=\"bg-transparent\" (click)=\"SetTitle(menu)\" *ngFor=\"let menu of item.lstMenu\" [routerLink]=\"['./' + menu.route]\" lines=\"none\" detail=\"false\" routerLinkActive=\"selected\">\r\n <ion-icon [name]=\"menu.icon\" slot=\"start\"></ion-icon> \r\n <ion-label> \r\n {{useTranslation ? (TranslationModule.Permissao + menu.id | translate) : menu.title}} \r\n </ion-label>\r\n </ion-item>\r\n </ion-list>\r\n </ng-template>\r\n </ion-popover>\r\n }\r\n }\r\n </div>\r\n </div>\r\n\r\n <!-- <div class=\"!overflow-y-auto w-full portrait:grow relative\">\r\n <loading [type]=\"3\" [loading]=\"loading\"></loading>\r\n <div class=\"flex flex-wrap items-start justify-start mt-4 portrait:!grid portrait:!grid-cols-1\"> \r\n </div>\r\n </div> -->\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n</ion-content>","import { CommonModule } from '@angular/common';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\n@Component({\r\n selector: 'drag-drop-overlay',\r\n templateUrl: './drag-drop-overlay.component.html',\r\n styleUrls: ['./drag-drop-overlay.component.scss'],\r\n})\r\nexport class DragDropOverlayComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {}\r\n\r\n fileOver: boolean;\r\n}\r\n","<div class=\"absolute top-0 left-0 size-full z-50 p-4 pointer-events-none\" [ngClass]=\"{'fileOver': fileOver}\">\r\n <div class=\"border-4 border-dashed border-transparent default-transition rounded-2xl size-full flex items-center justify-center\">\r\n <ion-icon class=\"text-9xl text-transparent\" name=\"cloud-upload\"></ion-icon>\r\n </div>\r\n</div>","import { ContentChild, Directive, ViewChild } from '@angular/core';\r\nimport { Output, EventEmitter, HostBinding, HostListener } from '@angular/core';\r\nimport { DragDropOverlayComponent } from './drag-drop-overlay/drag-drop-overlay.component';\r\n\r\n@Directive({\r\n selector: '[DragDropFile]'\r\n})\r\nexport class DragDropFileDirective {\r\n\r\n constructor() { }\r\n\r\n @HostBinding('class.fileOver') fileOver: boolean;\r\n @Output() fileDropped = new EventEmitter<File[]>();\r\n\r\n @ContentChild(DragDropOverlayComponent) dragDropOverlay: DragDropOverlayComponent \r\n\r\n // Dragover listener\r\n @HostListener('dragover', ['$event']) onDragOver(evt: DragEvent) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.fileOver = true;\r\n this.dragDropOverlay.fileOver = true;\r\n }\r\n\r\n // Dragleave listener\r\n @HostListener('dragleave', ['$event']) public onDragLeave(evt: DragEvent) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.fileOver = false;\r\n this.dragDropOverlay.fileOver = false;\r\n }\r\n \r\n // Drop listener\r\n @HostListener('drop', ['$event']) public onDrop(evt: DragEvent) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.fileOver = false;\r\n this.dragDropOverlay.fileOver = false;\r\n let files = evt.dataTransfer.files;\r\n if (files.length > 0) {\r\n this.fileDropped.emit(Array.from(files));\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DragDropFileDirective } from './drag-drop-file.directive';\r\nimport { DragDropOverlayComponent } from './drag-drop-overlay/drag-drop-overlay.component';\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\nconst values = [\r\n DragDropFileDirective,\r\n DragDropOverlayComponent\r\n]\r\n\r\n\r\n@NgModule({\r\n declarations: [ ...values ],\r\n exports : [ ...values ],\r\n imports: [\r\n CommonModule,\r\n IonicModule\r\n ]\r\n})\r\nexport class DragDropFileModule { }\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { RouterLinkWithHref } from '@angular/router';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AuthService } from '../../../services/auth.service';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n IonicModule,\r\n RouterLinkWithHref,\r\n ],\r\n selector: 'default-drawer-end',\r\n templateUrl: './default-drawer-end.component.html',\r\n styleUrls: ['./default-drawer-end.component.scss'],\r\n})\r\nexport class DefaultDrawerEndComponent implements OnInit {\r\n\r\n constructor(\r\n public authService: AuthService\r\n ) { }\r\n\r\n @Input() colapsed: boolean = false;\r\n\r\n Token: any;\r\n ngOnInit(): void {\r\n this.authService.LoadToken().then((res) => {\r\n this.Token = res;\r\n })\r\n }\r\n\r\n\r\n Loggout(): void { this.authService.Loggout(); }\r\n}\r\n","<div class=\"w-full default-transition flex\" [ngClass]=\"{'!w-16': colapsed}\">\r\n <div class=\"w-10 shrink-0 aspect-square rounded-2xl flex items-center justify-center default-transition\" style=\"background-color: var(--ion-color-primary);\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </div>\r\n <div class=\"grow min-w-10 p-2 justify-center items-center whitespace-nowrap text-ellipsis overflow-hidden block default-transition\" [ngClass]=\"{'opacity-0 w-0': colapsed}\">\r\n <span>{{Token ? Token.Nome : ''}}</span>\r\n </div>\r\n\r\n <ion-button (click)=\"Loggout()\" class=\"size-10 shrink-0\" size=\"small\" color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"exit-outline\"></ion-icon> \r\n </ion-button>\r\n</div>","\r\nexport class Menu{\r\n id: number;\r\n route: string | null;\r\n icon : string | null;\r\n title: string;\r\n lstMenu: Menu[];\r\n type: 'Menu' | 'MenuGroup'\r\n constructor(type: 'Menu' | 'MenuGroup', title: string, icon : string | null, lstMenu: Menu[] = [], route: string | null = null){\r\n this.type = type; \r\n this.title = title;\r\n this.route = route;\r\n if(icon){\r\n this.icon = icon;\r\n }else{\r\n this.icon = \"layers\";\r\n }\r\n this.lstMenu = lstMenu;\r\n }\r\n}","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, OnInit, QueryList, ViewChildren } from '@angular/core';\r\nimport { IonAccordion, IonAccordionGroup, IonicModule, NavController } from '@ionic/angular';\r\nimport { Menu } from '.././menu';\r\nimport { Router, RouterLinkWithHref } from '@angular/router';\r\nimport { GenericService } from '../../../services/generic.service';\r\nimport { NgVarDirective } from '../../../directives/ng-var.directive';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [CommonModule, IonicModule, RouterLinkWithHref, TranslateModule],\r\n selector: 'drawer-group',\r\n templateUrl: './drawer-group.component.html',\r\n styleUrls: ['./drawer-group.component.scss'],\r\n})\r\nexport class DrawerGroupComponent implements OnInit {\r\n\r\n TranslationModule: any = {\r\n Permissao : 'Entities.Permissao.',\r\n PermissaoGrupo: 'Entities.PermissaoGrupo.'\r\n };\r\n @Input() MenuGroup: Menu;\r\n @Input() colapsed: boolean;\r\n @Input() useTranslation: boolean;\r\n\r\n constructor(\r\n public router: Router,\r\n private navController: NavController,\r\n private genericService: GenericService\r\n ) { }\r\n\r\n ngOnInit() {}\r\n\r\n HandleNav(item: Menu | any, event: MouseEvent) {\r\n if(event.ctrlKey || event.metaKey){\r\n window.open(window.origin + '/' + item.route, '_blank');\r\n event.preventDefault();\r\n return;\r\n }\r\n this.SetTitle(item);\r\n this.navController.navigateRoot('/' + item.route);\r\n }\r\n SetTitle(item: Menu){\r\n this.genericService.SetTitle(item.title);\r\n }\r\n\r\n @ViewChildren(IonAccordionGroup) lstIonAcordionGroup: QueryList<IonAccordion>\r\n}\r\n","<div class=\"size-full flex flex-col verflow-hidden\">\r\n <div class=\"w-full text-center\">\r\n <!-- <ion-item class=\"bg-inactive bg-active\" lines=\"none\" style=\"--border-radius: 1rem\">\r\n <ion-label class=\"text-center\">\r\n <ion-icon class=\"text-2xl\" [name]=\"MenuGroup.icon\"></ion-icon> <br>\r\n <ion-text class=\"text-lg\">\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + MenuGroup.id | translate) : MenuGroup.title}} \r\n </ion-text>\r\n </ion-label>\r\n </ion-item> -->\r\n <div class=\"gradient-background header flex flex-col gap-1 p-2 text-center items-center justify-center rounded-xl\">\r\n <ion-icon class=\"text-2xl\" [name]=\"MenuGroup.icon\"></ion-icon>\r\n <ion-text class=\"text-dark\">\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + MenuGroup.id | translate) : MenuGroup.title}} \r\n </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-col gap-2 w-full pt-2 mask-y overflow-y-auto\">\r\n @for (mGroup of MenuGroup.lstMenu; track $index) {\r\n <!-- Menu -->\r\n @if(mGroup.type == \"Menu\"){\r\n <div (click)=\"HandleNav(mGroup, $event)\" \r\n class=\"bg-inactive gradient-background menu\"\r\n [class.bg-active]=\"router.isActive('/' + mGroup.route, false)\"\r\n >\r\n <div class=\"content\">\r\n <ion-icon class=\"shrink-0\" [name]=\"mGroup.icon\"></ion-icon>\r\n <ion-label class=\"shrink\">\r\n {{useTranslation ? (TranslationModule.Permissao + mGroup.id | translate) : mGroup.title}} \r\n </ion-label>\r\n </div>\r\n </div>\r\n <!-- <ion-item \r\n class=\"bg-inactive shrink-0\" lines=\"none\" \r\n (click)=\"HandleNav(mGroup)\"\r\n [ngClass]=\"{'colapsed': colapsed, 'bg-active' : router.isActive('/' + mGroup.route, false)}\">\r\n <ion-icon slot=\"start\" [name]=\"mGroup.icon\"></ion-icon>\r\n <ion-label class=\"ion-text-nowrap\">\r\n {{useTranslation ? (TranslationModule.Permissao + mGroup.id | translate) : mGroup.title}} \r\n </ion-label>\r\n </ion-item> -->\r\n } \r\n @else if (mGroup.type == \"MenuGroup\") {\r\n <!-- MenuGroup -->\r\n <!-- <div class=\"w-full overflow-hidden shrink-0\">\r\n <ion-accordion-group class=\"ion-text-nowrap w-full\">\r\n <ion-accordion class=\"bg-transparent\" [value]=\"mGroup\">\r\n <ion-item slot=\"header\" color=\"light\" class=\"ion-text-nowrap bg-inactive\" style=\"--ion-color-base: var(--background) !important\">\r\n <ion-icon slot=\"start\" [name]=\"mGroup.icon\"></ion-icon>\r\n <ion-label>\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + mGroup.id | translate) : mGroup.title}}\r\n </ion-label>\r\n </ion-item>\r\n <div slot=\"content\">\r\n <div class=\"pl-8\">\r\n <div class=\"w-full border-l-2 border-solid rounded-bl-2xl grid gap-2 pl-2 py-2\" style=\"border-color: color-mix(in srgb, var(--ion-color-primary) 30%, transparent 70%)\">\r\n @for (mMenu of mGroup.lstMenu; track $index) {\r\n @if (mMenu.type == \"Menu\") {\r\n <ion-item \r\n class=\"bg-inactive\" lines=\"none\" \r\n (click)=\"HandleNav(mMenu)\"\r\n [ngClass]=\"{'colapsed': colapsed, 'bg-active' : router.isActive('/' + mMenu.route, false)}\">\r\n <ion-icon slot=\"start\" [name]=\"mMenu.icon\"></ion-icon>\r\n <ion-label class=\"ion-text-nowrap\">\r\n {{useTranslation ? (TranslationModule.Permissao + mMenu.id | translate) : mMenu.title}}\r\n </ion-label>\r\n </ion-item>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </ion-accordion>\r\n </ion-accordion-group>\r\n </div> -->\r\n }\r\n }\r\n </div>\r\n</div>","import { Component, computed, effect, EventEmitter, input, Input, InputSignal, Output, signal, Signal, WritableSignal } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { IonicModule, NavController } from '@ionic/angular';\r\nimport { Menu } from './menu';\r\n\r\nimport { DrawerGroupComponent } from './drawer-group/drawer-group.component';\r\nimport { LoadingComponent } from '../../components/loading/loading.component';\r\nimport { SIonPopoverModule } from '../popover/sion-popover.module';\r\nimport { Router, RouterLinkWithHref } from '@angular/router';\r\nimport { GenericService } from '../../services/generic.service';\r\nimport { Search } from '../../services/utils.service';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n@Component({\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n IonicModule,\r\n LoadingComponent,\r\n DrawerGroupComponent,\r\n TranslateModule,\r\n SIonPopoverModule,\r\n RouterLinkWithHref,\r\n ReactiveFormsModule,\r\n FormsModule\r\n ],\r\n selector: 'drawer',\r\n templateUrl: './drawer.component.html',\r\n styleUrls: ['./drawer.component.scss'],\r\n})\r\nexport class DrawerComponent {\r\n\r\n TranslationModule: any = {\r\n Permissao : 'Entities.Permissao.',\r\n PermissaoGrupo: 'Entities.PermissaoGrupo.',\r\n SemResultado : 'Messages.SemResultado'\r\n };\r\n\r\n @Input() loading: boolean = true;\r\n lstMenu: InputSignal<Menu[]> = input<Menu[]>();\r\n lstFlattenMenu: Signal<Menu[]> = computed(() => { return FlattenMenus(this.lstMenu()) });\r\n\r\n @Input() colapsed: boolean = false; \r\n @Output() colapsedChange: EventEmitter<boolean> = new EventEmitter<boolean>; \r\n @Input() title: string;\r\n @Input() useTranslation: boolean = false;\r\n \r\n constructor(\r\n public router: Router,\r\n private navController: NavController,\r\n private genericService: GenericService\r\n ) { \r\n effect(() => {\r\n //Handle Menu Title\r\n const lstFlat = this.lstFlattenMenu();\r\n const currentMenu = lstFlat.find(p => window.location.pathname.includes('/' + p.route));\r\n const group: Menu | null = FindMenuParent(this.lstMenu(), currentMenu);\r\n if(group){\r\n this.CurrentGroupActive = group;\r\n }\r\n else{\r\n this.CurrentGroupActive = this.lstMenu()[0];\r\n }\r\n });\r\n }\r\n CurrentGroupActive: Menu = null;\r\n\r\n ToggleCollapsed(){\r\n this.colapsedChange.emit(!this._enterColapsed);\r\n this._enterColapsed = false;\r\n }\r\n\r\n _enterColapsed: boolean = false;\r\n onMouseEnter(){\r\n if(this.colapsed){\r\n this._enterColapsed = true;\r\n this.colapsedChange.emit(false);\r\n }\r\n }\r\n onMouseLeave(){\r\n if(this._enterColapsed){\r\n this._enterColapsed = false;\r\n this.colapsedChange.emit(true);\r\n }\r\n }\r\n\r\n HandleNav(item: Menu | any, event: MouseEvent) {\r\n if(event.ctrlKey || event.metaKey){\r\n window.open(window.origin + '/' + item.route, '_blank');\r\n event.preventDefault();\r\n return;\r\n }\r\n this.SetTitle(item);\r\n const vGroup: Menu | null = FindMenuParent(this.lstMenu(), item);\r\n if(vGroup){\r\n this.CurrentGroupActive = vGroup;\r\n }\r\n this.navController.navigateRoot('/' + item.route);\r\n }\r\n SetTitle(item: Menu){\r\n this.genericService.SetTitle(item.title);\r\n }\r\n\r\n search: WritableSignal<string> = signal<string>(\"\");\r\n lstMenuFiltered: Signal<Menu[]> = computed(() => {\r\n const str = this.search().toLowerCase();\r\n const lstS1 = this.lstMenu().map(p => {\r\n return new Menu(p.type, p.title, p.icon, p.lstMenu.filter(x => x.title.toLowerCase().includes(str)), p.route);\r\n });\r\n const lstS2 = lstS1.filter(p => p.lstMenu.length > 0);\r\n return lstS2;\r\n });\r\n}\r\n\r\n/**\r\n * Flattens a hierarchical Menu[] structure into a single array\r\n * containing all Menu items from the original array and all nested items\r\n * @param menus The array of Menu items to flatten\r\n * @returns A flattened array containing all Menu items\r\n */\r\nfunction FlattenMenus(menus: Menu[]): Menu[] {\r\n const result: Menu[] = [];\r\n \r\n function addMenuItems(items: Menu[]) {\r\n for (const menu of items) {\r\n // Add current menu to result\r\n result.push(menu);\r\n \r\n // Process nested menus if they exist\r\n if (menu.lstMenu && menu.lstMenu.length > 0) {\r\n addMenuItems(menu.lstMenu);\r\n }\r\n }\r\n }\r\n \r\n addMenuItems(menus);\r\n return result;\r\n}\r\n\r\nfunction FindMenuParent(menus: Menu[], targetMenu: Menu): Menu | null {\r\n for (const menu of menus) {\r\n // Check if current menu has the target in its direct children\r\n if (menu.lstMenu && menu.lstMenu.some(m => m === targetMenu)) {\r\n return menu;\r\n }\r\n \r\n // Search deeper in the hierarchy\r\n if (menu.lstMenu && menu.lstMenu.length > 0) {\r\n const parent = FindMenuParent(menu.lstMenu, targetMenu);\r\n if (parent) {\r\n return parent;\r\n }\r\n }\r\n }\r\n \r\n return null;\r\n}","<div class=\"absolute left-0 top-0 h-full bg-light size-full flex flex-col p-2 !pr-0 w-[19rem] overflow-hidden\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n <!-- [ Header ] -->\r\n <div class=\"shrink-0 w-full flex justify-between items-center\">\r\n <div #anchor\r\n (click)=\"ToggleCollapsed()\" \r\n class=\"toggle size-10 aspect-square shrink-0 rounded-xl bg-inactive gradient-background menu\"\r\n >\r\n <ion-icon name=\"menu\" slot=\"icon-only\"></ion-icon>\r\n </div>\r\n <!-- <ion-button class=\"size-10 shrink-0 aspect-square\" size=\"small\" color=\"medium\" (click)=\"ToggleCollapsed()\">\r\n <ion-icon name=\"menu\" slot=\"icon-only\"></ion-icon>\r\n </ion-button> -->\r\n\r\n <div class=\"size-full shrink flex pl-2 \">\r\n <div class=\"size-full max-h-10 flex flex-wrap overflow-hidden\">\r\n @if (!ref.children.length) {\r\n <ion-text class=\"size-full flex items-center justify-center default-transition z-0\" [ngClass]=\"{'opacity-0 -translate-x-1/2 pointer-events-none': colapsed }\"> \r\n {{title}}\r\n </ion-text>\r\n }\r\n <div #ref class=\"size-full flex items-center justify-center shrink-0\">\r\n <ng-content select=\"[slot=logo]\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- [ Content ] -->\r\n <div class=\"size-full shrink flex flex-col relative overflow-hidden\">\r\n <loading [type]=\"3\" [loading]=\"loading\" text=\"\"></loading>\r\n <div class=\"size-full shrink flex gap-2\">\r\n <div class=\"h-full w-12 pr-2 py-2 mask-y shrink-0 flex flex-col gap-2 overflow-y-auto overflow-x-hidden border-dashed border-r border-r-medium/30\">\r\n <div #searchAnchor (click)=\"modal.present()\" class=\"search-button size-10 aspect-square shrink-0 rounded-xl bg-inactive gradient-background menu\">\r\n <ion-icon name=\"search\" slot=\"icon-only\"></ion-icon>\r\n </div>\r\n\r\n @for (item of lstMenu(); track $index) {\r\n <div>\r\n <div\r\n [class.bg-active]=\"CurrentGroupActive == item\"\r\n #anchor (mouseenter)=\"popover.present($event)\" \r\n (mouseleave)=\"popover.dismiss()\" \r\n (click)=\"CurrentGroupActive = item\" \r\n class=\"w-10 aspect-square shrink-0 rounded-xl bg-inactive gradient-background menu\"\r\n >\r\n <ion-icon [name]=\"item.icon\"></ion-icon>\r\n </div>\r\n <sion-popover #popover [anchor]=\"anchor\" [flip]=\"false\" placement=\"right\" fill=\"solid\">\r\n <div class=\"p-1\">\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + item.id | translate) : item.title}}\r\n </div>\r\n </sion-popover>\r\n </div>\r\n }\r\n\r\n </div>\r\n <div class=\"size-full shrink relative\">\r\n @for (mGroup of lstMenu(); track $index) {\r\n <div class=\"absolute top-0 left-0 size-full py-2 default-transition opacity-0 translate-x-full z-0 overflow-hidden\" [ngClass]=\"{'opacity-100 !translate-x-0': CurrentGroupActive == mGroup}\">\r\n <drawer-group [MenuGroup]=\"mGroup\" [useTranslation]=\"useTranslation\" [colapsed]=\"colapsed\"></drawer-group>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- [ End ] -->\r\n <div class=\"shrink-0 w-full\">\r\n <ng-content select=\"[slot=drawer]\"></ng-content>\r\n </div>\r\n</div>\r\n\r\n<ion-modal #modal [keepContentsMounted]=\"true\" (onWillDismiss)=\"search.set('')\">\r\n <ng-template>\r\n <ion-content>\r\n <ion-card class=\"size-full m-0 overflow-hidden\">\r\n <ion-card-content class=\"size-full flex flex-col overflow-hidden p-0\">\r\n <div class=\"shrink-0 w-full flex items-center justify-center\">\r\n <ion-searchbar class=\"p-0 !pl-2 !py-2\" [ngModel]=\"this.search()\" (ngModelChange)=\"this.search.set($event)\" [debounce]=\"200\"></ion-searchbar>\r\n <ion-button size=\"small\" fill=\"clear\" (click)=\"modal.dismiss()\">\r\n <ion-icon name=\"close\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n\r\n <div class=\"size-full flex flex-col shrink gap-2 overflow-y-auto p-2 mask-y\">\r\n @for (vGroup of lstMenuFiltered(); track $index) {\r\n <ion-card class=\"m-0 shrink-0\">\r\n <ion-card-content class=\"p-0 gradient-background bg-inactive flex flex-col\">\r\n <div class=\"w-10 flex items-center !justify-start gap-2 text-dark shrink-0 p-2\">\r\n <ion-icon [name]=\"vGroup.icon\"></ion-icon>\r\n <ion-text>\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + vGroup.id | translate) : vGroup.title}} \r\n </ion-text>\r\n </div>\r\n @for (vMenu of vGroup.lstMenu; track $index) {\r\n <div \r\n (click)=\"HandleNav(vMenu, $event); modal.dismiss()\"\r\n [class.bg-active]=\"router.isActive('/' + vMenu.route, false)\"\r\n class=\"w-full flex items-center !justify-start gap-2 text-dark shrink-0 !pl-8 p-1.5 border-t border-t-medium/30 menu-search\">\r\n <ion-icon [name]=\"vMenu.icon\"></ion-icon>\r\n <ion-text>\r\n {{useTranslation ? (TranslationModule.Permissao + vMenu.id | translate) : vMenu.title}} \r\n </ion-text>\r\n </div>\r\n }\r\n </ion-card-content>\r\n </ion-card>\r\n }\r\n\r\n @if (lstMenuFiltered().length == 0) {\r\n <ion-text class=\"text-center text-medium\">\r\n {{useTranslation ? (TranslationModule.SemResultado | translate) : 'Sem resultados encontrados'}}\r\n </ion-text>\r\n }\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </ion-content>\r\n </ng-template>\r\n</ion-modal>","import { Component, effect, EventEmitter, Input, model, ModelSignal, Output } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport moment from 'moment';\r\n\r\nimport { InputSelectConfiguration } from '../inputs/input-select/input.select.configuration';\r\nimport { ComparisonValueType } from '../../classes/comparison/comparison-value-type';\r\nimport { ComparisonOperator } from '../../classes/comparison/comparison-operator';\r\nimport { InputsModule } from '../inputs/inputs.module';\r\nimport { Comparison } from '../../classes/comparison/comparison';\r\nimport { InputType } from '../inputs/input-type';\r\nimport { Utils } from '../../services/utils.service';\r\n\r\nimport { InputCurrencyConfiguration, InputDecimalConfiguration, InputNumberConfiguration } from '../inputs/input-decimal/input-decimal.configuration';\r\nimport { InputStringConfiguration } from '../inputs/input-string/input-string.configuration';\r\nimport { InputDateConfiguration } from '../inputs/input-date/input-date.configuration';\r\nimport { InputFileConfiguration } from '../inputs/input-file/input-file.configuration';\r\nimport { InputBoolConfiguration } from '../inputs/input-bool/input-bool.configuration';\r\nimport { InputConfiguration } from '../inputs/input-configuration';\r\nimport { InputCpfCnpjConfiguration } from '../inputs/input-cpf-cnpj/input-cpf-cnpj.configuration';\r\nimport { InputCepConfiguration } from '../inputs/input-cep/input-cep.configuration';\r\n\r\n/** Componente padrão de filtro */\r\n@Component({\r\n standalone: true,\r\n imports: [CommonModule, IonicModule, InputsModule, ReactiveFormsModule, FormsModule],\r\n selector: 'filter',\r\n templateUrl: './filter.component.html',\r\n styleUrls: ['./filter.component.scss'],\r\n\r\n})\r\nexport class FilterComponent {\r\n\r\n /** Label do input */\r\n @Input() label: string;\r\n /** Filtro que sera utilizado na pesquisa (usando two way data binding) */\r\n filter: ModelSignal<Comparison> = model<Comparison>();\r\n\r\n /** Tipo de input do filtro */\r\n @Input() type: InputType;\r\n \r\n guid: string = Utils.GenerateGUID();\r\n \r\n /** Configuração input do filtro */\r\n _configuration: InputConfiguration | null = null;\r\n configuration: ModelSignal<InputConfiguration | null> = model<InputConfiguration | null>(null);\r\n\r\n constructor() { \r\n effect(() => {\r\n if([InputType.Date, InputType.DateTime].includes(this.type)){ \r\n if(this.filter().value){\r\n this.model = moment(this.filter().value).format(\"YYYY-MM-DDTHH:mm:ss\");\r\n this.filter().value = this.model;\r\n }\r\n }\r\n this.SetConfiguration();\r\n })\r\n }\r\n\r\n get index() { return this.filter().propertyName; }\r\n\r\n SetConfiguration() {\r\n if(!this.configuration()){\r\n if([InputType.Date, InputType.DateTime, InputType.Time].includes(this.type)){ \r\n this._configuration = new InputDateConfiguration(true) } else\r\n if(this.type == InputType.File ){ this._configuration = new InputFileConfiguration() } else\r\n if(this.type == InputType.Number ){ this._configuration = new InputNumberConfiguration() } else\r\n if(this.type == InputType.Decimal ){ this._configuration = new InputDecimalConfiguration() } else\r\n if(this.type == InputType.Currency){ this._configuration = new InputCurrencyConfiguration() } else\r\n if(this.type == InputType.String ){ this._configuration = new InputStringConfiguration() } else\r\n if(this.type == InputType.Select ){ this._configuration = new InputSelectConfiguration() } else\r\n if(this.type == InputType.TextArea){ this._configuration = new InputStringConfiguration(); } else \r\n if(this.type == InputType.Bool ){ this._configuration = new InputBoolConfiguration(); } else\r\n if(this.type == InputType.Cpf ){ this._configuration = new InputCpfCnpjConfiguration(\"CPF\"); } else\r\n if(this.type == InputType.Cnpj ){ this._configuration = new InputCpfCnpjConfiguration(\"CNPJ\"); } else \r\n if(this.type == InputType.CpfCnpj ){ this._configuration = new InputCpfCnpjConfiguration(\"CPFCNPJ\"); }\r\n if(this.type == InputType.Cep ){ this._configuration = new InputCepConfiguration(); }\r\n }\r\n\r\n if(this.configuration() && this.configuration() instanceof InputSelectConfiguration){\r\n this._configuration = new InputSelectConfiguration(\r\n this.configuration().bindValue,\r\n this.configuration().bindLabel,\r\n true,\r\n true,\r\n this.configuration().loadFrom,\r\n true,\r\n );\r\n }\r\n\r\n if(this.configuration() instanceof InputDateConfiguration){\r\n this._configuration = new InputDateConfiguration(true);\r\n }\r\n\r\n if(this.type == InputType.Bool){\r\n if(this.index == \"ativo\"){\r\n this._configuration = new InputSelectConfiguration('value', 'label', true, true, [\r\n { label: 'Somente Ativos' , value: true },\r\n { label: 'Somente Não Ativos', value: false },\r\n ]);\r\n this.model = true;\r\n }\r\n else{\r\n this._configuration = new InputSelectConfiguration('value', 'label', true, false, [\r\n { label: 'Sim', value: true },\r\n { label: 'Não', value: false },\r\n ]);\r\n }\r\n }\r\n\r\n if(!this._configuration){\r\n this._configuration = this.configuration()\r\n }\r\n }\r\n\r\n isFilterActive: boolean = false;\r\n\r\n model: any | null = null;\r\n /** Evento emitido quando o valor do filtro muda */\r\n @Output('change') changeEmitter: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n Change(): void{\r\n if(this.model){\r\n if(this.type == InputType.Date && (\r\n this.filter().operator == ComparisonOperator.LessThan || \r\n this.filter().operator == ComparisonOperator.LessThanOrEqual)\r\n )\r\n { \r\n this.model = this.FormatDateModel(moment(this.model).endOf(\"day\").toISOString());\r\n }\r\n }\r\n this.filter().value = this.model;\r\n this.filter.set(this.filter());\r\n this.changeEmitter.emit();\r\n }\r\n\r\n FormatDateModel(model: string): string{\r\n return moment(model).format(\"YYYY-MM-DDTHH:mm:ss\");\r\n }\r\n}\r\n","@if(_configuration){\r\n @switch (type) {\r\n @case ('String') {\r\n <input-string [(ngModel)]=\"model\" [label]=\"label\" (blur)=\"Change()\"></input-string>\r\n }\r\n @case ('Number') {\r\n <input-number (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-number>\r\n }\r\n @case ('Decimal') {\r\n <input-decimal (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-decimal>\r\n }\r\n @case ('Currency') {\r\n <input-currency (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-currency>\r\n }\r\n @case ('Select') {\r\n <input-select (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" [label]=\"label\" [configuration]=\"_configuration\"></input-select>\r\n }\r\n @case ('TextArea') {\r\n <input-string (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" [label]=\"label\"></input-string>\r\n }\r\n @case ('Bool') {\r\n <input-select (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" [label]=\"label\" placeholder=\"\" [configuration]=\"_configuration\"></input-select>\r\n }\r\n @case ('Date') {\r\n <input-date (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-date>\r\n }\r\n @case ('DateTime') {\r\n <input-date-time (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-date-time>\r\n }\r\n @case (\"Cep\") {\r\n <input-cep (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\"></input-cep>\r\n }\r\n @case (\"Cpf\") {\r\n <input-cpf (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-cpf>\r\n }\r\n @case (\"Cnpj\") {\r\n <input-cnpj (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-cnpj>\r\n }\r\n @case (\"CpfCnpj\") {\r\n <input-cpf-cnpj (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-cpf-cnpj>\r\n }\r\n }\r\n}","import { CommonModule } from '@angular/common';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { RouterLink } from '@angular/router';\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\n@Component({\r\n selector: 'forbidden-403',\r\n standalone: true,\r\n imports: [CommonModule, IonicModule, RouterLink],\r\n templateUrl: './forbidden-403.component.html',\r\n styleUrls: ['./forbidden-403.component.scss'],\r\n})\r\nexport class Forbidden403Component implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {}\r\n\r\n}\r\n","<div class=\"bg-white size-full\">\r\n <div class=\"relative flex flex-col items-center justify-center min-h-screen overflow-hidden\">\r\n <div class=\"absolute inset-0 w-full h-full bg-gradient-to-br from-red-500 to-red-900 animate-gradient-fade\"></div>\r\n \r\n <ion-card class=\"m-0 max-w-md\">\r\n <ion-card-content class=\"size-full bg-light/10 p-8 flex flex-col items-center justify-center text-center space-y-6\">\r\n <div class=\"p-3 rounded-full relative translucid-border\">\r\n <div class=\"size-12 flex items-center justify-center\">\r\n <ion-icon class=\"text-5xl text-white/70\" name=\"shield-outline\"></ion-icon>\r\n </div>\r\n \r\n \r\n <div class=\"absolute -inset-1 rounded-full bg-gradient-to-r from-rose-400 to-pink-500 opacity-25 blur-sm\"></div>\r\n </div>\r\n \r\n <ion-text class=\"text-4xl font-bold tracking-tight text-white/70\">\r\n Acesso Negado\r\n </ion-text>\r\n \r\n <ion-text color=\"light\" class=\"text-white/70\">\r\n Você não tem permissão para acessar este recurso. Por favor, entre em contato com o administrador se acreditar que isso é um erro.\r\n </ion-text>\r\n \r\n <div class=\"flex flex-col sm:flex-row gap-4 mt-4\">\r\n <ion-button [routerLink]=\"['/']\" color=\"danger\" class=\"text-red-600 px-4 py-2 rounded-md font-medium\">\r\n <ion-icon name=\"chevron-back\" slot=\"start\"></ion-icon>\r\n Retornar a navegação\r\n </ion-button>\r\n </div>\r\n \r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n</div>\r\n ","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [ IonicModule, CommonModule ],\r\n selector: 'info-popover',\r\n templateUrl: './info-popover.component.html',\r\n styleUrls: ['./info-popover.component.scss'],\r\n})\r\nexport class InfoPopoverComponent implements OnInit {\r\n\r\n @Output('OnClick') clickEventEmitter: EventEmitter<void> = new EventEmitter<void>()\r\n\r\n @Input() button: boolean = false;\r\n @Input() fill: string = 'solid';\r\n @Input('position') _position: string = 'relative';\r\n position: string = '';\r\n\r\n SetPositionClass(){\r\n switch(this._position){\r\n case('relative'): {\r\n this.position = \"relative\"; \r\n }\r\n break;\r\n case('top-right'):{\r\n this.position = \"absolute top-3 right-3\"; \r\n }\r\n break;\r\n case('right'):{\r\n this.position = \"absolute top-1/2 bottom 1/2 right-3\"; \r\n }\r\n break;\r\n case('bottom-right'):{\r\n this.position = \"absolute bottom-3 right-3\"; \r\n }\r\n break;\r\n case('top'):{\r\n this.position = \"absolute top-3 right-1/2 left-1/2\"; \r\n }\r\n break;\r\n case('bottom'):{\r\n this.position = \"absolute left-1/2 right-1/2 bottom-3\"; \r\n }\r\n break;\r\n case('left'):{\r\n this.position = \"absolute top-1/2 bottom-1/2 left-3\"; \r\n }\r\n break;\r\n case('top-left'):{\r\n this.position = \"absolute top-3 left-3\"; \r\n }\r\n break;\r\n case('bottom-left'):{\r\n this.position = \"absolute bottom-3 left-3\"; \r\n }\r\n break;\r\n case('center'):{\r\n this.position = \"absolute top-1/2 bottom-1/2 left-1/2 right-1/2\"; \r\n }\r\n break;\r\n }\r\n }\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.SetPositionClass();\r\n }\r\n\r\n ClickEvent(){\r\n this.clickEventEmitter.emit();\r\n }\r\n}\r\n","<div class=\"min-w-fit min-h-fit {{position}}\">\r\n <ion-button [fill]=\"fill\" size=\"small\" class=\"size-8 m-0\" (click)=\"button ? popover.present($event) : null\" (mouseenter)=\"!button ? popover.present($event) : null\">\r\n <ion-icon slot=\"icon-only\" name=\"help\"></ion-icon>\r\n </ion-button>\r\n \r\n <ion-popover #popover triggerAction=\"hover\">\r\n <ng-template>\r\n <ion-content class=\"ion-padding\">\r\n <div class=\"w-56 text-sm\">\r\n <ng-content></ng-content>\r\n </div>\r\n \r\n @if (button) {\r\n <div class=\"w-56 h-8 flex items-center justify-center mt-3\">\r\n <ion-text class=\"cursor-pointer\" color=\"primary\" (click)=\"ClickEvent()\">\r\n <ion-icon class=\"align-sub\" name=\"information-circle\"></ion-icon> Clique para saber mais\r\n </ion-text>\r\n </div>\r\n }\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n</div>","import { InputDecimalConfiguration, InputNumberConfiguration } from \"./input-decimal/input-decimal.configuration\";\r\n\r\nexport class InputsDefaultConfigurations {\r\n static readonly configurationDecimalPercentage: InputDecimalConfiguration = new InputDecimalConfiguration(2, null, '%');\r\n static readonly configurationDecimalDegree : InputDecimalConfiguration = new InputDecimalConfiguration(2, null, \"°C\");\r\n static readonly configurationDecimalM3H : InputDecimalConfiguration = new InputDecimalConfiguration(2, null, \"m³/h\");\r\n static readonly configurationDecimalMeters : InputDecimalConfiguration = new InputDecimalConfiguration(2, null, \"m\");\r\n static readonly configurationDecimalMilimeters: InputDecimalConfiguration = new InputDecimalConfiguration(2, null, \"mm\");\r\n\r\n static readonly configurationNumberPercentage: InputNumberConfiguration = new InputNumberConfiguration(null, '%');\r\n static readonly configurationNumberDegree : InputNumberConfiguration = new InputNumberConfiguration(null, \"°C\");\r\n static readonly configurationNumberM3H : InputNumberConfiguration = new InputNumberConfiguration(null, \"m³/h\");\r\n static readonly configurationNumberMeters : InputNumberConfiguration = new InputNumberConfiguration(null, \"m\");\r\n static readonly configurationNumberMilimeters: InputNumberConfiguration = new InputNumberConfiguration(null, \"mm\");\r\n}","import { AbstractControl } from \"@angular/forms\";\r\nimport {\r\n isPossiblePhoneNumber,\r\n} from 'libphonenumber-js'\r\n\r\nexport class ControlError {\r\n constructor(public message: string){}\r\n}\r\n\r\nexport class FormValidators{\r\n static readonly CPFError : ControlError = new ControlError(\"CPF incompleto\");\r\n static readonly CnpjError : ControlError = new ControlError(\"CNPJ incompleto\");\r\n static readonly CPFCnpjError: ControlError = new ControlError(\"CPF / CNPJ incompleto\");\r\n static CPFValidator(control: AbstractControl): ControlError | null {\r\n if(control.value != null){\r\n if(control.value.length != 11){ return FormValidators.CPFError; }\r\n return null;\r\n }\r\n return FormValidators.CPFError;\r\n } \r\n static CnpjValidator(control: AbstractControl): ControlError | null {\r\n if(control.value != null){\r\n if(control.value.length != 14){ return FormValidators.CnpjError; }\r\n return null;\r\n }\r\n return FormValidators.CnpjError;\r\n } \r\n static CPFCpnjValidator(control: AbstractControl): ControlError | null {\r\n if(control.value != null){\r\n if(control.value.length < 11){\r\n return FormValidators.CPFError;\r\n }else\r\n if(control.value.length > 11 && control.value.length != 14){ \r\n return FormValidators.CnpjError;\r\n }\r\n return null;\r\n }\r\n return null;\r\n } \r\n\r\n static readonly TelefoneError: ControlError = new ControlError(\"Telefone invalido\");\r\n static TelefoneValidator(control: AbstractControl): ControlError | null {\r\n if(control.value != null){\r\n if(control.value.length != 12){\r\n return FormValidators.TelefoneError;\r\n }\r\n return null;\r\n }\r\n return null;\r\n } \r\n static readonly CelularError: ControlError = new ControlError(\"Celular invalido\");\r\n static CelularValidator(control: AbstractControl): ControlError | null {\r\n if(control.value != null){\r\n if(control.value.length != 13){\r\n return FormValidators.CelularError;\r\n }\r\n return null;\r\n }\r\n return null;\r\n } \r\n static readonly TelefoneCelularError: ControlError = new ControlError(\"Telefone / Celular inválido\");\r\n static TelefoneCelularValidator(control: AbstractControl): ControlError | null {\r\n if(control.value != null){\r\n if(!(isPossiblePhoneNumber(control.value))){\r\n return FormValidators.TelefoneCelularError;\r\n }\r\n return null;\r\n }\r\n return null;\r\n } \r\n\r\n\r\n static readonly PositiveNonZeroNumberError: ControlError = new ControlError(\"%fieldName% deve ser maior que 0!\");\r\n static PositiveNonZeroNumberValidator(fieldName: string): (control: AbstractControl) => ControlError | null {\r\n return ((control: AbstractControl): ControlError | null => {\r\n const Error = FormValidators.PositiveNonZeroNumberError.message.replace(\"%fieldName%\", fieldName);\r\n if(control.value != null){\r\n if(control.value <= 0){ return new ControlError(Error); }\r\n return null;\r\n }\r\n return new ControlError(Error);;\r\n })\r\n }\r\n\r\n static readonly PositiveNumberError: ControlError = new ControlError(\"%fieldName% deve ser maior ou igual que 0!\");\r\n static PositiveNumberValidator(fieldName: string): (control: AbstractControl) => ControlError | null {\r\n return ((control: AbstractControl): ControlError | null => {\r\n const Error = FormValidators.PositiveNumberError.message.replace(\"%fieldName%\", fieldName);\r\n if(control.value != null){\r\n if(control.value < 0){ return new ControlError(Error); }\r\n return null;\r\n }\r\n return new ControlError(Error); \r\n })\r\n }\r\n\r\n static readonly ValueBetweenError = new ControlError(\"%fieldName% deve ser maior ou igual a %min% e menor ou igual a %max%\");\r\n static ValueBetweenValidator(min: number, max: number, fieldName: string, equalMin: boolean = true, equalMax: boolean = true): (control: AbstractControl) => ControlError | null {\r\n return ((control: AbstractControl): ControlError | null => {\r\n const Error = FormValidators.ValueBetweenError.message.replace(\"%fieldName%\", fieldName).replace(\"%min%\", min.toString()).replace(\"%max%\", max.toString());\r\n if(control.value != null){\r\n if(control.value < min && equalMin){ return new ControlError(Error); }else\r\n if(control.value > max && equalMax){ return new ControlError(Error); }else\r\n if(control.value <= min && !equalMin){ return new ControlError(Error); }else\r\n if(control.value >= max && !equalMax){ return new ControlError(Error); }\r\n return null;\r\n }\r\n return new ControlError(Error); \r\n });\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { NavController } from '@ionic/angular';\r\n\r\nimport { InputStringConfiguration, InputStringType } from '../components/inputs/input-string/input-string.configuration';\r\nimport { ApiUrlProviderService } from '../services/web/api-url-provider.service';\r\nimport { HttpServiceAtivo } from '../services/web/http.ativo.service';\r\nimport { GenericService } from './generic.service';\r\nimport { TableField } from '../classes/inputs/table-field';\r\nimport { InputType } from '../components/inputs/input-type';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UsuarioService extends HttpServiceAtivo {\r\n\r\n public override route: string = \"usuario\"; \r\n public override title: string = \"Usuario\"; \r\n\r\n constructor(\r\n protected override http: HttpClient,\r\n protected override fb: FormBuilder,\r\n protected override genericService: GenericService,\r\n protected override navController : NavController,\r\n protected override apiUrlProviderService : ApiUrlProviderService,\r\n ) { \r\n super(http, fb, genericService, navController, apiUrlProviderService);\r\n }\r\n\r\n override get lstTableFields(){\r\n var lst: TableField[] = [];\r\n\r\n lst[0] = this.defaultId;\r\n lst[1] = new TableField(\"Nome\" , \"nome\" , this.fb.control(null, Validators.required), InputType.String)\r\n lst[2] = new TableField(\"Apelido\", \"apelido\", this.fb.control(null, Validators.required), InputType.String)\r\n lst[3] = new TableField(\"Senha\" , \"senha\" , this.fb.control(null, Validators.required), InputType.String)\r\n lst[3].hiddenView = true;\r\n lst[3].configuration = new InputStringConfiguration(InputStringType.Password);\r\n lst[4] = this.defaultAtivo;\r\n\r\n return lst;\r\n };\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\nimport { ApiUrlProviderService } from '../../../services/web/api-url-provider.service';\r\nimport { UsuarioService } from '../../../services/usuario.service';\r\nimport { AuthService } from '../../../services/auth.service';\r\n\r\nimport { InputsModule } from '../../../components/inputs/inputs.module';\r\nimport { InputSelectConfiguration } from '../../../components/inputs/input-select/input.select.configuration';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n IonicModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n InputsModule\r\n ],\r\n selector: 'login-admin',\r\n templateUrl: './login-admin.component.html',\r\n styleUrls: ['./login-admin.component.scss'],\r\n})\r\nexport class LoginAdminComponent implements OnInit {\r\n\r\n constructor(\r\n public apiUrlProviderService: ApiUrlProviderService,\r\n public authService: AuthService,\r\n private usuarioService: UsuarioService,\r\n ) { }\r\n\r\n idUsuario: number | null;\r\n\r\n async ngOnInit() {\r\n try{\r\n this.idUsuario = (await this.authService.LoadToken()).id;\r\n }catch{}\r\n }\r\n\r\n public selectUserConfiguration: InputSelectConfiguration = new InputSelectConfiguration('id', ((v) => { return v.nome + ' - ' + v.apelido; }), false, true, this.usuarioService);\r\n SelectUser(event: number){\r\n if(event){ this.authService.BypassLogin(event).then(() => window.location.reload() ) }\r\n }\r\n\r\n apiUrl: string = this.apiUrlProviderService.apiUrl;\r\n SetApiUrl(){\r\n this.apiUrlProviderService.apiUrl = this.apiUrl;\r\n }\r\n}\r\n","@if (this.authService.isAdmin || !this.apiUrlProviderService.production) {\r\n <ion-button (click)=\"adminPopover.present($event)\" fill=\"outline\" class=\"aspect-square h-8 z-50\" size=\"small\">\r\n <ion-icon name=\"shield\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n <ion-popover id=\"admin-popover\" #adminPopover>\r\n <ng-template>\r\n <ion-content class=\"p-2 bg-transparent\">\r\n <div class=\"p-2\">\r\n <input-select\r\n [(ngModel)]=\"idUsuario\"\r\n label=\"Logar como...\"\r\n (change)=\"SelectUser($event)\"\r\n [configuration]=\"selectUserConfiguration\"\r\n ></input-select>\r\n \r\n <div class=\"rounded-2xl mt-2 overflow-hidden border border-primary/30\">\r\n <div class=\"py-2 text-center border-b border-b-medium/30\">\r\n <span class=\"font-poppins\"> API </span>\r\n </div>\r\n <ion-item lines=\"none\" style=\"--border-width: 0 !important;\">\r\n <ion-input [(ngModel)]=\"apiUrl\" (ngModelChange)=\"SetApiUrl()\"></ion-input>\r\n </ion-item>\r\n </div>\r\n </div>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n}","import { FormBuilder, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';\r\nimport { Component, EventEmitter, HostListener, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { IonicModule, NavController } from '@ionic/angular';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { EnvironmentService } from '../../services/environment.service';\r\nimport { ApiUrlProviderService } from '../../services/web/api-url-provider.service';\r\nimport { GenericService } from '../../services/generic.service';\r\nimport { AuthService } from '../../services/auth.service';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n IonicModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ],\r\n selector: 'login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss'],\r\n})\r\nexport class DefaultLoginComponent implements OnInit {\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private genericService: GenericService,\r\n private navController: NavController,\r\n private authService: AuthService,\r\n public apiUrlProviderService: ApiUrlProviderService,\r\n public coreService: EnvironmentService,\r\n private router: Router\r\n ) { \r\n this.genericService.SetTitle(\"Login\");\r\n }\r\n \r\n async ngOnInit() {\r\n this.CreateForm();\r\n\r\n if(!this.coreService.environment.production){\r\n this.frm.patchValue(this.coreService.environment.defaultCredentials); \r\n }\r\n const Token = await this.authService.LoadToken()\r\n if(this.authService.isTokenValid(Token)){\r\n this.router.navigate([\"/\"]);\r\n }\r\n }\r\n \r\n frm: FormGroup;\r\n CreateForm(): void{\r\n this.frm = this.fb.group({\r\n apelido : [null ,Validators.required],\r\n senha : [null, Validators.required]\r\n });\r\n }\r\n\r\n loading: boolean;\r\n submitted: boolean = false;\r\n\r\n @Output() OnLogin: EventEmitter<any> = new EventEmitter<any>();\r\n @ViewChild('loginContainer') loginContainer: HTMLElement;\r\n\r\n @HostListener('window:keydown', ['$event'])\r\n async Login($event?: KeyboardEvent): Promise<void>{\r\n if($event && $event.key != 'Enter'){ return; }\r\n if($event && !this.loginContainer.contains(document.activeElement)){\r\n return; // Prevent login if the active element is not within the login container\r\n }\r\n\r\n this.submitted = true;\r\n this.loading = true;\r\n \r\n if(!this.frm.valid){\r\n this.loading = false;\r\n this.genericService.PresentToast(\"Usuario / Senha não informado!\"); return;\r\n }\r\n\r\n try{\r\n const Token = await this.authService.Login(this.frm.value);\r\n\r\n this.loading = false;\r\n this.navController.navigateRoot(\"/\");\r\n this.genericService.PresentToast(\"Logado com sucesso!\", \"checkmark-circle\");\r\n this.OnLogin.emit(Token);\r\n }\r\n catch (status){\r\n if(status == 401){\r\n this.genericService.PresentToast(\"Usuário / Senha inválido (s)!\");\r\n }else{\r\n this.genericService.PresentToast(\"Ocorreu um erro ao realizar o login!\");\r\n }\r\n this.loading = false;\r\n }\r\n }\r\n}\r\n","<!-- <div class=\"size-full flex justify-center items-center relative\">\r\n <div class=\"landscape:w-4/5 portrait:w-full landscape:h-2/3 portrait:h-full landscape:max-w-[60rem] translucid-border landscape:rounded-3xl landscape:backdrop-blur-xl overflow-hidden\">\r\n <div class=\"size-full flex portrait:flex-col\" style=\"background-color: color-mix(in srgb, var(--ion-color-light) 20%, transparent 80%);\">\r\n <div class=\"shrink-0 w-96 portrait:w-full portrait:h-32 h-full p-3\">\r\n <div class=\"rounded-2xl size-full overflow-x-hidden\">\r\n <ng-content class=\"size-full\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"grow flex items-center justify-center h-full py-3 pr-3 portrait:pl-3\">\r\n <div class=\"w-96 h-full flex flex-col items-center justify-center gap-2\" *ngIf=\"frm\" [formGroup]=\"frm\">\r\n\r\n <ion-text class=\"text-5xl my-10 portrait:mt-[-5rem]\"> Login </ion-text>\r\n\r\n <ion-card class=\"w-full backdrop-blur-xl\">\r\n <ion-card-content>\r\n <ion-item lines=\"none\" label=\"Senha\" labelPlacement=\"stacked\" class=\"rounded-2xl my-3 w-full\">\r\n <ion-icon name=\"person\" slot=\"start\"></ion-icon>\r\n <ion-input placeholder=\"Usuário / User\" formControlName=\"apelido\"></ion-input>\r\n </ion-item>\r\n </ion-card-content>\r\n </ion-card>\r\n\r\n <ion-card class=\"w-full backdrop-blur-xl\"> \r\n <ion-card-content>\r\n <ion-item lines=\"none\" class=\"rounded-2xl my-3 w-full\">\r\n <ion-icon name=\"lock-closed\" slot=\"start\"></ion-icon>\r\n <ion-input type=\"password\" formControlName=\"senha\" placeholder=\"Senha / Password\">\r\n <ion-input-password-toggle slot=\"end\"></ion-input-password-toggle>\r\n </ion-input>\r\n </ion-item>\r\n </ion-card-content>\r\n </ion-card>\r\n\r\n <div class=\"w-full\">\r\n <a href=\"\">Esqueceu a senha?</a>\r\n </div>\r\n\r\n <div class=\"flex w-full\">\r\n <ion-button class=\"rounded-2xl shadow-xl default-transition w-full\" expand=\"block\" (click)=\"Login()\" [disabled]=\"loading\">\r\n <ion-spinner class=\"default-transition\" [ngClass]=\"{'-translate-x-12 opacity-0 size-0': !loading, 'mr-2' : loading}\" slot=\"start\"></ion-spinner>\r\n <ion-icon class=\"default-transition\" [ngClass]=\"{'-translate-x-12 opacity-0 size-0': loading}\" name=\"enter-outline\" slot=\"start\" ></ion-icon>\r\n <span class=\"default-transition\" > Login </span>\r\n </ion-button>\r\n\r\n <ion-button class=\"shrink-0 aspect-square ml-3\" color=\"dark\" hidden>\r\n <svg class=\"size-8\" slot=\"icon-only\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 32 32\" width=\"64\" height=\"64\"><defs><path id=\"A\" d=\"M44.5 20H24v8.5h11.8C34.7 33.9 30.1 37 24 37c-7.2 0-13-5.8-13-13s5.8-13 13-13c3.1 0 5.9 1.1 8.1 2.9l6.4-6.4C34.6 4.1 29.6 2 24 2 11.8 2 2 11.8 2 24s9.8 22 22 22c11 0 21-8 21-22 0-1.3-.2-2.7-.5-4z\"/></defs><clipPath id=\"B\"><use xlink:href=\"#A\"/></clipPath><g transform=\"matrix(.727273 0 0 .727273 -.954545 -1.45455)\"><path d=\"M0 37V11l17 13z\" clip-path=\"url(#B)\" fill=\"#fbbc05\"/><path d=\"M0 11l17 13 7-6.1L48 14V0H0z\" clip-path=\"url(#B)\" fill=\"#ea4335\"/><path d=\"M0 37l30-23 7.9 1L48 0v48H0z\" clip-path=\"url(#B)\" fill=\"#34a853\"/><path d=\"M48 48L17 24l-4-3 35-10z\" clip-path=\"url(#B)\" fill=\"#4285f4\"/></g></svg>\r\n </ion-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div> -->\r\n\r\n<div #loginContainer class=\"size-full flex justify-center items-center relative portrait:p-4\">\r\n <div class=\"landscape:w-4/5 landscape:h-2/3 landscape:xl:max-w-[60rem] portrait:size-full translucid-border backdrop-blur-xl rounded-3xl overflow-hidden\">\r\n <div class=\"size-full flex portrait:flex-col\" style=\"background-color: color-mix(in srgb, var(--ion-color-light) 20%, transparent 80%);\">\r\n <div class=\"shrink-0 w-96 portrait:w-full portrait:h-40 landscape:h-full p-2\">\r\n <div class=\"size-full rounded-2xl overflow-hidden\">\r\n <ng-content select=\"[slot=logo]\" class=\"size-full\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"shrink size-full flex flex-col items-center justify-center gap-3 px-10 relative\" *ngIf=\"frm\" [formGroup]=\"frm\">\r\n <ion-text class=\"h-24 text-5xl\"> Login </ion-text>\r\n\r\n <ion-card class=\"w-full backdrop-blur-xl\">\r\n <ion-card-content>\r\n <ion-item lines=\"none\" label=\"Senha\" labelPlacement=\"stacked\" class=\"rounded-2xl my-3 w-full\">\r\n <ion-icon name=\"person\" slot=\"start\"></ion-icon>\r\n <ion-input placeholder=\"Usuário / User\" formControlName=\"apelido\"></ion-input>\r\n </ion-item>\r\n </ion-card-content>\r\n </ion-card>\r\n\r\n <ion-card class=\"w-full backdrop-blur-xl\"> \r\n <ion-card-content>\r\n <ion-item lines=\"none\" class=\"rounded-2xl my-3 w-full\">\r\n <ion-icon name=\"lock-closed\" slot=\"start\"></ion-icon>\r\n <ion-input type=\"password\" formControlName=\"senha\" placeholder=\"Senha / Password\">\r\n <ion-input-password-toggle slot=\"end\"></ion-input-password-toggle>\r\n </ion-input>\r\n </ion-item>\r\n </ion-card-content>\r\n </ion-card>\r\n\r\n <div class=\"flex w-full\">\r\n <ion-button class=\"transition-all rounded-2xl shadow-xl default-transition w-full\" expand=\"block\" (click)=\"Login()\" [disabled]=\"loading\">\r\n <ion-spinner class=\"default-transition\" [ngClass]=\"{'-translate-x-12 opacity-0 size-0': !loading, 'mr-2' : loading}\" slot=\"start\"></ion-spinner>\r\n <ion-icon class=\"default-transition\" [ngClass]=\"{'-translate-x-12 opacity-0 size-0': loading}\" name=\"enter-outline\" slot=\"start\" ></ion-icon>\r\n <span class=\"default-transition\"> Login </span>\r\n </ion-button>\r\n\r\n <!-- <ion-button class=\"shrink-0 aspect-square ml-3\" color=\"dark\" hidden>\r\n <svg class=\"size-8\" slot=\"icon-only\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 32 32\" width=\"64\" height=\"64\"><defs><path id=\"A\" d=\"M44.5 20H24v8.5h11.8C34.7 33.9 30.1 37 24 37c-7.2 0-13-5.8-13-13s5.8-13 13-13c3.1 0 5.9 1.1 8.1 2.9l6.4-6.4C34.6 4.1 29.6 2 24 2 11.8 2 2 11.8 2 24s9.8 22 22 22c11 0 21-8 21-22 0-1.3-.2-2.7-.5-4z\"/></defs><clipPath id=\"B\"><use xlink:href=\"#A\"/></clipPath><g transform=\"matrix(.727273 0 0 .727273 -.954545 -1.45455)\"><path d=\"M0 37V11l17 13z\" clip-path=\"url(#B)\" fill=\"#fbbc05\"/><path d=\"M0 11l17 13 7-6.1L48 14V0H0z\" clip-path=\"url(#B)\" fill=\"#ea4335\"/><path d=\"M0 37l30-23 7.9 1L48 0v48H0z\" clip-path=\"url(#B)\" fill=\"#34a853\"/><path d=\"M48 48L17 24l-4-3 35-10z\" clip-path=\"url(#B)\" fill=\"#4285f4\"/></g></svg>\r\n </ion-button> -->\r\n </div>\r\n\r\n <div class=\"w-full\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { RouterLinkWithHref } from '@angular/router';\r\nimport { Preferences } from '@capacitor/preferences';\r\n\r\nimport { DrawerComponent } from '../drawer/drawer.component';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { SIonPopoverModule } from '../popover/sion-popover.module';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [ CommonModule, IonicModule, RouterLinkWithHref, SIonPopoverModule ],\r\n selector: 'main-content',\r\n templateUrl: './main-content.component.html',\r\n styleUrls: ['./main-content.component.scss'],\r\n})\r\nexport class MainContentComponent implements OnInit {\r\n\r\n @Input() backdrop: string = 'bg-primary/30';\r\n @Input() shadowColor: string = 'color-mix(in srgb, var(--ion-color-primary) 15%, transparent)';\r\n\r\n @Input() colapsed: boolean = false;\r\n @Input() drawerComponent: DrawerComponent;\r\n\r\n constructor(\r\n public authService: AuthService,\r\n ) { }\r\n\r\n Token: any;\r\n async ngOnInit(): Promise<void> {\r\n this.Token = await this.authService.LoadToken();\r\n this.Theme = Number((await Preferences.get({ key: 'theme' })).value) as Theme;\r\n\r\n this.SetTheme(this.Theme);\r\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {\r\n this.SetTheme(this.Theme);\r\n });\r\n }\r\n\r\n Theme: Theme = Theme.System;\r\n async SetTheme(theme: Theme) {\r\n this.Theme = theme;\r\n await Preferences.set({ key: 'theme', value: this.Theme.toString() });\r\n if (this.Theme === Theme.System) {\r\n var matches = window.matchMedia('(prefers-color-scheme: dark)').matches;\r\n if (matches) {\r\n document.body.classList.add('dark');\r\n } else {\r\n document.body.classList.remove('dark');\r\n }\r\n }\r\n else \r\n if (this.Theme === Theme.Light) {\r\n document.body.classList.remove('dark');\r\n } else \r\n if (this.Theme === Theme.Dark) {\r\n document.body.classList.add('dark'); \r\n }\r\n }\r\n\r\n get fullScreen(): boolean { \r\n if(document.fullscreenElement != null){\r\n return true;\r\n }\r\n return false; \r\n };\r\n\r\n @ViewChild('target') FullScreenConteiner;\r\n FullScreen(): void{\r\n if(!this.fullScreen){\r\n const elem = this.FullScreenConteiner.nativeElement;\r\n \r\n if (elem.requestFullscreen) {\r\n elem.requestFullscreen();\r\n } else if (elem.msRequestFullscreen) {\r\n elem.msRequestFullscreen();\r\n } else if (elem.mozRequestFullScreen) {\r\n elem.mozRequestFullScreen();\r\n } else if (elem.webkitRequestFullscreen) {\r\n elem.webkitRequestFullscreen();\r\n }\r\n }else{\r\n document.exitFullscreen()\r\n }\r\n }\r\n}\r\n\r\nenum Theme {\r\n System = 0,\r\n Light = 1,\r\n Dark = 2,\r\n}\r\n","<div class=\"size-full flex flex-col\" [ngClass]=\"{'bg-light/50': fullScreen}\" #target>\r\n <div class=\"w-full h-14 relative shrink-0\">\r\n <ion-card class=\"m-0 rounded-none size-full border-none\">\r\n <ion-card-content class=\"p-0 px-2 size-full flex\">\r\n <div class=\"w-1/2 h-full flex items-center justify-start\">\r\n @if (!fullScreen) {\r\n <ion-menu-button [routerLink]=\"['/']\" [autoHide]=\"true\"></ion-menu-button>\r\n }\r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"w-1/2 h-full flex items-center justify-end gap-2\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n <ion-button (click)=\"FullScreen()\" fill=\"outline\" color=\"dark\" size=\"small\" class=\"size-10 aspect-square portrait:hidden\">\r\n <ion-icon slot=\"icon-only\" name=\"expand\"></ion-icon>\r\n </ion-button>\r\n\r\n\r\n @if (!fullScreen) {\r\n <div #anchor>\r\n <ion-button (click)=\"userPopover.present($event)\" size=\"small\" class=\"size-10 aspect-square\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </ion-button>\r\n </div>\r\n <sion-popover #userPopover [anchor]=\"anchor\" [flip]=\"false\" width=\"13rem\">\r\n <div class=\"w-full flex flex-col overflow-hidden\">\r\n <div class=\"w-full flex p-2 gap-2 overflow-hidden\">\r\n <div class=\"size-10 shrink-0 aspect-square rounded-2xl text-sm flex items-center justify-center bg-primary\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </div>\r\n\r\n <div class=\"shrink-0 w-full flex flex-col justify-center items-start overflow-hidden text-sm\">\r\n <span class=\"truncate\"> {{Token ? Token.Nome : ''}} </span>\r\n <span class=\"truncate text-secondary\"> @{{Token ? Token.Apelido : ''}} </span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"w-full\">\r\n <ng-content class=\"size-full\" select=\"[slot=user-popover]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"w-full p-1 !pb-0 translucid-border !border-x-0 !border-b-0\">\r\n <div class=\"rounded-xl flex gap-2 items-center justify-start default-transition py-1 px-2\">\r\n <ion-icon name=\"contrast\"></ion-icon>\r\n <ion-text> Tema </ion-text>\r\n </div>\r\n\r\n <div class=\"flex flex-col pl-4\">\r\n <ion-radio-group alignment=\"start\" [allowEmptySelection]=\"false\" [value]=\"Theme\" (ionChange)=\"SetTheme($event.detail.value)\">\r\n <ion-item class=\"bg-transparent\" lines=\"full\">\r\n <ion-icon name=\"cog\" slot=\"start\"></ion-icon>\r\n <ion-radio class=\"w-full\" [value]=\"0\">Sistema</ion-radio>\r\n </ion-item>\r\n <ion-item class=\"bg-transparent\" lines=\"full\">\r\n <ion-icon name=\"sunny\" slot=\"start\"></ion-icon>\r\n <ion-radio class=\"w-full\" [value]=\"1\">Claro</ion-radio>\r\n </ion-item>\r\n <ion-item class=\"bg-transparent\" lines=\"none\">\r\n <ion-icon name=\"moon\" slot=\"start\"></ion-icon>\r\n <ion-radio class=\"w-full\" [value]=\"2\">Escuro</ion-radio>\r\n </ion-item>\r\n </ion-radio-group>\r\n\r\n\r\n <!-- <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0 overflow-hidden\">\r\n <div class=\"rounded-xl flex gap-2 items-center justify-start cursor-pointer hover:bg-medium/30 default-transition py-1 px-2\">\r\n <ion-checkbox [checked]=\"Theme == 0\" (ionChange)=\"SetTheme(0)\" ></ion-checkbox>\r\n <ion-icon name=\"cog\"></ion-icon>\r\n <ion-text> Sistema </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0 overflow-hidden\">\r\n <div class=\"rounded-xl flex gap-2 items-center justify-start cursor-pointer hover:bg-medium/30 default-transition py-1 px-2\">\r\n <ion-checkbox [checked]=\"Theme == 1\" (ionChange)=\"SetTheme(1)\" ></ion-checkbox>\r\n <ion-icon name=\"sunny\"></ion-icon>\r\n <ion-text> Claro </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0 overflow-hidden\">\r\n <div class=\"rounded-xl flex gap-2 items-center justify-start cursor-pointer hover:bg-medium/30 default-transition py-1 px-2\">\r\n <ion-checkbox [checked]=\"Theme == 2\" (ionChange)=\"SetTheme(2)\" ></ion-checkbox>\r\n <ion-icon name=\"moon\"></ion-icon>\r\n <ion-text> Escuro </ion-text>\r\n </div>\r\n </div> -->\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0\">\r\n <div (click)=\"authService.Loggout()\" class=\"rounded-xl flex gap-2 cursor-pointer items-center justify-start hover:bg-medium/10 default-transition py-1 px-2\">\r\n <ion-icon color=\"danger\" name=\"exit\"></ion-icon>\r\n <ion-text> Log Out </ion-text>\r\n </div>\r\n\r\n <!-- <ion-text> Log Out </ion-text>\r\n <ion-button (click)=\"authService.Loggout()\" class=\"size-8 shrink-0\" size=\"small\" fill=\"clear\" color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"exit-outline\"></ion-icon> \r\n </ion-button> -->\r\n </div>\r\n </div>\r\n\r\n <!-- <div class=\"size-full\">\r\n <div class=\"w-full p-1 flex items-center\">\r\n <div class=\"size-10 shrink-0 aspect-square rounded-2xl text-sm flex items-center justify-center default-transition\" style=\"background-color: var(--ion-color-primary);\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </div>\r\n <div class=\"grow min-w-10 p-2 justify-center items-center whitespace-nowrap text-ellipsis overflow-hidden block default-transition\" [ngClass]=\"{'opacity-0 w-0': colapsed}\">\r\n <span>{{Token ? Token.Nome : ''}}</span> <br>\r\n <ion-text color=\"secondary\" class=\"text-sm\">\r\n @{{Token ? Token.Apelido : ''}}\r\n </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"w-full\">\r\n <ng-content class=\"size-full\" select=\"[slot=user-popover]\"></ng-content>\r\n </div>\r\n <div class=\"w-full p-1 px-2 translucid-border !border-x-0 !border-b-0 flex items-center justify-between\">\r\n <div class=\"hover:bg-medium/30 default-transition size-full\">\r\n <ion-button color=\"dark\" fill=\"clear\" size=\"small\" class=\"rounded-xl w-full text-left overflow-hidden\">\r\n <ion-icon slot=\"start\" name=\"contrast\"></ion-icon>\r\n <ion-label class=\"text-sm\">Tema</ion-label>\r\n </ion-button>\r\n </div>\r\n </div>\r\n <div class=\"w-full p-1 px-2 translucid-border !border-x-0 !border-b-0 flex items-center justify-between\">\r\n <ion-text> Log Out </ion-text>\r\n <ion-button (click)=\"authService.Loggout()\" class=\"size-8 shrink-0\" size=\"small\" fill=\"clear\" color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"exit-outline\"></ion-icon> \r\n </ion-button>\r\n </div>\r\n </div> -->\r\n </sion-popover>\r\n }\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n <div class=\"size-full relative p-2 pt-0 bg-light\">\r\n <div class=\"size-full relative rounded-2xl content-shadow overflow-hidden {{backdrop}}\" style=\"--shadow-color: {{shadowColor}}\">\r\n <ng-content></ng-content> \r\n </div>\r\n </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\n@Component({\r\n selector: 'sion-card',\r\n standalone: true,\r\n imports: [ CommonModule, IonicModule ],\r\n templateUrl: './sion-card.component.html',\r\n styleUrls: ['./sion-card.component.scss'],\r\n})\r\nexport class SionCardComponent implements OnInit {\r\n\r\n\r\n @Input() background: string = 'bg-light';\r\n @Input() backdrop: string = 'bg-primary/30';\r\n @Input() justify: string = 'justify-center';\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {}\r\n\r\n}\r\n","<ion-card class=\"m-0 size-full\">\r\n <ion-card-content class=\"size-full p-0\">\r\n <div class=\"size-full {{backdrop}} flex flex-col overflow-hidden\">\r\n <div class=\"flex items-center {{justify}} p-2 min-h-8 shrink-0\">\r\n <ng-content select=\"[slot=header]\"></ng-content>\r\n </div>\r\n <div class=\"{{background}} size-full rounded-t-2xl overflow-hidden\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </ion-card-content>\r\n</ion-card>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { StepperComponent } from '../stepper.component';\r\n\r\n@Component({\r\n selector: 'step',\r\n templateUrl: './step.component.html',\r\n styleUrls: ['./step.component.scss'],\r\n})\r\nexport class StepComponent implements OnInit {\r\n \r\n @Input() label : string = \"Label\";\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n parent: StepperComponent;\r\n\r\n get index(): number{ \r\n if(this.parent && this.parent.lstSteps){\r\n return this.parent.lstSteps.toArray().indexOf(this);\r\n }\r\n return 0;\r\n }\r\n \r\n get fill(): boolean{\r\n if(this.parent){\r\n return this.parent.lstSteps.toArray().indexOf(this) == this.parent.value();\r\n }\r\n return false;\r\n };\r\n \r\n get selected(): boolean{\r\n if(this.parent){\r\n return this.parent.lstSteps.toArray().indexOf(this) <= this.parent.value();\r\n }\r\n return false;\r\n };\r\n\r\n get _fill(){\r\n return this.fill ? 1 : 0; \r\n }\r\n}","<div class=\"px-1 flex flex-col items-center justify-center text-center animated\">\r\n <div [ngClass]=\"{'selected': selected}\" class=\"default-transition min-h-8 min-w-8 bg-red-400 flex items-center justify-center rounded-2xl step\">\r\n <div class=\"wrapper\"><ng-content select=\"ion-icon, ion-text\"></ng-content></div>\r\n <div class=\"default\">\r\n {{index + 1}}\r\n </div>\r\n </div>\r\n \r\n <ion-text> {{label}} </ion-text>\r\n <ion-progress-bar [color]=\"selected ? 'secondary' : 'primary'\" class=\"h-2 ease-in-out\" [value]=\"_fill\"></ion-progress-bar>\r\n</div>","import { AfterContentInit, Component, ContentChildren, QueryList } from '@angular/core';\r\nimport { StepComponent } from './step/step.component';\r\nimport { CustomInput } from '../inputs/custom-input';\r\nimport { InputProviderFactory } from '../inputs/input-provider-factory';\r\n\r\n@Component({\r\n selector: 'stepper',\r\n templateUrl: './stepper.component.html',\r\n styleUrls: ['./stepper.component.scss'],\r\n providers: InputProviderFactory.GetProviders(StepperComponent)\r\n})\r\nexport class StepperComponent extends CustomInput<any> implements AfterContentInit {\r\n override setFocus(event: MouseEvent): void {\r\n // throw new Error('Method not implemented.');\r\n }\r\n\r\n constructor() { super(); }\r\n ngAfterContentInit(): void {\r\n if(this.lstSteps){\r\n this.lstSteps.filter(p => !p.parent).forEach(comp => { comp.parent = this; });\r\n }\r\n }\r\n\r\n @ContentChildren(StepComponent) lstSteps : QueryList<StepComponent>;\r\n\r\n override writeValue(obj: string): void | Promise<void> {\r\n this.value.set(obj);\r\n this.runValidation();\r\n }\r\n\r\n override SetValue(obj: any): void {\r\n this.value.set(obj);\r\n this.ngAfterContentInit();\r\n this.runValidation();\r\n this.propagateChange(obj);\r\n }\r\n}\r\n","<div class=\"flex w-full justify-evenly\">\r\n <ng-content select=\"step\" class=\"grow\"></ng-content>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { StepComponent } from './step/step.component';\r\nimport { StepperComponent } from './stepper.component';\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\n@NgModule({\r\n declarations: [ StepComponent, StepperComponent ],\r\n exports: [ StepComponent, StepperComponent ],\r\n imports: [\r\n CommonModule,\r\n IonicModule\r\n ]\r\n})\r\nexport class StepperModule { }\r\n","import { Component, Input, ViewChild, ViewContainerRef } from \"@angular/core\";\r\nimport { RouterOutlet } from \"@angular/router\";\r\nimport { Utils } from \"../../../services/utils.service\";\r\n\r\n@Component({\r\n selector: 'tab',\r\n templateUrl: './tab.component.html',\r\n styleUrls: ['./tab.component.scss'],\r\n})\r\nexport class TabComponent {\r\n @Input() id : string = null;\r\n\r\n @Input() label: string = \"Label\";\r\n /** Icone da aba @link https://ionic.io/ionicons */\r\n @Input() name : string = \"warning\";\r\n /** Rota aba, quando náo informada irá mostrar o conteudo do componente */\r\n @Input() public route : string | null = null;\r\n @Input() active: boolean = false;\r\n @Input() relative: boolean = false;\r\n\r\n constructor() { }\r\n\r\n @ViewChild('placeToRender', {read: ViewContainerRef}) placeToRender: ViewContainerRef;\r\n routerOutlet: RouterOutlet | null = null;\r\n\r\n guid = Utils.GenerateGUID();\r\n}\r\n\r\n","<div [ngClass]=\"{'-translate-x-full opacity-0': !active,\r\n '!relative': relative }\" class=\"default-transition overflow-hidden max-h-full size-full absolute top-0 left-0\">\r\n @if(route && active){\r\n <router-outlet class=\"size-full\"></router-outlet>\r\n }@else {\r\n <ng-content></ng-content>\r\n }\r\n</div>","import { AfterContentInit, Component, ContentChild, ContentChildren, EventEmitter, OnInit, Output, QueryList } from '@angular/core';\r\nimport { TabComponent } from '../tab/tab.component';\r\nimport { RouterOutlet } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'tabs',\r\n templateUrl: './tabs.component.html',\r\n styleUrls: ['./tabs.component.scss'],\r\n})\r\nexport class TabsComponent implements AfterContentInit {\r\n\r\n @ContentChildren(TabComponent) lstTabs: QueryList<TabComponent>;\r\n @ContentChild(RouterOutlet) router: RouterOutlet;\r\n \r\n /** Emitido quando a aba é trocada. Emite o ID do elemento */\r\n @Output('change') changeEmitter: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n constructor(\r\n ) { }\r\n\r\n ngAfterContentInit(): void {\r\n let activeTabs = this.lstTabs.filter((tab) => tab.active);\r\n if(activeTabs.length == 0 && this.lstTabs.length > 0) { this.SetActiveTab(this.lstTabs.first); }\r\n \r\n let currentLocationTabs = this.lstTabs.filter(tab => tab.route).filter((tab) => window.location.pathname.toLocaleLowerCase().includes((tab.route).toLocaleLowerCase()));\r\n if(currentLocationTabs.length > 0){ this.SetActiveTab(currentLocationTabs[0]); }\r\n }\r\n\r\n ActiveTab: TabComponent | null = null;\r\n SetActiveTab(tab: TabComponent){\r\n this.lstTabs.forEach(tab => tab.active = false);\r\n tab.active = true;\r\n this.ActiveTab = tab;\r\n if(tab.route){ this.isComponent = false; } else{ this.isComponent = true; }\r\n this.changeEmitter.emit(this.ActiveTab.id);\r\n }\r\n isComponent: boolean = true;\r\n\r\n GetElse(){\r\n return this.lstTabs.some(p => p.route != null) ? './' : undefined\r\n }\r\n}\r\n","<div class=\"flex flex-col size-full\">\r\n <div class=\"h-10 w-full flex px-3 mask-x/3 overflow-x-auto\">\r\n @for (tab of lstTabs; track $index) {\r\n <div [routerLink]=\"tab.route ? '.' + tab.route : GetElse()\" [ngClass]=\"{'selected': tab.active}\" class=\"default-transition !translucid-background translucid-border tab-selector !border-b-0 animated-from-right whitespace-nowrap\" (click)=\"SetActiveTab(tab)\">\r\n <ion-text class=\"mx-auto\" [color]=\"tab.active ? 'dark' : ''\">\r\n <ion-icon [name]=\"tab.name\" class=\"align-sub mr-1\"></ion-icon> {{tab.label}}\r\n </ion-text>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"translucid-border tab-content !overflow-hidden relative\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>","import { RouterLinkWithHref, RouterModule } from '@angular/router';\r\nimport { CommonModule } from '@angular/common';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { TabsComponent } from './tabs/tabs.component';\r\nimport { TabComponent } from './tab/tab.component';\r\nimport { NgVarDirective } from '../../directives/ng-var.directive';\r\n\r\n@NgModule({\r\n declarations: [ TabsComponent, TabComponent ],\r\n exports : [ TabsComponent, TabComponent ],\r\n imports: [ CommonModule, IonicModule, NgVarDirective, RouterLinkWithHref, RouterModule ]\r\n})\r\nexport class TabsModule { }\r\n","import { CommonModule } from '@angular/common';\r\nimport { AfterViewInit, Component, ElementRef, Host, Input, input, OnDestroy, OnInit, SkipSelf, ViewChild } from '@angular/core';\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\n@Component({\r\n selector: 'tooltip',\r\n standalone: true,\r\n imports: [CommonModule, IonicModule],\r\n templateUrl: './tooltip.component.html',\r\n styleUrls: ['./tooltip.component.scss'],\r\n})\r\nexport class TooltipComponent {\r\n\r\n @Input() align: 'top' | 'bottom' | 'left' | 'right' = 'right';\r\n @Input() color: string= 'secondary';\r\n}\r\n","<!-- <div\r\n class=\"\r\n absolute\r\n \r\n\r\n default-transition px-2\r\n min-w-fit h-fit py-1\r\n bg-[var(--ion-color-secondary)] \r\n rounded-xl\r\n \"\r\n [ngClass]=\"{'!translate-x-0 !translate-y-0 !opacity-100': _active}\"\r\n> \r\n <div class=\"absolute -left-1 top-0 rounded bottom-0 my-auto rotate-45 h-4 aspect-square bg-red-500 [clip-path:polygon(0_20%,_0%_100%,_80%_100%)]\"></div>\r\n <div class=\"z-[100] whitespace-nowrap\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div> -->\r\n<div #wrapper id=\"wrapper\" class=\"size-full absolute left-0 right-0 animated\">\r\n <div\r\n id=\"tooltip\"\r\n style=\"--background: var(--ion-color-{{color}})\"\r\n class=\"\r\n !pointer-events-none\r\n absolute\r\n default-transition px-2\r\n min-w-fit h-fit py-1\r\n bg-[var(--background)]\r\n rounded-xl blur-sm\r\n opacity-0\r\n max-w-full\r\n {{align}}\r\n \"\r\n > \r\n @switch (align) {\r\n @case ('top') {\r\n <div class=\"absolute rounded -bottom-1 left-0 right-0 mx-auto -rotate-45 h-4 aspect-square bg-[var(--background)] [clip-path:polygon(0_20%,_0%_100%,_80%_100%)]\"></div>\r\n }\r\n @case ('bottom') {\r\n <div class=\"absolute rounded -top-1 left-0 right-0 mx-auto rotate-[135deg] h-4 aspect-square bg-[var(--background)] [clip-path:polygon(0_20%,_0%_100%,_80%_100%)]\"></div>\r\n }\r\n @case ('right') {\r\n <div class=\"absolute rounded -left-1 top-0 bottom-0 my-auto rotate-45 h-4 aspect-square bg-[var(--background)] [clip-path:polygon(0_20%,_0%_100%,_80%_100%)]\"></div>\r\n }\r\n @case ('left') {\r\n <div class=\"absolute rounded -right-1 top-0 bottom-0 my-auto -rotate-[135deg] h-4 aspect-square bg-[var(--background)] [clip-path:polygon(0_20%,_0%_100%,_80%_100%)]\"></div>\r\n }\r\n }\r\n <div class=\"z-[100] block text-dark text-sm\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div> \r\n</div>\r\n\r\n","import { AfterContentInit, Component, ElementRef, HostListener, Input, OnChanges, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { TooltipComponent } from '../tooltip/tooltip.component';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'text-tooltip',\r\n standalone: true,\r\n imports: [CommonModule, IonicModule, TooltipComponent],\r\n templateUrl: './text-tooltip.component.html',\r\n styleUrls: ['./text-tooltip.component.scss'],\r\n})\r\nexport class TextTooltipComponent implements OnChanges, AfterContentInit {\r\n isOverflowing: boolean = true;\r\n\r\n @ViewChild('text') text: ElementRef<HTMLDivElement>;\r\n private CheckOverflowHandler(){\r\n if(this.text){ this.isOverflowing = this.text.nativeElement.scrollWidth > this.text.nativeElement.clientWidth; }\r\n };\r\n \r\n @Input() align: 'top' | 'bottom' | 'left' | 'right' = 'right';\r\n @Input() color: string= 'secondary';\r\n\r\n constructor() { \r\n }\r\n \r\n @HostListener(\"mouseenter\")\r\n onMouseEnter() {\r\n this.CheckOverflowHandler()\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n setTimeout(() => this.CheckOverflowHandler(), 100)\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.CheckOverflowHandler();\r\n }\r\n\r\n @HostListener(\"window:resize\")\r\n onResize() {\r\n this.CheckOverflowHandler()\r\n }\r\n\r\n}\r\n","<div #text class=\"w-full truncate relative overflow-hidden\">\r\n <ng-content select=\"[slot=content]\"></ng-content>\r\n</div>\r\n<div class=\"absolute top-0 left-0 size-full\">\r\n <tooltip [color]=\"color\" [align]=\"align\" *ngIf=\"isOverflowing\" [hidden]=\"!isOverflowing\">\r\n <ng-content select=\"[slot=tooltip]\"></ng-content>\r\n </tooltip>\r\n</div>","import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { AuthService } from '../services/auth.service';\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate {\r\n\r\n constructor(private auth: AuthService, private router: Router) {}\r\n\r\n async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> {\r\n const Token = await this.auth.LoadToken();\r\n const Authenticated = this.auth.isTokenValid(Token);\r\n if(!Authenticated){\r\n this.auth.Loggout();\r\n }\r\n return Authenticated;\r\n }\r\n}","import { HttpClient, HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from \"@angular/common/http\";\r\nimport { Observable, catchError } from \"rxjs\";\r\nimport { ToastController } from \"@ionic/angular\";\r\nimport { Injectable } from \"@angular/core\";\r\n\r\nimport { ApiUrlProviderService } from \"../services/web/api-url-provider.service\";\r\nimport { GenericService } from \"../services/generic.service\";\r\nimport { AuthService } from \"../services/auth.service\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n\r\n constructor(\r\n private auth: AuthService,\r\n private http: HttpClient,\r\n private genericService: GenericService,\r\n private toastController: ToastController,\r\n private apiUrlProviderService: ApiUrlProviderService,\r\n private router: Router,\r\n ) {}\r\n\r\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n return next.handle(req).pipe(\r\n catchError((error: HttpErrorResponse) => { \r\n // if(error.status == 0){\r\n // this.PresentErrorToast(error.error, req, error);\r\n // }\r\n if(error.status == 401){ \r\n this.auth.Loggout(); \r\n this.router.navigate(['/login'], { queryParams: { returnUrl: window.location.pathname } });\r\n }else \r\n if(error.status == 403){\r\n this.router.navigate(['/403'])\r\n } else\r\n if(error.status != 404){ \r\n this.PresentErrorToast(error.error, req, error);\r\n }\r\n throw error;\r\n })\r\n );\r\n }\r\n\r\n private localUserKey: string = \"APLICATION_USER_KEY\";\r\n private localAdminKey: string = \"APLICATION_ADMIN_KEY\";\r\n async PresentErrorToast(json: string, request: any, fullError: any) {\r\n var res: ApiErrorReturn = null;\r\n try{\r\n res = JSON.parse(json) as ApiErrorReturn\r\n }catch{\r\n res = { Erro: \"Não foi possivel converter o JSON de retorno!\", Mensagem: \"Ocorreu um erro inesperado!\", _Info: \"\" }\r\n }\r\n res._Info = await this.GetInfo(request, fullError);\r\n\r\n const toast = await this.toastController.create({\r\n message: res.Mensagem,\r\n duration: 5000,\r\n icon: \"bug\",\r\n position: 'bottom',\r\n translucent: false, \r\n cssClass: 'ionic-toast',\r\n buttons: [\r\n { \r\n text: \"Reportar Erro\",\r\n icon: \"document\",\r\n side: \"end\",\r\n handler: () => {\r\n this.Report(res);\r\n }\r\n }\r\n ]\r\n });\r\n\r\n await toast.present();\r\n }\r\n\r\n protected get fullRoute(): string{\r\n return this.apiUrlProviderService.apiUrl + 'error'\r\n }\r\n Report(res: ApiErrorReturn): void{\r\n this.http.post(this.fullRoute, res).subscribe({\r\n next: (res) => { this.genericService.PresentToast(\"Erro informado com sucesso!\", \"checkmark-circle\"); },\r\n error:(err) => { this.genericService.PresentToast(\"Ocorreu um erro inesperado no retorno do erro!\"); }\r\n });\r\n }\r\n\r\n async GetInfo(request: any, fullError: any): Promise<string>{\r\n return JSON.stringify({\r\n token : this.auth.LoadToken(),\r\n tokenAdmin: this.auth.LoadTokenAdmin(),\r\n currentUrl: window.location.href,\r\n userId : (await this.auth.LoadToken()).id,\r\n jwtAdmin : localStorage.getItem(this.localAdminKey),\r\n jwtUser : localStorage.getItem(this.localUserKey),\r\n request : request,\r\n error : fullError,\r\n apiUrl : this.apiUrlProviderService.apiUrl\r\n });\r\n }\r\n}\r\n\r\nclass ApiErrorReturn {\r\n Mensagem: string;\r\n Erro: string;\r\n _Info: string;\r\n}","import { AuthService } from '../services/auth.service';\r\nimport { Injectable } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor\r\n} from '@angular/common/http';\r\nimport { Observable, first, firstValueFrom, from, lastValueFrom, mergeMap, switchMap } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TokenInterceptor implements HttpInterceptor {\r\n\r\n constructor(\r\n private auth: AuthService\r\n ) {}\r\n\r\n intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\r\n return from(this.auth.JWToken()).pipe( \r\n switchMap((authToken: string) => {\r\n const authReq = request.clone({ setHeaders: { Authorization: `Bearer ${authToken}` } });\r\n return next.handle(authReq);\r\n })\r\n );\r\n }\r\n}\r\n","/*\r\n * Public API Surface of @sapphire-ion/framework\r\n */\r\n\r\n// [ 📁 Lib ]\r\n//[ 📁 Classes ]\r\n // [ 📁 Classes -> Comparison ]\r\n export * from '../lib/classes/comparison/properties/bool-property';\r\n export * from '../lib/classes/comparison/properties/date-property';\r\n export * from '../lib/classes/comparison/properties/datetime-property';\r\n export * from '../lib/classes/comparison/properties/decimal-property';\r\n export * from '../lib/classes/comparison/properties/enum-property';\r\n export * from '../lib/classes/comparison/properties/implicit-property';\r\n export * from '../lib/classes/comparison/properties/int-property';\r\n export * from '../lib/classes/comparison/properties/long-property';\r\n export * from '../lib/classes/comparison/properties/string-property';\r\n export * from '../lib/classes/comparison/properties/time-property';\r\n export * from '../lib/classes/comparison/properties/bool-property';\r\n export * from '../lib/classes/comparison/comparison';\r\n export * from '../lib/classes/comparison/comparison-operator';\r\n export * from '../lib/classes/comparison/comparison-value-type';\r\n // [ 📁 Classes -> Filters ]\r\n export * from '../lib/classes/filters/view-filtros';\r\n // [ 📁 Classes -> Inputs ]\r\n export * from '../lib/classes/inputs/table-field-form-builder';\r\n export * from '../lib/classes/inputs/table-field';\r\n // [ 📁 Classes -> Routes ]\r\n export * from '../lib/classes/routes/default-routing-factory';\r\n export * from '../lib/classes/routes/id-preloader-configuration';\r\n export * from '../lib/classes/routes/route-data';\r\nexport * from '../lib/classes/credentials';\r\nexport * from '../lib/classes/environment';\r\nexport * from '../lib/classes/infinite-scroll';\r\nexport * from '../lib/classes/page-option';\r\n\r\n//[ 📁 Components ]\r\n //[ 📁 Components -> Carousel ]\r\n // [ 📁 Components -> Carousel -> Carrousel-Image ]\r\n export * from '../lib/components/carousel/carousel-image/carousel-image.component';\r\n // [ 📁 Components -> Carousel -> Carrousel-Item ]\r\n export * from '../lib/components/carousel/carousel-item/carousel-item.component';\r\n export * from '../lib/components/carousel/carousel.component';\r\n export * from '../lib/components/carousel/carousel.module';\r\n export * from '../lib/components/carousel/i-carousel-item.component';\r\n // [ 📁 Components -> Content-Block ]\r\n export * from '../lib/components/content-block/content-block.component';\r\n // [ 📁 Components -> Default ]\r\n // [ 📁 Components -> Default -> default-list ]\r\n // [ 📁 Components -> Default -> default-list -> header-list ]\r\n export * from '../lib/components/default/default-list/header-list/header-list.component';\r\n export * from '../lib/components/default/default-list/abstract-list';\r\n export * from '../lib/components/default/default-list/default-list.component';\r\n export * from '../lib/components/default/default-list/list';\r\n // [ 📁 Components -> Default -> default-pagination ]\r\n export * from '../lib/components/default/default-pagination/default-pagination.component';\r\n // [ 📁 Components -> Default -> default-table ]\r\n // [ 📁 Components -> Default -> default-table -> th-filter ]\r\n export * from '../lib/components/default/default-table/th-filter/th-filter.component';\r\n export * from '../lib/components/default/default-table/default-table.component';\r\n // [ 📁 Components -> Default -> default-view ]\r\n // [ 📁 Components -> Default -> default-view -> header-view ]\r\n export * from '../lib/components/default/default-view/header-view/header-view.component';\r\n export * from '../lib/components/default/default-view/abstract-view';\r\n export * from '../lib/components/default/default-view/default-view.component';\r\n export * from '../lib/components/default/default-view/view';\r\n export * from '../lib/components/default/default.module';\r\n // [ 📁 Components -> default-page ]\r\n export * from '../lib/components/default-page/default.page';\r\n // [ 📁 Components -> drag-drop-page ]\r\n // [ 📁 Components -> drag-drop-page -> drag-drop-overlay ]\r\n export * from '../lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component';\r\n export * from '../lib/components/drag-drop-file/drag-drop-file.directive';\r\n export * from '../lib/components/drag-drop-file/drag-drop-file.module';\r\n // [ 📁 Components -> drawer ]\r\n // [ 📁 Components -> drawer -> default-drawer-end ]\r\n export * from '../lib/components/drawer/default-drawer-end/default-drawer-end.component';\r\n // [ 📁 Components -> drawer -> drawer-group ]\r\n export * from '../lib/components/drawer/drawer-group/drawer-group.component';\r\n export * from '../lib/components/drawer/drawer.component';\r\n export * from '../lib/components/drawer/menu';\r\n // [ 📁 Components -> filter ]\r\n export * from '../lib/components/filter/filter.component';\r\n // [ 📁 Components -> http-responses-pages ]\r\n // [ 📁 Components -> http-responses-pages -> forbidden-403 ]\r\n export * from '../lib/components/http-responses-pages/forbidden-403/forbidden-403.component';\r\n // [ 📁 Components -> image ]\r\n export * from '../lib/components/image/image.component';\r\n // [ 📁 Components -> info-popover ]\r\n export * from '../lib/components/info-popover/info-popover.component';\r\n\r\n // [ 📁 Components -> inputs ]\r\n // [ 📁 Components -> inputs -> input-bool ]\r\n export * from '../lib/components/inputs/input-bool/input-bool.component';\r\n export * from '../lib/components/inputs/input-bool/input-bool.configuration';\r\n // [ 📁 Components -> inputs -> input-cep ]\r\n export * from '../lib/components/inputs/input-cep/input-cep.component';\r\n export * from '../lib/components/inputs/input-cep/input-cep.configuration';\r\n // [ 📁 Components -> inputs -> input-color ]\r\n export * from '../lib/components/inputs/input-color/input-color.component';\r\n // export * from '../lib/components/inputs/input-color/input-color.configuration';\r\n // [ 📁 Components -> inputs -> input-cpf-cnpj ]\r\n export * from '../lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component';\r\n export * from '../lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration';\r\n // [ 📁 Components -> inputs -> input-date ]\r\n export * from '../lib/components/inputs/input-date/input-date.component';\r\n export * from '../lib/components/inputs/input-date/input-date.configuration';\r\n // [ 📁 Components -> inputs -> input-decimal ]\r\n export * from '../lib/components/inputs/input-decimal/input-decimal.component';\r\n export * from '../lib/components/inputs/input-decimal/input-decimal.configuration';\r\n // [ 📁 Components -> inputs -> input-file ]\r\n export * from '../lib/components/inputs/input-file/download-button/download-button.component';\r\n export * from '../lib/components/inputs/input-file/input-file.component';\r\n export * from '../lib/components/inputs/input-file/input-file.configuration';\r\n // [ 📁 Components -> inputs -> input-icon ]\r\n export * from '../lib/components/inputs/input-icon/input-icon.component';\r\n // [ 📁 Components -> inputs -> input-select ]\r\n // [ 📁 Components -> inputs -> input-select -> directives ]\r\n export * from '../lib/components/inputs/input-select/directives/sion-label-template.directive';\r\n export * from '../lib/components/inputs/input-select/directives/sion-option-template.directive';\r\n export * from '../lib/components/inputs/input-select/directives/sion-placeholder-template.directive';\r\n export * from '../lib/components/inputs/input-select/input-select.component';\r\n export * from '../lib/components/inputs/input-select/input.select.configuration';\r\n // [ 📁 Components -> inputs -> input-string ]\r\n export * from '../lib/components/inputs/input-string/input-string.component';\r\n export * from '../lib/components/inputs/input-string/input-string.configuration';\r\n // [ 📁 Components -> inputs -> input-telefone ]\r\n export * from '../lib/components/inputs/input-telefone/input-telefone.component';\r\n export * from '../lib/components/inputs/input-telefone/input-telefone.configuration';\r\n // [ 📁 Components -> inputs -> input-textarea ]\r\n export * from '../lib/components/inputs/input-textarea/input-textarea.component';\r\n export * from '../lib/components/inputs/input-configuration';\r\n export * from '../lib/components/inputs/input-default-configurations';\r\n export * from '../lib/components/inputs/input-provider-factory';\r\n export * from '../lib/components/inputs/input-type';\r\n export * from '../lib/components/inputs/input-validators';\r\n export * from '../lib/components/inputs/inputs.module';\r\n // [ 📁 Components -> loading ]\r\n export * from '../lib/components/loading/loading.component';\r\n // [ 📁 Components -> login ]\r\n // [ 📁 Components -> login -> login-admin ]\r\n export * from '../lib/components/login/login-admin/login-admin.component';\r\n export * from '../lib/components/login/login.component';\r\n // [ 📁 Components -> main-content ]\r\n export * from '../lib/components/main-content/main-content.component';\r\n // [ 📁 Components -> popover ]\r\n // [ 📁 Components -> sion-popover ]\r\n export * from '../lib/components/popover/sion-popover/sion-popover.component';\r\n export * from '../lib/components/popover/sion-popover.module';\r\n // [ 📁 Components -> sion-card ]\r\n export * from '../lib/components/sion-card/sion-card.component';\r\n // [ 📁 Components -> stepper ]\r\n // [ 📁 Components -> stepper -> step ]\r\n export * from '../lib/components/stepper/step/step.component';\r\n export * from '../lib/components/stepper/stepper.component';\r\n export * from '../lib/components/stepper/stepper.module';\r\n // [ 📁 Components -> tabs ]\r\n // [ 📁 Components -> tabs -> tab ]\r\n export * from '../lib/components/tabs/tab/tab.component';\r\n // [ 📁 Components -> tabs -> tabs ]\r\n export * from '../lib/components/tabs/tabs/tabs.component';\r\n export * from '../lib/components/tabs/tabs.module';\r\n // [ 📁 Components -> text-tooltip ]\r\n export * from '../lib/components/text-tooltip/text-tooltip.component';\r\n // [ 📁 Components -> tooltip ]\r\n export * from '../lib/components/tooltip/tooltip.component';\r\n//[ 📁 Directives ]\r\n export * from '../lib/directives/ng-var.directive';\r\n//[ 📁 Guards ]\r\n export * from '../lib/guards/auth.guard';\r\n export * from '../lib/guards/error.interceptor';\r\n export * from '../lib/guards/token.interceptor';\r\n// [ 📁 Pipes ]\r\n export * from '../lib/pipes/secure.pipe';\r\n// [ 📁 Services ]\r\n // [ 📁 Services -> Route ]\r\n export * from '../lib/services/route/route.provider.service';\r\n export * from '../lib/services/route/route.cache.service';\r\n // [ 📁 Services -> Web ]\r\n export * from '../lib/services/web/api-url-provider.service';\r\n export * from '../lib/services/web/http.ativo.service';\r\n export * from '../lib/services/web/http.service';\r\n export * from '../lib/services/web/storage.service';\r\n export * from '../lib/services/auth.service';\r\n // export * from '../lib/services/crypto.service';\r\n export * from '../lib/services/environment.service';\r\n export * from './services/generic.service';\r\n export * from '../lib/services/usuario.service';\r\n export * from '../lib/services/utils.service';\r\n\r\nexport * from '../lib/core.module';","/*\r\n * Public API Surface of ion-sapphire-framework\r\n */\r\n\r\nexport * from './lib/index';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ModalFocusTrapService","i2.PopoverFocusTrapService","i1.EnvironmentService","i3.EnvironmentService","i1","i2","i3.GenericService","i4","i5.ApiUrlProviderService","i4.ApiUrlProviderService","i2.AuthService","i3.ApiUrlProviderService","i1.ApiUrlProviderService","i3","i2.ImageComponent","lstComponents","mask","i2.ApiUrlProviderService","i1.StorageService","i5.LoadingComponent","i6.NgVarDirective","i1.GenericService","i5.SIonPopoverComponent","i4.SIonPopoverComponent","i2.InputCepComponent","i3.InputCpfCnpjComponent","i4.InputDateComponent","i5.InputDecimalComponent","i6.InputSelectComponent","i7.InputStringComponent","i8","i5.DownloadButtonComponent","i6","i7.LoadingComponent","i8.ContentBlockComponent","i9.DefaultPaginationComponent","i10.ThFilterComponent","i2.GenericService","i5.HeaderListComponent","i6.DefaultTableComponent","i5","i6.SIonPopoverComponent","i1.UtilsService","i2.StorageService","i4.ImageComponent","i4.InputSelectComponent","i5.SIonLabelTemplateDirective","i6.SIonOptionTemplateDirective","i6.InputBoolComponent","i7.InputCepComponent","i8.InputColorComponent","i9.InputCpfCnpjComponent","i10.InputDateComponent","i11.InputDecimalComponent","i12.InputFileComponent","i13.InputIconComponent","i14.InputSelectComponent","i15.InputStringComponent","i16.InputTelefoneComponent","i17.InputTextareaComponent","i18.HeaderViewComponent","i2.EnvironmentService","i4.RouteProviderService","i1.AuthService","i7","i1.InputCepComponent","i2.InputCpfCnpjComponent","i3.InputDateComponent","i4.InputDecimalComponent","i5.InputSelectComponent","i6.InputStringComponent","i3.UsuarioService","i4.AuthService","i6.EnvironmentService"],"mappings":"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"}
|