@seniorsistemas/angular-components 17.27.0 → 17.27.1-feature-sds-110-35ee9b4f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -0
- package/accessibility-events/index.d.ts +5 -0
- package/accessibility-events/lib/accessibility-events/accessibility-events.module.d.ts +8 -0
- package/accessibility-events/lib/accessibility-events/directives/accessibility-event.directive.d.ts +15 -0
- package/accessibility-events/package.json +3 -0
- package/accessibility-events/public-api.d.ts +2 -0
- package/accordion/index.d.ts +5 -0
- package/accordion/lib/accordion/accordion.component.d.ts +21 -0
- package/accordion/lib/accordion/accordion.module.d.ts +12 -0
- package/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.d.ts +30 -0
- package/accordion/lib/accordion/models/accordion-button-settings.d.ts +5 -0
- package/accordion/package.json +3 -0
- package/accordion/public-api.d.ts +3 -0
- package/alert/index.d.ts +5 -0
- package/alert/lib/alert/alert.component.d.ts +16 -0
- package/alert/lib/alert/alert.module.d.ts +8 -0
- package/alert/package.json +3 -0
- package/alert/public-api.d.ts +2 -0
- package/badge/index.d.ts +5 -0
- package/badge/lib/badge/badge.component.d.ts +21 -0
- package/badge/lib/badge/badge.module.d.ts +10 -0
- package/badge/lib/badge/types/badge-colors.d.ts +1 -0
- package/badge/lib/badge/types/badge-types.d.ts +1 -0
- package/badge/package.json +3 -0
- package/badge/public-api.d.ts +4 -0
- package/bignumber-input/index.d.ts +5 -0
- package/bignumber-input/lib/bignumber-input/bignumber-input.directive.d.ts +42 -0
- package/bignumber-input/lib/bignumber-input/bignumber-input.module.d.ts +8 -0
- package/bignumber-input/package.json +3 -0
- package/bignumber-input/public-api.d.ts +2 -0
- package/breadcrumb/index.d.ts +5 -0
- package/breadcrumb/lib/breadcrumb/breadcrumb.component.d.ts +25 -0
- package/breadcrumb/lib/breadcrumb/breadcrumb.module.d.ts +10 -0
- package/breadcrumb/package.json +3 -0
- package/breadcrumb/public-api.d.ts +2 -0
- package/button/index.d.ts +5 -0
- package/button/lib/button/button.component.d.ts +35 -0
- package/button/lib/button/button.module.d.ts +12 -0
- package/button/lib/button/models/button-animations.d.ts +1 -0
- package/button/lib/button/models/button-badge-config.d.ts +6 -0
- package/button/lib/button/models/button-priority.d.ts +1 -0
- package/button/lib/button/models/button-size.d.ts +1 -0
- package/button/lib/button/models/index.d.ts +4 -0
- package/button/package.json +3 -0
- package/button/public-api.d.ts +3 -0
- package/calendar-mask/index.d.ts +5 -0
- package/calendar-mask/lib/calendar-mask/calendar-mask.directive.d.ts +69 -0
- package/calendar-mask/lib/calendar-mask/calendar-mask.module.d.ts +8 -0
- package/calendar-mask/package.json +3 -0
- package/calendar-mask/public-api.d.ts +2 -0
- package/card/index.d.ts +5 -0
- package/card/lib/card/card.component.d.ts +26 -0
- package/card/lib/card/card.module.d.ts +9 -0
- package/card/package.json +3 -0
- package/card/public-api.d.ts +2 -0
- package/chat/index.d.ts +5 -0
- package/chat/lib/chat/chat.component.d.ts +11 -0
- package/chat/lib/chat/chat.module.d.ts +11 -0
- package/chat/lib/chat/components/chat-message/chat-message.component.d.ts +11 -0
- package/chat/lib/chat/types/chat-message.d.ts +8 -0
- package/chat/package.json +3 -0
- package/chat/public-api.d.ts +3 -0
- package/checkbox/index.d.ts +5 -0
- package/checkbox/lib/checkbox/checkbox.component.d.ts +21 -0
- package/checkbox/lib/checkbox/checkbox.module.d.ts +9 -0
- package/checkbox/lib/checkbox/models/checkbox-state.d.ts +7 -0
- package/checkbox/package.json +3 -0
- package/checkbox/public-api.d.ts +4 -0
- package/chips/index.d.ts +5 -0
- package/chips/lib/chips/chip-item/chip-item.component.d.ts +25 -0
- package/chips/lib/chips/chips/chips.component.d.ts +66 -0
- package/chips/lib/chips/chips.module.d.ts +12 -0
- package/chips/lib/chips/models/chip-models.d.ts +7 -0
- package/chips/package.json +3 -0
- package/chips/public-api.d.ts +3 -0
- package/code-editor/index.d.ts +5 -0
- package/code-editor/lib/code-editor/code-editor.component.d.ts +30 -0
- package/code-editor/lib/code-editor/code-editor.module.d.ts +9 -0
- package/code-editor/lib/code-editor/core/facades/core-facade.d.ts +32 -0
- package/code-editor/lib/code-editor/core/use-cases/core-linters.d.ts +6 -0
- package/code-editor/lib/code-editor/infra/cores/codemirror-6/codemirror-6-core.d.ts +26 -0
- package/code-editor/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper.d.ts +15 -0
- package/code-editor/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.d.ts +6 -0
- package/code-editor/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/safe-http-communication.d.ts +12 -0
- package/code-editor/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-safe-response.d.ts +8 -0
- package/code-editor/lib/code-editor/infra/cores/codemirror-6/models/types/diagnostic-severity.d.ts +1 -0
- package/code-editor/lib/code-editor/infra/cores/codemirror-6/models/types/editor-theme.d.ts +3 -0
- package/code-editor/lib/code-editor/infra/utils/custom-http-client/custom-http-client.d.ts +34 -0
- package/code-editor/lib/code-editor/infra/utils/custom-translations/custom-translations-service.d.ts +25 -0
- package/code-editor/lib/code-editor/infra/utils/custom-translations/custom-translations.module.d.ts +16 -0
- package/code-editor/package.json +3 -0
- package/code-editor/public-api.d.ts +4 -0
- package/collapse-link/index.d.ts +5 -0
- package/collapse-link/lib/collapse-link/collapse-link.component.d.ts +20 -0
- package/collapse-link/lib/collapse-link/collapse-link.module.d.ts +8 -0
- package/collapse-link/package.json +3 -0
- package/collapse-link/public-api.d.ts +2 -0
- package/common/index.d.ts +5 -0
- package/common/lib/angular-components.module.d.ts +13 -0
- package/common/lib/custom-http-client/custom-http-client.d.ts +34 -0
- package/common/lib/custom-http-client/json-response-formatters/format-blob-response.d.ts +6 -0
- package/common/lib/custom-http-client/json-response-formatters/format-json-response.d.ts +6 -0
- package/common/lib/debouce.d.ts +7 -0
- package/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.d.ts +5 -0
- package/common/lib/svg-factory/components/senior-icon/senior-icon.component.d.ts +5 -0
- package/common/lib/svg-factory/components/svg-factory-icons.d.ts +1 -0
- package/common/lib/svg-factory/index.d.ts +2 -0
- package/common/lib/svg-factory/svg-factory.directive.d.ts +15 -0
- package/common/lib/svg-factory/svg-factory.module.d.ts +10 -0
- package/common/package.json +3 -0
- package/common/public-api.d.ts +5 -0
- package/control-errors/index.d.ts +5 -0
- package/control-errors/lib/control-errors/control-errors.component.d.ts +26 -0
- package/control-errors/lib/control-errors/control-errors.module.d.ts +9 -0
- package/control-errors/package.json +3 -0
- package/control-errors/public-api.d.ts +2 -0
- package/country-phone-picker/index.d.ts +5 -0
- package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +67 -0
- package/country-phone-picker/lib/country-phone-picker/country-phone-picker.module.d.ts +11 -0
- package/country-phone-picker/lib/country-phone-picker/country-phone-picker.service.d.ts +13 -0
- package/country-phone-picker/lib/country-phone-picker/resources/countries.d.ts +2 -0
- package/country-phone-picker/package.json +3 -0
- package/country-phone-picker/public-api.d.ts +6 -0
- package/currency/index.d.ts +5 -0
- package/currency/lib/currency.service.d.ts +12 -0
- package/currency/lib/models/currencies.d.ts +634 -0
- package/currency/lib/types/currency.d.ts +2 -0
- package/currency/package.json +3 -0
- package/currency/public-api.d.ts +3 -0
- package/custom-fields/index.d.ts +5 -0
- package/custom-fields/lib/custom-fields/custom-fields.component.d.ts +86 -0
- package/custom-fields/lib/custom-fields/custom-fields.module.d.ts +13 -0
- package/custom-fields/lib/custom-fields/custom-fields.service.d.ts +20 -0
- package/custom-fields/package.json +3 -0
- package/custom-fields/public-api.d.ts +3 -0
- package/dynamic-form/index.d.ts +5 -0
- package/dynamic-form/lib/dynamic-form/components/field-label/field-label.component.d.ts +8 -0
- package/dynamic-form/lib/dynamic-form/components/grid/row/row.component.d.ts +15 -0
- package/dynamic-form/lib/dynamic-form/components/lookup/lookup.component.d.ts +164 -0
- package/dynamic-form/lib/dynamic-form/components/lookup/types/default-filter.d.ts +4 -0
- package/dynamic-form/lib/dynamic-form/components/lookup/types/label-options.d.ts +13 -0
- package/dynamic-form/lib/dynamic-form/components/structure/base-structure-component.d.ts +8 -0
- package/dynamic-form/lib/dynamic-form/components/structure/fieldset/fieldset.component.d.ts +12 -0
- package/dynamic-form/lib/dynamic-form/components/structure/section/section.component.d.ts +14 -0
- package/dynamic-form/lib/dynamic-form/configurations/grid/grid.d.ts +14 -0
- package/dynamic-form/lib/dynamic-form/configurations/grid/row.d.ts +8 -0
- package/dynamic-form/lib/dynamic-form/configurations/structure/fieldset.d.ts +10 -0
- package/dynamic-form/lib/dynamic-form/configurations/structure/section.d.ts +20 -0
- package/dynamic-form/lib/dynamic-form/configurations/structure/structure.d.ts +14 -0
- package/dynamic-form/lib/dynamic-form/dynamic-form.component.d.ts +19 -0
- package/dynamic-form/lib/dynamic-form/dynamic-form.d.ts +57 -0
- package/dynamic-form/lib/dynamic-form/dynamic-form.directive.d.ts +34 -0
- package/dynamic-form/lib/dynamic-form/dynamic-form.module.d.ts +83 -0
- package/dynamic-form/lib/dynamic-form/form-field/addon-config.d.ts +7 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/field-type.d.ts +32 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/autocomplete-field.d.ts +30 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/bignumber-field.d.ts +38 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/blob-field.d.ts +43 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/boolean-field.d.ts +29 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/boolean-switch-field.d.ts +11 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/button-field.d.ts +34 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/calendar-field.d.ts +45 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/checkbox-field.d.ts +9 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/chips-field.d.ts +24 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/country-phone-picker-field.d.ts +15 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/currency-field.d.ts +9 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/decimal-field.d.ts +14 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/field.d.ts +96 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/lookup-field.d.ts +95 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/number-field.d.ts +47 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/password-field.d.ts +45 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/profile-picture.d.ts +35 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/radio-button-field.d.ts +23 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/select-field.d.ts +39 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/slider-field.d.ts +32 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/star-rating-field.d.ts +17 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/text-area-field.d.ts +24 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/text-area-ia-field.d.ts +26 -0
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/text-field.d.ts +41 -0
- package/dynamic-form/lib/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.d.ts +17 -0
- package/dynamic-form/lib/dynamic-form/form-field/fields/base-field-component.d.ts +32 -0
- package/dynamic-form/lib/dynamic-form/form-field/fields/bignumber/bignumber-field.component.d.ts +27 -0
- package/dynamic-form/lib/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.d.ts +11 -0
- package/dynamic-form/lib/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.d.ts +10 -0
- package/dynamic-form/lib/dynamic-form/form-field/fields/button-field/button-field.component.d.ts +10 -0
- package/dynamic-form/lib/dynamic-form/form-field/fields/calendar/calendar-field.component.d.ts +35 -0
- package/dynamic-form/lib/dynamic-form/form-field/fields/checkbox/checkbox-field.component.d.ts +10 -0
- package/dynamic-form/lib/dynamic-form/form-field/fields/chips/chips-field.component.d.ts +22 -0
- package/dynamic-form/lib/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.d.ts +14 -0
- package/dynamic-form/lib/dynamic-form/form-field/fields/currency/currency-field.component.d.ts +659 -0
- package/dynamic-form/lib/dynamic-form/form-field/fields/editor/editor-field.component.d.ts +10 -0
- package/dynamic-form/lib/dynamic-form/form-field/fields/file-upload/file-upload-field.component.d.ts +19 -0
- package/dynamic-form/lib/dynamic-form/form-field/fields/lookup/lookup-field.component.d.ts +9 -0
- package/dynamic-form/lib/dynamic-form/form-field/fields/number/number-field.component.d.ts +31 -0
- package/dynamic-form/lib/dynamic-form/form-field/fields/password/password-field.component.d.ts +22 -0
- package/dynamic-form/lib/dynamic-form/form-field/fields/profile-picture/profile-picture-field.component.d.ts +9 -0
- package/dynamic-form/lib/dynamic-form/form-field/fields/radio-button/radio-button-field.component.d.ts +17 -0
- package/dynamic-form/lib/dynamic-form/form-field/fields/select/select-field.component.d.ts +10 -0
- package/dynamic-form/lib/dynamic-form/form-field/fields/slider/slider-field.component.d.ts +25 -0
- package/dynamic-form/lib/dynamic-form/form-field/fields/star-rating/star-rating-field.component.d.ts +10 -0
- package/dynamic-form/lib/dynamic-form/form-field/fields/text/text-field.component.d.ts +25 -0
- package/dynamic-form/lib/dynamic-form/form-field/fields/text-area/text-area-field.component.d.ts +14 -0
- package/dynamic-form/lib/dynamic-form/form-field/fields/text-area-ia/text-area-ia-field.component.d.ts +9 -0
- package/dynamic-form/lib/dynamic-form/form-field/form-field.d.ts +192 -0
- package/dynamic-form/lib/dynamic-form/services/dynamic-form-cache.d.ts +12 -0
- package/dynamic-form/package.json +3 -0
- package/dynamic-form/public-api.d.ts +43 -0
- package/editable-overlay/index.d.ts +5 -0
- package/editable-overlay/lib/editable-overlay/editable-overlay.directive.d.ts +11 -0
- package/editable-overlay/lib/editable-overlay/editable-overlay.module.d.ts +8 -0
- package/editable-overlay/package.json +3 -0
- package/editable-overlay/public-api.d.ts +2 -0
- package/empty-state/index.d.ts +5 -0
- package/empty-state/lib/empty-state/empty-state.component.d.ts +21 -0
- package/empty-state/lib/empty-state/empty-state.module.d.ts +10 -0
- package/empty-state/lib/empty-state/go-back/go-back.component.d.ts +13 -0
- package/empty-state/package.json +3 -0
- package/empty-state/public-api.d.ts +3 -0
- package/fesm2022/seniorsistemas-angular-components-accessibility-events.mjs +77 -0
- package/fesm2022/seniorsistemas-angular-components-accessibility-events.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-accordion.mjs +244 -0
- package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-alert.mjs +66 -0
- package/fesm2022/seniorsistemas-angular-components-alert.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-badge.mjs +70 -0
- package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs +180 -0
- package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +128 -0
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-button.mjs +135 -0
- package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +633 -0
- package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-card.mjs +107 -0
- package/fesm2022/seniorsistemas-angular-components-card.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-chat.mjs +78 -0
- package/fesm2022/seniorsistemas-angular-components-chat.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +151 -0
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-chips.mjs +327 -0
- package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +1508 -0
- package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs +103 -0
- package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-common.mjs +246 -0
- package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +75 -0
- package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +631 -0
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-currency.mjs +193 -0
- package/fesm2022/seniorsistemas-angular-components-currency.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +783 -0
- package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +3822 -0
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs +66 -0
- package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +107 -0
- package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +98 -0
- package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-file-upload.mjs +333 -0
- package/fesm2022/seniorsistemas-angular-components-file-upload.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-gantt.mjs +1748 -0
- package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs +288 -0
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs +72 -0
- package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +422 -0
- package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-ia-insight.mjs +243 -0
- package/fesm2022/seniorsistemas-angular-components-ia-insight.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +268 -0
- package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +50 -0
- package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +105 -0
- package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +679 -0
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-kanban.mjs +456 -0
- package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-label-value.mjs +61 -0
- package/fesm2022/seniorsistemas-angular-components-label-value.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +185 -0
- package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-locale.mjs +409 -0
- package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +85 -0
- package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-mask.mjs +85 -0
- package/fesm2022/seniorsistemas-angular-components-mask.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs +116 -0
- package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +158 -0
- package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-number-input.mjs +189 -0
- package/fesm2022/seniorsistemas-angular-components-number-input.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-numeric.mjs +139 -0
- package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-object-card.mjs +321 -0
- package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-panel.mjs +113 -0
- package/fesm2022/seniorsistemas-angular-components-panel.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +321 -0
- package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-picklist.mjs +339 -0
- package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-product-header.mjs +68 -0
- package/fesm2022/seniorsistemas-angular-components-product-header.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +334 -0
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +152 -0
- package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +81 -0
- package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-select-button.mjs +172 -0
- package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-shared.mjs +82 -0
- package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-sidebar.mjs +118 -0
- package/fesm2022/seniorsistemas-angular-components-sidebar.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-slide-panel.mjs +182 -0
- package/fesm2022/seniorsistemas-angular-components-slide-panel.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-slider.mjs +624 -0
- package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +463 -0
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs +86 -0
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-star-rating.mjs +71 -0
- package/fesm2022/seniorsistemas-angular-components-star-rating.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-stats-card.mjs +142 -0
- package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-steps.mjs +145 -0
- package/fesm2022/seniorsistemas-angular-components-steps.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-structure.mjs +58 -0
- package/fesm2022/seniorsistemas-angular-components-structure.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-switch.mjs +115 -0
- package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs +175 -0
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-table.mjs +953 -0
- package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-template.mjs +46 -0
- package/fesm2022/seniorsistemas-angular-components-template.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-text-area-ia.mjs +268 -0
- package/fesm2022/seniorsistemas-angular-components-text-area-ia.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs +154 -0
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +159 -0
- package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +182 -0
- package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +915 -0
- package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-tile.mjs +89 -0
- package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-timeline.mjs +382 -0
- package/fesm2022/seniorsistemas-angular-components-timeline.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-toast.mjs +132 -0
- package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-token-list.mjs +64 -0
- package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +366 -0
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-utils.mjs +59 -0
- package/fesm2022/seniorsistemas-angular-components-utils.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +159 -0
- package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components.mjs +338 -0
- package/fesm2022/seniorsistemas-angular-components.mjs.map +1 -0
- package/fieldset/index.d.ts +5 -0
- package/fieldset/lib/fieldset/fieldset.component.d.ts +17 -0
- package/fieldset/lib/fieldset/fieldset.models.d.ts +4 -0
- package/fieldset/lib/fieldset/fieldset.module.d.ts +10 -0
- package/fieldset/package.json +3 -0
- package/fieldset/public-api.d.ts +3 -0
- package/file-upload/index.d.ts +5 -0
- package/file-upload/lib/file-upload/file-upload.component.d.ts +79 -0
- package/file-upload/lib/file-upload/file-upload.module.d.ts +12 -0
- package/file-upload/lib/file-upload/file-upload.service.d.ts +9 -0
- package/file-upload/lib/file-upload/models/file-dto.d.ts +13 -0
- package/file-upload/lib/file-upload/models/file-upload-permissions.d.ts +2 -0
- package/file-upload/lib/file-upload/models/uploadError.d.ts +6 -0
- package/file-upload/lib/file-upload/models/validate-errors.d.ts +1 -0
- package/file-upload/package.json +3 -0
- package/file-upload/public-api.d.ts +6 -0
- package/gantt/index.d.ts +5 -0
- package/gantt/lib/gantt/components/gantt/arrow.d.ts +16 -0
- package/gantt/lib/gantt/components/gantt/bar.d.ts +44 -0
- package/gantt/lib/gantt/components/gantt/gantt-options.d.ts +2 -0
- package/gantt/lib/gantt/components/gantt/gantt.d.ts +65 -0
- package/gantt/lib/gantt/components/gantt/popup.d.ts +15 -0
- package/gantt/lib/gantt/components/gantt/utils/svg-utils.d.ts +11 -0
- package/gantt/lib/gantt/components/side-table/side-table.component.d.ts +13 -0
- package/gantt/lib/gantt/gantt.component.d.ts +33 -0
- package/gantt/lib/gantt/gantt.module.d.ts +10 -0
- package/gantt/lib/gantt/models/index.d.ts +2 -0
- package/gantt/lib/gantt/models/options.d.ts +26 -0
- package/gantt/package.json +3 -0
- package/gantt/public-api.d.ts +4 -0
- package/global-search/index.d.ts +5 -0
- package/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.d.ts +27 -0
- package/global-search/lib/global-search/global-search.component.d.ts +37 -0
- package/global-search/lib/global-search/global-search.module.d.ts +17 -0
- package/global-search/lib/global-search/types/global-search-size.enum.d.ts +1 -0
- package/global-search/package.json +3 -0
- package/global-search/public-api.d.ts +4 -0
- package/grid-menu/index.d.ts +5 -0
- package/grid-menu/lib/grid-menu/components/grid-menu-item/grid-menu-item.component.d.ts +10 -0
- package/grid-menu/lib/grid-menu/grid-menu.component.d.ts +8 -0
- package/grid-menu/lib/grid-menu/grid-menu.module.d.ts +9 -0
- package/grid-menu/lib/grid-menu/types/grid-menu-item.d.ts +6 -0
- package/grid-menu/package.json +3 -0
- package/grid-menu/public-api.d.ts +4 -0
- package/help-popover/index.d.ts +5 -0
- package/help-popover/lib/help-popover/help-popover/help-popover.component.d.ts +36 -0
- package/help-popover/lib/help-popover/help-popover.directive.d.ts +64 -0
- package/help-popover/lib/help-popover/help-popover.module.d.ts +10 -0
- package/help-popover/lib/help-popover/models/help-popover.models.d.ts +2 -0
- package/help-popover/package.json +3 -0
- package/help-popover/public-api.d.ts +5 -0
- package/ia-insight/index.d.ts +5 -0
- package/ia-insight/lib/ia-insight/components/ia-insight-card/components/ia-insight-card-loader/ia-insight-card-loader.component.d.ts +5 -0
- package/ia-insight/lib/ia-insight/components/ia-insight-card/ia-insight-card.component.d.ts +25 -0
- package/ia-insight/lib/ia-insight/components/ia-insight-sidebar/ia-insight-sidebar.component.d.ts +19 -0
- package/ia-insight/lib/ia-insight/ia-insight.component.d.ts +27 -0
- package/ia-insight/lib/ia-insight/ia-insight.module.d.ts +17 -0
- package/ia-insight/lib/ia-insight/models/ia-insight-item.d.ts +9 -0
- package/ia-insight/lib/ia-insight/models/ia-insight-template-types.d.ts +1 -0
- package/ia-insight/lib/ia-insight/models/index.d.ts +2 -0
- package/ia-insight/package.json +3 -0
- package/ia-insight/public-api.d.ts +3 -0
- package/image-cropper/index.d.ts +5 -0
- package/image-cropper/lib/image-cropper/image-cropper.component.d.ts +44 -0
- package/image-cropper/lib/image-cropper/image-cropper.module.d.ts +12 -0
- package/image-cropper/lib/image-cropper/image-cropper.service.d.ts +42 -0
- package/image-cropper/package.json +3 -0
- package/image-cropper/public-api.d.ts +3 -0
- package/infinite-scroll/index.d.ts +5 -0
- package/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.d.ts +10 -0
- package/infinite-scroll/lib/infinite-scroll/infinite-scroll.module.d.ts +8 -0
- package/infinite-scroll/package.json +3 -0
- package/infinite-scroll/public-api.d.ts +2 -0
- package/info-sign/index.d.ts +5 -0
- package/info-sign/lib/info-sign/components/info-sign/info-sign.component.d.ts +10 -0
- package/info-sign/lib/info-sign/info-sign.directive.d.ts +18 -0
- package/info-sign/lib/info-sign/info-sign.module.d.ts +10 -0
- package/info-sign/package.json +3 -0
- package/info-sign/public-api.d.ts +2 -0
- package/inline-edit/index.d.ts +5 -0
- package/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.d.ts +21 -0
- package/inline-edit/lib/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.d.ts +13 -0
- package/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.d.ts +22 -0
- package/inline-edit/lib/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.d.ts +13 -0
- package/inline-edit/lib/inline-edit/components/fields/inline-edit-text-area/inline-edit-text-area.component.d.ts +13 -0
- package/inline-edit/lib/inline-edit/components/fields/inline-edit-text-area-ia/inline-edit-text-area-ia.component.d.ts +13 -0
- package/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +30 -0
- package/inline-edit/lib/inline-edit/fields/index.d.ts +14 -0
- package/inline-edit/lib/inline-edit/fields/inline-edit-calendar-field.d.ts +44 -0
- package/inline-edit/lib/inline-edit/fields/inline-edit-field.d.ts +15 -0
- package/inline-edit/lib/inline-edit/fields/inline-edit-lookup-field.d.ts +79 -0
- package/inline-edit/lib/inline-edit/fields/inline-edit-number-field.d.ts +40 -0
- package/inline-edit/lib/inline-edit/inline-edit.component.d.ts +15 -0
- package/inline-edit/lib/inline-edit/inline-edit.module.d.ts +29 -0
- package/inline-edit/lib/inline-edit/types/addon-config.d.ts +7 -0
- package/inline-edit/package.json +3 -0
- package/inline-edit/public-api.d.ts +4 -0
- package/kanban/index.d.ts +5 -0
- package/kanban/lib/kanban/components/kanban-column/kanban-column.component.d.ts +23 -0
- package/kanban/lib/kanban/components/kanban-item/kanban-item.component.d.ts +21 -0
- package/kanban/lib/kanban/components/kanban-item-dragging/kanban-item-dragging.component.d.ts +6 -0
- package/kanban/lib/kanban/kanban-event.service.d.ts +15 -0
- package/kanban/lib/kanban/kanban.component.d.ts +46 -0
- package/kanban/lib/kanban/kanban.module.d.ts +18 -0
- package/kanban/lib/kanban/types/index.d.ts +2 -0
- package/kanban/lib/kanban/types/kanban-data.d.ts +27 -0
- package/kanban/lib/kanban/types/kanban-template-types.d.ts +1 -0
- package/kanban/package.json +3 -0
- package/kanban/public-api.d.ts +3 -0
- package/label-value/index.d.ts +5 -0
- package/label-value/lib/label-value/label-value.component.d.ts +12 -0
- package/label-value/lib/label-value/label-value.module.d.ts +12 -0
- package/label-value/lib/label-value/types/label-value-configuration.d.ts +29 -0
- package/label-value/package.json +3 -0
- package/label-value/public-api.d.ts +3 -0
- package/loading-state/index.d.ts +5 -0
- package/loading-state/lib/loading-state/components/dots-indicator/dots-indicator.components.d.ts +5 -0
- package/loading-state/lib/loading-state/components/logo-indicator/logo-indicator.component.d.ts +5 -0
- package/loading-state/lib/loading-state/loading-state.component.d.ts +23 -0
- package/loading-state/lib/loading-state/loading-state.directive.d.ts +22 -0
- package/loading-state/lib/loading-state/loading-state.module.d.ts +12 -0
- package/loading-state/package.json +3 -0
- package/loading-state/public-api.d.ts +4 -0
- package/locale/index.d.ts +5 -0
- package/locale/lib/locale/locale.module.d.ts +19 -0
- package/locale/lib/locale/locale.service.d.ts +27 -0
- package/locale/lib/locale/options/calendar.d.ts +25 -0
- package/locale/lib/locale/options/index.d.ts +14 -0
- package/locale/lib/locale/options/number.d.ts +11 -0
- package/locale/lib/locale/pipes/localized-bignumber-impure.pipe.d.ts +9 -0
- package/locale/lib/locale/pipes/localized-bignumber.pipe.d.ts +12 -0
- package/locale/lib/locale/pipes/localized-currency-impure.pipe.d.ts +11 -0
- package/locale/lib/locale/pipes/localized-currency.pipe.d.ts +22 -0
- package/locale/lib/locale/pipes/localized-date-impure.pipe.d.ts +7 -0
- package/locale/lib/locale/pipes/localized-date.pipe.d.ts +10 -0
- package/locale/lib/locale/pipes/localized-number.pipe.d.ts +17 -0
- package/locale/lib/locale/pipes/localized-time-impure.pipe.d.ts +7 -0
- package/locale/lib/locale/pipes/localized-time.pipe.d.ts +10 -0
- package/locale/package.json +3 -0
- package/locale/public-api.d.ts +12 -0
- package/localized-number-input/index.d.ts +5 -0
- package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +16 -0
- package/localized-number-input/lib/localized-number-input/localized-number-input.module.d.ts +8 -0
- package/localized-number-input/package.json +3 -0
- package/localized-number-input/public-api.d.ts +2 -0
- package/mask/index.d.ts +5 -0
- package/mask/lib/mask/mask-formatter.module.d.ts +7 -0
- package/mask/lib/mask/mask-formatter.pipe.d.ts +8 -0
- package/mask/package.json +3 -0
- package/mask/public-api.d.ts +2 -0
- package/mouse-events/index.d.ts +5 -0
- package/mouse-events/lib/mouse-events/double-click.directive.d.ts +12 -0
- package/mouse-events/lib/mouse-events/long-press.directive.d.ts +16 -0
- package/mouse-events/lib/mouse-events/mouse-events.module.d.ts +9 -0
- package/mouse-events/package.json +3 -0
- package/mouse-events/public-api.d.ts +3 -0
- package/navigation-button/index.d.ts +5 -0
- package/navigation-button/lib/navigation-button/models/index.d.ts +2 -0
- package/navigation-button/lib/navigation-button/models/navigation-button-step-changed-info.d.ts +5 -0
- package/navigation-button/lib/navigation-button/navigation-button.component.d.ts +33 -0
- package/navigation-button/lib/navigation-button/navigation-button.module.d.ts +10 -0
- package/navigation-button/package.json +3 -0
- package/navigation-button/public-api.d.ts +3 -0
- package/number-input/index.d.ts +5 -0
- package/number-input/lib/number-input/number-input.directive.d.ts +47 -0
- package/number-input/lib/number-input/number-input.module.d.ts +11 -0
- package/number-input/package.json +3 -0
- package/number-input/public-api.d.ts +2 -0
- package/numeric/index.d.ts +5 -0
- package/numeric/lib/numeric.module.d.ts +8 -0
- package/numeric/lib/numeric.pipe.d.ts +16 -0
- package/numeric/lib/numeric.service.d.ts +24 -0
- package/numeric/package.json +3 -0
- package/numeric/public-api.d.ts +3 -0
- package/object-card/index.d.ts +5 -0
- package/object-card/lib/object-card/elements/field/object-card-field.component.d.ts +20 -0
- package/object-card/lib/object-card/elements/main/object-card-main.component.d.ts +31 -0
- package/object-card/lib/object-card/object-card.component.d.ts +33 -0
- package/object-card/lib/object-card/object-card.module.d.ts +14 -0
- package/object-card/package.json +3 -0
- package/object-card/public-api.d.ts +4 -0
- package/package.json +584 -42
- package/panel/index.d.ts +5 -0
- package/panel/lib/panel/panel.component.d.ts +27 -0
- package/panel/lib/panel/panel.module.d.ts +10 -0
- package/panel/package.json +3 -0
- package/panel/public-api.d.ts +2 -0
- package/password-strength/index.d.ts +5 -0
- package/password-strength/lib/password-strength/password-strength.component.d.ts +23 -0
- package/password-strength/lib/password-strength/password-strength.directive.d.ts +30 -0
- package/password-strength/lib/password-strength/password-strength.module.d.ts +9 -0
- package/password-strength/lib/password-strength/types/password-positions.d.ts +1 -0
- package/password-strength/lib/password-strength/types/password-strengths.d.ts +1 -0
- package/password-strength/package.json +3 -0
- package/password-strength/public-api.d.ts +5 -0
- package/picklist/index.d.ts +5 -0
- package/picklist/lib/picklist/picklist.component.d.ts +74 -0
- package/picklist/lib/picklist/picklist.module.d.ts +12 -0
- package/picklist/lib/picklist/types/index.d.ts +2 -0
- package/picklist/lib/picklist/types/picklist-item.d.ts +4 -0
- package/picklist/lib/picklist/types/picklist-template-types.d.ts +1 -0
- package/picklist/package.json +3 -0
- package/picklist/public-api.d.ts +4 -0
- package/product-header/index.d.ts +5 -0
- package/product-header/lib/product-header/product-header.component.d.ts +15 -0
- package/product-header/lib/product-header/product-header.module.d.ts +10 -0
- package/product-header/package.json +3 -0
- package/product-header/public-api.d.ts +2 -0
- package/profile-picture-picker/index.d.ts +5 -0
- package/profile-picture-picker/lib/profile-picture-picker/models/file-validation-errors.d.ts +5 -0
- package/profile-picture-picker/lib/profile-picture-picker/models/index.d.ts +4 -0
- package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +58 -0
- package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.d.ts +13 -0
- package/profile-picture-picker/lib/profile-picture-picker/validators/index.d.ts +1 -0
- package/profile-picture-picker/lib/profile-picture-picker/validators/validators.d.ts +7 -0
- package/profile-picture-picker/package.json +3 -0
- package/profile-picture-picker/public-api.d.ts +4 -0
- package/progressbar/index.d.ts +5 -0
- package/progressbar/lib/progressbar/components/progressbar-determinate/progressbar-determinate.component.d.ts +20 -0
- package/progressbar/lib/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component.d.ts +8 -0
- package/progressbar/lib/progressbar/progressbar.component.d.ts +17 -0
- package/progressbar/lib/progressbar/progressbar.module.d.ts +10 -0
- package/progressbar/lib/progressbar/types/index.d.ts +2 -0
- package/progressbar/lib/progressbar/types/progressbar-colors.d.ts +1 -0
- package/progressbar/lib/progressbar/types/progressbar-mode.d.ts +1 -0
- package/progressbar/package.json +3 -0
- package/progressbar/public-api.d.ts +3 -0
- package/rating-scale/index.d.ts +5 -0
- package/rating-scale/lib/rating-scale/models/index.d.ts +1 -0
- package/rating-scale/lib/rating-scale/rating-scale.component.d.ts +18 -0
- package/rating-scale/lib/rating-scale/rating-scale.module.d.ts +9 -0
- package/rating-scale/package.json +3 -0
- package/rating-scale/public-api.d.ts +3 -0
- package/select-button/index.d.ts +5 -0
- package/select-button/lib/select-button/components/select-button-item/select-button-item.component.d.ts +10 -0
- package/select-button/lib/select-button/select-button.component.d.ts +22 -0
- package/select-button/lib/select-button/select-button.module.d.ts +9 -0
- package/select-button/package.json +3 -0
- package/select-button/public-api.d.ts +3 -0
- package/shared/index.d.ts +5 -0
- package/shared/lib/shared/border-button/border-button.component.d.ts +9 -0
- package/shared/lib/shared/border-button/border-button.module.d.ts +9 -0
- package/shared/lib/shared/models/border-button-options.d.ts +9 -0
- package/shared/lib/shared/models/severities.d.ts +8 -0
- package/shared/package.json +3 -0
- package/shared/public-api.d.ts +6 -0
- package/sidebar/index.d.ts +5 -0
- package/sidebar/lib/sidebar/sidebar.component.d.ts +29 -0
- package/sidebar/lib/sidebar/sidebar.module.d.ts +10 -0
- package/sidebar/package.json +3 -0
- package/sidebar/public-api.d.ts +2 -0
- package/slide-panel/index.d.ts +5 -0
- package/slide-panel/lib/slide-panel/slide-panel.component.d.ts +32 -0
- package/slide-panel/lib/slide-panel/slide-panel.module.d.ts +8 -0
- package/slide-panel/lib/slide-panel/slide-panel.service.d.ts +10 -0
- package/slide-panel/package.json +3 -0
- package/slide-panel/public-api.d.ts +3 -0
- package/slider/index.d.ts +5 -0
- package/slider/lib/slider/slider.component.d.ts +97 -0
- package/slider/lib/slider/slider.module.d.ts +9 -0
- package/slider/package.json +3 -0
- package/slider/public-api.d.ts +2 -0
- package/speech-recognition/index.d.ts +5 -0
- package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +54 -0
- package/speech-recognition/lib/speech-recognition/speech-recognition.module.d.ts +9 -0
- package/speech-recognition/lib/speech-recognition/speech-recognition.service.d.ts +29 -0
- package/speech-recognition/lib/speech-recognition/text-to-speech.service.d.ts +26 -0
- package/speech-recognition/package.json +3 -0
- package/speech-recognition/public-api.d.ts +4 -0
- package/split-button/index.d.ts +5 -0
- package/split-button/lib/split-button/models/index.d.ts +2 -0
- package/split-button/lib/split-button/models/split-button-type.d.ts +1 -0
- package/split-button/lib/split-button/split-button.component.d.ts +22 -0
- package/split-button/lib/split-button/split-button.module.d.ts +8 -0
- package/split-button/package.json +3 -0
- package/split-button/public-api.d.ts +3 -0
- package/star-rating/index.d.ts +5 -0
- package/star-rating/package.json +3 -0
- package/star-rating/public-api.d.ts +2 -0
- package/star-rating/star-rating/star-rating-models.d.ts +1 -0
- package/star-rating/star-rating/star-rating.component.d.ts +20 -0
- package/stats-card/index.d.ts +5 -0
- package/stats-card/lib/stats-card/stats-card.component.d.ts +28 -0
- package/stats-card/lib/stats-card/stats-card.module.d.ts +9 -0
- package/stats-card/package.json +3 -0
- package/stats-card/public-api.d.ts +2 -0
- package/steps/index.d.ts +5 -0
- package/steps/lib/steps/steps.component.d.ts +36 -0
- package/steps/lib/steps/steps.module.d.ts +9 -0
- package/steps/package.json +3 -0
- package/steps/public-api.d.ts +2 -0
- package/structure/index.d.ts +5 -0
- package/structure/lib/structure/footer.component.d.ts +5 -0
- package/structure/lib/structure/header.component.d.ts +7 -0
- package/structure/lib/structure/structure.module.d.ts +9 -0
- package/structure/package.json +3 -0
- package/structure/public-api.d.ts +4 -0
- package/switch/index.d.ts +5 -0
- package/switch/lib/switch/switch.component.d.ts +25 -0
- package/switch/lib/switch/switch.module.d.ts +8 -0
- package/switch/package.json +3 -0
- package/switch/public-api.d.ts +2 -0
- package/table/index.d.ts +5 -0
- package/table/lib/table/export-utils.d.ts +16 -0
- package/table/lib/table/navigation/navigation.directive.d.ts +18 -0
- package/table/lib/table/row-toggler/row-toggler.directive.d.ts +10 -0
- package/table/lib/table/table-column/index.d.ts +2 -0
- package/table/lib/table/table-column/models/badge-column.interface.d.ts +9 -0
- package/table/lib/table/table-column/models/badge-configs.interface.d.ts +5 -0
- package/table/lib/table/table-column/models/column-colors.d.ts +1 -0
- package/table/lib/table/table-column/models/column-values.interface.d.ts +18 -0
- package/table/lib/table/table-column/models/column.interface.d.ts +28 -0
- package/table/lib/table/table-column/models/dynamic-editable-grid.interface.d.ts +13 -0
- package/table/lib/table/table-column/models/index.d.ts +10 -0
- package/table/lib/table/table-column/models/locale-options.interface.d.ts +6 -0
- package/table/lib/table/table-column/models/number-locale-options.interface.d.ts +6 -0
- package/table/lib/table/table-column/table-columns.component.d.ts +53 -0
- package/table/lib/table/table-paging/index.d.ts +2 -0
- package/table/lib/table/table-paging/models/index.d.ts +1 -0
- package/table/lib/table/table-paging/table-paging.component.d.ts +65 -0
- package/table/lib/table/table.module.d.ts +17 -0
- package/table/package.json +3 -0
- package/table/public-api.d.ts +5 -0
- package/table-header/index.d.ts +5 -0
- package/table-header/lib/table-header/table-header-checkbox.component.d.ts +31 -0
- package/table-header/lib/table-header/table-header-checkox.module.d.ts +10 -0
- package/table-header/package.json +3 -0
- package/table-header/public-api.d.ts +2 -0
- package/tailwind.css +721 -0
- package/template/index.d.ts +5 -0
- package/template/lib/template/template.directive.d.ts +9 -0
- package/template/lib/template/template.module.d.ts +8 -0
- package/template/package.json +3 -0
- package/template/public-api.d.ts +2 -0
- package/text-area/index.d.ts +5 -0
- package/text-area/lib/text-area/text-area.component.d.ts +36 -0
- package/text-area/lib/text-area.module.d.ts +11 -0
- package/text-area/package.json +3 -0
- package/text-area/public-api.d.ts +2 -0
- package/text-area-ia/index.d.ts +5 -0
- package/text-area-ia/lib/services/IAssist/iassist.service.d.ts +16 -0
- package/text-area-ia/lib/services/IAssist/models/iassist-input-data.d.ts +6 -0
- package/text-area-ia/lib/services/IAssist/models/iassist-response.d.ts +5 -0
- package/text-area-ia/lib/text-area-ia/text-area-ia.component.d.ts +47 -0
- package/text-area-ia/lib/text-area-ia/text-area-ia.module.d.ts +14 -0
- package/text-area-ia/package.json +3 -0
- package/text-area-ia/public-api.d.ts +2 -0
- package/thumbnail/index.d.ts +5 -0
- package/thumbnail/lib/thumbnail/thumbnail-size.d.ts +1 -0
- package/thumbnail/lib/thumbnail/thumbnail.component.d.ts +27 -0
- package/thumbnail/lib/thumbnail/thumbnail.module.d.ts +8 -0
- package/thumbnail/lib/thumbnail/thumbnail.service.d.ts +10 -0
- package/thumbnail/package.json +3 -0
- package/thumbnail/public-api.d.ts +3 -0
- package/thumbnails/index.d.ts +5 -0
- package/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.d.ts +6 -0
- package/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.d.ts +11 -0
- package/thumbnails/lib/thumbnails/components/thumbnail-item/thumbnail-item.component.d.ts +23 -0
- package/thumbnails/lib/thumbnails/models/thumbnails-item.d.ts +20 -0
- package/thumbnails/lib/thumbnails/thumbnails.component.d.ts +20 -0
- package/thumbnails/lib/thumbnails/thumbnails.module.d.ts +14 -0
- package/thumbnails/package.json +3 -0
- package/thumbnails/public-api.d.ts +3 -0
- package/tiered-menu/index.d.ts +5 -0
- package/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +35 -0
- package/tiered-menu/lib/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.d.ts +5 -0
- package/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.d.ts +18 -0
- package/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts +27 -0
- package/tiered-menu/lib/tiered-menu/models/index.d.ts +2 -0
- package/tiered-menu/lib/tiered-menu/models/tiered-menu-item-data.d.ts +10 -0
- package/tiered-menu/lib/tiered-menu/models/tiered-menu-item-internal-data.d.ts +6 -0
- package/tiered-menu/lib/tiered-menu/services/tiered-menu.event.service.d.ts +14 -0
- package/tiered-menu/lib/tiered-menu/services/tiered-menu.global.service.d.ts +7 -0
- package/tiered-menu/lib/tiered-menu/services/tiered-menu.service.d.ts +15 -0
- package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +46 -0
- package/tiered-menu/lib/tiered-menu/tiered-menu.module.d.ts +12 -0
- package/tiered-menu/package.json +3 -0
- package/tiered-menu/public-api.d.ts +5 -0
- package/tile/index.d.ts +5 -0
- package/tile/lib/tile/tile.component.d.ts +19 -0
- package/tile/lib/tile/tile.module.d.ts +10 -0
- package/tile/package.json +3 -0
- package/tile/public-api.d.ts +2 -0
- package/timeline/index.d.ts +5 -0
- package/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.component.d.ts +9 -0
- package/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.module.d.ts +10 -0
- package/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.component.d.ts +10 -0
- package/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.module.d.ts +9 -0
- package/timeline/lib/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.d.ts +9 -0
- package/timeline/lib/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.d.ts +13 -0
- package/timeline/lib/timeline/components/vertical-timeline/components/range-line/range-line.component.d.ts +5 -0
- package/timeline/lib/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.d.ts +11 -0
- package/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.component.d.ts +24 -0
- package/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.module.d.ts +13 -0
- package/timeline/lib/timeline/models/timeline-item.d.ts +27 -0
- package/timeline/lib/timeline/timeline.component.d.ts +23 -0
- package/timeline/lib/timeline/timeline.module.d.ts +11 -0
- package/timeline/package.json +3 -0
- package/timeline/public-api.d.ts +5 -0
- package/toast/index.d.ts +5 -0
- package/toast/lib/toast/toast.component.d.ts +15 -0
- package/toast/lib/toast/toast.module.d.ts +8 -0
- package/toast/lib/toast/toast.service.d.ts +15 -0
- package/toast/lib/toast/types/toast.d.ts +16 -0
- package/toast/package.json +3 -0
- package/toast/public-api.d.ts +3 -0
- package/token-list/index.d.ts +5 -0
- package/token-list/lib/token-list/models/index.d.ts +1 -0
- package/token-list/lib/token-list/token-list.component.d.ts +16 -0
- package/token-list/lib/token-list/token-list.module.d.ts +8 -0
- package/token-list/package.json +3 -0
- package/token-list/public-api.d.ts +3 -0
- package/tooltip/index.d.ts +5 -0
- package/tooltip/lib/tooltip/models/mobile-behavior.d.ts +1 -0
- package/tooltip/lib/tooltip/models/tooltip-event.d.ts +1 -0
- package/tooltip/lib/tooltip/models/tooltip-position.d.ts +1 -0
- package/tooltip/lib/tooltip/tooltip.component.d.ts +12 -0
- package/tooltip/lib/tooltip/tooltip.directive.d.ts +61 -0
- package/tooltip/lib/tooltip/tooltip.module.d.ts +9 -0
- package/tooltip/package.json +3 -0
- package/tooltip/public-api.d.ts +5 -0
- package/utils/index.d.ts +5 -2
- package/utils/lib/utils/utils.d.ts +25 -0
- package/utils/package.json +3 -0
- package/utils/public-api.d.ts +2 -0
- package/workspace-switch/index.d.ts +5 -0
- package/workspace-switch/lib/workspace-switch/models/index.d.ts +1 -0
- package/workspace-switch/lib/workspace-switch/workspace-switch.component.d.ts +33 -0
- package/workspace-switch/lib/workspace-switch/workspace-switch.module.d.ts +8 -0
- package/workspace-switch/package.json +3 -0
- package/workspace-switch/public-api.d.ts +3 -0
- package/angular-components.module.d.ts +0 -9
- package/bundles/seniorsistemas-angular-components.umd.js +0 -23891
- package/bundles/seniorsistemas-angular-components.umd.js.map +0 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js +0 -17
- package/bundles/seniorsistemas-angular-components.umd.min.js.map +0 -1
- package/components/accessibility-events/accessibility-events.module.d.ts +0 -2
- package/components/accessibility-events/directives/accessibility-event.directive.d.ts +0 -12
- package/components/accessibility-events/index.d.ts +0 -2
- package/components/accordion/accordion.component.d.ts +0 -18
- package/components/accordion/accordion.module.d.ts +0 -2
- package/components/accordion/components/accordion-panel/accordion-panel.component.d.ts +0 -31
- package/components/accordion/index.d.ts +0 -3
- package/components/accordion/models/accordion-button-settings.d.ts +0 -4
- package/components/accordion/models/accordion-switch-settings.d.ts +0 -4
- package/components/alert/alert.component.d.ts +0 -13
- package/components/alert/alert.module.d.ts +0 -2
- package/components/alert/index.d.ts +0 -2
- package/components/badge/badge.component.d.ts +0 -20
- package/components/badge/badge.module.d.ts +0 -2
- package/components/badge/index.d.ts +0 -3
- package/components/badge/models/badge-colors.d.ts +0 -8
- package/components/badge/models/badge-types.d.ts +0 -4
- package/components/badge/models/index.d.ts +0 -2
- package/components/bignumber-input/bignumber-input.directive.d.ts +0 -29
- package/components/bignumber-input/bignumber-input.module.d.ts +0 -2
- package/components/bignumber-input/index.d.ts +0 -2
- package/components/breadcrumb/breadcrumb.component.d.ts +0 -22
- package/components/breadcrumb/breadcrumb.module.d.ts +0 -2
- package/components/breadcrumb/index.d.ts +0 -2
- package/components/button/button.component.d.ts +0 -43
- package/components/button/button.module.d.ts +0 -2
- package/components/button/index.d.ts +0 -6
- package/components/button/models/button-animation.d.ts +0 -3
- package/components/button/models/button-badge-config.d.ts +0 -7
- package/components/button/models/button-priority.d.ts +0 -7
- package/components/button/models/button-size.d.ts +0 -4
- package/components/calendar-mask/calendar-mask.directive.d.ts +0 -66
- package/components/calendar-mask/calendar-mask.module.d.ts +0 -2
- package/components/calendar-mask/index.d.ts +0 -2
- package/components/card/card.component.d.ts +0 -22
- package/components/card/card.module.d.ts +0 -2
- package/components/card/index.d.ts +0 -3
- package/components/card/models/card-template-types.d.ts +0 -5
- package/components/chat/chat.component.d.ts +0 -7
- package/components/chat/chat.module.d.ts +0 -2
- package/components/chat/components/chat-message/chat-message.component.d.ts +0 -8
- package/components/chat/index.d.ts +0 -3
- package/components/chat/types/chat-message.d.ts +0 -8
- package/components/checkbox/checkbox.component.d.ts +0 -17
- package/components/checkbox/checkbox.module.d.ts +0 -2
- package/components/checkbox/index.d.ts +0 -3
- package/components/checkbox/models/checkbox-state.d.ts +0 -6
- package/components/checkbox/models/index.d.ts +0 -2
- package/components/chips/chip-item/chip-item.component.d.ts +0 -22
- package/components/chips/chips/chips.component.d.ts +0 -55
- package/components/chips/chips.module.d.ts +0 -2
- package/components/chips/index.d.ts +0 -3
- package/components/chips/models/chip-models.d.ts +0 -7
- package/components/code-editor/code-editor.component.d.ts +0 -26
- package/components/code-editor/code-editor.module.d.ts +0 -2
- package/components/code-editor/core/facades/core-facade.d.ts +0 -32
- package/components/code-editor/core/use-cases/core-linters.d.ts +0 -6
- package/components/code-editor/index.d.ts +0 -3
- package/components/code-editor/infra/cores/codemirror-6/codemirror-6-core.d.ts +0 -26
- package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper.d.ts +0 -15
- package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.d.ts +0 -6
- package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/safe-http-communication.d.ts +0 -12
- package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-safe-response.d.ts +0 -8
- package/components/code-editor/infra/cores/codemirror-6/models/types/diagnostic-severity.d.ts +0 -1
- package/components/code-editor/infra/cores/codemirror-6/models/types/editor-theme.d.ts +0 -3
- package/components/code-editor/infra/utils/custom-http-client/custom-http-client.d.ts +0 -34
- package/components/code-editor/infra/utils/custom-translations/custom-translations-service.d.ts +0 -25
- package/components/code-editor/infra/utils/custom-translations/custom-translations.module.d.ts +0 -12
- package/components/collapse-link/collapse-link.component.d.ts +0 -17
- package/components/collapse-link/collapse-link.module.d.ts +0 -2
- package/components/collapse-link/index.d.ts +0 -2
- package/components/control-errors/control-errors.component.d.ts +0 -9
- package/components/control-errors/control-errors.module.d.ts +0 -2
- package/components/control-errors/index.d.ts +0 -2
- package/components/country-phone-picker/country-phone-picker.component.d.ts +0 -64
- package/components/country-phone-picker/country-phone-picker.module.d.ts +0 -2
- package/components/country-phone-picker/country-phone-picker.service.d.ts +0 -10
- package/components/country-phone-picker/index.d.ts +0 -4
- package/components/country-phone-picker/models/index.d.ts +0 -3
- package/components/country-phone-picker/resources/countries.d.ts +0 -2
- package/components/country-phone-picker/resources/index.d.ts +0 -1
- package/components/custom-fields/custom-fields.component.d.ts +0 -82
- package/components/custom-fields/custom-fields.module.d.ts +0 -2
- package/components/custom-fields/custom-fields.service.d.ts +0 -17
- package/components/custom-fields/index.d.ts +0 -3
- package/components/dynamic-form/components/dynamic-field/dynamic-field.component.d.ts +0 -12
- package/components/dynamic-form/components/field-label/field-label.component.d.ts +0 -5
- package/components/dynamic-form/components/field-label/field-label.module.d.ts +0 -2
- package/components/dynamic-form/components/fields/autocomplete/autocomplete-field.component.d.ts +0 -14
- package/components/dynamic-form/components/fields/base-field-component.d.ts +0 -27
- package/components/dynamic-form/components/fields/bignumber/bignumber-field.component.d.ts +0 -24
- package/components/dynamic-form/components/fields/bignumber/bignumber-field.module.d.ts +0 -2
- package/components/dynamic-form/components/fields/boolean/boolean-field.component.d.ts +0 -8
- package/components/dynamic-form/components/fields/boolean/boolean-switch-field.component.d.ts +0 -7
- package/components/dynamic-form/components/fields/button-field/button-field.component.d.ts +0 -7
- package/components/dynamic-form/components/fields/calendar/calendar-field.component.d.ts +0 -31
- package/components/dynamic-form/components/fields/checkbox/checkbox-field.component.d.ts +0 -7
- package/components/dynamic-form/components/fields/checkbox/checkbox-field.module.d.ts +0 -2
- package/components/dynamic-form/components/fields/chips/chips-field.component.d.ts +0 -19
- package/components/dynamic-form/components/fields/country-phone-picker/country-phone-picker-field.component.d.ts +0 -14
- package/components/dynamic-form/components/fields/currency/currency-field.component.d.ts +0 -21
- package/components/dynamic-form/components/fields/currency/currency-field.module.d.ts +0 -2
- package/components/dynamic-form/components/fields/editor/editor-field.component.d.ts +0 -7
- package/components/dynamic-form/components/fields/editor/editor-field.module.d.ts +0 -2
- package/components/dynamic-form/components/fields/file-upload/file-upload.component.d.ts +0 -17
- package/components/dynamic-form/components/fields/index.d.ts +0 -21
- package/components/dynamic-form/components/fields/lookup/lookup-field.component.d.ts +0 -7
- package/components/dynamic-form/components/fields/number/number-field.component.d.ts +0 -27
- package/components/dynamic-form/components/fields/number/number-field.module.d.ts +0 -2
- package/components/dynamic-form/components/fields/password/password-field.component.d.ts +0 -19
- package/components/dynamic-form/components/fields/password/password-field.module.d.ts +0 -2
- package/components/dynamic-form/components/fields/profile-picture/profile-picture-field.component.d.ts +0 -6
- package/components/dynamic-form/components/fields/profile-picture/profile-picture-field.module.d.ts +0 -2
- package/components/dynamic-form/components/fields/radio-button/radio-button-field.component.d.ts +0 -15
- package/components/dynamic-form/components/fields/select/select-field.component.d.ts +0 -7
- package/components/dynamic-form/components/fields/slider/slider-field.component.d.ts +0 -22
- package/components/dynamic-form/components/fields/text/text-field.component.d.ts +0 -22
- package/components/dynamic-form/components/fields/text/text-field.module.d.ts +0 -2
- package/components/dynamic-form/components/fields/text-area/text-area-field.component.d.ts +0 -11
- package/components/dynamic-form/components/fields/text-area-ia/text-area-ia-field.component.d.ts +0 -28
- package/components/dynamic-form/components/grid/row/row.component.d.ts +0 -12
- package/components/dynamic-form/components/lookup/lookup.component.d.ts +0 -184
- package/components/dynamic-form/components/lookup/models/default-filter.d.ts +0 -4
- package/components/dynamic-form/components/lookup/models/index.d.ts +0 -1
- package/components/dynamic-form/components/structure/base-structure-component.d.ts +0 -8
- package/components/dynamic-form/components/structure/fieldset/fieldset.component.d.ts +0 -9
- package/components/dynamic-form/components/structure/section/section.component.d.ts +0 -11
- package/components/dynamic-form/configurations/addon-config.d.ts +0 -8
- package/components/dynamic-form/configurations/field-type.d.ts +0 -30
- package/components/dynamic-form/configurations/fields/autocomplete-field.d.ts +0 -30
- package/components/dynamic-form/configurations/fields/bignumber-field.d.ts +0 -36
- package/components/dynamic-form/configurations/fields/blob-field.d.ts +0 -43
- package/components/dynamic-form/configurations/fields/boolean-field.d.ts +0 -29
- package/components/dynamic-form/configurations/fields/boolean-switch-field.d.ts +0 -11
- package/components/dynamic-form/configurations/fields/button-field.d.ts +0 -37
- package/components/dynamic-form/configurations/fields/calendar-field.d.ts +0 -45
- package/components/dynamic-form/configurations/fields/checkbox-field.d.ts +0 -9
- package/components/dynamic-form/configurations/fields/chips-field.d.ts +0 -24
- package/components/dynamic-form/configurations/fields/country-phone-picker-field.d.ts +0 -15
- package/components/dynamic-form/configurations/fields/currency-field.d.ts +0 -8
- package/components/dynamic-form/configurations/fields/decimal-field.d.ts +0 -14
- package/components/dynamic-form/configurations/fields/field.d.ts +0 -96
- package/components/dynamic-form/configurations/fields/index.d.ts +0 -21
- package/components/dynamic-form/configurations/fields/lookup-field.d.ts +0 -92
- package/components/dynamic-form/configurations/fields/number-field.d.ts +0 -42
- package/components/dynamic-form/configurations/fields/password-field.d.ts +0 -45
- package/components/dynamic-form/configurations/fields/profile-picture.d.ts +0 -36
- package/components/dynamic-form/configurations/fields/radio-button-field.d.ts +0 -23
- package/components/dynamic-form/configurations/fields/select-field.d.ts +0 -37
- package/components/dynamic-form/configurations/fields/slider-field.d.ts +0 -31
- package/components/dynamic-form/configurations/fields/text-area-field.d.ts +0 -24
- package/components/dynamic-form/configurations/fields/text-area-ia-field.d.ts +0 -26
- package/components/dynamic-form/configurations/fields/text-field.d.ts +0 -41
- package/components/dynamic-form/configurations/form-field.d.ts +0 -190
- package/components/dynamic-form/configurations/grid/grid.d.ts +0 -14
- package/components/dynamic-form/configurations/grid/row.d.ts +0 -8
- package/components/dynamic-form/configurations/structure/fieldset.d.ts +0 -10
- package/components/dynamic-form/configurations/structure/section.d.ts +0 -20
- package/components/dynamic-form/configurations/structure/structure.d.ts +0 -15
- package/components/dynamic-form/dynamic-form.component.d.ts +0 -10
- package/components/dynamic-form/dynamic-form.d.ts +0 -56
- package/components/dynamic-form/dynamic-form.directive.d.ts +0 -28
- package/components/dynamic-form/dynamic-form.module.d.ts +0 -2
- package/components/dynamic-form/index.d.ts +0 -32
- package/components/dynamic-form/services/IAssist/iassist.service.d.ts +0 -13
- package/components/dynamic-form/services/IAssist/models/iassist-input-data.d.ts +0 -6
- package/components/dynamic-form/services/IAssist/models/iassist-response.d.ts +0 -5
- package/components/dynamic-form/services/IAssist/models/index.d.ts +0 -2
- package/components/editable-overlay/editable-overlay.directive.d.ts +0 -9
- package/components/editable-overlay/editable-overlay.module.d.ts +0 -2
- package/components/editable-overlay/index.d.ts +0 -2
- package/components/empty-state/empty-state.component.d.ts +0 -16
- package/components/empty-state/empty-state.module.d.ts +0 -2
- package/components/empty-state/go-back/go-back.component.d.ts +0 -11
- package/components/empty-state/index.d.ts +0 -2
- package/components/fieldset/fieldset.component.d.ts +0 -14
- package/components/fieldset/fieldset.models.d.ts +0 -4
- package/components/fieldset/fieldset.module.d.ts +0 -2
- package/components/fieldset/index.d.ts +0 -3
- package/components/file-upload/file-upload.component.d.ts +0 -76
- package/components/file-upload/file-upload.module.d.ts +0 -2
- package/components/file-upload/file-upload.service.d.ts +0 -6
- package/components/file-upload/index.d.ts +0 -3
- package/components/file-upload/models/file-dto.d.ts +0 -11
- package/components/file-upload/models/file-upload-permissions.d.ts +0 -6
- package/components/file-upload/models/index.d.ts +0 -4
- package/components/file-upload/models/uploadError.d.ts +0 -6
- package/components/file-upload/models/validate-errors.d.ts +0 -6
- package/components/gantt/components/gantt/arrow.d.ts +0 -16
- package/components/gantt/components/gantt/bar.d.ts +0 -44
- package/components/gantt/components/gantt/gantt-options.d.ts +0 -2
- package/components/gantt/components/gantt/gantt.d.ts +0 -64
- package/components/gantt/components/gantt/popup.d.ts +0 -14
- package/components/gantt/components/gantt/utils/svg-utils.d.ts +0 -11
- package/components/gantt/components/side-table/side-table.component.d.ts +0 -10
- package/components/gantt/gantt.component.d.ts +0 -30
- package/components/gantt/gantt.module.d.ts +0 -2
- package/components/gantt/index.d.ts +0 -3
- package/components/gantt/models/index.d.ts +0 -3
- package/components/gantt/models/options.d.ts +0 -26
- package/components/global-search/elements/dropdown/global-search-dropdown-item.component.d.ts +0 -24
- package/components/global-search/global-search-size.enum.d.ts +0 -5
- package/components/global-search/global-search.component.d.ts +0 -34
- package/components/global-search/global-search.module.d.ts +0 -2
- package/components/global-search/index.d.ts +0 -4
- package/components/grid-menu/components/grid-menu-item/grid-menu-item.component.d.ts +0 -7
- package/components/grid-menu/grid-menu.component.d.ts +0 -5
- package/components/grid-menu/grid-menu.module.d.ts +0 -2
- package/components/grid-menu/index.d.ts +0 -3
- package/components/grid-menu/types/grid-menu-item.d.ts +0 -6
- package/components/help-popover/help-popover/help-popover.component.d.ts +0 -32
- package/components/help-popover/help-popover.directive.d.ts +0 -64
- package/components/help-popover/help-popover.module.d.ts +0 -2
- package/components/help-popover/index.d.ts +0 -5
- package/components/help-popover/models/help-popover.models.d.ts +0 -2
- package/components/ia-insight/components/ia-insight-card/components/ia-insight-card-loader/ia-insight-card-loader.component.d.ts +0 -2
- package/components/ia-insight/components/ia-insight-card/ia-insight-card.component.d.ts +0 -22
- package/components/ia-insight/components/ia-insight-sidebar/ia-insight-sidebar.component.d.ts +0 -16
- package/components/ia-insight/ia-insight.component.d.ts +0 -24
- package/components/ia-insight/ia-insight.module.d.ts +0 -2
- package/components/ia-insight/index.d.ts +0 -3
- package/components/ia-insight/models/ia-insight-item.d.ts +0 -9
- package/components/ia-insight/models/ia-insight-template-types.d.ts +0 -5
- package/components/ia-insight/models/index.d.ts +0 -2
- package/components/image-cropper/image-cropper.component.d.ts +0 -42
- package/components/image-cropper/image-cropper.module.d.ts +0 -2
- package/components/image-cropper/image-cropper.service.d.ts +0 -39
- package/components/image-cropper/index.d.ts +0 -3
- package/components/index.d.ts +0 -75
- package/components/infinite-scroll/infinite-scroll.directive.d.ts +0 -7
- package/components/infinite-scroll/infinite-scroll.module.d.ts +0 -2
- package/components/info-sign/index.d.ts +0 -2
- package/components/info-sign/info-sign.component.d.ts +0 -7
- package/components/info-sign/info-sign.directive.d.ts +0 -16
- package/components/info-sign/info-sign.module.d.ts +0 -2
- package/components/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.d.ts +0 -17
- package/components/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.d.ts +0 -10
- package/components/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.d.ts +0 -18
- package/components/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.d.ts +0 -9
- package/components/inline-edit/components/fields/inline-edit-text-area/inline-edit-text-area.component.d.ts +0 -10
- package/components/inline-edit/components/fields/inline-edit-text-area-ia/inline-edit-text-area-ia.component.d.ts +0 -9
- package/components/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +0 -27
- package/components/inline-edit/fields/index.d.ts +0 -7
- package/components/inline-edit/fields/inline-edit-calendar-field.d.ts +0 -44
- package/components/inline-edit/fields/inline-edit-field.d.ts +0 -13
- package/components/inline-edit/fields/inline-edit-lookup-field.d.ts +0 -79
- package/components/inline-edit/fields/inline-edit-number-field.d.ts +0 -38
- package/components/inline-edit/index.d.ts +0 -3
- package/components/inline-edit/inline-edit.component.d.ts +0 -14
- package/components/inline-edit/inline-edit.module.d.ts +0 -2
- package/components/kanban/components/kanban-column/kanban-column.component.d.ts +0 -18
- package/components/kanban/components/kanban-item/kanban-item.component.d.ts +0 -16
- package/components/kanban/components/kanban-item-dragging/kanban-item-dragging.component.d.ts +0 -3
- package/components/kanban/index.d.ts +0 -3
- package/components/kanban/kanban-event.service.d.ts +0 -12
- package/components/kanban/kanban.component.d.ts +0 -43
- package/components/kanban/kanban.module.d.ts +0 -2
- package/components/kanban/models/index.d.ts +0 -2
- package/components/kanban/models/kanban-data.d.ts +0 -27
- package/components/kanban/models/kanban-template-types.d.ts +0 -7
- package/components/label-value/index.d.ts +0 -3
- package/components/label-value/label-value.component.d.ts +0 -9
- package/components/label-value/label-value.module.d.ts +0 -2
- package/components/label-value/types/label-value-configuration.d.ts +0 -29
- package/components/loading-state/components/dots-indicator/dots-indicator.components.d.ts +0 -2
- package/components/loading-state/components/logo-indicator/logo-indicator.component.d.ts +0 -2
- package/components/loading-state/index.d.ts +0 -3
- package/components/loading-state/loading-state.component.d.ts +0 -20
- package/components/loading-state/loading-state.directive.d.ts +0 -19
- package/components/loading-state/loading-state.module.d.ts +0 -2
- package/components/locale/index.d.ts +0 -10
- package/components/locale/locale.module.d.ts +0 -5
- package/components/locale/locale.service.d.ts +0 -24
- package/components/locale/options/calendar.d.ts +0 -25
- package/components/locale/options/index.d.ts +0 -26
- package/components/locale/options/number.d.ts +0 -11
- package/components/locale/pipes/localized-bignumber-impure.pipe.d.ts +0 -6
- package/components/locale/pipes/localized-bignumber.pipe.d.ts +0 -9
- package/components/locale/pipes/localized-currency-impure.pipe.d.ts +0 -8
- package/components/locale/pipes/localized-currency.pipe.d.ts +0 -19
- package/components/locale/pipes/localized-date-impure.pipe.d.ts +0 -4
- package/components/locale/pipes/localized-date.pipe.d.ts +0 -7
- package/components/locale/pipes/localized-number.pipe.d.ts +0 -14
- package/components/locale/pipes/localized-time-impure.pipe.d.ts +0 -4
- package/components/locale/pipes/localized-time.pipe.d.ts +0 -7
- package/components/locale/pipes/numeric.pipe.d.ts +0 -13
- package/components/locale/services/numeric.service.d.ts +0 -27
- package/components/localized-number-input/index.d.ts +0 -2
- package/components/localized-number-input/localized-number-input.directive.d.ts +0 -13
- package/components/localized-number-input/localized-number-input.module.d.ts +0 -2
- package/components/mask/index.d.ts +0 -2
- package/components/mask/mask-formatter.module.d.ts +0 -2
- package/components/mask/mask-formatter.pipe.d.ts +0 -5
- package/components/mouse-events/double-click.directive.d.ts +0 -9
- package/components/mouse-events/index.d.ts +0 -3
- package/components/mouse-events/long-press.directive.d.ts +0 -13
- package/components/mouse-events/mouse-events.module.d.ts +0 -2
- package/components/navigation-button/index.d.ts +0 -3
- package/components/navigation-button/models/index.d.ts +0 -2
- package/components/navigation-button/models/navigation-button-step-changed-info.d.ts +0 -5
- package/components/navigation-button/navigation-button.component.d.ts +0 -30
- package/components/navigation-button/navigation-button.module.d.ts +0 -2
- package/components/number-input/index.d.ts +0 -2
- package/components/number-input/number-input.directive.d.ts +0 -44
- package/components/number-input/number-input.module.d.ts +0 -5
- package/components/object-card/elements/field/object-card-field.component.d.ts +0 -17
- package/components/object-card/elements/main/object-card-main.component.d.ts +0 -27
- package/components/object-card/index.d.ts +0 -4
- package/components/object-card/object-card.component.d.ts +0 -29
- package/components/object-card/object-card.module.d.ts +0 -2
- package/components/panel/index.d.ts +0 -2
- package/components/panel/panel.component.d.ts +0 -25
- package/components/panel/panel.module.d.ts +0 -2
- package/components/password-strength/index.d.ts +0 -4
- package/components/password-strength/models/index.d.ts +0 -2
- package/components/password-strength/models/password-positions.d.ts +0 -5
- package/components/password-strength/models/password-strengths.d.ts +0 -6
- package/components/password-strength/password-strength.component.d.ts +0 -19
- package/components/password-strength/password-strength.directive.d.ts +0 -26
- package/components/password-strength/password-strength.module.d.ts +0 -2
- package/components/picklist/index.d.ts +0 -4
- package/components/picklist/picklist/models/picklist-models.d.ts +0 -8
- package/components/picklist/picklist/picklist.component.d.ts +0 -71
- package/components/picklist/picklist.module.d.ts +0 -2
- package/components/product-header/index.d.ts +0 -2
- package/components/product-header/product-header.component.d.ts +0 -10
- package/components/product-header/product-header.module.d.ts +0 -2
- package/components/profile-picture-picker/index.d.ts +0 -3
- package/components/profile-picture-picker/models/file-validation-errors.d.ts +0 -10
- package/components/profile-picture-picker/models/index.d.ts +0 -4
- package/components/profile-picture-picker/profile-picture-picker.component.d.ts +0 -55
- package/components/profile-picture-picker/profile-picture-picker.module.d.ts +0 -2
- package/components/progressbar/components/progressbar-determinate/progressbar-determinate.component.d.ts +0 -17
- package/components/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component.d.ts +0 -5
- package/components/progressbar/index.d.ts +0 -3
- package/components/progressbar/models/index.d.ts +0 -2
- package/components/progressbar/models/progressbar-colors.d.ts +0 -6
- package/components/progressbar/models/progressbar-mode.d.ts +0 -4
- package/components/progressbar/progressbar.component.d.ts +0 -15
- package/components/progressbar/progressbar.module.d.ts +0 -2
- package/components/rating-scale/index.d.ts +0 -3
- package/components/rating-scale/models/index.d.ts +0 -1
- package/components/rating-scale/rating-scale.component.d.ts +0 -15
- package/components/rating-scale/rating-scale.module.d.ts +0 -2
- package/components/select-button/components/select-button-item/select-button-item.component.d.ts +0 -7
- package/components/select-button/index.d.ts +0 -3
- package/components/select-button/models/index.d.ts +0 -1
- package/components/select-button/select-button.component.d.ts +0 -19
- package/components/select-button/select-button.module.d.ts +0 -2
- package/components/shared/border-button/border-button.component.d.ts +0 -9
- package/components/shared/border-button/border-button.module.d.ts +0 -2
- package/components/shared/index.d.ts +0 -3
- package/components/shared/models/border-button-options.d.ts +0 -9
- package/components/shared/models/enum-severity.d.ts +0 -7
- package/components/sidebar/index.d.ts +0 -2
- package/components/sidebar/sidebar.component.d.ts +0 -22
- package/components/sidebar/sidebar.module.d.ts +0 -2
- package/components/slide-panel/index.d.ts +0 -2
- package/components/slide-panel/slide-panel.component.d.ts +0 -32
- package/components/slide-panel/slide-panel.module.d.ts +0 -2
- package/components/slide-panel/slide-panel.service.d.ts +0 -7
- package/components/slider/index.d.ts +0 -2
- package/components/slider/slider.component.d.ts +0 -95
- package/components/slider/slider.module.d.ts +0 -2
- package/components/speech-recognition/speech-recognition/speech-recognition.component.d.ts +0 -51
- package/components/speech-recognition/speech-recognition.module.d.ts +0 -2
- package/components/speech-recognition/speech-recognition.service.d.ts +0 -26
- package/components/speech-recognition/text-to-speech.service.d.ts +0 -23
- package/components/split-button/index.d.ts +0 -4
- package/components/split-button/models/split-button-type.d.ts +0 -5
- package/components/split-button/split-button.component.d.ts +0 -19
- package/components/split-button/split-button.module.d.ts +0 -2
- package/components/stats-card/index.d.ts +0 -2
- package/components/stats-card/stats-card.component.d.ts +0 -26
- package/components/stats-card/stats-card.module.d.ts +0 -2
- package/components/steps/index.d.ts +0 -2
- package/components/steps/steps.component.d.ts +0 -38
- package/components/steps/steps.module.d.ts +0 -2
- package/components/structure/footer.component.d.ts +0 -2
- package/components/structure/header.component.d.ts +0 -4
- package/components/structure/index.d.ts +0 -3
- package/components/structure/structure.module.d.ts +0 -2
- package/components/switch/index.d.ts +0 -2
- package/components/switch/switch.component.d.ts +0 -22
- package/components/switch/switch.module.d.ts +0 -2
- package/components/table/frozen-position/frozen-position.directive.d.ts +0 -28
- package/components/table/index.d.ts +0 -6
- package/components/table/navigation/navigation.directive.d.ts +0 -15
- package/components/table/row-toggler/row-toggler.directive.d.ts +0 -7
- package/components/table/table-column/index.d.ts +0 -1
- package/components/table/table-column/models/badge-column.interface.d.ts +0 -9
- package/components/table/table-column/models/badge-configs.interface.d.ts +0 -5
- package/components/table/table-column/models/column-colors.d.ts +0 -1
- package/components/table/table-column/models/column-values.interface.d.ts +0 -17
- package/components/table/table-column/models/column.interface.d.ts +0 -27
- package/components/table/table-column/models/dynamic-editable-grid.interface.d.ts +0 -13
- package/components/table/table-column/models/index.d.ts +0 -9
- package/components/table/table-column/models/locale-options.interface.d.ts +0 -6
- package/components/table/table-column/models/number-locale-options.interface.d.ts +0 -6
- package/components/table/table-column/table-columns.component.d.ts +0 -49
- package/components/table/table-paging/index.d.ts +0 -1
- package/components/table/table-paging/models/index.d.ts +0 -1
- package/components/table/table-paging/table-paging.component.d.ts +0 -63
- package/components/table/table.module.d.ts +0 -2
- package/components/table-header/index.d.ts +0 -2
- package/components/table-header/table-header-checkbox.component.d.ts +0 -25
- package/components/table-header/table-header-checkox.module.d.ts +0 -2
- package/components/template/index.d.ts +0 -2
- package/components/template/template.directive.d.ts +0 -6
- package/components/template/template.module.d.ts +0 -2
- package/components/text-area/index.d.ts +0 -2
- package/components/text-area/text-area/text-area.component.d.ts +0 -32
- package/components/text-area/text-area.module.d.ts +0 -2
- package/components/text-area-ia/index.d.ts +0 -2
- package/components/text-area-ia/text-area-ia.component.d.ts +0 -44
- package/components/text-area-ia/text-area-ia.module.d.ts +0 -2
- package/components/thumbnail/index.d.ts +0 -3
- package/components/thumbnail/thumbnail-size.d.ts +0 -5
- package/components/thumbnail/thumbnail.component.d.ts +0 -24
- package/components/thumbnail/thumbnail.module.d.ts +0 -2
- package/components/thumbnail/thumbnail.service.d.ts +0 -7
- package/components/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.d.ts +0 -3
- package/components/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.d.ts +0 -8
- package/components/thumbnails/components/thumbnail-item/thumbnail-item.component.d.ts +0 -20
- package/components/thumbnails/index.d.ts +0 -3
- package/components/thumbnails/models/thumbnails-item.d.ts +0 -20
- package/components/thumbnails/thumbnails.component.d.ts +0 -17
- package/components/thumbnails/thumbnails.module.d.ts +0 -2
- package/components/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +0 -32
- package/components/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.d.ts +0 -2
- package/components/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.d.ts +0 -15
- package/components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts +0 -24
- package/components/tiered-menu/index.d.ts +0 -3
- package/components/tiered-menu/models/index.d.ts +0 -2
- package/components/tiered-menu/models/tiered-menu-item-data.d.ts +0 -9
- package/components/tiered-menu/models/tiered-menu-item-internal-data.d.ts +0 -6
- package/components/tiered-menu/services/tiered-menu.event.service.d.ts +0 -11
- package/components/tiered-menu/services/tiered-menu.global.service.d.ts +0 -4
- package/components/tiered-menu/services/tiered-menu.service.d.ts +0 -12
- package/components/tiered-menu/tiered-menu.directive.d.ts +0 -41
- package/components/tiered-menu/tiered-menu.module.d.ts +0 -2
- package/components/tile/index.d.ts +0 -2
- package/components/tile/tile.component.d.ts +0 -16
- package/components/tile/tile.module.d.ts +0 -2
- package/components/timeline/components/horizontal-timeline/horizontal-timeline.component.d.ts +0 -6
- package/components/timeline/components/horizontal-timeline/horizontal-timeline.module.d.ts +0 -2
- package/components/timeline/components/timeline-icon-item/timeline-icon-item.component.d.ts +0 -7
- package/components/timeline/components/timeline-icon-item/timeline-icon-item.module.d.ts +0 -2
- package/components/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.d.ts +0 -6
- package/components/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.d.ts +0 -10
- package/components/timeline/components/vertical-timeline/components/range-line/range-line.component.d.ts +0 -2
- package/components/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.d.ts +0 -8
- package/components/timeline/components/vertical-timeline/vertical-timeline.component.d.ts +0 -21
- package/components/timeline/components/vertical-timeline/vertical-timeline.module.d.ts +0 -2
- package/components/timeline/index.d.ts +0 -3
- package/components/timeline/models/index.d.ts +0 -3
- package/components/timeline/models/timeline-item.d.ts +0 -27
- package/components/timeline/timeline.component.d.ts +0 -20
- package/components/timeline/timeline.module.d.ts +0 -2
- package/components/toast/index.d.ts +0 -3
- package/components/toast/toast.component.d.ts +0 -12
- package/components/toast/toast.module.d.ts +0 -2
- package/components/toast/toast.service.d.ts +0 -12
- package/components/toast/types/toast.d.ts +0 -16
- package/components/token-list/index.d.ts +0 -3
- package/components/token-list/models/index.d.ts +0 -1
- package/components/token-list/token-list.component.d.ts +0 -13
- package/components/token-list/token-list.module.d.ts +0 -2
- package/components/tooltip/index.d.ts +0 -2
- package/components/tooltip/models/index.d.ts +0 -3
- package/components/tooltip/models/mobile-behavior.d.ts +0 -4
- package/components/tooltip/models/tooltip-event.d.ts +0 -4
- package/components/tooltip/models/tooltip-position.d.ts +0 -6
- package/components/tooltip/tooltip.component.d.ts +0 -9
- package/components/tooltip/tooltip.directive.d.ts +0 -57
- package/components/tooltip/tooltip.module.d.ts +0 -2
- package/components/utils/debouce.d.ts +0 -4
- package/components/utils/export-utils.d.ts +0 -9
- package/components/utils/index.d.ts +0 -5
- package/components/utils/utils.d.ts +0 -24
- package/components/workspace-switch/index.d.ts +0 -3
- package/components/workspace-switch/models/index.d.ts +0 -1
- package/components/workspace-switch/workspace-switch.component.d.ts +0 -30
- package/components/workspace-switch/workspace-switch.module.d.ts +0 -2
- package/esm2015/angular-components.module.js +0 -22
- package/esm2015/components/accessibility-events/accessibility-events.module.js +0 -17
- package/esm2015/components/accessibility-events/directives/accessibility-event.directive.js +0 -55
- package/esm2015/components/accessibility-events/index.js +0 -3
- package/esm2015/components/accordion/accordion.component.js +0 -90
- package/esm2015/components/accordion/accordion.module.js +0 -31
- package/esm2015/components/accordion/components/accordion-panel/accordion-panel.component.js +0 -118
- package/esm2015/components/accordion/index.js +0 -4
- package/esm2015/components/accordion/models/accordion-button-settings.js +0 -1
- package/esm2015/components/accordion/models/accordion-switch-settings.js +0 -1
- package/esm2015/components/alert/alert.component.js +0 -47
- package/esm2015/components/alert/alert.module.js +0 -15
- package/esm2015/components/alert/index.js +0 -3
- package/esm2015/components/badge/badge.component.js +0 -61
- package/esm2015/components/badge/badge.module.js +0 -17
- package/esm2015/components/badge/index.js +0 -4
- package/esm2015/components/badge/models/badge-colors.js +0 -12
- package/esm2015/components/badge/models/badge-types.js +0 -6
- package/esm2015/components/badge/models/index.js +0 -3
- package/esm2015/components/bignumber-input/bignumber-input.directive.js +0 -148
- package/esm2015/components/bignumber-input/bignumber-input.module.js +0 -15
- package/esm2015/components/bignumber-input/index.js +0 -3
- package/esm2015/components/breadcrumb/breadcrumb.component.js +0 -90
- package/esm2015/components/breadcrumb/breadcrumb.module.js +0 -17
- package/esm2015/components/breadcrumb/index.js +0 -3
- package/esm2015/components/button/button.component.js +0 -138
- package/esm2015/components/button/button.module.js +0 -20
- package/esm2015/components/button/index.js +0 -6
- package/esm2015/components/button/models/button-animation.js +0 -5
- package/esm2015/components/button/models/button-badge-config.js +0 -1
- package/esm2015/components/button/models/button-priority.js +0 -9
- package/esm2015/components/button/models/button-size.js +0 -6
- package/esm2015/components/calendar-mask/calendar-mask.directive.js +0 -573
- package/esm2015/components/calendar-mask/calendar-mask.module.js +0 -15
- package/esm2015/components/calendar-mask/index.js +0 -3
- package/esm2015/components/card/card.component.js +0 -73
- package/esm2015/components/card/card.module.js +0 -16
- package/esm2015/components/card/index.js +0 -4
- package/esm2015/components/card/models/card-template-types.js +0 -7
- package/esm2015/components/chat/chat.component.js +0 -32
- package/esm2015/components/chat/chat.module.js +0 -18
- package/esm2015/components/chat/components/chat-message/chat-message.component.js +0 -28
- package/esm2015/components/chat/index.js +0 -3
- package/esm2015/components/chat/types/chat-message.js +0 -1
- package/esm2015/components/checkbox/checkbox.component.js +0 -107
- package/esm2015/components/checkbox/checkbox.module.js +0 -16
- package/esm2015/components/checkbox/index.js +0 -3
- package/esm2015/components/checkbox/models/checkbox-data.js +0 -1
- package/esm2015/components/checkbox/models/checkbox-state.js +0 -1
- package/esm2015/components/checkbox/models/index.js +0 -1
- package/esm2015/components/chips/chip-item/chip-item.component.js +0 -68
- package/esm2015/components/chips/chips/chips.component.js +0 -228
- package/esm2015/components/chips/chips.module.js +0 -24
- package/esm2015/components/chips/index.js +0 -3
- package/esm2015/components/chips/models/chip-models.js +0 -1
- package/esm2015/components/code-editor/code-editor.component.js +0 -110
- package/esm2015/components/code-editor/code-editor.module.js +0 -24
- package/esm2015/components/code-editor/core/facades/core-facade.js +0 -85
- package/esm2015/components/code-editor/core/facades/linter-facade.js +0 -1
- package/esm2015/components/code-editor/core/models/enums/marker-severity.js +0 -7
- package/esm2015/components/code-editor/core/models/index.js +0 -3
- package/esm2015/components/code-editor/core/models/interfaces/marker.js +0 -1
- package/esm2015/components/code-editor/core/use-cases/core-linters.js +0 -9
- package/esm2015/components/code-editor/index.js +0 -5
- package/esm2015/components/code-editor/infra/cores/codemirror-6/codemirror-6-core.js +0 -97
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/editor-languages.js +0 -17
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/json/json.language.js +0 -67
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-empty-state.js +0 -29
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-loading-state.js +0 -29
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper-style.js +0 -17
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper.js +0 -75
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/index.js +0 -4
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-style.js +0 -35
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.js +0 -341
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.service.js +0 -34
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/base-configs.js +0 -18
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/grammar.js +0 -37
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/completion-types.js +0 -10
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/enum-type-order.js +0 -8
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/keywords.js +0 -12
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/meta-type.js +0 -36
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/request-types.js +0 -9
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/index.js +0 -7
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/completion-Item.js +0 -1
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/facade-metadata-name.js +0 -1
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/fields-order-by.js +0 -1
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/get-facade-metadata-by-path.js +0 -1
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-context-metadata-by-id.js +0 -1
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-expression-metadata.js +0 -1
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-facade-metadata-names.js +0 -1
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-expression-metadata.js +0 -1
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-context-metadata.js +0 -1
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-facade-metadata.js +0 -1
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-field-metadata.js +0 -1
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-page-request.js +0 -1
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/safe-http-communication.js +0 -1
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/tax-calculation-configs.js +0 -1
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation-language-configs.js +0 -10
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation.language.js +0 -9
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-language-configs.js +0 -15
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-safe-response.js +0 -16
- package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/index.js +0 -3
- package/esm2015/components/code-editor/infra/cores/codemirror-6/models/index.js +0 -1
- package/esm2015/components/code-editor/infra/cores/codemirror-6/models/types/diagnostic-severity.js +0 -1
- package/esm2015/components/code-editor/infra/cores/codemirror-6/models/types/editor-theme.js +0 -1
- package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/editor-themes.js +0 -15
- package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/autocomplete-tooltip.js +0 -61
- package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/font-style.js +0 -29
- package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/line-counter.js +0 -25
- package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/scrollbars.js +0 -18
- package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-highlight-style.js +0 -16
- package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-style.js +0 -13
- package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-theme.js +0 -22
- package/esm2015/components/code-editor/infra/cores/codemirror-6/utils/convert-markers-to-diagnostics.js +0 -18
- package/esm2015/components/code-editor/infra/cores/codemirror-6/utils/index.js +0 -3
- package/esm2015/components/code-editor/infra/cores/codemirror-6/utils/is-current-position-inside-string.js +0 -6
- package/esm2015/components/code-editor/infra/utils/custom-http-client/custom-http-client.js +0 -80
- package/esm2015/components/code-editor/infra/utils/custom-http-client/json-response-formatters/format-blob-response.js +0 -13
- package/esm2015/components/code-editor/infra/utils/custom-http-client/json-response-formatters/format-json-response.js +0 -12
- package/esm2015/components/code-editor/infra/utils/custom-http-client/json-response-formatters/index.js +0 -3
- package/esm2015/components/code-editor/infra/utils/custom-translations/custom-translations-service.js +0 -37
- package/esm2015/components/code-editor/infra/utils/custom-translations/custom-translations.module.js +0 -30
- package/esm2015/components/code-editor/infra/utils/custom-translations/index.js +0 -3
- package/esm2015/components/code-editor/infra/utils/custom-translations/models/index.js +0 -1
- package/esm2015/components/code-editor/infra/utils/custom-translations/models/interfaces/translations.js +0 -1
- package/esm2015/components/code-editor/infra/utils/index.js +0 -3
- package/esm2015/components/code-editor/models/enums/languages.js +0 -6
- package/esm2015/components/code-editor/models/enums/themes.js +0 -5
- package/esm2015/components/code-editor/models/index.js +0 -4
- package/esm2015/components/code-editor/models/interfaces/editor-options.js +0 -1
- package/esm2015/components/collapse-link/collapse-link.component.js +0 -73
- package/esm2015/components/collapse-link/collapse-link.module.js +0 -15
- package/esm2015/components/collapse-link/index.js +0 -3
- package/esm2015/components/control-errors/control-errors.component.js +0 -37
- package/esm2015/components/control-errors/control-errors.module.js +0 -16
- package/esm2015/components/control-errors/index.js +0 -3
- package/esm2015/components/country-phone-picker/country-phone-picker.component.js +0 -301
- package/esm2015/components/country-phone-picker/country-phone-picker.module.js +0 -27
- package/esm2015/components/country-phone-picker/country-phone-picker.service.js +0 -43
- package/esm2015/components/country-phone-picker/index.js +0 -5
- package/esm2015/components/country-phone-picker/models/country-phone-data.js +0 -1
- package/esm2015/components/country-phone-picker/models/index.js +0 -2
- package/esm2015/components/country-phone-picker/models/ordination.js +0 -7
- package/esm2015/components/country-phone-picker/models/phone-selection-data.js +0 -1
- package/esm2015/components/country-phone-picker/resources/countries.js +0 -228
- package/esm2015/components/country-phone-picker/resources/index.js +0 -2
- package/esm2015/components/custom-fields/custom-fields.component.js +0 -609
- package/esm2015/components/custom-fields/custom-fields.module.js +0 -30
- package/esm2015/components/custom-fields/custom-fields.service.js +0 -36
- package/esm2015/components/custom-fields/index.js +0 -4
- package/esm2015/components/custom-fields/models/custom-field-type.js +0 -17
- package/esm2015/components/dynamic-form/components/dynamic-field/dynamic-field.component.js +0 -37
- package/esm2015/components/dynamic-form/components/field-label/field-label.component.js +0 -18
- package/esm2015/components/dynamic-form/components/field-label/field-label.module.js +0 -19
- package/esm2015/components/dynamic-form/components/fields/autocomplete/autocomplete-field.component.js +0 -32
- package/esm2015/components/dynamic-form/components/fields/base-field-component.js +0 -9
- package/esm2015/components/dynamic-form/components/fields/bignumber/bignumber-field.component.js +0 -113
- package/esm2015/components/dynamic-form/components/fields/bignumber/bignumber-field.module.js +0 -32
- package/esm2015/components/dynamic-form/components/fields/boolean/boolean-field.component.js +0 -20
- package/esm2015/components/dynamic-form/components/fields/boolean/boolean-switch-field.component.js +0 -17
- package/esm2015/components/dynamic-form/components/fields/button-field/button-field.component.js +0 -31
- package/esm2015/components/dynamic-form/components/fields/calendar/calendar-field.component.js +0 -106
- package/esm2015/components/dynamic-form/components/fields/checkbox/checkbox-field.component.js +0 -17
- package/esm2015/components/dynamic-form/components/fields/checkbox/checkbox-field.module.js +0 -17
- package/esm2015/components/dynamic-form/components/fields/chips/chips-field.component.js +0 -53
- package/esm2015/components/dynamic-form/components/fields/country-phone-picker/country-phone-picker-field.component.js +0 -32
- package/esm2015/components/dynamic-form/components/fields/currency/currency-field.component.js +0 -71
- package/esm2015/components/dynamic-form/components/fields/currency/currency-field.module.js +0 -30
- package/esm2015/components/dynamic-form/components/fields/editor/editor-field.component.js +0 -18
- package/esm2015/components/dynamic-form/components/fields/editor/editor-field.module.js +0 -18
- package/esm2015/components/dynamic-form/components/fields/file-upload/file-upload.component.js +0 -51
- package/esm2015/components/dynamic-form/components/fields/index.js +0 -22
- package/esm2015/components/dynamic-form/components/fields/lookup/lookup-field.component.js +0 -17
- package/esm2015/components/dynamic-form/components/fields/number/number-field.component.js +0 -109
- package/esm2015/components/dynamic-form/components/fields/number/number-field.module.js +0 -34
- package/esm2015/components/dynamic-form/components/fields/password/password-field.component.js +0 -77
- package/esm2015/components/dynamic-form/components/fields/password/password-field.module.js +0 -30
- package/esm2015/components/dynamic-form/components/fields/profile-picture/profile-picture-field.component.js +0 -17
- package/esm2015/components/dynamic-form/components/fields/profile-picture/profile-picture-field.module.js +0 -24
- package/esm2015/components/dynamic-form/components/fields/radio-button/radio-button-field.component.js +0 -60
- package/esm2015/components/dynamic-form/components/fields/select/select-field.component.js +0 -18
- package/esm2015/components/dynamic-form/components/fields/slider/slider-field.component.js +0 -111
- package/esm2015/components/dynamic-form/components/fields/text/text-field.component.js +0 -86
- package/esm2015/components/dynamic-form/components/fields/text/text-field.module.js +0 -32
- package/esm2015/components/dynamic-form/components/fields/text-area/text-area-field.component.js +0 -26
- package/esm2015/components/dynamic-form/components/fields/text-area-ia/text-area-ia-field.component.js +0 -92
- package/esm2015/components/dynamic-form/components/grid/row/row.component.js +0 -77
- package/esm2015/components/dynamic-form/components/lookup/lookup.component.js +0 -577
- package/esm2015/components/dynamic-form/components/lookup/models/default-filter.js +0 -1
- package/esm2015/components/dynamic-form/components/lookup/models/index.js +0 -1
- package/esm2015/components/dynamic-form/components/structure/base-structure-component.js +0 -1
- package/esm2015/components/dynamic-form/components/structure/fieldset/fieldset.component.js +0 -31
- package/esm2015/components/dynamic-form/components/structure/section/section.component.js +0 -52
- package/esm2015/components/dynamic-form/configurations/addon-config.js +0 -1
- package/esm2015/components/dynamic-form/configurations/dynamic-config.js +0 -71
- package/esm2015/components/dynamic-form/configurations/dynamic-type.js +0 -26
- package/esm2015/components/dynamic-form/configurations/field-size.js +0 -9
- package/esm2015/components/dynamic-form/configurations/field-type.js +0 -32
- package/esm2015/components/dynamic-form/configurations/fields/autocomplete-field.js +0 -11
- package/esm2015/components/dynamic-form/configurations/fields/bignumber-field.js +0 -23
- package/esm2015/components/dynamic-form/configurations/fields/blob-field.js +0 -19
- package/esm2015/components/dynamic-form/configurations/fields/boolean-field.js +0 -21
- package/esm2015/components/dynamic-form/configurations/fields/boolean-switch-field.js +0 -13
- package/esm2015/components/dynamic-form/configurations/fields/button-field.js +0 -30
- package/esm2015/components/dynamic-form/configurations/fields/calendar-field.js +0 -37
- package/esm2015/components/dynamic-form/configurations/fields/checkbox-field.js +0 -8
- package/esm2015/components/dynamic-form/configurations/fields/chips-field.js +0 -17
- package/esm2015/components/dynamic-form/configurations/fields/country-phone-picker-field.js +0 -11
- package/esm2015/components/dynamic-form/configurations/fields/currency-field.js +0 -12
- package/esm2015/components/dynamic-form/configurations/fields/decimal-field.js +0 -14
- package/esm2015/components/dynamic-form/configurations/fields/editor-field.js +0 -11
- package/esm2015/components/dynamic-form/configurations/fields/field.js +0 -41
- package/esm2015/components/dynamic-form/configurations/fields/index.js +0 -22
- package/esm2015/components/dynamic-form/configurations/fields/lookup-field.js +0 -33
- package/esm2015/components/dynamic-form/configurations/fields/number-field.js +0 -23
- package/esm2015/components/dynamic-form/configurations/fields/password-field.js +0 -20
- package/esm2015/components/dynamic-form/configurations/fields/profile-picture.js +0 -21
- package/esm2015/components/dynamic-form/configurations/fields/radio-button-field.js +0 -19
- package/esm2015/components/dynamic-form/configurations/fields/select-field.js +0 -26
- package/esm2015/components/dynamic-form/configurations/fields/slider-field.js +0 -21
- package/esm2015/components/dynamic-form/configurations/fields/text-area-field.js +0 -20
- package/esm2015/components/dynamic-form/configurations/fields/text-area-ia-field.js +0 -21
- package/esm2015/components/dynamic-form/configurations/fields/text-field.js +0 -24
- package/esm2015/components/dynamic-form/configurations/form-field.js +0 -92
- package/esm2015/components/dynamic-form/configurations/grid/grid.js +0 -10
- package/esm2015/components/dynamic-form/configurations/grid/row.js +0 -7
- package/esm2015/components/dynamic-form/configurations/grid-type.js +0 -5
- package/esm2015/components/dynamic-form/configurations/structure/fieldset.js +0 -8
- package/esm2015/components/dynamic-form/configurations/structure/section.js +0 -29
- package/esm2015/components/dynamic-form/configurations/structure/structure.js +0 -7
- package/esm2015/components/dynamic-form/configurations/structure-type.js +0 -6
- package/esm2015/components/dynamic-form/dynamic-form.component.js +0 -32
- package/esm2015/components/dynamic-form/dynamic-form.directive.js +0 -80
- package/esm2015/components/dynamic-form/dynamic-form.js +0 -196
- package/esm2015/components/dynamic-form/dynamic-form.module.js +0 -191
- package/esm2015/components/dynamic-form/index.js +0 -31
- package/esm2015/components/dynamic-form/services/IAssist/iassist.service.js +0 -75
- package/esm2015/components/dynamic-form/services/IAssist/models/iassist-input-data.js +0 -1
- package/esm2015/components/dynamic-form/services/IAssist/models/iassist-response.js +0 -1
- package/esm2015/components/dynamic-form/services/IAssist/models/index.js +0 -1
- package/esm2015/components/editable-overlay/editable-overlay.directive.js +0 -42
- package/esm2015/components/editable-overlay/editable-overlay.module.js +0 -15
- package/esm2015/components/editable-overlay/index.js +0 -3
- package/esm2015/components/empty-state/empty-state.component.js +0 -57
- package/esm2015/components/empty-state/empty-state.module.js +0 -19
- package/esm2015/components/empty-state/go-back/go-back.component.js +0 -37
- package/esm2015/components/empty-state/index.js +0 -3
- package/esm2015/components/fieldset/fieldset.component.js +0 -68
- package/esm2015/components/fieldset/fieldset.models.js +0 -1
- package/esm2015/components/fieldset/fieldset.module.js +0 -17
- package/esm2015/components/fieldset/index.js +0 -3
- package/esm2015/components/file-upload/file-upload.component.js +0 -285
- package/esm2015/components/file-upload/file-upload.module.js +0 -27
- package/esm2015/components/file-upload/file-upload.service.js +0 -19
- package/esm2015/components/file-upload/index.js +0 -4
- package/esm2015/components/file-upload/models/file-dto.js +0 -1
- package/esm2015/components/file-upload/models/file-upload-permissions.js +0 -12
- package/esm2015/components/file-upload/models/index.js +0 -3
- package/esm2015/components/file-upload/models/list-blob-metadata.js +0 -1
- package/esm2015/components/file-upload/models/uploadError.js +0 -1
- package/esm2015/components/file-upload/models/validate-errors.js +0 -8
- package/esm2015/components/gantt/components/gantt/arrow.js +0 -82
- package/esm2015/components/gantt/components/gantt/bar.js +0 -264
- package/esm2015/components/gantt/components/gantt/gantt-options.js +0 -20
- package/esm2015/components/gantt/components/gantt/gantt.js +0 -808
- package/esm2015/components/gantt/components/gantt/popup.js +0 -100
- package/esm2015/components/gantt/components/gantt/utils/date-utils.js +0 -127
- package/esm2015/components/gantt/components/gantt/utils/svg-utils.js +0 -119
- package/esm2015/components/gantt/components/side-table/side-table.component.js +0 -32
- package/esm2015/components/gantt/gantt.component.js +0 -160
- package/esm2015/components/gantt/gantt.module.js +0 -20
- package/esm2015/components/gantt/index.js +0 -4
- package/esm2015/components/gantt/models/index.js +0 -2
- package/esm2015/components/gantt/models/options.js +0 -1
- package/esm2015/components/gantt/models/task.js +0 -1
- package/esm2015/components/gantt/models/view-mode.js +0 -12
- package/esm2015/components/global-search/elements/dropdown/global-search-dropdown-item.component.js +0 -76
- package/esm2015/components/global-search/global-search-size.enum.js +0 -7
- package/esm2015/components/global-search/global-search.component.js +0 -135
- package/esm2015/components/global-search/global-search.module.js +0 -50
- package/esm2015/components/global-search/index.js +0 -5
- package/esm2015/components/grid-menu/components/grid-menu-item/grid-menu-item.component.js +0 -36
- package/esm2015/components/grid-menu/grid-menu.component.js +0 -22
- package/esm2015/components/grid-menu/grid-menu.module.js +0 -16
- package/esm2015/components/grid-menu/index.js +0 -3
- package/esm2015/components/grid-menu/types/grid-menu-item.js +0 -1
- package/esm2015/components/help-popover/help-popover/help-popover.component.js +0 -82
- package/esm2015/components/help-popover/help-popover.directive.js +0 -328
- package/esm2015/components/help-popover/help-popover.module.js +0 -20
- package/esm2015/components/help-popover/index.js +0 -4
- package/esm2015/components/help-popover/models/help-popover.models.js +0 -1
- package/esm2015/components/ia-insight/components/ia-insight-card/components/ia-insight-card-loader/ia-insight-card-loader.component.js +0 -13
- package/esm2015/components/ia-insight/components/ia-insight-card/ia-insight-card.component.js +0 -82
- package/esm2015/components/ia-insight/components/ia-insight-sidebar/ia-insight-sidebar.component.js +0 -50
- package/esm2015/components/ia-insight/ia-insight.component.js +0 -68
- package/esm2015/components/ia-insight/ia-insight.module.js +0 -40
- package/esm2015/components/ia-insight/index.js +0 -4
- package/esm2015/components/ia-insight/models/ia-insight-item.js +0 -1
- package/esm2015/components/ia-insight/models/ia-insight-template-types.js +0 -7
- package/esm2015/components/ia-insight/models/index.js +0 -2
- package/esm2015/components/image-cropper/image-cropper.component.js +0 -183
- package/esm2015/components/image-cropper/image-cropper.module.js +0 -20
- package/esm2015/components/image-cropper/image-cropper.service.js +0 -62
- package/esm2015/components/image-cropper/index.js +0 -4
- package/esm2015/components/index.js +0 -76
- package/esm2015/components/infinite-scroll/infinite-scroll.directive.js +0 -30
- package/esm2015/components/infinite-scroll/infinite-scroll.module.js +0 -21
- package/esm2015/components/info-sign/index.js +0 -3
- package/esm2015/components/info-sign/info-sign.component.js +0 -13
- package/esm2015/components/info-sign/info-sign.directive.js +0 -68
- package/esm2015/components/info-sign/info-sign.module.js +0 -24
- package/esm2015/components/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.js +0 -51
- package/esm2015/components/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.js +0 -30
- package/esm2015/components/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.js +0 -75
- package/esm2015/components/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.js +0 -30
- package/esm2015/components/inline-edit/components/fields/inline-edit-text-area/inline-edit-text-area.component.js +0 -30
- package/esm2015/components/inline-edit/components/fields/inline-edit-text-area-ia/inline-edit-text-area-ia.component.js +0 -30
- package/esm2015/components/inline-edit/components/index.js +0 -8
- package/esm2015/components/inline-edit/components/inline-edit-item/inline-edit-item.component.js +0 -98
- package/esm2015/components/inline-edit/fields/index.js +0 -8
- package/esm2015/components/inline-edit/fields/inline-edit-calendar-field.js +0 -26
- package/esm2015/components/inline-edit/fields/inline-edit-field.js +0 -9
- package/esm2015/components/inline-edit/fields/inline-edit-lookup-field.js +0 -32
- package/esm2015/components/inline-edit/fields/inline-edit-number-field.js +0 -24
- package/esm2015/components/inline-edit/fields/inline-edit-text-area-field.js +0 -11
- package/esm2015/components/inline-edit/fields/inline-edit-text-area-ia-field.js +0 -7
- package/esm2015/components/inline-edit/fields/inline-edit-text-field.js +0 -7
- package/esm2015/components/inline-edit/index.js +0 -4
- package/esm2015/components/inline-edit/inline-edit.component.js +0 -70
- package/esm2015/components/inline-edit/inline-edit.module.js +0 -62
- package/esm2015/components/kanban/components/kanban-column/kanban-column.component.js +0 -96
- package/esm2015/components/kanban/components/kanban-item/kanban-item.component.js +0 -60
- package/esm2015/components/kanban/components/kanban-item-dragging/kanban-item-dragging.component.js +0 -19
- package/esm2015/components/kanban/index.js +0 -4
- package/esm2015/components/kanban/kanban-event.service.js +0 -27
- package/esm2015/components/kanban/kanban.component.js +0 -217
- package/esm2015/components/kanban/kanban.module.js +0 -45
- package/esm2015/components/kanban/models/index.js +0 -2
- package/esm2015/components/kanban/models/kanban-data.js +0 -1
- package/esm2015/components/kanban/models/kanban-template-types.js +0 -9
- package/esm2015/components/label-value/index.js +0 -3
- package/esm2015/components/label-value/label-value.component.js +0 -31
- package/esm2015/components/label-value/label-value.module.js +0 -20
- package/esm2015/components/label-value/types/label-value-configuration.js +0 -1
- package/esm2015/components/loading-state/components/dots-indicator/dots-indicator.components.js +0 -13
- package/esm2015/components/loading-state/components/loading-state-indicators.js +0 -6
- package/esm2015/components/loading-state/components/logo-indicator/logo-indicator.component.js +0 -13
- package/esm2015/components/loading-state/index.js +0 -4
- package/esm2015/components/loading-state/loading-state.component.js +0 -73
- package/esm2015/components/loading-state/loading-state.directive.js +0 -60
- package/esm2015/components/loading-state/loading-state.module.js +0 -31
- package/esm2015/components/locale/index.js +0 -11
- package/esm2015/components/locale/locale.module.js +0 -71
- package/esm2015/components/locale/locale.service.js +0 -89
- package/esm2015/components/locale/options/calendar.js +0 -29
- package/esm2015/components/locale/options/index.js +0 -24
- package/esm2015/components/locale/options/number.js +0 -9
- package/esm2015/components/locale/pipes/localized-bignumber-impure.pipe.js +0 -16
- package/esm2015/components/locale/pipes/localized-bignumber.pipe.js +0 -39
- package/esm2015/components/locale/pipes/localized-currency-impure.pipe.js +0 -19
- package/esm2015/components/locale/pipes/localized-currency.pipe.js +0 -53
- package/esm2015/components/locale/pipes/localized-date-impure.pipe.js +0 -13
- package/esm2015/components/locale/pipes/localized-date.pipe.js +0 -24
- package/esm2015/components/locale/pipes/localized-number.pipe.js +0 -31
- package/esm2015/components/locale/pipes/localized-time-impure.pipe.js +0 -13
- package/esm2015/components/locale/pipes/localized-time.pipe.js +0 -24
- package/esm2015/components/locale/pipes/numeric.pipe.js +0 -28
- package/esm2015/components/locale/services/numeric.service.js +0 -86
- package/esm2015/components/localized-number-input/index.js +0 -3
- package/esm2015/components/localized-number-input/localized-number-input.directive.js +0 -58
- package/esm2015/components/localized-number-input/localized-number-input.module.js +0 -15
- package/esm2015/components/mask/index.js +0 -3
- package/esm2015/components/mask/mask-formatter.module.js +0 -13
- package/esm2015/components/mask/mask-formatter.pipe.js +0 -71
- package/esm2015/components/mouse-events/double-click.directive.js +0 -38
- package/esm2015/components/mouse-events/index.js +0 -4
- package/esm2015/components/mouse-events/long-press.directive.js +0 -49
- package/esm2015/components/mouse-events/mouse-events.module.js +0 -22
- package/esm2015/components/navigation-button/index.js +0 -3
- package/esm2015/components/navigation-button/models/index.js +0 -1
- package/esm2015/components/navigation-button/models/navigation-button-item.js +0 -1
- package/esm2015/components/navigation-button/models/navigation-button-step-changed-info.js +0 -1
- package/esm2015/components/navigation-button/navigation-button.component.js +0 -126
- package/esm2015/components/navigation-button/navigation-button.module.js +0 -17
- package/esm2015/components/number-input/index.js +0 -3
- package/esm2015/components/number-input/number-input.directive.js +0 -162
- package/esm2015/components/number-input/number-input.module.js +0 -18
- package/esm2015/components/object-card/elements/field/object-card-field.component.js +0 -53
- package/esm2015/components/object-card/elements/main/object-card-main.component.js +0 -93
- package/esm2015/components/object-card/index.js +0 -5
- package/esm2015/components/object-card/object-card.component.js +0 -141
- package/esm2015/components/object-card/object-card.module.js +0 -21
- package/esm2015/components/panel/index.js +0 -3
- package/esm2015/components/panel/panel.component.js +0 -84
- package/esm2015/components/panel/panel.module.js +0 -17
- package/esm2015/components/password-strength/index.js +0 -5
- package/esm2015/components/password-strength/models/index.js +0 -3
- package/esm2015/components/password-strength/models/password-positions.js +0 -7
- package/esm2015/components/password-strength/models/password-strengths.js +0 -8
- package/esm2015/components/password-strength/password-strength.component.js +0 -95
- package/esm2015/components/password-strength/password-strength.directive.js +0 -196
- package/esm2015/components/password-strength/password-strength.module.js +0 -19
- package/esm2015/components/picklist/index.js +0 -5
- package/esm2015/components/picklist/picklist/models/picklist-models.js +0 -6
- package/esm2015/components/picklist/picklist/picklist.component.js +0 -305
- package/esm2015/components/picklist/picklist.module.js +0 -25
- package/esm2015/components/product-header/index.js +0 -3
- package/esm2015/components/product-header/product-header.component.js +0 -45
- package/esm2015/components/product-header/product-header.module.js +0 -17
- package/esm2015/components/profile-picture-picker/index.js +0 -4
- package/esm2015/components/profile-picture-picker/models/confirmation-texts.js +0 -1
- package/esm2015/components/profile-picture-picker/models/cropper-labels-config.js +0 -1
- package/esm2015/components/profile-picture-picker/models/file-validation-errors.js +0 -8
- package/esm2015/components/profile-picture-picker/models/index.js +0 -2
- package/esm2015/components/profile-picture-picker/models/profile-picture-picker-data.js +0 -1
- package/esm2015/components/profile-picture-picker/profile-picture-picker.component.js +0 -262
- package/esm2015/components/profile-picture-picker/profile-picture-picker.module.js +0 -33
- package/esm2015/components/progressbar/components/progressbar-determinate/progressbar-determinate.component.js +0 -61
- package/esm2015/components/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component.js +0 -19
- package/esm2015/components/progressbar/index.js +0 -4
- package/esm2015/components/progressbar/models/index.js +0 -3
- package/esm2015/components/progressbar/models/progressbar-colors.js +0 -8
- package/esm2015/components/progressbar/models/progressbar-mode.js +0 -6
- package/esm2015/components/progressbar/progressbar.component.js +0 -62
- package/esm2015/components/progressbar/progressbar.module.js +0 -21
- package/esm2015/components/rating-scale/index.js +0 -3
- package/esm2015/components/rating-scale/models/index.js +0 -1
- package/esm2015/components/rating-scale/models/rating-scale-node.js +0 -1
- package/esm2015/components/rating-scale/rating-scale.component.js +0 -52
- package/esm2015/components/rating-scale/rating-scale.module.js +0 -19
- package/esm2015/components/select-button/components/select-button-item/select-button-item.component.js +0 -34
- package/esm2015/components/select-button/index.js +0 -3
- package/esm2015/components/select-button/models/index.js +0 -1
- package/esm2015/components/select-button/models/select-button-item.js +0 -1
- package/esm2015/components/select-button/select-button.component.js +0 -114
- package/esm2015/components/select-button/select-button.module.js +0 -19
- package/esm2015/components/shared/border-button/border-button.component.js +0 -26
- package/esm2015/components/shared/border-button/border-button.module.js +0 -16
- package/esm2015/components/shared/helpers.js +0 -30
- package/esm2015/components/shared/index.js +0 -3
- package/esm2015/components/shared/models/border-button-options.js +0 -1
- package/esm2015/components/shared/models/enum-severity.js +0 -9
- package/esm2015/components/sidebar/index.js +0 -3
- package/esm2015/components/sidebar/sidebar.component.js +0 -72
- package/esm2015/components/sidebar/sidebar.module.js +0 -19
- package/esm2015/components/slide-panel/index.js +0 -3
- package/esm2015/components/slide-panel/slide-panel.component.js +0 -140
- package/esm2015/components/slide-panel/slide-panel.module.js +0 -17
- package/esm2015/components/slide-panel/slide-panel.service.js +0 -27
- package/esm2015/components/slider/index.js +0 -3
- package/esm2015/components/slider/slider.component.js +0 -620
- package/esm2015/components/slider/slider.module.js +0 -16
- package/esm2015/components/speech-recognition/speech-recognition/speech-recognition.component.js +0 -224
- package/esm2015/components/speech-recognition/speech-recognition.module.js +0 -19
- package/esm2015/components/speech-recognition/speech-recognition.service.js +0 -151
- package/esm2015/components/speech-recognition/text-to-speech.service.js +0 -84
- package/esm2015/components/split-button/index.js +0 -4
- package/esm2015/components/split-button/models/split-button-option.js +0 -1
- package/esm2015/components/split-button/models/split-button-type.js +0 -7
- package/esm2015/components/split-button/split-button.component.js +0 -68
- package/esm2015/components/split-button/split-button.module.js +0 -15
- package/esm2015/components/stats-card/index.js +0 -3
- package/esm2015/components/stats-card/stats-card.component.js +0 -124
- package/esm2015/components/stats-card/stats-card.module.js +0 -23
- package/esm2015/components/steps/index.js +0 -3
- package/esm2015/components/steps/steps.component.js +0 -97
- package/esm2015/components/steps/steps.module.js +0 -16
- package/esm2015/components/structure/footer.component.js +0 -12
- package/esm2015/components/structure/header.component.js +0 -18
- package/esm2015/components/structure/index.js +0 -4
- package/esm2015/components/structure/structure.module.js +0 -16
- package/esm2015/components/switch/index.js +0 -3
- package/esm2015/components/switch/switch.component.js +0 -92
- package/esm2015/components/switch/switch.module.js +0 -15
- package/esm2015/components/table/frozen-position/frozen-position.directive.js +0 -203
- package/esm2015/components/table/index.js +0 -6
- package/esm2015/components/table/navigation/navigation.directive.js +0 -134
- package/esm2015/components/table/row-toggler/row-toggler.directive.js +0 -36
- package/esm2015/components/table/table-column/index.js +0 -2
- package/esm2015/components/table/table-column/models/badge-column.interface.js +0 -1
- package/esm2015/components/table/table-column/models/badge-configs.interface.js +0 -1
- package/esm2015/components/table/table-column/models/column-colors.js +0 -1
- package/esm2015/components/table/table-column/models/column-values.interface.js +0 -1
- package/esm2015/components/table/table-column/models/column.interface.js +0 -1
- package/esm2015/components/table/table-column/models/dynamic-editable-grid.interface.js +0 -1
- package/esm2015/components/table/table-column/models/enum-badge-colors.js +0 -10
- package/esm2015/components/table/table-column/models/enum-column-field-type.js +0 -13
- package/esm2015/components/table/table-column/models/index.js +0 -3
- package/esm2015/components/table/table-column/models/locale-options.interface.js +0 -1
- package/esm2015/components/table/table-column/models/number-locale-options.interface.js +0 -1
- package/esm2015/components/table/table-column/table-columns.component.js +0 -285
- package/esm2015/components/table/table-paging/index.js +0 -1
- package/esm2015/components/table/table-paging/models/custom-action.interface.js +0 -1
- package/esm2015/components/table/table-paging/models/index.js +0 -1
- package/esm2015/components/table/table-paging/table-paging.component.js +0 -313
- package/esm2015/components/table/table.module.js +0 -45
- package/esm2015/components/table-header/index.js +0 -3
- package/esm2015/components/table-header/table-header-checkbox.component.js +0 -141
- package/esm2015/components/table-header/table-header-checkox.module.js +0 -15
- package/esm2015/components/template/index.js +0 -3
- package/esm2015/components/template/template.directive.js +0 -20
- package/esm2015/components/template/template.module.js +0 -15
- package/esm2015/components/text-area/index.js +0 -3
- package/esm2015/components/text-area/text-area/text-area.component.js +0 -115
- package/esm2015/components/text-area/text-area.module.js +0 -24
- package/esm2015/components/text-area-ia/index.js +0 -3
- package/esm2015/components/text-area-ia/text-area-ia.component.js +0 -144
- package/esm2015/components/text-area-ia/text-area-ia.module.js +0 -32
- package/esm2015/components/thumbnail/index.js +0 -4
- package/esm2015/components/thumbnail/thumbnail-size.js +0 -7
- package/esm2015/components/thumbnail/thumbnail.component.js +0 -80
- package/esm2015/components/thumbnail/thumbnail.module.js +0 -17
- package/esm2015/components/thumbnail/thumbnail.service.js +0 -61
- package/esm2015/components/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.js +0 -16
- package/esm2015/components/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.js +0 -41
- package/esm2015/components/thumbnails/components/thumbnail-item/thumbnail-item.component.js +0 -66
- package/esm2015/components/thumbnails/index.js +0 -3
- package/esm2015/components/thumbnails/models/thumbnails-item.js +0 -1
- package/esm2015/components/thumbnails/thumbnails.component.js +0 -56
- package/esm2015/components/thumbnails/thumbnails.module.js +0 -21
- package/esm2015/components/tiered-menu/components/tiered-menu/tiered-menu.component.js +0 -283
- package/esm2015/components/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.js +0 -13
- package/esm2015/components/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.js +0 -76
- package/esm2015/components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.js +0 -178
- package/esm2015/components/tiered-menu/index.js +0 -3
- package/esm2015/components/tiered-menu/models/index.js +0 -1
- package/esm2015/components/tiered-menu/models/tiered-menu-item-data.js +0 -1
- package/esm2015/components/tiered-menu/models/tiered-menu-item-internal-data.js +0 -1
- package/esm2015/components/tiered-menu/services/tiered-menu.event.service.js +0 -18
- package/esm2015/components/tiered-menu/services/tiered-menu.global.service.js +0 -9
- package/esm2015/components/tiered-menu/services/tiered-menu.service.js +0 -51
- package/esm2015/components/tiered-menu/tiered-menu.directive.js +0 -220
- package/esm2015/components/tiered-menu/tiered-menu.module.js +0 -29
- package/esm2015/components/tiered-menu/utils.js +0 -7
- package/esm2015/components/tile/index.js +0 -3
- package/esm2015/components/tile/tile.component.js +0 -71
- package/esm2015/components/tile/tile.module.js +0 -24
- package/esm2015/components/timeline/components/horizontal-timeline/horizontal-timeline.component.js +0 -25
- package/esm2015/components/timeline/components/horizontal-timeline/horizontal-timeline.module.js +0 -21
- package/esm2015/components/timeline/components/timeline-icon-item/timeline-icon-item.component.js +0 -25
- package/esm2015/components/timeline/components/timeline-icon-item/timeline-icon-item.module.js +0 -19
- package/esm2015/components/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.js +0 -26
- package/esm2015/components/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.js +0 -35
- package/esm2015/components/timeline/components/vertical-timeline/components/range-line/range-line.component.js +0 -13
- package/esm2015/components/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.js +0 -28
- package/esm2015/components/timeline/components/vertical-timeline/vertical-timeline.component.js +0 -53
- package/esm2015/components/timeline/components/vertical-timeline/vertical-timeline.module.js +0 -29
- package/esm2015/components/timeline/index.js +0 -4
- package/esm2015/components/timeline/models/index.js +0 -4
- package/esm2015/components/timeline/models/timeline-item-severity.js +0 -7
- package/esm2015/components/timeline/models/timeline-item-size.js +0 -6
- package/esm2015/components/timeline/models/timeline-item.js +0 -37
- package/esm2015/components/timeline/timeline.component.js +0 -66
- package/esm2015/components/timeline/timeline.module.js +0 -27
- package/esm2015/components/toast/index.js +0 -4
- package/esm2015/components/toast/toast.component.js +0 -51
- package/esm2015/components/toast/toast.module.js +0 -14
- package/esm2015/components/toast/toast.service.js +0 -68
- package/esm2015/components/toast/types/toast.js +0 -1
- package/esm2015/components/token-list/index.js +0 -3
- package/esm2015/components/token-list/models/index.js +0 -1
- package/esm2015/components/token-list/models/token.js +0 -1
- package/esm2015/components/token-list/token-list.component.js +0 -50
- package/esm2015/components/token-list/token-list.module.js +0 -15
- package/esm2015/components/tooltip/index.js +0 -3
- package/esm2015/components/tooltip/models/index.js +0 -4
- package/esm2015/components/tooltip/models/mobile-behavior.js +0 -6
- package/esm2015/components/tooltip/models/tooltip-event.js +0 -6
- package/esm2015/components/tooltip/models/tooltip-position.js +0 -8
- package/esm2015/components/tooltip/tooltip.component.js +0 -21
- package/esm2015/components/tooltip/tooltip.directive.js +0 -331
- package/esm2015/components/tooltip/tooltip.module.js +0 -19
- package/esm2015/components/utils/breakpoints.js +0 -11
- package/esm2015/components/utils/debouce.js +0 -35
- package/esm2015/components/utils/export-utils.js +0 -89
- package/esm2015/components/utils/index.js +0 -6
- package/esm2015/components/utils/locale-utils.js +0 -15
- package/esm2015/components/utils/utils.js +0 -39
- package/esm2015/components/workspace-switch/index.js +0 -3
- package/esm2015/components/workspace-switch/models/index.js +0 -1
- package/esm2015/components/workspace-switch/models/workspace.js +0 -1
- package/esm2015/components/workspace-switch/workspace-switch.component.js +0 -143
- package/esm2015/components/workspace-switch/workspace-switch.module.js +0 -15
- package/esm2015/locale/fallback.js +0 -333
- package/esm2015/public-api.js +0 -5
- package/esm2015/seniorsistemas-angular-components.js +0 -116
- package/esm2015/utils/currency/currency.service.js +0 -189
- package/esm2015/utils/currency/index.js +0 -2
- package/esm2015/utils/index.js +0 -3
- package/esm2015/utils/svg-factory/components/iassist-icon/iassist-icon.component.js +0 -11
- package/esm2015/utils/svg-factory/components/senior-icon/senior-icon.component.js +0 -11
- package/esm2015/utils/svg-factory/components/svg-factory-icons.js +0 -6
- package/esm2015/utils/svg-factory/index.js +0 -3
- package/esm2015/utils/svg-factory/svg-factory.directive.js +0 -49
- package/esm2015/utils/svg-factory/svg-factory.module.js +0 -21
- package/esm5/angular-components.module.js +0 -26
- package/esm5/components/accessibility-events/accessibility-events.module.js +0 -20
- package/esm5/components/accessibility-events/directives/accessibility-event.directive.js +0 -61
- package/esm5/components/accessibility-events/index.js +0 -3
- package/esm5/components/accordion/accordion.component.js +0 -93
- package/esm5/components/accordion/accordion.module.js +0 -34
- package/esm5/components/accordion/components/accordion-panel/accordion-panel.component.js +0 -124
- package/esm5/components/accordion/index.js +0 -4
- package/esm5/components/accordion/models/accordion-button-settings.js +0 -1
- package/esm5/components/accordion/models/accordion-switch-settings.js +0 -1
- package/esm5/components/alert/alert.component.js +0 -52
- package/esm5/components/alert/alert.module.js +0 -18
- package/esm5/components/alert/index.js +0 -3
- package/esm5/components/badge/badge.component.js +0 -62
- package/esm5/components/badge/badge.module.js +0 -20
- package/esm5/components/badge/index.js +0 -4
- package/esm5/components/badge/models/badge-colors.js +0 -12
- package/esm5/components/badge/models/badge-types.js +0 -6
- package/esm5/components/badge/models/index.js +0 -3
- package/esm5/components/bignumber-input/bignumber-input.directive.js +0 -153
- package/esm5/components/bignumber-input/bignumber-input.module.js +0 -18
- package/esm5/components/bignumber-input/index.js +0 -3
- package/esm5/components/breadcrumb/breadcrumb.component.js +0 -95
- package/esm5/components/breadcrumb/breadcrumb.module.js +0 -20
- package/esm5/components/breadcrumb/index.js +0 -3
- package/esm5/components/button/button.component.js +0 -141
- package/esm5/components/button/button.module.js +0 -23
- package/esm5/components/button/index.js +0 -6
- package/esm5/components/button/models/button-animation.js +0 -5
- package/esm5/components/button/models/button-badge-config.js +0 -1
- package/esm5/components/button/models/button-priority.js +0 -9
- package/esm5/components/button/models/button-size.js +0 -6
- package/esm5/components/calendar-mask/calendar-mask.directive.js +0 -584
- package/esm5/components/calendar-mask/calendar-mask.module.js +0 -18
- package/esm5/components/calendar-mask/index.js +0 -3
- package/esm5/components/card/card.component.js +0 -79
- package/esm5/components/card/card.module.js +0 -19
- package/esm5/components/card/index.js +0 -4
- package/esm5/components/card/models/card-template-types.js +0 -7
- package/esm5/components/chat/chat.component.js +0 -34
- package/esm5/components/chat/chat.module.js +0 -21
- package/esm5/components/chat/components/chat-message/chat-message.component.js +0 -29
- package/esm5/components/chat/index.js +0 -3
- package/esm5/components/chat/types/chat-message.js +0 -1
- package/esm5/components/checkbox/checkbox.component.js +0 -116
- package/esm5/components/checkbox/checkbox.module.js +0 -19
- package/esm5/components/checkbox/index.js +0 -3
- package/esm5/components/checkbox/models/checkbox-data.js +0 -1
- package/esm5/components/checkbox/models/checkbox-state.js +0 -1
- package/esm5/components/checkbox/models/index.js +0 -1
- package/esm5/components/chips/chip-item/chip-item.component.js +0 -77
- package/esm5/components/chips/chips/chips.component.js +0 -235
- package/esm5/components/chips/chips.module.js +0 -27
- package/esm5/components/chips/index.js +0 -3
- package/esm5/components/chips/models/chip-models.js +0 -1
- package/esm5/components/code-editor/code-editor.component.js +0 -121
- package/esm5/components/code-editor/code-editor.module.js +0 -27
- package/esm5/components/code-editor/core/facades/core-facade.js +0 -96
- package/esm5/components/code-editor/core/facades/linter-facade.js +0 -1
- package/esm5/components/code-editor/core/models/enums/marker-severity.js +0 -7
- package/esm5/components/code-editor/core/models/index.js +0 -3
- package/esm5/components/code-editor/core/models/interfaces/marker.js +0 -1
- package/esm5/components/code-editor/core/use-cases/core-linters.js +0 -13
- package/esm5/components/code-editor/index.js +0 -5
- package/esm5/components/code-editor/infra/cores/codemirror-6/codemirror-6-core.js +0 -109
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/editor-languages.js +0 -21
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/json/json.language.js +0 -25
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-empty-state.js +0 -29
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-loading-state.js +0 -29
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper-style.js +0 -17
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper.js +0 -68
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/index.js +0 -4
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-style.js +0 -35
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.js +0 -355
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.service.js +0 -46
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/base-configs.js +0 -19
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/grammar.js +0 -2
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/completion-types.js +0 -10
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/enum-type-order.js +0 -8
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/keywords.js +0 -12
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/meta-type.js +0 -36
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/request-types.js +0 -9
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/index.js +0 -7
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/completion-Item.js +0 -1
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/facade-metadata-name.js +0 -1
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/fields-order-by.js +0 -1
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/get-facade-metadata-by-path.js +0 -1
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-context-metadata-by-id.js +0 -1
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-expression-metadata.js +0 -1
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-facade-metadata-names.js +0 -1
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-expression-metadata.js +0 -1
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-context-metadata.js +0 -1
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-facade-metadata.js +0 -1
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-field-metadata.js +0 -1
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-page-request.js +0 -1
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/safe-http-communication.js +0 -1
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/tax-calculation-configs.js +0 -1
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation-language-configs.js +0 -14
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation.language.js +0 -9
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-language-configs.js +0 -15
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-safe-response.js +0 -27
- package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/index.js +0 -3
- package/esm5/components/code-editor/infra/cores/codemirror-6/models/index.js +0 -1
- package/esm5/components/code-editor/infra/cores/codemirror-6/models/types/diagnostic-severity.js +0 -1
- package/esm5/components/code-editor/infra/cores/codemirror-6/models/types/editor-theme.js +0 -1
- package/esm5/components/code-editor/infra/cores/codemirror-6/themes/editor-themes.js +0 -19
- package/esm5/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/autocomplete-tooltip.js +0 -61
- package/esm5/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/font-style.js +0 -30
- package/esm5/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/line-counter.js +0 -25
- package/esm5/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/scrollbars.js +0 -18
- package/esm5/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-highlight-style.js +0 -16
- package/esm5/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-style.js +0 -13
- package/esm5/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-theme.js +0 -22
- package/esm5/components/code-editor/infra/cores/codemirror-6/utils/convert-markers-to-diagnostics.js +0 -18
- package/esm5/components/code-editor/infra/cores/codemirror-6/utils/index.js +0 -3
- package/esm5/components/code-editor/infra/cores/codemirror-6/utils/is-current-position-inside-string.js +0 -6
- package/esm5/components/code-editor/infra/utils/custom-http-client/custom-http-client.js +0 -126
- package/esm5/components/code-editor/infra/utils/custom-http-client/json-response-formatters/format-blob-response.js +0 -21
- package/esm5/components/code-editor/infra/utils/custom-http-client/json-response-formatters/format-json-response.js +0 -14
- package/esm5/components/code-editor/infra/utils/custom-http-client/json-response-formatters/index.js +0 -3
- package/esm5/components/code-editor/infra/utils/custom-translations/custom-translations-service.js +0 -41
- package/esm5/components/code-editor/infra/utils/custom-translations/custom-translations.module.js +0 -31
- package/esm5/components/code-editor/infra/utils/custom-translations/index.js +0 -3
- package/esm5/components/code-editor/infra/utils/custom-translations/models/index.js +0 -1
- package/esm5/components/code-editor/infra/utils/custom-translations/models/interfaces/translations.js +0 -1
- package/esm5/components/code-editor/infra/utils/index.js +0 -3
- package/esm5/components/code-editor/models/enums/languages.js +0 -6
- package/esm5/components/code-editor/models/enums/themes.js +0 -5
- package/esm5/components/code-editor/models/index.js +0 -4
- package/esm5/components/code-editor/models/interfaces/editor-options.js +0 -1
- package/esm5/components/collapse-link/collapse-link.component.js +0 -75
- package/esm5/components/collapse-link/collapse-link.module.js +0 -18
- package/esm5/components/collapse-link/index.js +0 -3
- package/esm5/components/control-errors/control-errors.component.js +0 -40
- package/esm5/components/control-errors/control-errors.module.js +0 -19
- package/esm5/components/control-errors/index.js +0 -3
- package/esm5/components/country-phone-picker/country-phone-picker.component.js +0 -327
- package/esm5/components/country-phone-picker/country-phone-picker.module.js +0 -30
- package/esm5/components/country-phone-picker/country-phone-picker.service.js +0 -46
- package/esm5/components/country-phone-picker/index.js +0 -5
- package/esm5/components/country-phone-picker/models/country-phone-data.js +0 -1
- package/esm5/components/country-phone-picker/models/index.js +0 -2
- package/esm5/components/country-phone-picker/models/ordination.js +0 -7
- package/esm5/components/country-phone-picker/models/phone-selection-data.js +0 -1
- package/esm5/components/country-phone-picker/resources/countries.js +0 -228
- package/esm5/components/country-phone-picker/resources/index.js +0 -2
- package/esm5/components/custom-fields/custom-fields.component.js +0 -649
- package/esm5/components/custom-fields/custom-fields.module.js +0 -33
- package/esm5/components/custom-fields/custom-fields.service.js +0 -37
- package/esm5/components/custom-fields/index.js +0 -4
- package/esm5/components/custom-fields/models/custom-field-type.js +0 -17
- package/esm5/components/dynamic-form/components/dynamic-field/dynamic-field.component.js +0 -38
- package/esm5/components/dynamic-form/components/field-label/field-label.component.js +0 -21
- package/esm5/components/dynamic-form/components/field-label/field-label.module.js +0 -22
- package/esm5/components/dynamic-form/components/fields/autocomplete/autocomplete-field.component.js +0 -33
- package/esm5/components/dynamic-form/components/fields/base-field-component.js +0 -13
- package/esm5/components/dynamic-form/components/fields/bignumber/bignumber-field.component.js +0 -122
- package/esm5/components/dynamic-form/components/fields/bignumber/bignumber-field.module.js +0 -35
- package/esm5/components/dynamic-form/components/fields/boolean/boolean-field.component.js +0 -23
- package/esm5/components/dynamic-form/components/fields/boolean/boolean-switch-field.component.js +0 -20
- package/esm5/components/dynamic-form/components/fields/button-field/button-field.component.js +0 -34
- package/esm5/components/dynamic-form/components/fields/calendar/calendar-field.component.js +0 -107
- package/esm5/components/dynamic-form/components/fields/checkbox/checkbox-field.component.js +0 -20
- package/esm5/components/dynamic-form/components/fields/checkbox/checkbox-field.module.js +0 -20
- package/esm5/components/dynamic-form/components/fields/chips/chips-field.component.js +0 -55
- package/esm5/components/dynamic-form/components/fields/country-phone-picker/country-phone-picker-field.component.js +0 -33
- package/esm5/components/dynamic-form/components/fields/currency/currency-field.component.js +0 -75
- package/esm5/components/dynamic-form/components/fields/currency/currency-field.module.js +0 -33
- package/esm5/components/dynamic-form/components/fields/editor/editor-field.component.js +0 -23
- package/esm5/components/dynamic-form/components/fields/editor/editor-field.module.js +0 -21
- package/esm5/components/dynamic-form/components/fields/file-upload/file-upload.component.js +0 -55
- package/esm5/components/dynamic-form/components/fields/index.js +0 -22
- package/esm5/components/dynamic-form/components/fields/lookup/lookup-field.component.js +0 -20
- package/esm5/components/dynamic-form/components/fields/number/number-field.component.js +0 -122
- package/esm5/components/dynamic-form/components/fields/number/number-field.module.js +0 -37
- package/esm5/components/dynamic-form/components/fields/password/password-field.component.js +0 -79
- package/esm5/components/dynamic-form/components/fields/password/password-field.module.js +0 -33
- package/esm5/components/dynamic-form/components/fields/profile-picture/profile-picture-field.component.js +0 -20
- package/esm5/components/dynamic-form/components/fields/profile-picture/profile-picture-field.module.js +0 -27
- package/esm5/components/dynamic-form/components/fields/radio-button/radio-button-field.component.js +0 -51
- package/esm5/components/dynamic-form/components/fields/select/select-field.component.js +0 -23
- package/esm5/components/dynamic-form/components/fields/slider/slider-field.component.js +0 -123
- package/esm5/components/dynamic-form/components/fields/text/text-field.component.js +0 -94
- package/esm5/components/dynamic-form/components/fields/text/text-field.module.js +0 -35
- package/esm5/components/dynamic-form/components/fields/text-area/text-area-field.component.js +0 -27
- package/esm5/components/dynamic-form/components/fields/text-area-ia/text-area-ia-field.component.js +0 -94
- package/esm5/components/dynamic-form/components/grid/row/row.component.js +0 -37
- package/esm5/components/dynamic-form/components/lookup/lookup.component.js +0 -590
- package/esm5/components/dynamic-form/components/lookup/models/default-filter.js +0 -1
- package/esm5/components/dynamic-form/components/lookup/models/index.js +0 -1
- package/esm5/components/dynamic-form/components/structure/base-structure-component.js +0 -1
- package/esm5/components/dynamic-form/components/structure/fieldset/fieldset.component.js +0 -26
- package/esm5/components/dynamic-form/components/structure/section/section.component.js +0 -44
- package/esm5/components/dynamic-form/configurations/addon-config.js +0 -1
- package/esm5/components/dynamic-form/configurations/dynamic-config.js +0 -73
- package/esm5/components/dynamic-form/configurations/dynamic-type.js +0 -26
- package/esm5/components/dynamic-form/configurations/field-size.js +0 -12
- package/esm5/components/dynamic-form/configurations/field-type.js +0 -32
- package/esm5/components/dynamic-form/configurations/fields/autocomplete-field.js +0 -16
- package/esm5/components/dynamic-form/configurations/fields/bignumber-field.js +0 -28
- package/esm5/components/dynamic-form/configurations/fields/blob-field.js +0 -24
- package/esm5/components/dynamic-form/configurations/fields/boolean-field.js +0 -28
- package/esm5/components/dynamic-form/configurations/fields/boolean-switch-field.js +0 -18
- package/esm5/components/dynamic-form/configurations/fields/button-field.js +0 -35
- package/esm5/components/dynamic-form/configurations/fields/calendar-field.js +0 -42
- package/esm5/components/dynamic-form/configurations/fields/checkbox-field.js +0 -13
- package/esm5/components/dynamic-form/configurations/fields/chips-field.js +0 -22
- package/esm5/components/dynamic-form/configurations/fields/country-phone-picker-field.js +0 -16
- package/esm5/components/dynamic-form/configurations/fields/currency-field.js +0 -17
- package/esm5/components/dynamic-form/configurations/fields/decimal-field.js +0 -19
- package/esm5/components/dynamic-form/configurations/fields/editor-field.js +0 -16
- package/esm5/components/dynamic-form/configurations/fields/field.js +0 -49
- package/esm5/components/dynamic-form/configurations/fields/index.js +0 -22
- package/esm5/components/dynamic-form/configurations/fields/lookup-field.js +0 -51
- package/esm5/components/dynamic-form/configurations/fields/number-field.js +0 -28
- package/esm5/components/dynamic-form/configurations/fields/password-field.js +0 -25
- package/esm5/components/dynamic-form/configurations/fields/profile-picture.js +0 -26
- package/esm5/components/dynamic-form/configurations/fields/radio-button-field.js +0 -26
- package/esm5/components/dynamic-form/configurations/fields/select-field.js +0 -33
- package/esm5/components/dynamic-form/configurations/fields/slider-field.js +0 -26
- package/esm5/components/dynamic-form/configurations/fields/text-area-field.js +0 -25
- package/esm5/components/dynamic-form/configurations/fields/text-area-ia-field.js +0 -26
- package/esm5/components/dynamic-form/configurations/fields/text-field.js +0 -29
- package/esm5/components/dynamic-form/configurations/form-field.js +0 -96
- package/esm5/components/dynamic-form/configurations/grid/grid.js +0 -13
- package/esm5/components/dynamic-form/configurations/grid/row.js +0 -11
- package/esm5/components/dynamic-form/configurations/grid-type.js +0 -5
- package/esm5/components/dynamic-form/configurations/structure/fieldset.js +0 -13
- package/esm5/components/dynamic-form/configurations/structure/section.js +0 -34
- package/esm5/components/dynamic-form/configurations/structure/structure.js +0 -10
- package/esm5/components/dynamic-form/configurations/structure-type.js +0 -6
- package/esm5/components/dynamic-form/dynamic-form.component.js +0 -33
- package/esm5/components/dynamic-form/dynamic-form.directive.js +0 -85
- package/esm5/components/dynamic-form/dynamic-form.js +0 -215
- package/esm5/components/dynamic-form/dynamic-form.module.js +0 -194
- package/esm5/components/dynamic-form/index.js +0 -31
- package/esm5/components/dynamic-form/services/IAssist/iassist.service.js +0 -58
- package/esm5/components/dynamic-form/services/IAssist/models/iassist-input-data.js +0 -1
- package/esm5/components/dynamic-form/services/IAssist/models/iassist-response.js +0 -1
- package/esm5/components/dynamic-form/services/IAssist/models/index.js +0 -1
- package/esm5/components/editable-overlay/editable-overlay.directive.js +0 -45
- package/esm5/components/editable-overlay/editable-overlay.module.js +0 -18
- package/esm5/components/editable-overlay/index.js +0 -3
- package/esm5/components/empty-state/empty-state.component.js +0 -59
- package/esm5/components/empty-state/empty-state.module.js +0 -22
- package/esm5/components/empty-state/go-back/go-back.component.js +0 -38
- package/esm5/components/empty-state/index.js +0 -3
- package/esm5/components/fieldset/fieldset.component.js +0 -69
- package/esm5/components/fieldset/fieldset.models.js +0 -1
- package/esm5/components/fieldset/fieldset.module.js +0 -20
- package/esm5/components/fieldset/index.js +0 -3
- package/esm5/components/file-upload/file-upload.component.js +0 -304
- package/esm5/components/file-upload/file-upload.module.js +0 -30
- package/esm5/components/file-upload/file-upload.service.js +0 -22
- package/esm5/components/file-upload/index.js +0 -4
- package/esm5/components/file-upload/models/file-dto.js +0 -1
- package/esm5/components/file-upload/models/file-upload-permissions.js +0 -12
- package/esm5/components/file-upload/models/index.js +0 -3
- package/esm5/components/file-upload/models/list-blob-metadata.js +0 -1
- package/esm5/components/file-upload/models/uploadError.js +0 -1
- package/esm5/components/file-upload/models/validate-errors.js +0 -8
- package/esm5/components/gantt/components/gantt/arrow.js +0 -81
- package/esm5/components/gantt/components/gantt/bar.js +0 -299
- package/esm5/components/gantt/components/gantt/gantt-options.js +0 -20
- package/esm5/components/gantt/components/gantt/gantt.js +0 -924
- package/esm5/components/gantt/components/gantt/popup.js +0 -84
- package/esm5/components/gantt/components/gantt/utils/date-utils.js +0 -135
- package/esm5/components/gantt/components/gantt/utils/svg-utils.js +0 -121
- package/esm5/components/gantt/components/side-table/side-table.component.js +0 -33
- package/esm5/components/gantt/gantt.component.js +0 -162
- package/esm5/components/gantt/gantt.module.js +0 -23
- package/esm5/components/gantt/index.js +0 -4
- package/esm5/components/gantt/models/index.js +0 -2
- package/esm5/components/gantt/models/options.js +0 -1
- package/esm5/components/gantt/models/task.js +0 -1
- package/esm5/components/gantt/models/view-mode.js +0 -12
- package/esm5/components/global-search/elements/dropdown/global-search-dropdown-item.component.js +0 -78
- package/esm5/components/global-search/global-search-size.enum.js +0 -7
- package/esm5/components/global-search/global-search.component.js +0 -137
- package/esm5/components/global-search/global-search.module.js +0 -53
- package/esm5/components/global-search/index.js +0 -5
- package/esm5/components/grid-menu/components/grid-menu-item/grid-menu-item.component.js +0 -47
- package/esm5/components/grid-menu/grid-menu.component.js +0 -27
- package/esm5/components/grid-menu/grid-menu.module.js +0 -19
- package/esm5/components/grid-menu/index.js +0 -3
- package/esm5/components/grid-menu/types/grid-menu-item.js +0 -1
- package/esm5/components/help-popover/help-popover/help-popover.component.js +0 -115
- package/esm5/components/help-popover/help-popover.directive.js +0 -348
- package/esm5/components/help-popover/help-popover.module.js +0 -23
- package/esm5/components/help-popover/index.js +0 -4
- package/esm5/components/help-popover/models/help-popover.models.js +0 -1
- package/esm5/components/ia-insight/components/ia-insight-card/components/ia-insight-card-loader/ia-insight-card-loader.component.js +0 -16
- package/esm5/components/ia-insight/components/ia-insight-card/ia-insight-card.component.js +0 -84
- package/esm5/components/ia-insight/components/ia-insight-sidebar/ia-insight-sidebar.component.js +0 -51
- package/esm5/components/ia-insight/ia-insight.component.js +0 -69
- package/esm5/components/ia-insight/ia-insight.module.js +0 -43
- package/esm5/components/ia-insight/index.js +0 -4
- package/esm5/components/ia-insight/models/ia-insight-item.js +0 -1
- package/esm5/components/ia-insight/models/ia-insight-template-types.js +0 -7
- package/esm5/components/ia-insight/models/index.js +0 -2
- package/esm5/components/image-cropper/image-cropper.component.js +0 -185
- package/esm5/components/image-cropper/image-cropper.module.js +0 -23
- package/esm5/components/image-cropper/image-cropper.service.js +0 -70
- package/esm5/components/image-cropper/index.js +0 -4
- package/esm5/components/index.js +0 -76
- package/esm5/components/infinite-scroll/infinite-scroll.directive.js +0 -31
- package/esm5/components/infinite-scroll/infinite-scroll.module.js +0 -24
- package/esm5/components/info-sign/index.js +0 -3
- package/esm5/components/info-sign/info-sign.component.js +0 -16
- package/esm5/components/info-sign/info-sign.directive.js +0 -69
- package/esm5/components/info-sign/info-sign.module.js +0 -27
- package/esm5/components/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.js +0 -53
- package/esm5/components/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.js +0 -33
- package/esm5/components/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.js +0 -99
- package/esm5/components/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.js +0 -33
- package/esm5/components/inline-edit/components/fields/inline-edit-text-area/inline-edit-text-area.component.js +0 -33
- package/esm5/components/inline-edit/components/fields/inline-edit-text-area-ia/inline-edit-text-area-ia.component.js +0 -33
- package/esm5/components/inline-edit/components/index.js +0 -8
- package/esm5/components/inline-edit/components/inline-edit-item/inline-edit-item.component.js +0 -112
- package/esm5/components/inline-edit/fields/index.js +0 -8
- package/esm5/components/inline-edit/fields/inline-edit-calendar-field.js +0 -31
- package/esm5/components/inline-edit/fields/inline-edit-field.js +0 -11
- package/esm5/components/inline-edit/fields/inline-edit-lookup-field.js +0 -50
- package/esm5/components/inline-edit/fields/inline-edit-number-field.js +0 -29
- package/esm5/components/inline-edit/fields/inline-edit-text-area-field.js +0 -16
- package/esm5/components/inline-edit/fields/inline-edit-text-area-ia-field.js +0 -11
- package/esm5/components/inline-edit/fields/inline-edit-text-field.js +0 -11
- package/esm5/components/inline-edit/index.js +0 -4
- package/esm5/components/inline-edit/inline-edit.component.js +0 -84
- package/esm5/components/inline-edit/inline-edit.module.js +0 -65
- package/esm5/components/kanban/components/kanban-column/kanban-column.component.js +0 -99
- package/esm5/components/kanban/components/kanban-item/kanban-item.component.js +0 -62
- package/esm5/components/kanban/components/kanban-item-dragging/kanban-item-dragging.component.js +0 -20
- package/esm5/components/kanban/index.js +0 -4
- package/esm5/components/kanban/kanban-event.service.js +0 -28
- package/esm5/components/kanban/kanban.component.js +0 -221
- package/esm5/components/kanban/kanban.module.js +0 -48
- package/esm5/components/kanban/models/index.js +0 -2
- package/esm5/components/kanban/models/kanban-data.js +0 -1
- package/esm5/components/kanban/models/kanban-template-types.js +0 -9
- package/esm5/components/label-value/index.js +0 -3
- package/esm5/components/label-value/label-value.component.js +0 -34
- package/esm5/components/label-value/label-value.module.js +0 -23
- package/esm5/components/label-value/types/label-value-configuration.js +0 -1
- package/esm5/components/loading-state/components/dots-indicator/dots-indicator.components.js +0 -16
- package/esm5/components/loading-state/components/loading-state-indicators.js +0 -6
- package/esm5/components/loading-state/components/logo-indicator/logo-indicator.component.js +0 -16
- package/esm5/components/loading-state/index.js +0 -4
- package/esm5/components/loading-state/loading-state.component.js +0 -81
- package/esm5/components/loading-state/loading-state.directive.js +0 -65
- package/esm5/components/loading-state/loading-state.module.js +0 -34
- package/esm5/components/locale/index.js +0 -11
- package/esm5/components/locale/locale.module.js +0 -75
- package/esm5/components/locale/locale.service.js +0 -93
- package/esm5/components/locale/options/calendar.js +0 -33
- package/esm5/components/locale/options/index.js +0 -28
- package/esm5/components/locale/options/number.js +0 -12
- package/esm5/components/locale/pipes/localized-bignumber-impure.pipe.js +0 -21
- package/esm5/components/locale/pipes/localized-bignumber.pipe.js +0 -40
- package/esm5/components/locale/pipes/localized-currency-impure.pipe.js +0 -25
- package/esm5/components/locale/pipes/localized-currency.pipe.js +0 -59
- package/esm5/components/locale/pipes/localized-date-impure.pipe.js +0 -18
- package/esm5/components/locale/pipes/localized-date.pipe.js +0 -26
- package/esm5/components/locale/pipes/localized-number.pipe.js +0 -32
- package/esm5/components/locale/pipes/localized-time-impure.pipe.js +0 -18
- package/esm5/components/locale/pipes/localized-time.pipe.js +0 -26
- package/esm5/components/locale/pipes/numeric.pipe.js +0 -32
- package/esm5/components/locale/services/numeric.service.js +0 -87
- package/esm5/components/localized-number-input/index.js +0 -3
- package/esm5/components/localized-number-input/localized-number-input.directive.js +0 -61
- package/esm5/components/localized-number-input/localized-number-input.module.js +0 -18
- package/esm5/components/mask/index.js +0 -3
- package/esm5/components/mask/mask-formatter.module.js +0 -16
- package/esm5/components/mask/mask-formatter.pipe.js +0 -72
- package/esm5/components/mouse-events/double-click.directive.js +0 -40
- package/esm5/components/mouse-events/index.js +0 -4
- package/esm5/components/mouse-events/long-press.directive.js +0 -51
- package/esm5/components/mouse-events/mouse-events.module.js +0 -25
- package/esm5/components/navigation-button/index.js +0 -3
- package/esm5/components/navigation-button/models/index.js +0 -1
- package/esm5/components/navigation-button/models/navigation-button-item.js +0 -1
- package/esm5/components/navigation-button/models/navigation-button-step-changed-info.js +0 -1
- package/esm5/components/navigation-button/navigation-button.component.js +0 -131
- package/esm5/components/navigation-button/navigation-button.module.js +0 -20
- package/esm5/components/number-input/index.js +0 -3
- package/esm5/components/number-input/number-input.directive.js +0 -167
- package/esm5/components/number-input/number-input.module.js +0 -21
- package/esm5/components/object-card/elements/field/object-card-field.component.js +0 -55
- package/esm5/components/object-card/elements/main/object-card-main.component.js +0 -99
- package/esm5/components/object-card/index.js +0 -5
- package/esm5/components/object-card/object-card.component.js +0 -154
- package/esm5/components/object-card/object-card.module.js +0 -24
- package/esm5/components/panel/index.js +0 -3
- package/esm5/components/panel/panel.component.js +0 -85
- package/esm5/components/panel/panel.module.js +0 -20
- package/esm5/components/password-strength/index.js +0 -5
- package/esm5/components/password-strength/models/index.js +0 -3
- package/esm5/components/password-strength/models/password-positions.js +0 -7
- package/esm5/components/password-strength/models/password-strengths.js +0 -8
- package/esm5/components/password-strength/password-strength.component.js +0 -96
- package/esm5/components/password-strength/password-strength.directive.js +0 -197
- package/esm5/components/password-strength/password-strength.module.js +0 -22
- package/esm5/components/picklist/index.js +0 -5
- package/esm5/components/picklist/picklist/models/picklist-models.js +0 -6
- package/esm5/components/picklist/picklist/picklist.component.js +0 -339
- package/esm5/components/picklist/picklist.module.js +0 -28
- package/esm5/components/product-header/index.js +0 -3
- package/esm5/components/product-header/product-header.component.js +0 -47
- package/esm5/components/product-header/product-header.module.js +0 -20
- package/esm5/components/profile-picture-picker/index.js +0 -4
- package/esm5/components/profile-picture-picker/models/confirmation-texts.js +0 -1
- package/esm5/components/profile-picture-picker/models/cropper-labels-config.js +0 -1
- package/esm5/components/profile-picture-picker/models/file-validation-errors.js +0 -8
- package/esm5/components/profile-picture-picker/models/index.js +0 -2
- package/esm5/components/profile-picture-picker/models/profile-picture-picker-data.js +0 -1
- package/esm5/components/profile-picture-picker/profile-picture-picker.component.js +0 -270
- package/esm5/components/profile-picture-picker/profile-picture-picker.module.js +0 -36
- package/esm5/components/progressbar/components/progressbar-determinate/progressbar-determinate.component.js +0 -63
- package/esm5/components/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component.js +0 -22
- package/esm5/components/progressbar/index.js +0 -4
- package/esm5/components/progressbar/models/index.js +0 -3
- package/esm5/components/progressbar/models/progressbar-colors.js +0 -8
- package/esm5/components/progressbar/models/progressbar-mode.js +0 -6
- package/esm5/components/progressbar/progressbar.component.js +0 -63
- package/esm5/components/progressbar/progressbar.module.js +0 -24
- package/esm5/components/rating-scale/index.js +0 -3
- package/esm5/components/rating-scale/models/index.js +0 -1
- package/esm5/components/rating-scale/models/rating-scale-node.js +0 -1
- package/esm5/components/rating-scale/rating-scale.component.js +0 -54
- package/esm5/components/rating-scale/rating-scale.module.js +0 -22
- package/esm5/components/select-button/components/select-button-item/select-button-item.component.js +0 -35
- package/esm5/components/select-button/index.js +0 -3
- package/esm5/components/select-button/models/index.js +0 -1
- package/esm5/components/select-button/models/select-button-item.js +0 -1
- package/esm5/components/select-button/select-button.component.js +0 -128
- package/esm5/components/select-button/select-button.module.js +0 -22
- package/esm5/components/shared/border-button/border-button.component.js +0 -27
- package/esm5/components/shared/border-button/border-button.module.js +0 -19
- package/esm5/components/shared/helpers.js +0 -35
- package/esm5/components/shared/index.js +0 -3
- package/esm5/components/shared/models/border-button-options.js +0 -1
- package/esm5/components/shared/models/enum-severity.js +0 -9
- package/esm5/components/sidebar/index.js +0 -3
- package/esm5/components/sidebar/sidebar.component.js +0 -74
- package/esm5/components/sidebar/sidebar.module.js +0 -22
- package/esm5/components/slide-panel/index.js +0 -3
- package/esm5/components/slide-panel/slide-panel.component.js +0 -145
- package/esm5/components/slide-panel/slide-panel.module.js +0 -20
- package/esm5/components/slide-panel/slide-panel.service.js +0 -28
- package/esm5/components/slider/index.js +0 -3
- package/esm5/components/slider/slider.component.js +0 -648
- package/esm5/components/slider/slider.module.js +0 -19
- package/esm5/components/speech-recognition/speech-recognition/speech-recognition.component.js +0 -248
- package/esm5/components/speech-recognition/speech-recognition.module.js +0 -22
- package/esm5/components/speech-recognition/speech-recognition.service.js +0 -168
- package/esm5/components/speech-recognition/text-to-speech.service.js +0 -92
- package/esm5/components/split-button/index.js +0 -4
- package/esm5/components/split-button/models/split-button-option.js +0 -1
- package/esm5/components/split-button/models/split-button-type.js +0 -7
- package/esm5/components/split-button/split-button.component.js +0 -69
- package/esm5/components/split-button/split-button.module.js +0 -18
- package/esm5/components/stats-card/index.js +0 -3
- package/esm5/components/stats-card/stats-card.component.js +0 -131
- package/esm5/components/stats-card/stats-card.module.js +0 -26
- package/esm5/components/steps/index.js +0 -3
- package/esm5/components/steps/steps.component.js +0 -107
- package/esm5/components/steps/steps.module.js +0 -19
- package/esm5/components/structure/footer.component.js +0 -15
- package/esm5/components/structure/header.component.js +0 -18
- package/esm5/components/structure/index.js +0 -4
- package/esm5/components/structure/structure.module.js +0 -19
- package/esm5/components/switch/index.js +0 -3
- package/esm5/components/switch/switch.component.js +0 -94
- package/esm5/components/switch/switch.module.js +0 -18
- package/esm5/components/table/frozen-position/frozen-position.directive.js +0 -256
- package/esm5/components/table/index.js +0 -6
- package/esm5/components/table/navigation/navigation.directive.js +0 -137
- package/esm5/components/table/row-toggler/row-toggler.directive.js +0 -39
- package/esm5/components/table/table-column/index.js +0 -2
- package/esm5/components/table/table-column/models/badge-column.interface.js +0 -1
- package/esm5/components/table/table-column/models/badge-configs.interface.js +0 -1
- package/esm5/components/table/table-column/models/column-colors.js +0 -1
- package/esm5/components/table/table-column/models/column-values.interface.js +0 -1
- package/esm5/components/table/table-column/models/column.interface.js +0 -1
- package/esm5/components/table/table-column/models/dynamic-editable-grid.interface.js +0 -1
- package/esm5/components/table/table-column/models/enum-badge-colors.js +0 -10
- package/esm5/components/table/table-column/models/enum-column-field-type.js +0 -13
- package/esm5/components/table/table-column/models/index.js +0 -3
- package/esm5/components/table/table-column/models/locale-options.interface.js +0 -1
- package/esm5/components/table/table-column/models/number-locale-options.interface.js +0 -1
- package/esm5/components/table/table-column/table-columns.component.js +0 -288
- package/esm5/components/table/table-paging/index.js +0 -1
- package/esm5/components/table/table-paging/models/custom-action.interface.js +0 -1
- package/esm5/components/table/table-paging/models/index.js +0 -1
- package/esm5/components/table/table-paging/table-paging.component.js +0 -361
- package/esm5/components/table/table.module.js +0 -48
- package/esm5/components/table-header/index.js +0 -3
- package/esm5/components/table-header/table-header-checkbox.component.js +0 -157
- package/esm5/components/table-header/table-header-checkox.module.js +0 -18
- package/esm5/components/template/index.js +0 -3
- package/esm5/components/template/template.directive.js +0 -21
- package/esm5/components/template/template.module.js +0 -18
- package/esm5/components/text-area/index.js +0 -3
- package/esm5/components/text-area/text-area/text-area.component.js +0 -126
- package/esm5/components/text-area/text-area.module.js +0 -27
- package/esm5/components/text-area-ia/index.js +0 -3
- package/esm5/components/text-area-ia/text-area-ia.component.js +0 -147
- package/esm5/components/text-area-ia/text-area-ia.module.js +0 -35
- package/esm5/components/thumbnail/index.js +0 -4
- package/esm5/components/thumbnail/thumbnail-size.js +0 -7
- package/esm5/components/thumbnail/thumbnail.component.js +0 -83
- package/esm5/components/thumbnail/thumbnail.module.js +0 -20
- package/esm5/components/thumbnail/thumbnail.service.js +0 -65
- package/esm5/components/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.js +0 -19
- package/esm5/components/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.js +0 -44
- package/esm5/components/thumbnails/components/thumbnail-item/thumbnail-item.component.js +0 -68
- package/esm5/components/thumbnails/index.js +0 -3
- package/esm5/components/thumbnails/models/thumbnails-item.js +0 -1
- package/esm5/components/thumbnails/thumbnails.component.js +0 -61
- package/esm5/components/thumbnails/thumbnails.module.js +0 -24
- package/esm5/components/tiered-menu/components/tiered-menu/tiered-menu.component.js +0 -288
- package/esm5/components/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.js +0 -16
- package/esm5/components/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.js +0 -78
- package/esm5/components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.js +0 -180
- package/esm5/components/tiered-menu/index.js +0 -3
- package/esm5/components/tiered-menu/models/index.js +0 -1
- package/esm5/components/tiered-menu/models/tiered-menu-item-data.js +0 -1
- package/esm5/components/tiered-menu/models/tiered-menu-item-internal-data.js +0 -1
- package/esm5/components/tiered-menu/services/tiered-menu.event.service.js +0 -19
- package/esm5/components/tiered-menu/services/tiered-menu.global.service.js +0 -12
- package/esm5/components/tiered-menu/services/tiered-menu.service.js +0 -54
- package/esm5/components/tiered-menu/tiered-menu.directive.js +0 -224
- package/esm5/components/tiered-menu/tiered-menu.module.js +0 -32
- package/esm5/components/tiered-menu/utils.js +0 -7
- package/esm5/components/tile/index.js +0 -3
- package/esm5/components/tile/tile.component.js +0 -77
- package/esm5/components/tile/tile.module.js +0 -27
- package/esm5/components/timeline/components/horizontal-timeline/horizontal-timeline.component.js +0 -26
- package/esm5/components/timeline/components/horizontal-timeline/horizontal-timeline.module.js +0 -24
- package/esm5/components/timeline/components/timeline-icon-item/timeline-icon-item.component.js +0 -28
- package/esm5/components/timeline/components/timeline-icon-item/timeline-icon-item.module.js +0 -22
- package/esm5/components/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.js +0 -27
- package/esm5/components/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.js +0 -36
- package/esm5/components/timeline/components/vertical-timeline/components/range-line/range-line.component.js +0 -16
- package/esm5/components/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.js +0 -31
- package/esm5/components/timeline/components/vertical-timeline/vertical-timeline.component.js +0 -58
- package/esm5/components/timeline/components/vertical-timeline/vertical-timeline.module.js +0 -32
- package/esm5/components/timeline/index.js +0 -4
- package/esm5/components/timeline/models/index.js +0 -4
- package/esm5/components/timeline/models/timeline-item-severity.js +0 -7
- package/esm5/components/timeline/models/timeline-item-size.js +0 -6
- package/esm5/components/timeline/models/timeline-item.js +0 -39
- package/esm5/components/timeline/timeline.component.js +0 -71
- package/esm5/components/timeline/timeline.module.js +0 -30
- package/esm5/components/toast/index.js +0 -4
- package/esm5/components/toast/toast.component.js +0 -54
- package/esm5/components/toast/toast.module.js +0 -17
- package/esm5/components/toast/toast.service.js +0 -70
- package/esm5/components/toast/types/toast.js +0 -1
- package/esm5/components/token-list/index.js +0 -3
- package/esm5/components/token-list/models/index.js +0 -1
- package/esm5/components/token-list/models/token.js +0 -1
- package/esm5/components/token-list/token-list.component.js +0 -52
- package/esm5/components/token-list/token-list.module.js +0 -18
- package/esm5/components/tooltip/index.js +0 -3
- package/esm5/components/tooltip/models/index.js +0 -4
- package/esm5/components/tooltip/models/mobile-behavior.js +0 -6
- package/esm5/components/tooltip/models/tooltip-event.js +0 -6
- package/esm5/components/tooltip/models/tooltip-position.js +0 -8
- package/esm5/components/tooltip/tooltip.component.js +0 -22
- package/esm5/components/tooltip/tooltip.directive.js +0 -339
- package/esm5/components/tooltip/tooltip.module.js +0 -22
- package/esm5/components/utils/breakpoints.js +0 -11
- package/esm5/components/utils/debouce.js +0 -50
- package/esm5/components/utils/export-utils.js +0 -96
- package/esm5/components/utils/index.js +0 -6
- package/esm5/components/utils/locale-utils.js +0 -15
- package/esm5/components/utils/utils.js +0 -39
- package/esm5/components/workspace-switch/index.js +0 -3
- package/esm5/components/workspace-switch/models/index.js +0 -1
- package/esm5/components/workspace-switch/models/workspace.js +0 -1
- package/esm5/components/workspace-switch/workspace-switch.component.js +0 -148
- package/esm5/components/workspace-switch/workspace-switch.module.js +0 -18
- package/esm5/locale/fallback.js +0 -333
- package/esm5/public-api.js +0 -5
- package/esm5/seniorsistemas-angular-components.js +0 -116
- package/esm5/utils/currency/currency.service.js +0 -191
- package/esm5/utils/currency/index.js +0 -2
- package/esm5/utils/index.js +0 -3
- package/esm5/utils/svg-factory/components/iassist-icon/iassist-icon.component.js +0 -14
- package/esm5/utils/svg-factory/components/senior-icon/senior-icon.component.js +0 -14
- package/esm5/utils/svg-factory/components/svg-factory-icons.js +0 -6
- package/esm5/utils/svg-factory/index.js +0 -3
- package/esm5/utils/svg-factory/svg-factory.directive.js +0 -54
- package/esm5/utils/svg-factory/svg-factory.module.js +0 -24
- package/fesm2015/seniorsistemas-angular-components.js +0 -21851
- package/fesm2015/seniorsistemas-angular-components.js.map +0 -1
- package/fesm5/seniorsistemas-angular-components.js +0 -23411
- package/fesm5/seniorsistemas-angular-components.js.map +0 -1
- package/locale/fallback.d.ts +0 -1
- package/public-api.d.ts +0 -4
- package/seniorsistemas-angular-components.d.ts +0 -115
- package/seniorsistemas-angular-components.metadata.json +0 -1
- package/utils/currency/currency.service.d.ts +0 -642
- package/utils/currency/index.d.ts +0 -1
- package/utils/svg-factory/components/iassist-icon/iassist-icon.component.d.ts +0 -2
- package/utils/svg-factory/components/senior-icon/senior-icon.component.d.ts +0 -2
- package/utils/svg-factory/components/svg-factory-icons.d.ts +0 -4
- package/utils/svg-factory/index.d.ts +0 -2
- package/utils/svg-factory/svg-factory.directive.d.ts +0 -13
- package/utils/svg-factory/svg-factory.module.d.ts +0 -2
- /package/{components → checkbox/lib}/checkbox/models/checkbox-data.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/core/facades/linter-facade.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/core/models/enums/marker-severity.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/core/models/index.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/core/models/interfaces/marker.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/editor-languages.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/json/json.language.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-empty-state.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-loading-state.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper-style.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/index.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-style.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.service.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/base-configs.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/grammar.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/completion-types.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/enum-type-order.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/keywords.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/meta-type.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/request-types.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/index.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/completion-Item.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/facade-metadata-name.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/fields-order-by.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/get-facade-metadata-by-path.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-context-metadata-by-id.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-expression-metadata.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-facade-metadata-names.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-expression-metadata.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-context-metadata.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-facade-metadata.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-field-metadata.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-page-request.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/tax-calculation-configs.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation-language-configs.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation.language.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-language-configs.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/index.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/models/index.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/themes/editor-themes.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/autocomplete-tooltip.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/font-style.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/line-counter.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/scrollbars.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-highlight-style.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-style.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-theme.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/utils/convert-markers-to-diagnostics.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/utils/index.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/utils/is-current-position-inside-string.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/utils/custom-http-client/json-response-formatters/format-blob-response.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/utils/custom-http-client/json-response-formatters/format-json-response.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/utils/custom-http-client/json-response-formatters/index.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/utils/custom-translations/index.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/utils/custom-translations/models/index.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/utils/custom-translations/models/interfaces/translations.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/infra/utils/index.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/models/enums/languages.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/models/enums/themes.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/models/index.d.ts +0 -0
- /package/{components → code-editor/lib}/code-editor/models/interfaces/editor-options.d.ts +0 -0
- /package/{components → country-phone-picker/lib}/country-phone-picker/models/country-phone-data.d.ts +0 -0
- /package/{components → country-phone-picker/lib}/country-phone-picker/models/ordination.d.ts +0 -0
- /package/{components → country-phone-picker/lib}/country-phone-picker/models/phone-selection-data.d.ts +0 -0
- /package/{components → custom-fields/lib}/custom-fields/models/custom-field-type.d.ts +0 -0
- /package/{components → dynamic-form/lib}/dynamic-form/configurations/dynamic-config.d.ts +0 -0
- /package/{components → dynamic-form/lib}/dynamic-form/configurations/dynamic-type.d.ts +0 -0
- /package/{components → dynamic-form/lib}/dynamic-form/configurations/grid-type.d.ts +0 -0
- /package/{components → dynamic-form/lib}/dynamic-form/configurations/structure-type.d.ts +0 -0
- /package/{components/dynamic-form → dynamic-form/lib/dynamic-form/form-field}/configurations/field-size.d.ts +0 -0
- /package/{components/dynamic-form → dynamic-form/lib/dynamic-form/form-field}/configurations/fields/editor-field.d.ts +0 -0
- /package/{components → file-upload/lib}/file-upload/models/list-blob-metadata.d.ts +0 -0
- /package/{components → gantt/lib}/gantt/components/gantt/utils/date-utils.d.ts +0 -0
- /package/{components → gantt/lib}/gantt/models/task.d.ts +0 -0
- /package/{components → gantt/lib}/gantt/models/view-mode.d.ts +0 -0
- /package/{components → inline-edit/lib}/inline-edit/components/index.d.ts +0 -0
- /package/{components → inline-edit/lib}/inline-edit/fields/inline-edit-text-area-field.d.ts +0 -0
- /package/{components → inline-edit/lib}/inline-edit/fields/inline-edit-text-area-ia-field.d.ts +0 -0
- /package/{components → inline-edit/lib}/inline-edit/fields/inline-edit-text-field.d.ts +0 -0
- /package/{components → loading-state/lib}/loading-state/components/loading-state-indicators.d.ts +0 -0
- /package/{components → navigation-button/lib}/navigation-button/models/navigation-button-item.d.ts +0 -0
- /package/{components → profile-picture-picker/lib}/profile-picture-picker/models/confirmation-texts.d.ts +0 -0
- /package/{components → profile-picture-picker/lib}/profile-picture-picker/models/cropper-labels-config.d.ts +0 -0
- /package/{components → profile-picture-picker/lib}/profile-picture-picker/models/profile-picture-picker-data.d.ts +0 -0
- /package/{components → rating-scale/lib}/rating-scale/models/rating-scale-node.d.ts +0 -0
- /package/{components → select-button/lib}/select-button/models/select-button-item.d.ts +0 -0
- /package/{components → shared/lib}/shared/helpers.d.ts +0 -0
- /package/{components → split-button/lib}/split-button/models/split-button-option.d.ts +0 -0
- /package/{components/utils → table/lib}/locale-utils.d.ts +0 -0
- /package/{components → table/lib}/table/table-column/models/enum-badge-colors.d.ts +0 -0
- /package/{components → table/lib}/table/table-column/models/enum-column-field-type.d.ts +0 -0
- /package/{components → table/lib}/table/table-paging/models/custom-action.interface.d.ts +0 -0
- /package/{components → tiered-menu/lib}/tiered-menu/utils.d.ts +0 -0
- /package/{components → timeline/lib}/timeline/models/timeline-item-severity.d.ts +0 -0
- /package/{components → timeline/lib}/timeline/models/timeline-item-size.d.ts +0 -0
- /package/{components → token-list/lib}/token-list/models/token.d.ts +0 -0
- /package/{components → utils/lib}/utils/breakpoints.d.ts +0 -0
- /package/{components → workspace-switch/lib}/workspace-switch/models/workspace.d.ts +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","ng://@seniorsistemas/angular-components/components/tooltip/models/tooltip-position.ts","ng://@seniorsistemas/angular-components/components/accordion/components/accordion-panel/accordion-panel.component.ts","ng://@seniorsistemas/angular-components/components/accordion/accordion.component.ts","ng://@seniorsistemas/angular-components/components/switch/switch.component.ts","ng://@seniorsistemas/angular-components/components/switch/switch.module.ts","ng://@seniorsistemas/angular-components/components/tooltip/models/mobile-behavior.ts","ng://@seniorsistemas/angular-components/components/tooltip/models/tooltip-event.ts","ng://@seniorsistemas/angular-components/components/tooltip/tooltip.component.ts","ng://@seniorsistemas/angular-components/components/utils/debouce.ts","ng://@seniorsistemas/angular-components/components/utils/utils.ts","ng://@seniorsistemas/angular-components/components/badge/models/badge-colors.ts","ng://@seniorsistemas/angular-components/components/badge/models/badge-types.ts","ng://@seniorsistemas/angular-components/components/tooltip/tooltip.directive.ts","ng://@seniorsistemas/angular-components/components/tooltip/tooltip.module.ts","ng://@seniorsistemas/angular-components/components/accordion/accordion.module.ts","ng://@seniorsistemas/angular-components/components/alert/alert.component.ts","ng://@seniorsistemas/angular-components/components/alert/alert.module.ts","ng://@seniorsistemas/angular-components/components/button/models/button-priority.ts","ng://@seniorsistemas/angular-components/components/button/models/button-size.ts","ng://@seniorsistemas/angular-components/components/badge/badge.component.ts","ng://@seniorsistemas/angular-components/components/info-sign/info-sign.component.ts","ng://@seniorsistemas/angular-components/components/info-sign/info-sign.directive.ts","ng://@seniorsistemas/angular-components/components/info-sign/info-sign.module.ts","ng://@seniorsistemas/angular-components/components/badge/badge.module.ts","ng://@seniorsistemas/angular-components/components/locale/options/calendar.ts","ng://@seniorsistemas/angular-components/components/locale/options/number.ts","ng://@seniorsistemas/angular-components/components/locale/options/index.ts","ng://@seniorsistemas/angular-components/components/locale/locale.service.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-bignumber.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-bignumber-impure.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-currency.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-currency-impure.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-date.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-date-impure.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-number.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-time.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-time-impure.pipe.ts","ng://@seniorsistemas/angular-components/utils/currency/currency.service.ts","ng://@seniorsistemas/angular-components/components/locale/services/numeric.service.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/numeric.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/locale.module.ts","ng://@seniorsistemas/angular-components/components/bignumber-input/bignumber-input.directive.ts","ng://@seniorsistemas/angular-components/components/bignumber-input/bignumber-input.module.ts","ng://@seniorsistemas/angular-components/components/breadcrumb/breadcrumb.component.ts","ng://@seniorsistemas/angular-components/components/breadcrumb/breadcrumb.module.ts","ng://@seniorsistemas/angular-components/components/button/models/button-animation.ts","ng://@seniorsistemas/angular-components/components/card/models/card-template-types.ts","ng://@seniorsistemas/angular-components/components/button/button.component.ts","ng://@seniorsistemas/angular-components/components/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.ts","ng://@seniorsistemas/angular-components/components/tiered-menu/services/tiered-menu.event.service.ts","ng://@seniorsistemas/angular-components/components/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.ts","ng://@seniorsistemas/angular-components/components/tiered-menu/services/tiered-menu.service.ts","ng://@seniorsistemas/angular-components/components/tiered-menu/utils.ts","ng://@seniorsistemas/angular-components/components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.ts","ng://@seniorsistemas/angular-components/components/tiered-menu/components/tiered-menu/tiered-menu.component.ts","ng://@seniorsistemas/angular-components/components/tiered-menu/services/tiered-menu.global.service.ts","ng://@seniorsistemas/angular-components/components/tiered-menu/tiered-menu.directive.ts","ng://@seniorsistemas/angular-components/components/tiered-menu/tiered-menu.module.ts","ng://@seniorsistemas/angular-components/components/button/button.module.ts","ng://@seniorsistemas/angular-components/components/calendar-mask/calendar-mask.directive.ts","ng://@seniorsistemas/angular-components/components/calendar-mask/calendar-mask.module.ts","ng://@seniorsistemas/angular-components/components/template/template.directive.ts","ng://@seniorsistemas/angular-components/components/code-editor/models/enums/languages.ts","ng://@seniorsistemas/angular-components/components/card/card.component.ts","ng://@seniorsistemas/angular-components/components/template/template.module.ts","ng://@seniorsistemas/angular-components/components/card/card.module.ts","ng://@seniorsistemas/angular-components/components/chat/chat.component.ts","ng://@seniorsistemas/angular-components/components/chat/components/chat-message/chat-message.component.ts","ng://@seniorsistemas/angular-components/components/chat/chat.module.ts","ng://@seniorsistemas/angular-components/components/checkbox/checkbox.component.ts","ng://@seniorsistemas/angular-components/components/checkbox/checkbox.module.ts","ng://@seniorsistemas/angular-components/components/code-editor/models/enums/themes.ts","ng://@seniorsistemas/angular-components/components/code-editor/core/use-cases/core-linters.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/enum-type-order.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/meta-type.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/request-types.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/completion-types.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/keywords.ts","ng://@seniorsistemas/angular-components/components/code-editor/core/facades/core-facade.ts","ng://@seniorsistemas/angular-components/components/code-editor/code-editor.component.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/base-configs.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/grammar.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/utils/custom-http-client/json-response-formatters/format-json-response.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/utils/custom-http-client/json-response-formatters/format-blob-response.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/utils/custom-http-client/custom-http-client.ts","ng://@seniorsistemas/angular-components/components/code-editor/core/models/enums/marker-severity.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/utils/custom-translations/custom-translations-service.ts","ng://@seniorsistemas/angular-components/angular-components.module.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/utils/custom-translations/custom-translations.module.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/utils/convert-markers-to-diagnostics.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.service.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-loading-state.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-empty-state.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper-style.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation-language-configs.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-style.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/utils/is-current-position-inside-string.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-language-configs.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-safe-response.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation.language.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/json/json.language.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/editor-languages.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-highlight-style.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/font-style.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-theme.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-style.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/scrollbars.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/line-counter.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/autocomplete-tooltip.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/editor-themes.ts","ng://@seniorsistemas/angular-components/components/country-phone-picker/models/ordination.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/codemirror-6-core.ts","ng://@seniorsistemas/angular-components/components/code-editor/code-editor.module.ts","ng://@seniorsistemas/angular-components/components/collapse-link/collapse-link.component.ts","ng://@seniorsistemas/angular-components/components/collapse-link/collapse-link.module.ts","ng://@seniorsistemas/angular-components/components/control-errors/control-errors.component.ts","ng://@seniorsistemas/angular-components/components/control-errors/control-errors.module.ts","ng://@seniorsistemas/angular-components/components/country-phone-picker/resources/countries.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/field-type.ts","ng://@seniorsistemas/angular-components/components/country-phone-picker/country-phone-picker.service.ts","ng://@seniorsistemas/angular-components/components/utils/breakpoints.ts","ng://@seniorsistemas/angular-components/components/utils/export-utils.ts","ng://@seniorsistemas/angular-components/components/utils/locale-utils.ts","ng://@seniorsistemas/angular-components/components/country-phone-picker/country-phone-picker.component.ts","ng://@seniorsistemas/angular-components/components/country-phone-picker/country-phone-picker.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/base-field-component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/field-size.ts","ng://@seniorsistemas/angular-components/components/number-input/number-input.directive.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/autocomplete-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/bignumber-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/blob-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/boolean-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/boolean-switch-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/calendar-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/checkbox-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/chips-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/country-phone-picker-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/dynamic-type.ts","ng://@seniorsistemas/angular-components/components/number-input/number-input.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/number-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/decimal-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/currency-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/lookup-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/password-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/radio-button-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/select-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/slider-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/text-area-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/text-area-ia-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/text-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/button-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/editor-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/profile-picture.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/form-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/lookup/lookup.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/structure-type.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/grid/grid.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/grid/row.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/structure/structure.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/structure/fieldset.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/structure/section.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/dynamic-config.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/grid-type.ts","ng://@seniorsistemas/angular-components/components/file-upload/models/validate-errors.ts","ng://@seniorsistemas/angular-components/components/file-upload/models/file-upload-permissions.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/dynamic-form.component.ts","ng://@seniorsistemas/angular-components/components/mouse-events/long-press.directive.ts","ng://@seniorsistemas/angular-components/components/mouse-events/double-click.directive.ts","ng://@seniorsistemas/angular-components/components/mouse-events/mouse-events.module.ts","ng://@seniorsistemas/angular-components/components/toast/toast.component.ts","ng://@seniorsistemas/angular-components/components/toast/toast.service.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/services/IAssist/iassist.service.ts","ng://@seniorsistemas/angular-components/components/empty-state/empty-state.component.ts","ng://@seniorsistemas/angular-components/components/empty-state/go-back/go-back.component.ts","ng://@seniorsistemas/angular-components/components/empty-state/empty-state.module.ts","ng://@seniorsistemas/angular-components/components/file-upload/file-upload.service.ts","ng://@seniorsistemas/angular-components/utils/svg-factory/components/svg-factory-icons.ts","ng://@seniorsistemas/angular-components/components/file-upload/file-upload.component.ts","ng://@seniorsistemas/angular-components/components/file-upload/file-upload.module.ts","ng://@seniorsistemas/angular-components/utils/svg-factory/components/iassist-icon/iassist-icon.component.ts","ng://@seniorsistemas/angular-components/utils/svg-factory/components/senior-icon/senior-icon.component.ts","ng://@seniorsistemas/angular-components/components/loading-state/components/loading-state-indicators.ts","ng://@seniorsistemas/angular-components/utils/svg-factory/svg-factory.directive.ts","ng://@seniorsistemas/angular-components/utils/svg-factory/svg-factory.module.ts","ng://@seniorsistemas/angular-components/components/loading-state/components/dots-indicator/dots-indicator.components.ts","ng://@seniorsistemas/angular-components/components/loading-state/components/logo-indicator/logo-indicator.component.ts","ng://@seniorsistemas/angular-components/components/password-strength/models/password-strengths.ts","ng://@seniorsistemas/angular-components/components/password-strength/models/password-positions.ts","ng://@seniorsistemas/angular-components/components/loading-state/loading-state.component.ts","ng://@seniorsistemas/angular-components/components/loading-state/loading-state.directive.ts","ng://@seniorsistemas/angular-components/components/loading-state/loading-state.module.ts","ng://@seniorsistemas/angular-components/components/localized-number-input/localized-number-input.directive.ts","ng://@seniorsistemas/angular-components/components/localized-number-input/localized-number-input.module.ts","ng://@seniorsistemas/angular-components/components/mask/mask-formatter.pipe.ts","ng://@seniorsistemas/angular-components/components/mask/mask-formatter.module.ts","ng://@seniorsistemas/angular-components/components/table/table-column/models/enum-column-field-type.ts","ng://@seniorsistemas/angular-components/components/table/table-column/models/enum-badge-colors.ts","ng://@seniorsistemas/angular-components/components/password-strength/password-strength.component.ts","ng://@seniorsistemas/angular-components/components/password-strength/password-strength.directive.ts","ng://@seniorsistemas/angular-components/components/password-strength/password-strength.module.ts","ng://@seniorsistemas/angular-components/components/table-header/table-header-checkbox.component.ts","ng://@seniorsistemas/angular-components/components/table-header/table-header-checkox.module.ts","ng://@seniorsistemas/angular-components/components/table/navigation/navigation.directive.ts","ng://@seniorsistemas/angular-components/components/table/row-toggler/row-toggler.directive.ts","ng://@seniorsistemas/angular-components/components/table/frozen-position/frozen-position.directive.ts","ng://@seniorsistemas/angular-components/components/table/table-column/table-columns.component.ts","ng://@seniorsistemas/angular-components/components/thumbnail/thumbnail-size.ts","ng://@seniorsistemas/angular-components/components/token-list/token-list.component.ts","ng://@seniorsistemas/angular-components/components/token-list/token-list.module.ts","ng://@seniorsistemas/angular-components/components/table/table-paging/table-paging.component.ts","ng://@seniorsistemas/angular-components/components/table/table.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/autocomplete/autocomplete-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/boolean/boolean-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/boolean/boolean-switch-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/calendar/calendar-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/chips/chips-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/country-phone-picker/country-phone-picker-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/file-upload/file-upload.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/lookup/lookup-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/radio-button/radio-button-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/select/select-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/slider/slider-field.component.ts","ng://@seniorsistemas/angular-components/components/speech-recognition/speech-recognition.service.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/text-area-ia/text-area-ia-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/text-area/text-area-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/structure/fieldset/fieldset.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/structure/section/section.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/grid/row/row.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/dynamic-field/dynamic-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/bignumber/bignumber-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/currency/currency-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/password/password-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/text/text-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/checkbox/checkbox-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/editor/editor-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/number/number-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/profile-picture/profile-picture-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/button-field/button-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/dynamic-form.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/dynamic-form.directive.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/field-label/field-label.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/field-label/field-label.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/bignumber/bignumber-field.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/checkbox/checkbox-field.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/currency/currency-field.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/editor/editor-field.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/number/number-field.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/password/password-field.module.ts","ng://@seniorsistemas/angular-components/components/structure/header.component.ts","ng://@seniorsistemas/angular-components/components/structure/footer.component.ts","ng://@seniorsistemas/angular-components/components/structure/structure.module.ts","ng://@seniorsistemas/angular-components/components/image-cropper/image-cropper.component.ts","ng://@seniorsistemas/angular-components/components/image-cropper/image-cropper.module.ts","ng://@seniorsistemas/angular-components/components/image-cropper/image-cropper.service.ts","ng://@seniorsistemas/angular-components/components/profile-picture-picker/models/file-validation-errors.ts","ng://@seniorsistemas/angular-components/components/thumbnail/thumbnail.service.ts","ng://@seniorsistemas/angular-components/components/thumbnail/thumbnail.component.ts","ng://@seniorsistemas/angular-components/components/thumbnail/thumbnail.module.ts","ng://@seniorsistemas/angular-components/components/custom-fields/models/custom-field-type.ts","ng://@seniorsistemas/angular-components/components/profile-picture-picker/profile-picture-picker.component.ts","ng://@seniorsistemas/angular-components/components/profile-picture-picker/profile-picture-picker.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/profile-picture/profile-picture-field.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/text/text-field.module.ts","ng://@seniorsistemas/angular-components/components/text-area/text-area/text-area.component.ts","ng://@seniorsistemas/angular-components/components/speech-recognition/text-to-speech.service.ts","ng://@seniorsistemas/angular-components/components/speech-recognition/speech-recognition/speech-recognition.component.ts","ng://@seniorsistemas/angular-components/components/speech-recognition/speech-recognition.module.ts","ng://@seniorsistemas/angular-components/components/text-area/text-area.module.ts","ng://@seniorsistemas/angular-components/components/fieldset/fieldset.component.ts","ng://@seniorsistemas/angular-components/components/accessibility-events/directives/accessibility-event.directive.ts","ng://@seniorsistemas/angular-components/components/accessibility-events/accessibility-events.module.ts","ng://@seniorsistemas/angular-components/components/fieldset/fieldset.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/dynamic-form.module.ts","ng://@seniorsistemas/angular-components/components/custom-fields/custom-fields.service.ts","ng://@seniorsistemas/angular-components/components/custom-fields/custom-fields.component.ts","ng://@seniorsistemas/angular-components/components/gantt/models/view-mode.ts","ng://@seniorsistemas/angular-components/components/custom-fields/custom-fields.module.ts","ng://@seniorsistemas/angular-components/components/editable-overlay/editable-overlay.directive.ts","ng://@seniorsistemas/angular-components/components/editable-overlay/editable-overlay.module.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/utils/date-utils.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/utils/svg-utils.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/bar.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/popup.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/arrow.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/gantt-options.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/gantt.ts","ng://@seniorsistemas/angular-components/components/global-search/global-search-size.enum.ts","ng://@seniorsistemas/angular-components/components/gantt/gantt.component.ts","ng://@seniorsistemas/angular-components/components/gantt/components/side-table/side-table.component.ts","ng://@seniorsistemas/angular-components/components/gantt/gantt.module.ts","ng://@seniorsistemas/angular-components/components/ia-insight/models/ia-insight-template-types.ts","ng://@seniorsistemas/angular-components/components/global-search/elements/dropdown/global-search-dropdown-item.component.ts","ng://@seniorsistemas/angular-components/components/global-search/global-search.component.ts","ng://@seniorsistemas/angular-components/components/infinite-scroll/infinite-scroll.directive.ts","ng://@seniorsistemas/angular-components/components/infinite-scroll/infinite-scroll.module.ts","ng://@seniorsistemas/angular-components/components/global-search/global-search.module.ts","ng://@seniorsistemas/angular-components/components/ia-insight/components/ia-insight-card/ia-insight-card.component.ts","ng://@seniorsistemas/angular-components/components/ia-insight/components/ia-insight-sidebar/ia-insight-sidebar.component.ts","ng://@seniorsistemas/angular-components/components/ia-insight/components/ia-insight-card/components/ia-insight-card-loader/ia-insight-card-loader.component.ts","ng://@seniorsistemas/angular-components/components/kanban/models/kanban-template-types.ts","ng://@seniorsistemas/angular-components/components/ia-insight/ia-insight.component.ts","ng://@seniorsistemas/angular-components/components/ia-insight/ia-insight.module.ts","ng://@seniorsistemas/angular-components/components/grid-menu/grid-menu.component.ts","ng://@seniorsistemas/angular-components/components/grid-menu/components/grid-menu-item/grid-menu-item.component.ts","ng://@seniorsistemas/angular-components/components/grid-menu/grid-menu.module.ts","ng://@seniorsistemas/angular-components/components/inline-edit/fields/inline-edit-field.ts","ng://@seniorsistemas/angular-components/components/inline-edit/fields/inline-edit-calendar-field.ts","ng://@seniorsistemas/angular-components/components/inline-edit/fields/inline-edit-lookup-field.ts","ng://@seniorsistemas/angular-components/components/inline-edit/fields/inline-edit-number-field.ts","ng://@seniorsistemas/angular-components/components/inline-edit/fields/inline-edit-text-area-field.ts","ng://@seniorsistemas/angular-components/components/inline-edit/fields/inline-edit-text-field.ts","ng://@seniorsistemas/angular-components/components/inline-edit/fields/inline-edit-text-area-ia-field.ts","ng://@seniorsistemas/angular-components/components/inline-edit/components/inline-edit-item/inline-edit-item.component.ts","ng://@seniorsistemas/angular-components/components/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.ts","ng://@seniorsistemas/angular-components/components/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.ts","ng://@seniorsistemas/angular-components/components/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.ts","ng://@seniorsistemas/angular-components/components/inline-edit/components/fields/inline-edit-text-area/inline-edit-text-area.component.ts","ng://@seniorsistemas/angular-components/components/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.ts","ng://@seniorsistemas/angular-components/components/inline-edit/components/fields/inline-edit-text-area-ia/inline-edit-text-area-ia.component.ts","ng://@seniorsistemas/angular-components/components/inline-edit/inline-edit.component.ts","ng://@seniorsistemas/angular-components/components/text-area-ia/text-area-ia.component.ts","ng://@seniorsistemas/angular-components/components/text-area-ia/text-area-ia.module.ts","ng://@seniorsistemas/angular-components/components/inline-edit/inline-edit.module.ts","ng://@seniorsistemas/angular-components/components/kanban/kanban-event.service.ts","ng://@seniorsistemas/angular-components/components/shared/models/enum-severity.ts","ng://@seniorsistemas/angular-components/components/kanban/kanban.component.ts","ng://@seniorsistemas/angular-components/components/kanban/components/kanban-column/kanban-column.component.ts","ng://@seniorsistemas/angular-components/components/kanban/components/kanban-item-dragging/kanban-item-dragging.component.ts","ng://@seniorsistemas/angular-components/components/kanban/components/kanban-item/kanban-item.component.ts","ng://@seniorsistemas/angular-components/components/kanban/kanban.module.ts","ng://@seniorsistemas/angular-components/components/navigation-button/navigation-button.component.ts","ng://@seniorsistemas/angular-components/components/navigation-button/navigation-button.module.ts","ng://@seniorsistemas/angular-components/components/progressbar/models/progressbar-colors.ts","ng://@seniorsistemas/angular-components/components/progressbar/models/progressbar-mode.ts","ng://@seniorsistemas/angular-components/components/object-card/elements/field/object-card-field.component.ts","ng://@seniorsistemas/angular-components/components/object-card/elements/main/object-card-main.component.ts","ng://@seniorsistemas/angular-components/components/object-card/object-card.component.ts","ng://@seniorsistemas/angular-components/components/shared/border-button/border-button.component.ts","ng://@seniorsistemas/angular-components/components/shared/border-button/border-button.module.ts","ng://@seniorsistemas/angular-components/components/object-card/object-card.module.ts","ng://@seniorsistemas/angular-components/components/panel/panel.component.ts","ng://@seniorsistemas/angular-components/components/panel/panel.module.ts","ng://@seniorsistemas/angular-components/components/product-header/product-header.component.ts","ng://@seniorsistemas/angular-components/components/product-header/product-header.module.ts","ng://@seniorsistemas/angular-components/components/progressbar/progressbar.component.ts","ng://@seniorsistemas/angular-components/components/progressbar/components/progressbar-determinate/progressbar-determinate.component.ts","ng://@seniorsistemas/angular-components/components/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component.ts","ng://@seniorsistemas/angular-components/components/progressbar/progressbar.module.ts","ng://@seniorsistemas/angular-components/components/rating-scale/rating-scale.component.ts","ng://@seniorsistemas/angular-components/components/rating-scale/rating-scale.module.ts","ng://@seniorsistemas/angular-components/components/select-button/select-button.component.ts","ng://@seniorsistemas/angular-components/components/select-button/components/select-button-item/select-button-item.component.ts","ng://@seniorsistemas/angular-components/components/select-button/select-button.module.ts","ng://@seniorsistemas/angular-components/components/shared/helpers.ts","ng://@seniorsistemas/angular-components/components/split-button/models/split-button-type.ts","ng://@seniorsistemas/angular-components/components/sidebar/sidebar.component.ts","ng://@seniorsistemas/angular-components/components/sidebar/sidebar.module.ts","ng://@seniorsistemas/angular-components/components/slide-panel/slide-panel.service.ts","ng://@seniorsistemas/angular-components/components/slide-panel/slide-panel.component.ts","ng://@seniorsistemas/angular-components/components/slide-panel/slide-panel.module.ts","ng://@seniorsistemas/angular-components/components/slider/slider.component.ts","ng://@seniorsistemas/angular-components/components/slider/slider.module.ts","ng://@seniorsistemas/angular-components/components/steps/steps.component.ts","ng://@seniorsistemas/angular-components/components/split-button/split-button.component.ts","ng://@seniorsistemas/angular-components/components/split-button/split-button.module.ts","ng://@seniorsistemas/angular-components/components/stats-card/stats-card.component.ts","ng://@seniorsistemas/angular-components/components/stats-card/stats-card.module.ts","ng://@seniorsistemas/angular-components/components/timeline/models/timeline-item-severity.ts","ng://@seniorsistemas/angular-components/components/timeline/models/timeline-item-size.ts","ng://@seniorsistemas/angular-components/components/steps/steps.module.ts","ng://@seniorsistemas/angular-components/components/thumbnails/thumbnails.component.ts","ng://@seniorsistemas/angular-components/components/thumbnails/components/thumbnail-item/thumbnail-item.component.ts","ng://@seniorsistemas/angular-components/components/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.ts","ng://@seniorsistemas/angular-components/components/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.ts","ng://@seniorsistemas/angular-components/components/thumbnails/thumbnails.module.ts","ng://@seniorsistemas/angular-components/components/tile/tile.component.ts","ng://@seniorsistemas/angular-components/components/tile/tile.module.ts","ng://@seniorsistemas/angular-components/components/timeline/timeline.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/timeline-icon-item/timeline-icon-item.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/timeline-icon-item/timeline-icon-item.module.ts","ng://@seniorsistemas/angular-components/components/timeline/components/horizontal-timeline/horizontal-timeline.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/horizontal-timeline/horizontal-timeline.module.ts","ng://@seniorsistemas/angular-components/components/timeline/components/vertical-timeline/vertical-timeline.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/vertical-timeline/components/range-line/range-line.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/vertical-timeline/vertical-timeline.module.ts","ng://@seniorsistemas/angular-components/components/timeline/timeline.module.ts","ng://@seniorsistemas/angular-components/components/timeline/models/timeline-item.ts","ng://@seniorsistemas/angular-components/components/picklist/picklist/models/picklist-models.ts","ng://@seniorsistemas/angular-components/components/workspace-switch/workspace-switch.component.ts","ng://@seniorsistemas/angular-components/components/workspace-switch/workspace-switch.module.ts","ng://@seniorsistemas/angular-components/components/label-value/label-value.component.ts","ng://@seniorsistemas/angular-components/components/label-value/label-value.module.ts","ng://@seniorsistemas/angular-components/components/picklist/picklist/picklist.component.ts","ng://@seniorsistemas/angular-components/components/picklist/picklist.module.ts","ng://@seniorsistemas/angular-components/components/chips/chips/chips.component.ts","ng://@seniorsistemas/angular-components/components/chips/chip-item/chip-item.component.ts","ng://@seniorsistemas/angular-components/components/chips/chips.module.ts","ng://@seniorsistemas/angular-components/components/help-popover/help-popover/help-popover.component.ts","ng://@seniorsistemas/angular-components/components/help-popover/help-popover.directive.ts","ng://@seniorsistemas/angular-components/components/help-popover/help-popover.module.ts","ng://@seniorsistemas/angular-components/components/toast/toast.module.ts","ng://@seniorsistemas/angular-components/locale/fallback.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","v","op","TypeError","pop","push","__values","o","m","__read","ar","error","__spread","concat","TooltipPosition","AccordionPanelComponent","disabled","cache","validationMessageIcon","validationMessageIconColor","panelOpened","EventEmitter","panelClosed","isAnimating","isContentAnimationDisabled","_isOpen","isOpen","ngOnChanges","changes","switchControl","currentValue","disable","emitEvent","enable","Error","ngAfterViewInit","_this","queueMicrotask","onIconButtonsClick","event","callback","stopPropagation","onTabClick","onContentAnimationStart","onContentAnimationDone","emit","Input","Output","Component","selector","template","animations","trigger","transition","style","height","animate","state","AccordionComponent","multiple","_unsubscribe$","Subject","_panels","ngAfterContentInit","panelsComponents","toArray","_openSubs","_setBehavior","_setupTabs","ngOnDestroy","complete","_a","undefined","activeIndex","activeTab","_closeOtherTabs","exception","forEach","panel","index","_enableMultiplePanelBehavior","_enableSinglePanelBehavior","pipe","takeUntil","subscribe","unsubscribe","ContentChildren","SwitchComponent","readonly","valueChanged","onFocusIn","switchRef","nativeElement","classList","add","onFocusOut","remove","writeValue","registerOnChange","onChange","_onChange","registerOnTouched","onTouched","_onTouched","setDisabledState","toggleCheck","ViewChild","static","HostListener","SwitchComponent_1","providers","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","SwitchModule","NgModule","imports","CommonModule","declarations","exports","MobileBehavior","TooltipEvent","TooltipComponent","tooltip","position","Top","left","top","visible","escape","DebounceUtils","debounce","func","timeout","timer","args","_i","clearTimeout","setTimeout","debounceLeading","Injectable","providedIn","isNullOrUndefined","isMousePositionOutsideOfElement","elementArea","eventX","clientX","eventY","clientY","right","bottom","getElementPositionInfo","element","rect","getBoundingClientRect","scrollTop","window","scrollY","document","documentElement","scrollLeft","scrollX","elementHeight","elementWidth","width","elementVerticalCenter","elementHorizontalCenter","getElementLeftoverContentAvailable","windowWidth","innerWidth","popoverElementTriggerRect","freeDistanceToBottom","innerHeight","freeDistanceToTop","freeDistanceToLeft","freeDistanceToRight","BadgeColors","BadgeTypes","TooltipDirective","elementRef","appRef","componentFactoryResolver","injector","debounceUtils","renderer","showDelay","tooltipEvent","Hover","mobileBehavior","Pressing","componentRef","tooltipCreatedByFocus","debounceCreateTooltipFunction","_createTooltip","ngOnInit","validatePosition","updateTooltipVisibilityWhenFocusOnInput","destroy","focusedInputRef","inputFocus","icon_1","getIconFromFocusedInput","listen","removeTooltip","icon","querySelector","onClick","navigator","userAgent","match","onFocus","Focus","onBlur","onMouseEnter","onMouseLeave","onTouchStart","touchTimeout","_delay","onTouchEnd","Right","Bottom","Left","includes","getDomElement","componentFactory","resolveComponentFactory","attachView","hostView","rootNodes","useShowDelay","autoDestroy","hasText","hasComponentRef","domElement","appendChild","tooltipDivElement","setTooltipComponentProperties","_showDelay","showTooltip","setTooltipPositionProperty","displayTime","instance","tooltipElementPosition","elementLeftover","elementTriggerPosition","distanceToBorders","canSetAtTop","canSetAtLeft","canSetAtRight","canSetAtBottom","topVertical","positions","pos","check","set","positionDefined","find","validPosition","canUseDefinedPosition","validAlternativePosition","_position","positionLeft","positionTop","Math","round","showTimeout","detachView","ElementRef","ApplicationRef","ComponentFactoryResolver","Injector","Renderer2","Directive","TooltipModule","AccordionModule","FormsModule","ReactiveFormsModule","AlertComponent","severity","closable","close","closeAlert","showAlert","onClose","AlertModule","ButtonPriority","ButtonSize","BadgeComponent","selectable","selected","text","_setDefaultValues","type","Pill","color","_b","Blue","iconPosition","_c","InfoSignComponent","InfoSignDirective","templateRef","viewContainer","useFocusedInputRef","createInfoSign","sInfoSign","clear","createComponent","_infoSignComponent","createEmbeddedView","TemplateRef","ViewContainerRef","InfoSignModule","entryComponents","BadgeModule","RouterModule","config","hourFormat","dateFormat","firstDayOfWeek","today","dayNames","dayNamesShort","dayNamesMin","monthNamesShort","monthNames","keys","thousandsSeparator","decimalSeparator","currencySymbol","calendar","CalendarLocaleOptions","number","NumberLocaleOptions","DEFAULT_CALENDAR_LOCALE_OPTIONS","DEFAULT_NUMBER_LOCALE_OPTIONS","DEFAULT_LOCALE_OPTIONS","LocaleOptions","moment","moment_","LocaleService","http","cookieService","localeOptionsAddress","localeOptionsVersion","get","localeOptions","of","getLocaleConfig","tap","locale","getLocale","from","getUserData","map","userData","tenantLocale","getLocaleOptions","JSON","parse","ex","console","warn","user","switchMap","response","catchError","err","getGroupingSeparator","numberFormat","Intl","NumberFormat","useGrouping","minimumFractionDigits","maximumFractionDigits","formatToParts","part","getDecimalSeparator","HttpClient","CookieService","LocalizedBignumberPipe","localeService","transform","options","applyMask","localeConfig","configs","prefix","_f","_d","_e","_j","_g","_h","scale","_k","allowNegative","_l","isNumber","BigNumber","isNaN","Pipe","name","LocalizedBignumberImpurePipe","_super","pure","LocalizedCurrencyPipeOptions","LocalizedCurrencyPipe","rawValue","Number","toFixed","onlyNumbers","replace","integerPart","slice","decimalPart","newValue","isZero","LocalizedCurrencyImpurePipe","LocalizedDatePipe","format","LocalizedDateImpurePipe","LocalizedNumberPipe","numericValue","LocalizedTimePipe","LocalizedTimeImpurePipe","CurrencyService","currencies","KHR","precision","SSP","XCD","EGP","KWD","YER","HUF","MXN","MYR","ZWL","MUR","DKK","NOK","DJF","CRC","BND","NAD","MKD","CDF","GNF","EUR","OMR","CLP","BSD","TOP","IRR","BGN","BZD","CNY","FJD","SRD","SOS","GYD","VUV","MWK","MRU","LSL","ERN","BMD","WST","LRD","GMD","ARS","ZAR","RSD","MDL","USD","QAR","HRK","GIP","NPR","002","PLN","MAD","BAM","BTN","BBD","SHP","LKR","KPW","LAK","SZL","PHP","RWF","ISK","XOF","AUD","NGN","KGS","KYD","PGK","DZD","XAF","PEN","JPY","SBD","UGX","AMD","AED","ALL","XPF","AFN","RON","TND","NZD","JOD","VND","ETB","PYG","JMD","KES","IDR","HKD","BDT","GBP","AOA","PKR","TRY","SLL","CVE","LYD","ILS","UZS","CHF","SVC","BRL","GHS","CUP","FKP","NIO","GEL","TTD","AAA","COP","MGA","INR","KRW","HNL","MMK","TZS","THB","TMT","SAR","UYU","BIF","MVR","RUB","GTQ","SCR","IQD","UAH","BYN","VES","BOB","SGD","ZMW","CZK","TJS","DOP","AZN","PAB","STN","SDG","BWP","BHD","CAD","MNT","MOP","HTG","KZT","LBP","SYP","TWD","MZN","ANG","SEK","KMF","AWG","getCurrencySymbol","currency","currencyDisplay","x","NumericService","currencyService","instant","numberFormatOptions","getCurrencyMinimumFractionDigits","_m","getType","toString","toUpperCase","baseType","tag","toStringTag","Function","startsWith","className","NumericPipe","numericService","LocaleModule","forRoot","ngModule","LocaleModule_1","forChild","BignumberInputDirective","alignTo","AlignmentOptions","LEFT","pasteRejected","_angularComponentsLocaleService","onLocaleService","updateVariables","placeholder","padEnd","onPaste","pastedText","clipboardData","getData","RegExp","split","intPart","preventDefault","onKeypress","code","maxLength","_maxLength","align","suffix","calculateMaxLength","decSepLength","thoSepLength","ceil","first","HostBinding","BignumberInputDirective_1","CurrencyMaskDirective","BignumberInputModule","BreadcrumbComponent","activatedRoute","router","targetHomeUrl","ngUnsubscribe","events","filter","NavigationEnd","onNavigationEnd","currentRoute","root","validRoutes","getValidChildren","title","getCurrentTitle","home","getCurrentHome","items","getCurrentItems","route","valid","routeConfig","path","component","outlet","PRIMARY_OUTLET","children","reduce","child","routes","last","getTitle","homeUrl","url","getMenuItem","pathFromRoot","routerLink","indexOf","item","snapshot","queryParams","routerLinkActiveOptions","exact","data","routeTitle","ActivatedRoute","Router","BreadcrumbModule","PrimeBreadcrumbModule","ButtonAnimation","CardTemplateTypes","ButtonComponent","minWidth","id","ButtonComponent_1","nextId","tooltipPosition","caret","baseZIndex","auxiliary","priority","Primary","model","menuOptions","size","Default","menu","toggle","validateSlideButton","slide","Link","hasIcon","iconClass","isMultiple","updateTooltipZIndex","tooltipZIndex","DomHandler","zindex","isRotateAnimation","animation","Rotate","TieredMenu","TieredMenuDividerComponent","TieredMenuEventService","incrementCurrentItemEvent","decrementCurrentItemEvent","closeAllMenusEvent","selectItemEvent","openItemMenuEvent","closeItemMenuEvent","createMenuEvent","TieredMenuItemComponent","_tieredMenuEventService","focused","highlight","triggerEvent","closeOnClick","submenu","_showTimeout","TieredMenuService","currentItems","normalizeData","parent","_generateId","markAllItemsAsClosed","searchTheHierarchy","itemA","itemB","cloneItems","stringify","random","substring","enableScroll","overflow","disabledScroll","TieredMenuNestedComponent","tieredMenuService","onResize","onDocumentClick","closest","onKeydownHandler","currentItem","_subscribeEvents","_incrementCurItem","curIndex","divider","_decrementCurItem","_closeItem","itemAux","_lastOpenItem","_openItem","command","TieredMenuComponent","_appRef","_componentFactoryResolver","_injector","_changeDetectorRef","menuTriggerEvent","_componentRef","destroyRequest","detectChanges","stopImmediatePropagation","currentIndex","_createMenu","TieredMenuComponent_1","domElem","propagate","_destroy","_menuDivElement","_setMenuPosition","top_1","menuHeight","count","menuWidth","rightFreeSpace","bottomFreeSpace","max","current","some","ChangeDetectorRef","TieredMenuGlobalService","TieredMenuDirective","_elementRef","_tieredMenuService","_tieredMenuGlobalService","focusedItem","_isNested","_itemsAreValid","ngDoCheck","_previousItems","hasChanges","_compareItems","_updateServiceItems","_rebuildMenu","_lastActiveElement","activeElement","lastInstance","blur","clientWidth","_createNestedMenu","_createTieredMenu","_setMenuComponentProperties","item1","item2","TieredMenuModule","ButtonModule","PrimengTieredMenu","CalendarMaskDirective","host","SELECTORS","slotChar","autoClear","firstTime","setListeners","input","inputfieldViewChild","focusListener","onInputFocus","blurListener","onInputBlur","keydownListener","onKeyDown","keypressListener","onKeyPress","inputListener","onInputChange","pasteListener","handleInputChange","ua","androidChrome","test","createMaskFromDateFormat","initMask","_mask","val","checkVal","focusText","updateFilledState","updateModel","event_1","createEvent","initEvent","dispatchEvent","readonlyInput","begin","end","k","which","keyCode","iPhone","oldVal","seekPrev","seekNext","clearBuffer","shiftL","ctrlKey","altKey","metaKey","len","String","fromCharCode","tests","shiftR","buffer","writeBuffer","createCompleteMask","selectionMode","mask","rangeSeparator","allow","lastMatch","getPlaceholder","charAt","partialPosition","join","defaultBuffer","firstNonMaskPos","caretTimeoutId","handleAndroidInput","updatedValue","onUserInput","filled","focus","completeMask","defs","9","maskTokens","lastRequiredNonMaskPos","range","offsetParent","setSelectionRange","selectionStart","selectionEnd","createRange","duplicate","moveStart","collapse","moveEnd","select","j","curVal","isCompleted","sentVal","updateCalendarValue","dateVal","parseValueFromString","isSelectable","getDate","getMonth","getFullYear","updateUI","start","timeOnly","showTime","showSeconds","ngAfterViewChecked","onKeydownEventTest","previousFocusable_1","allFocusableElements","querySelectorAll","nextIsFocusable_1","forceCloseModal_1","shiftKey","focusableElement","activeTagName","tagName","inputId","hide","getElementById","hideOverlay","Calendar","CalendarMaskModule","TemplateDirective","Languages","CardComponent","fullWidth","subtitle","showBanner","_getTemplates","_loadImage","headerTemplate","hasHeaderAttributes","_getHeaderTemplate","_getCustomTemplate","Header","_getBodyTemplate","Body","_getFooterTemplate","Footer","templates","bodyTemplate","footerTemplate","img","Image","src","bannerImage","onload","onerror","TemplateModule","CardModule","ChatComponent","messages","scrollToBottom","messageElements","scrollIntoView","behavior","ViewChildren","read","ChatMessageComponent","fileName","message","attachmentUrl","getFileNameByUrl","ChatModule","TranslateModule","CheckboxComponent","checked","indeterminate","_initializeChildren","childrenState","updateParent","allChecked","every","someChecked","onCheckboxChange","_toggleChildrenCheck","renderType","CheckboxComponent_1","CheckboxModule","Themes","EnumTypeOrder","MetaType","RequestTypes","CompletionTypes","Keywords","CoreLinters","getLinter","language","languageLinterFactory","_LINTERS","Map","CoreFacade","$onCoreFinishLoad","ReplaySubject","$onCodeChange","$onCodeValidityChange","_completionItems","_lastCodeEmitted","changeEditorOptions","validateLanguage","validateTheme","theme","setLinter","setCoreEditorOptions","changeCode","safeCode","getSafeCode","setCode","getOnCoreFinishLoadObservable","asObservable","getOnCodeChangeObservable","getOnCodeValidityChangeObservable","notifyCoreFinishLoad","notifyCodeChange","validateCode","updateCompletionItems","_linter","lint","markers","highlightCode","notifyCodeValidityChange","validity","_lastCodeValidityEmitted","languages","values","themes","CodeEditorComponent","coreFacade","codeChange","isCodeValidChange","onCodeChange","onComponentFinishLoad","_ngUnsubscribe","initCore","setupCoreListeners","setCoreWrapperElement","destroyCore","coreWrapperElement","take","CodeEditorComponent_1","baseConfigs","LRLanguage","define","parser","buildParser","configure","props","styleTags","tags","keyword","string","formatJsonResponse","json","formatBlobResponse","blob","textResponse","MarkerSeverity","CustomHttpClient","GET","init","interceptRequest","method","formatResponse","POST","headers","Headers","append","originalReq","service","getRestUrl","restUrl","getAuthHeader","authHeader","request","Request","fetch","err_1","contentType","formatter","_responseFormatterMap","formattedContentType","ok","CustomTranslationsService","translate","translationKey","_TRANSLATION_PREFIX","_translations","setTranslations","translations","setTranslationsPrefix","hostProjectConfigs","domain","HostProjectConfigsInjectionToken","InjectionToken","AngularComponentsModule","AngularComponentsModule_1","useValue","CustomTranslationsModule","factoryTranslations","TranslateService","Inject","diagnosticSeverityInMarkerSeverityMap","Info","Warning","AutocompleteService","listContextMetadataById","abortSignal","BASE_URL","signal","listExpressionMetadata","listFacadeMetadataNames","getFacadeMetadataByPath","autocompleteLoadingStateHTMLElement","autocompleteEmptyStateHTMLElement","htmlElementToBeWrapped","autocompleteStateWrapper","StateField","getAutocompleteStateWrapper","update","transaction","field","compute","EditorView",".s-code-editor-taxCalculation-autocomplete-ul","padding",".s-code-editor-taxCalculation-autocomplete-li","cursor","line-height","showAutocompleteStateWrapper","CodeMirror6Core","updateEditorView","htmlElementToBeWrappedString","outerHTML","stateWrapper","selection","ranges","head","dom","getAutocompleteStateWrapperDomElement","elementToBeWrappedString","wrapperDiv","createElement","innerHTML","showAutocompleteLoadingState","loadingStateSpanWrapper","innerText","showAutocompleteEmptyState","emptyStateSpanWrapper","TaxCalculationLanguageConfigs","setConfigs","CONFIGS","getConfigs","contexts","getIconBasedOnUnicode","unicode","completionResults","TRANSLATION_PREFIX","getCompletionResults","context","stringBeforeCurrentPosition","isCurrentPositionInsideString","doc","finalCompletionResults","codeLength","token","AbortController","aborted","codeBeforeCursor","trim","getFilter","filterLength","stringWithoutPath","getPath","requests","languageConfigs","getLanguageConfigs","requestType","ListContextMetadataById","ListExpressionMetadata","subcontext","subContexts","pageRequest","offset","splittedPath","GetFacadeMetadataByPath","entityName","fields","ListFacadeMetadataNames","getSafeResponse","getRequestsBasedOnPath","all","responses","filteredCompletions","completions","completionItem","toLowerCase","getFilteredCompletions","SE","SENAO","CONTENHA","ENTAO","FIM_SE","NAO","E","OU","detail","Keyword","getKeywordsCompletions","contextsResponse","contextMetadata","Context","getContextsCompletions","expressionsResponse","expressionMetadata","PUBLIC_EXPRESSION","info","description","Expression","UserExpression","getExpressionsCompletions","facadesResponseFromList","facadeMetadataNames","facade","Entity","facadesResponseFromGet","facadeMetadata","ENTITY","FinalValue","getEntitiesCompletions","sortedCompletions","sort","completionsSortOrder","getSortedCompletions","getCompletionApply","getFormattedCompletions","startCompletion","getEditorView","searchCompletionResults","codeMirrorViewElement","contentDOM","cancelLastCompletionSearch","removeEventListener","abort","addEventListener","startCompletionResultsSearch","oldApplyText","view","completion","to","newFrom","dispatch","insert","anchor","userEvent","annotations","pickedCompletion","TaxCalculation","LanguageSupport","autocompletion","override",".cm-completionIcon","font-family","font-weight",".cm-completionIcon-keyword::after","content",".cm-completionIcon-context::after",".cm-completionIcon-expression::after",".cm-completionIcon-userExpression::after",".cm-completionIcon-entity::after",".cm-completionIcon-finalValue::after","jsonLanguage","JsonString","JsonNumber","JsonBoolean JsonNull","\"{\"","brace","\"}\"","\"[\"","\"]\"","\":\"","operator","\",\"","punctuation","Json","EditorLanguages","getLanguage","languageSupportFactory","_LANGUAGES","SDSLightHighlightStyle","HighlightStyle","generalFontStyle","font-style","font-size","SDSLight","&.cm-editor.cm-focused","outline","baseTheme","&.cm-editor",".cm-scroller","letter-spacing","font-variation-settings",".cm-tooltip.cm-tooltip-autocomplete > ul",".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionLabel",".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail","margin-left","lineNumbers",".cm-gutters","background-color","border-right",".cm-gutter",".cm-tooltip","border","border-radius",".cm-tooltip.cm-tooltip-autocomplete > ul[role='listbox']",".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail::before",".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail::after",".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionIcon","padding-right","margin-right",".cm-tooltip-autocomplete ul li[aria-selected]",".cm-tooltip.cm-completionInfo.cm-completionInfo-right","box-shadow","background",".cm-tooltip.cm-completionInfo.cm-completionInfo-right::before","margin-top","border-color","border-style","border-right-color","border-width","Ordination","EditorThemes","getTheme","EditorThemeFactory","_THEMES","_codeReceivedBeforeViewCreation","_editorOptionsReceivedBeforeViewCreation","_editorView","transactionSpecs","createEditorView","changeEditorContent","setObservablesListeners","effects","StateEffect","reconfigure","getCodeChangeListenerExtension","diagnostics","textLength","marker","convertMarkersToDiagnostics","setDiagnostics","$onCompletionItemsUpdate","parentElement","EditorState","extensions","updateListener","docChanged","CodeEditorModule","useClass","CollapseLinkComponent","buttonId","CollapseLinkComponent_1","expandedLabel","collapsedLabel","collapsed","onCollapse","animating","onToggleDone","opacity","CollapseLinkModule","ControlErrorsComponent","ControlErrorsComponent_1","errorMessages","getErrorMessagesList","control","dirty","errors","ControlErrorsModule","countries","ddi","FieldType","CountryPhonePickerService","getCountries","ordination","AZ","sortAlphabetically","ZA","sortAlphabeticallyDescending","NO","a","aName","bName","localeCompare","Breakpoints","SM_MIN","SM_MAX","MD_MIN","MD_MAX","LG_MIN","LG_MAX","XL_MIN","XL_MAX","Infinity","ExportUtils","addClass","removeClass","exportCSV","columns","csvSeparator","documentName","csv","column","exportable","header","record","cellData","isArray","col","resolveFieldData","flat","separator","Blob","msSaveOrOpenBlob","link","display","download","setAttribute","URL","createObjectURL","click","open","encodeURI","removeChild","isFunction","obj","convertToMomentDateFormat","CountryPhonePickerComponent","_countryPhonePickerService","_translate","_eRef","platformId","currentItemIndex","phone","FormControl","dropTop","dropLeft","_open","offsetTop","focusLost","tabindex","_filterCountries","filteredCountriesList","_countriesList","country","_value","getMask","onSelectItem","setValue","onClickout","contains","valueChanges","selectedItem","_getSelectedCountryDefault","_applyMask","onKeydown","_moveToDown","_moveToUp","_createDropdownPortal","_portalHost","hasAttached","detach","phoneInput","onCleanFilter","onPhoneInputFocus","filteredByBr","selectList","scrollTo","rawMask","tokens","acumulador","contador","mask_1","mask_1_1","parseInt","isPlatformBrowser","dropElement","bodyElement","dropElementRect","DomPortalOutlet","portal","TemplatePortal","dropdownTemplate","viewContainerRef","attach","PLATFORM_ID","CountryPhonePickerComponent_1","CountryPhonePickerModule","NgxMaskModule","PortalModule","BaseFieldComponent","NumberAlignmentOption","FieldSize","sm","md","lg","xl","Field","ignoreLabel","footer","help","required","infoSign","showClear","bottomTemplate","defaultValue","representedBy","CustomFieldClass","CustomFieldComponentClass","displayTimeInfoSign","useInfoSignFocusedInputRef","AutocompleteField","Autocomplete","suggestions","suggestionsObservable","BignumberField","numberLocaleOptions","browserAutocomplete","RIGHT","leftAddon","rightAddon","onComplete","onInput","BlobField","accept","files","chooseLabel","removeLabel","cancelLabel","successTooltip","onUploadFile","onRemoveFile","onCancelUpload","onDownloadFile","showFileUploadDate","true","false","empty","BooleanField","verticalAlignment","optionsLabel","BooleanOptionsLabel","BooleanSwitchField","CalendarField","minDate","maxDate","defaultDate","appendTo","showOnFocus","calendarLocaleOptions","onSelect","onTodayClick","onClearClick","onMonthChange","onYearChange","DateTime","LocalDateTime","Time","CheckboxField","ChipsField","showCopyButton","keyFilter","onAdd","onRemove","onChipClick","onCopy","CountryPhonePickerField","onSelected","onFocusLost","DynamicType","NumberInputDirective","_keyValueDiffers","_onPaste","bind","_onKeypress","decimal","thousands","KeyValueDiffers","NumberInputDirective_1","NumberInputModule","NumberField","DecimalField","CurrencyField","LookupField","Lookup","showSearch","autocompleteForceSelection","showAddOption","showEditOption","showRemoveOption","onUnselect","lookupSuggestions","searchObservable","delay","totalRecords","gridData","searchTotalRecordsLabel","_gridData","_searchTotalRecords","_searchTotalRecordsLabel","PasswordField","inputType","passwordStrength","passwordStrengthOptions","showToggle","RadioButtonField","clearLabel","SelectField","dataKey","optionLabel","autoDisplayFirst","multipleSelectedLabel","emptyMessage","editable","group","SliderField","maxDefault","onSlideEnd","min","orientation","TextAreaField","resize","cols","rows","speechRecognition","keepContext","speechRecognitionPlaceholder","TextAreaIAField","prompt","TextField","characterPattern","unmask","sortableColumnName","ButtonField","iconColor","badge","styleClass","rightIconClass","mouseEnter","mouseLeave","EditorField","formats","modules","ProfilePictureField","simpleTitle","actionTitle","aspectRatio","cropperLabelsConfig","removeButtonLabel","changeButtonLabel","confirmationTexts","maxFileSize","supportedExtensions","onChangeImage","onRemovedImage","onInvalidFile","Enum","Money","Integer","Double","Binary","Password","Text","TextIA","Boolean","Date","Radio","Checkbox","Chips","CountryPhonePicker","Slider","ProfilePicture","Editor","Button","Custom","getOwnPropertySymbols","propertyIsEnumerable","__rest","LookupComponent","hotkeysService","translateService","LookupComponent_1","lookupAppendTo","searchFields","onLookupRequest","onSearchRequest","onKeyUp","onClear","onEdit","dialogVisible","transitionOptions","originalFormValues","searchGridFields","FormField","gridField","getColWidth","calendarOptions","_convertToMomentDateFormat","_convertToMomentHourFormat","formGroup","formGroupDialog","FormGroup","printRecordTotalizer","recordLabel","searchTotalRecords","recordsLabel","autocomplete","onOverlayAnimationDone","searchGridData","loading","_setFocusFilter","getGridData","getLookupSuggestions","makeSearchRequestParams","filters","getRawValue","params","filterData","multiSortMeta","lazyLoadGrid","lazyLoadLookup","query","setDefaultFilters","defaultFilter","patchValue","showDialog","pause","hotkeys","setHotkeys","hideDialog","inputEL","multiInputEL","unpause","pausedHotkeys","search","resetTable","dialog","moveOnTop","reset","table","onSelectionChange","getFieldValue","prop","getBadgeFromValue","opt","getLabelForValue","option","isBooleanValue","getBooleanLabel","emptyFieldLabel","newHotkey","hotkey","combo","fn","Hotkey","filterToggle","getScale","getIntegerMaskConfig","getDoubleMaskConfig","getMoneyMaskConfig","getNumberMaskConfig","onTableRowDoubleClick","rowData","contentViewChild","getElementsByTagName","lookupDisplayField","HotkeysService","Table","Dialog","AutoComplete","encapsulation","ViewEncapsulation","None","animateChild","StructureType","Row","Grid","isFlex","Fieldset","Structure","Section","justifyContent","alignItems","gridClass","GridType","ValidateErrors","FileUploadPermissions","DynamicFormComponent","LongPressDirective","sLongPressDelay","sLongPress","mouseUp","mouseDown","onMouseUp","onMouseDown","debounceTime","repeat","DoubleClickDirective","onDoubleClick","_timeout","_DOUBLE_CLICK_DELAY","handleOnClickEvent","MouseEventsModule","ToastComponent","dismiss","isLeaving","startDismissAnimation","dismissToast","toast","sticky","duration","ToastService","activeToasts","globalToastHostElement","ensureGlobalToastHost","flexDirection","zIndex","gap","show","splice","IAssistService","_toastService","askIA","_replacePlaceholder","_createPrompt","post","provider","parameters","max_tokens","temperature","status","statusText","throwError","log","EmptyStateComponent","EmptyStateComponent_1","showPrimaryAction","showSecondaryAction","primaryModel","primaryAction","secondaryAction","EmptyStateGoBackComponent","goBack","portalUrl","EmptyStateModule","FileUploadService","BASE_URL_FIELD_CUSTOMIZATION","TOKEN","getMetadataCustomField","SVGFactoryIcons","ALL_PERMISSIONS","Add","Read","Remove","FileUploadComponent","sanitizer","fileUploadService","ADD_PERMISSION","READ_PERMISSION","REMOVE_PERMISSION","FileUploadComponent_1","permissions","uploadHandler","removeFile","cancelUpload","downloadFile","validateErrors","_files","ngUsubscribe","inputValue","objectId","getUploadDate","file","isImage","objectURL","bypassSecurityTrustUrl","extension","onFileSelect","newFiles","isFileLimitExceeded","validation","MAX_FILE_LIMIT","clearFileInput","isFileCombinedSizeExceeded","MAX_COMBINED_FILE_SIZE","files_1","files_1_1","isUnsupportedFileExtension","UNSUPPORTED_EXTENSION","isFileSizeExceeded","MAX_FILE_SIZE","fileIndex","onDowloadFile","isSmallDevice","fileLimit","maxCombinedFileSize","combinedSize","inputUpload","blobFile","metadata","setModifiedDate","hour","modified","minutes","day","month","fullYear","modifiedDate","DomSanitizer","FileUploadModule","ProgressBarModule","IAssistIconComponent","SeniorIconComponent","LoadingStateIndicators","SVGFactoryDirective","cdr","_iconClass","_getIconClass","Senior","_createComponent","factory","IAssist","SVGFactoryModule","DotsIndicatorComponent","LoadingIndicatorComponent","PasswordStrengths","PasswordStrengthPositions","LoadingStateComponent","indicator","Dots","LoadingStateComponent_1","BLOCK_TIMEOUT_VALUE","UNBLOCK_TIMEOUT_VALUE","_loading","block","unblock","unblockTimeoutId","blockTimeoutId","blocking","LoadingStateDirective","loaderComponent","contents","LoadingStateModule","LocalizedNumberInputDirective","numberRegex","validate","invalidNumber","LocalizedNumberInputDirective_1","NG_VALIDATORS","LocalizedNumberInputModule","MaskFormatterPipe","*","maskFormat","opcionalPos","symbolsPosAfterOpcional","hasOpcional","tokenRegex","charAtPos","formattedValue","beforeSymbol","symbol","firstAfterSymbol","endOfString","symbolPos","substr","MaskFormatterModule","EnumColumnFieldType","EnumBadgeColors","PasswordStrengthComponent","weakTitle","setPasswordStrengthPosition","updateIndicators","strengthClass","strengthIndicator1","strengthIndicator2","strengthIndicator3","onIndicators","indicators","VeryWeak","Weak","Medium","mediumTitle","Strong","strongTitle","PasswordStrengthDirective","enabled","validateProperties","createPasswordStrength","destroyPasswordStrength","setPasswordStrengthComponentProperties","showPasswordStrength","elementRefHeight","elementRefWidth","positioned","invalidOptions","topShift","rightShift","leftShift","defaultValidator","points","regExpValidations","PasswordStrengthModule","TableHeaderCheckboxComponent","tableService","TableHeaderCheckboxComponent_1","valueSource$","updateCheckedState","selectionSource$","hasFocus","isDisabled","onToggleCheckbox","filteredValue","isAllFilteredValuesChecked","isAllValuesChecked","unselecteds","_selection","useAllObject","newRecord","rowProps","updateSelectionKeys","selectionChange","isStateful","saveState","isSelected","TableService","TableHeaderCheckboxModule","NavigationDirective","isRow","focusFirstColFromCurrentRow","isCol","focusNextSelectableCol","focusLastColFromPrevRow","focusPrevSelectableCol","setPrevRowFocus","setAboveColFocus","setNextRowFocus","setUnderColFocus","prevRow","findPrevSelectableRow","lastElementChild","row","firstCol","firstElementChild","nextCol","nextElementSibling","currentRow","prevCol","previousElementSibling","currentCol","cellIndex","cells","nextRow","findNextSelectableRow","toLocaleLowerCase","RowTogllerDirective","dt","isEnabled","toggleRow","RowToggler","TableFrozenPositionDirective","el","sTableFrozenPosition","isTableVisible","onColumnsChanged","TABLE_SCROLLABLE_WRAPPER_CLASS","setUpTableEvents","handleWindowResize","htmlHead","expandFrozenStyle","synchronizeRowHeight","setUpRowResizeMonitoring","applyStylesForTable","setUpColumnMonitoring","ngAfterContentChecked","tableHeadObservable","disconnect","rowExpandedObserver","tableWrapperObserver","onColResize","handleColResize","onRowExpand","ResizeObserver","applyHeightForExpandedRows","tdsToAdjust","originalsTds","td","originalTd","observe","MutationObserver","tableHead","subtree","childList","tableWraper","mutationObserver","frozenTDsToAdjust","unFrozenTDs","frozenTd","unfrozenHeight","frozenHeight","abs","scrollWrapper","frozenTable","order","borderRight","borderLeft","boxShadow","unfrozenTable","tableBodies","getElementsByClassName","divWrapper","childNodes","_resetRowHeight","_applyMaxRowHeight","tableHeads","tables","lengths","accumulator","trs","tables_1","e_1","tables_1_1","table_1","trs_1","e_2","trs_1_1","tables_2","tables_2_1","e_4","ThumbnailSize","TableColumnsComponent","cellsData","formattedColumns","validateComponentAttributes","previousValue","sortColumnsBySequence","createColumnsTemplate","getCellData","columnValue","uninformed","splittedString_1","isLastIndex","isUninformed","rowValue","getColumnValue","columnsTemplate","getColumnSeparator","getTranslationPrefix","isAttributeValueInvalid","attributeValue","getFormattedColumnValue","unifiedColumnValues","uninformedText","uninformedNumber","attributes","TOKENS","getAttributeValue","attribute","getNumberConfigs","getColumnScale","getDateFormat","numberConfigs","ENUM","enumPrefix","CURRENCY","DATE","BOOLEAN","NUMBER","getTokens","badgeConfigs","badgeConfig","enumValue","getColumnTooltip","getColumnInfoSign","onLinkClick","onColumnClick","compact","isValidTokenArray","isLabelObjectArray","isPrimitiveValuesArray","sequence","TokenListComponent","TokenListComponent_1","removableTokens","hidePointerEvents","tokenSelected","tokenRemoved","onTokenSelected","onTokenRemoved","TokenListModule","TablePagingComponent","enableExportSelectedRecords","totalRecordsText","getTranslatePrefix","getTooltipText","getActions","actions","exportCurrentPage","exportSelectedRecords","loadAllRecords","exportAllRecords","customActions","customMenus","validateComponent","getColumnsToExport","exportColumn","customExport","getCurrentPageRowsToExport","tableData","loadCurrentPageRecords","mapCustomExport","mapNumberFormatOptionsExport","mapColumnsTranslations","getSelectedRowsToExport","loadSelectedRecords","getPropertyValue","setPropertyValue","recursionSetValue","keysList","enumColumns","newRow","fieldName","columnData","translateValue","hasNumberFormatOptionsColumns","hasNumberFormatOptionsRows","columnsWithNumberFormatOptions","columnsWithNumberFormatOptions_1","columnsWithNumberFormatOptions_1_1","attributes_1","attributes_1_1","mappedValue","times","roundingMode","toNumber","keysWithNumberFormatOptions","keysWithNumberFormatOptions_1","keysWithNumberFormatOptions_1_1","customColumns","translatedValue","enumKey","convertToSnakeCase","str","getExportFileName","lang","currentLang","date","exportFileName","toLocaleDateString","toLocaleTimeString","dataToExport","serverData","TableModule","AutocompleteFieldComponent","changeDetectorRef","setInputRef","inputRef","BooleanFieldComponent","formControl","BooleanSwitchFieldComponent","CalendarFieldComponent","ChipsFieldComponent","clipboard","feedbackMessageVisible","copyButtonVisible","onCopyFieldContent","copy","Clipboard","CountryPhonePickerFieldComponent","dispatchFocusInputRef","addEventOnBlur","fromEvent","Event","LookupFieldComponent","RadioButtonComponent","SelectFieldComponent","SliderFieldComponent","isValid","subscribeToFormControlEvents","isValidRange","isInteger","isValidNoRange","startValue","endValue","getRangeLabel","value0","value1","getNonRangeLabel","SpeechRecognitionService","ngZone","toastService","hasSupportSpeechRecognition","isListening","microphoneStatus$","TIMEOUT_NO_MESSAGE","setRecognition","speechSubject","hasMicrophoneAccess","hasAccess","silenceTimer","recognition","continuous","interimResults","maxAlternatives","fullTranscript","onresult","run","stop","interimTranscript","resultIndex","results","transcript","isFinal","onend","SpeechRecognitionConstructor","SpeechRecognition","webkitSpeechRecognition","permission","mediaDevices","getUserMedia","audio","stream","getTracks","catch","onchange","NgZone","TextAreaIAFieldComponent","_iassistService","_formBuilder","_translateService","speechRecognitionService","isVisible","isLoading","_createDialogFields","_createDialogFormGroup","onHideDialog","submitContext","res","FormBuilder","TextAreaFieldComponent","FieldsetComponent","SectionComponent","RowComponent","getErrorMessages","DynamicFieldComponent","BignumberFieldComponent","onScale","CurrencyFieldComponent","PasswordFieldComponent","passwordVisible","onChangeVisible","TextFieldComponent","InputMask","inputViewChild","getCharacterPattern","getUnmask","CheckboxFieldComponent","EditorFieldComponent","NumberFieldComponent","ProfilePictureFieldComponent","ButtonFieldComponent","clickedButton","$event","handleMouseEnter","handleMouseLeave","DynamicForm","DynamicField","resolver","container","getComponent","_switchEmptyStringToNull","setVariablesByType","valueChanges$_1","onDestroy","DynamicStructure","structure","DynamicGrid","DynamicFormDirective","isField","directiveConfig","isStructure","isGrid","FieldLabelComponent","FieldLabelModule","BignumberFieldModule","InputMaskModule","InputTextModule","CheckboxFieldModule","CurrencyFieldModule","EditorFieldModule","EditorModule","NumberFieldModule","PasswordFieldModule","HeaderComponent","FooterComponent","StructureModule","ImageCropperComponent","ImageCropperComponent_1","cropLabel","selectAnotherLabel","emptyStateTitle","emptyStateActionLabel","emptyStateIconClass","NaN","rounded","allowSelectAnother","allowRemove","allowCancel","visibleChange","changeImage","croppedImage","croppedCanvas","removedImage","cancel","imageSource","initCropper","cropper","image","Cropper","guides","dragMode","minCropBoxHeight","minCropBoxWidth","toggleDragModeOnDblclick","getRoundedCanvas","sourceCanvas","canvas","getContext","imageSmoothingEnabled","drawImage","globalCompositeOperation","beginPath","arc","PI","fill","onCropImage","_croppedCanvas","getCroppedCanvas","toDataURL","onRemoveImage","onCancel","onModalVisibleChange","ContentChild","ImageCropperModule","DialogModule","ImageCropperService","activeCropper","configureInstance","param","FileValidation","ThumbnailService","getBinaryFile","getOrientation","XMLHttpRequest","readyState","orientation_1","responseType","send","DataView","getUint16","byteLength","getUint32","little","ThumbnailComponent","thumbnailService","fallback","ThumbnailComponent_1","hasAction","actionIconClass","isTile","isBrand","imgEl","ThumbnailModule","CustomFieldType","ProfilePicturePickerComponent","imageCropperService","confirmationService","changedImage","imageChange","invalidFile","base64","_normalizeSuportedExtensions","onDragOver","onDragLeave","onDrop","dataTransferFiles","dataTransfer","_showImageCropper","uploadPicture","thumbnail","uploadPictureWidth","_getWidthElement","infoWidth","selectPhoto","fileInputElement","fileInput","removePhoto","confirm","removalMessage","acceptLabel","removalAcceptLabel","rejectLabel","removalRejectLabel","removalHeader","rejectButtonStyleClass","photoSelected","srcElement","_validateData","fileReader","FileReader","readAsDataURL","onloadend","fileEvent","source","MaxFileLimit","_validateFileExtension","_validateFileSize","MaxFileSize","UnsupportedExtension","TypeInvalid","ConfirmationService","ProfilePicturePickerComponent_1","ProfilePicturePickerModule","ConfirmDialogModule","ProfilePictureModule","TextFieldModule","KeyFilterModule","TextAreaComponent","_inputStyle","readOnly","renderTextArea","_textAreaElement","handleRecognizedText","recognizedText","TextAreaComponent_1","TextToSpeechService","utterance","SpeechSynthesisUtterance","voices","setVoices","_voices","speechSynthesis","getVoices","onvoiceschanged","setActiveVoice","updateVoice","voiceUri","activeVoice","voice","voiceURI","speak","speed","rate","resume","_voice","SpeechRecognitionComponent","textToSpeechService","_recognizedText","originalTextAreaElementText","isDoneTextToSpeech","onDestroy$","VOICE_SPEEDS","keydownEventListener","isListeningUserVoice","voiceSpeed","isDisabledMicrophone","canRenderMicrophone","canRenderTextToSpeech","canRenderListeningText","canRenderDiscard","canRenderAprove","canRenderTextToSpeechToolbar","isPlayingTextToSpeech","hasSpeechRecognitionBrowserApi","textAreaElement","onCloseToolbar","onListen","setTextAreaValue","scrollTextAreaBottom","scrollHeight","onOpenToolbar","isDisabledTextToSpeech","SpeechRecognitionComponent_1","TOOLBAR_ACTIVE","stopTextToSpeech","onDiscard","onAprove","breakLine","toggleTextToSpeech","restartTextToSpeech","updateVoiceSpeed","voiceSpeedIndex","nextVoiceSpeedIndex","stopListening","hasTextToSpeechVoice","hasVoice","textToSpeech","SpeechRecognitionModule","TextAreaModule","legend","toggleable","destroyOnHide","beforeToggle","afterToggle","active","toggleActive","originalEvent","AccessibilityEventDirective","sActivatedContent","EVENT_LISTENER","KeyboardEvent","setTabIndex","checkAccessbilityEvents","tabIndex","AccessibilityEventsModule","FieldsetModule","BrowserAnimationsModule","DynamicFormModule","AutoCompleteModule","CalendarModule","ChipsModule","DropdownModule","HotkeyModule","InputTextareaModule","PanelModule","PrimeButtonModule","PrimeNGTableModule","MultiSelectModule","RadioButtonModule","SliderModule","CustomFieldsService","getCustomFields","entity","endpoint","entityDto","entityId","domain_","service_","getFileLocationUrl","dto","uploadTempFile","location","put","reportProgress","Content-Type","requestAccess","getFile","permanentUrl","CustomFieldsComponent","customFieldsService","controlContainer","invalidErrorLabel","customFieldsEndpoint","fileLocationEndpoint","requestAccessEndpoint","ready","parentForm","_validateInputs","_createForm","addDisplayTimeInfoSignToFields","enableOrDisableFields","disableFields","parseFieldsValues","parseValuesForFields","createFilesIfSetFormValuesAfterInit","entityObject","entity_","controls","controlErrors","cleanFields","controlName","observables","forkJoin","finalize","markAsPristine","parentControl","ready$","customFieldsResponse","defaults","defaultMask","Any","customizable","customization","formField","getFormField","fieldType","createBlobToFileUpload","validationRegex","asIsTypes","validators","Validators","pattern","addControl","createFieldCustomization","parsedValues","isString","notValid","toDate","hasUploaded","isTypeNumberOrEnum","hasBlob","getBlobParameters","getBooleanParameters","getEnumParameters","mandatory","currencyOptions","customEnumeration","getTranslateLabel","formfield","uploadFile","FormArray","toDelete","toInsert","lastIndexOf","savedFile","currentFile","uri","newFile","File","progress","isUploading","this_1","setValidators","updateValueAndValidity","defaltCatchError","version","uploadCanceled","HttpEventType","Response","UploadProgress","loaded","total","clearValidators","uploadError","ControlContainer","Optional","CustomFieldsComponent_1","ViewMode","CustomFieldsModule","HttpClientModule","EditableOverlayDirective","bindDocumentEditListener","bindDocument","isFromOverlayTrigger","isFromModal","documentEditListener","editingCell","editingCellClick","isEditingCellValid","unbindDocumentEditListener","EditableOverlayModule","DateUtils","with_time","formatString","monthName","startOf","monthNameCapitalized","dateToFormat","format_map","YYYY","MM","DD","ddd","HH","mm","ss","SSS","D","MMMM","MMM","formattedValues","diff","fistDate","secondDate","milliseconds","seconds","hours","days","months","years","endsWith","floor","dateStr","now","quantity","scores","shouldReset","_scale","max_score","vals","getHours","getMinutes","getSeconds","getMilliseconds","clone","getDateValues","getDaysInMonth","daysInMonth","$","expr","con","createSVG","attrs","elem","createElementNS","attr","append_to","getAnimationElement","svgElement","dur","animEl","attributeName","animateElement","calcMode","keyTimes","keySplines","cubic_bezier","ease","linear","ease-in","ease-out","ease-in-out","on","delegate","off","handler","delegatedTarget","matches","getAttribute","Bar","gantt","task","_isPopUpOpen","_setDefaults","_prepare","_draw","_bind","_arrows","arrows","_task","_element","_group","updateBarPosition","bar","dependencies","dep","_gantt","get_bar","getX","prev","curr","_updateAttr","columnWidth","_updateLabelPosition","_updateArrowPosition","dateChanged","changed","_computeStartEndDate","newStartDate","newEndDate","trigger_event","setActionCompleted","_actionCompleted","_prepareValues","_prepareHelpers","_invalid","invalid","_height","barHeight","_x","_computeX","_y","_computeY","_cornerRadius","barCornerRadius","_duration","_width","class","custom_class","data-id","_barGroup","SVGElement","getY","getWidth","getHeight","getEndX","_drawBar","_drawLabel","rx","ry","animatedSvgElement","animateSVG","showTaskName","requestAnimationFrame","_setupClickEvent","hasPopup","popupTrigger","_showPopup","unselect_all","hide_popup","bar_being_dragged","showOnlyHours","startDate","endDate","showOnlyDays","startHour","endHour","show_popup","target_element","xInUnits","width_in_units","view_is","QuarterHour","Hour","QuarterDay","HalfDay","Day","headerHeight","_index","getBBox","Popup","customHtml","make","positionMeta","html","pointer","HTMLElement","offsetWidth","Arrow","fromTask","toTask","_fromTask","_toTask","calculatePath","draw","_path","startX","startY","endX","endY","fromIsBelowTo","curve","arrowCurve","clockwise","curveY","down1","down2","data-from","data-to","defaultOptions","viewMode","customPopupHtml","allowMovement","Gantt","wrapper","tasks","setup_options","setup_wrapper","setup_tasks","change_view_mode","bind_events","_minDate","_maxDate","svg_element","wrapper_element","$svg","$container","containerWidth","popup_wrapper","_start","_end","_row_id","deps","generate_id","setup_dependencies","dependency_map","refresh","mode","setup_gantt_dates","update_view_scale","setup_dates","render","view_mode","Week","Month","Year","setup_date_values","_t","_u","marginBeforeStart","marginAfterEnd","_o","_p","_q","_r","_s","dates","cur_date","bind_grid_click","bind_bar_events","setup_layers","make_grid","make_dates","make_bars","make_arrows","map_arrows_on_bars","set_width","set_scroll_position","layers","layers_1","layers_1_1","layer","make_grid_background","make_grid_rows","make_grid_header","make_grid_highlights","make_grid_ticks","grid_width","distinct_rows","Set","grid_height","grid","rows_layer","lines_layer","row_width","row_height","row_y","x1","y1","x2","y2","header_width","header_height","tick_x","tick_y","tick_height","tick_class","isToday","isWeekend","getDay","get_dates_to_draw","lower_x","lower_y","lower_text","middle_text","middle_x","middle_y","upper_text","$upper_text","upper_x","upper_y","last_date","get_date_info","date_text","quarterHourUpper","quarterHourLower","hourUpper","hourLower","quarterDayUpper","quarterDayLower","halfDayUpper","halfDayLower","dayUpper","dayMiddle","dayLower","weekUpper","weekLower","monthUpper","monthLower","yearUpper","yearLower","base_pos","x_pos","quarterHourMiddle","hourMiddle","quarterDayMiddle","halfDayMiddle","weekMiddle","monthMiddle","yearMiddle","bars","task_id","dependency","get_task","arrow","this_2","cur_width","actual_width","parent_element","scroll_pos","get_oldest_starting_date","is_dragging","x_on_start","is_resizing_left","is_resizing_right","parent_bar_id","bar_wrapper","offsetX","ids","get_all_dependent_tasks","$bar","ox","oy","owidth","finaldx","dx","get_snap_position","out","to_process","acc","rem","odx","modes","popup","prev_date","GlobalSearchSizeEnum","GanttComponent","multipleTaskPerLine","showSideTable","taskClicked","taskDateChanged","viewChanged","_validateViewMode","_validateTasks","outer","side","_filterTask","onDateChange","onViewChange","tasksGroups","i_1","SideTableComponent","ROW_HEIGHT","_removeEmptyTasks","GanttModule","IAInsightTemplateTypes","GlobalSearchDropdownItemComponent","GlobalSearchDropdownItemComponent_1","STANDARD","buttonClick","isStandardSize","isMediumSize","MEDIUM","isSmallSize","SMALL","getImageSize","GlobalSearchComponent","showFooter","onSearch","onShowMore","wasSearched","isModalLoading","expanded","canShowGlobalSearchActive","focusIn","focusOut","showMore","removeActiveClassByGlobalSearch","globalSearch","dropdownItens","InfiniteScrollDirective","onScroll","scroll","offsetHeight","InfiniteScrollModule","GlobalSearchModule","IAInsightCardComponent","likeSelected","dislikeSelected","_requestInsight","onLikeSelected","insight","onDislikeSelected","copyContent","reloadContent","request$","marked","IAInsightSidebarComponent","insights","opened","IAInsightCardLoaderComponent","KanbanTemplateTypes","IAInsightComponent","hasPermission","sidebar","getIntroTemplate","Intro","getNoPermissionTemplate","NoPermission","getEmptyTemplate","Empty","introTemplate","emptyTemplate","noPermissionTemplate","IAInsightModule","GridMenuComponent","itemsArray","GridMenuItemComponent","action","initialLetter","words","GridMenuModule","InlineEditCalendarField","InlineEditField","InlineEditLookupField","InlineEditNumberField","InlineEditTextAreaField","InlineEditTextField","InlineEditTextAreaIAField","InlineEditItemComponent","isEditing","_getCalendarLocaleOptions","onSave","dynamicComponentRef","saveValue","markAsDirty","onlySelf","setDynamicComponentRef","ref","getFormattedValue","getValueAsText","lookupField_1","_locale","InlineEditCalendarComponent","_getLocaleOptions","tempValue","InlineEditLookupComponent","InlineEditNumberComponent","_onLocaleService","InlineEditTextAreaComponent","InlineEditTextComponent","InlineEditTextAreaIAComponent","InlineEditComponent","_componentMap","_createFields","componentClass","inlineEditItemFactory","inlineEditItemRef","inlineEditItemInstance","TextAreaIAComponent","_isDisabled","onValueChange","TextAreaIAComponent_1","TextAreaIAModule","InlineEditModule","KanbanEventService","selectAllColumnItemsEvent","unselectAllColumnItemsEvent","unselectItemEvent","emitSelectAllColumnItemsEvent","emitUnselectAllColumnItemsEvent","emitSelectItemEvent","emitUnselectItemEvent","EnumSeverity","KanbanComponent","kanbanEventService","showItemCheckboxes","showColumnCheckboxes","itemsMoved","dataUpdated","itemsSelected","selectedItems","draggingItems","_normalizeData","drop","previousColumn","previousContainer","targetColumn","moveItemInArray","previousIndex","transferArrayItem","observers","selectItem","frozen","delete","selectedColumn","dragStarted","dragReleased","getLinkedColumns","currentColumn","getColumnHeaderTemplate","ColumnHeader","getColumnEmptyMessageTemplate","ColumnEmptyMessage","getItemHeaderTemplate","ItemHeader","getItemBodyTemplate","ItemBody","getItemFooterTemplate","ItemFooter","columnIds","columnHeaderTemplate","columnEmptyMessageTemplate","itemHeaderTemplate","itemBodyTemplate","itemFooterTemplate","KanbanColumnComponent","showCheckbox","selectionControl","_subscriveEvents","_createTieredOptions","KanbanItemDraggingComponent","quantityItems","KanbanItemComponent","_kanbanEventService","onSelectedChange","KanbanModule","DragDropModule","NavigationButtonComponent","changeOnInit","stepChanged","tieredMenuItems","_createTieredMenuItems","previous","steps","_setDefaultValue","findIndex","onNext","onPrevious","NavigationButtonComponent_1","NavigationButtonModule","ProgressBarColors","ProgressBarMode","ObjectCardFieldComponent","ObjectCardFieldComponent_1","ObjectCardMainComponent","ObjectCardMainComponent_1","hasThumbnail","hasDescription","_thumbnailSize","thumbnailComponent","thumbnailSize","Small","ObjectCardComponent","ObjectCardComponent_1","expandTooltip","collapseTooltip","fieldsMinWidth","expandedChange","maxVisibleFields","maxFieldQtd","mainFieldWidth","fieldElementList","fieldElementList_1","fieldElementList_1_1","expand","getExpandedFieldWidth","descendants","BorderButtonComponent","BorderButtonModule","ObjectCardModule","PanelComponent","collapsedChange","toggleCollapsed","getHeaderTemplate","getBodyTemplate","getFooterTemplate","ProductHeaderComponent","ProductHeaderComponent_1","isHeaderFrame","borderBottom","borderTop","ProductHeaderModule","ProgressBarComponent","showValue","Determinate","validateInputs","targetValue","Indeterminate","targetLabel","ProgressBarDeterminateComponent","validateValues","onGetLocale","ProgressBarIndeterminateComponent","RatingScaleComponent","rating","RatingScaleComponent_1","RatingScaleModule","SelectButtonComponent","itemSelected","itemClicked","activeItems","iItem","onItemSelect","_compare","keysA","keysB","keysA_1","keysA_1_1","SelectButtonComponent_1","SelectButtonItemComponent","SelectButtonModule","CheckDisabled","disabledField","_target","_propertyKey","descriptor","originalMethod","SplitButtonType","SidebarComponent","focusTrapFactory","SidebarComponent_1","largeSized","onShow","innerSidebar","containerViewChild","focusInitialElementWhenReady","onHide","FocusTrapFactory","Sidebar","SidebarModule","A11yModule","PrimeSidebar","ScrollPanelModule","SlidePanelService","modalCloseMap","createSlidePanel","panelSubject","getModalCloseObservable","closeModal","subject","SlidePanelComponent","slidePanelService","SlidePanelComponent_1","openIcon","closeIcon","createOpen","noOverlap","isSlideOver","slideHeight","_checkOverBehavior","_calculateSlideHeight","onClickButton","_sideContentRef","clientHeight","SlidePanelModule","SliderComponent","MAX_RANGE_VALUE","MIN_RANGE_VALUE","valueChange","hiddenThumb","movingProgressBar","progressLeft","progressWidth","draggingThumb","progressBarEventPositionStart","startValueBeforeProgressBarEvent","rangeBetweenElementsBeforeProgressBarEvent","totalRangeBeforeProgressBarEvent","mapRangeValuesForSlider","activeMouseDown","focusActive","onThumbMove","newPosition","getPercentageByEvent","positionInUserRange","getValueFromMapByValue","needParseValues","isAtSameValue","newValueIsValidByStep","setProgress","handleProgressBarMove","newCenter","startPositionBeforeEvent","startValueBeforeEvent","calculateNewRange","newStart","newEnd","startValueBeforeEventUserRange","startPositionBeforeEventUserRange","centerUserRange","valueRange","newStart_1","newEnd_1","handleProgressBarMoveEnd","setUserRangeMapValues","hasChangesOnMin","firstChange","hasChangesOnMax","setRangeValues","isArrowKeyLeft","isArrowKeyRight","handleArrowKeyLeft","handleArrowKeyRight","onTrackClick","evt","trackClickPercentage","trackClickToUserRange","_trackClickValid","_setEndValue","_endValueUserValue","_endValue","validStart_1","validEnd_1","_updateStart","_startValueUserValue","_startValue","_setStartValue","_updateEnd","clickPercentageBetweenRange","isInRange","middle","setEnd","onProgressMouseDown","thumb","_setStartAndEndValue","getClosestValueFromMapSlider","difference","getDifference","endValueIsGreatherThanMax","startValueIsLessThanMin","needUpdateValues","valueGreatherThanMax","valueLessThanMin","needUpdateValue","mouseEvent","trackRect","track","newLeft","stepCount","mappedValues","mapped","parseFloat","errorPerStep","sliderValue","mapToArray","exactValue","userValue","closestValue","isFirstItem","isLastItem","getMidpoint","_incrementOrDecrementStartAndEndValue","_incrementOrDecrementEndValue","increment","startLessThanMin","endGreaterThanMax","_newEndValue","SliderComponent_1","oldStart","oldEnd","clickedPosition","finalPosition","rangeStart","rangeEnd","StepState","SplitButtonComponent","eRef","buttonClicked","closeDropdown","onButtonClick","onDropdownClick","onOptionClick","SplitButtonModule","StatsCardComponent","StatsCardComponent_1","alwaysWithBorder","lightVersion","lightMode","animateNumbers","clickable","ANIMATION_DURATION_MS","STEP_DURATION_MS","updateDisplayValue","displayValue","animationDuration","stepDuration","animationCount","dividedBy","previousRawValue","incrementValue","minus","absoluteValue","incremental","isLessThan","clearInterval","intervalId","replaceNumericPositions","counter","setInterval","plus","isGreaterThan","formattedNewValue","padStart","newValueIndex","char","StatsCardModule","TimelineItemSeverity","TimelineItemSize","StepsComponent","StepsComponent_1","stepSelected","stepClick","barAnimation","afterBarAnimation","hidden","aria-orientation","role","tab-index","background-position","StepsModule","ThumbnailsComponent","combineCheckboxEvent","itemOpened","onItemOpened","onItemSelected","_item","ThumbnailItemComponent","isCheckable","isChecked","_validateItemData","_createFormGroup","itemData","checkboxClick","checkboxFormGroup","checkbox","ThumbnailItemVideoComponent","videoPlayer","play","currentTime","ThumbnailItemImageComponent","ThumbnailsModule","TileComponent","TileComponent_1","useThumbnail","TileModule","TimelineComponent","highlightActiveItem","direction","collapsable","counterLabel","_items","checkDuplicateIds","_innerWidth","changeToVertical","TimelineIconItemComponent","TimelineItemModule","HorizontalTimelineComponent","HorizontalTimelineModule","VerticalTimelineComponent","isG1Collapsed","isG2Collapsed","_activeIndex","groupItems","onChangeG1","onChangeG2","firstItem","g1Items","activeItem","g2Items","lastItem","RangeLineComponent","CollapseOptionComponent","isCollapsed","change","CollapsedItemsComponent","isCollapsedChange","VerticalItemsComponent","VerticalTimelineModule","TimelineModule","PicklistTemplateTypes","TimelineItem","Normal","checkItemIconContent","testSize","valueOf","testSeverity","WorkspaceSwitchComponent","footerButtonLabel","showFooterButton","footerButtonClicked","selectedItemIndex","_calculateListMaxHeight","workspaces","_scrollToCurrentItem","validations","buttonOnBlur","workspace","onFooterButtonClick","listItems","WorkspaceSwitchModule","LabelValueComponent","isBadgeConfiguration","isTextConfiguration","isCurrencyConfiguration","isNumberConfiguration","isDateConfiguration","LabelValueModule","PicklistComponent","itensToSelect","selectedItens","filterBy","selectedItensChange","itensToSelectChange","availableItensFilter","selectedItensFilter","itensToSelectFilterUtil","rawItensToSelect","filteredItensToSelect","selectedItensFilterUtil","rawSelectedItens","filteredSelectedItens","selectedItensMap","itensToSelectId","randomHash","selectedItensId","itemToSelectTemplate","ItemToSelect","itemSelectedTemplate","SelectedItem","toggleSelected","internalPicklistItem","containerListId","unselectedItensByListId","getOppositiveId","itens","filterEnabled","itemRemove","filterSelectedItens","filterItensToSelect","emitData","searchTerm","compareStrings","onDragStart","dragListId","invisible","onDragRelease","checkAllAvailableItensChange","_checkAllSelectedItensChange","checkAllSelectedItensChange","_checkAllSelectedByList","list","_listItens","listId","getAllElementsByListId","parseValueEmit","normalizeString","normalize","mainString","mapData","PicklistModule","ChipsComponent","newItem","ChipsComponent_1","_id","allowDuplicated","caseSensitiveDuplication","addOnTab","addOnBlur","autofocus","infoLabel","maxLengthRenderWithoutTooltip","isTabEventActive","chipTemplate","isEnter","isSeparator","eventKeyIsTab","isTab","addItem","onInputLostFocus","removeItem","itemIndex","_removedItem","chipClicked","hasField","_mappedValues","valueToAdd","duplicatedItem","hasDuplicatedItem","storeValue","ChipItemComponent","clickRemove","clickedRemove","onChipClicked","dataRender","_text","_rawText","objectField","HelpPopoverComponent","VALID_POSITIONS","VALID_ARROW_POSITIONS","popoverContent","closeButton","button","arrowElement","_arrowPosition","closed","_hasHeader","hasHeaderText","hasCloseButton","_hasFooterText","hasFooterText","hasButtonText","clickButton","HelpPopoverDirective","MUTATION_OBSERVER_CONFIG","OBSERVER_CALLBACK","applyPositionIntoElement","RESIZE_OBSERVER","onResize$","sHelpPopover","popoverIcon","popoverHeader","popoverFooter","popoverButtonText","popoverArrowPosition","_popoverPosition","mutationObserverPopoverElement","mutationObserverPopoverContent","internalPosition","manualTrigger","listener","totalElementArea","popoverElementObserver","doClick","arrowPosition","popoverPosition","popoverElementPosition","popoverComponentInstance","applyPopoverPositionBottom","applyPopoverPositionTop","applyPopoverPositionLeft","applyPopoverPositionRight","popoverElement","getPopoverElement","leftPopover","getHorizontalLeft","popoverHeight","popoverWidth","getVerticalTop","_horizontalLeft","arrowElementPosition","popoverContentPosition","arrowMiddle","distanceArrowFromStart","distanceArrowFromEnd","getLeftoverContentAvailableForPopover","popoverElementWidth","popoverElementHeight","remainingSpaceBottom","remainingSpaceTop","freePositions","freeDistance","exportAs","HelpPopoverModule","ToastModule","platform.angular_components.attachment","platform.angular_components.watch","platform.angular_components.view","platform.angular_components.listen","platform.angular_components.drag_your_photo_or","platform.angular_components.select_a_file","platform.angular_components.change_photo","platform.angular_components.remove_image","platform.angular_components.confirmation_remove_image","platform.angular_components.strong","platform.angular_components.medium","platform.angular_components.weak","platform.angular_components.invalid_value","platform.angular_components.insight_intro","platform.angular_components.insight_empty","platform.angular_components.error_loading_insight_alt","platform.angular_components.loading_insight","platform.angular_components.insight_no_permission","platform.angular_components.count_items_in_target","platform.angular_components.count_items_selected","platform.angular_components.january","platform.angular_components.february","platform.angular_components.march","platform.angular_components.april","platform.angular_components.may","platform.angular_components.june","platform.angular_components.july","platform.angular_components.august","platform.angular_components.september","platform.angular_components.october","platform.angular_components.november","platform.angular_components.december","platform.angular_components.january_short","platform.angular_components.february_short","platform.angular_components.march_short","platform.angular_components.april_short","platform.angular_components.may_short","platform.angular_components.june_short","platform.angular_components.july_short","platform.angular_components.august_short","platform.angular_components.september_short","platform.angular_components.october_short","platform.angular_components.november_short","platform.angular_components.december_short","platform.angular_components.sunday","platform.angular_components.monday","platform.angular_components.tuesday","platform.angular_components.wednesday","platform.angular_components.thursday","platform.angular_components.friday","platform.angular_components.saturday","platform.angular_components.sunday_short","platform.angular_components.monday_short","platform.angular_components.tuesday_short","platform.angular_components.wednesday_short","platform.angular_components.thursday_short","platform.angular_components.friday_short","platform.angular_components.saturday_short","platform.angular_components.sunday_min","platform.angular_components.monday_min","platform.angular_components.tuesday_min","platform.angular_components.wednesday_min","platform.angular_components.thursday_min","platform.angular_components.friday_min","platform.angular_components.saturday_min","platform.angular_components.today","platform.angular_components.hour_format","platform.angular_components.date_format","platform.angular_components.ia_text_generator","platform.angular_components.attach_files","platform.angular_components.add_information","platform.angular_components.add","platform.angular_components.edit","platform.angular_components.remove","platform.angular_components.save","platform.angular_components.file_attached_successfully","platform.angular_components.loading_file","platform.angular_components.iassist_text_generator","platform.angular_components.copied_to_clipboard","platform.angular_components.copy_field_content","platform.angular_components.generate_text","platform.angular_components.context","platform.angular_components.filters","platform.angular_components.filter","platform.angular_components.clear","platform.angular_components.cancel","platform.angular_components.select","platform.angular_components.not_informed","platform.angular_components.advanced_search","platform.angular_components.no_records_found","platform.angular_components.total_record","platform.angular_components.total_records","platform.angular_components.total_records_selected","platform.angular_components.country_name_br","platform.angular_components.country_name_us","platform.angular_components.country_name_co","platform.angular_components.country_name_ar","platform.angular_components.country_name_cl","platform.angular_components.country_name_py","platform.angular_components.country_name_uy","platform.angular_components.country_name_cn","platform.angular_components.country_name_ca","platform.angular_components.country_name_as","platform.angular_components.country_name_ai","platform.angular_components.country_name_ag","platform.angular_components.country_name_bs","platform.angular_components.country_name_bb","platform.angular_components.country_name_bm","platform.angular_components.country_name_vg","platform.angular_components.country_name_ky","platform.angular_components.country_name_dm","platform.angular_components.country_name_do","platform.angular_components.country_name_gd","platform.angular_components.country_name_gu","platform.angular_components.country_name_jm","platform.angular_components.country_name_ms","platform.angular_components.country_name_mp","platform.angular_components.country_name_pr","platform.angular_components.country_name_kn","platform.angular_components.country_name_lc","platform.angular_components.country_name_vc","platform.angular_components.country_name_tt","platform.angular_components.country_name_tc","platform.angular_components.country_name_fi","platform.angular_components.country_name_rs","platform.angular_components.country_name_zm","platform.angular_components.country_name_af","platform.angular_components.country_name_al","platform.angular_components.country_name_hr","platform.angular_components.country_name_ec","platform.angular_components.country_name_et","platform.angular_components.country_name_gh","platform.angular_components.country_name_gr","platform.angular_components.country_name_ie","platform.angular_components.country_name_it","platform.angular_components.country_name_lr","platform.angular_components.country_name_na","platform.angular_components.country_name_nz","platform.angular_components.country_name_sa","platform.angular_components.country_name_za","platform.angular_components.country_name_lk","platform.angular_components.country_name_sd","platform.angular_components.country_name_th","platform.angular_components.country_name_ua","platform.angular_components.country_name_ae","platform.angular_components.country_name_va","platform.angular_components.country_name_zw","platform.angular_components.country_name_dz","platform.angular_components.country_name_be","platform.angular_components.country_name_yt","platform.angular_components.country_name_bl","platform.angular_components.country_name_mf","platform.angular_components.country_name_ad","platform.angular_components.country_name_ao","platform.angular_components.country_name_ba","platform.angular_components.country_name_bg","platform.angular_components.country_name_kh","platform.angular_components.country_name_cz","platform.angular_components.country_name_gq","platform.angular_components.country_name_gw","platform.angular_components.country_name_li","platform.angular_components.country_name_lu","platform.angular_components.country_name_mk","platform.angular_components.country_name_me","platform.angular_components.country_name_pe","platform.angular_components.country_name_pl","platform.angular_components.country_name_pt","platform.angular_components.country_name_si","platform.angular_components.country_name_am","platform.angular_components.country_name_aw","platform.angular_components.country_name_bn","platform.angular_components.country_name_fj","platform.angular_components.country_name_gm","platform.angular_components.country_name_gy","platform.angular_components.country_name_is","platform.angular_components.country_name_fm","platform.angular_components.country_name_nr","platform.angular_components.country_name_nu","platform.angular_components.country_name_pw","platform.angular_components.country_name_st","platform.angular_components.country_name_to","platform.angular_components.country_name_vu","platform.angular_components.country_name_fk","platform.angular_components.country_name_fo","platform.angular_components.country_name_sh","platform.angular_components.country_name_au","platform.angular_components.country_name_cx","platform.angular_components.country_name_cc","platform.angular_components.country_name_cd","platform.angular_components.country_name_kg","platform.angular_components.country_name_ro","platform.angular_components.country_name_rw","platform.angular_components.country_name_sk","platform.angular_components.country_name_sy","platform.angular_components.country_name_tw","platform.angular_components.country_name_tz","platform.angular_components.country_name_ye","platform.angular_components.country_name_at","platform.angular_components.country_name_ke","platform.angular_components.country_name_ug","platform.angular_components.country_name_az","platform.angular_components.country_name_ch","platform.angular_components.country_name_vn","platform.angular_components.country_name_bh","platform.angular_components.country_name_cr","platform.angular_components.country_name_sv","platform.angular_components.country_name_ee","platform.angular_components.country_name_sz","platform.angular_components.country_name_gt","platform.angular_components.country_name_hk","platform.angular_components.country_name_ls","platform.angular_components.country_name_mo","platform.angular_components.country_name_mt","platform.angular_components.country_name_mu","platform.angular_components.country_name_mn","platform.angular_components.country_name_ni","platform.angular_components.country_name_om","platform.angular_components.country_name_pg","platform.angular_components.country_name_qa","platform.angular_components.country_name_sg","platform.angular_components.country_name_tl","platform.angular_components.country_name_bd","platform.angular_components.country_name_im","platform.angular_components.country_name_by","platform.angular_components.country_name_bz","platform.angular_components.country_name_mv","platform.angular_components.country_name_mh","platform.angular_components.country_name_sr","platform.angular_components.country_name_bj","platform.angular_components.country_name_bt","platform.angular_components.country_name_bf","platform.angular_components.country_name_bi","platform.angular_components.country_name_cf","platform.angular_components.country_name_td","platform.angular_components.country_name_ci","platform.angular_components.country_name_dk","platform.angular_components.country_name_dj","platform.angular_components.country_name_fr","platform.angular_components.country_name_pf","platform.angular_components.country_name_ga","platform.angular_components.country_name_ml","platform.angular_components.country_name_mr","platform.angular_components.country_name_ne","platform.angular_components.country_name_sm","platform.angular_components.country_name_tg","platform.angular_components.country_name_bo","platform.angular_components.country_name_gi","platform.angular_components.country_name_ki","platform.angular_components.country_name_tv","platform.angular_components.country_name_bw","platform.angular_components.country_name_er","platform.angular_components.country_name_lv","platform.angular_components.country_name_lb","platform.angular_components.country_name_tn","platform.angular_components.country_name_cm","platform.angular_components.country_name_cv","platform.angular_components.country_name_km","platform.angular_components.country_name_pm","platform.angular_components.country_name_cg","platform.angular_components.country_name_mz","platform.angular_components.country_name_mm","platform.angular_components.country_name_ck","platform.angular_components.country_name_cu","platform.angular_components.country_name_cy","platform.angular_components.country_name_eg","platform.angular_components.country_name_ir","platform.angular_components.country_name_iq","platform.angular_components.country_name_ng","platform.angular_components.country_name_kp","platform.angular_components.country_name_ph","platform.angular_components.country_name_ge","platform.angular_components.country_name_gn","platform.angular_components.country_name_es","platform.angular_components.country_name_de","platform.angular_components.country_name_gl","platform.angular_components.country_name_wf","platform.angular_components.country_name_ht","platform.angular_components.country_name_hn","platform.angular_components.country_name_pa","platform.angular_components.country_name_hu","platform.angular_components.country_name_in","platform.angular_components.country_name_id","platform.angular_components.country_name_il","platform.angular_components.country_name_jp","platform.angular_components.country_name_jo","platform.angular_components.country_name_kz","platform.angular_components.country_name_kw","platform.angular_components.country_name_la","platform.angular_components.country_name_ly","platform.angular_components.country_name_lt","platform.angular_components.country_name_np","platform.angular_components.country_name_mg","platform.angular_components.country_name_mw","platform.angular_components.country_name_my","platform.angular_components.country_name_mx","platform.angular_components.country_name_md","platform.angular_components.country_name_mc","platform.angular_components.country_name_ma","platform.angular_components.country_name_nl","platform.angular_components.country_name_nc","platform.angular_components.country_name_no","platform.angular_components.country_name_pk","platform.angular_components.country_name_ru","platform.angular_components.country_name_ws","platform.angular_components.country_name_sb","platform.angular_components.country_name_sn","platform.angular_components.country_name_sc","platform.angular_components.country_name_sl","platform.angular_components.country_name_so","platform.angular_components.country_name_kr","platform.angular_components.country_name_se","platform.angular_components.country_name_tj","platform.angular_components.country_name_tk","platform.angular_components.country_name_tr","platform.angular_components.country_name_tm","platform.angular_components.country_name_uz","platform.angular_components.country_name_ve","platform.angular_components.date_modified_custom_blob","platform.angular_components.available-items","platform.angular_components.selected-items","platform.angular_components.picklist-placeholder","platform.angular_components.add_all","platform.angular_components.remove_all","platform.angular_components.country_name_gb","platform.angular_components.insight_footer","platform.angular_components.text_area_speech_recognition_placeholder","platform.angular_components.text_area_before_speech","platform.angular_components.text_area_while_speech","platform.angular_components.text_area_end_speech","platform.angular_components.no_microphone_permission","array","disabledFn"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","export enum TooltipPosition {\n Top = \"top\",\n Bottom = \"bottom\",\n Left = \"left\",\n Right = \"right\",\n}\n","import { AfterViewInit, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from \"@angular/core\";\nimport { trigger, style, animate, transition, state } from \"@angular/animations\";\n\nimport { AccordionButtonSettings } from \"../../models/accordion-button-settings\";\nimport { AccordionSwitchSettings } from \"../../models/accordion-switch-settings\";\nimport { FormControl } from \"@angular/forms\";\n\n@Component({\n selector: \"s-accordion-panel\",\n templateUrl: \"./accordion-panel.component.html\",\n styleUrls: [\"./accordion-panel.component.scss\"],\n animations: [\n trigger(\"cachelessAnimation\", [\n transition(\":enter\", [style({ height: \"0\" }), animate(\"200ms linear\", style({ height: \"*\" }))]),\n transition(\":leave\", [style({ height: \"*\" }), animate(\"200ms linear\", style({ height: \"0\" }))]),\n ]),\n trigger(\"cacheAnimation\", [\n state(\"true\", style({ height: \"*\" })),\n state(\"false\", style({ height: '0px' })),\n transition(\"* => *\", animate(\"200ms\")),\n ]),\n ],\n})\nexport class AccordionPanelComponent implements OnChanges, AfterViewInit {\n @Input()\n public header: string;\n\n @Input()\n public buttons: AccordionButtonSettings[];\n\n @Input()\n public disabled = false;\n\n /**\n * @deprecated Use switchControl instead.\n */\n @Input()\n public switch: AccordionSwitchSettings;\n\n @Input()\n public switchControl: FormControl;\n\n @Input()\n public validationMessage: string;\n\n @Input()\n public cache = false;\n\n @Input() validationMessageIcon = 'fas fa-exclamation-circle';\n\n @Input() validationMessageIconColor: \"Red\" | \"Orange\" | \"Yellow\" | \"Green\" | \"Blue\" = 'Red';\n\n @Output()\n public panelOpened = new EventEmitter<void>();\n\n @Output()\n public panelClosed = new EventEmitter<void>();\n\n\n public isAnimating = false;\n public isContentAnimationDisabled = true;\n\n private _isOpen = false;\n\n public get isOpen() {\n return this._isOpen;\n }\n\n public set isOpen(isOpen: boolean) {\n this._isOpen = isOpen;\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (\"disabled\" in changes) {\n if (this.switchControl) {\n changes[\"disabled\"].currentValue\n ? this.switchControl.disable({ emitEvent: false })\n : this.switchControl.enable({ emitEvent: false });\n }\n }\n\n if (\"switch\" in changes && \"switchControl\" in changes) {\n throw new Error(\"You can't set switch and switchControl together.\");\n }\n }\n\n public ngAfterViewInit(): void {\n // to executed at a safe time prior to control returning to the browser's event loop\n queueMicrotask(() => {\n this.isContentAnimationDisabled = false;\n });\n }\n\n public onIconButtonsClick(event: Event, callback: VoidFunction) {\n if (this.disabled) {\n return;\n }\n\n event.stopPropagation();\n callback();\n }\n\n public onTabClick() {\n if (this.disabled || this.isAnimating) {\n return;\n }\n this.isOpen = !this.isOpen;\n }\n\n public onContentAnimationStart() {\n this.isAnimating = true;\n }\n\n public onContentAnimationDone() {\n this.isAnimating = false;\n\n if (this.isOpen) {\n this.panelOpened.emit();\n } else {\n this.panelClosed.emit();\n }\n }\n}\n","import { AfterContentInit, OnChanges, Component, ContentChildren, Input, QueryList, SimpleChanges, OnDestroy } from \"@angular/core\";\n\nimport { AccordionPanelComponent } from \"./components/accordion-panel/accordion-panel.component\";\nimport { Subject, Subscription } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\n@Component({\n selector: \"s-accordion\",\n templateUrl: \"./accordion.component.html\",\n styleUrls: [\"./accordion.component.scss\"],\n})\nexport class AccordionComponent implements AfterContentInit, OnChanges, OnDestroy {\n @Input()\n public activeIndex: number;\n\n @Input()\n public multiple = false;\n\n @ContentChildren(AccordionPanelComponent)\n public panelsComponents: QueryList<AccordionPanelComponent>;\n\n private _unsubscribe$ = new Subject<void>();\n private _panels: AccordionPanelComponent[] = [];\n private _openSubs: Subscription[];\n\n public ngAfterContentInit(): void {\n this._panels = this.panelsComponents.toArray();\n this._openSubs = new Array(this._panels.length);\n\n this._setBehavior(this.multiple);\n this._setupTabs();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.multiple) {\n this._setBehavior(changes.multiple.currentValue);\n }\n }\n\n public ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n\n private _setupTabs(): void {\n if (this._panels?.length) {\n if (this.activeIndex !== undefined && this.activeIndex !== null) {\n const activeTab = this._panels[this.activeIndex];\n\n if (!activeTab) {\n throw new Error(\"activeIndex does not represent any panel.\");\n }\n\n if (!activeTab.disabled) {\n this._panels[this.activeIndex].isOpen = true;\n }\n }\n }\n }\n\n private _closeOtherTabs(exception: number) {\n this._panels.forEach((panel, index) => {\n if (index !== exception) {\n panel.isOpen = false;\n }\n });\n }\n\n private _setBehavior(multiple: boolean): void {\n if (multiple) {\n this._enableMultiplePanelBehavior();\n } else {\n this._enableSinglePanelBehavior();\n }\n }\n\n private _enableSinglePanelBehavior() {\n this._panels.forEach((panel, index) => {\n this._openSubs[index] = panel.panelOpened\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe(() => {\n this._closeOtherTabs(index);\n });\n });\n }\n\n private _enableMultiplePanelBehavior() {\n this._panels.forEach((_, index) => {\n if (this._openSubs[index]) {\n this._openSubs[index].unsubscribe();\n }\n });\n }\n}\n","// switch.component.ts\nimport { Component, ElementRef, EventEmitter, HostListener, Input, Output, ViewChild, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\n@Component({\n selector: 's-switch',\n templateUrl: './switch.component.html',\n styleUrls: ['./switch.component.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwitchComponent),\n multi: true,\n }],\n})\nexport class SwitchComponent implements ControlValueAccessor {\n @Input()\n public readonly = false;\n\n @Input()\n public trueLabel?: string;\n\n @Input()\n public falseLabel?: string;\n\n @Input()\n public inputId: string;\n\n @Input()\n public inputName: string;\n\n @Input()\n public disabled = false;\n\n @Output()\n public valueChanged = new EventEmitter<boolean>();\n\n @Input()\n public value = false;\n\n @ViewChild(\"switch\", { static: true })\n public switchRef: ElementRef;\n\n @HostListener('focusin')\n onFocusIn() {\n const switchElement = this.switchRef.nativeElement as HTMLDivElement; \n switchElement.classList.add(\"switch--focus\");\n }\n\n @HostListener('focusout')\n onFocusOut() {\n const switchElement = this.switchRef.nativeElement as HTMLDivElement; \n switchElement.classList.remove(\"switch--focus\");\n }\n\n private _onChange: (value: boolean) => void;\n private _onTouched: (value: boolean) => void;\n\n public writeValue(value: boolean): void {\n if (!this.disabled) {\n this.value = value;\n }\n }\n\n public registerOnChange(onChange: (value: boolean) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: (value: boolean) => void): void {\n this._onTouched = onTouched;\n }\n\n public setDisabledState?(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n public toggleCheck() {\n this.value = !this.value;\n this.valueChanged.emit(this.value);\n\n if (this._onChange) {\n this._onChange(this.value);\n }\n\n if (this._onTouched) {\n this._onTouched(this.value);\n }\n }\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { SwitchComponent } from \"./switch.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [SwitchComponent],\n exports: [SwitchComponent],\n})\nexport class SwitchModule { }","export enum MobileBehavior {\n Pressing = \"pressing\",\n Tap = \"tap\",\n}","export enum TooltipEvent {\n Focus = \"focus\",\n Hover = \"hover\",\n}","import { Component } from \"@angular/core\";\nimport { TooltipPosition } from \"./models/tooltip-position\";\n\n@Component({\n templateUrl: \"./tooltip.component.html\",\n styleUrls: [\"./tooltip.component.scss\"],\n})\nexport class TooltipComponent {\n public tooltip = \"\";\n public position = TooltipPosition.Top;\n public left = 0;\n public top = 0;\n public visible = false;\n public escape = false;\n}\n","import { Injectable } from '@angular/core';\n\nconst DEFAULT_TIMER = 300;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DebounceUtils {\n public debounce(func: Function, timeout = DEFAULT_TIMER){\n let timer: NodeJS.Timeout;\n return (...args: any) => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n func.apply(this, args);\n }, timeout);\n };\n }\n\n public debounceLeading(func: Function, timeout = DEFAULT_TIMER) {\n let timer: NodeJS.Timeout;\n return (...args: any) => {\n if (!timer) {\n func.apply(this, args);\n }\n clearTimeout(timer);\n timer = setTimeout(() => {\n timer = null;\n }, timeout);\n };\n }\n}\n","export const isNullOrUndefined = (value: unknown) => value === null || value === undefined;\r\nexport type ElementPosition = {\r\n top: number;\r\n left: number;\r\n right: number;\r\n elementHeight: number;\r\n elementWidth: number;\r\n elementVerticalCenter: number;\r\n elementHorizontalCenter: number;\r\n}\r\n\r\nexport type ElementLeftoverPosition = {\r\n freeDistanceToBottom: number;\r\n freeDistanceToTop: number;\r\n freeDistanceToLeft: number;\r\n freeDistanceToRight: number;\r\n}\r\n\r\nexport const isMousePositionOutsideOfElement = (event: MouseEvent | PointerEvent, elementArea: {\r\n top: number;\r\n right: number;\r\n left: number;\r\n bottom: number;\r\n}) => {\r\n const eventX = event.clientX;\r\n const eventY = event.clientY;\r\n return eventX < elementArea.left || eventX >= elementArea.right || eventY < elementArea.top || eventY >= elementArea.bottom;\r\n}\r\n\r\nexport const getElementPositionInfo = (element: HTMLElement): ElementPosition => {\r\n const rect = element.getBoundingClientRect();\r\n const scrollTop = window.scrollY || document.documentElement.scrollTop;\r\n const scrollLeft = window.scrollX || document.documentElement.scrollLeft;\r\n\r\n const elementHeight = rect.height;\r\n const elementWidth = rect.width;\r\n const elementVerticalCenter = elementHeight / 2;\r\n const elementHorizontalCenter = elementWidth / 2;\r\n\r\n return {\r\n top: rect.top + scrollTop,\r\n left: rect.left + scrollLeft,\r\n right: rect.left + scrollLeft + elementWidth,\r\n elementHeight,\r\n elementWidth,\r\n elementVerticalCenter,\r\n elementHorizontalCenter\r\n };\r\n};\r\n\r\nexport const getElementLeftoverContentAvailable = (element: HTMLElement): ElementLeftoverPosition => {\r\n const windowWidth = window.innerWidth;\r\n const popoverElementTriggerRect = element.getBoundingClientRect();\r\n const freeDistanceToBottom = window.innerHeight - popoverElementTriggerRect.bottom;\r\n const freeDistanceToTop = popoverElementTriggerRect.top;\r\n const freeDistanceToLeft = popoverElementTriggerRect.left;\r\n const freeDistanceToRight = windowWidth - popoverElementTriggerRect.right;\r\n return {\r\n freeDistanceToBottom,\r\n freeDistanceToTop,\r\n freeDistanceToLeft,\r\n freeDistanceToRight\r\n }\r\n}\r\n","// Lembrar que toda vez que for adicionada uma cor nova, ser criada a referência no `EnumBadgeColors`\n// do s-table-columns.\n\nexport enum BadgeColors {\n Red = \"red\",\n Orange = \"orange\",\n Yellow = \"yellow\",\n Blue = \"blue\",\n Green = \"green\",\n Gray = \"gray\",\n}","export enum BadgeTypes {\n Pill = \"pill\",\n Chip = \"chip\",\n}\n","import {\n ApplicationRef,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n HostListener,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n} from \"@angular/core\";\nimport { DebounceUtils } from \"../utils/debouce\";\nimport { getElementLeftoverContentAvailable, getElementPositionInfo, isMousePositionOutsideOfElement, isNullOrUndefined } from './../utils/utils';\nimport { MobileBehavior, TooltipEvent, TooltipPosition } from \"./models\";\nimport { TooltipComponent } from \"./tooltip.component\";\n\n@Directive({\n selector: \"[sTooltip]\",\n})\nexport class TooltipDirective implements OnInit, OnDestroy {\n @Input(\"sTooltip\")\n public tooltip: string;\n\n @Input(\"tooltipPosition\")\n public position: TooltipPosition = TooltipPosition.Top;\n\n @Input()\n public showDelay = 500;\n\n @Input()\n public displayTime: number;\n\n @Input()\n public tooltipEvent = TooltipEvent.Hover;\n\n @Input()\n public escape = false;\n\n @Input()\n public visible = true;\n\n @Input()\n public mobileBehavior = MobileBehavior.Pressing;\n\n @Input()\n public focusedInputRef: HTMLInputElement;\n\n private componentRef: ComponentRef<TooltipComponent> = null;\n private showTimeout?: number;\n private touchTimeout?: number;\n private tooltipDivElement?: HTMLElement;\n private readonly debounceCreateTooltipFunction: () => void;\n private tooltipCreatedByFocus = false;\n\n constructor(\n private readonly elementRef: ElementRef,\n private readonly appRef: ApplicationRef,\n private readonly componentFactoryResolver: ComponentFactoryResolver,\n private readonly injector: Injector,\n private readonly debounceUtils: DebounceUtils,\n private readonly renderer: Renderer2\n ) {\n this.debounceCreateTooltipFunction = this.debounceUtils.debounceLeading(() => this._createTooltip(true, true));\n }\n\n public ngOnInit(): void {\n this.validatePosition();\n this.updateTooltipVisibilityWhenFocusOnInput();\n }\n\n public ngOnDestroy(): void {\n this.destroy();\n }\n\n /**\n * Manipula a visibilidade do tooltip quando houver uma referência de input.\n */\n private updateTooltipVisibilityWhenFocusOnInput() {\n if (this.focusedInputRef) {\n const inputFocus = this.focusedInputRef;\n const icon = this.getIconFromFocusedInput();\n this.renderer.listen(inputFocus, \"focus\", () => {\n if (icon) {\n this._createTooltip(false, false)\n this.tooltipCreatedByFocus = true;\n }\n });\n this.renderer.listen(inputFocus, \"blur\", () => {\n if (icon) {\n this.removeTooltip(icon);\n this.destroy();\n this.tooltipCreatedByFocus = false;\n }\n });\n }\n }\n\n /**\n * Obtém o elemento do Ãcone associado ao label do input em focus.\n * @returns O Ãcone do input em focus.\n */\n private getIconFromFocusedInput(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n /**\n * Remove o tooltip associado ao Ãcone do input em focus.\n * @param icon O Ãcone do input em focus.\n */\n private removeTooltip(icon: HTMLElement): void {\n const tooltip = icon.querySelector(\".tooltip\") as HTMLElement;\n if (tooltip) {\n tooltip.remove();\n }\n }\n\n // whenever the component with the tooltip is clicked I destroy the tooltip.\n // whenever a key is pressed on the component with the tooltip I destroy the tooltip.\n @HostListener(\"click\")\n @HostListener(\"keydown\")\n public onClick(): void {\n if (this.tooltipEvent === TooltipEvent.Hover && !navigator.userAgent.match(/Android/i) && !navigator.userAgent.match(/iPhone/i)) {\n this.destroy();\n }\n }\n\n @HostListener(\"focus\")\n public onFocus(): void {\n if (this.tooltipEvent === TooltipEvent.Focus) {\n this._createTooltip(true, true)\n }\n }\n\n @HostListener(\"blur\")\n public onBlur(): void {\n if (this.tooltipEvent === TooltipEvent.Focus) {\n this.destroy();\n }\n }\n\n @HostListener(\"mouseenter\")\n public onMouseEnter(): void {\n if (this.tooltipEvent === TooltipEvent.Hover || this.focusedInputRef) {\n this.debounceCreateTooltipFunction();\n }\n }\n\n @HostListener(\"mouseleave\")\n @HostListener(\"wheel\")\n public onMouseLeave(): void {\n if ((this.tooltipEvent === TooltipEvent.Hover || this.focusedInputRef) && !this.tooltipCreatedByFocus) {\n this.destroy();\n }\n }\n\n @HostListener(\"touchstart\")\n public onTouchStart(): void {\n if (this.tooltipEvent === TooltipEvent.Hover) {\n window.clearTimeout(this.touchTimeout);\n const _delay = this.mobileBehavior === MobileBehavior.Pressing ? this.showDelay : 0\n this.touchTimeout = window.setTimeout(() => {\n this._createTooltip(true, true);\n }, _delay)\n }\n }\n\n @HostListener(\"touchend\")\n public onTouchEnd(): void {\n if (this.tooltipEvent === TooltipEvent.Hover) {\n if (this.mobileBehavior === MobileBehavior.Pressing) {\n window.clearTimeout(this.touchTimeout);\n this.destroy();\n }\n }\n }\n\n private validatePosition() {\n const containsPosition = [TooltipPosition.Top, TooltipPosition.Right, TooltipPosition.Bottom, TooltipPosition.Left].includes(\n this.position\n );\n\n if (!containsPosition) {\n this.position = TooltipPosition.Top;\n throw new Error(`Tooltip ${this.position} position is unexpected`);\n }\n }\n\n private getDomElement(): HTMLElement {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(TooltipComponent);\n this.componentRef = componentFactory.create(this.injector);\n this.appRef.attachView(this.componentRef.hostView);\n return (this.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n }\n\n private _createTooltip(useShowDelay = false, autoDestroy = true) {\n const hasText = this.tooltip?.length > 0;\n const hasComponentRef = this.componentRef !== null;\n if (!hasText || hasComponentRef) {\n return;\n }\n const domElement = this.getDomElement();\n document.body.appendChild(domElement);\n this.tooltipDivElement = domElement.querySelector(\".tooltip\");\n this.setTooltipComponentProperties();\n const _showDelay = useShowDelay ? this.showDelay : 0;\n setTimeout(() => {\n this.showTooltip()\n }, _showDelay)\n\n\n\n this.renderer.listen(window, \"scroll\", () => {\n this.setTooltipPositionProperty();\n });\n\n if (autoDestroy && this.displayTime) {\n setTimeout(() => {\n this.destroy();\n }, this.displayTime)\n }\n\n }\n\n private showTooltip() {\n if (this.componentRef !== null) {\n this.componentRef.instance.visible = this.visible;\n\n this.setTooltipPositionProperty();\n }\n }\n\n private setTooltipPositionProperty() {\n if (!this.componentRef) {\n return\n }\n const anchorSize = 5;\n const { left, right } = this.elementRef.nativeElement.getBoundingClientRect();\n\n const tooltipElementPosition = getElementPositionInfo(this.tooltipDivElement);\n const elementLeftover = getElementLeftoverContentAvailable(this.elementRef.nativeElement);\n const elementTriggerPosition = getElementPositionInfo(this.elementRef.nativeElement);\n const isPositionHorizontal = [TooltipPosition.Left, TooltipPosition.Right].includes(this.position);\n const distanceToBorders = isPositionHorizontal ? tooltipElementPosition.elementWidth : tooltipElementPosition.elementHorizontalCenter;\n const canSetAtTop = elementLeftover.freeDistanceToTop > tooltipElementPosition.elementHeight;\n const canSetAtLeft = elementLeftover.freeDistanceToLeft > distanceToBorders;\n const canSetAtRight = elementLeftover.freeDistanceToRight > distanceToBorders;\n const canSetAtBottom = elementLeftover.freeDistanceToBottom > tooltipElementPosition.elementHeight;\n const topVertical = elementTriggerPosition.top + elementTriggerPosition.elementVerticalCenter;\n const checkTopPosition = () => {\n return canSetAtTop && canSetAtLeft && canSetAtRight;\n }\n const checkBottomPosition = () => {\n return canSetAtBottom && canSetAtLeft && canSetAtRight;\n }\n const checkLeftPosition = () => {\n return canSetAtLeft && canSetAtTop && canSetAtBottom;\n }\n\n const checkRightPosition = () => {\n return canSetAtRight && canSetAtTop && canSetAtBottom;\n }\n\n const setTopPosition = (): { left: number, top: number } => {\n return {\n left: left + (right - left) / 2,\n top: elementTriggerPosition.top - anchorSize\n }\n }\n\n const setBottomPosition = (): { left: number, top: number } => {\n return {\n left: left + (right - left) / 2,\n top: elementTriggerPosition.top + elementTriggerPosition.elementHeight\n };\n }\n\n const setLeftPosition = (): { left: number, top: number } => {\n return {\n left: left,\n top: topVertical\n };\n }\n\n const setRightPosition = (): { left: number, top: number } => {\n return {\n left: right,\n top: topVertical\n };\n }\n\n type Position = {\n pos: TooltipPosition,\n check: () => boolean,\n set: () => { left: number, top: number }\n }\n\n const positions: Position[] = [\n {\n pos: TooltipPosition.Top,\n check: checkTopPosition,\n set: setTopPosition\n },\n {\n pos: TooltipPosition.Bottom,\n check: checkBottomPosition,\n set: setBottomPosition\n },\n {\n pos: TooltipPosition.Left,\n check: checkLeftPosition,\n set: setLeftPosition\n },\n {\n pos: TooltipPosition.Right,\n check: checkRightPosition,\n set: setRightPosition\n\n }\n ];\n\n const positionDefined = positions.find((position) => position.pos === this.position);\n let validPosition: Position = positionDefined;\n const canUseDefinedPosition = positionDefined.check();\n if (canUseDefinedPosition) {\n validPosition = positionDefined;\n } else if (!canUseDefinedPosition) {\n const validAlternativePosition = positions.find((position) => position.check());\n if (validAlternativePosition) {\n validPosition = validAlternativePosition;\n }\n }\n const _position = validPosition.set();\n const positionLeft = _position.left;\n const positionTop = _position.top;\n this.componentRef.instance.left = Math.round(positionLeft);\n this.componentRef.instance.top = Math.round(positionTop);\n this.componentRef.instance.position = validPosition.pos;\n\n }\n private setTooltipComponentProperties() {\n if (this.componentRef !== null) {\n this.componentRef.instance.tooltip = this.tooltip;\n this.componentRef.instance.escape = this.escape;\n }\n }\n\n private destroy(): void {\n if (!isNullOrUndefined(this.componentRef)) {\n window.clearTimeout(this.showTimeout);\n this.appRef.detachView(this.componentRef.hostView);\n this.componentRef.destroy();\n this.componentRef = null;\n this.tooltipDivElement = null;\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TooltipComponent } from \"./tooltip.component\";\nimport { TooltipDirective } from \"./tooltip.directive\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n TooltipComponent,\n TooltipDirective,\n ],\n exports: [TooltipDirective],\n})\nexport class TooltipModule { }\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { SwitchModule } from \"../switch/switch.module\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\nimport { AccordionComponent } from \"./accordion.component\";\nimport { AccordionPanelComponent } from \"./components/accordion-panel/accordion-panel.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TooltipModule,\n SwitchModule,\n ],\n declarations: [\n AccordionComponent,\n AccordionPanelComponent,\n ],\n exports: [\n AccordionComponent,\n AccordionPanelComponent,\n ],\n})\nexport class AccordionModule { }\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\n@Component({\n selector: \"s-alert\",\n templateUrl: \"./alert.component.html\",\n styleUrls: [\"./alert.component.scss\"],\n})\nexport class AlertComponent {\n @Input()\n public severity: \"info\" | \"success\" | \"warning\" | \"error\" = \"info\";\n\n @Input()\n public summary: string;\n\n @Input()\n public detail: string;\n\n @Input()\n public closable = true;\n\n @Output()\n public close = new EventEmitter<void>();\n\n public get isOpen(): boolean {\n return this._isOpen;\n }\n\n public closeAlert(): void {\n this._isOpen = false;\n }\n\n public showAlert(): void {\n this._isOpen = true;\n }\n\n public onClose(): void {\n this.close.emit();\n this.closeAlert();\n }\n\n private _isOpen = true;\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { AlertComponent } from \"./alert.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [AlertComponent],\n exports: [AlertComponent],\n})\nexport class AlertModule {}\n","export enum ButtonPriority {\n Default = \"default\",\n Primary = \"primary\",\n Secondary = \"secondary\",\n Link = \"link\",\n Danger = \"danger\",\n}\n","export enum ButtonSize {\n Default = \"default\",\n Small = \"small\",\n}\n","import { Component, EventEmitter, HostListener, Input, OnInit, Output } from \"@angular/core\";\n\nimport { BadgeColors } from \"./models/badge-colors\";\nimport { BadgeTypes } from \"./models/badge-types\";\n\n@Component({\n selector: \"s-badge\",\n templateUrl: \"./badge.component.html\",\n styleUrls: [\"./badge.component.scss\"],\n})\nexport class BadgeComponent implements OnInit {\n @Input()\n public type: BadgeTypes;\n\n @Input()\n public color: BadgeColors;\n\n @Input()\n public title: string;\n\n @Input()\n public text: string;\n\n @Input()\n public selectable = false;\n\n @Input()\n public iconClass: string;\n\n @Input()\n public iconPosition: \"left\" | \"right\";\n\n @Input()\n public infoSign: { text: string; displayTime?: number };\n\n @Output()\n public selected: EventEmitter<string> = new EventEmitter();\n\n @HostListener(\"click\")\n public onClick(): void {\n this.selected.emit(this.text);\n }\n\n public ngOnInit(): void {\n this._setDefaultValues();\n }\n\n private _setDefaultValues(): void {\n this.type = this.type ?? BadgeTypes.Pill;\n this.color = this.color ?? BadgeColors.Blue;\n this.iconPosition = this.iconPosition ?? \"left\";\n }\n}","import { Component, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"s-info-sign-component\",\n templateUrl: \"./info-sign.component.html\",\n styleUrls: [\"./info-sign.component.scss\"],\n})\nexport class InfoSignComponent {\n templateRef: TemplateRef<any>;\n tooltip: string;\n displayTime: number;\n focusedInputRef: HTMLInputElement;\n}\n","import {\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n} from \"@angular/core\";\n\nimport { InfoSignComponent } from \"./info-sign.component\";\n\n@Directive({\n selector: \"[sInfoSign]\"\n})\nexport class InfoSignDirective implements OnChanges, OnInit, OnDestroy {\n @Input()\n sInfoSign: string;\n\n @Input('sInfoSignDisplayTime')\n displayTime: number = 5000;\n\n @Input('sInfoSignFocusedInputRef')\n public focusedInputRef: HTMLInputElement;\n\n private componentRef: ComponentRef<any>;\n\n @Input('sInfoSignUseFocusedInputRef') public useFocusedInputRef = true;\n\n constructor(\n private readonly templateRef: TemplateRef<any>,\n private readonly viewContainer: ViewContainerRef,\n private readonly componentFactoryResolver: ComponentFactoryResolver\n ) { }\n\n public ngOnChanges(): void {\n this.createInfoSign();\n }\n\n public ngOnInit(): void {\n this.createInfoSign();\n }\n\n public ngOnDestroy(): void {\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n }\n\n private createInfoSign(): void {\n if (!this.componentRef && this.sInfoSign) {\n this.viewContainer.clear();\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(InfoSignComponent);\n this.componentRef = this.viewContainer.createComponent(componentFactory);\n const _infoSignComponent = this.componentRef.instance as InfoSignComponent;\n _infoSignComponent.templateRef = this.templateRef;\n _infoSignComponent.tooltip = this.sInfoSign;\n _infoSignComponent.displayTime = this.displayTime;\n if (this.useFocusedInputRef) {\n _infoSignComponent.focusedInputRef = this.focusedInputRef;\n }\n } else if (this.componentRef && this.sInfoSign) {\n this.componentRef.instance.tooltip = this.sInfoSign;\n } else {\n this.viewContainer.clear();\n this.viewContainer.createEmbeddedView(this.templateRef);\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\nimport { InfoSignComponent } from \"./info-sign.component\";\nimport { InfoSignDirective } from \"./info-sign.directive\";\n\n@NgModule({\n imports: [\n TooltipModule,\n CommonModule,\n ],\n declarations: [\n InfoSignDirective,\n InfoSignComponent,\n ],\n exports: [InfoSignDirective],\n entryComponents: [InfoSignComponent],\n})\nexport class InfoSignModule {}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { RouterModule } from \"@angular/router\";\n\nimport { BadgeComponent } from \"./badge.component\";\nimport { InfoSignModule } from \"../info-sign/info-sign.module\";\n\n@NgModule({\n imports: [CommonModule, RouterModule, InfoSignModule],\n declarations: [BadgeComponent],\n exports: [BadgeComponent, RouterModule],\n})\nexport class BadgeModule {}\n","export interface ICalendarLocaleOptions {\n hourFormat?: string;\n dateFormat?: string;\n firstDayOfWeek?: number;\n today?: string;\n clear?: string;\n dayNames?: string[];\n dayNamesShort?: string[];\n dayNamesMin?: string[];\n monthNamesShort?: string[];\n monthNames?: string[];\n}\n\nexport class CalendarLocaleOptions implements ICalendarLocaleOptions {\n public hourFormat = \"24\";\n public dateFormat = \"dd/mm/yy\";\n public firstDayOfWeek = 0;\n public today = \"Hoje\";\n public clear = \"Limpar\";\n public dayNames: string[] = [\"Domingo\", \"Segunda\", \"Terça\", \"Quarta\", \"Quinta\", \"Sexta\", \"Sábado\"];\n public dayNamesShort: string[] = [\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sab\"];\n public dayNamesMin: string[] = [\"D\", \"S\", \"T\", \"Q\", \"Q\", \"S\", \"S\"];\n public monthNamesShort: string[] = [\"Jan\", \"Fev\", \"Mar\", \"Abr\", \"Mai\", \"Jun\", \"Jul\", \"Ago\", \"Set\", \"Out\", \"Nov\", \"Dez\"];\n public monthNames: string[] = [\n \"Janeiro\",\n \"Fevereiro\",\n \"Março\",\n \"Abril\",\n \"Maio\",\n \"Junho\",\n \"Julho\",\n \"Agosto\",\n \"Setembro\",\n \"Outubro\",\n \"Novembro\",\n \"Dezembro\",\n ];\n\n constructor(config: ICalendarLocaleOptions = {}) {\n Object.keys(config).forEach(key => (this[key] = config[key] || this[key]));\n }\n}\n","export interface INumberLocaleOptions {\n thousandsSeparator?: string;\n decimalSeparator?: string;\n currencySymbol?: string;\n}\n\nexport class NumberLocaleOptions implements INumberLocaleOptions {\n public thousandsSeparator = \".\";\n public decimalSeparator = \",\";\n public currencySymbol = \"R$\";\n\n constructor(config: INumberLocaleOptions = {}) {\n Object.assign(this, config);\n }\n}\n","import { CalendarLocaleOptions } from \"./calendar\";\nimport { NumberLocaleOptions } from \"./number\";\n\nexport interface ILocaleOptions {\n calendar?: CalendarLocaleOptions;\n number?: NumberLocaleOptions;\n}\n\nexport class LocaleOptions implements ILocaleOptions {\n locale: string;\n calendar = new CalendarLocaleOptions();\n number = new NumberLocaleOptions();\n\n constructor(config: ILocaleOptions = {}) {\n Object.keys(config).forEach(key => (this[key] = config[key] || this[key]));\n }\n}\n\n/**\n * @deprecated\n */\nexport const DEFAULT_CALENDAR_LOCALE_OPTIONS = new CalendarLocaleOptions();\n\n/**\n * @deprecated\n */\nexport const DEFAULT_NUMBER_LOCALE_OPTIONS = new NumberLocaleOptions();\n\n/**\n * @deprecated\n */\nexport const DEFAULT_LOCALE_OPTIONS = new LocaleOptions();\n\nexport * from \"./calendar\";\nexport * from \"./number\";\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { user } from \"@seniorsistemas/senior-platform-data\";\nimport * as moment_ from \"moment\";\nimport { from, Observable, of } from \"rxjs\";\nimport { catchError, map, switchMap, tap } from \"rxjs/operators\";\nimport { ILocaleOptions, LocaleOptions } from \"./options/index\";\nimport { CookieService } from \"ngx-cookie-service\";\n\nconst moment = moment_; // @HACK Necessary because of https://github.com/rollup/rollup/issues/670\n\n@Injectable()\nexport class LocaleService {\n private locale: string;\n private localeOptions: LocaleOptions;\n private localeOptionsAddress = \"https://cdn.senior.com.br/primeng/locales\";\n private localeOptionsVersion = \"3.0.0\";\n\n constructor(\n private http: HttpClient,\n private cookieService: CookieService\n ) {}\n\n get(): Observable<LocaleOptions> {\n return this.localeOptions\n ? of(this.localeOptions)\n : this.getLocaleConfig().pipe(\n tap((localeOptions: LocaleOptions) => (this.localeOptions = { ...localeOptions, locale: this.locale }))\n );\n }\n\n getLocale(): Observable<string> {\n return this.locale\n ? of(this.locale)\n : from(this.getUserData()).pipe(\n map((userData: any) => {\n this.locale = <string>userData.locale || <string>userData.tenantLocale || \"pt-BR\";\n return this.locale;\n })\n );\n }\n\n /**\n * Returns an object with the locale options based on the user's locale(platform locale).\n * @return The locale options object.\n */\n getLocaleOptions(): LocaleOptions {\n return this.localeOptions;\n }\n\n private getUserData() {\n try {\n return of(JSON.parse(this.cookieService.get(\"com.senior.token\")));\n } catch (ex) {\n console.warn(\"Unable to obtain user locale from cookie, calling getUser\");\n return user.getUserData();\n }\n }\n\n private getLocaleConfig(): Observable<LocaleOptions> {\n return this.getLocale().pipe(\n switchMap((locale: string) => {\n moment.locale(locale);\n\n return this.http\n .get<ILocaleOptions>(`${this.localeOptionsAddress}/${this.localeOptionsVersion}/${locale}.json`)\n .pipe(map((response) => new LocaleOptions(response)));\n }),\n catchError((err: any) => {\n console.warn(`Error getting locale configuration. Using fallback.`, err);\n return of(new LocaleOptions());\n })\n );\n }\n\n getGroupingSeparator(): string {\n const numberFormat = new Intl.NumberFormat(this.locale, {\n style: \"decimal\",\n useGrouping: true,\n minimumFractionDigits: 5,\n maximumFractionDigits: 5,\n });\n\n // The default groupingSeparator for 'fr' is the character code 8239. We need it to be the regular space.\n if (this.locale.includes(\"fr\")) return \" \";\n\n return numberFormat.formatToParts(1000).find((part) => part.type === \"group\")?.value;\n }\n\n getDecimalSeparator(): string {\n const numberFormat = new Intl.NumberFormat(this.locale, {\n style: \"decimal\",\n minimumFractionDigits: 5,\n maximumFractionDigits: 5,\n });\n\n return numberFormat.formatToParts(1.2).find((part) => part.type === \"decimal\")?.value;\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocaleService } from \"../locale.service\";\nimport { map } from \"rxjs/operators\";\nimport { of } from \"rxjs\";\nimport { applyMask, MaskConfig } from \"@seniorsistemas/ng2-currency-mask\";\nimport BigNumber from \"bignumber.js\";\n\n@Pipe({\n name: \"localizedBignumber\",\n})\nexport class LocalizedBignumberPipe implements PipeTransform {\n constructor(\n private localeService: LocaleService\n ) {}\n\n public transform(value?: any, options?: MaskConfig): any {\n return value !== undefined && value !== null ? this.applyMask(value, options) : of(value);\n }\n\n private applyMask(value?: any, options?: MaskConfig) {\n return this.localeService.get().pipe(\n map(localeConfig => {\n const configs: MaskConfig = {\n prefix: options?.prefix ?? localeConfig?.number?.currencySymbol ?? \"R$\",\n thousandsSeparator: options?.thousandsSeparator ?? localeConfig?.number?.thousandsSeparator ?? \".\",\n decimalSeparator: options?.decimalSeparator ?? localeConfig?.number?.decimalSeparator ?? \",\",\n scale: options?.scale ?? 2,\n allowNegative: options?.allowNegative ?? true\n };\n const isNumber = !(new BigNumber(value).isNaN());\n return applyMask(value, configs, isNumber);\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { MaskConfig } from \"@seniorsistemas/ng2-currency-mask\";\nimport { LocalizedBignumberPipe } from \"./localized-bignumber.pipe\";\n\n@Pipe({\n name: \"localizedBignumberImpure\",\n pure: false,\n})\nexport class LocalizedBignumberImpurePipe extends LocalizedBignumberPipe implements PipeTransform {\n public transform(value?: any, options?: MaskConfig): any {\n return super.transform(value, options);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocaleService } from \"../locale.service\";\nimport { map } from \"rxjs/operators\";\nimport { of } from \"rxjs\";\nimport { INumberLocaleOptions, NumberLocaleOptions } from \"../options\";\n\nexport interface ILocalizedCurrencyPipeOptions extends INumberLocaleOptions {\n scale?: number;\n}\n\nexport class LocalizedCurrencyPipeOptions extends NumberLocaleOptions implements ILocalizedCurrencyPipeOptions {\n public scale = 2;\n\n constructor(config: ILocalizedCurrencyPipeOptions = {}) {\n super(config);\n }\n}\n\n/**\n * @deprecated Should use localizedBignumberPipe instead\n */\n@Pipe({\n name: \"localizedCurrency\",\n})\nexport class LocalizedCurrencyPipe implements PipeTransform {\n constructor(private localeService: LocaleService) {}\n\n public transform(value?: any, options?: LocalizedCurrencyPipeOptions): any {\n if (!options) {\n options = new LocalizedCurrencyPipeOptions();\n }\n return value !== undefined && value !== null ? this.applyMask(value, options) : of(value);\n }\n\n private applyMask(value: any, options: LocalizedCurrencyPipeOptions) {\n return this.localeService.get().pipe(\n map(localeConfig => {\n const config = { ...localeConfig.number, ...options };\n const { scale, currencySymbol, thousandsSeparator, decimalSeparator } = config;\n\n const rawValue = Number(value).toFixed(scale);\n const onlyNumbers = rawValue.replace(/[^0-9]/g, ``);\n const integerPart =\n onlyNumbers\n .slice(0, onlyNumbers.length - scale)\n .replace(/^0*/g, ``)\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparator) || `0`;\n const decimalPart = onlyNumbers.slice(onlyNumbers.length - scale);\n const newValue = scale ? integerPart + decimalSeparator + decimalPart : integerPart;\n const isZero = !Number(onlyNumbers);\n const operator = rawValue.includes(\"-\") && !isZero ? \"-\" : \"\";\n return `${operator}${currencySymbol}${newValue}`;\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocalizedCurrencyPipe, LocalizedCurrencyPipeOptions } from \"./localized-currency.pipe\";\n\n/**\n * @deprecated Should use localizedBignumberPipe instead\n */\n@Pipe({\n name: \"localizedCurrencyImpure\",\n pure: false,\n})\nexport class LocalizedCurrencyImpurePipe extends LocalizedCurrencyPipe implements PipeTransform {\n public transform(value?: any, options: LocalizedCurrencyPipeOptions = new LocalizedCurrencyPipeOptions()): any {\n return super.transform(value, options);\n }\n}\n","import * as moment_ from \"moment\";\nimport { Pipe, PipeTransform } from \"@angular/core\";\n\nimport { LocaleService } from \"../locale.service\";\nimport { map } from \"rxjs/operators\";\n\nconst moment = moment_; // @HACK Necessary because of https://github.com/rollup/rollup/issues/670\n\n@Pipe({\n name: \"localizedDate\",\n})\nexport class LocalizedDatePipe implements PipeTransform {\n constructor(private localeService: LocaleService) {}\n\n public transform(value: any, format: string = \"L LTS\"): any {\n return this.localeService.get().pipe(map(() => (value ? moment(value).format(format) : value)));\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocalizedDatePipe } from \"./localized-date.pipe\";\n\n@Pipe({\n name: \"localizedDateImpure\",\n pure: false,\n})\nexport class LocalizedDateImpurePipe extends LocalizedDatePipe implements PipeTransform {}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { from } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { LocaleService } from \"../locale.service\";\n\n/**\n * @deprecated Should use localizedBignumberPipe instead\n */\n@Pipe({ name: \"localizedNumber\" })\nexport class LocalizedNumberPipe implements PipeTransform {\n constructor(private localeService: LocaleService) {}\n\n transform(value: number | string, minimumFractionDigits?: number) {\n return from(this.localeService.getLocale()).pipe(\n map((locale: string) => {\n const numericValue = Number(value);\n\n if (!value && isNaN(numericValue)) return;\n\n return new Intl.NumberFormat(locale, {\n minimumFractionDigits: minimumFractionDigits || 0,\n }).format(Number(value));\n })\n );\n }\n}\n\nexport interface Locale {\n localidade?: string;\n tenantLocale?: string;\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport * as moment_ from \"moment\";\nimport { map } from \"rxjs/operators\";\n\nimport { LocaleService } from \"../locale.service\";\n\nconst moment = moment_; // @HACK Necessary because of https://github.com/rollup/rollup/issues/670\n\n@Pipe({\n name: \"localizedTime\",\n})\nexport class LocalizedTimePipe implements PipeTransform {\n constructor(private localeService: LocaleService) {}\n\n public transform(value: any, format: string = \"LTS\"): any {\n return this.localeService.get().pipe(map(() => (value ? moment(value, \"HH:mm:ss\").format(format) : value)));\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocalizedTimePipe } from \"./localized-time.pipe\";\n\n@Pipe({\n name: \"localizedTimeImpure\",\n pure: false,\n})\nexport class LocalizedTimeImpurePipe extends LocalizedTimePipe implements PipeTransform {}\n","import { Injectable } from \"@angular/core\";\r\nimport { LocaleService } from \"../../components/locale/locale.service\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class CurrencyService {\r\n currencies = {\r\n KHR: { precision: 12, scale: 2 },\r\n SSP: { precision: 12, scale: 2 },\r\n XCD: { precision: 12, scale: 2 },\r\n EGP: { precision: 12, scale: 2 },\r\n KWD: { precision: 12, scale: 3 },\r\n YER: { precision: 12, scale: 2 },\r\n HUF: { precision: 12, scale: 2 },\r\n MXN: { precision: 12, scale: 2 },\r\n MYR: { precision: 12, scale: 2 },\r\n ZWL: { precision: 12, scale: 2 },\r\n MUR: { precision: 12, scale: 2 },\r\n DKK: { precision: 12, scale: 2 },\r\n NOK: { precision: 12, scale: 2 },\r\n DJF: { precision: 12, scale: 0 },\r\n CRC: { precision: 12, scale: 2 },\r\n BND: { precision: 12, scale: 2 },\r\n NAD: { precision: 12, scale: 2 },\r\n MKD: { precision: 12, scale: 2 },\r\n CDF: { precision: 12, scale: 2 },\r\n GNF: { precision: 12, scale: 0 },\r\n EUR: { precision: 12, scale: 2 },\r\n OMR: { precision: 12, scale: 3 },\r\n CLP: { precision: 12, scale: 0 },\r\n BSD: { precision: 12, scale: 2 },\r\n TOP: { precision: 12, scale: 2 },\r\n IRR: { precision: 12, scale: 2 },\r\n BGN: { precision: 12, scale: 2 },\r\n BZD: { precision: 12, scale: 2 },\r\n CNY: { precision: 12, scale: 2 },\r\n FJD: { precision: 12, scale: 2 },\r\n SRD: { precision: 12, scale: 2 },\r\n SOS: { precision: 12, scale: 2 },\r\n GYD: { precision: 12, scale: 2 },\r\n VUV: { precision: 12, scale: 0 },\r\n MWK: { precision: 12, scale: 2 },\r\n MRU: { precision: 12, scale: 2 },\r\n LSL: { precision: 12, scale: 2 },\r\n ERN: { precision: 12, scale: 2 },\r\n BMD: { precision: 12, scale: 2 },\r\n WST: { precision: 12, scale: 2 },\r\n LRD: { precision: 12, scale: 2 },\r\n GMD: { precision: 12, scale: 2 },\r\n ARS: { precision: 12, scale: 2 },\r\n ZAR: { precision: 12, scale: 2 },\r\n RSD: { precision: 12, scale: 2 },\r\n MDL: { precision: 12, scale: 2 },\r\n USD: { precision: 12, scale: 2 },\r\n QAR: { precision: 12, scale: 2 },\r\n HRK: { precision: 12, scale: 2 },\r\n GIP: { precision: 12, scale: 2 },\r\n NPR: { precision: 12, scale: 2 },\r\n \"002\": { precision: 9, scale: 4 },\r\n PLN: { precision: 12, scale: 2 },\r\n MAD: { precision: 12, scale: 2 },\r\n BAM: { precision: 12, scale: 2 },\r\n BTN: { precision: 12, scale: 2 },\r\n BBD: { precision: 12, scale: 2 },\r\n SHP: { precision: 12, scale: 2 },\r\n LKR: { precision: 12, scale: 2 },\r\n KPW: { precision: 12, scale: 2 },\r\n LAK: { precision: 12, scale: 2 },\r\n SZL: { precision: 12, scale: 2 },\r\n PHP: { precision: 12, scale: 2 },\r\n RWF: { precision: 12, scale: 0 },\r\n ISK: { precision: 12, scale: 0 },\r\n XOF: { precision: 12, scale: 0 },\r\n AUD: { precision: 12, scale: 2 },\r\n NGN: { precision: 12, scale: 2 },\r\n KGS: { precision: 12, scale: 2 },\r\n KYD: { precision: 12, scale: 2 },\r\n PGK: { precision: 12, scale: 2 },\r\n DZD: { precision: 12, scale: 2 },\r\n XAF: { precision: 12, scale: 0 },\r\n PEN: { precision: 12, scale: 2 },\r\n JPY: { precision: 12, scale: 0 },\r\n SBD: { precision: 12, scale: 2 },\r\n UGX: { precision: 12, scale: 0 },\r\n AMD: { precision: 12, scale: 2 },\r\n AED: { precision: 12, scale: 2 },\r\n ALL: { precision: 12, scale: 2 },\r\n XPF: { precision: 12, scale: 0 },\r\n AFN: { precision: 12, scale: 2 },\r\n RON: { precision: 12, scale: 2 },\r\n TND: { precision: 12, scale: 3 },\r\n NZD: { precision: 12, scale: 2 },\r\n JOD: { precision: 12, scale: 3 },\r\n VND: { precision: 12, scale: 0 },\r\n ETB: { precision: 12, scale: 2 },\r\n PYG: { precision: 12, scale: 0 },\r\n JMD: { precision: 12, scale: 2 },\r\n KES: { precision: 12, scale: 2 },\r\n IDR: { precision: 12, scale: 2 },\r\n HKD: { precision: 12, scale: 2 },\r\n BDT: { precision: 12, scale: 2 },\r\n GBP: { precision: 12, scale: 2 },\r\n AOA: { precision: 12, scale: 2 },\r\n PKR: { precision: 12, scale: 2 },\r\n TRY: { precision: 12, scale: 2 },\r\n SLL: { precision: 12, scale: 2 },\r\n CVE: { precision: 12, scale: 2 },\r\n LYD: { precision: 12, scale: 3 },\r\n ILS: { precision: 12, scale: 2 },\r\n UZS: { precision: 12, scale: 2 },\r\n CHF: { precision: 12, scale: 2 },\r\n SVC: { precision: 12, scale: 2 },\r\n BRL: { precision: 12, scale: 2 },\r\n GHS: { precision: 12, scale: 2 },\r\n CUP: { precision: 12, scale: 2 },\r\n FKP: { precision: 12, scale: 2 },\r\n NIO: { precision: 12, scale: 2 },\r\n GEL: { precision: 12, scale: 2 },\r\n TTD: { precision: 12, scale: 2 },\r\n AAA: { precision: 1, scale: 1 },\r\n COP: { precision: 12, scale: 2 },\r\n MGA: { precision: 12, scale: 2 },\r\n INR: { precision: 12, scale: 2 },\r\n KRW: { precision: 12, scale: 0 },\r\n HNL: { precision: 12, scale: 2 },\r\n MMK: { precision: 12, scale: 2 },\r\n TZS: { precision: 12, scale: 2 },\r\n THB: { precision: 12, scale: 2 },\r\n TMT: { precision: 12, scale: 2 },\r\n SAR: { precision: 12, scale: 2 },\r\n UYU: { precision: 12, scale: 2 },\r\n BIF: { precision: 12, scale: 0 },\r\n MVR: { precision: 12, scale: 2 },\r\n RUB: { precision: 12, scale: 2 },\r\n GTQ: { precision: 12, scale: 2 },\r\n SCR: { precision: 12, scale: 2 },\r\n IQD: { precision: 12, scale: 3 },\r\n UAH: { precision: 12, scale: 2 },\r\n BYN: { precision: 12, scale: 2 },\r\n VES: { precision: 12, scale: 2 },\r\n BOB: { precision: 12, scale: 2 },\r\n SGD: { precision: 12, scale: 2 },\r\n ZMW: { precision: 12, scale: 2 },\r\n CZK: { precision: 12, scale: 2 },\r\n TJS: { precision: 12, scale: 2 },\r\n DOP: { precision: 12, scale: 2 },\r\n AZN: { precision: 12, scale: 2 },\r\n PAB: { precision: 12, scale: 2 },\r\n STN: { precision: 12, scale: 2 },\r\n SDG: { precision: 12, scale: 2 },\r\n BWP: { precision: 12, scale: 2 },\r\n BHD: { precision: 12, scale: 3 },\r\n CAD: { precision: 12, scale: 2 },\r\n MNT: { precision: 12, scale: 2 },\r\n MOP: { precision: 12, scale: 2 },\r\n HTG: { precision: 12, scale: 2 },\r\n KZT: { precision: 12, scale: 2 },\r\n LBP: { precision: 12, scale: 2 },\r\n SYP: { precision: 12, scale: 2 },\r\n TWD: { precision: 12, scale: 2 },\r\n MZN: { precision: 12, scale: 2 },\r\n ANG: { precision: 12, scale: 2 },\r\n SEK: { precision: 12, scale: 2 },\r\n KMF: { precision: 12, scale: 0 },\r\n AWG: { precision: 12, scale: 2 },\r\n };\r\n\r\n constructor(private readonly localeService: LocaleService) {}\r\n\r\n getCurrencySymbol({ currency }: { currency: string }): string {\r\n const numberFormat = new Intl.NumberFormat(this.localeService.getLocaleOptions().locale, {\r\n style: \"currency\",\r\n currency: currency ?? \"BRL\",\r\n currencyDisplay: \"narrowSymbol\",\r\n maximumFractionDigits: 5,\r\n });\r\n\r\n return numberFormat.formatToParts(1).find((x) => x.type === \"currency\")?.value ?? \"\";\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\nimport { LocaleService } from \"../locale.service\";\nimport BigNumber from \"bignumber.js\";\nimport { CurrencyService } from \"../../../utils/currency/currency.service\";\nimport { isNullOrUndefined } from \"../../utils/utils\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class NumericService {\n constructor(\n private readonly localeService: LocaleService,\n private readonly currencyService: CurrencyService\n ) {}\n\n /**\n * Wrapper around Intl.NumberFormat that returns the localized value using the user's locale by default(platform's preferential language).\n *\n * This method should only be used after the localeService has been initialized by the host application, either by a resolver or a manual call.\n *\n * Can be overwritten by the provided Intl.NumberFormatOptions.\n *\n * Documentation is available at {@link https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat Intl.NumberFormatOptions}.\n *\n * @param {number | string | BigNumber} value The value to be formatted.\n * @param options Locale and numberFormatOptions that overwrites the default Intl.NumberFormatOptions.\n * @return `string` The formatted value.\n */\n instant(\n value: number | string | BigNumber,\n options?: {\n locale?: string;\n numberFormatOptions?: Intl.NumberFormatOptions;\n }\n ): string {\n if (isNullOrUndefined(value))\n return null;\n\n options = {\n ...options,\n locale: options?.locale ?? this.localeService.getLocaleOptions()?.locale ?? \"pt-BR\",\n numberFormatOptions: {\n useGrouping: true,\n ...options?.numberFormatOptions,\n currency:\n options?.numberFormatOptions?.style === \"currency\" ? (options?.numberFormatOptions?.currency ?? \"BRL\") : undefined,\n currencyDisplay:\n options?.numberFormatOptions?.style === \"currency\"\n ? (options?.numberFormatOptions?.currencyDisplay ?? \"narrowSymbol\")\n : undefined,\n minimumFractionDigits:\n options?.numberFormatOptions?.minimumFractionDigits ??\n this.getCurrencyMinimumFractionDigits(options?.numberFormatOptions?.currency),\n },\n };\n\n options.numberFormatOptions[\"roundingMode\"] = \"trunc\";\n\n // From https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat\n return new Intl.NumberFormat(options.locale, options.numberFormatOptions).format(\n this.getType(value) === \"number\" || this.getType(value) === \"string\" ? value : ((value as BigNumber).toString() as any)\n );\n }\n\n private getCurrencyMinimumFractionDigits(currency: string): number {\n if (!currency) return null;\n\n return this.currencyService.currencies[currency.toUpperCase()]?.scale;\n }\n\n private getType(value: unknown): string {\n // From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof\n\n if (value === null) {\n return \"null\";\n }\n\n const baseType = typeof value;\n\n // Primitive types\n if (baseType !== \"object\" && baseType !== \"function\") {\n return baseType;\n }\n\n // Symbol.toStringTag often specifies the \"display name\" of the\n // object's class. It's used in Object.prototype.toString().\n const tag = value[Symbol.toStringTag];\n\n if (typeof tag === \"string\") {\n return tag;\n }\n\n // If it's a function whose source code starts with the \"class\" keyword\n if (baseType === \"function\" && Function.prototype.toString.call(value).startsWith(\"class\")) {\n return \"class\";\n }\n\n // The name of the constructor; for example `Array`, `GeneratorFunction`,\n // `Number`, `String`, `Boolean` or `MyCustomClass`\n const className = value.constructor.name;\n\n if (typeof className === \"string\" && className !== \"\") {\n return className;\n }\n\n // At this point there's no robust way to get the type of value,\n // so we use the base implementation.\n return baseType;\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport BigNumber from \"bignumber.js\";\nimport { of } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { LocaleService } from \"../locale.service\";\nimport { NumericService } from \"../services/numeric.service\";\n\n@Pipe({ name: \"numeric\" })\nexport class NumericPipe implements PipeTransform {\n constructor(\n private readonly numericService: NumericService,\n private readonly localeService: LocaleService\n ) {}\n\n transform(\n value: number | string | BigNumber,\n options?: {\n locale?: string;\n numberFormatOptions?: Intl.NumberFormatOptions;\n }\n ) {\n return options?.locale\n ? of(this.numericService.instant(value, options))\n : this.localeService.getLocale().pipe(\n map((locale) =>\n this.numericService.instant(value, {\n locale,\n numberFormatOptions: options?.numberFormatOptions,\n })\n )\n );\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { ModuleWithProviders } from \"@angular/compiler/src/core\";\nimport { NgModule } from \"@angular/core\";\nimport { LocaleService } from \"./locale.service\";\nimport { LocalizedBignumberImpurePipe } from \"./pipes/localized-bignumber-impure.pipe\";\nimport { LocalizedBignumberPipe } from \"./pipes/localized-bignumber.pipe\";\nimport { LocalizedCurrencyImpurePipe } from \"./pipes/localized-currency-impure.pipe\";\nimport { LocalizedCurrencyPipe } from \"./pipes/localized-currency.pipe\";\nimport { LocalizedDateImpurePipe } from \"./pipes/localized-date-impure.pipe\";\nimport { LocalizedDatePipe } from \"./pipes/localized-date.pipe\";\nimport { LocalizedNumberPipe } from \"./pipes/localized-number.pipe\";\nimport { LocalizedTimeImpurePipe } from \"./pipes/localized-time-impure.pipe\";\nimport { LocalizedTimePipe } from \"./pipes/localized-time.pipe\";\nimport { NumericPipe } from \"./pipes/numeric.pipe\";\n\n@NgModule({\n imports: [CommonModule],\n exports: [\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedTimePipe,\n LocalizedNumberPipe,\n LocalizedCurrencyImpurePipe,\n LocalizedDateImpurePipe,\n LocalizedTimeImpurePipe,\n LocalizedBignumberPipe,\n LocalizedBignumberImpurePipe,\n NumericPipe\n ],\n declarations: [\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedTimePipe,\n LocalizedNumberPipe,\n LocalizedCurrencyImpurePipe,\n LocalizedDateImpurePipe,\n LocalizedTimeImpurePipe,\n LocalizedBignumberPipe,\n LocalizedBignumberImpurePipe,\n NumericPipe\n ],\n})\nexport class LocaleModule {\n public static forRoot(): ModuleWithProviders {\n return {\n ngModule: LocaleModule,\n providers: [\n LocaleService,\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedTimePipe,\n LocalizedNumberPipe,\n LocalizedCurrencyImpurePipe,\n LocalizedDateImpurePipe,\n LocalizedTimeImpurePipe,\n LocalizedBignumberPipe,\n LocalizedBignumberImpurePipe,\n NumericPipe\n ],\n };\n }\n\n public static forChild(): ModuleWithProviders {\n return {\n ngModule: LocaleModule,\n };\n }\n}\n","import {\n Directive,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Injector,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { AlignmentOptions, CurrencyMaskDirective } from \"@seniorsistemas/ng2-currency-mask\";\nimport { first } from \"rxjs/operators\";\nimport { LocaleService } from \"../locale\";\n\n@Directive({\n selector: \"input[sBignumberInput]\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BignumberInputDirective),\n multi: true,\n },\n ],\n})\nexport class BignumberInputDirective extends CurrencyMaskDirective implements OnInit, OnChanges {\n @Input()\n public precision = 15;\n\n @Input()\n public scale = 0;\n\n @Input()\n public decimalSeparator: string;\n\n @Input()\n public thousandsSeparator: string;\n\n @Input()\n public alignTo = AlignmentOptions.LEFT;\n\n @Input()\n public allowNegative = true;\n\n @Input()\n @HostBinding(\"attr.placeholder\")\n public placeholder: string;\n\n @HostBinding(\"attr.maxLength\")\n public maxLength: number;\n\n @Output()\n public pasteRejected = new EventEmitter<string>();\n\n private _maxLength: number;\n private readonly _angularComponentsLocaleService: LocaleService;\n\n constructor(injector: Injector) {\n super(injector);\n\n this._angularComponentsLocaleService = injector.get(LocaleService);\n this.onLocaleService();\n }\n\n public ngOnInit(): void {\n this.updateVariables();\n\n super.ngOnInit();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n const placeholderChange = changes.placeholder && changes.placeholder.currentValue;\n if (!placeholderChange && this.scale) {\n this.placeholder = `0${this.decimalSeparator}${\"\".padEnd(this.scale, \"0\")}`;\n }\n\n if (\n changes.scale ||\n changes.decimalSeparator ||\n changes.thousandsSeparator ||\n changes.alignTo ||\n changes.precision ||\n changes.allowNegative\n ) {\n this.updateVariables();\n }\n }\n\n @HostListener(\"paste\", [\"$event\"])\n public onPaste(event: ClipboardEvent): void {\n const pastedText = event.clipboardData?.getData(\"text\") ?? \"\";\n const numericText = pastedText.replace(new RegExp(`\\\\${this.thousandsSeparator}`, \"g\"), \"\").replace(this.decimalSeparator, \".\");\n const [intPart, decimalPart = \"\"] = numericText.split(\".\");\n const totalDigits = intPart.replace(/\\D/g, \"\").length + decimalPart.slice(0, this.scale).length;\n\n if (totalDigits > this.precision) {\n event.preventDefault();\n this.pasteRejected.emit(pastedText);\n }\n }\n\n @HostListener(\"keypress\", [\"$event\"])\n public onKeypress(event: KeyboardEvent) {\n const code = event.code;\n\n if (code === \"Minus\" || code === \"NumpadSubtract\") {\n if (this.allowNegative) {\n this.maxLength = this._maxLength + 1;\n }\n } else if (code === \"Equal\" || code === \"NumpadAdd\") {\n this.maxLength = this._maxLength;\n }\n }\n\n /**\n * Update the options values according to the directive input values.\n */\n private updateVariables(): void {\n this.options = {\n align: this.alignTo,\n decimalSeparator: this.decimalSeparator,\n thousandsSeparator: this.thousandsSeparator ?? \".\",\n scale: this.scale || 0,\n prefix: \"\",\n suffix: \"\",\n allowNegative: this.allowNegative,\n };\n this.calculateMaxLength();\n }\n\n /**\n * Responsible to calculate the field maximum length considering the separators.\n */\n private calculateMaxLength(): void {\n const decSepLength = this.decimalSeparator.length;\n const thoSepLength = this.thousandsSeparator?.length ?? 1;\n\n let maxLength = this.precision + (this.scale ? decSepLength : 0);\n maxLength += Math.ceil((this.precision - (this.scale ? this.scale : 0)) / 3 - 1) * thoSepLength;\n\n this._maxLength = maxLength;\n this.maxLength = maxLength;\n }\n\n private onLocaleService(): void {\n this._angularComponentsLocaleService\n .getLocale()\n .pipe(first())\n .subscribe(() => {\n this.decimalSeparator = this.decimalSeparator ?? this._angularComponentsLocaleService.getDecimalSeparator();\n this.thousandsSeparator = this.thousandsSeparator ?? this._angularComponentsLocaleService.getGroupingSeparator();\n });\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { BignumberInputDirective } from \"./bignumber-input.directive\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [BignumberInputDirective],\n exports: [BignumberInputDirective],\n})\nexport class BignumberInputModule {}\n","import { Component, OnInit, Input, OnDestroy } from \"@angular/core\";\nimport { ActivatedRoute, Router, NavigationEnd, PRIMARY_OUTLET } from \"@angular/router\";\nimport { MenuItem } from \"primeng/api\";\nimport { Subject } from \"rxjs\";\nimport { filter, takeUntil } from \"rxjs/operators\";\n\n@Component({\n selector: `s-breadcrumb`,\n templateUrl: `./breadcrumb.component.html`,\n})\nexport class BreadcrumbComponent implements OnDestroy {\n @Input() public homeUrl: string;\n @Input() public targetHomeUrl: string = \"_self\";\n public home: MenuItem;\n public items: MenuItem[];\n public title: string;\n\n private ngUnsubscribe = new Subject();\n\n constructor(private activatedRoute: ActivatedRoute, private router: Router) {\n this.router.events\n .pipe(takeUntil(this.ngUnsubscribe), filter(event => event instanceof NavigationEnd))\n .subscribe(() => this.onNavigationEnd());\n }\n\n private onNavigationEnd() {\n const currentRoute = this.activatedRoute.root;\n const validRoutes: ActivatedRoute[] = this.getValidChildren(currentRoute);\n\n this.title = this.getCurrentTitle(validRoutes);\n this.home = this.getCurrentHome(validRoutes);\n this.items = this.getCurrentItems(validRoutes);\n }\n\n private getValidChildren(route: ActivatedRoute): ActivatedRoute[] {\n const valid = route.routeConfig && route.routeConfig.path && route.routeConfig.component && route.outlet === PRIMARY_OUTLET;\n return route.children.reduce((validRoutes, child) => [...validRoutes, ...this.getValidChildren(child)], valid ? [route] : []);\n }\n\n private getCurrentTitle(routes: ActivatedRoute[]) {\n const last = routes[routes.length - 1];\n if (last && last.routeConfig) return this.getTitle(last);\n }\n\n private getCurrentHome(routes: ActivatedRoute[]) {\n let home;\n\n if (this.homeUrl) home = { url: this.homeUrl, icon: \"fa fa-home\", target: this.targetHomeUrl };\n else if (routes.length) home = { ...this.getMenuItem(routes[0], routes.length === 1), icon: \"fa fa-home\" };\n\n return home;\n }\n\n private getCurrentItems(routes: ActivatedRoute[]) {\n if (!routes.length) return;\n const items = this.homeUrl ? routes : routes.slice(1);\n if (items.length) return items.map((route, i) => this.getMenuItem(route, i === routes.length - 1));\n }\n\n private getMenuItem(route: ActivatedRoute, disabled = false) {\n const label = this.getTitle(route);\n const routes = route.pathFromRoot;\n const routerLink = routes\n .slice(0, routes.indexOf(route) + 1)\n .reduce((result, item) => [...result, ...item.snapshot.url.map(url => url.path)], [\"/\"]);\n\n return {\n label,\n routerLink,\n queryParams: route.snapshot.queryParams,\n routerLinkActiveOptions: { exact: true },\n disabled,\n };\n }\n\n private getTitle(route: ActivatedRoute) {\n const { snapshot, routeConfig } = route;\n const title = snapshot.data.routeTitle;\n if (!title) throw new Error(`No routeTitle defined for the route /${routeConfig.path}`);\n return title;\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { BreadcrumbModule as PrimeBreadcrumbModule } from \"primeng/breadcrumb\";\n\nimport { BreadcrumbComponent } from \"./breadcrumb.component\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n imports: [CommonModule, PrimeBreadcrumbModule, RouterModule],\n declarations: [BreadcrumbComponent],\n exports: [BreadcrumbComponent, RouterModule],\n})\nexport class BreadcrumbModule {}\n","\nexport enum ButtonAnimation {\n Rotate = 'rotate',\n}","export enum CardTemplateTypes {\n Header = \"header\",\n Body = \"body\",\n Footer = \"footer\",\n}","import { Component, EventEmitter, HostBinding, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from \"@angular/core\";\n\nimport { MenuItem } from \"primeng/api\";\nimport { DomHandler } from \"primeng/dom\";\nimport { TieredMenu } from \"primeng/tieredmenu\";\n\nimport { ButtonAnimation } from \"./models/button-animation\";\nimport { ButtonBadgeConfig } from \"./models/button-badge-config\";\nimport { ButtonPriority } from \"./models/button-priority\";\nimport { ButtonSize } from \"./models/button-size\";\nimport { TieredMenuItemData } from \"../tiered-menu\";\n@Component({\n selector: \"s-button\",\n templateUrl: \"./button.component.html\",\n styleUrls: [\"./button.component.scss\"],\n})\nexport class ButtonComponent implements OnInit, OnChanges {\n public static nextId = 0;\n\n @HostBinding(\"style.min-width\")\n public minWidth = \"40px\";\n\n @Input()\n public id = `s-button-${ButtonComponent.nextId++}`;\n\n @Input()\n public label: string;\n\n @Input()\n public tooltip: string;\n\n @Input()\n public tooltipPosition: \"top\" | \"right\" | \"bottom\" | \"left\" = \"top\";\n\n @Input()\n public iconClass: string;\n\n @Input()\n public rightIconClass: string;\n\n @Input()\n public caret = true;\n\n @Input()\n public styleClass: string;\n\n @Input()\n public baseZIndex = 0;\n\n @Input()\n public disabled = false;\n\n @Input()\n public auxiliary = false;\n\n @Input()\n public type = \"button\";\n\n @Input()\n public priority: ButtonPriority = ButtonPriority.Primary;\n\n /**\n * @deprecated Use `menuOptions` instead.\n */\n @Input()\n public model: MenuItem[] = [];\n\n @Input()\n public menuOptions: TieredMenuItemData[] = [];\n\n @Input()\n public size = ButtonSize.Default;\n\n @Input()\n public slide: boolean;\n\n @Input()\n public animation: ButtonAnimation;\n\n @Input()\n public badge: ButtonBadgeConfig;\n\n @Input()\n public iconColor: string;\n\n @Output()\n public onClick: EventEmitter<any> = new EventEmitter();\n\n public tooltipZIndex: number;\n\n // TODO: Remover na próxima major.\n @ViewChild(TieredMenu, { static: true })\n private menu: TieredMenu;\n\n public ngOnInit() {\n this.onClick.subscribe((event: any) => {\n if (!this.model || !this.model.length) return;\n\n // TODO: Remover na próxima major.\n this.menu.model = this.model;\n this.menu.toggle(event);\n });\n }\n\n public validateSlideButton() {\n return this.slide && (this.priority == ButtonPriority.Default || this.priority == ButtonPriority.Link) && this.label.length;\n }\n\n // TODO: Remover na próxima major.\n public isOpen() {\n return this.model && this.model.length && this.menu.visible;\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n const hasIcon = this.iconClass;\n const hasText = this.label;\n const isMultiple = this.model && this.model.length;\n\n if (hasText || (hasIcon && isMultiple)) this.minWidth = \"80px\";\n if (hasText && hasIcon && isMultiple) this.minWidth = \"100px\";\n }\n\n public updateTooltipZIndex() {\n this.tooltipZIndex = this.baseZIndex + ++DomHandler.zindex;\n }\n\n public isRotateAnimation() {\n return this.animation === ButtonAnimation.Rotate;\n }\n}\n","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-tiered-menu-divider\",\n templateUrl: \"./tiered-menu-divider.component.html\",\n styleUrls: [\"./tiered-menu-divider.component.scss\"],\n})\nexport class TieredMenuDividerComponent { }","import { Injectable, EventEmitter } from '@angular/core';\n\nimport { TieredMenuItemInternalData } from '../models/tiered-menu-item-internal-data';\n\n@Injectable()\nexport class TieredMenuEventService {\n public incrementCurrentItemEvent = new EventEmitter();\n public decrementCurrentItemEvent = new EventEmitter();\n public closeAllMenusEvent = new EventEmitter();\n public selectItemEvent = new EventEmitter<TieredMenuItemInternalData>();\n public openItemMenuEvent = new EventEmitter<TieredMenuItemInternalData>();\n public closeItemMenuEvent = new EventEmitter<TieredMenuItemInternalData>();\n public createMenuEvent = new EventEmitter<TieredMenuItemInternalData>();\n}","import { Component, HostListener, Input } from \"@angular/core\";\n\nimport { TieredMenuEventService } from \"../../services/tiered-menu.event.service\";\nimport { TieredMenuItemInternalData } from \"../../models\";\n\n@Component({\n selector: \"s-tiered-menu-item\",\n templateUrl: \"./tiered-menu-item.component.html\",\n styleUrls: [\"./tiered-menu-item.component.scss\"],\n})\nexport class TieredMenuItemComponent {\n @Input()\n public item: TieredMenuItemInternalData;\n\n @Input()\n public focused = false;\n\n @Input()\n public highlight = false;\n\n @Input()\n public triggerEvent: \"click\" | \"hover\" = \"click\";\n\n @Input()\n public closeOnClick = false;\n\n private _showTimeout?: number;\n\n constructor(\n private readonly _tieredMenuEventService: TieredMenuEventService,\n ) { }\n\n @HostListener(\"click\")\n @HostListener(\"touchend\")\n public onClick(): void {\n if (this.item.disabled) return;\n\n if (this.item.submenu) {\n if (!this.item.isOpen) {\n this._tieredMenuEventService.openItemMenuEvent.emit(this.item);\n } else if(this.closeOnClick) {\n this._tieredMenuEventService.closeItemMenuEvent.emit(this.item);\n }\n } else {\n this._tieredMenuEventService.selectItemEvent.emit(this.item);\n }\n }\n\n @HostListener(\"mouseenter\")\n public onMouseEnter(): void {\n if (this.item.disabled) return;\n\n if (this.triggerEvent === \"hover\" && !this.item.isOpen) {\n this._showTimeout = window.setTimeout(() => {\n this._tieredMenuEventService.openItemMenuEvent.emit(this.item);\n }, 300);\n }\n }\n\n @HostListener(\"mouseleave\")\n public onMouseLeave(): void {\n window.clearTimeout(this._showTimeout);\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { TieredMenuItemData } from \"../models/tiered-menu-item-data\";\nimport { TieredMenuItemInternalData } from \"../models/tiered-menu-item-internal-data\";\n\n@Injectable()\nexport class TieredMenuService {\n public currentItem: TieredMenuItemInternalData;\n public currentItems: TieredMenuItemInternalData[] = [];\n public items: TieredMenuItemInternalData[] = [];\n\n public normalizeData(items: TieredMenuItemData[], parent?: TieredMenuItemInternalData): TieredMenuItemInternalData[] {\n return items.map((i: TieredMenuItemInternalData) => {\n const item = {\n visible: true,\n ...i,\n };\n if (item.submenu) {\n item.submenu = this.normalizeData(item.submenu, item);\n }\n item.id = this._generateId();\n item.parent = parent;\n item.isOpen = false;\n return item;\n });\n }\n\n public markAllItemsAsClosed(items: TieredMenuItemInternalData[]): TieredMenuItemInternalData[] {\n return items.map((i: TieredMenuItemInternalData) => {\n const item = {...i};\n if (item.submenu) {\n item.submenu = this.markAllItemsAsClosed(item.submenu);\n }\n item.isOpen = false;\n return item;\n });\n }\n\n public searchTheHierarchy(itemA: TieredMenuItemInternalData, itemB: TieredMenuItemInternalData) {\n let item = itemB;\n while(item) {\n if (item === itemA) {\n return true;\n }\n item = item.parent;\n }\n return false;\n }\n\n public cloneItems(items: TieredMenuItemInternalData[]): TieredMenuItemInternalData[] {\n return JSON.parse(JSON.stringify(items));\n }\n\n private _generateId(): string {\n return `id-${Math.random().toString(36).substring(2, 9)}-${Math.random().toString(36).substring(2, 9)}-${Math.random().toString(36).substring(2, 9)}`\n } \n}","export const enableScroll = (): void => {\n document.body.style.overflow = \"auto\";\n}\n\nexport const disabledScroll = (): void => {\n document.body.style.overflow = \"hidden\";\n}","import { Component, HostListener, OnDestroy, OnInit } from \"@angular/core\";\n\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { TieredMenuItemInternalData } from \"../../models/tiered-menu-item-internal-data\";\nimport { TieredMenuEventService } from \"../../services/tiered-menu.event.service\";\nimport { TieredMenuService } from \"../../services/tiered-menu.service\";\nimport { enableScroll, disabledScroll } from \"../../utils\";\n@Component({\n templateUrl: \"./tiered-menu-nested.component.html\",\n styleUrls: [\"./tiered-menu-nested.component.scss\"],\n})\nexport class TieredMenuNestedComponent implements OnInit, OnDestroy {\n public items: TieredMenuItemInternalData[];\n public top = 0;\n public left = 0;\n // public maxHeight = 0;\n\n // Saves the last opened item to close it when a new one is opened\n private _lastOpenItem: TieredMenuItemInternalData;\n private _unsubscribe$ = new Subject<void>();\n\n @HostListener(\"window:resize\")\n public onResize(): void {\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n }\n\n @HostListener(\"document:click\", [\"$event\"])\n public onDocumentClick(event: MouseEvent): void {\n // Closing menu when clicked outside.\n const target = event.target as Element;\n const clickedInside = target.closest(\"s-tiered-menu-item\") || target.closest(\"s-tiered-menu-divider\");\n if (!clickedInside) {\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n }\n }\n\n @HostListener(\"document:keydown\", [\"$event\"])\n public onKeydownHandler(event: KeyboardEvent) {\n switch (event.key) {\n case \"Escape\":\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n break;\n case \" \":\n case \"Enter\":\n this._tieredMenuEventService.selectItemEvent.emit(this.tieredMenuService.currentItem);\n break;\n case \"ArrowLeft\":\n // When nested I need a reference to the current item's parent item, otherwise just the current item.\n this._tieredMenuEventService.closeItemMenuEvent.emit(this.tieredMenuService.currentItem.parent);\n break;\n case \"ArrowRight\":\n this._tieredMenuEventService.openItemMenuEvent.emit(this.tieredMenuService.currentItem);\n break;\n case \"ArrowUp\":\n this._tieredMenuEventService.decrementCurrentItemEvent.emit();\n break;\n case \"ArrowDown\":\n this._tieredMenuEventService.incrementCurrentItemEvent.emit();\n break;\n }\n }\n\n constructor(\n public readonly tieredMenuService: TieredMenuService,\n private readonly _tieredMenuEventService: TieredMenuEventService,\n ) { }\n\n public ngOnInit(): void {\n this.tieredMenuService.currentItems = this.items;\n this._subscribeEvents();\n disabledScroll();\n }\n \n public ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n enableScroll();\n }\n\n private _incrementCurItem(): void {\n if (!this.tieredMenuService.currentItem) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];\n return;\n }\n\n const curIndex = this.tieredMenuService.currentItems.indexOf(this.tieredMenuService.currentItem) + 1;\n\n if (curIndex < this.tieredMenuService.currentItems.length) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[curIndex];\n } else {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];\n }\n\n if (this.tieredMenuService.currentItem.divider) {\n this._incrementCurItem();\n }\n }\n\n private _decrementCurItem(): void {\n if (!this.tieredMenuService.currentItem) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];\n return;\n }\n\n const curIndex = this.tieredMenuService.currentItems.indexOf(this.tieredMenuService.currentItem) - 1;\n\n if (curIndex >= 0) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[curIndex];\n } else {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[this.tieredMenuService.currentItems.length - 1];\n }\n\n if (this.tieredMenuService.currentItem.divider) {\n this._decrementCurItem();\n }\n }\n\n private _closeItem(item: TieredMenuItemInternalData): void {\n let itemAux = this._lastOpenItem;\n\n while (itemAux && itemAux != item) {\n itemAux.isOpen = false;\n itemAux = itemAux.parent;\n }\n\n item.isOpen = false;\n\n this.tieredMenuService.currentItem = itemAux ?? this.tieredMenuService.items[0];\n this.tieredMenuService.currentItems = itemAux?.parent?.submenu || this.tieredMenuService.items;\n }\n\n private _openItem(item: TieredMenuItemInternalData): void {\n if (item?.submenu) {\n item.isOpen = true;\n this.tieredMenuService.currentItems = item.submenu;\n\n // Only has focus if there has already been interaction.\n if (this.tieredMenuService.currentItem) {\n this.tieredMenuService.currentItem = item.submenu[0];\n }\n\n this._lastOpenItem = item;\n }\n }\n\n private _subscribeEvents(): void {\n this._tieredMenuEventService.incrementCurrentItemEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe(() => {\n this._incrementCurItem();\n });\n\n this._tieredMenuEventService.decrementCurrentItemEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe(() => {\n this._decrementCurItem();\n });\n\n this._tieredMenuEventService.selectItemEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: TieredMenuItemInternalData) => {\n if (item.command) {\n item.command();\n // Close all menus after the item was selected.\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n }\n });\n\n this._tieredMenuEventService.openItemMenuEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: TieredMenuItemInternalData) => {\n if (!this.tieredMenuService.currentItems.includes(item)) {\n let itemAux = this._lastOpenItem;\n\n while (itemAux?.parent?.parent) {\n itemAux = itemAux.parent;\n }\n\n this._tieredMenuEventService.closeItemMenuEvent.emit(itemAux.parent ?? itemAux);\n }\n\n this._lastOpenItem = item;\n\n this._openItem(item);\n });\n\n this._tieredMenuEventService.closeItemMenuEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: TieredMenuItemInternalData) => {\n if (item) {\n this._closeItem(item);\n }\n });\n }\n}\n","import {\n ApplicationRef,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n EmbeddedViewRef,\n EventEmitter,\n HostListener,\n Injector,\n OnDestroy,\n OnInit,\n Output,\n} from \"@angular/core\";\n\nimport { Subject } from \"rxjs\";\n\nimport { takeUntil } from \"rxjs/operators\";\nimport { TieredMenuItemInternalData } from \"../../models/tiered-menu-item-internal-data\";\nimport { TieredMenuEventService } from \"../../services/tiered-menu.event.service\";\nimport { TieredMenuService } from \"../../services/tiered-menu.service\";\nimport { enableScroll, disabledScroll } from \"../../utils\";\n\n@Component({\n selector: \"s-tiered-menu\",\n templateUrl: \"./tiered-menu.component.html\",\n styleUrls: [\"./tiered-menu.component.scss\"],\n})\nexport class TieredMenuComponent implements OnInit, OnDestroy {\n public items: TieredMenuItemInternalData[];\n public top = 0;\n public left = 0;\n public menuTriggerEvent: \"click\" | \"hover\" = \"hover\";\n\n private _componentRef: ComponentRef<TieredMenuComponent> = null;\n private _menuDivElement?: HTMLElement;\n private _unsubscribe$ = new Subject<void>();\n\n @Output()\n public destroyRequest = new EventEmitter<boolean>();\n\n constructor(\n private readonly _appRef: ApplicationRef,\n private readonly _componentFactoryResolver: ComponentFactoryResolver,\n private readonly _injector: Injector,\n private readonly _changeDetectorRef: ChangeDetectorRef,\n public readonly tieredMenuService: TieredMenuService,\n private readonly _tieredMenuEventService: TieredMenuEventService\n ) {}\n\n @HostListener(\"window:resize\")\n public onResize(): void {\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n }\n\n @HostListener(\"document:click\", [\"$event\"])\n public onDocumentClick(event: MouseEvent): void {\n // Closing menu when clicked outside.\n const target = event.target as Element;\n const clickedInside = target.closest(\"s-tiered-menu-item\") || target.closest(\"s-tiered-menu-divider\");\n if (!clickedInside) {\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n }\n }\n\n @HostListener(\"document:keydown\", [\"$event\"])\n public onKeydownHandler(event: KeyboardEvent) {\n switch (event.key) {\n case \"Escape\":\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n break;\n case \" \":\n case \"Enter\":\n if (!this.tieredMenuService.currentItem.disabled) {\n this._tieredMenuEventService.selectItemEvent.emit(this.tieredMenuService.currentItem);\n }\n break;\n case \"ArrowLeft\":\n if (this.items.includes(this.tieredMenuService.currentItem)) {\n this._tieredMenuEventService.closeItemMenuEvent.emit(this.tieredMenuService.currentItem);\n this._changeDetectorRef.detectChanges();\n }\n break;\n case \"ArrowRight\":\n if (!this.tieredMenuService.currentItem.disabled && this.items.includes(this.tieredMenuService.currentItem)) {\n this._tieredMenuEventService.openItemMenuEvent.emit(this.tieredMenuService.currentItem);\n event.stopImmediatePropagation();\n }\n break;\n case \"ArrowUp\":\n if (!this.tieredMenuService.currentItem || this.items.includes(this.tieredMenuService.currentItem)) {\n this._tieredMenuEventService.decrementCurrentItemEvent.emit();\n event.stopImmediatePropagation();\n }\n break;\n case \"ArrowDown\":\n if (!this.tieredMenuService.currentItem || this.items.includes(this.tieredMenuService.currentItem)) {\n this._tieredMenuEventService.incrementCurrentItemEvent.emit();\n event.stopImmediatePropagation();\n }\n break;\n }\n }\n\n public ngOnInit(): void {\n this.tieredMenuService.currentItems = this.items;\n this._subscribeEvents();\n disabledScroll();\n }\n\n public ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n\n private _incrementCurItem(): void {\n if (!this.tieredMenuService.currentItem) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];\n return;\n } else if (!this.items.includes(this.tieredMenuService.currentItem)) {\n // Checking if it is the current menu.\n return;\n }\n\n const currentIndex = this.tieredMenuService.currentItems.indexOf(this.tieredMenuService.currentItem) + 1;\n\n if (currentIndex < this.tieredMenuService.currentItems.length) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[currentIndex];\n } else {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];\n }\n\n if (this.tieredMenuService.currentItem.divider) {\n this._incrementCurItem();\n }\n }\n\n private _decrementCurItem(): void {\n if (!this.tieredMenuService.currentItem) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];\n return;\n // Checking if it is the current menu.\n } else if (!this.items.includes(this.tieredMenuService.currentItem)) {\n return;\n }\n\n const curIndex = this.tieredMenuService.currentItems.indexOf(this.tieredMenuService.currentItem) - 1;\n\n if (curIndex >= 0) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[curIndex];\n } else {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[this.tieredMenuService.currentItems.length - 1];\n }\n\n if (this.tieredMenuService.currentItem.divider) {\n this._decrementCurItem();\n }\n }\n\n private _createMenu(items: TieredMenuItemInternalData[], position: any): void {\n if (!this._componentRef && items) {\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(TieredMenuComponent);\n this._componentRef = componentFactory.create(this._injector);\n this._appRef.attachView(this._componentRef.hostView);\n const domElem = (this._componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n\n // Setting the menu items.\n this._componentRef.instance.items = items;\n\n // Subscribe menu events.\n this._componentRef.instance.destroyRequest.subscribe((propagate: boolean) => {\n this._destroy(propagate);\n });\n\n this._menuDivElement = domElem.querySelector(\".menu\");\n this._setMenuPosition(position);\n }\n }\n\n private _destroy(propagate = true): void {\n if (this._componentRef !== null) {\n this._appRef.detachView(this._componentRef.hostView);\n this._componentRef.destroy();\n this._componentRef = null;\n this._menuDivElement = null;\n }\n\n if (propagate) {\n this.destroyRequest.emit();\n }\n }\n\n private _setMenuPosition(position: any): void {\n const ITEM_HEIGHT = 37;\n const DIVIDER_HEIGHT = 5;\n const PADDING = 8;\n\n if (this._componentRef !== null) {\n const { top, right, bottom, left } = position;\n\n const itemsCount = this._componentRef.instance.items?.reduce((count: number, item: TieredMenuItemInternalData) => {\n return !item.divider ? count + 1 : count;\n }, 0);\n\n const dividersCount = this._componentRef.instance.items?.reduce((count: number, item: TieredMenuItemInternalData) => {\n return item.divider ? count + 1 : count;\n }, 0);\n\n // I need to calculate the height of the component because the internal elements have not been created yet.\n const menuHeight = itemsCount * ITEM_HEIGHT + dividersCount * DIVIDER_HEIGHT + PADDING + 8;\n const menuWidth = this._menuDivElement.getBoundingClientRect().width;\n\n const rightFreeSpace = window.innerWidth - right;\n const bottomFreeSpace = window.innerHeight - bottom;\n\n if (rightFreeSpace > menuWidth) {\n this._componentRef.instance.left = right;\n } else {\n this._componentRef.instance.left = left - menuWidth;\n }\n\n if (bottomFreeSpace <= menuHeight) {\n this._componentRef.instance.top = Math.max(window.innerHeight - menuHeight, window.scrollY);\n } else {\n this._componentRef.instance.top = window.scrollY + top;\n }\n }\n }\n\n private _subscribeEvents(): void {\n // Increment current item event.\n this._tieredMenuEventService.incrementCurrentItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._incrementCurItem();\n });\n // Decrement current item event.\n this._tieredMenuEventService.decrementCurrentItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._decrementCurItem();\n });\n // Select item event.\n this._tieredMenuEventService.selectItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe((item: TieredMenuItemInternalData) => {\n if (item.submenu) {\n this._tieredMenuEventService.openItemMenuEvent.emit(item);\n } else if (item.command) {\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n item.command();\n }\n });\n // Close all menus event.\n this._tieredMenuEventService.closeAllMenusEvent.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._destroy();\n this.tieredMenuService.currentItem = null;\n this.tieredMenuService.currentItems = this.tieredMenuService.items;\n this.tieredMenuService.markAllItemsAsClosed(this.tieredMenuService.items);\n enableScroll();\n });\n\n // Open item menu event.\n this._tieredMenuEventService.openItemMenuEvent.pipe(takeUntil(this._unsubscribe$)).subscribe((item: TieredMenuItemInternalData) => {\n if (this.tieredMenuService.currentItem) {\n if (this.tieredMenuService.currentItem.parent === item) {\n return;\n }\n\n if (!this.tieredMenuService.searchTheHierarchy(this.tieredMenuService.currentItem.parent, item)) {\n let current = this.tieredMenuService.currentItem;\n\n current.isOpen = false;\n\n while (current?.parent !== item.parent) {\n this._tieredMenuEventService.closeItemMenuEvent.emit(current);\n this._changeDetectorRef.detectChanges();\n\n current = current.parent;\n }\n\n if (current) {\n current.isOpen = false;\n }\n }\n }\n\n if (item.submenu && !item.isOpen && this.items.includes(item)) {\n const { top, right, left, bottom } = document.querySelector(`#${item.id}`).getBoundingClientRect();\n const position = { top, right, left, bottom };\n\n this._createMenu(item.submenu, position);\n this.tieredMenuService.currentItems = item.submenu;\n this.tieredMenuService.currentItem = item.submenu[0];\n item.isOpen = true;\n }\n });\n\n // Close item menu event.\n this._tieredMenuEventService.closeItemMenuEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: TieredMenuItemInternalData) => {\n if (this.items.some((i) => i.id === item.id)) {\n if (item.parent) {\n item.parent.isOpen = false;\n } else {\n enableScroll();\n }\n this.tieredMenuService.currentItems = item?.parent?.parent?.submenu || this.tieredMenuService.items;\n this.tieredMenuService.currentItem = item.parent;\n this.destroyRequest.emit(false);\n }\n });\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { TieredMenuDirective } from \"../tiered-menu.directive\";\n\n@Injectable()\nexport class TieredMenuGlobalService {\n lastInstance: TieredMenuDirective;\n}\n","import {\n ApplicationRef,\n ChangeDetectorRef,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n DoCheck,\n ElementRef,\n EmbeddedViewRef,\n HostListener,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n} from \"@angular/core\";\n\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { TieredMenuNestedComponent } from \"./components/tiered-menu-nested/tiered-menu-nested.component\";\nimport { TieredMenuComponent } from \"./components/tiered-menu/tiered-menu.component\";\nimport { TieredMenuItemData } from \"./models/tiered-menu-item-data\";\nimport { TieredMenuEventService } from \"./services/tiered-menu.event.service\";\nimport { TieredMenuGlobalService } from \"./services/tiered-menu.global.service\";\nimport { TieredMenuService } from \"./services/tiered-menu.service\";\nimport { TieredMenuItemInternalData } from \"./models\";\nimport { enableScroll } from \"./utils\";\n\n@Directive({\n selector: \"[sTieredMenu]\",\n providers: [TieredMenuEventService, TieredMenuService],\n})\nexport class TieredMenuDirective implements OnInit, DoCheck, OnDestroy {\n @Input()\n public items: TieredMenuItemData[];\n\n @Input()\n public focusedItem: TieredMenuItemData = undefined;\n\n @Input()\n public triggerEvent: \"click\" | \"hover\" = \"click\";\n\n private _componentRef: ComponentRef<any> = null;\n private _showTimeout?: number;\n private _isNested = false;\n private _isOpen = false;\n private _unsubscribe$ = new Subject<void>();\n private _lastActiveElement: Element;\n private _previousItems: TieredMenuItemData[];\n private _itemsAreValid: boolean;\n\n constructor(\n private readonly _elementRef: ElementRef,\n private readonly _appRef: ApplicationRef,\n private readonly _componentFactoryResolver: ComponentFactoryResolver,\n private readonly _injector: Injector,\n private readonly _tieredMenuEventService: TieredMenuEventService,\n private readonly _tieredMenuService: TieredMenuService,\n private readonly _tieredMenuGlobalService: TieredMenuGlobalService,\n private readonly _changeDetectorRef: ChangeDetectorRef\n ) {}\n\n public ngOnInit(): void {\n this._itemsAreValid = !!this.items?.length;\n\n if (!this._itemsAreValid) return;\n\n this._subscribeEvents();\n }\n\n public ngDoCheck(): void {\n if (!this._itemsAreValid) return;\n\n if (!this._previousItems) {\n this._previousItems = this._tieredMenuService.cloneItems(this.items);\n }\n\n let hasChanges = false;\n\n if (this.items.length !== this._previousItems.length) {\n hasChanges = true;\n } else {\n for (let i = 0; i < this.items.length; i++) {\n if (!this._compareItems(this.items[i], this._previousItems[i])) {\n hasChanges = true;\n break;\n }\n }\n }\n\n if (hasChanges) {\n this._updateServiceItems();\n this._changeDetectorRef.detectChanges();\n this._rebuildMenu();\n }\n\n this._previousItems = this._tieredMenuService.cloneItems(this.items);\n }\n\n public ngOnDestroy(): void {\n if (!this._itemsAreValid) return;\n\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n\n this._destroy();\n }\n\n @HostListener(\"click\", [\"$event\"])\n public onClick(event: MouseEvent): void {\n if (!this._itemsAreValid) return;\n\n if (this.triggerEvent === \"click\" && !this._isOpen) {\n this._lastActiveElement = document.activeElement;\n this._createMenu();\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n private _createMenu(): void {\n this._updateServiceItems();\n\n if (!this._componentRef && this._tieredMenuService.items?.length > 0) {\n this._tieredMenuGlobalService.lastInstance?._destroy();\n this._tieredMenuGlobalService.lastInstance = this;\n\n (this._lastActiveElement as HTMLElement)?.blur();\n this._isOpen = true;\n this._isNested = document.body.clientWidth < 600;\n\n this._isNested ? this._createNestedMenu() : this._createTieredMenu();\n }\n }\n\n private _createTieredMenu(): void {\n if (!this._componentRef && this._tieredMenuService.items?.length > 0) {\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(TieredMenuComponent);\n this._componentRef = componentFactory.create(this._injector);\n\n this._appRef.attachView(this._componentRef.hostView);\n const domElem = (this._componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n this._setMenuComponentProperties();\n\n this._componentRef.instance.destroyRequest.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._destroy();\n });\n\n this._setMenuPosition();\n }\n }\n\n private _createNestedMenu(): void {\n if (!this._componentRef && this._tieredMenuService.items?.length > 0) {\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(TieredMenuNestedComponent);\n this._componentRef = componentFactory.create(this._injector);\n this._appRef.attachView(this._componentRef.hostView);\n const domElem = (this._componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n this._setMenuComponentProperties();\n this._setMenuPosition();\n }\n }\n\n private _destroy(): void {\n if (this._componentRef) {\n this._isOpen = false;\n window.clearTimeout(this._showTimeout);\n this._appRef.detachView(this._componentRef.hostView);\n\n this._componentRef.destroy();\n this._componentRef = null;\n\n this._tieredMenuService.currentItems = this._tieredMenuService.items;\n this._tieredMenuService.currentItem = this._tieredMenuService.items[0];\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n }\n }\n\n private _setMenuPosition(): void {\n const ITEM_HEIGHT = 37;\n const ITEM_WIDTH = 176;\n const DIVIDER_HEIGHT = 5;\n const PADDING = 8;\n const MARGIN = 4;\n\n if (this._componentRef !== null) {\n this._componentRef.instance.top = 8;\n\n let { bottom, left, right } = this._elementRef.nativeElement.getBoundingClientRect();\n\n const itemsCount = this._componentRef.instance.items?.reduce((count: number, item: TieredMenuItemInternalData) => {\n return !item.divider ? count + 1 : count;\n }, 0);\n\n const dividersCount = this._componentRef.instance.items?.reduce((count: number, item: TieredMenuItemInternalData) => {\n return item.divider ? count + 1 : count;\n }, 0);\n\n const menuHeight = itemsCount * ITEM_HEIGHT + dividersCount * DIVIDER_HEIGHT + PADDING + MARGIN;\n const rightFreeSpace = window.innerWidth - right;\n const bottomFreeSpace = window.innerHeight - bottom;\n\n this._componentRef.instance.top = bottom;\n this._componentRef.instance.left = left;\n\n if (bottomFreeSpace <= menuHeight) {\n this._componentRef.instance.top = Math.max(scrollY + bottom - menuHeight, 0);\n } else {\n this._componentRef.instance.top = window.scrollY + bottom + MARGIN;\n }\n\n if (rightFreeSpace > 176) {\n this._componentRef.instance.left = window.scrollX + left;\n } else {\n this._componentRef.instance.left = window.scrollX + right - ITEM_WIDTH;\n }\n\n if (this._isNested) {\n this._componentRef.instance.left = MARGIN;\n }\n }\n }\n\n private _setMenuComponentProperties(): void {\n if (this._componentRef != null) {\n this._componentRef.instance.items = this._tieredMenuService.items;\n }\n }\n\n private _subscribeEvents(): void {\n this._tieredMenuEventService.closeAllMenusEvent.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._tieredMenuService.items = this._tieredMenuService.markAllItemsAsClosed(this._tieredMenuService.items);\n this._destroy();\n enableScroll();\n });\n }\n\n private _compareItems(item1: TieredMenuItemData, item2: TieredMenuItemData): boolean {\n return JSON.stringify(item1) === JSON.stringify(item2);\n }\n\n private _rebuildMenu(): void {\n this._destroy();\n }\n\n private _updateServiceItems(): void {\n this._tieredMenuService.items = this._tieredMenuService.normalizeData(this.items);\n this._tieredMenuService.currentItems = this._tieredMenuService.items;\n\n this._tieredMenuService.currentItem =\n this._tieredMenuService.items.find((i) => i.label === this.focusedItem?.label) ?? this._tieredMenuService.items[0];\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TieredMenuDividerComponent } from \"./components/tiered-menu-divider/tiered-menu-divider.component\";\nimport { TieredMenuItemComponent } from \"./components/tiered-menu-item/tiered-menu-item.component\";\nimport { TieredMenuNestedComponent } from \"./components/tiered-menu-nested/tiered-menu-nested.component\";\nimport { TieredMenuComponent } from \"./components/tiered-menu/tiered-menu.component\";\nimport { TieredMenuGlobalService } from \"./services/tiered-menu.global.service\";\nimport { TieredMenuDirective } from \"./tiered-menu.directive\";\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n declarations: [\n TieredMenuDirective,\n TieredMenuComponent,\n TieredMenuNestedComponent,\n TieredMenuItemComponent,\n TieredMenuDividerComponent,\n ],\n exports: [TieredMenuDirective],\n providers: [TieredMenuGlobalService],\n})\nexport class TieredMenuModule { }\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { RouterModule } from \"@angular/router\";\n\nimport { TieredMenuModule as PrimengTieredMenu } from \"primeng/tieredmenu\";\n\nimport { BadgeModule } from \"../badge/badge.module\";\nimport { TieredMenuModule } from \"../tiered-menu/tiered-menu.module\";\nimport { ButtonComponent } from \"./button.component\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\n\n@NgModule({\n imports: [CommonModule, RouterModule, BadgeModule, PrimengTieredMenu, TieredMenuModule, TooltipModule],\n declarations: [ButtonComponent],\n exports: [ButtonComponent],\n})\nexport class ButtonModule { }\n","import { AfterViewChecked, Directive, HostListener, Input, OnDestroy, OnInit, Renderer2 } from \"@angular/core\";\nimport { Calendar } from \"primeng/calendar\";\n\n@Directive({\n selector: \"p-calendar[sCalendarMask]\",\n})\nexport class CalendarMaskDirective implements OnInit, OnDestroy, AfterViewChecked {\n SELECTORS = 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n\n @Input()\n public slotChar = \"_\";\n\n @Input()\n public autoClear = false;\n\n public value: any;\n public input: HTMLInputElement;\n public filled: boolean;\n\n private _mask: string;\n private defs: any;\n private tests: any[];\n private partialPosition: any;\n private firstNonMaskPos: number;\n private lastRequiredNonMaskPos: any;\n private len: number;\n private oldVal: string;\n private buffer: any;\n private defaultBuffer: string;\n private focusText: string;\n private caretTimeoutId: any;\n private androidChrome: boolean;\n private firstTime = true;\n\n private focusListener: () => void;\n private blurListener: () => void;\n private keydownListener: () => void;\n private keypressListener: () => void;\n private inputListener: () => void;\n private pasteListener: () => void;\n\n constructor(\n public host: Calendar,\n public renderer: Renderer2\n ) {}\n\n private setListeners() {\n this.input = this.host.inputfieldViewChild.nativeElement;\n this.value = this.input.value;\n\n this.focusListener = this.renderer.listen(this.input, \"focus\", () => {\n this.onInputFocus();\n });\n\n this.blurListener = this.renderer.listen(this.input, \"blur\", (event: any) => {\n this.onInputBlur(event);\n });\n\n this.keydownListener = this.renderer.listen(this.input, \"keydown\", (event: any) => {\n this.onKeyDown(event);\n });\n\n this.keypressListener = this.renderer.listen(this.input, \"keypress\", (event: any) => {\n this.onKeyPress(event);\n });\n\n this.inputListener = this.renderer.listen(this.input, \"input\", (event: any) => {\n this.onInputChange(event);\n });\n\n this.pasteListener = this.renderer.listen(this.input, \"paste\", (event: any) => {\n this.handleInputChange(event);\n });\n }\n\n public ngOnInit() {\n const ua = navigator.userAgent;\n this.androidChrome = /chrome/i.test(ua) && /android/i.test(ua);\n\n this.createMaskFromDateFormat();\n this.initMask();\n }\n\n get mask(): string {\n return this._mask;\n }\n\n set mask(val: string) {\n this._mask = val;\n\n this.initMask();\n this.writeValue(\"\");\n }\n\n public writeValue(value: any): void {\n this.value = value;\n\n if (this.input) {\n if (this.value == undefined) {\n this.input.value = \"\";\n } else {\n this.input.value = this.value;\n }\n\n this.checkVal();\n this.focusText = this.input.value;\n this.updateFilledState();\n }\n }\n\n public onInputBlur(e: any) {\n this.checkVal();\n this.updateFilledState();\n\n if (this.value != this.focusText) {\n if (\n !this.input.disabled &&\n (this.value === undefined || this.value === null || (this.value as string).indexOf(this.slotChar) >= 0)\n ) {\n this.value = \"\";\n e.target.value = \"\";\n this.host.updateModel(null);\n }\n\n this.updateModel(e);\n const event = document.createEvent(\"HTMLEvents\");\n event.initEvent(\"change\", true, false);\n this.input.dispatchEvent(event);\n }\n }\n\n public onKeyDown(e: any) {\n if (this.host.readonlyInput) {\n return;\n }\n\n const k = e.which || e.keyCode;\n const iPhone = /iphone/i.test(navigator.userAgent);\n let pos;\n let begin;\n let end;\n this.oldVal = this.input.value;\n\n // Backspace, delete, and escape get special treatment\n if (k === 8 || k === 46 || (iPhone && k === 127)) {\n pos = this.caret();\n begin = pos.begin;\n end = pos.end;\n\n if (end - begin === 0) {\n begin = k !== 46 ? this.seekPrev(begin) : (end = this.seekNext(begin - 1));\n end = k === 46 ? this.seekNext(end) : end;\n }\n\n this.clearBuffer(begin, end);\n this.shiftL(begin, end - 1);\n this.updateModel(e);\n\n e.preventDefault();\n } else if (k === 13) {\n // Enter\n this.onInputBlur(e);\n this.updateModel(e);\n } else if (k === 27) {\n // Escape\n this.input.value = this.focusText;\n this.caret(0, this.checkVal());\n this.updateModel(e);\n e.preventDefault();\n }\n }\n\n public onKeyPress(e: any) {\n if (this.host.readonlyInput) return;\n\n const k = e.which || e.keyCode;\n const pos = this.caret();\n let p;\n let c;\n let next: any;\n\n if (e.ctrlKey || e.altKey || e.metaKey || k < 32 || (k > 34 && k < 41)) {\n // Ignore\n return;\n } else if (k && k !== 13) {\n if (pos.end - pos.begin !== 0) {\n this.clearBuffer(pos.begin, pos.end);\n this.shiftL(pos.begin, pos.end - 1);\n }\n\n p = this.seekNext(pos.begin - 1);\n if (p < this.len) {\n c = String.fromCharCode(k);\n if (this.tests[p].test(c)) {\n this.shiftR(p);\n\n this.buffer[p] = c;\n this.writeBuffer();\n next = this.seekNext(p);\n\n if (/android/i.test(navigator.userAgent)) {\n // Path for CSP Violation on FireFox OS 1.1\n const proxy = () => {\n this.caret(next);\n };\n\n setTimeout(proxy, 0);\n } else {\n this.caret(next);\n }\n }\n }\n e.preventDefault();\n }\n\n this.updateModel(e);\n this.updateFilledState();\n }\n\n private createCompleteMask(): string {\n switch (this.host.selectionMode) {\n case \"range\":\n return this.mask + ` ${this.host.rangeSeparator} ` + this.mask;\n case \"single\":\n case \"multiple\":\n return this.mask;\n }\n }\n\n public checkVal(allow?: boolean) {\n // Try to place characters where they belong\n const test = this.input.value;\n let lastMatch = -1;\n let i: any;\n let c: any;\n let pos = 0;\n\n for (i = 0; i < this.len; i++) {\n if (this.tests[i]) {\n this.buffer[i] = this.getPlaceholder(i);\n while (pos++ < test.length) {\n c = test.charAt(pos - 1);\n if (this.tests[i].test(c)) {\n this.buffer[i] = c;\n lastMatch = i;\n break;\n }\n }\n if (pos > test.length) {\n this.clearBuffer(i + 1, this.len);\n break;\n }\n } else {\n if (this.buffer[i] === test.charAt(pos)) {\n pos++;\n }\n if (i < this.partialPosition) {\n lastMatch = i;\n }\n }\n }\n if (allow) {\n this.writeBuffer();\n } else if (lastMatch + 1 < this.partialPosition) {\n if (this.autoClear || this.buffer.join(\"\") === this.defaultBuffer) {\n // Invalid value. Remove it and replace it with the\n // mask, which is the default behavior.\n if (this.input.value) {\n this.input.value = \"\";\n }\n this.clearBuffer(0, this.len);\n } else {\n // Invalid value, but we opt to show the value to the\n // user and allow them to correct their mistake.\n this.writeBuffer();\n }\n } else {\n this.writeBuffer();\n this.input.value = this.input.value.substring(0, lastMatch + 1);\n }\n\n return this.partialPosition ? i : this.firstNonMaskPos;\n }\n\n public onInputFocus() {\n if (this.host.readonlyInput) return;\n\n clearTimeout(this.caretTimeoutId);\n let pos: any;\n\n this.focusText = this.input.value;\n\n pos = this.checkVal();\n\n this.caretTimeoutId = setTimeout(() => {\n if (this.input !== document.activeElement) {\n return;\n }\n this.writeBuffer();\n if (pos == this.mask.replace(\"?\", \"\").length) {\n this.caret(0, pos);\n } else {\n this.caret(pos);\n }\n }, 10);\n }\n\n public onInputChange(event: any) {\n if (this.androidChrome) this.handleAndroidInput(event);\n else this.handleInputChange(event);\n }\n\n public handleInputChange(event: any) {\n if (this.host.readonlyInput) return;\n\n setTimeout(() => {\n const pos = this.checkVal(true);\n this.caret(pos);\n this.updateModel(event);\n }, 0);\n }\n\n public updateModel(e: any) {\n const updatedValue = e.target.value;\n if (updatedValue !== null || updatedValue !== undefined) {\n this.value = updatedValue;\n this.host.onUserInput(e);\n }\n }\n\n public updateFilledState() {\n this.filled = this.input && this.input.value != \"\";\n }\n\n public focus() {\n this.input.focus();\n }\n\n private initMask() {\n const completeMask = this.createCompleteMask();\n\n this.tests = [];\n this.partialPosition = completeMask.length;\n this.len = completeMask.length;\n this.firstNonMaskPos = null;\n this.defs = {\n \"9\": \"[0-9]\",\n };\n\n const maskTokens = completeMask.split(\"\");\n for (let i = 0; i < maskTokens.length; i++) {\n const c = maskTokens[i];\n\n if (c == \"?\") {\n this.len--;\n this.partialPosition = i;\n } else if (this.defs[c]) {\n this.tests.push(new RegExp(this.defs[c]));\n\n if (this.firstNonMaskPos === null) {\n this.firstNonMaskPos = this.tests.length - 1;\n }\n\n if (i < this.partialPosition) {\n this.lastRequiredNonMaskPos = this.tests.length - 1;\n }\n } else {\n this.tests.push(null);\n }\n }\n\n this.buffer = [];\n\n for (let i = 0; i < maskTokens.length; i++) {\n const c = maskTokens[i];\n\n if (c != \"?\") {\n if (this.defs[c]) {\n this.buffer.push(this.getPlaceholder(i));\n } else {\n this.buffer.push(c);\n }\n }\n }\n\n this.defaultBuffer = this.buffer.join(\"\");\n }\n\n private caret(first?: number, last?: number) {\n let range, begin, end;\n\n if (!this.input.offsetParent || this.input !== document.activeElement) {\n return;\n }\n\n if (typeof first == \"number\") {\n begin = first;\n end = typeof last === \"number\" ? last : begin;\n\n if (this.input.setSelectionRange) {\n this.input.setSelectionRange(begin, end);\n } else if (this.input[\"createTextRange\"]) {\n range = this.input[\"createTextRange\"]();\n range.collapse(true);\n range.moveEnd(\"character\", end);\n range.moveStart(\"character\", begin);\n range.select();\n }\n } else {\n if (this.input.setSelectionRange) {\n begin = this.input.selectionStart;\n end = this.input.selectionEnd;\n } else if (document[\"selection\"] && document[\"selection\"].createRange) {\n range = document[\"selection\"].createRange();\n begin = 0 - range.duplicate().moveStart(\"character\", -100000);\n end = begin + range.text.length;\n }\n\n return { begin: begin, end: end };\n }\n }\n\n private getPlaceholder(i: number) {\n if (i < this.slotChar.length) return this.slotChar.charAt(i);\n return this.slotChar.charAt(0);\n }\n\n private seekNext(pos: any) {\n while (++pos < this.len) {\n if (this.tests[pos]) break;\n }\n return pos;\n }\n\n private seekPrev(pos: any) {\n while (--pos >= 0 && !this.tests[pos]) {\n if (this.tests[pos]) break;\n }\n return pos;\n }\n\n private shiftL(begin: number, end: number) {\n let i: any;\n let j: any;\n\n if (begin < 0) {\n return;\n }\n\n j = this.seekNext(end);\n\n for (i = begin; i < this.len; i++) {\n if (this.tests[i]) {\n if (j < this.len && this.tests[i].test(this.buffer[j])) {\n this.buffer[i] = this.buffer[j];\n this.buffer[j] = this.getPlaceholder(j);\n } else break;\n\n j = this.seekNext(j);\n }\n }\n this.writeBuffer();\n this.caret(Math.max(this.firstNonMaskPos, begin));\n }\n\n private shiftR(pos: any) {\n let i: any;\n let c = this.getPlaceholder(pos);\n let j: any;\n let t: any;\n\n for (i = pos; i < this.len; i++) {\n if (this.tests[i]) {\n j = this.seekNext(i);\n t = this.buffer[i];\n this.buffer[i] = c;\n\n if (j < this.len && this.tests[j].test(t)) {\n c = t;\n } else break;\n }\n }\n }\n\n private handleAndroidInput(e: any) {\n const curVal = this.input.value;\n const pos = this.caret();\n\n if (this.oldVal && this.oldVal.length && this.oldVal.length > curVal.length) {\n // A deletion or backspace happened\n this.checkVal(true);\n while (pos.begin > 0 && !this.tests[pos.begin - 1]) {\n pos.begin--;\n }\n if (pos.begin === 0) {\n while (pos.begin < this.firstNonMaskPos && !this.tests[pos.begin]) {\n pos.begin++;\n }\n }\n\n setTimeout(() => {\n this.caret(pos.begin, pos.begin);\n if (this.isCompleted()) {\n const sentVal = curVal.replace(this.slotChar, \"\"); // Limpa os caracteres placeholders extras caso ele esteja completo\n this.updateCalendarValue(sentVal);\n }\n }, 0);\n } else {\n this.checkVal(true);\n\n while (pos.begin < this.len && !this.tests[pos.begin]) {\n pos.begin++;\n }\n\n setTimeout(() => {\n this.caret(pos.begin, pos.begin);\n if (this.isCompleted()) {\n const sentVal = curVal.replace(this.slotChar, \"\"); // Limpa os caracteres placeholders extras caso ele esteja completo\n this.updateCalendarValue(sentVal);\n }\n }, 0);\n }\n }\n\n private updateCalendarValue(sentVal: string) {\n // TODO verificar\n const dateVal = <Date>this.host.parseValueFromString(sentVal);\n if (this.host.isSelectable(dateVal.getDate(), dateVal.getMonth(), dateVal.getFullYear(), false)) {\n this.host.updateModel(sentVal);\n this.host.updateUI();\n }\n }\n\n private clearBuffer(start: any, end: any) {\n let i;\n\n for (i = start; i < end && i < this.len; i++) {\n if (this.tests[i]) {\n this.buffer[i] = this.getPlaceholder(i);\n }\n }\n }\n\n private writeBuffer() {\n this.input.value = this.buffer.join(\"\");\n }\n\n private createMaskFromDateFormat() {\n const calendar = this.host;\n let mask = this.autoClear ? \"?\" : \"\";\n\n if (!calendar.timeOnly) {\n let dateFormat = calendar.dateFormat;\n dateFormat = dateFormat.replace(/y/g, \"yy\");\n mask += dateFormat.replace(/[^/*,.\\-+\\[\\]\\\\]/g, \"9\");\n if (calendar.showTime) {\n mask += \" \";\n }\n }\n\n if (calendar.showTime || calendar.timeOnly) {\n mask += \"99:99\";\n if (calendar.showSeconds) {\n mask += \":99\";\n }\n }\n\n this._mask = mask;\n\n this.initMask();\n }\n\n isCompleted(): boolean {\n for (let i = this.firstNonMaskPos; i <= this.lastRequiredNonMaskPos; i++) {\n if (this.tests[i] && this.buffer[i] === this.getPlaceholder(i)) {\n return false;\n }\n }\n\n return true;\n }\n\n ngAfterViewChecked(): void {\n if (this.host.inputfieldViewChild && this.firstTime) {\n this.firstTime = false;\n this.setListeners();\n this.input.type = \"tel\";\n }\n }\n\n ngOnDestroy(): void {\n if (this.focusListener) this.focusListener();\n if (this.blurListener) this.blurListener();\n if (this.keydownListener) this.keydownListener();\n if (this.keypressListener) this.keypressListener();\n if (this.inputListener) this.inputListener();\n if (this.pasteListener) this.pasteListener();\n }\n\n @HostListener(\"keydown\", [\"$event\"])\n onKeydownEventTest(e: KeyboardEvent) {\n const { key } = e;\n if (key == \"Tab\") {\n // Este código foi implementado para corrigir um problema no componente na v9\n // Deve ser removido assim que atualizarmos o PrimeNG para a v10\n const allFocusableElements = document.querySelectorAll(this.SELECTORS);\n let nextIsFocusable = false;\n let previousFocusable: string;\n let forceCloseModal = true;\n allFocusableElements.forEach((element) => {\n if (!e.shiftKey) {\n if (nextIsFocusable && element.id) {\n this.focusableElement(element.id, forceCloseModal);\n nextIsFocusable = false;\n e.preventDefault();\n return;\n }\n }\n\n let activeTagName = window.document.activeElement.tagName;\n if (e.shiftKey && element.id && element.tagName === \"INPUT\" && activeTagName == \"BUTTON\") {\n previousFocusable = element.id;\n forceCloseModal = false;\n }\n\n if (element.id === this.host.inputId) {\n if (previousFocusable) {\n this.focusableElement(previousFocusable, forceCloseModal);\n e.preventDefault();\n forceCloseModal = true;\n return;\n }\n nextIsFocusable = true;\n } else if (e.shiftKey && element.id) {\n previousFocusable = element.id;\n }\n });\n }\n }\n\n public focusableElement(id: string, hide: boolean) {\n const htmlElement = window.document.getElementById(id);\n htmlElement.focus();\n if (hide) {\n this.host.hideOverlay();\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CalendarMaskDirective } from \"./calendar-mask.directive\";\nimport { CommonModule } from \"@angular/common\";\n\n@NgModule({\n declarations: [CalendarMaskDirective],\n imports: [CommonModule],\n exports: [CalendarMaskDirective],\n})\nexport class CalendarMaskModule {}\n","import { Directive, Input, TemplateRef } from \"@angular/core\";\n\n@Directive({\n selector: \"[sTemplate]\",\n})\nexport class TemplateDirective {\n @Input(\"sTemplate\")\n public type: string;\n\n constructor(public readonly template: TemplateRef<any>) {}\n}","export enum Languages {\n TaxCalculation = \"TaxCalculation\",\n Json = \"Json\"\n}\n","import { AfterContentInit, Component, ContentChildren, Input, QueryList, TemplateRef } from \"@angular/core\";\n\nimport { TemplateDirective } from \"../template/template.directive\";\nimport { CardTemplateTypes } from \"./models/card-template-types\";\n\n@Component({\n selector: \"s-card\",\n templateUrl: \"./card.component.html\",\n styleUrls: [\"./card.component.scss\"],\n})\nexport class CardComponent implements AfterContentInit {\n @Input()\n public bannerImage: string;\n\n @Input()\n public fullWidth = false;\n\n @Input()\n title = '';\n\n @Input()\n subtitle = '';\n\n @Input()\n icon = '';\n\n public showBanner = false;\n\n @ContentChildren(TemplateDirective)\n public templates: QueryList<TemplateDirective>;\n\n public headerTemplate: TemplateRef<unknown>;\n public bodyTemplate: TemplateRef<unknown>;\n public footerTemplate: TemplateRef<unknown>;\n\n public ngAfterContentInit(): void {\n this._getTemplates();\n this._loadImage();\n }\n\n public get hasHeader() {\n const headerTemplate = !!this.headerTemplate;\n const hasHeaderAttributes = this.title || this.subtitle || this.icon;\n return headerTemplate || hasHeaderAttributes;\n }\n\n private _getHeaderTemplate(): TemplateRef<unknown> {\n return this._getCustomTemplate(CardTemplateTypes.Header);\n }\n\n private _getBodyTemplate(): TemplateRef<unknown> {\n return this._getCustomTemplate(CardTemplateTypes.Body);\n }\n\n private _getFooterTemplate(): TemplateRef<unknown> {\n return this._getCustomTemplate(CardTemplateTypes.Footer);\n }\n\n private _getCustomTemplate(type: string) {\n return this.templates.find((template: TemplateDirective) => template.type === type)?.template;\n }\n\n private _getTemplates(): void {\n this.headerTemplate = this._getHeaderTemplate();\n this.bodyTemplate = this._getBodyTemplate();\n this.footerTemplate = this._getFooterTemplate();\n }\n\n private _loadImage(): void {\n const img = new Image();\n img.src = this.bannerImage;\n\n img.onload = () => (this.showBanner = true);\n img.onerror = () => (this.showBanner = false);\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TemplateDirective } from \"./template.directive\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TemplateDirective],\n exports: [TemplateDirective],\n})\nexport class TemplateModule {}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { CardComponent } from \"./card.component\";\nimport { TemplateModule } from \"../template/template.module\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [CardComponent],\n exports: [CardComponent, TemplateModule],\n})\nexport class CardModule {}\n","import { Component, ElementRef, Input, QueryList, ViewChildren } from \"@angular/core\";\n\nimport { ChatMessage } from \"./types/chat-message\";\n\n@Component({\n selector: \"s-chat\",\n templateUrl: \"./chat.component.html\",\n styleUrls: [\"./chat.component.scss\"],\n})\nexport class ChatComponent {\n @Input()\n public messages: ChatMessage[] = [];\n\n @ViewChildren(\"messageElements\", { read: ElementRef })\n private messageElements: QueryList<ElementRef<HTMLElement>>;\n\n public ngAfterViewInit(): void {\n this.scrollToBottom();\n\n this.messageElements.changes.subscribe(() => {\n this.scrollToBottom();\n });\n }\n\n private scrollToBottom(): void {\n this.messageElements?.last?.nativeElement.scrollIntoView({ behavior: \"smooth\" });\n }\n}\n","import { Component, Input, OnChanges, SimpleChanges } from \"@angular/core\";\n\nimport { ChatMessage } from \"../../types/chat-message\";\n\n@Component({\n selector: \"s-chat-message\",\n templateUrl: \"./chat-message.component.html\",\n styleUrls: [\"./chat-message.component.scss\"],\n})\nexport class ChatMessageComponent implements OnChanges {\n @Input()\n public message: ChatMessage;\n\n public fileName: string | null = null;\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes[\"message\"]) {\n this.fileName = this.message.attachmentUrl ? this.getFileNameByUrl(this.message.attachmentUrl) : null;\n }\n }\n\n private getFileNameByUrl(path: string): string {\n const match = path.match(/[^\\\\\\/]+$/);\n return match ? match[0] : null;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\n\nimport { LocaleModule } from \"../locale/locale.module\";\nimport { ChatComponent } from \"./chat.component\";\nimport { ChatMessageComponent } from \"./components/chat-message/chat-message.component\";\n\n@NgModule({\n imports: [CommonModule, LocaleModule, TranslateModule.forChild()],\n declarations: [ChatComponent, ChatMessageComponent],\n exports: [ChatComponent],\n})\nexport class ChatModule {}\n","import { Component, forwardRef, Input } from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { CheckboxData } from \"./models/checkbox-data\";\nimport { CheckboxState } from \"./models/checkbox-state\";\n\n@Component({\n selector: \"s-checkbox\",\n templateUrl: \"./checkbox.component.html\",\n styleUrls: [\"./checkbox.component.scss\"],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n },\n ],\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input()\n public data: CheckboxData;\n\n public state: CheckboxState = {\n checked: false,\n indeterminate: false,\n children: {},\n };\n\n private _onChange: (value: CheckboxState) => void = () => { };\n private _onTouched: () => void = () => { };\n\n public writeValue(value: CheckboxState): void {\n if (value) {\n this.state = value;\n } else {\n this.state = {\n checked: false,\n indeterminate: false,\n disabled: false,\n children: this._initializeChildren(this.data),\n };\n }\n }\n\n public registerOnChange(onChange: (value: CheckboxState) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: () => void): void {\n this._onTouched = onTouched;\n }\n\n private _initializeChildren(item: CheckboxData): { [key: string]: CheckboxState } {\n const childrenState: { [key: string]: CheckboxState } = {};\n if (item.children) {\n item.children.forEach((child) => {\n childrenState[child.label] = {\n checked: false,\n indeterminate: false,\n children: this._initializeChildren(child),\n };\n });\n }\n return childrenState;\n }\n\n public updateParent(): void {\n if (this.data.children && this.data.children.length > 0) {\n const allChecked = this.data.children.every((child) => this.state.children[child.label]?.checked);\n const someChecked = this.data.children.some(\n (child) => this.state.children[child.label]?.checked || this.state.children[child.label]?.indeterminate\n );\n this.state.checked = allChecked;\n this.state.indeterminate = !allChecked && someChecked;\n }\n this._onChange(this.state);\n this._onTouched();\n }\n\n public onCheckboxChange(): void {\n if (this.state.disabled) return;\n\n this.state.checked = !this.state.checked;\n this.state.indeterminate = false;\n this._toggleChildrenCheck(this.data, this.state, this.state.checked);\n this._onChange(this.state);\n this._onTouched();\n }\n\n public get renderType() {\n return this.data.renderType || \"inline\";\n }\n\n private _toggleChildrenCheck(item: CheckboxData, state: CheckboxState, checked: boolean): void {\n if (item.children?.length) {\n item.children.forEach((child) => {\n if (!state.children[child.label]) {\n state.children[child.label] = {\n checked: false,\n indeterminate: false,\n children: this._initializeChildren(child),\n };\n }\n state.children[child.label].checked = checked;\n state.children[child.label].indeterminate = false;\n if (child.children) {\n this._toggleChildrenCheck(child, state.children[child.label], checked);\n }\n });\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\n\nimport { CheckboxComponent } from \"./checkbox.component\";\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [CheckboxComponent],\n exports: [CheckboxComponent],\n})\nexport class CheckboxModule {}\n","export enum Themes {\n SDSLight = \"SDSLight\"\n}\n","import { Languages } from \"../../models\";\nimport { LinterFacade } from \"../facades/linter-facade\";\n\ntype LinterFacadeFactory = () => LinterFacade; \n\nexport class CoreLinters {\n\n private static _LINTERS: Map<Languages, LinterFacadeFactory> = new Map([]);\n\n public static getLinter(language: Languages): LinterFacade | undefined {\n const languageLinterFactory = CoreLinters._LINTERS.get(language);\n if (languageLinterFactory) return languageLinterFactory();\n }\n}\n","export enum EnumTypeOrder {\n // Tipo de ordenação - Crescente\n ASC = \"ASC\",\n // Tipo de ordenação - Decrescente\n DESC = \"DESC\"\n}\n","export enum MetaType {\n // Entity\n ENTITY = \"ENTITY\",\n // String\n STRING = \"STRING\",\n // Integer\n INTEGER = \"INTEGER\",\n // Double\n DOUBLE = \"DOUBLE\",\n // Long\n LONG = \"LONG\",\n // BigDecimal\n BIGDECIMAL = \"BIGDECIMAL\",\n // UUID\n UUID = \"UUID\",\n // Date\n DATE = \"DATE\",\n // DateTime\n DATETIME = \"DATETIME\",\n // DateTime\n LOCALDATETIME = \"LOCALDATETIME\",\n // Time\n TIME = \"TIME\",\n // Boolean\n BOOLEAN = \"BOOLEAN\",\n // List\n LIST = \"LIST\",\n // Enum\n ENUM = \"ENUM\",\n // CustomExpression\n CUSTOM_EXPRESSION = \"CUSTOM_EXPRESSION\",\n // PublicExpression\n PUBLIC_EXPRESSION = \"PUBLIC_EXPRESSION\"\n}\n","export enum RequestTypes {\n ListContextMetadataById,\n ListBlobMetadata,\n ListExpressionMetadata,\n ListFacadeMetadataNames,\n GetFacadeMetadataByPath,\n}\n","export enum CompletionTypes {\n Keyword = \"keyword\",\n Context = \"context\",\n Expression = \"expression\",\n UserExpression = \"userExpression\",\n Entity = \"entity\",\n FinalValue = \"finalValue\"\n}\n","export enum Keywords {\n SE = \"SE\",\n SENAO = \"SENAO\",\n CONTENHA = \"CONTENHA\",\n ENTAO = \"ENTAO\",\n FIM_SE = \"FIM_SE\",\n NAO = \"NAO\",\n E = \"E\",\n OU = \"OU\"\n}\n","import {\n Observable,\n ReplaySubject,\n Subject\n} from \"rxjs\";\n\nimport {\n EditorOptions,\n Languages,\n Themes\n} from \"../../models\";\nimport { Marker } from \"../models\";\nimport { CoreLinters } from \"../use-cases/core-linters\";\nimport { LinterFacade } from \"./linter-facade\";\n\nexport abstract class CoreFacade {\n\n private $onCoreFinishLoad: ReplaySubject<void> = new ReplaySubject(1);\n private $onCodeChange: Subject<string> = new Subject();\n private $onCodeValidityChange: Subject<boolean> = new Subject();\n private _completionItems: string[] = [];\n private _lastCodeEmitted = \"\";\n private _lastCodeValidityEmitted!: boolean;\n private _linter!: LinterFacade;\n\n public changeEditorOptions(options: EditorOptions): void {\n if (options) {\n if (typeof options !== \"object\") throw new Error(\"Editor's options must be an EditorOptions object\");\n\n this.validateLanguage(options.language);\n this.validateTheme(options.theme);\n this.setLinter(options.language);\n\n this.setCoreEditorOptions(options);\n }\n }\n\n public changeCode(code: string): void {\n const safeCode = this.getSafeCode(code);\n if (safeCode !== this._lastCodeEmitted) {\n this.setCode(safeCode);\n }\n }\n\n public abstract initCore(): void;\n public abstract destroyCore(): void;\n\n public abstract setCoreWrapperElement(element: HTMLDivElement): void;\n public abstract setCode(code: string): void;\n\n public getOnCoreFinishLoadObservable(): Observable<void> {\n return this.$onCoreFinishLoad.asObservable();\n }\n\n public getOnCodeChangeObservable(): Observable<string> {\n return this.$onCodeChange.asObservable();\n }\n\n public getOnCodeValidityChangeObservable(): Observable<boolean> {\n return this.$onCodeValidityChange.asObservable();\n }\n\n protected abstract setCoreEditorOptions(options: EditorOptions): void;\n protected abstract highlightCode(markers: Marker[]): void;\n\n protected notifyCoreFinishLoad(): void {\n this.$onCoreFinishLoad.next();\n }\n\n protected notifyCodeChange(code: string): void {\n const safeCode = this.getSafeCode(code);\n if (safeCode !== this._lastCodeEmitted) {\n this._lastCodeEmitted = safeCode;\n this.$onCodeChange.next(safeCode);\n this.validateCode(safeCode);\n }\n }\n\n protected updateCompletionItems(items: string[]): void {\n this._completionItems = items || [];\n this.validateCode(this._lastCodeEmitted);\n }\n\n private setLinter(language: Languages): void {\n this._linter = CoreLinters.getLinter(language);\n }\n\n private async validateCode(code: string): Promise<void> {\n if (this._linter) {\n const markers: Marker[] = await this._linter.lint(code, this._completionItems);\n this.highlightCode(markers);\n this.notifyCodeValidityChange(!markers.length);\n }\n }\n\n private notifyCodeValidityChange(validity: boolean): void {\n if (validity !== this._lastCodeValidityEmitted) {\n this._lastCodeValidityEmitted = validity;\n this.$onCodeValidityChange.next(validity);\n }\n }\n\n private validateLanguage(language: Languages): void {\n const languages = Object.values(Languages);\n if (language && !languages.includes(language)) throw new Error(`The informed language \"${language}\" is not supported`);\n }\n\n private validateTheme(theme: Themes): void {\n const themes = Object.values(Themes);\n if (theme && !themes.includes(theme)) throw new Error(`The informed theme \"${theme}\" is not supported`);\n }\n\n private getSafeCode(code: string): string {\n return typeof code === \"string\" ? code : \"\";\n }\n}\n","import { Component, OnInit, AfterViewInit, OnDestroy, Input, Output, EventEmitter, ViewChild, ElementRef, forwardRef } from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { Subject } from \"rxjs\";\nimport { take, takeUntil } from \"rxjs/operators\";\n\nimport { CoreFacade } from \"./core/facades/core-facade\";\nimport { EditorOptions } from \"./models\";\n\n@Component({\n selector: \"s-code-editor\",\n templateUrl: \"./code-editor.component.html\",\n styleUrls: [\"./code-editor.component.scss\"],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CodeEditorComponent),\n multi: true,\n },\n ],\n})\nexport class CodeEditorComponent implements OnInit, AfterViewInit, ControlValueAccessor, OnDestroy {\n @Input()\n public set editorOptions(options: EditorOptions) {\n this.coreFacade.changeEditorOptions(options);\n }\n\n @Input()\n public set code(code: string) {\n this.coreFacade.changeCode(code);\n }\n\n @Output()\n public codeChange = new EventEmitter<string>();\n\n @Output()\n public isCodeValidChange = new EventEmitter<boolean>();\n\n @Output()\n public onCodeChange = new EventEmitter<string>();\n\n @Output()\n public onComponentFinishLoad = new EventEmitter<void>();\n\n @ViewChild(\"coreWrapper\")\n private coreWrapperElement: ElementRef;\n\n private _ngUnsubscribe = new Subject<void>();\n\n private _onChange: (value: string) => void = () => { };\n private _onTouched: () => void = () => { };\n\n constructor(private readonly coreFacade: CoreFacade) { }\n\n public writeValue(value: string): void {\n this.code = value;\n }\n\n public registerOnChange(onChange: (value: string) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: () => void): void {\n this._onTouched = onTouched;\n }\n\n public ngOnInit(): void {\n this.coreFacade.initCore();\n this.setupCoreListeners();\n }\n\n public ngAfterViewInit(): void {\n this.setCoreWrapperElement();\n }\n\n public ngOnDestroy(): void {\n this.coreFacade.destroyCore();\n this._ngUnsubscribe.next();\n this._ngUnsubscribe.complete();\n }\n\n private setCoreWrapperElement(): void {\n this.coreFacade.setCoreWrapperElement(this.coreWrapperElement.nativeElement as HTMLDivElement);\n }\n\n private setupCoreListeners(): void {\n this.coreFacade\n .getOnCoreFinishLoadObservable()\n .pipe(take(1))\n .subscribe(() => this.onComponentFinishLoad.emit());\n\n this.coreFacade\n .getOnCodeChangeObservable()\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe((code) => {\n this.codeChange.emit(code);\n this.onCodeChange.emit(code);\n this._onTouched();\n this._onChange(code);\n });\n\n this.coreFacade\n .getOnCodeValidityChangeObservable()\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe((validity) => {\n this.isCodeValidChange.emit(validity);\n });\n }\n}\n","import { LRLanguage } from \"@codemirror/language\";\nimport { buildParser } from \"@lezer/generator\";\nimport {\n styleTags,\n tags\n} from \"@codemirror/highlight\";\n\nimport parserGrammar from \"./grammar\";\nimport { Keywords } from \"../../models\";\n\nexport const baseConfigs = LRLanguage.define({\n parser: buildParser(parserGrammar)\n .configure({\n props: [\n styleTags({\n [Object.values(Keywords).join(\" \")]: tags.keyword,\n \"String\": tags.string,\n \"Number\": tags.number,\n })\n ]\n })\n});\n","export default `\n@top Script { statement+ }\n\nstatement[@isGroup=Statement] {\n Keyword |\n String |\n Number\n}\n\n@tokens {\n String { '\"' (![\\\\n\"])* '\"'? }\n\n Number { std.digit+ }\n\n identifierChar { std.asciiLetter | $[_$\\u{a1}-\\u{10ffff}] }\n\n word { identifierChar (identifierChar | std.digit)* }\n\n identifier { word }\n}\n\nKeyword {\n kw<\"SE\">\n kw<\"ENTAO\">\n kw<\"FIM_SE\">\n kw<\"SENAO\">\n kw<\"NAO\">\n kw<\"CONTENHA\">\n kw<\"OU\">\n kw<\"E\">\n}\n\nkw<term> { @specialize[@name={term}]<identifier, term> }\n\n@detectDelim\n`;\n","/**\n * Formats a JSON response to a JS object\n * @param response The response to format\n * @returns A JS object based on the response's body\n */\nexport async function formatJsonResponse(response: Response): Promise<any> {\n return response.json();\n}\n","/**\n * Formats a Blob response to a JS object\n * @param response The response to format\n * @returns A JS object based on the response's body\n */\nexport async function formatBlobResponse(response: Response): Promise<any> {\n const textResponse = await (await response.blob()).text();\n return JSON.parse(textResponse);\n}\n","import {\n service,\n user\n} from \"@seniorsistemas/senior-platform-data\";\n\nimport {\n formatJsonResponse,\n formatBlobResponse\n} from \"./json-response-formatters\";\n\n/**\n * Custom HttpClient for cases when is not possible to use the Angular's HttpClient\n */\nexport class CustomHttpClient {\n\n private static _responseFormatterMap: Map<string, (response: Response) => Promise<any>> = new Map([\n [\"application/json\", formatJsonResponse],\n [\"application/octet-stream\", formatBlobResponse]\n ]);\n\n /**\n * Executes a Http Get\n * @param url Url to execute the Get on\n * @param init Optional additional configs\n * @returns Whether a Promise<T> on request success or an error in request fail\n */\n public static async GET<T>(url: string, init: RequestInit = {}): Promise<T> {\n const response = await this.interceptRequest(url, {\n ...init,\n method: \"GET\"\n });\n\n return this.formatResponse<T>(response);\n }\n\n /**\n * Executes a Http Post\n * @param url Url to execute the Post on\n * @param body Info to send to server on Post\n * @param init Optional additional configs\n * @returns Whether a Promise<T> on request success or an error in request fail\n */\n public static async POST<T>(url: string, body: any, init: RequestInit = {}): Promise<T> {\n const headers = new Headers(init.headers);\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Accept\", \"application/json\");\n\n const response = await this.interceptRequest(url, {\n ...init,\n method: \"POST\",\n body: JSON.stringify(body),\n headers,\n });\n\n return this.formatResponse<T>(response);\n }\n\n /**\n * Intercepts the original request to add a required header for Senior in case of a internal request\n * @param url Url from the original request\n * @param originalReq Configs from the original request\n * @returns Whether a Promise<Response> if the request was made successfully or an error\n */\n private static async interceptRequest(url: string, originalReq: RequestInit = {}): Promise<Response> {\n try {\n if (!url.includes(\"://\")) {\n const restUrl = await service.getRestUrl();\n const authHeader = await user.getAuthHeader();\n\n const headers = new Headers(originalReq.headers);\n headers.append(\"Authorization\", authHeader);\n\n const request = new Request(\n restUrl + url,\n {\n ...originalReq,\n headers\n }\n );\n return fetch(request);\n }\n\n return fetch(url, originalReq);\n\n } catch (err) {\n throw new Error(`Error fetching requested URL: ${err}`);\n }\n }\n\n /**\n * Formats the request response to an object<T> or {}\n * @param response The response to be formatted\n * @returns Whether a Promise<T> if the response status is in the range 200-299 an error\n */\n private static async formatResponse<T>(response: Response): Promise<T> {\n const contentType = response.headers.get(\"content-type\");\n const formatter = CustomHttpClient._responseFormatterMap.get(contentType);\n const formattedContentType = formatter ? await formatter(response) : {};\n\n if (response.ok) return formattedContentType as unknown as T;\n throw new Error(JSON.stringify(formattedContentType));\n }\n}\n","export enum MarkerSeverity {\n Error,\n Info,\n Warning\n}\n","import { HostProjectConfigs } from \"../../../../../angular-components.module\";\nimport { Translations } from \"./models\";\n\n/**\n * Custom translator for cases when is not possible to use the \"TranslateService\" from \"@ngx-translate/core\"\n */\nexport class CustomTranslationsService {\n\n private static _translations: Translations = {};\n private static _TRANSLATION_PREFIX = \"\";\n\n /**\n * Method used to get the translation for an key based on the host project's translations. Always use the first available language\n * @param key Key used to search the translation\n * @returns The translation for the informed key or the key in case there is no translation\n */\n public static translate(key: string): string {\n if (key === undefined || key === null) return \"\";\n const translationKey = `${CustomTranslationsService._TRANSLATION_PREFIX}${key}`;\n const firstLanguageTranslations = Object.values(CustomTranslationsService._translations)[0] ?? {};\n return firstLanguageTranslations[translationKey] ?? translationKey;\n }\n\n /**\n * Method used to set the translations that will be used as base when calling the \"translate\" method\n * @param translations Translations to use as base\n */\n public static setTranslations(translations: Translations): void {\n CustomTranslationsService._translations = translations ?? {};\n }\n\n /**\n * Method used to set the prefix that will be used when calling the \"translate\" method\n * @param hostProjectConfigs The host project's configs used to create the prefix\n */\n public static setTranslationsPrefix(hostProjectConfigs: HostProjectConfigs): void {\n const { domain, service } = hostProjectConfigs ?? {};\n const prefix = `${domain}.${service}.`;\n CustomTranslationsService._TRANSLATION_PREFIX = prefix;\n }\n}\n","import {\n ModuleWithProviders,\n NgModule,\n InjectionToken\n} from \"@angular/core\";\n\nexport const HostProjectConfigsInjectionToken = new InjectionToken<HostProjectConfigs>(\"hostProjectConfigs\");\n\nexport interface HostProjectConfigs {\n domain: string;\n service: string;\n}\n\n@NgModule({})\nexport class AngularComponentsModule {\n static forRoot(config: HostProjectConfigs): ModuleWithProviders<AngularComponentsModule> {\n return {\n ngModule: AngularComponentsModule,\n providers: [\n {\n provide: HostProjectConfigsInjectionToken,\n useValue: config\n }\n ]\n };\n }\n}\n","import {\n NgModule,\n Inject\n} from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\nimport { HostProjectConfigs, HostProjectConfigsInjectionToken } from \"../../../../../angular-components.module\";\nimport { CustomTranslationsService } from \"./index\";\n\n/**\n * Responsible for setting up the translations that will be used by the \"CustomTranslationsService\".\n * Uses the host project's translations set by using the \"TranslationsModule\" from \"@seniorsistemas/platform-components\"\n */\n@NgModule()\nexport class CustomTranslationsModule {\n\n constructor (\n private readonly translate: TranslateService,\n @Inject(HostProjectConfigsInjectionToken) private readonly hostProjectConfigs: HostProjectConfigs\n ) {\n this.factoryTranslations(this.translate, this.hostProjectConfigs);\n }\n\n private factoryTranslations(translate: TranslateService, hostProjectConfigs: HostProjectConfigs): void {\n CustomTranslationsService.setTranslations(translate.translations);\n CustomTranslationsService.setTranslationsPrefix(hostProjectConfigs);\n }\n}\n","import { Diagnostic } from \"@codemirror/lint\";\n\nimport { DiagnosticSeverity } from \"../models\";\nimport {\n Marker,\n MarkerSeverity\n} from \"../../../../core/models\";\n\nconst diagnosticSeverityInMarkerSeverityMap: Map<number, DiagnosticSeverity> = new Map([\n [MarkerSeverity.Error, \"error\"],\n [MarkerSeverity.Info, \"info\"],\n [MarkerSeverity.Warning, \"warning\"]\n]);\n\nexport function convertMarkersToDiagnostics(markers: Marker[], textLength: number): Diagnostic[] {\n return markers.map(marker => ({\n from: marker.start || 0,\n to: marker.end || textLength,\n message: marker.message ?? \"\",\n severity: diagnosticSeverityInMarkerSeverityMap.get(marker.severity) ?? \"error\"\n }));\n}\n","import { CustomHttpClient } from \"../../../../../../utils\";\nimport {\n ListContextMetadataByIdRequest,\n ListContextMetadataByIdResponse,\n ListExpressionMetadataRequest,\n ListExpressionMetadataResponse,\n ListFacadeMetadataNamesRequest,\n ListFacadeMetadataNamesResponse,\n GetFacadeMetadataByPathRequest,\n GetFacadeMetadataByPathResponse,\n} from \"../../models\";\n\nexport class AutocompleteService {\n private static BASE_URL = \"platform/rule_metadata\";\n\n public static async listContextMetadataById(request: ListContextMetadataByIdRequest, abortSignal: AbortSignal): Promise<ListContextMetadataByIdResponse> {\n return CustomHttpClient.POST<ListContextMetadataByIdResponse>(\n `${AutocompleteService.BASE_URL}/queries/listContextMetadataById`,\n request,\n {\n signal: abortSignal\n }\n );\n }\n\n public static async listExpressionMetadata(request: ListExpressionMetadataRequest, abortSignal: AbortSignal): Promise<ListExpressionMetadataResponse> {\n return CustomHttpClient.POST<ListExpressionMetadataResponse>(\n `${AutocompleteService.BASE_URL}/queries/listExpressionMetadata`,\n request,\n {\n signal: abortSignal\n }\n );\n }\n\n public static async listFacadeMetadataNames(request: ListFacadeMetadataNamesRequest, abortSignal: AbortSignal): Promise<ListFacadeMetadataNamesResponse> {\n return CustomHttpClient.POST<ListFacadeMetadataNamesResponse>(\n `${AutocompleteService.BASE_URL}/queries/listFacadeMetadataNames`,\n request,\n {\n signal: abortSignal\n }\n );\n }\n\n public static async getFacadeMetadataByPath(request: GetFacadeMetadataByPathRequest, abortSignal: AbortSignal): Promise<GetFacadeMetadataByPathResponse> {\n return CustomHttpClient.POST<GetFacadeMetadataByPathResponse>(\n `${AutocompleteService.BASE_URL}/queries/getFacadeMetadataByPath`,\n request,\n {\n signal: abortSignal\n }\n );\n }\n}\n","import {\n EditorState,\n Extension,\n StateField\n} from \"@codemirror/state\";\nimport { showTooltip, Tooltip } from \"@codemirror/tooltip\";\n\nimport { CodeMirror6Core } from \"../../../../../../codemirror-6-core\";\nimport { style } from \"./autocomplete-state-wrapper-style\";\n\nlet htmlElementToBeWrapped: HTMLElement = null;\n\n/**\n * Adds a view updates's listener that creates an state over the autocomplete\n * @returns An extension containing everything needed to listen the updates and create the autocomplete's state\n */\n export function autocompleteStateWrapper(): Extension {\n return [\n autocompleteStateWrapperStateField(),\n style()\n ];\n}\n\n/**\n * Shows a state on a non-clickable autocomplete item's format with an HTMLElement inside\n * @param element The HTMLElement to show inside the state\n */\nexport function showAutocompleteStateWrapper(element: HTMLElement): void {\n htmlElementToBeWrapped = element;\n CodeMirror6Core.updateEditorView();\n}\n\n/**\n * Removes a possible showed autocomplete state\n */\nexport function hideAutocompleteStateWrapper(): void {\n htmlElementToBeWrapped = null;\n CodeMirror6Core.updateEditorView();\n}\n\n/*\n * Creates and returns a StateField responsible for listening the view's change and to add the autocomplete state's wrapper\n */\nfunction autocompleteStateWrapperStateField(): StateField<Tooltip> {\n return StateField.define({\n create: getAutocompleteStateWrapper,\n update(_, transaction) {\n return getAutocompleteStateWrapper(transaction.state);\n },\n provide(field) {\n return showTooltip.compute([field], state => state.field(field));\n }\n });\n}\n\n/*\n * Function responsible for creating the state's wrapper and returning the same as a Tooltip from \"@codemirror/tooltip\";\n * Only creates the Tooltip if the theres is element on the \"htmlElementToBeWrapped\" variable;\n * The same will also be removed when any view update is emitted;\n */\nfunction getAutocompleteStateWrapper(state: EditorState): Tooltip {\n if (!htmlElementToBeWrapped) return;\n\n const htmlElementToBeWrappedString = htmlElementToBeWrapped.outerHTML;\n const stateWrapper: Tooltip = {\n pos: state.selection.ranges[0].head,\n create: () => ({ dom: getAutocompleteStateWrapperDomElement(htmlElementToBeWrappedString) })\n };\n\n htmlElementToBeWrapped = null;\n return stateWrapper;\n}\n\nfunction getAutocompleteStateWrapperDomElement(elementToBeWrappedString: string): HTMLElement {\n const wrapperDiv = document.createElement(\"div\");\n wrapperDiv.className = \"cm-tooltip-autocomplete cm-tooltip\";\n wrapperDiv.innerHTML =\n `\n <ul class=\"s-code-editor-taxCalculation-autocomplete-ul\">\n <li class=\"s-code-editor-taxCalculation-autocomplete-li\">\n ${elementToBeWrappedString}\n </li>\n </ul>\n\n `;\n\n return wrapperDiv;\n}\n","import { Extension } from \"@codemirror/state\";\n\nimport { CustomTranslationsService } from \"../../../../../../../utils\";\nimport { autocompleteStateWrapper, showAutocompleteStateWrapper } from \"./autocomplete-state-wrapper/autocomplete-state-wrapper\";\n\nlet autocompleteLoadingStateHTMLElement!: HTMLElement;\n\n/**\n * Adds a loading-state over the autocomplete\n * @returns An extension containing everything needed to add the loading-state\n */\nexport function autocompleteLoadingState(): Extension {\n return [autocompleteStateWrapper()];\n}\n\n/**\n * Activates the loading state on the autocomplete\n */\n/*\n * Must set the \"autocompleteLoadingStateHTMLElement\" here for when the document is loaded we do not have\n * yet the \"CustomTranslationsService\" ready\n */\nexport function showAutocompleteLoadingState(): void {\n if (!autocompleteLoadingStateHTMLElement) {\n autocompleteLoadingStateHTMLElement = getAutocompleteLoadingStateHTMLElement();\n }\n\n showAutocompleteStateWrapper(autocompleteLoadingStateHTMLElement);\n}\n\nfunction getAutocompleteLoadingStateHTMLElement(): HTMLElement {\n const loadingStateSpanWrapper = document.createElement(\"span\");\n loadingStateSpanWrapper.innerText = CustomTranslationsService.translate(\"core_language_tax_calculation_fetching_suggestions\");\n\n return loadingStateSpanWrapper;\n}\n","import { Extension } from \"@codemirror/state\";\n\nimport { CustomTranslationsService } from \"../../../../../../../utils\";\nimport { autocompleteStateWrapper, showAutocompleteStateWrapper } from \"./autocomplete-state-wrapper/autocomplete-state-wrapper\";\n\nlet autocompleteEmptyStateHTMLElement!: HTMLElement;\n\n/**\n * Adds an empty-state over the autocomplete\n * @returns An extension containing everything needed to add the empty-state\n */\nexport function autocompleteEmptyState(): Extension {\n return [autocompleteStateWrapper()];\n}\n\n/**\n * Activates the empty-state on the autocomplete\n */\n/*\n * Must set the \"autocompleteEmptyStateHTMLElement\" here for when the document is loaded we do not have\n * yet the \"CustomTranslationsService\" ready\n */\nexport function showAutocompleteEmptyState(): void {\n if (!autocompleteEmptyStateHTMLElement) {\n autocompleteEmptyStateHTMLElement = getAutocompleteEmptyStateHTMLElement();\n }\n\n showAutocompleteStateWrapper(autocompleteEmptyStateHTMLElement);\n}\n\nfunction getAutocompleteEmptyStateHTMLElement(): HTMLElement {\n const emptyStateSpanWrapper = document.createElement(\"span\");\n emptyStateSpanWrapper.innerText = CustomTranslationsService.translate(\"core_language_tax_calculation_no_suggestions\");\n\n return emptyStateSpanWrapper;\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds style to autocomplete's state-wrapper\n * @returns An extension containing the style\n */\nexport function style(): Extension {\n return EditorView.theme({\n \".s-code-editor-taxCalculation-autocomplete-ul\": {\n \"padding\": \".75rem !important\",\n },\n\n \".s-code-editor-taxCalculation-autocomplete-li\": {\n cursor: \"default !important\",\n \"line-height\": \"1.375em !important\",\n },\n });\n}\n","import { TaxCalculationConfigs } from \"./models\";\n\nexport * from \"./models/interfaces/tax-calculation-configs\";\n\nexport class TaxCalculationLanguageConfigs {\n\n private static CONFIGS: TaxCalculationConfigs = { contexts: [] };\n\n public static setConfigs(configs: TaxCalculationConfigs): void {\n TaxCalculationLanguageConfigs.CONFIGS = JSON.parse(JSON.stringify(configs));\n }\n\n public static getConfigs(): TaxCalculationConfigs {\n return TaxCalculationLanguageConfigs.CONFIGS;\n }\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds style to the autocomplete\n * @returns An extension containing the style\n */\nexport function style(): Extension {\n return EditorView.theme({\n \".cm-completionIcon\": {\n \"font-family\": \"'Font Awesome 5 Pro'\",\n \"font-weight\": \"900\",\n },\n\n \".cm-completionIcon-keyword::after\": {\n \"content\": getIconBasedOnUnicode(\"f084\"),\n },\n\n \".cm-completionIcon-context::after\": {\n \"content\": getIconBasedOnUnicode(\"f466\"),\n },\n\n \".cm-completionIcon-expression::after\": {\n \"content\": getIconBasedOnUnicode(\"f505\"),\n },\n\n \".cm-completionIcon-userExpression::after\": {\n \"content\": getIconBasedOnUnicode(\"f4ff\"),\n },\n\n \".cm-completionIcon-entity::after\": {\n \"content\": getIconBasedOnUnicode(\"f126\"),\n },\n\n \".cm-completionIcon-finalValue::after\": {\n \"content\": getIconBasedOnUnicode(\"f192\"),\n },\n });\n}\n\nfunction getIconBasedOnUnicode(unicode: string): string {\n return `\"\\\\${unicode}\"`;\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\nimport {\n autocompletion,\n Completion,\n CompletionContext,\n CompletionResult,\n pickedCompletion,\n startCompletion\n} from \"@codemirror/autocomplete\";\n\nimport { CustomTranslationsService } from \"../../../../../../utils\";\nimport { CodeMirror6Core } from \"../../../../codemirror-6-core\";\nimport { isCurrentPositionInsideString } from \"../../../../utils\";\nimport { AutocompleteService } from \"./autocomplete.service\";\nimport {\n autocompleteLoadingState,\n showAutocompleteLoadingState,\n autocompleteEmptyState,\n showAutocompleteEmptyState\n} from \"./autocomplete-states\";\nimport {\n TaxCalculationConfigs,\n RequestTypes,\n Response,\n SafeRequest,\n SafeResponse,\n ListContextMetadataByIdResponse,\n CompletionTypes,\n ListExpressionMetadataResponse,\n MetaType,\n GetFacadeMetadataByPathResponse,\n ListFacadeMetadataNamesResponse,\n Keywords,\n} from \"../../models\";\nimport {\n getLanguageConfigs,\n getSafeResponse\n} from \"../../utils\";\nimport { style } from \"./autocomplete-style\";\n\n/**\n * Adds an autocomplete to the editor\n * @returns An extension containing everything needed to create the autocomplete\n */\nexport function autocomplete (): Extension {\n return [\n autocompletion({ override: [getCompletionResults] }),\n autocompleteLoadingState(),\n autocompleteEmptyState(),\n style(),\n ];\n}\n\nconst TRANSLATION_PREFIX = \"core_language_tax_calculation\";\nlet completionResults!: CompletionResult;\n\n/*\n * A function to be called when a key is pressed, the ctrl+space is triggered or when the search for completionResults is done.\n * If there is a completionResult, returns it, otherwise starts a new async search.\n * Will only execute the autocompletion if the current cursor position is not inside a string\n */\nfunction getCompletionResults(context: CompletionContext): CompletionResult {\n const isCursorInsideString = isCurrentPositionInsideString(context.state.doc.toString().substring(0, context.pos));\n if (isCursorInsideString) return;\n\n if (completionResults) {\n const finalCompletionResults: CompletionResult = { ...completionResults };\n const codeLength = context.state.doc.toString().length;\n finalCompletionResults.from = finalCompletionResults.from > codeLength\n ? codeLength\n : finalCompletionResults.from;\n completionResults = null;\n return finalCompletionResults;\n }\n startCompletionResultsSearch(context);\n}\n\nlet cancelLastCompletionSearch: () => void = () => {};\nlet codeMirrorViewElement!: HTMLElement;\n\n/*\n * Starts a new completionResults's async search.\n * Avoids the last search to be finished by calling the \"cancelLastCompletionSearch\" callback function\n */\nfunction startCompletionResultsSearch(context: CompletionContext): void {\n const token = new AbortController();\n setTimeout(() => {\n if (!token.signal.aborted) {\n showAutocompleteLoadingState();\n searchCompletionResults(context, token);\n }\n }, 500);\n\n /*\n * IMPORTANT: The following lines MUST be the way they are!\n * Here is being add the listener to any keydown/click event so when any key is downed or mouse clicked, we cancel the last request.\n * We do this to not show to the user a completionItem in an incorrect place of text, that can be done by either pressing the\n * arrows, home, end, backspace and etc. The flow is:\n * 1. We add an eventListener to keydown/click when the autocompletion's request is triggered;\n * 2. When any key/click is pressed, we remove the listener and cancel the last request by changing the isSearchCanceled on token object\n * to true;\n * 3. If any key that requires autocompletion is triggered, the flow repeats;\n */\n codeMirrorViewElement = CodeMirror6Core.getEditorView().contentDOM;\n\n cancelLastCompletionSearch = () => {\n codeMirrorViewElement.removeEventListener(\"keydown\", cancelLastCompletionSearch);\n codeMirrorViewElement.removeEventListener(\"click\", cancelLastCompletionSearch);\n token.abort();\n };\n\n codeMirrorViewElement.addEventListener(\"keydown\", cancelLastCompletionSearch);\n codeMirrorViewElement.addEventListener(\"click\", cancelLastCompletionSearch);\n}\n\n/*\n * Requests the necessary items to fill the completionResults, although it only really opens the autocomplete\n * box (by calling the \"startCompletion()\", that calls the \"getCompletionResults\") if the current search was not cancelled\n * by a new one\n */\nasync function searchCompletionResults(context: CompletionContext, token: AbortController): Promise<void> {\n const codeBeforeCursor = context?.state?.doc?.toString().substring(0, context?.pos ?? 0) ?? \"\";\n const filter = getFilter(codeBeforeCursor);\n const path = getPath(codeBeforeCursor, filter.length);\n const requests: SafeResponse[] = getRequestsBasedOnPath(path, filter, token.signal);\n\n Promise\n .all(requests)\n .then(responses => {\n if (!token.signal.aborted) {\n const completions = [].concat(\n getKeywordsCompletions(path),\n getContextsCompletions(responses),\n getExpressionsCompletions(responses),\n getEntitiesCompletions(responses)\n );\n const filteredCompletions: Completion[] = getFilteredCompletions(completions, filter);\n\n if (filteredCompletions.length) {\n const formattedCompletions: Completion[] = getFormattedCompletions(filteredCompletions, filter);\n const sortedCompletions: Completion[] = getSortedCompletions(formattedCompletions);\n\n completionResults = {\n from: context.pos,\n filter: false,\n options: sortedCompletions\n };\n startCompletion(CodeMirror6Core.getEditorView());\n\n } else {\n showAutocompleteEmptyState();\n }\n\n }\n });\n}\n\n/*\n * Returns the filter in the code written.\n * For example in the code \"controladoria.empresa\", \"empresa\" would be the filter\n * and in \"controladoria\", \"controladoria\" would be the filter.\n * Allows only alphanumerics, underscore and hashtag on filter's start.\n * Does not allow spaces\n */\nfunction getFilter(string: string): string {\n if (string === undefined || string === null) return \"\";\n\n const filter = string.match(/(#|\\.|)\\w*$/)?.[0] ?? \"\";\n return filter.replace(\".\", \"\").trim();\n}\n\n/*\n * Returns the path in the code written based on filter.\n * For example in the code \"controladoria.empresa\", \"controladoria\" would be the path\n * and in \"controladoria\", \"\" would be the path.\n * Does not allow spaces\n */\nfunction getPath(string: string, filterLength: number): string {\n if (string === undefined || string === null) return \"\";\n\n const stringWithoutPath = string.substring(0, string.length - filterLength);\n const path = stringWithoutPath.match(/(\\w*\\.)*$/)?.[0] ?? \"\";\n return path.replace(/\\.$/, \"\");\n}\n\nfunction getRequestsBasedOnPath(path: string, filter: string, abortSignal: AbortSignal): SafeResponse[] {\n const languageConfigs: TaxCalculationConfigs = getLanguageConfigs();\n const requests: SafeRequest[] = [];\n\n if (path === \"\") {\n requests.push({\n requestType: RequestTypes.ListContextMetadataById,\n request: AutocompleteService.listContextMetadataById(\n {\n id: languageConfigs.contexts,\n },\n abortSignal\n )\n });\n requests.push({\n requestType: RequestTypes.ListExpressionMetadata,\n request: AutocompleteService.listExpressionMetadata(\n {\n context: languageConfigs.contexts,\n subcontext: languageConfigs.subContexts ?? [],\n name: filter,\n pageRequest: {\n offset: 0,\n size: 20\n }\n },\n abortSignal\n )\n });\n\n } else if (path.includes(\".\")) {\n const splittedPath = path.split(\".\");\n requests.push({\n requestType: RequestTypes.GetFacadeMetadataByPath,\n request: AutocompleteService.getFacadeMetadataByPath(\n {\n context: splittedPath[0],\n entityName: splittedPath[1],\n fields: splittedPath[2] === undefined ? undefined : splittedPath.slice(2)\n },\n abortSignal\n )\n });\n\n } else {\n requests.push({\n requestType: RequestTypes.ListFacadeMetadataNames,\n request: AutocompleteService.listFacadeMetadataNames(\n {\n context: [path],\n name: filter,\n pageRequest: {\n offset: 0,\n size: 30\n }\n },\n abortSignal\n )\n });\n }\n\n return requests.map(request => getSafeResponse(request));\n}\n\nfunction getKeywordsCompletions(path: string): Completion[] {\n if (path !== \"\") return [];\n\n const completions = [\n {\n label: Keywords.SE,\n apply: \"SE ()\\nENTAO\\n\\tacao\\nFIM_SE\",\n },\n {\n label: Keywords.SENAO,\n apply: \"SENAO\\n\\tacao\",\n },\n {\n label: Keywords.CONTENHA,\n apply: \"CONTENHA(condicao)\",\n },\n {\n label: Keywords.ENTAO,\n apply: \"ENTAO\\n\\tacao\",\n },\n {\n label: Keywords.FIM_SE,\n apply: \"FIM_SE \",\n },\n {\n label: Keywords.NAO,\n apply: \"NAO \",\n },\n {\n label: Keywords.E,\n apply: \"E \",\n },\n {\n label: Keywords.OU,\n apply: \"OU \"\n },\n ];\n\n return completions.map(completionItem => ({\n ...completionItem,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_keyword`),\n type: CompletionTypes.Keyword\n }));\n}\n\nfunction getContextsCompletions(responses: Response<any>[]): Completion[] {\n const contextsResponse: Response<ListContextMetadataByIdResponse> = responses.find(response =>\n response?.requestType === RequestTypes.ListContextMetadataById\n );\n\n if (contextsResponse) {\n return (contextsResponse.response?.contextMetadata ?? [])\n .map(contextMetadata => ({\n label: contextMetadata.name,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_context`),\n apply: contextMetadata.name,\n type: CompletionTypes.Context\n }));\n }\n\n return [];\n}\n\nfunction getExpressionsCompletions(responses: Response<any>[]): Completion[] {\n const expressionsResponse: Response<ListExpressionMetadataResponse> = responses.find(response =>\n response?.requestType === RequestTypes.ListExpressionMetadata\n );\n\n if (expressionsResponse) {\n return (expressionsResponse.response?.expressionMetadata ?? [])\n .map(expressionMetadata => ({\n label: expressionMetadata.name,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_${\n expressionMetadata.type === MetaType.PUBLIC_EXPRESSION\n ? \"senior_expression\"\n : \"user_expression\"\n }`),\n apply: expressionMetadata.name,\n info: expressionMetadata.description,\n type: expressionMetadata.type === MetaType.PUBLIC_EXPRESSION ? CompletionTypes.Expression : CompletionTypes.UserExpression\n }));\n }\n\n return [];\n}\n\nfunction getEntitiesCompletions(responses: Response<any>[]): Completion[] {\n const facadesResponseFromList: Response<ListFacadeMetadataNamesResponse> = responses.find(response =>\n response?.requestType === RequestTypes.ListFacadeMetadataNames\n );\n\n if (facadesResponseFromList) {\n return (facadesResponseFromList.response?.facadeMetadataNames ?? [])\n .map(facade => ({\n label: facade.name,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_entity`),\n apply: facade.name,\n type: CompletionTypes.Entity\n }));\n }\n\n const facadesResponseFromGet: Response<GetFacadeMetadataByPathResponse> = responses.find(response =>\n response?.requestType === RequestTypes.GetFacadeMetadataByPath\n );\n\n if (facadesResponseFromGet) {\n return (facadesResponseFromGet.response?.facadeMetadata?.fields ?? [])\n .map(facade => ({\n label: facade.name,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_${\n facade.type === MetaType.ENTITY\n ? \"entity\"\n : \"field\"\n }`),\n apply: facade.name,\n type: facade.type === MetaType.ENTITY ? CompletionTypes.Entity : CompletionTypes.FinalValue\n }));\n }\n\n return [];\n}\n\n/*\n * Filtering the completions to only deal with the necessary items\n */\nfunction getFilteredCompletions(completions: Completion[], filter: string): Completion[] {\n return completions\n .filter(completionItem =>\n completionItem\n .label\n .toLowerCase()\n .startsWith(filter.toLowerCase()));\n}\n\n\n/*\n * Overwriting the completions's apply to remove the entire current written value and apply the the entire completion's apply \n */\nfunction getFormattedCompletions(completions: Completion[], filter: string): Completion[] {\n return completions\n .map(completionItem => ({\n ...completionItem,\n apply: getCompletionApply(filter, `${completionItem.apply}`)\n }));\n}\n\nfunction getCompletionApply(filter: string, oldApplyText: string): ((view: EditorView, completion: Completion, from: number, to: number) => void) {\n return (view: EditorView, completion: Completion, from: number, to: number): void => {\n const newFrom = from - filter.length;\n \n view.dispatch({\n changes: {\n from: newFrom,\n to,\n insert: oldApplyText\n },\n selection: {\n anchor: newFrom + oldApplyText.length\n },\n userEvent: \"input.complete\",\n annotations: pickedCompletion.of(completion)\n });\n } \n}\n\nconst completionsSortOrder: CompletionTypes[] = [\n CompletionTypes.Keyword,\n CompletionTypes.Context,\n CompletionTypes.UserExpression,\n CompletionTypes.Expression,\n CompletionTypes.Entity,\n CompletionTypes.FinalValue\n];\n\n/*\n * Sorts the completions following the \"completionsSortOrder\" priority order\n */\nfunction getSortedCompletions(completions: Completion[]): Completion[] {\n return completions.sort((x: Completion, y: Completion) => {\n const xPriority = completionsSortOrder.indexOf(x.type as CompletionTypes);\n const yPriority = completionsSortOrder.indexOf(y.type as CompletionTypes);\n\n return xPriority - yPriority;\n });\n}\n","export function isCurrentPositionInsideString(stringBeforeCurrentPosition: string): boolean {\n const doubleQuotesQuantity = stringBeforeCurrentPosition.match(/\"/g)?.length || 0;\n return doubleQuotesQuantity % 2 !== 0;\n}\n","import { TaxCalculationConfigs } from \"../models\";\nimport { TaxCalculationLanguageConfigs } from \"../tax-calculation-language-configs\";\n\n/**\n * Gets the configs for the TaxCalculationLanguage\n * @returns The configs\n */\nexport function getLanguageConfigs(): TaxCalculationConfigs {\n const configs = TaxCalculationLanguageConfigs.getConfigs();\n if (!configs.contexts?.length) throw new Error(\n \"In order to use the TaxCalculation Language's autocomplete, \"\n + \"one must inform at least one context by using the \"\n + \"'TaxCalculationLanguageConfigs.setConfigs()'\"\n );\n return configs;\n}\n","import {\n SafeRequest,\n Response\n} from \"../models\";\n\n/**\n * Wraps the request to return the same with an identification or undefined in case of error, so the promise will\n * always trigger the \"then\"\n * @param request Request to wrap\n * @returns The typed request's response\n */\nexport async function getSafeResponse(request: SafeRequest): Promise<Response> {\n try {\n return {\n ...request,\n response: await request.request\n };\n } catch (_) {}\n}\n","import { LanguageSupport } from \"@codemirror/language\";\n\nimport { baseConfigs } from \"./extensions/base-configs/base-configs\";\nimport { autocomplete } from \"./extensions/autocomplete/autocomplete\";\n\nexport function TaxCalculation(): LanguageSupport {\n return new LanguageSupport(\n baseConfigs,\n [\n autocomplete(),\n ]\n );\n}\n","import { LanguageSupport, LRLanguage } from \"@codemirror/language\";\nimport { buildParser } from \"@lezer/generator\";\nimport { styleTags, tags } from \"@codemirror/highlight\";\n\nconst jsonGrammar = `\n@top JsonDocument { JsonValue }\n\nJsonValue {\n JsonObject |\n JsonArray |\n JsonString |\n JsonNumber |\n JsonBoolean |\n JsonNull\n}\n\nJsonObject {\n \"{\" (JsonPair (\",\" JsonPair)*)? \"}\"\n}\n\nJsonPair {\n JsonString \":\" JsonValue\n}\n\nJsonArray {\n \"[\" (JsonValue (\",\" JsonValue)*)? \"]\"\n}\n\n@tokens {\n JsonString { '\"' (![\\\\n\"])* '\"'? }\n JsonNumber {\n '-'? std.digit+\n ('.' std.digit+)?\n ((\"e\" | \"E\") (\"+\" | \"-\")? std.digit+)?\n }\n JsonBoolean { \"true\" | \"false\" }\n JsonNull { \"null\" }\n space { $[ \\t\\n\\r]+ }\n \"{\" \"}\"\n \"[\" \"]\"\n \":\" \",\"\n}\n\n@skip { space }\n\n@detectDelim\n`;\n\nconst jsonLanguage = LRLanguage.define({\n parser: buildParser(jsonGrammar).configure({\n props: [\n styleTags({\n JsonString: tags.string,\n JsonNumber: tags.number,\n \"JsonBoolean JsonNull\": tags.keyword,\n '\"{\"': tags.brace,\n '\"}\"': tags.brace,\n '\"[\"': tags.brace,\n '\"]\"': tags.brace,\n '\":\"': tags.operator,\n '\",\"': tags.punctuation,\n }),\n ],\n }),\n});\n\nexport function Json(): LanguageSupport {\n return new LanguageSupport(jsonLanguage);\n}\n","import { LanguageSupport } from \"@codemirror/language\";\n\nimport { Languages } from \"../../../../models\";\n\n/* Languages */\nimport { TaxCalculation } from \"./tax-calculation/tax-calculation.language\";\nimport { Json } from \"./json/json.language\";\n\ntype LanguageSupportFactory = () => LanguageSupport\n\nexport class EditorLanguages {\n\n private static _LANGUAGES: Map<Languages, LanguageSupportFactory> = new Map([\n [Languages.TaxCalculation, TaxCalculation],\n [Languages.Json, Json]\n ]);\n\n public static getLanguage(language: Languages): LanguageSupport {\n const languageSupportFactory = EditorLanguages._LANGUAGES.get(language);\n if (languageSupportFactory) return languageSupportFactory();\n return [] as unknown as LanguageSupport;\n }\n}\n","import { HighlightStyle, tags } from \"@codemirror/highlight\";\n\nexport const SDSLightHighlightStyle: HighlightStyle = HighlightStyle.define([\n {\n tag: tags.keyword,\n color: \"#008080\",\n },\n {\n tag: tags.string,\n color: \"#9C3A3A\",\n },\n {\n tag: tags.number,\n color: \"#400753\",\n },\n]);\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\nimport { StyleSpec } from \"style-mod\";\n\n/**\n * Adds style to editor'font\n * @returns An extension containing everything needed to add the font style\n */\nexport function fontStyle(): Extension {\n return [style()];\n}\n\nconst generalFontStyle: StyleSpec = {\n \"font-family\": \"'Noto Sans Mono', 'sans-serif'\",\n \"font-style\": \"normal\",\n \"font-size\": \"1rem\",\n};\n\nfunction style() {\n return EditorView.theme({\n \".cm-scroller\": {\n ...generalFontStyle,\n \"letter-spacing\": \"0\",\n \"line-height\": \"1.5em\",\n \"font-variation-settings\": \"'wght' 400\",\n \"color\": \"#333333\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul\": {\n ...generalFontStyle,\n \"font-variation-settings\": \"'wght' 300\",\n \"color\": \"#697882\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionLabel\": {\n \"line-height\": \"1.5em\",\n \"font-variation-settings\": \"'wght' 500\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail\": {\n \"font-size\": \"0.875em\",\n \"font-style\": \"normal\",\n \"margin-left\": \"0.75rem\",\n },\n });\n}\n","import { EditorTheme } from \"../../models\";\n\n/* General Style */\nimport { style } from \"./sds-light-style\";\n\n/* HighlightStyle */\nimport { SDSLightHighlightStyle } from \"./sds-light-highlight-style\";\n\n/* Theme's Extensions */\nimport { scrollbars } from \"./extensions/scrollbars\";\nimport { fontStyle } from \"./extensions/font-style\";\nimport { lineCounter } from \"./extensions/line-counter\";\nimport { autocompleteTooltip } from \"./extensions/autocomplete-tooltip\";\n\nexport function SDSLight(): EditorTheme {\n return [\n [\n style(),\n scrollbars(),\n fontStyle(),\n lineCounter(),\n autocompleteTooltip()\n ], \n SDSLightHighlightStyle\n ];\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds style to the editor in general\n * @returns An extension containing the style\n */\nexport function style(): Extension {\n return EditorView.theme({\n \"&.cm-editor.cm-focused\": {\n outline: \"none\",\n },\n });\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds a vertical scrollbar when the editor's height overflows the parent's height\n * @returns An extension containing everything needed to add the scrollbar\n */\nexport function scrollbars(): Extension {\n return [\n style()\n ];\n}\n\nfunction style() {\n return EditorView.baseTheme({\n \"&.cm-editor\": {\n \"height\": \"100%\"\n },\n\n });\n}\n","import { lineNumbers } from \"@codemirror/gutter\"\nimport { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds a line counter\n * @returns An extension containing everything needed to add the line counter\n */\nexport function lineCounter(): Extension {\n return [\n lineNumbers(),\n style()\n ];\n}\n\nfunction style() {\n return EditorView.theme(\n {\n \".cm-gutters\": {\n \"background-color\": \"#fff\",\n \"color\": \"#428BCA\",\n \"border-right\": \"none\"\n },\n \".cm-gutter\": {\n \"padding\": \"0 2rem 0 2rem\"\n }\n }\n );\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds styles to the autocomplete's tooltip\n * @returns An extension containing everything needed to add the style\n */\nexport function autocompleteTooltip(): Extension {\n return [style()];\n}\n\nfunction style() {\n return EditorView.baseTheme({\n \".cm-tooltip\": {\n \"border\": \"none !important\",\n \"border-radius\": \"4px\",\n \"background-color\": \"#E5EAEA !important\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul[role='listbox']\": {\n \"padding\": \"1rem\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail\": {\n \"margin-left\": \".75rem\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail::before\": {\n \"content\": \"'[ '\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail::after\": {\n \"content\": \"' ]'\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionIcon\": {\n \"padding-right\": 0,\n \"margin-right\": \".475rem\",\n \"width\": \"1rem\",\n },\n\n \".cm-tooltip-autocomplete ul li[aria-selected]\": {\n \"border-radius\": \"4px\",\n \"background-color\": \"#5D96A2 !important\",\n \"color\": \"#fff !important\",\n },\n\n \".cm-tooltip.cm-completionInfo.cm-completionInfo-right\": {\n \"border-radius\": \"3px\",\n \"box-shadow\": \"0 2px 4px -1px rgb(0 0 0 / 20%), 0 4px 5px 0 rgb(0 0 0 / 14%), 0 1px 10px 0 rgb(0 0 0 / 12%)\",\n \"background\": \"#495057 !important\",\n \"color\": \"#fff\",\n \"padding\": \".5rem\",\n \"left\": \"101.6%\",\n },\n\n \".cm-tooltip.cm-completionInfo.cm-completionInfo-right::before\": {\n \"content\": \"''\",\n \"position\": \"absolute\",\n \"width\": 0,\n \"height\": 0,\n \"top\": \".8125rem\",\n \"left\": \"-.25rem\",\n \"margin-top\": \"-.25rem\",\n \"border-color\": \"transparent\",\n \"border-style\": \"solid\",\n \"border-right-color\": \"#495057\",\n \"border-width\": \".25rem .25rem .25rem 0\",\n },\n });\n}\n","import { Themes } from \"../../../../models\";\nimport { EditorTheme } from \"../models\";\n\n/* Themes */\nimport { SDSLight } from \"./sds-light/sds-light-theme\";\n\ntype EditorThemeFactory = () => EditorTheme; \n\nexport class EditorThemes {\n\n private static _THEMES: Map<Themes, EditorThemeFactory> = new Map([\n [Themes.SDSLight, SDSLight]\n ]);\n\n public static getTheme(theme: Themes): EditorTheme {\n const EditorThemeFactory = EditorThemes._THEMES.get(theme);\n if (EditorThemeFactory) return EditorThemeFactory();\n return [] as unknown as EditorTheme;\n }\n}\n","export enum Ordination {\n NO = \"no\",\n AZ = \"az\",\n ZA = \"za\",\n}","import { EditorView } from \"@codemirror/view\";\nimport {\n EditorState,\n StateEffect,\n Extension,\n TransactionSpec\n} from \"@codemirror/state\";\nimport { setDiagnostics } from \"@codemirror/lint\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { CoreFacade } from \"../../../core/facades/core-facade\";\nimport { Marker } from \"../../../core/models\";\nimport { EditorOptions } from \"../../../models\";\nimport { EditorLanguages } from \"./languages/editor-languages\";\nimport { EditorThemes } from \"./themes/editor-themes\";\nimport { convertMarkersToDiagnostics } from \"./utils\";\n\nexport class CodeMirror6Core extends CoreFacade {\n\n public static $onCompletionItemsUpdate: Subject<string[]> = new Subject();\n private static _ngUnsubscribe: Subject<void> = new Subject();\n private static _editorView: EditorView = null;\n\n /* These are necessary for the setCode and setEditorOptions can be called before view has been created */\n private _codeReceivedBeforeViewCreation = \"\";\n private _editorOptionsReceivedBeforeViewCreation: Extension = [];\n\n constructor() {\n super();\n }\n\n public static getEditorView(): EditorView {\n return CodeMirror6Core._editorView;\n }\n\n public static updateEditorView(...transactionSpecs: TransactionSpec[]): void {\n CodeMirror6Core._editorView.dispatch(...transactionSpecs);\n }\n\n public setCoreWrapperElement(element: HTMLDivElement): void {\n this.createEditorView(element);\n }\n\n public setCode(code: string): void {\n this.changeEditorContent(code);\n }\n\n public initCore(): void {\n this.setObservablesListeners();\n }\n\n public destroyCore(): void {\n this._codeReceivedBeforeViewCreation = \"\";\n CodeMirror6Core._editorView = null;\n CodeMirror6Core._ngUnsubscribe.next();\n CodeMirror6Core._ngUnsubscribe.complete();\n }\n\n protected setCoreEditorOptions(options: EditorOptions): void {\n const language = EditorLanguages.getLanguage(options.language);\n const theme = EditorThemes.getTheme(options.theme);\n\n if (CodeMirror6Core._editorView) {\n CodeMirror6Core.updateEditorView({\n effects: StateEffect.reconfigure.of([\n language,\n theme,\n this.getCodeChangeListenerExtension()\n ])\n });\n } else {\n this._editorOptionsReceivedBeforeViewCreation = [language, theme];\n }\n }\n\n protected highlightCode(markers: Marker[]): void {\n const diagnostics = convertMarkersToDiagnostics(markers, CodeMirror6Core._editorView.state.doc.length);\n CodeMirror6Core.updateEditorView(setDiagnostics(CodeMirror6Core._editorView.state, diagnostics));\n }\n\n private setObservablesListeners(): void {\n CodeMirror6Core.$onCompletionItemsUpdate\n .pipe(takeUntil(CodeMirror6Core._ngUnsubscribe))\n .subscribe(items => this.updateCompletionItems(items));\n }\n\n private createEditorView(parentElement: HTMLElement): void {\n CodeMirror6Core._editorView = new EditorView({\n parent: parentElement,\n state: EditorState.create({\n doc: this._codeReceivedBeforeViewCreation,\n extensions: [\n this._editorOptionsReceivedBeforeViewCreation,\n this.getCodeChangeListenerExtension()\n ]\n })\n });\n\n this.notifyCoreFinishLoad();\n }\n\n private getCodeChangeListenerExtension(): Extension {\n return EditorView.updateListener.of(update => update.docChanged && this.notifyCodeChange(update.state.doc.toString()));\n }\n\n private changeEditorContent(code: string): void {\n if (CodeMirror6Core._editorView) {\n CodeMirror6Core.updateEditorView({\n changes: {\n from: 0,\n to: CodeMirror6Core._editorView.state.doc.length,\n insert: code\n }\n });\n } else {\n this._codeReceivedBeforeViewCreation = code;\n }\n }\n\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { CodeEditorComponent } from \"./code-editor.component\";\nimport { CoreFacade } from \"./core/facades/core-facade\";\nimport { CodeMirror6Core } from \"./infra/cores/codemirror-6/codemirror-6-core\";\nimport { CustomTranslationsModule } from \"./infra/utils/custom-translations/custom-translations.module\";\n\n@NgModule({\n imports: [CommonModule, CustomTranslationsModule],\n declarations: [CodeEditorComponent],\n exports: [CodeEditorComponent],\n providers: [\n {\n provide: CoreFacade,\n useClass: CodeMirror6Core,\n },\n ],\n})\nexport class CodeEditorModule {}\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport { Component, Input, OnChanges, OnInit, SimpleChanges } from \"@angular/core\";\n\n@Component({\n selector: \"s-collapse-link\",\n templateUrl: \"./collapse-link.component.html\",\n styleUrls: [\"./collapse-link.component.scss\"],\n animations: [\n trigger(\"collapseContent\", [\n state(\n \"void\",\n style({\n height: 0,\n opacity: 0,\n })\n ),\n state(\n \"*\",\n style({\n height: \"*\",\n opacity: 1,\n })\n ),\n transition(\"void <=> *\", animate(\"400ms cubic-bezier(0.86, 0, 0.07, 1)\")),\n ]),\n ],\n})\nexport class CollapseLinkComponent implements OnInit, OnChanges {\n public static nextId = 0;\n\n @Input()\n public buttonId = `s-collapse-button-${CollapseLinkComponent.nextId++}`;\n @Input()\n public expandedLabel = \"Mostrar menos\";\n @Input()\n public collapsedLabel = \"Mostrar mais\";\n @Input()\n public disabled = false;\n @Input()\n public collapse = true;\n\n public collapsed = true;\n public animating: boolean;\n\n constructor() {}\n\n public ngOnInit() {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.collapse) {\n this.onCollapse(changes.collapse.currentValue);\n }\n }\n\n public toggle() {\n if (this.animating) return;\n\n this.animating = true;\n this.collapsed = !this.collapsed;\n }\n\n public onToggleDone() {\n this.animating = false;\n }\n\n public onCollapse(collapse: boolean) {\n if (this.animating) return;\n\n this.animating = true;\n this.collapsed = collapse;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { CollapseLinkComponent } from \"./collapse-link.component\";\n\n@NgModule({\n declarations: [CollapseLinkComponent],\n exports: [CollapseLinkComponent],\n imports: [CommonModule],\n})\nexport class CollapseLinkModule {}\n","import { AbstractControl } from \"@angular/forms\";\nimport { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"s-control-errors\",\n templateUrl: \"./control-errors.component.html\",\n styleUrls: [\"./control-errors.component.scss\"],\n})\nexport class ControlErrorsComponent {\n public static nextId = 0;\n\n @Input()\n id = `s-control-errors-${ControlErrorsComponent.nextId++}`;\n @Input()\n control: AbstractControl;\n @Input()\n errorMessages: any = {};\n @Input()\n form: any;\n\n getErrorMessagesList() {\n if (!this.control || !this.control.dirty) {\n return [];\n }\n return Object.keys(this.control.errors || {}).map(error => this.errorMessages?.[error]);\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { ControlErrorsComponent } from \"./control-errors.component\";\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule],\n declarations: [ControlErrorsComponent],\n exports: [ControlErrorsComponent],\n})\nexport class ControlErrorsModule {}\n","import { CountryPhoneData } from \"../models/country-phone-data\";\n\nexport const countries: CountryPhoneData[] = [\n { id: \"gb\", ddi: \"+44\", mask: \"00-0000-0000\" },\n { id: \"br\", ddi: \"+55\", mask: [\"(00) 0000-00009\", \"(00) 00000-0000\"] },\n { id: \"ar\", ddi: \"+54\", mask: [\"(00) 0000-00009\", \"(000) 0000-0000\"] },\n { id: \"bo\", ddi: \"+591\", mask: \"0 000 0000\" },\n { id: \"cl\", ddi: \"+56\", mask: \"0 0000 0000\" },\n { id: \"co\", ddi: \"+57\", mask: [\"0 00000009\", \"000 0000000\"] },\n { id: \"cr\", ddi: \"+506\", mask: \"0000 0000\" },\n { id: \"cu\", ddi: \"+53\", mask: [\"000 0009\", \"00 000000\"] },\n { id: \"ec\", ddi: \"+593\", mask: [\"000 00009\", \"000 000 000\"] },\n { id: \"sv\", ddi: \"+503\", mask: \"0000 0000\" },\n { id: \"gt\", ddi: \"+502\", mask: \"0000 0000\" },\n { id: \"ht\", ddi: \"+509\", mask: \"0000 0000\" },\n { id: \"hn\", ddi: \"+504\", mask: \"0000-0000\" },\n { id: \"mx\", ddi: \"+52\", mask: [\"00 0000 00009\", \"0 00 0000 0000\"] },\n { id: \"ni\", ddi: \"+505\", mask: \"0000 0000\" },\n { id: \"pa\", ddi: \"+507\", mask: \"0000 0000\" },\n { id: \"py\", ddi: \"+595\", mask: [\"00 000 0009\", \"000 000000\"] },\n { id: \"pe\", ddi: \"+51\", mask: \"000 000 000\" },\n { id: \"do\", ddi: \"+1809\", mask: \"000 000-0000\" },\n { id: \"uy\", ddi: \"+598\", mask: [\"0000 00009\", \"0000 00000\"] },\n { id: \"ve\", ddi: \"+58\", mask: \"000-0000000\" },\n { id: \"us\", ddi: \"+1\", mask: \"000-000-0000\" },\n { id: \"ca\", ddi: \"+1\", mask: \"000-000-0000\" },\n { id: \"cn\", ddi: \"+86\", mask: \"000 0000 0000\" },\n { id: \"as\", ddi: \"+1684\", mask: \"000-0000\" },\n { id: \"ai\", ddi: \"+1264\", mask: \"000-0000\" },\n { id: \"ag\", ddi: \"+1268\", mask: \"000-0000\" },\n { id: \"bs\", ddi: \"+1242\", mask: \"000-0000\" },\n { id: \"bb\", ddi: \"+1246\", mask: \"000-0000\" },\n { id: \"bm\", ddi: \"+1441\", mask: \"000-0000\" },\n { id: \"vg\", ddi: \"+1284\", mask: \"000-0000\" },\n { id: \"ky\", ddi: \"+1345\", mask: \"000-0000\" },\n { id: \"dm\", ddi: \"+1767\", mask: \"000-0000\" },\n { id: \"gd\", ddi: \"+1473\", mask: \"000-0000\" },\n { id: \"gu\", ddi: \"+1671\", mask: \"000-0000\" },\n { id: \"jm\", ddi: \"+1876\", mask: \"000-0000\" },\n { id: \"ms\", ddi: \"+1664\", mask: \"000-0000\" },\n { id: \"mp\", ddi: \"+1670\", mask: \"000-0000\" },\n { id: \"pr\", ddi: \"+1\", mask: \"000-0000\" },\n { id: \"kn\", ddi: \"+1869\", mask: \"000-0000\" },\n { id: \"lc\", ddi: \"+1758\", mask: \"000-0000\" },\n { id: \"vc\", ddi: \"+1784\", mask: \"000-0000\" },\n { id: \"tt\", ddi: \"+1868\", mask: \"000-0000\" },\n { id: \"tc\", ddi: \"+1649\", mask: \"000-0000\" },\n { id: \"fi\", ddi: \"+358\", mask: \"000 0000000\" },\n { id: \"rs\", ddi: \"+381\", mask: \"000 0000000\" },\n { id: \"zm\", ddi: \"+260\", mask: \"000 0000000\" },\n { id: \"af\", ddi: \"+93\", mask: \"000 000 0000\" },\n { id: \"al\", ddi: \"+355\", mask: \"000 000 0000\" },\n { id: \"hr\", ddi: \"+385\", mask: \"000 000 0000\" },\n { id: \"et\", ddi: \"+251\", mask: \"000 000 0000\" },\n { id: \"gh\", ddi: \"+233\", mask: \"000 000 0000\" },\n { id: \"gr\", ddi: \"+30\", mask: \"000 000 0000\" },\n { id: \"ie\", ddi: \"+353\", mask: \"000 000 0000\" },\n { id: \"it\", ddi: \"+39\", mask: \"000 000 0000\" },\n { id: \"lr\", ddi: \"+231\", mask: \"000 000 0000\" },\n { id: \"na\", ddi: \"+264\", mask: \"000 000 0000\" },\n { id: \"nz\", ddi: \"+64\", mask: \"000 000 0000\" },\n { id: \"sa\", ddi: \"+966\", mask: \"000 000 0000\" },\n { id: \"za\", ddi: \"+27\", mask: \"000 000 0000\" },\n { id: \"lk\", ddi: \"+94\", mask: \"000 000 0000\" },\n { id: \"sd\", ddi: \"+249\", mask: \"000 000 0000\" },\n { id: \"th\", ddi: \"+66\", mask: \"000 000 0000\" },\n { id: \"ua\", ddi: \"+380\", mask: \"000 000 0000\" },\n { id: \"ae\", ddi: \"+971\", mask: \"000 000 0000\" },\n { id: \"va\", ddi: \"+39\", mask: \"000 000 0000\" },\n { id: \"zw\", ddi: \"+263\", mask: \"000 000 0000\" },\n { id: \"dz\", ddi: \"+213\", mask: \"0000 00 00 00\" },\n { id: \"be\", ddi: \"+32\", mask: \"0000 00 00 00\" },\n { id: \"yt\", ddi: \"+262\", mask: \"0000 00 00 00\" },\n { id: \"bl\", ddi: \"+590\", mask: \"0000 00 00 00\" },\n { id: \"mf\", ddi: \"+1599\", mask: \"0000 00 00 00\" },\n { id: \"ad\", ddi: \"+376\", mask: \"000-000\" },\n { id: \"ao\", ddi: \"+244\", mask: \"000 000 000\" },\n { id: \"ba\", ddi: \"+387\", mask: \"000 000 000\" },\n { id: \"bg\", ddi: \"+359\", mask: \"000 000 000\" },\n { id: \"kh\", ddi: \"+855\", mask: \"000 000 000\" },\n { id: \"cz\", ddi: \"+420\", mask: \"000 000 000\" },\n { id: \"gq\", ddi: \"+240\", mask: \"000 000 000\" },\n { id: \"gw\", ddi: \"+245\", mask: \"000 000 000\" },\n { id: \"li\", ddi: \"+423\", mask: \"000 000 000\" },\n { id: \"lu\", ddi: \"+352\", mask: \"000 000 000\" },\n { id: \"mk\", ddi: \"+389\", mask: \"000 000 000\" },\n { id: \"me\", ddi: \"+382\", mask: \"000 000 000\" },\n { id: \"pl\", ddi: \"+48\", mask: \"000 000 000\" },\n { id: \"pt\", ddi: \"+351\", mask: \"000 000 000\" },\n { id: \"si\", ddi: \"+386\", mask: \"000 000 000\" },\n { id: \"am\", ddi: \"+374\", mask: \"000 000000\" },\n { id: \"aw\", ddi: \"+297\", mask: \"000 0000\" },\n { id: \"bn\", ddi: \"+673\", mask: \"000 0000\" },\n { id: \"fj\", ddi: \"+679\", mask: \"000 0000\" },\n { id: \"gm\", ddi: \"+220\", mask: \"000 0000\" },\n { id: \"gy\", ddi: \"+592\", mask: \"000 0000\" },\n { id: \"is\", ddi: \"+354\", mask: \"000 0000\" },\n { id: \"fm\", ddi: \"+691\", mask: \"000 0000\" },\n { id: \"nr\", ddi: \"+674\", mask: \"000 0000\" },\n { id: \"nu\", ddi: \"+683\", mask: \"000 0000\" },\n { id: \"pw\", ddi: \"+680\", mask: \"000 0000\" },\n { id: \"st\", ddi: \"+239\", mask: \"000 0000\" },\n { id: \"to\", ddi: \"+676\", mask: \"000 0000\" },\n { id: \"vu\", ddi: \"+678\", mask: \"000 0000\" },\n { id: \"fk\", ddi: \"+500\", mask: \"00000\" },\n { id: \"fo\", ddi: \"+298\", mask: \"00000\" },\n { id: \"sh\", ddi: \"+290\", mask: \"00000\" },\n { id: \"au\", ddi: \"+61\", mask: \"0000 000 000\" },\n { id: \"cx\", ddi: \"+61\", mask: \"0000 000 000\" }, \n { id: \"cc\", ddi: \"+61\", mask: \"0000 000 000\" },\n { id: \"cd\", ddi: \"+243\", mask: \"0000 000 000\" },\n { id: \"kg\", ddi: \"+996\", mask: \"0000 000 000\" },\n { id: \"ro\", ddi: \"+40\", mask: \"0000 000 000\" },\n { id: \"rw\", ddi: \"+250\", mask: \"0000 000 000\" },\n { id: \"sk\", ddi: \"+421\", mask: \"0000 000 000\" },\n { id: \"sy\", ddi: \"+963\", mask: \"0000 000 000\" },\n { id: \"tw\", ddi: \"+886\", mask: \"0000 000 000\" },\n { id: \"tz\", ddi: \"+255\", mask: \"0000 000 000\" },\n { id: \"ye\", ddi: \"+967\", mask: \"0000 000 000\" },\n { id: \"at\", ddi: \"+43\", mask: \"0000 000000\" },\n { id: \"ke\", ddi: \"+254\", mask: \"0000 000000\" },\n { id: \"ug\", ddi: \"+256\", mask: \"0000 000000\" },\n { id: \"az\", ddi: \"+994\", mask: \"000 000 00 00\" },\n { id: \"ch\", ddi: \"+41\", mask: \"000 000 00 00\" },\n { id: \"vn\", ddi: \"+84\", mask: \"000 000 00 00\" },\n { id: \"bh\", ddi: \"+973\", mask: \"0000 0000\" },\n { id: \"ee\", ddi: \"+372\", mask: \"0000 0000\" },\n { id: \"sz\", ddi: \"+268\", mask: \"0000 0000\" },\n { id: \"hk\", ddi: \"+852\", mask: \"0000 0000\" },\n { id: \"ls\", ddi: \"+266\", mask: \"0000 0000\" },\n { id: \"mo\", ddi: \"+853\", mask: \"0000 0000\" },\n { id: \"mt\", ddi: \"+356\", mask: \"0000 0000\" },\n { id: \"mu\", ddi: \"+230\", mask: \"0000 0000\" },\n { id: \"mn\", ddi: \"+976\", mask: \"0000 0000\" },\n { id: \"om\", ddi: \"+968\", mask: \"0000 0000\" },\n { id: \"pg\", ddi: \"+675\", mask: \"0000 0000\" },\n { id: \"qa\", ddi: \"+974\", mask: \"0000 0000\" },\n { id: \"sg\", ddi: \"+65\", mask: \"0000 0000\" },\n { id: \"tl\", ddi: \"+670\", mask: \"0000 0000\" }, \n { id: \"bd\", ddi: \"+880\", mask: \"00000 000000\" },\n { id: \"im\", ddi: \"+44\", mask: \"00000 000000\" },\n { id: \"by\", ddi: \"+375\", mask: \"0 000 000-00-00\" },\n { id: \"bz\", ddi: \"+501\", mask: \"000-0000\" },\n { id: \"mv\", ddi: \"+960\", mask: \"000-0000\" },\n { id: \"mh\", ddi: \"+692\", mask: \"000-0000\" },\n { id: \"sr\", ddi: \"+597\", mask: \"000-0000\" },\n { id: \"bj\", ddi: \"+229\", mask: \"00 00 00 00\" },\n { id: \"bt\", ddi: \"+975\", mask: \"00 00 00 00\" },\n { id: \"bf\", ddi: \"+226\", mask: \"00 00 00 00\" },\n { id: \"bi\", ddi: \"+257\", mask: \"00 00 00 00\" },\n { id: \"cf\", ddi: \"+236\", mask: \"00 00 00 00\" },\n { id: \"td\", ddi: \"+235\", mask: \"00 00 00 00\" },\n { id: \"ci\", ddi: \"+225\", mask: \"00 00 00 00\" },\n { id: \"dk\", ddi: \"+45\", mask: \"00 00 00 00\" },\n { id: \"dj\", ddi: \"+253\", mask: \"00 00 00 00\" },\n { id: \"fr\", ddi: \"+33\", mask: \"00 00 00 00\" },\n { id: \"pf\", ddi: \"+689\", mask: \"00 00 00 00\" },\n { id: \"ga\", ddi: \"+241\", mask: \"00 00 00 00\" },\n { id: \"ml\", ddi: \"+223\", mask: \"00 00 00 00\" },\n { id: \"mr\", ddi: \"+222\", mask: \"00 00 00 00\" },\n { id: \"ne\", ddi: \"+227\", mask: \"00 00 00 00\" },\n { id: \"sm\", ddi: \"+378\", mask: \"00 00 00 00\" },\n { id: \"tg\", ddi: \"+228\", mask: \"00 00 00 00\" },\n { id: \"gi\", ddi: \"+350\", mask: \"00000000\" },\n { id: \"ki\", ddi: \"+686\", mask: \"00000000\" },\n { id: \"tv\", ddi: \"+688\", mask: \"00000000\" },\n { id: \"bw\", ddi: \"+267\", mask: \"00 000 000\" },\n { id: \"er\", ddi: \"+291\", mask: \"00 000 000\" },\n { id: \"lv\", ddi: \"+371\", mask: \"00 000 000\" },\n { id: \"lb\", ddi: \"+961\", mask: \"00 000 000\" },\n { id: \"tn\", ddi: \"+216\", mask: \"00 000 000\" },\n { id: \"cm\", ddi: \"+237\", mask: \"0 00 00 00 00\" },\n { id: \"cv\", ddi: \"+238\", mask: \"000 00 00\" },\n { id: \"km\", ddi: \"+269\", mask: \"000 00 00\" },\n { id: \"pm\", ddi: \"+508\", mask: \"000 00 00\" },\n { id: \"cg\", ddi: \"+242\", mask: \"00 000 0000\" },\n { id: \"mz\", ddi: \"+258\", mask: \"00 000 0000\" },\n { id: \"mm\", ddi: \"+95\", mask: \"00 000 0000\" },\n { id: \"ck\", ddi: \"+682\", mask: \"00 000\" },\n { id: \"cy\", ddi: \"+357\", mask: \"00 000000\" },\n { id: \"eg\", ddi: \"+20\", mask: \"0000 000 0000\" },\n { id: \"ir\", ddi: \"+98\", mask: \"0000 000 0000\" },\n { id: \"iq\", ddi: \"+964\", mask: \"0000 000 0000\" },\n { id: \"ng\", ddi: \"+234\", mask: \"0000 000 0000\" },\n { id: \"kp\", ddi: \"+850\", mask: \"0000 000 0000\" },\n { id: \"ph\", ddi: \"+63\", mask: \"0000 000 0000\" },\n { id: \"ge\", ddi: \"+995\", mask: \"000 00 00 00\" },\n { id: \"gn\", ddi: \"+224\", mask: \"000 00 00 00\" },\n { id: \"es\", ddi: \"+34\", mask: \"000 00 00 00\" },\n { id: \"de\", ddi: \"+49\", mask: \"00000 0000000\" },\n { id: \"gl\", ddi: \"+299\", mask: \"00 00 00\" },\n { id: \"wf\", ddi: \"+681\", mask: \"00 00 00\" },\n { id: \"hu\", ddi: \"+36\", mask: \"(00) 000 0000\" },\n { id: \"in\", ddi: \"+91\", mask: \"000000 00000\" },\n { id: \"id\", ddi: \"+62\", mask: \"0000-000-000\" },\n { id: \"il\", ddi: \"+972\", mask: \"000-000-0000\" },\n { id: \"jp\", ddi: \"+81\", mask: \"000-000-0000\" },\n { id: \"jo\", ddi: \"+962\", mask: \"00 0000 0000\" },\n { id: \"kz\", ddi: \"+7\", mask: \"0 (000) 000-0000\" },\n { id: \"kw\", ddi: \"+965\", mask: \"000 00000\" },\n { id: \"la\", ddi: \"+856\", mask: \"000 00 000 000\" },\n { id: \"ly\", ddi: \"+218\", mask: \"000-0000000\" },\n { id: \"lt\", ddi: \"+370\", mask: \"(0-000) 00000\" },\n { id: \"np\", ddi: \"+977\", mask: \"(0-000) 00000\" },\n { id: \"mg\", ddi: \"+261\", mask: \"000 00 000 00\" },\n { id: \"mw\", ddi: \"+265\", mask: \"000 00 000 00\" },\n { id: \"my\", ddi: \"+60\", mask: \"000-000 0000\" },\n { id: \"md\", ddi: \"+373\", mask: \"0000 00 000\" },\n { id: \"mc\", ddi: \"+377\", mask: \"00 00 00 00 00\" },\n { id: \"ma\", ddi: \"+212\", mask: \"0000-000000\" },\n { id: \"nl\", ddi: \"+31\", mask: \"00 00000000\" },\n { id: \"nc\", ddi: \"+687\", mask: \"00.00.00\" },\n { id: \"no\", ddi: \"+47\", mask: \"000 00 000\" },\n { id: \"pk\", ddi: \"+92\", mask: \"0000 0000000\" },\n { id: \"ru\", ddi: \"+7\", mask: \"0 (000) 000-00-00\" },\n { id: \"ws\", ddi: \"+685\", mask: \"00 00000\" },\n { id: \"sb\", ddi: \"+677\", mask: \"00 00000\" },\n { id: \"sn\", ddi: \"+221\", mask: \"00 000 00 00\" },\n { id: \"sc\", ddi: \"+248\", mask: \"0 000 000\" },\n { id: \"sl\", ddi: \"+232\", mask: \"(000) 000000\" },\n { id: \"so\", ddi: \"+252\", mask: \"0 0000000\" },\n { id: \"kr\", ddi: \"+82\", mask: \"000-0000-0000\" },\n { id: \"se\", ddi: \"+46\", mask: \"000-000 00 00\" },\n { id: \"tj\", ddi: \"+992\", mask: \"000 00 0000\" },\n { id: \"tk\", ddi: \"+690\", mask: \"0000\" },\n { id: \"tr\", ddi: \"+90\", mask: \"0000 000 00 00\" },\n { id: \"tm\", ddi: \"+993\", mask: \"0 00 000000\" }, \n { id: \"uz\", ddi: \"+998\", mask: \"0 00 000 00 00\" },\n];","export enum FieldType {\n Autocomplete = \"Autocomplete\",\n Binary = \"Binary\",\n Blob = \"Blob\",\n Boolean = \"Boolean\",\n Checkbox = \"Checkbox\",\n Chips = \"Chips\",\n CodeEditor = \"CodeEditor\",\n CountryPhonePicker = \"CountryPhonePicker\",\n Custom = \"Custom\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n Double = \"Double\",\n Editor = \"Editor\",\n Enum = \"Enum\",\n Integer = \"Integer\",\n LocalDateTime = \"LocalDateTime\",\n Lookup = \"Lookup\",\n Money = \"Money\",\n Number = \"Number\",\n Password = \"Password\",\n Radio = \"Radio\",\n Slider = \"Slider\",\n String = \"String\",\n Text = \"Text\",\n TextIA = \"TextIA\",\n Time = \"Time\",\n ProfilePicture = \"ProfilePicture\",\n Button = \"Button\",\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\n\nimport { CountryPhoneData } from \"./models/country-phone-data\";\nimport { countries } from \"./resources/countries\";\nimport { Ordination } from \"./models/ordination\";\n\n@Injectable()\nexport class CountryPhonePickerService {\n constructor(private readonly translate: TranslateService) { }\n\n public getCountries(ordination: Ordination) {\n switch (ordination) {\n case Ordination.AZ:\n return this.sortAlphabetically();\n case Ordination.ZA:\n return this.sortAlphabeticallyDescending();\n case Ordination.NO:\n default:\n return countries;\n }\n }\n\n private sortAlphabetically(): CountryPhoneData[] {\n return countries.sort((a: CountryPhoneData, b: CountryPhoneData) => {\n const aName = this.translate.instant(`platform.angular_components_${a.id}`);\n const bName = this.translate.instant(`platform.angular_components_${b.id}`);\n\n return aName.localeCompare(bName);\n });\n }\n\n private sortAlphabeticallyDescending(): CountryPhoneData[] {\n return countries.sort((a: CountryPhoneData, b: CountryPhoneData) => {\n const aName = this.translate.instant(`platform.angular_components_${a.id}`);\n const bName = this.translate.instant(`platform.angular_components_${b.id}`);\n\n return bName.localeCompare(aName);\n });\n }\n}","export const Breakpoints = {\n SM_MIN: 0,\n SM_MAX: 767,\n MD_MIN: 768,\n MD_MAX: 991,\n LG_MIN: 992,\n LG_MAX: 1199,\n XL_MIN: 1200,\n XL_MAX: Infinity,\n};\n","import { ElementRef } from \"@angular/core\";\n\nexport class ExportUtils {\n constructor() {\n throw new Error(\"Classe não deve ser instanciada.\");\n }\n\n public static addClass(element: ElementRef, className: string) {\n element.nativeElement.className = `${element.nativeElement.className} ${className}`;\n }\n\n public static removeClass(element: ElementRef, className: string) {\n if (element.nativeElement.className.includes(className)) {\n element.nativeElement.className = element.nativeElement.className.replace(className, \"\");\n }\n }\n\n public static exportCSV(\n columns: Partial<any>[] = [],\n data: any[] = [],\n csvSeparator: string = \";\",\n documentName: string = \"download\"\n ) {\n let csv = \"\\ufeff\";\n\n columns.filter((column: any) => column.exportable && column.field).forEach((column: any, i: number) => {\n csv += `\"${column.header || column.field}\"`;\n\n if (i < columns.length - 1) csv += csvSeparator;\n });\n\n data.forEach((record: any) => {\n csv += \"\\n\";\n\n columns.filter((column: any) => column.exportable && column.field).forEach((column: any, i: number) => {\n let cellData;\n if (Array.isArray(column.field)) {\n const fieldValues = column.field.map((col: string) => this.resolveFieldData(record, col));\n\n cellData = fieldValues\n .flat()\n .filter((value: string) => value !== null && value !== undefined)\n .join(column.separator);\n } else {\n cellData = this.resolveFieldData(record, column.field);\n }\n\n if (cellData != null) cellData = String(cellData).replace(/\"/g, `\"\"`);\n else cellData = \"\";\n\n csv += `\"${cellData}\"`;\n\n if (i < columns.length - 1) csv += csvSeparator;\n });\n });\n\n const blob = new Blob([csv], {\n type: \"text/csv;charset=utf-8;\",\n });\n\n if (window.navigator.msSaveOrOpenBlob) navigator.msSaveOrOpenBlob(blob, documentName + \".csv\");\n else {\n const link = document.createElement(\"a\");\n link.style.display = \"none\";\n document.body.appendChild(link);\n if (link.download !== undefined) {\n link.setAttribute(\"href\", URL.createObjectURL(blob));\n link.setAttribute(\"download\", documentName + \".csv\");\n link.click();\n } else {\n csv = \"data:text/csv;charset=utf-8,\" + csv;\n window.open(encodeURI(csv));\n }\n document.body.removeChild(link);\n }\n }\n\n private static resolveFieldData(data: any, field: any): any {\n if (data && field) {\n if (this.isFunction(field)) return field(data);\n else if (field.indexOf(\".\") == -1) return data[field];\n else {\n const fields: string[] = field.split(\".\");\n let value = data;\n for (let i = 0, len = fields.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n value = value[fields[i]];\n }\n return value;\n }\n } else return null;\n }\n\n private static isFunction(obj: any) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n}\n","export const convertToMomentDateFormat = (format: string): string => {\n // A ordem dos replaces é importante.\n return format\n .replace(/\\bd\\b/, \"D\") // day of month (no leading zero)\n .replace(/\\bdd\\b/, \"DD\") // day of month\n .replace(/\\bo\\b/, \"DDD\") // day of the year (no leading zero)\n .replace(/\\boo\\b/, \"DDDD\") // day of the year\n .replace(/\\bM\\b/, \"MMM\") // month name short\n .replace(/\\bMM\\b/, \"MMMM\") // month name long\n .replace(/\\bm\\b/, \"M\") // month of year (no leading)\n .replace(/\\bmm\\b/, \"MM\") // month of year\n .replace(/\\by\\b/, \"YY\") // year (two digits)\n .replace(/\\byy\\b/, \"YYYY\"); // year (four digits)\n}","import { DomPortalOutlet, TemplatePortal } from \"@angular/cdk/portal\";\nimport { isPlatformBrowser } from \"@angular/common\";\nimport {\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnInit,\n Output,\n PLATFORM_ID,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from \"@angular/core\";\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\n\nimport { isNullOrUndefined } from \"../utils\";\nimport { CountryPhonePickerService } from \"./country-phone-picker.service\";\nimport { CountryPhoneData, Ordination } from \"./models\";\nimport { PhoneSelectionData } from \"./models/phone-selection-data\";\n\n@Component({\n selector: \"s-country-phone-picker\",\n templateUrl: \"./country-phone-picker.component.html\",\n styleUrls: [\"./country-phone-picker.component.scss\"],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CountryPhonePickerComponent),\n multi: true,\n },\n ],\n})\nexport class CountryPhonePickerComponent implements OnInit, ControlValueAccessor {\n public mask: string;\n public selectedItem: CountryPhoneData;\n public currentItemIndex = 0;\n public filteredCountriesList: CountryPhoneData[];\n public phone = new FormControl(\"\");\n public filter = new FormControl(\"\");\n public dropTop = 0;\n public dropLeft = 0;\n\n private _value: PhoneSelectionData;\n private _onChange: (value: PhoneSelectionData) => void;\n private _onTouched: (value: PhoneSelectionData) => void;\n private _countriesList: CountryPhoneData[];\n private _open = false;\n private offsetTop = 0;\n private _portalHost: DomPortalOutlet;\n\n\n constructor(\n private readonly _countryPhonePickerService: CountryPhonePickerService,\n private readonly _translate: TranslateService,\n private readonly _eRef: ElementRef,\n @Inject(PLATFORM_ID) private platformId: Object,\n ) {}\n\n @ViewChild(\"dropdownTemplate\")\n public dropdownTemplate: TemplateRef<any>;\n\n @ViewChild(\"dropElement\", { read: ViewContainerRef })\n public viewContainerRef: ViewContainerRef;\n\n @ViewChild(\"dropElement\", { read: ElementRef })\n public dropElement: ElementRef;\n\n @ViewChild(\"#dropdownContainer\", { read: ElementRef })\n public dropdownContainer: ElementRef;\n\n public get value() {\n return this._value;\n }\n\n public set value(value: PhoneSelectionData) {\n this._value = value;\n this.mask = this.getMask();\n }\n\n public writeValue(value: PhoneSelectionData): void {\n this.value = value;\n\n if (value?.id) {\n const country = this._countriesList.filter(({ id }) => id == value.id);\n if (country.length) {\n this.onSelectItem(country[0]);\n }\n }\n\n if (value?.rawValue) {\n this.phone.setValue(value.rawValue);\n }\n }\n\n public registerOnChange(onChange: (value: PhoneSelectionData) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: (value: PhoneSelectionData) => void): void {\n this._onTouched = onTouched;\n }\n\n @Input()\n public countries: string[];\n\n @Input()\n public ordination: Ordination = Ordination.NO;\n\n @Output()\n public selected: EventEmitter<CountryPhoneData> = new EventEmitter();\n\n /**\n * @deprecated Use focusLost event instead.\n */\n @Output()\n public blur: EventEmitter<PhoneSelectionData> = new EventEmitter();\n\n @Output()\n public focusLost: EventEmitter<PhoneSelectionData> = new EventEmitter();\n\n @ViewChild(\"phoneInput\", { static: true })\n public phoneInput: ElementRef;\n\n @HostListener(\"document:click\", [\"$event\"])\n public onClickout(event: MouseEvent) {\n if (!this._eRef.nativeElement.contains(event.target)) {\n if (this.open) {\n this.open = false;\n }\n }\n }\n\n public ngOnInit(): void {\n const countries = this._countryPhonePickerService.getCountries(this.ordination);\n this.filter.valueChanges.subscribe(this._filterCountries);\n\n if (this.countries?.length) {\n this._countriesList = countries.filter((country) => this.countries.includes(country.id));\n } else {\n this._countriesList = countries;\n }\n this.filteredCountriesList = this._countriesList;\n this.selectedItem = this._getSelectedCountryDefault();\n this.mask = this.getMask();\n\n this.phone.valueChanges.subscribe((value) => {\n this.value = {\n id: this.selectedItem.id,\n ddi: this.selectedItem.ddi,\n rawValue: value ?? \"\",\n value: value ? `${this._applyMask(value)}` : \"\",\n };\n if (this._onChange) {\n this._onChange(this.value);\n }\n });\n }\n\n @HostBinding(\"attr.tabindex\")\n public tabindex = 0;\n\n @HostListener(\"keydown\", [\"$event\"])\n public onKeydown(event: KeyboardEvent) {\n if (event.key === \"Enter\" || event.key === \" \") {\n if (this.open) {\n this.selectedItem = this._countriesList[this.currentItemIndex];\n this.selected.emit(this.selectedItem);\n }\n this.open = !this.open;\n } else if (event.key === \"Escape\") {\n this.open = false;\n } else if (event.key === \"ArrowDown\") {\n this._moveToDown();\n } else if (event.key === \"ArrowUp\") {\n this._moveToUp();\n }\n }\n\n public get open() {\n return this._open;\n }\n\n public set open(open: boolean) {\n this._open = open;\n\n if (open) {\n this._createDropdownPortal();\n } else {\n if (this._portalHost && this._portalHost.hasAttached()) {\n this._portalHost.detach();\n }\n this.phoneInput.nativeElement.focus();\n }\n }\n\n public onSelectItem(country: CountryPhoneData) {\n this.open = false;\n this.selectedItem = country;\n this.phone.setValue(\"\");\n this.currentItemIndex = this._countriesList.indexOf(this.selectedItem);\n this.selected.emit(this.selectedItem);\n }\n\n public onCleanFilter() {\n this.filter.setValue(\"\");\n }\n\n public onPhoneInputFocus() {\n this.open = false;\n }\n\n public getMask() {\n const mask = this.selectedItem.mask;\n\n if (Array.isArray(mask)) {\n return !this.value?.rawValue || this.value.rawValue.length <= mask[0].replace(/[^0]/g, \"\").length\n ? mask[0] // fixo\n : mask[1]; // celular\n } else {\n return mask;\n }\n }\n\n public getPlaceholder() {\n return this.mask.replace(/9/g, \"\");\n }\n\n public onBlur(value: PhoneSelectionData) {\n this.blur.emit(value);\n this.focusLost.emit(value);\n }\n\n private _getSelectedCountryDefault() {\n if (!this._countriesList.length) {\n throw new Error(\"No country loaded\");\n }\n\n const filteredByBr = this._countriesList.filter((country: CountryPhoneData) => country.id === \"br\");\n\n return filteredByBr.length ? filteredByBr[0] : this._countriesList[0];\n }\n\n private _filterCountries = (value: string) => {\n if (!value) {\n this.filteredCountriesList = this._countriesList;\n } else {\n this.filteredCountriesList = this._countriesList.filter((country) => {\n const countryName = this._translate.instant(`platform.angular_components.country_name_${country.id}`) as string;\n return countryName.toLowerCase().includes(value.toLowerCase());\n });\n }\n };\n\n private _moveToUp() {\n if (this.currentItemIndex == 0) {\n return;\n }\n\n this.currentItemIndex--;\n\n const selectList: any = document.querySelector(\".select-list\");\n const item = selectList.children[this.currentItemIndex];\n\n if (item.offsetTop - selectList.offsetTop <= this.offsetTop) {\n this.offsetTop -= 45;\n selectList.scrollTo(0, this.offsetTop);\n }\n }\n\n private _moveToDown() {\n if (this.currentItemIndex >= this._countriesList.length - 1) {\n return;\n }\n\n this.currentItemIndex++;\n\n const selectList: any = document.querySelector(\".select-list\");\n const item = selectList.children[this.currentItemIndex];\n\n if (item.offsetTop - selectList.offsetTop > this.offsetTop + 180) {\n this.offsetTop += 45;\n selectList.scrollTo(0, this.offsetTop);\n }\n }\n\n private _applyMask(value: string) {\n let mask;\n\n if (Array.isArray(this.selectedItem.mask)) {\n const rawMask = this.selectedItem.mask[0].replace(/[^0]/g, \"\");\n mask = value.length <= rawMask.length ? this.selectedItem.mask[0] + \"\\0\" : this.selectedItem.mask[1] + \"\\0\";\n } else {\n mask = this.selectedItem.mask + \"\\0\";\n }\n\n let tokens = \"\";\n let replace = \"\";\n let acumulador = 0;\n let contador = 0;\n\n for (const token of mask) {\n if (isNaN(parseInt(token))) {\n if (acumulador) {\n tokens += `(\\\\d{${acumulador}})`;\n replace += `$${++contador}`;\n acumulador = 0;\n }\n\n if (token !== \"\\0\") {\n replace += token;\n }\n } else {\n acumulador++;\n }\n }\n\n tokens = `^${tokens}*`;\n return this.phone.value.replace(new RegExp(tokens), replace);\n }\n\n private _createDropdownPortal(): void {\n if (!isPlatformBrowser(this.platformId) || isNullOrUndefined(this.dropElement)) return;\n\n const bodyElement = document.body;\n const dropElementRect = this.dropElement.nativeElement.getBoundingClientRect();\n\n this.dropTop = dropElementRect.bottom + window.scrollY;\n this.dropLeft = dropElementRect.left + window.scrollX;\n\n this._portalHost = new DomPortalOutlet(bodyElement, null, null, null);\n const portal = new TemplatePortal(this.dropdownTemplate, this.viewContainerRef);\n this._portalHost.attach(portal);\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { PortalModule } from \"@angular/cdk/portal\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { NgxMaskModule } from \"ngx-mask\";\n\nimport { CountryPhonePickerService } from \"./country-phone-picker.service\";\nimport { CountryPhonePickerComponent } from \"./country-phone-picker.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n NgxMaskModule.forRoot(),\n PortalModule,\n ],\n declarations: [CountryPhonePickerComponent],\n exports: [CountryPhonePickerComponent],\n providers: [CountryPhonePickerService],\n})\nexport class CountryPhonePickerModule { }","import { FormControl } from \"@angular/forms\";\n\nimport { AutocompleteField } from \"../../configurations/fields/autocomplete-field\";\nimport { BlobField } from \"../../configurations/fields/blob-field\";\nimport { BooleanField } from \"../../configurations/fields/boolean-field\";\nimport { CalendarField } from \"../../configurations/fields/calendar-field\";\nimport { CheckboxField } from \"../../configurations/fields/checkbox-field\";\nimport { ChipsField } from \"../../configurations/fields/chips-field\";\nimport { CountryPhonePickerField } from \"../../configurations/fields/country-phone-picker-field\";\nimport { CurrencyField } from \"../../configurations/fields/currency-field\";\nimport { EditorField } from \"../../configurations/fields/editor-field\";\nimport { LookupField } from \"../../configurations/fields/lookup-field\";\nimport { NumberField } from \"../../configurations/fields/number-field\";\nimport { PasswordField } from \"../../configurations/fields/password-field\";\nimport { RadioButtonField } from \"../../configurations/fields/radio-button-field\";\nimport { SelectField } from \"../../configurations/fields/select-field\";\nimport { SliderField } from \"../../configurations/fields/slider-field\";\nimport { TextAreaField } from \"../../configurations/fields/text-area-field\";\nimport { TextAreaIAField } from \"../../configurations/fields/text-area-ia-field\";\nimport { TextField } from \"../../configurations/fields/text-field\";\n\nexport interface BaseFieldComponentConfig {\n field:\n | AutocompleteField\n | BooleanField\n | BlobField\n | CalendarField\n | CheckboxField\n | ChipsField\n | CountryPhonePickerField\n | CurrencyField\n | EditorField\n | LookupField\n | NumberField\n | PasswordField\n | RadioButtonField\n | SelectField\n | SliderField\n | TextAreaField\n | TextAreaIAField\n | TextField;\n formControl: FormControl;\n}\n\nexport class BaseFieldComponent {\n public isFunction(value: any): boolean {\n return value instanceof Function;\n }\n\n public trigger(callback: any) {\n return callback();\n }\n}\n","export class FieldSize {\n sm?: number;\n md?: number;\n lg?: number;\n xl?: number;\n\n constructor({ sm = 12, md = 6, lg = 6, xl = 6 }: FieldSize) {\n this.sm = sm;\n this.md = md;\n this.lg = lg;\n this.xl = xl;\n }\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n KeyValueDiffers,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { LocaleService } from \"../locale/locale.service\";\nimport { CurrencyMaskDirective } from \"ng2-currency-mask\";\nimport { first } from \"rxjs/operators\";\n\n/**\n * @deprecated Should use 'AlignmentOptions' from @seniorsistemas/ng2-currency-mask instead\n */\nexport enum NumberAlignmentOption {\n RIGHT = \"right\",\n LEFT = \"left\",\n}\n\n/**\n * @deprecated Should use BigNumberInput directive instead\n */\n@Directive({\n selector: \"input[sNumberInput]\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberInputDirective),\n multi: true,\n },\n ],\n})\nexport class NumberInputDirective extends CurrencyMaskDirective implements OnInit, OnChanges, OnDestroy {\n @Input()\n public precision = 15;\n\n @Input()\n public scale = 0;\n\n @Input()\n public decimalSeparator: string;\n\n @Input()\n public thousandsSeparator: string;\n\n @Input()\n public alignTo = NumberAlignmentOption.LEFT;\n\n @Input()\n public allowNegative = true;\n\n @Input()\n @HostBinding(\"attr.placeholder\")\n public placeholder: string;\n\n @HostBinding(\"attr.maxLength\")\n public maxLength: number;\n\n @Output()\n public pasteRejected = new EventEmitter<string>();\n\n private _maxLength: number;\n\n private pasteListener: any;\n private keypressListener: any;\n\n constructor(\n _keyValueDiffers: KeyValueDiffers,\n private readonly _elementRef: ElementRef,\n private readonly localeService: LocaleService\n ) {\n super(null, _elementRef, _keyValueDiffers);\n\n this.onLocaleService();\n }\n\n public ngOnInit(): void {\n this.updateVariables();\n\n super.ngOnInit();\n\n this.pasteListener = this._onPaste.bind(this);\n this._elementRef.nativeElement.addEventListener(\"paste\", this.pasteListener);\n\n this.keypressListener = this._onKeypress.bind(this);\n this._elementRef.nativeElement.addEventListener(\"keypress\", this.keypressListener);\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n const placeholderChange = changes.placeholder && changes.placeholder.currentValue;\n if (!placeholderChange && this.scale) this.placeholder = `0${this.decimalSeparator}${\"\".padEnd(this.scale, \"0\")}`;\n\n if (\n changes.scale ||\n changes.decimalSeparator ||\n changes.thousandsSeparator ||\n changes.alignTo ||\n changes.precision ||\n changes.allowNegative\n ) {\n this.updateVariables();\n }\n }\n\n public ngOnDestroy(): void {\n this._elementRef.nativeElement.removeEventListener(\"paste\", this.pasteListener);\n this._elementRef.nativeElement.removeEventListener(\"keypress\", this.keypressListener);\n }\n\n private _onPaste(event: ClipboardEvent): void {\n const pastedText = event.clipboardData?.getData(\"text\") ?? \"\";\n const numericText = pastedText.replace(new RegExp(`\\\\${this.thousandsSeparator}`, \"g\"), \"\").replace(this.decimalSeparator, \".\");\n const [intPart, decimalPart = \"\"] = numericText.split(\".\");\n const totalDigits = intPart.replace(/\\D/g, \"\").length + decimalPart.slice(0, this.scale).length;\n\n if (totalDigits > this.precision) {\n event.preventDefault();\n event.stopPropagation();\n this.pasteRejected.emit(pastedText);\n }\n }\n\n private _onKeypress(event: KeyboardEvent): void {\n const code = event.code;\n\n if (code === \"Minus\" || code === \"NumpadSubtract\") {\n if (this.allowNegative) {\n this.maxLength = this._maxLength + 1;\n }\n } else if (code === \"Equal\" || code === \"NumpadAdd\") {\n this.maxLength = this._maxLength;\n }\n }\n\n /**\n * Update the options values according to the directive input values.\n */\n private updateVariables(): void {\n this.options = {\n align: this.alignTo,\n decimal: this.decimalSeparator,\n thousands: this.thousandsSeparator,\n precision: this.scale || 0,\n prefix: \"\",\n suffix: \"\",\n allowNegative: this.allowNegative,\n };\n this.calculateMaxLength();\n }\n\n /**\n * Responsible to calculate the field maximum length considering the separators.\n */\n private calculateMaxLength(): void {\n const decSepLength = this.decimalSeparator.length;\n const thoSepLength = this.thousandsSeparator.length;\n\n let maxLength = this.precision + (this.scale ? decSepLength : 0);\n maxLength += Math.ceil((this.precision - (this.scale ? this.scale : 0)) / 3 - 1) * thoSepLength;\n\n this._maxLength = maxLength;\n this.maxLength = maxLength;\n }\n\n private onLocaleService(): void {\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe(() => {\n this.decimalSeparator = this.decimalSeparator ?? this.localeService.getDecimalSeparator();\n this.thousandsSeparator = this.thousandsSeparator ?? this.localeService.getGroupingSeparator();\n });\n }\n}\n","import { TemplateRef } from \"@angular/core\";\nimport { FieldSize } from \"../field-size\";\nimport { FieldType } from \"../field-type\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { FormField } from \"../form-field\";\n\nexport interface FieldConfig {\n defaultValue?: any;\n required?: () => boolean;\n visible?: () => boolean;\n id?: string;\n name: string;\n label: string;\n infoSign?: string;\n tooltip?: string;\n placeholder?: string;\n showClear?: boolean;\n type?: FieldType;\n size?: FieldSize;\n representedBy?: \"radio\" | \"switch\";\n errorMessages?: () => ({}) | {};\n bottomTemplate?: TemplateRef<Element>;\n footer?: {\n help?: {\n text: string;\n visible?: (options: { abstractControl: AbstractControl, formField: FormField }) => boolean;\n };\n link?: {\n label: string;\n onClick: (options: { abstractControl: AbstractControl, formField: FormField }) => void;\n visible?: (options: { abstractControl: AbstractControl, formField: FormField }) => boolean;\n };\n };\n CustomFieldClass?: unknown;\n CustomFieldComponentClass?: unknown;\n displayTimeInfoSign?: number;\n sortableColumnName?: string\n useInfoSignFocusedInputRef?: boolean;\n ignoreLabel?: boolean\n}\n\nexport abstract class Field {\n public required?: () => boolean;\n public visible?: () => boolean;\n public id?: string;\n public name: string;\n public label: string;\n public infoSign?: string;\n public tooltip?: string;\n public placeholder?: string;\n public showClear?: boolean;\n public type: FieldType;\n public size: FieldSize;\n public defaultValue?: any;\n public representedBy?: \"radio\" | \"switch\";\n public errorMessages?: () => ({}) | {};\n public bottomTemplate?: TemplateRef<Element>;\n public CustomFieldClass?: unknown;\n public CustomFieldComponentClass?: unknown;\n public displayTimeInfoSign?: number;\n public sortableColumnName?: string\n public footer?: {\n help?: {\n text: string;\n visible?: (options: { abstractControl: AbstractControl, formField: FormField }) => boolean;\n };\n link?: {\n label: string;\n onClick: (options: { abstractControl: AbstractControl, formField: FormField }) => void;\n visible?: (options: { abstractControl: AbstractControl, formField: FormField }) => boolean;\n };\n };\n public useInfoSignFocusedInputRef?: boolean;\n\n /**\n * In some cases DynamicFormField use a custom field that alredy exists, this happen in CustomFields when convert 'Integer, Double & Money' types to 'Custom' this create two labels. activate this property hide the parent label.\n */\n ignoreLabel? = false;\n\n constructor(config: FieldConfig) {\n if (config.footer?.help) {\n config.footer.help = {\n visible: () => true,\n ...config.footer?.help\n }\n }\n\n if (config.footer?.link) {\n config.footer.link = {\n visible: () => true,\n ...config.footer?.link\n }\n }\n\n this.required = config.required || (() => false);\n this.visible = config.visible || (() => true);\n this.id = config.id;\n this.name = config.name;\n this.label = config.label;\n this.infoSign = config.infoSign;\n this.tooltip = config.tooltip;\n this.placeholder = config.placeholder || \"\";\n this.showClear = config.showClear || false;\n this.type = config.type;\n this.size = new FieldSize(config.size || {});\n this.errorMessages = config.errorMessages;\n this.bottomTemplate = config.bottomTemplate;\n this.footer = config.footer;\n this.defaultValue = config.defaultValue;\n this.representedBy = config.representedBy;\n this.CustomFieldClass = config.CustomFieldClass;\n this.CustomFieldComponentClass = config.CustomFieldComponentClass;\n this.displayTimeInfoSign = config.displayTimeInfoSign ?? 5000;\n this.useInfoSignFocusedInputRef = config.useInfoSignFocusedInputRef ?? true;\n this.ignoreLabel = config.ignoreLabel ?? false;\n }\n\n get gridClass() {\n return Object.keys(this.size).map(key => `ui-${key}-${this.size[key]}`);\n }\n}\n","import { Observable } from \"rxjs\";\nimport { FieldType } from \"../field-type\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface AutocompleteFieldConfig extends FieldConfig {\n dataKey?: string;\n displayField?: string;\n multiple?: boolean;\n appendTo?: string;\n emptyMessage?: string;\n suggestionsObservable: Observable<any>;\n onSelect?: (event: any) => void;\n onUnselect?: (event: any) => void;\n onClear?: (event: any) => void;\n onSearch: (value: string) => void;\n onBlur?: (event: FocusEvent) => void;\n}\n\nexport class AutocompleteField extends Field {\n public dataKey: string;\n public displayField?: string;\n public multiple?: boolean;\n public appendTo?: string;\n public emptyMessage?: string;\n public suggestionsObservable: Observable<any>;\n public suggestions: any[] = [];\n\n public onSelect?: (event: any) => void;\n public onUnselect?: (event: any) => void;\n public onClear?: (event: any) => void;\n public onSearch: (value: string) => void;\n public onBlur?: (event: FocusEvent) => void;\n\n constructor(config: AutocompleteFieldConfig) {\n super({ ...config, type: FieldType.Autocomplete } as AutocompleteFieldConfig);\n Object.assign(this, config);\n this.suggestionsObservable.subscribe(suggestions => (this.suggestions = suggestions));\n }\n}\n","import { AlignmentOptions } from \"@seniorsistemas/ng2-currency-mask\";\nimport { NumberLocaleOptions } from \"../../../locale/index\";\nimport { AddonConfig } from \"../addon-config\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface BignumberFieldConfig extends FieldConfig {\n allowNegative: boolean;\n numberLocaleOptions?: NumberLocaleOptions;\n browserAutocomplete?: boolean;\n precision?: Function | number;\n scale?: Function | number;\n mask?: () => string | string;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: FocusEvent) => void;\n autoClear?: boolean;\n}\n\nexport class BignumberField extends Field {\n public allowNegative: boolean;\n public numberLocaleOptions: NumberLocaleOptions;\n public browserAutocomplete: boolean;\n public precision?: Function | number;\n public scale?: Function | number;\n public alignTo: AlignmentOptions;\n public mask?: () => string | string;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onComplete?: (event: FocusEvent) => void;\n public onInput?: (event: FocusEvent) => void;\n public autoClear?: boolean;\n\n constructor(config: BignumberFieldConfig) {\n super(config);\n this.allowNegative = config.allowNegative ?? true;\n this.numberLocaleOptions = config.numberLocaleOptions;\n this.browserAutocomplete = config.browserAutocomplete;\n this.precision = config.precision;\n this.scale = config.scale ?? 2;\n this.alignTo = this.scale ? AlignmentOptions.RIGHT : AlignmentOptions.LEFT;\n this.mask = config.mask;\n this.leftAddon = config.leftAddon;\n this.rightAddon = config.rightAddon;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onComplete = config.onComplete;\n this.onInput = config.onInput;\n this.autoClear = config.autoClear ?? true;\n }\n}\n","import { ElementRef } from \"@angular/core\";\nimport { FileDto } from \"../../../file-upload/index\";\nimport { FormField } from \"./../../configurations/form-field\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface BlobFieldConfig extends FieldConfig {\n accept: string;\n files: FileDto[];\n chooseLabel: string;\n removeLabel: string;\n cancelLabel: string;\n successTooltip: string;\n multiple: boolean;\n onUploadFile: (event: { files: FileDto[] }, field: FormField) => void;\n onRemoveFile: (event: FileDto, field: FormField) => void;\n onCancelUpload: (event: number, field: FormField) => void;\n onDownloadFile: (event: { index: number; anchor: ElementRef }, field: FormField) => void;\n showFileUploadDate: boolean;\n}\n\nexport class BlobField extends Field {\n public accept: string;\n public files: FileDto[];\n public chooseLabel: string;\n public removeLabel: string;\n public cancelLabel: string;\n public successTooltip: string;\n public multiple: boolean;\n public onUploadFile: (event: { files: FileDto[] }, field: FormField) => void;\n public onRemoveFile: (event: FileDto, field: FormField) => void;\n public onCancelUpload: (event: number, field: FormField) => void;\n public onDownloadFile: (event: { index: number; anchor: ElementRef }, field: FormField) => void;\n public showFileUploadDate: boolean;\n\n constructor(config: BlobFieldConfig) {\n super(config);\n this.accept = config.accept;\n this.files = config.files || [];\n this.chooseLabel = config.chooseLabel;\n this.removeLabel = config.removeLabel;\n this.cancelLabel = config.cancelLabel;\n this.successTooltip = config.successTooltip;\n this.multiple = config.multiple;\n this.onUploadFile = config.onUploadFile;\n this.onRemoveFile = config.onRemoveFile;\n this.onCancelUpload = config.onCancelUpload;\n this.onDownloadFile = config.onDownloadFile;\n this.showFileUploadDate = config.showFileUploadDate;\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface BooleanOptionsLabelConfig {\n true: string;\n false: string;\n empty?: string;\n clear?: string;\n}\n\nexport class BooleanOptionsLabel {\n public true: string;\n public false: string;\n public empty?: string;\n public clear?: string;\n\n constructor(config: BooleanOptionsLabelConfig) {\n this.true = config.true;\n this.false = config.false;\n this.empty = config.empty;\n this.clear = config.clear;\n }\n}\n\nexport interface BooleanFieldConfig extends FieldConfig {\n verticalAlignment?: boolean;\n optionsLabel: BooleanOptionsLabel;\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onClick?: (event: any) => void;\n}\n\nexport class BooleanField extends Field {\n public verticalAlignment?: boolean;\n public optionsLabel: BooleanOptionsLabel;\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onClick?: (event: any) => void;\n\n constructor(config: BooleanFieldConfig) {\n super(config);\n this.verticalAlignment = config.verticalAlignment;\n this.optionsLabel = new BooleanOptionsLabel(config.optionsLabel);\n this.representedBy = \"radio\";\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onClick = config.onClick;\n }\n}\n","import { BooleanOptionsLabel } from \"./boolean-field\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface BooleanSwitchFieldConfig extends FieldConfig {\n onChange?: (event: any) => void;\n optionsLabel?: BooleanOptionsLabel;\n}\n\nexport class BooleanSwitchField extends Field {\n public onChange?: (event: any) => void;\n public optionsLabel?: BooleanOptionsLabel;\n constructor(config: BooleanSwitchFieldConfig) {\n super(config);\n this.onChange = config.onChange;\n if (config.optionsLabel) {\n this.optionsLabel = new BooleanOptionsLabel(config.optionsLabel);\n }\n this.representedBy = \"switch\";\n }\n}\n","import { CalendarLocaleOptions } from \"../../../locale/index\";\nimport { FieldType } from \"../field-type\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface CalendarFieldConfig extends FieldConfig {\n view?: string;\n minDate?: Date;\n maxDate?: Date;\n defaultDate?: Date;\n appendTo?: string;\n showOnFocus?: boolean;\n calendarLocaleOptions?: CalendarLocaleOptions;\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onSelect?: (event: any) => void;\n onInput?: (event: any) => void;\n onClose?: (event: any) => void;\n onTodayClick?: (event: any) => void;\n onClearClick?: (event: any) => void;\n onMonthChange?: (event: any) => void;\n onYearChange?: (event: any) => void;\n selectionMode?: string;\n rangeSeparator?: string;\n showSeconds?: boolean;\n}\n\nexport class CalendarField extends Field {\n public view?: string;\n public appendTo: string;\n public minDate?: Date;\n public maxDate?: Date;\n public defaultDate?: Date;\n public calendarLocaleOptions: CalendarLocaleOptions;\n public showOnFocus?: boolean;\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onSelect?: (event: any) => void;\n public onInput?: (event: any) => void;\n public onClose?: (event: any) => void;\n public onTodayClick?: (event: any) => void;\n public onClearClick?: (event: any) => void;\n public onMonthChange?: (event: any) => void;\n public onYearChange?: (event: any) => void;\n public selectionMode?: string;\n public rangeSeparator?: string;\n public showSeconds: boolean;\n\n constructor(config: CalendarFieldConfig) {\n super(config);\n this.view = config.view || \"date\";\n this.minDate = config.minDate;\n this.maxDate = config.maxDate;\n this.defaultDate = config.defaultDate;\n this.appendTo = config.appendTo;\n this.showOnFocus = typeof config.showOnFocus === \"boolean\" ? config.showOnFocus : true;\n this.calendarLocaleOptions = config.calendarLocaleOptions;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onSelect = config.onSelect;\n this.onInput = config.onInput;\n this.onClose = config.onClose;\n this.onTodayClick = config.onTodayClick;\n this.onClearClick = config.onClearClick;\n this.onMonthChange = config.onMonthChange;\n this.onYearChange = config.onYearChange;\n this.selectionMode = config.selectionMode || \"single\";\n this.rangeSeparator = config.rangeSeparator || \"-\";\n this.showSeconds = config.showSeconds;\n\n // Tornando true o padrão para showSeconds.\n if (this.showSeconds === null || this.showSeconds === undefined) {\n switch (this.type) {\n case FieldType.DateTime:\n case FieldType.LocalDateTime:\n case FieldType.Time:\n this.showSeconds = true;\n break;\n }\n }\n }\n}\n","import { CheckboxData } from \"../../../checkbox/models\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface CheckboxFieldConfig extends FieldConfig {\n data: CheckboxData;\n}\n\nexport class CheckboxField extends Field {\n public data: CheckboxData;\n\n constructor(config: CheckboxFieldConfig) {\n super(config);\n this.data = config.data;\n }\n}","import { Field, FieldConfig } from \"./field\";\n\nexport interface ChipsFieldConfig extends FieldConfig {\n keyFilter?: RegExp;\n separator?: string;\n showCopyButton?: boolean;\n onAdd: (event: any) => void;\n onRemove: (event: any) => void;\n onChipClick: (event: any) => void;\n onFocus: (event: any) => void;\n onBlur: (event: any) => void;\n onCopy: (content: string) => void;\n}\n\nexport class ChipsField extends Field {\n public keyFilter?: RegExp;\n public showCopyButton = false;\n public separator?: string;\n public onAdd: (event: any) => void;\n public onRemove: (event: any) => void;\n public onChipClick: (event: any) => void;\n public onFocus: (event: any) => void;\n public onBlur: (event: any) => void;\n public onCopy: (content: string) => void; \n\n constructor(config: ChipsFieldConfig) {\n super(config);\n this.keyFilter = config.keyFilter;\n this.showCopyButton = config.showCopyButton;\n this.separator = config.separator;\n this.onAdd = config.onAdd;\n this.onRemove = config.onRemove;\n this.onChipClick = config.onChipClick;\n this.onFocus = config.onFocus;\n this.onBlur = config.onBlur;\n this.onCopy = config.onCopy;\n }\n}\n","import { Field, FieldConfig } from \"./field\";\nimport { CountryPhoneData, Ordination, PhoneSelectionData } from \"../../../country-phone-picker\";\n\nexport interface CountryPhonePickerConfig extends FieldConfig {\n countries: string[];\n ordination: Ordination;\n onSelected: (data: CountryPhoneData) => void;\n onFocusLost: (data: PhoneSelectionData) => void;\n}\n\nexport class CountryPhonePickerField extends Field {\n public countries: string[];\n public ordination: Ordination;\n public onSelected: (data: CountryPhoneData) => void;\n public onFocusLost: (data: PhoneSelectionData) => void;\n\n constructor(config: CountryPhonePickerConfig) {\n super(config);\n this.countries = config.countries;\n this.ordination = config.ordination;\n this.onSelected = config.onSelected;\n this.onFocusLost = config.onFocusLost;\n }\n}","export enum DynamicType {\n Autocomplete = \"Autocomplete\",\n Binary = \"Binary\",\n Boolean = \"Boolean\",\n Chips = \"Chips\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n LocalDateTime = \"LocalDateTime\",\n Double = \"Double\",\n Enum = \"Enum\",\n Fieldset = \"Fieldset\",\n Integer = \"Integer\",\n Lookup = \"Lookup\",\n Money = \"Money\",\n Radio = \"Radio\",\n Row = \"Row\",\n Section = \"Section\",\n String = \"String\",\n Text = \"Text\",\n Time = \"Time\",\n Number = \"Number\",\n Password = \"Password\",\n Slider = \"Slider\",\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { NumberInputDirective } from \"./number-input.directive\";\n\n/**\n * @deprecated Should use 'BignumberInputModule' instead\n */\n@NgModule({\n imports: [CommonModule],\n declarations: [NumberInputDirective],\n exports: [NumberInputDirective],\n})\nexport class NumberInputModule {}\n","import { NumberLocaleOptions } from \"../../../locale/index\";\nimport { NumberAlignmentOption } from \"../../../number-input\";\nimport { AddonConfig } from \"../addon-config\";\nimport { Field, FieldConfig } from \"./field\";\n\n\n/**\n * @deprecated Should use BignumberFieldConfig instead\n */\nexport interface NumberFieldConfig extends FieldConfig {\n numberLocaleOptions?: NumberLocaleOptions;\n browserAutocomplete?: boolean;\n precision?: Function | number;\n scale?: (() => number) | number;\n alignTo?: NumberAlignmentOption;\n mask?: () => string | string;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: FocusEvent) => void;\n}\n\n/**\n * @deprecated Should use BignumberField instead\n */\nexport class NumberField extends Field {\n /**\n * @deprecated `numberLocaleOptions` should not be used. It is not needed anymore and should be removed if possible.\n */\n public numberLocaleOptions: NumberLocaleOptions;\n\n public browserAutocomplete: boolean;\n public precision?: Function | number;\n public scale?: (() => number) | number;\n public alignTo: NumberAlignmentOption;\n public mask?: () => string | string;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onComplete?: (event: FocusEvent) => void;\n public onInput?: (event: FocusEvent) => void;\n\n constructor(config: NumberFieldConfig) {\n super(config);\n this.numberLocaleOptions = config.numberLocaleOptions;\n this.browserAutocomplete = config.browserAutocomplete;\n this.precision = config.precision;\n this.scale = config.scale;\n this.alignTo = config.alignTo || NumberAlignmentOption.LEFT;\n this.mask = config.mask;\n this.leftAddon = config.leftAddon;\n this.rightAddon = config.rightAddon;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onComplete = config.onComplete;\n this.onInput = config.onInput;\n }\n}\n","import { NumberLocaleOptions } from \"../../../locale\";\nimport { NumberAlignmentOption } from \"../../../number-input\";\nimport { NumberField, NumberFieldConfig } from \"./number-field\";\n\n/**\n * @deprecated Should use BignumberField instead\n */\nexport interface DecimalFieldConfig extends NumberFieldConfig {\n scale?: (() => number) | number;\n}\n\n/**\n * @deprecated Should use BignumberField instead\n */\nexport class DecimalField extends NumberField implements DecimalFieldConfig {\n public scale?: (() => number) | number;\n\n constructor(config: DecimalFieldConfig) {\n super(config);\n this.numberLocaleOptions = config.numberLocaleOptions;\n this.alignTo = config.alignTo || NumberAlignmentOption.RIGHT;\n this.scale = typeof config.scale === \"function\" ? config.scale() : config.scale;\n }\n}\n","import { NumberLocaleOptions } from \"../../../locale\";\nimport { DecimalField, DecimalFieldConfig } from \"./decimal-field\";\n\n\n/**\n * @deprecated Should use BignumberField instead\n */\nexport class CurrencyField extends DecimalField {\n currency: () => string;\n\n constructor(config: DecimalFieldConfig) {\n super(config);\n this.currency = config['currency'];\n this.numberLocaleOptions = config.numberLocaleOptions;\n }\n}\n","import { Observable } from \"rxjs\";\nimport { delay } from \"rxjs/operators\";\n\nimport { FieldType } from \"../field-type\";\nimport { Field, FieldConfig } from \"./field\";\nimport { DefaultFilter } from \"../../components/lookup/models\";\n\nexport interface LookupFieldConfig extends FieldConfig {\n multiple?: boolean;\n showSearch?: boolean;\n searchFields: any[];\n searchGridFields: any[];\n lookupSuggestions: any[];\n suggestionsObservable: Observable<any[]>;\n searchObservable: Observable<{ gridData: any[]; totalRecords: number; searchTotalRecordsLabel?: string }>;\n dataKey: string;\n lookupDisplayField: string;\n searchTitle?: string;\n searchEmptyTitle?: string;\n filterLabel?: string;\n filterTitle?: string;\n clearLabel?: string;\n cancelLabel?: string;\n selectLabel?: string;\n emptyMessage?: string;\n recordLabel?: string;\n recordsLabel?: string;\n emptyFieldLabel?: string;\n appendTo?: string;\n autocompleteForceSelection?: boolean;\n showAddOption: boolean;\n showEditOption: boolean;\n showRemoveOption: boolean; \n onLookupRequest: (query: string) => void;\n onSearchRequest: (event: any) => void;\n onSelect?: (event: any) => void;\n onUnselect?: (event: any) => void;\n onClear?: (event: any) => void;\n onBlur?: (event: FocusEvent) => void;\n onAdd?: () => void;\n onEdit?: (selectedItem: unknown) => void;\n onRemove?: (selectedItems: unknown[]) => void;\n}\n\nexport class LookupField extends Field {\n public multiple = false;\n public showSearch = true;\n public searchFields: any[];\n public searchGridFields: any[];\n public lookupSuggestions: any[];\n public suggestionsObservable: Observable<any[]>;\n public searchObservable: Observable<{ gridData: any[]; totalRecords: number; searchTotalRecordsLabel?: string }>;\n public dataKey: string;\n public lookupDisplayField: string;\n public searchTitle: string;\n public searchEmptyTitle: string;\n public filterLabel: string;\n public filterTitle: string;\n public clearLabel: string;\n public cancelLabel: string;\n public selectLabel: string;\n public recordLabel: string;\n public recordsLabel: string;\n public emptyFieldLabel: string;\n public emptyMessage: string;\n public appendTo?: string;\n public autocompleteForceSelection = true;\n public showAddOption = false;\n public showEditOption = false;\n public showRemoveOption = false;\n public defaultFilter: DefaultFilter[];\n public sortableColumnsDisabled: string[];\n public onLookupRequest: (query: string) => void;\n public onSearchRequest: (event: any) => void;\n public onClear?: (event: any) => void;\n public onBlur?: (event: FocusEvent) => void;\n public onAdd?: () => void;\n public onEdit?: (selectedItem: unknown) => void;\n public onRemove?: (selectedItems: unknown[]) => void;\n\n private _gridData: any[];\n private _searchTotalRecords: number;\n private _searchTotalRecordsLabel: string;\n\n public onSelect = (event: any) => {};\n public onUnselect = (event: any) => {};\n\n public get gridData() {\n return this._gridData;\n }\n\n public get searchTotalRecords() {\n return this._searchTotalRecords;\n }\n\n public get searchTotalRecordsLabel() {\n return this._searchTotalRecordsLabel;\n }\n\n constructor(config: LookupFieldConfig) {\n super({ ...config, type: FieldType.Lookup } as LookupFieldConfig);\n Object.assign(this, config);\n\n this.suggestionsObservable.subscribe(suggestions => (this.lookupSuggestions = suggestions));\n this.searchObservable.pipe(delay(0)).subscribe(({ totalRecords, gridData, searchTotalRecordsLabel }) => {\n this._gridData = gridData;\n this._searchTotalRecords = totalRecords;\n this._searchTotalRecordsLabel = searchTotalRecordsLabel;\n });\n }\n}\n","import { PasswordStrengths } from \"../../../password-strength\";\nimport { AddonConfig } from \"../addon-config\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface PasswordFieldConfig extends FieldConfig {\n inputType?: string;\n keyFilter?: any;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n maxLength?: string | number;\n passwordStrength: boolean;\n passwordStrengthOptions?: PasswordStrengthOptions;\n showToggle: boolean;\n style?: { [klass: string]: any };\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: FocusEvent) => void;\n}\n\nexport class PasswordField extends Field {\n public inputType?: string;\n public keyFilter?: any;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public maxLength?: string | number;\n public passwordStrength: boolean;\n public passwordStrengthOptions?: PasswordStrengthOptions;\n public showToggle: boolean;\n public style?: { [klass: string]: any };\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onComplete?: (event: any) => void;\n public onInput?: (event: any) => void;\n\n constructor(config: PasswordFieldConfig) {\n super(config);\n this.inputType = config.inputType;\n this.keyFilter = config.keyFilter;\n this.leftAddon = config.leftAddon;\n this.rightAddon = config.rightAddon;\n this.maxLength = config.maxLength || 9999999;\n this.passwordStrength = config.passwordStrength;\n this.passwordStrengthOptions = config.passwordStrengthOptions;\n this.showToggle = config.showToggle;\n this.style = config.style;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onComplete = config.onComplete;\n this.onInput = config.onInput;\n }\n}\n\nexport interface PasswordStrengthOptions {\n description?: string;\n weakTitle?: string;\n mediumTitle?: string;\n strongTitle?: string;\n validation?: (content: string) => PasswordStrengths;\n}","import { Field, FieldConfig } from \"./field\";\n\nexport class RationButtonOption {\n label: string;\n value?: any;\n\n constructor(config: RationButtonOption) {\n this.label = config.label;\n this.value = config.value;\n }\n}\n\nexport interface RadioButtonFieldConfig extends FieldConfig {\n verticalAlignment?: boolean;\n clearLabel?: string;\n options: RationButtonOption[];\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onClick?: (event: any) => void;\n}\n\nexport class RadioButtonField extends Field {\n public verticalAlignment?: boolean;\n public clearLabel?: string;\n public options: RationButtonOption[];\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onClick?: (event: any) => void;\n\n constructor(config: RadioButtonFieldConfig) {\n super(config);\n this.verticalAlignment = config.verticalAlignment;\n this.clearLabel = config.clearLabel;\n this.options = config.options;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onClick = config.onClick;\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface SelectFieldConfig extends FieldConfig {\n appendTo?: string;\n optionLabel?: string;\n dataKey?: string;\n autoDisplayFirst?: boolean;\n options: () => SelectOption[] | any[];\n multiple?: boolean;\n multipleSelectedLabel?: string;\n onClick?: (event: any) => void;\n onChange?: (event: any) => void;\n emptyMessage?: string;\n editable?: boolean;\n filter?: boolean;\n group?: boolean;\n}\n\nexport class SelectField extends Field {\n public appendTo?: string;\n public optionLabel?: string;\n public dataKey?: string;\n public autoDisplayFirst?: boolean;\n public options: () => SelectOption[] | any[];\n public multiple?: boolean;\n public multipleSelectedLabel?: string;\n public onClick?: (event: any) => void;\n public onChange?: (event: any) => void;\n public emptyMessage?: string;\n public editable?: boolean;\n public filter?: boolean;\n public group?: boolean;\n\n constructor(config: SelectFieldConfig) {\n super(config);\n this.appendTo = config.appendTo;\n this.dataKey = config.dataKey;\n this.optionLabel = config.optionLabel;\n this.autoDisplayFirst = config.autoDisplayFirst;\n this.options = config.options;\n this.multiple = config.multiple;\n this.multipleSelectedLabel = config.multipleSelectedLabel;\n this.onClick = config.onClick;\n this.onChange = config.onChange;\n this.emptyMessage = config.emptyMessage;\n this.editable = config.editable;\n this.filter = config.filter;\n this.group = config.group;\n }\n}\n\nexport class SelectOption {\n label: string;\n value?: any;\n\n constructor(config: SelectOption) {\n this.label = config.label;\n this.value = config.value;\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface SliderFieldConfig extends FieldConfig {\n onChange?: (event: any) => void;\n onSlideEnd?: (event: any) => void;\n range?: boolean;\n min?: number;\n max?: number;\n step?: number;\n orientation?: \"horizontal\" | \"vertical\";\n animate?: boolean;\n disabled?: boolean;\n prefix: string;\n suffix: string;\n rangeSeparator: string;\n}\n\nexport class SliderField extends Field {\n public onChange?: (event: any) => void;\n public onSlideEnd?: (event: any) => void;\n public range?: boolean;\n public min: number;\n public max: number;\n public step: number;\n public orientation: \"horizontal\" | \"vertical\";\n public animate: boolean;\n public disabled: boolean;\n public prefix: string;\n public suffix: string;\n public rangeSeparator: string;\n\n private readonly maxDefault = 100;\n\n constructor(config: SliderFieldConfig) {\n super(config);\n this.onChange = config.onChange;\n this.onSlideEnd = config.onSlideEnd;\n this.range = config.range ?? false;\n this.min = config.min ?? 0;\n this.max = config.max ?? this.maxDefault;\n this.orientation = config.orientation ?? \"horizontal\";\n this.step = config.step ?? 1;\n this.animate = config.animate ?? false;\n this.disabled = config.disabled ?? false;\n this.prefix = config.prefix;\n this.suffix = config.suffix;\n this.rangeSeparator = config.rangeSeparator ?? ' - ';\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface TextAreaFieldConfig extends FieldConfig {\n cols?: number;\n rows?: number;\n keyFilter?: any;\n style?: Partial<CSSStyleDeclaration>;\n readonly?: () => boolean;\n speechRecognition?: boolean\n keepContext: boolean\n speechRecognitionPlaceholder: string\n maxLength?: number;\n}\n\nexport class TextAreaField extends Field {\n public cols?: number;\n public rows?: number;\n public keyFilter?: any;\n public style?: Partial<CSSStyleDeclaration> = {\n resize: 'vertical'\n };\n public readonly?: () => boolean;\n public speechRecognition?: boolean\n public keepContext: boolean\n public speechRecognitionPlaceholder: string\n public maxLength?: number;\n\n constructor(config: TextAreaFieldConfig) {\n super(config);\n this.cols = config.cols;\n this.rows = config.rows;\n this.keyFilter = config.keyFilter;\n this.style = {\n ...config.style,\n ...this.style,\n };\n this.readonly = config.readonly;\n this.speechRecognition = config.speechRecognition ?? false\n this.keepContext = config.keepContext ?? false\n this.speechRecognitionPlaceholder = config.speechRecognitionPlaceholder ?? '';\n this.maxLength = config.maxLength;\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface TextAreaIAFieldConfig extends FieldConfig {\n cols?: number;\n rows?: number;\n keyFilter?: any;\n style?: Partial<CSSStyleDeclaration>;\n prompt?: string;\n readonly?: () => boolean;\n speechRecognition?: boolean;\n keepContext: boolean\n speechRecognitionPlaceholder: string\n maxLength?: number;\n}\n\nexport class TextAreaIAField extends Field {\n public cols?: number;\n public rows?: number;\n public keyFilter?: any;\n public style?: Partial<CSSStyleDeclaration> = {\n resize: 'vertical'\n };\n public prompt?: string;\n public readonly?: () => boolean;\n public speechRecognition?: boolean\n public keepContext: boolean\n public speechRecognitionPlaceholder: string\n public maxLength?: number;\n\n constructor(config: TextAreaIAFieldConfig) {\n super(config);\n this.cols = config.cols;\n this.rows = config.rows;\n this.keyFilter = config.keyFilter;\n this.style = {\n ...config.style,\n ...this.style,\n };\n this.prompt = config.prompt;\n this.readonly = config.readonly;\n this.speechRecognition = config.speechRecognition ?? false;\n this.keepContext = config.keepContext ?? false\n this.speechRecognitionPlaceholder = config.speechRecognitionPlaceholder ?? '';\n this.maxLength = config.maxLength;\n }\n}\n","import { AddonConfig } from \"../addon-config\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface TextFieldConfig extends FieldConfig {\n mask?: () => string | any;\n characterPattern?: (() => string) | string;\n unmask?: (() => boolean) | boolean;\n readonly?: () => boolean;\n inputType?: string;\n keyFilter?: any;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n maxLength?: string | number;\n browserAutocomplete?: boolean;\n style?: { [klass: string]: any };\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: FocusEvent) => void;\n}\n\nexport class TextField extends Field {\n public mask?: () => string | any;\n public characterPattern?: (() => string) | string;\n public unmask?: (() => boolean) | boolean;\n public readonly?: () => boolean;\n public inputType?: string;\n public keyFilter?: any;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public maxLength?: string | number;\n public browserAutocomplete?: boolean;\n public style?: { [klass: string]: any };\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onComplete?: (event: any) => void;\n public onInput?: (event: any) => void;\n\n constructor(config: TextFieldConfig) {\n super(config);\n this.mask = config.mask;\n this.characterPattern = config.characterPattern ?? \"[A-Za-z]\";\n this.unmask = config.unmask ?? false;\n this.readonly = config.readonly;\n this.inputType = config.inputType;\n this.keyFilter = config.keyFilter;\n this.leftAddon = config.leftAddon;\n this.rightAddon = config.rightAddon;\n this.maxLength = config.maxLength || 9999999;\n this.browserAutocomplete = config.browserAutocomplete;\n this.style = config.style;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onComplete = config.onComplete;\n this.onInput = config.onInput;\n this.sortableColumnName = config.sortableColumnName;\n }\n}\n","import { ButtonBadgeConfig, ButtonSize } from \"../../../button\";\nimport { ButtonComponent } from \"../../../button/button.component\";\nimport { ButtonAnimation } from \"../../../button/models/button-animation\";\nimport { ButtonPriority } from \"../../../button/models/button-priority\";\nimport { Field, FieldConfig } from \"./field\";\n\n\ntype ExtractedButtonProperties = Partial<Pick<ButtonComponent, 'priority' | 'iconClass' | 'disabled' | 'auxiliary' | 'caret' | 'iconColor' | 'badge' | 'animation' | 'slide' | 'menuOptions' | 'model' | 'baseZIndex' | 'styleClass' | 'rightIconClass' | 'tooltipPosition'>>;\n\nexport interface ButtonFieldConfig extends FieldConfig, ExtractedButtonProperties {\n onClick?: (event?: any) => any;\n fullWidth?: boolean\n mouseEnter?: (button: ButtonField) => void\n mouseLeave?: (button: ButtonField) => void\n}\n\nexport class ButtonField extends Field implements ExtractedButtonProperties {\n public priority?: ButtonPriority;\n public iconClass?: string;\n public disabled?: boolean;\n public auxiliary?: boolean;\n public caret?: boolean;\n public onClick?: (event?: Event) => any;\n public fullWidth?: boolean;\n public iconColor?: string;\n public badge?: ButtonBadgeConfig;\n public animation?: ButtonAnimation;\n public slide?: boolean;\n public menuOptions?: any[];\n public model?: any[];\n public baseZIndex?: number;\n public styleClass?: string;\n public rightIconClass?: string;\n public tooltipPosition?: \"top\" | \"right\" | \"bottom\" | \"left\" = \"top\";\n public buttonType?: string;\n public buttonSize?: ButtonSize;\n public mouseEnter?: (button: ButtonField) => void;\n public mouseLeave?: (button: ButtonField) => void;\n\n constructor(config: ButtonFieldConfig) {\n super(config);\n this.priority = config.priority || ButtonPriority.Primary;\n this.iconClass = config.iconClass || \"\";\n this.disabled = config.disabled || false;\n this.auxiliary = config.auxiliary || false;\n this.caret = config.caret || false;\n this.id = config.id || `s-button-${ButtonComponent.nextId++}`;\n this.onClick = config.onClick || (() => { });\n this.fullWidth = config.fullWidth || false;\n this.iconColor = config.iconColor;\n this.badge = config.badge;\n this.animation = config.animation;\n this.slide = config.slide;\n this.menuOptions = config.menuOptions;\n this.model = config.model;\n this.baseZIndex = config.baseZIndex;\n this.styleClass = config.styleClass;\n this.rightIconClass = config.rightIconClass;\n this.tooltipPosition = config.tooltipPosition || 'top';\n this.mouseEnter = config.mouseEnter;\n this.mouseLeave = config.mouseLeave;\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface EditorFieldConfig extends FieldConfig {\n formats?: string[];\n readonly?: boolean;\n modules?: any;\n style?: { [klass: string]: unknown };\n}\n\nexport class EditorField extends Field {\n public formats?: string[];\n public readonly?: boolean;\n public modules?: any;\n public style?: { [klass: string]: unknown };\n\n constructor(config: EditorFieldConfig) {\n super(config);\n this.formats = config.formats;\n this.readonly = config.readonly;\n this.modules = config.modules;\n this.style = config.style;\n }\n}\n","import { CropperLabelsConfig } from \"../../../profile-picture-picker\";\nimport { ConfirmationTexts, FileValidationErrors, ProfilePicturePickerData } from \"../../../profile-picture-picker/models\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface ProfilePictureConfig extends FieldConfig {\n simpleTitle?: string;\n actionTitle?: string;\n subtitle?: string;\n aspectRatio?: number;\n cropperLabelsConfig?: CropperLabelsConfig;\n removeButtonLabel?: string;\n changeButtonLabel?: string;\n confirmationTexts?: ConfirmationTexts;\n maxFileSize?: number;\n accept?: string;\n supportedExtensions?: string[];\n onChangeImage?: (event: string | ProfilePicturePickerData) => void;\n onRemovedImage?: () => void;\n onInvalidFile?: (event: FileValidationErrors) => void;\n}\n\nexport class ProfilePictureField extends Field {\n public simpleTitle?: string;\n public actionTitle?: string;\n public subtitle?: string;\n public aspectRatio?: number;\n public cropperLabelsConfig?: CropperLabelsConfig;\n public removeButtonLabel?: string;\n public changeButtonLabel?: string;\n public confirmationTexts?: ConfirmationTexts;\n public maxFileSize?: number;\n public accept?: string;\n public supportedExtensions?: string[];\n public onChangeImage?: (event: string | ProfilePicturePickerData) => void;\n public onRemovedImage?: () => void;\n public onInvalidFile?: (event: FileValidationErrors) => void;\n\n constructor(config: ProfilePictureConfig) {\n super(config);\n this.simpleTitle = config.simpleTitle;\n this.actionTitle = config.actionTitle;\n this.subtitle = config.subtitle;\n this.aspectRatio = config.aspectRatio;\n this.cropperLabelsConfig = config.cropperLabelsConfig;\n this.removeButtonLabel = config.removeButtonLabel;\n this.changeButtonLabel = config.changeButtonLabel;\n this.confirmationTexts = config.confirmationTexts;\n this.maxFileSize = config.maxFileSize;\n this.accept = config.accept;\n this.supportedExtensions = config.supportedExtensions;\n this.onChangeImage = config.onChangeImage;\n this.onRemovedImage = config.onRemovedImage;\n this.onInvalidFile = config.onInvalidFile;\n }\n}","import { TemplateRef } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { AlignmentOptions } from \"@seniorsistemas/ng2-currency-mask\";\nimport { FileDto } from \"../../file-upload/index\";\nimport { CalendarLocaleOptions, NumberLocaleOptions } from \"../../locale/index\";\nimport { NumberAlignmentOption } from \"../../number-input\";\nimport { AddonConfig } from \"./addon-config\";\nimport { FieldSize } from \"./field-size\";\nimport { FieldType } from \"./field-type\";\nimport { CheckboxField, CountryPhonePickerField } from \"./fields\";\nimport { AutocompleteField } from \"./fields/autocomplete-field\";\nimport { BignumberField } from \"./fields/bignumber-field\";\nimport { BlobField } from \"./fields/blob-field\";\nimport { BooleanField, BooleanOptionsLabel } from \"./fields/boolean-field\";\nimport { BooleanSwitchField } from \"./fields/boolean-switch-field\";\nimport { CalendarField } from \"./fields/calendar-field\";\nimport { ChipsField } from \"./fields/chips-field\";\nimport { CurrencyField } from \"./fields/currency-field\";\nimport { DecimalField } from \"./fields/decimal-field\";\nimport { EditorField } from \"./fields/editor-field\";\nimport { LookupField } from \"./fields/lookup-field\";\nimport { NumberField } from \"./fields/number-field\";\nimport { PasswordField } from \"./fields/password-field\";\nimport { ProfilePictureField } from \"./fields/profile-picture\";\nimport { RadioButtonField } from \"./fields/radio-button-field\";\nimport { SelectField } from \"./fields/select-field\";\nimport { SliderField } from \"./fields/slider-field\";\nimport { TextAreaField } from \"./fields/text-area-field\";\nimport { TextAreaIAField } from \"./fields/text-area-ia-field\";\nimport { TextField } from \"./fields/text-field\";\nimport { ButtonField } from \"./fields/button-field\";\n\nexport class FormField {\n id?: string;\n /**\n * Tells whether the field is required or not\n */\n required?: () => boolean;\n name?: string;\n sortableColumnName?: string;\n type?: FieldType;\n label?: string;\n /**\n * Labels of a Radio Button, only used to FieldType Boolean\n */\n optionsLabel?: BooleanOptionsLabel;\n tooltip?: string;\n /**\n * Mask pattern.\n */\n mask?: ((options?: { value: unknown }) => string) | string;\n /**\n * Message to display when there are no results for a query.\n */\n emptyMessage?: string;\n cols?: number;\n rows?: number;\n placeholder?: string;\n options?: any;\n calendarLocaleOptions?: CalendarLocaleOptions;\n numberLocaleOptions?: NumberLocaleOptions;\n multiple?: boolean;\n appendTo?: string;\n browserAutocomplete?: boolean;\n showClear?: boolean;\n showOnFocus?: boolean;\n style?: { [klass: string]: any };\n representedBy?: \"radio\" | \"switch\";\n /**\n * Whether the `RadioButton` should be displayed on the vertical or not.\n *\n * @default false\n */\n verticalAlignment?: boolean;\n /**\n * Field max length\n */\n precision?: Function | number;\n /**\n * Number of decimal places\n */\n scale?: Function | number;\n /**\n * @deprecated Using FieldType.Number this attribute is unnecessary\n */\n alignTo?: NumberAlignmentOption | AlignmentOptions;\n gridClass?:\n | string\n | string[]\n | Set<string>\n | {\n [klass: string]: any;\n };\n size?: FieldSize;\n multipleSelectedLabel?: string;\n inputType?: string;\n accept?: string;\n files?: FileDto[];\n autocompleteForceSelection?: boolean;\n /**\n * The minimum selectable date.\n */\n minDate?: Date;\n /**\n * The maximum selectable date.\n */\n maxDate?: Date;\n /**\n * Set the date to highlight on first opening if the field is blank.\n */\n defaultDate?: Date;\n /**\n * Text or icon to be grouped in the left of an input.\n */\n leftAddon?: AddonConfig;\n /**\n * Text or icon to be grouped in right of an input.\n */\n rightAddon?: AddonConfig;\n /**\n * InfoSign para a label do input.\n */\n infoSign?: string;\n /**\n * Expression to restricts user input\n */\n keyFilter?: RegExp;\n\n /**\n * Default value for field\n */\n defaultValue?: any;\n /**\n * Customized FormField error message\n */\n errorMessages?: () => ({}) | {};\n visible?: () => boolean;\n /**\n * Callback to invoke when the field loses focus\n */\n onBlur?: (event: FocusEvent) => void;\n /**\n * Callback to invoke when the field receives focus\n */\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: any) => void;\n onInput?: (event: any) => void;\n onChange?: (event: boolean) => void;\n onSelect?: (event: any) => void;\n /**\n * Callback to invoke on component click.\n */\n onClick?: (event: any) => void;\n onClose?: (event: any) => void;\n onTodayClick?: (event: any) => void;\n onClearClick?: (event: any) => void;\n onMonthChange?: (event: any) => void;\n onYearChange?: (event: any) => void;\n /**\n * Callback to invoke when a value is added.\n */\n onAdd?: (event: any) => void;\n /**\n * Callback to invoke when a value is removed.\n */\n onRemove?: (event: any) => void;\n /**\n * Callback to invoke when a chip is clicked.\n */\n onChipClick?: (event: any) => void;\n\n /**\n * Callback to invoke when a slider is released\n */\n onSlideEnd?: (event: any) => void;\n\n CustomFieldClass?: any;\n CustomFieldComponentClass?: any;\n\n /**\n * @deprecated You should use footer attribute instead.\n */\n bottomTemplate?: TemplateRef<Element>;\n\n autoClear?: boolean;\n displayTimeInfoSign?: number;\n\n footer?: {\n help?: {\n text: string;\n visible?: (options: { abstractControl: AbstractControl, formField: FormField }) => boolean;\n };\n link?: {\n label: string;\n onClick: (options: { abstractControl: AbstractControl, formField: FormField }) => void;\n visible?: (options: { abstractControl: AbstractControl, formField: FormField }) => boolean;\n };\n };\n\n /**\n * In some cases DynamicFormField use a custom field that alredy exists, this happen in CustomFields when convert 'Integer, Double & Money' types to 'Custom' this create two labels. activate this property hide the parent label.\n */\n ignoreLabel? = false;\n\n constructor(config: any) {\n switch (config.type) {\n case FieldType.Enum:\n return new SelectField(config);\n case FieldType.Autocomplete:\n return new AutocompleteField(config);\n case FieldType.Money:\n return new CurrencyField(config);\n case FieldType.Integer:\n return new NumberField(config);\n case FieldType.Double:\n return new DecimalField(config);\n case FieldType.Number:\n return new BignumberField(config);\n case FieldType.String:\n case FieldType.Binary:\n return new TextField(config);\n case FieldType.Password:\n return new PasswordField(config);\n case FieldType.Text:\n return new TextAreaField(config);\n case FieldType.TextIA:\n return new TextAreaIAField(config);\n case FieldType.Boolean:\n return config.representedBy === \"switch\" ? new BooleanSwitchField(config) : new BooleanField(config);\n case FieldType.Date:\n case FieldType.DateTime:\n case FieldType.LocalDateTime:\n case FieldType.Time:\n return new CalendarField(config);\n case FieldType.Lookup:\n return new LookupField(config);\n case FieldType.Radio:\n return new RadioButtonField(config);\n case FieldType.Checkbox:\n return new CheckboxField(config);\n case FieldType.Chips:\n return new ChipsField(config);\n case FieldType.CountryPhonePicker:\n return new CountryPhonePickerField(config);\n case FieldType.Blob:\n return new BlobField(config);\n case FieldType.Slider:\n return new SliderField(config);\n case FieldType.ProfilePicture:\n return new ProfilePictureField(config);\n case FieldType.Editor:\n return new EditorField(config);\n case FieldType.Button:\n return new ButtonField(config);\n case FieldType.Custom:\n const { CustomFieldClass, ...otherConfigs } = config;\n return new CustomFieldClass(otherConfigs);\n }\n }\n}\n\nexport class Option {\n label: string;\n value?: any;\n\n constructor(label: string, value: any) {\n this.label = label;\n this.value = value;\n }\n}\n","import { animate, animateChild, group, query, state, style, transition, trigger } from \"@angular/animations\";\nimport {\n AfterViewInit,\n Component,\n EventEmitter,\n forwardRef,\n Injectable,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { ControlValueAccessor, FormControl, FormGroup, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { MaskConfig } from \"@seniorsistemas/ng2-currency-mask\";\nimport { Hotkey, HotkeysService } from \"angular2-hotkeys\";\nimport BigNumber from \"bignumber.js\";\nimport { SortMeta } from \"primeng/api\";\nimport { AutoComplete } from \"primeng/autocomplete\";\nimport { Dialog } from \"primeng/dialog\";\nimport { Table } from \"primeng/table\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { FieldType } from \"../..\";\nimport { BadgeComponent } from \"../../../badge/badge.component\";\nimport { CalendarLocaleOptions } from \"../../../locale/options/calendar\";\nimport { BignumberFieldConfig } from \"../../configurations/fields/bignumber-field\";\nimport { BooleanOptionsLabel } from \"../../configurations/fields/boolean-field\";\nimport { FormField } from \"../../configurations/form-field\";\nimport { DefaultFilter } from \"./models/default-filter\";\n\n@Injectable()\n@Component({\n selector: \"s-lookup\",\n templateUrl: \"./lookup.component.html\",\n styleUrls: [\"./lookup.component.scss\"],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => LookupComponent),\n multi: true,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger(\"collapseContent\", [\n state(\n \"hidden\",\n style({\n width: \"10px\",\n padding: 0,\n })\n ),\n state(\n \"visible\",\n style({\n width: \"*\",\n })\n ),\n transition(\"visible <=> hidden\", [group([query(\"@childCollapseContent\", animateChild()), animate(\"{{transitionParams}}\")])]),\n ]),\n trigger(\"childCollapseContent\", [\n state(\n \":leave\",\n style({\n opacity: 0,\n })\n ),\n state(\n \":enter\",\n style({\n opacity: 1,\n })\n ),\n transition(\"* <=> *\", animate(\"{{transitionParams}}\")),\n ]),\n ],\n})\nexport class LookupComponent implements ControlValueAccessor, OnChanges, OnInit, AfterViewInit, OnDestroy {\n public static nextId = 0;\n\n @Input()\n public formControlName: string;\n\n @Input()\n public id = `s-lookup-${LookupComponent.nextId++}`;\n\n @Input()\n public autocompleteForceSelection = true;\n\n @Input()\n public multiple: boolean;\n\n @Input()\n public dataKey: string;\n\n @Input()\n public required: boolean;\n\n @Input()\n public disabled = false;\n\n @Input()\n public showSearch = true;\n\n @Input()\n public lookupSuggestions: any[];\n\n @Input()\n public lookupDisplayField: string;\n\n @Input()\n public lookupDisplayFieldTooltip: boolean;\n\n @Input()\n public lookupEmptyMessage: string;\n\n @Input()\n public lookupAppendTo = \"body\";\n\n @Input()\n public searchEmptyDescription: string;\n\n @Input()\n public searchGridData: any[];\n\n @Input()\n public searchTotalRecords: number;\n\n @Input()\n public searchFields: FormField[] = [];\n\n @Input()\n public searchGridFields: FormField[];\n\n @Input()\n public multiSortMeta: SortMeta[];\n\n @Input()\n public placeholder: string;\n\n @Input()\n public sortableColumnsDisabled: string[];\n\n @Input()\n public lookupRowProps: string[];\n\n @Input()\n public defaultFilter: DefaultFilter[];\n\n @Input()\n public showAddOption = false;\n\n @Input()\n public showEditOption = false;\n\n @Input()\n public showRemoveOption = false;\n\n @Output()\n public onLookupRequest = new EventEmitter();\n\n @Output()\n public onSearchRequest = new EventEmitter();\n\n @Output()\n public onFocus = new EventEmitter();\n\n @Output()\n public onBlur = new EventEmitter();\n\n @Output()\n public onKeyUp = new EventEmitter();\n\n @Output()\n public onSelect = new EventEmitter();\n\n @Output()\n public onUnselect = new EventEmitter();\n\n @Output()\n public onClear = new EventEmitter();\n\n @Output()\n public onAdd = new EventEmitter();\n\n @Output()\n public onEdit = new EventEmitter<unknown>();\n\n @Output()\n public onRemove = new EventEmitter<unknown[]>();\n\n @ViewChild(Table, { static: false })\n public table: Table;\n\n @ViewChild(Dialog, { static: false })\n public dialog: Dialog;\n\n @ViewChild(AutoComplete, { static: false })\n public autocomplete: AutoComplete;\n\n @Input()\n public searchTitle: string;\n\n /**\n * @deprecated Lookup can do this for you.\n */\n @Input()\n public searchEmptyTitle: string;\n\n /**\n * @deprecated Lookup can do this for you.\n */\n @Input()\n public searchTotalRecordsLabel: string;\n\n /**\n * @deprecated Lookup can do this for you.\n */\n @Input()\n public filterTitle: string;\n\n /**\n * @deprecated Lookup can do this for you.\n */\n @Input()\n public filterLabel: string;\n\n /**\n * @deprecated Lookup can do this for you.\n */\n @Input()\n public clearLabel: string;\n\n /**\n * @deprecated Lookup can do this for you.\n */\n @Input()\n public cancelLabel: string;\n\n /**\n * @deprecated Lookup can do this for you.\n */\n @Input()\n public selectLabel: string;\n\n /**\n * @deprecated Lookup can do this for you.\n */\n @Input()\n public emptyFieldLabel: string;\n\n /**\n * @deprecated Lookup can do this for you.\n */\n @Input()\n public recordLabel: string;\n\n /**\n * @deprecated Lookup can do this for you.\n */\n @Input()\n public recordsLabel: string;\n\n public value: any;\n public loading: boolean;\n public animating: boolean;\n public dialogVisible = false;\n public collapsed = false;\n public selected: any[] = [];\n public formGroupDialog: FormGroup;\n public transitionOptions = \"400ms cubic-bezier(0.86, 0, 0.07, 1)\";\n\n private onChange: Function;\n private onTouched: Function;\n private originalFormValues = {};\n private readonly ngUnsubscribe = new Subject();\n\n constructor(\n private readonly hotkeysService: HotkeysService,\n protected readonly translateService: TranslateService\n ) {}\n\n public ngOnInit() {\n if (!this.searchGridFields) {\n this.searchGridFields = this.searchFields\n .filter((item) => !item.visible || item.visible?.())\n .map((item) => new FormField({ ...item }));\n }\n\n this.searchFields = this.searchFields.map(\n (value: FormField) =>\n new FormField({\n ...value,\n size: { sm: 12, md: 12, lg: 12, xl: 12 },\n })\n );\n\n this.searchGridFields = this.searchGridFields\n .filter((gridField: FormField) => !gridField.visible || gridField.visible?.())\n .map((gridField: FormField) => {\n gridField[\"width\"] = this.getColWidth(gridField.label);\n\n const calendarOptions = new CalendarLocaleOptions({ ...gridField.calendarLocaleOptions });\n\n if (calendarOptions?.dateFormat) {\n switch (gridField.type) {\n case FieldType.Date:\n calendarOptions.dateFormat = this._convertToMomentDateFormat(calendarOptions.dateFormat);\n break;\n case FieldType.Time:\n calendarOptions.dateFormat = this._convertToMomentHourFormat(\n calendarOptions.hourFormat,\n calendarOptions.dateFormat\n );\n break;\n }\n gridField.calendarLocaleOptions = calendarOptions;\n }\n\n return gridField;\n });\n\n const formGroup = this.searchFields.reduce((result: any, field) => {\n result[field.name] = new FormControl(field.defaultValue);\n this.originalFormValues[field.name] = field.defaultValue;\n return result;\n }, {});\n\n this.formGroupDialog = new FormGroup(formGroup);\n\n this._subscribeEvents();\n }\n\n public printRecordTotalizer(): string {\n if (this.searchTotalRecordsLabel) {\n return this.searchTotalRecordsLabel;\n }\n\n const recordLabel = this.recordLabel\n ? `${this.searchTotalRecords} ${this.recordLabel}`\n : this.translateService.instant(\"platform.angular_components.total_record\", { count: this.searchTotalRecords });\n\n const recordsLabel = this.recordsLabel\n ? `${this.searchTotalRecords} ${this.recordsLabel}`\n : this.translateService.instant(\"platform.angular_components.total_records\", { count: this.searchTotalRecords });\n\n return this.searchTotalRecords === 1 ? recordLabel : recordsLabel;\n }\n\n private _convertToMomentHourFormat(hourFormat: string, format: string) {\n if (format === \"dd/mm/yy\") {\n // valor padrão para o format.\n return \"LTS\";\n }\n\n if (hourFormat === \"12\") {\n return format\n .replace(/\\bH\\b/, \"h\") // hour (12 hour time) (no leading zero)\n .replace(/\\bHH\\b/, \"hh\"); // hour (12 hour time)\n }\n\n if (hourFormat === \"24\") {\n return format\n .replace(/\\bh\\b/, \"H\") // hour (24 hour time) (no leading zero)\n .replace(/\\bhh\\b/, \"HH\"); // hour (24 hour time)\n }\n\n return format;\n }\n\n private _convertToMomentDateFormat(format: string): string {\n // A ordem dos replaces é importante.\n return format\n .replace(/\\bd\\b/, \"D\") // day of month (no leading zero)\n .replace(/\\bdd\\b/, \"DD\") // day of month\n .replace(/\\bo\\b/, \"DDD\") // day of the year (no leading zero)\n .replace(/\\boo\\b/, \"DDDD\") // day of the year\n .replace(/\\bM\\b/, \"MMM\") // month name short\n .replace(/\\bMM\\b/, \"MMMM\") // month name long\n .replace(/\\bm\\b/, \"M\") // month of year (no leading)\n .replace(/\\bmm\\b/, \"MM\") // month of year\n .replace(/\\by\\b/, \"YY\") // year (two digits)\n .replace(/\\byy\\b/, \"YYYY\"); // year (four digits)\n }\n\n public ngAfterViewInit() {\n this.autocomplete.onOverlayAnimationDone = (event) => {};\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (this.dialogVisible && changes.searchGridData) {\n this.loading = false;\n }\n\n this._setFocusFilter();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public getGridData() {\n return this.searchGridData;\n }\n\n public getLookupSuggestions() {\n return this.lookupSuggestions;\n }\n\n protected makeSearchRequestParams(event: any) {\n const filters = this.formGroupDialog.getRawValue();\n const params = { ...event, filterData: filters };\n const { multiSortMeta } = event;\n this.multiSortMeta = multiSortMeta || this.multiSortMeta;\n\n return params;\n }\n\n public lazyLoadGrid(event: any) {\n // Ao definir uma ordenação na tabela do lookup esse método é chamado 2 vezes https://github.com/primefaces/primeng/issues/5480\n const params = this.makeSearchRequestParams(event);\n this.onSearchRequest.next(params);\n }\n\n public lazyLoadLookup(event: any) {\n this.onLookupRequest.next(event.query);\n }\n\n public setDefaultFilters() {\n if (!this.defaultFilter) return;\n\n this.defaultFilter\n .filter(({ field }) => this.formGroupDialog.contains(field) && !this.formGroupDialog.get([field]).dirty)\n .forEach(({ value, field }) => {\n this.formGroupDialog.get([field]).patchValue(value instanceof Function ? value() : value);\n });\n }\n\n public showDialog() {\n this.setDefaultFilters();\n this.searchGridData = undefined;\n this.onTouched();\n this.hotkeysService.pause([...this.hotkeysService.hotkeys]);\n this.setHotkeys();\n\n let selected: any = [];\n if (this.multiple && this.value) {\n selected = selected.concat(this.value);\n } else if (this.value) {\n selected = [this.value];\n }\n this.selected = selected;\n\n this.loading = true;\n this.dialogVisible = true;\n }\n\n public hideDialog() {\n const { inputEL, multiInputEL } = this.autocomplete;\n this.dialogVisible = false;\n this.collapsed = false;\n this.hotkeysService.unpause([...this.hotkeysService.pausedHotkeys]);\n\n if (this.multiple) multiInputEL.nativeElement.focus();\n else inputEL.nativeElement.focus();\n }\n\n public search() {\n this.resetTable();\n this.collapsed = true;\n this.dialog.moveOnTop();\n }\n\n public clear() {\n this.formGroupDialog.reset(this.originalFormValues);\n this.resetTable();\n }\n\n protected resetTable() {\n this.table.reset();\n }\n\n public select() {\n if (!this.selected.length) return;\n\n const selected = this.selected && (this.multiple ? this.selected : this.selected[0]);\n this.value = selected;\n this.onSelect.next(selected);\n this.hideDialog();\n }\n\n public onSelectionChange(selected: any) {\n if (!selected) return;\n if (Array.isArray(selected)) this.selected = selected;\n else this.selected = [selected];\n }\n\n public registerOnChange(onChange: Function) {\n this.onChange = (value: any) => {\n this.writeValue(value);\n onChange(value);\n };\n }\n\n public registerOnTouched(onTouched: Function) {\n this.onTouched = onTouched;\n }\n\n public writeValue(value: any) {\n this.value = value;\n }\n\n public setDisabledState(disabled: boolean) {\n this.disabled = disabled;\n }\n\n public getFieldValue(obj: any, path: string) {\n return path.split(\".\").reduce((result, prop) => (result[prop] === undefined ? \"\" : result[prop]), obj);\n }\n\n public getBadgeFromValue(\n value: unknown,\n options: {\n label: string;\n value: unknown;\n badge?: {\n type?: BadgeComponent[\"type\"];\n color?: BadgeComponent[\"color\"];\n iconClass?: BadgeComponent[\"iconClass\"];\n iconPosition?: BadgeComponent[\"iconPosition\"];\n };\n }[]\n ) {\n return options?.find((opt) => opt.value === value)?.badge;\n }\n\n public getLabelForValue(\n value: unknown,\n options: {\n label: string;\n value: unknown;\n badge?: {\n type?: BadgeComponent[\"type\"];\n color?: BadgeComponent[\"color\"];\n iconClass?: BadgeComponent[\"iconClass\"];\n iconPosition?: BadgeComponent[\"iconPosition\"];\n };\n }[]\n ) {\n if (!options) return value;\n\n const option = options.find((opt) => opt.value === value);\n return option ? option.label : value;\n }\n\n public isBooleanValue(obj: any, path: string) {\n const value = this.getFieldValue(obj, path);\n if (value === true || value === false) return true;\n else return false;\n }\n\n public getBooleanLabel(obj: any, path: string, optionsLabel: BooleanOptionsLabel) {\n const value = this.getFieldValue(obj, path);\n if (value === true) return optionsLabel.true;\n else if (value === false) return optionsLabel.false;\n else return this.emptyFieldLabel;\n }\n\n public isNumber(obj: any, path: string) {\n return !new BigNumber(this.getFieldValue(obj, path)).isNaN();\n }\n\n public setHotkeys() {\n const clearHotkey = this.newHotkey(\"alt+shift+l\", this.clear.bind(this));\n const findHotkey = this.newHotkey(\"alt+shift+f\", this.search.bind(this));\n const hideHotkey = this.newHotkey(\"alt+shift+c\", this.hideDialog.bind(this));\n const selectHotkey = this.newHotkey(\"alt+shift+s\", this.select.bind(this));\n\n const bindedHotkeys = [clearHotkey, findHotkey, hideHotkey, selectHotkey];\n bindedHotkeys.forEach((hotkey: Hotkey) => this.hotkeysService.add(hotkey));\n }\n\n private newHotkey(combo: string, fn: Function): Hotkey {\n return new Hotkey(combo, () => {\n fn();\n return false;\n }, [\"INPUT\", \"SELECT\", \"TEXTAREA\"]);\n }\n\n public filterToggle() {\n if (this.animating) return;\n\n this.animating = true;\n this.collapsed = !this.collapsed;\n }\n\n public onToggleDone() {\n this.animating = false;\n }\n\n /**\n * Calculate the table column size. The minimum value is 14.286em, which is equals to 200px duo to the current font size.\n * @param label Column name.\n */\n public getColWidth(label: string) {\n const size = label.length;\n if (size < 14.286) return `14.286em`;\n return `${size}em`;\n }\n\n public getScale(scale: any): number {\n return this.isFunction(scale) ? scale() : scale;\n }\n\n private isFunction(value: any): boolean {\n return value instanceof Function;\n }\n\n public getIntegerMaskConfig(col: BignumberFieldConfig): MaskConfig {\n return {\n scale: 0,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: \"\",\n };\n }\n\n public getDoubleMaskConfig(col: BignumberFieldConfig): MaskConfig {\n return {\n scale: this.getScale(col.scale),\n decimalSeparator: col.numberLocaleOptions?.decimalSeparator,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: \"\",\n };\n }\n\n public getMoneyMaskConfig(col: BignumberFieldConfig): MaskConfig {\n return {\n scale: this.getScale(col.scale),\n decimalSeparator: col.numberLocaleOptions?.decimalSeparator,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: col.numberLocaleOptions?.currencySymbol,\n };\n }\n\n public getNumberMaskConfig(col: BignumberFieldConfig): MaskConfig {\n return {\n scale: this.getScale(col.scale),\n decimalSeparator: col.numberLocaleOptions?.decimalSeparator,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: col.numberLocaleOptions?.currencySymbol,\n };\n }\n\n public onTableRowDoubleClick(rowData: any): void {\n this.selected = [rowData];\n this.select();\n }\n\n private _setFocusFilter() {\n if (this.dialogVisible && !this.collapsed) {\n const input = this.dialog?.contentViewChild?.nativeElement?.getElementsByTagName(\"input\")[0];\n\n if (input) {\n (input as HTMLInputElement).focus();\n }\n }\n }\n\n private _subscribeEvents(): void {\n this.onSearchRequest.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => (this.loading = true));\n\n this.onSelect.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => this.onChange(this.value));\n\n this.onUnselect.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => this.onChange(this.value));\n\n this.onClear.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n if (this.multiple) {\n return;\n }\n this.onChange(null);\n });\n\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.onTouched();\n });\n\n this.onBlur.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: Event) => {\n const target = event.target as HTMLInputElement;\n const currentValue = this.value && this.value[this.lookupDisplayField];\n const { value } = target;\n\n if (this.multiple || !currentValue || currentValue == value) return;\n\n const newValue = \"\";\n target.value = newValue;\n this.onChange(newValue);\n });\n }\n}\n","export enum StructureType {\n Fieldset = \"Fieldset\",\n Section = \"Section\",\n}\n","import { isNullOrUndefined } from \"../../../utils\";\nimport { FormField } from \"../form-field\";\nimport { GridType } from \"../grid-type\";\nimport { Section } from \"../structure/section\";\n\nexport interface GridConfig {\n fields?: Array<FormField | Section>;\n type: GridType;\n visible?: () => boolean;\n}\n\nexport class Grid implements GridConfig {\n public fields: Array<FormField | Section>;\n public type: GridType;\n public visible?: () => boolean;\n\n constructor(config: GridConfig) {\n Object.assign(this, { ...config });\n if (isNullOrUndefined(config.visible)) {\n this.visible = () => true;\n }\n }\n}\n","import { FormField } from \"../form-field\";\nimport { GridType } from \"../grid-type\";\nimport { Grid, GridConfig } from \"./grid\";\n\nexport class Row extends Grid {\n public fields: FormField[];\n public type: GridType;\n\n constructor(config: GridConfig) {\n super(config);\n }\n}\n","import { FormField } from \"../form-field\";\nimport { Grid } from \"../grid/grid\";\nimport { StructureType } from \"../structure-type\";\n\nexport interface StructureConfig {\n header?: string;\n configs?: Grid[];\n type: StructureType;\n}\n\nexport abstract class Structure {\n public header?: string;\n public configs?: Grid[] | FormField[];\n public type: StructureType;\n public isFlex? = false;\n\n constructor(config: StructureConfig) {\n Object.assign(this, { ...config });\n }\n}\n","import { Structure, StructureConfig } from \"./structure\";\n\nexport interface FieldsetConfig extends StructureConfig {\n beforeToggle?: (event: any) => void;\n afterToggle?: (event: any) => void;\n}\n\nexport class Fieldset extends Structure {\n public beforeToggle?: (event: any) => void;\n public afterToggle?: (event: any) => void;\n\n constructor(config: FieldsetConfig) {\n super(config);\n Object.assign(this, { ...config });\n }\n}\n","import { FieldSize } from \"../field-size\";\nimport { Structure, StructureConfig } from \"./structure\";\n\nexport class Section extends Structure {\n /**\n * Define if the structure is a flex container.\n */\n public isFlex? = false;\n /**\n * Define the justify-content property.\n */\n public justifyContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' = 'flex-start';\n /**\n * Define the align-items property.\n */\n public alignItems?: 'stretch' | 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'initial' | 'inherit' = 'flex-start';\n\n public visible?: () => boolean = () => true;\n\n public size?: FieldSize;\n protected gridClass?: string[];\n constructor(config: Section) {\n super(config as StructureConfig);\n this.isFlex = config.isFlex || false;\n this.justifyContent = config.justifyContent || 'flex-start';\n this.alignItems = config.alignItems || 'flex-start';\n\n if (config.visible) {\n this.visible = config.visible\n }\n\n this.size = new FieldSize(config.size || {});\n this.gridClass = Object.keys(this.size).map((key: keyof FieldSize) => `ui-${key}-${this.size[key]}`);\n }\n}\n","import { DynamicType } from \"./dynamic-type\";\nimport { AutocompleteField, AutocompleteFieldConfig } from \"./fields/autocomplete-field\";\nimport { BignumberField, BignumberFieldConfig } from \"./fields/bignumber-field\";\nimport { SliderField, SliderFieldConfig } from \"./fields/slider-field\";\nimport { BooleanField, BooleanFieldConfig } from \"./fields/boolean-field\";\nimport { BooleanSwitchField, BooleanSwitchFieldConfig } from \"./fields/boolean-switch-field\";\nimport { CalendarField, CalendarFieldConfig } from \"./fields/calendar-field\";\nimport { ChipsField, ChipsFieldConfig } from \"./fields/chips-field\";\nimport { CurrencyField } from \"./fields/currency-field\";\nimport { DecimalField, DecimalFieldConfig } from \"./fields/decimal-field\";\nimport { LookupField, LookupFieldConfig } from \"./fields/lookup-field\";\nimport { NumberField, NumberFieldConfig } from \"./fields/number-field\";\nimport { PasswordField, PasswordFieldConfig } from \"./fields/password-field\";\nimport { RadioButtonField } from \"./fields/radio-button-field\";\nimport { SelectField, SelectFieldConfig } from \"./fields/select-field\";\nimport { TextAreaField, TextAreaFieldConfig } from \"./fields/text-area-field\";\nimport { TextField, TextFieldConfig } from \"./fields/text-field\";\nimport { Row } from \"./grid/row\";\nimport { Fieldset, FieldsetConfig } from \"./structure/fieldset\";\nimport { Section } from \"./structure/section\";\nimport { StructureConfig } from \"./structure/structure\";\n\nexport class DynamicConfig {\n constructor(config: any) {\n const { type, representedBy } = config;\n switch (type) {\n case DynamicType.Autocomplete:\n return new AutocompleteField(config as AutocompleteFieldConfig);\n case DynamicType.Binary:\n case DynamicType.String:\n return new TextField(config as TextFieldConfig);\n case DynamicType.Password:\n return new PasswordField(config as PasswordFieldConfig);\n case DynamicType.Boolean:\n if (representedBy === \"switch\") {\n return new BooleanSwitchField(config as BooleanSwitchFieldConfig);\n }\n return new BooleanField(config as BooleanFieldConfig);\n case DynamicType.Chips:\n return new ChipsField(config as ChipsFieldConfig);\n case DynamicType.Date:\n case DynamicType.DateTime:\n case DynamicType.LocalDateTime:\n case DynamicType.Time:\n return new CalendarField(config as CalendarFieldConfig);\n case DynamicType.Double:\n return new DecimalField(config as DecimalFieldConfig);\n case DynamicType.Enum:\n return new SelectField(config as SelectFieldConfig);\n case DynamicType.Fieldset:\n return new Fieldset(config as FieldsetConfig);\n case DynamicType.Integer:\n return new NumberField(config as NumberFieldConfig);\n case DynamicType.Number:\n return new BignumberField(config as BignumberFieldConfig);\n case DynamicType.Lookup:\n return new LookupField(config as LookupFieldConfig);\n case DynamicType.Money:\n return new CurrencyField(config as DecimalFieldConfig);\n case DynamicType.Radio:\n return new RadioButtonField(config);\n case DynamicType.Row:\n return new Row(config);\n case DynamicType.Section:\n return new Section(config as StructureConfig);\n case DynamicType.Slider:\n return new SliderField(config as SliderFieldConfig);\n case DynamicType.Text:\n return new TextAreaField(config as TextAreaFieldConfig);\n }\n }\n}\n","export enum GridType {\n Row = \"Row\",\n}\n","export enum ValidateErrors {\n MAX_FILE_SIZE = \"MAX_FILE_SIZE\",\n MAX_FILE_LIMIT = \"MAX_FILE_LIMIT\",\n MAX_COMBINED_FILE_SIZE = \"MAX_COMBINED_FILE_SIZE\",\n UNSUPPORTED_EXTENSION = \"UNSUPPORTED_EXTENSION\",\n}\n","export enum FileUploadPermissions {\n Add = \"add\",\n Read = \"read\",\n Remove = \"remove\",\n}\n\nexport const ALL_PERMISSIONS = [\n FileUploadPermissions.Add,\n FileUploadPermissions.Read,\n FileUploadPermissions.Remove,\n];","import { Component, Input, ViewEncapsulation, OnInit } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { DynamicConfig } from \"./configurations/dynamic-config\";\nimport { FormField } from \"./configurations/form-field\";\n\n@Component({\n selector: \"s-dynamic-form\",\n templateUrl: \"./dynamic-form.component.html\",\n styleUrls: [\"dynamic-form.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DynamicFormComponent {\n @Input()\n public id: string;\n @Input()\n public configs: DynamicConfig[];\n @Input()\n public fields: FormField[]; // @TODO deve-se remover em uma vesão de quebra. O default deve ser configs.\n @Input()\n public form: FormGroup;\n @Input()\n public errorMessages?: any = {};\n\n}\n","import { Directive, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { debounceTime, repeat, takeUntil } from \"rxjs/operators\";\n\n@Directive({\n selector: \"[sLongPress]\",\n})\nexport class LongPressDirective implements OnInit, OnDestroy {\n @Input()\n public sLongPressDelay = 500;\n\n @Output()\n public sLongPress = new EventEmitter<MouseEvent>();\n\n public mouseUp = new Subject<MouseEvent>();\n public mouseDown = new Subject<MouseEvent>();\n public ngUnsubscribe = new Subject();\n\n @HostListener(\"mouseup\", [\"$event\"])\n @HostListener(\"touchend\", [\"$event\"])\n public onMouseUp(event: MouseEvent) {\n this.mouseUp.next(event);\n }\n\n @HostListener(\"mousedown\", [\"$event\"])\n @HostListener(\"touchstart\", [\"$event\"])\n public onMouseDown(event: MouseEvent) {\n this.mouseDown.next(event);\n }\n\n public ngOnInit() {\n this.mouseDown\n .pipe(\n debounceTime(this.sLongPressDelay),\n takeUntil(this.mouseUp),\n repeat(),\n takeUntil(this.ngUnsubscribe)\n )\n .subscribe(event => this.sLongPress.emit(event));\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n}\n","import {\n Directive,\n EventEmitter,\n HostListener,\n Output\n} from '@angular/core';\n\n@Directive({\n selector: '[sDoubleClick]'\n})\nexport class DoubleClickDirective {\n\n @Output() public onDoubleClick: EventEmitter<PointerEvent> = new EventEmitter();\n \n private _timeout: NodeJS.Timeout = null;\n private _DOUBLE_CLICK_DELAY = 500;\n\n @HostListener(\"click\", [\"$event\"])\n public onClick(event: PointerEvent): void {\n this.handleOnClickEvent(event);\n }\n\n private handleOnClickEvent(event: PointerEvent): void {\n if (this._timeout) {\n this.clearTimeout();\n this.onDoubleClick.emit(event);\n } else {\n this._timeout = setTimeout(() => this.clearTimeout(), this._DOUBLE_CLICK_DELAY)\n }\n \n }\n\n private clearTimeout(): void {\n clearTimeout(this._timeout);\n this._timeout = null;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { LongPressDirective } from \"./long-press.directive\";\nimport { DoubleClickDirective } from \"./double-click.directive\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n LongPressDirective,\n DoubleClickDirective\n ],\n exports: [\n LongPressDirective,\n DoubleClickDirective\n ],\n})\nexport class MouseEventsModule {}\n","import { Component, Input, Output, EventEmitter, HostBinding, OnDestroy } from \"@angular/core\"; // Adicionado HostBinding, OnDestroy\nimport { Toast } from \"./types/toast\";\n\n@Component({\n selector: \"s-toast\",\n templateUrl: \"./toast.component.html\",\n styleUrls: [\"./toast.component.scss\"],\n})\nexport class ToastComponent implements OnDestroy {\n @Input()\n public toast!: Toast;\n\n @Output()\n public dismiss = new EventEmitter<void>();\n\n @HostBinding(\"class.toast--leaving\")\n public isLeaving = false;\n\n private timer: ReturnType<typeof setTimeout> | null = null;\n\n public startDismissAnimation(): void {\n this.isLeaving = true;\n\n setTimeout(() => {\n this.dismiss.emit();\n }, 300);\n }\n\n public dismissToast(): void {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n this.startDismissAnimation();\n }\n\n public ngOnInit(): void {\n if (!this.toast.sticky && this.toast.duration) {\n this.timer = setTimeout(() => {\n this.startDismissAnimation();\n }, this.toast.duration);\n }\n }\n\n public ngOnDestroy(): void {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n }\n}\n","import { Injectable, ComponentRef, ApplicationRef, Injector, EmbeddedViewRef, ComponentFactoryResolver } from \"@angular/core\";\n\nimport { ToastComponent } from \"./toast.component\";\nimport { Toast } from \"./types/toast\";\nimport { first } from \"rxjs/operators\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ToastService {\n private activeToasts: ComponentRef<ToastComponent>[] = [];\n private globalToastHostElement: HTMLElement | null = null;\n\n constructor(\n private appRef: ApplicationRef,\n private injector: Injector,\n private componentFactoryResolver: ComponentFactoryResolver\n ) {}\n\n private ensureGlobalToastHost(): void {\n if (!this.globalToastHostElement) {\n this.globalToastHostElement = document.createElement(\"div\");\n document.body.appendChild(this.globalToastHostElement);\n\n this.globalToastHostElement.style.display = \"flex\";\n this.globalToastHostElement.style.flexDirection = \"column\";\n this.globalToastHostElement.style.position = \"fixed\";\n this.globalToastHostElement.style.right = \"20px\";\n this.globalToastHostElement.style.top = \"20px\";\n this.globalToastHostElement.style.zIndex = \"99999\";\n this.globalToastHostElement.style.gap = \"10px\";\n }\n }\n\n public show(toast: Toast): void {\n this.ensureGlobalToastHost();\n\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(ToastComponent);\n const componentRef = componentFactory.create(this.injector);\n\n this.appRef.attachView(componentRef.hostView);\n\n if (!toast.sticky) {\n toast.duration = toast.duration ?? 10000;\n }\n\n componentRef.instance.toast = {\n closable: true,\n ...toast,\n };\n\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n this.globalToastHostElement.appendChild(domElem);\n domElem.style.display = \"flex\";\n domElem.style.justifyContent = \"center\";\n\n componentRef.instance.dismiss.pipe(first()).subscribe(() => {\n const index = this.activeToasts.indexOf(componentRef);\n\n if (index !== -1) {\n this.appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n this.activeToasts.splice(index, 1);\n }\n\n if (this.activeToasts.length === 0 && this.globalToastHostElement) {\n this.globalToastHostElement.remove();\n this.globalToastHostElement = null;\n }\n });\n\n this.activeToasts.push(componentRef);\n }\n}\n","import { HttpClient, HttpErrorResponse } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\n\nimport { Observable, throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\n\nimport { ToastService } from \"../../../toast/toast.service\";\nimport { IAssistInputData } from \"./models/iassist-input-data\";\nimport { IAssistResponse } from \"./models/iassist-response\";\n\n@Injectable()\nexport class IAssistService {\n constructor(\n private readonly http: HttpClient,\n private readonly _toastService: ToastService\n ) {}\n\n public askIA(context: string, data: IAssistInputData): Observable<IAssistResponse> {\n const prompt: string = data.prompt ? this._replacePlaceholder(context, data) : this._createPrompt(context, data);\n\n return this.http\n .post<IAssistResponse>(\"platform/iassist/api/latest/completions\", {\n prompt,\n provider: \"OPEN_AI\",\n parameters: {\n model: \"gpt-3.5-turbo\",\n max_tokens: 700,\n temperature: 1,\n },\n })\n .pipe(\n catchError((err: HttpErrorResponse) => {\n this._toastService.show({\n severity: \"error\",\n title: err.status ? String(err.status) : \"Error\",\n text: (err.error && err.error.message) || err.statusText || err.message || \"Error\",\n });\n return throwError(err);\n })\n );\n }\n\n private _replacePlaceholder(context: string, data: IAssistInputData): string {\n const values = { ...data, context };\n delete values.prompt;\n\n let result = data.prompt;\n for (const key in { ...values, context: context }) {\n const placeholder = new RegExp(`{{\\\\s*${key}\\\\s*}}`, \"g\");\n result = result.replace(placeholder, values[key]);\n }\n\n console.log(\"prompt\", result);\n return result;\n }\n\n private _createPrompt(context: string, data: IAssistInputData): string {\n return `Crie um texto genérico para preencher o campo de textarea.\n ${data.label ? `O campo tem o label ${data.label}.` : \"\"}\n ${data.id ? `O campo tem o id ${data.id}.` : \"\"}\n ${data.placeholder ? `Considere as instruções/sugestões do placeholder: ${data.placeholder}.` : \"\"}\n Baseie-se no contexto informado pelo usuário: '${context}'.\n O texto deve ser formal e conter informações pertinentes a um campo como este, como se um usuário real tivesse preenchido com as informações necessárias. \n O texto deve ser neutro com relação a generos, raças, religiões, etc.\n O texto deve ser impessoal e não deve conter informações pessoais do usuário.\n Não direcione o texto a ninguém, não use expressões como: caro, atenciosamente. gostaria, agradeço. O texto deve ser genérico.\n \n Exemplos de texto:\n Um campo de descrição de usuário: \"Usuário com 20 anos, estudante de engenharia, gosta de jogar futebol e assistir filmes.\"\n Outro exemplo de descrição de usuário: \"Usuário administrador, com acesso total ao sistema, responsável por gerenciar os usuários e os produtos.\"\n Um campo de descrição de um produto: \"O produto é um celular, com tela de 6 polegadas, 128GB de armazenamento, 4GB de memória RAM, câmera de 12MP e bateria de 4000mAh.\"\n Outro exemplo de descrição de produto: \"O produto é uma geladeira, com capacidade de 500 litros, 2 portas, cor branca, com freezer e gaveta de legumes.\"\n Outro exemplo de descrição de produto: \"O produto é uma camiseta, tamanho M, cor azul, 100% algodão, com estampa de um gato.\"\n \n Em caso de contexto incompleto crie um texto genérico, como se fosse um exemplo de preenchimento do campo.\n O texto é para um campo de textarea, então escreva um texto sucinto.\n Exiba apenas o texto do output`;\n }\n}\n","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\nimport { MenuItem } from \"primeng/api\";\n\n@Component({\n selector: `s-empty-state`,\n templateUrl: `./empty-state.component.html`,\n styleUrls: [\"./empty-state.component.css\"],\n})\nexport class EmptyStateComponent {\n public static nextId = 0;\n\n @Input() id = `s-empty-state-${EmptyStateComponent.nextId++}`;\n @Input() iconClass = \"fa fa-inbox\";\n @Input() title: string;\n @Input() description?: string;\n @Input() showPrimaryAction = true;\n @Input() showSecondaryAction = true;\n @Input() primaryActionLabel?: string;\n @Input() secondaryActionLabel?: string;\n @Input() primaryModel?: MenuItem[] = [];\n\n @Output() primaryAction = new EventEmitter();\n @Output() secondaryAction = new EventEmitter();\n}\n","import { Component, Input } from \"@angular/core\";\nimport { CookieService } from \"ngx-cookie-service\";\n\n@Component({\n selector: `s-empty-state-go-back`,\n templateUrl: `./go-back.component.html`,\n styleUrls: [],\n})\nexport class EmptyStateGoBackComponent {\n public static nextId = 0;\n\n @Input() iconClass = \"fa fa-exclamation-triangle\";\n @Input() title: string;\n @Input() description?: string;\n @Input() primaryActionLabel: string;\n\n constructor(private cookieService: CookieService) {}\n\n public goBack() {\n const portalUrl = this.cookieService.get(\"com.senior.portal.url\");\n window.open(portalUrl, \"_top\");\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CookieService } from \"ngx-cookie-service\";\n\nimport { ButtonModule } from \"../button/index\";\nimport { EmptyStateComponent } from \"./empty-state.component\";\nimport { EmptyStateGoBackComponent } from \"./go-back/go-back.component\";\n\n@NgModule({\n imports: [CommonModule, ButtonModule],\n providers: [CookieService],\n declarations: [EmptyStateComponent, EmptyStateGoBackComponent],\n exports: [EmptyStateComponent, EmptyStateGoBackComponent ],\n})\nexport class EmptyStateModule {}\n","import { Injectable } from \"@angular/core\";\nimport { CustomHttpClient } from \"../code-editor/infra/utils\";\nimport {\n ListBlobMetadataRequest,\n ListBlobMetadataResponse\n} from \"./models/list-blob-metadata\"\n\n@Injectable()\nexport class FileUploadService {\n private BASE_URL_FIELD_CUSTOMIZATION = \"platform/field_customization\";\n private TOKEN = new AbortController();\n\n public async getMetadataCustomField<T>(request: ListBlobMetadataRequest): Promise<ListBlobMetadataResponse> {\n return CustomHttpClient.POST(\n `${this.BASE_URL_FIELD_CUSTOMIZATION}/queries/getFileMetadata`,\n request,\n { signal: this.TOKEN.signal }\n );\n }\n}\n","export enum SVGFactoryIcons {\n IAssist = \"iassist\",\n Senior = \"senior\",\n}","import {\n AfterContentInit,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Subject } from \"rxjs\";\nimport * as moment_ from \"moment\";\n\nimport { Breakpoints } from \"../utils\";\nimport { FileUploadService } from \"./file-upload.service\";\nimport { ListBlobMetadataResponse } from \"./models/list-blob-metadata\";\nimport { FileDto } from \"./models/file-dto\";\nimport { UploadError } from \"./models/uploadError\";\nimport { ValidateErrors } from \"./models/validate-errors\";\nimport { FileUploadPermissions, ALL_PERMISSIONS } from \"./models/file-upload-permissions\";\n\nconst moment = moment_;\n\n@Component({\n selector: \"s-file-upload\",\n templateUrl: \"./file-upload.component.html\",\n styleUrls: [\"./file-upload.component.scss\"],\n})\nexport class FileUploadComponent implements OnInit, OnDestroy, AfterContentInit {\n public static nextId = 0;\n\n public ADD_PERMISSION = FileUploadPermissions.Add;\n public READ_PERMISSION = FileUploadPermissions.Read;\n public REMOVE_PERMISSION = FileUploadPermissions.Remove;\n\n @ViewChild(\"inputUpload\", { static: false })\n private readonly inputUpload: ElementRef;\n\n @ViewChild(\"anchor\", { static: false })\n private readonly anchor: ElementRef;\n\n @Input()\n public id = `s-file-upload-${FileUploadComponent.nextId++}`;\n\n @Input()\n public chooseLabel: string;\n\n @Input()\n public removeLabel: string;\n\n @Input()\n public cancelLabel: string;\n\n @Input()\n public successTooltip: string;\n\n @Input()\n public multiple: boolean;\n\n @Input()\n public accept: string;\n\n @Input()\n public supportedExtensions: string[] = [];\n\n @Input()\n public ariaLabelFileName: string;\n\n @Input()\n public maxFileSize: number;\n\n @Input()\n public maxCombinedFileSize: number;\n\n @Input()\n public fileLimit: number;\n\n @Input()\n public ariaLabelProgress: string;\n\n @Input()\n public ariaLabelSuccess: string;\n\n @Input()\n public ariaLabelError: string;\n\n @Input()\n public ariaLabelRemove: string;\n\n @Input()\n public formGroup: FormControl;\n\n @Input()\n public disabled = false;\n\n @Input()\n public showFileUploadDate: boolean = false;\n\n @Input()\n public permissions: FileUploadPermissions[] = ALL_PERMISSIONS;\n\n @Input()\n public set files(files: FileDto[]) {\n if (this.showFileUploadDate && files[0]?.objectId) {\n this.getUploadDate(files);\n }\n this._files = files.map(file => {\n if (this.isImage(file)) {\n file.objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(file));\n }\n return file;\n });\n }\n\n @Output()\n public uploadHandler: EventEmitter<{ files: FileDto[] }> = new EventEmitter();\n\n @Output()\n public removeFile: EventEmitter<{ file: File }> = new EventEmitter();\n\n @Output()\n public cancelUpload: EventEmitter<number> = new EventEmitter();\n\n @Output()\n public downloadFile: EventEmitter<{ index: number; anchor: ElementRef }> = new EventEmitter();\n\n @Output()\n public validateErrors: EventEmitter<UploadError> = new EventEmitter();\n\n private _files: FileDto[] = [];\n private readonly ngUsubscribe: Subject<void> = new Subject();\n public isSmallDevice: boolean;\n public inputValue = \"\";\n public modifiedDate: string;\n\n constructor(private readonly sanitizer: DomSanitizer,\n private readonly fileUploadService: FileUploadService,\n private readonly translate: TranslateService) { }\n\n public ngOnInit(): void {\n this.supportedExtensions = this.supportedExtensions\n .map(extension => extension.replace(\".\", \"\").toLowerCase());\n }\n\n public ngOnDestroy() {\n this.ngUsubscribe.next();\n this.ngUsubscribe.complete();\n }\n\n public ngAfterContentInit() {\n this.update();\n }\n\n @HostListener(\"window:resize\")\n public onResize() {\n this.update();\n }\n\n public onFileSelect(files: FileDto[]): void {\n const newFiles: FileDto[] = [];\n\n if (!this.multiple) {\n this.files = [];\n }\n\n if (this.isFileLimitExceeded(files)) {\n this.validateErrors.emit({\n files,\n validation: ValidateErrors.MAX_FILE_LIMIT,\n });\n this.clearFileInput();\n return;\n }\n\n if (this.isFileCombinedSizeExceeded(files)) {\n this.validateErrors.emit({\n files: files,\n validation: ValidateErrors.MAX_COMBINED_FILE_SIZE,\n });\n this.clearFileInput();\n return;\n }\n\n for (const file of files) {\n if (this.isUnsupportedFileExtension(file)) {\n this.validateErrors.emit({\n files: [file],\n validation: ValidateErrors.UNSUPPORTED_EXTENSION,\n });\n continue;\n }\n\n if (this.isFileSizeExceeded(file)) {\n this.validateErrors.emit({\n files: [file],\n validation: ValidateErrors.MAX_FILE_SIZE,\n });\n continue;\n }\n\n newFiles.push(file);\n }\n\n if (newFiles.length) {\n this.files = this.files.concat(newFiles);\n this.uploadHandler.emit({\n files: newFiles,\n });\n }\n\n this.clearFileInput();\n }\n\n public onRemoveFile(file: FileDto): void {\n const fileIndex = this.files.indexOf(file);\n const removedFiles = this.files.splice(fileIndex, 1);\n\n if (removedFiles.length) {\n this.removeFile.emit({ file });\n }\n }\n\n public onCancelUpload(index: number) {\n const removedFiles = this.files.splice(index, 1);\n\n if (removedFiles.length) {\n this.cancelUpload.emit(index);\n }\n\n this.clearFileInput();\n }\n\n public onDowloadFile(index: number) {\n this.downloadFile.emit({\n index,\n anchor: this.anchor,\n });\n }\n\n public get files(): FileDto[] {\n return this._files;\n }\n\n private update() {\n const windowWidth = window.innerWidth;\n this.isSmallDevice = windowWidth <= Breakpoints.SM_MAX;\n }\n\n private isImage(file: File): boolean {\n return /^image\\//.test(file.type);\n }\n\n private isFileLimitExceeded(files: FileDto[]) {\n if (!this.fileLimit) {\n return false;\n }\n return this.files.length + files.length > this.fileLimit;\n }\n\n private isFileCombinedSizeExceeded(files: File[]): boolean {\n if (!this.maxCombinedFileSize) {\n return false;\n }\n\n const filesList = [...files, ...this.files];\n\n const combinedSize = filesList.reduce((combinedSize, file) => combinedSize + file.size, 0);\n\n return combinedSize > this.maxCombinedFileSize;\n }\n\n private isFileSizeExceeded(file: File): boolean {\n if (!this.maxFileSize) {\n return false;\n }\n return file.size > this.maxFileSize;\n }\n\n private isUnsupportedFileExtension(file: File) {\n if (this.supportedExtensions?.length) {\n const extension = file.name.split(\".\").pop().toLowerCase();\n return !this.supportedExtensions.includes(extension);\n }\n return false;\n }\n\n private clearFileInput() {\n this.inputUpload.nativeElement.value = null;\n }\n\n private getUploadDate(blobFile: FileDto[]): void {\n if (!blobFile) {\n return;\n }\n\n this.fileUploadService.getMetadataCustomField({ objectId: blobFile[0].objectId })\n .then(metadata => this.setModifiedDate(metadata));\n }\n\n private setModifiedDate(metadata: ListBlobMetadataResponse): void {\n const hour = moment(metadata.modified).format(\"HH\");\n const minutes = moment(metadata.modified).format(\"mm\");\n const day = moment(metadata.modified).format(\"DD\");\n const month = moment(metadata.modified).format(\"MM\");\n const fullYear = moment(metadata.modified).format(\"YYYY\");\n\n this.modifiedDate = this.translate.instant(\"platform.angular_components.date_modified_custom_blob\", { hour, minutes, day, month, fullYear });\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { ProgressBarModule } from \"primeng/progressbar\";\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { ButtonModule } from \"../button/button.module\";\nimport { FileUploadService } from \"./file-upload.service\";\nimport { FileUploadComponent } from \"./file-upload.component\";\n\n@NgModule({\n declarations: [FileUploadComponent],\n imports: [\n CommonModule,\n ButtonModule,\n TooltipModule,\n ProgressBarModule,\n TranslateModule,\n ],\n providers: [FileUploadService],\n exports: [FileUploadComponent],\n})\nexport class FileUploadModule {}\n","import { Component } from \"@angular/core\";\n\n@Component({\n templateUrl: \"./iassist-icon.component.html\",\n})\nexport class IAssistIconComponent {}\n","import { Component } from \"@angular/core\";\n\n@Component({\n templateUrl: \"./senior-icon.component.html\",\n})\nexport class SeniorIconComponent {}\n","export enum LoadingStateIndicators {\n Dots = \"dots\",\n Logo = \"logo\",\n}","import { Directive, ViewContainerRef, ComponentFactoryResolver, Input, ChangeDetectorRef, AfterViewInit } from \"@angular/core\";\n\nimport { IAssistIconComponent } from \"./components/iassist-icon/iassist-icon.component\";\nimport { SeniorIconComponent } from \"./components/senior-icon/senior-icon.component\";\nimport { SVGFactoryIcons } from \"./components/svg-factory-icons\";\n\n@Directive({\n selector: \"[sSVGFactory]\",\n})\nexport class SVGFactoryDirective implements AfterViewInit {\n @Input(\"sSVGFactory\")\n public set sSVGFactory(icon: SVGFactoryIcons) {\n this._iconClass = this._getIconClass(icon);\n }\n\n private _iconClass = this._getIconClass(SVGFactoryIcons.Senior);\n\n constructor(\n private viewContainerRef: ViewContainerRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngAfterViewInit() {\n this._createComponent();\n }\n\n private _createComponent() {\n const factory = this.componentFactoryResolver.resolveComponentFactory(this._iconClass);\n this.viewContainerRef.clear();\n this.viewContainerRef.createComponent(factory);\n this.cdr.detectChanges();\n }\n\n private _getIconClass(icon: SVGFactoryIcons) {\n switch (icon) {\n case SVGFactoryIcons.IAssist:\n return IAssistIconComponent;\n case SVGFactoryIcons.Senior:\n default:\n return SeniorIconComponent;\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { SVGFactoryDirective } from \"./svg-factory.directive\";\nimport { IAssistIconComponent } from \"./components/iassist-icon/iassist-icon.component\";\nimport { SeniorIconComponent } from \"./components/senior-icon/senior-icon.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n SVGFactoryDirective,\n IAssistIconComponent,\n SeniorIconComponent,\n ],\n exports: [SVGFactoryDirective],\n})\nexport class SVGFactoryModule {}\n","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-dots-indicator\",\n templateUrl: \"./dots-indicator.component.html\",\n styleUrls: [\"./dots-indicator.component.scss\"],\n})\nexport class DotsIndicatorComponent {}","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-logo-indicator\",\n templateUrl: \"./logo-indicator.component.html\",\n styleUrls: [\"./logo-indicator.component.scss\"],\n})\nexport class LoadingIndicatorComponent {}\n","export enum PasswordStrengths {\n VeryWeak = \"Very_weak\",\n Weak = \"weak\",\n Medium = \"medium\",\n Strong = \"strong\",\n}","export enum PasswordStrengthPositions {\n Top = \"top\",\n Right = \"right\",\n Left = \"left\",\n}","import { Component, Input, OnDestroy, TemplateRef } from \"@angular/core\";\n\nimport { LoadingStateIndicators } from \"./components/loading-state-indicators\";\n\n@Component({\n selector: \"s-loading-state\",\n templateUrl: \"./loading-state.component.html\",\n styleUrls: [\"./loading-state.component.scss\"],\n})\nexport class LoadingStateComponent implements OnDestroy {\n public static nextId = 0;\n \n @Input()\n public indicator: LoadingStateIndicators = LoadingStateIndicators.Dots;\n\n @Input()\n public id = `s-loading-state-${LoadingStateComponent.nextId++}`;\n\n @Input()\n public blockWindow: boolean;\n\n @Input()\n public set loading(loading: boolean) {\n this._loading = loading;\n loading ? this.block() : this.unblock(); \n }\n\n public get loading() {\n return this._loading;\n }\n\n public contents: TemplateRef<any>;\n public blocking: boolean;\n\n private _loading: boolean;\n private BLOCK_TIMEOUT_VALUE = 300;\n private UNBLOCK_TIMEOUT_VALUE = 200;\n private blockTimeoutId: any;\n private unblockTimeoutId: any;\n\n public block(): void {\n if (this.unblockTimeoutId) {\n clearTimeout(this.unblockTimeoutId);\n this.unblockTimeoutId = undefined;\n }\n\n if (!this.blockTimeoutId) {\n this.blockTimeoutId = setTimeout(() => {\n this.blocking = true;\n this.blockTimeoutId = undefined;\n }, this.BLOCK_TIMEOUT_VALUE);\n }\n }\n\n public unblock(): void {\n if (this.blockTimeoutId) {\n clearTimeout(this.blockTimeoutId);\n this.blockTimeoutId = undefined;\n }\n\n if (!this.unblockTimeoutId) {\n this.unblockTimeoutId = setTimeout(() => {\n this.blocking = false;\n this.unblockTimeoutId = undefined;\n }, this.UNBLOCK_TIMEOUT_VALUE);\n }\n }\n\n public ngOnDestroy(): void {\n if (this.blockTimeoutId) {\n clearTimeout(this.blockTimeoutId);\n }\n\n if (this.unblockTimeoutId) {\n clearTimeout(this.unblockTimeoutId);\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n Input,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n} from \"@angular/core\";\n\nimport { LoadingStateComponent } from \"./loading-state.component\";\nimport { LoadingStateIndicators } from \"./components/loading-state-indicators\";\n\n@Directive({\n selector: \"[sLoadingState]\",\n})\nexport class LoadingStateDirective implements AfterViewInit, OnDestroy {\n @Input(\"sLoadingState\")\n public set sLoadingState(value: boolean | { loading: boolean; indicator?: LoadingStateIndicators }) {\n if (typeof value === \"boolean\") {\n this._loading = value;\n this.indicator = LoadingStateIndicators.Dots;\n } else if (typeof value === \"object\") {\n this._loading = value.loading;\n this.indicator = value.indicator || LoadingStateIndicators.Dots;\n }\n\n if (this.loaderComponent) {\n this.loaderComponent.instance.loading = this._loading;\n this.loaderComponent.instance.indicator = this.indicator;\n }\n }\n\n private _loading = false;\n private indicator = LoadingStateIndicators.Dots;\n private loaderComponent: ComponentRef<LoadingStateComponent>;\n\n constructor(\n private target: ViewContainerRef,\n private template: TemplateRef<any>,\n private componentFactoryResolver: ComponentFactoryResolver,\n private cdr: ChangeDetectorRef\n ) {}\n\n public ngAfterViewInit() {\n this.createComponent();\n }\n\n private createComponent() {\n const factory = this.componentFactoryResolver.resolveComponentFactory(LoadingStateComponent);\n this.loaderComponent = this.target.createComponent(factory);\n this.loaderComponent.instance.contents = this.template;\n this.loaderComponent.instance.loading = this._loading;\n this.loaderComponent.instance.indicator = this.indicator;\n this.cdr.detectChanges();\n }\n\n public ngOnDestroy() {\n if (this.loaderComponent) {\n this.loaderComponent.destroy();\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { SVGFactoryModule } from \"../../utils/svg-factory/svg-factory.module\";\nimport { DotsIndicatorComponent } from \"./components/dots-indicator/dots-indicator.components\";\nimport { LoadingIndicatorComponent } from \"./components/logo-indicator/logo-indicator.component\";\nimport { LoadingStateComponent } from \"./loading-state.component\";\nimport { LoadingStateDirective } from \"./loading-state.directive\";\n\n@NgModule({\n imports: [\n CommonModule,\n SVGFactoryModule,\n ],\n declarations: [\n LoadingStateComponent,\n LoadingStateDirective,\n DotsIndicatorComponent,\n LoadingIndicatorComponent,\n ],\n exports: [\n LoadingStateComponent,\n LoadingStateDirective,\n ],\n entryComponents: [LoadingStateComponent],\n})\nexport class LoadingStateModule {}\n","import { Directive, forwardRef, Input, OnInit } from \"@angular/core\";\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from \"@angular/forms\";\nimport { LocaleService } from \"../locale/locale.service\";\nimport { first } from \"rxjs/operators\";\n\n@Directive({\n selector: \"input[sLocalizedNumberInput]\",\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => LocalizedNumberInputDirective),\n multi: true,\n },\n ],\n})\nexport class LocalizedNumberInputDirective implements OnInit, Validator {\n @Input()\n public decimalSeparator: string;\n @Input()\n public thousandsSeparator: string;\n @Input()\n public precision = 2;\n\n private numberRegex: string;\n\n constructor(private readonly localeService: LocaleService) {}\n\n ngOnInit() {\n // Gera a expressão regular para validar números de acordo com os separadores decimais e de milhares.\n // Exemplo: /^(\\+?)(\\-?)([0-9]{0,3})*((\\,[0-9]{3,3})|((\\,[0-9]{3,3})+(\\,[0-9]{3,3}))|((\\,[0-9]{3,3})+(\\.[0-9]{1,10})))?$/g\n // tslint:disable-next-line: max-line-length\n this.numberRegex = `^((\\\\+?)|(-?))([0-9]{1,3})+((\\\\${this.thousandsSeparator}[0-9]{3,3})|((\\\\${this.thousandsSeparator}[0-9]{3,3})+(\\\\${this.thousandsSeparator}[0-9]{3,3}))|((\\\\${this.thousandsSeparator}[0-9]{3,3})+(\\\\${this.decimalSeparator}[0-9]{1,2}))|(\\\\${this.decimalSeparator}[0-9]{1,${this.precision}}))?$`;\n\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe(() => {\n this.decimalSeparator = this.decimalSeparator ?? this.localeService.getDecimalSeparator();\n this.thousandsSeparator = this.thousandsSeparator ?? this.localeService.getGroupingSeparator();\n\n this.numberRegex = `^((\\\\+?)|(-?))([0-9]{1,3})+((\\\\${this.thousandsSeparator}[0-9]{3,3})|((\\\\${this.thousandsSeparator}[0-9]{3,3})+(\\\\${this.thousandsSeparator}[0-9]{3,3}))|((\\\\${this.thousandsSeparator}[0-9]{3,3})+(\\\\${this.decimalSeparator}[0-9]{1,2}))|(\\\\${this.decimalSeparator}[0-9]{1,${this.precision}}))?$`;\n });\n }\n\n validate(control: AbstractControl): ValidationErrors {\n if (control.value && !String(control.value).match(new RegExp(this.numberRegex, \"g\"))) return { invalidNumber: true };\n return null;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { LocalizedNumberInputDirective } from \"./localized-number-input.directive\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [LocalizedNumberInputDirective],\n exports: [LocalizedNumberInputDirective],\n})\nexport class LocalizedNumberInputModule {}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"sMaskFormatter\",\n})\nexport class MaskFormatterPipe implements PipeTransform {\n private defs = {\n \"9\": \"[0-9]\",\n a: \"[A-Za-z]\",\n \"*\": \"[A-Za-z]|[0-9]\",\n };\n\n transform(value: string, maskFormat: string): any {\n const buffer = [];\n let opcionalPos;\n let pos = 0;\n const maskTokens = maskFormat.split(\"\");\n const symbolsPosAfterOpcional = [];\n const hasOpcional = maskFormat.includes(\"?\");\n\n for (let i = 0; i < maskTokens.length; i++) {\n const token = maskTokens[i];\n\n if (token != \"?\") {\n if (this.defs[token]) {\n const tokenRegex = this.defs[token];\n const charAtPos = value.charAt(pos);\n const isValidChar = new RegExp(tokenRegex).test(charAtPos);\n if (isValidChar) {\n if (pos < maskTokens.length) {\n buffer.push(value.charAt(pos));\n pos++;\n }\n } else {\n throw new Error(\"Value doesn't match mask format\");\n }\n } else {\n buffer.push(token);\n if (hasOpcional && i > opcionalPos) {\n symbolsPosAfterOpcional.push(i);\n }\n }\n } else {\n opcionalPos = i;\n }\n }\n\n if (buffer[buffer.length - 1] !== value.charAt(value.length - 1) && symbolsPosAfterOpcional.length) {\n let formattedValue = buffer.join(\"\");\n let beforeSymbol;\n let symbol;\n let firstAfterSymbol;\n let endOfString;\n\n for (let i = 0; i < symbolsPosAfterOpcional.length; i++) {\n const symbolPos = symbolsPosAfterOpcional[i];\n beforeSymbol = formattedValue.substr(0, symbolPos - 1);\n symbol = formattedValue.substr(symbolPos - 1, 1);\n firstAfterSymbol = formattedValue.substr(symbolPos, 1);\n endOfString = formattedValue.substr(symbolPos + 1);\n\n formattedValue = `${beforeSymbol}${firstAfterSymbol}${symbol}${endOfString}`;\n }\n return `${formattedValue}${value.substr(value.length - symbolsPosAfterOpcional.length)}`;\n }\n\n return buffer.join(\"\");\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { MaskFormatterPipe } from \"./mask-formatter.pipe\";\n\n@NgModule({\n exports: [MaskFormatterPipe],\n declarations: [MaskFormatterPipe],\n})\nexport class MaskFormatterModule {}\n","export enum EnumColumnFieldType {\n STRING = \"STRING\",\n NUMBER = \"NUMBER\",\n BOOLEAN = \"BOOLEAN\",\n DATE = \"DATE\",\n CURRENCY = \"CURRENCY\",\n ENUM = \"ENUM\",\n LOOKUP = \"LOOKUP\",\n LINK = \"LINK\",\n TOKENS = \"TOKENS\"\n}\n","import { BadgeColors } from \"../../../badge/models/badge-colors\";\n\nexport enum EnumBadgeColors {\n RED = BadgeColors.Red,\n ORANGE = BadgeColors.Orange,\n YELLOW = BadgeColors.Yellow,\n GREEN = BadgeColors.Green,\n BLUE = BadgeColors.Blue,\n GRAY = BadgeColors.Gray,\n}\n","import { Component, Input, OnInit } from \"@angular/core\";\n\nimport { PasswordStrengths, PasswordStrengthPositions } from \"./models/index\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\n@Component({\n templateUrl: \"./password-strength.component.html\",\n styleUrls: [\"./password-strength.component.scss\"],\n})\nexport class PasswordStrengthComponent implements OnInit {\n @Input()\n public weakTitle: string;\n\n @Input()\n public mediumTitle: string;\n\n @Input()\n public strongTitle: string;\n\n @Input()\n public description: string;\n\n public title: string;\n public position = PasswordStrengthPositions.Right;\n public left = 0;\n public top = 0;\n public visible = false;\n\n constructor(private readonly translate: TranslateService) {}\n\n public ngOnInit(): void {\n this.title = this.weakTitle;\n }\n\n public setPasswordStrengthPosition() {\n const passwordStrength = document.querySelector(\".password-strength\");\n\n switch (this.position) {\n case PasswordStrengthPositions.Top:\n passwordStrength.classList.add(\"password-strength--top\");\n break;\n case PasswordStrengthPositions.Right:\n passwordStrength.classList.add(\"password-strength--right\");\n break;\n case PasswordStrengthPositions.Left:\n passwordStrength.classList.add(\"password-strength--left\");\n break;\n }\n }\n\n public updateIndicators(passwordStrength: PasswordStrengths) {\n const strengthIndicator1 = document.querySelector(\"#strength-indicator-1\");\n const strengthIndicator2 = document.querySelector(\"#strength-indicator-2\");\n const strengthIndicator3 = document.querySelector(\"#strength-indicator-3\");\n\n const onIndicators = [];\n const indicators = [\n strengthIndicator1,\n strengthIndicator2,\n strengthIndicator3,\n ];\n\n let strengthClass: string;\n\n switch (passwordStrength) {\n case PasswordStrengths.VeryWeak:\n this.title = this.weakTitle ?? this.translate.instant(\"platform.angular_components.weak\");\n break;\n case PasswordStrengths.Weak:\n this.title = this.weakTitle ?? this.translate.instant(\"platform.angular_components.weak\");\n strengthClass = \"strength-indicator--weak\";\n onIndicators.push(strengthIndicator1);\n break;\n case PasswordStrengths.Medium:\n this.title = this.mediumTitle ?? this.translate.instant(\"platform.angular_components.medium\");\n strengthClass = \"strength-indicator--medium\";\n onIndicators.push(strengthIndicator1);\n onIndicators.push(strengthIndicator2);\n break;\n case PasswordStrengths.Strong:\n this.title = this.strongTitle ?? this.translate.instant(\"platform.angular_components.strong\");\n strengthClass = \"strength-indicator--strong\";\n onIndicators.push(strengthIndicator1);\n onIndicators.push(strengthIndicator2);\n onIndicators.push(strengthIndicator3);\n break;\n }\n\n indicators.forEach(indicator => {\n indicator.classList.remove(\n \"strength-indicator--weak\",\n \"strength-indicator--medium\",\n \"strength-indicator--strong\",\n );\n });\n\n onIndicators.forEach(indicator => {\n indicator.classList.add(strengthClass);\n });\n }\n}","import {\n ApplicationRef,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n HostListener,\n Injector,\n Input,\n OnInit,\n} from \"@angular/core\";\n\nimport { PasswordStrengthPositions, PasswordStrengths } from \"./models/index\";\nimport { PasswordStrengthComponent } from \"./password-strength.component\";\n\n@Directive({\n selector: \"[sPasswordStrength]\",\n})\nexport class PasswordStrengthDirective implements OnInit {\n @Input(\"sPasswordStrength\")\n public enabled = true;\n\n @Input(\"psValidation\")\n public validation: (content: string) => PasswordStrengths;\n\n @Input(\"psPosition\")\n public position = PasswordStrengthPositions.Right;\n\n @Input(\"psWeakTitle\")\n public weakTitle: string;\n\n @Input(\"psMediumTitle\")\n public mediumTitle: string;\n\n @Input(\"psStrongTitle\")\n public strongTitle: string;\n\n @Input(\"psDescription\")\n public description: string;\n\n private componentRef: ComponentRef<any> = null;\n\n constructor(\n private elementRef: ElementRef,\n private appRef: ApplicationRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n private injector: Injector,\n ) { }\n\n public ngOnInit() {\n this.validateProperties();\n }\n\n @HostListener(\"keyup\")\n @HostListener(\"focus\")\n public onFocus(): void {\n const content = this.elementRef.nativeElement.value ?? \"\";\n \n if (content) {\n this.createPasswordStrength();\n this.componentRef?.instance.updateIndicators(this.validation(content));\n } else {\n this.componentRef?.instance.updateIndicators(PasswordStrengths.VeryWeak);\n }\n }\n\n @HostListener(\"blur\")\n public onBlur(): void {\n this.destroyPasswordStrength();\n }\n\n private createPasswordStrength() {\n if (this.enabled && this.componentRef === null) {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(PasswordStrengthComponent);\n this.componentRef = componentFactory.create(this.injector);\n this.appRef.attachView(this.componentRef.hostView);\n const domElem = (this.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n this.setPasswordStrengthComponentProperties();\n\n this.showPasswordStrength();\n }\n }\n\n private showPasswordStrength() {\n if (this.componentRef !== null) {\n this.componentRef.instance.visible = true;\n }\n }\n\n private setPasswordStrengthComponentProperties() {\n if (this.componentRef != null) {\n this.componentRef.instance.position = this.position;\n this.componentRef.instance.weakTitle = this.weakTitle;\n this.componentRef.instance.mediumTitle = this.mediumTitle;\n this.componentRef.instance.strongTitle = this.strongTitle;\n this.componentRef.instance.description = this.description;\n\n const { top, right, bottom, left } = this.elementRef.nativeElement.getBoundingClientRect();\n\n const margin = 20;\n const elementRefHeight = bottom - top;\n const elementRefWidth = right - left;\n const safeSpace = 150;\n\n let positioned = false;\n const invalidOptions: PasswordStrengthPositions[] = [];\n\n while (!positioned) {\n if (invalidOptions.includes(PasswordStrengthPositions.Top)\n && invalidOptions.includes(PasswordStrengthPositions.Right)\n && invalidOptions.includes(PasswordStrengthPositions.Left)) {\n this.destroyPasswordStrength();\n throw new Error(\"No space to show password strength\");\n }\n\n switch (this.position) {\n case PasswordStrengthPositions.Top: {\n const topShift = top;\n const rightShift = document.body.clientWidth - right;\n const leftShift = left;\n\n if (topShift <= elementRefHeight + safeSpace || rightShift < 50 || leftShift < 50) {\n this.position = PasswordStrengthPositions.Right;\n invalidOptions.push(PasswordStrengthPositions.Top);\n break;\n }\n\n this.componentRef.instance.top = Math.round(top - margin);\n this.componentRef.instance.left = Math.round(elementRefWidth / 2 + left);\n positioned = true;\n break;\n }\n case PasswordStrengthPositions.Right: {\n const rightShift = document.body.clientWidth - right;\n\n if (rightShift <= elementRefWidth + safeSpace) {\n this.position = PasswordStrengthPositions.Left;\n invalidOptions.push(PasswordStrengthPositions.Right);\n break;\n }\n\n this.componentRef.instance.top = Math.round(top + elementRefHeight / 2);\n this.componentRef.instance.left = Math.round(right + margin);\n positioned = true;\n break;\n }\n case PasswordStrengthPositions.Left: {\n const leftShift = left;\n\n if (leftShift <= elementRefWidth + safeSpace) {\n this.position = PasswordStrengthPositions.Top;\n invalidOptions.push(PasswordStrengthPositions.Left);\n break;\n }\n\n this.componentRef.instance.top = Math.round(top + elementRefHeight / 2);\n this.componentRef.instance.left = Math.round(left - margin);\n positioned = true;\n break;\n }\n default: {\n break;\n }\n }\n\n this.componentRef.instance.position = this.position;\n }\n }\n }\n\n private validateProperties() {\n this.validation = this.validation || this.defaultValidator;\n }\n\n private destroyPasswordStrength(): void {\n if (this.componentRef !== null) {\n this.appRef.detachView(this.componentRef.hostView);\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private defaultValidator(content: string): PasswordStrengths {\n let points = 0;\n\n const regExpValidations = [\n new RegExp(\"(?=.*\\\\d)\"), // number\n new RegExp(\"(?=.*[a-z])\"), // lowercase\n new RegExp(\"(?=.*[A-Z])\"), // uppercase\n new RegExp(\"(?=.*[!@#$%&*.\\\\-=+^~])\"), // special character\n ];\n\n if (content.length >= 6) {\n points++;\n }\n\n regExpValidations.forEach(validation => {\n if (validation.test(content)) {\n points++;\n }\n });\n\n if (points < 1) {\n return PasswordStrengths.VeryWeak;\n } else if (points < 4) {\n return PasswordStrengths.Weak;\n } else if (points < 5) {\n return PasswordStrengths.Medium;\n } else {\n return PasswordStrengths.Strong;\n }\n }\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { PasswordStrengthDirective } from \"./password-strength.directive\";\nimport { PasswordStrengthComponent } from \"./password-strength.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n PasswordStrengthComponent,\n PasswordStrengthDirective,\n ],\n exports: [PasswordStrengthDirective],\n})\nexport class PasswordStrengthModule { }\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\nimport { Table, TableService } from \"primeng/table\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\n@Component({\n selector: \"s-table-header-checkbox\",\n template: `\n <div class=\"ui-chkbox ui-widget\" (click)=\"onClick()\">\n <div class=\"ui-helper-hidden-accessible\">\n <input type=\"checkbox\" [checked]=\"checked\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" [disabled]=\"isDisabled()\">\n </div>\n <div [ngClass]=\"{'ui-chkbox-box ui-widget ui-state-default':true,\n 'ui-state-active':checked, 'ui-state-disabled': isDisabled(), 'ui-state-focus': hasFocus}\">\n <span [id]=\"id\" class=\"ui-chkbox-icon ui-clickable\" [ngClass]=\"{'pi pi-check':checked}\"></span>\n </div>\n </div>\n `,\n})\nexport class TableHeaderCheckboxComponent implements OnInit, OnDestroy {\n public static nextId = 0;\n\n @Input()\n public id = `s-table-header-checkbox-${TableHeaderCheckboxComponent.nextId++}`;\n @Input()\n public disabled: boolean;\n @Input()\n public rowProps: string[];\n @Input()\n public useAllObject: boolean;\n\n public checked: boolean;\n public hasFocus: boolean;\n\n private ngUnsubscribe = new Subject();\n\n constructor(public table: Table, public tableService: TableService) {\n this.table.tableService.valueSource$.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n\n this.table.tableService.selectionSource$.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n }\n\n public ngOnInit() {\n this.checked = this.updateCheckedState();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n }\n\n public onFocus() {\n this.hasFocus = true;\n }\n\n public onBlur() {\n this.hasFocus = false;\n }\n\n isDisabled() {\n return this.disabled || !this.table.value || !this.table.value.length;\n }\n\n onClick() {\n if (!this.disabled) {\n if (this.table.value && this.table.value.length > 0) this.onToggleCheckbox(!this.checked);\n }\n }\n\n public updateCheckedState() {\n if (this.table.filteredValue) {\n const val = this.table.filteredValue;\n return val && val.length > 0 && this.table.selection && this.table.selection.length > 0 && this.isAllFilteredValuesChecked();\n } else {\n const val = this.table.value;\n return val && val.length > 0 && this.table.selection && this.table.selection.length > 0 && this.isAllValuesChecked();\n }\n }\n\n public onToggleCheckbox(checked: boolean) {\n const { filteredValue, value, dataKey } = this.table;\n const gridData = checked ? (filteredValue ? filteredValue.slice() : value.slice()) : [];\n\n if (checked) {\n const unselecteds = gridData\n .filter(record => !this.table._selection.find((selected: any) => record[dataKey] === selected[dataKey]))\n .map((record: any) => {\n if (this.useAllObject) return record;\n\n const newRecord = {};\n if (this.rowProps) this.rowProps.forEach((prop: string) => (newRecord[prop] = record[prop]));\n else newRecord[dataKey] = record[dataKey];\n return newRecord;\n });\n this.table._selection = [...this.table._selection, ...unselecteds];\n } else {\n value.forEach((data: any) => {\n this.table._selection = this.table._selection.filter((record: any) => record[dataKey] !== data[dataKey]);\n });\n }\n\n this.table.updateSelectionKeys();\n this.table.selectionChange.emit(this.table._selection);\n this.tableService.onSelectionChange();\n\n if (this.table.isStateful()) this.table.saveState();\n }\n\n public isAllFilteredValuesChecked() {\n if (!this.table.filteredValue) {\n return false;\n } else {\n for (const rowData of this.table.filteredValue) {\n if (!this.table.isSelected(rowData)) {\n return false;\n }\n }\n return true;\n }\n }\n\n public isAllValuesChecked() {\n if (!this.table.value) {\n return false;\n } else {\n for (const rowData of this.table.value) {\n if (!this.table.isSelected(rowData)) {\n return false;\n }\n }\n return true;\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { TableHeaderCheckboxComponent } from \"./table-header-checkbox.component\";\n\n@NgModule({\n imports: [CommonModule],\n exports: [TableHeaderCheckboxComponent],\n declarations: [TableHeaderCheckboxComponent],\n})\nexport class TableHeaderCheckboxModule {}\n","import { Directive, HostListener } from \"@angular/core\";\n\n@Directive({ selector: \"[sNavigation]\" })\nexport class NavigationDirective {\n @HostListener(\"keydown\", [\"$event\"])\n onKeyDown(event: KeyboardEvent): void {\n switch (event.key) {\n case \"Right\": // IE 11\n case \"ArrowRight\":\n if (this.isRow(event.target as HTMLTableElement)) {\n this.focusFirstColFromCurrentRow(event.target as HTMLTableRowElement);\n } else if (this.isCol(event.target as HTMLTableElement)) {\n this.focusNextSelectableCol(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n case \"Left\": // IE 11\n case \"ArrowLeft\":\n if (this.isRow(event.target as HTMLTableElement)) {\n this.focusLastColFromPrevRow(event.target as HTMLTableRowElement);\n } else if (this.isCol(event.target as HTMLTableElement)) {\n this.focusPrevSelectableCol(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n case \"Up\": // IE 11\n case \"ArrowUp\":\n if (this.isRow(event.target as HTMLTableElement)) {\n this.setPrevRowFocus(event.target as HTMLTableRowElement);\n } else if (this.isCol(event.target as HTMLTableElement)) {\n this.setAboveColFocus(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n case \"Down\": // IE 11\n case \"ArrowDown\":\n if (this.isRow(event.target as HTMLTableElement)) {\n this.setNextRowFocus(event.target as HTMLTableRowElement);\n } else if (this.isCol(event.target as HTMLTableElement)) {\n this.setUnderColFocus(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n }\n }\n\n private focusLastColFromPrevRow(event: HTMLTableRowElement): void {\n const prevRow = this.findPrevSelectableRow(event);\n\n if (prevRow) {\n (prevRow.lastElementChild as HTMLTableColElement).focus();\n }\n }\n\n private focusFirstColFromCurrentRow(row: HTMLTableRowElement): void {\n const firstCol = row.firstElementChild as HTMLTableColElement;\n\n if (firstCol) {\n firstCol.focus();\n }\n }\n\n private focusNextSelectableCol(col: HTMLTableColElement): void {\n const nextCol = col.nextElementSibling as HTMLTableColElement;\n\n if (nextCol) {\n nextCol.focus();\n } else {\n const currentRow = col.parentElement as HTMLTableRowElement;\n return this.setNextRowFocus(currentRow);\n }\n }\n\n private focusPrevSelectableCol(col: HTMLTableColElement): void {\n const prevCol = col.previousElementSibling as HTMLTableColElement;\n\n if (prevCol) {\n prevCol.focus();\n } else {\n const currentRow = col.parentElement as HTMLTableRowElement;\n return currentRow.focus();\n }\n }\n\n private setAboveColFocus(currentCol: HTMLTableColElement): void {\n const cellIndex = currentCol[\"cellIndex\"];\n const currentRow = currentCol.parentElement;\n const prevRow = this.findPrevSelectableRow(currentRow as HTMLTableRowElement);\n\n if (prevRow) (prevRow.cells[cellIndex] as HTMLTableDataCellElement).focus();\n }\n\n private setUnderColFocus(currentCol: HTMLTableColElement): void {\n const cellIndex = currentCol[\"cellIndex\"];\n const currentRow = currentCol.parentElement;\n const nextRow = this.findNextSelectableRow(currentRow as HTMLTableRowElement);\n if (nextRow) (nextRow.cells[cellIndex] as HTMLTableDataCellElement).focus();\n }\n\n private setNextRowFocus(row: HTMLTableRowElement): void {\n const nextRow = this.findNextSelectableRow(row);\n if (nextRow) {\n nextRow.focus();\n }\n }\n\n private setPrevRowFocus(row: HTMLTableRowElement): void {\n const prevRow = this.findPrevSelectableRow(row);\n if (prevRow) {\n prevRow.focus();\n }\n }\n\n private isRow(event: HTMLTableElement): boolean {\n return event.tagName.toLocaleLowerCase() === \"tr\";\n }\n\n private isCol(event: HTMLTableElement): boolean {\n return event.tagName.toLocaleLowerCase() === \"td\";\n }\n\n private findPrevSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement {\n const prevRow = <HTMLTableRowElement>row.previousElementSibling;\n if (prevRow) return prevRow;\n else return null;\n }\n\n private findNextSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement {\n const nextRow = <HTMLTableRowElement>row.nextElementSibling;\n if (nextRow) return nextRow;\n else return null;\n }\n}\n","import { Directive, HostListener, Input } from \"@angular/core\";\nimport { RowToggler, Table } from \"primeng/table\";\n\n@Directive({ selector: \"[sRowToggler]\" })\nexport class RowTogllerDirective extends RowToggler {\n @Input(\"sRowToggler\")\n data: any;\n\n constructor(public dt: Table) {\n super(dt);\n }\n\n @HostListener(\"keydown\", [\"$event\"])\n public onKeydown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n switch (event.key) {\n case \"Enter\":\n this.dt.toggleRow(this.data, event);\n event.preventDefault();\n break;\n default:\n event.preventDefault();\n break;\n }\n }\n }\n}\n","import { AfterContentChecked, AfterViewInit, Directive, ElementRef, EventEmitter, Input, OnDestroy } from \"@angular/core\";\nimport { Table } from \"primeng/table\";\n\n@Directive({\n selector: \"[sTableFrozenPosition]\"\n})\nexport class TableFrozenPositionDirective implements AfterViewInit, OnDestroy, AfterContentChecked {\n @Input()\n sTableFrozenPosition = \"left\";\n\n @Input()\n set sTableFrozenValue(_: any[]) {\n setTimeout(() => {\n this.synchronizeRowHeight();\n this.setUpRowResizeMonitoring();\n });\n }\n\n private table: Table;\n private isTableVisible = false;\n\n tableHeadObservable: MutationObserver;\n rowExpandedObserver: any;\n onColumnsChanged: EventEmitter<any> = new EventEmitter();\n\n private tableWrapperObserver: MutationObserver;\n\n private readonly TABLE_SCROLLABLE_WRAPPER_CLASS = \".ui-table-scrollable-wrapper\";\n\n constructor(private el: ElementRef, host: Table) {\n this.table = host;\n this.table.styleClass = (this.table.styleClass || \"\") + \" s-table-frozen-position\";\n this.setUpTableEvents();\n\n window.addEventListener(\"resize\", this.handleWindowResize.bind(this));\n\n const htmlHead = document.getElementsByTagName(\"head\")[0];\n\n const expandFrozenStyle = document.createElement(\"style\");\n expandFrozenStyle.innerHTML = \".s-table-frozen-position .ui-table-frozen-view .sds-expanded-row > td { visibility: hidden; }\";\n htmlHead.appendChild(expandFrozenStyle);\n }\n\n ngAfterViewInit(): void {\n if (this.sTableFrozenPosition === \"left\") return;\n this.applyStylesForTable();\n this.setUpColumnMonitoring();\n }\n\n ngAfterContentChecked(): void {\n if (!this.isTableVisible && !!this.table.el.nativeElement.offsetParent) {\n this.isTableVisible = true;\n\n this.synchronizeRowHeight();\n } else if (this.isTableVisible && !this.table.el.nativeElement.offsetParent) {\n this.isTableVisible = false;\n }\n }\n\n ngOnDestroy(): void {\n window.removeEventListener(\"resize\", this.handleWindowResize.bind(this));\n if (this.tableHeadObservable) {\n this.tableHeadObservable.disconnect();\n }\n\n if (this.rowExpandedObserver) {\n this.rowExpandedObserver.disconnect();\n }\n\n if (this.tableWrapperObserver) {\n this.tableWrapperObserver.disconnect();\n }\n }\n\n private setUpTableEvents() {\n this.table.onColResize.subscribe(() => {\n this.handleColResize();\n });\n\n this.table.onRowExpand.subscribe(() => {\n this.setUpRowResizeMonitoring();\n });\n }\n\n private setUpRowResizeMonitoring() {\n if (this.rowExpandedObserver) {\n this.rowExpandedObserver.disconnect();\n }\n\n // The version of Angular/Typescript does not recognize the object ResizeObserver and breaks build\n this.rowExpandedObserver = new (window as any).ResizeObserver(() => {\n this.applyHeightForExpandedRows();\n });\n\n setTimeout(() => {\n const tdsToAdjust = this.el.nativeElement.querySelectorAll(\".ui-table-frozen-view .sds-expanded-row > td\");\n const originalsTds = this.el.nativeElement.querySelectorAll(\".ui-table-unfrozen-view .sds-expanded-row > td\");\n tdsToAdjust.forEach((td: HTMLElement, index: number) => {\n const originalTd: HTMLElement = originalsTds[index];\n td.innerHTML = null;\n td.style.padding = \"0px\";\n\n this.rowExpandedObserver.observe(originalTd);\n });\n });\n }\n\n private setUpColumnMonitoring() {\n this.tableHeadObservable = new MutationObserver(() => {\n this.synchronizeRowHeight();\n this.onColumnsChanged.emit(null);\n });\n const tableHeads = [...this.el.nativeElement.getElementsByTagName(\"thead\")];\n tableHeads.forEach((tableHead: Element) => {\n this.tableHeadObservable.observe(tableHead, {\n subtree: true,\n childList: true\n });\n });\n\n const tableWraper = this.el.nativeElement.querySelector(this.TABLE_SCROLLABLE_WRAPPER_CLASS);\n if (tableWraper) {\n const mutationObserver = new MutationObserver(() => {\n this.synchronizeRowHeight();\n })\n\n mutationObserver.observe(tableWraper, {\n subtree: true,\n childList: true\n })\n this.tableWrapperObserver = mutationObserver;\n }\n }\n\n private applyHeightForExpandedRows() {\n const frozenTDsToAdjust = this.el.nativeElement.querySelectorAll(\".ui-table-frozen-view .sds-expanded-row > td\");\n const unFrozenTDs = this.el.nativeElement.querySelectorAll(\".ui-table-unfrozen-view .sds-expanded-row > td\");\n frozenTDsToAdjust.forEach((frozenTd: HTMLElement, index: number) => {\n const unfrozenTD: HTMLElement = unFrozenTDs[index];\n const unfrozenHeight = unfrozenTD.getBoundingClientRect().height;\n const frozenHeight = frozenTd.getBoundingClientRect().height;\n\n if (Math.abs(unfrozenHeight - frozenHeight) > 1) {\n frozenTd.style.height = `${unfrozenHeight}px`;\n frozenTd.innerHTML = null;\n }\n });\n }\n\n private applyStylesForTable() {\n const scrollWrapper = this.el.nativeElement.querySelector(this.TABLE_SCROLLABLE_WRAPPER_CLASS);\n if (!scrollWrapper) {\n console.warn(\"Unable to find scroll-wrapper element from table. Is the table configured with frozen template?\");\n return;\n }\n scrollWrapper.style.display = \"flex\";\n scrollWrapper.style.flexDirection = \"row\";\n\n const frozenTable = this.el.nativeElement.querySelector(\".ui-table-frozen-view\");\n if (!frozenTable) {\n console.warn(\"Unable to find frozen element from table. Is the table configured with frozen template?\");\n return;\n }\n\n frozenTable.style.order = \"1\";\n frozenTable.style.borderRight = \"none\";\n frozenTable.style.borderLeft = \"1px solid #dddddd\";\n frozenTable.style.boxShadow = \"-5px 0 5px -5px #cccccc\";\n\n const unfrozenTable = this.el.nativeElement.querySelector(\".ui-table-unfrozen-view\");\n if (!unfrozenTable) {\n console.warn(\"Unable to find unfrozen element from table. Is the table configured with frozen template?\");\n return;\n }\n unfrozenTable.style.position = \"unset\";\n }\n\n private handleWindowResize() {\n this.synchronizeRowHeight();\n }\n\n private handleColResize() {\n this.synchronizeRowHeight();\n }\n\n private synchronizeRowHeight() {\n const tableBodyWrappers = this.el.nativeElement.getElementsByClassName(\"ui-table-scrollable-body\");\n const tableBodies = [...tableBodyWrappers].map(divWrapper => [...divWrapper.childNodes].find(p => p.tagName === \"TABLE\"));\n this._resetRowHeight(tableBodies);\n this._applyMaxRowHeight(tableBodies);\n\n const tableHeadWrappers = this.el.nativeElement.getElementsByClassName(\"ui-table-scrollable-header-box\");\n const tableHeads = [...tableHeadWrappers].map(divWrapper => [...divWrapper.childNodes].find(p => p.tagName === \"TABLE\"));\n this._resetRowHeight(tableHeads);\n this._applyMaxRowHeight(tableHeads);\n }\n\n private _applyMaxRowHeight(tables: any[]) {\n if (!tables || !tables.length) {\n return;\n }\n\n const lengths = tables.map(table => table.rows.length);\n const maxLength = lengths.reduce((accumulator, currentValue) => Math.max(accumulator, currentValue), lengths[0]);\n const minLength = lengths.reduce((accumulator, currentValue) => Math.min(accumulator, currentValue), lengths[0]);\n\n if (maxLength !== minLength) {\n throw new Error(\"The number of rows in both tables must be the same\");\n }\n\n const table = tables[0];\n\n for (let i = 0; i < table.rows.length; i++) {\n const trs = [];\n for (const table of tables) {\n trs.push(table.rows[i] as HTMLTableRowElement);\n }\n\n const max = trs.reduce((accumulator, currentValue) =>\n Math.max(accumulator, currentValue.getBoundingClientRect().height), trs[0].getBoundingClientRect().height);\n\n for (const tr of trs) {\n tr.style.height = `${max}px`;\n }\n }\n }\n\n private _resetRowHeight(tables: any[]) {\n for (const table of tables) {\n for (const row of table.rows) {\n row.style.height = \"unset\";\n }\n }\n }\n}\n","import {\n Component,\n ElementRef,\n Inject,\n Input,\n OnChanges,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n} from \"@angular/core\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { MaskConfig, applyMask } from \"@seniorsistemas/ng2-currency-mask\";\nimport BigNumber from \"bignumber.js\";\nimport * as moment_ from \"moment\";\n\nimport { HostProjectConfigs, HostProjectConfigsInjectionToken } from \"../../../angular-components.module\";\nimport { LocaleService } from \"../../locale/locale.service\";\nimport { NumericService } from \"../../locale/services/numeric.service\";\nimport { IToken } from \"../../token-list\";\nimport { convertToMomentDateFormat } from \"../../utils/locale-utils\";\nimport { isNullOrUndefined } from \"../../utils/utils\";\nimport { Column, ColumnValues, EnumColumnFieldType, TableColumnLocaleOptions } from \"./models\";\n\nconst moment = moment_;\n\n@Component({\n templateUrl: \"./table-columns.component.html\",\n styleUrls: [\"./table-columns.component.scss\"],\n selector: \"s-table-columns\",\n})\nexport class TableColumnsComponent implements OnChanges {\n @ViewChild(\"columnsTemplate\", { static: true }) columnsTemplate: TemplateRef<any>;\n\n @Input()\n public columns!: Column[];\n\n @Input()\n public rowValue!: any;\n\n @Input()\n public locale: TableColumnLocaleOptions = {\n calendar: {\n ...this.localeService.getLocaleOptions().calendar,\n dateFormat: convertToMomentDateFormat(this.localeService.getLocaleOptions().calendar.dateFormat),\n },\n number: {\n ...this.localeService.getLocaleOptions().number,\n scale: 0,\n },\n };\n\n cellsData: CellData[] = [];\n\n formattedColumns: ColumnValues[] = [];\n\n @ViewChildren(\"column\") testeElements: QueryList<ElementRef>;\n\n constructor(\n private readonly localeService: LocaleService,\n private readonly viewContainerRef: ViewContainerRef,\n private readonly translate: TranslateService,\n private readonly numericService: NumericService,\n @Inject(HostProjectConfigsInjectionToken) private readonly hostProjectConfigs: HostProjectConfigs\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.validateComponentAttributes(changes);\n\n if (changes.columns && changes.columns.currentValue !== changes.columns.previousValue) {\n this.columns = this.sortColumnsBySequence(changes.columns.currentValue);\n }\n\n this.createColumnsTemplate(changes);\n }\n\n public isArray(value: any): boolean {\n return Array.isArray(value);\n }\n\n private getCellData(column: ColumnValues): CellData {\n const { columnValue, separator, uninformed } = column;\n\n if (typeof columnValue === \"string\") {\n const splittedString = columnValue.split(separator);\n\n return splittedString.map((string, index) => {\n const isLastIndex = splittedString.length - 1 === index;\n\n return {\n value: string,\n isUninformed: string === uninformed,\n separator: !isLastIndex ? separator : null,\n };\n });\n }\n\n return null;\n }\n\n private validateComponentAttributes(changes: SimpleChanges): void {\n if (!this.columns && !changes.columns?.currentValue) {\n throw new Error(\"The 'columns' attribute must be informed!\");\n }\n if (!this.rowValue && !changes.rowValue?.currentValue) {\n throw new Error(\"The 'rowValue' attribute must be informed!\");\n }\n }\n\n private createColumnsTemplate(changes: SimpleChanges): void {\n this.viewContainerRef.clear();\n\n const columns: Column[] = changes.columns?.currentValue || this.columns;\n const rowValue: object = changes.rowValue?.currentValue || this.rowValue;\n const locale: TableColumnLocaleOptions = changes.locale?.currentValue || this.locale;\n\n this.formattedColumns = columns.map((column) => this.getColumnValue(column, rowValue, locale));\n\n this.cellsData = this.formattedColumns.map((column) => this.getCellData(column));\n\n this.viewContainerRef.createEmbeddedView(this.columnsTemplate);\n }\n\n private getColumnSeparator(column: Column) {\n return column.separator ? column.separator : \" - \";\n }\n\n private getTranslationPrefix(column: Column) {\n return column.prefix ? column.prefix : `${this.hostProjectConfigs.domain}.${this.hostProjectConfigs.service}.`;\n }\n\n private isAttributeValueInvalid(attributeValue: any) {\n return (\n attributeValue === null ||\n attributeValue === undefined ||\n (attributeValue?.options?.numberFormatOptions && isNullOrUndefined(attributeValue?.value)) ||\n (this.isArray(attributeValue) && !attributeValue.length) ||\n (typeof attributeValue === \"string\" && attributeValue.trim() === \"\")\n );\n }\n\n private getFormattedColumnValue(\n column: Column,\n columnValue: any[],\n unifiedColumnValues: string,\n uninformedText: string,\n uninformedNumber: number\n ) {\n if (uninformedNumber === column.attributes.length) {\n return uninformedText;\n }\n\n if (column.type === EnumColumnFieldType.TOKENS) {\n return [].concat.apply(\n [],\n columnValue.filter((values) => values !== uninformedText)\n );\n }\n\n return unifiedColumnValues;\n }\n\n private getAttributeValue(attribute: string, rowValue: any) {\n let attributeValue!: any;\n\n attribute.split(\"/\").forEach((value: string) => {\n if (!attributeValue) {\n value.split(\".\").forEach((val: string, i) => {\n if (!rowValue) {\n return;\n }\n\n if (i === 0) {\n attributeValue = rowValue[val];\n } else {\n if (attributeValue) {\n attributeValue = attributeValue[val];\n }\n }\n });\n }\n });\n\n return attributeValue;\n }\n\n private getNumberConfigs(column: Column): MaskConfig {\n return {\n ...this.locale.number,\n scale: column.scale !== null && column.scale !== undefined ? this.getColumnScale(column.scale) : this.locale.number.scale,\n prefix: `${this.locale.number.currencySymbol} `,\n };\n }\n\n private getDateFormat(column: Column, locale: TableColumnLocaleOptions) {\n return column.dateFormat ? column.dateFormat : locale.calendar.dateFormat;\n }\n\n private getColumnValue(column: Column, rowValue: any, locale: TableColumnLocaleOptions): ColumnValues {\n const prefix = this.getTranslationPrefix(column);\n const separator = this.getColumnSeparator(column);\n const uninformed = this.translate.instant(prefix + \"empty_label\");\n const style = column.style;\n\n const columnValue = column.attributes.map((attribute: string) => {\n const attributeValue = this.getAttributeValue(attribute, rowValue);\n\n if (this.isAttributeValueInvalid(attributeValue)) {\n return uninformed;\n }\n\n const numberConfigs = this.getNumberConfigs(column);\n\n switch (column.type) {\n case EnumColumnFieldType.ENUM:\n return this.translate.instant(column.enumPrefix + attributeValue.toString().toLowerCase());\n\n case EnumColumnFieldType.CURRENCY: {\n const numberFormatOptions = attributeValue?.options?.numberFormatOptions\n ? attributeValue.options.numberFormatOptions\n : typeof column.numberFormatOptions === \"function\"\n ? column.numberFormatOptions({\n rowData: rowValue,\n })\n : column.numberFormatOptions;\n\n return numberFormatOptions\n ? this.numericService.instant(attributeValue, {\n numberFormatOptions,\n })\n : applyMask(attributeValue, numberConfigs, this.isNumber(attributeValue));\n }\n\n case EnumColumnFieldType.DATE:\n const dateFormat = this.getDateFormat(column, locale);\n return moment(attributeValue).format(dateFormat);\n\n case EnumColumnFieldType.BOOLEAN:\n const value = attributeValue ? \"yes\" : \"no\";\n return this.translate.instant(prefix + value);\n\n case EnumColumnFieldType.NUMBER: {\n numberConfigs.prefix = \"\";\n\n const numberFormatOptions = attributeValue?.options?.numberFormatOptions\n ? attributeValue.options.numberFormatOptions\n : typeof column.numberFormatOptions === \"function\"\n ? column.numberFormatOptions({\n rowData: rowValue,\n })\n : column.numberFormatOptions;\n\n return numberFormatOptions\n ? this.numericService.instant(attributeValue, {\n numberFormatOptions,\n })\n : applyMask(attributeValue, numberConfigs, this.isNumber(attributeValue));\n }\n case EnumColumnFieldType.TOKENS:\n return this.getTokens(attributeValue);\n\n default:\n return attributeValue;\n }\n });\n\n const unifiedColumnValues = columnValue.join(separator);\n const uninformedNumber = unifiedColumnValues.split(separator).filter((value) => value === uninformed).length;\n const formattedColumnValue = this.getFormattedColumnValue(column, columnValue, unifiedColumnValues, uninformed, uninformedNumber);\n\n return {\n style,\n columnValue: formattedColumnValue,\n separator,\n uninformed,\n badgeConfigs: column?.badgeConfigs?.find(\n (badgeConfig) => badgeConfig.enumValue === rowValue[column.attributes[0] ?? column.field]\n ),\n color: column.color?.(rowValue),\n type: column.type,\n tooltip: this.getColumnTooltip(column.tooltip),\n infoSign: this.getColumnInfoSign(column.infoSign),\n onLinkClick: column.onLinkClick,\n onColumnClick: column.onColumnClick,\n compact: column.compact,\n };\n }\n\n private getColumnScale(scale: number | ((rowValue: any) => number)): number {\n if (typeof scale === \"function\") {\n return scale(this.rowValue);\n }\n return scale;\n }\n\n private getColumnInfoSign(infoSign: string | ((rowValue: any) => string)): string {\n if (infoSign !== undefined && infoSign !== null) {\n if (typeof infoSign === \"function\") {\n return infoSign(this.rowValue);\n }\n return infoSign;\n }\n return null;\n }\n\n private getColumnTooltip(tooltip: string | ((rowValue: any) => string)): string {\n if (tooltip !== undefined && tooltip !== null) {\n if (typeof tooltip === \"function\") {\n return tooltip(this.rowValue);\n }\n return tooltip;\n }\n return \"\";\n }\n\n private isNumber(value: any): boolean {\n return !new BigNumber(value).isNaN();\n }\n\n private getTokens(values: any): IToken[] {\n if (!this.isArray(values)) {\n throw new Error(\"To use tokens an array must be informed\");\n }\n\n if (!this.isValidTokenArray(values)) {\n throw new Error(\"Not a valid token array. Must be a primitive values array or an objects with label attribute array\");\n }\n\n if (this.isLabelObjectArray(values)) {\n return values;\n }\n\n return values\n .filter((value: any) => value !== undefined && value !== null)\n .map((value: any) => {\n const label = typeof value === \"symbol\" ? value.toString() : `${value}`;\n return {\n label,\n };\n });\n }\n\n private isValidTokenArray(values: any[]): boolean {\n return this.isPrimitiveValuesArray(values) || this.isLabelObjectArray(values);\n }\n\n private isPrimitiveValuesArray(values: any[]): boolean {\n return values.filter((value) => value !== Object(value)).length === values.length;\n }\n\n private isLabelObjectArray(values: any[]): boolean {\n return values.filter((value) => value?.label !== null && value?.label !== undefined).length === values.length;\n }\n\n private sortColumnsBySequence(columns: Column[]): Column[] {\n return columns.sort((a, b) => a.sequence - b.sequence);\n }\n}\n\ntype CellData = { value: string; isUninformed: boolean; separator: string }[];\n","export enum ThumbnailSize {\n Small = \"small\",\n Medium = \"medium\",\n Large = \"large\",\n}\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\nimport { IToken } from \"./models/token\";\n\n@Component({\n selector: `s-token-list`,\n templateUrl: `./token-list.component.html`,\n styleUrls: [\"./token-list.component.scss\"],\n})\nexport class TokenListComponent {\n public static nextId = 0;\n\n @Input()\n id = `s-token-list-${TokenListComponent.nextId++}`;\n\n @Input()\n tokens: IToken[];\n\n @Input()\n removableTokens = false;\n\n @Input()\n hidePointerEvents = false;\n\n @Output()\n public tokenSelected: EventEmitter<IToken> = new EventEmitter();\n\n @Output()\n public tokenRemoved: EventEmitter<IToken> = new EventEmitter();\n\n public onTokenSelected(token: IToken): void {\n if (!token.disabled) {\n this.tokenSelected.next(token);\n }\n }\n\n public onTokenRemoved(token: IToken): void {\n if (!token.disabled) {\n this.tokenRemoved.next(token);\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TokenListComponent } from \"./token-list.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TokenListComponent],\n exports: [TokenListComponent],\n})\nexport class TokenListModule {}\n","import { Component, Inject, Input, OnChanges, Output, SimpleChanges } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { MenuItem } from \"primeng/api\";\nimport { Table } from \"primeng/table\";\nimport { Column } from \"../table-column/models/column.interface\";\n\nimport { HostProjectConfigs, HostProjectConfigsInjectionToken } from \"../../../angular-components.module\";\nimport { ExportUtils, isNullOrUndefined } from \"../../utils\";\nimport { CustomAction } from \"./models\";\nimport { LocaleService } from \"../../locale/locale.service\";\n\nimport BigNumber from \"bignumber.js\";\n\ntype RowValueFormatOption = {\n value?: number;\n options?: {\n numberFormatOptions?: Intl.NumberFormatOptions;\n };\n};\n\n@Component({\n templateUrl: \"./table-paging.component.html\",\n styleUrls: [\"./table-paging.component.scss\"],\n selector: \"s-table-paging\",\n})\nexport class TablePagingComponent implements OnChanges {\n @Input()\n public totalRecords!: number;\n\n @Input()\n public exportFileName?: string;\n\n @Input()\n public table!: Table;\n\n @Input()\n public exportable = true;\n\n @Input()\n public enableExportSelectedRecords = true;\n\n @Input()\n public customActions?: CustomAction[];\n\n @Input()\n public loadAllRecords?: () => Promise<any[]>;\n\n @Input()\n public loadCurrentPageRecords?: () => any[];\n\n @Input()\n public loadSelectedRecords?: () => any[];\n\n @Output()\n public totalRecordsText: string;\n\n constructor(\n private readonly translate: TranslateService,\n private readonly localeService: LocaleService,\n @Inject(HostProjectConfigsInjectionToken) private readonly hostProjectConfigs: HostProjectConfigs\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.totalRecords?.currentValue) {\n this.totalRecordsText = this.translate.instant(`${this.getTranslatePrefix()}total_records`, {\n value: changes.totalRecords.currentValue,\n });\n }\n }\n\n private getTranslatePrefix() {\n return `${this.hostProjectConfigs.domain}.${this.hostProjectConfigs.service}.`;\n }\n\n public getTooltipText() {\n return this.translate.instant(`${this.getTranslatePrefix()}export_to_csv`);\n }\n\n public getActions(): MenuItem[] {\n const actions: MenuItem[] = [\n {\n id: \"exportCurrentPage\",\n label: this.translate.instant(`${this.getTranslatePrefix()}export_current_page`),\n command: () => this.exportCurrentPage(),\n },\n ];\n\n if (this.enableExportSelectedRecords) {\n actions.push({\n id: \"exportSelected\",\n label: this.translate.instant(`${this.getTranslatePrefix()}export_selected_records`),\n command: () => this.exportSelectedRecords(),\n });\n }\n\n if (this.loadAllRecords) {\n actions.push({\n id: \"exportAll\",\n label: this.translate.instant(`${this.getTranslatePrefix()}export_all_records`),\n command: () => this.exportAllRecords(),\n });\n }\n\n if (this.customActions?.length) {\n const customMenus = this.customActions.map((p, index) => ({\n id: \"customAction_\" + index,\n label: p.label,\n command: p.command,\n }));\n actions.push(...customMenus);\n }\n\n return actions;\n }\n\n private validateComponent() {\n if (!this.table) {\n throw new Error(\"Table component not defined\");\n }\n }\n\n public getColumnsToExport() {\n return [...this.table.columns].map((column) => {\n const exportColumn = {\n ...column,\n header: column.header,\n exportable: true,\n field: column.field,\n separator: column.separator ?? \" - \",\n enumPrefix: column.enumPrefix,\n customExport: column.customExport,\n };\n\n if (column.exportable === false) {\n exportColumn.exportable = false;\n }\n\n if (column.attributes && column.attributes.length) {\n if (column.attributes.length === 1) {\n exportColumn.field = column.attributes[0];\n } else {\n exportColumn.field = column.attributes;\n }\n }\n\n return exportColumn;\n });\n }\n\n private getCurrentPageRowsToExport(columns: any[]) {\n let tableData = this.table.value;\n if (this.loadCurrentPageRecords) {\n tableData = this.loadCurrentPageRecords();\n }\n\n tableData = this.mapCustomExport(columns, tableData);\n\n tableData = this.mapNumberFormatOptionsExport(columns, tableData);\n\n return this.mapColumnsTranslations(columns, tableData);\n }\n\n private getSelectedRowsToExport(columns: any[]) {\n let tableData = this.table.selection;\n if (this.loadSelectedRecords) {\n tableData = this.loadSelectedRecords();\n }\n\n tableData = this.mapCustomExport(columns, tableData);\n\n tableData = this.mapNumberFormatOptionsExport(columns, tableData);\n\n return this.mapColumnsTranslations(columns, tableData);\n }\n\n private getPropertyValue(obj: any, path: string) {\n return path.split(\".\").reduce((result: any, prop: any) => (result[prop] === undefined ? undefined : result[prop]), obj);\n }\n\n private setPropertyValue(obj: any, path: string, value: any) {\n this.recursionSetValue(obj, path.split(\".\"), value);\n }\n\n private recursionSetValue(obj: any, keysList: string[], value: any): any {\n const key = keysList[0];\n if (keysList.length === 1) {\n obj[key] = value;\n return obj;\n }\n obj[key] = this.recursionSetValue(obj?.[key] || {}, keysList.slice(1), value);\n return obj;\n }\n\n public mapColumnsTranslations(columns: any[], rows: any[]) {\n const enumColumns = columns.filter((p) => p.enumPrefix);\n if (!enumColumns.length) {\n return rows;\n }\n\n return [...rows].map((row) => {\n const newRow = { ...row };\n enumColumns.forEach((column) => {\n const fields = !Array.isArray(column.field) ? [column.field] : column.field;\n fields.forEach((fieldName: string) => {\n const columnData = this.getPropertyValue(row, fieldName);\n if (columnData === null || columnData === undefined) {\n return;\n }\n\n const newValue = this.translateValue(column, columnData);\n this.setPropertyValue(newRow, fieldName, newValue);\n });\n });\n\n return newRow;\n });\n }\n\n /**\n * The purpose of this method is to map values\n * from the TableColumnsComponent, which uses the numberFormatOptions\n * field, along with rows that have a custom numberFormatOptions,\n * to ensure the correct values are exported by the TablePagingComponent.\n *\n * @returns Returns the correctly mapped tableData.\n */\n public mapNumberFormatOptionsExport(\n columns: Partial<Column>[],\n tableData: {\n [key: string]: RowValueFormatOption | number | string | null | undefined;\n }[]\n ) {\n const hasNumberFormatOptionsColumns = columns.some((column) => column.numberFormatOptions);\n const hasNumberFormatOptionsRows = tableData.some((rowData) =>\n Object.keys(rowData).some((key) => (rowData[key] as RowValueFormatOption)?.options?.numberFormatOptions)\n );\n\n if (!hasNumberFormatOptionsColumns && !hasNumberFormatOptionsRows) return tableData;\n\n if (hasNumberFormatOptionsColumns) {\n tableData = tableData.map((rowData) => {\n const columnsWithNumberFormatOptions = columns.filter((column) => column.numberFormatOptions);\n\n for (const column of columnsWithNumberFormatOptions) {\n const attributes = column.attributes;\n\n const numberFormatOptions =\n typeof column.numberFormatOptions === \"function\"\n ? column.numberFormatOptions({\n rowData,\n })\n : column.numberFormatOptions;\n\n for (const attribute of attributes) {\n if (isNullOrUndefined(rowData[attribute as string])) continue;\n\n if ((rowData[attribute as string] as RowValueFormatOption).options?.numberFormatOptions) {\n continue;\n }\n\n const value = rowData[attribute as string] as string | number;\n\n const mappedValue =\n numberFormatOptions.style === \"percent\" ? new BigNumber(value).times(100) : new BigNumber(value);\n\n const numberFormat = new Intl.NumberFormat(this.localeService.getLocaleOptions().locale, {\n ...numberFormatOptions,\n style: \"decimal\",\n useGrouping: false,\n roundingMode: \"trunc\",\n } as any);\n\n rowData[attribute as string] = numberFormat.format(mappedValue.toNumber());\n }\n }\n\n return rowData;\n });\n }\n\n if (hasNumberFormatOptionsRows) {\n tableData = tableData.map((rowData) => {\n const keysWithNumberFormatOptions = Object.keys(rowData).filter(\n (key) => (rowData[key] as RowValueFormatOption)?.options?.numberFormatOptions\n );\n\n for (const key of keysWithNumberFormatOptions) {\n const value = (rowData[key] as RowValueFormatOption).value;\n\n const numberFormatOptions = (rowData[key] as RowValueFormatOption).options.numberFormatOptions;\n\n const mappedValue = numberFormatOptions.style === \"percent\" ? new BigNumber(value).times(100) : new BigNumber(value);\n\n const numberFormat = new Intl.NumberFormat(this.localeService.getLocaleOptions().locale, {\n ...numberFormatOptions,\n style: \"decimal\",\n useGrouping: false,\n roundingMode: \"trunc\",\n } as any);\n\n (rowData[key] as string | number) = numberFormat.format(mappedValue.toNumber());\n }\n\n return rowData;\n });\n }\n\n return tableData;\n }\n\n public mapCustomExport(columns: any[], rows: any[]) {\n const customColumns = columns.filter((p) => p.customExport);\n if (!customColumns.length) {\n return rows;\n }\n\n return [...rows].map((row) => {\n const newRow = { ...row };\n customColumns.forEach((column) => {\n const fields = !Array.isArray(column.field) ? [column.field] : column.field;\n fields.forEach((fieldName: string) => {\n const columnData = this.getPropertyValue(row, fieldName);\n if (columnData === null || columnData === undefined) {\n return;\n }\n const newValue = column.customExport(columnData);\n this.setPropertyValue(newRow, fieldName, newValue);\n });\n });\n\n return newRow;\n });\n }\n\n private translateValue(column: any, columnData: any) {\n // Default usage: ENUM_VALUE -> domain.service.enum_value\n const enumValue = columnData.toString().toLowerCase();\n let translationKey = column.enumPrefix + enumValue;\n let translatedValue = this.translate.instant(translationKey);\n\n // Custom usage 1: V9 -> domain.service.v_9\n if (translationKey === translatedValue && enumValue.length > 1) {\n translationKey = `${column.enumPrefix}${enumValue.substring(0, 1)}_${enumValue.substr(1)}`;\n translatedValue = this.translate.instant(translationKey);\n }\n\n // Custom usage 2: EnumValue -> domain.service.enum_value\n if (translationKey === translatedValue) {\n const enumKey = this.convertToSnakeCase(columnData.toString());\n translationKey = `${column.enumPrefix}${enumKey}`;\n translatedValue = this.translate.instant(translationKey);\n }\n\n return translatedValue;\n }\n\n private convertToSnakeCase(str: string) {\n return str.replace(/([A-Z])/g, (match, group) => `_${group.toLowerCase()}`).replace(/^_/, \"\");\n }\n\n private getExportFileName() {\n const lang = this.translate.currentLang ?? \"pt-BR\";\n const date = new Date();\n\n const fileName = this.exportFileName ?? \"download\";\n const formattedDate = date.toLocaleDateString(lang).replace(\"_\", \"-\");\n const formattedTime = date.toLocaleTimeString(lang).replace(\" \", \"-\");\n\n return `${fileName}_${formattedDate}_${formattedTime}`;\n }\n\n public exportCurrentPage() {\n this.validateComponent();\n const columns = this.getColumnsToExport();\n const dataToExport = this.getCurrentPageRowsToExport(columns);\n ExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());\n }\n\n public exportSelectedRecords() {\n this.validateComponent();\n const columns = this.getColumnsToExport();\n const dataToExport = this.getSelectedRowsToExport(columns);\n ExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());\n }\n\n public async exportAllRecords() {\n this.validateComponent();\n\n let serverData = await this.loadAllRecords();\n\n const columns = this.getColumnsToExport();\n\n serverData = this.mapCustomExport(columns, serverData);\n\n serverData = this.mapNumberFormatOptionsExport(columns, serverData);\n\n const dataToExport = this.mapColumnsTranslations(columns, serverData);\n\n ExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { NavigationDirective } from \"./navigation/navigation.directive\";\nimport { RowTogllerDirective } from \"./row-toggler/row-toggler.directive\";\nimport { TableFrozenPositionDirective } from \"./frozen-position/frozen-position.directive\";\nimport { TableColumnsComponent } from \"./table-column/table-columns.component\";\nimport { TokenListModule } from \"../token-list/token-list.module\";\nimport { TablePagingComponent } from \"./table-paging/table-paging.component\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { ButtonModule } from \"../button/button.module\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\nimport { InfoSignModule } from \"../info-sign/info-sign.module\";\nimport { BadgeModule } from \"../badge/badge.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n TooltipModule,\n TokenListModule,\n TranslateModule,\n ButtonModule,\n InfoSignModule,\n BadgeModule\n ],\n exports: [\n RowTogllerDirective,\n NavigationDirective,\n TableColumnsComponent,\n TableFrozenPositionDirective,\n TablePagingComponent\n ],\n declarations: [\n RowTogllerDirective,\n NavigationDirective,\n TableColumnsComponent,\n TableFrozenPositionDirective,\n TablePagingComponent\n ],\n})\nexport class TableModule {}\n","import { ChangeDetectorRef, Component, ElementRef, Input, ViewChild } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { AutocompleteField } from \"../../../configurations/fields/autocomplete-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"autocomplete-field.component.html\",\n})\nexport class AutocompleteFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: AutocompleteField;\n @Input()\n public formControl: FormControl;\n\n public inputRef: ElementRef;\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly elementRef: ElementRef\n ) {}\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n private setInputRef(): void {\n this.inputRef = this.elementRef.nativeElement.querySelector('input');\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { BooleanField } from \"../../../configurations/fields/boolean-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"boolean-field.component.html\",\n})\nexport class BooleanFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: BooleanField;\n @Input()\n public formControl: FormControl;\n\n public onClear(): void {\n this.formControl.reset();\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { BooleanSwitchField } from \"../../../configurations/fields/boolean-switch-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"boolean-switch-field.component.html\",\n})\nexport class BooleanSwitchFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: BooleanSwitchField;\n @Input()\n public formControl: FormControl;\n}\n","import { ChangeDetectorRef, Component, ElementRef, Input, ViewChild } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\n\nimport { CalendarField } from \"../../../configurations/fields/calendar-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"calendar-field.component.html\",\n})\nexport class CalendarFieldComponent implements BaseFieldComponentConfig {\n\n constructor(\n private readonly translateService: TranslateService,\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly elementRef: ElementRef\n ) {}\n\n @Input()\n public field: CalendarField;\n\n @Input()\n public formControl: FormControl;\n\n @Input()\n public showTime: boolean;\n\n @Input()\n public timeOnly: boolean;\n\n @ViewChild('calendar') calendar: ElementRef;\n \n public inputRef: ElementRef;\n\n public locale = {\n firstDayOfWeek: 0,\n dayNames: [\n this.translateService.instant(\"platform.angular_components.sunday\"),\n this.translateService.instant(\"platform.angular_components.monday\"),\n this.translateService.instant(\"platform.angular_components.tuesday\"),\n this.translateService.instant(\"platform.angular_components.wednesday\"),\n this.translateService.instant(\"platform.angular_components.thursday\"),\n this.translateService.instant(\"platform.angular_components.friday\"),\n this.translateService.instant(\"platform.angular_components.saturday\"),\n ],\n dayNamesShort: [\n this.translateService.instant(\"platform.angular_components.sunday_short\"),\n this.translateService.instant(\"platform.angular_components.monday_short\"),\n this.translateService.instant(\"platform.angular_components.tuesday_short\"),\n this.translateService.instant(\"platform.angular_components.wednesday_short\"),\n this.translateService.instant(\"platform.angular_components.thursday_short\"),\n this.translateService.instant(\"platform.angular_components.friday_short\"),\n this.translateService.instant(\"platform.angular_components.saturday_short\"),\n ],\n dayNamesMin: [\n this.translateService.instant(\"platform.angular_components.sunday_min\"),\n this.translateService.instant(\"platform.angular_components.monday_min\"),\n this.translateService.instant(\"platform.angular_components.tuesday_min\"),\n this.translateService.instant(\"platform.angular_components.wednesday_min\"),\n this.translateService.instant(\"platform.angular_components.thursday_min\"),\n this.translateService.instant(\"platform.angular_components.friday_min\"),\n this.translateService.instant(\"platform.angular_components.saturday_min\"),\n ],\n monthNames: [\n this.translateService.instant(\"platform.angular_components.january\"),\n this.translateService.instant(\"platform.angular_components.february\"),\n this.translateService.instant(\"platform.angular_components.march\"),\n this.translateService.instant(\"platform.angular_components.april\"),\n this.translateService.instant(\"platform.angular_components.may\"),\n this.translateService.instant(\"platform.angular_components.june\"),\n this.translateService.instant(\"platform.angular_components.july\"),\n this.translateService.instant(\"platform.angular_components.august\"),\n this.translateService.instant(\"platform.angular_components.september\"),\n this.translateService.instant(\"platform.angular_components.october\"),\n this.translateService.instant(\"platform.angular_components.november\"),\n this.translateService.instant(\"platform.angular_components.december\"),\n ],\n monthNamesShort: [\n this.translateService.instant(\"platform.angular_components.january_short\"),\n this.translateService.instant(\"platform.angular_components.february_short\"),\n this.translateService.instant(\"platform.angular_components.march_short\"),\n this.translateService.instant(\"platform.angular_components.april_short\"),\n this.translateService.instant(\"platform.angular_components.may_short\"),\n this.translateService.instant(\"platform.angular_components.june_short\"),\n this.translateService.instant(\"platform.angular_components.july_short\"),\n this.translateService.instant(\"platform.angular_components.august_short\"),\n this.translateService.instant(\"platform.angular_components.september_short\"),\n this.translateService.instant(\"platform.angular_components.october_short\"),\n this.translateService.instant(\"platform.angular_components.november_short\"),\n this.translateService.instant(\"platform.angular_components.december_short\"),\n ],\n today: this.translateService.instant(\"platform.angular_components.today\"),\n clear: this.translateService.instant(\"platform.angular_components.clear\"),\n dateFormat: this.translateService.instant(\"platform.angular_components.date_format\"),\n hourFormat: this.translateService.instant(\"platform.angular_components.hour_format\"),\n }\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n private setInputRef(): void {\n this.inputRef = this.elementRef.nativeElement.querySelector('input');\n }\n}\n","import { ChangeDetectorRef, Component, ElementRef, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { Clipboard } from \"@angular/cdk/clipboard\";\n\nimport { ChipsField } from \"../../../configurations/fields/index\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"./chips-field.component.html\",\n styleUrls: [\"./chips-field.component.scss\"],\n})\nexport class ChipsFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: ChipsField;\n\n @Input()\n public formControl: FormControl;\n\n public feedbackMessageVisible = false;\n public copyButtonVisible = true;\n public inputRef: ElementRef;\n\n constructor(private readonly clipboard: Clipboard,\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly elementRef: ElementRef\n ) { }\n\n public onCopyFieldContent(): void {\n if (this.formControl.value) {\n this.copyButtonVisible = false;\n this.feedbackMessageVisible = true;\n\n setTimeout(() => {\n this.feedbackMessageVisible = false;\n this.copyButtonVisible = true;\n }, 3000);\n\n const content = this.formControl.value.join(this.field.separator || \"\\n\");\n\n this.clipboard.copy(content);\n\n if (this.field.onCopy) {\n this.field.onCopy(content);\n }\n }\n }\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n private setInputRef(): void {\n this.inputRef = this.elementRef.nativeElement.querySelector('input');\n }\n}\n","import { ChangeDetectorRef, Component, ElementRef, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\nimport { CountryPhonePickerField } from \"../../../configurations/fields/country-phone-picker-field\";\n\n@Component({\n templateUrl: \"./country-phone-picker-field.component.html\",\n})\nexport class CountryPhonePickerFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: CountryPhonePickerField;\n\n @Input()\n public formControl: FormControl;\n\n public inputRef: ElementRef;\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly elementRef: ElementRef\n ) {}\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n private setInputRef(): void {\n this.inputRef = this.elementRef.nativeElement.querySelector('input');\n }\n}","import { ChangeDetectorRef, Component, ElementRef, HostListener, Input, Renderer2 } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { BlobField } from \"../../../configurations/fields/blob-field\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\nimport { fromEvent } from \"rxjs\";\nimport { filter, take } from \"rxjs/operators\";\n\n@Component({\n templateUrl: \"file-upload.component.html\",\n})\nexport class FileUploadComponent extends BaseFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: BlobField;\n @Input()\n public formControl: FormControl;\n\n public inputRef: HTMLInputElement;\n \n constructor(private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly elementRef: ElementRef\n ) {\n super();\n }\n\n @HostListener('click')\n public onClick(): void {\n this.dispatchFocusInputRef();\n this.addEventOnBlur();\n }\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n private addEventOnBlur(): void {\n fromEvent(document, 'click')\n .pipe(\n filter((event: MouseEvent) => !this.elementRef.nativeElement.contains(event.target)),\n take(1)\n )\n .subscribe(() => this.inputRef.dispatchEvent(new Event('blur')));\n }\n\n private setInputRef(): void {\n this.inputRef = this.elementRef.nativeElement.querySelector('input') as HTMLInputElement;\n }\n\n private dispatchFocusInputRef(): void {\n this.inputRef.dispatchEvent(new Event('focus'));\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { LookupField } from \"../../../configurations/fields/lookup-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"lookup-field.component.html\",\n})\nexport class LookupFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: LookupField;\n @Input()\n public formControl: FormControl;\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { RadioButtonField } from \"../../../configurations/fields/radio-button-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"radion-button-field.component.html\",\n styles: [`\n s-button.horizontal-clear-option button {\n width: min-content !important;\n }\n\n .horizontal-radio-buttons-container {\n gap: 20px 40px;\n .radio-button-item {\n margin: 0;\n }\n }\n `],\n encapsulation: ViewEncapsulation.None,\n})\nexport class RadioButtonComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n @Input()\n public field: RadioButtonField;\n @Input()\n public formControl: FormControl;\n\n @Output()\n public onClick: EventEmitter<any> = new EventEmitter();\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n private ngUnsubscribe = new Subject();\n\n constructor() { }\n\n public ngOnInit() {\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onFocus) this.field.onFocus(event);\n });\n this.onClick.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onClick) this.field.onClick(event);\n });\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public onClear(): void {\n this.formControl.reset();\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { SelectField } from \"../../../configurations/fields/select-field\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"select-field.component.html\",\n})\nexport class SelectFieldComponent extends BaseFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: SelectField;\n @Input()\n public formControl: FormControl;\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\nimport { FieldType } from \"../../../configurations/field-type\";\nimport { SliderField } from \"../../../configurations/fields/slider-field\";\n\n@Component({\n templateUrl: \"slider-field.component.html\",\n styleUrls: [\"./slider-field.component.scss\"]\n})\nexport class SliderFieldComponent extends BaseFieldComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n @Input()\n public field: SliderField;\n @Input()\n public formControl: FormControl;\n\n @Output()\n public onChange: EventEmitter<any> = new EventEmitter();\n @Output()\n public onSlideEnd: EventEmitter<any> = new EventEmitter();\n\n private ngUnsubscribe = new Subject();\n\n public ngOnInit() {\n const defaultValue = this.field?.range ? [this.field.min, this.field.max] : this.field.min;\n if (!this.isValid(this.formControl.value)) {\n this.formControl.setValue(this.field.defaultValue ?? defaultValue);\n }\n this.subscribeToFormControlEvents();\n }\n\n private subscribeToFormControlEvents() {\n this.onChange.pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: FocusEvent) => {\n if (this.field.onChange) {\n this.field.onChange(event);\n }\n });\n\n this.onSlideEnd.pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: any) => {\n if (this.field.onSlideEnd) {\n this.field.onSlideEnd(event);\n }\n });\n }\n\n private isValid(value: any): boolean {\n if (this.field?.range) {\n return Array.isArray(value) && this.isValidRange(value);\n } else {\n return Number.isInteger(value) && this.isValidNoRange(value);\n }\n }\n\n private isValidRange(value: any[]): boolean {\n const [startValue, endValue] = value;\n return startValue >= this.field?.min && startValue <= this.field?.max &&\n endValue >= this.field?.min && endValue <= this.field?.max;\n }\n\n private isValidNoRange(value: number): boolean {\n return value >= this.field.min && value <= this.field.max;\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public get fieldType() {\n return FieldType;\n }\n\n private getRangeLabel(): string {\n let [value0, value1] = this.formControl.value ?? [0, 0];\n const prefix = this.field.prefix ?? '';\n const suffix = this.field.suffix ?? '';\n const separator = this.field.rangeSeparator ?? ' - ';\n\n if (!value0 || value0 < this.field.min) {\n value0 = this.field.min;\n }\n\n if (!value1 || value1 > this.field.max) {\n value1 = this.field.max;\n }\n\n return `${prefix}${value0}${suffix}${separator}${prefix}${value1}${suffix}`;\n }\n\n private getNonRangeLabel(): string {\n let value = this.formControl?.value;\n const prefix = this.field.prefix ?? '';\n const suffix = this.field.suffix ?? '';\n\n if (!value || value < this.field.min) {\n value = this.field.min;\n }\n\n if (value > this.field.max) {\n value = this.field.max;\n }\n\n return `${prefix}${value}${suffix}`;\n }\n\n public get label() {\n return this.field.range ? this.getRangeLabel() : this.getNonRangeLabel();\n }\n\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { LocaleService } from '../locale/locale.service';\nimport { ToastService } from '../toast/toast.service';\nimport { TranslateService } from '@ngx-translate/core';\n\nexport type MicrophoneStatus = 'active' | 'inactive';\nexport interface SpeechResult {\n text: string;\n isFinal: boolean;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SpeechRecognitionService {\n hasSupportSpeechRecognition = false;\n isListening = false;\n readonly microphoneStatus$ = new Subject<MicrophoneStatus>();\n private recognition!: SpeechRecognition;\n private readonly TIMEOUT_NO_MESSAGE = 3000;\n\n constructor(\n private readonly localeService: LocaleService,\n private readonly ngZone: NgZone,\n private readonly toastService: ToastService,\n private translateService: TranslateService,\n ) {\n this.setRecognition();\n }\n\n listen() {\n const speechSubject = new Subject<SpeechResult>();\n if (this.isListening) {\n speechSubject.error('Already listening');\n }\n this.hasMicrophoneAccess.then((hasAccess) => {\n if (!hasAccess) {\n this.toastService.show({ severity: 'error', text: this.translateService.instant('platform.angular_components.no_microphone_permission') });\n speechSubject.error('Microphone access is disabled');\n return;\n }\n this.microphoneStatus$.next('active');\n\n this.isListening = true;\n this.recognition.continuous = true;\n this.recognition.interimResults = true;\n this.recognition.maxAlternatives = 1;\n let silenceTimer: any;\n const restartSilenceTimer = () => {\n if (silenceTimer !== undefined) {\n clearTimeout(silenceTimer);\n }\n\n silenceTimer = setTimeout(() => {\n this.recognition.stop();\n }, this.TIMEOUT_NO_MESSAGE);\n };\n let fullTranscript = '';\n let interimTranscript = '';\n\n this.recognition.onresult = (event: SpeechRecognitionEvent) => {\n this.ngZone.run(() => {\n restartSilenceTimer();\n let interimTranscript = '';\n for (let i = event.resultIndex; i < event.results.length; ++i) {\n const transcript = event.results[i][0].transcript;\n if (event.results[i].isFinal) {\n fullTranscript += transcript + '\\n';\n } else {\n interimTranscript += transcript;\n }\n }\n interimTranscript = interimTranscript;\n speechSubject.next({ text: fullTranscript + interimTranscript, isFinal: false });\n })\n };\n this.recognition.onerror = () => {\n this.ngZone.run(() => {\n if (silenceTimer !== undefined) {\n clearTimeout(silenceTimer);\n }\n this.isListening = false;\n speechSubject.error('Speech recognition error');\n this.microphoneStatus$.next('inactive')\n })\n };\n\n this.recognition.onend = () => {\n this.ngZone.run(() => {\n if (silenceTimer !== undefined) {\n clearTimeout(silenceTimer);\n }\n speechSubject.next({ text: fullTranscript + interimTranscript, isFinal: true });\n this.isListening = false;\n speechSubject.complete();\n this.microphoneStatus$.next('inactive')\n })\n };\n this.recognition.start();\n })\n return speechSubject;\n }\n\n\n stop() {\n this.recognition.stop();\n }\n\n private setRecognition() {\n const SpeechRecognitionConstructor =\n (window as any).SpeechRecognition || (window as any).webkitSpeechRecognition;\n\n if (!SpeechRecognitionConstructor) {\n console.warn('Speech recognition is not supported in this browser.');\n return;\n }\n this.hasSupportSpeechRecognition = true;\n this.recognition = new SpeechRecognitionConstructor();\n this.recognition.lang = this.localeService.getLocaleOptions()?.locale || 'pt-BR';\n this.recognition.interimResults = false;\n this.recognition.maxAlternatives = 1;\n this.localeService.getLocale().subscribe(locale => this.recognition.lang = locale);\n }\n\n private get hasMicrophoneAccess() {\n return new Promise(async (resolve) => {\n const permission = await navigator.permissions.query({ name: 'microphone' });\n if (permission.state === 'denied') {\n resolve(false);\n } else if (permission.state === 'granted') {\n resolve(true)\n } else if (permission.state === 'prompt') {\n try {\n navigator.mediaDevices.getUserMedia({ audio: true }).then((stream) => {\n stream.getTracks().forEach(t => t.stop());\n }).catch(() => {\n resolve(false);\n });\n permission.onchange = () => {\n this.ngZone.run(() => {\n resolve(permission.state === 'granted' ? true : false);\n })\n }\n } catch (error) {\n resolve(false);\n }\n }\n })\n }\n}\n","import { Component, Input, OnInit } from \"@angular/core\";\nimport { FormBuilder, FormControl, FormGroup } from \"@angular/forms\";\n\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\nimport { FieldType } from \"../../../configurations/field-type\";\nimport { TextAreaIAField } from \"../../../configurations/fields/text-area-ia-field\";\nimport { FormField } from \"../../../configurations/form-field\";\nimport { IAssistService } from \"../../../services/IAssist/iassist.service\";\nimport { IAssistResponse } from \"../../../services/IAssist/models/iassist-response\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\nimport { TextAreaFieldConfig } from \"../../../configurations/fields/text-area-field\";\nimport { SpeechRecognitionService } from \"../../../../speech-recognition/speech-recognition.service\"\n\n@Component({\n templateUrl: \"./text-area-ia-field.component.html\",\n styleUrls: [\"./text-area-ia-field.component.scss\"],\n})\nexport class TextAreaIAFieldComponent implements BaseFieldComponentConfig, OnInit {\n @Input()\n public field: TextAreaIAField;\n\n @Input()\n public formControl: FormControl;\n\n public fields: FormField[];\n public formGroup: FormGroup;\n public isVisible = false;\n public isLoading = false;\n\n constructor(\n private readonly _iassistService: IAssistService,\n private readonly _formBuilder: FormBuilder,\n private readonly _translateService: TranslateService,\n public speechRecognitionService: SpeechRecognitionService\n ) { }\n\n public ngOnInit(): void {\n this._createDialogFields();\n this._createDialogFormGroup();\n }\n\n public showDialog(): void {\n this.isVisible = true;\n }\n\n public onHideDialog(): void {\n this.formGroup.get(\"context\").setValue(\"\");\n }\n\n public hideDialog(): void {\n this.isVisible = false;\n }\n\n public submitContext(): void {\n const context = this.formGroup.get(\"context\");\n this.isLoading = true;\n\n this._iassistService\n .askIA(\n context.value,\n {\n id: this.field.id,\n label: this.field.label,\n placeholder: this.field.placeholder,\n prompt: this.field.prompt,\n },\n )\n .pipe(\n catchError((err: HttpErrorResponse) => {\n this.isLoading = false;\n return throwError(err);\n })\n )\n .subscribe((res: IAssistResponse) => {\n this.formControl.setValue(res.text);\n this.isLoading = false;\n });\n\n this.hideDialog();\n }\n\n private _createDialogFields(): void {\n this.fields = [\n new FormField({\n name: \"context\",\n type: FieldType.Text,\n label: this._translateService.instant(\"platform.angular_components.context\"),\n size: { sm: 12, md: 12, lg: 12, xl: 12 },\n speechRecognition: this.field.speechRecognition ?? false,\n keepContext: this.field.keepContext ?? false,\n maxLength: this.field.maxLength,\n } as TextAreaFieldConfig),\n ];\n }\n\n private _createDialogFormGroup(): void {\n this.formGroup = this._formBuilder.group({\n context: [\"\"],\n });\n }\n}\n","import { ChangeDetectorRef, Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { TextAreaField } from \"../../../configurations/fields/text-area-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"text-area-field.component.html\",\n})\nexport class TextAreaFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: TextAreaField;\n @Input()\n public formControl: FormControl;\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) { }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { Fieldset } from \"../../../configurations/structure/fieldset\";\nimport { BaseStructureComponentConfig } from \"../base-structure-component\";\n\n@Component({\n template: `\n <s-fieldset [toggleable]=\"true\" (beforeToggle)=\"config.beforeToggle ? config.beforeToggle($event) : 'null'\"\n (afterToggle)=\"config.afterToggle ? config.afterToggle($event) : 'null'\">\n <s-header>{{config.header}}</s-header>\n <ng-container *ngFor=\"let conf of config.configs\">\n <ng-container *sDynamicForm=\"{ id: id, config: conf, group: group, errorMessages: errorMessages }\"></ng-container>\n </ng-container>\n </s-fieldset>\n `,\n})\nexport class FieldsetComponent implements BaseStructureComponentConfig {\n @Input()\n public id: string;\n @Input()\n public config: Fieldset;\n @Input()\n public group: FormGroup;\n @Input()\n public errorMessages: any;\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { FormField } from \"../../../configurations/form-field\";\nimport { Grid } from \"../../../configurations/grid/grid\";\nimport { Section } from \"../../../configurations/structure/section\";\nimport { BaseStructureComponentConfig } from \"../base-structure-component\";\n\n@Component({\n selector: 's-section',\n template: `\n <h3 *ngIf=\"config?.header\" class=\"sds-section-title\">{{config.header}}</h3>\n <section [class.flex-container]=\"flexContainer\" [style.justify-content]=\"config.justifyContent\" [style.align-items]=\"config.alignItems\">\n <ng-container *ngFor=\"let conf of configs\">\n <ng-container *sDynamicForm=\"{ id: id, config: conf, group: group, errorMessages: errorMessages }\"></ng-container>\n </ng-container>\n </section>\n `,\n styles: [`\n .flex-container {\n display: flex\n }\n\n :host {\n height: 100%\n }\n\n section {\n height: 100%;\n }\n `],\n})\nexport class SectionComponent implements BaseStructureComponentConfig {\n @Input()\n public id: string;\n @Input()\n public config: Section;\n @Input()\n public group: FormGroup;\n @Input()\n public errorMessages: any;\n\n get flexContainer() {\n return this.config.isFlex;\n }\n\n get configs() {\n const _configs: any[] = this.config?.configs || [];\n return _configs.filter((x: any) => x.visible === undefined || x.visible());\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { FieldType } from \"../../../configurations/field-type\";\nimport { Row } from \"../../../configurations/grid/row\";\n\n@Component({\n selector: 's-row',\n template: `\n <div class=\"ui-fluid\" [formGroup]=\"group\">\n <div class=\"ui-g\">\n <ng-container *ngFor=\"let field of config.fields\">\n <div [ngClass]=\"field.gridClass\" *ngIf=\"field.visible()\">\n <ng-container *ngIf=\"field.type === FieldType.Custom && field.label\" >\n <label *sInfoSign=\"field.infoSign; displayTime: field.displayTimeInfoSign; useFocusedInputRef: field.useInfoSignFocusedInputRef\" [for]=\"field.name\" [ngClass]=\"{ required: field.required() }\" >\n {{ field.label }}\n </label>\n </ng-container>\n\n <ng-container *sDynamicForm=\"{ id: id, config: field, group: group}\"></ng-container>\n\n <s-control-errors [form]=\"group\" [control]=\"group.controls[field.name]\"\n [errorMessages]=\"getErrorMessages(field.errorMessages)\"></s-control-errors>\n\n <ng-container *ngIf=\"field.footer\">\n <ng-container *ngIf=\"field.footer.help\">\n <span *ngIf=\"field.footer.help.visible({ abstractControl: group.controls[field.name], formField: field })\" style=\"color: #888B99\">{{ field.footer.help.text }}</span>\n </ng-container>\n\n <ng-container *ngIf=\"field.footer.link\">\n <div\n *ngIf=\"field.footer.link.visible({ abstractControl: group.controls[field.name], formField: field })\"\n class=\"ui-g\"\n style=\"margin-left: -17px\"\n >\n <s-button\n [label]=\"field.footer.link.label\"\n priority=\"link\"\n (onClick)=\"field.footer.link.onClick({ abstractControl: group.controls[field.name], formField: field })\"\n [auxiliary]=\"true\"\n ></s-button>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template *ngIf=\"field?.bottomTemplate\" [ngTemplateOutlet]=\"field.bottomTemplate\"></ng-template>\n </div>\n </ng-container>\n </div>\n `,\n})\nexport class RowComponent {\n @Input()\n public id: string;\n @Input()\n public config: Row;\n @Input()\n public group: FormGroup;\n @Input()\n public errorMessages: any;\n\n FieldType = FieldType;\n\n public getErrorMessages(errorMessages: any) {\n if (errorMessages) return this.isFunction(errorMessages) ? errorMessages() : errorMessages;\n return this.errorMessages;\n }\n\n public isFunction(value: any): boolean {\n return value instanceof Function;\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { FormField } from \"../../configurations/form-field\";\nimport { FieldType } from \"../../configurations/field-type\";\n\n@Component({\n selector: \"s-dynamic-field\",\n templateUrl: \"./dynamic-field.component.html\",\n})\nexport class DynamicFieldComponent {\n @Input()\n public id: string;\n\n @Input()\n public fields: FormField[];\n\n @Input()\n public form: FormGroup;\n\n @Input()\n public errorMessages?: any;\n\n FieldType = FieldType;\n\n public getErrorMessages(errorMessages: any) {\n if (errorMessages)\n return this.isFunction(errorMessages)\n ? { ...this.errorMessages, ...errorMessages() }\n : { ...this.errorMessages, ...errorMessages };\n return this.errorMessages;\n }\n\n public isFunction(value: any): boolean {\n return value instanceof Function;\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { Subject } from \"rxjs\";\nimport { first, takeUntil } from \"rxjs/operators\";\n\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\nimport { FieldType } from \"../../../configurations/field-type\";\nimport { BignumberField } from \"../../../configurations/fields/bignumber-field\";\nimport { LocaleService } from \"../../../../locale/locale.service\";\nimport { isNullOrUndefined } from \"../../../../utils/utils\";\n\n@Component({\n templateUrl: \"bignumber-field.component.html\",\n styleUrls: [\"./bignumber-field.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class BignumberFieldComponent extends BaseFieldComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n @Input()\n public field: BignumberField;\n @Input()\n public formControl: FormControl;\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n @ViewChild(\"inputRef\") inputRef: ElementRef;\n\n private ngUnsubscribe = new Subject();\n\n constructor(\n private readonly localeService: LocaleService,\n private readonly changeDetectorRef: ChangeDetectorRef\n ) {\n super();\n }\n\n public ngOnInit() {\n this.onLocaleService();\n\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onFocus) {\n this.field.onFocus(event);\n }\n });\n\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onInput) {\n this.field.onInput(event);\n }\n });\n\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onComplete) {\n this.field.onComplete(event);\n }\n });\n\n this.onScale();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public get fieldType() {\n return FieldType;\n }\n\n private onLocaleService(): void {\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe({\n next: () => {\n if (!this.field.numberLocaleOptions?.decimalSeparator) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n decimalSeparator: this.localeService.getDecimalSeparator(),\n };\n }\n\n if (!this.field.numberLocaleOptions?.thousandsSeparator) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n thousandsSeparator: this.localeService.getGroupingSeparator(),\n };\n }\n\n if (!this.field.numberLocaleOptions?.currencySymbol) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n currencySymbol: this.field.type === FieldType.Integer || this.field.type === FieldType.Double ? \"\" : \"R$\",\n };\n }\n },\n error: () =>\n (this.field.numberLocaleOptions = this.field.numberLocaleOptions ?? {\n thousandsSeparator: \".\",\n decimalSeparator: \",\",\n currencySymbol: this.field.type === FieldType.Integer || this.field.type === FieldType.Double ? \"\" : \"R$\",\n }),\n });\n }\n\n private onScale(): void {\n // Currently, this component is used for the following types\n // FieldType.Number, FieldType.Integer and FieldType.Double\n if (isNullOrUndefined(this.field.scale)) {\n this.field.scale = this.field.type === FieldType.Integer ? 0 : 2;\n }\n }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n}\n","import { ChangeDetectorRef, Component, ElementRef, Input, OnInit, ViewChild } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { first } from \"rxjs/operators\";\nimport { LocaleService } from \"../../../../locale/locale.service\";\nimport { CurrencyField } from \"../../../configurations/fields/currency-field\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\nimport { CurrencyService } from \"../../../../../utils/currency/currency.service\";\n\n/**\n * @deprecated Should use bignumber instead\n */\n@Component({\n templateUrl: \"currency-field.component.html\",\n})\nexport class CurrencyFieldComponent extends BaseFieldComponent implements BaseFieldComponentConfig, OnInit {\n @Input()\n public field: CurrencyField;\n @Input()\n public formControl: FormControl;\n\n @ViewChild(\"inputRef\") inputRef: ElementRef;\n\n constructor(\n readonly currencyService: CurrencyService,\n private readonly localeService: LocaleService,\n private readonly changeDetectorRef: ChangeDetectorRef\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.onLocaleService();\n }\n\n private onLocaleService(): void {\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe({\n next: () => {\n if (!this.field.numberLocaleOptions?.decimalSeparator) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n decimalSeparator: this.localeService.getDecimalSeparator(),\n };\n }\n\n if (!this.field.numberLocaleOptions?.thousandsSeparator) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n thousandsSeparator: this.localeService.getGroupingSeparator(),\n };\n }\n\n if (!this.field.numberLocaleOptions?.currencySymbol) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n currencySymbol: \"R$\",\n };\n }\n },\n error: () =>\n (this.field.numberLocaleOptions = this.field.numberLocaleOptions ?? {\n thousandsSeparator: \".\",\n decimalSeparator: \",\",\n currencySymbol: \"R$\",\n }),\n });\n }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n}\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild, ViewEncapsulation } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\"\n\nimport { PasswordField } from \"../../../configurations/fields/password-field\";\n\n@Component({\n templateUrl: \"./password-field.component.html\",\n styleUrls: [\"./password-field.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class PasswordFieldComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input()\n public field: PasswordField;\n\n @Input()\n public formControl: FormControl;\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('inputRef') inputRef: ElementRef;\n\n private ngUnsubscribe = new Subject();\n public passwordVisible = false;\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) {}\n\n public ngOnInit(): void {\n this.onFocus\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: FocusEvent) => {\n if (this.field.onFocus) {\n this.field.onFocus(event);\n }\n });\n this.onInput\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: InputEvent) => {\n if (this.field.onInput) {\n this.field.onInput(event);\n }\n });\n this.onComplete\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: any) => {\n if (this.field.onComplete) {\n this.field.onComplete(event);\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public onChangeVisible(): void {\n this.passwordVisible = !this.passwordVisible;\n }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n}","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild, ViewEncapsulation } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { TextField } from \"../../../configurations/fields/text-field\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\nimport { InputMask } from \"primeng/inputmask\";\n\n@Component({\n templateUrl: \"text-field.component.html\",\n styleUrls: [\"./text-field.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TextFieldComponent extends BaseFieldComponent implements OnInit, AfterViewInit, OnDestroy, BaseFieldComponentConfig {\n @Input()\n public field: TextField;\n @Input()\n public formControl: FormControl;\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('inputRef') inputRef: ElementRef | InputMask;\n\n private ngUnsubscribe = new Subject();\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) {\n super();\n }\n\n public ngOnInit() {\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onFocus) this.field.onFocus(event);\n });\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onInput) this.field.onInput(event);\n });\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onComplete) this.field.onComplete(event);\n });\n }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n get inputElement() {\n if (this.inputRef instanceof InputMask) {\n return this.inputRef?.inputViewChild?.nativeElement;\n } else {\n return this.inputRef;\n }\n }\n\n getCharacterPattern(): string {\n return typeof this.field.characterPattern === \"function\"\n ? this.field.characterPattern()\n : this.field.characterPattern;\n }\n\n getUnmask(): boolean {\n return typeof this.field.unmask === \"function\"\n ? this.field.unmask()\n : this.field.unmask;\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { CheckboxField } from \"../../../configurations/fields\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"checkbox-field.component.html\",\n})\nexport class CheckboxFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: CheckboxField;\n\n @Input()\n public formControl: FormControl;\n}\n","import { Component, ElementRef, Input, ViewChild } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { EditorField } from \"../../../configurations/fields/editor-field\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"./editor-field.component.html\",\n})\nexport class EditorFieldComponent extends BaseFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: EditorField;\n\n @Input()\n public formControl: FormControl;\n}\n","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { Subject } from \"rxjs\";\nimport { first, takeUntil } from \"rxjs/operators\";\n\nimport { LocaleService } from \"../../../../locale/locale.service\";\nimport { NumberAlignmentOption } from \"../../../../number-input/index\";\nimport { DecimalField } from \"../../../configurations/fields/decimal-field\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\nimport { FieldType } from \"./../../../configurations/field-type\";\n\n@Component({\n templateUrl: \"number-field.component.html\",\n styleUrls: [\"./number-field.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class NumberFieldComponent extends BaseFieldComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n @Input()\n public field: DecimalField;\n @Input()\n public formControl: FormControl;\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n public inputRef: ElementRef;\n\n private ngUnsubscribe = new Subject();\n\n constructor(private readonly localeService: LocaleService,\n private readonly elementRef: ElementRef,\n private readonly changeDetectorRef: ChangeDetectorRef\n ) {\n super();\n }\n\n public ngOnInit() {\n this.onLocaleService();\n\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onFocus) this.field.onFocus(event);\n });\n\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onInput) this.field.onInput(event);\n });\n\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onComplete) this.field.onComplete(event);\n });\n }\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public get numberAlignmentOption() {\n return NumberAlignmentOption;\n }\n\n public get fieldType() {\n return FieldType;\n }\n\n private onLocaleService(): void {\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe({\n next: () => {\n if (!this.field.numberLocaleOptions?.decimalSeparator) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n decimalSeparator: this.localeService.getDecimalSeparator(),\n };\n }\n\n if (!this.field.numberLocaleOptions?.thousandsSeparator) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n thousandsSeparator: this.localeService.getGroupingSeparator(),\n };\n }\n\n if (!this.field.numberLocaleOptions?.currencySymbol) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n currencySymbol: \"R$\",\n };\n }\n },\n error: () =>\n (this.field.numberLocaleOptions = this.field.numberLocaleOptions ?? {\n thousandsSeparator: \".\",\n decimalSeparator: \",\",\n currencySymbol: \"R$\",\n }),\n });\n }\n\n private setInputRef(): void {\n const input = this.elementRef.nativeElement.querySelector(\"input\");\n this.inputRef = input;\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { ProfilePictureField } from \"../../../configurations/fields/profile-picture\";\n\n@Component({\n templateUrl: \"./profile-picture-field.component.html\",\n})\nexport class ProfilePictureFieldComponent {\n @Input()\n public field: ProfilePictureField;\n\n @Input()\n public formControl: FormControl;\n}\n","import { Component, Input } from '@angular/core';\nimport { ButtonField } from '../../../configurations/fields/button-field';\n\n@Component({\n selector: 's-button-field',\n templateUrl: './button-field.component.html',\n styleUrls: ['./button-field.component.scss']\n})\nexport class ButtonFieldComponent {\n\n @Input() field: ButtonField;\n\n clickedButton($event: Event) {\n if (this.field.onClick) {\n this.field.onClick($event);\n }\n }\n\n handleMouseEnter() {\n if (this.field.mouseEnter) {\n this.field.mouseEnter(this.field);\n }\n }\n\n handleMouseLeave() {\n if (this.field.mouseLeave) {\n this.field.mouseLeave(this.field);\n }\n }\n\n}\n","import { ComponentFactoryResolver, ComponentRef, ViewContainerRef } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\n\nimport { Subscription } from \"rxjs\";\n\nimport { FileUploadComponent } from \"./components/fields/file-upload/file-upload.component\";\nimport { RadioButtonComponent } from \"./components/fields/radio-button/radio-button-field.component\";\nimport { RowComponent } from \"./components/grid/row/row.component\";\nimport { FieldsetComponent } from \"./components/structure/fieldset/fieldset.component\";\nimport { SectionComponent } from \"./components/structure/section/section.component\";\n\n// fields\nimport { AutocompleteFieldComponent } from \"./components/fields/autocomplete/autocomplete-field.component\";\nimport { BignumberFieldComponent } from \"./components/fields/bignumber/bignumber-field.component\";\nimport { BooleanFieldComponent } from \"./components/fields/boolean/boolean-field.component\";\nimport { BooleanSwitchFieldComponent } from \"./components/fields/boolean/boolean-switch-field.component\";\nimport { CalendarFieldComponent } from \"./components/fields/calendar/calendar-field.component\";\nimport { ChipsFieldComponent } from \"./components/fields/chips/chips-field.component\";\nimport { CountryPhonePickerFieldComponent } from \"./components/fields/country-phone-picker/country-phone-picker-field.component\";\nimport { CurrencyFieldComponent } from \"./components/fields/currency/currency-field.component\";\nimport { LookupFieldComponent } from \"./components/fields/lookup/lookup-field.component\";\nimport { PasswordFieldComponent } from \"./components/fields/password/password-field.component\";\nimport { SelectFieldComponent } from \"./components/fields/select/select-field.component\";\nimport { SliderFieldComponent } from \"./components/fields/slider/slider-field.component\";\nimport { TextAreaIAFieldComponent } from \"./components/fields/text-area-ia/text-area-ia-field.component\";\nimport { TextAreaFieldComponent } from \"./components/fields/text-area/text-area-field.component\";\nimport { TextFieldComponent } from \"./components/fields/text/text-field.component\";\n\nimport { CheckboxFieldComponent } from \"./components/fields\";\nimport { ButtonFieldComponent } from \"./components/fields/button-field/button-field.component\";\nimport { EditorFieldComponent } from \"./components/fields/editor/editor-field.component\";\nimport { ProfilePictureFieldComponent } from \"./components/fields/profile-picture/profile-picture-field.component\";\nimport { FieldType } from \"./configurations/field-type\";\nimport { FormField } from \"./configurations/form-field\";\nimport { GridType } from \"./configurations/grid-type\";\nimport { Row } from \"./configurations/grid/row\";\nimport { StructureType } from \"./configurations/structure-type\";\nimport { Structure } from \"./configurations/structure/structure\";\n\nexport abstract class DynamicForm {\n group: FormGroup;\n errorMessages: any;\n abstract createComponent(resolver: ComponentFactoryResolver, container: ViewContainerRef): any;\n abstract updateVariables(component: ComponentRef<any>): void;\n abstract getComponent(): any;\n\n constructor({ group, errorMessages }: { group: FormGroup; errorMessages: any }) {\n this.group = group;\n this.errorMessages = errorMessages;\n }\n}\n\nexport class DynamicField extends DynamicForm {\n field: FormField;\n errorMessages: any;\n\n constructor({ group, field, errorMessages }: { group: FormGroup; field: FormField; errorMessages: any }) {\n super({\n group,\n errorMessages,\n });\n\n this.field = field;\n }\n\n public createComponent(resolver: ComponentFactoryResolver, container: ViewContainerRef) {\n const componentFactory = resolver.resolveComponentFactory(this.getComponent());\n const component = container.createComponent(componentFactory) as ComponentRef<any>;\n component.instance.field = this.field;\n // Must be this way because some teams use name like \"e070emp.codemp\"\n component.instance.formControl = this.group[\"controls\"][this.field.name];\n\n this._switchEmptyStringToNull(component);\n\n component.instance.errorMessages = this.errorMessages;\n\n this.setVariablesByType(component);\n return component;\n }\n\n private _switchEmptyStringToNull(component: ComponentRef<any>) {\n switch (component.instance.field.type) {\n case FieldType.Password:\n case FieldType.String:\n case FieldType.Text:\n case FieldType.TextIA:\n const valueChanges$: Subscription = component.instance.formControl.valueChanges\n .subscribe((value: unknown) => {\n if (value === \"\") {\n component.instance.formControl.setValue(null, { emitEvent: false });\n }\n });\n\n component.onDestroy(() => {\n valueChanges$.unsubscribe();\n });\n\n return;\n }\n }\n\n public setVariablesByType(component: ComponentRef<any>) {\n if (this.field.type == FieldType.Time) {\n component.instance.timeOnly = true;\n }\n if ([FieldType.LocalDateTime, FieldType.DateTime, FieldType.Time].includes(this.field.type)) {\n component.instance.showTime = true;\n }\n }\n\n public updateVariables(component: ComponentRef<any>) {\n component.instance.field = this.field;\n component.instance.formControl = this.group[\"controls\"][this.field.name];\n this.setVariablesByType(component);\n }\n\n public getComponent(): any {\n switch (this.field.type) {\n case FieldType.Autocomplete:\n return AutocompleteFieldComponent;\n case FieldType.Binary:\n case FieldType.String:\n return TextFieldComponent;\n case FieldType.Boolean:\n return this.field.representedBy === \"switch\" ? BooleanSwitchFieldComponent : BooleanFieldComponent;\n case FieldType.Checkbox:\n return CheckboxFieldComponent;\n case FieldType.Chips:\n return ChipsFieldComponent;\n case FieldType.CountryPhonePicker:\n return CountryPhonePickerFieldComponent;\n case FieldType.Date:\n case FieldType.DateTime:\n case FieldType.LocalDateTime:\n case FieldType.Time:\n return CalendarFieldComponent;\n case FieldType.Number:\n case FieldType.Integer:\n case FieldType.Double:\n return BignumberFieldComponent;\n case FieldType.Enum:\n return SelectFieldComponent;\n case FieldType.Lookup:\n return LookupFieldComponent;\n case FieldType.Money:\n return CurrencyFieldComponent;\n case FieldType.Radio:\n return RadioButtonComponent;\n case FieldType.Text:\n return TextAreaFieldComponent;\n case FieldType.TextIA:\n return TextAreaIAFieldComponent;\n case FieldType.Password:\n return PasswordFieldComponent;\n case FieldType.Blob:\n return FileUploadComponent;\n case FieldType.Slider:\n return SliderFieldComponent;\n case FieldType.ProfilePicture:\n return ProfilePictureFieldComponent;\n case FieldType.Editor:\n return EditorFieldComponent;\n case FieldType.Button:\n return ButtonFieldComponent;\n case FieldType.Custom:\n return this.field.CustomFieldComponentClass;\n default:\n throw new Error(`Trying to use an unsupported type (${this.field.type}).`);\n }\n }\n}\n\nexport class DynamicStructure extends DynamicForm {\n group: FormGroup;\n config: Structure;\n errorMessages: any;\n\n constructor({ group, config, errorMessages }: { group: FormGroup; config: Structure; errorMessages: any }) {\n super({\n group,\n errorMessages,\n });\n this.config = config;\n }\n\n public createComponent(resolver: ComponentFactoryResolver, container: ViewContainerRef) {\n const componentFactory = resolver.resolveComponentFactory(this.getComponent());\n const component = container.createComponent(componentFactory) as ComponentRef<any>;\n component.instance.config = this.config;\n component.instance.group = this.group;\n return component;\n }\n\n public updateVariables(component: ComponentRef<any>) {\n component.instance.structure = this.config;\n component.instance.group = this.group;\n }\n\n public getComponent(): any {\n switch (this.config.type) {\n case StructureType.Fieldset:\n return FieldsetComponent;\n case StructureType.Section:\n return SectionComponent;\n default:\n throw new Error(`Trying to use an unsupported type (${this.config.type}).`);\n }\n }\n}\n\nexport class DynamicGrid extends DynamicForm {\n group: FormGroup;\n config: Row;\n\n constructor({ group, config, errorMessages }: { group: FormGroup; config: Row; errorMessages: any }) {\n super({ group, errorMessages });\n this.config = config;\n }\n\n public createComponent(resolver: ComponentFactoryResolver, container: ViewContainerRef) {\n const componentFactory = resolver.resolveComponentFactory(this.getComponent());\n const component = container.createComponent(componentFactory)\n component.instance.config = this.config;\n component.instance.group = this.group;\n component.instance.errorMessages = this.errorMessages;\n return component;\n }\n\n public updateVariables(component: ComponentRef<any>) {\n component.instance.config = this.config;\n component.instance.group = this.group;\n }\n\n public getComponent() {\n switch (this.config.type) {\n case GridType.Row:\n return RowComponent;\n default:\n throw new Error(`Trying to use an unsupported type (${this.config.type}).`);\n }\n }\n}\n","import { ComponentFactoryResolver, ComponentRef, Directive, Input, OnChanges, OnDestroy, OnInit, ViewContainerRef } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { FieldType } from \"./configurations/field-type\";\nimport { FormField } from \"./configurations/form-field\";\nimport { GridType } from \"./configurations/grid-type\";\nimport { Grid } from \"./configurations/grid/grid\";\nimport { StructureType } from \"./configurations/structure-type\";\nimport { Structure } from \"./configurations/structure/structure\";\nimport { DynamicField, DynamicForm, DynamicGrid, DynamicStructure } from \"./dynamic-form\";\nimport { Row } from \"./configurations/grid/row\";\n\n@Directive({ selector: \"[sDynamicForm]\" })\nexport class DynamicFormDirective implements OnInit, OnChanges, OnDestroy {\n private id: string;\n private config: Structure | FormField | Grid | Row;\n private group: FormGroup;\n private errorMessages: FormGroup;\n private directiveConfig: DynamicForm;\n\n @Input()\n set sDynamicForm(context: { id: string; config: FormField; structure: Structure; group: FormGroup; errorMessages: any }) {\n const { id, config, group, errorMessages } = context;\n this.id = id;\n this.config = config;\n this.group = group;\n this.errorMessages = errorMessages;\n }\n\n public component: ComponentRef<any>;\n\n constructor(private resolver: ComponentFactoryResolver, private container: ViewContainerRef) { }\n\n public ngOnInit() {\n if (this.isField()) {\n if (!((this.config as FormField).id) && this.id) {\n (this.config as FormField).id = this.id + \"-\" + (this.config as FormField).name;\n }\n\n this.directiveConfig = new DynamicField({\n group: this.group,\n field: this.config as FormField,\n errorMessages: this.errorMessages,\n });\n } else if (this.isStructure()) {\n this.directiveConfig = new DynamicStructure({\n group: this.group,\n config: this.config as Structure,\n errorMessages: this.errorMessages,\n });\n } else if (this.isGrid()) {\n this.directiveConfig = new DynamicGrid({\n group: this.group,\n config: this.config as Row,\n errorMessages: this.errorMessages,\n });\n } else throw new Error(`Trying to use an unsupported type (${this.config.type}).`);\n\n this.component = this.directiveConfig.createComponent(this.resolver, this.container);\n this.component.instance.id = this.id;\n this.component.instance.errorMessages = this.errorMessages;\n }\n\n public ngOnChanges() {\n if (this.component) {\n this.directiveConfig.updateVariables(this.component);\n this.component.instance.errorMessages = this.errorMessages;\n }\n }\n\n public ngOnDestroy(): void {\n this.component.destroy();\n }\n\n public isField() {\n return FieldType[this.config.type];\n }\n\n public isStructure() {\n return StructureType[this.config.type];\n }\n\n public isGrid() {\n return GridType[this.config.type];\n }\n}\n","import { Component, Input } from \"@angular/core\";\n\nimport { Field } from \"../../configurations/fields/field\";\n\n@Component({\n selector: 's-field-label',\n templateUrl: './field-label.component.html',\n})\nexport class FieldLabelComponent {\n @Input()\n public field: Field;\n\n @Input()\n public fieldContainerRef: HTMLElement;\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { FieldLabelComponent } from \"./field-label.component\";\nimport { InfoSignModule } from \"../../../info-sign/info-sign.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n InfoSignModule\n ],\n declarations: [FieldLabelComponent],\n exports: [FieldLabelComponent],\n})\nexport class FieldLabelModule {}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { InputMaskModule } from \"primeng/inputmask\";\nimport { InputTextModule } from \"primeng/inputtext\";\n\nimport { ButtonModule } from \"../../../../button/button.module\";\nimport { BignumberInputModule } from \"../../../../bignumber-input/bignumber-input.module\";\nimport { TooltipModule } from \"../../../../tooltip/tooltip.module\";\nimport { BignumberFieldComponent } from \"./bignumber-field.component\";\nimport { FieldLabelModule } from \"../../field-label/field-label.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ButtonModule,\n BignumberInputModule,\n TooltipModule,\n InputMaskModule,\n InputTextModule,\n FieldLabelModule\n ],\n declarations: [BignumberFieldComponent],\n exports: [BignumberFieldComponent],\n})\nexport class BignumberFieldModule {}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { CheckboxModule } from \"../../../../checkbox/checkbox.module\";\nimport { CheckboxFieldComponent } from \"./checkbox-field.component\";\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, CheckboxModule],\n declarations: [CheckboxFieldComponent],\n exports: [CheckboxFieldComponent],\n})\nexport class CheckboxFieldModule {}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { InputMaskModule } from \"primeng/inputmask\";\nimport { InputTextModule } from \"primeng/inputtext\";\n\nimport { NumberInputModule } from \"../../../../number-input/number-input.module\";\nimport { TooltipModule } from \"../../../../tooltip/tooltip.module\";\nimport { CurrencyFieldComponent } from \"./currency-field.component\";\nimport { FieldLabelModule } from \"../../field-label/field-label.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NumberInputModule,\n TooltipModule,\n InputMaskModule,\n InputTextModule,\n FieldLabelModule\n ],\n declarations: [CurrencyFieldComponent],\n exports: [CurrencyFieldComponent],\n})\nexport class CurrencyFieldModule {}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { EditorModule } from \"primeng/editor\";\n\nimport { FieldLabelModule } from \"../../field-label/field-label.module\";\nimport { EditorFieldComponent } from \"./editor-field.component\";\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, EditorModule, FieldLabelModule],\n declarations: [EditorFieldComponent],\n exports: [EditorFieldComponent],\n})\nexport class EditorFieldModule {}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { InputMaskModule } from \"primeng/inputmask\";\nimport { InputTextModule } from \"primeng/inputtext\";\n\nimport { LocalizedNumberInputModule } from \"../../../../localized-number-input/localized-number-input.module\";\nimport { NumberInputModule } from \"../../../../number-input/number-input.module\";\nimport { ButtonModule } from \"../../../../button/button.module\";\nimport { TooltipModule } from \"../../../../tooltip/tooltip.module\";\nimport { NumberFieldComponent } from \"./number-field.component\";\nimport { FieldLabelModule } from \"../../field-label/field-label.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n LocalizedNumberInputModule,\n NumberInputModule,\n ButtonModule,\n TooltipModule,\n InputMaskModule,\n InputTextModule,\n FieldLabelModule\n ],\n declarations: [NumberFieldComponent],\n exports: [NumberFieldComponent],\n})\nexport class NumberFieldModule {}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { InputTextModule } from \"primeng/inputtext\";\n\nimport { ButtonModule } from \"../../../../button/button.module\";\nimport { TooltipModule } from \"../../../../tooltip/tooltip.module\";\nimport { PasswordStrengthModule } from \"../../../../password-strength/password-strength.module\";\nimport { PasswordFieldComponent } from \"./password-field.component\";\nimport { FieldLabelModule } from \"../../field-label/field-label.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ButtonModule,\n TooltipModule,\n PasswordStrengthModule,\n InputTextModule,\n FieldLabelModule\n ],\n declarations: [PasswordFieldComponent],\n exports: [PasswordFieldComponent],\n})\nexport class PasswordFieldModule {}","import { Component, TemplateRef, ViewChild } from \"@angular/core\";\n\n@Component({\n selector: \"s-header\",\n template: `\n <ng-template #headerTemplate>\n <ng-content></ng-content>\n </ng-template>`,\n})\nexport class HeaderComponent {\n @ViewChild('headerTemplate', { static: true })\n public readonly template: TemplateRef<any>;\n}\n","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-footer\",\n template: `<ng-content></ng-content>`,\n})\nexport class FooterComponent {}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { HeaderComponent } from \"./header.component\";\nimport { FooterComponent } from \"./footer.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [HeaderComponent, FooterComponent],\n exports: [HeaderComponent, FooterComponent],\n})\nexport class StructureModule {}\n","import {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport Cropper from \"cropperjs\";\nimport { FooterComponent } from \"../structure/footer.component\";\nimport { HeaderComponent } from \"../structure/header.component\";\n\n@Component({\n selector: \"s-image-cropper\",\n templateUrl: \"./image-cropper.component.html\",\n styleUrls: [\"../../../../node_modules/cropperjs/dist/cropper.min.css\", \"./image-cropper.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ImageCropperComponent implements OnInit, OnChanges {\n public static nextId = 0;\n\n @Input()\n public id = `s-image-cropper-${ImageCropperComponent.nextId++}`;\n\n @Input()\n public visible = false;\n\n @Input()\n public header = \"Recortar imagem\";\n\n @Input()\n public cropLabel = \"Recortar\";\n\n @Input()\n public selectAnotherLabel = \"Trocar\";\n\n @Input()\n public removeLabel = \"Remover\";\n\n @Input()\n public cancelLabel = \"Cancelar\";\n\n @Input()\n public emptyStateTitle = \"Selecione uma foto, em seguida você poderá ajustá-la\";\n\n @Input()\n public emptyStateActionLabel = \"Escolher imagem\";\n\n @Input()\n public emptyStateIconClass = \"fa fa-picture-o\";\n\n @Input()\n public aspectRatio = NaN;\n\n @Input()\n public rounded = false;\n\n @Input()\n public allowSelectAnother = true;\n\n @Input()\n public allowRemove = true;\n\n @Input()\n public allowCancel = true;\n\n @Input()\n public imageSource?: string;\n\n @Output()\n public visibleChange = new EventEmitter<boolean>();\n\n @Output()\n public changeImage = new EventEmitter();\n\n @Output()\n public croppedImage = new EventEmitter<string>();\n\n @Output()\n public croppedCanvas = new EventEmitter<HTMLCanvasElement>();\n\n @Output()\n public removedImage = new EventEmitter();\n\n @Output()\n public cancel = new EventEmitter();\n\n @ViewChild(\"image\", { static: true })\n public image: ElementRef;\n\n @ContentChild(HeaderComponent, { static: true })\n public headerSection: HeaderComponent;\n\n @ContentChild(FooterComponent, { static: true })\n public footerSection: FooterComponent;\n\n public cropper: Cropper;\n\n public ngOnInit() {\n if (this.imageSource) this.initCropper();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.imageSource && changes.imageSource.currentValue) {\n this.initCropper();\n }\n }\n\n private initCropper() {\n if (this.cropper) {\n this.cropper.destroy();\n }\n\n this.image.nativeElement.src = this.imageSource;\n this.cropper = new Cropper(this.image.nativeElement, {\n aspectRatio: this.rounded ? 1 : this.aspectRatio,\n guides: false,\n dragMode: \"move\" as Cropper.DragMode,\n minCropBoxHeight: 2,\n minCropBoxWidth: 2,\n toggleDragModeOnDblclick: false,\n });\n }\n\n public getRoundedCanvas(sourceCanvas: HTMLCanvasElement) {\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\");\n const width = sourceCanvas.width;\n const height = sourceCanvas.height;\n canvas.width = width;\n canvas.height = height;\n context.imageSmoothingEnabled = true;\n context.drawImage(sourceCanvas, 0, 0, width, height);\n context.globalCompositeOperation = \"destination-in\";\n context.beginPath();\n context.arc(width / 2, height / 2, Math.min(width, height) / 2, 0, 2 * Math.PI, true);\n context.fill();\n return canvas;\n }\n\n public onCropImage() {\n if (!this.imageSource) {\n this.croppedImage.emit();\n this.croppedCanvas.emit();\n } else {\n const _croppedCanvas = this.rounded ? this.getRoundedCanvas(this.cropper.getCroppedCanvas()) : this.cropper.getCroppedCanvas();\n\n this.croppedCanvas.emit(_croppedCanvas);\n this.croppedImage.emit(_croppedCanvas.toDataURL());\n }\n\n this.visibleChange.emit(false);\n }\n\n public onChangeImage() {\n this.changeImage.emit();\n }\n\n public onRemoveImage() {\n this.imageSource = undefined;\n this.removedImage.emit();\n }\n\n public onCancel() {\n this.visibleChange.emit(false);\n this.cancel.emit();\n }\n\n public onModalVisibleChange(visible: boolean) {\n if (!visible) this.onCancel();\n this.visibleChange.emit(visible);\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { DialogModule } from \"primeng/dialog\";\n\nimport { ButtonModule } from \"../button/button.module\";\nimport { EmptyStateModule } from \"../empty-state/empty-state.module\";\nimport { StructureModule } from \"../structure/structure.module\";\nimport { ImageCropperComponent } from \"./image-cropper.component\";\n\n@NgModule({\n imports: [CommonModule, DialogModule, ButtonModule, EmptyStateModule, StructureModule],\n declarations: [ImageCropperComponent],\n exports: [ImageCropperComponent, StructureModule],\n entryComponents: [ImageCropperComponent],\n})\nexport class ImageCropperModule {}\n","import { Injectable, ComponentFactoryResolver, ApplicationRef, Injector, EmbeddedViewRef, ComponentRef } from \"@angular/core\";\nimport { ImageCropperComponent } from \"./image-cropper.component\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil, delay } from \"rxjs/operators\";\n\n@Injectable()\nexport class ImageCropperService {\n public activeCropper: ActiveCropper;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver, private appRef: ApplicationRef, private injector: Injector) {}\n\n public show(config?: ImageCropperConfig) {\n if (this.activeCropper) this.destroy(this.activeCropper);\n\n const activeCropper = {\n componentRef: this.componentFactoryResolver.resolveComponentFactory(ImageCropperComponent).create(this.injector),\n ngUnsubscribe: new Subject(),\n };\n\n this.activeCropper = activeCropper;\n\n this.appRef.attachView(activeCropper.componentRef.hostView);\n const domElem = (activeCropper.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n\n this.configureInstance(activeCropper, config);\n activeCropper.componentRef.instance.visible = true;\n\n activeCropper.componentRef.instance.visibleChange\n .pipe(\n takeUntil(this.activeCropper.ngUnsubscribe),\n delay(1000)\n )\n .subscribe(visible => {\n if (!visible) this.destroy(activeCropper);\n });\n }\n\n private configureInstance(activeCropper: ActiveCropper, config?: ImageCropperConfig) {\n const instance = activeCropper.componentRef.instance;\n\n if (config) {\n Object.keys(config).forEach(key => {\n const value = config[key];\n if (typeof value !== \"function\") instance[key] = value;\n else if (typeof value === \"function\") {\n instance[key].pipe(takeUntil(activeCropper.ngUnsubscribe)).subscribe((...param: any[]) => config[key](...param));\n }\n });\n }\n\n instance.visibleChange.pipe(takeUntil(activeCropper.ngUnsubscribe)).subscribe(visible => (instance.visible = visible));\n }\n\n private destroy(activeCropper: ActiveCropper) {\n activeCropper.ngUnsubscribe.next();\n activeCropper.ngUnsubscribe.complete();\n\n this.appRef.detachView(activeCropper.componentRef.hostView);\n activeCropper.componentRef.destroy();\n }\n}\n\nexport interface ActiveCropper {\n componentRef?: ComponentRef<ImageCropperComponent>;\n ngUnsubscribe?: Subject<any>;\n}\n\nexport interface ImageCropperConfig {\n id?: any;\n header?: string;\n cropLabel?: string;\n selectAnotherLabel?: string;\n removeLabel?: string;\n cancelLabel?: string;\n emptyStateTitle?: string;\n emptyStateActionLabel?: string;\n emptyStateIconClass?: string;\n aspectRatio?: number;\n rounded?: boolean;\n allowSelectAnother?: boolean;\n allowRemove?: boolean;\n allowCancel?: boolean;\n imageSource?: string;\n\n cancel?: () => any;\n changeImage?: () => any;\n removedImage?: () => any;\n croppedImage?: (imageSource: string) => any;\n croppedCanvas?: (imageSource: HTMLCanvasElement) => any;\n}\n","export interface FileValidationErrors {\n file: File;\n validation: FileValidation,\n}\n\nexport enum FileValidation {\n MaxFileSize = \"maxFileSize\",\n MaxFileLimit = \"maxFileLimit\",\n TypeInvalid = \"typeInvalid\",\n UnsupportedExtension = \"unsupportedExtension\",\n}\n","import { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class ThumbnailService {\n public getBinaryFile(img: HTMLImageElement) {\n return new Promise(resolve => {\n const getOrientation = this.getOrientation.bind(this);\n\n let http = new XMLHttpRequest();\n http.addEventListener(\"load\", () => {\n if (http.readyState === 4 && (http.status == 200 || http.status === 0)) {\n const orientation = getOrientation(http.response);\n http = null;\n resolve(orientation);\n }\n });\n\n http.addEventListener(\"error\", () => {\n http = null;\n throw new Error(\"Não foi possÃvel carregar a imagem\");\n });\n\n http.open(\"GET\", img.src, true);\n http.responseType = \"arraybuffer\";\n http.send(null);\n });\n }\n\n /**\n * Retorna a tag da orientação EXIF {-1} Não definido, {-2} Não é formato JPEG, {1, 2, 3, 4, 5, 6, 7, 8} valores da orientação.\n */\n private getOrientation(file: ArrayBuffer): number {\n const view = new DataView(file);\n\n if (view.getUint16(0, false) != 0xffd8) return -2; // not jpeg\n\n const length = view.byteLength;\n let offset = 2;\n\n while (offset < length) {\n const marker = view.getUint16(offset, false);\n offset += 2;\n\n if (marker == 0xffe1) {\n if (view.getUint32((offset += 2), false) != 0x45786966) {\n return -1; // not defined\n }\n const little = view.getUint16((offset += 6), false) == 0x4949;\n offset += view.getUint32(offset + 4, little);\n const tags = view.getUint16(offset, little);\n offset += 2;\n\n for (let i = 0; i < tags; i++)\n if (view.getUint16(offset + i * 12, little) == 0x0112) return view.getUint16(offset + i * 12 + 8, little);\n // tslint:disable-next-line: no-bitwise\n } else if ((marker & 0xff00) != 0xff00) break;\n else offset += view.getUint16(offset, false);\n }\n return -1; // not defined\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n ViewChild,\n OnDestroy,\n Output,\n EventEmitter,\n} from \"@angular/core\";\n\nimport { from, Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { ThumbnailSize } from \"./thumbnail-size\";\nimport { ThumbnailService } from \"./thumbnail.service\";\n\n@Component({\n selector: \"s-thumbnail\",\n templateUrl: \"./thumbnail.component.html\",\n styleUrls: [\"./thumbnail.component.scss\"],\n})\nexport class ThumbnailComponent implements AfterViewInit, OnDestroy {\n public static nextId = 0;\n public fallback = false;\n public orientation: number;\n\n @ViewChild(\"img\", { static: false })\n public imgEl: ElementRef;\n\n @Input()\n public id = `s-thumbnail-${ThumbnailComponent.nextId++}`;\n\n @Input()\n public size: ThumbnailSize = ThumbnailSize.Medium;\n\n @Input()\n public imageSource: string;\n\n @Input()\n public imageFallback?: string;\n\n @Input()\n public imageAlt: string;\n\n @Input()\n public iconClass = \"far fa-image\";\n\n @Input()\n public hasAction = false;\n\n @Input()\n public actionIconClass = \"fas fa-camera\";\n\n @Input()\n public isTile = false;\n\n @Input()\n public isBrand = false;\n\n private ngUnsubscribe = new Subject();\n\n constructor(private thumbnailService: ThumbnailService) { }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public ngAfterViewInit(): void {\n if (this.imgEl) {\n this.imgEl.nativeElement.addEventListener(\"load\", () => {\n from(this.thumbnailService.getBinaryFile(this.imgEl.nativeElement))\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((orientation: number) => (this.orientation = orientation));\n });\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { ThumbnailComponent } from \"./thumbnail.component\";\nimport { ThumbnailService } from \"./thumbnail.service\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [ThumbnailComponent],\n exports: [ThumbnailComponent],\n providers: [ThumbnailService],\n})\nexport class ThumbnailModule {}\n","export enum CustomFieldType {\n String = \"String\",\n Boolean = \"Boolean\",\n Integer = \"Integer\",\n Double = \"Double\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n LocalDateTime = \"LocalDateTime\",\n Time = \"Time\",\n Money = \"Money\",\n Blob = \"Blob\",\n Binary = \"Binary\",\n Any = \"Any\",\n Enum = \"Enum\",\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { ConfirmationService } from \"primeng/api\";\n\nimport { ImageCropperService } from \"../image-cropper/image-cropper.service\";\nimport { ConfirmationTexts, CropperLabelsConfig, FileValidation, FileValidationErrors, ProfilePicturePickerData } from \"./models/index\";\n\n@Component({\n selector: \"s-profile-picture-picker\",\n templateUrl: \"profile-picture-picker.component.html\",\n styleUrls: [\"profile-picture-picker.component.scss\"],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ProfilePicturePickerComponent),\n multi: true,\n }],\n})\nexport class ProfilePicturePickerComponent implements OnInit, ControlValueAccessor {\n @Input()\n public simpleTitle: string;\n\n @Input()\n public actionTitle: string;\n\n @Input()\n public subtitle: string;\n\n @Input()\n public aspectRatio = 1;\n\n @Input()\n public cropperLabelsConfig: CropperLabelsConfig;\n\n @Input()\n public removeButtonLabel: string;\n\n @Input()\n public changeButtonLabel: string;\n\n @Input()\n public confirmationTexts: ConfirmationTexts;\n\n @Input()\n public maxFileSize: number;\n\n @Input()\n public accept: string;\n\n @Input()\n public supportedExtensions: string[] = [];\n\n @Input()\n public image: string | ProfilePicturePickerData;\n\n @ViewChild(\"uploadPicture\")\n public uploadPicture: ElementRef;\n\n @ViewChild(\"info\")\n public info: ElementRef;\n\n @ViewChild(\"thumbnail\", { read: ElementRef })\n public thumbnail: ElementRef;\n\n @ViewChild(\"fileInput\", { read: ElementRef })\n public fileInput: ElementRef;\n\n /**\n * @deprecated Use imageChange instead.\n */\n @Output()\n public changedImage: EventEmitter<string> = new EventEmitter();\n\n @Output()\n public imageChange = new EventEmitter<string | ProfilePicturePickerData>()\n\n @Output()\n public removedImage = new EventEmitter();\n\n @Output()\n public invalidFile: EventEmitter<FileValidationErrors> = new EventEmitter();\n\n public get imageBase64(): string {\n return typeof this.image === \"string\" ? this.image : this.image?.base64;\n }\n\n private _onChange: (value: string | ProfilePicturePickerData) => void;\n private _onTouched: () => void;\n\n constructor(\n private readonly imageCropperService: ImageCropperService,\n private readonly confirmationService: ConfirmationService,\n private readonly translateService: TranslateService,\n ) { }\n\n public writeValue(value: string | ProfilePicturePickerData): void {\n this.image = value;\n }\n\n public registerOnChange(onChange: (value: ProfilePicturePickerData) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: () => void): void {\n this._onTouched = onTouched;\n }\n\n public ngOnInit(): void {\n this._normalizeSuportedExtensions();\n }\n\n @HostListener(\"dragover\", [\"$event\"])\n public onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n @HostListener(\"dragleave\", [\"$event\"])\n public onDragLeave(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n }\n\n @HostListener(\"drop\", [\"$event\"])\n public onDrop(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n this._onTouched?.();\n\n const files: File[] = [];\n const dataTransferFiles = event.dataTransfer.files;\n\n for (let i = 0; i < dataTransferFiles.length; i++) {\n files.push(dataTransferFiles.item(i));\n }\n\n this._showImageCropper(files);\n }\n\n // Verificando o redimensionamento para ajustar o design para ficar responsivo.\n @HostListener(\"window:resize\")\n public onResize(): void {\n if (this.uploadPicture && this.info && this.thumbnail) {\n const uploadPictureWidth = this._getWidthElement(this.uploadPicture);\n const infoWidth = this._getWidthElement(this.info);\n const thumbnailWidth = this._getWidthElement(this.thumbnail);\n\n if (thumbnailWidth + infoWidth > uploadPictureWidth) {\n this.uploadPicture.nativeElement.classList.add(\"upload-picture--small\");\n } else {\n this.uploadPicture.nativeElement.classList.remove(\"upload-picture--small\");\n }\n }\n }\n\n public selectPhoto(): void {\n const fileInputElement = this.fileInput.nativeElement;\n fileInputElement.value = \"\";\n fileInputElement.click();\n\n this._onTouched?.();\n }\n\n public removePhoto(): void {\n this.confirmationService.confirm({\n message: this.confirmationTexts?.removalMessage ?? this.translateService.instant(\"platform.angular_components.confirmation_remove_image\"),\n acceptLabel: this.confirmationTexts?.removalAcceptLabel ?? this.translateService.instant(\"platform.angular_components.remove\"),\n rejectLabel: this.confirmationTexts?.removalRejectLabel ?? this.translateService.instant(\"platform.angular_components.cancel\"),\n header: this.confirmationTexts?.removalHeader ?? this.translateService.instant(\"platform.angular_components.remove_image\"),\n rejectButtonStyleClass: \"ui-button-secondary\",\n accept: () => {\n const fileInputElement = this.fileInput.nativeElement;\n fileInputElement.value = \"\";\n this.image = null;\n this.removedImage.emit();\n },\n });\n }\n\n public photoSelected(event: any): void {\n this._showImageCropper(event.srcElement.files);\n }\n\n private _showImageCropper(files: File[]): void {\n if (!this._validateData(files)) {\n return;\n }\n\n const file = files[0];\n\n const fileReader = new FileReader();\n fileReader.readAsDataURL(file);\n fileReader.onloadend = (fileEvent: any) => {\n this.imageCropperService.show({\n imageSource: fileEvent.target.result,\n croppedImage: image => {\n this.changedImage.emit(image);\n\n const data: ProfilePicturePickerData = { source: file, base64: image};\n \n // Se o tipo do image for string eu preciso atualizar e mandar para o imageChange uma string.\n // Se for ProfilePicturePickerData eu preciso mandar o data completo.\n if (typeof this.image === \"string\") {\n this.image = image;\n this.imageChange.emit(image);\n } else {\n this.image = data;\n this.imageChange.emit(data);\n }\n \n this._onChange?.(this.image);\n },\n changeImage: () => this.selectPhoto(),\n allowSelectAnother: false,\n aspectRatio: this.aspectRatio,\n ...this.cropperLabelsConfig,\n });\n };\n }\n\n private _normalizeSuportedExtensions(): void {\n this.supportedExtensions = this.supportedExtensions\n ?.map(extension => extension.replace(\".\", \"\").toLocaleLowerCase());\n }\n\n private _validateData(files: File[]): boolean {\n if (!files.length) {\n return false;\n }\n\n if (files.length > 1) {\n this.invalidFile.emit({ file: null, validation: FileValidation.MaxFileLimit });\n return false;\n }\n\n const file = files[0];\n\n if (!file.type.includes(\"image\")) {\n this.invalidFile.emit({ file, validation: FileValidation.TypeInvalid });\n return false;\n }\n\n if (!this._validateFileExtension(file)) {\n this.invalidFile.emit({ file, validation: FileValidation.UnsupportedExtension });\n return false;\n }\n\n if (!this._validateFileSize(file)) {\n this.invalidFile.emit({ file, validation: FileValidation.MaxFileSize });\n return false;\n }\n\n return true;\n }\n\n private _validateFileExtension(file: File): boolean {\n if (this.supportedExtensions?.length) {\n const extension = file.name.split(\".\").pop().toLowerCase();\n return this.supportedExtensions.includes(extension);\n }\n return true;\n }\n\n private _validateFileSize(file: File): boolean {\n if (this.maxFileSize) {\n return file.size <= this.maxFileSize;\n }\n return true;\n }\n\n private _getWidthElement(element: ElementRef): number {\n const { left, right } = element.nativeElement.getBoundingClientRect();\n return right - left;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { ConfirmationService } from \"primeng/api\";\nimport { ConfirmDialogModule } from \"primeng/confirmdialog\";\n\nimport { ButtonModule } from '../button/button.module';\nimport { ImageCropperModule } from '../image-cropper/image-cropper.module';\nimport { ImageCropperService } from '../image-cropper/image-cropper.service';\nimport { ThumbnailModule } from '../thumbnail/thumbnail.module';\nimport { ProfilePicturePickerComponent } from \"./profile-picture-picker.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TranslateModule,\n ButtonModule,\n ThumbnailModule,\n ImageCropperModule,\n ConfirmDialogModule,\n ],\n declarations: [ProfilePicturePickerComponent],\n exports: [ProfilePicturePickerComponent],\n providers: [\n ImageCropperService,\n ConfirmationService,\n ],\n})\nexport class ProfilePicturePickerModule { }","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { ProfilePicturePickerModule } from \"../../../../profile-picture-picker/profile-picture-picker.module\";\nimport { ProfilePictureFieldComponent } from \"./profile-picture-field.component\";\nimport { FieldLabelModule } from \"../../field-label/field-label.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ProfilePicturePickerModule,\n FieldLabelModule\n ],\n declarations: [ProfilePictureFieldComponent],\n exports: [ProfilePictureFieldComponent],\n})\nexport class ProfilePictureModule {}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { InputMaskModule } from \"primeng/inputmask\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { KeyFilterModule } from \"primeng/keyfilter\";\n\nimport { ButtonModule } from \"../../../../button/button.module\";\nimport { TooltipModule } from \"../../../../tooltip/tooltip.module\";\nimport { TextFieldComponent } from \"./text-field.component\";\nimport { FieldLabelModule } from \"../../field-label/field-label.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ButtonModule,\n TooltipModule,\n InputMaskModule,\n InputTextModule,\n KeyFilterModule,\n FieldLabelModule\n ],\n declarations: [TextFieldComponent],\n exports: [TextFieldComponent],\n})\nexport class TextFieldModule {}\n","import { ChangeDetectorRef, Component, ElementRef, forwardRef, Input, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 's-textarea',\n templateUrl: './text-area.component.html',\n styleUrls: ['./text-area.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextAreaComponent),\n multi: true,\n },\n ],\n})\nexport class TextAreaComponent implements ControlValueAccessor {\n onChange: (value: string) => void = () => { };\n onTouched: (value: string) => void = () => { };\n disabled = false;\n value = '';\n private _textAreaElement: ElementRef<HTMLTextAreaElement>;\n\n @ViewChild('textArea', { read: ElementRef })\n public get textAreaElement(): ElementRef<HTMLTextAreaElement> {\n return this._textAreaElement;\n }\n\n public set textAreaElement(value: ElementRef<HTMLTextAreaElement>) {\n this._textAreaElement = value;\n setTimeout(() => {\n this.renderTextArea = true;\n this.cdr.detectChanges();\n })\n }\n\n @Input() inputId = `textarea-${Math.random()}`;\n @Input() rows = 5;\n @Input() speechRecognition = false;\n @Input() keyFilter: string | RegExp;\n @Input() keepContext = false;\n @Input() speechRecognitionPlaceholder = '';\n @Input() maxLength: number;\n @Input() placeholder: string;\n private _inputStyle: Partial<CSSStyleDeclaration> = {\n resize: 'vertical'\n }\n @Input() get inputStyle(): Partial<CSSStyleDeclaration> {\n return this._inputStyle;\n }\n set inputStyle(value: Partial<CSSStyleDeclaration>) {\n this._inputStyle = {\n ...value,\n ...this._inputStyle,\n };\n }\n @Input() readOnly = false;\n\n renderTextArea = false;\n\n constructor(private readonly cdr: ChangeDetectorRef) { }\n\n writeValue(obj: string): void {\n this.value = obj;\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n setValue(value: string) {\n if (this.disabled) {\n return;\n }\n this.value = value;\n this.writeValue(this.value);\n this.onChange(this.value);\n this.onTouched(this.value);\n }\n\n handleRecognizedText(recognizedText: string) {\n this.setValue(recognizedText);\n }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { LocaleService } from '../locale/locale.service';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TextToSpeechService {\n private readonly utterance = new SpeechSynthesisUtterance();\n private activeVoice: SpeechSynthesisVoice;\n voices: SpeechSynthesisVoice[] = [];\n constructor(private readonly locale: LocaleService, private readonly ngZone: NgZone) {\n this.setVoices();\n }\n\n private setVoices() {\n let _voices = speechSynthesis.getVoices();\n\n if (!_voices.length) {\n speechSynthesis.onvoiceschanged = () => {\n this.ngZone.run(() => {\n _voices = speechSynthesis.getVoices();\n const currentLang = this.locale.getLocaleOptions()?.locale || 'pt-BR';\n this.setActiveVoice(_voices, currentLang);\n this.locale.getLocale().subscribe((locale) => {\n this.setActiveVoice(_voices, locale);\n })\n })\n }\n }\n }\n\n /**\n * Updates the active voice\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisVoice/voiceURI)\n * @param voiceUri\n */\n updateVoice(voiceUri: string) {\n this.activeVoice = this.voices.find((voice) => voice.voiceURI === voiceUri);\n }\n\n\n speak(text: string, speed: number = 1) {\n if (!this.activeVoice) {\n return;\n }\n return new Promise((resolve) => {\n this.utterance.text = text;\n this.utterance.voice = this.activeVoice;\n this.utterance.rate = speed;\n speechSynthesis.speak(this.utterance);\n this.utterance.onend = () => {\n this.ngZone.run(() => {\n resolve(true);\n })\n }\n })\n }\n\n pause() {\n speechSynthesis.pause();\n }\n\n resume() {\n speechSynthesis.resume();\n }\n\n cancel() {\n speechSynthesis.cancel();\n }\n\n get hasVoice() {\n return !!this.activeVoice;\n }\n\n private setActiveVoice(voices: SpeechSynthesisVoice[], lang: string) {\n const _voice = voices.find((voice) => voice.lang === lang);\n if (_voice) {\n this.activeVoice = _voice;\n }\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SpeechRecognitionService } from '../speech-recognition.service';\nimport { TextToSpeechService } from '../text-to-speech.service';\n\n@Component({\n selector: 's-speech-recognition',\n templateUrl: './speech-recognition.component.html',\n styleUrls: ['./speech-recognition.component.scss']\n})\nexport class SpeechRecognitionComponent implements OnInit, OnDestroy {\n private static TOOLBAR_ACTIVE = false;\n @Input() textAreaElement: HTMLTextAreaElement;\n @Input() keepContext = false;\n @Input() speechRecognitionPlaceholder = '';\n private _recognizedText = '';\n private originalTextAreaElementText = '';\n private isDoneTextToSpeech = false;\n private readonly onDestroy$ = new Subject<void>();\n private readonly VOICE_SPEEDS = [0.5, 1, 1.5, 2];\n private readonly keydownEventListener = (event: KeyboardEvent) => {\n if (this.disabled) {\n event.preventDefault();\n }\n }\n\n disabled = false;\n isListeningUserVoice = false;\n voiceSpeed = 1;\n isDisabledMicrophone = false;\n\n canRenderMicrophone = true;\n canRenderTextToSpeech = true;\n canRenderListeningText = false;\n canRenderDiscard = false;\n canRenderAprove = false;\n canRenderTextToSpeechToolbar = false;\n\n isPlayingTextToSpeech = false;\n\n @Output() recognizedText = new EventEmitter<string>();\n constructor(\n private readonly speechRecognitionService: SpeechRecognitionService,\n private readonly textToSpeechService: TextToSpeechService,\n private readonly translateService: TranslateService\n ) { }\n\n ngOnInit(): void {\n if (!this.hasSpeechRecognitionBrowserApi) {\n return;\n }\n if (!this.textAreaElement) {\n throw new Error('textAreaElement is required');\n }\n this.textAreaElement.placeholder = this.speechRecognitionPlaceholder ? this.speechRecognitionPlaceholder : this.translateService.instant(\"platform.angular_components.text_area_speech_recognition_placeholder\");\n this.textAreaElement.addEventListener('keydown', this.keydownEventListener)\n this.speechRecognitionService.microphoneStatus$.pipe(takeUntil(this.onDestroy$)).subscribe((status) => {\n if (status === 'active') {\n this.onCloseToolbar();\n }\n })\n }\n\n onListen() {\n if (this.isDisabledMicrophone || this.isListening) {\n return;\n }\n this.disabled = true;\n this.canRenderMicrophone = false;\n this.canRenderListeningText = true;\n this.originalTextAreaElementText = this.textAreaElement.value;\n this.textAreaElement.value = '';\n this.isListeningUserVoice = true;\n this.speechRecognitionService.listen()\n .pipe(takeUntil(this.onDestroy$))\n .subscribe(({ text, isFinal }) => {\n this._recognizedText = text;\n this.setTextAreaValue(text);\n this.scrollTextAreaBottom();\n if (isFinal) {\n this.canRenderAprove = true;\n this.canRenderDiscard = true;\n this.canRenderListeningText = false;\n this.isListeningUserVoice = false;\n }\n }, () => {\n this.isListeningUserVoice = false;\n this.canRenderMicrophone = true;\n this.isDisabledMicrophone = false;\n this.canRenderListeningText = false;\n this.disabled = false;\n })\n }\n\n private scrollTextAreaBottom() {\n setTimeout(() => {\n this.textAreaElement.scrollTop = this.textAreaElement.scrollHeight;\n }, 120)\n }\n\n onOpenToolbar() {\n if (this.isDisabledTextToSpeech) {\n return;\n }\n this.canRenderTextToSpeechToolbar = true;\n this.canRenderTextToSpeech = false;\n SpeechRecognitionComponent.TOOLBAR_ACTIVE = true;\n this.speak();\n }\n\n onCloseToolbar() {\n this.canRenderTextToSpeechToolbar = false;\n this.canRenderTextToSpeech = true;\n this.stopTextToSpeech();\n this.voiceSpeed = 1;\n SpeechRecognitionComponent.TOOLBAR_ACTIVE = false;\n }\n onDiscard() {\n this.canRenderAprove = false;\n this.canRenderDiscard = false;\n this.canRenderMicrophone = true;\n this.canRenderTextToSpeechToolbar = false;\n this.canRenderTextToSpeech = true;\n this._recognizedText = '';\n this.setTextAreaValue(this.originalTextAreaElementText);\n this.disabled = false;\n this.stopTextToSpeech();\n SpeechRecognitionComponent.TOOLBAR_ACTIVE = false;\n }\n\n onAprove() {\n this.canRenderAprove = false;\n this.canRenderDiscard = false;\n this.canRenderMicrophone = true;\n this.canRenderTextToSpeechToolbar = false;\n this.canRenderTextToSpeech = true;\n if (this.keepContext) {\n const breakLine = this.originalTextAreaElementText.length > 0 ? '\\n' : '';\n this.originalTextAreaElementText += `${breakLine}${this._recognizedText}`\n } else {\n this.originalTextAreaElementText = this._recognizedText\n }\n this.recognizedText.emit(this.keepContext ? this.originalTextAreaElementText : this._recognizedText);\n this.scrollTextAreaBottom();\n this._recognizedText = '';\n this.disabled = false;\n this.textToSpeechService.cancel();\n SpeechRecognitionComponent.TOOLBAR_ACTIVE = false;\n }\n\n ngOnDestroy(): void {\n this.onDestroy$.next();\n this.onDestroy$.complete();\n }\n\n toggleTextToSpeech() {\n if (this.isPlayingTextToSpeech) {\n this.textToSpeechService.pause();\n } else {\n if (this.isDoneTextToSpeech) {\n this.speak();\n } else {\n this.textToSpeechService.resume();\n }\n }\n this.isPlayingTextToSpeech = !this.isPlayingTextToSpeech;\n }\n\n restartTextToSpeech() {\n this.textToSpeechService.cancel();\n this.speak();\n }\n\n updateVoiceSpeed() {\n const voiceSpeedIndex = this.VOICE_SPEEDS.indexOf(this.voiceSpeed);\n const nextVoiceSpeedIndex = this.VOICE_SPEEDS[voiceSpeedIndex + 1] ? voiceSpeedIndex + 1 : 0;\n this.voiceSpeed = this.VOICE_SPEEDS[nextVoiceSpeedIndex];\n this.textToSpeechService.cancel();\n this.speak()\n }\n\n stopListening() {\n this.speechRecognitionService.stop();\n }\n\n get isListening() {\n return this.speechRecognitionService.isListening\n }\n\n get hasSpeechRecognitionBrowserApi() {\n return this.speechRecognitionService.hasSupportSpeechRecognition;\n }\n\n get isDisabledTextToSpeech() {\n const hasTextToSpeechVoice = this.textToSpeechService.hasVoice;\n return !this.textToSpeech || !hasTextToSpeechVoice || this.isListening || SpeechRecognitionComponent.TOOLBAR_ACTIVE;\n }\n\n private setTextAreaValue(value: string) {\n this.textAreaElement.value = value;\n }\n\n private stopTextToSpeech() {\n this.isPlayingTextToSpeech = false;\n this.textToSpeechService.cancel();\n }\n\n private speak() {\n this.isDoneTextToSpeech = false;\n this.isPlayingTextToSpeech = true;\n this.textToSpeechService.speak(this.textToSpeech, this.voiceSpeed).then(() => {\n this.isPlayingTextToSpeech = false;\n this.isDoneTextToSpeech = true;\n });\n }\n\n private get textToSpeech() {\n return this.textAreaElement.value;\n }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SpeechRecognitionComponent } from './speech-recognition/speech-recognition.component';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@NgModule({\n declarations: [SpeechRecognitionComponent],\n imports: [\n CommonModule,\n TranslateModule\n ],\n exports: [SpeechRecognitionComponent]\n})\nexport class SpeechRecognitionModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TextAreaComponent } from './text-area/text-area.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SpeechRecognitionModule } from '../speech-recognition/speech-recognition.module';\nimport { KeyFilterModule } from 'primeng/keyfilter';\n\n\n\n@NgModule({\n declarations: [TextAreaComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SpeechRecognitionModule,\n KeyFilterModule\n ],\n exports: [TextAreaComponent]\n})\nexport class TextAreaModule { }\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport { Component, ContentChild, EventEmitter, Input, Output } from \"@angular/core\";\nimport { HeaderComponent } from \"../structure/header.component\";\nimport { FieldSetToggle } from \"./fieldset.models\";\n\n@Component({\n selector: \"s-fieldset\",\n templateUrl: \"./fieldset.component.html\",\n styleUrls: [\"./fieldset.component.scss\"],\n animations: [\n trigger('toggleAnimation', [\n transition(':enter', [\n style({ opacity: 0, height: 0 }),\n animate('300ms ease-out', style({ opacity: 1, height: '*' })),\n ]),\n transition(':leave', [\n style({ opacity: 1, height: '*' }),\n animate('300ms ease-in', style({ opacity: 0, height: 0 })),\n ]),\n state('open', style({ opacity: 1, height: '*' })),\n state('closed', style({ opacity: 0, height: 0 })),\n transition('open <=> closed', animate('300ms ease')),\n ]),\n ],\n})\nexport class FieldsetComponent {\n @Input() legend = '';\n @Input() toggleable = false;\n @Input() icon = '';\n @Input() destroyOnHide = true;\n @ContentChild(HeaderComponent) readonly headerTemplate: HeaderComponent;\n\n @Output() beforeToggle = new EventEmitter<FieldSetToggle>();\n @Output() afterToggle = new EventEmitter<FieldSetToggle>();\n active = true;\n\n toggleActive(originalEvent: PointerEvent | KeyboardEvent) {\n if (!this.toggleable) {\n return;\n }\n this.beforeToggle.next({ collapsed: this.active, originalEvent })\n this.active = !this.active;\n this.afterToggle.next({ collapsed: this.active, originalEvent })\n }\n}\n","import { Directive, ElementRef, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\n\n@Directive({\n selector: '[sActivatedContent]'\n})\nexport class AccessibilityEventDirective implements OnDestroy {\n @Output() sActivatedContent = new EventEmitter<PointerEvent | KeyboardEvent>();\n @Input() tabindex = 0;\n private readonly EVENT_LISTENER = (event: PointerEvent | KeyboardEvent) => {\n if (event instanceof KeyboardEvent) {\n const key = event.key;\n const validKeys = ['Enter', ' '];\n if (!validKeys.includes(key)) {\n return;\n }\n }\n this.sActivatedContent.next(event);\n }\n constructor(private readonly elementRef: ElementRef<HTMLElement>) {\n this.setTabIndex();\n this.checkAccessbilityEvents();\n }\n\n\n private setTabIndex() {\n const hasTabIndex = this.element.tabIndex >= 0;\n if (hasTabIndex) {\n return;\n }\n this.element.tabIndex = this.tabindex;\n }\n\n private checkAccessbilityEvents() {\n this.element.addEventListener('click', this.EVENT_LISTENER);\n this.element.addEventListener('keydown', this.EVENT_LISTENER);\n }\n\n private get element() {\n return this.elementRef.nativeElement;\n }\n\n ngOnDestroy(): void {\n this.element.removeEventListener('click', this.EVENT_LISTENER);\n this.element.removeEventListener('keydown', this.EVENT_LISTENER);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AccessibilityEventDirective } from './directives/accessibility-event.directive';\n\n\n\n@NgModule({\n declarations: [AccessibilityEventDirective],\n imports: [\n CommonModule\n ],\n exports: [AccessibilityEventDirective]\n})\nexport class AccessibilityEventsModule { }\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { FieldsetComponent } from \"./fieldset.component\";\nimport { AccessibilityEventsModule } from \"../accessibility-events/accessibility-events.module\";\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\n\n@NgModule({\n imports: [CommonModule, AccessibilityEventsModule, BrowserAnimationsModule],\n declarations: [FieldsetComponent],\n exports: [FieldsetComponent],\n})\nexport class FieldsetModule { }\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { HotkeyModule, HotkeysService } from \"angular2-hotkeys\";\nimport { AutoCompleteModule } from \"primeng/autocomplete\";\nimport { ButtonModule as PrimeButtonModule } from \"primeng/button\";\nimport { CalendarModule } from \"primeng/calendar\";\nimport { CheckboxModule } from \"primeng/checkbox\";\nimport { ChipsModule } from \"primeng/chips\";\nimport { DialogModule } from \"primeng/dialog\";\nimport { DropdownModule } from \"primeng/dropdown\";\nimport { InputMaskModule } from \"primeng/inputmask\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { InputTextareaModule } from \"primeng/inputtextarea\";\nimport { KeyFilterModule } from \"primeng/keyfilter\";\nimport { MultiSelectModule } from \"primeng/multiselect\";\nimport { PanelModule } from \"primeng/panel\";\nimport { RadioButtonModule } from \"primeng/radiobutton\";\nimport { SliderModule } from 'primeng/slider';\nimport { TableModule as PrimeNGTableModule } from \"primeng/table\";\n\nimport { MouseEventsModule } from \"../mouse-events/mouse-events.module\";\nimport { IAssistService } from \"./services/IAssist/iassist.service\";\n\n// Modules\nimport { BadgeModule } from \"../badge/badge.module\";\nimport { BignumberInputModule } from \"../bignumber-input/bignumber-input.module\";\nimport { ButtonModule } from \"../button/button.module\";\nimport { CalendarMaskModule } from \"../calendar-mask/calendar-mask.module\";\nimport { ControlErrorsModule } from \"../control-errors/control-errors.module\";\nimport { CountryPhonePickerModule } from \"../country-phone-picker/country-phone-picker.module\";\nimport { EmptyStateModule } from \"../empty-state/empty-state.module\";\nimport { FileUploadModule } from \"../file-upload/file-upload.module\";\nimport { InfoSignModule } from \"../info-sign/info-sign.module\";\nimport { LoadingStateModule } from \"../loading-state/loading-state.module\";\nimport { LocaleModule } from \"../locale/locale.module\";\nimport { LocalizedNumberInputModule } from \"../localized-number-input/localized-number-input.module\";\nimport { MaskFormatterModule } from \"../mask/mask-formatter.module\";\nimport { NumberInputModule } from \"../number-input/number-input.module\";\nimport { PasswordStrengthModule } from \"../password-strength/password-strength.module\";\nimport { SwitchModule } from \"../switch/switch.module\";\nimport { TableHeaderCheckboxModule } from \"../table-header/table-header-checkox.module\";\nimport { TableModule } from \"../table/table.module\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\n\n// Components\nimport { AutocompleteFieldComponent } from \"./components/fields/autocomplete/autocomplete-field.component\";\nimport { BooleanFieldComponent } from \"./components/fields/boolean/boolean-field.component\";\nimport { BooleanSwitchFieldComponent } from \"./components/fields/boolean/boolean-switch-field.component\";\nimport { CalendarFieldComponent } from \"./components/fields/calendar/calendar-field.component\";\nimport { ChipsFieldComponent } from \"./components/fields/chips/chips-field.component\";\nimport { CountryPhonePickerFieldComponent } from \"./components/fields/country-phone-picker/country-phone-picker-field.component\";\nimport { FileUploadComponent } from \"./components/fields/file-upload/file-upload.component\";\nimport { LookupFieldComponent } from \"./components/fields/lookup/lookup-field.component\";\nimport { RadioButtonComponent } from \"./components/fields/radio-button/radio-button-field.component\";\nimport { SelectFieldComponent } from \"./components/fields/select/select-field.component\";\nimport { SliderFieldComponent } from \"./components/fields/slider/slider-field.component\";\nimport { TextAreaIAFieldComponent } from \"./components/fields/text-area-ia/text-area-ia-field.component\";\nimport { TextAreaFieldComponent } from \"./components/fields/text-area/text-area-field.component\";\nimport { FieldsetComponent } from \"./components/structure/fieldset/fieldset.component\";\nimport { SectionComponent } from \"./components/structure/section/section.component\";\n\n// Grid\nimport { RowComponent } from \"./components/grid/row/row.component\";\n// Lookup\nimport { LookupComponent } from \"./components/lookup/lookup.component\";\n\n// Dynamic-form\nimport { DynamicFieldComponent } from \"./components/dynamic-field/dynamic-field.component\";\nimport { DynamicFormComponent } from \"./dynamic-form.component\";\nimport { DynamicFormDirective } from \"./dynamic-form.directive\";\n\nimport { FieldLabelModule } from \"./components/field-label/field-label.module\";\nimport { BignumberFieldModule } from \"./components/fields/bignumber/bignumber-field.module\";\nimport { CheckboxFieldModule } from \"./components/fields/checkbox/checkbox-field.module\";\nimport { CurrencyFieldModule } from \"./components/fields/currency/currency-field.module\";\nimport { EditorFieldModule } from \"./components/fields/editor/editor-field.module\";\nimport { NumberFieldModule } from \"./components/fields/number/number-field.module\";\nimport { PasswordFieldModule } from \"./components/fields/password/password-field.module\";\nimport { ProfilePictureModule } from \"./components/fields/profile-picture/profile-picture-field.module\";\nimport { TextFieldModule } from \"./components/fields/text/text-field.module\";\nimport { ButtonFieldComponent } from \"./components/fields/button-field/button-field.component\";\nimport { TextAreaModule } from \"../text-area/text-area.module\";\nimport { FieldsetModule } from \"../fieldset/fieldset.module\";\nimport { StructureModule } from \"../structure/structure.module\";\n\n@NgModule({\n imports: [\n AutoCompleteModule,\n BadgeModule,\n BignumberInputModule,\n ButtonModule,\n CalendarMaskModule,\n CalendarModule,\n CheckboxModule,\n ChipsModule,\n CommonModule,\n ControlErrorsModule,\n CountryPhonePickerModule,\n DialogModule,\n DropdownModule,\n EmptyStateModule,\n FormsModule,\n HotkeyModule,\n InputMaskModule,\n InputTextareaModule,\n InputTextModule,\n KeyFilterModule,\n LoadingStateModule,\n LocaleModule,\n LocalizedNumberInputModule,\n PanelModule,\n PrimeButtonModule,\n PrimeNGTableModule,\n MultiSelectModule,\n NumberInputModule,\n RadioButtonModule,\n ReactiveFormsModule,\n TooltipModule,\n\n FieldsetModule,\n StructureModule,\n TableHeaderCheckboxModule,\n FileUploadModule,\n TableModule,\n InfoSignModule,\n MaskFormatterModule,\n HotkeyModule.forRoot(),\n MouseEventsModule,\n SwitchModule,\n PasswordStrengthModule,\n SliderModule,\n TranslateModule.forChild(),\n\n PasswordFieldModule,\n TextFieldModule,\n NumberFieldModule,\n CurrencyFieldModule,\n BignumberFieldModule,\n CheckboxFieldModule,\n ProfilePictureModule,\n EditorFieldModule,\n FieldLabelModule,\n TextAreaModule\n ],\n declarations: [\n AutocompleteFieldComponent,\n BooleanFieldComponent,\n BooleanSwitchFieldComponent,\n CalendarFieldComponent,\n ChipsFieldComponent,\n CountryPhonePickerFieldComponent,\n DynamicFieldComponent,\n DynamicFormComponent,\n DynamicFormDirective,\n FieldsetComponent,\n FileUploadComponent,\n LookupComponent,\n LookupFieldComponent,\n RadioButtonComponent,\n RowComponent,\n SectionComponent,\n SelectFieldComponent,\n SliderFieldComponent,\n TextAreaFieldComponent,\n TextAreaIAFieldComponent,\n ButtonFieldComponent\n ],\n exports: [DynamicFormComponent, LookupComponent],\n entryComponents: [\n AutocompleteFieldComponent,\n BooleanFieldComponent,\n BooleanSwitchFieldComponent,\n CalendarFieldComponent,\n ChipsFieldComponent,\n CountryPhonePickerFieldComponent,\n FieldsetComponent,\n FileUploadComponent,\n LookupFieldComponent,\n RadioButtonComponent,\n RowComponent,\n SectionComponent,\n SelectFieldComponent,\n SliderFieldComponent,\n TextAreaFieldComponent,\n TextAreaIAFieldComponent,\n ],\n providers: [\n HotkeysService,\n IAssistService,\n ]\n})\nexport class DynamicFormModule { }\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\n\n@Injectable()\nexport class CustomFieldsService {\n constructor(private http: HttpClient) {\n }\n\n public getCustomFields(domain: string, service: string, entity: string, endpoint: string): Observable<any> {\n const entityDto = { entityId: { domain_: domain, service_: service, id: entity } };\n return this.http.post(endpoint, entityDto);\n }\n\n public getFileLocationUrl(dto: {\n domain: string;\n service: string;\n entityName: string;\n field: string;\n fileName: string;\n }, endpoint: string): Observable<any> {\n return this.http.post(endpoint, dto);\n }\n\n public uploadTempFile(location: string, file: File) {\n return this.http.put(location, file, {\n reportProgress: true,\n observe: \"events\",\n headers: { \"Content-Type\": file.type }\n });\n }\n\n public requestAccess(objectId: string, endpoint: string) {\n return this.http.post(endpoint, { objectId });\n }\n\n public getFile(permanentUrl: string) {\n return this.http.get(permanentUrl, { responseType: \"blob\" });\n }\n}\n","import { HttpErrorResponse, HttpEventType } from \"@angular/common/http\";\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n SimpleChanges\n} from \"@angular/core\";\nimport {\n ControlContainer,\n ControlValueAccessor,\n FormArray,\n FormControl,\n FormGroup,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n Validator,\n ValidatorFn,\n Validators,\n} from \"@angular/forms\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\nimport BigNumber from \"bignumber.js\";\nimport * as moment_ from \"moment\";\nimport { BehaviorSubject, Observable, Subject, forkJoin, of, throwError } from \"rxjs\";\nimport { catchError, finalize, takeUntil } from \"rxjs/operators\";\n\nimport { NumberFieldComponent } from \"../dynamic-form/components/fields\";\nimport { FieldType, FormField, NumberField } from \"../dynamic-form/index\";\nimport { FileDto } from \"../file-upload/index\";\nimport { LocaleOptions } from \"../locale\";\nimport { LocaleService } from \"../locale/locale.service\";\nimport { CustomFieldsService } from \"./custom-fields.service\";\nimport { CustomFieldType } from \"./models/custom-field-type\";\n\nconst moment = moment_; // @HACK Necessary because of https://github.com/rollup/rollup/issues/670\n\n@Component({\n selector: \"s-custom-fields\",\n templateUrl: \"./custom-fields.component.html\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: CustomFieldsComponent,\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: CustomFieldsComponent,\n multi: true,\n },\n ],\n})\nexport class CustomFieldsComponent implements OnInit, OnDestroy, ControlValueAccessor, Validator, OnChanges, AfterViewInit {\n @Input()\n public domain: string;\n\n @Input()\n public service: string;\n\n @Input()\n public entity: string;\n\n @Input()\n public invalidErrorLabel = this.translateService.instant(\"platform.angular_components.invalid_value\");\n\n @Input()\n public entityObject: any;\n\n @Input()\n public customFieldsEndpoint = \"platform/field_customization/queries/getEntity\";\n\n @Input()\n public fileLocationEndpoint = \"platform/field_customization/actions/requestUpload\";\n\n @Input()\n public requestAccessEndpoint = \"platform/field_customization/actions/requestAccess\";\n\n @Input()\n public requiredErrorMessage: string;\n\n @Input()\n public displayTimeInfoSign: number;\n\n @Input()\n public showFileUploadDate: boolean = false;\n\n @Input()\n public ready$: BehaviorSubject<boolean>;\n\n @Input()\n public disableFields: boolean;\n\n public fields: FormField[] = [];\n public formGroup: FormGroup;\n private ready = false;\n private onChange: any;\n private onTouched: any;\n private value: any;\n private ngUsubscribe: Subject<void> = new Subject();\n private uploadCanceled: boolean;\n private hasBlob: boolean;\n private hasUploaded: boolean;\n\n constructor(\n private readonly customFieldsService: CustomFieldsService,\n private readonly localeService: LocaleService,\n private readonly sanitizer: DomSanitizer,\n private readonly translateService: TranslateService,\n @Optional() private controlContainer: ControlContainer\n ) { }\n\n public get hasCustomFields(): boolean {\n return !!this.fields?.length;\n }\n\n public get parentForm(): FormGroup {\n return this.controlContainer.control as FormGroup;\n }\n\n public get parentControl(): FormControl {\n return this.parentForm.get(\"custom\") as FormControl;\n }\n\n public ngOnInit(): void {\n this._validateInputs();\n this._createForm();\n this.addDisplayTimeInfoSignToFields();\n }\n\n public ngAfterViewInit(): void {\n this.enableOrDisableFields(this.disableFields);\n\n this.formGroup.valueChanges.subscribe(() => this.onChange?.(this.parseFieldsValues()));\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.disableFields) {\n this.enableOrDisableFields(changes.disableFields.currentValue);\n }\n }\n\n public ngOnDestroy() {\n this.ngUsubscribe.next();\n this.ngUsubscribe.complete();\n }\n\n public registerOnChange(fn: Function) {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: Function) {\n this.onTouched = fn;\n }\n\n public writeValue(value: any) {\n if (this.ready) {\n const newValue = this.parseValuesForFields(value);\n this.formGroup.patchValue(newValue);\n this.value = newValue;\n this.createFilesIfSetFormValuesAfterInit();\n } else {\n this.formGroup.patchValue(value || {});\n this.value = value;\n }\n }\n\n public setDisabledState(isDisabled: boolean) {\n if (isDisabled) this.formGroup.disable({ emitEvent: false });\n else this.formGroup.enable({ emitEvent: false });\n }\n\n public getCustomFields(): Observable<any> {\n if (this.entityObject && this.entityObject.entity_) {\n return of(this.entityObject);\n }\n return this.customFieldsService.getCustomFields(this.domain, this.service, this.entity, this.customFieldsEndpoint);\n }\n\n public validate() {\n const errors: any = {};\n Object.keys(this.formGroup.controls).forEach((field) => {\n const { errors: controlErrors } = this.formGroup.get(field);\n if (controlErrors) errors[field] = controlErrors;\n });\n return errors;\n }\n\n public cleanFields() {\n this.formGroup.reset();\n }\n\n private enableOrDisableFields(disabled: boolean): void {\n if (!this.formGroup) {\n return;\n }\n\n for (const controlName of Object.keys(this.formGroup.value)) {\n disabled ? this.formGroup.get(controlName).disable() : this.formGroup.get(controlName).enable();\n }\n }\n\n private _validateInputs(): void {\n if (!this.domain) throw new Error(\"You need to specify the custom-fields domain!\");\n if (!this.service) throw new Error(\"You need to specify the custom-fields service!\");\n if (!this.entity) throw new Error(\"You need to specify the custom-fields entity!\");\n }\n\n private _createForm(): void {\n this.formGroup = new FormGroup({});\n const observables = [this.getCustomFields(), this.localeService.get()];\n forkJoin(observables)\n .pipe(\n takeUntil(this.ngUsubscribe),\n finalize(() => {\n this.formGroup.markAsPristine();\n this.parentControl?.markAsPristine();\n\n if (this.ready$) this.ready$.next(true);\n })\n )\n .subscribe((response: any[]) => {\n const [customFieldsResponse, localeOptions] = response;\n const defaults: any = {};\n defaults[CustomFieldType.String] = {};\n defaults[CustomFieldType.Boolean] = { defaultValue: false };\n defaults[CustomFieldType.Integer] = {};\n defaults[CustomFieldType.Double] = { defaultMask: \"\" };\n defaults[CustomFieldType.Money] = {};\n defaults[CustomFieldType.Date] = {};\n defaults[CustomFieldType.DateTime] = {};\n defaults[CustomFieldType.LocalDateTime] = {};\n defaults[CustomFieldType.Time] = {};\n defaults[CustomFieldType.Blob] = {};\n defaults[CustomFieldType.Enum] = {};\n defaults[CustomFieldType.Binary] = {};\n defaults[CustomFieldType.Any] = {};\n\n if (!customFieldsResponse || !customFieldsResponse.entity_) return;\n const { active, fields } = customFieldsResponse.entity_;\n if (!active) return;\n\n fields\n .filter((field: any) => field.customizable && field.customization && field.customization.active)\n .forEach((field: any) => {\n const formField = this.getFormField(field, localeOptions);\n\n const fieldType = field.type;\n\n if (field.type === CustomFieldType.Blob && this.value && this.value[formField.name])\n this.createBlobToFileUpload(formField);\n\n const { validationRegex } = field.customization;\n\n const asIsTypes = [\n CustomFieldType.Boolean,\n CustomFieldType.Money,\n CustomFieldType.Date,\n CustomFieldType.DateTime,\n CustomFieldType.LocalDateTime,\n CustomFieldType.Time,\n ];\n\n const validators = [];\n if (validationRegex && !asIsTypes.includes(fieldType)) validators.push(Validators.pattern(validationRegex));\n if (fieldType === CustomFieldType.Integer && !formField.mask) validators.push(Validators.pattern(/^\\-?\\d*$/));\n\n if (formField.required?.()) {\n validators.push(Validators.required);\n }\n\n const control = new FormControl(\n { value: defaults[fieldType].defaultValue, disabled: this.formGroup.disabled },\n validators\n );\n\n this.formGroup.addControl(formField.name, control);\n\n this.fields.push(formField);\n });\n\n this.createFieldCustomization(fields);\n this.formGroup.patchValue(this.parseValuesForFields(this.value));\n this.ready = true;\n });\n }\n\n private parseValuesForFields(values: any) {\n const parsedValues = { ...values };\n\n this.fields.forEach((field) => {\n const { type, name } = field;\n const value = values && values[name];\n\n /**\n * Tratamento exclusivo para campos boolean que tem o status Empty\n * Essa condicional necessita estar antes do if (!value) return;\n * Pois ela tem um status que usa null no valor do campo radio boolean\n */\n if (type === FieldType.Boolean) {\n const isString = typeof value === \"string\";\n const notValid = !isString && typeof value !== \"boolean\";\n if (notValid) {\n parsedValues[name] = null;\n } else {\n // Condicional para campos que retornam string de boolen do backand\n if (isString) {\n parsedValues[name] = value === \"true\" ? true : false;\n } else {\n parsedValues[name] = value;\n }\n }\n }\n\n if (!value) return;\n\n switch (type) {\n case FieldType.Date:\n parsedValues[name] = moment(value).toDate();\n break;\n case FieldType.DateTime:\n parsedValues[name] = moment(value).toDate();\n break;\n case FieldType.LocalDateTime:\n parsedValues[name] = moment(value, \"YYYY-MM-DD[T]HH:mm:ss.SSS\").toDate();\n break;\n case FieldType.Time:\n parsedValues[name] = moment(value, \"HH:mm:ss\").toDate();\n break;\n }\n });\n\n return parsedValues;\n }\n\n /**\n * Algumas equipes só setam valor no formulário, após o carregamento da tela\n * Como é bem padrão isso, foi necessário criar esse método para gerar o file\n * após setar o valor no formulário\n */\n private createFilesIfSetFormValuesAfterInit() {\n if (!this.hasUploaded) {\n this.fields\n .filter((field: FormField) => field.type === FieldType.Blob)\n .forEach((field) => {\n if (this.formGroup.get(field.name).value) this.createBlobToFileUpload(field);\n });\n }\n }\n\n private parseFieldsValues() {\n const parsedValues: any = {};\n\n this.fields.forEach((field) => {\n const { type, name, mask, scale } = field;\n let value = this.formGroup.get(name).value;\n\n if (value) {\n switch (type) {\n case FieldType.Number:\n if (mask) value = new BigNumber(value).toFixed(scale as number).toString();\n break;\n case FieldType.Date:\n value = moment(value).format(\"YYYY-MM-DD\");\n break;\n case FieldType.DateTime:\n value = moment(value).format();\n break;\n case FieldType.LocalDateTime:\n value = moment(value).format(\"YYYY-MM-DD[T]HH:mm:ss.SSS\");\n break;\n case FieldType.Time:\n value = moment(value).format(\"HH:mm:ss\");\n break;\n }\n }\n\n if ((value === null || value === undefined) && this.isTypeNumberOrEnum(type)) {\n parsedValues[name] = field.multiple ? [] : null;\n } else {\n parsedValues[name] = value;\n }\n });\n\n if (this.hasBlob) parsedValues[\"fieldCustomization\"] = this.formGroup.get(\"fieldCustomization\").value;\n return parsedValues;\n }\n\n private isTypeNumberOrEnum(type: FieldType): boolean {\n const numberOrEnum = [FieldType.Number, FieldType.Enum];\n return numberOrEnum.includes(type);\n }\n\n private getFormField(field: any, localeOptions: LocaleOptions): FormField {\n let parameters: Partial<FormField>;\n\n switch (field.type) {\n case CustomFieldType.Blob:\n parameters = this.getBlobParameters();\n break;\n case CustomFieldType.Boolean:\n parameters = this.getBooleanParameters();\n break;\n case \"Enumeration\":\n case CustomFieldType.Enum:\n field.type = FieldType.Enum;\n parameters = this.getEnumParameters(field);\n break;\n case CustomFieldType.Money:\n parameters = {\n type: FieldType.Custom,\n CustomFieldComponentClass: NumberFieldComponent,\n CustomFieldClass: NumberField,\n precision: 15,\n scale: 2,\n leftAddon: {\n label: localeOptions?.number?.currencySymbol ?? \"R$\",\n },\n ignoreLabel: true,\n };\n break;\n case CustomFieldType.Double:\n parameters = {\n type: FieldType.Custom,\n CustomFieldComponentClass: NumberFieldComponent,\n CustomFieldClass: NumberField,\n precision: 15,\n scale: 2,\n ignoreLabel: true,\n };\n break;\n case CustomFieldType.Integer:\n parameters = {\n type: FieldType.Custom,\n CustomFieldComponentClass: NumberFieldComponent,\n CustomFieldClass: NumberField,\n precision: 15,\n scale: 0,\n ignoreLabel: true,\n };\n break;\n case CustomFieldType.Any:\n field.type = FieldType.String;\n break;\n }\n\n return new FormField({\n name: field.id,\n label: field.customization.label,\n tooltip: field.customization.tooltip,\n infoSign: field.customization.infoSign,\n type: field.type,\n mask: field.customization.mask,\n required: () => field.customization.mandatory,\n calendarOptions: localeOptions.calendar,\n currencyOptions: localeOptions.number,\n ...parameters,\n });\n }\n\n private getEnumParameters(field: any): object {\n return {\n showClear: true,\n multiple: field.customization.customEnumeration.multiple,\n options: field.customization.customEnumeration.values.map((e: any) => ({ label: e.value, value: e.key })),\n };\n }\n\n private getBooleanParameters(): object {\n return {\n optionsLabel: {\n true: this.getTranslateLabel(`true_label`),\n false: this.getTranslateLabel(`false_label`),\n empty: this.getTranslateLabel(`empty_label`),\n },\n };\n }\n\n private getBlobParameters(): object {\n return {\n size: {\n sm: 12,\n md: 12,\n lg: 12,\n xl: 12,\n },\n accept: \"image/*, application/*, text/*\",\n chooseLabel: this.getTranslateLabel(`choose_label`),\n removeLabel: this.getTranslateLabel(`remove_label`),\n cancelLabel: this.getTranslateLabel(`cancel_label`),\n successTooltip: this.getTranslateLabel(`success_tooltip`),\n multiple: false,\n onUploadFile: (event: { files: FileDto[] }, formfield: FormField) => {\n this.hasUploaded = true;\n this.uploadFile(event, formfield);\n },\n onRemoveFile: (event: { file: FileDto }, formfield: FormField) => {\n this.removeFile(event, formfield);\n },\n onCancelUpload: (event: number, formfield: FormField) => {\n this.cancelUpload(event, formfield);\n },\n onDownloadFile: (event: { index: number; anchor: ElementRef }, formfield: FormField) => {\n this.downloadFile(event, formfield);\n },\n showFileUploadDate: this.showFileUploadDate,\n };\n }\n\n /**\n * à necessário criar o fieldCustomization quando há um Blob na entidade para gerar o\n * com os fields inseridos e deletados.\n */\n private createFieldCustomization(fields: any[]): void {\n this.hasBlob = !!fields.filter((field: any) => field.type === CustomFieldType.Blob).length;\n if (this.hasBlob) {\n this.formGroup.addControl(\n \"fieldCustomization\",\n new FormArray([\n new FormGroup({\n domain: new FormControl(this.domain),\n service: new FormControl(this.service),\n entity: new FormControl(this.entity),\n toDelete: new FormControl({ value: {}, disabled: false }),\n toInsert: new FormControl({ value: {}, disabled: false }),\n }),\n ])\n );\n }\n }\n\n private createBlobToFileUpload(field: FormField) {\n const objectId = this.value[field.name] ? this.value[field.name] : this.formGroup.get(field.name).value;\n const fileName = objectId.substring(objectId.lastIndexOf(\"/\") + 1);\n const file: Partial<FileDto> = { name: fileName, objectId, savedFile: true };\n field.files = [file as FileDto];\n }\n\n private downloadFile(event: { index: number; anchor: ElementRef }, field: FormField) {\n const { index, anchor } = event;\n const currentFile = field.files[index];\n if (currentFile.objectURL) {\n anchor.nativeElement.click();\n } else {\n this.customFieldsService\n .requestAccess(currentFile.objectId, this.requestAccessEndpoint)\n .pipe(takeUntil(this.ngUsubscribe))\n .subscribe((data: { fileName: string; uri: string }) => {\n const { fileName, uri } = data;\n this.customFieldsService\n .getFile(uri)\n .pipe(takeUntil(this.ngUsubscribe))\n .subscribe((blob: any) => {\n const newFile = <FileDto>new File([blob], fileName);\n newFile.objectURL = this.sanitizer.bypassSecurityTrustUrl(uri);\n anchor.nativeElement.setAttribute(\"href\", uri);\n newFile.objectId = currentFile.objectId;\n newFile.savedFile = true;\n field.files[index] = newFile;\n field.files = [...field.files];\n anchor.nativeElement.click();\n });\n });\n }\n }\n\n private uploadFile(event: { files: FileDto[] }, formField: any): void {\n const { files } = event;\n const field = this.fields.find((record: FormField) => record.name === formField.name);\n\n // Se ocorrer um upload, já existindo um arquivo com upload feito. à necessário excluir o mesmo.\n if (field.files && field.files.length) {\n this.removeFile({ file: field.files[0] }, field);\n }\n field.files = files;\n\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n if (!file.savedFile && !file.progress) {\n file.isUploading = true;\n this.formGroup.get(field.name).setValidators(isUploading(file));\n this.formGroup.get(field.name).updateValueAndValidity();\n this.customFieldsService\n .getFileLocationUrl(\n {\n domain: this.domain,\n service: this.service,\n entityName: this.entity,\n field: field.name,\n fileName: file.name,\n },\n this.fileLocationEndpoint\n )\n .pipe(\n takeUntil(this.ngUsubscribe),\n catchError((err: HttpErrorResponse) => of(this.defaltCatchError(field, err, i)))\n )\n .subscribe((data: any) => {\n const { location, version, objectId } = data;\n file.version = version;\n file.objectId = objectId;\n file[\"uploadSubscribe\"] = this.customFieldsService\n .uploadTempFile(location, file)\n .pipe(\n takeUntil(this.ngUsubscribe),\n catchError((err: HttpErrorResponse) => of(this.defaltCatchError(field, err, i))),\n finalize(() => {\n file.isUploading = false;\n })\n )\n .subscribe((response: any) => {\n const { type } = response;\n if (!this.uploadCanceled) {\n if (type === HttpEventType.UploadProgress)\n file.progress = Math.round(response.loaded / response.total) * 100;\n else if (type === HttpEventType.Response) {\n file.objectURL = this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(file));\n\n const value = { objectId, name: file.name, version: file.version };\n const toInsert = this.formGroup.get(\"fieldCustomization\").value[0].toInsert;\n this.formGroup.get(\"fieldCustomization\").value[0].toInsert = {\n ...toInsert,\n [field.name]: value,\n };\n this.formGroup.get(field.name).setValue(`${file.objectId}/${file.name}`);\n this.formGroup.get(field.name).clearValidators();\n this.formGroup.get(field.name).updateValueAndValidity();\n field.files = [file];\n }\n } else if (this.uploadCanceled && type === HttpEventType.Response) this.uploadCanceled = false;\n });\n field.files = [file];\n });\n }\n }\n }\n\n private removeFile(event: { file: FileDto }, formField: any): void {\n const { file } = event;\n const field = this.fields.find((record: FormField) => record.name === formField.name);\n field.files = [];\n if (file.objectId) {\n // Quando é um arquivo já salvo o objectId já é no formato \"objectId/name\"\n const value = file.savedFile ? `${file.objectId}` : `${file.objectId}/${file.name}`;\n const toDelete = this.formGroup.get(\"fieldCustomization\").value[0].toDelete;\n delete this.formGroup.get(\"fieldCustomization\").value[0].toInsert[field.name];\n this.formGroup.get(\"fieldCustomization\").value[0].toDelete = {\n ...toDelete,\n [field.name]: [...(toDelete[field.name] || []), value],\n };\n }\n\n this.formGroup.get(field.name).clearValidators();\n this.formGroup.get(field.name).setValue(\"\");\n this.formGroup.get(field.name).updateValueAndValidity();\n }\n\n private cancelUpload(index: number, formField: any): void {\n this.uploadCanceled = true;\n const field = this.fields.find((record: FormField) => record.name === formField.name);\n field.files[index][\"uploadSubscribe\"].unsubscribe();\n field.files = [];\n delete this.formGroup.get(\"fieldCustomization\").value[0].toInsert[field.name];\n this.formGroup.get(field.name).clearValidators();\n this.formGroup.get(field.name).setValue(\"\");\n this.formGroup.get(field.name).updateValueAndValidity();\n }\n\n private defaltCatchError(field: FormField, err: HttpErrorResponse, index: number): Observable<never> {\n const { files } = field;\n files[index].error = err;\n files[index].isUploading = false;\n field.files = [...files];\n this.formGroup.get(field.name).setValidators([errorOnUpload(files[index])]);\n this.formGroup.get(field.name).updateValueAndValidity();\n return throwError(new Error(\"error in upload file. Details: \" + err.message));\n }\n\n private getTranslateLabel(label: string): string {\n return this.translateService.instant(`${this.domain}.${this.service}.${label}`);\n }\n\n private addDisplayTimeInfoSignToFields(): void {\n this.fields.forEach((field) => {\n field.displayTimeInfoSign = this.displayTimeInfoSign;\n });\n }\n}\n\nfunction isUploading(file: FileDto): ValidatorFn {\n return () => (file.isUploading ? { isUploading: true } : null);\n}\n\nfunction errorOnUpload(file: FileDto): ValidatorFn {\n return () => (file.error ? { uploadError: true } : null);\n}\n","export enum ViewMode {\n QuarterHour = \"quarterHour\",\n Hour = \"hour\",\n QuarterDay = \"quarterDay\",\n HalfDay = \"halfDay\",\n Day = \"day\",\n Week = \"week\",\n Month = \"month\",\n Year = \"year\",\n}\n","import { CommonModule } from \"@angular/common\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { DynamicFormModule } from \"../dynamic-form/index\";\nimport { LocaleModule } from \"../locale/index\";\nimport { CustomFieldsComponent } from \"./custom-fields.component\";\nimport { CustomFieldsService } from \"./custom-fields.service\";\nimport { TranslateModule, TranslateService } from \"@ngx-translate/core\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n HttpClientModule,\n LocaleModule,\n DynamicFormModule,\n TranslateModule\n ],\n declarations: [CustomFieldsComponent],\n exports: [CustomFieldsComponent],\n providers: [CustomFieldsService, TranslateService]\n})\nexport class CustomFieldsModule {\n}\n","import { AfterViewInit, Directive, Input } from \"@angular/core\";\nimport { DomHandler } from \"primeng/dom\";\n\n@Directive({\n selector: \"p-table[sEditableOverlay]\",\n})\nexport class EditableOverlayDirective implements AfterViewInit {\n @Input()\n public table: any;\n\n constructor() {}\n\n ngAfterViewInit() {\n this.table.bindDocumentEditListener = this.bindDocument.bind(this);\n }\n\n public isFromOverlayTrigger(event: any) {\n return event.path.some((path: any) => path.className && path.className.includes(\"ng-trigger-overlayAnimation\"));\n }\n\n public isFromModal(event: any) {\n return event.path.some((path: any) => path.className && path.className.includes(\"s-lookup\"));\n }\n\n private bindDocument() {\n if (!this.table.documentEditListener) {\n this.table.documentEditListener = (event: any) => {\n if (\n !this.isFromOverlayTrigger(event) &&\n !this.isFromModal(event) &&\n this.table.editingCell &&\n !this.table.editingCellClick &&\n this.table.isEditingCellValid()\n ) {\n DomHandler.removeClass(this.table.editingCell, \"ui-editing-cell\");\n this.table.editingCell = null;\n this.table.unbindDocumentEditListener();\n }\n\n this.table.editingCellClick = false;\n };\n\n document.addEventListener(\"click\", this.table.documentEditListener);\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { EditableOverlayDirective } from \"./editable-overlay.directive\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [EditableOverlayDirective],\n exports: [EditableOverlayDirective],\n})\nexport class EditableOverlayModule {}\n","import * as moment_ from \"moment\";\n\nconst moment = moment_;\n\nconst YEAR = \"year\";\nconst MONTH = \"month\";\nconst DAY = \"day\";\nconst HOUR = \"hour\";\nconst MINUTE = \"minute\";\nconst SECOND = \"second\";\nconst MILLISECOND = \"millisecond\";\n\nexport abstract class DateUtils {\n public static parse(date: Date | string): Date {\n return moment(date).toDate();\n }\n\n public static toString(date: Date, with_time = false) {\n let result = with_time ? moment(date, \"YYYY-MM-DD hh:mm:ss.SSS\") : moment(date, \"YYYY-MM-DD\");\n\n return result.toString();\n }\n\n public static format(date: any, formatString: string = \"YYYY-MM-DD HH:mm:ss.SSS\", lang: string = \"en\"): string {\n const monthName = moment(date)\n .locale(lang)\n .startOf(\"month\")\n .format(\"MMMM\");\n \n const monthNameCapitalized = monthName.charAt(0).toUpperCase() + monthName.slice(1);\n const dateToFormat = moment(date).locale(lang);\n const format_map = {\n YYYY: dateToFormat.format(\"YYYY\"),\n MM: dateToFormat.format(\"MM\"),\n DD: dateToFormat.format(\"DD\"),\n ddd: dateToFormat.format(\"ddd\").toUpperCase().replace(\".\", \"\"), // Removendo alterações nas traduções que acontecem nos diferentes idiomas\n HH: dateToFormat.format(\"HH\"),\n mm: dateToFormat.format(\"mm\"),\n ss: dateToFormat.format(\"ss\"),\n SSS: dateToFormat.format(\"SSS\"),\n D: dateToFormat.format(\"D\"),\n MMMM: monthNameCapitalized,\n MMM: monthNameCapitalized,\n };\n\n let str = formatString;\n const formattedValues: any[] = [];\n\n Object.keys(format_map)\n .sort((a, b) => b.length - a.length)\n .forEach(key => {\n if (str.includes(key)) {\n str = str.replace(key, `$${formattedValues.length}`);\n formattedValues.push(format_map[key]);\n }\n });\n\n formattedValues.forEach((value, i) => {\n str = str.replace(`$${i}`, value);\n });\n\n return str;\n }\n\n public static diff(fistDate: Date, secondDate: Date, scale: string) {\n const milliseconds = moment(fistDate).diff(secondDate, MILLISECOND);\n const seconds = moment(fistDate).diff(secondDate, SECOND);\n const minutes = moment(fistDate).diff(secondDate, MINUTE);\n const hours = moment(fistDate).diff(secondDate, HOUR);\n const days = moment(fistDate).diff(secondDate, DAY);\n const months = moment(fistDate).diff(secondDate, MONTH);\n const years = moment(fistDate).diff(secondDate, YEAR);\n \n if (!scale.endsWith(\"s\")) {\n scale += \"s\";\n }\n \n return Math.floor(\n {\n milliseconds,\n seconds,\n minutes,\n hours,\n days,\n months,\n years,\n }[scale]\n );\n }\n\n public static today(): Date {\n const dateStr = moment().format(\"YYY-MM-DD\");\n return new Date(dateStr);\n }\n\n public static now(): Date {\n return moment().toDate();\n }\n\n public static add(date: Date, quantity: any, scale: any): Date {\n return moment(date).add(quantity, scale).toDate();\n }\n\n public static startOf(date: Date, scale: string): Date {\n const scores = {\n [YEAR]: 6,\n [MONTH]: 5,\n [DAY]: 4,\n [HOUR]: 3,\n [MINUTE]: 2,\n [SECOND]: 1,\n [MILLISECOND]: 0,\n };\n\n function shouldReset(_scale: any) {\n const max_score = scores[scale];\n return scores[_scale] <= max_score;\n }\n\n const vals: any = [\n date.getFullYear(),\n shouldReset(YEAR) ? 0 : date.getMonth(),\n shouldReset(MONTH) ? 1 : date.getDate(),\n shouldReset(DAY) ? 0 : date.getHours(),\n shouldReset(HOUR) ? 0 : date.getMinutes(),\n shouldReset(MINUTE) ? 0 : date.getSeconds(),\n shouldReset(SECOND) ? 0 : date.getMilliseconds(),\n ];\n\n return new Date(vals[0], vals[1], vals[2], vals[3], vals[4], vals[5], vals[6]);\n }\n\n public static clone(date: Date): Date {\n return moment(date).toDate();\n }\n\n public static getDateValues(date: Date) {\n return [\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds(),\n ];\n }\n\n public static getDaysInMonth(date: Date) {\n return moment(date, \"YYYY-MM\").daysInMonth();\n }\n}\n","\n\nexport const $ = (expr: any, con: any) => {\n return typeof expr === 'string'\n ? (con || document).querySelector(expr)\n : expr || null;\n}\n\nexport const createSVG = (tag: any, attrs: any) => {\n const elem = document.createElementNS(\"http://www.w3.org/2000/svg\", tag);\n for (let attr in attrs) {\n if (attr === \"append_to\") {\n const parent = attrs.append_to;\n parent.appendChild(elem);\n } else if (attr === \"innerHTML\") {\n elem.innerHTML = attrs.innerHTML;\n } else {\n elem.setAttribute(attr, attrs[attr]);\n }\n }\n return elem;\n}\n\nexport const animateSVG = (svgElement: any, attr: any, from: any, to: any) => {\n const animatedSvgElement = getAnimationElement(svgElement, attr, from, to);\n\n if (animatedSvgElement === svgElement) {\n // triggered 2nd time programmatically\n // trigger artificial click event\n const event = document.createEvent(\"HTMLEvents\");\n event.initEvent(\"click\", true, true);\n // event.eventName = 'click'; TODO: Ver porque esta propriedade não existe\n animatedSvgElement.dispatchEvent(event);\n }\n}\n\nconst getAnimationElement = (svgElement: any, attr: any, from: any, to: any, dur = \"0.4s\", begin = \"0.1s\") => {\n const animEl = svgElement.querySelector(\"animate\");\n if (animEl) {\n $.attr(animEl, {\n attributeName: attr,\n from,\n to,\n dur,\n begin: \"click + \" + begin, // artificial click\n }, null);\n return svgElement;\n }\n\n const animateElement = createSVG(\"animate\", {\n attributeName: attr,\n from,\n to,\n dur,\n begin,\n calcMode: \"spline\",\n values: from + \";\" + to,\n keyTimes: \"0; 1\",\n keySplines: cubic_bezier(\"ease-out\"),\n });\n svgElement.appendChild(animateElement);\n\n return svgElement;\n}\n\nconst cubic_bezier = (name: any) => {\n return {\n ease: \".25 .1 .25 1\",\n linear: \"0 0 1 1\",\n \"ease-in\": \".42 0 1 1\",\n \"ease-out\": \"0 0 .58 1\",\n \"ease-in-out\": \".42 0 .58 1\",\n }[name];\n}\n\n$.on = (element: any, event: any, selector: any, callback: any) => {\n if (!callback) {\n callback = selector;\n $.bind(element, event, callback);\n } else {\n $.delegate(element, event, selector, callback);\n }\n};\n\n$.off = (element: any, event: any, handler: any) => {\n element.removeEventListener(event, handler);\n};\n\n$.bind = (element: any, event: any, callback: any) => {\n event.split(/\\s+/).forEach(function (event: any) {\n element.addEventListener(event, callback);\n });\n};\n\n$.delegate = (element: any, event: any, selector: any, callback: any) => {\n element.addEventListener(event, function (e: any) {\n const delegatedTarget = e.target.closest(selector);\n if (delegatedTarget) {\n e.delegatedTarget = delegatedTarget;\n callback.call(this, e, delegatedTarget);\n }\n });\n};\n\n$.closest = (selector: any, element: any) => {\n if (!element) { \n return null;\n }\n\n if (element.matches(selector)) {\n return element;\n }\n\n // TODO: Corrigir este problema\n // return $.closest(selector, element.parentNode);\n};\n\n$.attr = (element: any, attr: any, value: any) => {\n if (!value && typeof attr === \"string\") {\n return element.getAttribute(attr);\n }\n\n if (typeof attr === \"object\") {\n for (let key in attr) {\n $.attr(element, key, attr[key]);\n }\n return;\n }\n\n element.setAttribute(attr, value);\n};\n","import { DateUtils } from './utils/date-utils';\nimport { $, createSVG, animateSVG } from './utils/svg-utils';\nimport { ViewMode } from \"../../models/view-mode\";\n\nimport { Gantt } from \"./gantt\";\nimport { EnrichedTask } from \"../../models/task\";\nimport { Arrow } from \"./arrow\";\n\nexport class Bar {\n private _actionCompleted: boolean;\n private _gantt: Gantt;\n private _invalid: boolean;\n private _height: number;\n private _x: number;\n private _y: number;\n private _cornerRadius: number;\n private _duration: number;\n private _width: number;\n private _barGroup: any;\n\n private _arrows: Arrow[];\n private _group: any;\n private _task: EnrichedTask;\n private _element: any;\n\n private _isPopUpOpen = false;\n\n public get arrows(): Arrow[] {\n return this._arrows;\n }\n\n public set arrows(arrows: Arrow[]) {\n this._arrows = arrows;\n }\n\n public get task(): EnrichedTask {\n return this._task;\n }\n\n public get element() {\n return this._element;\n }\n\n public get group() {\n return this._group;\n }\n\n constructor(gantt: any, task: any) {\n this._setDefaults(gantt, task);\n this._prepare();\n this._draw();\n this._bind();\n }\n\n public updateBarPosition({ x, width }: any): void {\n const bar = this.element;\n if (x) {\n // get all x values of parent task\n const xs = this.task.dependencies.map((dep: any) => {\n return this._gantt.get_bar(dep).element.getX();\n });\n // child task must not go before parent\n const valid_x = xs.reduce((prev: any, curr: any) => {\n return x >= curr;\n }, x);\n if (!valid_x) {\n width = null;\n return;\n }\n this._updateAttr(bar, \"x\", x);\n }\n if (width && width >= this._gantt.options.columnWidth) {\n this._updateAttr(bar, \"width\", width);\n }\n this._updateLabelPosition();\n this._updateArrowPosition();\n }\n\n public dateChanged(): void {\n let changed = false;\n const { newStartDate, newEndDate } = this._computeStartEndDate();\n\n if (this.task.start !== newStartDate) {\n changed = true;\n this.task.start = newStartDate;\n }\n\n if (this.task.end !== newEndDate) {\n changed = true;\n this.task.end = newEndDate;\n }\n\n if (changed) {\n this._gantt.trigger_event(\"onDateChange\", [\n this.task,\n newStartDate,\n DateUtils.add(newEndDate, -1, \"second\"),\n ]);\n };\n }\n\n public setActionCompleted(): void {\n this._actionCompleted = true;\n setTimeout(() => {\n this._actionCompleted = false;\n }, 1000);\n }\n\n private _setDefaults(gantt: any, task: any) {\n this._actionCompleted = false;\n this._gantt = gantt;\n this._task = task;\n }\n\n private _prepare() {\n this._prepareValues();\n this._prepareHelpers();\n }\n\n private _prepareValues(): void {\n this._invalid = this.task.invalid;\n this._height = this._gantt.options.barHeight;\n this._x = this._computeX();\n this._y = this._computeY();\n this._cornerRadius = this._gantt.options.barCornerRadius;\n this._duration = DateUtils.diff(this.task.end, this.task.start, \"minute\") / this._gantt.options.step / 60.0;\n this._width = this._gantt.options.columnWidth * this._duration;\n this._group = createSVG(\"g\", {\n class: \"bar-wrapper \" + (this.task.custom_class || \"\"),\n \"data-id\": this.task.id,\n });\n this._barGroup = createSVG(\"g\", {\n class: \"bar-group\",\n append_to: this.group,\n });\n }\n\n private _prepareHelpers(): void {\n (SVGElement.prototype as any).getX = function () {\n return +this.getAttribute(\"x\");\n };\n (SVGElement.prototype as any).getY = function () {\n return +this.getAttribute(\"y\");\n };\n (SVGElement.prototype as any).getWidth = function () {\n return +this.getAttribute(\"width\");\n };\n (SVGElement.prototype as any).getHeight = function () {\n return +this.getAttribute(\"height\");\n };\n (SVGElement.prototype as any).getEndX = function () {\n return this.getX() + this.getWidth();\n };\n }\n\n private _draw(): void {\n this._drawBar();\n this._drawLabel();\n }\n\n private _drawBar(): void {\n this._element = createSVG(\"rect\", {\n x: this._x,\n y: this._y,\n width: this._width,\n height: this._height,\n rx: this._cornerRadius,\n ry: this._cornerRadius,\n class: \"bar\",\n append_to: this._barGroup,\n fill: this.task.color,\n });\n\n animateSVG(this.element, \"width\", 0, this._width);\n\n if (this._invalid) {\n this.element.classList.add(\"bar-invalid\");\n }\n }\n\n private _drawLabel(): void {\n createSVG(\"text\", {\n x: this._x + this._width / 2,\n y: this._y + this._height / 2,\n innerHTML: this.task.showTaskName ? this.task.name : \"\",\n class: \"bar-label\",\n append_to: this._barGroup,\n });\n // labels get BBox in the next tick\n requestAnimationFrame(() => this._updateLabelPosition());\n }\n\n private _bind(): void {\n if (!this._invalid) {\n this._setupClickEvent();\n }\n }\n\n private _setupClickEvent(): void {\n //TODO\n\n if(this._gantt.options.hasPopup) {\n $.on(this.group, \"focus \" + this._gantt.options.popupTrigger, (e: any) => {\n // just finished a move action, wait for a few seconds\n if (!this._actionCompleted) {\n this._showPopup();\n this._gantt.unselect_all();\n this.group.classList.add(\"active\");\n }\n }, null);\n\n $.on(this.group, \"dblclick\", (e: any) => {\n // just finished a move action, wait for a few seconds\n\n if (!this._actionCompleted) {\n this._gantt.trigger_event(\"onClick\", [this.task]);\n }\n }, null);\n } else {\n $.on(this.group, \"mouseenter\", (e: any) => {\n if(!this._isPopUpOpen) {\n this._showPopup({\n x: e.clientX,\n y: this.group.getBoundingClientRect().top + 30,\n position: 'middle'\n });\n this._isPopUpOpen = true;\n }\n }, null);\n\n $.on(this.group, \"mouseleave\", (e: any) => {\n this._gantt.hide_popup();\n this._isPopUpOpen = false;\n }, null);\n\n\n $.on(this.group, \"focus click\", (e: any) => {\n if (!this._actionCompleted) {\n this._gantt.unselect_all();\n this.group.classList.add(\"active\");\n this._gantt.trigger_event(\"onClick\", [this.task]);\n }\n }, null);\n }\n }\n\n private _showPopup(args?: any) {\n if (this._gantt.bar_being_dragged) {\n return;\n }\n\n const subtitle: any = {};\n\n if (!this._gantt.options.showOnlyHours) {\n subtitle.startDate = DateUtils.format(\n this.task.start,\n 'DD/MM/YYYY',\n this._gantt.options.language\n );\n subtitle.endDate = DateUtils.format(\n this.task.end,\n 'DD/MM/YYYY',\n this._gantt.options.language\n );\n }\n\n if (!this._gantt.options.showOnlyDays) {\n subtitle.startHour = DateUtils.format(\n this.task.start,\n 'HH:mm:ss',\n this._gantt.options.language\n );\n subtitle.endHour = DateUtils.format(\n this.task.end,\n 'HH:mm:ss',\n this._gantt.options.language\n );\n }\n\n this._gantt.show_popup({\n target_element: this.element,\n title: this.task.name,\n subtitle: subtitle,\n task: this.task,\n ...args\n });\n }\n\n private _computeStartEndDate(): { newStartDate: Date, newEndDate: Date } {\n const bar = this.element;\n const xInUnits = bar.getX() / this._gantt.options.columnWidth;\n const newStartDate = DateUtils.add(\n this._gantt.minDate,\n xInUnits * this._gantt.options.step,\n \"hour\"\n );\n const width_in_units = bar.getWidth() / this._gantt.options.columnWidth;\n const newEndDate = DateUtils.add(\n newStartDate,\n width_in_units * this._gantt.options.step,\n \"hour\"\n );\n\n return { newStartDate, newEndDate };\n }\n\n private _computeX() {\n const { step, columnWidth } = this._gantt.options;\n\n let x;\n if (this._gantt.view_is([ViewMode.QuarterHour, ViewMode.Hour, ViewMode.QuarterDay, ViewMode.HalfDay, ViewMode.Day])) {\n const diff = DateUtils.diff(this.task.start, this._gantt.minDate, \"minutes\");\n x = (diff / step) * (columnWidth / 60);\n } else {\n const diff = DateUtils.diff(this.task.start, this._gantt.minDate, \"hour\");\n x = (diff / step) * (columnWidth);\n }\n\n return x;\n }\n\n private _computeY() {\n return (\n this._gantt.options.headerHeight +\n this._gantt.options.padding +\n this.task._index * (this._height + this._gantt.options.padding)\n );\n }\n\n private _updateAttr(element: any, attr: any, value: any) {\n value = +value;\n if (!isNaN(value)) {\n element.setAttribute(attr, value);\n }\n return element;\n }\n\n private _updateLabelPosition(): void {\n const bar = this.element,\n label = this.group.querySelector(\".bar-label\");\n\n if (label.getBBox().width > bar.getWidth()) {\n label.classList.add(\"big\");\n label.setAttribute(\"x\", bar.getX() + bar.getWidth() + 5);\n } else {\n label.classList.remove(\"big\");\n label.setAttribute(\"x\", bar.getX() + bar.getWidth() / 2);\n }\n }\n\n private _updateArrowPosition(): void {\n this._arrows = this._arrows || [];\n for (let arrow of this._arrows) {\n arrow.update();\n }\n }\n}\n","export class Popup {\n private parent: any;\n private customHtml: any;\n private title: any;\n private startDate: any;\n private startHour: any;\n private endDate: any;\n private endHour: any;\n\n private pointer: any;\n\n constructor(parent: any, customHtml: any) {\n this.parent = parent;\n this.customHtml = customHtml;\n this.make();\n }\n\n public show(options: any) {\n if (!options.target_element) {\n throw new Error(\"target_element is required to show popup\");\n }\n if (!options.position) {\n options.position = \"left\";\n }\n const target_element = options.target_element;\n this.parent.style.display = 'block';\n\n if (this.customHtml) {\n let html = this.customHtml(options.task);\n html += '<div class=\"pointer\"></div>';\n this.parent.innerHTML = html;\n this.pointer = this.parent.querySelector(\".pointer\");\n } else {\n // set data\n this.title.innerHTML = options.title;\n this.startDate.innerHTML = options.subtitle.startDate ?? '';\n this.startHour.innerHTML = options.subtitle.startHour ?? '';\n this.endDate.innerHTML = options.subtitle.endDate ?? '';\n this.endHour.innerHTML = options.subtitle.endHour ?? '';\n\n this.parent.style.width = this.parent.clientWidth + \"px\";\n }\n\n // set position\n let positionMeta;\n if (target_element instanceof HTMLElement) {\n positionMeta = target_element.getBoundingClientRect();\n } else if (target_element instanceof SVGElement) {\n positionMeta = options.target_element.getBBox();\n }\n\n if (options.position === 'middle') {\n this.parent.style.position = 'fixed';\n this.parent.style.top = options.y + \"px\";\n\n this.pointer.style.transform = \"rotateZ(180deg)\";\n this.pointer.style.top = \"-10px\";\n\n if ((options.x - 17) + this.parent.offsetWidth > window.innerWidth) {\n this.parent.style.left = (options.x - this.parent.offsetWidth + 17) + \"px\";\n this.pointer.style.right = \"16px\";\n this.pointer.style.left = \"auto\";\n\n } else {\n this.parent.style.left = (options.x - 17) + \"px\";\n this.pointer.style.left = \"16px\";\n this.pointer.style.right = \"auto\";\n }\n\n } else if (options.position === 'left') {\n this.parent.style.left = positionMeta.x + (positionMeta.width + 10) + \"px\";\n this.parent.style.top = positionMeta.y + \"px\";\n\n this.pointer.style.transform = \"rotateZ(90deg)\";\n this.pointer.style.left = \"-7px\";\n this.pointer.style.top = \"2px\";\n }\n\n // show\n this.parent.style.opacity = 1;\n }\n\n private make() {\n this.parent.innerHTML = `\n <div class=\"popup\">\n <div class=\"wrp-title\">\n <span class=\"title\"></span>\n </div>\n <div class=\"wrp-subtitle\">\n <span class=\"icon fas fa-calendar-alt\"></span>\n <div style=\"margin-right: 15px\">\n <p class=\"startDate\"></p>\n <p class=\"startHour\"></p>\n </div>\n <div>\n <p class=\"endDate\"></p>\n <p class=\"endHour\"></p>\n </div>\n </div>\n <div class=\"pointer\"></div>\n </div>\n `;\n\n this.hide();\n\n this.title = this.parent.querySelector(\".title\");\n this.startDate = this.parent.querySelector(\".startDate\");\n this.startHour = this.parent.querySelector(\".startHour\");\n this.endDate = this.parent.querySelector(\".endDate\");\n this.endHour = this.parent.querySelector(\".endHour\");\n\n this.pointer = this.parent.querySelector(\".pointer\");\n }\n\n private hide() {\n this.parent.style.opacity = 0;\n this.parent.style.display = 'none';\n this.parent.style.left = 0;\n }\n}\n","import { createSVG } from './utils/svg-utils';\nimport { Gantt } from \"./gantt\";\nimport { Bar } from \"./bar\";\n\nexport class Arrow {\n private _gantt: Gantt;\n private _fromTask: Bar;\n private _toTask: Bar;\n private _path: any;\n private _element: any;\n\n constructor(gantt: Gantt, fromTask: Bar, toTask: Bar) {\n this._gantt = gantt;\n this._fromTask = fromTask;\n this._toTask = toTask;\n\n this.calculatePath();\n this.draw();\n }\n\n public get fromTask(): Bar {\n return this._fromTask;\n }\n\n public get toTask(): Bar {\n return this._toTask;\n }\n\n public get element() {\n return this._element;\n }\n\n public update() {\n this.calculatePath();\n this._element.setAttribute(\"d\", this._path);\n }\n\n private calculatePath() {\n let startX = this.fromTask.element.getX() + this.fromTask.element.getWidth() / 2;\n\n const condition = () =>\n this.toTask.element.getX() < startX + this._gantt.options.padding &&\n startX > this.fromTask.element.getX() + this._gantt.options.padding;\n\n while (condition()) {\n startX -= 10;\n }\n\n const startY = this._gantt.options.headerHeight +\n this._gantt.options.barHeight +\n (this._gantt.options.padding + this._gantt.options.barHeight) *\n this.fromTask.task._index +\n this._gantt.options.padding;\n const endX = this.toTask.element.getX() - this._gantt.options.padding / 2;\n const endY = this._gantt.options.headerHeight +\n this._gantt.options.barHeight / 2 +\n (this._gantt.options.padding + this._gantt.options.barHeight) *\n this.toTask.task._index +\n this._gantt.options.padding;\n const fromIsBelowTo = this.fromTask.task._index > this.toTask.task._index;\n const curve = this._gantt.options.arrowCurve;\n const clockwise = fromIsBelowTo ? 1 : 0;\n const curveY = fromIsBelowTo ? -curve : curve;\n const offset = fromIsBelowTo\n ? endY + this._gantt.options.arrowCurve\n : endY - this._gantt.options.arrowCurve;\n\n this._path = `\n M ${startX} ${startY}\n V ${offset}\n a ${curve} ${curve} 0 0 ${clockwise} ${curve} ${curveY}\n L ${endX} ${endY}\n m -5 -5\n l 5 5\n l -5 5`;\n\n if (this.toTask.element.getX() < this.fromTask.element.getX() + this._gantt.options.padding) {\n const down1 = this._gantt.options.padding / 2 - curve;\n const down2 = this.toTask.element.getY() + this.toTask.element.getHeight() / 2 - curveY;\n const left = this.toTask.element.getX() - this._gantt.options.padding;\n\n this._path = `\n M ${startX} ${startY}\n v ${down1}\n a ${curve} ${curve} 0 0 1 -${curve} ${curve}\n H ${left}\n a ${curve} ${curve} 0 0 ${clockwise} -${curve} ${curveY}\n V ${down2}\n a ${curve} ${curve} 0 0 ${clockwise} ${curve} ${curveY}\n L ${endX} ${endY}\n m -5 -5\n l 5 5\n l -5 5`;\n }\n }\n\n private draw() {\n this._element = createSVG(\"path\", {\n d: this._path,\n \"data-from\": this.fromTask.task.id,\n \"data-to\": this.toTask.task.id,\n });\n }\n}\n","import { Options } from \"../../models/options\";\nimport { ViewMode } from \"../../models/view-mode\";\n\nexport const defaultOptions: Options = {\n headerHeight: 94,\n columnWidth: 30,\n step: 24,\n barHeight: 20,\n barCornerRadius: 0,\n arrowCurve: 4,\n padding: 24,\n viewMode: ViewMode.Day,\n dateFormat: \"YYYY-MM-DD\",\n popupTrigger: \"click\",\n customPopupHtml: null,\n language: \"en\",\n allowMovement: true,\n hasPopup: true,\n showOnlyHours: false,\n showOnlyDays: false,\n};\n","import { DateUtils } from \"./utils/date-utils\";\nimport { $, createSVG } from \"./utils/svg-utils\";\nimport { Bar } from \"./bar\";\nimport { Popup } from \"./popup\";\nimport { Arrow } from \"./arrow\";\nimport { Options } from \"../../models/options\";\nimport { defaultOptions } from \"./gantt-options\";\nimport { ViewMode } from \"../../models/view-mode\";\nimport { Task, EnrichedTask } from \"../../models\";\n\nexport class Gantt {\n public options: Options;\n public tasks: EnrichedTask[];\n public dependency_map: any;\n\n private _minDate: Date;\n private _maxDate: Date;\n\n public dates: Date[];\n public layers: any;\n public bars: Bar[];\n public arrows: Arrow[];\n public bar_being_dragged: any;\n public $svg: any;\n public $container: HTMLDivElement;\n public popup_wrapper: HTMLDivElement;\n public popup: any;\n\n public get minDate(): Date {\n return this._minDate;\n }\n\n public get maxDate(): Date {\n return this._maxDate;\n }\n\n constructor(wrapper: any, tasks: Task[], options?: Options) {\n this.setup_options(options);\n this.setup_wrapper(wrapper);\n this.setup_tasks(tasks);\n // initialize with default view mode\n this.change_view_mode();\n this.bind_events();\n }\n\n private setup_wrapper(element: any) {\n let svg_element, wrapper_element;\n\n // CSS Selector is passed\n if (typeof element === \"string\") {\n element = document.querySelector(element);\n }\n\n // get the SVGElement\n if (element instanceof HTMLElement) {\n wrapper_element = element;\n svg_element = element.querySelector(\"svg\");\n } else if (element instanceof SVGElement) {\n svg_element = element;\n } else {\n throw new TypeError(\n \"Frappé Gantt only supports usage of a string CSS selector, HTML DOM element or SVG DOM element for the \\'element\\' parameter\"\n );\n }\n\n // svg element\n if (!svg_element) {\n // create it\n this.$svg = createSVG(\"svg\", {\n append_to: wrapper_element,\n class: \"gantt\",\n });\n } else {\n this.$svg = svg_element;\n this.$svg.classList.add(\"gantt\");\n }\n\n // wrapper element\n this.$container = document.createElement(\"div\");\n this.$container.classList.add(\"gantt-container\");\n if (this.options.containerWidth) {\n this.$container.style.width = this.options.containerWidth + 'px';\n }\n\n const parent_element = this.$svg.parentElement;\n parent_element.appendChild(this.$container);\n this.$container.appendChild(this.$svg);\n\n // popup wrapper\n this.popup_wrapper = document.createElement(\"div\");\n this.popup_wrapper.classList.add(\"popup-wrapper\");\n this.$container.appendChild(this.popup_wrapper);\n }\n\n private setup_options(options: any) {\n this.options = Object.assign({}, defaultOptions, options);\n }\n\n public setup_tasks(tasks: any) {\n // prepare tasks\n this.tasks = tasks.map((task: any, i: any) => {\n //standard colors if needed\n task.color = task.color || '#7892A1';\n\n // convert to Date objects\n task._start = DateUtils.parse(task.start);\n task._end = DateUtils.parse(task.end);\n\n // make task invalid if duration too large\n if (DateUtils.diff(task._end, task._start, \"year\") > 10) {\n task.end = null;\n }\n\n // cache index\n task._index = i;\n\n if (typeof task._row_id === \"number\") {\n task._index = task._row_id;\n }\n\n // invalid dates\n if (!task.start && !task.end) {\n const today = DateUtils.today();\n task._start = today;\n task._end = DateUtils.add(today, 2, \"day\");\n }\n\n if (!task.start && task.end) {\n task._start = DateUtils.add(task._end, -2, 'day');\n }\n\n if (task.start && !task.end) {\n task._end = DateUtils.add(task._start, 2, \"day\");\n }\n\n // if hours is not set, assume the last day is full day\n // e.g: 2018-09-09 becomes 2018-09-09 23:59:59\n const task_end_values = DateUtils.getDateValues(task._end);\n if (task_end_values.slice(3).every((d) => d === 0)) {\n task._end = DateUtils.add(task._end, 24, \"hour\");\n }\n\n // invalid flag\n if (!task.start || !task.end) {\n task.invalid = true;\n }\n\n // dependencies\n if (typeof task.dependencies === \"string\" || !task.dependencies) {\n let deps = [];\n if (task.dependencies) {\n deps = task.dependencies\n .split(',')\n .map((d: any) => d.trim())\n .filter((d: any) => d);\n }\n task.dependencies = deps;\n }\n\n // uids\n if (!task.id) {\n task.id = generate_id(task);\n }\n\n return task;\n });\n\n this.setup_dependencies();\n }\n\n private setup_dependencies() {\n this.dependency_map = {};\n for (let t of this.tasks) {\n for (let d of t.dependencies) {\n this.dependency_map[d] = this.dependency_map[d] || [];\n this.dependency_map[d].push(t.id);\n }\n }\n }\n\n public refresh(tasks: Task[]) {\n this.setup_tasks(tasks);\n this.change_view_mode();\n }\n\n public change_view_mode(mode = this.options.viewMode) {\n this.setup_gantt_dates();\n this.update_view_scale(mode);\n this.setup_dates();\n this.render();\n // fire viewmode_change event\n this.trigger_event(\"onViewChange\", [mode]);\n }\n\n private update_view_scale(view_mode: any) {\n this.options.viewMode = view_mode;\n // this.isHourView = false;\n if (view_mode === ViewMode.QuarterHour) {\n this.options.step = 24 / 24 / 4;\n this.options.columnWidth = 50;\n } else if (view_mode === ViewMode.Hour) {\n this.options.step = 24 / 24;\n this.options.columnWidth = 50;\n } else if (view_mode === ViewMode.Day) {\n this.options.step = 24;\n this.options.columnWidth = 50;\n } else if (view_mode === ViewMode.HalfDay) {\n this.options.step = 24 / 2;\n this.options.columnWidth = 50;\n } else if (view_mode === ViewMode.QuarterDay) {\n this.options.step = 24 / 4;\n this.options.columnWidth = 50;\n } else if (view_mode === ViewMode.Week) {\n this.options.step = 24 * 7;\n this.options.columnWidth = 140;\n } else if (view_mode === ViewMode.Month) {\n this.options.step = 24 * 30;\n this.options.columnWidth = 120;\n } else if (view_mode === ViewMode.Year) {\n this.options.step = 24 * 365;\n this.options.columnWidth = 120;\n }\n }\n\n private setup_dates() {\n this.setup_date_values();\n }\n\n private setup_gantt_dates() {\n this._minDate = null;\n this._maxDate = null;\n\n for (let task of this.tasks) {\n // set global start and end date\n if (!this.minDate || task.start < this.minDate) {\n this._minDate = DateUtils.startOf(task.start, 'day');\n }\n if (!this.maxDate || task.end > this.maxDate) {\n this._maxDate = task.end;\n }\n }\n\n switch (this.options.viewMode) {\n case ViewMode.QuarterHour:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 15), \"minutes\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 15, \"minutes\");\n case ViewMode.Hour:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 1), \"hour\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 1, \"hour\");\n break;\n case ViewMode.QuarterDay:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 6), \"hour\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 6, \"hour\");\n break;\n case ViewMode.HalfDay:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 12), \"hour\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 12, \"hour\");\n break;\n case ViewMode.Day:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 1), \"day\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 1, \"day\");\n break;\n case ViewMode.Week:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 1), \"week\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 1, \"week\");\n break;\n case ViewMode.Month:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 1), \"month\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 1, \"month\");\n break;\n case ViewMode.Year:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 1), \"year\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 1, \"year\");\n break;\n }\n }\n\n private setup_date_values() {\n this.dates = [];\n let cur_date = null;\n\n while (cur_date === null || cur_date < this.maxDate) {\n if (!cur_date) {\n cur_date = DateUtils.clone(this.minDate);\n } else {\n if (this.view_is(ViewMode.Year)) {\n cur_date = DateUtils.add(cur_date, 1, \"year\");\n } else if (this.view_is(ViewMode.Month)) {\n cur_date = DateUtils.add(cur_date, 1, \"month\");\n } else {\n cur_date = DateUtils.add(\n cur_date,\n this.options.step,\n 'hour'\n );\n }\n }\n this.dates.push(cur_date);\n }\n\n if (this.options.containerWidth) {\n const columnWidth = (this.options.containerWidth - 1) / this.dates.length\n this.options.columnWidth = columnWidth < 45 ? 45 : columnWidth;\n }\n }\n\n private bind_events() {\n this.bind_grid_click();\n this.bind_bar_events();\n }\n\n private render() {\n this.clear();\n this.setup_layers();\n this.make_grid();\n this.make_dates();\n this.make_bars();\n this.make_arrows();\n this.map_arrows_on_bars();\n this.set_width();\n this.set_scroll_position();\n }\n\n private setup_layers() {\n this.layers = {};\n const layers = [\"grid\", \"date\", \"arrow\", \"progress\", \"bar\", \"details\"];\n // make group layers\n for (let layer of layers) {\n this.layers[layer] = createSVG('g', {\n class: layer,\n append_to: this.$svg,\n });\n }\n }\n\n private make_grid() {\n this.make_grid_background();\n this.make_grid_rows();\n this.make_grid_header();\n this.make_grid_highlights();\n this.make_grid_ticks();\n }\n\n private make_grid_background() {\n let grid_width = this.dates.length * this.options.columnWidth;\n\n if (this.options.containerWidth) {\n grid_width = this.options.containerWidth;\n }\n\n const distinct_rows = [...new Set(this.tasks.map((x: any) => x._row_id))];\n const grid_height = this.options.headerHeight +\n this.options.padding / 2 +\n (this.options.barHeight + this.options.padding) *\n distinct_rows.length;\n\n createSVG(\"rect\", {\n x: 0,\n y: 0,\n width: grid_width,\n height: grid_height,\n class: \"grid-background\",\n append_to: this.layers.grid,\n });\n\n $.attr(this.$svg, {\n height: grid_height,\n width: \"100%\",\n }, null);\n }\n\n private make_grid_rows() {\n const rows_layer = createSVG(\"g\", { append_to: this.layers.grid });\n const lines_layer = createSVG(\"g\", { append_to: this.layers.grid });\n\n const row_width = this.dates.length * this.options.columnWidth;\n const row_height = this.options.barHeight + this.options.padding;\n //TODO: ajustar o posicionamento das linhas\n let row_y = this.options.headerHeight + this.options.padding / 2;\n\n this.tasks.forEach(_ => {\n createSVG(\"rect\", {\n x: 0,\n y: row_y,\n width: row_width,\n height: row_height,\n class: \"grid-row\",\n append_to: rows_layer,\n });\n\n createSVG(\"line\", {\n x1: 0,\n y1: row_y + row_height,\n x2: row_width,\n y2: row_y + row_height,\n class: \"row-line\",\n append_to: lines_layer,\n });\n\n row_y += this.options.barHeight + this.options.padding;\n });\n }\n\n private make_grid_header() {\n // const addIsHourView = this.isHourView ? 25 : 10\n const header_width = this.dates.length * this.options.columnWidth;\n const header_height = this.options.headerHeight + 10;\n createSVG(\"rect\", {\n x: 0,\n y: 0,\n width: header_width,\n height: header_height,\n class: \"grid-header\",\n append_to: this.layers.grid,\n });\n }\n\n private make_grid_ticks() {\n let tick_x = 0;\n let tick_y = this.options.headerHeight + this.options.padding / 2;\n let tick_height =\n (this.options.barHeight + this.options.padding) *\n this.tasks.length;\n\n for (let date of this.dates) {\n let tick_class = \"tick\";\n\n if (this.view_is(ViewMode.QuarterHour) && date.getHours() === 0 && date.getMinutes() === 0) {\n // thick tick for first hour of day.\n tick_class += \" thick\";\n } else if (this.view_is([ViewMode.Hour, ViewMode.QuarterDay, ViewMode.HalfDay]) && date.getHours() === 0) {\n // thick tick for first hour of day.\n tick_class += \" thick\";\n } else if (this.view_is(ViewMode.Day) && date.getDate() === 1) {\n // thick tick for monday\n tick_class += \" thick\";\n } else if (this.view_is(ViewMode.Week) && date.getDate() >= 1 && date.getDate() < 8) {\n // thick tick for first week\n tick_class += \" thick\";\n } else if (this.view_is(ViewMode.Month) && date.getMonth() % 3 === 0) {\n // thick ticks for quarters\n tick_class += \" thick\";\n }\n\n createSVG(\"path\", {\n d: `M ${tick_x} ${tick_y} v ${tick_height}`,\n class: tick_class,\n append_to: this.layers.grid,\n });\n\n if (this.view_is(ViewMode.Month)) {\n tick_x +=\n (DateUtils.getDaysInMonth(date) *\n this.options.columnWidth) /\n 30;\n } else {\n tick_x += this.options.columnWidth;\n }\n }\n }\n\n make_grid_highlights() {\n if (this.view_is(ViewMode.Day)) {\n const width = this.options.columnWidth;\n const height = (this.options.barHeight + this.options.padding) *\n this.tasks.length +\n this.options.headerHeight +\n this.options.padding / 2;\n\n let x = 0;\n\n for (let date of this.dates) {\n\n let y = (this.options.headerHeight + this.options.padding) / 2;\n\n let isToday = date == DateUtils.today();\n let isWeekend = (date.getDay() == 0 || date.getDay() == 6);\n let className;\n\n if (isToday) {\n className = \"today-highlight\";\n y = (this.options.headerHeight + this.options.padding) / 2;\n } else if (isWeekend) {\n className = \"weekend-highlight\";\n }\n\n const rx = 3;\n const ry = 3;\n\n if (isToday || isWeekend) {\n createSVG(\"rect\", {\n x,\n y,\n rx,\n ry,\n width,\n height,\n class: className,\n append_to: this.layers.grid\n });\n }\n\n x += this.options.columnWidth;\n }\n }\n }\n\n private make_dates() {\n const dates = this.get_dates_to_draw();\n\n for (let i = 0; i < dates.length; i++) {\n const date = dates[i];\n\n createSVG(\"text\", {\n x: date.lower_x,\n y: date.lower_y + 20,\n innerHTML: date.lower_text,\n class: \"title-2\",\n append_to: this.layers.date,\n });\n\n if (date.middle_text) {\n createSVG(\"text\", {\n x: date.middle_x,\n y: date.middle_y,\n innerHTML: date.middle_text,\n class: \"middle-text\",\n append_to: this.layers.date,\n });\n }\n\n if (date.upper_text) {\n const $upper_text = createSVG(\"text\", {\n x: date.upper_x,\n y: date.upper_y,\n innerHTML: date.upper_text,\n class: \"upper-text\",\n append_to: this.layers.date,\n });\n\n // remove out-of-bound dates\n if (\n $upper_text.getBBox().x2 > this.layers.grid.getBBox().width\n ) {\n $upper_text.remove();\n }\n }\n }\n }\n\n private get_dates_to_draw() {\n let last_date: any = null;\n const dates = this.dates.map((date: any, i: any) => {\n const d = this.get_date_info(date, last_date, i);\n last_date = date;\n return d;\n });\n return dates;\n }\n\n private get_date_info(date: Date, last_date: Date, i: any) {\n if (!last_date) {\n last_date = DateUtils.add(date, 1, \"year\");\n }\n\n const date_text = {\n // quarter hour\n quarterHourUpper: date.getDate() !== last_date.getDate()\n ? DateUtils.format(date, \"D MMM\", this.options.language)\n : \"\",\n\n quarterHourLower: DateUtils.format(date, \"HH:mm\", this.options.language),\n\n // hour\n hourUpper: date.getDate() !== last_date.getDate()\n ? DateUtils.format(date, \"D MMM\", this.options.language)\n : \"\",\n\n hourLower: DateUtils.format(date, \"HH:mm\", this.options.language),\n\n // quarter day\n quarterDayUpper: date.getDate() !== last_date.getDate()\n ? DateUtils.format(date, \"D MMM\", this.options.language)\n : \"\",\n\n quarterDayLower: DateUtils.format(date, \"HH:mm\", this.options.language),\n\n // half day\n halfDayUpper: (date.getDate() !== last_date.getDate())\n ? (((date.getMonth() !== last_date.getMonth()) || i < 2)\n ? DateUtils.format(date, \"D MMM\", this.options.language)\n : DateUtils.format(date, \"D\", this.options.language))\n : \"\",\n\n halfDayLower: DateUtils.format(date, \"HH:mm\", this.options.language),\n\n // day\n dayUpper: ((date.getMonth() !== last_date.getMonth()) || i === 0)\n ? DateUtils.format(date, \"MMMM\", this.options.language)\n : \"\",\n\n dayMiddle: DateUtils.format(date, \"ddd\", this.options.language),\n\n dayLower: DateUtils.format(date, \"D\", this.options.language),\n\n // week\n weekUpper: date.getMonth() !== last_date.getMonth()\n ? DateUtils.format(date, \"MMMM\", this.options.language)\n : \"\",\n\n weekLower: date.getMonth() !== last_date.getMonth()\n ? DateUtils.format(date, \"D MMM\", this.options.language)\n : DateUtils.format(date, \"D\", this.options.language),\n\n // month\n monthUpper: date.getFullYear() !== last_date.getFullYear()\n ? DateUtils.format(date, \"YYYY\", this.options.language)\n : \"\",\n\n monthLower: DateUtils.format(date, \"MMMM\", this.options.language),\n\n // year\n yearUpper: date.getFullYear() !== last_date.getFullYear() \n ? DateUtils.format(date, \"YYYY\", this.options.language)\n : \"\",\n\n yearLower: DateUtils.format(date, \"YYYY\", this.options.language),\n };\n\n // Descontando 20 para adcionar uma segunda linha de informação no cabeçalho\n const base_pos = {\n x: i * this.options.columnWidth,\n upper_y: this.options.headerHeight - 20 - 25,\n middle_y: this.options.headerHeight - 20,\n lower_y: this.options.headerHeight - 20,\n };\n const x_pos = {\n quarterHourUpper: (this.dates.length < 14) ? (this.options.columnWidth) : (this.options.columnWidth * 24 / 2),\n quarterHourMiddle: this.options.columnWidth / 2,\n quarterHourLower: this.options.columnWidth / 2,\n\n hourUpper: (this.dates.length < 14) ? (this.options.columnWidth) : (this.options.columnWidth * 24 / 2),\n hourMiddle: this.options.columnWidth / 2,\n hourLower: this.options.columnWidth / 2,\n\n quarterDayUpper: this.options.columnWidth * 4 / 2,\n quarterDayMiddle: this.options.columnWidth / 2,\n quarterDayLower: this.options.columnWidth / 2,\n \n halfDayUpper: this.options.columnWidth * 2 / 2,\n halfDayMiddle: this.options.columnWidth / 2,\n halfDayLower: this.options.columnWidth / 2,\n \n dayUpper: (this.dates.length < 15) ? (this.options.columnWidth) : ((this.options.columnWidth * 30) / 2),\n dayMiddle: this.options.columnWidth / 2 - 12,\n dayLower: this.options.columnWidth / 2,\n \n weekUpper: (this.options.columnWidth * 4) / 2,\n weekMiddle: 0,\n weekLower: 0,\n \n monthUpper: (this.dates.length < 15) ? (this.options.columnWidth) : ((this.options.columnWidth * 12) / 2),\n monthMiddle: 0,\n monthLower: this.options.columnWidth / 2,\n \n yearUpper: (this.options.columnWidth * 30) / 2,\n yearMiddle: this.options.columnWidth / 2,\n yearLower: this.options.columnWidth / 2,\n };\n\n return {\n upper_text: date_text[`${this.options.viewMode}Upper`],\n middle_text: date_text[`${this.options.viewMode}Middle`],\n lower_text: date_text[`${this.options.viewMode}Lower`],\n upper_x: base_pos.x + x_pos[`${this.options.viewMode}Upper`],\n upper_y: base_pos.upper_y,\n middle_x: base_pos.x + x_pos[`${this.options.viewMode}Middle`],\n middle_y: base_pos.middle_y,\n lower_x: base_pos.x + x_pos[`${this.options.viewMode}Lower`],\n lower_y: base_pos.lower_y,\n date,\n };\n }\n\n private make_bars() {\n this.bars = this.tasks.map((task: any) => {\n const bar = new Bar(this, task);\n this.layers.bar.appendChild(bar.group);\n return bar;\n });\n }\n\n private make_arrows() {\n this.arrows = [];\n for (let task of this.tasks) {\n let arrows = [];\n arrows = task.dependencies\n .map((task_id: any) => {\n const dependency = this.get_task(task_id);\n if (!dependency) return;\n const arrow = new Arrow(\n this,\n this.bars[dependency._index], // from_task\n this.bars[task._index] // to_task\n );\n this.layers.arrow.appendChild(arrow.element);\n return arrow;\n })\n .filter(Boolean); // filter falsy values\n this.arrows = this.arrows.concat(arrows);\n }\n }\n\n private map_arrows_on_bars() {\n for (let bar of this.bars) {\n bar.arrows = this.arrows.filter((arrow: Arrow) => {\n return (\n arrow.fromTask.task.id === bar.task.id ||\n arrow.toTask.task.id === bar.task.id\n );\n });\n }\n }\n\n private set_width() {\n const cur_width = this.$svg.getBoundingClientRect().width;\n const actual_width = this.$svg\n .querySelector(\".grid .grid-row\")\n .getAttribute(\"width\");\n if (cur_width < actual_width) {\n this.$svg.setAttribute(\"width\", actual_width);\n }\n }\n\n private set_scroll_position() {\n const parent_element = this.$svg.parentElement;\n if (!parent_element) return;\n\n const hours_before_first_task = DateUtils.diff(\n this.get_oldest_starting_date(),\n this.minDate,\n \"hour\"\n );\n\n const scroll_pos =\n (hours_before_first_task / this.options.step) *\n this.options.columnWidth -\n this.options.columnWidth;\n\n parent_element.scrollLeft = scroll_pos;\n }\n\n private bind_grid_click() {\n $.on(\n this.$svg,\n this.options.popupTrigger,\n \".grid-row, .grid-header\",\n () => {\n this.unselect_all();\n this.hide_popup();\n }\n );\n }\n\n private bind_bar_events() {\n let is_dragging = false;\n let x_on_start = 0;\n let is_resizing_left = false;\n let is_resizing_right = false;\n let parent_bar_id: any = null;\n let bars: Bar[] = [];\n this.bar_being_dragged = null;\n\n function action_in_progress() {\n return is_dragging || is_resizing_left || is_resizing_right;\n }\n\n $.on(this.$svg, \"mousedown\", \".bar-wrapper, .handle\", (e: any, element: any) => {\n const bar_wrapper = $.closest(\".bar-wrapper\", element);\n\n if (element.classList.contains(\"left\")) {\n is_resizing_left = true;\n } else if (element.classList.contains(\"right\")) {\n is_resizing_right = true;\n } else if (element.classList.contains(\"bar-wrapper\") && this.options.allowMovement) {\n is_dragging = true;\n }\n\n bar_wrapper.classList.add(\"active\");\n\n x_on_start = e.offsetX;\n\n parent_bar_id = bar_wrapper.getAttribute(\"data-id\");\n const ids = [\n parent_bar_id,\n ...this.get_all_dependent_tasks(parent_bar_id),\n ];\n bars = ids.map((id) => this.get_bar(id));\n\n this.bar_being_dragged = parent_bar_id;\n\n bars.forEach((bar) => {\n const $bar = bar.element;\n $bar.ox = $bar.getX();\n $bar.oy = $bar.getY();\n $bar.owidth = $bar.getWidth();\n $bar.finaldx = 0;\n });\n });\n\n\n $.on(this.$svg, \"mousemove\", (e: any) => {\n if (!action_in_progress()) {\n return;\n }\n\n const dx = e.offsetX - x_on_start;\n\n bars.forEach((bar) => {\n const $bar = bar.element;\n $bar.finaldx = this.get_snap_position(dx);\n this.hide_popup();\n if (is_resizing_left) {\n if (parent_bar_id === bar.task.id) {\n bar.updateBarPosition({\n x: $bar.ox + $bar.finaldx,\n width: $bar.owidth - $bar.finaldx,\n });\n } else {\n bar.updateBarPosition({\n x: $bar.ox + $bar.finaldx,\n });\n }\n } else if (is_resizing_right) {\n if (parent_bar_id === bar.task.id) {\n bar.updateBarPosition({\n width: $bar.owidth + $bar.finaldx,\n });\n }\n } else if (is_dragging) {\n bar.updateBarPosition({ x: $bar.ox + $bar.finaldx });\n }\n });\n }, null);\n\n\n document.addEventListener(\"mouseup\", (e: any) => {\n if (is_dragging || is_resizing_left || is_resizing_right || !this.options.allowMovement) {\n bars.forEach((bar) => bar.group.classList.remove(\"active\"));\n }\n\n is_dragging = false;\n is_resizing_left = false;\n is_resizing_right = false;\n });\n\n $.on(this.$svg, \"mouseup\", (e: any) => {\n this.bar_being_dragged = null;\n bars.forEach((bar) => {\n const $bar = bar.element;\n if (!$bar.finaldx) return;\n bar.dateChanged();\n bar.setActionCompleted();\n });\n }, null);\n }\n\n private get_all_dependent_tasks(task_id: any) {\n let out: any[] = [];\n let to_process = [task_id];\n while (to_process.length) {\n const deps = to_process.reduce((acc, curr) => {\n acc = acc.concat(this.dependency_map[curr]);\n return acc;\n }, []);\n\n out = out.concat(deps);\n to_process = deps.filter((d: any) => !to_process.includes(d));\n }\n\n return out.filter(Boolean);\n }\n\n private get_snap_position(dx: any) {\n let odx = dx,\n rem,\n position;\n\n if (this.view_is(ViewMode.Hour)) {\n rem = dx % (this.options.columnWidth / 6);\n position = odx - rem + (rem < this.options.columnWidth / 12 ? 0 : this.options.columnWidth / 6);\n } else if (this.view_is(ViewMode.Week)) {\n rem = dx % (this.options.columnWidth / 7);\n position = odx - rem + (rem < this.options.columnWidth / 14 ? 0 : this.options.columnWidth / 7);\n } else if (this.view_is(ViewMode.Month)) {\n rem = dx % (this.options.columnWidth / 30);\n position = odx - rem + (rem < this.options.columnWidth / 60 ? 0 : this.options.columnWidth / 30);\n } else {\n rem = dx % this.options.columnWidth;\n position = odx - rem + (rem < this.options.columnWidth / 2 ? 0 : this.options.columnWidth);\n }\n return position;\n }\n\n public unselect_all() {\n [...this.$svg.querySelectorAll(\".bar-wrapper\")].forEach((el) => {\n el.classList.remove(\"active\");\n });\n }\n\n public view_is(modes: ViewMode | ViewMode[]) {\n if (Array.isArray(modes)) {\n return modes.some((mode) => this.options.viewMode === mode);\n }\n\n return this.options.viewMode === modes;\n }\n\n private get_task(id: any) {\n return this.tasks.find((task: any) => {\n return task.id === id;\n });\n }\n\n public get_bar(id: any): Bar {\n return this.bars.find((bar: any) => {\n return bar.task.id === id;\n });\n }\n\n public show_popup(options: any) {\n if (!this.popup) {\n this.popup = new Popup(\n this.popup_wrapper,\n this.options.customPopupHtml\n );\n }\n this.popup.show(options);\n }\n\n public hide_popup() {\n this.popup && this.popup.hide();\n }\n\n public trigger_event(event: string, args: any) {\n if (this.options[event]) {\n this.options[event].apply(null, args);\n }\n }\n\n private get_oldest_starting_date() {\n return this.tasks\n .map((task: any) => task._start)\n .reduce((prev_date: any, cur_date: any) =>\n cur_date <= prev_date ? cur_date : prev_date\n );\n }\n\n private clear() {\n this.$svg.innerHTML = '';\n }\n}\n\nfunction generate_id(task: any) {\n return task.name + \"_\" + Math.random().toString(36).slice(2, 12);\n}\n","export enum GlobalSearchSizeEnum {\n STANDARD = \"STANDARD\",\n MEDIUM = \"MEDIUM\",\n SMALL = \"SMALL\"\n}\n","import { AfterViewInit, Component, Input, OnChanges, OnInit, Output, ViewEncapsulation, EventEmitter, SimpleChanges, ElementRef, ViewChild } from \"@angular/core\";\n\nimport { Gantt } from \"./components/gantt/gantt\";\nimport { TaskGroup, Task, EnrichedTask } from \"./models/task\"\nimport { ViewMode } from \"./models/view-mode\";\n\n@Component({\n selector: \"s-gantt\",\n templateUrl: \"./gantt.component.html\",\n styleUrls: [\n \"./gantt.component.scss\",\n \"./components/gantt/gantt.scss\",\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class GanttComponent implements AfterViewInit, OnChanges, OnInit {\n @Input()\n public columnTitle: string;\n\n @Input()\n public multipleTaskPerLine = false;\n\n @Input()\n public showSideTable = true;\n\n @Input()\n public viewMode = ViewMode.Day;\n\n @Input()\n public tasks: TaskGroup[];\n\n @Input()\n public marginBeforeStart?: number;\n\n @Input()\n public marginAfterEnd?: number;\n\n @Input()\n public allowMovement = true;\n\n @Input()\n public hasPopup = true;\n\n @Input()\n public containerWidth: number;\n\n @Input()\n public fullWidth = false;\n\n @Input()\n public showOnlyHours = false;\n\n @Input()\n public showOnlyDays = false;\n\n @Output()\n public taskClicked: EventEmitter<Task> = new EventEmitter();\n\n @Output()\n public taskDateChanged: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public viewChanged: EventEmitter<ViewMode> = new EventEmitter();\n\n private _gantt: Gantt;\n\n public ngOnInit(): void {\n this._validateViewMode();\n this._validateTasks();\n }\n\n @ViewChild('outer')\n outer: ElementRef;\n\n @ViewChild('side')\n side: ElementRef;\n\n public ngAfterViewInit(): void {\n if (this.fullWidth) {\n this.containerWidth = this.outer.nativeElement.offsetWidth - this.side.nativeElement.offsetWidth;\n }\n\n this._gantt = new Gantt(\"#gantt\", this._filterTask(this.tasks), {\n viewMode: this.viewMode,\n marginBeforeStart: this.marginBeforeStart,\n marginAfterEnd: this.marginAfterEnd,\n language: \"pt-br\",\n allowMovement: this.allowMovement,\n hasPopup: this.hasPopup,\n containerWidth: this.containerWidth,\n showOnlyHours: this.showOnlyHours,\n showOnlyDays: this.showOnlyDays,\n onClick: (task: Task) => this.taskClicked.emit(task),\n onDateChange: (task: Task, start: any, end: any) => this.taskDateChanged.emit({ task, start, end }),\n onViewChange: (viewMode: ViewMode) => this.viewChanged.emit(viewMode),\n });\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (!this._gantt) {\n return;\n }\n\n if (changes.viewMode) {\n this._gantt.options.viewMode = changes.viewMode.currentValue;\n this._gantt.change_view_mode();\n }\n\n if (changes.tasks) {\n this._gantt.refresh(this._filterTask(changes.tasks.currentValue));\n }\n }\n\n private _filterTask(tasksGroups: TaskGroup[]): Task[] {\n const tasks: Task[] = [];\n\n if (this.multipleTaskPerLine) {\n tasksGroups.forEach((group: any, index: number) => {\n tasks.push(...group.tasks.map((task: EnrichedTask) => {\n return { ...task, _row_id: index };\n }));\n }, []);\n } else {\n let i = 0;\n tasksGroups.forEach((group: any) => {\n tasks.push(...group.tasks.map((task: EnrichedTask) => {\n return { ...task, _row_id: i++ };\n }));\n }, []);\n }\n\n return tasks;\n }\n\n private _validateViewMode(): void {\n if (![\n ViewMode.QuarterHour,\n ViewMode.Hour,\n ViewMode.QuarterDay,\n ViewMode.HalfDay,\n ViewMode.Day,\n ViewMode.Week,\n ViewMode.Month,\n ViewMode.Year,\n ].includes(this.viewMode)) {\n throw new Error(\"Invalid gantt view mode\");\n }\n }\n\n private _validateTasks(): void {\n this.tasks.forEach(group => {\n group.tasks.forEach(task => {\n if (task.start > task.end) {\n throw new Error(\"invalid task. The start date must be less than the end date.\");\n }\n });\n });\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\nimport { TaskGroup } from '../../models/task';\n\n@Component({\n selector: 'gantt-side-table',\n templateUrl: './side-table.component.html',\n styleUrls: ['./side-table.component.scss']\n})\nexport class SideTableComponent implements OnInit {\n public ROW_HEIGHT = 44;\n\n @Input()\n public columnTitle: string;\n\n @Input()\n public tasks: TaskGroup[];\n\n @Input()\n public multipleTaskPerLine = false;\n\n public ngOnInit(): void {\n this._removeEmptyTasks();\n }\n\n private _removeEmptyTasks(): void {\n this.tasks = this.tasks.filter(task => task.tasks.length);\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { GanttComponent } from \"./gantt.component\";\nimport { SideTableComponent } from \"./components/side-table/side-table.component\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\n\n@NgModule({\n imports: [CommonModule, TooltipModule],\n declarations: [\n GanttComponent,\n SideTableComponent,\n ],\n exports: [GanttComponent],\n})\nexport class GanttModule { }\n","export enum IAInsightTemplateTypes {\n Empty = \"empty\",\n Intro = \"intro\",\n NoPermission = \"noPermission\",\n}\n","import {\n Component,\n ContentChild,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n ElementRef\n} from \"@angular/core\";\n\nimport { ThumbnailComponent } from \"../../../thumbnail/thumbnail.component\";\nimport { GlobalSearchSizeEnum } from \"../../global-search-size.enum\";\n\n@Component({\n selector: \"s-global-search-dropdown-item\",\n templateUrl: \"./global-search-dropdown-item.component.html\",\n styleUrls: [\"./global-search-dropdown-item.component.scss\"]\n})\nexport class GlobalSearchDropdownItemComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-global-search-dropdown-item-${GlobalSearchDropdownItemComponent.nextId++}`;\n\n @Input()\n public primaryLabel: string;\n\n @Input()\n public secondaryEmptyLabel: string;\n\n @Input()\n public tertiaryEmptyLabel: string;\n\n @Input()\n public imageSource?: string;\n\n @Input()\n public imageAlt?: string;\n\n @Input()\n public iconClass?: string;\n\n @Input()\n public secondaryLabel?: string;\n\n @Input()\n public tertiaryLabel?: string;\n\n @Input()\n public size = GlobalSearchSizeEnum.STANDARD;\n\n @Input()\n public template: ElementRef;\n\n @Output()\n public buttonClick = new EventEmitter();\n\n @ContentChild(ThumbnailComponent, { static: true })\n public thumbnailComponent: ThumbnailComponent;\n\n @ViewChild(TemplateRef, { static: true })\n public content: TemplateRef<any>;\n\n private isStandardSize() {\n return this.size === GlobalSearchSizeEnum.STANDARD;\n }\n\n public isMediumSize() {\n return this.size === GlobalSearchSizeEnum.MEDIUM;\n }\n\n public isSmallSize() {\n return this.size === GlobalSearchSizeEnum.SMALL;\n }\n\n public getImageSize() {\n return this.isStandardSize() ? \"medium\" : \"small\";\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n ContentChildren,\n QueryList,\n ChangeDetectorRef\n} from \"@angular/core\";\nimport { trigger, state, style, transition, animate } from \"@angular/animations\";\n\nimport { ExportUtils } from \"../utils\";\nimport { GlobalSearchDropdownItemComponent } from \"./elements/dropdown/global-search-dropdown-item.component\";\n\n@Component({\n selector: \"s-global-search\",\n templateUrl: \"./global-search.component.html\",\n styleUrls: [\"./global-search.component.scss\"],\n animations: [\n trigger(\"expandableContent\", [\n state(\n \"*\",\n style({\n height: \"0\",\n })\n ),\n state(\n \"false\",\n style({\n height: \"0\",\n })\n ),\n state(\n \"true\",\n style({\n height: \"*\",\n })\n ),\n transition(\"* => true\", animate(\"200ms ease-out\")),\n transition(\"false <=> true\", animate(\"200ms ease-out\")),\n ]),\n ]\n})\nexport class GlobalSearchComponent {\n\n public static nextId = 0;\n\n @ViewChild(\"globalSearch\", { static: false }) globalSearch: ElementRef;\n\n @Input()\n public id = `s-global-search-${GlobalSearchDropdownItemComponent.nextId++}`;\n\n @Input()\n public delay = 500;\n\n @Input()\n public totalItensLabel: string;\n\n @Input()\n public showMoreLabel: string;\n\n @Input()\n public placeholder: string;\n\n @Input()\n public isLoading = false;\n\n @Input()\n public totalElements: number;\n\n @Input()\n public emptyTitle: string;\n\n @Input()\n public emptyDescription: string;\n\n @Input()\n public emptyIcon: string;\n\n @Input() showFooter = true;\n\n @ContentChildren(GlobalSearchDropdownItemComponent)\n public dropdownItens: QueryList<GlobalSearchDropdownItemComponent>;\n\n @Output() onSearch = new EventEmitter<string>();\n @Output() onFocus = new EventEmitter<boolean>();\n @Output() onShowMore = new EventEmitter();\n\n public search: string;\n public wasSearched = false;\n public isModalLoading = false;\n public expanded = true;\n\n constructor(private cdr: ChangeDetectorRef) { }\n\n public onChange() {\n const search = this.search;\n setTimeout(() => {\n if (this.search === search) {\n this.canShowGlobalSearchActive();\n this.onSearch.emit(this.search);\n }\n }, this.delay);\n }\n\n public focusIn() {\n this.onFocus.emit(true);\n }\n\n public focusOut() {\n this.onFocus.emit(false);\n }\n\n public showMore() {\n this.onShowMore.emit();\n }\n\n private removeActiveClassByGlobalSearch() {\n ExportUtils.removeClass(this.globalSearch, \"global-search__input-active\");\n }\n\n public close() {\n this.search = null;\n this.wasSearched = false;\n this.dropdownItens = null;\n this.isModalLoading = false;\n this.removeActiveClassByGlobalSearch();\n }\n\n private canShowGlobalSearchActive() {\n this.wasSearched = !!this.search;\n if (this.search) {\n ExportUtils.addClass(this.globalSearch, \"global-search__input-active\");\n } else {\n this.removeActiveClassByGlobalSearch();\n this.close();\n }\n this.cdr.detectChanges();\n }\n\n}\n","import {\n ElementRef,\n EventEmitter,\n Directive,\n HostListener\n} from \"@angular/core\";\nimport { Output } from \"@angular/core\";\n\n@Directive({\n selector: \"[sInfiniteScroll]\"\n})\nexport class InfiniteScrollDirective {\n\n @Output() onScroll = new EventEmitter<number>();\n\n constructor(private el: ElementRef) {}\n\n @HostListener(\"scroll\")\n scroll() {\n if (this.el.nativeElement.scrollTop > (this.el.nativeElement.scrollHeight - this.el.nativeElement.offsetHeight - 2)) {\n this.onScroll.emit();\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { InfiniteScrollDirective } from \"./infinite-scroll.directive\";\n\n@NgModule({\n declarations: [\n InfiniteScrollDirective\n ],\n imports: [\n CommonModule\n ],\n exports: [\n InfiniteScrollDirective\n ]\n})\nexport class InfiniteScrollModule { }\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { TooltipModule } from \"primeng/tooltip\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { GlobalSearchComponent } from \"./global-search.component\";\nimport { GlobalSearchDropdownItemComponent } from \"./elements/dropdown/global-search-dropdown-item.component\";\nimport { ButtonModule } from \"../button/button.module\";\nimport { ThumbnailModule } from \"../thumbnail/thumbnail.module\";\nimport { LoadingStateModule } from \"../loading-state/loading-state.module\";\nimport { InfiniteScrollModule } from \"../infinite-scroll/infinite-scroll.module\";\nimport { EmptyStateModule } from \"../empty-state/empty-state.module\";\n\n@NgModule({\n declarations: [\n GlobalSearchComponent,\n GlobalSearchDropdownItemComponent\n ],\n imports: [\n CommonModule,\n InputTextModule,\n FormsModule,\n ReactiveFormsModule,\n TooltipModule,\n ThumbnailModule,\n ButtonModule,\n LoadingStateModule,\n InfiniteScrollModule,\n EmptyStateModule\n ],\n exports: [\n GlobalSearchComponent,\n GlobalSearchDropdownItemComponent,\n TooltipModule,\n ThumbnailModule,\n ButtonModule,\n LoadingStateModule,\n EmptyStateModule\n ],\n entryComponents: [\n GlobalSearchComponent,\n GlobalSearchDropdownItemComponent\n ]\n})\nexport class GlobalSearchModule { }\n","import { Clipboard } from \"@angular/cdk/clipboard\";\nimport { Component, Input } from \"@angular/core\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { finalize, first } from \"rxjs/operators\";\n\nimport { ToastService } from \"../../../toast/toast.service\";\nimport { IAInsightItem } from \"../../models/ia-insight-item\";\n\nconst marked = require(\"marked\");\n\n@Component({\n selector: \"s-ia-insight-card\",\n templateUrl: \"./ia-insight-card.component.html\",\n styleUrls: [\"./ia-insight-card.component.scss\"],\n})\nexport class IAInsightCardComponent {\n @Input()\n public insight: IAInsightItem;\n\n public open = false;\n public isLoading = false;\n public content: string;\n\n public likeSelected = false;\n public dislikeSelected = false;\n\n constructor(\n private readonly clipboard: Clipboard,\n private readonly toastService: ToastService,\n private readonly translateService: TranslateService,\n ) {}\n\n public toggle(): void {\n this.open = !this.open;\n\n this._requestInsight();\n }\n\n public onLikeSelected(): void {\n if (this.likeSelected) {\n this.likeSelected = false;\n } else {\n this.likeSelected = true;\n this.dislikeSelected = false;\n this.insight.onLikeSelected?.();\n }\n }\n\n public onDislikeSelected(): void {\n if (this.dislikeSelected) {\n this.dislikeSelected = false;\n } else {\n this.dislikeSelected = true;\n this.likeSelected = false;\n this.insight.onDislikeSelected?.();\n }\n }\n\n public copyContent(): void {\n this.insight.onCopy?.(this.content);\n\n if (this.clipboard.copy(this.content)) {\n this.toastService.show({\n severity: \"info\",\n title: this.translateService.instant(\"platform.angular_components.copied_to_clipboard\"),\n });\n }\n }\n\n public reloadContent(): void {\n this._requestInsight();\n }\n\n private _requestInsight(): void {\n this.isLoading = true;\n\n this.insight.request$\n .pipe(\n first(),\n finalize(() => (this.isLoading = false))\n )\n .subscribe((content: string) => {\n this.content = marked.marked(content);\n });\n }\n}\n","import { Component, Input, TemplateRef } from \"@angular/core\";\n\nimport { IAInsightItem } from \"../../models/index\";\n\n@Component({\n selector: \"s-ia-insight-sidebar\",\n templateUrl: \"./ia-insight-sidebar.component.html\",\n styleUrls: [\"./ia-insight-sidebar.component.scss\"],\n})\nexport class IAInsightSidebarComponent {\n @Input()\n public insights: IAInsightItem[] = [];\n\n @Input()\n public hasPermission: boolean;\n \n @Input()\n public introText: string;\n\n @Input()\n public introTemplate: TemplateRef<any>;\n\n @Input()\n public emptyText: string;\n\n @Input()\n public emptyTemplate: TemplateRef<any>;\n\n @Input()\n public noPermissionText: string;\n\n @Input()\n public noPermissionTemplate: TemplateRef<any>;\n\n public opened = false;\n\n public toggle(): void {\n this.opened = !this.opened;\n }\n\n public open(): void {\n this.opened = true;\n }\n\n public close(): void {\n this.opened = false;\n }\n}\n","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-ia-insight-card-loader\",\n templateUrl: \"./ia-insight-card-loader.component.html\",\n styleUrls: [\"./ia-insight-card-loader.component.scss\"],\n})\nexport class IAInsightCardLoaderComponent {}\n","export enum KanbanTemplateTypes {\n ColumnHeader = \"column-header\",\n ColumnEmptyMessage = \"column-empty-message\",\n ItemHeader = \"item-header\",\n ItemBody = \"item-body\",\n ItemFooter = \"item-footer\",\n}\n","import { AfterContentInit, Component, ContentChildren, Input, QueryList, TemplateRef, ViewChild } from \"@angular/core\";\n\nimport { TemplateDirective } from \"../template/template.directive\";\nimport { IAInsightSidebarComponent } from \"./components/ia-insight-sidebar/ia-insight-sidebar.component\";\nimport { IAInsightItem } from \"./models/ia-insight-item\";\nimport { IAInsightTemplateTypes } from \"./models/ia-insight-template-types\";\n\n@Component({\n selector: \"s-ia-insight\",\n templateUrl: \"./ia-insight.component.html\",\n styleUrls: [\"./ia-insight.component.scss\"],\n})\nexport class IAInsightComponent implements AfterContentInit {\n @Input()\n public insights: IAInsightItem[] = [];\n\n @Input()\n public hasPermission = true;\n\n @Input()\n public introText: string;\n\n @Input()\n public emptyText: string;\n\n @Input()\n public noPermissionText: string;\n\n @ViewChild(IAInsightSidebarComponent)\n public sidebar: IAInsightSidebarComponent;\n\n @ContentChildren(TemplateDirective) templates: QueryList<TemplateDirective>;\n\n public introTemplate: TemplateRef<any>;\n public emptyTemplate: TemplateRef<any>;\n public noPermissionTemplate: TemplateRef<any>;\n\n public ngAfterContentInit(): void {\n this._getTemplates();\n }\n\n public open(): void {\n this.sidebar.open();\n }\n\n public close(): void {\n this.sidebar.close();\n }\n\n public getIntroTemplate(): TemplateRef<any> {\n return this._getCustomTemplate(IAInsightTemplateTypes.Intro);\n }\n\n public getNoPermissionTemplate(): TemplateRef<any> {\n return this._getCustomTemplate(IAInsightTemplateTypes.NoPermission);\n }\n\n public getEmptyTemplate(): TemplateRef<any> {\n return this._getCustomTemplate(IAInsightTemplateTypes.Empty);\n }\n\n private _getCustomTemplate(type: string) {\n return this.templates.find((template: TemplateDirective) => template.type === type)?.template;\n }\n\n private _getTemplates(): void {\n this.introTemplate = this.getIntroTemplate();\n this.emptyTemplate = this.getEmptyTemplate();\n this.noPermissionTemplate = this.getNoPermissionTemplate();\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\n\nimport { SVGFactoryModule } from \"../../utils/svg-factory/svg-factory.module\";\nimport { BadgeModule } from \"../badge/badge.module\";\nimport { ButtonModule } from \"../button/button.module\";\nimport { TemplateModule } from \"../template/template.module\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\nimport { IAInsightCardComponent } from \"./components/ia-insight-card/ia-insight-card.component\";\nimport { IAInsightSidebarComponent } from \"./components/ia-insight-sidebar/ia-insight-sidebar.component\";\nimport { IAInsightCardLoaderComponent } from \"./components/ia-insight-card/components/ia-insight-card-loader/ia-insight-card-loader.component\";\nimport { IAInsightComponent } from \"./ia-insight.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TranslateModule,\n BadgeModule,\n ButtonModule,\n TooltipModule,\n TemplateModule,\n SVGFactoryModule,\n ],\n declarations: [\n IAInsightComponent,\n IAInsightCardComponent,\n IAInsightSidebarComponent,\n IAInsightCardLoaderComponent,\n ],\n exports: [\n IAInsightComponent,\n TemplateModule,\n ],\n})\nexport class IAInsightModule {}\n","import { Component, Input } from \"@angular/core\";\n\nimport { GridMenuItem } from \"./types/grid-menu-item\";\n\n@Component({\n selector: \"s-grid-menu\",\n templateUrl: \"./grid-menu.component.html\",\n styleUrls: [\"./grid-menu.component.scss\"],\n})\nexport class GridMenuComponent {\n @Input()\n public set items(items: GridMenuItem[] | GridMenuItem) {\n this.itemsArray = Array.isArray(items) ? items as GridMenuItem[] : [items];\n }\n\n public itemsArray: GridMenuItem[] = [];\n}\n","import { Component, Input } from \"@angular/core\";\n\nimport { GridMenuItem } from \"../../types/grid-menu-item\";\n\n@Component({\n selector: \"s-grid-menu-item\",\n templateUrl: \"./grid-menu-item.component.html\",\n styleUrls: [\"./grid-menu-item.component.scss\"],\n})\nexport class GridMenuItemComponent {\n @Input()\n public item: GridMenuItem;\n\n public onClick(): void {\n if (this.disabled) return;\n this.item.action?.();\n }\n\n public get initialLetter(): string {\n let initialLetter = \"\";\n if (this.item.label) {\n const words = this.item.label.split(\" \", 2);\n initialLetter = words[0].charAt(0).toUpperCase();\n if (words.length > 1) {\n initialLetter += words[1].charAt(0).toUpperCase();\n }\n }\n return initialLetter;\n }\n\n public get disabled(): boolean {\n return typeof this.item.disabled === \"function\" ? !!this.item.disabled() : !!this.item.disabled;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { GridMenuItemComponent } from \"./components/grid-menu-item/grid-menu-item.component\";\nimport { GridMenuComponent } from \"./grid-menu.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [GridMenuItemComponent, GridMenuComponent],\n exports: [GridMenuItemComponent, GridMenuComponent],\n})\nexport class GridMenuModule {}\n","export interface InlineEditFieldOptions {\n label: string;\n name: string;\n tooltip?: string;\n errorMessages?: () => ({}) | {};\n}\n\nexport abstract class InlineEditField {\n public label: string;\n public name: string;\n public tooltip?: string;\n public errorMessages: () => ({}) | {};\n\n constructor(options: InlineEditFieldOptions) {\n this.label = options.label;\n this.name = options.name;\n this.tooltip = options.tooltip;\n this.errorMessages = options.errorMessages;\n }\n}","import { InlineEditField, InlineEditFieldOptions } from \"./inline-edit-field\";\n\nexport interface InlineEditCalendarFieldOptions extends InlineEditFieldOptions {\n view?: string;\n minDate?: Date;\n maxDate?: Date;\n defaultDate?: Date;\n appendTo?: string;\n showOnFocus?: boolean;\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onSelect?: (event: any) => void;\n onInput?: (event: any) => void;\n onClose?: (event: any) => void;\n onTodayClick?: (event: any) => void;\n onClearClick?: (event: any) => void;\n onMonthChange?: (event: any) => void;\n onYearChange?: (event: any) => void;\n selectionMode?: string;\n rangeSeparator?: string;\n showSeconds?: boolean;\n placeholder?: string;\n}\n\nexport class InlineEditCalendarField extends InlineEditField {\n public view?: string;\n public appendTo: string;\n public minDate?: Date;\n public maxDate?: Date;\n public defaultDate?: Date;\n public showOnFocus?: boolean;\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onSelect?: (event: any) => void;\n public onInput?: (event: any) => void;\n public onClose?: (event: any) => void;\n public onTodayClick?: (event: any) => void;\n public onClearClick?: (event: any) => void;\n public onMonthChange?: (event: any) => void;\n public onYearChange?: (event: any) => void;\n public selectionMode?: string;\n public rangeSeparator?: string;\n public showSeconds: boolean;\n public placeholder?: string;\n\n constructor(options: InlineEditCalendarFieldOptions) {\n super(options);\n\n this.view = options.view || \"date\";\n this.minDate = options.minDate;\n this.maxDate = options.maxDate;\n this.defaultDate = options.defaultDate;\n this.appendTo = options.appendTo;\n this.showOnFocus = typeof options.showOnFocus === \"boolean\" ? options.showOnFocus : true;\n this.onBlur = options.onBlur;\n this.onFocus = options.onFocus;\n this.onSelect = options.onSelect;\n this.onInput = options.onInput;\n this.onClose = options.onClose;\n this.onTodayClick = options.onTodayClick;\n this.onClearClick = options.onClearClick;\n this.onMonthChange = options.onMonthChange;\n this.onYearChange = options.onYearChange;\n this.selectionMode = options.selectionMode || \"single\";\n this.rangeSeparator = options.rangeSeparator || \"-\";\n this.showSeconds = options.showSeconds;\n this.placeholder = options.placeholder;\n }\n}\n","import { Observable } from \"rxjs\";\nimport { delay } from \"rxjs/operators\";\n\nimport { InlineEditField, InlineEditFieldOptions } from \"./inline-edit-field\";\nimport { DefaultFilter } from \"../../dynamic-form/index\";\n\nexport interface InlineEditLookupFieldOptions extends InlineEditFieldOptions {\n multiple?: boolean;\n showSearch?: boolean;\n searchFields: any[];\n searchGridFields: any[];\n lookupSuggestions?: any[];\n suggestionsObservable: Observable<any[]>;\n searchObservable: Observable<{ gridData: any[]; totalRecords: number; searchTotalRecordsLabel?: string }>;\n dataKey: string;\n lookupDisplayField: string;\n searchTitle?: string;\n searchEmptyTitle?: string;\n filterTitle?: string;\n emptyMessage?: string;\n appendTo?: string;\n autocompleteForceSelection?: boolean;\n showAddOption?: boolean;\n showEditOption?: boolean;\n showRemoveOption?: boolean;\n placeholder?: string;\n onLookupRequest: (query: string) => void;\n onSearchRequest: (event: any) => void;\n onSelect?: (event: any) => void;\n onUnselect?: (event: any) => void;\n onClear?: (event: any) => void;\n onBlur?: (event: FocusEvent) => void;\n onAdd?: () => void;\n onEdit?: (selectedItem: unknown) => void;\n onRemove?: (selectedItems: unknown[]) => void;\n}\n\nexport class InlineEditLookupField extends InlineEditField {\n public multiple = false;\n public showSearch = true;\n public searchFields: any[];\n public searchGridFields: any[];\n public lookupSuggestions: any[];\n public suggestionsObservable: Observable<any[]>;\n public searchObservable: Observable<{ gridData: any[]; totalRecords: number; searchTotalRecordsLabel?: string }>;\n public dataKey: string;\n public lookupDisplayField: string;\n public searchTitle: string;\n public searchEmptyTitle: string;\n public filterTitle: string;\n public emptyMessage: string;\n public appendTo?: string;\n public autocompleteForceSelection = true;\n public showAddOption = false;\n public showEditOption = false;\n public showRemoveOption = false;\n public defaultFilter: DefaultFilter[];\n public onLookupRequest: (query: string) => void;\n public onSearchRequest: (event: any) => void;\n public onClear?: (event: any) => void;\n public onBlur?: (event: FocusEvent) => void;\n public onAdd?: () => void;\n public onEdit?: (selectedItem: unknown) => void;\n public onRemove?: (selectedItems: unknown[]) => void;\n\n public placeholder?: string;\n\n private _gridData: any[];\n private _searchTotalRecords: number;\n private _searchTotalRecordsLabel: string;\n\n public onSelect = (event: any) => {};\n public onUnselect = (event: any) => {};\n\n public get gridData() {\n return this._gridData;\n }\n\n public get searchTotalRecords() {\n return this._searchTotalRecords;\n }\n\n public get searchTotalRecordsLabel() {\n return this._searchTotalRecordsLabel;\n }\n \n constructor(options: InlineEditLookupFieldOptions) {\n super(options);\n Object.assign(this, options);\n\n this.suggestionsObservable.subscribe(suggestions => (this.lookupSuggestions = suggestions));\n this.searchObservable.pipe(delay(0)).subscribe(({ totalRecords, gridData, searchTotalRecordsLabel }) => {\n this._gridData = gridData;\n this._searchTotalRecords = totalRecords;\n this._searchTotalRecordsLabel = searchTotalRecordsLabel;\n });\n }\n}","import { AlignmentOptions } from \"@seniorsistemas/ng2-currency-mask\";\n\nimport { AddonConfig } from \"../../dynamic-form/index\";\nimport { NumberLocaleOptions } from \"../../locale/options/number\";\nimport { InlineEditField, InlineEditFieldOptions } from \"./inline-edit-field\";\n\nexport interface InlineEditNumberFieldOptions extends InlineEditFieldOptions {\n allowNegative?: boolean;\n numberLocaleOptions?: NumberLocaleOptions;\n browserAutocomplete?: boolean;\n precision?: Function | number;\n scale?: Function | number;\n mask?: () => string | string;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n placeholder?: string;\n autoClear?: boolean;\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: FocusEvent) => void;\n}\n\nexport class InlineEditNumberField extends InlineEditField {\n public allowNegative?: boolean;\n public numberLocaleOptions?: NumberLocaleOptions;\n public browserAutocomplete?: boolean;\n public precision?: Function | number;\n public scale?: Function | number;\n public alignTo: AlignmentOptions;\n public mask?: () => string | string;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public placeholder?: string;\n public autoClear?: boolean;\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onComplete?: (event: FocusEvent) => void;\n public onInput?: (event: FocusEvent) => void;\n\n constructor(options: InlineEditNumberFieldOptions) {\n super(options);\n\n this.allowNegative = options.allowNegative ?? true;\n this.numberLocaleOptions = options.numberLocaleOptions;\n this.browserAutocomplete = options.browserAutocomplete;\n this.precision = options.precision;\n this.scale = options.scale ?? 2;\n this.alignTo = this.scale ? AlignmentOptions.RIGHT : AlignmentOptions.LEFT;\n this.mask = options.mask;\n this.leftAddon = options.leftAddon;\n this.rightAddon = options.rightAddon;\n this.onBlur = options.onBlur;\n this.onFocus = options.onFocus;\n this.onComplete = options.onComplete;\n this.onInput = options.onInput;\n this.autoClear = options.autoClear ?? true;\n this.placeholder = options.placeholder ?? \"\";\n }\n}\n","import { InlineEditFieldOptions, InlineEditField } from \"./inline-edit-field\";\n\nexport interface InlineEditTextAreaFieldOptions extends InlineEditFieldOptions {\n cols?: number;\n rows?: number;\n keyFilter?: any;\n readonly?: () => boolean;\n}\n\nexport class InlineEditTextAreaField extends InlineEditField {\n public cols?: number;\n public rows?: number;\n public keyFilter?: any;\n public readonly?: () => boolean;\n\n constructor(options: InlineEditTextAreaFieldOptions) {\n super(options);\n\n this.cols = options.cols;\n this.rows = options.rows;\n this.keyFilter = options.keyFilter;\n this.readonly = options.readonly;\n }\n}\n","import { InlineEditField, InlineEditFieldOptions } from \"./inline-edit-field\";\n\nexport interface InlineEditTextFieldOptions extends InlineEditFieldOptions {}\n\nexport class InlineEditTextField extends InlineEditField {\n constructor(options: InlineEditTextFieldOptions) {\n super(options);\n }\n}\n","import { InlineEditField, InlineEditFieldOptions } from \"./inline-edit-field\";\n\nexport interface InlineEditTextAreaIAFieldOptions extends InlineEditFieldOptions {}\n\nexport class InlineEditTextAreaIAField extends InlineEditField {\n constructor(options: InlineEditTextAreaIAFieldOptions) {\n super(options);\n }\n}\n","import { Component, ComponentRef, Input, OnInit, ViewChild, ViewContainerRef } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\n\nimport { first } from \"rxjs/operators\";\n\nimport { LocaleOptions, LocaleService } from \"../../../locale/index\";\nimport { InlineEditCalendarField, InlineEditLookupField } from \"../../fields/index\";\nimport { InlineEditField } from \"../../fields/inline-edit-field\";\nimport { InlineEditCalendarComponent } from \"../fields/inline-edit-calendar/inline-edit-calendar.component\";\n\n@Component({\n selector: \"s-inline-edit-item\",\n templateUrl: \"./inline-edit-item.component.html\",\n styleUrls: [\"./inline-edit-item.component.scss\"],\n})\nexport class InlineEditItemComponent implements OnInit {\n @ViewChild(\"formContainer\", { read: ViewContainerRef, static: true })\n public viewContainerRef: ViewContainerRef;\n\n @Input()\n public label: string;\n\n @Input()\n public formGroup: FormGroup;\n\n @Input()\n public field: InlineEditField;\n\n @Input()\n public errorMessages?: any;\n\n public isEditing = false;\n private _locale: string;\n private dynamicComponentRef: ComponentRef<any>;\n\n constructor(private readonly localeService: LocaleService) {}\n\n public ngOnInit(): void {\n this._getCalendarLocaleOptions();\n }\n\n public get showEmptyValueButton() {\n return !this.isEditing && !this.formGroup.get(this.field.name)?.value;\n }\n\n public get showEditButton() {\n return !this.isEditing && this.formGroup.get(this.field.name)?.value;\n }\n\n public get showValue() {\n return !this.isEditing && this.formGroup.get(this.field.name)?.value;\n }\n\n public onEdit(): void {\n this.isEditing = !this.isEditing;\n }\n\n public onCancel(): void {\n this.isEditing = !this.isEditing;\n }\n\n public onSave(): void {\n if (this.dynamicComponentRef && this.dynamicComponentRef.instance.saveValue) {\n const control = this.formGroup.get(this.field.name);\n control.markAsDirty({ onlySelf: true });\n\n this.dynamicComponentRef.instance.saveValue();\n }\n if (this.formGroup.get(this.field.name).valid) {\n this.isEditing = !this.isEditing;\n }\n }\n\n public setDynamicComponentRef(ref: ComponentRef<any>): void {\n this.dynamicComponentRef = ref;\n }\n\n public getErrorMessages(errorMessages: any) {\n if (errorMessages)\n return errorMessages instanceof Function\n ? { ...this.errorMessages, ...errorMessages() }\n : { ...this.errorMessages, ...errorMessages };\n return this.errorMessages;\n }\n\n public getFormattedValue(value: any): string {\n if (this.field instanceof InlineEditCalendarField) {\n return (this.dynamicComponentRef.instance as InlineEditCalendarComponent).getValueAsText();\n }\n if (this.field instanceof InlineEditLookupField) {\n const lookupField = this.field as InlineEditLookupField;\n return this.field.multiple\n ? value.map((val: any) => val[lookupField.lookupDisplayField]).join(\" - \")\n : value[lookupField.lookupDisplayField];\n }\n\n return value;\n }\n\n private _getCalendarLocaleOptions(): void {\n this.localeService\n .get()\n .pipe(first())\n .subscribe((localeOptions: LocaleOptions) => {\n this._locale = localeOptions.locale;\n });\n }\n}\n","import { Component, Input, ViewChild } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\n\nimport { Calendar } from \"primeng/calendar\";\n\nimport { InlineEditCalendarField } from \"../../../fields/inline-edit-calendar-field\";\nimport { CalendarLocaleOptions, LocaleOptions, LocaleService } from \"../../../../locale/index\";\nimport { first } from \"rxjs/operators\";\n\n@Component({\n templateUrl: \"./inline-edit-calendar.component.html\",\n styleUrls: [\"./inline-edit-calendar.component.scss\"],\n})\nexport class InlineEditCalendarComponent {\n @Input()\n public field: InlineEditCalendarField;\n\n @Input()\n public formGroup: FormGroup;\n\n @ViewChild(Calendar)\n calendar: Calendar;\n\n public tempValue: string;\n public calendarLocaleOptions: CalendarLocaleOptions;\n\n constructor(private readonly localeService: LocaleService) {}\n\n public ngOnInit(): void {\n this._getLocaleOptions();\n\n if (this.formGroup && this.field) {\n this.tempValue = this.formGroup.get(this.field.name)?.value || '';\n }\n }\n\n public saveValue(): void {\n if (this.formGroup && this.field) {\n this.formGroup.get(this.field.name)?.setValue(this.tempValue);\n }\n }\n\n public getValueAsText(): string {\n return this.calendar.el.nativeElement.querySelector('input').value;\n }\n\n private _getLocaleOptions(): void {\n this.localeService.get().pipe(first()).subscribe((locale: LocaleOptions) => {\n this.calendarLocaleOptions = locale.calendar;\n });\n }\n}\n","import { Component, Input, OnInit } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\n\nimport { InlineEditLookupField } from \"../../../fields/inline-edit-lookup-field\";\n\n@Component({\n templateUrl: \"./inline-edit-lookup.component.html\",\n styleUrls: [\"./inline-edit-lookup.component.scss\"],\n})\nexport class InlineEditLookupComponent implements OnInit {\n @Input()\n public field: InlineEditLookupField;\n\n @Input()\n public formGroup: FormGroup;\n\n public tempValue: string;\n\n public ngOnInit(): void {\n if (this.formGroup && this.field) {\n this.tempValue = this.formGroup.get(this.field.name)?.value || \"\";\n }\n }\n\n public saveValue(): void {\n if (this.formGroup && this.field) {\n this.formGroup.get(this.field.name)?.setValue(this.tempValue);\n }\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\n\nimport { first } from \"rxjs/operators\";\n\nimport { InlineEditNumberField } from \"../../../fields/inline-edit-number-field\";\nimport { LocaleService } from \"../../../../locale/index\";\n\n@Component({\n templateUrl: \"./inline-edit-number.component.html\",\n styleUrls: [\"./inline-edit-number.component.scss\"],\n})\nexport class InlineEditNumberComponent {\n @Input()\n public field: InlineEditNumberField;\n\n @Input()\n public formGroup: FormGroup;\n\n public tempValue: string;\n\n constructor(private readonly localeService: LocaleService) {}\n\n public ngOnInit(): void {\n this._onLocaleService();\n\n if (this.formGroup && this.field) {\n this.tempValue = this.formGroup.get(this.field.name)?.value || '';\n }\n }\n\n public saveValue(): void {\n if (this.formGroup && this.field) {\n this.formGroup.get(this.field.name)?.setValue(this.tempValue);\n }\n }\n\n public get mask(): string {\n return typeof this.field.mask === 'function' ? this.field.mask() : this.field.mask;\n }\n\n public get leftAddonDisabled(): boolean {\n return typeof this.field.leftAddon.disabled === 'function' ? this.field.leftAddon.disabled() : this.field.leftAddon.disabled;\n }\n\n public get rightAddonDisabled(): boolean {\n return typeof this.field.rightAddon.disabled === 'function' ? this.field.rightAddon.disabled() : this.field.rightAddon.disabled;\n }\n\n public get precision(): number {\n return typeof this.field.precision === 'function' ? this.field.precision() : this.field.precision;\n }\n\n public get scale(): number {\n return typeof this.field.scale === 'function' ? this.field.scale() : this.field.scale;\n }\n\n private _onLocaleService(): void {\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe({\n next: () => {\n if (!this.field.numberLocaleOptions?.decimalSeparator) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n decimalSeparator: this.localeService.getDecimalSeparator(),\n };\n }\n\n if (!this.field.numberLocaleOptions?.thousandsSeparator) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n thousandsSeparator: this.localeService.getGroupingSeparator(),\n };\n }\n },\n error: () =>\n (this.field.numberLocaleOptions = {\n thousandsSeparator: \".\",\n decimalSeparator: \",\",\n currencySymbol: \"\",\n }),\n });\n }\n}\n","import { Component, Input, OnInit } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\n\nimport { InlineEditTextAreaField } from \"../../../fields/inline-edit-text-area-field\";\n\n@Component({\n templateUrl: \"./inline-edit-text-area.component.html\",\n styleUrls: [\"./inline-edit-text-area.component.scss\"],\n})\nexport class InlineEditTextAreaComponent implements OnInit {\n @Input()\n public field: InlineEditTextAreaField;\n\n @Input()\n public formGroup: FormGroup;\n\n public tempValue: string;\n\n public ngOnInit(): void {\n if (this.formGroup && this.field) {\n this.tempValue = this.formGroup.get(this.field.name)?.value || '';\n }\n }\n\n public saveValue(): void {\n if (this.formGroup && this.field) {\n this.formGroup.get(this.field.name)?.setValue(this.tempValue);\n }\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\n\nimport { InlineEditTextField } from \"../../../fields/inline-edit-text-field\";\n\n@Component({\n templateUrl: \"./inline-edit-text.component.html\",\n styleUrls: [\"./inline-edit-text.component.scss\"],\n})\nexport class InlineEditTextComponent {\n @Input()\n public field: InlineEditTextField;\n\n @Input()\n public formGroup: FormGroup;\n\n public tempValue: string;\n\n public ngOnInit(): void {\n if (this.formGroup && this.field) {\n this.tempValue = this.formGroup.get(this.field.name)?.value || '';\n }\n }\n\n public saveValue(): void {\n if (this.formGroup && this.field) {\n this.formGroup.get(this.field.name)?.setValue(this.tempValue);\n }\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\n\nimport { InlineEditTextAreaIAField } from \"../../../fields/inline-edit-text-area-ia-field\";\n\n@Component({\n templateUrl: \"./inline-edit-text-area-ia.component.html\",\n styleUrls: [\"./inline-edit-text-area-ia.component.scss\"],\n})\nexport class InlineEditTextAreaIAComponent {\n @Input()\n public field: InlineEditTextAreaIAField;\n\n @Input()\n public formGroup: FormGroup;\n\n public tempValue: string;\n\n public ngOnInit(): void {\n if (this.formGroup && this.field) {\n this.tempValue = this.formGroup.get(this.field.name)?.value || '';\n }\n }\n\n public saveValue(): void {\n if (this.formGroup && this.field) {\n this.formGroup.get(this.field.name)?.setValue(this.tempValue);\n }\n }\n}\n","import { Component, ComponentFactoryResolver, Input, OnInit, ViewChild, ViewContainerRef, ComponentRef } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\n\nimport {\n InlineEditCalendarComponent,\n InlineEditItemComponent,\n InlineEditLookupComponent,\n InlineEditNumberComponent,\n InlineEditTextAreaComponent,\n InlineEditTextComponent,\n InlineEditTextAreaIAComponent,\n} from \"./components/index\";\nimport {\n InlineEditField,\n InlineEditCalendarField,\n InlineEditLookupField,\n InlineEditNumberField,\n InlineEditTextAreaField,\n InlineEditTextField,\n InlineEditTextAreaIAField,\n} from \"./fields/index\";\n\n@Component({\n selector: \"s-inline-edit\",\n templateUrl: \"./inline-edit.component.html\",\n styleUrls: [\"./inline-edit.component.scss\"],\n})\nexport class InlineEditComponent implements OnInit {\n @Input()\n public formGroup: FormGroup;\n\n @Input()\n public fields: InlineEditField[] = [];\n\n @Input()\n public errorMessages?: any;\n\n @ViewChild(\"formContainer\", { read: ViewContainerRef, static: true })\n public container: ViewContainerRef;\n\n constructor(private resolver: ComponentFactoryResolver) {}\n\n public ngOnInit(): void {\n this._createFields();\n }\n\n private _componentMap = {\n [InlineEditCalendarField.name]: InlineEditCalendarComponent,\n [InlineEditLookupField.name]: InlineEditLookupComponent,\n [InlineEditTextField.name]: InlineEditTextComponent,\n [InlineEditNumberField.name]: InlineEditNumberComponent,\n [InlineEditTextAreaField.name]: InlineEditTextAreaComponent,\n [InlineEditTextAreaIAField.name]: InlineEditTextAreaIAComponent,\n };\n\n private _createFields(): void {\n this.container.clear();\n\n const createComponent = (componentClass: any, field: InlineEditField): ComponentRef<any> => {\n const componentFactory = this.resolver.resolveComponentFactory(componentClass);\n const componentRef = this.container.createComponent(componentFactory);\n (componentRef.instance as any).field = field;\n (componentRef.instance as any).formGroup = this.formGroup;\n return componentRef;\n };\n\n for (let field of this.fields) {\n let componentClass = this._componentMap[field.constructor.name];\n\n if (componentClass) {\n const inlineEditItemFactory = this.resolver.resolveComponentFactory(InlineEditItemComponent);\n const inlineEditItemRef = this.container.createComponent(inlineEditItemFactory);\n inlineEditItemRef.instance.label = field.label;\n inlineEditItemRef.instance.formGroup = this.formGroup;\n inlineEditItemRef.instance.field = field;\n inlineEditItemRef.instance.errorMessages = this.errorMessages;\n const dynamicComponentRef = createComponent(componentClass, field);\n\n const inlineEditItemInstance = inlineEditItemRef.instance as InlineEditItemComponent;\n inlineEditItemInstance.viewContainerRef.insert(dynamicComponentRef.hostView);\n inlineEditItemInstance.setDynamicComponentRef(dynamicComponentRef);\n }\n }\n }\n}\n","import { HttpErrorResponse } from \"@angular/common/http\";\nimport { Component, forwardRef, Input, OnInit } from \"@angular/core\";\nimport { ControlValueAccessor, FormBuilder, FormGroup, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\n\nimport { FieldType, FormField } from \"../dynamic-form\";\nimport { IAssistService } from \"../dynamic-form/services/IAssist/iassist.service\";\nimport { IAssistResponse } from \"../dynamic-form/services/IAssist/models\";\nimport { SpeechRecognitionService } from \"../speech-recognition/speech-recognition.service\";\n\n@Component({\n selector: \"s-text-area-ia\",\n templateUrl: \"./text-area-ia.component.html\",\n styleUrls: [\"./text-area-ia.component.scss\"],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextAreaIAComponent),\n multi: true,\n },\n ],\n})\nexport class TextAreaIAComponent implements OnInit, ControlValueAccessor {\n @Input()\n public id: string;\n\n @Input()\n public label: string;\n\n @Input()\n public placeholder: string;\n\n @Input()\n public prompt: string;\n\n @Input()\n public readonly: boolean;\n\n @Input()\n public rows: number;\n\n @Input()\n public cols: number;\n\n @Input()\n speechRecognition = false\n\n @Input()\n keepContext = false;\n\n @Input()\n speechRecognitionPlaceholder = '';\n\n public fields: FormField[];\n public formGroup: FormGroup;\n public isVisible = false;\n public isLoading = false;\n public value: string;\n\n private _isDisabled: boolean;\n private _onChange: (value: string) => void;\n private _onTouched: () => void;\n\n constructor(\n private readonly _iassistService: IAssistService, // Mover pra uma pasta global\n private readonly _formBuilder: FormBuilder,\n private readonly _translateService: TranslateService,\n public speechRecognitionService: SpeechRecognitionService\n ) { }\n\n public ngOnInit(): void {\n this._createDialogFields();\n this._createDialogFormGroup();\n }\n\n public writeValue(value: string): void {\n this.value = value;\n }\n\n public registerOnChange(onChange: (value: string) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: () => void): void {\n this._onTouched = onTouched;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this._isDisabled = isDisabled;\n }\n\n public onValueChange(value: string): void {\n this.value = value;\n this._onChange?.(value);\n }\n\n public showDialog(): void {\n this.isVisible = true;\n this._onTouched();\n }\n\n public hideDialog(): void {\n this.isVisible = false;\n }\n\n public onHideDialog(): void {\n this.formGroup.get(\"context\").setValue(\"\");\n }\n\n public submitContext(): void {\n const context = this.formGroup.get(\"context\");\n this.isLoading = true;\n\n this._iassistService\n .askIA(context.value, {\n id: this.id,\n label: this.label,\n placeholder: this.placeholder,\n prompt: this.prompt,\n })\n .pipe(\n catchError((err: HttpErrorResponse) => {\n this.isLoading = false;\n return throwError(err);\n })\n )\n .subscribe((res: IAssistResponse) => {\n this.value = res.text;\n this._onChange(this.value);\n this.isLoading = false;\n });\n\n this.hideDialog();\n }\n\n private _createDialogFields(): void {\n this.fields = [\n new FormField({\n name: \"context\",\n type: FieldType.Text,\n label: this._translateService.instant(\"platform.angular_components.context\"),\n size: { sm: 12, md: 12, lg: 12, xl: 12 },\n speechRecognition: this.speechRecognition\n }),\n ];\n }\n\n private _createDialogFormGroup(): void {\n this.formGroup = this._formBuilder.group({\n context: [\"\"],\n });\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { DialogModule } from \"primeng/dialog\";\n\nimport { ButtonModule } from \"../button/button.module\";\nimport { DynamicFormModule } from \"../dynamic-form/dynamic-form.module\";\nimport { LoadingStateModule } from \"../loading-state/loading-state.module\";\nimport { TextAreaIAComponent } from \"./text-area-ia.component\";\nimport { TextAreaModule } from \"../text-area/text-area.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n DialogModule,\n ButtonModule,\n DynamicFormModule,\n LoadingStateModule,\n TextAreaModule\n ],\n declarations: [TextAreaIAComponent],\n exports: [TextAreaIAComponent],\n})\nexport class TextAreaIAModule { }\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { CalendarModule } from \"primeng/calendar\";\nimport { InputMaskModule } from \"primeng/inputmask\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { InputTextareaModule } from \"primeng/inputtextarea\";\nimport { KeyFilterModule } from \"primeng/keyfilter\";\n\nimport { BignumberInputModule } from \"../bignumber-input/bignumber-input.module\";\nimport { ButtonModule } from \"../button/button.module\";\nimport { ControlErrorsModule } from \"../control-errors/control-errors.module\";\nimport { DynamicFormModule } from \"../dynamic-form/dynamic-form.module\";\nimport { InfoSignModule } from \"../info-sign/info-sign.module\";\nimport { TextAreaIAModule } from \"../text-area-ia/text-area-ia.module\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\n\nimport { InlineEditCalendarComponent } from \"./components/fields/inline-edit-calendar/inline-edit-calendar.component\";\nimport { InlineEditLookupComponent } from \"./components/fields/inline-edit-lookup/inline-edit-lookup.component\";\nimport { InlineEditNumberComponent } from \"./components/fields/inline-edit-number/inline-edit-number.component\";\nimport { InlineEditTextComponent } from \"./components/fields/inline-edit-text/inline-edit-text.component\";\nimport { InlineEditTextAreaComponent } from \"./components/fields/inline-edit-text-area/inline-edit-text-area.component\";\nimport { InlineEditTextAreaIAComponent } from \"./components/fields/inline-edit-text-area-ia/inline-edit-text-area-ia.component\";\nimport { InlineEditItemComponent } from \"./components/inline-edit-item/inline-edit-item.component\";\n\nimport { InlineEditComponent } from \"./inline-edit.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n BignumberInputModule,\n ButtonModule,\n ControlErrorsModule,\n InfoSignModule,\n DynamicFormModule, // Só por causa do Lookup\n TextAreaIAModule,\n TooltipModule,\n CalendarModule,\n InputMaskModule,\n InputTextModule,\n InputTextareaModule,\n KeyFilterModule,\n ],\n declarations: [\n InlineEditComponent,\n InlineEditItemComponent,\n InlineEditCalendarComponent,\n InlineEditLookupComponent,\n InlineEditNumberComponent,\n InlineEditTextComponent,\n InlineEditTextAreaComponent,\n InlineEditTextAreaIAComponent,\n ],\n exports: [InlineEditComponent],\n})\nexport class InlineEditModule {}\n","import { EventEmitter, Injectable } from \"@angular/core\";\n\nimport { KanbanColumn, KanbanItem } from \"./models\";\n\n@Injectable()\nexport class KanbanEventService {\n public selectAllColumnItemsEvent = new EventEmitter<KanbanColumn>();\n public unselectAllColumnItemsEvent = new EventEmitter<KanbanColumn>();\n public selectItemEvent = new EventEmitter<KanbanItem>();\n public unselectItemEvent = new EventEmitter<KanbanItem>();\n\n public emitSelectAllColumnItemsEvent(column: KanbanColumn): void {\n this.selectAllColumnItemsEvent.emit(column);\n }\n\n public emitUnselectAllColumnItemsEvent(column: KanbanColumn): void {\n this.unselectAllColumnItemsEvent.emit(column);\n }\n\n public emitSelectItemEvent(item: KanbanItem): void {\n this.selectItemEvent.emit(item);\n }\n\n public emitUnselectItemEvent(item: KanbanItem): void {\n this.unselectItemEvent.emit(item);\n }\n}\n","export enum EnumSeverity {\n Default = \"Default\",\n Info = \"Info\",\n Warn = \"Warn\",\n Error = \"Error\",\n Success = \"Success\",\n}\n","import { CdkDragDrop, moveItemInArray, transferArrayItem } from \"@angular/cdk/drag-drop\";\nimport {\n AfterContentInit,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n TemplateRef,\n} from \"@angular/core\";\n\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { TemplateDirective } from \"../template/template.directive\";\nimport { KanbanEventService } from \"./kanban-event.service\";\nimport { KanbanColumn, KanbanData, KanbanItem, KanbanItemMovedData, KanbanTemplateTypes } from \"./models/index\";\n\n@Component({\n selector: \"s-kanban\",\n templateUrl: \"./kanban.component.html\",\n styleUrls: [\"./kanban.component.scss\"],\n})\nexport class KanbanComponent implements OnInit, AfterContentInit, OnDestroy {\n @Input()\n public data: KanbanData;\n\n @Input()\n public showItemCheckboxes = true;\n\n @Input()\n public showColumnCheckboxes = true;\n\n @Output()\n public itemsMoved = new EventEmitter<KanbanItemMovedData>();\n\n @Output()\n public dataUpdated = new EventEmitter<KanbanData>();\n\n @Output()\n public itemsSelected = new EventEmitter<KanbanItem[]>();\n\n public selectedColumn: KanbanColumn;\n public selectedItems = new Set<KanbanItem>();\n public draggingItems = new Set<KanbanItem>();\n\n public columnHeaderTemplate: TemplateRef<any>;\n public columnEmptyMessageTemplate: TemplateRef<any>;\n public itemHeaderTemplate: TemplateRef<any>;\n public itemBodyTemplate: TemplateRef<any>;\n public itemFooterTemplate: TemplateRef<any>;\n\n private _unsubscribe$ = new Subject<void>();\n\n @ContentChildren(TemplateDirective) templates: QueryList<TemplateDirective>;\n\n constructor(private readonly kanbanEventService: KanbanEventService) {}\n\n public ngOnInit(): void {\n this._subscribeEvents();\n this._normalizeData();\n this._validateInputs();\n }\n\n ngAfterContentInit() {\n this._getTemplates();\n }\n\n public ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n\n public drop(event: CdkDragDrop<KanbanItem[]>): void {\n const previousColumn = this.data.columns.find((column: KanbanColumn) => column.id === event.previousContainer.id);\n const targetColumn = this.data.columns.find((column: KanbanColumn) => column.id === event.container.id);\n\n if (!previousColumn || !targetColumn) {\n throw new Error(\"Unable to obtain information about columns when performing drag and drop\");\n }\n\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n } else {\n transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);\n }\n\n this.selectedItems.forEach((item: KanbanItem) => {\n const previousIndex = event.previousContainer.data.indexOf(item);\n if (previousIndex !== -1 && item !== event.item.data) {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, previousIndex, event.currentIndex);\n } else {\n transferArrayItem(event.previousContainer.data, event.container.data, previousIndex, event.currentIndex);\n }\n }\n });\n\n this.selectedItems.add(event.item.data);\n\n this.itemsMoved.emit({\n items: [...this.selectedItems],\n previousColumn,\n targetColumn,\n });\n\n if (this.dataUpdated.observers?.length) {\n this.dataUpdated.emit({ ...this.data });\n }\n\n this.data.columns.forEach((column: KanbanColumn) => {\n this.kanbanEventService.emitUnselectAllColumnItemsEvent(column);\n });\n this.selectedItems.clear();\n }\n\n public selectItem(event: MouseEvent, item: KanbanItem, column: KanbanColumn): void {\n if (item.disabled || item.frozen) return;\n\n if (event.ctrlKey) {\n if (this.selectedItems.delete(item)) {\n this.kanbanEventService.emitUnselectItemEvent(item);\n } else {\n if (this.selectedColumn && !this.selectedColumn.items.includes(item)) {\n this.selectedItems.clear();\n }\n\n this.selectedItems.add(item);\n this.selectedColumn = column;\n this.kanbanEventService.emitSelectItemEvent(item);\n }\n } else {\n if (this.selectedItems.delete(item)) return;\n\n this.selectedItems.clear();\n this.selectedItems.add(item);\n this.selectedColumn = column;\n this.kanbanEventService.emitSelectItemEvent(item);\n }\n }\n\n public dragStarted(): void {\n this.selectedItems.forEach((item: KanbanItem) => {\n this.draggingItems.add(item);\n });\n }\n\n public dragReleased(): void {\n this.draggingItems.clear();\n }\n\n public getLinkedColumns(currentColumn: KanbanColumn) {\n return this.data.columns.filter((column: KanbanColumn) => column != currentColumn).map((column: KanbanColumn) => column.id);\n }\n\n public getColumnHeaderTemplate(): TemplateRef<any> {\n return this._getCustomTemplate(KanbanTemplateTypes.ColumnHeader);\n }\n\n public getColumnEmptyMessageTemplate(): TemplateRef<any> {\n return this._getCustomTemplate(KanbanTemplateTypes.ColumnEmptyMessage);\n }\n\n public getItemHeaderTemplate(): TemplateRef<any> {\n return this._getCustomTemplate(KanbanTemplateTypes.ItemHeader);\n }\n\n public getItemBodyTemplate(): TemplateRef<any> {\n return this._getCustomTemplate(KanbanTemplateTypes.ItemBody);\n }\n\n public getItemFooterTemplate(): TemplateRef<any> {\n return this._getCustomTemplate(KanbanTemplateTypes.ItemFooter);\n }\n\n private _getCustomTemplate(type: string) {\n return this.templates.find((template: TemplateDirective) => template.type === type)?.template;\n }\n\n private _subscribeEvents(): void {\n this.kanbanEventService.selectAllColumnItemsEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((column: KanbanColumn) => {\n column.items\n .filter((item: KanbanItem) => !item.disabled && !item.frozen)\n .forEach((item: KanbanItem) => {\n this.selectedItems.add(item);\n });\n this.selectedColumn = column;\n this.itemsSelected.emit([...this.selectedItems]);\n });\n\n this.kanbanEventService.unselectAllColumnItemsEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((_) => {\n this.selectedItems.clear();\n });\n\n this.kanbanEventService.selectItemEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: KanbanItem) => {\n if (this.selectedColumn && !this.selectedColumn.items.includes(item)) {\n this.selectedItems.clear();\n }\n this.selectedItems.add(item);\n this.itemsSelected.emit([...this.selectedItems]);\n\n // Finding the item column and setting selectedColumn.\n this.data.columns.forEach((column: KanbanColumn) => {\n column.items.forEach((currentItem: KanbanItem) => {\n if (currentItem === item) {\n this.selectedColumn = column;\n return;\n }\n });\n });\n });\n\n this.kanbanEventService.unselectItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe((item: KanbanItem) => {\n this.selectedItems.delete(item);\n });\n }\n\n private _normalizeData(): void {\n this.data.columns.forEach((column: KanbanColumn) => {\n column.id = column.id || `id-${Math.random().toString(36).substring(2, 9)}-${Date.now().toString(36)}`;\n });\n }\n\n private _validateInputs(): void {\n const columns = this.data.columns;\n const columnIds = this.data.columns.map((column: KanbanColumn) => column.id);\n\n if (new Set(columnIds).size !== columns.length) {\n throw new Error(\"Repeated IDs are not accepted.\");\n }\n }\n\n private _getTemplates(): void {\n this.columnHeaderTemplate = this.getColumnHeaderTemplate();\n this.columnEmptyMessageTemplate = this.getColumnEmptyMessageTemplate();\n this.itemHeaderTemplate = this.getItemHeaderTemplate();\n this.itemBodyTemplate = this.getItemBodyTemplate();\n this.itemFooterTemplate = this.getItemFooterTemplate();\n }\n}\n","import { Component, Input, OnDestroy, OnInit, TemplateRef } from \"@angular/core\";\n\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { KanbanColumn, KanbanItem } from \"../../models\";\nimport { KanbanEventService } from \"../../kanban-event.service\";\nimport { FormControl } from \"@angular/forms\";\nimport { KanbanColumnOption } from \"../../models/kanban-data\";\n\n@Component({\n selector: \"s-kanban-column\",\n templateUrl: \"./kanban-column.component.html\",\n styleUrls: [\"./kanban-column.component.scss\"],\n})\nexport class KanbanColumnComponent implements OnInit, OnDestroy {\n @Input()\n public data: KanbanColumn;\n\n @Input()\n public showCheckbox = true;\n\n @Input()\n public headerTemplate: TemplateRef<any>;\n\n public selectionControl = new FormControl(false);\n\n private _unsubscribe$ = new Subject<void>();\n\n constructor(\n private readonly kanbanEventService: KanbanEventService,\n ) { }\n\n public ngOnInit(): void {\n this._validateInputs();\n this._subscriveEvents();\n\n this._createTieredOptions();\n }\n\n public ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n\n private _createTieredOptions(): void {\n if (!this.data.options) return;\n\n const options: KanbanColumnOption[] = [];\n\n this.data.options.forEach((option: KanbanColumnOption) => {\n options.push({\n ...option,\n command: () => { option.command(this.data) },\n });\n });\n\n this.data.options = options;\n }\n\n private _subscriveEvents(): void {\n this.selectionControl.valueChanges\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((value: boolean) => {\n if (value) {\n this.kanbanEventService.emitSelectAllColumnItemsEvent(this.data);\n } else {\n this.kanbanEventService.emitUnselectAllColumnItemsEvent(this.data);\n }\n });\n\n this.kanbanEventService.unselectItemEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((_) => {\n this.selectionControl.setValue(false, { emitEvent: false });\n });\n\n this.kanbanEventService.selectItemEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: KanbanItem) => {\n if (!this.data.items.includes(item)) {\n this.selectionControl.setValue(false, { emitEvent: false });\n }\n });\n\n this.kanbanEventService.selectAllColumnItemsEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((column: KanbanColumn) => {\n if (this.data !== column) {\n this.selectionControl.setValue(false, { emitEvent: false });\n }\n });\n\n this.kanbanEventService.unselectAllColumnItemsEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((column: KanbanColumn) => {\n if (this.data !== column) {\n this.selectionControl.setValue(false, { emitEvent: false });\n }\n })\n }\n\n private _validateInputs(): void {\n if (!this.data) {\n throw new Error(\"data parameter is required\");\n }\n }\n}\n","import { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"s-kanban-item-dragging\",\n templateUrl: \"./kanban-item-dragging.component.html\",\n styleUrls: [\"./kanban-item-dragging.component.scss\"],\n})\nexport class KanbanItemDraggingComponent {\n @Input()\n public quantityItems = 0;\n}\n","import { Component, Input, OnInit, TemplateRef } from \"@angular/core\";\n\nimport { KanbanItem } from \"../../models\";\nimport { KanbanEventService } from \"../../kanban-event.service\";\nimport { KanbanItemOption } from \"../../models/kanban-data\";\n\n@Component({\n selector: \"s-kanban-item\",\n templateUrl: \"./kanban-item.component.html\",\n styleUrls: [\"./kanban-item.component.scss\"],\n})\nexport class KanbanItemComponent implements OnInit {\n @Input()\n public item: KanbanItem;\n\n @Input()\n public selected = false;\n\n @Input()\n public showCheckbox = true;\n\n @Input()\n public headerTemplate: TemplateRef<any>;\n\n @Input()\n public bodyTemplate: TemplateRef<any>;\n\n @Input()\n public footerTemplate: TemplateRef<any>;\n\n constructor(private readonly _kanbanEventService: KanbanEventService) {}\n\n public ngOnInit(): void {\n this._createTieredOptions();\n }\n\n public onSelectedChange(value: any): void {\n if (value) {\n this._kanbanEventService.emitSelectItemEvent(this.item);\n } else {\n this._kanbanEventService.emitUnselectItemEvent(this.item);\n }\n }\n\n private _createTieredOptions(): void {\n if (!this.item.options) return;\n\n const options: KanbanItemOption[] = [];\n\n this.item.options.forEach((option: KanbanItemOption) => {\n options.push({\n ...option,\n command: () => { option.command(this.item) },\n });\n });\n\n this.item.options = options;\n }\n}\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { TieredMenuModule } from \"primeng/tieredmenu\";\n\nimport { BadgeModule } from \"../badge/badge.module\";\nimport { ButtonModule } from \"../button/button.module\";\nimport { TemplateModule } from \"../template/template.module\";\nimport { KanbanColumnComponent } from \"./components/kanban-column/kanban-column.component\";\nimport { KanbanItemDraggingComponent } from \"./components/kanban-item-dragging/kanban-item-dragging.component\";\nimport { KanbanItemComponent } from \"./components/kanban-item/kanban-item.component\";\nimport { KanbanEventService } from \"./kanban-event.service\";\nimport { KanbanComponent } from \"./kanban.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n DragDropModule,\n BadgeModule,\n ButtonModule,\n TieredMenuModule,\n TemplateModule,\n ],\n declarations: [\n KanbanComponent,\n KanbanItemComponent,\n KanbanColumnComponent,\n KanbanItemDraggingComponent,\n ],\n exports: [\n KanbanComponent,\n TemplateModule,\n ],\n providers: [KanbanEventService],\n})\nexport class KanbanModule { }\n","import { Component, Input, Output, EventEmitter, forwardRef, OnInit, AfterViewInit, ChangeDetectorRef } from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { NavigationButtonItem } from \"./models/navigation-button-item\";\nimport { TieredMenuItemData } from \"../tiered-menu\";\nimport { NavigationButtonStepChangedInfo } from \"./models\";\n\n@Component({\n selector: \"s-navigation-button\",\n templateUrl: \"./navigation-button.component.html\",\n styleUrls: [\"./navigation-button.component.scss\"],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NavigationButtonComponent),\n multi: true,\n },\n ],\n})\nexport class NavigationButtonComponent implements ControlValueAccessor, OnInit, AfterViewInit {\n @Input()\n public steps: NavigationButtonItem[];\n\n @Input()\n public defaultValue: unknown;\n\n @Input()\n public tooltip: string;\n\n @Input()\n public changeOnInit = false;\n\n @Output()\n public stepChanged: EventEmitter<NavigationButtonStepChangedInfo> = new EventEmitter();\n\n public currentIndex = 0;\n public isDisabled = false;\n public tieredMenuItems: TieredMenuItemData[] = [];\n\n private _onChange: (value: unknown) => void;\n private _onTouched: () => void;\n private _value: unknown;\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) { }\n\n public ngOnInit(): void {\n this._createTieredMenuItems();\n\n if (this.changeOnInit) {\n this.stepChanged.emit({\n previous: undefined,\n current: this.steps[this.currentIndex],\n });\n }\n }\n\n public ngAfterViewInit(): void {\n this._setDefaultValue();\n }\n\n private _setDefaultValue(): void {\n if (this.defaultValue) {\n this._value = this.defaultValue;\n\n const index = this.steps.findIndex((step) => step.value === this._value);\n this.currentIndex = index !== -1 ? index : 0;\n this.stepChanged.emit({\n previous: undefined,\n current: this.steps[this.currentIndex],\n });\n\n this.changeDetectorRef.detectChanges();\n }\n }\n\n public writeValue(value: unknown): void {\n this._value = value;\n\n const index = this.steps.findIndex((step) => step.value === this._value);\n this.currentIndex = index !== -1 ? index : 0;\n }\n\n public registerOnChange(onChange: (value: unknown) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: () => void): void {\n this._onTouched = onTouched;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n public onNext(): void {\n if (this.isDisabled) return;\n\n const previous = this.steps[this.currentIndex];\n\n if (this.currentIndex < this.steps.length - 1) {\n this.currentIndex++;\n\n const current = this.steps[this.currentIndex];\n\n this._onChange && this._onChange(current.value);\n this.stepChanged.emit({ previous, current });\n }\n\n this._onTouched && this._onTouched();\n }\n\n public onPrevious(): void {\n if (this.isDisabled) return;\n\n const previous = this.steps[this.currentIndex];\n\n if (this.currentIndex > 0) {\n this.currentIndex--;\n\n const current = this.steps[this.currentIndex];\n\n this._onChange && this._onChange(current.value);\n this.stepChanged.emit({ previous, current });\n }\n\n this._onTouched && this._onTouched();\n }\n\n private _createTieredMenuItems() {\n this.steps.forEach((step: NavigationButtonItem) => {\n this.tieredMenuItems.push({\n label: step.label,\n command: () => {\n const index = this.steps.findIndex((s) => s === step);\n if (this.currentIndex !== index) {\n this._onChange && this._onChange(step.value);\n this.stepChanged.emit({ previous: this.steps[this.currentIndex], current: step });\n this.currentIndex = index;\n }\n\n this._onTouched && this._onTouched();\n },\n });\n });\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TieredMenuModule } from \"../tiered-menu/tiered-menu.module\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\nimport { NavigationButtonComponent } from \"./navigation-button.component\";\n\n@NgModule({\n imports: [CommonModule, TieredMenuModule, TooltipModule],\n declarations: [NavigationButtonComponent],\n exports: [NavigationButtonComponent],\n})\nexport class NavigationButtonModule {}\n","export enum ProgressBarColors {\n Blue = \"blue\",\n Green = \"green\",\n Red = \"red\",\n Yellow = \"yellow\",\n}","export enum ProgressBarMode {\n Determinate = \"determinate\",\n Indeterminate = \"indeterminate\",\n}\n","import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ViewChild } from \"@angular/core\";\nimport { MenuItem } from \"primeng/api\";\n\nimport { ThumbnailComponent } from \"../../../thumbnail/thumbnail.component\";\n\n@Component({\n selector: \"s-object-card-field\",\n templateUrl: \"./object-card-field.component.html\",\n styleUrls: [\"./object-card-field.component.scss\"],\n})\nexport class ObjectCardFieldComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-object-card-field-${ObjectCardFieldComponent.nextId++}`;\n\n @Input()\n public imageSource?: string;\n\n @Input()\n public imageAlt?: string;\n\n @Input()\n public iconClass?: string;\n\n @Input()\n public label?: string;\n\n @Input()\n public description?: string;\n\n @Input()\n public buttonLabel?: string;\n\n @Input()\n public buttonModel?: MenuItem[];\n\n @Output()\n public buttonClick = new EventEmitter();\n\n @ContentChild(ThumbnailComponent, { static: true })\n public thumbnailComponent: ThumbnailComponent;\n\n @ViewChild(TemplateRef, { static: true })\n public content: TemplateRef<any>;\n}\n","import { AfterContentInit, Component, ContentChild, EventEmitter, HostListener, Input, Output } from \"@angular/core\";\nimport { MenuItem } from \"primeng/api\";\n\nimport { ThumbnailSize } from \"../../../thumbnail/thumbnail-size\";\nimport { ThumbnailComponent } from \"../../../thumbnail/thumbnail.component\";\nimport { Breakpoints } from \"../../../utils\";\n\n@Component({\n selector: \"s-object-card-main\",\n templateUrl: \"./object-card-main.component.html\",\n styleUrls: [\"./object-card-main.component.scss\"],\n})\nexport class ObjectCardMainComponent implements AfterContentInit {\n public static nextId = 0;\n\n @Input()\n public id = `s-object-card-main-${ObjectCardMainComponent.nextId++}`;\n\n @Input()\n public imageSource?: string;\n\n @Input()\n public imageFallback?: string;\n\n @Input()\n public imageAlt?: string;\n\n @Input()\n public iconClass = \"fa fa-picture-o\";\n\n @Input()\n public hasThumbnail = true;\n\n @Input()\n public hasDescription = true;\n\n @Input()\n public isBrand = false;\n\n @Input()\n public label?: string;\n\n @Input()\n public description?: string;\n\n @Input()\n public buttonLabel?: string;\n\n @Input()\n public buttonModel?: MenuItem[];\n\n @Output()\n public buttonClick: EventEmitter<any> = new EventEmitter();\n\n @ContentChild(ThumbnailComponent, { static: true })\n public thumbnailComponent: ThumbnailComponent;\n\n private _thumbnailSize = ThumbnailSize.Medium;\n\n public set thumbnailSize(value: ThumbnailSize) {\n this._thumbnailSize = value;\n if (this.thumbnailComponent) this.thumbnailComponent.size = value;\n }\n\n public get thumbnailSize() {\n return this._thumbnailSize;\n }\n\n @HostListener(\"window:resize\")\n public onResize() {\n this.update();\n }\n\n public ngAfterContentInit() {\n this.update();\n }\n\n public update() {\n const windowWidth = window.innerWidth;\n\n if (windowWidth <= Breakpoints.SM_MAX) this.thumbnailSize = ThumbnailSize.Small;\n else this.thumbnailSize = ThumbnailSize.Medium;\n }\n}\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport {\n AfterContentChecked,\n AfterViewInit,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n QueryList\n} from \"@angular/core\";\n\nimport { BorderButtonOptions } from \"../shared/models/border-button-options\";\nimport { EnumSeverity } from \"../shared/models/enum-severity\";\nimport { Breakpoints } from \"../utils/breakpoints\";\nimport { ObjectCardFieldComponent } from \"./elements/field/object-card-field.component\";\nimport { ObjectCardMainComponent } from \"./elements/main/object-card-main.component\";\n\n@Component({\n selector: \"s-object-card\",\n templateUrl: \"./object-card.component.html\",\n styleUrls: [\"./object-card.component.scss\"],\n animations: [\n trigger(\"expandableContent\", [\n state(\n \"*\",\n style({\n height: \"0\",\n })\n ),\n state(\n \"false\",\n style({\n height: \"0\",\n })\n ),\n state(\n \"true\",\n style({\n height: \"*\",\n })\n ),\n transition(\"* => true\", animate(\"200ms ease-out\")),\n transition(\"false <=> true\", animate(\"200ms ease-out\")),\n ]),\n trigger(\"BorderButtonAnimation\", [\n transition(\":enter\", [\n style({ transform: \"scaleY(0)\", opacity: 0 }),\n animate(\"300ms ease\", style({ transform: \"scaleY(1)\", opacity: 1 })),\n ]),\n transition(\":leave\", [\n style({ transform: \"scaleY(1)\", opacity: 1 }),\n animate(\"300ms ease\", style({ transform: \"scaleY(0)\", opacity: 0 })),\n ]),\n ]),\n ],\n})\nexport class ObjectCardComponent implements AfterViewInit, AfterContentChecked {\n public static nextId = 0;\n\n @Input()\n public id = `s-object-card-${ObjectCardComponent.nextId++}`;\n\n @Input()\n public expanded = false;\n\n @Input()\n public expandTooltip = \"Abrir painel\";\n\n @Input()\n public collapseTooltip = \"Fechar painel\";\n\n @Input()\n public fieldsMinWidth = 200;\n\n @Output()\n public expandedChange = new EventEmitter<boolean>();\n\n @ContentChild(ObjectCardMainComponent, { static: true })\n public main: ObjectCardMainComponent;\n\n @ContentChildren(ObjectCardFieldComponent, { descendants: true })\n public fields?: QueryList<ObjectCardFieldComponent>;\n\n public maxVisibleFields = 0;\n\n @Input()\n severity = EnumSeverity.Default;\n\n @Input()\n borderButtonOptions: BorderButtonOptions;\n\n readonly EnumSeverity = EnumSeverity;\n\n\n constructor(private elementRef: ElementRef) { }\n\n public ngAfterViewInit() {\n }\n\n public ngAfterContentChecked(): void {\n this.update();\n }\n\n private update() {\n const windowWidth = window.innerWidth;\n const containerWidth = this.elementRef.nativeElement.offsetWidth;\n const mainFieldWidth = containerWidth * 0.3 > 260 ? containerWidth * 0.3 : 260;\n const fieldsMinWidth = this.fieldsMinWidth;\n const expandIconWidth = 50;\n const fieldElementList = this.elementRef.nativeElement.getElementsByClassName(\"s-object-card-field\");\n for (const element of fieldElementList) {\n element.style.minWidth = `${this.fieldsMinWidth}px`;\n }\n\n let maxFieldQtd;\n\n if (windowWidth <= Breakpoints.SM_MAX) maxFieldQtd = 0;\n else maxFieldQtd = Math.floor((containerWidth - mainFieldWidth) / fieldsMinWidth);\n\n if (maxFieldQtd && maxFieldQtd < this.fields.length) {\n maxFieldQtd = Math.floor((containerWidth - mainFieldWidth - expandIconWidth) / fieldsMinWidth);\n }\n\n this.maxVisibleFields = maxFieldQtd;\n\n if (maxFieldQtd >= this.fields.length && this.expanded) this.collapse();\n }\n\n public toggle() {\n this.expanded ? this.collapse() : this.expand();\n }\n\n public expand() {\n this.expanded = true;\n this.expandedChange.emit(this.expanded);\n }\n\n public collapse() {\n this.expanded = false;\n this.expandedChange.emit(this.expanded);\n }\n\n public getExpandedFieldWidth() {\n const containerWidth = this.elementRef.nativeElement.offsetWidth;\n\n let fieldsPerRow;\n if (containerWidth <= Breakpoints.SM_MAX) fieldsPerRow = 1;\n else if (containerWidth <= Breakpoints.MD_MAX) fieldsPerRow = 2;\n else if (containerWidth <= Breakpoints.LG_MAX) fieldsPerRow = 4;\n else fieldsPerRow = 6;\n\n return 12 / fieldsPerRow;\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { BorderButtonOptions } from \"../models/border-button-options\";\nimport { EnumSeverity } from \"../models/enum-severity\";\nimport { TooltipPosition } from \"../../tooltip/models/tooltip-position\";\n\n@Component({\n selector: \"s-border-button\",\n templateUrl: \"./border-button.component.html\",\n styleUrls: [\"./border-button.component.scss\"],\n})\nexport class BorderButtonComponent {\n @Input()\n severity = EnumSeverity.Default;\n\n @Input()\n options: BorderButtonOptions;\n\n readonly EnumSeverity = EnumSeverity;\n\n readonly TooltipPosition = TooltipPosition;\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TooltipModule } from \"../../tooltip/tooltip.module\";\nimport { BorderButtonComponent } from \"./border-button.component\";\n\n@NgModule({\n imports: [CommonModule, TooltipModule],\n declarations: [BorderButtonComponent],\n exports: [BorderButtonComponent]\n})\nexport class BorderButtonModule {}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { ButtonModule } from \"../button/button.module\";\nimport { ThumbnailModule } from \"../thumbnail/thumbnail.module\";\nimport { ObjectCardComponent } from \"./object-card.component\";\nimport { ObjectCardMainComponent } from \"./elements/main/object-card-main.component\";\nimport { ObjectCardFieldComponent } from \"./elements/field/object-card-field.component\";\nimport { BorderButtonModule } from \"../shared/border-button/border-button.module\";\n\n@NgModule({\n imports: [CommonModule, TooltipModule, ThumbnailModule, ButtonModule, BorderButtonModule],\n declarations: [ObjectCardComponent, ObjectCardMainComponent, ObjectCardFieldComponent],\n exports: [ThumbnailModule, ObjectCardComponent, ObjectCardMainComponent, ObjectCardFieldComponent],\n})\nexport class ObjectCardModule {}\n","import { animate, style, transition, trigger } from \"@angular/animations\";\nimport { AfterContentInit, Component, ContentChildren, EventEmitter, Input, Output, QueryList, TemplateRef } from \"@angular/core\";\n\nimport { BorderButtonOptions } from \"../shared\";\nimport { TemplateDirective } from \"../template/template.directive\";\nimport { EnumSeverity } from \"../shared/models/enum-severity\";\n\n@Component({\n selector: \"s-panel\",\n templateUrl: \"./panel.component.html\",\n styleUrls: [\"./panel.component.scss\"],\n animations: [\n trigger(\"BorderButtonAnimation\", [\n transition(\":enter\", [\n style({ transform: \"scaleY(0)\", opacity: 0 }),\n animate(\"300ms ease\", style({ transform: \"scaleY(1)\", opacity: 1 })),\n ]),\n transition(\":leave\", [\n style({ transform: \"scaleY(1)\", opacity: 1 }),\n animate(\"300ms ease\", style({ transform: \"scaleY(0)\", opacity: 0 })),\n ]),\n ]),\n ],\n})\nexport class PanelComponent implements AfterContentInit {\n @Input()\n header: string;\n\n @Input()\n toggleable = false;\n\n @Input()\n collapsed = false;\n\n @Input()\n severity = EnumSeverity.Default;\n\n @Input()\n borderButtonOptions: BorderButtonOptions;\n\n @Input()\n class: string;\n\n @Output()\n collapsedChange = new EventEmitter<boolean>();\n\n @ContentChildren(TemplateDirective)\n templates: QueryList<TemplateDirective>;\n\n readonly EnumSeverity = EnumSeverity;\n\n headerTemplate: TemplateRef<unknown>;\n\n bodyTemplate: TemplateRef<unknown>;\n\n footerTemplate: TemplateRef<unknown>;\n\n ngAfterContentInit(): void {\n this._getTemplates();\n }\n\n toggleCollapsed(): void {\n this.collapsed = !this.collapsed;\n this.collapsedChange.emit(this.collapsed);\n }\n\n private _getCustomTemplate(type: string) {\n return this.templates.find((template: TemplateDirective) => template.type === type)?.template;\n }\n\n private getHeaderTemplate(): TemplateRef<unknown> {\n return this._getCustomTemplate(\"header\");\n }\n\n private getBodyTemplate(): TemplateRef<unknown> {\n return this._getCustomTemplate(\"body\");\n }\n\n private getFooterTemplate(): TemplateRef<unknown> {\n return this._getCustomTemplate(\"footer\");\n }\n\n private _getTemplates(): void {\n this.headerTemplate = this.getHeaderTemplate();\n this.bodyTemplate = this.getBodyTemplate();\n this.footerTemplate = this.getFooterTemplate();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { PanelComponent } from \"./panel.component\";\nimport { BorderButtonModule } from \"../shared/border-button/border-button.module\";\nimport { TemplateModule } from \"../template/template.module\";\n\n@NgModule({\n imports: [CommonModule, BorderButtonModule],\n declarations: [PanelComponent],\n exports: [PanelComponent, TemplateModule],\n})\nexport class PanelModule {}\n","import { AfterViewInit, Component, ElementRef, Input, ViewChild } from \"@angular/core\";\nimport { DomHandler } from \"primeng/dom\";\n\n@Component({\n selector: \"s-product-header\",\n templateUrl: \"./product-header.component.html\",\n styleUrls: [\"./product-header.component.scss\"],\n})\nexport class ProductHeaderComponent implements AfterViewInit {\n public static nextId = 0;\n\n @Input()\n public id = `s-product-header-${ProductHeaderComponent.nextId++}`;\n\n @Input()\n public header: string;\n\n @Input()\n public baseZIndex = 0;\n\n @Input()\n public isHeaderFrame = true;\n\n @ViewChild(\"headerContainer\", { static: false })\n public container: ElementRef;\n\n public ngAfterViewInit() {\n this.container.nativeElement.style.zIndex = String(this.baseZIndex + ++DomHandler.zindex);\n if (this.isHeaderFrame) {\n this.container.nativeElement.style.borderBottom = \"1px solid $default-secondary-color\";\n } else {\n this.container.nativeElement.style.borderTop = \"1px solid $default-secondary-color\";\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { ThumbnailModule } from \"../thumbnail/thumbnail.module\";\nimport { ProductHeaderComponent } from \"./product-header.component\";\n\n@NgModule({\n imports: [CommonModule, TooltipModule, ThumbnailModule],\n declarations: [ProductHeaderComponent],\n exports: [ProductHeaderComponent, ThumbnailModule],\n})\nexport class ProductHeaderModule {}\n","import { Component, Input, OnInit } from \"@angular/core\";\n\nimport { ProgressBarColors, ProgressBarMode } from \"./models\";\n\n@Component({\n selector: \"s-progressbar\",\n templateUrl: \"./progressbar.component.html\",\n styleUrls: [\"./progressbar.component.scss\"],\n})\nexport class ProgressBarComponent implements OnInit {\n @Input()\n public value: number;\n\n @Input()\n public numberFormatOptions: Intl.NumberFormatOptions = {\n style: \"decimal\",\n minimumFractionDigits: 0,\n maximumFractionDigits: 2,\n roundingMode: \"trunc\",\n } as unknown as Intl.NumberFormatOptions;\n\n @Input()\n public targetValue: number;\n\n @Input()\n public label: string;\n\n @Input()\n public targetLabel: string;\n\n @Input()\n public activeColor: ProgressBarColors;\n\n @Input()\n public showValue = true;\n\n @Input()\n public mode = ProgressBarMode.Determinate;\n\n constructor() {}\n\n public ngOnInit() {\n this.validateInputs();\n }\n\n private validateInputs(): void {\n if (this.value < 0 || this.value > 100) {\n throw new Error(\"Invalid value for value\");\n }\n\n if (this.targetValue < 0 || this.targetValue > 100) {\n throw new Error(\"Invalid value for targetValue\");\n }\n\n if (this.mode === ProgressBarMode.Indeterminate && (this.value || this.targetValue || this.targetLabel)) {\n throw new Error(\"When the mode is indeterminate, the value, targetValue and targetLabel parameters are not expected.\");\n }\n }\n}\n","import { Component, Input, OnInit } from \"@angular/core\";\n\nimport { ProgressBarColors } from \"../../models\";\nimport { LocaleService } from \"../../../locale/locale.service\";\n\n@Component({\n selector: \"s-progressbar-determinate\",\n templateUrl: \"./progressbar-determinate.component.html\",\n styleUrls: [\"./progressbar-determinate.component.scss\"],\n})\nexport class ProgressBarDeterminateComponent implements OnInit {\n @Input()\n public value: number;\n\n @Input()\n public numberFormatOptions: Intl.NumberFormatOptions;\n\n @Input()\n public targetValue: number;\n\n @Input()\n public targetLabel: string;\n\n @Input()\n public activeColor: ProgressBarColors;\n\n @Input()\n public showValue = true;\n\n numberFormat: Intl.NumberFormat;\n\n constructor(private readonly localeService: LocaleService) {}\n\n public ngOnInit() {\n this.validateValues();\n\n this.onGetLocale();\n }\n\n private onGetLocale(): void {\n this.localeService.getLocale().subscribe({\n next: (locale) => {\n this.numberFormat = new Intl.NumberFormat(locale ?? \"pt-BR\", this.numberFormatOptions);\n },\n error: () => {\n this.numberFormat = new Intl.NumberFormat(\"pt-BR\", this.numberFormatOptions);\n },\n });\n }\n\n private validateValues(): void {\n if (this.value < 0 || this.value > 100) {\n throw new Error(\"Invalid value for value\");\n }\n if (this.targetValue < 0 || this.targetValue > 100) {\n throw new Error(\"Invalid value for targetValue\");\n }\n }\n}\n","import { Component, Input } from \"@angular/core\";\n\nimport { ProgressBarColors } from \"../../models\";\n\n@Component({\n selector: \"s-progressbar-indeterminate\",\n templateUrl: \"./progressbar-indeterminate.component.html\",\n styleUrls: [\"./progressbar-indeterminate.component.scss\"],\n})\nexport class ProgressBarIndeterminateComponent {\n @Input()\n public activeColor: ProgressBarColors;\n\n @Input()\n public label: string;\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { ProgressBarComponent } from \"./progressbar.component\";\nimport { ProgressBarDeterminateComponent } from \"./components/progressbar-determinate/progressbar-determinate.component\";\nimport { ProgressBarIndeterminateComponent } from \"./components/progressbar-indeterminate/progressbar-indeterminate.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n ProgressBarComponent,\n ProgressBarDeterminateComponent,\n ProgressBarIndeterminateComponent,\n ],\n exports: [ProgressBarComponent],\n})\nexport class ProgressBarModule { }","import { Component, Input, forwardRef } from \"@angular/core\";\n\nimport { RatingScaleNode } from \"./models/rating-scale-node\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\n@Component({\n selector: \"s-rating-scale\",\n templateUrl: \"./rating-scale.component.html\",\n styleUrls: [\"./rating-scale.component.scss\"],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RatingScaleComponent),\n multi: true,\n }],\n})\nexport class RatingScaleComponent implements ControlValueAccessor {\n @Input()\n public nodes: RatingScaleNode[];\n\n @Input()\n public startLabel: string;\n\n @Input()\n public endLabel: string;\n\n @Input()\n public disabled = false;\n\n public value: RatingScaleNode;\n private _onChange: (value: RatingScaleNode) => void;\n private _onTouched: (value: RatingScaleNode) => void;\n\n public writeValue(value: RatingScaleNode): void {\n if (!this.disabled) {\n this.value = value;\n }\n }\n public registerOnChange(onChange: (value: RatingScaleNode) => void): void {\n this._onChange = onChange;\n }\n public registerOnTouched(onTouched: (value: RatingScaleNode) => void): void {\n this._onTouched = onTouched;\n }\n\n public onSelect(rating: RatingScaleNode) {\n this.value = rating;\n if (this._onChange) {\n this._onChange(this.value);\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\n\nimport { RatingScaleComponent } from \"./rating-scale.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n ],\n declarations: [RatingScaleComponent],\n exports: [RatingScaleComponent],\n})\nexport class RatingScaleModule { }\n","import { Component, EventEmitter, Input, Output, forwardRef } from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { SelectButtonItem } from \"./models\";\n\n@Component({\n selector: \"s-select-button\",\n templateUrl: \"./select-button.component.html\",\n styleUrls: [\"./select-button.component.scss\"],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectButtonComponent),\n multi: true,\n },\n ],\n})\nexport class SelectButtonComponent implements ControlValueAccessor {\n @Input()\n public items: SelectButtonItem[];\n\n @Input()\n public multiple = false;\n\n @Output()\n public itemSelected = new EventEmitter<SelectButtonItem[]>();\n\n @Output()\n public itemClicked = new EventEmitter<SelectButtonItem>();\n\n public disabled = false;\n public activeItems = new Set<SelectButtonItem>();\n public onChange: (value: SelectButtonItem[]) => void;\n public onTouched: (value: SelectButtonItem[]) => void;\n\n public writeValue(value?: SelectButtonItem | SelectButtonItem[]): void {\n if (!value) return;\n\n this.activeItems.clear();\n\n if (Array.isArray(value)) {\n value.forEach((item: SelectButtonItem) => {\n this.items.forEach((iItem: SelectButtonItem) => {\n if (this._compareItems(item, iItem)) {\n this.activeItems.add(iItem);\n }\n });\n });\n } else {\n this.items.forEach((iItem: SelectButtonItem) => {\n if (this._compareItems(value, iItem)) {\n this.activeItems.add(iItem);\n }\n });\n }\n }\n\n public registerOnChange(onChange: (value: SelectButtonItem[]) => void): void {\n this.onChange = onChange;\n }\n\n public registerOnTouched(onTouched: (value: SelectButtonItem[]) => void): void {\n this.onTouched = onTouched;\n }\n\n public setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n public onItemSelect(item: SelectButtonItem): void {\n if (this.disabled || item.disabled) return;\n\n this.itemClicked.emit(item);\n\n if (!this.multiple) {\n this.activeItems.clear();\n }\n this.activeItems.add(item);\n this.itemSelected.emit([...this.activeItems]);\n\n this.onChange?.([...this.activeItems]);\n this.onTouched?.([...this.activeItems]);\n }\n\n private _compareItems(item1: SelectButtonItem, item2: SelectButtonItem): boolean {\n const _compare = (a: any, b: any): boolean => {\n if (a === b) {\n return true;\n }\n\n if (a === undefined || b === undefined || typeof a !== \"object\" || a === null || typeof b !== \"object\" || b === null) {\n return false;\n }\n\n if (Array.isArray(a) !== Array.isArray(b)) {\n return false;\n }\n\n let keysA = Object.keys(a);\n let keysB = Object.keys(b);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n for (let key of keysA) {\n if (!keysB.includes(key) || !_compare(a[key], b[key])) {\n return false;\n }\n }\n\n for (let key in a) {\n if (a.hasOwnProperty(key) !== b.hasOwnProperty(key)) {\n return false;\n }\n }\n\n return true;\n };\n\n return _compare(item1, item2);\n }\n}\n","import { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"s-select-button-item\",\n templateUrl: \"./select-button-item.component.html\",\n styleUrls: [\"./select-button-item.component.scss\"],\n})\nexport class SelectButtonItemComponent {\n @Input()\n public label: string;\n\n @Input()\n public active = false;\n\n @Input()\n public first = false;\n\n @Input()\n public last = false;\n\n @Input()\n public disabled = false;\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { SelectButtonComponent } from \"./select-button.component\";\nimport { SelectButtonItemComponent } from \"./components/select-button-item/select-button-item.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n SelectButtonComponent,\n SelectButtonItemComponent,\n ],\n exports: [SelectButtonComponent],\n})\nexport class SelectButtonModule { }","/**\n * A decorator that can be used to disable functions based on a boolean property on the component.\n *\n * @param disabledField The name of the boolean property that will be used to determine if the decorated\n * function should be disabled. Defaults to 'disabled'.\n * @returns A decorator function that can be used to decorate a function.\n *\n * @example\n * class MyComponent {\n * disabled = true;\n *\n * @CheckDisabled()\n * onClick() {\n * console.log('Button was clicked');\n * }\n * }\n */\nexport function CheckDisabled(disabledField = 'disabled') {\n return function (_target: any, _propertyKey: string, descriptor: PropertyDescriptor) {\n const originalMethod = descriptor.value;\n\n descriptor.value = function (...args: any[]) {\n if (this[disabledField]) {\n return;\n }\n return originalMethod.apply(this, args);\n };\n\n return descriptor;\n };\n}\n","export enum SplitButtonType {\n Primary = \"primary\",\n Secondary = \"secondary\",\n Default = \"default\",\n}","import { FocusTrapFactory } from \"@angular/cdk/a11y\";\nimport { Component, ContentChild, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from \"@angular/core\";\nimport { Sidebar } from \"primeng/sidebar\";\nimport { FooterComponent } from \"../structure/footer.component\";\nimport { HeaderComponent } from \"../structure/header.component\";\nimport { DomHandler } from \"primeng/dom\";\n\n@Component({\n selector: \"s-sidebar\",\n templateUrl: \"./sidebar.component.html\",\n styleUrls: [\"./sidebar.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SidebarComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-sidebar-${SidebarComponent.nextId++}`;\n\n @Input()\n public visible = false;\n\n @Input()\n public header: string;\n\n @Input()\n public baseZIndex = 0;\n\n @Input()\n public largeSized = false;\n\n @Output()\n public visibleChange = new EventEmitter<boolean>();\n\n @ViewChild(Sidebar, { static: true })\n public innerSidebar: Sidebar;\n\n @ContentChild(HeaderComponent, { static: true })\n public headerSection: HeaderComponent;\n\n @ContentChild(FooterComponent, { static: true })\n public footerSection: FooterComponent;\n\n constructor(private focusTrapFactory: FocusTrapFactory) {}\n\n public onShow() {\n DomHandler.addClass(document.body, \"ui-overflow-hidden-sidebar\");\n const focusTrap = this.focusTrapFactory.create(this.innerSidebar.containerViewChild.nativeElement, false);\n focusTrap.focusInitialElementWhenReady();\n }\n\n public onHide() {\n DomHandler.removeClass(document.body, \"ui-overflow-hidden-sidebar\");\n }\n\n public close(event: Event) {\n DomHandler.removeClass(document.body, \"ui-overflow-hidden-sidebar\");\n this.visibleChange.emit(false);\n event.preventDefault();\n }\n}\n","import { A11yModule } from \"@angular/cdk/a11y\";\nimport { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { ScrollPanelModule } from \"primeng/scrollpanel\";\nimport { SidebarModule as PrimeSidebar } from \"primeng/sidebar\";\nimport { StructureModule } from \"../structure/structure.module\";\nimport { SidebarComponent } from \"./sidebar.component\";\n\n@NgModule({\n imports: [CommonModule, A11yModule, PrimeSidebar, ScrollPanelModule, StructureModule],\n declarations: [SidebarComponent],\n exports: [StructureModule, SidebarComponent],\n})\nexport class SidebarModule {}\n","import { Injectable } from \"@angular/core\";\n\nimport { Observable, Subject } from \"rxjs\";\n\n@Injectable()\nexport class SlidePanelService {\n private modalCloseMap = new Map<string, Subject<void>>();\n\n public createSlidePanel(id: string): Observable<void> {\n const panelSubject = new Subject<void>();\n\n this.modalCloseMap.set(id, panelSubject);\n return panelSubject.asObservable();\n }\n\n public getModalCloseObservable(id: string): Observable<void> {\n return this.modalCloseMap.get(id).asObservable();\n }\n\n public closeModal(id: string): void {\n const subject = this.modalCloseMap.get(id);\n if (subject) {\n subject.next();\n }\n }\n}","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnInit,\n AfterViewChecked,\n Output,\n ViewChild,\n OnDestroy,\n AfterViewInit,\n} from \"@angular/core\";\n\nimport { SlidePanelService } from \"./slide-panel.service\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { Subject } from \"rxjs\";\n\nconst SMALL_DEVICE_BREAKPOINT = 420;\n\n@Component({\n selector: \"s-slide-panel\",\n templateUrl: \"./slide-panel.component.html\",\n styleUrls: [\"./slide-panel.component.scss\"],\n animations: [\n trigger(\"cachelessAnimation\", [\n transition(\":enter\", [\n style({ width: \"0\" }),\n animate(\"200ms linear\", style({ width: \"*\" })),\n ]),\n transition(\":leave\", [\n style({ width: \"*\" }),\n animate(\"200ms linear\", style({ width: \"0\" })),\n ]),\n ]),\n trigger(\"cacheAnimation\", [\n state(\"true\", style({ width: \"*\", padding: '0 16px' })),\n state(\"false\", style({ width: '0px', padding: '0' })),\n transition(\"* => *\", animate(\"200ms\")),\n ]),\n ],\n})\nexport class SlidePanelComponent implements OnInit, AfterViewChecked, AfterViewInit, OnDestroy {\n public static nextId = 0;\n\n @Input()\n public id = `slide-panel-${++SlidePanelComponent.nextId}`;\n\n @Input()\n public openIcon = \"fas fa-chevron-right\";\n\n @Input()\n public closeIcon = \"fas fa-chevron-left\";\n\n @Input()\n public cache = false;\n\n @Input()\n public createOpen = false;\n\n @Input()\n public noOverlap = false;\n\n @Output()\n public panelOpened = new EventEmitter<void>();\n\n @Output()\n public panelClosed = new EventEmitter<void>();\n\n @ViewChild(\"sideContent\")\n private _sideContentRef: ElementRef;\n\n public isOpen = false;\n public isSlideOver = false;\n public isAnimating = false;\n public isContentAnimationDisabled = true;\n public slideHeight = 0;\n\n private _unsubscribe$ = new Subject<void>();\n\n @HostListener(\"window:resize\")\n public onResize(): void {\n this._checkOverBehavior();\n }\n\n constructor(\n private readonly slidePanelService: SlidePanelService,\n ) { }\n\n public ngOnInit(): void {\n this._checkOverBehavior();\n this.slidePanelService.createSlidePanel(this.id)\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe(() => {\n this.isOpen = false;\n });\n }\n\n public ngAfterViewInit(): void {\n queueMicrotask(() => {\n if (this.createOpen) {\n this.isOpen = true;\n }\n });\n }\n\n public ngAfterViewChecked() {\n // to executed at a safe time prior to control returning to the browser's event loop\n queueMicrotask(() => {\n this._calculateSlideHeight();\n this.isContentAnimationDisabled = false;\n });\n }\n\n public ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n\n public onClickButton() {\n if (this.isAnimating) {\n return;\n }\n\n this.isOpen = !this.isOpen;\n\n if (this.isOpen) {\n this.panelOpened.emit();\n } else {\n this.panelClosed.emit();\n }\n }\n\n public onContentAnimationStart() {\n this.isAnimating = true;\n }\n\n public onContentAnimationDone() {\n this.isAnimating = false;\n }\n\n private _checkOverBehavior() {\n this.isSlideOver = window.innerWidth <= SMALL_DEVICE_BREAKPOINT;\n }\n\n private _calculateSlideHeight() {\n this.slideHeight = this._sideContentRef.nativeElement.clientHeight;\n }\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { SlidePanelComponent } from \"./slide-panel.component\";\nimport { SlidePanelService } from \"./slide-panel.service\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [SlidePanelComponent],\n exports: [SlidePanelComponent],\n providers: [SlidePanelService],\n})\nexport class SlidePanelModule { }","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild\n} from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\n@Component({\n selector: \"s-slider\",\n templateUrl: \"./slider.component.html\",\n styleUrls: [\"./slider.component.scss\"],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SliderComponent),\n multi: true,\n },\n ],\n})\nexport class SliderComponent implements OnInit, AfterViewInit, ControlValueAccessor, OnChanges {\n private readonly MAX_RANGE_VALUE = 100;\n private readonly MIN_RANGE_VALUE = 0;\n @ViewChild(\"track\")\n public track!: ElementRef;\n\n @Input()\n public multiple = false;\n\n @Input()\n public value: number | [number, number] = 0;\n\n @Output()\n public valueChange = new EventEmitter<number | [number, number]>();\n\n @Input()\n public step = 1;\n\n @Input()\n public hiddenThumb = false;\n\n @Input()\n public disabled = false;\n\n @Input()\n public min = this.MIN_RANGE_VALUE;\n\n @Input()\n public max = this.MAX_RANGE_VALUE;\n\n @Input()\n public minValueLabel: string;\n\n @Input()\n public maxValueLabel: string;\n\n @Input()\n public tabindex = 0;\n\n public startValue = 0;\n public endValue = 0;\n public movingProgressBar = false;\n public progressLeft = 0;\n public progressWidth = \"\";\n\n public onChange: (value: number | [number, number]) => void = () => { };\n public onTouched: (value: number | [number, number]) => void = () => { };\n\n private draggingThumb: \"start\" | \"end\" | null = null;\n private progressBarEventPositionStart = -1;\n private startValueBeforeProgressBarEvent = -1;\n private rangeBetweenElementsBeforeProgressBarEvent = -1;\n private totalRangeBeforeProgressBarEvent = -1;\n /**\n * Map of valid values for values in range.\n * @example\n * with min = -10 and max = 10 will have this map.\n * {\n * -10: { 0 },\n * -9: { 10 },\n * ...\n * 10: { 10 }\n * }\n */\n private mapRangeValuesForSlider: Map<number, number> = new Map();\n private activeMouseDown = false;\n private focusActive = false;\n\n constructor() { }\n\n public ngOnInit(): void {\n this.setUserRangeMapValues();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n const hasChangesOnMin = changes.min && !changes.min.firstChange;\n const hasChangesOnMax = changes.max && !changes.max.firstChange;\n const hasChanges = hasChangesOnMin || hasChangesOnMax;\n if (hasChanges) {\n this.setUserRangeMapValues();\n setTimeout(() => {\n this.setRangeValues();\n })\n }\n }\n public ngAfterViewInit(): void {\n setTimeout(() => {\n this.setRangeValues();\n })\n }\n\n @HostListener(\"document:keydown\", [\"$event\"])\n public onKeydown($event: KeyboardEvent) {\n if (this.focusActive && !this.disabled) {\n const isArrowKeyLeft = $event.key === \"ArrowLeft\";\n const isArrowKeyRight = $event.key === \"ArrowRight\";\n if (isArrowKeyLeft) {\n this.handleArrowKeyLeft();\n } else if (isArrowKeyRight) {\n this.handleArrowKeyRight();\n }\n }\n }\n\n public get tooltipStartText() {\n return Array.isArray(this.value) ? this.value[0]?.toString() : this.value?.toString();\n }\n\n public get tooltipEndText() {\n return Array.isArray(this.value) ? this.value[1]?.toString() : this.value?.toString();\n }\n\n public writeValue(obj: number | [number, number]): void {\n this.value = obj;\n this.setRangeValues();\n }\n\n public registerOnChange(fn: (value: number | [number, number]) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public onFocusIn() {\n this.focusActive = true;\n }\n\n public onBlur() {\n this.focusActive = false;\n }\n\n public onTrackClick(evt: PointerEvent) {\n if (this.disabled || this.movingProgressBar || this.activeMouseDown) {\n return;\n }\n const trackClickPercentage = this.getPercentageByEvent(evt);\n const trackClickToUserRange = this.getValueFromMapByValue(trackClickPercentage);\n const _trackClickValid = this.needParseValues ? trackClickToUserRange : trackClickPercentage;\n const _setEndValue = () => {\n const _endValueUserValue = this.getValueFromMapByValue(this.endValue);\n const _endValue = this.needParseValues ? this.mapRangeValuesForSlider.get(trackClickToUserRange) : trackClickPercentage;\n if (this.needParseValues && _endValueUserValue !== trackClickToUserRange) {\n this.endValue = _endValue;\n } else if (!this.needParseValues) {\n this.endValue = trackClickPercentage;\n }\n };\n\n const _setStartValue = () => {\n const _startValueUserValue = this.getValueFromMapByValue(this.startValue);\n if (this.needParseValues && _startValueUserValue !== trackClickToUserRange) {\n const _startValue = this.needParseValues\n ? this.mapRangeValuesForSlider.get(trackClickToUserRange)\n : trackClickPercentage;\n this.startValue = _startValue;\n } else if (!this.needParseValues) {\n this.startValue = trackClickPercentage;\n }\n };\n if (this.multiple) {\n const [start, end] = this.value as [number, number];\n const validStart = this.needParseValues ? this.mapRangeValuesForSlider.get(start) : start;\n const validEnd = this.needParseValues ? this.mapRangeValuesForSlider.get(end) : end;\n const _updateStart = () => {\n _setStartValue();\n this.setValue([trackClickPercentage, validEnd]);\n };\n\n const _updateEnd = () => {\n _setEndValue();\n this.setValue([validStart, trackClickPercentage]);\n };\n const clickPercentageBetweenRange = isInRange(_trackClickValid, start, end);\n if (_trackClickValid < start) {\n _updateStart();\n } else if (_trackClickValid > end) {\n _updateEnd();\n } else if (clickPercentageBetweenRange) {\n const middle = (start + end) / 2;\n const trackClickPercentageIsExactiddle = _trackClickValid === middle;\n if (trackClickPercentageIsExactiddle) {\n _updateStart();\n } else {\n const setStart = _trackClickValid < middle;\n const setEnd = _trackClickValid > middle;\n if (setStart) {\n _updateStart();\n } else if (setEnd) {\n _updateEnd();\n }\n }\n }\n } else {\n this.setValue(trackClickPercentage);\n _setEndValue();\n }\n\n this.setProgress();\n }\n\n public onProgressMouseDown(evt: PointerEvent) {\n if (!this.multiple || this.disabled) {\n return;\n }\n this.progressBarEventPositionStart = this.getPercentageByEvent(evt);\n this.startValueBeforeProgressBarEvent = this.startValue;\n this.rangeBetweenElementsBeforeProgressBarEvent = this.endValue - this.startValue;\n if (this.multiple) {\n const [start, end] = this.value as [number, number];\n this.totalRangeBeforeProgressBarEvent = end - start;\n }\n document.addEventListener(\"mousemove\", this.handleProgressBarMove);\n document.addEventListener(\"mouseup\", this.handleProgressBarMoveEnd);\n }\n\n public onMouseDown(_: MouseEvent, thumb: \"start\" | \"end\"): void {\n if (this.disabled) return;\n\n this.draggingThumb = thumb;\n this.activeMouseDown = true;\n document.addEventListener(\"mousemove\", this.onThumbMove);\n document.addEventListener(\"mouseup\", this.onMouseUp);\n }\n\n private setRangeValues(): void {\n const _setStartAndEndValue = (startValue: number, endValue: number) => {\n this.startValue = this.getClosestValueFromMapSlider(startValue);\n this.endValue = this.getClosestValueFromMapSlider(endValue);\n }\n if (this.value === null || this.value === undefined) {\n return;\n }\n if (Array.isArray(this.value) && !this.multiple) {\n throw new Error('You must use \"multiple\" with value as array');\n }\n if (this.multiple && Array.isArray(this.value)) {\n this.startValue = this.value[0];\n this.endValue = this.value[1];\n } else if (!this.multiple) {\n this.startValue = this.value as number;\n this.endValue = this.value as number;\n }\n _setStartAndEndValue(this.startValue, this.endValue);\n if (this.multiple) {\n let [_startValue, _endValue] = this.value as [number, number];\n const difference = getDifference(_endValue, _startValue);\n const endValueIsGreatherThanMax = _endValue > this.max;\n const startValueIsLessThanMin = _startValue < this.min;\n const needUpdateValues = endValueIsGreatherThanMax || startValueIsLessThanMin;\n if (endValueIsGreatherThanMax) {\n _endValue = this.max;\n _startValue = _endValue - difference;\n } else if (startValueIsLessThanMin) {\n _startValue = this.min;\n _endValue = _startValue + difference;\n }\n if (needUpdateValues) {\n _setStartAndEndValue(_startValue, _endValue);\n this.setValue([this.startValue, this.endValue]);\n }\n } else {\n let _value = this.value as number;\n const valueGreatherThanMax = _value > this.max;\n const valueLessThanMin = _value < this.min;\n const needUpdateValue = valueGreatherThanMax || valueLessThanMin;\n if (valueGreatherThanMax) {\n _value = this.max;\n } else if (valueLessThanMin) {\n _value = this.min;\n }\n if (needUpdateValue) {\n this.setValue(_value, false);\n }\n }\n this.setProgress();\n }\n\n private onThumbMove = (event: MouseEvent) => {\n if (this.movingProgressBar || !this.draggingThumb) return;\n\n let newPosition = this.getPercentageByEvent(event);\n if (\n (this.multiple && this.draggingThumb === \"start\" && newPosition > this.endValue) ||\n (this.multiple && this.draggingThumb === \"end\" && newPosition < this.startValue)\n ) {\n return;\n }\n\n const positionInUserRange = this.getValueFromMapByValue(newPosition);\n\n if (this.multiple) {\n if (this.draggingThumb === \"start\") {\n this.startValue = this.needParseValues\n ? this.mapRangeValuesForSlider.get(positionInUserRange)\n : newPosition;\n } else if (this.draggingThumb === \"end\") {\n this.endValue = this.needParseValues\n ? this.mapRangeValuesForSlider.get(positionInUserRange)\n : newPosition;\n }\n\n this.setValue([this.startValue, this.endValue]);\n\n const [start, end] = this.value as [number, number];\n\n if (start === end && this.draggingThumb === \"start\") {\n this.startValue = this.endValue;\n } else if (start === end && this.draggingThumb === \"end\") {\n this.endValue = this.startValue;\n }\n } else {\n const currentValue = this.value as number;\n const _value = this.needParseValues ? positionInUserRange : newPosition;\n const isAtSameValue = this.needParseValues ? positionInUserRange === this.value : false;\n const hasStep = this.step !== 0;\n const newValueIsValidByStep = hasStep ? currentValue + this.step === _value || currentValue - this.step === _value : false;\n if (isAtSameValue && !newValueIsValidByStep) {\n return;\n }\n this.endValue = this.needParseValues ? this.mapRangeValuesForSlider.get(positionInUserRange) : newPosition;\n this.startValue = this.endValue;\n this.setValue(this.endValue);\n }\n this.setProgress();\n };\n\n private onMouseUp = () => {\n this.draggingThumb = null;\n document.removeEventListener(\"mousemove\", this.onThumbMove);\n document.removeEventListener(\"mouseup\", this.onMouseUp);\n setTimeout(() => {\n this.activeMouseDown = false;\n }, 150);\n };\n\n private handleProgressBarMove = (event: MouseEvent) => {\n this.movingProgressBar = true;\n const newCenter = this.getPercentageByEvent(event);\n const startPositionBeforeEvent = this.progressBarEventPositionStart;\n const startValueBeforeEvent = this.startValueBeforeProgressBarEvent;\n const range = this.rangeBetweenElementsBeforeProgressBarEvent;\n let { newStart, newEnd } = calculateNewRange(\n startValueBeforeEvent,\n startValueBeforeEvent + range,\n startPositionBeforeEvent,\n newCenter\n );\n if (newStart < this.MIN_RANGE_VALUE || newEnd > this.MAX_RANGE_VALUE) {\n return;\n }\n if (this.needParseValues) {\n const startValueBeforeEventUserRange = this.getValueFromMapByValue(startValueBeforeEvent);\n const startPositionBeforeEventUserRange = this.getValueFromMapByValue(startPositionBeforeEvent);\n const centerUserRange = this.getValueFromMapByValue(newCenter);\n const valueRange = this.totalRangeBeforeProgressBarEvent;\n let { newStart, newEnd } = calculateNewRange(\n startValueBeforeEventUserRange,\n startValueBeforeEventUserRange + valueRange,\n startPositionBeforeEventUserRange,\n centerUserRange\n );\n if (newStart < this.min || newEnd > this.max) {\n return;\n }\n this.startValue = this.mapRangeValuesForSlider.get(newStart);\n this.endValue = this.mapRangeValuesForSlider.get(newEnd);\n } else {\n this.startValue = newStart;\n this.endValue = newEnd;\n }\n this.setValue([this.startValue, this.endValue]);\n this.setProgress();\n };\n\n private handleProgressBarMoveEnd = () => {\n this.progressBarEventPositionStart = -1;\n this.startValueBeforeProgressBarEvent = -1;\n this.rangeBetweenElementsBeforeProgressBarEvent = -1;\n this.totalRangeBeforeProgressBarEvent = -1;\n document.removeEventListener(\"mousemove\", this.handleProgressBarMove);\n document.removeEventListener(\"mouseup\", this.handleProgressBarMoveEnd);\n setTimeout(() => {\n this.movingProgressBar = false;\n }, 150);\n };\n\n private setProgress(): void {\n if (this.multiple) {\n this.progressLeft = this.startValue;\n this.progressWidth = `calc(${this.endValue - this.startValue}% + 10px)`;\n } else {\n this.progressLeft = 0;\n this.progressWidth = `calc(${this.endValue}% + 10px)`;\n }\n }\n\n /**\n * Get the percentage of a mouse event from the track's left edge\n * @param mouseEvent mouse event\n * @returns percentage from the left edge\n */\n private getPercentageByEvent(mouseEvent: MouseEvent | PointerEvent): number {\n const trackRect = this.track.nativeElement.getBoundingClientRect();\n let newLeft = Math.round(((mouseEvent.clientX - trackRect.left) / trackRect.width) * this.MAX_RANGE_VALUE);\n newLeft = Math.max(0, Math.min(newLeft, this.MAX_RANGE_VALUE));\n return newLeft;\n }\n\n private setValue(value: number | [number, number], parse = true) {\n if (this.disabled) {\n return;\n }\n\n if (this.needParseValues && parse) {\n if (Array.isArray(value)) {\n value = value.map((x) => this.getValueFromMapByValue(x)) as [number, number];\n } else {\n value = this.getValueFromMapByValue(value);\n }\n }\n this.value = value;\n this.valueChange.emit(value);\n this.writeValue(this.value);\n this.onChange(this.value);\n this.onTouched(this.value);\n }\n\n private setUserRangeMapValues() {\n const start = this.min;\n const end = this.max;\n if (start > end) {\n throw new Error('Max value must be greater than min value');\n }\n this.mapRangeValuesForSlider.clear();\n const range = end - start;\n const decimalPlaces = 2;\n const stepCount = Math.floor(range / this.step);\n const values: number[] = [];\n for (let value = start; value <= end; value += this.step) {\n values.push(value);\n }\n if (values[values.length - 1] !== end) {\n values.push(end);\n }\n const mappedValues = values.map((value) => {\n let mapped = ((value - start) / range) * this.MAX_RANGE_VALUE;\n return parseFloat(mapped.toFixed(decimalPlaces));\n });\n mappedValues[0] = 0;\n mappedValues[mappedValues.length - 1] = this.MAX_RANGE_VALUE;\n const error = this.MAX_RANGE_VALUE - mappedValues[mappedValues.length - 1];\n const errorPerStep = error / stepCount;\n for (let i = 1; i < mappedValues.length - 1; i++) {\n mappedValues[i] += errorPerStep;\n mappedValues[i] = parseFloat(mappedValues[i].toFixed(decimalPlaces));\n }\n values.forEach((value, index) => {\n this.mapRangeValuesForSlider.set(value, mappedValues[index]);\n });\n }\n\n /**\n * Returns the user value from the given slider value by using the map of range values.\n * @example\n * If the map is 0: { 0 }, 1: { 10 }, 2: { 30 }, 3: { 40 }, 4: { 50 }\n * and the sliderValue is 37, the function returns 3\n * or the slider value is 40, the function returns 4\n * @param sliderValue the value of the slider (values only between range MIN and MAX)\n * @returns the user value from the given slider value\n */\n private getValueFromMapByValue(sliderValue: number) {\n const mapToArray = Array.from(this.mapRangeValuesForSlider).map(([value, mapped]) => ({ value, mapped }));\n const exactValue = mapToArray.find((x) => x.mapped == sliderValue);\n const closest = mapToArray.reduce((prev, curr) => Math.abs(curr.mapped - sliderValue) < Math.abs(prev.mapped - sliderValue) ? curr : prev);\n return exactValue ? exactValue.value : closest.value;\n }\n\n /**\n * Retrieves the key from the map that is closest to the given slider value.\n * @param userValue - The value to find the closest key for. (values only between 0 - 100)\n * @returns The key that corresponds to the closest mapped value.\n */\n private getClosestValueFromMapSlider(userValue: number): number {\n const mapToArray = Array.from(this.mapRangeValuesForSlider).map(([value, mapped]) => ({ value, mapped }));\n if (userValue >= this.max) {\n return mapToArray[mapToArray.length - 1].mapped\n } else if (userValue <= this.min) {\n return mapToArray[0].mapped\n }\n const exactValue = mapToArray.find((x) => x.value == userValue);\n const closestValue = mapToArray.reduce((prev, curr) => Math.abs(curr.value - userValue) < Math.abs(prev.value - userValue) ? curr : prev);\n const item = exactValue || closestValue;\n const isFirstItem = mapToArray[0] === item;\n const isLastItem = mapToArray[mapToArray.length - 1] === item;\n if (isFirstItem && userValue > this.min) {\n return getMidpoint(item.mapped, mapToArray[1].mapped);\n } else if (isLastItem && userValue < this.max) {\n return getMidpoint(item.mapped, mapToArray[mapToArray.length - 2].mapped);\n } else {\n return item.mapped;\n }\n }\n\n\n private handleArrowKeyLeft() {\n if (this.multiple) {\n this._incrementOrDecrementStartAndEndValue(false);\n } else {\n this._incrementOrDecrementEndValue(false);\n }\n this.setProgress();\n }\n\n private handleArrowKeyRight() {\n if (this.multiple) {\n this._incrementOrDecrementStartAndEndValue(true);\n } else {\n this._incrementOrDecrementEndValue(true);\n }\n this.setProgress();\n }\n\n private _incrementOrDecrementStartAndEndValue(increment: boolean) {\n let [start, end] = this.value as [number, number];\n const difference = getDifference(end, start);\n if (increment) {\n start += this.step;\n end += this.step;\n } else {\n start -= this.step;\n end -= this.step;\n }\n const startLessThanMin = start < this.min;\n const endGreaterThanMax = end > this.max;\n if (startLessThanMin || endGreaterThanMax) {\n if (startLessThanMin) {\n start = this.min;\n end = start + difference;\n } else if (endGreaterThanMax) {\n end = this.max;\n start = end - difference;\n }\n }\n if (start < this.min || end > this.max) {\n return;\n }\n this.setValue([start, end], false);\n if (this.needParseValues) {\n start = this.getClosestValueFromMapSlider(start);\n end = this.getClosestValueFromMapSlider(end);\n }\n this.startValue = start;\n this.endValue = end;\n }\n\n private _incrementOrDecrementEndValue(increment: boolean) {\n let value = this.value as number;\n if (increment) {\n value += this.step;\n } else {\n value -= this.step;\n }\n let _newEndValue = value;\n if (this.needParseValues) {\n _newEndValue = this.getClosestValueFromMapSlider(_newEndValue);\n }\n if (_newEndValue < this.MIN_RANGE_VALUE || _newEndValue > this.MAX_RANGE_VALUE) {\n return;\n }\n this.endValue = _newEndValue;\n this.startValue = this.endValue;\n this.setValue(_newEndValue);\n }\n\n private get needParseValues() {\n return this.max !== this.MAX_RANGE_VALUE || this.min !== this.MIN_RANGE_VALUE;\n }\n}\n\n/**\n * Calculates a new range based on the old range and the positions clicked and finalized.\n *\n * @param oldStart - The starting value of the old range.\n * @param oldEnd - The ending value of the old range.\n * @param clickedPosition - The position where the click occurred.\n * @param finalPosition - The position where the range should end.\n * @returns An object containing the new start and end values of the range.\n */\nconst calculateNewRange = (oldStart: number, oldEnd: number, clickedPosition: number, finalPosition: number) => {\n const range = oldEnd - oldStart;\n const newStart = finalPosition - (clickedPosition - oldStart);\n const newEnd = newStart + range;\n return { newStart, newEnd };\n};\n\nconst isInRange = (value: number, rangeStart: number, rangeEnd: number): boolean => {\n const [min, max] = rangeStart < rangeEnd ? [rangeStart, rangeEnd] : [rangeEnd, rangeStart];\n return value >= min && value <= max;\n};\n\nconst getMidpoint = (start: number, end: number) => {\n const midpoint = (start + end) / 2;\n return parseFloat(midpoint.toFixed(2));\n}\nconst getDifference = (end: number, start: number) => {\n return Math.abs(end - start);\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { SliderComponent } from \"./slider.component\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\n\n@NgModule({\n imports: [CommonModule, TooltipModule],\n declarations: [SliderComponent],\n exports: [SliderComponent],\n})\nexport class SliderModule {}\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\nexport enum StepState {\n Default = \"default\",\n Success = \"success\",\n Warning = \"warning\",\n}\n\nexport interface Step {\n id: any;\n label: string;\n ariaLabel?: string;\n ariaControls?: string;\n /**\n * @deprecated\n * @todo remover propriedade deprecada\n */\n description?: string;\n state?: StepState;\n disabled?: boolean;\n hidden?: boolean;\n tooltip?: string;\n}\n\nexport interface StepSelectionEvent {\n step: Step;\n index: number;\n event: any;\n}\n\n@Component({\n selector: \"s-steps\",\n templateUrl: \"./steps.component.html\",\n styleUrls: [\"./steps.component.scss\"],\n host: {\n \"aria-orientation\": \"horizontal\",\n role: \"tablist\",\n \"tab-index\": \"0\",\n },\n animations: [\n trigger(\"beforeActiveDesative\", [\n state(\n \"active\",\n style({\n \"background-position\": \"left bottom\",\n })\n ),\n state(\n \"desactive\",\n style({\n \"background-position\": \"right bottom\",\n })\n ),\n transition(\"active => desactive\", [animate(\"50ms 100ms linear\")]),\n transition(\"desactive => active\", [animate(\"50ms 250ms linear\")]),\n ]),\n trigger(\"activeDesative\", [\n state(\n \"active\",\n style({\n \"background-position\": \"left bottom\",\n })\n ),\n state(\n \"desactive\",\n style({\n \"background-position\": \"right bottom\",\n })\n ),\n transition(\"active => desactive\", [animate(\"100ms 150ms linear\")]),\n transition(\"desactive => active\", [animate(\"100ms 150ms linear\")]),\n ]),\n trigger(\"afterActiveDesative\", [\n state(\n \"active\",\n style({\n \"background-position\": \"left bottom\",\n })\n ),\n state(\n \"desactive\",\n style({\n \"background-position\": \"right bottom\",\n })\n ),\n transition(\"active => desactive\", [animate(\"50ms 250ms linear\")]),\n transition(\"desactive => active\", [animate(\"50ms 100ms linear\")]),\n ]),\n ],\n})\nexport class StepsComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-steps-${StepsComponent.nextId++}`;\n @Input()\n public steps: Step[];\n @Input()\n public activeIndex = 0;\n\n @Output()\n public stepSelected: EventEmitter<StepSelectionEvent> = new EventEmitter();\n\n public stepClick(step: Step, index: number, event: any) {\n if (step.disabled || index == this.activeIndex) return;\n this.stepSelected.emit({ step, index, event });\n }\n\n public get stepState() {\n return StepState;\n }\n\n public barAnimation(index: number, activeIndex: number): boolean {\n const visited = index < activeIndex;\n const activated = index === activeIndex;\n return visited || activated;\n }\n\n public afterBarAnimation(index: number, activeIndex: number): boolean {\n const visited = index < activeIndex;\n const activated = index === activeIndex - 1;\n return visited || activated;\n }\n\n get visibledStep() {\n return this.steps.filter((step: Step) => !step.hidden);\n }\n}\n","import { Component, Input, Output, EventEmitter, HostListener, ElementRef } from \"@angular/core\";\n\nimport { SplitButtonOption } from \"./models/split-button-option\";\nimport { SplitButtonType } from \"./models/split-button-type\";\n\n@Component({\n selector: \"s-split-button\",\n templateUrl: \"./split-button.component.html\",\n styleUrls: [\"./split-button.component.scss\"],\n})\nexport class SplitButtonComponent {\n @Input()\n public disabled = false;\n\n @Input()\n public iconClass: string;\n\n @Input()\n public label: string;\n\n @Input()\n public type = SplitButtonType.Primary;\n\n @Input()\n public options: SplitButtonOption[];\n\n @Output()\n public buttonClicked = new EventEmitter();\n\n constructor(private readonly eRef: ElementRef) { }\n\n @HostListener(\"document:click\", [\"$event\"])\n public onClickout(event: MouseEvent) {\n if (!this.eRef.nativeElement.contains(event.target)) {\n this.closeDropdown();\n }\n }\n\n public open = false;\n\n public onButtonClick() {\n if (!this.disabled) {\n this.buttonClicked.emit();\n this.closeDropdown();\n }\n }\n\n public onDropdownClick() {\n if (!this.disabled) {\n this.open = !this.open;\n }\n }\n\n public onOptionClick(option: SplitButtonOption) {\n option.action && option.action();\n this.closeDropdown();\n }\n\n private closeDropdown() {\n this.open = false;\n }\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { SplitButtonComponent } from \"./split-button.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [SplitButtonComponent],\n exports: [SplitButtonComponent],\n})\nexport class SplitButtonModule { }","import { Component, Input, ViewEncapsulation, Output, EventEmitter } from \"@angular/core\";\nimport { BigNumber } from \"bignumber.js\";\n\n@Component({\n selector: \"s-stats-card\",\n templateUrl: \"./stats-card.component.html\",\n styleUrls: [\"./stats-card.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class StatsCardComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-stats-card-${StatsCardComponent.nextId++}`;\n\n @Input()\n public label: string;\n\n @Input()\n public alwaysWithBorder = false;\n\n @Input()\n public lightVersion = false;\n\n @Input()\n public lightMode = true;\n\n @Input()\n public iconClass = \"fa fa-bar-chart\";\n\n @Input()\n public color = \"#339966\";\n\n @Input()\n public animateNumbers = true;\n\n @Input()\n public clickable = false;\n\n @Input()\n public set value(value: string) {\n this.previousValue = this._value;\n this._value = String(value);\n if (this.animateNumbers) this.updateDisplayValue();\n else this.displayValue = this.value;\n }\n\n @Input()\n public tooltip = \"\";\n\n public get value() {\n return this._value;\n }\n\n @Output()\n public onClick: EventEmitter<MouseEvent> = new EventEmitter();\n\n public displayValue: string;\n\n private ANIMATION_DURATION_MS = 200;\n private STEP_DURATION_MS = 20;\n private previousValue = \"0\";\n private intervalId: any;\n private _value = \"0\";\n\n private updateDisplayValue() {\n const animationDuration = new BigNumber(this.ANIMATION_DURATION_MS);\n const stepDuration = new BigNumber(this.STEP_DURATION_MS);\n const animationCount = animationDuration.dividedBy(stepDuration);\n\n const previousRawValue = new BigNumber(this.previousValue.replace(/\\D/g, \"\"));\n const rawValue = new BigNumber(this.value.replace(/\\D/g, \"\"));\n\n const incrementValue = rawValue.minus(previousRawValue).absoluteValue().dividedBy(animationCount);\n const incremental = previousRawValue.isLessThan(rawValue);\n\n clearInterval(this.intervalId);\n\n this.displayValue = this.replaceNumericPositions(this.value);\n\n let counter = previousRawValue;\n\n this.intervalId = setInterval(() => {\n if (incremental && counter.isLessThan(rawValue)) {\n this.displayValue = this.replaceNumericPositions(this.displayValue, counter);\n counter = counter.plus(incrementValue);\n } else if (!incremental && counter.isGreaterThan(rawValue)) {\n this.displayValue = this.replaceNumericPositions(this.displayValue, counter);\n counter = counter.minus(incrementValue);\n } else {\n this.displayValue = this.value;\n\n clearInterval(this.intervalId);\n }\n }, this.STEP_DURATION_MS);\n }\n\n public replaceNumericPositions(value: string, newValue?: BigNumber) {\n const rawValue = value.replace(/[^\\d]/g, \"\");\n const newValueString = newValue ? newValue.toString() : \"\";\n const formattedNewValue = newValueString\n .toString()\n .replace(/\\D/g, \"\")\n .padStart(rawValue.length, \"0\");\n let newValueIndex = 0;\n\n return value\n .split(\"\")\n .map(char => {\n const number = Number(char);\n if (number || char === \"0\") return formattedNewValue[newValueIndex++];\n return char;\n })\n .join(\"\");\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { StatsCardComponent } from \"./stats-card.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TooltipModule,\n ],\n declarations: [\n StatsCardComponent,\n ],\n exports: [\n StatsCardComponent,\n ],\n})\nexport class StatsCardModule { }\n","export enum TimelineItemSeverity {\n Normal = \"normal\",\n Warning = \"warning\",\n Error = \"error\",\n}\n","export enum TimelineItemSize {\n Normal = \"normal\",\n Small = \"small\",\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { StepsComponent } from \"./steps.component\";\n\n@NgModule({\n imports: [CommonModule, TooltipModule],\n declarations: [StepsComponent],\n exports: [StepsComponent],\n})\nexport class StepsModule {}\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\nimport { ThumbnailsItem } from \"./models/thumbnails-item\";\n\n@Component({\n selector: \"s-thumbnails\",\n templateUrl: \"./thumbnails.component.html\",\n styleUrls: [\"./thumbnails.component.scss\"],\n})\nexport class ThumbnailsComponent {\n @Input()\n public items: ThumbnailsItem[];\n\n @Input()\n public selectable = true;\n\n @Input() combineCheckboxEvent = true;\n\n @Input()\n public set selection(items: ThumbnailsItem[]) {\n this._selection = [...items];\n }\n\n @Output()\n public selectionChange = new EventEmitter<ThumbnailsItem[]>();\n\n @Output()\n public itemOpened = new EventEmitter<ThumbnailsItem>();\n\n private _selection: ThumbnailsItem[] = [];\n\n public onItemOpened(item: ThumbnailsItem): void {\n this.itemOpened.emit(item);\n }\n\n public onItemSelected(item: { item: ThumbnailsItem; selected: boolean }): void {\n if (item.selected) {\n this._selection.push(item.item);\n } else {\n this._selection.splice(\n this._selection.findIndex((_item) => _item === item.item),\n 1\n );\n }\n this.selectionChange.emit(this._selection);\n }\n\n public isSelected(item: ThumbnailsItem) {\n return this._selection.some((i: ThumbnailsItem) => i.id === item.id);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\nimport { FormControl, FormGroup } from \"@angular/forms\";\n\nimport { CheckboxState } from \"../../../checkbox/models/checkbox-state\";\nimport { isNullOrUndefined } from \"../../../utils/utils\";\nimport { ThumbnailsItem } from \"../../models/thumbnails-item\";\n\n@Component({\n selector: \"s-thumbnail-item\",\n templateUrl: \"./thumbnail-item.component.html\",\n styleUrls: [\"./thumbnail-item.component.scss\"],\n})\nexport class ThumbnailItemComponent implements OnInit {\n @Input()\n public itemData: ThumbnailsItem;\n\n @Input()\n public isCheckable = true;\n\n @Input()\n public isChecked = false;\n\n @Input() combineCheckboxEvent = true;\n\n @Output()\n public checked = new EventEmitter<{ item: ThumbnailsItem, selected: boolean }>();\n\n @Output()\n public opened = new EventEmitter<ThumbnailsItem>();\n\n public checkboxFormGroup: FormGroup;\n\n public ngOnInit(): void {\n this._validateItemData();\n this._createFormGroup();\n }\n\n public onClick() {\n this.opened.emit(this.itemData);\n }\n\n public checkboxClick(event: Event): void {\n if (this.combineCheckboxEvent) {\n return;\n }\n\n event.stopPropagation();\n }\n\n private _createFormGroup(): void {\n this.checkboxFormGroup = new FormGroup({\n checkbox: new FormControl({ checked: this.isChecked }),\n });\n\n this.checkboxFormGroup.get(\"checkbox\").valueChanges.subscribe((value: CheckboxState) => {\n this.checked.emit({ item: this.itemData, selected: value.checked });\n });\n }\n\n private _validateItemData(): void {\n if (isNullOrUndefined(this.itemData)) {\n throw new Error(\"itemData is required\");\n }\n }\n}\n","import { Component, Input, ElementRef, ViewChild, HostListener } from \"@angular/core\";\n\n@Component({\n selector: \"s-thumbnail-item-video\",\n templateUrl: \"./thumbnail-item-video.component.html\",\n styleUrls: [\"./thumbnail-item-video.component.scss\"],\n})\nexport class ThumbnailItemVideoComponent {\n @Input()\n public imageUrl: string;\n \n @Input()\n public videoUrl: string;\n \n @ViewChild(\"videoPlayer\") videoPlayer!: ElementRef;\n\n @HostListener(\"mouseenter\") onMouseEnter(): void {\n if (this.videoPlayer?.nativeElement) {\n this.videoPlayer.nativeElement.play();\n }\n }\n\n @HostListener(\"mouseleave\") onMouseLeave(): void {\n if (this.videoPlayer?.nativeElement) {\n this.videoPlayer.nativeElement.pause();\n this.videoPlayer.nativeElement.currentTime = 0;\n }\n }\n}\n","import { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"s-thumbnail-item-image\",\n templateUrl: \"./thumbnail-item-image.component.html\",\n styleUrls: [\"./thumbnail-item-image.component.scss\"],\n})\nexport class ThumbnailItemImageComponent {\n @Input()\n public imageUrl: string;\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\n\nimport { CheckboxModule } from \"../checkbox/checkbox.module\";\nimport { ThumbnailItemComponent } from \"./components/thumbnail-item/thumbnail-item.component\";\nimport { ThumbnailItemVideoComponent } from \"./components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component\";\nimport { ThumbnailItemImageComponent } from \"./components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component\";\nimport { ThumbnailsComponent } from \"./thumbnails.component\";\n\n@NgModule({\n imports: [CommonModule, ReactiveFormsModule, TranslateModule, CheckboxModule],\n declarations: [ThumbnailsComponent, ThumbnailItemComponent, ThumbnailItemVideoComponent, ThumbnailItemImageComponent],\n exports: [ThumbnailsComponent],\n})\nexport class ThumbnailsModule {}\n","import { Component, EventEmitter, Input, Output, HostListener } from \"@angular/core\";\n\n@Component({\n selector: \"s-tile\",\n templateUrl: \"./tile.component.html\",\n styleUrls: [\"./tile.component.scss\"],\n})\nexport class TileComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-tile-${TileComponent.nextId++}`;\n\n @Input()\n public label: string;\n\n @Input()\n public description: string;\n\n @Input()\n public iconClass: string;\n\n @Input()\n public imageSource: string;\n\n @Input()\n public imageAlt: string;\n\n @Input()\n public disabled = false;\n\n @Input()\n public tabIndex = 0;\n\n @Input()\n public useThumbnail = true;\n\n @Output()\n public onClick = new EventEmitter();\n\n public get initialLetter(): string {\n let initialLetter = \"\";\n if (this.label) {\n const words = this.label.split(\" \", 2);\n initialLetter = words[0].charAt(0).toUpperCase();\n if (words.length > 1) {\n initialLetter += words[1].charAt(0).toUpperCase();\n }\n }\n return initialLetter;\n }\n\n @HostListener(\"keydown\", [\"$event\"])\n public onKeyDown(event: any) {\n if (!this.disabled && [13, 32].includes(event.keyCode)) {\n this.onClick.emit();\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\nimport { ThumbnailModule } from \"../thumbnail/thumbnail.module\";\nimport { TileComponent } from \"./tile.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TooltipModule,\n ThumbnailModule,\n ],\n declarations: [TileComponent],\n exports: [\n TileComponent,\n ThumbnailModule,\n ],\n})\nexport class TileModule { }\n","import { Component, HostListener, Input, OnInit } from \"@angular/core\";\n\nimport { TimelineItem } from \"./models/timeline-item\";\n\nconst HORIZONTAL = \"horizontal\";\nconst VERTICAL = \"vertical\";\nconst MIN_ITEM_SIZE = 200;\n\n@Component({\n selector: \"s-timeline\",\n templateUrl: \"./timeline.component.html\",\n})\nexport class TimelineComponent implements OnInit {\n private _innerWidth: number;\n private _items: TimelineItem[];\n\n public get items(): TimelineItem[] {\n return this._items;\n }\n\n @Input()\n public set items(items: TimelineItem[]) {\n this._items = items;\n this.checkDuplicateIds();\n }\n\n @Input()\n public activeIndex: number;\n\n @Input()\n public highlightActiveItem = true;\n\n @Input()\n public direction: typeof HORIZONTAL | typeof VERTICAL = HORIZONTAL;\n\n @Input()\n public collapsable = true;\n\n @Input()\n public counterLabel = \"items\";\n\n public ngOnInit(): void {\n this._innerWidth = window.innerWidth;\n }\n\n @HostListener(\"window:resize\", [\"$event\"])\n public onResize(_: any): void {\n this._innerWidth = window.innerWidth;\n }\n\n public changeToVertical(): boolean {\n return this.direction === VERTICAL || this._innerWidth / this.items.length < MIN_ITEM_SIZE;\n }\n\n public checkDuplicateIds(): void {\n const ids = this.items.map(item => {\n return item.id;\n });\n\n if ((new Set(ids)).size !== ids.length) {\n throw new Error(\"A duplicate id was found in the items list\");\n }\n }\n}\n","import { Component, Input } from \"@angular/core\";\n\nimport { TimelineItem } from \"../../models\";\n\n@Component({\n selector: \"s-timeline-icon-item\",\n templateUrl: \"./timeline-icon-item.component.html\",\n styleUrls: [\"./timeline-icon-item.component.scss\"],\n})\nexport class TimelineIconItemComponent {\n @Input()\n public item: TimelineItem;\n\n @Input()\n public isActive: boolean;\n\n @Input()\n public highlightActive: boolean;\n\n @Input()\n public isComplete: boolean;\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { TimelineIconItemComponent } from \"./timeline-icon-item.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TooltipModule,\n ],\n declarations: [TimelineIconItemComponent],\n exports: [TimelineIconItemComponent],\n})\nexport class TimelineItemModule { }\n","import { Component, Input } from \"@angular/core\";\n\nimport { TimelineItem } from \"../../models/timeline-item\";\n\n@Component({\n selector: \"s-horizontal-timeline\",\n templateUrl: \"./horizontal-timeline.component.html\",\n styleUrls: [\"./horizontal-timeline.component.scss\"],\n})\nexport class HorizontalTimelineComponent {\n @Input()\n public items: TimelineItem[];\n\n @Input()\n public activeIndex = 0;\n\n @Input()\n public highlightActiveItem: boolean;\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { TimelineItemModule } from \"../timeline-icon-item/timeline-icon-item.module\";\nimport { HorizontalTimelineComponent } from \"./horizontal-timeline.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TooltipModule,\n TimelineItemModule,\n ],\n declarations: [HorizontalTimelineComponent],\n exports: [HorizontalTimelineComponent],\n})\nexport class HorizontalTimelineModule { }\n","import { Component, Input } from \"@angular/core\";\n\nimport { TimelineItem } from \"../../models/timeline-item\";\n\n@Component({\n selector: \"s-vertical-timeline\",\n templateUrl: \"./vertical-timeline.component.html\",\n styleUrls: [\"./vertical-timeline.component.scss\"],\n})\nexport class VerticalTimelineComponent {\n public static nextId = 0;\n private _activeIndex: number;\n public isG1Collapsed = true;\n public isG2Collapsed = true;\n\n public firstItem: TimelineItem[];\n public g1Items: TimelineItem[];\n public activeItem: TimelineItem[];\n public g2Items: TimelineItem[];\n public lastItem: TimelineItem[];\n\n @Input()\n public set activeIndex(index: number) {\n this._activeIndex = index;\n this.groupItems();\n }\n\n public get activeIndex() {\n return this._activeIndex;\n }\n\n @Input()\n public highlightActiveItem: boolean;\n\n @Input()\n public items: TimelineItem[];\n\n @Input()\n public counterLabel: string;\n\n @Input()\n public collapsable: boolean;\n\n public onChangeG1(event: boolean) {\n this.isG1Collapsed = event;\n }\n\n public onChangeG2(event: boolean) {\n this.isG2Collapsed = event;\n }\n\n public groupItems() {\n this.firstItem = this.activeIndex <= 0 ? [] : [this.items[0]];\n this.g1Items = this.items.slice(1, this.activeIndex < 0 ? 0 : this.activeIndex);\n this.activeItem = this.activeIndex >= 0 ? [this.items[this.activeIndex]] : [];\n this.g2Items = this.items.slice(this.activeIndex + 1, this.items.length - 1);\n this.lastItem = this.activeIndex === this.items.length - 1 ? [] : [this.items[this.items.length - 1]];\n }\n}\n","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-range-line\",\n templateUrl: \"./range-line.component.html\",\n styleUrls: [\"./range-line.component.scss\"],\n})\nexport class RangeLineComponent { }\n","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\n\n@Component({\n selector: \"s-collapse-option\",\n templateUrl: \"./collapse-option.component.html\",\n styleUrls: [\"./collapse-option.component.scss\"],\n})\nexport class CollapseOptionComponent {\n @Input()\n public isCollapsed = false;\n\n @Output()\n public change = new EventEmitter<boolean>();\n\n public onClick(): void {\n this.change.emit(!this.isCollapsed);\n }\n}\n","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\n\nimport { TimelineItem } from \"../../../../models/timeline-item\";\n\n@Component({\n selector: \"s-collapsed-items\",\n templateUrl: \"./collapsed-items.component.html\",\n styleUrls: [\"./collapsed-items.component.scss\"],\n})\nexport class CollapsedItemsComponent {\n @Input()\n public items: TimelineItem[];\n\n @Input()\n public isCollapsed: boolean;\n\n @Input()\n public isCompleted: boolean;\n\n @Input()\n public counterLabel: string;\n\n @Output()\n public isCollapsedChange = new EventEmitter<boolean>();\n\n public onChange(event: boolean) {\n this.isCollapsed = !this.isCollapsed;\n this.isCollapsedChange.emit(this.isCollapsed);\n }\n}\n","import { Component, Input } from \"@angular/core\";\n\nimport { TimelineItem } from \"../../../../models/timeline-item\";\n\n@Component({\n selector: \"s-vertical-items\",\n templateUrl: \"./vertical-items.component.html\",\n styleUrls: [\"./vertical-items.component.scss\"],\n})\nexport class VerticalItemsComponent {\n @Input()\n public items: TimelineItem[];\n\n @Input()\n public isLast: boolean;\n\n @Input()\n public isActive: boolean;\n\n @Input()\n public highlightActive: boolean;\n\n @Input()\n public isCompleted: boolean;\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TimelineItemModule } from \"../timeline-icon-item/timeline-icon-item.module\";\nimport { VerticalTimelineComponent } from \"./vertical-timeline.component\";\nimport { RangeLineComponent } from \"./components/range-line/range-line.component\";\nimport { CollapseOptionComponent } from \"./components/collapse-option/collapse-option.component\";\nimport { CollapsedItemsComponent } from \"./components/collapsed-items/collapsed-items.component\";\nimport { VerticalItemsComponent } from \"./components/vertical-items/vertical-items.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TimelineItemModule,\n ],\n declarations: [\n VerticalTimelineComponent,\n RangeLineComponent,\n CollapseOptionComponent,\n CollapsedItemsComponent,\n VerticalItemsComponent,\n ],\n exports: [VerticalTimelineComponent],\n})\nexport class VerticalTimelineModule { }\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TimelineComponent } from \"./timeline.component\";\nimport { TimelineItemModule } from \"./components/timeline-icon-item/timeline-icon-item.module\";\nimport { HorizontalTimelineModule } from \"./components/horizontal-timeline/horizontal-timeline.module\";\nimport { VerticalTimelineModule } from \"./components/vertical-timeline/vertical-timeline.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n TimelineItemModule,\n HorizontalTimelineModule,\n VerticalTimelineModule,\n ],\n declarations: [\n TimelineComponent,\n ],\n exports: [\n TimelineComponent,\n ],\n})\nexport class TimelineModule { }\n","import { TimelineItemSeverity } from \"./timeline-item-severity\";\nimport { TimelineItemSize } from \"./timeline-item-size\";\n\nconst LABEL_MAX_LENGTH = 3; \n\nexport class TimelineItem {\n public id: string;\n public title: string;\n public description: string;\n public icon?: string;\n public label?: string;\n public tooltip?: string;\n public size: TimelineItemSize;\n public severity: TimelineItemSeverity;\n public color?: string;\n\n constructor(params: {\n id: string,\n title: string,\n description: string,\n icon?: string,\n label?: string,\n size?: TimelineItemSize,\n severity?: TimelineItemSeverity,\n tooltip?: string,\n color?: string,\n }) {\n this.id = params.id;\n this.title = params.title;\n this.description = params.description;\n this.icon = params.icon;\n this.label = params.label;\n this.tooltip = params.tooltip;\n this.size = params.size || TimelineItemSize.Normal;\n this.severity = params.severity || TimelineItemSeverity.Normal;\n this.color = params.color;\n\n this.checkItemIconContent();\n }\n\n public checkItemIconContent() {\n if (!this.icon && !this.label) {\n throw new Error(\"No icon or label string was passed for the item. Enter an icon or label text\");\n }\n\n if (this.icon && this.label) {\n throw new Error(\"An icon and label string were passed to the item. Enter an icon or label text\");\n }\n\n if (this.label?.length > LABEL_MAX_LENGTH) {\n throw new Error(\"Label text is expected to be a maximum of three characters long\");\n }\n }\n\n public testSize(value: string) {\n return this.size.valueOf() === value;\n }\n\n public testSeverity(value: string) {\n return this.severity?.valueOf() === value;\n }\n}\n","export interface PickListItem<T> {\n disabled?: boolean;\n data: T;\n}\n\nexport enum PicklistTemplateTypes {\n ItemToSelect = 'item-to-select',\n SelectedItem = 'selected-item'\n}\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Output,\n QueryList,\n ViewChildren,\n} from \"@angular/core\";\n\nimport { Workspace } from \"./models/workspace\";\n\n@Component({\n selector: \"s-workspace-switch\",\n templateUrl: \"./workspace-switch.component.html\",\n styleUrls: [\"./workspace-switch.component.scss\"],\n})\nexport class WorkspaceSwitchComponent implements OnInit {\n @Input()\n public workspaces: Workspace[];\n\n @Input()\n public footerButtonLabel = \"Adicionar\";\n\n @Input()\n public showFooterButton = true;\n\n @Input()\n public disabled = false;\n\n @Output()\n public footerButtonClicked = new EventEmitter();\n\n @Output()\n public selected: EventEmitter<Workspace> = new EventEmitter();\n\n @ViewChildren('listItem')\n public listItems: QueryList<ElementRef>;\n\n public get open() {\n return this._open;\n }\n\n public set open(open: boolean) {\n this._open = open;\n this.changeDetectorRef.detectChanges();\n\n if (open) {\n this._calculateListMaxHeight();\n }\n }\n\n public height = 0;\n public selectedItemIndex = 0;\n public currentItemIndex = 0;\n\n private _open = false;\n\n constructor(\n private readonly eRef: ElementRef,\n private readonly changeDetectorRef: ChangeDetectorRef\n ) {}\n\n @HostBinding(\"attr.tabindex\")\n public tabindex = 0;\n\n @HostListener(\"document:click\", [\"$event\"])\n public onClickout(event: MouseEvent): void {\n if (!this.eRef.nativeElement.contains(event.target)) {\n this.open = false;\n }\n }\n\n @HostListener(\"keydown\", [\"$event\"])\n public onKeydown(event: KeyboardEvent): void {\n if (event.key === \"Enter\" || event.key === \" \") {\n if (this.open) {\n const workspace = this.workspaces[this.selectedItemIndex];\n\n if (workspace.disabled) {\n return;\n }\n\n this.selectedItemIndex = this.currentItemIndex;\n this.selected.emit(this.workspaces[this.selectedItemIndex]);\n }\n this.open = !this.open;\n } else if (event.key === \"Escape\") {\n this.open = false;\n } else if (event.key === \"ArrowDown\") {\n if (this.currentItemIndex < this.workspaces.length - 1) {\n this.currentItemIndex++;\n this._scrollToCurrentItem();\n }\n } else if (event.key === \"ArrowUp\") {\n if (this.currentItemIndex > 0) {\n this.currentItemIndex--;\n this._scrollToCurrentItem();\n }\n }\n }\n\n public ngOnInit(): void {\n if (this.disabled) {\n this.tabindex = -1;\n }\n }\n\n public validations(): void {\n if (!this.workspaces.length) {\n throw new Error(\"Workspaces list is empty.\");\n }\n }\n\n public buttonOnBlur(): void {\n this.open = false;\n this.currentItemIndex = this.selectedItemIndex;\n }\n\n public onSelectItem(workspace: Workspace): void {\n if (workspace.disabled) {\n return;\n }\n\n this.open = false;\n this.selectedItemIndex = this.workspaces.indexOf(workspace);\n this.currentItemIndex = this.selectedItemIndex;\n this.selected.emit(workspace);\n }\n\n public onFooterButtonClick(): void {\n this.open = false;\n this.footerButtonClicked.emit();\n }\n\n private _calculateListMaxHeight(): void {\n const workspaceListRef = this.eRef.nativeElement.querySelector(\"#workspace-list\");\n const { top } = workspaceListRef.getBoundingClientRect();\n\n this.height = window.innerHeight - top - 20 - (this.showFooterButton ? 64 : 0);\n this.changeDetectorRef.detectChanges();\n }\n\n private _scrollToCurrentItem(): void {\n const currentItem = this.listItems.toArray()[this.currentItemIndex];\n if (currentItem) {\n currentItem.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { WorkspaceSwitchComponent } from \"./workspace-switch.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [WorkspaceSwitchComponent],\n exports: [WorkspaceSwitchComponent],\n})\nexport class WorkspaceSwitchModule { }\n","import { Component, Input } from \"@angular/core\";\nimport {\n BadgeConfiguration,\n CurrencyConfiguration,\n DateConfiguration,\n LabelValueConfiguration,\n NumberConfiguration,\n TextConfiguration,\n} from \"./types/label-value-configuration\";\n\n@Component({\n selector: \"s-label-value\",\n templateUrl: \"./label-value.component.html\",\n styleUrls: [\"./label-value.component.scss\"],\n})\nexport class LabelValueComponent {\n @Input()\n configuration: LabelValueConfiguration;\n\n isBadgeConfiguration(config: LabelValueConfiguration): config is BadgeConfiguration {\n return config.type === \"Badge\";\n }\n\n isTextConfiguration(config: LabelValueConfiguration): config is TextConfiguration {\n return config.type === \"Text\";\n }\n\n isCurrencyConfiguration(config: LabelValueConfiguration): config is CurrencyConfiguration {\n return config.type === \"Currency\";\n }\n\n isNumberConfiguration(config: LabelValueConfiguration): config is NumberConfiguration {\n return config.type === \"Number\";\n }\n\n isDateConfiguration(config: LabelValueConfiguration): config is DateConfiguration {\n return config.type === \"Date\";\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CookieService } from \"ngx-cookie-service\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\n\nimport { LabelValueComponent } from \"./label-value.component\";\n\nimport { BadgeModule } from \"../badge/badge.module\";\nimport { LocaleModule } from \"../locale/locale.module\";\n\n@NgModule({\n imports: [CommonModule, TranslateModule, BadgeModule, LocaleModule],\n providers: [CookieService],\n declarations: [LabelValueComponent],\n exports: [LabelValueComponent],\n})\nexport class LabelValueModule {}\n","import { CdkDrag, CdkDragDrop } from '@angular/cdk/drag-drop';\nimport { AfterViewInit, ChangeDetectorRef, Component, ContentChildren, EventEmitter, Input, OnChanges, Output, QueryList, SimpleChanges, TemplateRef } from '@angular/core';\nimport { pipe } from 'rxjs';\nimport { TemplateDirective } from './../../template/template.directive';\nimport { PicklistTemplateTypes, PickListItem } from './models/picklist-models';\n\ninterface InternalPicklistItem<T = any> extends PickListItem<T> {\n invisible?: boolean\n selected?: boolean\n}\n\ntype CdkDragEvent = { source: CdkDrag<InternalPicklistItem<any>> };\n\n@Component({\n selector: 's-picklist',\n templateUrl: './picklist.component.html',\n styleUrls: ['./picklist.component.scss']\n})\nexport class PicklistComponent implements AfterViewInit, OnChanges {\n @Input() itensToSelect: PickListItem<any>[] = [];\n @Input() selectedItens: PickListItem<any>[] = [];\n @Input() availableItensLabel: string;\n @Input() availableItensPlaceholder: string;\n @Input() addSelectedItensLabel: string;\n @Input() addAllItensLabel: string;\n @Input() selectedItensLabel: string;\n @Input() selectedItensPlaceholder: string;\n @Input() removeSelectedItemsLabel: string;\n @Input() removeAllItemsLabel: string;\n @Input() showCheckbox = false;\n @Input() filterBy = '';\n @Output() selectedItensChange = new EventEmitter<any[]>();\n @Output() itensToSelectChange = new EventEmitter<any[]>();\n availableItensFilter = '';\n selectedItensFilter = '';\n itemToSelectTemplate: TemplateRef<any>;\n itemSelectedTemplate: TemplateRef<any>;\n itensToSelectFilterUtil: {\n rawItensToSelect: InternalPicklistItem[],\n filteredItensToSelect: InternalPicklistItem[],\n } = {\n rawItensToSelect: [],\n filteredItensToSelect: [],\n }\n\n selectedItensFilterUtil: {\n rawSelectedItens: InternalPicklistItem[]\n filteredSelectedItens: InternalPicklistItem[],\n } = {\n rawSelectedItens: [],\n filteredSelectedItens: [],\n }\n selectedItensMap: Set<InternalPicklistItem> = new Set();\n itensToSelectId = randomHash('itensToSelect');\n selectedItensId = randomHash('selectedItens');\n private lastSelected: 'toSelect' | 'selected';\n\n @ContentChildren(TemplateDirective) private templates: QueryList<TemplateDirective>;\n constructor(private cdr: ChangeDetectorRef) { }\n\n ngAfterViewInit(): void {\n this.itemToSelectTemplate = this.templates.find(x => x.type === PicklistTemplateTypes.ItemToSelect)?.template;\n this.itemSelectedTemplate = this.templates.find(x => x.type === PicklistTemplateTypes.SelectedItem)?.template;\n if (!this.itemToSelectTemplate) {\n console.error(`Missing template for ${PicklistTemplateTypes.ItemToSelect} add this template using sTemplate directive.`);\n }\n if (!this.itemSelectedTemplate) {\n console.error(`Missing template for ${PicklistTemplateTypes.SelectedItem} add this template using sTemplate directive.`);\n }\n this.cdr.detectChanges();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.itensToSelect && changes.itensToSelect.firstChange) {\n this.itensToSelectFilterUtil = {\n rawItensToSelect: this.itensToSelect,\n filteredItensToSelect: this.itensToSelect,\n }\n }\n\n if (changes.selectedItens && changes.selectedItens.firstChange) {\n this.selectedItensFilterUtil = {\n filteredSelectedItens: this.selectedItens,\n rawSelectedItens: this.selectedItens\n }\n }\n }\n\n toggleSelected(internalPicklistItem: InternalPicklistItem, containerListId: string) {\n if (internalPicklistItem.disabled) {\n return;\n }\n this.unselectedItensByListId(this.getOppositiveId(containerListId));\n internalPicklistItem.selected = !internalPicklistItem.selected;\n if (internalPicklistItem.selected) {\n this.selectedItensMap.add(internalPicklistItem);\n } else {\n this.selectedItensMap.delete(internalPicklistItem);\n }\n this.cdr.detectChanges();\n }\n\n remove(all = false) {\n const itens = filterEnabled((all ? this.selectedItensFilterUtil.rawSelectedItens : this.selectedItensMap));\n if (!itens.length) {\n return;\n }\n itens.forEach((itemRemove) => {\n this.itensToSelect.push(itemRemove);\n itemRemove.selected = false;\n this.selectedItensMap.delete(itemRemove);\n })\n this.selectedItens = this.selectedItens.filter(x => !itens.includes(x));\n this.selectedItensFilterUtil.rawSelectedItens = this.selectedItens;\n this.filterSelectedItens();\n this.filterItensToSelect();\n this.emitData();\n this.cdr.detectChanges();\n }\n\n add(all = false) {\n const itens = filterEnabled((all ? this.itensToSelectFilterUtil.rawItensToSelect : this.selectedItensMap));\n if (!itens.length) {\n return;\n }\n itens.forEach((itemRemove) => {\n this.selectedItens.push(itemRemove);\n itemRemove.selected = false;\n this.selectedItensMap.delete(itemRemove);\n })\n this.itensToSelect = this.itensToSelect.filter(x => !itens.includes(x));\n this.itensToSelectFilterUtil.rawItensToSelect = this.itensToSelect;\n this.filterSelectedItens();\n this.filterItensToSelect();\n this.emitData();\n this.cdr.detectChanges();\n }\n\n filterItensToSelect() {\n let searchTerm = this.availableItensFilter;\n searchTerm = searchTerm.trim();\n if (searchTerm) {\n this.itensToSelectFilterUtil.filteredItensToSelect = this.itensToSelectFilterUtil.rawItensToSelect\n .filter((item) => compareStrings(item.data[this.filterBy], searchTerm));\n } else {\n this.itensToSelectFilterUtil.filteredItensToSelect = this.itensToSelectFilterUtil.rawItensToSelect;\n }\n this.cdr.detectChanges();\n }\n\n filterSelectedItens() {\n let searchTerm = this.selectedItensFilter;\n searchTerm = searchTerm.trim();\n if (searchTerm) {\n this.selectedItensFilterUtil.filteredSelectedItens = this.selectedItensFilterUtil.rawSelectedItens\n .filter((item) => compareStrings(item.data[this.filterBy], searchTerm));\n } else {\n this.selectedItensFilterUtil.filteredSelectedItens = this.selectedItensFilterUtil.rawSelectedItens;\n }\n }\n\n drop(event: CdkDragDrop<InternalPicklistItem[]>) {\n const isDifferentContainer = event.container !== event.previousContainer;\n if (!isDifferentContainer) {\n return;\n }\n\n const isRemovedItens = event.previousContainer.id === this.selectedItensId;\n if (isRemovedItens) {\n this.remove();\n } else {\n this.add();\n }\n this.cdr.detectChanges();\n }\n\n onDragStart(event: CdkDragEvent, dragListId: string) {\n this.unselectedItensByListId(this.getOppositiveId(dragListId));\n event.source.data.selected = true;\n this.selectedItensMap.add(event.source.data);\n this.selectedItensMap.forEach((x) => x.invisible = true);\n this.cdr.detectChanges();\n }\n\n onDragRelease() {\n this.selectedItensMap.forEach((item) => item.invisible = false);\n }\n\n checkAllAvailableItensChange(checked: boolean) {\n this._checkAllSelectedItensChange(checked, this.itensToSelectFilterUtil.filteredItensToSelect, this.itensToSelectId);\n }\n\n checkAllSelectedItensChange(checked: boolean) {\n this._checkAllSelectedItensChange(checked, this.selectedItensFilterUtil.filteredSelectedItens, this.selectedItensId);\n }\n\n get disableSelectedItensCheckbox() {\n return filterEnabled(this.selectedItensFilterUtil.filteredSelectedItens).length === 0;\n }\n\n get disableItensToSelectCheckbox() {\n return filterEnabled(this.itensToSelectFilterUtil.filteredItensToSelect).length === 0;\n }\n\n get itensToSelectAllSelected() {\n return this._checkAllSelectedByList(this.itensToSelectFilterUtil.filteredItensToSelect);\n }\n\n get selectedItensAllSelected() {\n return this._checkAllSelectedByList(this.selectedItensFilterUtil.filteredSelectedItens);\n }\n\n get canAddItens() {\n return (this.itensToSelect as InternalPicklistItem[]).filter((x) => x?.selected).length > 0;\n }\n\n get canRemoveItens() {\n return (this.selectedItens as InternalPicklistItem[]).filter((x) => x?.selected).length > 0;\n }\n\n private _checkAllSelectedByList(list: InternalPicklistItem[]) {\n const _listItens = filterEnabled(list);\n if (!_listItens.length) {\n return false;\n } else {\n return _listItens.every((x) => x.selected);\n }\n }\n\n private _checkAllSelectedItensChange(checked: boolean, list: InternalPicklistItem[], listId: string) {\n this.unselectedItensByListId(listId === this.selectedItensId ? this.itensToSelectId : this.selectedItensId);\n filterEnabled(list).forEach((item) => {\n item.selected = checked;\n this.selectedItensMap.add(item);\n })\n this.cdr.detectChanges();\n }\n\n private unselectedItensByListId(listId: string) {\n const clearList = this.getAllElementsByListId(listId);\n clearList.forEach((x) => {\n x.selected = false;\n this.selectedItensMap.delete(x);\n })\n this.cdr.detectChanges();\n }\n\n private getAllElementsByListId(listId: string) {\n return listId === this.selectedItensId ? this.selectedItensFilterUtil.rawSelectedItens : this.itensToSelectFilterUtil.rawItensToSelect;\n }\n\n private getOppositiveId(listId: string) {\n return listId === this.selectedItensId ? this.itensToSelectId : this.selectedItensId;\n }\n\n private emitData() {\n this.itensToSelectChange.emit(parseValueEmit(this.itensToSelect));\n this.selectedItensChange.emit(parseValueEmit(this.selectedItens));\n }\n}\n\nconst normalizeString = (str: string) => {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\").toLowerCase();\n}\n\n/**\n * Compares two strings by normalizing them to a case-insensitive and accent-free form,\n * and checks if the main string contains the substring.\n *\n * @param mainString - The string to be searched.\n * @param substring - The string to search for within the main string.\n * @returns A boolean indicating whether the normalized main string contains the normalized substring.\n */\n\nconst compareStrings = (mainString: string, substring: string) => {\n return normalizeString(mainString).includes(normalizeString(substring));\n}\n\nconst randomHash = (prefix = 'id') => {\n return `${prefix}-${Math.random().toString(36).substring(2, 9)}-${Date.now().toString(36)}`\n}\n\nconst filterEnabled = (list: PickListItem<any>[] | Set<InternalPicklistItem>): InternalPicklistItem[] => {\n const _list = list instanceof Set ? Array.from(list) : list;\n return _list.filter((x) => !x.disabled);\n}\n\nconst mapData = (list: PickListItem<any>[]) => {\n return list.map((x) => x.data);\n}\n\nconst parseValueEmit = pipe(filterEnabled, mapData)\n\nexport const parseItensPickList = <T>(array: T[], disabledFn?: (item: T) => boolean): PickListItem<T>[] => {\n return array.map((x) => {\n return {\n data: x,\n disabled: disabledFn ? disabledFn(x) : false\n }\n })\n}\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonModule } from '../button/button.module';\nimport { PicklistComponent } from './picklist/picklist.component';\n\n\n@NgModule({\n declarations: [PicklistComponent],\n imports: [\n CommonModule,\n TranslateModule,\n DragDropModule,\n FormsModule,\n ButtonModule,\n ],\n exports: [PicklistComponent]\n})\nexport class PicklistModule { }\n","import { AfterViewInit, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, forwardRef, HostListener, Input, Output, QueryList, TemplateRef, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CheckDisabled } from '../../shared/helpers';\nimport { ChipAddEvent, ChipClickEvent, ChipRemoveEvent } from '../models/chip-models';\nimport { TemplateDirective } from './../../template/template.directive';\n\n@Component({\n selector: 's-chips',\n templateUrl: './chips.component.html',\n styleUrls: ['./chips.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ChipsComponent),\n multi: true\n }\n ]\n})\nexport class ChipsComponent implements AfterViewInit, ControlValueAccessor {\n private static _id = 0;\n newItem = '';\n chipTemplate: TemplateRef<any>;\n\n @Input() disabled: boolean;\n @Input() field: string;\n @Input() value: any[] = [];\n @Input() placeholder = '';\n @Input() max: number;\n @Input() maxLength: number;\n @Input() inputId = `chips-${ChipsComponent._id++}`;\n @Input() allowDuplicated = true;\n @Input() caseSensitiveDuplication = false;\n @Input() addOnTab = true;\n @Input() addOnBlur = true;\n @Input() separator: string;\n @Input() autofocus = false;\n @Input() infoLabel = '';\n @Input() keyFilter: string | RegExp;\n @Input() showTooltip = true;\n @Input() maxLengthRenderWithoutTooltip = 20;\n\n @Output() onAdd = new EventEmitter<ChipAddEvent>();\n @Output() onRemove = new EventEmitter<ChipRemoveEvent>();\n @Output() onFocus = new EventEmitter<FocusEvent>();\n @Output() onBlur = new EventEmitter<FocusEvent>();\n @Output() onChipClick = new EventEmitter<ChipClickEvent>();\n @Output() valueChange = new EventEmitter<string[] | any[]>();\n\n @ContentChildren(TemplateDirective) private templates: QueryList<TemplateDirective>;\n\n @ViewChild('input', { read: ElementRef }) private input: ElementRef<HTMLElement>;\n private isTabEventActive = false;\n onChange: (value: string[] | any[]) => void = () => { };\n onTouched: (value: string[] | any[]) => void = () => { };\n constructor(private cdr: ChangeDetectorRef) { }\n\n ngAfterViewInit(): void {\n if (this.autofocus && this.input) {\n this.input.nativeElement.focus();\n }\n this.chipTemplate = this.templates.find((x) => x.type === 'chip-container')?.template;\n this.cdr.detectChanges();\n }\n\n\n writeValue(obj: string[] | any[]): void {\n this.value = obj;\n }\n\n registerOnChange(fn: (value: string[] | any[]) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n @HostListener(\"document:keydown\", [\"$event\"])\n @CheckDisabled()\n onKeydown($event: KeyboardEvent) {\n const isEnter = $event.key === 'Enter';\n const isSeparator = this.separator && $event.key === this.separator;\n const eventKeyIsTab = $event.key === 'Tab';\n if (eventKeyIsTab) {\n this.isTabEventActive = true;\n setTimeout(() => {\n this.isTabEventActive = false;\n }, 50);\n }\n const isTab = this.addOnTab && eventKeyIsTab;\n if (isEnter || isSeparator || isTab) {\n $event.preventDefault();\n this.addItem();\n }\n }\n\n onInputFocus($event: FocusEvent) {\n this.onFocus.emit($event);\n }\n\n @CheckDisabled()\n onInputLostFocus($event: FocusEvent) {\n if (!this.addOnBlur || this.isTabEventActive) {\n return;\n }\n this.addItem();\n this.onBlur.emit($event);\n }\n\n removeItem({ itemIndex, event }: { itemIndex: number, event: Event }) {\n const _removedItem = this.value[itemIndex];\n this.value.splice(itemIndex, 1)\n this.onRemove.emit({ value: _removedItem, originalEvent: event });\n }\n\n chipClicked({ event, data }: { event: Event, data: string | Object }) {\n this.onChipClick.emit({ value: data, originalEvent: event });\n }\n\n private addItem() {\n const hasValue = !!this.newItem;\n if (!hasValue) {\n return;\n }\n if (this.max && this.value.length === this.max) {\n return;\n }\n\n const validItemLength = this.maxLength ? this.newItem.length <= this.maxLength : true;\n if (!validItemLength) {\n return;\n }\n const hasField = !!this.field;\n const _mappedValues: string[] = this.field ? this.value.map((x) => x[this.field]) : this.value;\n const valueToAdd = hasField ? { [this.field]: this.newItem } : this.newItem;\n const duplicatedItem = _mappedValues.find((x) => {\n if (this.caseSensitiveDuplication) {\n return x === this.newItem;\n } else {\n return x.toLowerCase() === this.newItem.toLowerCase();\n }\n })\n let hasDuplicatedItem = false\n if (!this.allowDuplicated) {\n hasDuplicatedItem = duplicatedItem ? Boolean(duplicatedItem) : false;\n }\n if (!hasDuplicatedItem) {\n this.storeValue(valueToAdd);\n }\n this.newItem = '';\n }\n\n private storeValue(value: any) {\n this.value = [...this.value, value];\n this.onAdd.emit({ value });\n this.valueChange.emit(this.value);\n this.writeValue(this.value);\n this.onChange(this.value);\n this.onTouched(this.value);\n }\n}\n","import { Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { CheckDisabled } from '../../shared/helpers';\n@Component({\n selector: 's-chip-item',\n templateUrl: './chip-item.component.html',\n styleUrls: ['./chip-item.component.scss']\n})\nexport class ChipItemComponent {\n @Input() dataRender: string | Object;\n @Input() objectField: string;\n @Input() disabled = false;\n @Input() templateRef: TemplateRef<any>\n @Input() itemIndex = -1;\n @Input() showTooltip = true;\n @Input() maxLengthRenderWithoutTooltip = 20;\n\n @Output() clickRemove = new EventEmitter<{ index: number, event: Event }>();\n @Output() chipClicked = new EventEmitter<{ event: Event, data: string | Object }>();\n\n @CheckDisabled()\n clickedRemove($event: Event) {\n this.clickRemove.emit({ index: this.itemIndex, event: $event });\n }\n @CheckDisabled()\n onChipClicked($event: Event) {\n this.chipClicked.emit({ event: $event, data: this.dataRender });\n }\n\n get _text() {\n const _text = this._rawText;\n return _text.substring(0, _text.length > this.maxLengthRenderWithoutTooltip ? this.maxLengthRenderWithoutTooltip : _text.length) + (_text.length > this.maxLengthRenderWithoutTooltip ? '...' : '');\n }\n\n get _rawText() {\n return this.objectField ? (this.dataRender as any)[this.objectField] || '' : this.dataRender || '';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ChipsComponent } from './chips/chips.component';\nimport { ChipItemComponent } from './chip-item/chip-item.component';\nimport { FormsModule } from '@angular/forms';\nimport { KeyFilterModule } from 'primeng/keyfilter';\nimport { TooltipModule } from '../tooltip/tooltip.module';\n\n\n\n@NgModule({\n declarations: [ChipsComponent, ChipItemComponent],\n imports: [\n CommonModule,\n FormsModule,\n TooltipModule,\n KeyFilterModule\n ],\n exports: [ChipsComponent]\n})\nexport class ChipsModule { }\n","import { Component, ElementRef, EventEmitter, OnDestroy, TemplateRef, ViewChild } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { HelpPopoverArrowPosition, HelpPopoverPosition } from '../models/help-popover.models';\n\n@Component({\n selector: 's-help-popover',\n templateUrl: './help-popover.component.html',\n styleUrls: ['./help-popover.component.scss']\n})\nexport class HelpPopoverComponent implements OnDestroy {\n private readonly VALID_POSITIONS: HelpPopoverPosition[] = ['top', 'bottom', 'left', 'right'];\n private readonly VALID_ARROW_POSITIONS: HelpPopoverArrowPosition[] = ['beginning', 'end', 'middle'];\n private _position: HelpPopoverPosition = 'bottom';\n popoverContent: string | TemplateRef<any> | null = null;\n closeButton = true;\n icon = '';\n header = '';\n footer = '';\n button = '';\n visible = false;\n @ViewChild('arrowElement', { read: ElementRef, static: true }) arrowElement: ElementRef<HTMLElement> | null = null;\n public get position(): HelpPopoverPosition {\n return this._position;\n }\n public set position(value: HelpPopoverPosition) {\n if (!this.VALID_POSITIONS.includes(value)) {\n throw new Error(`Invalid position: ${value}. Valid positions: ${this.VALID_POSITIONS}`);\n }\n this._position = value;\n }\n\n private _arrowPosition: HelpPopoverArrowPosition = 'beginning';\n public get arrowPosition(): HelpPopoverArrowPosition {\n return this._arrowPosition;\n }\n public set arrowPosition(value: HelpPopoverArrowPosition) {\n if (!this.VALID_ARROW_POSITIONS.includes(value)) {\n throw new Error(`Invalid arrow position: ${value}. Valid arrow positions: ${this.VALID_ARROW_POSITIONS}`);\n }\n this._arrowPosition = value;\n }\n\n buttonClicked!: EventEmitter<void>;\n\n closed = new Subject<void>();\n get contentIsString() {\n return typeof this.popoverContent === 'string';\n }\n\n get hasHeaderContainer() {\n const _hasHeader = this.hasHeaderText;\n const hasIcon = this.hasIcon;\n const hasCloseButton = this.closeButton;\n return _hasHeader || hasIcon || hasCloseButton;\n }\n\n get hasFooter() {\n const _hasFooterText = this.hasFooterText;\n const hasButtonText = this.button && this.button.length > 0;\n return _hasFooterText || hasButtonText;\n }\n\n get hasHeaderText() {\n return this.header && this.header.length > 0;\n }\n\n get hasFooterText() {\n return this.footer && this.footer.length > 0;\n }\n\n get hasIcon() {\n return this.icon && this.icon.length > 0;\n }\n\n close() {\n this.closed.next();\n }\n\n clickButton() {\n this.buttonClicked!.emit();\n }\n\n\n ngOnDestroy(): void {\n this.closed.complete();\n }\n}\n","import { ApplicationRef, ComponentFactoryResolver, ComponentRef, Directive, ElementRef, EventEmitter, HostListener, Injector, Input, OnDestroy, OnInit, Output, TemplateRef } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport { ElementLeftoverPosition, ElementPosition, getElementLeftoverContentAvailable, getElementPositionInfo, isMousePositionOutsideOfElement } from '../utils';\nimport { HelpPopoverComponent } from './help-popover/help-popover.component';\nimport { HelpPopoverArrowPosition, HelpPopoverPosition } from './models/help-popover.models';\n\n@Directive({\n selector: '[sHelpPopover]',\n exportAs: 'sHelpPopover'\n})\nexport class HelpPopoverDirective implements OnDestroy, OnInit {\n private readonly MUTATION_OBSERVER_CONFIG: MutationObserverInit = { attributes: true, childList: true, subtree: true };\n private readonly OBSERVER_CALLBACK = () => {\n if (!this.componentRef) {\n return;\n }\n this.applyPositionIntoElement();\n }\n private readonly RESIZE_OBSERVER = () => {\n this.onResize$.next();\n }\n @Input() sHelpPopover: string | TemplateRef<any> | null = null;\n @Input() closeButton = true;\n @Input() popoverIcon = '';\n @Input() popoverHeader = '';\n @Input() popoverFooter = '';\n @Input() popoverButtonText = '';\n @Input() popoverArrowPosition: HelpPopoverArrowPosition = 'beginning';\n private _popoverPosition: HelpPopoverPosition = 'bottom';\n public get popoverPosition(): HelpPopoverPosition {\n return this._popoverPosition;\n }\n @Input()\n public set popoverPosition(value: HelpPopoverPosition) {\n this._popoverPosition = value;\n this.internalPosition = value;\n }\n @Output() buttonClicked = new EventEmitter<void>();\n\n private onDestroy$ = new Subject<void>();\n private componentRef: ComponentRef<HelpPopoverComponent> | null = null\n private mutationObserverPopoverElement: MutationObserver | null = null;\n private mutationObserverPopoverContent: MutationObserver | null = null;\n private internalPosition: HelpPopoverPosition = 'bottom';\n private onResize$ = new Subject<void>();\n private manualTrigger = false;\n private listener = (event: PointerEvent) => {\n const totalElementArea = this.componentRef.location.nativeElement.getBoundingClientRect();\n if (isMousePositionOutsideOfElement(event, totalElementArea)) {\n this.destroy();\n }\n }\n constructor(\n private readonly element: ElementRef<HTMLElement>,\n private readonly injector: Injector,\n private readonly componentFactoryResolver: ComponentFactoryResolver,\n private readonly appRef: ApplicationRef,\n ) { }\n\n ngOnInit(): void {\n const popoverElementObserver = new MutationObserver(this.OBSERVER_CALLBACK);\n this.mutationObserverPopoverElement = popoverElementObserver;\n popoverElementObserver.observe(this.element.nativeElement, this.MUTATION_OBSERVER_CONFIG);\n window.addEventListener('resize', this.RESIZE_OBSERVER);\n window.addEventListener('scrollend', this.OBSERVER_CALLBACK);\n this.onResize$.pipe(takeUntil(this.onDestroy$), debounceTime(100)).subscribe(this.OBSERVER_CALLBACK)\n }\n\n show() {\n this.manualTrigger = true;\n this._createComponent();\n }\n\n @HostListener('click')\n doClick() {\n if (this.manualTrigger) {\n return;\n }\n this._createComponent();\n }\n\n ngOnDestroy(): void {\n this.onDestroy$.next();\n this.onDestroy$.complete();\n this.destroy();\n if (this.mutationObserverPopoverElement) {\n this.mutationObserverPopoverElement.disconnect();\n }\n window.removeEventListener('resize', this.RESIZE_OBSERVER);\n window.removeEventListener('scrollend', this.OBSERVER_CALLBACK);\n }\n\n private _createComponent() {\n if (!this.sHelpPopover) {\n return;\n }\n if (this.componentRef) {\n this.destroy();\n }\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(HelpPopoverComponent);\n const componentRef = componentFactory.create(this.injector);\n this.componentRef = componentRef;\n if (this.mutationObserverPopoverContent) {\n this.mutationObserverPopoverContent.disconnect();\n }\n this.mutationObserverPopoverContent = new MutationObserver(this.OBSERVER_CALLBACK);\n this.mutationObserverPopoverContent.observe((this.componentRef.location.nativeElement as HTMLElement).querySelector('.popover-content'), this.MUTATION_OBSERVER_CONFIG);\n document.body.appendChild(componentRef.location.nativeElement);\n this.appRef.attachView(componentRef.hostView);\n setTimeout(() => {\n document.addEventListener('click', this.listener);\n })\n const component = componentRef.instance;\n component.popoverContent = this.sHelpPopover;\n component.closeButton = this.closeButton;\n component.icon = this.popoverIcon;\n component.header = this.popoverHeader;\n component.footer = this.popoverFooter;\n component.button = this.popoverButtonText;\n component.position = this.internalPosition;\n component.arrowPosition = this.popoverArrowPosition;\n component.buttonClicked = this.buttonClicked;\n component.closed.pipe(takeUntil(this.onDestroy$)).subscribe(() => {\n this.destroy();\n })\n this.applyPositionIntoElement();\n }\n\n private destroy() {\n document.removeEventListener('click', this.listener);\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n\n this.internalPosition = this.popoverPosition;\n\n if (this.mutationObserverPopoverContent) {\n this.mutationObserverPopoverContent.disconnect();\n }\n }\n\n private applyPositionIntoElement() {\n const popoverElementPosition = getElementPositionInfo(this.element.nativeElement);\n const position = this.validPosition;\n this.internalPosition = position;\n this.popoverComponentInstance.position = this.internalPosition;\n setTimeout(() => {\n switch (this.internalPosition) {\n case 'bottom': {\n this.applyPopoverPositionBottom(popoverElementPosition);\n break;\n }\n case 'top': {\n this.applyPopoverPositionTop(popoverElementPosition);\n break;\n }\n case 'left': {\n this.applyPopoverPositionLeft(popoverElementPosition);\n break;\n }\n case 'right': {\n this.applyPopoverPositionRight(popoverElementPosition);\n break;\n }\n }\n this.popoverComponentInstance.visible = true;\n })\n\n }\n\n private applyPopoverPositionBottom(popoverElementPosition: ElementPosition) {\n const popoverElement = this.getPopoverElement;\n const leftPopover = this.getHorizontalLeft(popoverElementPosition)\n popoverElement.style.position = 'absolute';\n popoverElement.style.left = `${leftPopover}px`;\n popoverElement.style.top = `calc(${popoverElementPosition.top}px + ${popoverElementPosition.elementHeight}px)`\n }\n\n private applyPopoverPositionTop(popoverElementPosition: ElementPosition) {\n const popoverElement = this.getPopoverElement;\n const leftPopover = this.getHorizontalLeft(popoverElementPosition)\n const popoverHeight = popoverElement.getBoundingClientRect().height;\n popoverElement.style.position = 'absolute';\n popoverElement.style.left = `${leftPopover}px`;\n popoverElement.style.top = `calc(${popoverElementPosition.top}px - ${popoverHeight}px)`;\n }\n\n private applyPopoverPositionLeft(popoverElementPosition: ElementPosition) {\n const popoverElement = this.getPopoverElement;\n const popoverWidth = popoverElement.getBoundingClientRect().width;\n popoverElement.style.position = 'absolute';\n popoverElement.style.left = `calc(${popoverElementPosition.right}px - ${popoverWidth + popoverElementPosition.elementWidth}px)`;\n popoverElement.style.top = this.getVerticalTop(popoverElementPosition);\n }\n\n private applyPopoverPositionRight(popoverElementPosition: ElementPosition) {\n const popoverElement = this.getPopoverElement;\n popoverElement.style.position = 'absolute';\n popoverElement.style.left = `calc(${popoverElementPosition.right}px)`;\n popoverElement.style.top = this.getVerticalTop(popoverElementPosition);\n }\n\n private getHorizontalLeft(popoverElementPosition: ElementPosition) {\n const popoverElement = this.getPopoverElement;\n const popoverWidth = popoverElement.getBoundingClientRect().width;\n let _horizontalLeft = popoverElementPosition.left;\n if (this.popoverArrowPosition === 'end') {\n _horizontalLeft = popoverElementPosition.right - popoverWidth;\n } else if (this.popoverArrowPosition === 'middle') {\n _horizontalLeft = (popoverElementPosition.left + popoverElementPosition.elementWidth / 2) - (popoverWidth / 2);\n }\n return _horizontalLeft;\n }\n\n private getVerticalTop(popoverElementPosition: ElementPosition) {\n const arrowElementPosition = getElementPositionInfo(this.componentRef.instance.arrowElement.nativeElement);\n const popoverContentPosition = getElementPositionInfo(this.componentRef.location.nativeElement);\n const popoverElement = this.getPopoverElement;\n const popoverHeight = popoverElement.getBoundingClientRect().height;\n let top = `calc(${popoverElementPosition.top}px - ${popoverHeight / 2}px + ${popoverElementPosition.elementHeight / 2}px)`;\n\n const arrowMiddle = arrowElementPosition.elementHeight / 2;\n if (this.popoverArrowPosition === 'beginning') {\n const distanceArrowFromStart = arrowElementPosition.top - popoverContentPosition.top;\n top = `calc(${popoverElementPosition.top}px + ${popoverElementPosition.elementHeight / 2}px - ${distanceArrowFromStart + arrowMiddle}px)`;\n } else if (this.popoverArrowPosition === 'end') {\n const distanceArrowFromEnd = (popoverContentPosition.top + popoverContentPosition.elementHeight) - (arrowElementPosition.top + arrowElementPosition.elementHeight);\n top = `calc(${popoverElementPosition.top}px - ${popoverContentPosition.elementHeight}px + ${popoverElementPosition.elementHeight / 2}px + ${distanceArrowFromEnd + arrowMiddle}px)`;\n }\n return top;\n }\n\n private getLeftoverContentAvailableForPopover(): ElementLeftoverPosition {\n return getElementLeftoverContentAvailable(this.element.nativeElement);\n }\n\n private get getPopoverElement(): HTMLElement {\n return this.componentRef.location.nativeElement;\n }\n\n private get popoverComponentInstance() {\n return this.componentRef.instance;\n }\n\n /**\n * Given the current position of the popover and the available space around\n * the trigger element, this function will return the position that the popover\n * will be set at.\n *\n * If the popover will fit at the given position, it will return the same\n * position.\n *\n * If the popover will not fit at the given position, it will return the position\n * that has the most available space (top or bottom).\n *\n * If there is no position with available space, it will return the given\n * position.\n *\n * @returns The position that the popover will be set at.\n */\n private get validPosition(): HelpPopoverPosition {\n const { freeDistanceToBottom, freeDistanceToTop, freeDistanceToLeft, freeDistanceToRight } = this.getLeftoverContentAvailableForPopover();\n\n const popoverElementPosition = getElementPositionInfo(this.componentRef.location.nativeElement);\n const popoverElementWidth = popoverElementPosition.elementWidth;\n const popoverElementHeight = popoverElementPosition.elementHeight;\n\n const remainingSpaceBottom = freeDistanceToBottom - popoverElementHeight;\n const remainingSpaceTop = freeDistanceToTop - popoverElementHeight;\n const remainingSpaceLeft = freeDistanceToLeft - popoverElementWidth;\n const remainingSpaceRight = freeDistanceToRight - popoverElementWidth;\n\n const canSetAtBottom = remainingSpaceBottom > 0;\n const canSetAtTop = remainingSpaceTop > 0;\n const canSetAtLeft = remainingSpaceLeft > 0;\n const canSetAtRight = remainingSpaceRight > 0;\n\n let validPosition: HelpPopoverPosition;\n if (canSetAtBottom && this.popoverPosition === 'bottom') {\n validPosition = 'bottom';\n } else if (canSetAtTop && this.popoverPosition === 'top') {\n validPosition = 'top';\n } else if (canSetAtLeft && this.popoverPosition === 'left') {\n validPosition = 'left';\n } else if (canSetAtRight && this.popoverPosition === 'right') {\n validPosition = 'right';\n }\n\n const needUseOtherPosition = !validPosition;\n if (needUseOtherPosition) {\n const freePositions: { position: HelpPopoverPosition, freeDistance: number }[] = [\n {\n position: 'bottom' as HelpPopoverPosition,\n freeDistance: remainingSpaceBottom,\n },\n {\n position: 'top' as HelpPopoverPosition,\n freeDistance: remainingSpaceTop,\n }\n ].filter((x) => x.freeDistance > 0);\n\n if (freePositions.length === 0) {\n return this.popoverPosition;\n }\n const itemWithMaxFreeDistance = freePositions.sort((a, b) => b.freeDistance - a.freeDistance)[0];\n return itemWithMaxFreeDistance.position;\n } else {\n return this.popoverPosition;\n }\n }\n}\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule } from '../button/button.module';\nimport { HelpPopoverDirective } from './help-popover.directive';\nimport { HelpPopoverComponent } from './help-popover/help-popover.component';\n\n@NgModule({\n declarations: [HelpPopoverComponent, HelpPopoverDirective],\n imports: [\n CommonModule,\n ButtonModule,\n ],\n exports: [HelpPopoverDirective]\n})\nexport class HelpPopoverModule { }\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { ToastComponent } from \"./toast.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [ToastComponent],\n})\nexport class ToastModule {}\n","export const fallback: any = {\n \"platform.angular_components.attachment\": \"anexo\",\n \"platform.angular_components.watch\": \"assistir\",\n \"platform.angular_components.view\": \"visualizar\",\n \"platform.angular_components.listen\": \"ouvir\",\n \"platform.angular_components.drag_your_photo_or\": \"Arraste sua foto ou\",\n \"platform.angular_components.select_a_file\": \"selecione um arquivo\",\n \"platform.angular_components.change_photo\": \"Alterar foto\",\n \"platform.angular_components.remove_image\": \"Remover imagem\",\n \"platform.angular_components.confirmation_remove_image\": \"Deseja remover a imagem? Não pode ser revertida.\",\n \"platform.angular_components.strong\": \"Forte\",\n \"platform.angular_components.medium\": \"Média\",\n \"platform.angular_components.weak\": \"Fraca\",\n \"platform.angular_components.invalid_value\": \"Valor inválido\",\n \"platform.angular_components.insight_intro\": \"Olá! Aqui você encontrará insights valiosos a partir dos seus dados\",\n \"platform.angular_components.insight_empty\": \"Ainda não há Insights na página\",\n \"platform.angular_components.error_loading_insight_alt\": \"Não foi possÃvel carregar o insight no momento. Por favor, verifique sua conexão com a internet e tente novamente.\",\n \"platform.angular_components.loading_insight\": \"Carregando insight valioso...\",\n \"platform.angular_components.insight_no_permission\": \"Olá! Você não possui acesso à página de insights. Entre em contato com o administrador para saber mais\",\n \"platform.angular_components.count_items_in_target\": \"{{ count }} itens em {{ target }}\",\n \"platform.angular_components.count_items_selected\": \"{{ count }} itens selecionados\",\n \"platform.angular_components.january\": \"Janeiro\",\n \"platform.angular_components.february\": \"Fevereiro\",\n \"platform.angular_components.march\": \"Março\",\n \"platform.angular_components.april\": \"Abril\",\n \"platform.angular_components.may\": \"Maio\",\n \"platform.angular_components.june\": \"Junho\",\n \"platform.angular_components.july\": \"Julho\",\n \"platform.angular_components.august\": \"Agosto\",\n \"platform.angular_components.september\": \"Setembro\",\n \"platform.angular_components.october\": \"Outubro\",\n \"platform.angular_components.november\": \"Novembro\",\n \"platform.angular_components.december\": \"Dezembro\",\n \"platform.angular_components.january_short\": \"Jan\",\n \"platform.angular_components.february_short\": \"Fev\",\n \"platform.angular_components.march_short\": \"Mar\",\n \"platform.angular_components.april_short\": \"Abr\",\n \"platform.angular_components.may_short\": \"Mai\",\n \"platform.angular_components.june_short\": \"Jun\",\n \"platform.angular_components.july_short\": \"Jul\",\n \"platform.angular_components.august_short\": \"Ago\",\n \"platform.angular_components.september_short\": \"Set\",\n \"platform.angular_components.october_short\": \"Out\",\n \"platform.angular_components.november_short\": \"Nov\",\n \"platform.angular_components.december_short\": \"Dez\",\n \"platform.angular_components.sunday\": \"Domingo\",\n \"platform.angular_components.monday\": \"Segunda-feira\",\n \"platform.angular_components.tuesday\": \"Terça-feira\",\n \"platform.angular_components.wednesday\": \"Quarta-feira\",\n \"platform.angular_components.thursday\": \"Quinta-feira\",\n \"platform.angular_components.friday\": \"Sexta-feira\",\n \"platform.angular_components.saturday\": \"Sábado\",\n \"platform.angular_components.sunday_short\": \"Dom\",\n \"platform.angular_components.monday_short\": \"Seg\",\n \"platform.angular_components.tuesday_short\": \"Ter\",\n \"platform.angular_components.wednesday_short\": \"Qua\",\n \"platform.angular_components.thursday_short\": \"Qui\",\n \"platform.angular_components.friday_short\": \"Sex\",\n \"platform.angular_components.saturday_short\": \"Sáb\",\n \"platform.angular_components.sunday_min\": \"D\",\n \"platform.angular_components.monday_min\": \"S\",\n \"platform.angular_components.tuesday_min\": \"T\",\n \"platform.angular_components.wednesday_min\": \"Q\",\n \"platform.angular_components.thursday_min\": \"Q\",\n \"platform.angular_components.friday_min\": \"S\",\n \"platform.angular_components.saturday_min\": \"S\",\n \"platform.angular_components.today\": \"Hoje\",\n \"platform.angular_components.hour_format\": \"24\",\n \"platform.angular_components.date_format\": \"dd/mm/yy\",\n \"platform.angular_components.ia_text_generator\": \"Gerador de texto por IA\",\n \"platform.angular_components.attach_files\": \"Anexar arquivos\",\n \"platform.angular_components.add_information\": \"Adicionar informação\",\n \"platform.angular_components.add\": \"Adicionar\",\n \"platform.angular_components.edit\": \"Editar\",\n \"platform.angular_components.remove\": \"Remover\",\n \"platform.angular_components.save\": \"Salvar\",\n \"platform.angular_components.file_attached_successfully\": \"Arquivo anexado com sucesso\",\n \"platform.angular_components.loading_file\": \"Carregando arquivo\",\n \"platform.angular_components.iassist_text_generator\": \"IAssist Gerador de texto\",\n \"platform.angular_components.copied_to_clipboard\": \"Copiado para área de transferência\",\n \"platform.angular_components.copy_field_content\": \"Copiar conteúdo preenchido\",\n \"platform.angular_components.generate_text\": \"Gerar texto\",\n \"platform.angular_components.context\": \"Contexto\",\n \"platform.angular_components.filters\": \"Filtros\",\n \"platform.angular_components.filter\": \"Filtrar\",\n \"platform.angular_components.clear\": \"Limpar\",\n \"platform.angular_components.cancel\": \"Cancelar\",\n \"platform.angular_components.select\": \"Selecionar\",\n \"platform.angular_components.not_informed\": \"Não informado\",\n \"platform.angular_components.advanced_search\": \"Pesquisa avançada\",\n \"platform.angular_components.no_records_found\": \"Nenhum registro encontrado\",\n \"platform.angular_components.total_record\": \"{{ count }} registro encontrado\",\n \"platform.angular_components.total_records\": \"{{ count }} registros encontrados\",\n \"platform.angular_components.total_records_selected\": \"{0} registros selecionados\",\n \"platform.angular_components.country_name_br\": \"Brasil\",\n \"platform.angular_components.country_name_us\": \"Estados Unidos\",\n \"platform.angular_components.country_name_co\": \"Colômbia\",\n \"platform.angular_components.country_name_ar\": \"Argentina\",\n \"platform.angular_components.country_name_cl\": \"Chile\",\n \"platform.angular_components.country_name_py\": \"Paraguai\",\n \"platform.angular_components.country_name_uy\": \"Uruguai\",\n \"platform.angular_components.country_name_cn\": \"China\",\n \"platform.angular_components.country_name_ca\": \"Canadá\",\n \"platform.angular_components.country_name_as\": \"Samoa Americana\",\n \"platform.angular_components.country_name_ai\": \"Anguilla\",\n \"platform.angular_components.country_name_ag\": \"AntÃgua e Barbuda\",\n \"platform.angular_components.country_name_bs\": \"Bahamas\",\n \"platform.angular_components.country_name_bb\": \"Barbados\",\n \"platform.angular_components.country_name_bm\": \"Bermuda\",\n \"platform.angular_components.country_name_vg\": \"Ilhas Virgens Britânicas\",\n \"platform.angular_components.country_name_ky\": \"Ilhas Cayman\",\n \"platform.angular_components.country_name_dm\": \"Dominica\",\n \"platform.angular_components.country_name_do\": \"República Dominicana\",\n \"platform.angular_components.country_name_gd\": \"Granada\",\n \"platform.angular_components.country_name_gu\": \"Guam\",\n \"platform.angular_components.country_name_jm\": \"Jamaica\",\n \"platform.angular_components.country_name_ms\": \"Montserrat\",\n \"platform.angular_components.country_name_mp\": \"Ilhas Mariana do Norte\",\n \"platform.angular_components.country_name_pr\": \"Porto Rico\",\n \"platform.angular_components.country_name_kn\": \"Saint Kitts and Nevis\",\n \"platform.angular_components.country_name_lc\": \"Saint Lucia\",\n \"platform.angular_components.country_name_vc\": \"Saint Vincent and the Grenadines\",\n \"platform.angular_components.country_name_tt\": \"Trinidad e Tobago\",\n \"platform.angular_components.country_name_tc\": \"Ilhas Turcas e Caicos\",\n \"platform.angular_components.country_name_fi\": \"Finlândia\",\n \"platform.angular_components.country_name_rs\": \"Sérvia\",\n \"platform.angular_components.country_name_zm\": \"Zâmbia\",\n \"platform.angular_components.country_name_af\": \"Afghanistão\",\n \"platform.angular_components.country_name_al\": \"Albânia\",\n \"platform.angular_components.country_name_hr\": \"Croácia\",\n \"platform.angular_components.country_name_ec\": \"Equador\",\n \"platform.angular_components.country_name_et\": \"Etiópia\",\n \"platform.angular_components.country_name_gh\": \"Gana\",\n \"platform.angular_components.country_name_gr\": \"Grécia\",\n \"platform.angular_components.country_name_ie\": \"Irlanda\",\n \"platform.angular_components.country_name_it\": \"Itália\",\n \"platform.angular_components.country_name_lr\": \"Libéria\",\n \"platform.angular_components.country_name_na\": \"NamÃbia\",\n \"platform.angular_components.country_name_nz\": \"Nova Zelândia\",\n \"platform.angular_components.country_name_sa\": \"Arábia Saudita\",\n \"platform.angular_components.country_name_za\": \"Ãfrica do Sul\",\n \"platform.angular_components.country_name_lk\": \"Sri Lanka\",\n \"platform.angular_components.country_name_sd\": \"Sudão\",\n \"platform.angular_components.country_name_th\": \"Tailândia\",\n \"platform.angular_components.country_name_ua\": \"Ucrânia\",\n \"platform.angular_components.country_name_ae\": \"Emirados Ãrabes Unidos\",\n \"platform.angular_components.country_name_va\": \"Vaticano\",\n \"platform.angular_components.country_name_zw\": \"Zimbábue\",\n \"platform.angular_components.country_name_dz\": \"Argélia\",\n \"platform.angular_components.country_name_be\": \"Bélgica\",\n \"platform.angular_components.country_name_yt\": \"Mayotte\",\n \"platform.angular_components.country_name_bl\": \"Saint Barthelemy\",\n \"platform.angular_components.country_name_mf\": \"Saint Martin\",\n \"platform.angular_components.country_name_ad\": \"Andora\",\n \"platform.angular_components.country_name_ao\": \"Angola\",\n \"platform.angular_components.country_name_ba\": \"Bósnia e Herzegovina\",\n \"platform.angular_components.country_name_bg\": \"Bulgária\",\n \"platform.angular_components.country_name_kh\": \"Camboja\",\n \"platform.angular_components.country_name_cz\": \"República Checa\",\n \"platform.angular_components.country_name_gq\": \"Guiné Equatorial\",\n \"platform.angular_components.country_name_gw\": \"Guiné-Bissau\",\n \"platform.angular_components.country_name_li\": \"Liechtenstein\",\n \"platform.angular_components.country_name_lu\": \"Luxemburgo\",\n \"platform.angular_components.country_name_mk\": \"Macedónia\",\n \"platform.angular_components.country_name_me\": \"Montenegro\",\n \"platform.angular_components.country_name_pe\": \"Peru\",\n \"platform.angular_components.country_name_pl\": \"Polónia\",\n \"platform.angular_components.country_name_pt\": \"Portugal\",\n \"platform.angular_components.country_name_si\": \"Slovenia\",\n \"platform.angular_components.country_name_am\": \"Arménia\",\n \"platform.angular_components.country_name_aw\": \"Aruba\",\n \"platform.angular_components.country_name_bn\": \"Brunei\",\n \"platform.angular_components.country_name_fj\": \"Fiji\",\n \"platform.angular_components.country_name_gm\": \"Gâmbia\",\n \"platform.angular_components.country_name_gy\": \"Guiana\",\n \"platform.angular_components.country_name_is\": \"Islândia\",\n \"platform.angular_components.country_name_fm\": \"Micronésia\",\n \"platform.angular_components.country_name_nr\": \"Nauru\",\n \"platform.angular_components.country_name_nu\": \"Niue\",\n \"platform.angular_components.country_name_pw\": \"Palau\",\n \"platform.angular_components.country_name_st\": \"Sao Tome e Principe\",\n \"platform.angular_components.country_name_to\": \"Tonga\",\n \"platform.angular_components.country_name_vu\": \"Vanuatu\",\n \"platform.angular_components.country_name_fk\": \"Ilhas Falkland (Malvinas)\",\n \"platform.angular_components.country_name_fo\": \"Ilhas Feroé\",\n \"platform.angular_components.country_name_sh\": \"Saint Helena\",\n \"platform.angular_components.country_name_au\": \"Austrália\",\n \"platform.angular_components.country_name_cx\": \"Christmas Island\",\n \"platform.angular_components.country_name_cc\": \"Ilhas Cocos (Keeling)\",\n \"platform.angular_components.country_name_cd\": \"República Democrática do Congo\",\n \"platform.angular_components.country_name_kg\": \"Quirguistão\",\n \"platform.angular_components.country_name_ro\": \"Roménia\",\n \"platform.angular_components.country_name_rw\": \"Ruanda\",\n \"platform.angular_components.country_name_sk\": \"Slovakia\",\n \"platform.angular_components.country_name_sy\": \"Syria\",\n \"platform.angular_components.country_name_tw\": \"Taiwan\",\n \"platform.angular_components.country_name_tz\": \"Tanzânia\",\n \"platform.angular_components.country_name_ye\": \"Iémen (Iémen, Yemen)\",\n \"platform.angular_components.country_name_at\": \"Ãustria\",\n \"platform.angular_components.country_name_ke\": \"Quénia (Kenya)\",\n \"platform.angular_components.country_name_ug\": \"Uganda\",\n \"platform.angular_components.country_name_az\": \"Azerbaijão\",\n \"platform.angular_components.country_name_ch\": \"Suiça\",\n \"platform.angular_components.country_name_vn\": \"Vietnã (Vietname)\",\n \"platform.angular_components.country_name_bh\": \"Bahrein\",\n \"platform.angular_components.country_name_cr\": \"Costa Rica\",\n \"platform.angular_components.country_name_sv\": \"El Salvador\",\n \"platform.angular_components.country_name_ee\": \"Estónia\",\n \"platform.angular_components.country_name_sz\": \"Suazilândia\",\n \"platform.angular_components.country_name_gt\": \"Guatemala\",\n \"platform.angular_components.country_name_hk\": \"Hong Kong\",\n \"platform.angular_components.country_name_ls\": \"Lesoto\",\n \"platform.angular_components.country_name_mo\": \"Macau\",\n \"platform.angular_components.country_name_mt\": \"Malta\",\n \"platform.angular_components.country_name_mu\": \"MaurÃcia\",\n \"platform.angular_components.country_name_mn\": \"Mongólia\",\n \"platform.angular_components.country_name_ni\": \"Nicaragua\",\n \"platform.angular_components.country_name_om\": \"Omã\",\n \"platform.angular_components.country_name_pg\": \"Papua-Nova Guiné\",\n \"platform.angular_components.country_name_qa\": \"Catar\",\n \"platform.angular_components.country_name_sg\": \"Cingapura\",\n \"platform.angular_components.country_name_tl\": \"Timor-Leste\",\n \"platform.angular_components.country_name_bd\": \"Bangladesh\",\n \"platform.angular_components.country_name_im\": \"Ilha de Man\",\n \"platform.angular_components.country_name_by\": \"Bielorrússia\",\n \"platform.angular_components.country_name_bz\": \"Belize\",\n \"platform.angular_components.country_name_mv\": \"Maldivas\",\n \"platform.angular_components.country_name_mh\": \"Ilhas Marshall\",\n \"platform.angular_components.country_name_sr\": \"Suriname\",\n \"platform.angular_components.country_name_bj\": \"Benim\",\n \"platform.angular_components.country_name_bt\": \"Butão\",\n \"platform.angular_components.country_name_bf\": \"Burkina Faso\",\n \"platform.angular_components.country_name_bi\": \"Burundi\",\n \"platform.angular_components.country_name_cf\": \"República Centro-Africana\",\n \"platform.angular_components.country_name_td\": \"Chad\",\n \"platform.angular_components.country_name_ci\": \"Costa do Marfim\",\n \"platform.angular_components.country_name_dk\": \"Dinamarca\",\n \"platform.angular_components.country_name_dj\": \"Djibouti\",\n \"platform.angular_components.country_name_fr\": \"França\",\n \"platform.angular_components.country_name_pf\": \"Polinésia Francesa\",\n \"platform.angular_components.country_name_ga\": \"Gabão\",\n \"platform.angular_components.country_name_ml\": \"Mali\",\n \"platform.angular_components.country_name_mr\": \"Mauritânia\",\n \"platform.angular_components.country_name_ne\": \"NÃger\",\n \"platform.angular_components.country_name_sm\": \"San Marino\",\n \"platform.angular_components.country_name_tg\": \"Togo\",\n \"platform.angular_components.country_name_bo\": \"BolÃvia\",\n \"platform.angular_components.country_name_gi\": \"Gibraltar\",\n \"platform.angular_components.country_name_ki\": \"Kiribati\",\n \"platform.angular_components.country_name_tv\": \"Tuvalu\",\n \"platform.angular_components.country_name_bw\": \"Botswana\",\n \"platform.angular_components.country_name_er\": \"Eritreia\",\n \"platform.angular_components.country_name_lv\": \"Letônia\",\n \"platform.angular_components.country_name_lb\": \"LÃbano\",\n \"platform.angular_components.country_name_tn\": \"TunÃsia\",\n \"platform.angular_components.country_name_cm\": \"Camarões\",\n \"platform.angular_components.country_name_cv\": \"Cabo Verde\",\n \"platform.angular_components.country_name_km\": \"Comores\",\n \"platform.angular_components.country_name_pm\": \"Saint Pierre and Miquelon\",\n \"platform.angular_components.country_name_cg\": \"República do Congo\",\n \"platform.angular_components.country_name_mz\": \"Moçambique\",\n \"platform.angular_components.country_name_mm\": \"Myanmar (Burma)\",\n \"platform.angular_components.country_name_ck\": \"Ilhas Cook\",\n \"platform.angular_components.country_name_cu\": \"Cuba\",\n \"platform.angular_components.country_name_cy\": \"Chipre\",\n \"platform.angular_components.country_name_eg\": \"Egito\",\n \"platform.angular_components.country_name_ir\": \"Irã\",\n \"platform.angular_components.country_name_iq\": \"Iraque\",\n \"platform.angular_components.country_name_ng\": \"Nigéria\",\n \"platform.angular_components.country_name_kp\": \"Coreia do Norte\",\n \"platform.angular_components.country_name_ph\": \"Filipinas\",\n \"platform.angular_components.country_name_ge\": \"Geórgia\",\n \"platform.angular_components.country_name_gn\": \"Guiné\",\n \"platform.angular_components.country_name_es\": \"Espanha\",\n \"platform.angular_components.country_name_de\": \"Alemanha\",\n \"platform.angular_components.country_name_gl\": \"Groelândia\",\n \"platform.angular_components.country_name_wf\": \"Wallis e Futuna\",\n \"platform.angular_components.country_name_ht\": \"Haiti\",\n \"platform.angular_components.country_name_hn\": \"Honduras\",\n \"platform.angular_components.country_name_pa\": \"Panamá\",\n \"platform.angular_components.country_name_hu\": \"Hungria\",\n \"platform.angular_components.country_name_in\": \"India\",\n \"platform.angular_components.country_name_id\": \"Indonésia\",\n \"platform.angular_components.country_name_il\": \"Israel\",\n \"platform.angular_components.country_name_jp\": \"Japão\",\n \"platform.angular_components.country_name_jo\": \"Jordânia\",\n \"platform.angular_components.country_name_kz\": \"Cazaquistão\",\n \"platform.angular_components.country_name_kw\": \"Kuwait\",\n \"platform.angular_components.country_name_la\": \"Laos\",\n \"platform.angular_components.country_name_ly\": \"LÃbia\",\n \"platform.angular_components.country_name_lt\": \"Lituânia\",\n \"platform.angular_components.country_name_np\": \"Nepal\",\n \"platform.angular_components.country_name_mg\": \"Madagáscar\",\n \"platform.angular_components.country_name_mw\": \"Malawi\",\n \"platform.angular_components.country_name_my\": \"Malásia\",\n \"platform.angular_components.country_name_mx\": \"México\",\n \"platform.angular_components.country_name_md\": \"Moldávia\",\n \"platform.angular_components.country_name_mc\": \"Monaco\",\n \"platform.angular_components.country_name_ma\": \"Marrocos\",\n \"platform.angular_components.country_name_nl\": \"PaÃses Baixos\",\n \"platform.angular_components.country_name_nc\": \"Nova Caledônia\",\n \"platform.angular_components.country_name_no\": \"Noruega\",\n \"platform.angular_components.country_name_pk\": \"Paquistão\",\n \"platform.angular_components.country_name_ru\": \"Rússia\",\n \"platform.angular_components.country_name_ws\": \"Samoa\",\n \"platform.angular_components.country_name_sb\": \"Ilhas Salomão\",\n \"platform.angular_components.country_name_sn\": \"Senegal\",\n \"platform.angular_components.country_name_sc\": \"Seychelles\",\n \"platform.angular_components.country_name_sl\": \"Serra Leoa\",\n \"platform.angular_components.country_name_so\": \"Somalia\",\n \"platform.angular_components.country_name_kr\": \"Coreia do Sul\",\n \"platform.angular_components.country_name_se\": \"Suécia\",\n \"platform.angular_components.country_name_tj\": \"Tajiquistão\",\n \"platform.angular_components.country_name_tk\": \"Tokelau\",\n \"platform.angular_components.country_name_tr\": \"Turquia\",\n \"platform.angular_components.country_name_tm\": \"Turquemenistão\",\n \"platform.angular_components.country_name_uz\": \"Uzbequistão\",\n \"platform.angular_components.country_name_ve\": \"Venezuela\",\n \"platform.angular_components.date_modified_custom_blob\": \"Enviado à s {{hour}}:{{minutes}} de {{day}}/{{month}}/{{fullYear}}\",\n \"platform.angular_components.available-items\": \"Itens disponÃveis\",\n \"platform.angular_components.selected-items\": \"Itens selecionados\",\n \"platform.angular_components.picklist-placeholder\": \"Busque pelo nome ou termo\",\n \"platform.angular_components.add_all\": \"Adicionar todos\",\n \"platform.angular_components.remove_all\": \"Remover todos\",\n \"platform.angular_components.country_name_gb\": \"Reino Unido\",\n \"platform.angular_components.insight_footer\": \"Conteúdo gerado por inteligência artificial. Sujeito a imprecisões.\",\n \"platform.angular_components.text_area_speech_recognition_placeholder\": \"Preencha o campo com, pelo menos, uma frase\",\n \"platform.angular_components.text_area_before_speech\": \"Grave ou ouça o texto clicando nos Ãcones\",\n \"platform.angular_components.text_area_while_speech\": \"Clique novamente no Ãcone para finalizar\",\n \"platform.angular_components.text_area_end_speech\": \"Gravação finalizada\",\n \"platform.angular_components.no_microphone_permission\": \"O acesso ao microfone está bloqueado. Ative a permissão nas configurações do navegador para continuar usando este recurso.\"\n};\n"]}
|