@seniorsistemas/angular-components 19.3.0 → 19.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.d.ts +1 -2
- package/calendar-mask/lib/calendar-mask/calendar-mask.directive.d.ts +0 -1
- package/chips/lib/chips/chips/chips.component.d.ts +1 -2
- package/code-editor/lib/code-editor/code-editor.component.d.ts +0 -2
- package/code-editor/lib/code-editor/infra/utils/custom-translations/custom-translations.module.d.ts +1 -3
- package/common/lib/svg-factory/svg-factory.directive.d.ts +1 -2
- package/content-generator/lib/content-generator/content-generator.component.d.ts +1 -6
- package/content-generator/lib/services/IAssist/iassist.service.d.ts +0 -3
- package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +0 -3
- package/country-phone-picker/lib/country-phone-picker/country-phone-picker.service.d.ts +0 -2
- package/currency/lib/currency.service.d.ts +0 -2
- package/custom-fields/lib/custom-fields/custom-fields.component.d.ts +3 -7
- package/custom-fields/lib/custom-fields/custom-fields.service.d.ts +0 -2
- package/dynamic-form/dynamic-form/components/lookup/lookup.component.d.ts +0 -2
- package/dynamic-form/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.d.ts +1 -2
- package/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.d.ts +1 -3
- package/dynamic-form/dynamic-form/form-field/fields/calendar/calendar-field.component.d.ts +1 -2
- package/dynamic-form/dynamic-form/form-field/fields/chips/chips-field.component.d.ts +1 -3
- package/dynamic-form/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.d.ts +1 -2
- package/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.d.ts +1 -3
- package/dynamic-form/dynamic-form/form-field/fields/file-picker/file-picker-field.component.d.ts +1 -2
- package/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.d.ts +1 -3
- package/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.d.ts +1 -2
- package/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.d.ts +1 -2
- package/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.d.ts +1 -2
- package/empty-state/lib/empty-state/go-back/go-back.component.d.ts +0 -2
- package/esm2022/badge/lib/badge/badge.component.mjs +3 -3
- package/esm2022/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.mjs +10 -13
- package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.directive.mjs +7 -11
- package/esm2022/chips/lib/chips/chips/chips.component.mjs +5 -8
- package/esm2022/code-editor/lib/code-editor/code-editor.component.mjs +6 -9
- package/esm2022/code-editor/lib/code-editor/infra/utils/custom-translations/custom-translations.module.mjs +8 -13
- package/esm2022/common/lib/svg-factory/svg-factory.directive.mjs +6 -10
- package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +24 -30
- package/esm2022/content-generator/lib/services/IAssist/iassist.service.mjs +9 -12
- package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +15 -23
- package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.service.mjs +6 -9
- package/esm2022/currency/lib/currency.service.mjs +6 -9
- package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +17 -25
- package/esm2022/custom-fields/lib/custom-fields/custom-fields.service.mjs +6 -9
- package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +22 -28
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.mjs +6 -10
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +12 -17
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/calendar/calendar-field.component.mjs +5 -8
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/chips/chips-field.component.mjs +12 -17
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.mjs +5 -8
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +13 -19
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/file-picker/file-picker-field.component.mjs +6 -10
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +14 -19
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +5 -8
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +5 -8
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.mjs +5 -8
- package/esm2022/empty-state/lib/empty-state/go-back/go-back.component.mjs +8 -11
- package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +17 -21
- package/esm2022/gantt/lib/gantt/components/gantt/gantt.mjs +6 -2
- package/esm2022/gantt/lib/gantt/gantt.component.mjs +8 -4
- package/esm2022/global-search/lib/global-search/global-search.component.mjs +5 -8
- package/esm2022/image-cropper/lib/image-cropper/image-cropper.service.mjs +7 -12
- package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.mjs +5 -8
- package/esm2022/info-sign/lib/info-sign/info-sign.directive.mjs +6 -10
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.mjs +9 -12
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +14 -17
- package/esm2022/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +12 -15
- package/esm2022/insights/lib/insights/components/insights-card/insights-card.component.mjs +15 -19
- package/esm2022/interactive-content/lib/interactive-content/interactive-content.directive.mjs +5 -8
- package/esm2022/kanban/lib/kanban/components/kanban-column/kanban-column.component.mjs +10 -13
- package/esm2022/kanban/lib/kanban/components/kanban-item/kanban-item.component.mjs +10 -13
- package/esm2022/kanban/lib/kanban/kanban.component.mjs +23 -17
- package/esm2022/loading-state/lib/loading-state/loading-state.directive.mjs +10 -16
- package/esm2022/locale/lib/locale/locale.service.mjs +8 -12
- package/esm2022/locale/lib/locale/pipes/localized-bignumber.pipe.mjs +6 -9
- package/esm2022/locale/lib/locale/pipes/localized-currency.pipe.mjs +6 -9
- package/esm2022/locale/lib/locale/pipes/localized-date.pipe.mjs +6 -9
- package/esm2022/locale/lib/locale/pipes/localized-number.pipe.mjs +6 -9
- package/esm2022/locale/lib/locale/pipes/localized-time.pipe.mjs +6 -9
- package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.directive.mjs +6 -9
- package/esm2022/navigation-button/lib/navigation-button/navigation-button.component.mjs +5 -8
- package/esm2022/numeric/lib/numeric.pipe.mjs +8 -12
- package/esm2022/numeric/lib/numeric.service.mjs +6 -9
- package/esm2022/password-strength/lib/password-strength/password-strength.component.mjs +8 -11
- package/esm2022/password-strength/lib/password-strength/password-strength.directive.mjs +10 -16
- package/esm2022/picklist/lib/picklist/picklist.component.mjs +5 -8
- package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +15 -19
- package/esm2022/progressbar/lib/progressbar/components/progressbar-determinate/progressbar-determinate.component.mjs +8 -11
- package/esm2022/progressbar/lib/progressbar/progressbar.module.mjs +5 -4
- package/esm2022/select-button/lib/select-button/select-button.component.mjs +3 -3
- package/esm2022/shared/lib/accessibility/paginator-accessibility.directive.mjs +8 -13
- package/esm2022/shared/lib/accessibility/table-checkbox-accessibility.directive.mjs +5 -8
- package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.mjs +9 -12
- package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +12 -16
- package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition.service.mjs +12 -16
- package/esm2022/speech-recognition/lib/speech-recognition/text-to-speech.service.mjs +8 -10
- package/esm2022/split-button/lib/split-button/split-button.component.mjs +5 -8
- package/esm2022/table/lib/table/row-toggler/row-toggler.directive.mjs +7 -7
- package/esm2022/table/lib/table/table-column/table-columns.component.mjs +20 -29
- package/esm2022/table/lib/table/table-paging/table-paging.component.mjs +9 -16
- package/esm2022/table-header/lib/table-header/table-header-checkbox.component.mjs +11 -13
- package/esm2022/text-area/lib/text-area/text-area.component.mjs +5 -8
- package/esm2022/thumbnail/lib/thumbnail/thumbnail.component.mjs +8 -11
- package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.mjs +16 -24
- package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.mjs +8 -11
- package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.mjs +12 -16
- package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.directive.mjs +13 -25
- package/esm2022/toast/lib/toast/toast.service.mjs +7 -12
- package/esm2022/tree/lib/tree/components/tree-node-item/tree-node-item.component.mjs +10 -14
- package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.component.mjs +6 -10
- package/fesm2022/seniorsistemas-angular-components-badge.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +10 -12
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +6 -10
- package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-chips.mjs +4 -7
- package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +10 -18
- package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-common.mjs +5 -9
- package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +29 -40
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +16 -28
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-currency.mjs +5 -8
- package/fesm2022/seniorsistemas-angular-components-currency.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +45 -59
- package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +108 -157
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +4 -8
- package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +17 -22
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-gantt.mjs +12 -4
- package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs +4 -7
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +6 -11
- package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +4 -7
- package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +5 -9
- package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +29 -38
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-insights.mjs +17 -22
- package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs +4 -7
- package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-kanban.mjs +30 -30
- package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +7 -15
- package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-locale.mjs +22 -41
- package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +5 -8
- package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +4 -7
- package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-numeric.mjs +9 -16
- package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +13 -24
- package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-picklist.mjs +4 -7
- package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +14 -21
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +11 -14
- package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-select-button.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-shared.mjs +10 -18
- package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs +7 -10
- package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +23 -34
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs +4 -7
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs +10 -12
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table.mjs +30 -47
- package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs +4 -7
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +6 -9
- package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +30 -55
- package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-toast.mjs +6 -11
- package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tree.mjs +9 -14
- package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +5 -9
- package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
- package/file-picker/lib/file-picker/file-picker.component.d.ts +0 -4
- package/file-upload/README.md +9 -37
- package/gantt/lib/gantt/gantt.component.d.ts +1 -0
- package/global-search/lib/global-search/global-search.component.d.ts +1 -2
- package/ia-insight/README.md +17 -0
- package/image-cropper/lib/image-cropper/image-cropper.service.d.ts +1 -2
- package/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.d.ts +1 -2
- package/info-sign/lib/info-sign/info-sign.directive.d.ts +1 -2
- package/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.d.ts +1 -2
- package/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.d.ts +0 -2
- package/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +0 -2
- package/insights/lib/insights/components/insights-card/insights-card.component.d.ts +0 -4
- package/interactive-content/lib/interactive-content/interactive-content.directive.d.ts +1 -2
- package/kanban/lib/kanban/components/kanban-column/kanban-column.component.d.ts +0 -2
- package/kanban/lib/kanban/components/kanban-item/kanban-item.component.d.ts +0 -2
- package/kanban/lib/kanban/kanban.component.d.ts +2 -2
- package/loading-state/lib/loading-state/loading-state.directive.d.ts +1 -2
- package/locale/lib/locale/locale.service.d.ts +0 -3
- package/locale/lib/locale/pipes/localized-bignumber.pipe.d.ts +0 -2
- package/locale/lib/locale/pipes/localized-currency.pipe.d.ts +0 -2
- package/locale/lib/locale/pipes/localized-date.pipe.d.ts +0 -2
- package/locale/lib/locale/pipes/localized-number.pipe.d.ts +0 -2
- package/locale/lib/locale/pipes/localized-time.pipe.d.ts +0 -2
- package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +0 -2
- package/navigation-button/lib/navigation-button/navigation-button.component.d.ts +1 -2
- package/numeric/lib/numeric.pipe.d.ts +0 -3
- package/numeric/lib/numeric.service.d.ts +0 -2
- package/package.json +12 -12
- package/password-strength/lib/password-strength/password-strength.component.d.ts +0 -2
- package/password-strength/lib/password-strength/password-strength.directive.d.ts +1 -2
- package/picklist/lib/picklist/picklist.component.d.ts +1 -2
- package/product-header/README.md +17 -0
- package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +0 -4
- package/progressbar/lib/progressbar/components/progressbar-determinate/progressbar-determinate.component.d.ts +0 -2
- package/progressbar/lib/progressbar/progressbar.module.d.ts +2 -1
- package/shared/lib/accessibility/paginator-accessibility.directive.d.ts +1 -3
- package/shared/lib/accessibility/table-checkbox-accessibility.directive.d.ts +1 -2
- package/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.d.ts +0 -2
- package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +0 -4
- package/speech-recognition/lib/speech-recognition/speech-recognition.service.d.ts +1 -5
- package/speech-recognition/lib/speech-recognition/text-to-speech.service.d.ts +1 -3
- package/split-button/lib/split-button/split-button.component.d.ts +1 -2
- package/table/lib/table/row-toggler/row-toggler.directive.d.ts +1 -1
- package/table/lib/table/table-column/table-columns.component.d.ts +2 -6
- package/table/lib/table/table-paging/table-paging.component.d.ts +0 -3
- package/table-header/lib/table-header/table-header-checkbox.component.d.ts +1 -1
- package/text-area/lib/text-area/text-area.component.d.ts +1 -2
- package/text-area-ia/README.md +17 -0
- package/thumbnail/lib/thumbnail/thumbnail.component.d.ts +0 -2
- package/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +1 -3
- package/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.d.ts +0 -2
- package/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts +0 -2
- package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +1 -5
- package/toast/lib/toast/toast.service.d.ts +0 -2
- package/tree/lib/tree/components/tree-node-item/tree-node-item.component.d.ts +1 -3
- package/workspace-switch/lib/workspace-switch/workspace-switch.component.d.ts +1 -2
- package/confirm-dialog/README.md +0 -226
- package/numeric-mask/README.md +0 -395
- package/pin-code-field/README.md +0 -366
- package/spotlight/README.md +0 -311
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-table.mjs","sources":["../../projects/angular-components/table/src/lib/table/navigation/navigation.directive.ts","../../projects/angular-components/table/src/lib/table/row-toggler/row-toggler.directive.ts","../../projects/angular-components/table/src/lib/table/table-column/models/enum-column-field-type.ts","../../projects/angular-components/table/src/lib/table/table-column/models/enum-badge-colors.ts","../../projects/angular-components/table/src/lib/locale-utils.ts","../../projects/angular-components/table/src/lib/table/table-column/table-columns.component.ts","../../projects/angular-components/table/src/lib/table/table-column/table-columns.component.html","../../projects/angular-components/table/src/lib/table/export-utils.ts","../../projects/angular-components/table/src/lib/table/table-paging/table-paging.component.ts","../../projects/angular-components/table/src/lib/table/table-paging/table-paging.component.html","../../projects/angular-components/table/src/lib/table/table.module.ts","../../projects/angular-components/table/src/seniorsistemas-angular-components-table.ts"],"sourcesContent":["import { Directive, HostListener } from '@angular/core';\n\n@Directive({ selector: '[sNavigation]' })\nexport class NavigationDirective {\n @HostListener('keydown', ['$event'])\n public 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 as any)['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 as any)['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 return prevRow ?? null;\n }\n\n private _findNextSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement | null {\n const nextRow = <HTMLTableRowElement>row.nextElementSibling;\n return nextRow ?? null;\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\n\nimport { RowToggler, Table } from 'primeng/table';\n\n@Directive({ selector: '[sRowToggler]' })\nexport class RowTogllerDirective extends RowToggler {\n @Input({ alias: 'sRowToggler', required: true })\n public override data: any = null;\n\n constructor(public override readonly 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","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","export enum EnumBadgeColors {\n RED = 'red',\n ORANGE = 'orange',\n YELLOW = 'yellow',\n GREEN = 'green',\n BLUE = 'blue',\n GRAY = 'gray',\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 {\n Component,\n Inject,\n Input,\n OnChanges,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport { HostProjectConfigs, HostProjectConfigsInjectionToken } from '@seniorsistemas/angular-components/common';\nimport {\n applyLocalizedMask,\n LocaleService,\n LocalizedBignumberOptions,\n} from '@seniorsistemas/angular-components/locale';\nimport { NumericService } from '@seniorsistemas/angular-components/numeric';\nimport { IToken } from '@seniorsistemas/angular-components/token-list';\nimport { deepClone, isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport BigNumber from 'bignumber.js';\nimport moment from 'moment';\n\nimport { convertToMomentDateFormat } from '../../locale-utils';\nimport { Column, ColumnValues, EnumColumnFieldType, TableColumnLocaleOptions } from './models';\n\n/**\n * @description Componente interno que renderiza uma linha de colunas da tabela,\n * aplicando formatação localizada (data, número, moeda, token, etc.) para cada coluna.\n * Normalmente usado dentro do contexto de uma tabela PrimeNG.\n *\n * @example\n * ```html\n * <s-table-columns [columns]=\"colunas\" [rowValue]=\"linha\" />\n * ```\n *\n * @category Data\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 })\n public columnsTemplate: TemplateRef<any> | null = null;\n\n /** @description Lista de configurações das colunas a serem renderizadas. @default [] */\n @Input()\n public columns: Column[] = [];\n\n /** @description Objeto da linha com os valores a serem exibidos nas colunas. Campo obrigatório. */\n @Input()\n public rowValue!: any;\n\n /** @description Opções de localização (calendário e número) usadas para formatação. @default null */\n @Input()\n public locale: TableColumnLocaleOptions | null = null;\n\n cellsData: (CellData | null)[] = [];\n\n formattedColumns: ColumnValues[] = [];\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 this.locale = {\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\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 this.createColumnsTemplate(changes);\n }\n\n public isArray(value: any): boolean {\n return Array.isArray(value);\n }\n\n public getTokensByColumn(column: ColumnValues) {\n return column.columnValue as IToken[];\n }\n\n private getCellData(column: ColumnValues): CellData | null {\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\n const rowValue: object = deepClone(changes['rowValue']?.currentValue ?? this.rowValue);\n\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 if (!isNullOrUndefined(this.columnsTemplate)) {\n this.viewContainerRef.createEmbeddedView(this.columnsTemplate);\n }\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): LocalizedBignumberOptions {\n return {\n ...this.locale?.number,\n scale:\n column.scale !== null && column.scale !== undefined\n ? this.getColumnScale(column.scale)\n : 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 | number | symbol) => {\n const attributeValue = this.getAttributeValue(attribute as string, 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 : applyLocalizedMask(\n attributeValue,\n {\n decimalSeparator: '.',\n thousandsSeparator: ',',\n scale: 2,\n prefix: '',\n suffix: '',\n allowNegative: true,\n ...numberConfigs,\n },\n this.isNumber(attributeValue),\n );\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 : applyLocalizedMask(\n attributeValue,\n {\n decimalSeparator: '.',\n thousandsSeparator: ',',\n scale: 2,\n prefix: '',\n suffix: '',\n allowNegative: true,\n ...numberConfigs,\n },\n this.isNumber(attributeValue),\n );\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(\n column,\n columnValue,\n unifiedColumnValues,\n uninformed,\n uninformedNumber,\n );\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(deepClone(this.rowValue));\n }\n return scale;\n }\n\n private getColumnInfoSign(infoSign?: string | ((rowValue: any) => string | null)): string | null {\n if (!isNullOrUndefined(infoSign)) {\n if (typeof infoSign === 'function') {\n return infoSign(deepClone(this.rowValue));\n }\n return infoSign;\n }\n return null;\n }\n\n private getColumnTooltip(tooltip?: string | ((rowValue: any) => string)): string {\n if (!isNullOrUndefined(tooltip)) {\n if (typeof tooltip === 'function') {\n return tooltip(deepClone(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(\n 'Not a valid token array. Must be a primitive values array or an objects with label attribute array',\n );\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 ?? 0) - (b.sequence ?? 0));\n }\n}\n\ntype CellData = { value: string; isUninformed: boolean; separator: string | null }[];\n\n","<ng-template #columnsTemplate>\n @for (column of formattedColumns; track $index; let i = $index) {\n <td\n [ngStyle]=\"column.style\"\n (click)=\"column.onColumnClick ? column.onColumnClick(rowValue) : null\"\n >\n @if (column.type !== 'TOKENS' || !isArray(column.columnValue)) {\n <div [ngClass]=\"{ 'compact-column': column.compact }\">\n @if (column.type !== 'LINK') {\n <span\n [sTooltip]=\"column.tooltip\"\n [escape]=\"false\"\n >\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container>\n </span>\n }\n\n @if (column.type === 'LINK') {\n @if (cellsData[i]?.[0]?.isUninformed) {\n <span class=\"sds-empty-value\">{{ cellsData[i]?.[0]?.value }}</span>\n } @else {\n <ng-template #anchorTemplate>\n <a\n [sTooltip]=\"column.tooltip\"\n [escape]=\"false\"\n (click)=\"column.onLinkClick ? column.onLinkClick(rowValue) : null\"\n >\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container>\n </a>\n </ng-template>\n }\n }\n\n <ng-template #columnValueTemplate>\n @for (cellData of cellsData[i]; track $index) {\n @if (cellData.isUninformed) {\n <span class=\"sds-empty-value\">{{ cellData.value }}</span>\n } @else {\n @if (column.badgeConfigs) {\n <s-badge\n [sTooltip]=\"column.tooltip\"\n [color]=\"column.badgeConfigs.color\"\n [text]=\"cellData.value\"\n ></s-badge>\n } @else {\n <span [ngClass]=\"{\n 'column-cell-red': column.color === 'Red',\n 'column-cell-orange': column.color === 'Orange',\n 'column-cell-yellow': column.color === 'Yellow',\n 'column-cell-green': column.color === 'Green',\n 'column-cell-blue': column.color === 'Blue'\n }\"\n >{{ cellData.value }}</span>\n }\n }\n\n @if (cellData.separator) {\n <span>{{ cellData.separator }}</span>\n }\n }\n\n @if (!!column.infoSign) {\n <span *sInfoSign=\"column.infoSign\"></span>\n }\n </ng-template>\n </div>\n } @else {\n <s-token-list\n [tokens]=\"getTokensByColumn(column)\"\n [hidePointerEvents]=\"true\"\n ></s-token-list>\n\n @if (!!column.infoSign) {\n <span *sInfoSign=\"column.infoSign\"></span>\n }\n }\n </td>\n }\n</ng-template>\n","import { ElementRef } from '@angular/core';\nimport { Column } from '../table/table-column/models/column.interface';\nimport { EnumColumnFieldType } from '../table/table-column/models/enum-column-field-type';\n\ndeclare global {\n interface Navigator {\n msSaveOrOpenBlob(blob: Blob, name: string): void;\n }\n}\n\nexport abstract class ExportUtils {\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<Column>[] = [],\n data: any[] = [],\n csvSeparator: string = ';',\n documentName: string = 'download',\n ) {\n let csv = '\\ufeff';\n\n columns\n .filter((column: any) => column.exportable && column.field)\n .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\n .filter((column: any) => column.exportable && column.field)\n .forEach((column: any, i: number) => {\n let cellData;\n if (Array.isArray(column.field)) {\n const fieldValues = column.field.map((col: string) =>\n this._resolveFieldData(record, col, column),\n );\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, column);\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 (typeof window.navigator.msSaveOrOpenBlob === 'function') {\n 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, column: Column): string | null {\n if (!data && !field) {\n return null;\n }\n const needSplitValues = field.includes('.');\n if (this._isFunction(field)) {\n return field(data);\n } else if (!needSplitValues) {\n 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 || value === undefined) {\n return null;\n }\n value = value[fields[i]];\n }\n return ExportUtils._extractData(value, column);\n }\n }\n\n private static _isFunction(obj: any) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n\n private static _extractData(data: any, column: Column) {\n const _data = Array.isArray(data) ? data : [data];\n switch (column.type) {\n case EnumColumnFieldType.TOKENS:\n return _data.map((d: any) => ExportUtils._parseToken(d));\n default:\n return data;\n }\n }\n\n private static _parseToken(data: any) {\n if (isObject(data)) {\n return data['label'];\n } else {\n return data;\n }\n }\n}\n\nconst isObject = (obj: any) => obj !== null && typeof obj === 'object';\n","import { Component, Inject, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Table } from 'primeng/table';\nimport { CustomAction } from './models';\nimport { Column } from '../table-column/models';\nimport { ExportUtils } from '../export-utils';\nimport { deepClone, isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\nimport { HostProjectConfigs, HostProjectConfigsInjectionToken } from '@seniorsistemas/angular-components/common';\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 public totalRecordsText = '';\n\n private readonly localeService: LocaleService = Inject(LocaleService);\n\n constructor(\n private readonly translate: TranslateService,\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(): TieredMenuItemData[] {\n const actions: TieredMenuItemData[] = [\n {\n dataKey: '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 dataKey: '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 dataKey: '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 dataKey: `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 = deepClone(this.table.value);\n\n if (this.loadCurrentPageRecords) {\n tableData = this.loadCurrentPageRecords();\n }\n\n tableData = this.mapNumberFormatOptionsExport(columns, tableData);\n return this.mapColumnsTranslations(columns, tableData);\n }\n\n private getSelectedRowsToExport(columns: any[]) {\n let tableData = deepClone(this.table.selection);\n if (this.loadSelectedRecords) {\n tableData = this.loadSelectedRecords();\n }\n\n tableData = this.mapNumberFormatOptionsExport(columns, tableData);\n return this.mapColumnsTranslations(columns, tableData);\n }\n\n private getPropertyValue(obj: any, path: string) {\n return path\n .split('.')\n .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 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 if (!this.loadAllRecords) {\n return;\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 /**\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'\n ? new BigNumber(value).times(100)\n : 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 =\n numberFormatOptions?.style === 'percent'\n ? new BigNumber(value!).times(100)\n : 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","<div class=\"paging-container\">\n <span class=\"total-records\">\n {{ totalRecordsText }}\n </span>\n @if (exportable) {\n <s-button\n class=\"export-button\"\n priority=\"default\"\n iconClass=\"fa fa-fw fa-file-export\"\n [disabled]=\"false\"\n [auxiliary]=\"true\"\n [tooltip]=\"getTooltipText()\"\n [menuOptions]=\"getActions()\"\n >\n </s-button>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NavigationDirective } from './navigation/navigation.directive';\nimport { RowTogllerDirective } from './row-toggler/row-toggler.directive';\nimport { TableColumnsComponent } from './table-column/table-columns.component';\nimport { TablePagingComponent } from './table-paging/table-paging.component';\nimport { BadgeModule } from '@seniorsistemas/angular-components/badge';\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\nimport { InfoSignModule } from '@seniorsistemas/angular-components/info-sign';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\nimport { TokenListModule } from '@seniorsistemas/angular-components/token-list';\n\n@NgModule({\n imports: [CommonModule, TooltipModule, TokenListModule, TranslateModule, ButtonModule, InfoSignModule, BadgeModule],\n exports: [RowTogllerDirective, NavigationDirective, TableColumnsComponent, TablePagingComponent],\n declarations: [RowTogllerDirective, NavigationDirective, TableColumnsComponent, TablePagingComponent],\n})\nexport class TableModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["BigNumber","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-table.mjs","sources":["../../projects/angular-components/table/src/lib/table/navigation/navigation.directive.ts","../../projects/angular-components/table/src/lib/table/row-toggler/row-toggler.directive.ts","../../projects/angular-components/table/src/lib/table/table-column/models/enum-column-field-type.ts","../../projects/angular-components/table/src/lib/table/table-column/models/enum-badge-colors.ts","../../projects/angular-components/table/src/lib/locale-utils.ts","../../projects/angular-components/table/src/lib/table/table-column/table-columns.component.ts","../../projects/angular-components/table/src/lib/table/table-column/table-columns.component.html","../../projects/angular-components/table/src/lib/table/export-utils.ts","../../projects/angular-components/table/src/lib/table/table-paging/table-paging.component.ts","../../projects/angular-components/table/src/lib/table/table-paging/table-paging.component.html","../../projects/angular-components/table/src/lib/table/table.module.ts","../../projects/angular-components/table/src/seniorsistemas-angular-components-table.ts"],"sourcesContent":["import { Directive, HostListener } from '@angular/core';\n\n@Directive({ selector: '[sNavigation]' })\nexport class NavigationDirective {\n @HostListener('keydown', ['$event'])\n public 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 as any)['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 as any)['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 return prevRow ?? null;\n }\n\n private _findNextSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement | null {\n const nextRow = <HTMLTableRowElement>row.nextElementSibling;\n return nextRow ?? null;\n }\n}\n","import { Directive, HostListener, Input, inject } from '@angular/core';\n\nimport { RowToggler, Table } from 'primeng/table';\n\n@Directive({ selector: '[sRowToggler]' })\nexport class RowTogllerDirective extends RowToggler {\n override readonly dt: Table;\n\n @Input({ alias: 'sRowToggler', required: true })\n public override data: any = null;\n\n constructor() {\n const dt = inject(Table);\n\n super(dt);\n this.dt = dt;\n\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","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","export enum EnumBadgeColors {\n RED = 'red',\n ORANGE = 'orange',\n YELLOW = 'yellow',\n GREEN = 'green',\n BLUE = 'blue',\n GRAY = 'gray',\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 { Component, Input, OnChanges, SimpleChanges, TemplateRef, ViewChild, ViewContainerRef, inject } from '@angular/core';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport { HostProjectConfigs, HostProjectConfigsInjectionToken } from '@seniorsistemas/angular-components/common';\nimport {\n applyLocalizedMask,\n LocaleService,\n LocalizedBignumberOptions,\n} from '@seniorsistemas/angular-components/locale';\nimport { NumericService } from '@seniorsistemas/angular-components/numeric';\nimport { IToken } from '@seniorsistemas/angular-components/token-list';\nimport { deepClone, isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport BigNumber from 'bignumber.js';\nimport moment from 'moment';\n\nimport { convertToMomentDateFormat } from '../../locale-utils';\nimport { Column, ColumnValues, EnumColumnFieldType, TableColumnLocaleOptions } from './models';\n\n/**\n * @description Componente interno que renderiza uma linha de colunas da tabela,\n * aplicando formatação localizada (data, número, moeda, token, etc.) para cada coluna.\n * Normalmente usado dentro do contexto de uma tabela PrimeNG.\n *\n * @example\n * ```html\n * <s-table-columns [columns]=\"colunas\" [rowValue]=\"linha\" />\n * ```\n *\n * @category Data\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 private readonly localeService = inject(LocaleService);\n private readonly viewContainerRef = inject(ViewContainerRef);\n private readonly translate = inject(TranslateService);\n private readonly numericService = inject(NumericService);\n private readonly hostProjectConfigs = inject<HostProjectConfigs>(HostProjectConfigsInjectionToken);\n\n @ViewChild('columnsTemplate', { static: true })\n public columnsTemplate: TemplateRef<any> | null = null;\n\n /** @description Lista de configurações das colunas a serem renderizadas. @default [] */\n @Input()\n public columns: Column[] = [];\n\n /** @description Objeto da linha com os valores a serem exibidos nas colunas. Campo obrigatório. */\n @Input()\n public rowValue!: any;\n\n /** @description Opções de localização (calendário e número) usadas para formatação. @default null */\n @Input()\n public locale: TableColumnLocaleOptions | null = null;\n\n cellsData: (CellData | null)[] = [];\n\n formattedColumns: ColumnValues[] = [];\n\n constructor() {\n this.locale = {\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\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 this.createColumnsTemplate(changes);\n }\n\n public isArray(value: any): boolean {\n return Array.isArray(value);\n }\n\n public getTokensByColumn(column: ColumnValues) {\n return column.columnValue as IToken[];\n }\n\n private getCellData(column: ColumnValues): CellData | null {\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\n const rowValue: object = deepClone(changes['rowValue']?.currentValue ?? this.rowValue);\n\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 if (!isNullOrUndefined(this.columnsTemplate)) {\n this.viewContainerRef.createEmbeddedView(this.columnsTemplate);\n }\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): LocalizedBignumberOptions {\n return {\n ...this.locale?.number,\n scale:\n column.scale !== null && column.scale !== undefined\n ? this.getColumnScale(column.scale)\n : 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 | number | symbol) => {\n const attributeValue = this.getAttributeValue(attribute as string, 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 : applyLocalizedMask(\n attributeValue,\n {\n decimalSeparator: '.',\n thousandsSeparator: ',',\n scale: 2,\n prefix: '',\n suffix: '',\n allowNegative: true,\n ...numberConfigs,\n },\n this.isNumber(attributeValue),\n );\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 : applyLocalizedMask(\n attributeValue,\n {\n decimalSeparator: '.',\n thousandsSeparator: ',',\n scale: 2,\n prefix: '',\n suffix: '',\n allowNegative: true,\n ...numberConfigs,\n },\n this.isNumber(attributeValue),\n );\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(\n column,\n columnValue,\n unifiedColumnValues,\n uninformed,\n uninformedNumber,\n );\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(deepClone(this.rowValue));\n }\n return scale;\n }\n\n private getColumnInfoSign(infoSign?: string | ((rowValue: any) => string | null)): string | null {\n if (!isNullOrUndefined(infoSign)) {\n if (typeof infoSign === 'function') {\n return infoSign(deepClone(this.rowValue));\n }\n return infoSign;\n }\n return null;\n }\n\n private getColumnTooltip(tooltip?: string | ((rowValue: any) => string)): string {\n if (!isNullOrUndefined(tooltip)) {\n if (typeof tooltip === 'function') {\n return tooltip(deepClone(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(\n 'Not a valid token array. Must be a primitive values array or an objects with label attribute array',\n );\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 ?? 0) - (b.sequence ?? 0));\n }\n}\n\ntype CellData = { value: string; isUninformed: boolean; separator: string | null }[];\n\n","<ng-template #columnsTemplate>\n @for (column of formattedColumns; track $index; let i = $index) {\n <td\n [ngStyle]=\"column.style\"\n (click)=\"column.onColumnClick ? column.onColumnClick(rowValue) : null\"\n >\n @if (column.type !== 'TOKENS' || !isArray(column.columnValue)) {\n <div [ngClass]=\"{ 'compact-column': column.compact }\">\n @if (column.type !== 'LINK') {\n <span\n [sTooltip]=\"column.tooltip\"\n [escape]=\"false\"\n >\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container>\n </span>\n }\n\n @if (column.type === 'LINK') {\n @if (cellsData[i]?.[0]?.isUninformed) {\n <span class=\"sds-empty-value\">{{ cellsData[i]?.[0]?.value }}</span>\n } @else {\n <a\n [sTooltip]=\"column.tooltip\"\n [escape]=\"false\"\n (click)=\"column.onLinkClick ? column.onLinkClick(rowValue) : null\"\n >\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container>\n </a>\n }\n }\n\n <ng-template #columnValueTemplate>\n @for (cellData of cellsData[i]; track $index) {\n @if (cellData.isUninformed) {\n <span class=\"sds-empty-value\">{{ cellData.value }}</span>\n } @else {\n @if (column.badgeConfigs) {\n <s-badge\n [sTooltip]=\"column.tooltip\"\n [color]=\"column.badgeConfigs.color\"\n [text]=\"cellData.value\"\n ></s-badge>\n } @else {\n <span\n [ngClass]=\"{\n 'column-cell-red': column.color === 'Red',\n 'column-cell-orange': column.color === 'Orange',\n 'column-cell-yellow': column.color === 'Yellow',\n 'column-cell-green': column.color === 'Green',\n 'column-cell-blue': column.color === 'Blue',\n }\"\n >{{ cellData.value }}</span\n >\n }\n }\n\n @if (cellData.separator) {\n <span>{{ cellData.separator }}</span>\n }\n }\n\n @if (!!column.infoSign) {\n <span *sInfoSign=\"column.infoSign\"></span>\n }\n </ng-template>\n </div>\n } @else {\n <s-token-list\n [tokens]=\"getTokensByColumn(column)\"\n [hidePointerEvents]=\"true\"\n ></s-token-list>\n\n @if (!!column.infoSign) {\n <span *sInfoSign=\"column.infoSign\"></span>\n }\n }\n </td>\n }\n</ng-template>\n\n","import { ElementRef } from '@angular/core';\nimport { Column } from '../table/table-column/models/column.interface';\nimport { EnumColumnFieldType } from '../table/table-column/models/enum-column-field-type';\n\ndeclare global {\n interface Navigator {\n msSaveOrOpenBlob(blob: Blob, name: string): void;\n }\n}\n\nexport abstract class ExportUtils {\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<Column>[] = [],\n data: any[] = [],\n csvSeparator: string = ';',\n documentName: string = 'download',\n ) {\n let csv = '\\ufeff';\n\n columns\n .filter((column: any) => column.exportable && column.field)\n .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\n .filter((column: any) => column.exportable && column.field)\n .forEach((column: any, i: number) => {\n let cellData;\n if (Array.isArray(column.field)) {\n const fieldValues = column.field.map((col: string) =>\n this._resolveFieldData(record, col, column),\n );\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, column);\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 (typeof window.navigator.msSaveOrOpenBlob === 'function') {\n 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, column: Column): string | null {\n if (!data && !field) {\n return null;\n }\n const needSplitValues = field.includes('.');\n if (this._isFunction(field)) {\n return field(data);\n } else if (!needSplitValues) {\n 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 || value === undefined) {\n return null;\n }\n value = value[fields[i]];\n }\n return ExportUtils._extractData(value, column);\n }\n }\n\n private static _isFunction(obj: any) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n\n private static _extractData(data: any, column: Column) {\n const _data = Array.isArray(data) ? data : [data];\n switch (column.type) {\n case EnumColumnFieldType.TOKENS:\n return _data.map((d: any) => ExportUtils._parseToken(d));\n default:\n return data;\n }\n }\n\n private static _parseToken(data: any) {\n if (isObject(data)) {\n return data['label'];\n } else {\n return data;\n }\n }\n}\n\nconst isObject = (obj: any) => obj !== null && typeof obj === 'object';\n","import { Component, Inject, Input, OnChanges, SimpleChanges, inject } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Table } from 'primeng/table';\nimport { CustomAction } from './models';\nimport { Column } from '../table-column/models';\nimport { ExportUtils } from '../export-utils';\nimport { deepClone, isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\nimport { HostProjectConfigs, HostProjectConfigsInjectionToken } from '@seniorsistemas/angular-components/common';\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 private readonly translate = inject(TranslateService);\n private readonly hostProjectConfigs = inject<HostProjectConfigs>(HostProjectConfigsInjectionToken);\n\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 public totalRecordsText = '';\n\n private readonly localeService: LocaleService = Inject(LocaleService);\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(): TieredMenuItemData[] {\n const actions: TieredMenuItemData[] = [\n {\n dataKey: '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 dataKey: '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 dataKey: '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 dataKey: `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 = deepClone(this.table.value);\n\n if (this.loadCurrentPageRecords) {\n tableData = this.loadCurrentPageRecords();\n }\n\n tableData = this.mapNumberFormatOptionsExport(columns, tableData);\n return this.mapColumnsTranslations(columns, tableData);\n }\n\n private getSelectedRowsToExport(columns: any[]) {\n let tableData = deepClone(this.table.selection);\n if (this.loadSelectedRecords) {\n tableData = this.loadSelectedRecords();\n }\n\n tableData = this.mapNumberFormatOptionsExport(columns, tableData);\n return this.mapColumnsTranslations(columns, tableData);\n }\n\n private getPropertyValue(obj: any, path: string) {\n return path\n .split('.')\n .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 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 if (!this.loadAllRecords) {\n return;\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 /**\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'\n ? new BigNumber(value).times(100)\n : 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 =\n numberFormatOptions?.style === 'percent'\n ? new BigNumber(value!).times(100)\n : 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","<div class=\"paging-container\">\n <span class=\"total-records\">\n {{ totalRecordsText }}\n </span>\n @if (exportable) {\n <s-button\n class=\"export-button\"\n priority=\"default\"\n iconClass=\"fa fa-fw fa-file-export\"\n [disabled]=\"false\"\n [auxiliary]=\"true\"\n [tooltip]=\"getTooltipText()\"\n [menuOptions]=\"getActions()\"\n >\n </s-button>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NavigationDirective } from './navigation/navigation.directive';\nimport { RowTogllerDirective } from './row-toggler/row-toggler.directive';\nimport { TableColumnsComponent } from './table-column/table-columns.component';\nimport { TablePagingComponent } from './table-paging/table-paging.component';\nimport { BadgeModule } from '@seniorsistemas/angular-components/badge';\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\nimport { InfoSignModule } from '@seniorsistemas/angular-components/info-sign';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\nimport { TokenListModule } from '@seniorsistemas/angular-components/token-list';\n\n@NgModule({\n imports: [CommonModule, TooltipModule, TokenListModule, TranslateModule, ButtonModule, InfoSignModule, BadgeModule],\n exports: [RowTogllerDirective, NavigationDirective, TableColumnsComponent, TablePagingComponent],\n declarations: [RowTogllerDirective, NavigationDirective, TableColumnsComponent, TablePagingComponent],\n})\nexport class TableModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["BigNumber","i1"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;MAGa,mBAAmB,CAAA;AAErB,IAAA,SAAS,CAAC,KAAoB,EAAA;AACjC,QAAA,QAAQ,KAAK,CAAC,GAAG;YACb,KAAK,OAAO,CAAC;AACb,YAAA,KAAK,YAAY;gBACb,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAA0B,CAAC,EAAE;AAC/C,oBAAA,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,MAA6B,CAAC,CAAC;iBAC1E;qBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAA0B,CAAC,EAAE;AACtD,oBAAA,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,MAA6B,CAAC,CAAC;iBACrE;gBACD,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM;YACV,KAAK,MAAM,CAAC;AACZ,YAAA,KAAK,WAAW;gBACZ,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAA0B,CAAC,EAAE;AAC/C,oBAAA,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,MAA6B,CAAC,CAAC;iBACtE;qBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAA0B,CAAC,EAAE;AACtD,oBAAA,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,MAA6B,CAAC,CAAC;iBACrE;gBACD,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM;YACV,KAAK,IAAI,CAAC;AACV,YAAA,KAAK,SAAS;gBACV,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAA0B,CAAC,EAAE;AAC/C,oBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAA6B,CAAC,CAAC;iBAC9D;qBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAA0B,CAAC,EAAE;AACtD,oBAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAA6B,CAAC,CAAC;iBAC/D;gBACD,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM;YACV,KAAK,MAAM,CAAC;AACZ,YAAA,KAAK,WAAW;gBACZ,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAA0B,CAAC,EAAE;AAC/C,oBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAA6B,CAAC,CAAC;iBAC9D;qBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAA0B,CAAC,EAAE;AACtD,oBAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAA6B,CAAC,CAAC;iBAC/D;gBACD,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM;SACb;KACJ;AAEO,IAAA,wBAAwB,CAAC,KAA0B,EAAA;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAEnD,IAAI,OAAO,EAAE;AACR,YAAA,OAAO,CAAC,gBAAwC,CAAC,KAAK,EAAE,CAAC;SAC7D;KACJ;AAEO,IAAA,4BAA4B,CAAC,GAAwB,EAAA;AACzD,QAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,iBAAwC,CAAC;QAE9D,IAAI,QAAQ,EAAE;YACV,QAAQ,CAAC,KAAK,EAAE,CAAC;SACpB;KACJ;AAEO,IAAA,uBAAuB,CAAC,GAAwB,EAAA;AACpD,QAAA,MAAM,OAAO,GAAG,GAAG,CAAC,kBAAyC,CAAC;QAE9D,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,KAAK,EAAE,CAAC;SACnB;aAAM;AACH,YAAA,MAAM,UAAU,GAAG,GAAG,CAAC,aAAoC,CAAC;AAC5D,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;SAC5C;KACJ;AAEO,IAAA,uBAAuB,CAAC,GAAwB,EAAA;AACpD,QAAA,MAAM,OAAO,GAAG,GAAG,CAAC,sBAA6C,CAAC;QAElE,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,KAAK,EAAE,CAAC;SACnB;aAAM;AACH,YAAA,MAAM,UAAU,GAAG,GAAG,CAAC,aAAoC,CAAC;AAC5D,YAAA,OAAO,UAAU,CAAC,KAAK,EAAE,CAAC;SAC7B;KACJ;AAEO,IAAA,iBAAiB,CAAC,UAA+B,EAAA;AACrD,QAAA,MAAM,SAAS,GAAI,UAAkB,CAAC,WAAW,CAAC,CAAC;AACnD,QAAA,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,UAAiC,CAAC,CAAC;AAE/E,QAAA,IAAI,OAAO;YAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAA8B,CAAC,KAAK,EAAE,CAAC;KAC/E;AAEO,IAAA,iBAAiB,CAAC,UAA+B,EAAA;AACrD,QAAA,MAAM,SAAS,GAAI,UAAkB,CAAC,WAAW,CAAC,CAAC;AACnD,QAAA,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,UAAiC,CAAC,CAAC;AAC/E,QAAA,IAAI,OAAO;YAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAA8B,CAAC,KAAK,EAAE,CAAC;KAC/E;AAEO,IAAA,gBAAgB,CAAC,GAAwB,EAAA;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,KAAK,EAAE,CAAC;SACnB;KACJ;AAEO,IAAA,gBAAgB,CAAC,GAAwB,EAAA;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,KAAK,EAAE,CAAC;SACnB;KACJ;AAEO,IAAA,MAAM,CAAC,KAAuB,EAAA;QAClC,OAAO,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,KAAK,IAAI,CAAC;KACrD;AAEO,IAAA,MAAM,CAAC,KAAuB,EAAA;QAClC,OAAO,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,KAAK,IAAI,CAAC;KACrD;AAEO,IAAA,sBAAsB,CAAC,GAAwB,EAAA;AACnD,QAAA,MAAM,OAAO,GAAwB,GAAG,CAAC,sBAAsB,CAAC;QAChE,OAAO,OAAO,IAAI,IAAI,CAAC;KAC1B;AAEO,IAAA,sBAAsB,CAAC,GAAwB,EAAA;AACnD,QAAA,MAAM,OAAO,GAAwB,GAAG,CAAC,kBAAkB,CAAC;QAC5D,OAAO,OAAO,IAAI,IAAI,CAAC;KAC1B;wGA9HQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAAnB,mBAAmB,EAAA,QAAA,EAAA,eAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,SAAS;mBAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;8BAG7B,SAAS,EAAA,CAAA;sBADf,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ACCjC,MAAO,mBAAoB,SAAQ,UAAU,CAAA;AAC7B,IAAA,EAAE,CAAQ;IAGZ,IAAI,GAAQ,IAAI,CAAC;AAEjC,IAAA,WAAA,GAAA;AACI,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAEzB,KAAK,CAAC,EAAE,CAAC,CAAC;AACV,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;KAEhB;AAGM,IAAA,SAAS,CAAC,KAAoB,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AAClB,YAAA,QAAQ,KAAK,CAAC,GAAG;AACb,gBAAA,KAAK,OAAO;oBACR,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBACpC,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,MAAM;AACV,gBAAA;oBACI,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,MAAM;aACb;SACJ;KACJ;wGA3BQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAAnB,mBAAmB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,aAAA,EAAA,MAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,SAAS;mBAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;wDAKpB,IAAI,EAAA,CAAA;sBADnB,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAYxC,SAAS,EAAA,CAAA;sBADf,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ICnB3B,oBAUX;AAVD,CAAA,UAAY,mBAAmB,EAAA;AAC3B,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACrB,CAAC,EAVW,mBAAmB,KAAnB,mBAAmB,GAU9B,EAAA,CAAA,CAAA;;ICVW,gBAOX;AAPD,CAAA,UAAY,eAAe,EAAA;AACvB,IAAA,eAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACjB,CAAC,EAPW,eAAe,KAAf,eAAe,GAO1B,EAAA,CAAA,CAAA;;ACPM,MAAM,yBAAyB,GAAG,CAAC,MAAc,KAAY;;AAEhE,IAAA,OAAO,MAAM;AACR,SAAA,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;AACrB,SAAA,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;AACvB,SAAA,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;AACvB,SAAA,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;AACzB,SAAA,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;AACvB,SAAA,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;AACzB,SAAA,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;AACrB,SAAA,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;AACvB,SAAA,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;AACtB,SAAA,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACnC,CAAC;;ACKD;;;;;;;;;;;AAWG;MAMU,qBAAqB,CAAA;AACb,IAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AACtC,IAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAC5C,IAAA,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACrC,IAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACxC,IAAA,kBAAkB,GAAG,MAAM,CAAqB,gCAAgC,CAAC,CAAC;IAG5F,eAAe,GAA4B,IAAI,CAAC;;IAIhD,OAAO,GAAa,EAAE,CAAC;;AAIvB,IAAA,QAAQ,CAAO;;IAIf,MAAM,GAAoC,IAAI,CAAC;IAEtD,SAAS,GAAwB,EAAE,CAAC;IAEpC,gBAAgB,GAAmB,EAAE,CAAC;AAEtC,IAAA,WAAA,GAAA;QACI,IAAI,CAAC,MAAM,GAAG;AACV,YAAA,QAAQ,EAAE;AACN,gBAAA,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,EAAE,QAAQ;AAClD,gBAAA,UAAU,EAAE,yBAAyB,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,EAAE,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;AAC1G,aAAA;AACD,YAAA,MAAM,EAAE;AACJ,gBAAA,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,EAAE,MAAM;AAChD,gBAAA,KAAK,EAAE,CAAC;AACX,aAAA;SACJ,CAAC;KACL;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;AAE1C,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE;AAC5F,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;SAC9E;AACD,QAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;KACvC;AAEM,IAAA,OAAO,CAAC,KAAU,EAAA;AACrB,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC/B;AAEM,IAAA,iBAAiB,CAAC,MAAoB,EAAA;QACzC,OAAO,MAAM,CAAC,WAAuB,CAAC;KACzC;AAEO,IAAA,WAAW,CAAC,MAAoB,EAAA;QACpC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;AAEtD,QAAA,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;YACjC,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAEpD,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,KAAI;gBACxC,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,KAAK,KAAK,CAAC;gBAExD,OAAO;AACH,oBAAA,KAAK,EAAE,MAAM;oBACb,YAAY,EAAE,MAAM,KAAK,UAAU;oBACnC,SAAS,EAAE,CAAC,WAAW,GAAG,SAAS,GAAG,IAAI;iBAC7C,CAAC;AACN,aAAC,CAAC,CAAC;SACN;AAED,QAAA,OAAO,IAAI,CAAC;KACf;AAEO,IAAA,2BAA2B,CAAC,OAAsB,EAAA;AACtD,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE;AACpD,YAAA,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;SAChE;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE;AACtD,YAAA,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SACjE;KACJ;AAEO,IAAA,qBAAqB,CAAC,OAAsB,EAAA;AAChD,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAE9B,QAAA,MAAM,OAAO,GAAa,OAAO,CAAC,SAAS,CAAC,EAAE,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC;AAE3E,QAAA,MAAM,QAAQ,GAAW,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;AAEvF,QAAA,MAAM,MAAM,GAA6B,OAAO,CAAC,QAAQ,CAAC,EAAE,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC;QAExF,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QAE/F,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAEjF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;YAC1C,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SAClE;KACJ;AAEO,IAAA,kBAAkB,CAAC,MAAc,EAAA;AACrC,QAAA,OAAO,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;KACtD;AAEO,IAAA,oBAAoB,CAAC,MAAc,EAAA;QACvC,OAAO,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAA,CAAA,EAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAA,CAAA,CAAG,CAAC;KAClH;AAEO,IAAA,uBAAuB,CAAC,cAAmB,EAAA;QAC/C,QACI,cAAc,KAAK,IAAI;AACvB,YAAA,cAAc,KAAK,SAAS;AAC5B,aAAC,cAAc,EAAE,OAAO,EAAE,mBAAmB,IAAI,iBAAiB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;aACzF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;AACxD,aAAC,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EACtE;KACL;IAEO,uBAAuB,CAC3B,MAAc,EACd,WAAkB,EAClB,mBAA2B,EAC3B,cAAsB,EACtB,gBAAwB,EAAA;QAExB,IAAI,gBAAgB,KAAK,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE;AAC/C,YAAA,OAAO,cAAc,CAAC;SACzB;QAED,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,CAAC,MAAM,EAAE;YAC5C,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAClB,EAAE,EACF,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,KAAK,cAAc,CAAC,CAC5D,CAAC;SACL;AAED,QAAA,OAAO,mBAAmB,CAAC;KAC9B;IAEO,iBAAiB,CAAC,SAAiB,EAAE,QAAa,EAAA;AACtD,QAAA,IAAI,cAAoB,CAAC;QAEzB,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,KAAa,KAAI;YAC3C,IAAI,CAAC,cAAc,EAAE;AACjB,gBAAA,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,CAAC,KAAI;oBACxC,IAAI,CAAC,QAAQ,EAAE;wBACX,OAAO;qBACV;AAED,oBAAA,IAAI,CAAC,KAAK,CAAC,EAAE;AACT,wBAAA,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;qBAClC;yBAAM;wBACH,IAAI,cAAc,EAAE;AAChB,4BAAA,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;yBACxC;qBACJ;AACL,iBAAC,CAAC,CAAC;aACN;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,cAAc,CAAC;KACzB;AAEO,IAAA,gBAAgB,CAAC,MAAc,EAAA;QACnC,OAAO;AACH,YAAA,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM;YACtB,KAAK,EACD,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;kBAC7C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC;AACnC,kBAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK;YACnC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAG,CAAA,CAAA;SACnD,CAAC;KACL;IAEO,aAAa,CAAC,MAAc,EAAE,MAAgC,EAAA;AAClE,QAAA,OAAO,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;KAC7E;AAEO,IAAA,cAAc,CAAC,MAAc,EAAE,QAAa,EAAE,MAAgC,EAAA;QAClF,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAClD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC;AAClE,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAE3B,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAmC,KAAI;YAC9E,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAmB,EAAE,QAAQ,CAAC,CAAC;AAE7E,YAAA,IAAI,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,EAAE;AAC9C,gBAAA,OAAO,UAAU,CAAC;aACrB;YAED,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAEpD,YAAA,QAAQ,MAAM,CAAC,IAAI;gBACf,KAAK,mBAAmB,CAAC,IAAI;AACzB,oBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AAE/F,gBAAA,KAAK,mBAAmB,CAAC,QAAQ,EAAE;AAC/B,oBAAA,MAAM,mBAAmB,GAAG,cAAc,EAAE,OAAO,EAAE,mBAAmB;AACpE,0BAAE,cAAc,CAAC,OAAO,CAAC,mBAAmB;AAC5C,0BAAE,OAAO,MAAM,CAAC,mBAAmB,KAAK,UAAU;AAChD,8BAAE,MAAM,CAAC,mBAAmB,CAAC;AACvB,gCAAA,OAAO,EAAE,QAAQ;6BACpB,CAAC;AACJ,8BAAE,MAAM,CAAC,mBAAmB,CAAC;AAEnC,oBAAA,OAAO,mBAAmB;0BACpB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE;4BACxC,mBAAmB;yBACtB,CAAC;AACJ,0BAAE,kBAAkB,CACd,cAAc,EACd;AACI,4BAAA,gBAAgB,EAAE,GAAG;AACrB,4BAAA,kBAAkB,EAAE,GAAG;AACvB,4BAAA,KAAK,EAAE,CAAC;AACR,4BAAA,MAAM,EAAE,EAAE;AACV,4BAAA,MAAM,EAAE,EAAE;AACV,4BAAA,aAAa,EAAE,IAAI;AACnB,4BAAA,GAAG,aAAa;AACnB,yBAAA,EACD,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAChC,CAAC;iBACX;gBAED,KAAK,mBAAmB,CAAC,IAAI;oBACzB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBACtD,OAAO,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAErD,KAAK,mBAAmB,CAAC,OAAO;oBAC5B,MAAM,KAAK,GAAG,cAAc,GAAG,KAAK,GAAG,IAAI,CAAC;oBAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;AAElD,gBAAA,KAAK,mBAAmB,CAAC,MAAM,EAAE;AAC7B,oBAAA,aAAa,CAAC,MAAM,GAAG,EAAE,CAAC;AAE1B,oBAAA,MAAM,mBAAmB,GAAG,cAAc,EAAE,OAAO,EAAE,mBAAmB;AACpE,0BAAE,cAAc,CAAC,OAAO,CAAC,mBAAmB;AAC5C,0BAAE,OAAO,MAAM,CAAC,mBAAmB,KAAK,UAAU;AAChD,8BAAE,MAAM,CAAC,mBAAmB,CAAC;AACvB,gCAAA,OAAO,EAAE,QAAQ;6BACpB,CAAC;AACJ,8BAAE,MAAM,CAAC,mBAAmB,CAAC;AAEnC,oBAAA,OAAO,mBAAmB;0BACpB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE;4BACxC,mBAAmB;yBACtB,CAAC;AACJ,0BAAE,kBAAkB,CACd,cAAc,EACd;AACI,4BAAA,gBAAgB,EAAE,GAAG;AACrB,4BAAA,kBAAkB,EAAE,GAAG;AACvB,4BAAA,KAAK,EAAE,CAAC;AACR,4BAAA,MAAM,EAAE,EAAE;AACV,4BAAA,MAAM,EAAE,EAAE;AACV,4BAAA,aAAa,EAAE,IAAI;AACnB,4BAAA,GAAG,aAAa;AACnB,yBAAA,EACD,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAChC,CAAC;iBACX;gBACD,KAAK,mBAAmB,CAAC,MAAM;AAC3B,oBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;AAE1C,gBAAA;AACI,oBAAA,OAAO,cAAc,CAAC;aAC7B;AACL,SAAC,CAAC,CAAC;QAEH,MAAM,mBAAmB,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;AAC7G,QAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,CACrD,MAAM,EACN,WAAW,EACX,mBAAmB,EACnB,UAAU,EACV,gBAAgB,CACnB,CAAC;QAEF,OAAO;YACH,KAAK;AACL,YAAA,WAAW,EAAE,oBAAoB;YACjC,SAAS;YACT,UAAU;AACV,YAAA,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,CACpC,CAAC,WAAW,KAAK,WAAW,CAAC,SAAS,KAAK,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAC5F;AACD,YAAA,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;YAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC;YAC9C,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC;YACjD,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,OAAO,EAAE,MAAM,CAAC,OAAO;SAC1B,CAAC;KACL;AAEO,IAAA,cAAc,CAAC,KAA2C,EAAA;AAC9D,QAAA,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;YAC7B,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;SAC1C;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;AAEO,IAAA,iBAAiB,CAAC,QAAsD,EAAA;AAC5E,QAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE;AAC9B,YAAA,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;gBAChC,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC7C;AACD,YAAA,OAAO,QAAQ,CAAC;SACnB;AACD,QAAA,OAAO,IAAI,CAAC;KACf;AAEO,IAAA,gBAAgB,CAAC,OAA8C,EAAA;AACnE,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE;AAC7B,YAAA,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;gBAC/B,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC5C;AACD,YAAA,OAAO,OAAO,CAAC;SAClB;AACD,QAAA,OAAO,EAAE,CAAC;KACb;AAEO,IAAA,QAAQ,CAAC,KAAU,EAAA;QACvB,OAAO,CAAC,IAAIA,WAAS,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;KACxC;AAEO,IAAA,SAAS,CAAC,MAAW,EAAA;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACvB,YAAA,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;SAC9D;QAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE;AACjC,YAAA,MAAM,IAAI,KAAK,CACX,oGAAoG,CACvG,CAAC;SACL;AAED,QAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE;AACjC,YAAA,OAAO,MAAM,CAAC;SACjB;AAED,QAAA,OAAO,MAAM;AACR,aAAA,MAAM,CAAC,CAAC,KAAU,KAAK,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AAC7D,aAAA,GAAG,CAAC,CAAC,KAAU,KAAI;AAChB,YAAA,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAG,EAAA,KAAK,EAAE,CAAC;YACxE,OAAO;gBACH,KAAK;aACR,CAAC;AACN,SAAC,CAAC,CAAC;KACV;AAEO,IAAA,iBAAiB,CAAC,MAAa,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;KACjF;AAEO,IAAA,sBAAsB,CAAC,MAAa,EAAA;QACxC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC;KACrF;AAEO,IAAA,kBAAkB,CAAC,MAAa,EAAA;QACpC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE,KAAK,KAAK,IAAI,IAAI,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC;KACjH;AAEO,IAAA,qBAAqB,CAAC,OAAiB,EAAA;QAC3C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;KACxE;wGAnXQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,sRCnClC,wtHAgFA,EAAA,MAAA,EAAA,CAAA,0VAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,6BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,WAAA,EAAA,cAAA,EAAA,UAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FD7Ca,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BAGI,iBAAiB,EAAA,QAAA,EAAA,wtHAAA,EAAA,MAAA,EAAA,CAAA,0VAAA,CAAA,EAAA,CAAA;wDAUpB,eAAe,EAAA,CAAA;sBADrB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAKvC,OAAO,EAAA,CAAA;sBADb,KAAK;gBAKC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAKC,MAAM,EAAA,CAAA;sBADZ,KAAK;;;ME5CY,WAAW,CAAA;AACtB,IAAA,OAAO,QAAQ,CAAC,OAAmB,EAAE,SAAiB,EAAA;AACzD,QAAA,OAAO,CAAC,aAAa,CAAC,SAAS,GAAG,CAAG,EAAA,OAAO,CAAC,aAAa,CAAC,SAAS,CAAI,CAAA,EAAA,SAAS,EAAE,CAAC;KACvF;AAEM,IAAA,OAAO,WAAW,CAAC,OAAmB,EAAE,SAAiB,EAAA;QAC5D,IAAI,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AACrD,YAAA,OAAO,CAAC,aAAa,CAAC,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;SAC5F;KACJ;AAEM,IAAA,OAAO,SAAS,CACnB,OAAA,GAA6B,EAAE,EAC/B,IAAc,GAAA,EAAE,EAChB,YAAA,GAAuB,GAAG,EAC1B,eAAuB,UAAU,EAAA;QAEjC,IAAI,GAAG,GAAG,QAAQ,CAAC;QAEnB,OAAO;AACF,aAAA,MAAM,CAAC,CAAC,MAAW,KAAK,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC;AAC1D,aAAA,OAAO,CAAC,CAAC,MAAW,EAAE,CAAS,KAAI;YAChC,GAAG,IAAI,CAAI,CAAA,EAAA,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAA,CAAA,CAAG,CAAC;AAE5C,YAAA,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,IAAI,YAAY,CAAC;AACpD,SAAC,CAAC,CAAC;AAEP,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,MAAW,KAAI;YACzB,GAAG,IAAI,IAAI,CAAC;YAEZ,OAAO;AACF,iBAAA,MAAM,CAAC,CAAC,MAAW,KAAK,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC;AAC1D,iBAAA,OAAO,CAAC,CAAC,MAAW,EAAE,CAAS,KAAI;AAChC,gBAAA,IAAI,QAAQ,CAAC;gBACb,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;oBAC7B,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAW,KAC7C,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAC9C,CAAC;AAEF,oBAAA,QAAQ,GAAG,WAAW;AACjB,yBAAA,IAAI,EAAE;AACN,yBAAA,MAAM,CAAC,CAAC,KAAa,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAChE,yBAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;iBAC/B;qBAAM;AACH,oBAAA,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;iBACnE;gBAED,IAAI,QAAQ,KAAK,IAAI;AAAE,oBAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;;oBAClE,QAAQ,GAAG,EAAE,CAAC;AAEnB,gBAAA,GAAG,IAAI,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA,CAAG,CAAC;AAEvB,gBAAA,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;oBAAE,GAAG,IAAI,YAAY,CAAC;AACpD,aAAC,CAAC,CAAC;AACX,SAAC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE;AACzB,YAAA,IAAI,EAAE,yBAAyB;AAClC,SAAA,CAAC,CAAC;QAEH,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,gBAAgB,KAAK,UAAU,EAAE;YACzD,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAAC,CAAC;SAC3D;aAAM;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AAC5B,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAChC,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;AAC7B,gBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;gBACrD,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,YAAY,GAAG,MAAM,CAAC,CAAC;gBACrD,IAAI,CAAC,KAAK,EAAE,CAAC;aAChB;iBAAM;AACH,gBAAA,GAAG,GAAG,8BAA8B,GAAG,GAAG,CAAC;gBAC3C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;aAC/B;AACD,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SACnC;KACJ;AAEO,IAAA,OAAO,iBAAiB,CAAC,IAAS,EAAE,KAAU,EAAE,MAAc,EAAA;AAClE,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;AACjB,YAAA,OAAO,IAAI,CAAC;SACf;QACD,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC5C,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;AACzB,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;SACtB;aAAM,IAAI,CAAC,eAAe,EAAE;AACzB,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;SACtB;aAAM;YACH,MAAM,MAAM,GAAa,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,KAAK,GAAG,IAAI,CAAC;AACjB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;gBAC/C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AACvC,oBAAA,OAAO,IAAI,CAAC;iBACf;gBACD,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5B;YACD,OAAO,WAAW,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SAClD;KACJ;IAEO,OAAO,WAAW,CAAC,GAAQ,EAAA;AAC/B,QAAA,OAAO,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;KAC9D;AAEO,IAAA,OAAO,YAAY,CAAC,IAAS,EAAE,MAAc,EAAA;AACjD,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;AAClD,QAAA,QAAQ,MAAM,CAAC,IAAI;YACf,KAAK,mBAAmB,CAAC,MAAM;AAC3B,gBAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,KAAK,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,YAAA;AACI,gBAAA,OAAO,IAAI,CAAC;SACnB;KACJ;IAEO,OAAO,WAAW,CAAC,IAAS,EAAA;AAChC,QAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;AAChB,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;SACxB;aAAM;AACH,YAAA,OAAO,IAAI,CAAC;SACf;KACJ;AACJ,CAAA;AAED,MAAM,QAAQ,GAAG,CAAC,GAAQ,KAAK,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;;MC9GzD,oBAAoB,CAAA;AACZ,IAAA,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACrC,IAAA,kBAAkB,GAAG,MAAM,CAAqB,gCAAgC,CAAC,CAAC;AAG5F,IAAA,YAAY,CAAU;AAGtB,IAAA,cAAc,CAAU;AAGxB,IAAA,KAAK,CAAS;IAGd,UAAU,GAAG,IAAI,CAAC;IAGlB,2BAA2B,GAAG,IAAI,CAAC;AAGnC,IAAA,aAAa,CAAkB;AAG/B,IAAA,cAAc,CAAwB;AAGtC,IAAA,sBAAsB,CAAe;AAGrC,IAAA,mBAAmB,CAAe;IAElC,gBAAgB,GAAG,EAAE,CAAC;AAEZ,IAAA,aAAa,GAAkB,MAAM,CAAC,aAAa,CAAC,CAAC;AAEtE,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE,YAAY,EAAE;AACvC,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,eAAe,EAAE;AACxF,gBAAA,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,YAAY;AAC9C,aAAA,CAAC,CAAC;SACN;KACJ;IAEO,kBAAkB,GAAA;AACtB,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAI,CAAA,EAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,CAAC;KAClF;IAEM,cAAc,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAG,EAAA,IAAI,CAAC,kBAAkB,EAAE,CAAA,aAAA,CAAe,CAAC,CAAC;KAC9E;IAEM,UAAU,GAAA;AACb,QAAA,MAAM,OAAO,GAAyB;AAClC,YAAA;AACI,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA,EAAG,IAAI,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;AAChF,gBAAA,OAAO,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;AAC1C,aAAA;SACJ,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,2BAA2B,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC;AACT,gBAAA,OAAO,EAAE,gBAAgB;AACzB,gBAAA,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA,EAAG,IAAI,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;AACpF,gBAAA,OAAO,EAAE,MAAM,IAAI,CAAC,qBAAqB,EAAE;AAC9C,aAAA,CAAC,CAAC;SACN;AAED,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC;AACT,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA,EAAG,IAAI,CAAC,kBAAkB,EAAE,oBAAoB,CAAC;AAC/E,gBAAA,OAAO,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE;AACzC,aAAA,CAAC,CAAC;SACN;AAED,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE;AAC5B,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,MAAM;gBACvD,OAAO,EAAE,CAAgB,aAAA,EAAA,MAAM,CAAE,CAAA;gBACjC,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,OAAO,EAAE,CAAC,CAAC,OAAO;AACrB,aAAA,CAAC,CAAC,CAAC;AACJ,YAAA,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;SAChC;AAED,QAAA,OAAO,OAAO,CAAC;KAClB;IAEO,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACb,YAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAClD;KACJ;IAEM,kBAAkB,GAAA;AACrB,QAAA,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;AAClD,YAAA,MAAM,YAAY,GAAG;AACjB,gBAAA,GAAG,MAAM;gBACT,MAAM,EAAE,MAAM,CAAC,MAAM;AACrB,gBAAA,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,MAAM,CAAC,KAAK;AACnB,gBAAA,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK;gBACpC,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;aACpC,CAAC;AAEF,YAAA,IAAI,MAAM,CAAC,UAAU,KAAK,KAAK,EAAE;AAC7B,gBAAA,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC;aACnC;YAED,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE;gBAC/C,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;oBAChC,YAAY,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;iBAC7C;qBAAM;AACH,oBAAA,YAAY,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;iBAC1C;aACJ;AAED,YAAA,OAAO,YAAY,CAAC;AACxB,SAAC,CAAC,CAAC;KACN;AAEO,IAAA,0BAA0B,CAAC,OAAc,EAAA;QAC7C,IAAI,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAE5C,QAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC7B,YAAA,SAAS,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC7C;QAED,SAAS,GAAG,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;KAC1D;AAEO,IAAA,uBAAuB,CAAC,OAAc,EAAA;QAC1C,IAAI,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAChD,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC1B,YAAA,SAAS,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC1C;QAED,SAAS,GAAG,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;KAC1D;IAEO,gBAAgB,CAAC,GAAQ,EAAE,IAAY,EAAA;AAC3C,QAAA,OAAO,IAAI;aACN,KAAK,CAAC,GAAG,CAAC;AACV,aAAA,MAAM,CAAC,CAAC,MAAW,EAAE,IAAS,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;KACzG;AAEO,IAAA,gBAAgB,CAAC,GAAQ,EAAE,IAAY,EAAE,KAAU,EAAA;AACvD,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;KACvD;AAEO,IAAA,iBAAiB,CAAC,GAAQ,EAAE,QAAkB,EAAE,KAAU,EAAA;AAC9D,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxB,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AACvB,YAAA,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACjB,YAAA,OAAO,GAAG,CAAC;SACd;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9E,QAAA,OAAO,GAAG,CAAC;KACd;IAEM,sBAAsB,CAAC,OAAc,EAAE,IAAW,EAAA;AACrD,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;AACrB,YAAA,OAAO,IAAI,CAAC;SACf;QAED,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;AACzB,YAAA,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;AAC1B,YAAA,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;gBAC3B,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;AAC5E,gBAAA,MAAM,CAAC,OAAO,CAAC,CAAC,SAAiB,KAAI;oBACjC,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBACzD,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE;wBACjD,OAAO;qBACV;oBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;oBACzD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACvD,iBAAC,CAAC,CAAC;AACP,aAAC,CAAC,CAAC;AAEH,YAAA,OAAO,MAAM,CAAC;AAClB,SAAC,CAAC,CAAC;KACN;IAEM,eAAe,CAAC,OAAc,EAAE,IAAW,EAAA;AAC9C,QAAA,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;AACvB,YAAA,OAAO,IAAI,CAAC;SACf;QAED,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;AACzB,YAAA,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;AAC1B,YAAA,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;gBAC7B,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;AAC5E,gBAAA,MAAM,CAAC,OAAO,CAAC,CAAC,SAAiB,KAAI;oBACjC,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBACzD,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE;wBACjD,OAAO;qBACV;oBACD,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;oBACjD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACvD,iBAAC,CAAC,CAAC;AACP,aAAC,CAAC,CAAC;AAEH,YAAA,OAAO,MAAM,CAAC;AAClB,SAAC,CAAC,CAAC;KACN;IAEO,cAAc,CAAC,MAAW,EAAE,UAAe,EAAA;;QAE/C,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;AACtD,QAAA,IAAI,cAAc,GAAG,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;QACnD,IAAI,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;;QAG7D,IAAI,cAAc,KAAK,eAAe,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5D,cAAc,GAAG,GAAG,MAAM,CAAC,UAAU,CAAG,EAAA,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC;YAC3F,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SAC5D;;AAGD,QAAA,IAAI,cAAc,KAAK,eAAe,EAAE;YACpC,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/D,cAAc,GAAG,GAAG,MAAM,CAAC,UAAU,CAAG,EAAA,OAAO,EAAE,CAAC;YAClD,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SAC5D;AAED,QAAA,OAAO,eAAe,CAAC;KAC1B;AAEO,IAAA,kBAAkB,CAAC,GAAW,EAAA;QAClC,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK,KAAK,CAAI,CAAA,EAAA,KAAK,CAAC,WAAW,EAAE,CAAA,CAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;KAClG;IAEO,iBAAiB,GAAA;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,OAAO,CAAC;AACnD,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AAExB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,IAAI,UAAU,CAAC;AACnD,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACtE,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAEtE,QAAA,OAAO,GAAG,QAAQ,CAAA,CAAA,EAAI,aAAa,CAAI,CAAA,EAAA,aAAa,EAAE,CAAC;KAC1D;IAEM,iBAAiB,GAAA;QACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACzB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;AAC9D,QAAA,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;KACrF;IAEM,qBAAqB,GAAA;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACzB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAC3D,QAAA,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;KACrF;AAEM,IAAA,MAAM,gBAAgB,GAAA;QACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAEzB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,OAAO;SACV;AACD,QAAA,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAE7C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1C,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAEvD,UAAU,GAAG,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAEpE,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAEtE,QAAA,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;KACrF;AAED;;;;;;;AAOG;IACI,4BAA4B,CAC/B,OAA0B,EAC1B,SAEG,EAAA;AAEH,QAAA,MAAM,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAC3F,QAAA,MAAM,0BAA0B,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,KACtD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAM,OAAO,CAAC,GAAG,CAA0B,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAC3G,CAAC;AAEF,QAAA,IAAI,CAAC,6BAA6B,IAAI,CAAC,0BAA0B;AAAE,YAAA,OAAO,SAAS,CAAC;QAEpF,IAAI,6BAA6B,EAAE;YAC/B,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,KAAI;AAClC,gBAAA,MAAM,8BAA8B,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAE9F,gBAAA,KAAK,MAAM,MAAM,IAAI,8BAA8B,EAAE;AACjD,oBAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAErC,oBAAA,MAAM,mBAAmB,GACrB,OAAO,MAAM,CAAC,mBAAmB,KAAK,UAAU;AAC5C,0BAAE,MAAM,CAAC,mBAAmB,CAAC;4BACvB,OAAO;yBACV,CAAC;AACJ,0BAAE,MAAM,CAAC,mBAAmB,CAAC;AAErC,oBAAA,KAAK,MAAM,SAAS,IAAI,UAAW,EAAE;AACjC,wBAAA,IAAI,iBAAiB,CAAC,OAAO,CAAC,SAAmB,CAAC,CAAC;4BAAE,SAAS;wBAE9D,IAAK,OAAO,CAAC,SAAmB,CAA0B,CAAC,OAAO,EAAE,mBAAmB,EAAE;4BACrF,SAAS;yBACZ;AAED,wBAAA,MAAM,KAAK,GAAG,OAAO,CAAC,SAAmB,CAAoB,CAAC;AAE9D,wBAAA,MAAM,WAAW,GACb,mBAAmB,EAAE,KAAK,KAAK,SAAS;8BAClC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;AACjC,8BAAE,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;AAE/B,wBAAA,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAG,CAAC,MAAM,EAAE;AACtF,4BAAA,GAAG,mBAAmB;AACtB,4BAAA,KAAK,EAAE,SAAS;AAChB,4BAAA,WAAW,EAAE,KAAK;AAClB,4BAAA,YAAY,EAAE,OAAO;AACjB,yBAAA,CAAC,CAAC;AAEV,wBAAA,OAAO,CAAC,SAAmB,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;qBAC9E;iBACJ;AAED,gBAAA,OAAO,OAAO,CAAC;AACnB,aAAC,CAAC,CAAC;SACN;QAED,IAAI,0BAA0B,EAAE;YAC5B,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,KAAI;gBAClC,MAAM,2BAA2B,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAC3D,CAAC,GAAG,KAAM,OAAO,CAAC,GAAG,CAA0B,EAAE,OAAO,EAAE,mBAAmB,CAChF,CAAC;AAEF,gBAAA,KAAK,MAAM,GAAG,IAAI,2BAA2B,EAAE;oBAC3C,MAAM,KAAK,GAAI,OAAO,CAAC,GAAG,CAA0B,CAAC,KAAK,CAAC;oBAE3D,MAAM,mBAAmB,GAAI,OAAO,CAAC,GAAG,CAA0B,CAAC,OAAO,EAAE,mBAAmB,CAAC;AAEhG,oBAAA,MAAM,WAAW,GACb,mBAAmB,EAAE,KAAK,KAAK,SAAS;0BAClC,IAAI,SAAS,CAAC,KAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;AAClC,0BAAE,IAAI,SAAS,CAAC,KAAM,CAAC,CAAC;AAEhC,oBAAA,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAG,CAAC,MAAM,EAAE;AACtF,wBAAA,GAAG,mBAAmB;AACtB,wBAAA,KAAK,EAAE,SAAS;AAChB,wBAAA,WAAW,EAAE,KAAK;AAClB,wBAAA,YAAY,EAAE,OAAO;AACjB,qBAAA,CAAC,CAAC;AAET,oBAAA,OAAO,CAAC,GAAG,CAAqB,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;iBACnF;AAED,gBAAA,OAAO,OAAO,CAAC;AACnB,aAAC,CAAC,CAAC;SACN;AAED,QAAA,OAAO,SAAS,CAAC;KACpB;wGAzXQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,6ZCvBjC,qeAiBA,EAAA,MAAA,EAAA,CAAA,qFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDMa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BAGI,gBAAgB,EAAA,QAAA,EAAA,qeAAA,EAAA,MAAA,EAAA,CAAA,qFAAA,CAAA,EAAA,CAAA;8BAOnB,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAIC,cAAc,EAAA,CAAA;sBADpB,KAAK;gBAIC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAIC,UAAU,EAAA,CAAA;sBADhB,KAAK;gBAIC,2BAA2B,EAAA,CAAA;sBADjC,KAAK;gBAIC,aAAa,EAAA,CAAA;sBADnB,KAAK;gBAIC,cAAc,EAAA,CAAA;sBADpB,KAAK;gBAIC,sBAAsB,EAAA,CAAA;sBAD5B,KAAK;gBAIC,mBAAmB,EAAA,CAAA;sBADzB,KAAK;;;MEhCG,WAAW,CAAA;wGAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,EAFL,YAAA,EAAA,CAAA,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,oBAAoB,CAF1F,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,CACxG,EAAA,OAAA,EAAA,CAAA,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAGtF,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,EAJV,OAAA,EAAA,CAAA,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,CAAA,EAAA,CAAA,CAAA;;4FAIzG,WAAW,EAAA,UAAA,EAAA,CAAA;kBALvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,CAAC;oBACnH,OAAO,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,oBAAoB,CAAC;oBAChG,YAAY,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,oBAAoB,CAAC;AACxG,iBAAA,CAAA;;;AClBD;;AAEG;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { forwardRef, ElementRef, Component, ViewChild, Input, NgModule } from '@angular/core';
|
|
2
|
+
import { inject, ChangeDetectorRef, forwardRef, ElementRef, Component, ViewChild, Input, NgModule } from '@angular/core';
|
|
3
3
|
import * as i2 from '@angular/forms';
|
|
4
4
|
import { NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
5
5
|
import * as i1 from '@angular/common';
|
|
@@ -27,7 +27,7 @@ import { KeyFilterModule } from 'primeng/keyfilter';
|
|
|
27
27
|
* @category Inputs
|
|
28
28
|
*/
|
|
29
29
|
class TextAreaComponent {
|
|
30
|
-
cdr;
|
|
30
|
+
cdr = inject(ChangeDetectorRef);
|
|
31
31
|
onChange = () => { };
|
|
32
32
|
onTouched = () => { };
|
|
33
33
|
disabled = false;
|
|
@@ -75,9 +75,6 @@ class TextAreaComponent {
|
|
|
75
75
|
/** @description Coloca o textarea em modo somente leitura. @default false */
|
|
76
76
|
readOnly = false;
|
|
77
77
|
renderTextArea = false;
|
|
78
|
-
constructor(cdr) {
|
|
79
|
-
this.cdr = cdr;
|
|
80
|
-
}
|
|
81
78
|
writeValue(obj) {
|
|
82
79
|
this.value = obj;
|
|
83
80
|
}
|
|
@@ -102,7 +99,7 @@ class TextAreaComponent {
|
|
|
102
99
|
handleRecognizedText(recognizedText) {
|
|
103
100
|
this.setValue(recognizedText);
|
|
104
101
|
}
|
|
105
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextAreaComponent, deps: [
|
|
102
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
106
103
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TextAreaComponent, selector: "s-textarea", inputs: { inputId: "inputId", rows: "rows", speechRecognition: "speechRecognition", keyFilter: "keyFilter", keepContext: "keepContext", speechRecognitionPlaceholder: "speechRecognitionPlaceholder", maxLength: "maxLength", placeholder: "placeholder", inputStyle: "inputStyle", readOnly: "readOnly" }, providers: [
|
|
107
104
|
{
|
|
108
105
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -120,7 +117,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
120
117
|
multi: true,
|
|
121
118
|
},
|
|
122
119
|
], template: "<textarea\n *ngIf=\"keyFilter\"\n #textArea\n class=\"textarea\"\n [pKeyFilter]=\"keyFilter\"\n [id]=\"inputId\"\n [rows]=\"rows\"\n [ngModel]=\"value\"\n (ngModelChange)=\"setValue($event)\"\n [disabled]=\"disabled\"\n [ngStyle]=\"inputStyle\"\n [readOnly]=\"readOnly\"\n [maxlength]=\"maxLength\"\n [placeholder]=\"placeholder ? placeholder : ''\"\n></textarea>\n\n<textarea\n *ngIf=\"!keyFilter\"\n #textArea\n class=\"textarea\"\n [id]=\"inputId\"\n [rows]=\"rows\"\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [ngStyle]=\"inputStyle\"\n [readOnly]=\"readOnly\"\n [maxlength]=\"maxLength\"\n [placeholder]=\"placeholder ? placeholder : ''\"\n (ngModelChange)=\"setValue($event)\"\n></textarea>\n\n<s-speech-recognition\n *ngIf=\"speechRecognition && renderTextArea\"\n [textAreaElement]=\"textAreaElement.nativeElement\"\n [keepContext]=\"keepContext\"\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\n (recognizedText)=\"handleRecognizedText($event)\"\n>\n</s-speech-recognition>\n", styles: [".textarea{border-radius:3px;border:1px solid #c1c1cc;background:#fff;width:100%;max-width:100%;min-height:4em;min-width:10em;outline:none;padding:8px;display:block}.textarea:disabled{opacity:.5}.textarea:focus{transition:border-color .2s ease-out;border:1px solid #428bca}:host.ng-invalid.ng-dirty .textarea{border-color:#c13018}\n"] }]
|
|
123
|
-
}],
|
|
120
|
+
}], propDecorators: { textAreaElement: [{
|
|
124
121
|
type: ViewChild,
|
|
125
122
|
args: ['textArea', { read: ElementRef }]
|
|
126
123
|
}], inputId: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-text-area.mjs","sources":["../../projects/angular-components/text-area/src/lib/text-area/text-area.component.ts","../../projects/angular-components/text-area/src/lib/text-area/text-area.component.html","../../projects/angular-components/text-area/src/lib/text-area.module.ts","../../projects/angular-components/text-area/src/seniorsistemas-angular-components-text-area.ts"],"sourcesContent":["import { ChangeDetectorRef, Component, ElementRef, forwardRef, Input, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { KeyFilterPattern } from 'primeng/keyfilter';\n\n/**\n * @description Componente de área de texto com suporte a reconhecimento de voz,\n * filtro de teclas, comprimento máximo e integração com `ControlValueAccessor`.\n * Renderiza condicionalmente o componente `SpeechRecognitionComponent` quando\n * a flag `speechRecognition` está ativa.\n *\n * @example\n * ```html\n * <s-textarea\n * formControlName=\"descricao\"\n * [rows]=\"6\"\n * [maxLength]=\"500\"\n * placeholder=\"Digite aqui...\" />\n * ```\n *\n * @category Inputs\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> | undefined;\n\n @ViewChild('textArea', { read: ElementRef })\n public get textAreaElement(): ElementRef<HTMLTextAreaElement> {\n return this._textAreaElement as ElementRef<HTMLTextAreaElement>;\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 /** @description Identificador do elemento `<textarea>` no DOM. @default 'textarea-{random}' */\n @Input() inputId = `textarea-${Math.random()}`;\n /** @description Número de linhas visíveis no textarea. @default 5 */\n @Input() rows = 5;\n /** @description Habilita o botão de reconhecimento de voz. @default false */\n @Input() speechRecognition = false;\n /** @description Filtro de teclas aceitas, usando padrão ou expressão regular. */\n @Input() keyFilter: RegExp | KeyFilterPattern | null | undefined;\n /** @description Quando `true`, mantém o contexto ao reiniciar o reconhecimento de voz. @default false */\n @Input() keepContext = false;\n /** @description Placeholder exibido durante o reconhecimento de voz. @default '' */\n @Input() speechRecognitionPlaceholder = '';\n /** @description Número máximo de caracteres aceitos. @default null (ilimitado) */\n @Input() maxLength: number | null = null;\n /** @description Texto exibido quando o campo está vazio. */\n @Input() placeholder: string | undefined;\n\n private _inputStyle: Partial<CSSStyleDeclaration> = {\n resize: 'vertical',\n };\n /** @description Estilos inline aplicados ao elemento `<textarea>` interno. @default `{ resize: 'vertical' }` */\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 /** @description Coloca o textarea em modo somente leitura. @default false */\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 | number) {\n if (this.disabled) {\n return;\n }\n this.value = value.toString();\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\n","<textarea\n *ngIf=\"keyFilter\"\n #textArea\n class=\"textarea\"\n [pKeyFilter]=\"keyFilter\"\n [id]=\"inputId\"\n [rows]=\"rows\"\n [ngModel]=\"value\"\n (ngModelChange)=\"setValue($event)\"\n [disabled]=\"disabled\"\n [ngStyle]=\"inputStyle\"\n [readOnly]=\"readOnly\"\n [maxlength]=\"maxLength\"\n [placeholder]=\"placeholder ? placeholder : ''\"\n></textarea>\n\n<textarea\n *ngIf=\"!keyFilter\"\n #textArea\n class=\"textarea\"\n [id]=\"inputId\"\n [rows]=\"rows\"\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [ngStyle]=\"inputStyle\"\n [readOnly]=\"readOnly\"\n [maxlength]=\"maxLength\"\n [placeholder]=\"placeholder ? placeholder : ''\"\n (ngModelChange)=\"setValue($event)\"\n></textarea>\n\n<s-speech-recognition\n *ngIf=\"speechRecognition && renderTextArea\"\n [textAreaElement]=\"textAreaElement.nativeElement\"\n [keepContext]=\"keepContext\"\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\n (recognizedText)=\"handleRecognizedText($event)\"\n>\n</s-speech-recognition>\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 { KeyFilterModule } from 'primeng/keyfilter';\nimport { SpeechRecognitionModule } from '@seniorsistemas/angular-components/speech-recognition';\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-text-area.mjs","sources":["../../projects/angular-components/text-area/src/lib/text-area/text-area.component.ts","../../projects/angular-components/text-area/src/lib/text-area/text-area.component.html","../../projects/angular-components/text-area/src/lib/text-area.module.ts","../../projects/angular-components/text-area/src/seniorsistemas-angular-components-text-area.ts"],"sourcesContent":["import { ChangeDetectorRef, Component, ElementRef, forwardRef, Input, ViewChild, inject } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { KeyFilterPattern } from 'primeng/keyfilter';\n\n/**\n * @description Componente de área de texto com suporte a reconhecimento de voz,\n * filtro de teclas, comprimento máximo e integração com `ControlValueAccessor`.\n * Renderiza condicionalmente o componente `SpeechRecognitionComponent` quando\n * a flag `speechRecognition` está ativa.\n *\n * @example\n * ```html\n * <s-textarea\n * formControlName=\"descricao\"\n * [rows]=\"6\"\n * [maxLength]=\"500\"\n * placeholder=\"Digite aqui...\" />\n * ```\n *\n * @category Inputs\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 private readonly cdr = inject(ChangeDetectorRef);\n\n onChange: (value: string) => void = () => {};\n onTouched: (value: string) => void = () => {};\n disabled = false;\n value = '';\n private _textAreaElement: ElementRef<HTMLTextAreaElement> | undefined;\n\n @ViewChild('textArea', { read: ElementRef })\n public get textAreaElement(): ElementRef<HTMLTextAreaElement> {\n return this._textAreaElement as ElementRef<HTMLTextAreaElement>;\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 /** @description Identificador do elemento `<textarea>` no DOM. @default 'textarea-{random}' */\n @Input() inputId = `textarea-${Math.random()}`;\n /** @description Número de linhas visíveis no textarea. @default 5 */\n @Input() rows = 5;\n /** @description Habilita o botão de reconhecimento de voz. @default false */\n @Input() speechRecognition = false;\n /** @description Filtro de teclas aceitas, usando padrão ou expressão regular. */\n @Input() keyFilter: RegExp | KeyFilterPattern | null | undefined;\n /** @description Quando `true`, mantém o contexto ao reiniciar o reconhecimento de voz. @default false */\n @Input() keepContext = false;\n /** @description Placeholder exibido durante o reconhecimento de voz. @default '' */\n @Input() speechRecognitionPlaceholder = '';\n /** @description Número máximo de caracteres aceitos. @default null (ilimitado) */\n @Input() maxLength: number | null = null;\n /** @description Texto exibido quando o campo está vazio. */\n @Input() placeholder: string | undefined;\n\n private _inputStyle: Partial<CSSStyleDeclaration> = {\n resize: 'vertical',\n };\n /** @description Estilos inline aplicados ao elemento `<textarea>` interno. @default `{ resize: 'vertical' }` */\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 /** @description Coloca o textarea em modo somente leitura. @default false */\n @Input() readOnly = false;\n\n renderTextArea = false;\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 | number) {\n if (this.disabled) {\n return;\n }\n this.value = value.toString();\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\n","<textarea\n *ngIf=\"keyFilter\"\n #textArea\n class=\"textarea\"\n [pKeyFilter]=\"keyFilter\"\n [id]=\"inputId\"\n [rows]=\"rows\"\n [ngModel]=\"value\"\n (ngModelChange)=\"setValue($event)\"\n [disabled]=\"disabled\"\n [ngStyle]=\"inputStyle\"\n [readOnly]=\"readOnly\"\n [maxlength]=\"maxLength\"\n [placeholder]=\"placeholder ? placeholder : ''\"\n></textarea>\n\n<textarea\n *ngIf=\"!keyFilter\"\n #textArea\n class=\"textarea\"\n [id]=\"inputId\"\n [rows]=\"rows\"\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [ngStyle]=\"inputStyle\"\n [readOnly]=\"readOnly\"\n [maxlength]=\"maxLength\"\n [placeholder]=\"placeholder ? placeholder : ''\"\n (ngModelChange)=\"setValue($event)\"\n></textarea>\n\n<s-speech-recognition\n *ngIf=\"speechRecognition && renderTextArea\"\n [textAreaElement]=\"textAreaElement.nativeElement\"\n [keepContext]=\"keepContext\"\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\n (recognizedText)=\"handleRecognizedText($event)\"\n>\n</s-speech-recognition>\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 { KeyFilterModule } from 'primeng/keyfilter';\nimport { SpeechRecognitionModule } from '@seniorsistemas/angular-components/speech-recognition';\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|