@seniorsistemas/angular-components 19.7.3-bugfix-ptfgap-1271-ddfd6e7b → 19.7.4
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/accordion/README.md +1 -0
- package/accordion/lib/accordion/accordion.component.d.ts +1 -1
- package/accordion/lib/accordion/accordion.module.d.ts +1 -6
- package/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.d.ts +1 -1
- package/alert/README.md +1 -1
- package/alert/lib/alert/alert.component.d.ts +1 -1
- package/alert/lib/alert/alert.module.d.ts +1 -2
- package/autocomplete/README.md +1 -1
- package/autocomplete/lib/autocomplete/autocomplete.component.d.ts +1 -1
- package/badge/lib/badge/badge.component.d.ts +1 -1
- package/badge/lib/badge/badge.module.d.ts +3 -7
- package/bignumber-input/lib/bignumber-input/bignumber-input.directive.d.ts +1 -1
- package/bignumber-input/lib/bignumber-input/bignumber-input.module.d.ts +1 -2
- package/breadcrumb/README.md +9 -5
- package/button/README.md +1 -0
- package/calendar-mask/README.md +4 -2
- package/calendar-mask/lib/calendar-mask/calendar-mask.directive.d.ts +1 -1
- package/calendar-mask/lib/calendar-mask/calendar-mask.module.d.ts +1 -2
- package/card/lib/card/card.component.d.ts +1 -1
- package/card/lib/card/card.module.d.ts +1 -3
- package/chat/lib/chat/chat.component.d.ts +2 -1
- package/chat/lib/chat/chat.module.d.ts +3 -6
- package/chat/lib/chat/components/chat-message/chat-message.component.d.ts +1 -1
- package/checkbox-list/lib/checkbox-list/checkbox-list.component.d.ts +1 -1
- package/checkbox-list/lib/checkbox-list/checkbox-list.module.d.ts +1 -3
- package/chips/lib/chips/chip-item/chip-item.component.d.ts +1 -1
- package/chips/lib/chips/chips/chips.component.d.ts +1 -1
- package/chips/lib/chips/chips.module.d.ts +1 -6
- package/code-editor/README.md +1 -1
- package/code-editor/lib/code-editor/code-editor.component.d.ts +1 -1
- package/code-editor/lib/code-editor/code-editor.module.d.ts +1 -3
- package/code-editor/lib/code-editor/core/facades/core-facade.d.ts +1 -3
- package/code-editor/lib/code-editor/infra/cores/codemirror-6/codemirror-6-core.d.ts +2 -12
- package/collapse-link/lib/collapse-link/collapse-link.component.d.ts +1 -1
- package/collapse-link/lib/collapse-link/collapse-link.module.d.ts +1 -2
- package/common/deprecated-selector/README.md +120 -47
- package/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.d.ts +1 -1
- package/common/lib/svg-factory/components/senior-icon/senior-icon.component.d.ts +1 -1
- package/common/lib/svg-factory/svg-factory.directive.d.ts +1 -1
- package/common/lib/svg-factory/svg-factory.module.d.ts +1 -4
- package/confirm-dialog/README.md +3 -1
- package/content-generator/README.md +2 -2
- package/content-generator/lib/content-generator/content-generator.component.d.ts +2 -1
- package/content-generator/lib/content-generator/content-generator.module.d.ts +1 -10
- package/control-errors/lib/control-errors/control-errors.component.d.ts +2 -2
- package/control-errors/lib/control-errors/control-errors.module.d.ts +1 -3
- package/country-phone-picker/README.md +1 -1
- package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +2 -1
- package/country-phone-picker/lib/country-phone-picker/country-phone-picker.module.d.ts +1 -5
- package/currency/README.md +1 -1
- package/custom-fields/lib/custom-fields/custom-fields.component.d.ts +1 -1
- package/custom-fields/lib/custom-fields/custom-fields.module.d.ts +1 -7
- package/datepicker/README.md +44 -11
- package/datepicker/lib/datepicker/datepicker.component.d.ts +1 -0
- package/dynamic-form/dynamic-form/dynamic-form.module.d.ts +3 -5
- package/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.d.ts +1 -0
- package/editable-overlay/lib/editable-overlay/editable-overlay.directive.d.ts +1 -1
- package/editable-overlay/lib/editable-overlay/editable-overlay.module.d.ts +1 -2
- package/editor/README.md +8 -0
- package/empty-state/lib/empty-state/empty-state.component.d.ts +1 -1
- package/empty-state/lib/empty-state/empty-state.module.d.ts +1 -3
- package/empty-state/lib/empty-state/go-back/go-back.component.d.ts +1 -1
- package/esm2022/accordion/lib/accordion/accordion.component.mjs +3 -3
- package/esm2022/accordion/lib/accordion/accordion.module.mjs +4 -10
- package/esm2022/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.mjs +17 -8
- package/esm2022/alert/lib/alert/alert.component.mjs +4 -4
- package/esm2022/alert/lib/alert/alert.module.mjs +4 -6
- package/esm2022/autocomplete/lib/autocomplete/autocomplete.component.mjs +4 -4
- package/esm2022/badge/lib/badge/badge.component.mjs +7 -6
- package/esm2022/badge/lib/badge/badge.module.mjs +4 -9
- package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.directive.mjs +3 -2
- package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.module.mjs +4 -7
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.component.mjs +6 -7
- package/esm2022/button/lib/button/button.component.mjs +3 -3
- package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.directive.mjs +3 -2
- package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.module.mjs +4 -6
- package/esm2022/card/lib/card/card.component.mjs +4 -4
- package/esm2022/card/lib/card/card.module.mjs +4 -7
- package/esm2022/chat/lib/chat/chat.component.mjs +8 -7
- package/esm2022/chat/lib/chat/chat.module.mjs +7 -11
- package/esm2022/chat/lib/chat/components/chat-message/chat-message.component.mjs +6 -6
- package/esm2022/checkbox/lib/checkbox/checkbox.component.mjs +4 -5
- package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.component.mjs +6 -7
- package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.module.mjs +4 -7
- package/esm2022/chips/lib/chips/chip-item/chip-item.component.mjs +5 -5
- package/esm2022/chips/lib/chips/chips/chips.component.mjs +7 -7
- package/esm2022/chips/lib/chips/chips.module.mjs +4 -10
- package/esm2022/code-editor/lib/code-editor/code-editor.component.mjs +4 -4
- package/esm2022/code-editor/lib/code-editor/code-editor.module.mjs +8 -11
- package/esm2022/code-editor/lib/code-editor/core/facades/core-facade.mjs +1 -7
- package/esm2022/code-editor/lib/code-editor/infra/cores/codemirror-6/codemirror-6-core.mjs +22 -47
- package/esm2022/collapse-link/lib/collapse-link/collapse-link.component.mjs +4 -4
- package/esm2022/collapse-link/lib/collapse-link/collapse-link.module.mjs +4 -6
- package/esm2022/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.mjs +3 -3
- package/esm2022/common/lib/svg-factory/components/senior-icon/senior-icon.component.mjs +3 -3
- package/esm2022/common/lib/svg-factory/svg-factory.directive.mjs +4 -3
- package/esm2022/common/lib/svg-factory/svg-factory.module.mjs +4 -14
- package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +28 -16
- package/esm2022/content-generator/lib/content-generator/content-generator.module.mjs +4 -42
- package/esm2022/control-errors/lib/control-errors/control-errors.component.mjs +3 -3
- package/esm2022/control-errors/lib/control-errors/control-errors.module.mjs +6 -9
- package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +14 -14
- package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.module.mjs +6 -28
- package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +6 -6
- package/esm2022/custom-fields/lib/custom-fields/custom-fields.module.mjs +9 -35
- package/esm2022/datepicker/lib/datepicker/datepicker.component.mjs +6 -3
- package/esm2022/dialog/lib/src/dialog/dialog.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/dynamic-form.module.mjs +4 -6
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +5 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/radio-button/radio-button-field.component.mjs +3 -3
- package/esm2022/editable-overlay/lib/editable-overlay/editable-overlay.directive.mjs +3 -2
- package/esm2022/editable-overlay/lib/editable-overlay/editable-overlay.module.mjs +4 -6
- package/esm2022/editor/lib/editor/editor.component.mjs +4 -4
- package/esm2022/empty-state/lib/empty-state/empty-state.component.mjs +4 -4
- package/esm2022/empty-state/lib/empty-state/empty-state.module.mjs +4 -7
- package/esm2022/empty-state/lib/empty-state/go-back/go-back.component.mjs +4 -4
- package/esm2022/fieldset/lib/fieldset/fieldset.component.mjs +5 -5
- package/esm2022/fieldset/lib/fieldset/fieldset.module.mjs +4 -7
- package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +10 -11
- package/esm2022/file-picker/lib/file-picker/file-picker.module.mjs +4 -11
- package/esm2022/gantt/lib/gantt/components/side-table/side-table.component.mjs +5 -5
- package/esm2022/gantt/lib/gantt/gantt.component.mjs +4 -4
- package/esm2022/gantt/lib/gantt/gantt.module.mjs +4 -12
- package/esm2022/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.mjs +6 -7
- package/esm2022/global-search/lib/global-search/global-search.component.mjs +17 -10
- package/esm2022/global-search/lib/global-search/global-search.module.mjs +15 -33
- package/esm2022/grid-menu/lib/grid-menu/components/grid-menu-item/grid-menu-item.component.mjs +5 -4
- package/esm2022/grid-menu/lib/grid-menu/grid-menu.component.mjs +4 -4
- package/esm2022/grid-menu/lib/grid-menu/grid-menu.module.mjs +4 -7
- package/esm2022/help-popover/lib/help-popover/help-popover/help-popover.component.mjs +5 -5
- package/esm2022/help-popover/lib/help-popover/help-popover.directive.mjs +3 -2
- package/esm2022/help-popover/lib/help-popover/help-popover.module.mjs +5 -14
- package/esm2022/image-cropper/lib/image-cropper/image-cropper.component.mjs +7 -8
- package/esm2022/image-cropper/lib/image-cropper/image-cropper.module.mjs +4 -10
- package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.mjs +4 -3
- package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.module.mjs +4 -6
- package/esm2022/info-sign/lib/info-sign/components/info-sign/info-sign.component.mjs +6 -6
- package/esm2022/info-sign/lib/info-sign/info-sign.directive.mjs +4 -3
- package/esm2022/info-sign/lib/info-sign/info-sign.module.mjs +4 -8
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.mjs +14 -10
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-content-generator/inline-edit-content-generator.component.mjs +7 -6
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.mjs +6 -6
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +34 -20
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.mjs +6 -6
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-text-area/inline-edit-text-area.component.mjs +7 -7
- package/esm2022/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +16 -15
- package/esm2022/inline-edit/lib/inline-edit/inline-edit.component.mjs +3 -3
- package/esm2022/inline-edit/lib/inline-edit/inline-edit.module.mjs +4 -89
- package/esm2022/insights/lib/insights/components/insights-card/components/insights-card-loader/insights-card-loader.component.mjs +6 -6
- package/esm2022/insights/lib/insights/components/insights-card/insights-card.component.mjs +11 -10
- package/esm2022/insights/lib/insights/components/insights-sidebar/insights-sidebar.component.mjs +7 -7
- package/esm2022/insights/lib/insights/insights.component.mjs +4 -5
- package/esm2022/insights/lib/insights/insights.module.mjs +4 -34
- package/esm2022/kanban/lib/kanban/components/kanban-column/kanban-column.component.mjs +18 -22
- package/esm2022/kanban/lib/kanban/components/kanban-item/kanban-item.component.mjs +9 -8
- package/esm2022/kanban/lib/kanban/components/kanban-item-dragging/kanban-item-dragging.component.mjs +6 -6
- package/esm2022/kanban/lib/kanban/kanban.component.mjs +20 -11
- package/esm2022/kanban/lib/kanban/kanban.module.mjs +4 -41
- package/esm2022/label-value/lib/label-value/label-value.component.mjs +8 -8
- package/esm2022/label-value/lib/label-value/label-value.module.mjs +4 -10
- package/esm2022/lib/locale/fallback.mjs +3 -2
- package/esm2022/loading-state/lib/loading-state/components/dots-indicator/dots-indicator.components.mjs +3 -3
- package/esm2022/loading-state/lib/loading-state/components/logo-indicator/logo-indicator.component.mjs +4 -4
- package/esm2022/loading-state/lib/loading-state/components/progress-bar-indicator/progress-bar-indicator.component.mjs +4 -4
- package/esm2022/loading-state/lib/loading-state/loading-state.component.mjs +13 -7
- package/esm2022/loading-state/lib/loading-state/loading-state.directive.mjs +3 -2
- package/esm2022/loading-state/lib/loading-state/loading-state.module.mjs +4 -20
- package/esm2022/locale/lib/locale/locale.module.mjs +6 -8
- package/esm2022/locale/lib/locale/pipes/localized-bignumber-impure.pipe.mjs +6 -5
- package/esm2022/locale/lib/locale/pipes/localized-bignumber.pipe.mjs +16 -15
- package/esm2022/locale/lib/locale/pipes/localized-currency-impure.pipe.mjs +6 -5
- package/esm2022/locale/lib/locale/pipes/localized-currency.pipe.mjs +11 -10
- package/esm2022/locale/lib/locale/pipes/localized-date-impure.pipe.mjs +6 -5
- package/esm2022/locale/lib/locale/pipes/localized-date.pipe.mjs +3 -2
- package/esm2022/locale/lib/locale/pipes/localized-number.pipe.mjs +10 -7
- package/esm2022/locale/lib/locale/pipes/localized-time-impure.pipe.mjs +6 -5
- package/esm2022/locale/lib/locale/pipes/localized-time.pipe.mjs +3 -2
- package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.directive.mjs +7 -4
- package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.module.mjs +4 -6
- package/esm2022/mask/lib/mask/mask-formatter.module.mjs +3 -3
- package/esm2022/mask/lib/mask/mask-formatter.pipe.mjs +3 -2
- package/esm2022/mouse-events/lib/mouse-events/long-press.directive.mjs +3 -2
- package/esm2022/mouse-events/lib/mouse-events/mouse-events.module.mjs +5 -7
- package/esm2022/navigation-button/lib/navigation-button/navigation-button.component.mjs +8 -8
- package/esm2022/navigation-button/lib/navigation-button/navigation-button.module.mjs +4 -8
- package/esm2022/number-input/lib/number-input/number-input.directive.mjs +3 -2
- package/esm2022/number-input/lib/number-input/number-input.module.mjs +4 -6
- package/esm2022/numeric/lib/numeric.module.mjs +4 -6
- package/esm2022/numeric/lib/numeric.pipe.mjs +6 -3
- package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.directive.mjs +8 -3
- package/esm2022/object-card/lib/object-card/elements/field/object-card-field.component.mjs +7 -8
- package/esm2022/object-card/lib/object-card/elements/main/object-card-main.component.mjs +6 -8
- package/esm2022/object-card/lib/object-card/object-card.component.mjs +6 -6
- package/esm2022/object-card/lib/object-card/object-card.module.mjs +4 -10
- package/esm2022/paginator/lib/paginator/paginator.component.mjs +3 -3
- package/esm2022/panel/lib/panel/panel.component.mjs +15 -7
- package/esm2022/panel/lib/panel/panel.module.mjs +7 -10
- package/esm2022/password-strength/lib/password-strength/password-strength.component.mjs +4 -4
- package/esm2022/password-strength/lib/password-strength/password-strength.directive.mjs +4 -3
- package/esm2022/password-strength/lib/password-strength/password-strength.module.mjs +4 -7
- package/esm2022/pin-code-field/lib/pin-code-field/pin-code-field.component.mjs +5 -6
- package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +9 -10
- package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.mjs +5 -11
- package/esm2022/progressbar/lib/progressbar/components/progressbar-determinate/progressbar-determinate.component.mjs +8 -6
- package/esm2022/progressbar/lib/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component.mjs +4 -4
- package/esm2022/progressbar/lib/progressbar/progressbar.component.mjs +5 -5
- package/esm2022/progressbar/lib/progressbar/progressbar.module.mjs +4 -9
- package/esm2022/rating-scale/lib/rating-scale/rating-scale.component.mjs +5 -5
- package/esm2022/rating-scale/lib/rating-scale/rating-scale.module.mjs +6 -14
- package/esm2022/select/lib/select/components/select-option/select-option.component.mjs +3 -4
- package/esm2022/select/lib/select/select.component.mjs +3 -5
- package/esm2022/select-button/lib/select-button/components/select-button-item/select-button-item.component.mjs +5 -5
- package/esm2022/select-button/lib/select-button/select-button.component.mjs +6 -6
- package/esm2022/select-button/lib/select-button/select-button.module.mjs +6 -13
- package/esm2022/shared/lib/shared/border-button/border-button.component.mjs +5 -5
- package/esm2022/shared/lib/shared/border-button/border-button.module.mjs +7 -10
- package/esm2022/sidebar/lib/sidebar/sidebar.component.mjs +5 -5
- package/esm2022/sidebar/lib/sidebar/sidebar.module.mjs +4 -7
- package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.mjs +6 -6
- package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.module.mjs +7 -9
- package/esm2022/slider/lib/slider/slider.component.mjs +6 -6
- package/esm2022/slider/lib/slider/slider.module.mjs +6 -9
- package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +4 -5
- package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition.module.mjs +5 -13
- package/esm2022/split-button/lib/split-button/split-button.component.mjs +5 -5
- package/esm2022/split-button/lib/split-button/split-button.module.mjs +4 -6
- package/esm2022/star-rating/star-rating/star-rating.component.mjs +3 -3
- package/esm2022/stats-card/lib/stats-card/stats-card.component.mjs +6 -6
- package/esm2022/stats-card/lib/stats-card/stats-card.module.mjs +4 -8
- package/esm2022/stepper/lib/stepper/stepper.component.mjs +6 -6
- package/esm2022/stepper/lib/stepper/stepper.module.mjs +4 -7
- package/esm2022/structure/lib/structure/footer.component.mjs +3 -2
- package/esm2022/structure/lib/structure/header.component.mjs +5 -4
- package/esm2022/structure/lib/structure/structure.module.mjs +5 -7
- package/esm2022/switch/lib/switch/switch.component.mjs +4 -5
- package/esm2022/switch/lib/switch/switch.module.mjs +4 -6
- package/esm2022/table/lib/table/row-toggler/row-toggler.directive.mjs +6 -3
- package/esm2022/table/lib/table/table-column/table-columns.component.mjs +17 -9
- package/esm2022/table/lib/table/table-paging/table-paging.component.mjs +4 -4
- package/esm2022/table/lib/table/table.module.mjs +4 -34
- package/esm2022/table-header/lib/table-header/table-header-checkbox.component.mjs +19 -16
- package/esm2022/table-header/lib/table-header/table-header-checkox.module.mjs +4 -8
- package/esm2022/template/lib/template/template.module.mjs +4 -5
- package/esm2022/text-area/lib/text-area/text-area.component.mjs +9 -9
- package/esm2022/text-area/lib/text-area.module.mjs +5 -24
- package/esm2022/thumbnail/lib/thumbnail/thumbnail.component.mjs +5 -5
- package/esm2022/thumbnail/lib/thumbnail/thumbnail.module.mjs +7 -9
- package/esm2022/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.mjs +6 -6
- package/esm2022/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.mjs +9 -9
- package/esm2022/thumbnails/lib/thumbnails/components/thumbnail-item/thumbnail-item.component.mjs +25 -14
- package/esm2022/thumbnails/lib/thumbnails/thumbnails.component.mjs +4 -4
- package/esm2022/thumbnails/lib/thumbnails/thumbnails.module.mjs +6 -14
- package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.mjs +7 -7
- package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.mjs +3 -3
- package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.mjs +4 -4
- package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.mjs +6 -6
- package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.directive.mjs +4 -3
- package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.module.mjs +4 -20
- package/esm2022/tile/lib/tile/tile.component.mjs +6 -6
- package/esm2022/tile/lib/tile/tile.module.mjs +4 -7
- package/esm2022/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.component.mjs +6 -6
- package/esm2022/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.component.mjs +5 -5
- package/esm2022/timeline/lib/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.mjs +4 -4
- package/esm2022/timeline/lib/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.mjs +5 -5
- package/esm2022/timeline/lib/timeline/components/vertical-timeline/components/range-line/range-line.component.mjs +3 -3
- package/esm2022/timeline/lib/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.mjs +5 -5
- package/esm2022/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.component.mjs +7 -7
- package/esm2022/timeline/lib/timeline/timeline.component.mjs +5 -6
- package/esm2022/timeline/lib/timeline/timeline.module.mjs +4 -20
- package/esm2022/toast/lib/toast/toast.component.mjs +4 -4
- package/esm2022/toast/lib/toast/toast.module.mjs +6 -7
- package/esm2022/token-list/lib/token-list/token-list.component.mjs +4 -4
- package/esm2022/token-list/lib/token-list/token-list.module.mjs +4 -6
- package/esm2022/tooltip/lib/tooltip/tooltip.module.mjs +3 -4
- package/esm2022/topbar/lib/topbar/topbar.component.mjs +3 -3
- package/esm2022/topbar/lib/topbar/topbar.module.mjs +7 -10
- package/esm2022/tree/lib/tree/components/tree-node-item/tree-node-item.component.mjs +6 -5
- package/esm2022/tree/lib/tree/tree.component.mjs +5 -5
- package/esm2022/tree/lib/tree/tree.module.mjs +4 -10
- package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.component.mjs +5 -5
- package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.module.mjs +4 -6
- package/fesm2022/seniorsistemas-angular-components-accordion.mjs +20 -17
- package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-alert.mjs +6 -8
- package/fesm2022/seniorsistemas-angular-components-alert.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs +3 -3
- package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-badge.mjs +8 -12
- package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs +5 -7
- package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +5 -6
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-button.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +5 -6
- package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-card.mjs +7 -9
- package/fesm2022/seniorsistemas-angular-components-card.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-chat.mjs +15 -16
- package/fesm2022/seniorsistemas-angular-components-chat.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +7 -10
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +3 -4
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-chips.mjs +14 -18
- package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +26 -59
- package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs +6 -8
- package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-common.mjs +9 -16
- package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +28 -52
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +5 -8
- package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +17 -37
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +12 -35
- package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-datepicker.mjs +5 -2
- package/fesm2022/seniorsistemas-angular-components-datepicker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dialog.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-dialog.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +12 -11
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs +5 -6
- package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-editor.mjs +3 -3
- package/fesm2022/seniorsistemas-angular-components-editor.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +8 -11
- package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +6 -9
- package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +11 -18
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-gantt.mjs +9 -16
- package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs +31 -47
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs +8 -10
- package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +10 -17
- package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +8 -14
- package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +5 -6
- package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +9 -11
- package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +64 -121
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-insights.mjs +22 -47
- package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-kanban.mjs +86 -113
- package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-label-value.mjs +10 -16
- package/fesm2022/seniorsistemas-angular-components-label-value.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +40 -46
- package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-locale.mjs +40 -31
- package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +9 -8
- package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-mask.mjs +4 -3
- package/fesm2022/seniorsistemas-angular-components-mask.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs +55 -56
- package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +9 -13
- package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-number-input.mjs +6 -6
- package/fesm2022/seniorsistemas-angular-components-number-input.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs +7 -2
- package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-numeric.mjs +8 -7
- package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-object-card.mjs +14 -21
- package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-panel.mjs +17 -11
- package/fesm2022/seniorsistemas-angular-components-panel.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +8 -9
- package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs +4 -5
- package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +11 -17
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +15 -15
- package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +8 -15
- package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-select-button.mjs +9 -15
- package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-select.mjs +4 -6
- package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-shared.mjs +8 -11
- package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-sidebar.mjs +7 -10
- package/fesm2022/seniorsistemas-angular-components-sidebar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs +7 -9
- package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-slider.mjs +8 -11
- package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +7 -15
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs +6 -8
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-star-rating.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-star-rating.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-stats-card.mjs +8 -12
- package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-stepper.mjs +8 -11
- package/fesm2022/seniorsistemas-angular-components-stepper.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-structure.mjs +18 -18
- package/fesm2022/seniorsistemas-angular-components-structure.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-switch.mjs +6 -9
- package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs +20 -21
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table.mjs +27 -45
- package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-template.mjs +3 -4
- package/fesm2022/seniorsistemas-angular-components-template.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs +12 -30
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +6 -8
- package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +45 -37
- package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +14 -25
- package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tile.mjs +8 -12
- package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-timeline.mjs +58 -124
- package/fesm2022/seniorsistemas-angular-components-timeline.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-toast.mjs +4 -5
- package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-token-list.mjs +6 -8
- package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-topbar.mjs +5 -8
- package/fesm2022/seniorsistemas-angular-components-topbar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tree.mjs +10 -13
- package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +6 -8
- package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components.mjs +2 -1
- package/fesm2022/seniorsistemas-angular-components.mjs.map +1 -1
- package/fieldset/lib/fieldset/fieldset.component.d.ts +1 -1
- package/fieldset/lib/fieldset/fieldset.module.d.ts +1 -3
- package/file-picker/lib/file-picker/file-picker.component.d.ts +1 -1
- package/file-picker/lib/file-picker/file-picker.module.d.ts +1 -7
- package/gantt/lib/gantt/components/side-table/side-table.component.d.ts +1 -1
- package/gantt/lib/gantt/gantt.component.d.ts +1 -1
- package/gantt/lib/gantt/gantt.module.d.ts +1 -4
- package/global-search/README.md +12 -1
- package/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.d.ts +1 -1
- package/global-search/lib/global-search/global-search.component.d.ts +1 -1
- package/global-search/lib/global-search/global-search.module.d.ts +8 -12
- package/grid-menu/README.md +27 -2
- package/grid-menu/lib/grid-menu/components/grid-menu-item/grid-menu-item.component.d.ts +1 -1
- package/grid-menu/lib/grid-menu/grid-menu.component.d.ts +1 -1
- package/grid-menu/lib/grid-menu/grid-menu.module.d.ts +1 -3
- package/help-popover/README.md +2 -2
- package/help-popover/lib/help-popover/help-popover/help-popover.component.d.ts +1 -1
- package/help-popover/lib/help-popover/help-popover.directive.d.ts +1 -1
- package/help-popover/lib/help-popover/help-popover.module.d.ts +2 -5
- package/ia-insight/README.md +1 -1
- package/image-cropper/README.md +2 -2
- package/image-cropper/lib/image-cropper/image-cropper.component.d.ts +1 -1
- package/image-cropper/lib/image-cropper/image-cropper.module.d.ts +3 -8
- package/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.d.ts +1 -1
- package/infinite-scroll/lib/infinite-scroll/infinite-scroll.module.d.ts +1 -2
- package/info-sign/README.md +1 -1
- package/info-sign/lib/info-sign/components/info-sign/info-sign.component.d.ts +2 -2
- package/info-sign/lib/info-sign/info-sign.directive.d.ts +1 -1
- package/info-sign/lib/info-sign/info-sign.module.d.ts +1 -4
- package/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.d.ts +7 -6
- package/inline-edit/lib/inline-edit/components/fields/inline-edit-content-generator/inline-edit-content-generator.component.d.ts +4 -4
- package/inline-edit/lib/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.d.ts +4 -4
- package/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.d.ts +5 -4
- package/inline-edit/lib/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.d.ts +4 -4
- package/inline-edit/lib/inline-edit/components/fields/inline-edit-text-area/inline-edit-text-area.component.d.ts +4 -4
- package/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +5 -4
- package/inline-edit/lib/inline-edit/inline-edit.component.d.ts +1 -1
- package/inline-edit/lib/inline-edit/inline-edit.module.d.ts +1 -23
- package/insights/lib/insights/components/insights-card/components/insights-card-loader/insights-card-loader.component.d.ts +1 -1
- package/insights/lib/insights/components/insights-card/insights-card.component.d.ts +2 -1
- package/insights/lib/insights/components/insights-sidebar/insights-sidebar.component.d.ts +1 -1
- package/insights/lib/insights/insights.component.d.ts +1 -1
- package/insights/lib/insights/insights.module.d.ts +3 -12
- package/kanban/lib/kanban/components/kanban-column/kanban-column.component.d.ts +5 -5
- package/kanban/lib/kanban/components/kanban-item/kanban-item.component.d.ts +4 -4
- package/kanban/lib/kanban/components/kanban-item-dragging/kanban-item-dragging.component.d.ts +1 -1
- package/kanban/lib/kanban/kanban.component.d.ts +1 -1
- package/kanban/lib/kanban/kanban.module.d.ts +3 -13
- package/label-value/lib/label-value/label-value.component.d.ts +1 -1
- package/label-value/lib/label-value/label-value.module.d.ts +1 -6
- package/loading-state/lib/loading-state/components/dots-indicator/dots-indicator.components.d.ts +1 -1
- package/loading-state/lib/loading-state/components/logo-indicator/logo-indicator.component.d.ts +1 -1
- package/loading-state/lib/loading-state/components/progress-bar-indicator/progress-bar-indicator.component.d.ts +1 -1
- package/loading-state/lib/loading-state/loading-state.component.d.ts +1 -1
- package/loading-state/lib/loading-state/loading-state.directive.d.ts +1 -1
- package/loading-state/lib/loading-state/loading-state.module.d.ts +1 -6
- package/locale/lib/locale/locale.module.d.ts +1 -2
- package/locale/lib/locale/pipes/localized-bignumber-impure.pipe.d.ts +3 -3
- package/locale/lib/locale/pipes/localized-bignumber.pipe.d.ts +3 -3
- package/locale/lib/locale/pipes/localized-currency-impure.pipe.d.ts +3 -3
- package/locale/lib/locale/pipes/localized-currency.pipe.d.ts +3 -3
- package/locale/lib/locale/pipes/localized-date-impure.pipe.d.ts +3 -3
- package/locale/lib/locale/pipes/localized-date.pipe.d.ts +1 -1
- package/locale/lib/locale/pipes/localized-number.pipe.d.ts +2 -2
- package/locale/lib/locale/pipes/localized-time-impure.pipe.d.ts +3 -3
- package/locale/lib/locale/pipes/localized-time.pipe.d.ts +1 -1
- package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +2 -1
- package/localized-number-input/lib/localized-number-input/localized-number-input.module.d.ts +1 -2
- package/mask/lib/mask/mask-formatter.module.d.ts +1 -1
- package/mask/lib/mask/mask-formatter.pipe.d.ts +1 -1
- package/mouse-events/lib/mouse-events/long-press.directive.d.ts +1 -1
- package/mouse-events/lib/mouse-events/mouse-events.module.d.ts +3 -4
- package/navigation-button/lib/navigation-button/navigation-button.component.d.ts +1 -1
- package/navigation-button/lib/navigation-button/navigation-button.module.d.ts +1 -4
- package/number-input/lib/number-input/number-input.directive.d.ts +1 -1
- package/number-input/lib/number-input/number-input.module.d.ts +1 -2
- package/numeric/lib/numeric.module.d.ts +1 -2
- package/numeric/lib/numeric.pipe.d.ts +1 -1
- package/numeric-mask/lib/numeric-mask/numeric-mask.directive.d.ts +1 -0
- package/object-card/README.md +13 -1
- package/object-card/lib/object-card/elements/field/object-card-field.component.d.ts +1 -1
- package/object-card/lib/object-card/elements/main/object-card-main.component.d.ts +1 -1
- package/object-card/lib/object-card/object-card.component.d.ts +1 -1
- package/object-card/lib/object-card/object-card.module.d.ts +5 -10
- package/package.json +13 -13
- package/panel/lib/panel/panel.component.d.ts +6 -1
- package/panel/lib/panel/panel.module.d.ts +2 -4
- package/password-strength/lib/password-strength/password-strength.component.d.ts +1 -1
- package/password-strength/lib/password-strength/password-strength.directive.d.ts +1 -1
- package/password-strength/lib/password-strength/password-strength.module.d.ts +2 -4
- package/picklist/README.md +74 -2
- package/product-header/README.md +1 -1
- package/profile-picture-picker/README.md +1 -1
- package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +1 -1
- package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.d.ts +1 -7
- package/progressbar/README.md +0 -1
- package/progressbar/lib/progressbar/components/progressbar-determinate/progressbar-determinate.component.d.ts +2 -1
- package/progressbar/lib/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component.d.ts +1 -1
- package/progressbar/lib/progressbar/progressbar.component.d.ts +1 -1
- package/progressbar/lib/progressbar/progressbar.module.d.ts +1 -5
- package/radio-button/README.md +0 -1
- package/rating-scale/README.md +1 -1
- package/rating-scale/lib/rating-scale/rating-scale.component.d.ts +2 -2
- package/rating-scale/lib/rating-scale/rating-scale.module.d.ts +1 -3
- package/select/lib/select/select.component.d.ts +1 -1
- package/select-button/README.md +1 -1
- package/select-button/lib/select-button/components/select-button-item/select-button-item.component.d.ts +1 -1
- package/select-button/lib/select-button/select-button.component.d.ts +1 -1
- package/select-button/lib/select-button/select-button.module.d.ts +1 -3
- package/shared/lib/shared/border-button/border-button.component.d.ts +1 -1
- package/shared/lib/shared/border-button/border-button.module.d.ts +1 -3
- package/sidebar/lib/sidebar/sidebar.component.d.ts +1 -1
- package/sidebar/lib/sidebar/sidebar.module.d.ts +2 -4
- package/slide-in-bar/README.md +1 -1
- package/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.d.ts +1 -1
- package/slide-in-bar/lib/slide-in-bar/slide-in-bar.module.d.ts +1 -2
- package/slider/README.md +1 -1
- package/slider/lib/slider/slider.component.d.ts +1 -1
- package/slider/lib/slider/slider.module.d.ts +1 -3
- package/speech-recognition/README.md +1 -1
- package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +1 -1
- package/speech-recognition/lib/speech-recognition/speech-recognition.module.d.ts +1 -3
- package/split-button/README.md +1 -1
- package/split-button/lib/split-button/split-button.component.d.ts +1 -1
- package/split-button/lib/split-button/split-button.module.d.ts +1 -2
- package/spotlight/README.md +1 -1
- package/star-rating/README.md +1 -1
- package/stats-card/README.md +1 -1
- package/stats-card/lib/stats-card/stats-card.component.d.ts +1 -1
- package/stats-card/lib/stats-card/stats-card.module.d.ts +1 -4
- package/stepper/lib/stepper/stepper.component.d.ts +1 -1
- package/stepper/lib/stepper/stepper.module.d.ts +1 -3
- package/structure/lib/structure/footer.component.d.ts +1 -1
- package/structure/lib/structure/header.component.d.ts +1 -1
- package/structure/lib/structure/structure.module.d.ts +1 -2
- package/switch/lib/switch/switch.component.d.ts +1 -1
- package/switch/lib/switch/switch.module.d.ts +1 -2
- package/table/README.md +9 -8
- package/table/lib/table/row-toggler/row-toggler.directive.d.ts +1 -1
- package/table/lib/table/table-column/table-columns.component.d.ts +1 -1
- package/table/lib/table/table-paging/table-paging.component.d.ts +1 -1
- package/table/lib/table/table.module.d.ts +5 -12
- package/table-header/lib/table-header/table-header-checkbox.component.d.ts +1 -1
- package/table-header/lib/table-header/table-header-checkox.module.d.ts +1 -4
- package/template/README.md +177 -0
- package/template/lib/template/template.module.d.ts +2 -3
- package/text-area/lib/text-area/text-area.component.d.ts +1 -1
- package/text-area/lib/text-area.module.d.ts +1 -5
- package/text-area-ia/README.md +1 -1
- package/thumbnail/lib/thumbnail/thumbnail.component.d.ts +1 -1
- package/thumbnail/lib/thumbnail/thumbnail.module.d.ts +1 -2
- package/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.d.ts +1 -1
- package/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.d.ts +2 -2
- package/thumbnails/lib/thumbnails/components/thumbnail-item/thumbnail-item.component.d.ts +5 -4
- package/thumbnails/lib/thumbnails/thumbnails.component.d.ts +1 -1
- package/thumbnails/lib/thumbnails/thumbnails.module.d.ts +1 -8
- package/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +1 -1
- package/tiered-menu/lib/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.d.ts +1 -1
- package/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.d.ts +1 -1
- package/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts +1 -1
- package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +1 -1
- package/tiered-menu/lib/tiered-menu/tiered-menu.module.d.ts +1 -6
- package/tile/lib/tile/tile.component.d.ts +1 -1
- package/tile/lib/tile/tile.module.d.ts +3 -5
- package/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.component.d.ts +1 -1
- package/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.component.d.ts +1 -1
- package/timeline/lib/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.d.ts +1 -1
- package/timeline/lib/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.d.ts +1 -1
- package/timeline/lib/timeline/components/vertical-timeline/components/range-line/range-line.component.d.ts +1 -1
- package/timeline/lib/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.d.ts +1 -1
- package/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.component.d.ts +1 -1
- package/timeline/lib/timeline/timeline.component.d.ts +1 -1
- package/timeline/lib/timeline/timeline.module.d.ts +1 -5
- package/toast/lib/toast/toast.component.d.ts +1 -1
- package/toast/lib/toast/toast.module.d.ts +3 -3
- package/token-list/lib/token-list/token-list.component.d.ts +1 -1
- package/token-list/lib/token-list/token-list.module.d.ts +1 -2
- package/tooltip/lib/tooltip/tooltip.module.d.ts +1 -2
- package/topbar/lib/topbar/topbar.component.d.ts +1 -1
- package/topbar/lib/topbar/topbar.module.d.ts +3 -5
- package/tree/lib/tree/components/tree-node-item/tree-node-item.component.d.ts +1 -1
- package/tree/lib/tree/tree.component.d.ts +1 -1
- package/tree/lib/tree/tree.module.d.ts +1 -6
- package/workspace-switch/lib/workspace-switch/workspace-switch.component.d.ts +1 -1
- package/workspace-switch/lib/workspace-switch/workspace-switch.module.d.ts +1 -2
- package/esm2022/insights/lib/insights/components/insights-card/components/index.mjs +0 -2
- package/esm2022/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.module.mjs +0 -20
- package/esm2022/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.module.mjs +0 -19
- package/esm2022/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.module.mjs +0 -33
- package/insights/lib/insights/components/insights-card/components/index.d.ts +0 -1
- package/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.module.d.ts +0 -10
- package/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.module.d.ts +0 -9
- package/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.module.d.ts +0 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-numeric-mask.mjs","sources":["../../projects/angular-components/numeric-mask/src/lib/numeric-mask/numeric-mask.directive.ts","../../projects/angular-components/numeric-mask/src/lib/numeric-mask/numeric-mask.module.ts","../../projects/angular-components/numeric-mask/src/seniorsistemas-angular-components-numeric-mask.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n OnChanges,\n OnInit,\n Renderer2,\n SimpleChanges,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport BigNumber from 'bignumber.js';\n\n/**\n * @description Diretiva de máscara numérica com suporte a internacionalização.\n *\n * Formata valores numéricos de acordo com o locale especificado, aplicando\n * separadores de milhar e decimal adequados, com suporte a valores negativos,\n * controle de casas decimais mín/máx e notação científica.\n *\n * @example\n * ```html\n * <input\n * type=\"text\"\n * sNumericMask\n * [locale]=\"'pt-BR'\"\n * [minDecimalPlaces]=\"2\"\n * [maxDecimalPlaces]=\"2\"\n * [allowNegative]=\"true\"\n * [(ngModel)]=\"value\"\n * />\n * ```\n * @category Numeric\n */\n@Directive({\n selector: '[sNumericMask]',\n standalone: true,\n host: {\n '(input)': 'onInput($event)',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()',\n '(paste)': 'onPaste($event)',\n '(keydown)': 'onKeyDown($event)',\n '(keypress)': 'onKeyPress($event)',\n '[style.text-align]': '\"right\"',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumericMaskDirective),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NumericMaskDirective),\n multi: true,\n },\n ],\n})\nexport class NumericMaskDirective implements OnInit, OnChanges, ControlValueAccessor, Validator {\n /**\n * Locale for formatting (e.g. 'pt-BR', 'en-US', 'de-DE')\n * If not provided, uses the locale from LocaleService\n */\n public locale = input<string | undefined>(undefined);\n\n /**\n * Minimum number of decimal places to display\n * @default 0\n */\n public minDecimalPlaces = input(0);\n\n /**\n * Maximum number of decimal places allowed\n * @default 10\n */\n public maxDecimalPlaces = input(10);\n\n /**\n * Allows negative values\n * @default false\n */\n public allowNegative = input(false);\n\n /**\n * Enables scientific notation support\n * @default true\n */\n public allowScientificNotation = input(true);\n\n /**\n * Minimum value allowed\n */\n public min = input<number | undefined>(undefined);\n\n /**\n * Maximum value allowed\n */\n public max = input<number | undefined>(undefined);\n\n private readonly elementRef = inject(ElementRef<HTMLInputElement>);\n private readonly renderer = inject(Renderer2);\n private readonly localeService = inject(LocaleService, { optional: true });\n\n private onChange: (value: string | null) => void = () => {};\n private onTouched: () => void = () => {};\n public decimalSeparator = model(',');\n public thousandSeparator = model('.');\n protected currentLocale = 'pt-BR';\n private lastModelValue: string | null = null;\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['locale'] && !changes['locale'].firstChange && this.locale()) {\n this.currentLocale = this.locale()!;\n this.updateSeparators();\n this.setInputMode();\n }\n }\n\n public ngOnInit(): void {\n if (this.minDecimalPlaces() > this.maxDecimalPlaces()) {\n throw new Error(\n `NumericMaskDirective: minDecimalPlaces (${this.minDecimalPlaces()}) cannot be greater than maxDecimalPlaces (${this.maxDecimalPlaces()})`,\n );\n }\n\n if (this.locale()) {\n this.currentLocale = this.locale()!;\n this.updateSeparators();\n this.setInputMode();\n } else if (this.localeService) {\n this.localeService.get().subscribe(() => {\n this.currentLocale = this.localeService!.getLocaleOptions()?.locale || 'pt-BR';\n this.updateSeparators();\n this.setInputMode();\n });\n } else {\n this.updateSeparators();\n this.setInputMode();\n }\n }\n\n /**\n * Listener for input events (typing)\n */\n public onInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n let value = input.value;\n value = this.normalizeSeparators(value);\n this.processInputValue(value);\n }\n\n /**\n * Listener for focus events (gaining focus)\n */\n public onFocus(): void {\n const input = this.elementRef.nativeElement;\n const currentValue = input.value;\n\n if (!currentValue || currentValue.trim() === '') {\n return;\n }\n\n if (this.lastModelValue) {\n const displayValue = this.lastModelValue.replace('.', this.decimalSeparator());\n this.renderer.setProperty(input, 'value', displayValue);\n input.select();\n return;\n }\n\n const modelValue = this.toModelValue(currentValue);\n\n if (!modelValue) {\n return;\n }\n\n const displayValue = modelValue.replace('.', this.decimalSeparator());\n this.renderer.setProperty(input, 'value', displayValue);\n input.select();\n }\n\n /**\n * Listener for blur events (focus loss)\n */\n public onBlur(): void {\n this.onTouched();\n\n const currentValue = this.elementRef.nativeElement.value;\n\n if (!currentValue || currentValue.trim() === '') {\n this.onChange(null);\n this.lastModelValue = null;\n return;\n }\n\n const modelValue = this.toModelValue(currentValue);\n\n if (!modelValue) {\n this.onChange(null);\n this.lastModelValue = null;\n return;\n }\n\n this.lastModelValue = modelValue;\n const displayValue = this.fromModelValue(modelValue);\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', displayValue);\n this.onChange(modelValue);\n }\n\n /**\n * Listener for paste events (clipboard)\n */\n public onPaste(event: ClipboardEvent): void {\n event.preventDefault();\n\n const pastedText = event.clipboardData?.getData('text') || '';\n let value = this.parseClipboardValue(pastedText);\n\n this.processInputValue(value);\n }\n\n /**\n * Listener for special keys (+ and -)\n */\n public onKeyDown(event: KeyboardEvent): void {\n const key = event.key;\n\n if (key === '-' || key === '+') {\n const input = this.elementRef.nativeElement;\n const value = input.value;\n const cursorPosition = input.selectionStart || 0;\n\n if (key === '-' && this.allowScientificNotation()) {\n const charBeforeCursor = value[cursorPosition - 1];\n if (charBeforeCursor === 'e' || charBeforeCursor === 'E') {\n return;\n }\n }\n\n event.preventDefault();\n if (!this.allowNegative()) {\n return;\n }\n\n this.toggleSign(value, key === '-');\n }\n }\n\n /**\n * Listener for keypress to block invalid characters\n */\n public onKeyPress(event: KeyboardEvent): void {\n const key = event.key;\n const input = this.elementRef.nativeElement;\n const cursorPosition = input.selectionStart || 0;\n const value = input.value;\n\n if ((key === '-' || key === '+') && this.allowScientificNotation()) {\n const charBeforeCursor = value[cursorPosition - 1];\n if (charBeforeCursor === 'e' || charBeforeCursor === 'E') {\n return;\n }\n }\n\n if (key === '+' || key === '-') {\n event.preventDefault();\n return;\n }\n\n const isDigit = /^[0-9]$/.test(key);\n const isDecimalSeparator = key === ',' || key === '.';\n const isScientificNotation = (key === 'e' || key === 'E') && this.allowScientificNotation();\n const isControlKey = event.ctrlKey || event.metaKey || event.altKey;\n const isSpecialKey = [\n 'Backspace',\n 'Tab',\n 'Enter',\n 'Escape',\n 'ArrowLeft',\n 'ArrowRight',\n 'Delete',\n 'Home',\n 'End',\n ].includes(key);\n\n if (isScientificNotation) {\n if (value.includes('e') || value.includes('E')) {\n event.preventDefault();\n return;\n }\n\n const charBeforeCursor = value[cursorPosition - 1];\n if (!charBeforeCursor || !/^[0-9]$/.test(charBeforeCursor)) {\n event.preventDefault();\n return;\n }\n }\n\n if (!isDigit && !isDecimalSeparator && !isScientificNotation && !isControlKey && !isSpecialKey) {\n event.preventDefault();\n }\n }\n\n /**\n * Updates separators according to the locale\n */\n protected updateSeparators(): void {\n const formatted = new Intl.NumberFormat(this.currentLocale).format(1234.5);\n\n this.thousandSeparator.set(formatted[1]);\n this.decimalSeparator.set(formatted[5]);\n }\n\n /**\n * Processes input value and updates the input and model\n * @private\n */\n private processInputValue(value: string): void {\n if (!this.decimalSeparator() || !this.thousandSeparator()) {\n this.updateSeparators();\n }\n\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', value);\n\n const modelValue = this.toModelValue(value);\n\n // During typing, clear the stored model value so onFocus will recalculate\n this.lastModelValue = null;\n\n this.onChange(modelValue);\n }\n\n /**\n * Sets inputmode for numeric keyboard on mobile devices\n * @private\n */\n private setInputMode(): void {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'inputmode', 'decimal');\n this.renderer.setAttribute(this.elementRef.nativeElement, 'autocomplete', 'off');\n }\n\n /**\n * Removes separators from a formatted value\n * @private\n */\n private removeSeparators(value: string): string {\n if (!this.thousandSeparator()) {\n return value;\n }\n\n const thousandRegex = new RegExp(this.escapeRegex(this.thousandSeparator()), 'g');\n\n return value.replace(thousandRegex, '');\n }\n\n /**\n * Strips unnecessary trailing zeros from decimal part\n * @private\n */\n private stripTrailingZeros(value: string): string {\n const parts = value.split(this.decimalSeparator());\n if (parts.length === 2) {\n const decimalPart = parts[1].replace(/0+$/, '');\n return decimalPart.length > 0 ? parts[0] + this.decimalSeparator() + decimalPart : parts[0];\n }\n return value;\n }\n\n /**\n * Normalizes separators during typing\n * @private\n */\n private normalizeSeparators(value: string): string {\n value = this.removeSeparators(value);\n\n if (this.decimalSeparator() === ',') {\n value = value.replace(/\\./g, ',');\n } else if (this.decimalSeparator() === '.') {\n value = value.replace(/,/g, '.');\n }\n\n const parts = value.split(this.decimalSeparator());\n if (parts.length > 2) {\n value = parts[0] + this.decimalSeparator() + parts.slice(1).join('');\n }\n\n return value;\n }\n\n /**\n * Escapes special characters for use in regex\n * @private\n */\n private escapeRegex(str: string): string {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n }\n\n /**\n * Truncates a number to the specified decimal places (never rounds)\n * @private\n */\n private truncateToDecimalPlaces(bigNumber: BigNumber, decimalPlaces: number): BigNumber {\n if (decimalPlaces < 0) {\n return bigNumber;\n }\n const multiplier = new BigNumber(10).pow(decimalPlaces);\n return bigNumber.multipliedBy(multiplier).integerValue(BigNumber.ROUND_DOWN).dividedBy(multiplier);\n }\n\n /**\n * Parses a string value to its numeric representation, handling separators and sign\n * Returns BigNumber to preserve full precision and optional number conversion\n * @private\n */\n private parseStringToValue(value: string): { bigNumber: BigNumber; numeric: number; isNegative: boolean } {\n const isNegative = value.startsWith('-');\n let numericStr = value\n .replace(/^-/, '')\n .replace(new RegExp(`\\\\${this.thousandSeparator()}`, 'g'), '')\n .replace(new RegExp(`\\\\${this.decimalSeparator()}`, 'g'), '.');\n\n if (numericStr === '.' || numericStr === '') {\n numericStr = '0';\n } else if (numericStr.startsWith('.')) {\n numericStr = '0' + numericStr;\n }\n\n let bigNumber = new BigNumber(numericStr);\n if (bigNumber.isNaN()) {\n bigNumber = new BigNumber(0);\n }\n\n if (isNegative && this.allowNegative()) {\n bigNumber = bigNumber.negated();\n }\n\n return { bigNumber, numeric: bigNumber.toNumber(), isNegative };\n }\n\n /**\n * Formats a numeric value according to the locale\n * Truncates (never rounds) to maxDecimalPlaces and pads with zeros to minDecimalPlaces\n * @private\n */\n private formatNumeric(numeric: number | BigNumber): string {\n let bigNumeric = numeric instanceof BigNumber ? numeric : new BigNumber(numeric);\n\n const truncatedValue = this.truncateToDecimalPlaces(bigNumeric, this.maxDecimalPlaces());\n\n const valueStr = truncatedValue.toFixed(Math.max(this.minDecimalPlaces(), this.maxDecimalPlaces()));\n\n let formattedValue = valueStr.replace('.', this.decimalSeparator());\n\n const parts = formattedValue.split(this.decimalSeparator());\n const integerPart = parts[0];\n let decimalPart = parts[1] || '';\n\n const formattedInteger = new Intl.NumberFormat(this.currentLocale)\n .format(parseInt(integerPart, 10) || 0)\n .split(this.decimalSeparator())[0];\n\n const effectiveDecimalPlaces = decimalPart.replace(/0+$/, '').length;\n\n const decimalPlacesToShow = Math.max(\n this.minDecimalPlaces(),\n Math.min(effectiveDecimalPlaces, this.maxDecimalPlaces()),\n );\n\n decimalPart = decimalPart.substring(0, decimalPlacesToShow).padEnd(decimalPlacesToShow, '0');\n\n return decimalPart ? formattedInteger + this.decimalSeparator() + decimalPart : formattedInteger;\n }\n\n /**\n * Converts the formatted value to the model format (international standard string)\n * Always returns decimal notation, never scientific notation\n * Stores the full precision value without truncation\n * @private\n */\n private toModelValue(formattedValue: string): string | null {\n if (!formattedValue || formattedValue.trim() === '') {\n return null;\n }\n const { bigNumber } = this.parseStringToValue(formattedValue);\n return bigNumber.toFixed();\n }\n\n /**\n * Converts the model value to display format\n * @private\n */\n private fromModelValue(modelValue: string | null): string {\n if (modelValue === null || modelValue === undefined || modelValue === '') {\n return '';\n }\n const bigNumber = new BigNumber(modelValue);\n if (bigNumber.isNaN()) {\n return '';\n }\n return this.formatNumeric(bigNumber);\n }\n\n /**\n * Processes pasted value from clipboard\n * Converts scientific notation to decimal using BigNumber\n * @private\n */\n private parseClipboardValue(text: string): string {\n if (this.allowScientificNotation() && /[eE]/.test(text)) {\n try {\n const bigNumeric = new BigNumber(text);\n if (!bigNumeric.isNaN()) {\n return bigNumeric.toFixed().replace('.', this.decimalSeparator());\n }\n } catch {\n void 0;\n }\n }\n return this.normalizeSeparators(text);\n }\n\n /**\n * Toggles the sign (- or +) of a value\n * @private\n */\n private toggleSign(value: string, makeNegative: boolean): void {\n const input = this.elementRef.nativeElement;\n let newValue = value;\n\n if (makeNegative && !newValue.startsWith('-')) {\n newValue = '-' + newValue;\n } else if (!makeNegative && newValue.startsWith('-')) {\n newValue = newValue.substring(1);\n } else {\n return;\n }\n\n this.renderer.setProperty(input, 'value', newValue);\n const modelValue = this.toModelValue(newValue);\n this.lastModelValue = null;\n this.onChange(modelValue);\n }\n\n public writeValue(value: string | null): void {\n if (!this.decimalSeparator() || !this.thousandSeparator()) {\n this.updateSeparators();\n }\n const hasFocus = document.activeElement === this.elementRef.nativeElement;\n if (hasFocus) {\n const formattedValue = this.fromModelValue(value);\n const rawValue = this.stripTrailingZeros(this.removeSeparators(formattedValue));\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', rawValue);\n } else {\n const formattedValue = this.fromModelValue(value);\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', formattedValue);\n }\n }\n\n public registerOnChange(fn: (value: string | null) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', isDisabled);\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n\n if (!value) {\n return null;\n }\n\n const numericValue = parseFloat(value);\n\n if (isNaN(numericValue)) {\n return null;\n }\n\n if (!this.allowNegative() && numericValue < 0) {\n return { negativeNotAllowed: true };\n }\n\n const minValue = this.min();\n if (minValue !== undefined && numericValue < minValue) {\n return {\n min: {\n min: minValue,\n actual: numericValue,\n },\n };\n }\n\n const maxValue = this.max();\n if (maxValue !== undefined && numericValue > maxValue) {\n return {\n max: {\n max: maxValue,\n actual: numericValue,\n },\n };\n }\n\n const decimalPart = value.split('.')[1];\n\n if (decimalPart && decimalPart.length > this.maxDecimalPlaces()) {\n return {\n excessiveDecimalPlaces: {\n max: this.maxDecimalPlaces(),\n actual: decimalPart.length,\n },\n };\n }\n\n return null;\n }\n}\n\n","import { NgModule } from '@angular/core';\n\nimport { NumericMaskDirective } from './numeric-mask.directive';\n\n@NgModule({\n imports: [NumericMaskDirective],\n exports: [NumericMaskDirective],\n})\nexport class CurrencyMaskModule {}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;AAwBA;;;;;;;;;;;;;;;;;;;;AAoBG;MA0BU,oBAAoB,CAAA;AAC7B;;;AAGG;AACI,IAAA,MAAM,GAAG,KAAK,CAAqB,SAAS,CAAC,CAAC;AAErD;;;AAGG;AACI,IAAA,gBAAgB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC;;;AAGG;AACI,IAAA,gBAAgB,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;AAEpC;;;AAGG;AACI,IAAA,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;AAEpC;;;AAGG;AACI,IAAA,uBAAuB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AAE7C;;AAEG;AACI,IAAA,GAAG,GAAG,KAAK,CAAqB,SAAS,CAAC,CAAC;AAElD;;AAEG;AACI,IAAA,GAAG,GAAG,KAAK,CAAqB,SAAS,CAAC,CAAC;AAEjC,IAAA,UAAU,GAAG,MAAM,EAAC,UAA4B,EAAC,CAAC;AAClD,IAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7B,aAAa,GAAG,MAAM,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAEnE,IAAA,QAAQ,GAAmC,MAAK,GAAG,CAAC;AACpD,IAAA,SAAS,GAAe,MAAK,GAAG,CAAC;AAClC,IAAA,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9B,IAAA,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,aAAa,GAAG,OAAO,CAAC;IAC1B,cAAc,GAAkB,IAAI,CAAC;AAEtC,IAAA,WAAW,CAAC,OAAsB,EAAA;AACrC,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AACtE,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,EAAG,CAAC;YACpC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB;KACJ;IAEM,QAAQ,GAAA;QACX,IAAI,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE;AACnD,YAAA,MAAM,IAAI,KAAK,CACX,CAAA,wCAAA,EAA2C,IAAI,CAAC,gBAAgB,EAAE,CAAA,2CAAA,EAA8C,IAAI,CAAC,gBAAgB,EAAE,CAAA,CAAA,CAAG,CAC7I,CAAC;SACL;AAED,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AACf,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,EAAG,CAAC;YACpC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB;AAAM,aAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YAC3B,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAK;AACpC,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAc,CAAC,gBAAgB,EAAE,EAAE,MAAM,IAAI,OAAO,CAAC;gBAC/E,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,IAAI,CAAC,YAAY,EAAE,CAAC;AACxB,aAAC,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB;KACJ;AAED;;AAEG;AACI,IAAA,OAAO,CAAC,KAAY,EAAA;AACvB,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B,CAAC;AAC/C,QAAA,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AACxB,QAAA,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACxC,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;KACjC;AAED;;AAEG;IACI,OAAO,GAAA;AACV,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAC5C,QAAA,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;QAEjC,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC7C,OAAO;SACV;AAED,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC/E,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YACxD,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,OAAO;SACV;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAEnD,IAAI,CAAC,UAAU,EAAE;YACb,OAAO;SACV;AAED,QAAA,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QACxD,KAAK,CAAC,MAAM,EAAE,CAAC;KAClB;AAED;;AAEG;IACI,MAAM,GAAA;QACT,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;QAEzD,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AAC7C,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,OAAO;SACV;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAEnD,IAAI,CAAC,UAAU,EAAE;AACb,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,OAAO;SACV;AAED,QAAA,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;AAChF,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KAC7B;AAED;;AAEG;AACI,IAAA,OAAO,CAAC,KAAqB,EAAA;QAChC,KAAK,CAAC,cAAc,EAAE,CAAC;AAEvB,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9D,IAAI,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;AAEjD,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;KACjC;AAED;;AAEG;AACI,IAAA,SAAS,CAAC,KAAoB,EAAA;AACjC,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QAEtB,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,EAAE;AAC5B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAC5C,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAC1B,YAAA,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC;YAEjD,IAAI,GAAG,KAAK,GAAG,IAAI,IAAI,CAAC,uBAAuB,EAAE,EAAE;gBAC/C,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;gBACnD,IAAI,gBAAgB,KAAK,GAAG,IAAI,gBAAgB,KAAK,GAAG,EAAE;oBACtD,OAAO;iBACV;aACJ;YAED,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;gBACvB,OAAO;aACV;YAED,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC;SACvC;KACJ;AAED;;AAEG;AACI,IAAA,UAAU,CAAC,KAAoB,EAAA;AAClC,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;AACtB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAC5C,QAAA,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC;AACjD,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAE1B,QAAA,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,IAAI,CAAC,uBAAuB,EAAE,EAAE;YAChE,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;YACnD,IAAI,gBAAgB,KAAK,GAAG,IAAI,gBAAgB,KAAK,GAAG,EAAE;gBACtD,OAAO;aACV;SACJ;QAED,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,EAAE;YAC5B,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,OAAO;SACV;QAED,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,kBAAkB,GAAG,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC;AACtD,QAAA,MAAM,oBAAoB,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAC5F,QAAA,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC;AACpE,QAAA,MAAM,YAAY,GAAG;YACjB,WAAW;YACX,KAAK;YACL,OAAO;YACP,QAAQ;YACR,WAAW;YACX,YAAY;YACZ,QAAQ;YACR,MAAM;YACN,KAAK;AACR,SAAA,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEhB,IAAI,oBAAoB,EAAE;AACtB,YAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC5C,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,OAAO;aACV;YAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;gBACxD,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,OAAO;aACV;SACJ;AAED,QAAA,IAAI,CAAC,OAAO,IAAI,CAAC,kBAAkB,IAAI,CAAC,oBAAoB,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE;YAC5F,KAAK,CAAC,cAAc,EAAE,CAAC;SAC1B;KACJ;AAED;;AAEG;IACO,gBAAgB,GAAA;AACtB,QAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE3E,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;KAC3C;AAED;;;AAGG;AACK,IAAA,iBAAiB,CAAC,KAAa,EAAA;AACnC,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE;YACvD,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAEzE,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;;AAG5C,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAE3B,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KAC7B;AAED;;;AAGG;IACK,YAAY,GAAA;AAChB,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;AAClF,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;KACpF;AAED;;;AAGG;AACK,IAAA,gBAAgB,CAAC,KAAa,EAAA;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE;AAC3B,YAAA,OAAO,KAAK,CAAC;SAChB;AAED,QAAA,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAElF,OAAO,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;KAC3C;AAED;;;AAGG;AACK,IAAA,kBAAkB,CAAC,KAAa,EAAA;QACpC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACnD,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACpB,YAAA,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAChD,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;SAC/F;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;AAED;;;AAGG;AACK,IAAA,mBAAmB,CAAC,KAAa,EAAA;AACrC,QAAA,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAErC,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,KAAK,GAAG,EAAE;YACjC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SACrC;AAAM,aAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,KAAK,GAAG,EAAE;YACxC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SACpC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACnD,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAClB,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACxE;AAED,QAAA,OAAO,KAAK,CAAC;KAChB;AAED;;;AAGG;AACK,IAAA,WAAW,CAAC,GAAW,EAAA;QAC3B,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;KACrD;AAED;;;AAGG;IACK,uBAAuB,CAAC,SAAoB,EAAE,aAAqB,EAAA;AACvE,QAAA,IAAI,aAAa,GAAG,CAAC,EAAE;AACnB,YAAA,OAAO,SAAS,CAAC;SACpB;AACD,QAAA,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACxD,QAAA,OAAO,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;KACtG;AAED;;;;AAIG;AACK,IAAA,kBAAkB,CAAC,KAAa,EAAA;QACpC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,UAAU,GAAG,KAAK;AACjB,aAAA,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AACjB,aAAA,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,iBAAiB,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;AAC7D,aAAA,OAAO,CAAC,IAAI,MAAM,CAAC,CAAA,EAAA,EAAK,IAAI,CAAC,gBAAgB,EAAE,CAAA,CAAE,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAEnE,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,EAAE,EAAE;YACzC,UAAU,GAAG,GAAG,CAAC;SACpB;AAAM,aAAA,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACnC,YAAA,UAAU,GAAG,GAAG,GAAG,UAAU,CAAC;SACjC;AAED,QAAA,IAAI,SAAS,GAAG,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC;AAC1C,QAAA,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE;AACnB,YAAA,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;SAChC;AAED,QAAA,IAAI,UAAU,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACpC,YAAA,SAAS,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;SACnC;AAED,QAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC;KACnE;AAED;;;;AAIG;AACK,IAAA,aAAa,CAAC,OAA2B,EAAA;AAC7C,QAAA,IAAI,UAAU,GAAG,OAAO,YAAY,SAAS,GAAG,OAAO,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AAEjF,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAEzF,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;AAEpG,QAAA,IAAI,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAEpE,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAC5D,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEjC,MAAM,gBAAgB,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;aAC7D,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;aACtC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvC,QAAA,MAAM,sBAAsB,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;QAErE,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAChC,IAAI,CAAC,gBAAgB,EAAE,EACvB,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAC5D,CAAC;AAEF,QAAA,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,MAAM,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;AAE7F,QAAA,OAAO,WAAW,GAAG,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,WAAW,GAAG,gBAAgB,CAAC;KACpG;AAED;;;;;AAKG;AACK,IAAA,YAAY,CAAC,cAAsB,EAAA;QACvC,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AACjD,YAAA,OAAO,IAAI,CAAC;SACf;QACD,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;AAC9D,QAAA,OAAO,SAAS,CAAC,OAAO,EAAE,CAAC;KAC9B;AAED;;;AAGG;AACK,IAAA,cAAc,CAAC,UAAyB,EAAA;AAC5C,QAAA,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE,EAAE;AACtE,YAAA,OAAO,EAAE,CAAC;SACb;AACD,QAAA,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC;AAC5C,QAAA,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE;AACnB,YAAA,OAAO,EAAE,CAAC;SACb;AACD,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;KACxC;AAED;;;;AAIG;AACK,IAAA,mBAAmB,CAAC,IAAY,EAAA;AACpC,QAAA,IAAI,IAAI,CAAC,uBAAuB,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACrD,YAAA,IAAI;AACA,gBAAA,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;AACvC,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE;AACrB,oBAAA,OAAO,UAAU,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;iBACrE;aACJ;AAAC,YAAA,MAAM;AACJ,gBAAA,KAAK,CAAC,CAAC;aACV;SACJ;AACD,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;KACzC;AAED;;;AAGG;IACK,UAAU,CAAC,KAAa,EAAE,YAAqB,EAAA;AACnD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAC5C,IAAI,QAAQ,GAAG,KAAK,CAAC;QAErB,IAAI,YAAY,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC3C,YAAA,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;SAC7B;aAAM,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAClD,YAAA,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACpC;aAAM;YACH,OAAO;SACV;QAED,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC/C,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KAC7B;AAEM,IAAA,UAAU,CAAC,KAAoB,EAAA;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE;YACvD,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B;QACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAC1E,IAAI,QAAQ,EAAE;YACV,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAClD,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC;AAChF,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;SAC/E;aAAM;YACH,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAClD,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;SACrF;KACJ;AAEM,IAAA,gBAAgB,CAAC,EAAkC,EAAA;AACtD,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACtB;AAEM,IAAA,iBAAiB,CAAC,EAAc,EAAA;AACnC,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;AAEM,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;KACpF;AAEM,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACpC,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAE5B,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,OAAO,IAAI,CAAC;SACf;AAED,QAAA,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AAEvC,QAAA,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE;AACrB,YAAA,OAAO,IAAI,CAAC;SACf;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,YAAY,GAAG,CAAC,EAAE;AAC3C,YAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;SACvC;AAED,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,QAAQ,KAAK,SAAS,IAAI,YAAY,GAAG,QAAQ,EAAE;YACnD,OAAO;AACH,gBAAA,GAAG,EAAE;AACD,oBAAA,GAAG,EAAE,QAAQ;AACb,oBAAA,MAAM,EAAE,YAAY;AACvB,iBAAA;aACJ,CAAC;SACL;AAED,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,QAAQ,KAAK,SAAS,IAAI,YAAY,GAAG,QAAQ,EAAE;YACnD,OAAO;AACH,gBAAA,GAAG,EAAE;AACD,oBAAA,GAAG,EAAE,QAAQ;AACb,oBAAA,MAAM,EAAE,YAAY;AACvB,iBAAA;aACJ,CAAC;SACL;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAExC,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAC7D,OAAO;AACH,gBAAA,sBAAsB,EAAE;AACpB,oBAAA,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE;oBAC5B,MAAM,EAAE,WAAW,CAAC,MAAM;AAC7B,iBAAA;aACJ,CAAC;SACL;AAED,QAAA,OAAO,IAAI,CAAC;KACf;wGAhjBQ,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,EAblB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,wBAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACnD,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACnD,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;AACJ,SAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAEQ,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAzBhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,iBAAiB;AAC5B,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,QAAQ,EAAE,UAAU;AACpB,wBAAA,SAAS,EAAE,iBAAiB;AAC5B,wBAAA,WAAW,EAAE,mBAAmB;AAChC,wBAAA,YAAY,EAAE,oBAAoB;AAClC,wBAAA,oBAAoB,EAAE,SAAS;AAClC,qBAAA;AACD,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,0BAA0B,CAAC;AACnD,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;AACD,wBAAA;AACI,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,0BAA0B,CAAC;AACnD,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;;MC7DY,kBAAkB,CAAA;wGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAlB,kBAAkB,EAAA,OAAA,EAAA,CAHjB,oBAAoB,CAAA,EAAA,OAAA,EAAA,CACpB,oBAAoB,CAAA,EAAA,CAAA,CAAA;yGAErB,kBAAkB,EAAA,CAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,oBAAoB,CAAC;oBAC/B,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAClC,iBAAA,CAAA;;;ACPD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-numeric-mask.mjs","sources":["../../projects/angular-components/numeric-mask/src/lib/numeric-mask/numeric-mask.directive.ts","../../projects/angular-components/numeric-mask/src/lib/numeric-mask/numeric-mask.module.ts","../../projects/angular-components/numeric-mask/src/seniorsistemas-angular-components-numeric-mask.ts"],"sourcesContent":["import {\n Directive,\n DestroyRef,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n OnChanges,\n OnInit,\n Renderer2,\n SimpleChanges,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport BigNumber from 'bignumber.js';\n\n/**\n * @description Diretiva de máscara numérica com suporte a internacionalização.\n *\n * Formata valores numéricos de acordo com o locale especificado, aplicando\n * separadores de milhar e decimal adequados, com suporte a valores negativos,\n * controle de casas decimais mín/máx e notação científica.\n *\n * @example\n * ```html\n * <input\n * type=\"text\"\n * sNumericMask\n * [locale]=\"'pt-BR'\"\n * [minDecimalPlaces]=\"2\"\n * [maxDecimalPlaces]=\"2\"\n * [allowNegative]=\"true\"\n * [(ngModel)]=\"value\"\n * />\n * ```\n * @category Numeric\n */\n@Directive({\n selector: '[sNumericMask]',\n standalone: true,\n host: {\n '(input)': 'onInput($event)',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()',\n '(paste)': 'onPaste($event)',\n '(keydown)': 'onKeyDown($event)',\n '(keypress)': 'onKeyPress($event)',\n '[style.text-align]': '\"right\"',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumericMaskDirective),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NumericMaskDirective),\n multi: true,\n },\n ],\n})\nexport class NumericMaskDirective implements OnInit, OnChanges, ControlValueAccessor, Validator {\n /**\n * Locale for formatting (e.g. 'pt-BR', 'en-US', 'de-DE')\n * If not provided, uses the locale from LocaleService\n */\n public locale = input<string | undefined>(undefined);\n\n /**\n * Minimum number of decimal places to display\n * @default 0\n */\n public minDecimalPlaces = input(0);\n\n /**\n * Maximum number of decimal places allowed\n * @default 10\n */\n public maxDecimalPlaces = input(10);\n\n /**\n * Allows negative values\n * @default false\n */\n public allowNegative = input(false);\n\n /**\n * Enables scientific notation support\n * @default true\n */\n public allowScientificNotation = input(true);\n\n /**\n * Minimum value allowed\n */\n public min = input<number | undefined>(undefined);\n\n /**\n * Maximum value allowed\n */\n public max = input<number | undefined>(undefined);\n\n private readonly elementRef = inject(ElementRef<HTMLInputElement>);\n private readonly renderer = inject(Renderer2);\n private readonly localeService = inject(LocaleService, { optional: true });\n private readonly _destroyRef = inject(DestroyRef);\n\n private onChange: (value: string | null) => void = () => {};\n private onTouched: () => void = () => {};\n public decimalSeparator = model(',');\n public thousandSeparator = model('.');\n protected currentLocale = 'pt-BR';\n private lastModelValue: string | null = null;\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['locale'] && !changes['locale'].firstChange && this.locale()) {\n this.currentLocale = this.locale()!;\n this.updateSeparators();\n this.setInputMode();\n }\n }\n\n public ngOnInit(): void {\n if (this.minDecimalPlaces() > this.maxDecimalPlaces()) {\n throw new Error(\n `NumericMaskDirective: minDecimalPlaces (${this.minDecimalPlaces()}) cannot be greater than maxDecimalPlaces (${this.maxDecimalPlaces()})`,\n );\n }\n\n if (this.locale()) {\n this.currentLocale = this.locale()!;\n this.updateSeparators();\n this.setInputMode();\n } else if (this.localeService) {\n this.localeService\n .get()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this.currentLocale = this.localeService!.getLocaleOptions()?.locale || 'pt-BR';\n this.updateSeparators();\n this.setInputMode();\n });\n } else {\n this.updateSeparators();\n this.setInputMode();\n }\n }\n\n /**\n * Listener for input events (typing)\n */\n public onInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n let value = input.value;\n value = this.normalizeSeparators(value);\n this.processInputValue(value);\n }\n\n /**\n * Listener for focus events (gaining focus)\n */\n public onFocus(): void {\n const input = this.elementRef.nativeElement;\n const currentValue = input.value;\n\n if (!currentValue || currentValue.trim() === '') {\n return;\n }\n\n if (this.lastModelValue) {\n const displayValue = this.lastModelValue.replace('.', this.decimalSeparator());\n this.renderer.setProperty(input, 'value', displayValue);\n input.select();\n return;\n }\n\n const modelValue = this.toModelValue(currentValue);\n\n if (!modelValue) {\n return;\n }\n\n const displayValue = modelValue.replace('.', this.decimalSeparator());\n this.renderer.setProperty(input, 'value', displayValue);\n input.select();\n }\n\n /**\n * Listener for blur events (focus loss)\n */\n public onBlur(): void {\n this.onTouched();\n\n const currentValue = this.elementRef.nativeElement.value;\n\n if (!currentValue || currentValue.trim() === '') {\n this.onChange(null);\n this.lastModelValue = null;\n return;\n }\n\n const modelValue = this.toModelValue(currentValue);\n\n if (!modelValue) {\n this.onChange(null);\n this.lastModelValue = null;\n return;\n }\n\n this.lastModelValue = modelValue;\n const displayValue = this.fromModelValue(modelValue);\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', displayValue);\n this.onChange(modelValue);\n }\n\n /**\n * Listener for paste events (clipboard)\n */\n public onPaste(event: ClipboardEvent): void {\n event.preventDefault();\n\n const pastedText = event.clipboardData?.getData('text') || '';\n let value = this.parseClipboardValue(pastedText);\n\n this.processInputValue(value);\n }\n\n /**\n * Listener for special keys (+ and -)\n */\n public onKeyDown(event: KeyboardEvent): void {\n const key = event.key;\n\n if (key === '-' || key === '+') {\n const input = this.elementRef.nativeElement;\n const value = input.value;\n const cursorPosition = input.selectionStart || 0;\n\n if (key === '-' && this.allowScientificNotation()) {\n const charBeforeCursor = value[cursorPosition - 1];\n if (charBeforeCursor === 'e' || charBeforeCursor === 'E') {\n return;\n }\n }\n\n event.preventDefault();\n if (!this.allowNegative()) {\n return;\n }\n\n this.toggleSign(value, key === '-');\n }\n }\n\n /**\n * Listener for keypress to block invalid characters\n */\n public onKeyPress(event: KeyboardEvent): void {\n const key = event.key;\n const input = this.elementRef.nativeElement;\n const cursorPosition = input.selectionStart || 0;\n const value = input.value;\n\n if ((key === '-' || key === '+') && this.allowScientificNotation()) {\n const charBeforeCursor = value[cursorPosition - 1];\n if (charBeforeCursor === 'e' || charBeforeCursor === 'E') {\n return;\n }\n }\n\n if (key === '+' || key === '-') {\n event.preventDefault();\n return;\n }\n\n const isDigit = /^[0-9]$/.test(key);\n const isDecimalSeparator = key === ',' || key === '.';\n const isScientificNotation = (key === 'e' || key === 'E') && this.allowScientificNotation();\n const isControlKey = event.ctrlKey || event.metaKey || event.altKey;\n const isSpecialKey = [\n 'Backspace',\n 'Tab',\n 'Enter',\n 'Escape',\n 'ArrowLeft',\n 'ArrowRight',\n 'Delete',\n 'Home',\n 'End',\n ].includes(key);\n\n if (isScientificNotation) {\n if (value.includes('e') || value.includes('E')) {\n event.preventDefault();\n return;\n }\n\n const charBeforeCursor = value[cursorPosition - 1];\n if (!charBeforeCursor || !/^[0-9]$/.test(charBeforeCursor)) {\n event.preventDefault();\n return;\n }\n }\n\n if (!isDigit && !isDecimalSeparator && !isScientificNotation && !isControlKey && !isSpecialKey) {\n event.preventDefault();\n }\n }\n\n /**\n * Updates separators according to the locale\n */\n protected updateSeparators(): void {\n const formatted = new Intl.NumberFormat(this.currentLocale).format(1234.5);\n\n this.thousandSeparator.set(formatted[1]);\n this.decimalSeparator.set(formatted[5]);\n }\n\n /**\n * Processes input value and updates the input and model\n * @private\n */\n private processInputValue(value: string): void {\n if (!this.decimalSeparator() || !this.thousandSeparator()) {\n this.updateSeparators();\n }\n\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', value);\n\n const modelValue = this.toModelValue(value);\n\n // During typing, clear the stored model value so onFocus will recalculate\n this.lastModelValue = null;\n\n this.onChange(modelValue);\n }\n\n /**\n * Sets inputmode for numeric keyboard on mobile devices\n * @private\n */\n private setInputMode(): void {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'inputmode', 'decimal');\n this.renderer.setAttribute(this.elementRef.nativeElement, 'autocomplete', 'off');\n }\n\n /**\n * Removes separators from a formatted value\n * @private\n */\n private removeSeparators(value: string): string {\n if (!this.thousandSeparator()) {\n return value;\n }\n\n const thousandRegex = new RegExp(this.escapeRegex(this.thousandSeparator()), 'g');\n\n return value.replace(thousandRegex, '');\n }\n\n /**\n * Strips unnecessary trailing zeros from decimal part\n * @private\n */\n private stripTrailingZeros(value: string): string {\n const parts = value.split(this.decimalSeparator());\n if (parts.length === 2) {\n const decimalPart = parts[1].replace(/0+$/, '');\n return decimalPart.length > 0 ? parts[0] + this.decimalSeparator() + decimalPart : parts[0];\n }\n return value;\n }\n\n /**\n * Normalizes separators during typing\n * @private\n */\n private normalizeSeparators(value: string): string {\n value = this.removeSeparators(value);\n\n if (this.decimalSeparator() === ',') {\n value = value.replace(/\\./g, ',');\n } else if (this.decimalSeparator() === '.') {\n value = value.replace(/,/g, '.');\n }\n\n const parts = value.split(this.decimalSeparator());\n if (parts.length > 2) {\n value = parts[0] + this.decimalSeparator() + parts.slice(1).join('');\n }\n\n return value;\n }\n\n /**\n * Escapes special characters for use in regex\n * @private\n */\n private escapeRegex(str: string): string {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n }\n\n /**\n * Truncates a number to the specified decimal places (never rounds)\n * @private\n */\n private truncateToDecimalPlaces(bigNumber: BigNumber, decimalPlaces: number): BigNumber {\n if (decimalPlaces < 0) {\n return bigNumber;\n }\n const multiplier = new BigNumber(10).pow(decimalPlaces);\n return bigNumber.multipliedBy(multiplier).integerValue(BigNumber.ROUND_DOWN).dividedBy(multiplier);\n }\n\n /**\n * Parses a string value to its numeric representation, handling separators and sign\n * Returns BigNumber to preserve full precision and optional number conversion\n * @private\n */\n private parseStringToValue(value: string): { bigNumber: BigNumber; numeric: number; isNegative: boolean } {\n const isNegative = value.startsWith('-');\n let numericStr = value\n .replace(/^-/, '')\n .replace(new RegExp(`\\\\${this.thousandSeparator()}`, 'g'), '')\n .replace(new RegExp(`\\\\${this.decimalSeparator()}`, 'g'), '.');\n\n if (numericStr === '.' || numericStr === '') {\n numericStr = '0';\n } else if (numericStr.startsWith('.')) {\n numericStr = '0' + numericStr;\n }\n\n let bigNumber = new BigNumber(numericStr);\n if (bigNumber.isNaN()) {\n bigNumber = new BigNumber(0);\n }\n\n if (isNegative && this.allowNegative()) {\n bigNumber = bigNumber.negated();\n }\n\n return { bigNumber, numeric: bigNumber.toNumber(), isNegative };\n }\n\n /**\n * Formats a numeric value according to the locale\n * Truncates (never rounds) to maxDecimalPlaces and pads with zeros to minDecimalPlaces\n * @private\n */\n private formatNumeric(numeric: number | BigNumber): string {\n let bigNumeric = numeric instanceof BigNumber ? numeric : new BigNumber(numeric);\n\n const truncatedValue = this.truncateToDecimalPlaces(bigNumeric, this.maxDecimalPlaces());\n\n const valueStr = truncatedValue.toFixed(Math.max(this.minDecimalPlaces(), this.maxDecimalPlaces()));\n\n let formattedValue = valueStr.replace('.', this.decimalSeparator());\n\n const parts = formattedValue.split(this.decimalSeparator());\n const integerPart = parts[0];\n let decimalPart = parts[1] || '';\n\n const formattedInteger = new Intl.NumberFormat(this.currentLocale)\n .format(parseInt(integerPart, 10) || 0)\n .split(this.decimalSeparator())[0];\n\n const effectiveDecimalPlaces = decimalPart.replace(/0+$/, '').length;\n\n const decimalPlacesToShow = Math.max(\n this.minDecimalPlaces(),\n Math.min(effectiveDecimalPlaces, this.maxDecimalPlaces()),\n );\n\n decimalPart = decimalPart.substring(0, decimalPlacesToShow).padEnd(decimalPlacesToShow, '0');\n\n return decimalPart ? formattedInteger + this.decimalSeparator() + decimalPart : formattedInteger;\n }\n\n /**\n * Converts the formatted value to the model format (international standard string)\n * Always returns decimal notation, never scientific notation\n * Stores the full precision value without truncation\n * @private\n */\n private toModelValue(formattedValue: string): string | null {\n if (!formattedValue || formattedValue.trim() === '') {\n return null;\n }\n const { bigNumber } = this.parseStringToValue(formattedValue);\n return bigNumber.toFixed();\n }\n\n /**\n * Converts the model value to display format\n * @private\n */\n private fromModelValue(modelValue: string | null): string {\n if (modelValue === null || modelValue === undefined || modelValue === '') {\n return '';\n }\n const bigNumber = new BigNumber(modelValue);\n if (bigNumber.isNaN()) {\n return '';\n }\n return this.formatNumeric(bigNumber);\n }\n\n /**\n * Processes pasted value from clipboard\n * Converts scientific notation to decimal using BigNumber\n * @private\n */\n private parseClipboardValue(text: string): string {\n if (this.allowScientificNotation() && /[eE]/.test(text)) {\n try {\n const bigNumeric = new BigNumber(text);\n if (!bigNumeric.isNaN()) {\n return bigNumeric.toFixed().replace('.', this.decimalSeparator());\n }\n } catch {\n void 0;\n }\n }\n return this.normalizeSeparators(text);\n }\n\n /**\n * Toggles the sign (- or +) of a value\n * @private\n */\n private toggleSign(value: string, makeNegative: boolean): void {\n const input = this.elementRef.nativeElement;\n let newValue = value;\n\n if (makeNegative && !newValue.startsWith('-')) {\n newValue = '-' + newValue;\n } else if (!makeNegative && newValue.startsWith('-')) {\n newValue = newValue.substring(1);\n } else {\n return;\n }\n\n this.renderer.setProperty(input, 'value', newValue);\n const modelValue = this.toModelValue(newValue);\n this.lastModelValue = null;\n this.onChange(modelValue);\n }\n\n public writeValue(value: string | null): void {\n if (!this.decimalSeparator() || !this.thousandSeparator()) {\n this.updateSeparators();\n }\n const hasFocus = document.activeElement === this.elementRef.nativeElement;\n if (hasFocus) {\n const formattedValue = this.fromModelValue(value);\n const rawValue = this.stripTrailingZeros(this.removeSeparators(formattedValue));\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', rawValue);\n } else {\n const formattedValue = this.fromModelValue(value);\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', formattedValue);\n }\n }\n\n public registerOnChange(fn: (value: string | null) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', isDisabled);\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n\n if (!value) {\n return null;\n }\n\n const numericValue = parseFloat(value);\n\n if (isNaN(numericValue)) {\n return null;\n }\n\n if (!this.allowNegative() && numericValue < 0) {\n return { negativeNotAllowed: true };\n }\n\n const minValue = this.min();\n if (minValue !== undefined && numericValue < minValue) {\n return {\n min: {\n min: minValue,\n actual: numericValue,\n },\n };\n }\n\n const maxValue = this.max();\n if (maxValue !== undefined && numericValue > maxValue) {\n return {\n max: {\n max: maxValue,\n actual: numericValue,\n },\n };\n }\n\n const decimalPart = value.split('.')[1];\n\n if (decimalPart && decimalPart.length > this.maxDecimalPlaces()) {\n return {\n excessiveDecimalPlaces: {\n max: this.maxDecimalPlaces(),\n actual: decimalPart.length,\n },\n };\n }\n\n return null;\n }\n}\n\n","import { NgModule } from '@angular/core';\n\nimport { NumericMaskDirective } from './numeric-mask.directive';\n\n@NgModule({\n imports: [NumericMaskDirective],\n exports: [NumericMaskDirective],\n})\nexport class CurrencyMaskModule {}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;AA0BA;;;;;;;;;;;;;;;;;;;;AAoBG;MA0BU,oBAAoB,CAAA;AAC7B;;;AAGG;AACI,IAAA,MAAM,GAAG,KAAK,CAAqB,SAAS,CAAC,CAAC;AAErD;;;AAGG;AACI,IAAA,gBAAgB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC;;;AAGG;AACI,IAAA,gBAAgB,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;AAEpC;;;AAGG;AACI,IAAA,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;AAEpC;;;AAGG;AACI,IAAA,uBAAuB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AAE7C;;AAEG;AACI,IAAA,GAAG,GAAG,KAAK,CAAqB,SAAS,CAAC,CAAC;AAElD;;AAEG;AACI,IAAA,GAAG,GAAG,KAAK,CAAqB,SAAS,CAAC,CAAC;AAEjC,IAAA,UAAU,GAAG,MAAM,EAAC,UAA4B,EAAC,CAAC;AAClD,IAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7B,aAAa,GAAG,MAAM,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAC1D,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAE1C,IAAA,QAAQ,GAAmC,MAAK,GAAG,CAAC;AACpD,IAAA,SAAS,GAAe,MAAK,GAAG,CAAC;AAClC,IAAA,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9B,IAAA,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,aAAa,GAAG,OAAO,CAAC;IAC1B,cAAc,GAAkB,IAAI,CAAC;AAEtC,IAAA,WAAW,CAAC,OAAsB,EAAA;AACrC,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AACtE,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,EAAG,CAAC;YACpC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB;KACJ;IAEM,QAAQ,GAAA;QACX,IAAI,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE;AACnD,YAAA,MAAM,IAAI,KAAK,CACX,CAAA,wCAAA,EAA2C,IAAI,CAAC,gBAAgB,EAAE,CAAA,2CAAA,EAA8C,IAAI,CAAC,gBAAgB,EAAE,CAAA,CAAA,CAAG,CAC7I,CAAC;SACL;AAED,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AACf,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,EAAG,CAAC;YACpC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB;AAAM,aAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AAC3B,YAAA,IAAI,CAAC,aAAa;AACb,iBAAA,GAAG,EAAE;AACL,iBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;iBAC1C,SAAS,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAc,CAAC,gBAAgB,EAAE,EAAE,MAAM,IAAI,OAAO,CAAC;gBAC/E,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,IAAI,CAAC,YAAY,EAAE,CAAC;AACxB,aAAC,CAAC,CAAC;SACV;aAAM;YACH,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB;KACJ;AAED;;AAEG;AACI,IAAA,OAAO,CAAC,KAAY,EAAA;AACvB,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B,CAAC;AAC/C,QAAA,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AACxB,QAAA,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACxC,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;KACjC;AAED;;AAEG;IACI,OAAO,GAAA;AACV,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAC5C,QAAA,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;QAEjC,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC7C,OAAO;SACV;AAED,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC/E,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YACxD,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,OAAO;SACV;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAEnD,IAAI,CAAC,UAAU,EAAE;YACb,OAAO;SACV;AAED,QAAA,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QACxD,KAAK,CAAC,MAAM,EAAE,CAAC;KAClB;AAED;;AAEG;IACI,MAAM,GAAA;QACT,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;QAEzD,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AAC7C,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,OAAO;SACV;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAEnD,IAAI,CAAC,UAAU,EAAE;AACb,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,OAAO;SACV;AAED,QAAA,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;AAChF,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KAC7B;AAED;;AAEG;AACI,IAAA,OAAO,CAAC,KAAqB,EAAA;QAChC,KAAK,CAAC,cAAc,EAAE,CAAC;AAEvB,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9D,IAAI,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;AAEjD,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;KACjC;AAED;;AAEG;AACI,IAAA,SAAS,CAAC,KAAoB,EAAA;AACjC,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QAEtB,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,EAAE;AAC5B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAC5C,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAC1B,YAAA,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC;YAEjD,IAAI,GAAG,KAAK,GAAG,IAAI,IAAI,CAAC,uBAAuB,EAAE,EAAE;gBAC/C,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;gBACnD,IAAI,gBAAgB,KAAK,GAAG,IAAI,gBAAgB,KAAK,GAAG,EAAE;oBACtD,OAAO;iBACV;aACJ;YAED,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;gBACvB,OAAO;aACV;YAED,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC;SACvC;KACJ;AAED;;AAEG;AACI,IAAA,UAAU,CAAC,KAAoB,EAAA;AAClC,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;AACtB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAC5C,QAAA,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC;AACjD,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAE1B,QAAA,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,IAAI,CAAC,uBAAuB,EAAE,EAAE;YAChE,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;YACnD,IAAI,gBAAgB,KAAK,GAAG,IAAI,gBAAgB,KAAK,GAAG,EAAE;gBACtD,OAAO;aACV;SACJ;QAED,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,EAAE;YAC5B,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,OAAO;SACV;QAED,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,kBAAkB,GAAG,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC;AACtD,QAAA,MAAM,oBAAoB,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAC5F,QAAA,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC;AACpE,QAAA,MAAM,YAAY,GAAG;YACjB,WAAW;YACX,KAAK;YACL,OAAO;YACP,QAAQ;YACR,WAAW;YACX,YAAY;YACZ,QAAQ;YACR,MAAM;YACN,KAAK;AACR,SAAA,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEhB,IAAI,oBAAoB,EAAE;AACtB,YAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC5C,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,OAAO;aACV;YAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;gBACxD,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,OAAO;aACV;SACJ;AAED,QAAA,IAAI,CAAC,OAAO,IAAI,CAAC,kBAAkB,IAAI,CAAC,oBAAoB,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE;YAC5F,KAAK,CAAC,cAAc,EAAE,CAAC;SAC1B;KACJ;AAED;;AAEG;IACO,gBAAgB,GAAA;AACtB,QAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE3E,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;KAC3C;AAED;;;AAGG;AACK,IAAA,iBAAiB,CAAC,KAAa,EAAA;AACnC,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE;YACvD,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAEzE,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;;AAG5C,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAE3B,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KAC7B;AAED;;;AAGG;IACK,YAAY,GAAA;AAChB,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;AAClF,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;KACpF;AAED;;;AAGG;AACK,IAAA,gBAAgB,CAAC,KAAa,EAAA;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE;AAC3B,YAAA,OAAO,KAAK,CAAC;SAChB;AAED,QAAA,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAElF,OAAO,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;KAC3C;AAED;;;AAGG;AACK,IAAA,kBAAkB,CAAC,KAAa,EAAA;QACpC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACnD,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACpB,YAAA,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAChD,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;SAC/F;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;AAED;;;AAGG;AACK,IAAA,mBAAmB,CAAC,KAAa,EAAA;AACrC,QAAA,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAErC,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,KAAK,GAAG,EAAE;YACjC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SACrC;AAAM,aAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,KAAK,GAAG,EAAE;YACxC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SACpC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACnD,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAClB,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACxE;AAED,QAAA,OAAO,KAAK,CAAC;KAChB;AAED;;;AAGG;AACK,IAAA,WAAW,CAAC,GAAW,EAAA;QAC3B,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;KACrD;AAED;;;AAGG;IACK,uBAAuB,CAAC,SAAoB,EAAE,aAAqB,EAAA;AACvE,QAAA,IAAI,aAAa,GAAG,CAAC,EAAE;AACnB,YAAA,OAAO,SAAS,CAAC;SACpB;AACD,QAAA,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACxD,QAAA,OAAO,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;KACtG;AAED;;;;AAIG;AACK,IAAA,kBAAkB,CAAC,KAAa,EAAA;QACpC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,UAAU,GAAG,KAAK;AACjB,aAAA,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AACjB,aAAA,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,iBAAiB,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;AAC7D,aAAA,OAAO,CAAC,IAAI,MAAM,CAAC,CAAA,EAAA,EAAK,IAAI,CAAC,gBAAgB,EAAE,CAAA,CAAE,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAEnE,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,EAAE,EAAE;YACzC,UAAU,GAAG,GAAG,CAAC;SACpB;AAAM,aAAA,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACnC,YAAA,UAAU,GAAG,GAAG,GAAG,UAAU,CAAC;SACjC;AAED,QAAA,IAAI,SAAS,GAAG,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC;AAC1C,QAAA,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE;AACnB,YAAA,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;SAChC;AAED,QAAA,IAAI,UAAU,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACpC,YAAA,SAAS,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;SACnC;AAED,QAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC;KACnE;AAED;;;;AAIG;AACK,IAAA,aAAa,CAAC,OAA2B,EAAA;AAC7C,QAAA,IAAI,UAAU,GAAG,OAAO,YAAY,SAAS,GAAG,OAAO,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AAEjF,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAEzF,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;AAEpG,QAAA,IAAI,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAEpE,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAC5D,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEjC,MAAM,gBAAgB,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;aAC7D,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;aACtC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvC,QAAA,MAAM,sBAAsB,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;QAErE,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAChC,IAAI,CAAC,gBAAgB,EAAE,EACvB,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAC5D,CAAC;AAEF,QAAA,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,MAAM,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;AAE7F,QAAA,OAAO,WAAW,GAAG,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,WAAW,GAAG,gBAAgB,CAAC;KACpG;AAED;;;;;AAKG;AACK,IAAA,YAAY,CAAC,cAAsB,EAAA;QACvC,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AACjD,YAAA,OAAO,IAAI,CAAC;SACf;QACD,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;AAC9D,QAAA,OAAO,SAAS,CAAC,OAAO,EAAE,CAAC;KAC9B;AAED;;;AAGG;AACK,IAAA,cAAc,CAAC,UAAyB,EAAA;AAC5C,QAAA,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE,EAAE;AACtE,YAAA,OAAO,EAAE,CAAC;SACb;AACD,QAAA,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC;AAC5C,QAAA,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE;AACnB,YAAA,OAAO,EAAE,CAAC;SACb;AACD,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;KACxC;AAED;;;;AAIG;AACK,IAAA,mBAAmB,CAAC,IAAY,EAAA;AACpC,QAAA,IAAI,IAAI,CAAC,uBAAuB,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACrD,YAAA,IAAI;AACA,gBAAA,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;AACvC,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE;AACrB,oBAAA,OAAO,UAAU,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;iBACrE;aACJ;AAAC,YAAA,MAAM;AACJ,gBAAA,KAAK,CAAC,CAAC;aACV;SACJ;AACD,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;KACzC;AAED;;;AAGG;IACK,UAAU,CAAC,KAAa,EAAE,YAAqB,EAAA;AACnD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAC5C,IAAI,QAAQ,GAAG,KAAK,CAAC;QAErB,IAAI,YAAY,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC3C,YAAA,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;SAC7B;aAAM,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAClD,YAAA,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACpC;aAAM;YACH,OAAO;SACV;QAED,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC/C,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KAC7B;AAEM,IAAA,UAAU,CAAC,KAAoB,EAAA;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE;YACvD,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B;QACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAC1E,IAAI,QAAQ,EAAE;YACV,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAClD,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC;AAChF,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;SAC/E;aAAM;YACH,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAClD,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;SACrF;KACJ;AAEM,IAAA,gBAAgB,CAAC,EAAkC,EAAA;AACtD,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACtB;AAEM,IAAA,iBAAiB,CAAC,EAAc,EAAA;AACnC,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;AAEM,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;KACpF;AAEM,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACpC,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAE5B,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,OAAO,IAAI,CAAC;SACf;AAED,QAAA,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AAEvC,QAAA,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE;AACrB,YAAA,OAAO,IAAI,CAAC;SACf;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,YAAY,GAAG,CAAC,EAAE;AAC3C,YAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;SACvC;AAED,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,QAAQ,KAAK,SAAS,IAAI,YAAY,GAAG,QAAQ,EAAE;YACnD,OAAO;AACH,gBAAA,GAAG,EAAE;AACD,oBAAA,GAAG,EAAE,QAAQ;AACb,oBAAA,MAAM,EAAE,YAAY;AACvB,iBAAA;aACJ,CAAC;SACL;AAED,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,QAAQ,KAAK,SAAS,IAAI,YAAY,GAAG,QAAQ,EAAE;YACnD,OAAO;AACH,gBAAA,GAAG,EAAE;AACD,oBAAA,GAAG,EAAE,QAAQ;AACb,oBAAA,MAAM,EAAE,YAAY;AACvB,iBAAA;aACJ,CAAC;SACL;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAExC,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAC7D,OAAO;AACH,gBAAA,sBAAsB,EAAE;AACpB,oBAAA,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE;oBAC5B,MAAM,EAAE,WAAW,CAAC,MAAM;AAC7B,iBAAA;aACJ,CAAC;SACL;AAED,QAAA,OAAO,IAAI,CAAC;KACf;wGApjBQ,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,EAblB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,wBAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACnD,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACnD,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;AACJ,SAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAEQ,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAzBhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,iBAAiB;AAC5B,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,QAAQ,EAAE,UAAU;AACpB,wBAAA,SAAS,EAAE,iBAAiB;AAC5B,wBAAA,WAAW,EAAE,mBAAmB;AAChC,wBAAA,YAAY,EAAE,oBAAoB;AAClC,wBAAA,oBAAoB,EAAE,SAAS;AAClC,qBAAA;AACD,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,0BAA0B,CAAC;AACnD,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;AACD,wBAAA;AACI,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,0BAA0B,CAAC;AACnD,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;;MC/DY,kBAAkB,CAAA;wGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAlB,kBAAkB,EAAA,OAAA,EAAA,CAHjB,oBAAoB,CAAA,EAAA,OAAA,EAAA,CACpB,oBAAoB,CAAA,EAAA,CAAA,CAAA;yGAErB,kBAAkB,EAAA,CAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,oBAAoB,CAAC;oBAC/B,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAClC,iBAAA,CAAA;;;ACPD;;AAEG;;;;"}
|
|
@@ -5,7 +5,6 @@ import { LocaleService } from '@seniorsistemas/angular-components/locale';
|
|
|
5
5
|
import { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';
|
|
6
6
|
import { of } from 'rxjs';
|
|
7
7
|
import { map } from 'rxjs/operators';
|
|
8
|
-
import { CommonModule } from '@angular/common';
|
|
9
8
|
|
|
10
9
|
/**
|
|
11
10
|
* @description Service for formatting numeric values using the browser's `Intl.NumberFormat` API.
|
|
@@ -138,23 +137,25 @@ class NumericPipe {
|
|
|
138
137
|
})));
|
|
139
138
|
}
|
|
140
139
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumericPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
141
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: NumericPipe, name: "numeric" });
|
|
140
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: NumericPipe, isStandalone: true, name: "numeric" });
|
|
142
141
|
}
|
|
143
142
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumericPipe, decorators: [{
|
|
144
143
|
type: Pipe,
|
|
145
|
-
args: [{
|
|
144
|
+
args: [{
|
|
145
|
+
name: 'numeric',
|
|
146
|
+
standalone: true,
|
|
147
|
+
}]
|
|
146
148
|
}] });
|
|
147
149
|
|
|
148
150
|
class NumericModule {
|
|
149
151
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumericModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
150
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: NumericModule,
|
|
151
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumericModule
|
|
152
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: NumericModule, imports: [NumericPipe], exports: [NumericPipe] });
|
|
153
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumericModule });
|
|
152
154
|
}
|
|
153
155
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumericModule, decorators: [{
|
|
154
156
|
type: NgModule,
|
|
155
157
|
args: [{
|
|
156
|
-
imports: [
|
|
157
|
-
declarations: [NumericPipe],
|
|
158
|
+
imports: [NumericPipe],
|
|
158
159
|
exports: [NumericPipe],
|
|
159
160
|
}]
|
|
160
161
|
}] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-numeric.mjs","sources":["../../projects/angular-components/numeric/src/lib/numeric.service.ts","../../projects/angular-components/numeric/src/lib/numeric.pipe.ts","../../projects/angular-components/numeric/src/lib/numeric.module.ts","../../projects/angular-components/numeric/src/seniorsistemas-angular-components-numeric.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { currencies, Currency } from '@seniorsistemas/angular-components/currency';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport BigNumber from 'bignumber.js';\n\n/**\n * @description Service for formatting numeric values using the browser's `Intl.NumberFormat` API.\n * Automatically uses the locale configured in `LocaleService` unless explicitly overridden.\n * Supports `BigNumber`, plain numbers, and numeric strings, as well as currency display styles.\n *\n * @example\n * ```typescript\n * // Inject the service\n * const numericService = inject(NumericService);\n *\n * // Format a number with the active locale\n * const formatted = numericService.instant(1234567.89);\n *\n * // Format as currency\n * const currency = numericService.instant(1234.5, {\n * numberFormatOptions: { style: 'currency', currency: 'BRL' }\n * });\n * ```\n * @category Numeric\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class NumericService {\n private readonly localeService = inject(LocaleService);\n\n\n /**\n * Wrapper around Intl.NumberFormat that returns the localized value using the user's locale by default(platform's preferential language).\n * This method should only be used after the localeService has been initialized by the host application, either by a resolver or a manual call.\n * Can be overwritten by the provided Intl.NumberFormatOptions.\n * Documentation is available at {@link https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat Intl.NumberFormatOptions}.\n * @param {number | string | BigNumber} value The value to be formatted.\n * @param options Locale and numberFormatOptions that overwrites the default Intl.NumberFormatOptions.\n * @return `string` The formatted value.\n */\n instant(\n value: number | string | BigNumber,\n options?: {\n locale?: string;\n numberFormatOptions?: Intl.NumberFormatOptions;\n },\n ): string | null {\n if (isNullOrUndefined(value)) return null;\n\n options = {\n ...options,\n locale: options?.locale ?? this.localeService.getLocaleOptions()?.locale ?? 'pt-BR',\n numberFormatOptions: {\n useGrouping: true,\n ...options?.numberFormatOptions,\n currency:\n options?.numberFormatOptions?.style === 'currency'\n ? (options?.numberFormatOptions?.currency ?? 'BRL')\n : undefined,\n currencyDisplay:\n options?.numberFormatOptions?.style === 'currency'\n ? (options?.numberFormatOptions?.currencyDisplay ?? 'narrowSymbol')\n : undefined,\n minimumFractionDigits:\n (options?.numberFormatOptions?.minimumFractionDigits ?? options?.numberFormatOptions?.currency)\n ? (this.getCurrencyMinimumFractionDigits(options?.numberFormatOptions?.currency! as Currency) ??\n undefined)\n : undefined,\n roundingMode: 'trunc',\n },\n };\n\n // From https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat\n return new Intl.NumberFormat(options.locale, options.numberFormatOptions).format(\n this.getType(value) === 'number' || this.getType(value) === 'string'\n ? value\n : ((value as BigNumber).toString() as any),\n );\n }\n\n private getCurrencyMinimumFractionDigits(currency: Currency): number | null {\n if (!currency) return null;\n\n return currencies[currency]?.scale;\n }\n\n private getType(value: any): string {\n // From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof\n\n if (value === null) return 'null';\n if (value === undefined) return 'undefined';\n\n const baseType = typeof value;\n\n // Primitive types\n if (baseType !== 'object' && baseType !== 'function') {\n return baseType;\n }\n\n // Symbol.toStringTag often specifies the \"display name\" of the\n // object's class. It's used in Object.prototype.toString().\n const tag = value[Symbol.toStringTag];\n\n if (typeof tag === 'string') {\n return tag;\n }\n\n // If it's a function whose source code starts with the \"class\" keyword\n if (baseType === 'function' && Function.prototype.toString.call(value).startsWith('class')) {\n return 'class';\n }\n\n // The name of the constructor; for example `Array`, `GeneratorFunction`,\n // `Number`, `String`, `Boolean` or `MyCustomClass`\n const className = value.constructor.name;\n\n if (typeof className === 'string' && className !== '') {\n return className;\n }\n\n // At this point there's no robust way to get the type of value,\n // so we use the base implementation.\n return baseType;\n }\n}\n\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport BigNumber from 'bignumber.js';\nimport { of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { NumericService } from './numeric.service';\n\n/**\n * @description Angular pipe for formatting numeric values according to the active locale.\n * Wraps `NumericService.instant()` and reactively responds to locale changes via `LocaleService`.\n * Accepts an optional `locale` override and `Intl.NumberFormatOptions` for fine-grained control.\n *\n * @example\n * ```html\n * <!-- Basic usage -->\n * {{ 1234.56 | numeric | async }}\n *\n * <!-- With locale override and fraction digits -->\n * {{ 1234.56 | numeric:{ locale: 'en-US', numberFormatOptions: { minimumFractionDigits: 2 } } | async }}\n * ```\n * @category Numeric\n */\n@Pipe({ name: 'numeric' })\nexport class NumericPipe implements PipeTransform {\n private readonly numericService = inject(NumericService);\n private readonly localeService = inject(LocaleService);\n\n\n transform(\n value: number | string | BigNumber,\n options?: {\n locale?: string;\n numberFormatOptions?: Intl.NumberFormatOptions;\n },\n ) {\n return options?.locale\n ? of(this.numericService.instant(value, options))\n : this.localeService.getLocale().pipe(\n map((locale) =>\n this.numericService.instant(value, {\n locale,\n numberFormatOptions: options?.numberFormatOptions,\n }),\n ),\n );\n }\n}\n\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { NumericPipe } from '../lib/numeric.pipe';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [NumericPipe],\r\n exports: [NumericPipe],\r\n})\r\nexport class NumericModule {}\r\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-numeric.mjs","sources":["../../projects/angular-components/numeric/src/lib/numeric.service.ts","../../projects/angular-components/numeric/src/lib/numeric.pipe.ts","../../projects/angular-components/numeric/src/lib/numeric.module.ts","../../projects/angular-components/numeric/src/seniorsistemas-angular-components-numeric.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { currencies, Currency } from '@seniorsistemas/angular-components/currency';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport BigNumber from 'bignumber.js';\n\n/**\n * @description Service for formatting numeric values using the browser's `Intl.NumberFormat` API.\n * Automatically uses the locale configured in `LocaleService` unless explicitly overridden.\n * Supports `BigNumber`, plain numbers, and numeric strings, as well as currency display styles.\n *\n * @example\n * ```typescript\n * // Inject the service\n * const numericService = inject(NumericService);\n *\n * // Format a number with the active locale\n * const formatted = numericService.instant(1234567.89);\n *\n * // Format as currency\n * const currency = numericService.instant(1234.5, {\n * numberFormatOptions: { style: 'currency', currency: 'BRL' }\n * });\n * ```\n * @category Numeric\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class NumericService {\n private readonly localeService = inject(LocaleService);\n\n\n /**\n * Wrapper around Intl.NumberFormat that returns the localized value using the user's locale by default(platform's preferential language).\n * This method should only be used after the localeService has been initialized by the host application, either by a resolver or a manual call.\n * Can be overwritten by the provided Intl.NumberFormatOptions.\n * Documentation is available at {@link https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat Intl.NumberFormatOptions}.\n * @param {number | string | BigNumber} value The value to be formatted.\n * @param options Locale and numberFormatOptions that overwrites the default Intl.NumberFormatOptions.\n * @return `string` The formatted value.\n */\n instant(\n value: number | string | BigNumber,\n options?: {\n locale?: string;\n numberFormatOptions?: Intl.NumberFormatOptions;\n },\n ): string | null {\n if (isNullOrUndefined(value)) return null;\n\n options = {\n ...options,\n locale: options?.locale ?? this.localeService.getLocaleOptions()?.locale ?? 'pt-BR',\n numberFormatOptions: {\n useGrouping: true,\n ...options?.numberFormatOptions,\n currency:\n options?.numberFormatOptions?.style === 'currency'\n ? (options?.numberFormatOptions?.currency ?? 'BRL')\n : undefined,\n currencyDisplay:\n options?.numberFormatOptions?.style === 'currency'\n ? (options?.numberFormatOptions?.currencyDisplay ?? 'narrowSymbol')\n : undefined,\n minimumFractionDigits:\n (options?.numberFormatOptions?.minimumFractionDigits ?? options?.numberFormatOptions?.currency)\n ? (this.getCurrencyMinimumFractionDigits(options?.numberFormatOptions?.currency! as Currency) ??\n undefined)\n : undefined,\n roundingMode: 'trunc',\n },\n };\n\n // From https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat\n return new Intl.NumberFormat(options.locale, options.numberFormatOptions).format(\n this.getType(value) === 'number' || this.getType(value) === 'string'\n ? value\n : ((value as BigNumber).toString() as any),\n );\n }\n\n private getCurrencyMinimumFractionDigits(currency: Currency): number | null {\n if (!currency) return null;\n\n return currencies[currency]?.scale;\n }\n\n private getType(value: any): string {\n // From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof\n\n if (value === null) return 'null';\n if (value === undefined) return 'undefined';\n\n const baseType = typeof value;\n\n // Primitive types\n if (baseType !== 'object' && baseType !== 'function') {\n return baseType;\n }\n\n // Symbol.toStringTag often specifies the \"display name\" of the\n // object's class. It's used in Object.prototype.toString().\n const tag = value[Symbol.toStringTag];\n\n if (typeof tag === 'string') {\n return tag;\n }\n\n // If it's a function whose source code starts with the \"class\" keyword\n if (baseType === 'function' && Function.prototype.toString.call(value).startsWith('class')) {\n return 'class';\n }\n\n // The name of the constructor; for example `Array`, `GeneratorFunction`,\n // `Number`, `String`, `Boolean` or `MyCustomClass`\n const className = value.constructor.name;\n\n if (typeof className === 'string' && className !== '') {\n return className;\n }\n\n // At this point there's no robust way to get the type of value,\n // so we use the base implementation.\n return baseType;\n }\n}\n\n","import { Pipe, PipeTransform, inject } from '@angular/core';\r\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\r\nimport BigNumber from 'bignumber.js';\r\nimport { of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { NumericService } from './numeric.service';\r\n\r\n/**\r\n * @description Angular pipe for formatting numeric values according to the active locale.\r\n * Wraps `NumericService.instant()` and reactively responds to locale changes via `LocaleService`.\r\n * Accepts an optional `locale` override and `Intl.NumberFormatOptions` for fine-grained control.\r\n *\r\n * @example\r\n * ```html\r\n * <!-- Basic usage -->\r\n * {{ 1234.56 | numeric | async }}\r\n *\r\n * <!-- With locale override and fraction digits -->\r\n * {{ 1234.56 | numeric:{ locale: 'en-US', numberFormatOptions: { minimumFractionDigits: 2 } } | async }}\r\n * ```\r\n * @category Numeric\r\n */\r\n@Pipe({\r\n name: 'numeric',\r\n standalone: true,\r\n})\r\nexport class NumericPipe implements PipeTransform {\r\n private readonly numericService = inject(NumericService);\r\n private readonly localeService = inject(LocaleService);\r\n\r\n transform(\r\n value: number | string | BigNumber,\r\n options?: {\r\n locale?: string;\r\n numberFormatOptions?: Intl.NumberFormatOptions;\r\n },\r\n ) {\r\n return options?.locale\r\n ? of(this.numericService.instant(value, options))\r\n : this.localeService.getLocale().pipe(\r\n map((locale) =>\r\n this.numericService.instant(value, {\r\n locale,\r\n numberFormatOptions: options?.numberFormatOptions,\r\n }),\r\n ),\r\n );\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { NumericPipe } from '../lib/numeric.pipe';\r\n\r\n@NgModule({\r\n imports: [NumericPipe],\r\n exports: [NumericPipe],\r\n})\r\nexport class NumericModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,13 @@
|
|
|
1
|
-
import * as i1 from '@angular/common';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
1
|
import * as i0 from '@angular/core';
|
|
4
2
|
import { EventEmitter, input, TemplateRef, Component, Input, Output, ContentChild, ViewChild, HostListener, contentChildren, viewChild, NgModule } from '@angular/core';
|
|
5
|
-
import
|
|
3
|
+
import { BadgeComponent } from '@seniorsistemas/angular-components/badge';
|
|
6
4
|
import { ThumbnailComponent, ThumbnailModule } from '@seniorsistemas/angular-components/thumbnail';
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import * as i3 from '@seniorsistemas/angular-components/button';
|
|
10
|
-
import { ButtonModule } from '@seniorsistemas/angular-components/button';
|
|
11
|
-
import * as i4 from '@seniorsistemas/angular-components/badge';
|
|
12
|
-
import { BadgeModule } from '@seniorsistemas/angular-components/badge';
|
|
5
|
+
import { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';
|
|
6
|
+
import { ButtonComponent } from '@seniorsistemas/angular-components/button';
|
|
13
7
|
import { Breakpoints } from '@seniorsistemas/angular-components/utils';
|
|
14
8
|
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
15
|
-
import
|
|
16
|
-
import {
|
|
9
|
+
import { BorderButtonComponent } from '@seniorsistemas/angular-components/shared';
|
|
10
|
+
import { NgClass, NgTemplateOutlet, SlicePipe } from '@angular/common';
|
|
17
11
|
|
|
18
12
|
class ObjectCardFieldComponent {
|
|
19
13
|
static nextId = 0;
|
|
@@ -31,11 +25,11 @@ class ObjectCardFieldComponent {
|
|
|
31
25
|
badge = input('');
|
|
32
26
|
badgeColor = input('blue');
|
|
33
27
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ObjectCardFieldComponent, selector: "s-object-card-field", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, imageSource: { classPropertyName: "imageSource", publicName: "imageSource", isSignal: false, isRequired: false, transformFunction: null }, imageAlt: { classPropertyName: "imageAlt", publicName: "imageAlt", isSignal: false, isRequired: false, transformFunction: null }, iconClass: { classPropertyName: "iconClass", publicName: "iconClass", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: false, isRequired: false, transformFunction: null }, buttonLabel: { classPropertyName: "buttonLabel", publicName: "buttonLabel", isSignal: false, isRequired: false, transformFunction: null }, buttonModel: { classPropertyName: "buttonModel", publicName: "buttonModel", isSignal: false, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, badgeColor: { classPropertyName: "badgeColor", publicName: "badgeColor", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { buttonClick: "buttonClick" }, queries: [{ propertyName: "thumbnailComponent", first: true, predicate: ThumbnailComponent, descendants: true, static: true }], viewQueries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<ng-template>\n <div class=\"container\">\n <ng-content select=\"s-thumbnail\"></ng-content>\n @if (!thumbnailComponent && (imageSource || iconClass)) {\n <s-thumbnail\n [id]=\"id + '-thumbnail'\"\n [imageSource]=\"imageSource\"\n [imageAlt]=\"imageAlt || label\"\n [iconClass]=\"iconClass ?? ''\"\n size=\"small\"\n ></s-thumbnail>\n }\n\n <div class=\"info-container\">\n <div #labelTemplate><ng-content select=\"[labelTemplate]\"></ng-content></div>\n\n @if (!labelTemplate.children.length) {\n <span\n [id]=\"id + '-label'\"\n class=\"label\"\n [sTooltip]=\"label\"\n >{{ label }}</span\n >\n }\n\n <div #descriptionTemplate>\n @if (!badge()) {\n <ng-content select=\"[descriptionTemplate]\"></ng-content>\n }\n </div>\n @if (!descriptionTemplate.children.length) {\n <span\n [id]=\"id + '-description'\"\n class=\"description\"\n [sTooltip]=\"description\"\n >{{ description }}</span\n >\n }\n\n @if (badge()) {\n <s-badge\n [text]=\"badge()\"\n [color]=\"badgeColor()\"\n [enableTruncateText]=\"true\"\n >\n </s-badge>\n }\n @if (buttonLabel) {\n <s-button\n [id]=\"id + '-button'\"\n styleClass=\"object-card-button\"\n priority=\"link\"\n [label]=\"buttonLabel\"\n [menuOptions]=\"buttonModel\"\n size=\"small\"\n (clicked)=\"buttonClick.emit($event)\"\n ></s-button>\n }\n </div>\n </div>\n</ng-template>\n\n", styles: [".container{align-items:center;display:flex;height:100%}.info-container{margin-left:10px}.info-container,.info-container span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.info-container .label{color:#999;display:block}.info-container .description{display:block}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.info-container{flex:1}}@media (max-width: 767px){.info-container,.info-container span{white-space:normal}}.info-container:only-child{margin-left:0}\n"], dependencies: [{ kind: "
|
|
28
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ObjectCardFieldComponent, isStandalone: true, selector: "s-object-card-field", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, imageSource: { classPropertyName: "imageSource", publicName: "imageSource", isSignal: false, isRequired: false, transformFunction: null }, imageAlt: { classPropertyName: "imageAlt", publicName: "imageAlt", isSignal: false, isRequired: false, transformFunction: null }, iconClass: { classPropertyName: "iconClass", publicName: "iconClass", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: false, isRequired: false, transformFunction: null }, buttonLabel: { classPropertyName: "buttonLabel", publicName: "buttonLabel", isSignal: false, isRequired: false, transformFunction: null }, buttonModel: { classPropertyName: "buttonModel", publicName: "buttonModel", isSignal: false, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, badgeColor: { classPropertyName: "badgeColor", publicName: "badgeColor", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { buttonClick: "buttonClick" }, queries: [{ propertyName: "thumbnailComponent", first: true, predicate: ThumbnailComponent, descendants: true, static: true }], viewQueries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<ng-template>\n <div class=\"container\">\n <ng-content select=\"s-thumbnail\"></ng-content>\n @if (!thumbnailComponent && (imageSource || iconClass)) {\n <s-thumbnail\n [id]=\"id + '-thumbnail'\"\n [imageSource]=\"imageSource\"\n [imageAlt]=\"imageAlt || label\"\n [iconClass]=\"iconClass ?? ''\"\n size=\"small\"\n ></s-thumbnail>\n }\n\n <div class=\"info-container\">\n <div #labelTemplate><ng-content select=\"[labelTemplate]\"></ng-content></div>\n\n @if (!labelTemplate.children.length) {\n <span\n [id]=\"id + '-label'\"\n class=\"label\"\n [sTooltip]=\"label\"\n >{{ label }}</span\n >\n }\n\n <div #descriptionTemplate>\n @if (!badge()) {\n <ng-content select=\"[descriptionTemplate]\"></ng-content>\n }\n </div>\n @if (!descriptionTemplate.children.length) {\n <span\n [id]=\"id + '-description'\"\n class=\"description\"\n [sTooltip]=\"description\"\n >{{ description }}</span\n >\n }\n\n @if (badge()) {\n <s-badge\n [text]=\"badge()\"\n [color]=\"badgeColor()\"\n [enableTruncateText]=\"true\"\n >\n </s-badge>\n }\n @if (buttonLabel) {\n <s-button\n [id]=\"id + '-button'\"\n styleClass=\"object-card-button\"\n priority=\"link\"\n [label]=\"buttonLabel\"\n [menuOptions]=\"buttonModel\"\n size=\"small\"\n (clicked)=\"buttonClick.emit($event)\"\n ></s-button>\n }\n </div>\n </div>\n</ng-template>\n\n", styles: [".container{align-items:center;display:flex;height:100%}.info-container{margin-left:10px}.info-container,.info-container span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.info-container .label{color:#999;display:block}.info-container .description{display:block}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.info-container{flex:1}}@media (max-width: 767px){.info-container,.info-container span{white-space:normal}}.info-container:only-child{margin-left:0}\n"], dependencies: [{ kind: "component", type: ThumbnailComponent, selector: "s-thumbnail", inputs: ["id", "size", "imageSource", "imageFallback", "imageAlt", "iconClass", "hasAction", "actionIconClass", "isTile", "isBrand"] }, { kind: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "component", type: BadgeComponent, selector: "s-badge", inputs: ["type", "color", "title", "text", "selectable", "iconClass", "iconPosition", "infoSign", "enableTruncateText"], outputs: ["selected"] }, { kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked"] }] });
|
|
35
29
|
}
|
|
36
30
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardFieldComponent, decorators: [{
|
|
37
31
|
type: Component,
|
|
38
|
-
args: [{ selector: 's-object-card-field', template: "<ng-template>\n <div class=\"container\">\n <ng-content select=\"s-thumbnail\"></ng-content>\n @if (!thumbnailComponent && (imageSource || iconClass)) {\n <s-thumbnail\n [id]=\"id + '-thumbnail'\"\n [imageSource]=\"imageSource\"\n [imageAlt]=\"imageAlt || label\"\n [iconClass]=\"iconClass ?? ''\"\n size=\"small\"\n ></s-thumbnail>\n }\n\n <div class=\"info-container\">\n <div #labelTemplate><ng-content select=\"[labelTemplate]\"></ng-content></div>\n\n @if (!labelTemplate.children.length) {\n <span\n [id]=\"id + '-label'\"\n class=\"label\"\n [sTooltip]=\"label\"\n >{{ label }}</span\n >\n }\n\n <div #descriptionTemplate>\n @if (!badge()) {\n <ng-content select=\"[descriptionTemplate]\"></ng-content>\n }\n </div>\n @if (!descriptionTemplate.children.length) {\n <span\n [id]=\"id + '-description'\"\n class=\"description\"\n [sTooltip]=\"description\"\n >{{ description }}</span\n >\n }\n\n @if (badge()) {\n <s-badge\n [text]=\"badge()\"\n [color]=\"badgeColor()\"\n [enableTruncateText]=\"true\"\n >\n </s-badge>\n }\n @if (buttonLabel) {\n <s-button\n [id]=\"id + '-button'\"\n styleClass=\"object-card-button\"\n priority=\"link\"\n [label]=\"buttonLabel\"\n [menuOptions]=\"buttonModel\"\n size=\"small\"\n (clicked)=\"buttonClick.emit($event)\"\n ></s-button>\n }\n </div>\n </div>\n</ng-template>\n\n", styles: [".container{align-items:center;display:flex;height:100%}.info-container{margin-left:10px}.info-container,.info-container span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.info-container .label{color:#999;display:block}.info-container .description{display:block}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.info-container{flex:1}}@media (max-width: 767px){.info-container,.info-container span{white-space:normal}}.info-container:only-child{margin-left:0}\n"] }]
|
|
32
|
+
args: [{ selector: 's-object-card-field', standalone: true, imports: [ThumbnailComponent, TooltipDirective, BadgeComponent, ButtonComponent], template: "<ng-template>\n <div class=\"container\">\n <ng-content select=\"s-thumbnail\"></ng-content>\n @if (!thumbnailComponent && (imageSource || iconClass)) {\n <s-thumbnail\n [id]=\"id + '-thumbnail'\"\n [imageSource]=\"imageSource\"\n [imageAlt]=\"imageAlt || label\"\n [iconClass]=\"iconClass ?? ''\"\n size=\"small\"\n ></s-thumbnail>\n }\n\n <div class=\"info-container\">\n <div #labelTemplate><ng-content select=\"[labelTemplate]\"></ng-content></div>\n\n @if (!labelTemplate.children.length) {\n <span\n [id]=\"id + '-label'\"\n class=\"label\"\n [sTooltip]=\"label\"\n >{{ label }}</span\n >\n }\n\n <div #descriptionTemplate>\n @if (!badge()) {\n <ng-content select=\"[descriptionTemplate]\"></ng-content>\n }\n </div>\n @if (!descriptionTemplate.children.length) {\n <span\n [id]=\"id + '-description'\"\n class=\"description\"\n [sTooltip]=\"description\"\n >{{ description }}</span\n >\n }\n\n @if (badge()) {\n <s-badge\n [text]=\"badge()\"\n [color]=\"badgeColor()\"\n [enableTruncateText]=\"true\"\n >\n </s-badge>\n }\n @if (buttonLabel) {\n <s-button\n [id]=\"id + '-button'\"\n styleClass=\"object-card-button\"\n priority=\"link\"\n [label]=\"buttonLabel\"\n [menuOptions]=\"buttonModel\"\n size=\"small\"\n (clicked)=\"buttonClick.emit($event)\"\n ></s-button>\n }\n </div>\n </div>\n</ng-template>\n\n", styles: [".container{align-items:center;display:flex;height:100%}.info-container{margin-left:10px}.info-container,.info-container span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.info-container .label{color:#999;display:block}.info-container .description{display:block}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.info-container{flex:1}}@media (max-width: 767px){.info-container,.info-container span{white-space:normal}}.info-container:only-child{margin-left:0}\n"] }]
|
|
39
33
|
}], propDecorators: { id: [{
|
|
40
34
|
type: Input
|
|
41
35
|
}], imageSource: [{
|
|
@@ -102,11 +96,11 @@ class ObjectCardMainComponent {
|
|
|
102
96
|
this.thumbnailSize = window.innerWidth <= Breakpoints.SM_MAX ? 'small' : 'medium';
|
|
103
97
|
}
|
|
104
98
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardMainComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
105
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
99
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ObjectCardMainComponent, isStandalone: true, selector: "s-object-card-main", inputs: { id: "id", imageSource: "imageSource", imageFallback: "imageFallback", imageAlt: "imageAlt", iconClass: "iconClass", hasThumbnail: "hasThumbnail", hasDescription: "hasDescription", isBrand: "isBrand", label: "label", description: "description", buttonLabel: "buttonLabel", buttonModel: "buttonModel" }, outputs: { buttonClick: "buttonClick" }, host: { listeners: { "window:resize": "onResize()" } }, queries: [{ propertyName: "thumbnailComponent", first: true, predicate: ThumbnailComponent, descendants: true, static: true }], ngImport: i0, template: "@if (hasThumbnail) {\r\n <ng-content select=\"s-thumbnail\"></ng-content>\r\n @if (!thumbnailComponent) {\r\n <s-thumbnail\r\n [id]=\"id + '-thumbnail'\"\r\n [imageSource]=\"imageSource\"\r\n [imageFallback]=\"imageFallback\"\r\n [imageAlt]=\"imageAlt || label\"\r\n [iconClass]=\"iconClass\"\r\n [size]=\"thumbnailSize\"\r\n [isBrand]=\"isBrand\"\r\n ></s-thumbnail>\r\n }\r\n}\r\n\r\n@if (hasDescription) {\r\n <div class=\"info-container\">\r\n <div #labelTemplate><ng-content select=\"[labelTemplate]\"></ng-content></div>\r\n @if (!labelTemplate.children.length) {\r\n <span\r\n [id]=\"id + '-label'\"\r\n class=\"label\"\r\n [sTooltip]=\"label\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n >{{ label }}</span\r\n >\r\n }\r\n <div #descriptionTemplate><ng-content select=\"[descriptionTemplate]\"></ng-content></div>\r\n @if (!descriptionTemplate.children.length) {\r\n <span\r\n [id]=\"id + '-description'\"\r\n class=\"description\"\r\n [sTooltip]=\"description\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n >{{ description }}</span\r\n >\r\n }\r\n @if (buttonLabel) {\r\n <s-button\r\n [id]=\"id + '-button'\"\r\n styleClass=\"object-card-button\"\r\n priority=\"link\"\r\n [label]=\"buttonLabel\"\r\n [menuOptions]=\"buttonModel\"\r\n size=\"small\"\r\n (clicked)=\"buttonClick.emit($event)\"\r\n ></s-button>\r\n }\r\n </div>\r\n}\r\n", styles: [":host{align-items:center;display:flex;min-height:70px}.info-container{margin-left:10px;flex:1}.info-container,.info-container span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.info-container .label{display:block;font-weight:700}.info-container .description{color:#999;display:block}@media (max-width: 767px){.info-container,.info-container span{white-space:normal}}\n"], dependencies: [{ kind: "component", type: ThumbnailComponent, selector: "s-thumbnail", inputs: ["id", "size", "imageSource", "imageFallback", "imageAlt", "iconClass", "hasAction", "actionIconClass", "isTile", "isBrand"] }, { kind: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked"] }] });
|
|
106
100
|
}
|
|
107
101
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardMainComponent, decorators: [{
|
|
108
102
|
type: Component,
|
|
109
|
-
args: [{ selector: 's-object-card-main', template: "
|
|
103
|
+
args: [{ selector: 's-object-card-main', standalone: true, imports: [ThumbnailComponent, TooltipDirective, ButtonComponent], template: "@if (hasThumbnail) {\r\n <ng-content select=\"s-thumbnail\"></ng-content>\r\n @if (!thumbnailComponent) {\r\n <s-thumbnail\r\n [id]=\"id + '-thumbnail'\"\r\n [imageSource]=\"imageSource\"\r\n [imageFallback]=\"imageFallback\"\r\n [imageAlt]=\"imageAlt || label\"\r\n [iconClass]=\"iconClass\"\r\n [size]=\"thumbnailSize\"\r\n [isBrand]=\"isBrand\"\r\n ></s-thumbnail>\r\n }\r\n}\r\n\r\n@if (hasDescription) {\r\n <div class=\"info-container\">\r\n <div #labelTemplate><ng-content select=\"[labelTemplate]\"></ng-content></div>\r\n @if (!labelTemplate.children.length) {\r\n <span\r\n [id]=\"id + '-label'\"\r\n class=\"label\"\r\n [sTooltip]=\"label\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n >{{ label }}</span\r\n >\r\n }\r\n <div #descriptionTemplate><ng-content select=\"[descriptionTemplate]\"></ng-content></div>\r\n @if (!descriptionTemplate.children.length) {\r\n <span\r\n [id]=\"id + '-description'\"\r\n class=\"description\"\r\n [sTooltip]=\"description\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n >{{ description }}</span\r\n >\r\n }\r\n @if (buttonLabel) {\r\n <s-button\r\n [id]=\"id + '-button'\"\r\n styleClass=\"object-card-button\"\r\n priority=\"link\"\r\n [label]=\"buttonLabel\"\r\n [menuOptions]=\"buttonModel\"\r\n size=\"small\"\r\n (clicked)=\"buttonClick.emit($event)\"\r\n ></s-button>\r\n }\r\n </div>\r\n}\r\n", styles: [":host{align-items:center;display:flex;min-height:70px}.info-container{margin-left:10px;flex:1}.info-container,.info-container span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.info-container .label{display:block;font-weight:700}.info-container .description{color:#999;display:block}@media (max-width: 767px){.info-container,.info-container span{white-space:normal}}\n"] }]
|
|
110
104
|
}], propDecorators: { id: [{
|
|
111
105
|
type: Input
|
|
112
106
|
}], imageSource: [{
|
|
@@ -227,7 +221,7 @@ class ObjectCardComponent {
|
|
|
227
221
|
this.expandedChange.emit(this.expanded);
|
|
228
222
|
}
|
|
229
223
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
230
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ObjectCardComponent, selector: "s-object-card", inputs: { id: "id", expanded: "expanded", expandTooltip: "expandTooltip", collapseTooltip: "collapseTooltip", fieldsMinWidth: "fieldsMinWidth", severity: "severity", borderButtonOptions: "borderButtonOptions" }, outputs: { expandedChange: "expandedChange" }, queries: [{ propertyName: "fields", predicate: ObjectCardFieldComponent, descendants: true, isSignal: true }, { propertyName: "main", first: true, predicate: ObjectCardMainComponent, descendants: true, static: true }], viewQueries: [{ propertyName: "container", first: true, predicate: ["contentContainer"], descendants: true, isSignal: true }, { propertyName: "cardMainContainer", first: true, predicate: ["cardMainContainer"], descendants: true, isSignal: true }, { propertyName: "iconContainer", first: true, predicate: ["iconContainer"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n [id]=\"id\"\n class=\"object-card-container\"\n>\n @if (borderButtonOptions?.visible ? borderButtonOptions?.visible(severity) : false) {\n <s-border-button\n [severity]=\"severity\"\n [options]=\"borderButtonOptions\"\n class=\"object-card__border-button\"\n [@BorderButtonAnimation]\n ></s-border-button>\n }\n\n <div\n [id]=\"id + '-main-container'\"\n class=\"main-container\"\n #contentContainer\n [ngClass]=\"{\n 'with-hidden-fields': fields().length > maxVisibleFields,\n 'with-visible-fields': fields().length && maxVisibleFields,\n 'main-container--severity-default': severity === 'default',\n 'main-container--severity-info': severity === 'info',\n 'main-container--severity-warn': severity === 'warn',\n 'main-container--severity-error': severity === 'error',\n 'main-container--severity-success': severity === 'success',\n }\"\n >\n <div class=\"object-content\">\n <div\n class=\"s-object-card-main\"\n #cardMainContainer\n [style.min-width.px]=\"fieldsMinWidth\"\n >\n <ng-content select=\"s-object-card-main\"></ng-content>\n </div>\n\n @if (maxVisibleFields && fields().length) {\n <div class=\"divider\"></div>\n }\n\n @for (field of fields() | slice: 0 : maxVisibleFields; track field.id) {\n <div\n class=\"s-object-card-field\"\n [style.min-width.px]=\"fieldsMinWidth\"\n >\n <ng-container *ngTemplateOutlet=\"field.content\"></ng-container>\n </div>\n }\n </div>\n\n <div\n [id]=\"id + '-expand-icon-container'\"\n class=\"expand-icon-container\"\n #iconContainer\n (click)=\"toggle()\"\n [sTooltip]=\"expanded ? collapseTooltip : expandTooltip\"\n >\n <span\n [id]=\"id + '-expand-icon'\"\n class=\"expand-icon fa\"\n [ngClass]=\"{ 'fa-minus': expanded, 'fa-plus': !expanded }\"\n ></span>\n </div>\n </div>\n\n <div\n [id]=\"id + '-expandable-container'\"\n [@expandableContent]=\"expanded\"\n class=\"expandable-container\"\n [ngClass]=\"{\n 'expandable-container--severity-default': severity === 'default',\n 'expandable-container--severity-info': severity === 'info',\n 'expandable-container--severity-warn': severity === 'warn',\n 'expandable-container--severity-error': severity === 'error',\n 'expandable-container--severity-success': severity === 'success',\n }\"\n >\n <div class=\"childlist\">\n @for (field of fields() | slice: maxVisibleFields : fields().length; track field.id) {\n <div class=\"s-object-card-field\">\n <ng-container *ngTemplateOutlet=\"field.content\"></ng-container>\n </div>\n }\n </div>\n </div>\n</div>\n", styles: [":host{display:block}:host::ng-deep .sds-badge{height:auto;white-space:normal}.container{margin-bottom:20px;position:relative}.main-container{display:flex}.main-container,.expandable-container{background-color:#fff;border:1px solid #cccccc;position:relative;overflow:hidden;width:100%}.expandable-container--severity-default{border-color:#ccc;border-top:initial}.expandable-container--severity-info{transition:border-color .5s ease;border-color:#428bca;border-top:initial}.expandable-container--severity-warn{transition:border-color .5s ease;border-color:#f8931f;border-top:initial}.expandable-container--severity-error{transition:border-color .5s ease;border-color:#c13018;border-top:initial}.expandable-container--severity-success{transition:border-color .5s ease;border-color:#0c9348;border-top:initial}.main-container--severity-default{border-color:#ccc}.main-container--severity-info{transition:border-color .5s ease;border-color:#428bca}.main-container--severity-warn{transition:border-color .5s ease;border-color:#f8931f}.main-container--severity-error{transition:border-color .5s ease;border-color:#c13018}.main-container--severity-success{transition:border-color .5s ease;border-color:#0c9348}.object-card__border-button{position:absolute;top:-13px;right:15px;z-index:1}.expandable-container{border-top:none;box-shadow:inset 0 6px 4px -4px #ddd;margin-top:-1px}.expand-icon-container{display:flex;text-align:center;align-items:center;cursor:pointer;padding:12px}.expand-icon{flex:1}.object-content{display:flex;width:100%}.s-object-card-main{overflow:hidden;padding:15px}.main-container.with-visible-fields .s-object-card-main{max-width:30%}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.main-container.with-visible-fields .s-object-card-main{width:20%}}.s-object-card-field{overflow:hidden;height:100%}.main-container .s-object-card-field{padding:15px}.main-container .divider{width:1px;flex-shrink:0;background-color:#ccc;margin:15px -1px 15px 0}.main-container.with-hidden-fields .object-content{width:calc(100% - 35px)}.main-container.with-hidden-fields .expand-icon-container{display:flex}::ng-deep .object-card-button{padding-left:0!important;padding-right:10px!important;border:none!important;height:auto!important;min-width:auto!important;text-align:left!important}@media (max-width: 767px){.s-object-card-main{max-width:calc(100% - 50px)}}.childlist{width:100%;display:flex;flex-wrap:wrap;padding:1em;gap:1em}\n"], dependencies: [{ kind: "directive", type:
|
|
224
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ObjectCardComponent, isStandalone: true, selector: "s-object-card", inputs: { id: "id", expanded: "expanded", expandTooltip: "expandTooltip", collapseTooltip: "collapseTooltip", fieldsMinWidth: "fieldsMinWidth", severity: "severity", borderButtonOptions: "borderButtonOptions" }, outputs: { expandedChange: "expandedChange" }, queries: [{ propertyName: "fields", predicate: ObjectCardFieldComponent, descendants: true, isSignal: true }, { propertyName: "main", first: true, predicate: ObjectCardMainComponent, descendants: true, static: true }], viewQueries: [{ propertyName: "container", first: true, predicate: ["contentContainer"], descendants: true, isSignal: true }, { propertyName: "cardMainContainer", first: true, predicate: ["cardMainContainer"], descendants: true, isSignal: true }, { propertyName: "iconContainer", first: true, predicate: ["iconContainer"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n [id]=\"id\"\n class=\"object-card-container\"\n>\n @if (borderButtonOptions?.visible ? borderButtonOptions?.visible(severity) : false) {\n <s-border-button\n [severity]=\"severity\"\n [options]=\"borderButtonOptions\"\n class=\"object-card__border-button\"\n [@BorderButtonAnimation]\n ></s-border-button>\n }\n\n <div\n [id]=\"id + '-main-container'\"\n class=\"main-container\"\n #contentContainer\n [ngClass]=\"{\n 'with-hidden-fields': fields().length > maxVisibleFields,\n 'with-visible-fields': fields().length && maxVisibleFields,\n 'main-container--severity-default': severity === 'default',\n 'main-container--severity-info': severity === 'info',\n 'main-container--severity-warn': severity === 'warn',\n 'main-container--severity-error': severity === 'error',\n 'main-container--severity-success': severity === 'success',\n }\"\n >\n <div class=\"object-content\">\n <div\n class=\"s-object-card-main\"\n #cardMainContainer\n [style.min-width.px]=\"fieldsMinWidth\"\n >\n <ng-content select=\"s-object-card-main\"></ng-content>\n </div>\n\n @if (maxVisibleFields && fields().length) {\n <div class=\"divider\"></div>\n }\n\n @for (field of fields() | slice: 0 : maxVisibleFields; track field.id) {\n <div\n class=\"s-object-card-field\"\n [style.min-width.px]=\"fieldsMinWidth\"\n >\n <ng-container *ngTemplateOutlet=\"field.content\"></ng-container>\n </div>\n }\n </div>\n\n <div\n [id]=\"id + '-expand-icon-container'\"\n class=\"expand-icon-container\"\n #iconContainer\n (click)=\"toggle()\"\n [sTooltip]=\"expanded ? collapseTooltip : expandTooltip\"\n >\n <span\n [id]=\"id + '-expand-icon'\"\n class=\"expand-icon fa\"\n [ngClass]=\"{ 'fa-minus': expanded, 'fa-plus': !expanded }\"\n ></span>\n </div>\n </div>\n\n <div\n [id]=\"id + '-expandable-container'\"\n [@expandableContent]=\"expanded\"\n class=\"expandable-container\"\n [ngClass]=\"{\n 'expandable-container--severity-default': severity === 'default',\n 'expandable-container--severity-info': severity === 'info',\n 'expandable-container--severity-warn': severity === 'warn',\n 'expandable-container--severity-error': severity === 'error',\n 'expandable-container--severity-success': severity === 'success',\n }\"\n >\n <div class=\"childlist\">\n @for (field of fields() | slice: maxVisibleFields : fields().length; track field.id) {\n <div class=\"s-object-card-field\">\n <ng-container *ngTemplateOutlet=\"field.content\"></ng-container>\n </div>\n }\n </div>\n </div>\n</div>\n", styles: [":host{display:block}:host::ng-deep .sds-badge{height:auto;white-space:normal}.container{margin-bottom:20px;position:relative}.main-container{display:flex}.main-container,.expandable-container{background-color:#fff;border:1px solid #cccccc;position:relative;overflow:hidden;width:100%}.expandable-container--severity-default{border-color:#ccc;border-top:initial}.expandable-container--severity-info{transition:border-color .5s ease;border-color:#428bca;border-top:initial}.expandable-container--severity-warn{transition:border-color .5s ease;border-color:#f8931f;border-top:initial}.expandable-container--severity-error{transition:border-color .5s ease;border-color:#c13018;border-top:initial}.expandable-container--severity-success{transition:border-color .5s ease;border-color:#0c9348;border-top:initial}.main-container--severity-default{border-color:#ccc}.main-container--severity-info{transition:border-color .5s ease;border-color:#428bca}.main-container--severity-warn{transition:border-color .5s ease;border-color:#f8931f}.main-container--severity-error{transition:border-color .5s ease;border-color:#c13018}.main-container--severity-success{transition:border-color .5s ease;border-color:#0c9348}.object-card__border-button{position:absolute;top:-13px;right:15px;z-index:1}.expandable-container{border-top:none;box-shadow:inset 0 6px 4px -4px #ddd;margin-top:-1px}.expand-icon-container{display:flex;text-align:center;align-items:center;cursor:pointer;padding:12px}.expand-icon{flex:1}.object-content{display:flex;width:100%}.s-object-card-main{overflow:hidden;padding:15px}.main-container.with-visible-fields .s-object-card-main{max-width:30%}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.main-container.with-visible-fields .s-object-card-main{width:20%}}.s-object-card-field{overflow:hidden;height:100%}.main-container .s-object-card-field{padding:15px}.main-container .divider{width:1px;flex-shrink:0;background-color:#ccc;margin:15px -1px 15px 0}.main-container.with-hidden-fields .object-content{width:calc(100% - 35px)}.main-container.with-hidden-fields .expand-icon-container{display:flex}::ng-deep .object-card-button{padding-left:0!important;padding-right:10px!important;border:none!important;height:auto!important;min-width:auto!important;text-align:left!important}@media (max-width: 767px){.s-object-card-main{max-width:calc(100% - 50px)}}.childlist{width:100%;display:flex;flex-wrap:wrap;padding:1em;gap:1em}\n"], dependencies: [{ kind: "component", type: BorderButtonComponent, selector: "s-border-button", inputs: ["severity", "options"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "pipe", type: SlicePipe, name: "slice" }], animations: [
|
|
231
225
|
trigger('expandableContent', [
|
|
232
226
|
state('*', style({
|
|
233
227
|
height: '0',
|
|
@@ -279,7 +273,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
279
273
|
animate('300ms ease', style({ transform: 'scaleY(0)', opacity: 0 })),
|
|
280
274
|
]),
|
|
281
275
|
]),
|
|
282
|
-
], template: "<div\n [id]=\"id\"\n class=\"object-card-container\"\n>\n @if (borderButtonOptions?.visible ? borderButtonOptions?.visible(severity) : false) {\n <s-border-button\n [severity]=\"severity\"\n [options]=\"borderButtonOptions\"\n class=\"object-card__border-button\"\n [@BorderButtonAnimation]\n ></s-border-button>\n }\n\n <div\n [id]=\"id + '-main-container'\"\n class=\"main-container\"\n #contentContainer\n [ngClass]=\"{\n 'with-hidden-fields': fields().length > maxVisibleFields,\n 'with-visible-fields': fields().length && maxVisibleFields,\n 'main-container--severity-default': severity === 'default',\n 'main-container--severity-info': severity === 'info',\n 'main-container--severity-warn': severity === 'warn',\n 'main-container--severity-error': severity === 'error',\n 'main-container--severity-success': severity === 'success',\n }\"\n >\n <div class=\"object-content\">\n <div\n class=\"s-object-card-main\"\n #cardMainContainer\n [style.min-width.px]=\"fieldsMinWidth\"\n >\n <ng-content select=\"s-object-card-main\"></ng-content>\n </div>\n\n @if (maxVisibleFields && fields().length) {\n <div class=\"divider\"></div>\n }\n\n @for (field of fields() | slice: 0 : maxVisibleFields; track field.id) {\n <div\n class=\"s-object-card-field\"\n [style.min-width.px]=\"fieldsMinWidth\"\n >\n <ng-container *ngTemplateOutlet=\"field.content\"></ng-container>\n </div>\n }\n </div>\n\n <div\n [id]=\"id + '-expand-icon-container'\"\n class=\"expand-icon-container\"\n #iconContainer\n (click)=\"toggle()\"\n [sTooltip]=\"expanded ? collapseTooltip : expandTooltip\"\n >\n <span\n [id]=\"id + '-expand-icon'\"\n class=\"expand-icon fa\"\n [ngClass]=\"{ 'fa-minus': expanded, 'fa-plus': !expanded }\"\n ></span>\n </div>\n </div>\n\n <div\n [id]=\"id + '-expandable-container'\"\n [@expandableContent]=\"expanded\"\n class=\"expandable-container\"\n [ngClass]=\"{\n 'expandable-container--severity-default': severity === 'default',\n 'expandable-container--severity-info': severity === 'info',\n 'expandable-container--severity-warn': severity === 'warn',\n 'expandable-container--severity-error': severity === 'error',\n 'expandable-container--severity-success': severity === 'success',\n }\"\n >\n <div class=\"childlist\">\n @for (field of fields() | slice: maxVisibleFields : fields().length; track field.id) {\n <div class=\"s-object-card-field\">\n <ng-container *ngTemplateOutlet=\"field.content\"></ng-container>\n </div>\n }\n </div>\n </div>\n</div>\n", styles: [":host{display:block}:host::ng-deep .sds-badge{height:auto;white-space:normal}.container{margin-bottom:20px;position:relative}.main-container{display:flex}.main-container,.expandable-container{background-color:#fff;border:1px solid #cccccc;position:relative;overflow:hidden;width:100%}.expandable-container--severity-default{border-color:#ccc;border-top:initial}.expandable-container--severity-info{transition:border-color .5s ease;border-color:#428bca;border-top:initial}.expandable-container--severity-warn{transition:border-color .5s ease;border-color:#f8931f;border-top:initial}.expandable-container--severity-error{transition:border-color .5s ease;border-color:#c13018;border-top:initial}.expandable-container--severity-success{transition:border-color .5s ease;border-color:#0c9348;border-top:initial}.main-container--severity-default{border-color:#ccc}.main-container--severity-info{transition:border-color .5s ease;border-color:#428bca}.main-container--severity-warn{transition:border-color .5s ease;border-color:#f8931f}.main-container--severity-error{transition:border-color .5s ease;border-color:#c13018}.main-container--severity-success{transition:border-color .5s ease;border-color:#0c9348}.object-card__border-button{position:absolute;top:-13px;right:15px;z-index:1}.expandable-container{border-top:none;box-shadow:inset 0 6px 4px -4px #ddd;margin-top:-1px}.expand-icon-container{display:flex;text-align:center;align-items:center;cursor:pointer;padding:12px}.expand-icon{flex:1}.object-content{display:flex;width:100%}.s-object-card-main{overflow:hidden;padding:15px}.main-container.with-visible-fields .s-object-card-main{max-width:30%}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.main-container.with-visible-fields .s-object-card-main{width:20%}}.s-object-card-field{overflow:hidden;height:100%}.main-container .s-object-card-field{padding:15px}.main-container .divider{width:1px;flex-shrink:0;background-color:#ccc;margin:15px -1px 15px 0}.main-container.with-hidden-fields .object-content{width:calc(100% - 35px)}.main-container.with-hidden-fields .expand-icon-container{display:flex}::ng-deep .object-card-button{padding-left:0!important;padding-right:10px!important;border:none!important;height:auto!important;min-width:auto!important;text-align:left!important}@media (max-width: 767px){.s-object-card-main{max-width:calc(100% - 50px)}}.childlist{width:100%;display:flex;flex-wrap:wrap;padding:1em;gap:1em}\n"] }]
|
|
276
|
+
], standalone: true, imports: [BorderButtonComponent, NgClass, NgTemplateOutlet, TooltipDirective, SlicePipe], template: "<div\n [id]=\"id\"\n class=\"object-card-container\"\n>\n @if (borderButtonOptions?.visible ? borderButtonOptions?.visible(severity) : false) {\n <s-border-button\n [severity]=\"severity\"\n [options]=\"borderButtonOptions\"\n class=\"object-card__border-button\"\n [@BorderButtonAnimation]\n ></s-border-button>\n }\n\n <div\n [id]=\"id + '-main-container'\"\n class=\"main-container\"\n #contentContainer\n [ngClass]=\"{\n 'with-hidden-fields': fields().length > maxVisibleFields,\n 'with-visible-fields': fields().length && maxVisibleFields,\n 'main-container--severity-default': severity === 'default',\n 'main-container--severity-info': severity === 'info',\n 'main-container--severity-warn': severity === 'warn',\n 'main-container--severity-error': severity === 'error',\n 'main-container--severity-success': severity === 'success',\n }\"\n >\n <div class=\"object-content\">\n <div\n class=\"s-object-card-main\"\n #cardMainContainer\n [style.min-width.px]=\"fieldsMinWidth\"\n >\n <ng-content select=\"s-object-card-main\"></ng-content>\n </div>\n\n @if (maxVisibleFields && fields().length) {\n <div class=\"divider\"></div>\n }\n\n @for (field of fields() | slice: 0 : maxVisibleFields; track field.id) {\n <div\n class=\"s-object-card-field\"\n [style.min-width.px]=\"fieldsMinWidth\"\n >\n <ng-container *ngTemplateOutlet=\"field.content\"></ng-container>\n </div>\n }\n </div>\n\n <div\n [id]=\"id + '-expand-icon-container'\"\n class=\"expand-icon-container\"\n #iconContainer\n (click)=\"toggle()\"\n [sTooltip]=\"expanded ? collapseTooltip : expandTooltip\"\n >\n <span\n [id]=\"id + '-expand-icon'\"\n class=\"expand-icon fa\"\n [ngClass]=\"{ 'fa-minus': expanded, 'fa-plus': !expanded }\"\n ></span>\n </div>\n </div>\n\n <div\n [id]=\"id + '-expandable-container'\"\n [@expandableContent]=\"expanded\"\n class=\"expandable-container\"\n [ngClass]=\"{\n 'expandable-container--severity-default': severity === 'default',\n 'expandable-container--severity-info': severity === 'info',\n 'expandable-container--severity-warn': severity === 'warn',\n 'expandable-container--severity-error': severity === 'error',\n 'expandable-container--severity-success': severity === 'success',\n }\"\n >\n <div class=\"childlist\">\n @for (field of fields() | slice: maxVisibleFields : fields().length; track field.id) {\n <div class=\"s-object-card-field\">\n <ng-container *ngTemplateOutlet=\"field.content\"></ng-container>\n </div>\n }\n </div>\n </div>\n</div>\n", styles: [":host{display:block}:host::ng-deep .sds-badge{height:auto;white-space:normal}.container{margin-bottom:20px;position:relative}.main-container{display:flex}.main-container,.expandable-container{background-color:#fff;border:1px solid #cccccc;position:relative;overflow:hidden;width:100%}.expandable-container--severity-default{border-color:#ccc;border-top:initial}.expandable-container--severity-info{transition:border-color .5s ease;border-color:#428bca;border-top:initial}.expandable-container--severity-warn{transition:border-color .5s ease;border-color:#f8931f;border-top:initial}.expandable-container--severity-error{transition:border-color .5s ease;border-color:#c13018;border-top:initial}.expandable-container--severity-success{transition:border-color .5s ease;border-color:#0c9348;border-top:initial}.main-container--severity-default{border-color:#ccc}.main-container--severity-info{transition:border-color .5s ease;border-color:#428bca}.main-container--severity-warn{transition:border-color .5s ease;border-color:#f8931f}.main-container--severity-error{transition:border-color .5s ease;border-color:#c13018}.main-container--severity-success{transition:border-color .5s ease;border-color:#0c9348}.object-card__border-button{position:absolute;top:-13px;right:15px;z-index:1}.expandable-container{border-top:none;box-shadow:inset 0 6px 4px -4px #ddd;margin-top:-1px}.expand-icon-container{display:flex;text-align:center;align-items:center;cursor:pointer;padding:12px}.expand-icon{flex:1}.object-content{display:flex;width:100%}.s-object-card-main{overflow:hidden;padding:15px}.main-container.with-visible-fields .s-object-card-main{max-width:30%}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.main-container.with-visible-fields .s-object-card-main{width:20%}}.s-object-card-field{overflow:hidden;height:100%}.main-container .s-object-card-field{padding:15px}.main-container .divider{width:1px;flex-shrink:0;background-color:#ccc;margin:15px -1px 15px 0}.main-container.with-hidden-fields .object-content{width:calc(100% - 35px)}.main-container.with-hidden-fields .expand-icon-container{display:flex}::ng-deep .object-card-button{padding-left:0!important;padding-right:10px!important;border:none!important;height:auto!important;min-width:auto!important;text-align:left!important}@media (max-width: 767px){.s-object-card-main{max-width:calc(100% - 50px)}}.childlist{width:100%;display:flex;flex-wrap:wrap;padding:1em;gap:1em}\n"] }]
|
|
283
277
|
}], propDecorators: { id: [{
|
|
284
278
|
type: Input
|
|
285
279
|
}], expanded: [{
|
|
@@ -303,14 +297,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
303
297
|
|
|
304
298
|
class ObjectCardModule {
|
|
305
299
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
306
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardModule,
|
|
307
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardModule, imports: [
|
|
300
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardModule, imports: [ThumbnailModule, ObjectCardComponent, ObjectCardMainComponent, ObjectCardFieldComponent], exports: [ThumbnailModule, ObjectCardComponent, ObjectCardMainComponent, ObjectCardFieldComponent] });
|
|
301
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardModule, imports: [ThumbnailModule, ObjectCardComponent, ObjectCardMainComponent, ObjectCardFieldComponent, ThumbnailModule] });
|
|
308
302
|
}
|
|
309
303
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardModule, decorators: [{
|
|
310
304
|
type: NgModule,
|
|
311
305
|
args: [{
|
|
312
|
-
imports: [
|
|
313
|
-
declarations: [ObjectCardComponent, ObjectCardMainComponent, ObjectCardFieldComponent],
|
|
306
|
+
imports: [ThumbnailModule, ObjectCardComponent, ObjectCardMainComponent, ObjectCardFieldComponent],
|
|
314
307
|
exports: [ThumbnailModule, ObjectCardComponent, ObjectCardMainComponent, ObjectCardFieldComponent],
|
|
315
308
|
}]
|
|
316
309
|
}] });
|