@seniorsistemas/angular-components 19.9.15 → 19.10.0-develop-ef29acb7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +84 -2
- package/accordion/README.md +5 -4
- package/accordion/lib/accordion/accordion.module.d.ts +7 -0
- package/alert/lib/alert/alert.module.d.ts +7 -0
- package/badge/README.md +5 -4
- package/badge/lib/badge/badge.module.d.ts +10 -0
- package/bignumber-input/README.md +5 -4
- package/bignumber-input/lib/bignumber-input/bignumber-input.directive.d.ts +16 -39
- package/bignumber-input/lib/bignumber-input/bignumber-input.module.d.ts +7 -0
- package/breadcrumb/README.md +5 -4
- package/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.module.d.ts +5 -1
- package/button/lib/button/button.module.d.ts +7 -0
- package/calendar-mask/README.md +5 -4
- package/calendar-mask/lib/calendar-mask/calendar-mask.module.d.ts +7 -0
- package/card/README.md +6 -5
- package/card/lib/card/card.module.d.ts +7 -0
- package/chat/README.md +11 -8
- package/chat/lib/chat/chat.module.d.ts +7 -0
- package/checkbox-list/README.md +5 -4
- package/checkbox-list/lib/checkbox-list/checkbox-list.module.d.ts +7 -0
- package/chips/README.md +5 -4
- package/chips/lib/chips/chips.module.d.ts +7 -0
- package/code-editor/README.md +5 -4
- package/code-editor/lib/code-editor/code-editor.module.d.ts +7 -0
- package/collapse-link/README.md +5 -4
- package/collapse-link/lib/collapse-link/collapse-link.module.d.ts +7 -0
- package/common/lib/angular-components.module.d.ts +9 -0
- package/common/lib/provide-angular-components.d.ts +19 -0
- package/common/lib/svg-factory/svg-factory.module.d.ts +7 -0
- package/common/public-api.d.ts +1 -0
- package/content-generator/README.md +2 -2
- package/content-generator/lib/content-generator/content-generator.module.d.ts +7 -0
- package/control-errors/README.md +2 -2
- package/control-errors/lib/control-errors/control-errors.module.d.ts +7 -0
- package/country-phone-picker/README.md +2 -2
- package/country-phone-picker/lib/country-phone-picker/country-phone-picker.module.d.ts +7 -0
- package/currency/README.md +1 -1
- package/custom-fields/README.md +14 -3
- package/custom-fields/lib/custom-fields/custom-fields.module.d.ts +7 -0
- package/custom-fields/lib/custom-fields/models/custom-field-value-parser.d.ts +21 -0
- package/custom-fields/lib/custom-fields/models/index.d.ts +1 -0
- package/dialog/README.md +1 -1
- package/drawer/README.md +8 -4
- package/drawer/lib/drawer/drawer.module.d.ts +10 -0
- package/dynamic-form/README.md +18 -2
- package/dynamic-form/dynamic-form/dynamic-form.module.d.ts +7 -0
- package/dynamic-form/dynamic-form/form-field/addon-config.d.ts +10 -1
- package/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.d.ts +15 -15
- package/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.d.ts +8 -6
- package/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.d.ts +5 -2
- package/dynamic-form/public-api.d.ts +0 -1
- package/editable-overlay/README.md +2 -2
- package/editable-overlay/lib/editable-overlay/editable-overlay.module.d.ts +7 -0
- package/empty-state/README.md +5 -2
- package/empty-state/lib/empty-state/empty-state.module.d.ts +7 -0
- package/esm2022/accordion/lib/accordion/accordion.module.mjs +8 -1
- package/esm2022/alert/lib/alert/alert.module.mjs +8 -1
- package/esm2022/badge/lib/badge/badge.module.mjs +11 -1
- package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.directive.mjs +19 -127
- package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.module.mjs +8 -1
- package/esm2022/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.module.mjs +6 -2
- package/esm2022/button/lib/button/button.module.mjs +8 -1
- package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.module.mjs +8 -1
- package/esm2022/card/lib/card/card.module.mjs +8 -1
- package/esm2022/chat/lib/chat/chat.module.mjs +8 -1
- package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.module.mjs +8 -1
- package/esm2022/chips/lib/chips/chips.module.mjs +8 -1
- package/esm2022/code-editor/lib/code-editor/code-editor.component.mjs +10 -1
- package/esm2022/code-editor/lib/code-editor/code-editor.module.mjs +9 -15
- package/esm2022/collapse-link/lib/collapse-link/collapse-link.module.mjs +8 -1
- package/esm2022/common/lib/angular-components.module.mjs +10 -1
- package/esm2022/common/lib/provide-angular-components.mjs +22 -0
- package/esm2022/common/lib/svg-factory/svg-factory.module.mjs +8 -1
- package/esm2022/common/public-api.mjs +2 -1
- package/esm2022/content-generator/lib/content-generator/content-generator.module.mjs +8 -1
- package/esm2022/control-errors/lib/control-errors/control-errors.module.mjs +8 -1
- package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.module.mjs +8 -1
- package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.service.mjs +4 -3
- package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +17 -13
- package/esm2022/custom-fields/lib/custom-fields/custom-fields.module.mjs +8 -1
- package/esm2022/custom-fields/lib/custom-fields/custom-fields.service.mjs +4 -3
- package/esm2022/custom-fields/lib/custom-fields/models/custom-field-type.mjs +4 -2
- package/esm2022/custom-fields/lib/custom-fields/models/custom-field-value-parser.mjs +46 -0
- package/esm2022/custom-fields/lib/custom-fields/models/index.mjs +2 -1
- package/esm2022/drawer/lib/drawer/drawer.module.mjs +11 -1
- package/esm2022/dynamic-form/dynamic-form/dynamic-form.module.mjs +8 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/addon-config.mjs +6 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +33 -10
- package/esm2022/dynamic-form/public-api.mjs +2 -7
- package/esm2022/editable-overlay/lib/editable-overlay/editable-overlay.module.mjs +8 -1
- package/esm2022/empty-state/lib/empty-state/empty-state.module.mjs +8 -1
- package/esm2022/fieldset/lib/fieldset/fieldset.module.mjs +8 -1
- package/esm2022/file-picker/lib/file-picker/file-picker.module.mjs +8 -1
- package/esm2022/file-picker/lib/file-picker/file-picker.service.mjs +4 -3
- package/esm2022/gantt/lib/gantt/gantt.module.mjs +8 -1
- package/esm2022/global-search/lib/global-search/global-search.module.mjs +19 -1
- package/esm2022/grid-menu/lib/grid-menu/grid-menu.module.mjs +8 -1
- package/esm2022/help-popover/lib/help-popover/help-popover.module.mjs +8 -1
- package/esm2022/image-cropper/lib/image-cropper/image-cropper.module.mjs +12 -1
- package/esm2022/image-cropper/lib/image-cropper/image-cropper.service.mjs +4 -3
- package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.module.mjs +8 -1
- package/esm2022/info-sign/lib/info-sign/info-sign.module.mjs +8 -1
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +5 -5
- package/esm2022/inline-edit/lib/inline-edit/inline-edit.module.mjs +8 -1
- package/esm2022/input-group/lib/input-group/input-group.module.mjs +8 -1
- package/esm2022/input-mask/lib/input-mask/input-mask.module.mjs +8 -1
- package/esm2022/input-text/lib/input-text/input-text.module.mjs +8 -1
- package/esm2022/insights/lib/insights/insights.module.mjs +11 -1
- package/esm2022/kanban/lib/kanban/kanban-event.service.mjs +4 -3
- package/esm2022/kanban/lib/kanban/kanban.module.mjs +11 -1
- package/esm2022/label-value/lib/label-value/label-value.module.mjs +8 -1
- package/esm2022/loading-state/lib/loading-state/loading-state.module.mjs +8 -1
- package/esm2022/locale/lib/locale/locale.module.mjs +14 -1
- package/esm2022/locale/lib/locale/locale.service.mjs +10 -32
- package/esm2022/locale/lib/locale/options/index.mjs +1 -13
- package/esm2022/locale/lib/locale/options/locale-presets.mjs +199 -0
- package/esm2022/locale/lib/locale/pipes/localized-bignumber-impure.pipe.mjs +1 -1
- package/esm2022/locale/lib/locale/pipes/localized-bignumber.pipe.mjs +10 -2
- package/esm2022/locale/lib/locale/provide-locale.mjs +42 -0
- package/esm2022/locale/public-api.mjs +3 -1
- package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.directive.mjs +5 -1
- package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.module.mjs +8 -1
- package/esm2022/mask/lib/mask/mask-formatter.module.mjs +8 -1
- package/esm2022/mouse-events/lib/mouse-events/mouse-events.module.mjs +8 -1
- package/esm2022/navigation-button/lib/navigation-button/navigation-button.module.mjs +8 -1
- package/esm2022/number-input/lib/number-input/number-input.directive.mjs +2 -2
- package/esm2022/number-input/lib/number-input/number-input.module.mjs +9 -2
- package/esm2022/numeric/lib/numeric.module.mjs +8 -1
- package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.directive.mjs +178 -15
- package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.module.mjs +8 -1
- package/esm2022/object-card/lib/object-card/object-card.module.mjs +12 -1
- package/esm2022/panel/lib/panel/panel.module.mjs +11 -1
- package/esm2022/password-strength/lib/password-strength/password-strength.module.mjs +8 -1
- package/esm2022/picklist/lib/picklist/picklist.module.mjs +8 -1
- package/esm2022/pin-code-field/lib/pin-code-field.module.mjs +8 -1
- package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.mjs +8 -1
- package/esm2022/progressbar/lib/progressbar/progressbar.module.mjs +8 -1
- package/esm2022/rating-scale/lib/rating-scale/rating-scale.module.mjs +8 -1
- package/esm2022/select/lib/select/select.component.mjs +16 -3
- package/esm2022/select-button/lib/select-button/select-button.module.mjs +8 -1
- package/esm2022/shared/lib/shared/border-button/border-button.module.mjs +8 -1
- package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.module.mjs +8 -1
- package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.service.mjs +4 -3
- package/esm2022/slider/lib/slider/slider.module.mjs +8 -1
- package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition.module.mjs +8 -1
- package/esm2022/split-button/lib/split-button/split-button.module.mjs +8 -1
- package/esm2022/stats-card/lib/stats-card/stats-card.module.mjs +8 -1
- package/esm2022/stepper/lib/stepper/stepper.module.mjs +8 -1
- package/esm2022/structure/lib/structure/structure.module.mjs +8 -1
- package/esm2022/switch/lib/switch/switch.module.mjs +8 -1
- package/esm2022/table/lib/table/table.module.mjs +9 -1
- package/esm2022/table-header/lib/table-header/table-header-checkox.module.mjs +8 -1
- package/esm2022/template/lib/template/template.module.mjs +8 -1
- package/esm2022/text-area/lib/text-area.module.mjs +8 -1
- package/esm2022/thumbnail/lib/thumbnail/thumbnail.module.mjs +8 -1
- package/esm2022/thumbnails/lib/thumbnails/thumbnails.module.mjs +8 -1
- package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.module.mjs +8 -1
- package/esm2022/tile/lib/tile/tile.module.mjs +11 -1
- package/esm2022/timeline/lib/timeline/timeline.module.mjs +8 -1
- package/esm2022/toast/lib/toast/toast.module.mjs +8 -1
- package/esm2022/token-list/lib/token-list/token-list.module.mjs +8 -1
- package/esm2022/tooltip/lib/tooltip/tooltip.module.mjs +8 -1
- package/esm2022/topbar/lib/topbar/topbar.module.mjs +11 -1
- package/esm2022/tree/lib/tree/tree.module.mjs +8 -1
- package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.module.mjs +8 -1
- package/fesm2022/seniorsistemas-angular-components-accordion.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-alert.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-alert.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-badge.mjs +10 -0
- package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs +25 -126
- package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +5 -1
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-button.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-card.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-card.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-chat.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-chat.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-chips.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +164 -160
- package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-common.mjs +38 -2
- package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +10 -2
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +75 -15
- package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-drawer.mjs +10 -0
- package/fesm2022/seniorsistemas-angular-components-drawer.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +52 -208
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +10 -2
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-gantt.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs +18 -0
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +14 -2
- package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +11 -4
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-input-group.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-input-group.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-input-mask.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-input-mask.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-input-text.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-input-text.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-insights.mjs +10 -0
- package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-kanban.mjs +13 -2
- package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-label-value.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-label-value.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-locale.mjs +260 -33
- package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +11 -0
- package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-mask.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-mask.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-number-input.mjs +9 -2
- package/fesm2022/seniorsistemas-angular-components-number-input.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs +184 -14
- package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-numeric.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-object-card.mjs +11 -0
- package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-panel.mjs +10 -0
- package/fesm2022/seniorsistemas-angular-components-panel.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-picklist.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-select-button.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-select.mjs +15 -2
- package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-shared.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs +10 -2
- package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-slider.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-stats-card.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-stepper.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-stepper.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-structure.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-structure.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-switch.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table.mjs +8 -0
- package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-template.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-template.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tile.mjs +10 -0
- package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-timeline.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-timeline.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-toast.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-token-list.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-topbar.mjs +10 -0
- package/fesm2022/seniorsistemas-angular-components-topbar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tree.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
- package/fieldset/README.md +2 -2
- package/fieldset/lib/fieldset/fieldset.module.d.ts +7 -0
- package/file-picker/README.md +2 -2
- package/file-picker/lib/file-picker/file-picker.module.d.ts +7 -0
- package/file-upload/README.md +1 -1
- package/gantt/README.md +2 -2
- package/gantt/lib/gantt/gantt.module.d.ts +7 -0
- package/global-search/README.md +5 -2
- package/global-search/lib/global-search/global-search.module.d.ts +18 -0
- package/grid-menu/README.md +5 -4
- package/grid-menu/lib/grid-menu/grid-menu.module.d.ts +7 -0
- package/help-popover/README.md +5 -4
- package/help-popover/lib/help-popover/help-popover.module.d.ts +7 -0
- package/ia-insight/README.md +1 -1
- package/image-cropper/README.md +6 -5
- package/image-cropper/lib/image-cropper/image-cropper.module.d.ts +11 -0
- package/infinite-scroll/README.md +5 -4
- package/infinite-scroll/lib/infinite-scroll/infinite-scroll.module.d.ts +7 -0
- package/info-sign/README.md +5 -4
- package/info-sign/lib/info-sign/info-sign.module.d.ts +7 -0
- package/inline-edit/README.md +5 -4
- package/inline-edit/lib/inline-edit/inline-edit.module.d.ts +7 -0
- package/input-group/lib/input-group/input-group.module.d.ts +7 -0
- package/input-mask/lib/input-mask/input-mask.module.d.ts +7 -0
- package/input-text/lib/input-text/input-text.module.d.ts +7 -0
- package/insights/README.md +6 -4
- package/insights/lib/insights/insights.module.d.ts +10 -0
- package/kanban/README.md +6 -4
- package/kanban/lib/kanban/kanban.module.d.ts +10 -0
- package/label-value/README.md +5 -4
- package/label-value/lib/label-value/label-value.module.d.ts +7 -0
- package/loading-state/README.md +9 -5
- package/loading-state/lib/loading-state/loading-state.module.d.ts +7 -0
- package/locale/lib/locale/locale.module.d.ts +13 -0
- package/locale/lib/locale/locale.service.d.ts +0 -3
- package/locale/lib/locale/options/locale-presets.d.ts +22 -0
- package/locale/lib/locale/pipes/localized-bignumber-impure.pipe.d.ts +2 -2
- package/locale/lib/locale/pipes/localized-bignumber.pipe.d.ts +20 -1
- package/locale/lib/locale/provide-locale.d.ts +18 -0
- package/locale/public-api.d.ts +2 -0
- package/localized-number-input/README.md +32 -8
- package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +4 -0
- package/localized-number-input/lib/localized-number-input/localized-number-input.module.d.ts +7 -0
- package/mask/lib/mask/mask-formatter.module.d.ts +7 -0
- package/mouse-events/README.md +5 -4
- package/mouse-events/lib/mouse-events/mouse-events.module.d.ts +7 -0
- package/navigation-button/README.md +5 -4
- package/navigation-button/lib/navigation-button/navigation-button.module.d.ts +7 -0
- package/number-input/lib/number-input/number-input.directive.d.ts +1 -1
- package/number-input/lib/number-input/number-input.module.d.ts +8 -1
- package/numeric/README.md +6 -5
- package/numeric/lib/numeric.module.d.ts +7 -0
- package/numeric-mask/README.md +44 -1
- package/numeric-mask/lib/numeric-mask/numeric-mask.directive.d.ts +65 -4
- package/numeric-mask/lib/numeric-mask/numeric-mask.module.d.ts +7 -0
- package/object-card/README.md +11 -4
- package/object-card/lib/object-card/object-card.module.d.ts +11 -0
- package/package.json +1 -1
- package/panel/README.md +8 -4
- package/panel/lib/panel/panel.module.d.ts +10 -0
- package/password-strength/README.md +6 -3
- package/password-strength/lib/password-strength/password-strength.module.d.ts +7 -0
- package/picklist/README.md +8 -5
- package/picklist/lib/picklist/picklist.module.d.ts +7 -0
- package/pin-code-field/lib/pin-code-field.module.d.ts +7 -0
- package/product-header/README.md +2 -2
- package/profile-picture-picker/README.md +6 -3
- package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.d.ts +7 -0
- package/progressbar/README.md +6 -3
- package/progressbar/lib/progressbar/progressbar.module.d.ts +7 -0
- package/rating-scale/README.md +6 -3
- package/rating-scale/lib/rating-scale/rating-scale.module.d.ts +7 -0
- package/schematics/collection.json +40 -0
- package/schematics/migrations/migrate-app-to-standalone/index.d.ts +32 -0
- package/schematics/migrations/migrate-app-to-standalone/index.js +98 -0
- package/schematics/migrations/migrate-app-to-standalone/index.js.map +1 -0
- package/schematics/migrations/migrate-deprecated-apis/index.d.ts +49 -0
- package/schematics/migrations/migrate-deprecated-apis/index.js +660 -0
- package/schematics/migrations/migrate-deprecated-apis/index.js.map +1 -0
- package/schematics/migrations/migrate-deprecated-datepicker/index.d.ts +31 -0
- package/schematics/migrations/migrate-deprecated-datepicker/index.js +115 -0
- package/schematics/migrations/migrate-deprecated-datepicker/index.js.map +1 -0
- package/schematics/migrations/migrate-deprecated-dynamic-form/index.d.ts +52 -0
- package/schematics/migrations/migrate-deprecated-dynamic-form/index.js +661 -0
- package/schematics/migrations/migrate-deprecated-dynamic-form/index.js.map +1 -0
- package/schematics/migrations/migrate-deprecated-imports/index.d.ts +23 -0
- package/schematics/migrations/migrate-deprecated-imports/index.js +335 -0
- package/schematics/migrations/migrate-deprecated-imports/index.js.map +1 -0
- package/schematics/migrations/migrate-deprecated-selectors/index.d.ts +15 -0
- package/schematics/migrations/migrate-deprecated-selectors/index.js +76 -0
- package/schematics/migrations/migrate-deprecated-selectors/index.js.map +1 -0
- package/schematics/migrations/migrate-modules-to-standalone/index.d.ts +51 -0
- package/schematics/migrations/migrate-modules-to-standalone/index.js +632 -0
- package/schematics/migrations/migrate-modules-to-standalone/index.js.map +1 -0
- package/schematics/migrations/migrate-modules-to-standalone/modules-map.json +1656 -0
- package/schematics/migrations/migrate-v20/index.d.ts +9 -0
- package/schematics/migrations/migrate-v20/index.js +90 -0
- package/schematics/migrations/migrate-v20/index.js.map +1 -0
- package/schematics/migrations/migrate-v20/items.d.ts +7 -0
- package/schematics/migrations/migrate-v20/items.js +54 -0
- package/schematics/migrations/migrate-v20/items.js.map +1 -0
- package/schematics/migrations/migrate-v20/plan.d.ts +32 -0
- package/schematics/migrations/migrate-v20/plan.js +29 -0
- package/schematics/migrations/migrate-v20/plan.js.map +1 -0
- package/schematics/migrations.json +5 -1
- package/schematics/schema/app-standalone.schema.json +21 -0
- package/schematics/schema/migrate-v20.schema.json +33 -0
- package/schematics/schema/scope.schema.json +17 -0
- package/schematics/utils/ast-utils.js +16 -0
- package/schematics/utils/ast-utils.js.map +1 -1
- package/schematics/utils/eol.d.ts +5 -0
- package/schematics/utils/eol.js +17 -0
- package/schematics/utils/eol.js.map +1 -0
- package/schematics/utils/prompt-utils.d.ts +62 -0
- package/schematics/utils/prompt-utils.js +166 -0
- package/schematics/utils/prompt-utils.js.map +1 -0
- package/schematics/utils/report.d.ts +27 -0
- package/schematics/utils/report.js +70 -0
- package/schematics/utils/report.js.map +1 -0
- package/schematics/utils/scope.d.ts +17 -0
- package/schematics/utils/scope.js +55 -0
- package/schematics/utils/scope.js.map +1 -0
- package/schematics/utils/selection.d.ts +21 -0
- package/schematics/utils/selection.js +60 -0
- package/schematics/utils/selection.js.map +1 -0
- package/schematics/utils/symbol-utils.d.ts +31 -0
- package/schematics/utils/symbol-utils.js +202 -0
- package/schematics/utils/symbol-utils.js.map +1 -0
- package/schematics/utils/template-utils.d.ts +62 -0
- package/schematics/utils/template-utils.js +165 -0
- package/schematics/utils/template-utils.js.map +1 -0
- package/schematics/utils/tsconfig-paths.d.ts +5 -0
- package/schematics/utils/tsconfig-paths.js +73 -0
- package/schematics/utils/tsconfig-paths.js.map +1 -0
- package/select/lib/select/select.component.d.ts +8 -0
- package/select-button/README.md +6 -3
- package/select-button/lib/select-button/select-button.module.d.ts +7 -0
- package/shared/lib/shared/border-button/border-button.module.d.ts +7 -0
- package/sidebar/README.md +2 -2
- package/slide-in-bar/README.md +5 -5
- package/slide-in-bar/lib/slide-in-bar/slide-in-bar.module.d.ts +7 -0
- package/slider/README.md +6 -3
- package/slider/lib/slider/slider.module.d.ts +7 -0
- package/speech-recognition/README.md +6 -3
- package/speech-recognition/lib/speech-recognition/speech-recognition.module.d.ts +7 -0
- package/split-button/README.md +6 -3
- package/split-button/lib/split-button/split-button.module.d.ts +7 -0
- package/stats-card/README.md +6 -3
- package/stats-card/lib/stats-card/stats-card.module.d.ts +7 -0
- package/stepper/README.md +6 -3
- package/stepper/lib/stepper/stepper.module.d.ts +7 -0
- package/structure/lib/structure/structure.module.d.ts +7 -0
- package/switch/README.md +6 -3
- package/switch/lib/switch/switch.module.d.ts +7 -0
- package/table/README.md +12 -4
- package/table/lib/table/table.module.d.ts +8 -0
- package/table-header/lib/table-header/table-header-checkox.module.d.ts +7 -0
- package/template/README.md +0 -11
- package/template/lib/template/template.module.d.ts +7 -0
- package/text-area/lib/text-area.module.d.ts +7 -0
- package/text-area-ia/README.md +1 -1
- package/thumbnail/lib/thumbnail/thumbnail.module.d.ts +7 -0
- package/thumbnails/lib/thumbnails/thumbnails.module.d.ts +7 -0
- package/tiered-menu/lib/tiered-menu/tiered-menu.module.d.ts +7 -0
- package/tile/lib/tile/tile.module.d.ts +10 -0
- package/timeline/lib/timeline/timeline.module.d.ts +7 -0
- package/toast/lib/toast/toast.module.d.ts +7 -0
- package/token-list/lib/token-list/token-list.module.d.ts +7 -0
- package/tooltip/lib/tooltip/tooltip.module.d.ts +7 -0
- package/topbar/lib/topbar/topbar.module.d.ts +10 -0
- package/tree/lib/tree/tree.module.d.ts +7 -0
- package/workspace-switch/lib/workspace-switch/workspace-switch.module.d.ts +7 -0
- package/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.d.ts +0 -664
- package/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.d.ts +0 -29
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +0 -96
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +0 -124
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { TooltipDirective } from './tooltip.directive';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated Será removido na v20. Importe diretamente o standalone `TooltipDirective` (de
|
|
6
|
+
* `@seniorsistemas/angular-components/tooltip`) no lugar deste módulo.
|
|
7
|
+
*
|
|
8
|
+
* Migração automática (também executada pelo `ng update` na v20):
|
|
9
|
+
* `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
|
|
10
|
+
*/
|
|
4
11
|
export class TooltipModule {
|
|
5
12
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
6
13
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: TooltipModule, imports: [TooltipDirective], exports: [TooltipDirective] });
|
|
@@ -13,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
13
20
|
exports: [TooltipDirective],
|
|
14
21
|
}]
|
|
15
22
|
}] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvdG9vbHRpcC9zcmMvbGliL3Rvb2x0aXAvdG9vbHRpcC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFdkQ7Ozs7OztHQU1HO0FBS0gsTUFBTSxPQUFPLGFBQWE7d0dBQWIsYUFBYTt5R0FBYixhQUFhLFlBSFosZ0JBQWdCLGFBQ2hCLGdCQUFnQjt5R0FFakIsYUFBYTs7NEZBQWIsYUFBYTtrQkFKekIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDM0IsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7aUJBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuL3Rvb2x0aXAuZGlyZWN0aXZlJztcclxuXHJcbi8qKlxyXG4gKiBAZGVwcmVjYXRlZCBTZXLDoSByZW1vdmlkbyBuYSB2MjAuIEltcG9ydGUgZGlyZXRhbWVudGUgbyBzdGFuZGFsb25lIGBUb29sdGlwRGlyZWN0aXZlYCAoZGVcclxuICogYEBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdG9vbHRpcGApIG5vIGx1Z2FyIGRlc3RlIG3Ds2R1bG8uXHJcbiAqXHJcbiAqIE1pZ3Jhw6fDo28gYXV0b23DoXRpY2EgKHRhbWLDqW0gZXhlY3V0YWRhIHBlbG8gYG5nIHVwZGF0ZWAgbmEgdjIwKTpcclxuICogYG5nIGdlbmVyYXRlIEBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHM6bWlncmF0ZS1tb2R1bGVzLXRvLXN0YW5kYWxvbmVgXHJcbiAqL1xyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1Rvb2x0aXBEaXJlY3RpdmVdLFxyXG4gICAgZXhwb3J0czogW1Rvb2x0aXBEaXJlY3RpdmVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9vbHRpcE1vZHVsZSB7fVxyXG4iXX0=
|
|
@@ -2,6 +2,16 @@ import { NgModule } from '@angular/core';
|
|
|
2
2
|
import { ThumbnailModule } from '@seniorsistemas/angular-components/thumbnail';
|
|
3
3
|
import { TopbarComponent } from './topbar.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* @deprecated Será removido na v20. Importe diretamente o standalone `TopbarComponent` (de
|
|
7
|
+
* `@seniorsistemas/angular-components/topbar`) no lugar deste módulo.
|
|
8
|
+
*
|
|
9
|
+
* Este módulo também reexportava `ThumbnailComponent` (`@seniorsistemas/angular-components/thumbnail`, usado
|
|
10
|
+
* em templates por `<s-thumbnail>`). Se o seu template usa algum deles, importe-o diretamente.
|
|
11
|
+
*
|
|
12
|
+
* Migração automática (também executada pelo `ng update` na v20):
|
|
13
|
+
* `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
|
|
14
|
+
*/
|
|
5
15
|
export class TopbarModule {
|
|
6
16
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TopbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
17
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: TopbarModule, imports: [ThumbnailModule, TopbarComponent], exports: [TopbarComponent, ThumbnailModule] });
|
|
@@ -14,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
14
24
|
exports: [TopbarComponent, ThumbnailModule],
|
|
15
25
|
}]
|
|
16
26
|
}] });
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wYmFyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy90b3BiYXIvc3JjL2xpYi90b3BiYXIvdG9wYmFyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXJEOzs7Ozs7Ozs7R0FTRztBQUtILE1BQU0sT0FBTyxZQUFZO3dHQUFaLFlBQVk7eUdBQVosWUFBWSxZQUhYLGVBQWUsRUFBRSxlQUFlLGFBQ2hDLGVBQWUsRUFBRSxlQUFlO3lHQUVqQyxZQUFZLFlBSFgsZUFBZSxFQUNFLGVBQWU7OzRGQUVqQyxZQUFZO2tCQUp4QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUM7b0JBQzNDLE9BQU8sRUFBRSxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUM7aUJBQzlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFRodW1ibmFpbE1vZHVsZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdGh1bWJuYWlsJztcclxuaW1wb3J0IHsgVG9wYmFyQ29tcG9uZW50IH0gZnJvbSAnLi90b3BiYXIuY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKiBAZGVwcmVjYXRlZCBTZXLDoSByZW1vdmlkbyBuYSB2MjAuIEltcG9ydGUgZGlyZXRhbWVudGUgbyBzdGFuZGFsb25lIGBUb3BiYXJDb21wb25lbnRgIChkZVxyXG4gKiBgQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy90b3BiYXJgKSBubyBsdWdhciBkZXN0ZSBtw7NkdWxvLlxyXG4gKlxyXG4gKiBFc3RlIG3Ds2R1bG8gdGFtYsOpbSByZWV4cG9ydGF2YSBgVGh1bWJuYWlsQ29tcG9uZW50YCAoYEBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdGh1bWJuYWlsYCwgdXNhZG9cclxuICogZW0gdGVtcGxhdGVzIHBvciBgPHMtdGh1bWJuYWlsPmApLiBTZSBvIHNldSB0ZW1wbGF0ZSB1c2EgYWxndW0gZGVsZXMsIGltcG9ydGUtbyBkaXJldGFtZW50ZS5cclxuICpcclxuICogTWlncmHDp8OjbyBhdXRvbcOhdGljYSAodGFtYsOpbSBleGVjdXRhZGEgcGVsbyBgbmcgdXBkYXRlYCBuYSB2MjApOlxyXG4gKiBgbmcgZ2VuZXJhdGUgQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50czptaWdyYXRlLW1vZHVsZXMtdG8tc3RhbmRhbG9uZWBcclxuICovXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbVGh1bWJuYWlsTW9kdWxlLCBUb3BiYXJDb21wb25lbnRdLFxyXG4gICAgZXhwb3J0czogW1RvcGJhckNvbXBvbmVudCwgVGh1bWJuYWlsTW9kdWxlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRvcGJhck1vZHVsZSB7fVxyXG4iXX0=
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { TreeComponent } from './tree.component';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated Será removido na v20. Importe diretamente o standalone `TreeComponent` (de
|
|
6
|
+
* `@seniorsistemas/angular-components/tree`) no lugar deste módulo.
|
|
7
|
+
*
|
|
8
|
+
* Migração automática (também executada pelo `ng update` na v20):
|
|
9
|
+
* `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
|
|
10
|
+
*/
|
|
4
11
|
export class TreeModule {
|
|
5
12
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
6
13
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: TreeModule, imports: [TreeComponent], exports: [TreeComponent] });
|
|
@@ -13,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
13
20
|
exports: [TreeComponent],
|
|
14
21
|
}]
|
|
15
22
|
}] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvdHJlZS9zcmMvbGliL3RyZWUvdHJlZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRWpEOzs7Ozs7R0FNRztBQUtILE1BQU0sT0FBTyxVQUFVO3dHQUFWLFVBQVU7eUdBQVYsVUFBVSxZQUhULGFBQWEsYUFDYixhQUFhO3lHQUVkLFVBQVUsWUFIVCxhQUFhOzs0RkFHZCxVQUFVO2tCQUp0QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDeEIsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBUcmVlQ29tcG9uZW50IH0gZnJvbSAnLi90cmVlLmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogQGRlcHJlY2F0ZWQgU2Vyw6EgcmVtb3ZpZG8gbmEgdjIwLiBJbXBvcnRlIGRpcmV0YW1lbnRlIG8gc3RhbmRhbG9uZSBgVHJlZUNvbXBvbmVudGAgKGRlXHJcbiAqIGBAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3RyZWVgKSBubyBsdWdhciBkZXN0ZSBtw7NkdWxvLlxyXG4gKlxyXG4gKiBNaWdyYcOnw6NvIGF1dG9tw6F0aWNhICh0YW1iw6ltIGV4ZWN1dGFkYSBwZWxvIGBuZyB1cGRhdGVgIG5hIHYyMCk6XHJcbiAqIGBuZyBnZW5lcmF0ZSBAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzOm1pZ3JhdGUtbW9kdWxlcy10by1zdGFuZGFsb25lYFxyXG4gKi9cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtUcmVlQ29tcG9uZW50XSxcclxuICAgIGV4cG9ydHM6IFtUcmVlQ29tcG9uZW50XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyZWVNb2R1bGUge31cclxuIl19
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { WorkspaceSwitchComponent } from './workspace-switch.component';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated Será removido na v20. Importe diretamente o standalone `WorkspaceSwitchComponent` (de
|
|
6
|
+
* `@seniorsistemas/angular-components/workspace-switch`) no lugar deste módulo.
|
|
7
|
+
*
|
|
8
|
+
* Migração automática (também executada pelo `ng update` na v20):
|
|
9
|
+
* `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
|
|
10
|
+
*/
|
|
4
11
|
export class WorkspaceSwitchModule {
|
|
5
12
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WorkspaceSwitchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
6
13
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: WorkspaceSwitchModule, imports: [WorkspaceSwitchComponent], exports: [WorkspaceSwitchComponent] });
|
|
@@ -13,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
13
20
|
exports: [WorkspaceSwitchComponent],
|
|
14
21
|
}]
|
|
15
22
|
}] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLXN3aXRjaC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvd29ya3NwYWNlLXN3aXRjaC9zcmMvbGliL3dvcmtzcGFjZS1zd2l0Y2gvd29ya3NwYWNlLXN3aXRjaC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFFeEU7Ozs7OztHQU1HO0FBS0gsTUFBTSxPQUFPLHFCQUFxQjt3R0FBckIscUJBQXFCO3lHQUFyQixxQkFBcUIsWUFIcEIsd0JBQXdCLGFBQ3hCLHdCQUF3Qjt5R0FFekIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQUpqQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLHdCQUF3QixDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztpQkFDdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgV29ya3NwYWNlU3dpdGNoQ29tcG9uZW50IH0gZnJvbSAnLi93b3Jrc3BhY2Utc3dpdGNoLmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogQGRlcHJlY2F0ZWQgU2Vyw6EgcmVtb3ZpZG8gbmEgdjIwLiBJbXBvcnRlIGRpcmV0YW1lbnRlIG8gc3RhbmRhbG9uZSBgV29ya3NwYWNlU3dpdGNoQ29tcG9uZW50YCAoZGVcclxuICogYEBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvd29ya3NwYWNlLXN3aXRjaGApIG5vIGx1Z2FyIGRlc3RlIG3Ds2R1bG8uXHJcbiAqXHJcbiAqIE1pZ3Jhw6fDo28gYXV0b23DoXRpY2EgKHRhbWLDqW0gZXhlY3V0YWRhIHBlbG8gYG5nIHVwZGF0ZWAgbmEgdjIwKTpcclxuICogYG5nIGdlbmVyYXRlIEBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHM6bWlncmF0ZS1tb2R1bGVzLXRvLXN0YW5kYWxvbmVgXHJcbiAqL1xyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1dvcmtzcGFjZVN3aXRjaENvbXBvbmVudF0sXHJcbiAgICBleHBvcnRzOiBbV29ya3NwYWNlU3dpdGNoQ29tcG9uZW50XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZVN3aXRjaE1vZHVsZSB7fVxyXG4iXX0=
|
|
@@ -320,6 +320,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
320
320
|
args: [AccordionPanelComponent]
|
|
321
321
|
}] } });
|
|
322
322
|
|
|
323
|
+
/**
|
|
324
|
+
* @deprecated Será removido na v20. Importe diretamente os standalones `AccordionComponent` e
|
|
325
|
+
* `AccordionPanelComponent` (de `@seniorsistemas/angular-components/accordion`) no lugar deste módulo.
|
|
326
|
+
*
|
|
327
|
+
* Migração automática (também executada pelo `ng update` na v20):
|
|
328
|
+
* `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
|
|
329
|
+
*/
|
|
323
330
|
class AccordionModule {
|
|
324
331
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
325
332
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: AccordionModule, imports: [AccordionComponent, AccordionPanelComponent], exports: [AccordionComponent, AccordionPanelComponent] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-accordion.mjs","sources":["../../projects/angular-components/accordion/src/lib/accordion/components/accordion-panel/accordion-panel.component.ts","../../projects/angular-components/accordion/src/lib/accordion/components/accordion-panel/accordion-panel.component.html","../../projects/angular-components/accordion/src/lib/accordion/accordion.component.ts","../../projects/angular-components/accordion/src/lib/accordion/accordion.component.html","../../projects/angular-components/accordion/src/lib/accordion/accordion.module.ts","../../projects/angular-components/accordion/src/seniorsistemas-angular-components-accordion.ts"],"sourcesContent":["import { AfterViewInit, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\r\nimport { trigger, style, animate, transition, state } from '@angular/animations';\r\n\r\nimport { UntypedFormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { AccordionButtonSettings, ValidationMessageIconColor } from '../../models/accordion-button-settings';\r\nimport { BadgeColors, BadgeComponent } from '@seniorsistemas/angular-components/badge';\r\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { SwitchComponent } from '@seniorsistemas/angular-components/switch';\r\n\r\nlet nextPanelId = 0;\r\n\r\n/**\r\n * @description Painel individual do {@link AccordionComponent}. Gerencia o estado de\r\n * abertura/fechamento com animação, podendo conter um switch de controle via `switchControl`,\r\n * botões de ação configuráveis e uma mensagem de validação com ícone.\r\n *\r\n * @example\r\n * ```html\r\n * <s-accordion-panel\r\n * header=\"Configurações\"\r\n * [disabled]=\"false\"\r\n * (panelOpened)=\"onOpen()\"\r\n * (panelClosed)=\"onClose()\">\r\n * <p>Conteúdo do painel</p>\r\n * </s-accordion-panel>\r\n * ```\r\n *\r\n * @category Inputs\r\n */\r\n@Component({\r\n selector: 's-accordion-panel',\r\n templateUrl: './accordion-panel.component.html',\r\n animations: [\r\n trigger('cachelessAnimation', [\r\n transition(':enter', [style({ height: '0' }), animate('200ms linear', style({ height: '*' }))]),\r\n transition(':leave', [style({ height: '*' }), animate('200ms linear', style({ height: '0' }))]),\r\n ]),\r\n trigger('cacheAnimation', [\r\n state('true', style({ height: '*' })),\r\n state('false', style({ height: '0px' })),\r\n transition('* => *', animate('200ms')),\r\n ]),\r\n ],\r\n standalone: true,\r\n imports: [\r\n TooltipDirective,\r\n BadgeComponent,\r\n NgClass,\r\n SwitchComponent,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgTemplateOutlet,\r\n ],\r\n})\r\nexport class AccordionPanelComponent implements OnChanges, AfterViewInit {\r\n /**\r\n * @description Título exibido no cabeçalho do painel. Campo obrigatório.\r\n */\r\n @Input({ required: true })\r\n public header!: string;\r\n\r\n /**\r\n * @description Cria um componente Badge ao lado dos botões de ação no cabeçalho do painel.\r\n * O objeto de configuração deve conter o texto e a cor do badge.\r\n */\r\n @Input()\r\n public badgeConfig?: { text: string; color: BadgeColors };\r\n\r\n /**\r\n * @description Lista de botões de ação exibidos no cabeçalho do painel,\r\n * à direita do título. Cada item define ícone, tooltip e callback de clique.\r\n */\r\n @Input()\r\n public buttons?: AccordionButtonSettings[];\r\n\r\n /**\r\n * @description Desabilita a interação do usuário com o painel, impedindo abertura e fechamento.\r\n *\r\n * @default false\r\n */\r\n @Input()\r\n public disabled = false;\r\n\r\n /**\r\n * @description `FormControl` vinculado a um switch exibido no cabeçalho do painel.\r\n * Permite habilitar/desabilitar o conteúdo do painel via toggle.\r\n */\r\n @Input()\r\n public switchControl?: UntypedFormControl;\r\n\r\n /**\r\n * @description Mensagem de validação exibida abaixo do cabeçalho, acompanhada de um ícone.\r\n * Útil para indicar erros ou alertas relacionados ao conteúdo do painel.\r\n */\r\n @Input()\r\n public validationMessage?: string;\r\n\r\n /**\r\n * @description Mantém o conteúdo do painel no DOM mesmo quando fechado (modo cache).\r\n * Útil para preservar o estado de componentes internos ao reabrir o painel.\r\n *\r\n * @default false\r\n */\r\n @Input()\r\n public cache = false;\r\n\r\n /**\r\n * @description Classe do ícone exibido ao lado da mensagem de validação.\r\n *\r\n * @default 'fas fa-exclamation-circle'\r\n */\r\n @Input() validationMessageIcon = 'fas fa-exclamation-circle';\r\n\r\n /**\r\n * @description Cor do ícone da mensagem de validação.\r\n *\r\n * @default 'Red'\r\n */\r\n @Input() validationMessageIconColor: ValidationMessageIconColor = 'Red';\r\n\r\n /**\r\n * @description Emitido quando o painel é aberto pelo usuário.\r\n */\r\n @Output()\r\n public panelOpened = new EventEmitter<void>();\r\n\r\n /**\r\n * @description Emitido quando o painel é fechado pelo usuário.\r\n */\r\n @Output()\r\n public panelClosed = new EventEmitter<void>();\r\n\r\n public isAnimating = false;\r\n public isContentAnimationDisabled = true;\r\n public readonly panelId = nextPanelId++;\r\n\r\n private _isOpen = false;\r\n\r\n public get isOpen() {\r\n return this._isOpen;\r\n }\r\n\r\n public set isOpen(isOpen: boolean) {\r\n this._isOpen = isOpen;\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n if ('disabled' in changes && this.switchControl) {\r\n if (changes['disabled'].currentValue) {\r\n this.switchControl.disable({ emitEvent: false });\r\n } else {\r\n this.switchControl.enable({ emitEvent: false });\r\n }\r\n }\r\n\r\n if ('switch' in changes && 'switchControl' in changes) {\r\n throw new Error(\"You can't set switch and switchControl together.\");\r\n }\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n // to executed at a safe time prior to control returning to the browser's event loop\r\n queueMicrotask(() => {\r\n this.isContentAnimationDisabled = false;\r\n });\r\n }\r\n\r\n public onIconButtonsClick(event: Event, callback: VoidFunction) {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n event.stopPropagation();\r\n callback();\r\n }\r\n\r\n public onTabClick() {\r\n if (this.disabled || this.isAnimating) {\r\n return;\r\n }\r\n this.isOpen = !this.isOpen;\r\n this._emitPanelEvent();\r\n }\r\n\r\n public onHeaderKeydown(event: KeyboardEvent): void {\r\n if (event.key === 'Enter' || event.key === ' ') {\r\n event.preventDefault();\r\n this.onTabClick();\r\n }\r\n }\r\n\r\n public onContentAnimationStart() {\r\n this.isAnimating = true;\r\n }\r\n\r\n public onContentAnimationDone() {\r\n this.isAnimating = false;\r\n\r\n this._emitPanelEvent();\r\n }\r\n\r\n private _emitPanelEvent() {\r\n if (this.isOpen) {\r\n this.panelOpened.emit();\r\n } else {\r\n this.panelClosed.emit();\r\n }\r\n }\r\n}\r\n","<div\n class=\"accordion-panel border-b border-grayscale-30\"\n [class.accordion-panel--open]=\"isOpen\"\n [class.accordion-panel--disabled]=\"disabled\"\n>\n <div\n class=\"header flex select-none items-center justify-between border-grayscale-30 bg-grayscale-0 p-4\"\n [class.bg-grayscale-10]=\"isOpen\"\n [class.border-b]=\"isOpen\"\n [class.cursor-pointer]=\"!disabled\"\n [class.cursor-auto]=\"disabled\"\n >\n <div\n class=\"header__trigger flex items-center flex-1 flex-nowrap focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--s-focus-ring-color,#0090ff)] focus-visible:[outline-offset:-2px]\"\n [class.cursor-pointer]=\"!disabled\"\n [class.cursor-auto]=\"disabled\"\n role=\"button\"\n [tabindex]=\"disabled ? -1 : 0\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-controls]=\"'accordion-panel-content-' + panelId\"\n [attr.aria-disabled]=\"disabled\"\n (click)=\"onTabClick()\"\n (keydown)=\"onHeaderKeydown($event)\"\n >\n <span\n class=\"icon fas text-base mr-3\"\n [class.fa-minus]=\"isOpen\"\n [class.fa-plus]=\"!isOpen\"\n [class.text-grayscale-90]=\"!disabled\"\n [class.text-grayscale-30]=\"disabled\"\n aria-hidden=\"true\"\n >\n </span>\n @if (validationMessage) {\n <span\n class=\"exclamation-icon text-base mr-3\"\n [class]=\"validationMessageIcon\"\n [sTooltip]=\"validationMessage\"\n [class.exclamation-icon-red]=\"validationMessageIconColor === 'Red'\"\n [class.text-criticality-red]=\"validationMessageIconColor === 'Red'\"\n [class.exclamation-icon-orange]=\"validationMessageIconColor === 'Orange'\"\n [class.text-criticality-orange]=\"validationMessageIconColor === 'Orange'\"\n [class.exclamation-icon-yellow]=\"validationMessageIconColor === 'Yellow'\"\n [class.text-criticality-yellow]=\"validationMessageIconColor === 'Yellow'\"\n [class.exclamation-icon-green]=\"validationMessageIconColor === 'Green'\"\n [class.text-criticality-green]=\"validationMessageIconColor === 'Green'\"\n [class.exclamation-icon-blue]=\"validationMessageIconColor === 'Blue'\"\n [class.text-primary]=\"validationMessageIconColor === 'Blue'\"\n [class.opacity-50]=\"disabled\"\n aria-hidden=\"true\"\n >\n </span>\n }\n <span\n class=\"title font-open-sans text-sm font-bold uppercase leading-normal\"\n [class.text-grayscale-30]=\"disabled\"\n [id]=\"'accordion-panel-header-' + panelId\"\n >{{ header }}</span\n >\n </div>\n <div class=\"header__controls flex items-center ml-4\">\n @if (badgeConfig) {\n <s-badge\n [color]=\"badgeConfig.color\"\n [text]=\"badgeConfig.text\"\n ></s-badge>\n }\n\n @for (button of buttons; track button.icon) {\n <button\n class=\"icon-button text-base ml-3 p-1 border-0 bg-transparent rounded-[50%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[3px] focus-visible:outline-[var(--s-focus-ring-color,#0090ff)]\"\n [class.text-grayscale-90]=\"!disabled\"\n [class.text-grayscale-30]=\"disabled\"\n [class.cursor-pointer]=\"!disabled\"\n [class.cursor-auto]=\"disabled\"\n [ngClass]=\"button.icon\"\n [attr.aria-label]=\"button.label\"\n (click)=\"onIconButtonsClick($event, button.onClick)\"\n ></button>\n }\n\n @if (switchControl) {\n <s-switch\n class=\"switch pl-4\"\n [formControl]=\"switchControl\"\n (click)=\"$event.stopPropagation()\"\n >\n </s-switch>\n }\n </div>\n </div>\n\n @if (cache) {\n <div\n class=\"content bg-grayscale-0 overflow-hidden\"\n role=\"region\"\n [attr.aria-labelledby]=\"'accordion-panel-header-' + panelId\"\n [id]=\"'accordion-panel-content-' + panelId\"\n [@cacheAnimation]=\"isOpen\"\n [@.disabled]=\"isContentAnimationDisabled\"\n (@cacheAnimation.start)=\"onContentAnimationStart()\"\n (@cacheAnimation.done)=\"onContentAnimationDone()\"\n >\n <div class=\"content-container m-5\">\n <ng-container [ngTemplateOutlet]=\"panelContent\"></ng-container>\n </div>\n </div>\n } @else {\n @if (isOpen) {\n <div\n class=\"content bg-grayscale-0 overflow-hidden\"\n role=\"region\"\n [attr.aria-labelledby]=\"'accordion-panel-header-' + panelId\"\n [id]=\"'accordion-panel-content-' + panelId\"\n @cachelessAnimation\n [@.disabled]=\"isContentAnimationDisabled\"\n (@cachelessAnimation.start)=\"onContentAnimationStart()\"\n (@cachelessAnimation.done)=\"onContentAnimationDone()\"\n >\n <div class=\"content-container m-5\">\n <ng-container [ngTemplateOutlet]=\"panelContent\"></ng-container>\n </div>\n </div>\n }\n }\n</div>\n\n<ng-template #panelContent>\n <ng-content></ng-content>\n</ng-template>\n","import {\r\n AfterContentInit,\r\n OnChanges,\r\n Component,\r\n ContentChildren,\r\n Input,\r\n QueryList,\r\n SimpleChanges,\r\n OnDestroy,\r\n} from '@angular/core';\r\n\r\nimport { AccordionPanelComponent } from './components/accordion-panel/accordion-panel.component';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n/**\r\n * @description Componente de acordeão que gerencia a abertura e o fechamento de painéis\r\n * {@link AccordionPanelComponent}. Suporta modo de painel único (apenas um aberto por vez)\r\n * ou modo múltiplo (vários painéis abertos simultaneamente), configurável via input `multiple`.\r\n *\r\n * @example\r\n * ```html\r\n * <s-accordion [multiple]=\"false\" [activeIndex]=\"0\">\r\n * <s-accordion-panel header=\"Seção 1\">Conteúdo 1</s-accordion-panel>\r\n * <s-accordion-panel header=\"Seção 2\">Conteúdo 2</s-accordion-panel>\r\n * </s-accordion>\r\n * ```\r\n *\r\n * @category Inputs\r\n */\r\n@Component({\r\n selector: 's-accordion',\r\n templateUrl: './accordion.component.html',\r\n standalone: true,\r\n})\r\nexport class AccordionComponent implements AfterContentInit, OnChanges, OnDestroy {\r\n /**\r\n * @description Índice (ou lista de índices) do(s) painel(is) que devem iniciar abertos.\r\n * Aceita um número para painel único ou um array de números para o modo múltiplo.\r\n */\r\n @Input()\r\n public activeIndex?: number | number[];\r\n\r\n /**\r\n * @description Permite que múltiplos painéis estejam abertos ao mesmo tempo.\r\n * Quando `false`, abrir um painel fecha automaticamente o anterior.\r\n *\r\n * @default false\r\n */\r\n @Input()\r\n public multiple = false;\r\n\r\n @ContentChildren(AccordionPanelComponent)\r\n public panelsComponents?: QueryList<AccordionPanelComponent>;\r\n\r\n private readonly _unsubscribe$ = new Subject<void>();\r\n private _panels: AccordionPanelComponent[] = [];\r\n private _openSubs: Subscription[] = [];\r\n\r\n public ngAfterContentInit(): void {\r\n if (this.panelsComponents) {\r\n this._panels = this.panelsComponents?.toArray();\r\n }\r\n\r\n this._openSubs = Array.from({ length: this._panels.length });\r\n\r\n this._setBehavior(this.multiple);\r\n this._setupTabs();\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['multiple']) {\r\n this._setBehavior(changes['multiple'].currentValue);\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._unsubscribe$.next();\r\n this._unsubscribe$.complete();\r\n }\r\n\r\n private _setupTabs(): void {\r\n if (this._panels?.length) {\r\n if (this.activeIndex !== undefined && this.activeIndex !== null) {\r\n const activeTabs = Array.isArray(this.activeIndex)\r\n ? this._panels.filter((_, index) => (this.activeIndex as number[]).includes(index))\r\n : [this._panels[this.activeIndex]];\r\n\r\n if (activeTabs.length === 0) {\r\n throw new Error('activeIndex does not represent any panel.');\r\n }\r\n\r\n for (const activeTab of activeTabs) {\r\n if (!activeTab.disabled) {\r\n activeTab.isOpen = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _closeOtherTabs(exception: number) {\r\n this._panels.forEach((panel, index) => {\r\n if (index !== exception) {\r\n panel.isOpen = false;\r\n }\r\n });\r\n }\r\n\r\n private _setBehavior(multiple: boolean): void {\r\n if (multiple) {\r\n this._enableMultiplePanelBehavior();\r\n } else {\r\n this._enableSinglePanelBehavior();\r\n }\r\n }\r\n\r\n private _enableSinglePanelBehavior() {\r\n this._panels.forEach((panel, index) => {\r\n this._openSubs[index] = panel.panelOpened.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\r\n this._closeOtherTabs(index);\r\n });\r\n });\r\n }\r\n\r\n private _enableMultiplePanelBehavior() {\r\n this._panels.forEach((_, index) => {\r\n if (this._openSubs[index]) {\r\n this._openSubs[index].unsubscribe();\r\n }\r\n });\r\n }\r\n}\r\n","<div class=\"accordion border border-grayscale-30 rounded-xbig overflow-hidden\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\r\n\r\nimport { AccordionComponent } from './accordion.component';\r\nimport { AccordionPanelComponent } from './components/accordion-panel/accordion-panel.component';\r\n\r\n@NgModule({\r\n imports: [AccordionComponent, AccordionPanelComponent],\r\n exports: [AccordionComponent, AccordionPanelComponent],\r\n})\r\nexport class AccordionModule {}\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-accordion.mjs","sources":["../../projects/angular-components/accordion/src/lib/accordion/components/accordion-panel/accordion-panel.component.ts","../../projects/angular-components/accordion/src/lib/accordion/components/accordion-panel/accordion-panel.component.html","../../projects/angular-components/accordion/src/lib/accordion/accordion.component.ts","../../projects/angular-components/accordion/src/lib/accordion/accordion.component.html","../../projects/angular-components/accordion/src/lib/accordion/accordion.module.ts","../../projects/angular-components/accordion/src/seniorsistemas-angular-components-accordion.ts"],"sourcesContent":["import { AfterViewInit, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\r\nimport { trigger, style, animate, transition, state } from '@angular/animations';\r\n\r\nimport { UntypedFormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { AccordionButtonSettings, ValidationMessageIconColor } from '../../models/accordion-button-settings';\r\nimport { BadgeColors, BadgeComponent } from '@seniorsistemas/angular-components/badge';\r\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { SwitchComponent } from '@seniorsistemas/angular-components/switch';\r\n\r\nlet nextPanelId = 0;\r\n\r\n/**\r\n * @description Painel individual do {@link AccordionComponent}. Gerencia o estado de\r\n * abertura/fechamento com animação, podendo conter um switch de controle via `switchControl`,\r\n * botões de ação configuráveis e uma mensagem de validação com ícone.\r\n *\r\n * @example\r\n * ```html\r\n * <s-accordion-panel\r\n * header=\"Configurações\"\r\n * [disabled]=\"false\"\r\n * (panelOpened)=\"onOpen()\"\r\n * (panelClosed)=\"onClose()\">\r\n * <p>Conteúdo do painel</p>\r\n * </s-accordion-panel>\r\n * ```\r\n *\r\n * @category Inputs\r\n */\r\n@Component({\r\n selector: 's-accordion-panel',\r\n templateUrl: './accordion-panel.component.html',\r\n animations: [\r\n trigger('cachelessAnimation', [\r\n transition(':enter', [style({ height: '0' }), animate('200ms linear', style({ height: '*' }))]),\r\n transition(':leave', [style({ height: '*' }), animate('200ms linear', style({ height: '0' }))]),\r\n ]),\r\n trigger('cacheAnimation', [\r\n state('true', style({ height: '*' })),\r\n state('false', style({ height: '0px' })),\r\n transition('* => *', animate('200ms')),\r\n ]),\r\n ],\r\n standalone: true,\r\n imports: [\r\n TooltipDirective,\r\n BadgeComponent,\r\n NgClass,\r\n SwitchComponent,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgTemplateOutlet,\r\n ],\r\n})\r\nexport class AccordionPanelComponent implements OnChanges, AfterViewInit {\r\n /**\r\n * @description Título exibido no cabeçalho do painel. Campo obrigatório.\r\n */\r\n @Input({ required: true })\r\n public header!: string;\r\n\r\n /**\r\n * @description Cria um componente Badge ao lado dos botões de ação no cabeçalho do painel.\r\n * O objeto de configuração deve conter o texto e a cor do badge.\r\n */\r\n @Input()\r\n public badgeConfig?: { text: string; color: BadgeColors };\r\n\r\n /**\r\n * @description Lista de botões de ação exibidos no cabeçalho do painel,\r\n * à direita do título. Cada item define ícone, tooltip e callback de clique.\r\n */\r\n @Input()\r\n public buttons?: AccordionButtonSettings[];\r\n\r\n /**\r\n * @description Desabilita a interação do usuário com o painel, impedindo abertura e fechamento.\r\n *\r\n * @default false\r\n */\r\n @Input()\r\n public disabled = false;\r\n\r\n /**\r\n * @description `FormControl` vinculado a um switch exibido no cabeçalho do painel.\r\n * Permite habilitar/desabilitar o conteúdo do painel via toggle.\r\n */\r\n @Input()\r\n public switchControl?: UntypedFormControl;\r\n\r\n /**\r\n * @description Mensagem de validação exibida abaixo do cabeçalho, acompanhada de um ícone.\r\n * Útil para indicar erros ou alertas relacionados ao conteúdo do painel.\r\n */\r\n @Input()\r\n public validationMessage?: string;\r\n\r\n /**\r\n * @description Mantém o conteúdo do painel no DOM mesmo quando fechado (modo cache).\r\n * Útil para preservar o estado de componentes internos ao reabrir o painel.\r\n *\r\n * @default false\r\n */\r\n @Input()\r\n public cache = false;\r\n\r\n /**\r\n * @description Classe do ícone exibido ao lado da mensagem de validação.\r\n *\r\n * @default 'fas fa-exclamation-circle'\r\n */\r\n @Input() validationMessageIcon = 'fas fa-exclamation-circle';\r\n\r\n /**\r\n * @description Cor do ícone da mensagem de validação.\r\n *\r\n * @default 'Red'\r\n */\r\n @Input() validationMessageIconColor: ValidationMessageIconColor = 'Red';\r\n\r\n /**\r\n * @description Emitido quando o painel é aberto pelo usuário.\r\n */\r\n @Output()\r\n public panelOpened = new EventEmitter<void>();\r\n\r\n /**\r\n * @description Emitido quando o painel é fechado pelo usuário.\r\n */\r\n @Output()\r\n public panelClosed = new EventEmitter<void>();\r\n\r\n public isAnimating = false;\r\n public isContentAnimationDisabled = true;\r\n public readonly panelId = nextPanelId++;\r\n\r\n private _isOpen = false;\r\n\r\n public get isOpen() {\r\n return this._isOpen;\r\n }\r\n\r\n public set isOpen(isOpen: boolean) {\r\n this._isOpen = isOpen;\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n if ('disabled' in changes && this.switchControl) {\r\n if (changes['disabled'].currentValue) {\r\n this.switchControl.disable({ emitEvent: false });\r\n } else {\r\n this.switchControl.enable({ emitEvent: false });\r\n }\r\n }\r\n\r\n if ('switch' in changes && 'switchControl' in changes) {\r\n throw new Error(\"You can't set switch and switchControl together.\");\r\n }\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n // to executed at a safe time prior to control returning to the browser's event loop\r\n queueMicrotask(() => {\r\n this.isContentAnimationDisabled = false;\r\n });\r\n }\r\n\r\n public onIconButtonsClick(event: Event, callback: VoidFunction) {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n event.stopPropagation();\r\n callback();\r\n }\r\n\r\n public onTabClick() {\r\n if (this.disabled || this.isAnimating) {\r\n return;\r\n }\r\n this.isOpen = !this.isOpen;\r\n this._emitPanelEvent();\r\n }\r\n\r\n public onHeaderKeydown(event: KeyboardEvent): void {\r\n if (event.key === 'Enter' || event.key === ' ') {\r\n event.preventDefault();\r\n this.onTabClick();\r\n }\r\n }\r\n\r\n public onContentAnimationStart() {\r\n this.isAnimating = true;\r\n }\r\n\r\n public onContentAnimationDone() {\r\n this.isAnimating = false;\r\n\r\n this._emitPanelEvent();\r\n }\r\n\r\n private _emitPanelEvent() {\r\n if (this.isOpen) {\r\n this.panelOpened.emit();\r\n } else {\r\n this.panelClosed.emit();\r\n }\r\n }\r\n}\r\n","<div\n class=\"accordion-panel border-b border-grayscale-30\"\n [class.accordion-panel--open]=\"isOpen\"\n [class.accordion-panel--disabled]=\"disabled\"\n>\n <div\n class=\"header flex select-none items-center justify-between border-grayscale-30 bg-grayscale-0 p-4\"\n [class.bg-grayscale-10]=\"isOpen\"\n [class.border-b]=\"isOpen\"\n [class.cursor-pointer]=\"!disabled\"\n [class.cursor-auto]=\"disabled\"\n >\n <div\n class=\"header__trigger flex items-center flex-1 flex-nowrap focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--s-focus-ring-color,#0090ff)] focus-visible:[outline-offset:-2px]\"\n [class.cursor-pointer]=\"!disabled\"\n [class.cursor-auto]=\"disabled\"\n role=\"button\"\n [tabindex]=\"disabled ? -1 : 0\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-controls]=\"'accordion-panel-content-' + panelId\"\n [attr.aria-disabled]=\"disabled\"\n (click)=\"onTabClick()\"\n (keydown)=\"onHeaderKeydown($event)\"\n >\n <span\n class=\"icon fas text-base mr-3\"\n [class.fa-minus]=\"isOpen\"\n [class.fa-plus]=\"!isOpen\"\n [class.text-grayscale-90]=\"!disabled\"\n [class.text-grayscale-30]=\"disabled\"\n aria-hidden=\"true\"\n >\n </span>\n @if (validationMessage) {\n <span\n class=\"exclamation-icon text-base mr-3\"\n [class]=\"validationMessageIcon\"\n [sTooltip]=\"validationMessage\"\n [class.exclamation-icon-red]=\"validationMessageIconColor === 'Red'\"\n [class.text-criticality-red]=\"validationMessageIconColor === 'Red'\"\n [class.exclamation-icon-orange]=\"validationMessageIconColor === 'Orange'\"\n [class.text-criticality-orange]=\"validationMessageIconColor === 'Orange'\"\n [class.exclamation-icon-yellow]=\"validationMessageIconColor === 'Yellow'\"\n [class.text-criticality-yellow]=\"validationMessageIconColor === 'Yellow'\"\n [class.exclamation-icon-green]=\"validationMessageIconColor === 'Green'\"\n [class.text-criticality-green]=\"validationMessageIconColor === 'Green'\"\n [class.exclamation-icon-blue]=\"validationMessageIconColor === 'Blue'\"\n [class.text-primary]=\"validationMessageIconColor === 'Blue'\"\n [class.opacity-50]=\"disabled\"\n aria-hidden=\"true\"\n >\n </span>\n }\n <span\n class=\"title font-open-sans text-sm font-bold uppercase leading-normal\"\n [class.text-grayscale-30]=\"disabled\"\n [id]=\"'accordion-panel-header-' + panelId\"\n >{{ header }}</span\n >\n </div>\n <div class=\"header__controls flex items-center ml-4\">\n @if (badgeConfig) {\n <s-badge\n [color]=\"badgeConfig.color\"\n [text]=\"badgeConfig.text\"\n ></s-badge>\n }\n\n @for (button of buttons; track button.icon) {\n <button\n class=\"icon-button text-base ml-3 p-1 border-0 bg-transparent rounded-[50%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[3px] focus-visible:outline-[var(--s-focus-ring-color,#0090ff)]\"\n [class.text-grayscale-90]=\"!disabled\"\n [class.text-grayscale-30]=\"disabled\"\n [class.cursor-pointer]=\"!disabled\"\n [class.cursor-auto]=\"disabled\"\n [ngClass]=\"button.icon\"\n [attr.aria-label]=\"button.label\"\n (click)=\"onIconButtonsClick($event, button.onClick)\"\n ></button>\n }\n\n @if (switchControl) {\n <s-switch\n class=\"switch pl-4\"\n [formControl]=\"switchControl\"\n (click)=\"$event.stopPropagation()\"\n >\n </s-switch>\n }\n </div>\n </div>\n\n @if (cache) {\n <div\n class=\"content bg-grayscale-0 overflow-hidden\"\n role=\"region\"\n [attr.aria-labelledby]=\"'accordion-panel-header-' + panelId\"\n [id]=\"'accordion-panel-content-' + panelId\"\n [@cacheAnimation]=\"isOpen\"\n [@.disabled]=\"isContentAnimationDisabled\"\n (@cacheAnimation.start)=\"onContentAnimationStart()\"\n (@cacheAnimation.done)=\"onContentAnimationDone()\"\n >\n <div class=\"content-container m-5\">\n <ng-container [ngTemplateOutlet]=\"panelContent\"></ng-container>\n </div>\n </div>\n } @else {\n @if (isOpen) {\n <div\n class=\"content bg-grayscale-0 overflow-hidden\"\n role=\"region\"\n [attr.aria-labelledby]=\"'accordion-panel-header-' + panelId\"\n [id]=\"'accordion-panel-content-' + panelId\"\n @cachelessAnimation\n [@.disabled]=\"isContentAnimationDisabled\"\n (@cachelessAnimation.start)=\"onContentAnimationStart()\"\n (@cachelessAnimation.done)=\"onContentAnimationDone()\"\n >\n <div class=\"content-container m-5\">\n <ng-container [ngTemplateOutlet]=\"panelContent\"></ng-container>\n </div>\n </div>\n }\n }\n</div>\n\n<ng-template #panelContent>\n <ng-content></ng-content>\n</ng-template>\n","import {\r\n AfterContentInit,\r\n OnChanges,\r\n Component,\r\n ContentChildren,\r\n Input,\r\n QueryList,\r\n SimpleChanges,\r\n OnDestroy,\r\n} from '@angular/core';\r\n\r\nimport { AccordionPanelComponent } from './components/accordion-panel/accordion-panel.component';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n/**\r\n * @description Componente de acordeão que gerencia a abertura e o fechamento de painéis\r\n * {@link AccordionPanelComponent}. Suporta modo de painel único (apenas um aberto por vez)\r\n * ou modo múltiplo (vários painéis abertos simultaneamente), configurável via input `multiple`.\r\n *\r\n * @example\r\n * ```html\r\n * <s-accordion [multiple]=\"false\" [activeIndex]=\"0\">\r\n * <s-accordion-panel header=\"Seção 1\">Conteúdo 1</s-accordion-panel>\r\n * <s-accordion-panel header=\"Seção 2\">Conteúdo 2</s-accordion-panel>\r\n * </s-accordion>\r\n * ```\r\n *\r\n * @category Inputs\r\n */\r\n@Component({\r\n selector: 's-accordion',\r\n templateUrl: './accordion.component.html',\r\n standalone: true,\r\n})\r\nexport class AccordionComponent implements AfterContentInit, OnChanges, OnDestroy {\r\n /**\r\n * @description Índice (ou lista de índices) do(s) painel(is) que devem iniciar abertos.\r\n * Aceita um número para painel único ou um array de números para o modo múltiplo.\r\n */\r\n @Input()\r\n public activeIndex?: number | number[];\r\n\r\n /**\r\n * @description Permite que múltiplos painéis estejam abertos ao mesmo tempo.\r\n * Quando `false`, abrir um painel fecha automaticamente o anterior.\r\n *\r\n * @default false\r\n */\r\n @Input()\r\n public multiple = false;\r\n\r\n @ContentChildren(AccordionPanelComponent)\r\n public panelsComponents?: QueryList<AccordionPanelComponent>;\r\n\r\n private readonly _unsubscribe$ = new Subject<void>();\r\n private _panels: AccordionPanelComponent[] = [];\r\n private _openSubs: Subscription[] = [];\r\n\r\n public ngAfterContentInit(): void {\r\n if (this.panelsComponents) {\r\n this._panels = this.panelsComponents?.toArray();\r\n }\r\n\r\n this._openSubs = Array.from({ length: this._panels.length });\r\n\r\n this._setBehavior(this.multiple);\r\n this._setupTabs();\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['multiple']) {\r\n this._setBehavior(changes['multiple'].currentValue);\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._unsubscribe$.next();\r\n this._unsubscribe$.complete();\r\n }\r\n\r\n private _setupTabs(): void {\r\n if (this._panels?.length) {\r\n if (this.activeIndex !== undefined && this.activeIndex !== null) {\r\n const activeTabs = Array.isArray(this.activeIndex)\r\n ? this._panels.filter((_, index) => (this.activeIndex as number[]).includes(index))\r\n : [this._panels[this.activeIndex]];\r\n\r\n if (activeTabs.length === 0) {\r\n throw new Error('activeIndex does not represent any panel.');\r\n }\r\n\r\n for (const activeTab of activeTabs) {\r\n if (!activeTab.disabled) {\r\n activeTab.isOpen = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _closeOtherTabs(exception: number) {\r\n this._panels.forEach((panel, index) => {\r\n if (index !== exception) {\r\n panel.isOpen = false;\r\n }\r\n });\r\n }\r\n\r\n private _setBehavior(multiple: boolean): void {\r\n if (multiple) {\r\n this._enableMultiplePanelBehavior();\r\n } else {\r\n this._enableSinglePanelBehavior();\r\n }\r\n }\r\n\r\n private _enableSinglePanelBehavior() {\r\n this._panels.forEach((panel, index) => {\r\n this._openSubs[index] = panel.panelOpened.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\r\n this._closeOtherTabs(index);\r\n });\r\n });\r\n }\r\n\r\n private _enableMultiplePanelBehavior() {\r\n this._panels.forEach((_, index) => {\r\n if (this._openSubs[index]) {\r\n this._openSubs[index].unsubscribe();\r\n }\r\n });\r\n }\r\n}\r\n","<div class=\"accordion border border-grayscale-30 rounded-xbig overflow-hidden\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\r\n\r\nimport { AccordionComponent } from './accordion.component';\r\nimport { AccordionPanelComponent } from './components/accordion-panel/accordion-panel.component';\r\n\r\n/**\r\n * @deprecated Será removido na v20. Importe diretamente os standalones `AccordionComponent` e\r\n * `AccordionPanelComponent` (de `@seniorsistemas/angular-components/accordion`) no lugar deste módulo.\r\n *\r\n * Migração automática (também executada pelo `ng update` na v20):\r\n * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`\r\n */\r\n@NgModule({\r\n imports: [AccordionComponent, AccordionPanelComponent],\r\n exports: [AccordionComponent, AccordionPanelComponent],\r\n})\r\nexport class AccordionModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -89,6 +89,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
89
89
|
type: Output
|
|
90
90
|
}] } });
|
|
91
91
|
|
|
92
|
+
/**
|
|
93
|
+
* @deprecated Será removido na v20. Importe diretamente o standalone `AlertComponent` (de
|
|
94
|
+
* `@seniorsistemas/angular-components/alert`) no lugar deste módulo.
|
|
95
|
+
*
|
|
96
|
+
* Migração automática (também executada pelo `ng update` na v20):
|
|
97
|
+
* `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
|
|
98
|
+
*/
|
|
92
99
|
class AlertModule {
|
|
93
100
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
94
101
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: AlertModule, imports: [AlertComponent], exports: [AlertComponent] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-alert.mjs","sources":["../../projects/angular-components/alert/src/lib/alert/alert.component.ts","../../projects/angular-components/alert/src/lib/alert/alert.component.html","../../projects/angular-components/alert/src/lib/alert/alert.module.ts","../../projects/angular-components/alert/src/seniorsistemas-angular-components-alert.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\r\nimport { Component, EventEmitter, input, Input, Output } from '@angular/core';\r\n\r\n/**\r\n * @description Componente de alerta que exibe mensagens informativas, de sucesso, aviso ou erro.\r\n * Suporta fechamento manual pelo usuário e emite um evento ao ser fechado.\r\n *\r\n * @example\r\n * ```html\r\n * <s-alert\r\n * severity=\"warning\"\r\n * summary=\"Atenção\"\r\n * detail=\"Verifique os dados antes de continuar.\"\r\n * (closed)=\"onAlertClosed()\"\r\n * />\r\n * ```\r\n *\r\n * @category Feedback\r\n */\r\n@Component({\r\n selector: 's-alert',\r\n templateUrl: './alert.component.html',\r\n standalone: true,\r\n imports: [NgClass],\r\n})\r\nexport class AlertComponent {\r\n /**\r\n * @description Nível de severidade do alerta, que define a cor e o ícone exibidos.\r\n * - `'info'`: alerta informativo (padrão).\r\n * - `'success'`: alerta de sucesso.\r\n * - `'warning'`: alerta de aviso.\r\n * - `'error'`: alerta de erro.\r\n *\r\n * @default 'info'\r\n */\r\n // sonar-ignore: Refactor this union type to have less than 3 elements\r\n @Input()\r\n public severity: 'info' | 'success' | 'warning' | 'error' = 'info';\r\n\r\n /**\r\n * @description Título principal do alerta exibido em destaque. Campo obrigatório.\r\n */\r\n @Input({ required: true })\r\n public summary!: string;\r\n\r\n /**\r\n * @description Mensagem detalhada exibida abaixo do título do alerta. Campo obrigatório.\r\n */\r\n @Input()\r\n public detail!: string;\r\n\r\n /**\r\n * @description Quando `true`, exibe o botão de fechar o alerta.\r\n * Quando `false`, o alerta não pode ser dispensado pelo usuário.\r\n *\r\n * @default true\r\n */\r\n @Input()\r\n public closable = true;\r\n\r\n /**\r\n * @description Quando `true`, o conteúdo do alerta é escapado para evitar a execução de HTML ou scripts.\r\n * Quando `false`, o conteúdo do alerta é renderizado como HTML, permitindo a inclusão de links, negrito, etc.\r\n *\r\n * @default true\r\n */\r\n escape = input<boolean>(true);\r\n\r\n /**\r\n * @description Emitido quando o usuário fecha o alerta clicando no botão de fechar.\r\n */\r\n @Output()\r\n public closed = new EventEmitter<void>();\r\n\r\n public get isOpen(): boolean {\r\n return this._isOpen;\r\n }\r\n\r\n public closeAlert(): void {\r\n this._isOpen = false;\r\n }\r\n\r\n public showAlert(): void {\r\n this._isOpen = true;\r\n }\r\n\r\n public onClose(): void {\r\n this.closed.emit();\r\n this.closeAlert();\r\n }\r\n\r\n private _isOpen = true;\r\n}\r\n","@if (isOpen) {\n <div\n class=\"alert my-2 flex items-center justify-between gap-4 rounded-medium border-l-4 px-4 py-3 shadow-[1px_1px_2px_rgba(0,0,0,0.2)]\"\n [ngClass]=\"{\n 'alert--info': severity === 'info',\n 'alert--success': severity === 'success',\n 'alert--warning': severity === 'warning',\n 'alert--error': severity === 'error',\n 'border-primary bg-hippie-blue-50': severity === 'info',\n 'border-criticality-green bg-teal-50': severity === 'success',\n 'border-criticality-yellow bg-buttercup-50': severity === 'warning',\n 'border-criticality-red bg-sunset-orange-50': severity === 'error',\n }\"\n >\n <div class=\"content flex items-center gap-4\">\n <div\n class=\"icon-container inline-flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-[50%]\"\n [ngClass]=\"{\n 'bg-primary': severity === 'info',\n 'bg-criticality-green': severity === 'success',\n 'bg-criticality-yellow': severity === 'warning',\n 'bg-criticality-red': severity === 'error',\n }\"\n >\n <i\n class=\"fas\"\n [ngClass]=\"{\n 'fa-info': severity === 'info',\n 'fa-check': severity === 'success',\n 'fa-exclamation-triangle': severity === 'warning',\n 'fa-times': severity === 'error',\n 'text-grayscale-0': severity !== 'warning',\n 'text-grayscale-90': severity === 'warning',\n }\"\n ></i>\n </div>\n <div class=\"text-container flex flex-col gap-4\">\n <div class=\"text flex flex-col justify-start\">\n @if (summary) {\n <span class=\"summary font-open-sans text-sm font-bold text-grayscale-90\">{{ summary }}</span>\n }\n\n @if (detail) {\n @if (escape()) {\n <span class=\"detail font-open-sans text-sm text-grayscale-90\">\n {{ detail }}\n </span>\n } @else {\n <span\n class=\"detail font-open-sans text-sm text-grayscale-90\"\n [innerHTML]=\"detail\"\n ></span>\n }\n } @else {\n <span class=\"detail font-open-sans text-sm text-grayscale-90\">\n <ng-content />\n </span>\n }\n </div>\n </div>\n </div>\n @if (closable) {\n <button\n class=\"close-option cursor-pointer border-0 bg-transparent p-1 text-base text-grayscale-90\"\n (click)=\"onClose()\"\n >\n <i class=\"fas fa-times\"></i>\n </button>\n }\n </div>\n}\n","import { NgModule } from '@angular/core';\r\n\r\nimport { AlertComponent } from './alert.component';\r\n\r\n@NgModule({\r\n imports: [AlertComponent],\r\n exports: [AlertComponent],\r\n})\r\nexport class AlertModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAGA;;;;;;;;;;;;;;;AAeG;MAOU,cAAc,CAAA;AACvB;;;;;;;;AAQG;;IAGI,QAAQ,GAA6C,MAAM,CAAC;AAEnE;;AAEG;AAEI,IAAA,OAAO,CAAU;AAExB;;AAEG;AAEI,IAAA,MAAM,CAAU;AAEvB;;;;;AAKG;IAEI,QAAQ,GAAG,IAAI,CAAC;AAEvB;;;;;AAKG;AACH,IAAA,MAAM,GAAG,KAAK,CAAU,IAAI,CAAC,CAAC;AAE9B;;AAEG;AAEI,IAAA,MAAM,GAAG,IAAI,YAAY,EAAQ,CAAC;AAEzC,IAAA,IAAW,MAAM,GAAA;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;IAEM,UAAU,GAAA;AACb,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACxB;IAEM,SAAS,GAAA;AACZ,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;KACvB;IAEM,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IAEO,OAAO,GAAG,IAAI,CAAC;wGAlEd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,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,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzB3B,6qGAuEA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDhDc,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAER,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EAEP,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,6qGAAA,EAAA,CAAA;8BAcX,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAOC,OAAO,EAAA,CAAA;sBADb,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAOlB,MAAM,EAAA,CAAA;sBADZ,KAAK;gBAUC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAeC,MAAM,EAAA,CAAA;sBADZ,MAAM;;;
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-alert.mjs","sources":["../../projects/angular-components/alert/src/lib/alert/alert.component.ts","../../projects/angular-components/alert/src/lib/alert/alert.component.html","../../projects/angular-components/alert/src/lib/alert/alert.module.ts","../../projects/angular-components/alert/src/seniorsistemas-angular-components-alert.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\r\nimport { Component, EventEmitter, input, Input, Output } from '@angular/core';\r\n\r\n/**\r\n * @description Componente de alerta que exibe mensagens informativas, de sucesso, aviso ou erro.\r\n * Suporta fechamento manual pelo usuário e emite um evento ao ser fechado.\r\n *\r\n * @example\r\n * ```html\r\n * <s-alert\r\n * severity=\"warning\"\r\n * summary=\"Atenção\"\r\n * detail=\"Verifique os dados antes de continuar.\"\r\n * (closed)=\"onAlertClosed()\"\r\n * />\r\n * ```\r\n *\r\n * @category Feedback\r\n */\r\n@Component({\r\n selector: 's-alert',\r\n templateUrl: './alert.component.html',\r\n standalone: true,\r\n imports: [NgClass],\r\n})\r\nexport class AlertComponent {\r\n /**\r\n * @description Nível de severidade do alerta, que define a cor e o ícone exibidos.\r\n * - `'info'`: alerta informativo (padrão).\r\n * - `'success'`: alerta de sucesso.\r\n * - `'warning'`: alerta de aviso.\r\n * - `'error'`: alerta de erro.\r\n *\r\n * @default 'info'\r\n */\r\n // sonar-ignore: Refactor this union type to have less than 3 elements\r\n @Input()\r\n public severity: 'info' | 'success' | 'warning' | 'error' = 'info';\r\n\r\n /**\r\n * @description Título principal do alerta exibido em destaque. Campo obrigatório.\r\n */\r\n @Input({ required: true })\r\n public summary!: string;\r\n\r\n /**\r\n * @description Mensagem detalhada exibida abaixo do título do alerta. Campo obrigatório.\r\n */\r\n @Input()\r\n public detail!: string;\r\n\r\n /**\r\n * @description Quando `true`, exibe o botão de fechar o alerta.\r\n * Quando `false`, o alerta não pode ser dispensado pelo usuário.\r\n *\r\n * @default true\r\n */\r\n @Input()\r\n public closable = true;\r\n\r\n /**\r\n * @description Quando `true`, o conteúdo do alerta é escapado para evitar a execução de HTML ou scripts.\r\n * Quando `false`, o conteúdo do alerta é renderizado como HTML, permitindo a inclusão de links, negrito, etc.\r\n *\r\n * @default true\r\n */\r\n escape = input<boolean>(true);\r\n\r\n /**\r\n * @description Emitido quando o usuário fecha o alerta clicando no botão de fechar.\r\n */\r\n @Output()\r\n public closed = new EventEmitter<void>();\r\n\r\n public get isOpen(): boolean {\r\n return this._isOpen;\r\n }\r\n\r\n public closeAlert(): void {\r\n this._isOpen = false;\r\n }\r\n\r\n public showAlert(): void {\r\n this._isOpen = true;\r\n }\r\n\r\n public onClose(): void {\r\n this.closed.emit();\r\n this.closeAlert();\r\n }\r\n\r\n private _isOpen = true;\r\n}\r\n","@if (isOpen) {\n <div\n class=\"alert my-2 flex items-center justify-between gap-4 rounded-medium border-l-4 px-4 py-3 shadow-[1px_1px_2px_rgba(0,0,0,0.2)]\"\n [ngClass]=\"{\n 'alert--info': severity === 'info',\n 'alert--success': severity === 'success',\n 'alert--warning': severity === 'warning',\n 'alert--error': severity === 'error',\n 'border-primary bg-hippie-blue-50': severity === 'info',\n 'border-criticality-green bg-teal-50': severity === 'success',\n 'border-criticality-yellow bg-buttercup-50': severity === 'warning',\n 'border-criticality-red bg-sunset-orange-50': severity === 'error',\n }\"\n >\n <div class=\"content flex items-center gap-4\">\n <div\n class=\"icon-container inline-flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-[50%]\"\n [ngClass]=\"{\n 'bg-primary': severity === 'info',\n 'bg-criticality-green': severity === 'success',\n 'bg-criticality-yellow': severity === 'warning',\n 'bg-criticality-red': severity === 'error',\n }\"\n >\n <i\n class=\"fas\"\n [ngClass]=\"{\n 'fa-info': severity === 'info',\n 'fa-check': severity === 'success',\n 'fa-exclamation-triangle': severity === 'warning',\n 'fa-times': severity === 'error',\n 'text-grayscale-0': severity !== 'warning',\n 'text-grayscale-90': severity === 'warning',\n }\"\n ></i>\n </div>\n <div class=\"text-container flex flex-col gap-4\">\n <div class=\"text flex flex-col justify-start\">\n @if (summary) {\n <span class=\"summary font-open-sans text-sm font-bold text-grayscale-90\">{{ summary }}</span>\n }\n\n @if (detail) {\n @if (escape()) {\n <span class=\"detail font-open-sans text-sm text-grayscale-90\">\n {{ detail }}\n </span>\n } @else {\n <span\n class=\"detail font-open-sans text-sm text-grayscale-90\"\n [innerHTML]=\"detail\"\n ></span>\n }\n } @else {\n <span class=\"detail font-open-sans text-sm text-grayscale-90\">\n <ng-content />\n </span>\n }\n </div>\n </div>\n </div>\n @if (closable) {\n <button\n class=\"close-option cursor-pointer border-0 bg-transparent p-1 text-base text-grayscale-90\"\n (click)=\"onClose()\"\n >\n <i class=\"fas fa-times\"></i>\n </button>\n }\n </div>\n}\n","import { NgModule } from '@angular/core';\r\n\r\nimport { AlertComponent } from './alert.component';\r\n\r\n/**\r\n * @deprecated Será removido na v20. Importe diretamente o standalone `AlertComponent` (de\r\n * `@seniorsistemas/angular-components/alert`) no lugar deste módulo.\r\n *\r\n * Migração automática (também executada pelo `ng update` na v20):\r\n * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`\r\n */\r\n@NgModule({\r\n imports: [AlertComponent],\r\n exports: [AlertComponent],\r\n})\r\nexport class AlertModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -69,6 +69,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
69
69
|
args: ['click']
|
|
70
70
|
}] } });
|
|
71
71
|
|
|
72
|
+
/**
|
|
73
|
+
* @deprecated Será removido na v20. Importe diretamente o standalone `BadgeComponent` (de
|
|
74
|
+
* `@seniorsistemas/angular-components/badge`) no lugar deste módulo.
|
|
75
|
+
*
|
|
76
|
+
* Este módulo também reexportava `RouterModule` (`@angular/router`, usado em templates por `<router-outlet>`,
|
|
77
|
+
* `[routerLink]`, `[routerLinkActive]`). Se o seu template usa algum deles, importe-o diretamente.
|
|
78
|
+
*
|
|
79
|
+
* Migração automática (também executada pelo `ng update` na v20):
|
|
80
|
+
* `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
|
|
81
|
+
*/
|
|
72
82
|
class BadgeModule {
|
|
73
83
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BadgeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
74
84
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: BadgeModule, imports: [RouterModule, BadgeComponent], exports: [BadgeComponent, RouterModule] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-badge.mjs","sources":["../../projects/angular-components/badge/src/lib/badge/badge.component.ts","../../projects/angular-components/badge/src/lib/badge/badge.component.html","../../projects/angular-components/badge/src/lib/badge/badge.module.ts","../../projects/angular-components/badge/src/seniorsistemas-angular-components-badge.ts"],"sourcesContent":["import { Component, EventEmitter, HostListener, input, Input, Output } from '@angular/core';\r\n\r\nimport { BadgeColors } from './types/badge-colors';\r\nimport { BadgeTypes } from './types/badge-types';\r\nimport { NgClass } from '@angular/common';\r\nimport { InfoSignModule } from '@seniorsistemas/angular-components/info-sign';\r\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\r\n\r\n/**\r\n * @description Componente de badge (etiqueta) para exibir rótulos coloridos e clicáveis,\r\n * com suporte a ícones, variantes visuais (pill, tag) e estado selecionável.\r\n *\r\n * @example\r\n * ```html\r\n * <s-badge color=\"blue\" type=\"pill\" text=\"Ativo\" />\r\n * ```\r\n *\r\n * @category Feedback\r\n */\r\n@Component({\r\n selector: 's-badge',\r\n templateUrl: './badge.component.html',\r\n styleUrls: ['./badge.component.scss'],\r\n standalone: true,\r\n imports: [NgClass, InfoSignModule, TooltipDirective],\r\n})\r\nexport class BadgeComponent {\r\n /** @description Variante visual do badge. @default 'pill' */\r\n @Input()\r\n public type?: BadgeTypes = 'pill';\r\n\r\n /** @description Cor do badge. @default 'blue' */\r\n @Input()\r\n public color?: BadgeColors = 'blue';\r\n\r\n /** @description Texto de título exibido no badge. */\r\n @Input()\r\n public title?: string;\r\n\r\n /** @description Texto principal exibido dentro do badge. */\r\n @Input()\r\n public text?: string;\r\n\r\n /** @description Habilita o modo selecionável, emitindo o evento `selected` ao clicar. @default false */\r\n @Input()\r\n public selectable = false;\r\n\r\n /** @description Classe CSS do ícone exibido no badge (ex.: `'fa fa-check'`). */\r\n @Input()\r\n public iconClass?: string;\r\n\r\n /** @description Posição do ícone em relação ao texto. @default 'left' */\r\n @Input()\r\n public iconPosition?: 'left' | 'right' = 'left';\r\n\r\n /** @description Configuração do info-sign exibido no badge, com texto e tempo de exibição opcional. */\r\n @Input() infoSign!: { text: string; displayTime?: number };\r\n\r\n /** @description Emitido ao clicar no badge, enviando o valor de `text`. */\r\n @Output()\r\n public selected = new EventEmitter<string>();\r\n\r\n @HostListener('click')\r\n public onClick(): void {\r\n this.selected.emit(this.text);\r\n }\r\n\r\n enableTruncateText = input(false);\r\n}\r\n","<span\n class=\"badge inline-flex max-w-full min-h-5 min-w-5 items-center justify-center gap-2 px-2 overflow-hidden border\"\n [ngClass]=\"{\n 'badge--pill': type === 'pill',\n 'badge--chip': type === 'chip',\n 'badge--red': color === 'red',\n 'badge--orange': color === 'orange',\n 'badge--yellow': color === 'yellow',\n 'badge--blue': color === 'blue',\n 'badge--green': color === 'green',\n 'badge--gray': color === 'gray',\n 'badge--selectable': selectable,\n 'rounded-[10px]': type === 'pill',\n 'rounded-medium': type === 'chip',\n 'bg-sunset-orange-100 border-criticality-red': color === 'red',\n 'bg-buttercup-100 border-criticality-orange': color === 'orange',\n 'bg-buttercup-50 border-criticality-yellow': color === 'yellow',\n 'bg-hippie-blue-100 border-criticality-blue': color === 'blue',\n 'bg-lime-100 border-criticality-green': color === 'green',\n 'bg-grayscale-10 border-grayscale-60': color === 'gray',\n 'cursor-pointer select-none': selectable,\n }\"\n>\n @if (infoSign) {\n <span *sInfoSign=\"infoSign.text; displayTime: infoSign.displayTime ?? 0\"></span>\n }\n @if (iconClass) {\n <span\n [class]=\"'badge-icon inline-flex items-center justify-center text-[10px] text-grayscale-90 ' + iconClass\"\n [ngClass]=\"{\n 'badge-icon--left': iconPosition === 'left' && text,\n 'badge-icon--right': iconPosition === 'right' && text,\n 'order-2': iconPosition === 'right' && text,\n }\"\n >\n </span>\n }\n @if (title) {\n <span class=\"badge-title font-open-sans mr-0.5 text-xs font-bold leading-[150%] text-grayscale-90\">{{ title }}:</span>\n }\n @if (text) {\n <span\n class=\"badge-text font-open-sans text-xs font-normal leading-[150%] text-grayscale-90\"\n [class.badge-text-truncated]=\"enableTruncateText()\"\n [class.line-clamp-1]=\"enableTruncateText()\"\n [sTooltip]=\"text\"\n [visible]=\"enableTruncateText()\"\n [checkTruncatedText]=\"enableTruncateText()\"\n >{{text}}</span>\n }\n</span>\n\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { BadgeComponent } from './badge.component';\r\n\r\n@NgModule({\r\n imports: [RouterModule, BadgeComponent],\r\n exports: [BadgeComponent, RouterModule],\r\n})\r\nexport class BadgeModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;AAQA;;;;;;;;;;AAUG;MAQU,cAAc,CAAA;;IAGhB,IAAI,GAAgB,MAAM,CAAC;;IAI3B,KAAK,GAAiB,MAAM,CAAC;;AAI7B,IAAA,KAAK,CAAU;;AAIf,IAAA,IAAI,CAAU;;IAId,UAAU,GAAG,KAAK,CAAC;;AAInB,IAAA,SAAS,CAAU;;IAInB,YAAY,GAAsB,MAAM,CAAC;;AAGvC,IAAA,QAAQ,CAA0C;;AAIpD,IAAA,QAAQ,GAAG,IAAI,YAAY,EAAU,CAAC;IAGtC,OAAO,GAAA;QACV,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACjC;AAED,IAAA,kBAAkB,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;wGAzCzB,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,2zCC1B3B,suEAoDA,EAAA,MAAA,EAAA,CAAA,8DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED5Bc,OAAO,EAAE,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,cAAc,qNAAE,gBAAgB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAE1C,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;+BACI,SAAS,EAAA,UAAA,EAGP,IAAI,EACP,OAAA,EAAA,CAAC,OAAO,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,suEAAA,EAAA,MAAA,EAAA,CAAA,8DAAA,CAAA,EAAA,CAAA;8BAK7C,IAAI,EAAA,CAAA;sBADV,KAAK;gBAKC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAKC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAKC,IAAI,EAAA,CAAA;sBADV,KAAK;gBAKC,UAAU,EAAA,CAAA;sBADhB,KAAK;gBAKC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAKC,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAIG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAIC,QAAQ,EAAA,CAAA;sBADd,MAAM;gBAIA,OAAO,EAAA,CAAA;sBADb,YAAY;uBAAC,OAAO,CAAA;;;
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-badge.mjs","sources":["../../projects/angular-components/badge/src/lib/badge/badge.component.ts","../../projects/angular-components/badge/src/lib/badge/badge.component.html","../../projects/angular-components/badge/src/lib/badge/badge.module.ts","../../projects/angular-components/badge/src/seniorsistemas-angular-components-badge.ts"],"sourcesContent":["import { Component, EventEmitter, HostListener, input, Input, Output } from '@angular/core';\r\n\r\nimport { BadgeColors } from './types/badge-colors';\r\nimport { BadgeTypes } from './types/badge-types';\r\nimport { NgClass } from '@angular/common';\r\nimport { InfoSignModule } from '@seniorsistemas/angular-components/info-sign';\r\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\r\n\r\n/**\r\n * @description Componente de badge (etiqueta) para exibir rótulos coloridos e clicáveis,\r\n * com suporte a ícones, variantes visuais (pill, tag) e estado selecionável.\r\n *\r\n * @example\r\n * ```html\r\n * <s-badge color=\"blue\" type=\"pill\" text=\"Ativo\" />\r\n * ```\r\n *\r\n * @category Feedback\r\n */\r\n@Component({\r\n selector: 's-badge',\r\n templateUrl: './badge.component.html',\r\n styleUrls: ['./badge.component.scss'],\r\n standalone: true,\r\n imports: [NgClass, InfoSignModule, TooltipDirective],\r\n})\r\nexport class BadgeComponent {\r\n /** @description Variante visual do badge. @default 'pill' */\r\n @Input()\r\n public type?: BadgeTypes = 'pill';\r\n\r\n /** @description Cor do badge. @default 'blue' */\r\n @Input()\r\n public color?: BadgeColors = 'blue';\r\n\r\n /** @description Texto de título exibido no badge. */\r\n @Input()\r\n public title?: string;\r\n\r\n /** @description Texto principal exibido dentro do badge. */\r\n @Input()\r\n public text?: string;\r\n\r\n /** @description Habilita o modo selecionável, emitindo o evento `selected` ao clicar. @default false */\r\n @Input()\r\n public selectable = false;\r\n\r\n /** @description Classe CSS do ícone exibido no badge (ex.: `'fa fa-check'`). */\r\n @Input()\r\n public iconClass?: string;\r\n\r\n /** @description Posição do ícone em relação ao texto. @default 'left' */\r\n @Input()\r\n public iconPosition?: 'left' | 'right' = 'left';\r\n\r\n /** @description Configuração do info-sign exibido no badge, com texto e tempo de exibição opcional. */\r\n @Input() infoSign!: { text: string; displayTime?: number };\r\n\r\n /** @description Emitido ao clicar no badge, enviando o valor de `text`. */\r\n @Output()\r\n public selected = new EventEmitter<string>();\r\n\r\n @HostListener('click')\r\n public onClick(): void {\r\n this.selected.emit(this.text);\r\n }\r\n\r\n enableTruncateText = input(false);\r\n}\r\n","<span\n class=\"badge inline-flex max-w-full min-h-5 min-w-5 items-center justify-center gap-2 px-2 overflow-hidden border\"\n [ngClass]=\"{\n 'badge--pill': type === 'pill',\n 'badge--chip': type === 'chip',\n 'badge--red': color === 'red',\n 'badge--orange': color === 'orange',\n 'badge--yellow': color === 'yellow',\n 'badge--blue': color === 'blue',\n 'badge--green': color === 'green',\n 'badge--gray': color === 'gray',\n 'badge--selectable': selectable,\n 'rounded-[10px]': type === 'pill',\n 'rounded-medium': type === 'chip',\n 'bg-sunset-orange-100 border-criticality-red': color === 'red',\n 'bg-buttercup-100 border-criticality-orange': color === 'orange',\n 'bg-buttercup-50 border-criticality-yellow': color === 'yellow',\n 'bg-hippie-blue-100 border-criticality-blue': color === 'blue',\n 'bg-lime-100 border-criticality-green': color === 'green',\n 'bg-grayscale-10 border-grayscale-60': color === 'gray',\n 'cursor-pointer select-none': selectable,\n }\"\n>\n @if (infoSign) {\n <span *sInfoSign=\"infoSign.text; displayTime: infoSign.displayTime ?? 0\"></span>\n }\n @if (iconClass) {\n <span\n [class]=\"'badge-icon inline-flex items-center justify-center text-[10px] text-grayscale-90 ' + iconClass\"\n [ngClass]=\"{\n 'badge-icon--left': iconPosition === 'left' && text,\n 'badge-icon--right': iconPosition === 'right' && text,\n 'order-2': iconPosition === 'right' && text,\n }\"\n >\n </span>\n }\n @if (title) {\n <span class=\"badge-title font-open-sans mr-0.5 text-xs font-bold leading-[150%] text-grayscale-90\">{{ title }}:</span>\n }\n @if (text) {\n <span\n class=\"badge-text font-open-sans text-xs font-normal leading-[150%] text-grayscale-90\"\n [class.badge-text-truncated]=\"enableTruncateText()\"\n [class.line-clamp-1]=\"enableTruncateText()\"\n [sTooltip]=\"text\"\n [visible]=\"enableTruncateText()\"\n [checkTruncatedText]=\"enableTruncateText()\"\n >{{text}}</span>\n }\n</span>\n\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { BadgeComponent } from './badge.component';\r\n\r\n/**\r\n * @deprecated Será removido na v20. Importe diretamente o standalone `BadgeComponent` (de\r\n * `@seniorsistemas/angular-components/badge`) no lugar deste módulo.\r\n *\r\n * Este módulo também reexportava `RouterModule` (`@angular/router`, usado em templates por `<router-outlet>`,\r\n * `[routerLink]`, `[routerLinkActive]`). Se o seu template usa algum deles, importe-o diretamente.\r\n *\r\n * Migração automática (também executada pelo `ng update` na v20):\r\n * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`\r\n */\r\n@NgModule({\r\n imports: [RouterModule, BadgeComponent],\r\n exports: [BadgeComponent, RouterModule],\r\n})\r\nexport class BadgeModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, model,
|
|
2
|
+
import { input, model, forwardRef, Directive, NgModule } from '@angular/core';
|
|
3
3
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
4
|
import { NumericMaskDirective } from '@seniorsistemas/angular-components/numeric-mask';
|
|
5
5
|
|
|
@@ -12,11 +12,17 @@ var BignumberAlignmentOption;
|
|
|
12
12
|
BignumberAlignmentOption["LEFT"] = "left";
|
|
13
13
|
})(BignumberAlignmentOption || (BignumberAlignmentOption = {}));
|
|
14
14
|
/**
|
|
15
|
-
* @deprecated Utilize a diretiva `
|
|
15
|
+
* @deprecated Utilize a diretiva `sNumericMask` ao invés desta.
|
|
16
16
|
* @description Diretiva de máscara para campos de entrada de números de grande precisão,
|
|
17
17
|
* adaptada do `CurrencyMaskDirective`. Permite configurar precisão, escala,
|
|
18
18
|
* separadores decimais e de milhar de acordo com o locale da aplicação.
|
|
19
19
|
*
|
|
20
|
+
* `precision`, o `maxLength` nativo, o `placeholder` auto-calculado, `pasteRejected` e a
|
|
21
|
+
* preservação de separador explícito entre trocas de locale são herdados de
|
|
22
|
+
* `NumericMaskDirective` (lá são opt-in; aqui ficam sempre ativos por causa do default de
|
|
23
|
+
* `precision`). Esta classe só mapeia os aliases depreciados próprios dela (`scale`,
|
|
24
|
+
* `thousandsSeparator`) para os inputs reais da base.
|
|
25
|
+
*
|
|
20
26
|
* @example
|
|
21
27
|
* ```html
|
|
22
28
|
* <input sBignumberInput [precision]="15" [scale]="2" [allowNegative]="false" />
|
|
@@ -89,36 +95,13 @@ class BignumberInputDirective extends NumericMaskDirective {
|
|
|
89
95
|
*/
|
|
90
96
|
blockDecimalOverflow = input(false);
|
|
91
97
|
/**
|
|
92
|
-
*
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
* @description Emitido quando uma colagem (paste) é rejeitada pela validação do campo.
|
|
98
|
-
* Emite a string colada que foi recusada.
|
|
98
|
+
* Maps this directive's own deprecated aliases (`scale`, `thousandsSeparator`) into the
|
|
99
|
+
* base's real inputs (`minDecimalPlaces`/`maxDecimalPlaces`/`thousandSeparator`) before
|
|
100
|
+
* delegating to `NumericMaskDirective`, which recalculates `maxLength`/`placeholder` from
|
|
101
|
+
* whichever of its own tracked inputs changed. Recalculates once more afterwards for the
|
|
102
|
+
* alias-driven changes, which the base has no knowledge of.
|
|
99
103
|
*/
|
|
100
|
-
pasteRejected = output();
|
|
101
|
-
_decimalSeparatorExplicit = false;
|
|
102
|
-
_thousandSeparatorExplicit = false;
|
|
103
|
-
_lastAutoPlaceholder;
|
|
104
|
-
constructor() {
|
|
105
|
-
super();
|
|
106
|
-
}
|
|
107
|
-
ngOnInit() {
|
|
108
|
-
super.ngOnInit();
|
|
109
|
-
this.updatePlaceholder();
|
|
110
|
-
}
|
|
111
|
-
// ngOnChanges handles all signal writes reactively, avoiding the need for
|
|
112
|
-
// effect() with allowSignalWrites. The decimalSeparator/thousandSeparator inputs
|
|
113
|
-
// have truthy defaults, so ngOnChanges is necessary to distinguish "parent bound this"
|
|
114
|
-
// from "it's just the default value".
|
|
115
104
|
ngOnChanges(changes) {
|
|
116
|
-
if (changes['decimalSeparator'] && this.decimalSeparator()) {
|
|
117
|
-
this._decimalSeparatorExplicit = true;
|
|
118
|
-
}
|
|
119
|
-
if (changes['thousandSeparator'] && this.thousandSeparator()) {
|
|
120
|
-
this._thousandSeparatorExplicit = true;
|
|
121
|
-
}
|
|
122
105
|
if (changes['thousandsSeparator']) {
|
|
123
106
|
const val = this.thousandsSeparator();
|
|
124
107
|
if (val !== undefined) {
|
|
@@ -130,101 +113,14 @@ class BignumberInputDirective extends NumericMaskDirective {
|
|
|
130
113
|
this.minDecimalPlaces.set(this.scale());
|
|
131
114
|
this.maxDecimalPlaces.set(this.scale());
|
|
132
115
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
changes['thousandSeparator'] ||
|
|
136
|
-
changes['thousandsSeparator'] ||
|
|
137
|
-
changes['precision']) {
|
|
116
|
+
super.ngOnChanges(changes);
|
|
117
|
+
if (changes['scale'] || changes['thousandsSeparator']) {
|
|
138
118
|
this.calculateMaxLength();
|
|
139
|
-
}
|
|
140
|
-
if (changes['scale'] || changes['decimalSeparator']) {
|
|
141
119
|
this.updatePlaceholder();
|
|
142
120
|
}
|
|
143
121
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
* If the pasted value exceeds `precision` digits, the paste is rejected.
|
|
147
|
-
*/
|
|
148
|
-
onPaste(event) {
|
|
149
|
-
const pastedText = event.clipboardData?.getData('text') ?? '';
|
|
150
|
-
const effectiveThousandSep = this.thousandsSeparator() ?? this.thousandSeparator();
|
|
151
|
-
const numericText = pastedText
|
|
152
|
-
.replace(new RegExp(`\\${effectiveThousandSep}`, 'g'), '')
|
|
153
|
-
.replace(this.decimalSeparator(), '.');
|
|
154
|
-
const [intPart, decimalPart = ''] = numericText.split('.');
|
|
155
|
-
const totalDigits = intPart.replace(/\D/g, '').length + decimalPart.slice(0, this.scale()).length;
|
|
156
|
-
if (totalDigits > this.precision()) {
|
|
157
|
-
event.preventDefault();
|
|
158
|
-
this.pasteRejected.emit(pastedText);
|
|
159
|
-
return;
|
|
160
|
-
}
|
|
161
|
-
super.onPaste(event);
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Overrides locale-derived separators with explicitly set inputs, if provided.
|
|
165
|
-
* If no explicit separator is set, the locale-derived value is used.
|
|
166
|
-
*/
|
|
167
|
-
updateSeparators() {
|
|
168
|
-
const explicitDecimal = this._decimalSeparatorExplicit ? this.decimalSeparator() : undefined;
|
|
169
|
-
const explicitThousand = this._thousandSeparatorExplicit
|
|
170
|
-
? (this.thousandsSeparator() ?? this.thousandSeparator())
|
|
171
|
-
: undefined;
|
|
172
|
-
super.updateSeparators();
|
|
173
|
-
if (explicitDecimal !== undefined) {
|
|
174
|
-
this.decimalSeparator.set(explicitDecimal);
|
|
175
|
-
}
|
|
176
|
-
if (explicitThousand !== undefined) {
|
|
177
|
-
this.thousandSeparator.set(explicitThousand);
|
|
178
|
-
}
|
|
179
|
-
this.calculateMaxLength();
|
|
180
|
-
this.updatePlaceholder();
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* Overrides base validator to add precision validation.
|
|
184
|
-
* If the total number of significant digits exceeds `precision`, returns an `exceedsPrecision` error.
|
|
185
|
-
*/
|
|
186
|
-
validate(control) {
|
|
187
|
-
const baseErrors = super.validate(control);
|
|
188
|
-
if (!control.value || !this.precision()) {
|
|
189
|
-
return baseErrors ?? null;
|
|
190
|
-
}
|
|
191
|
-
const numericStr = String(control.value).replace('-', '');
|
|
192
|
-
const [intPart, decimalPart = ''] = numericStr.split('.');
|
|
193
|
-
const totalDigits = intPart.length + decimalPart.length;
|
|
194
|
-
if (totalDigits > this.precision()) {
|
|
195
|
-
return {
|
|
196
|
-
...baseErrors,
|
|
197
|
-
exceedsPrecision: {
|
|
198
|
-
precision: this.precision(),
|
|
199
|
-
actual: totalDigits,
|
|
200
|
-
},
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
return baseErrors ?? null;
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Responsible to calculate the field maximum length considering the separators.
|
|
207
|
-
*/
|
|
208
|
-
calculateMaxLength() {
|
|
209
|
-
const decSepLength = this.decimalSeparator()?.length ?? 0;
|
|
210
|
-
const effectiveThousandSep = this.thousandsSeparator() ?? this.thousandSeparator();
|
|
211
|
-
const thoSepLength = effectiveThousandSep?.length ?? 0;
|
|
212
|
-
const DIGITS_GROUP_SIZE = 3;
|
|
213
|
-
let maxLength = this.precision() + (this.scale() ? decSepLength : 0);
|
|
214
|
-
maxLength +=
|
|
215
|
-
Math.ceil((this.precision() - (this.scale() ? this.scale() : 0)) / DIGITS_GROUP_SIZE - 1) * thoSepLength;
|
|
216
|
-
this.maxLength = maxLength;
|
|
217
|
-
}
|
|
218
|
-
updatePlaceholder() {
|
|
219
|
-
const scale = this.scale();
|
|
220
|
-
const autoPlaceholder = scale ? `0${this.decimalSeparator()}${''.padEnd(scale, '0')}` : '0';
|
|
221
|
-
if (this.placeholder() === undefined || this.placeholder() === this._lastAutoPlaceholder) {
|
|
222
|
-
this.placeholder.set(autoPlaceholder);
|
|
223
|
-
}
|
|
224
|
-
this._lastAutoPlaceholder = autoPlaceholder;
|
|
225
|
-
}
|
|
226
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BignumberInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
227
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: BignumberInputDirective, isStandalone: true, selector: "input[sBignumberInput]", inputs: { precision: { classPropertyName: "precision", publicName: "precision", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null }, minDecimalPlaces: { classPropertyName: "minDecimalPlaces", publicName: "minDecimalPlaces", isSignal: true, isRequired: false, transformFunction: null }, maxDecimalPlaces: { classPropertyName: "maxDecimalPlaces", publicName: "maxDecimalPlaces", isSignal: true, isRequired: false, transformFunction: null }, decimalSeparator: { classPropertyName: "decimalSeparator", publicName: "decimalSeparator", isSignal: true, isRequired: false, transformFunction: null }, thousandsSeparator: { classPropertyName: "thousandsSeparator", publicName: "thousandsSeparator", isSignal: true, isRequired: false, transformFunction: null }, thousandSeparator: { classPropertyName: "thousandSeparator", publicName: "thousandSeparator", isSignal: true, isRequired: false, transformFunction: null }, alignTo: { classPropertyName: "alignTo", publicName: "alignTo", isSignal: true, isRequired: false, transformFunction: null }, allowNegative: { classPropertyName: "allowNegative", publicName: "allowNegative", isSignal: true, isRequired: false, transformFunction: null }, blockDecimalOverflow: { classPropertyName: "blockDecimalOverflow", publicName: "blockDecimalOverflow", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { minDecimalPlaces: "minDecimalPlacesChange", maxDecimalPlaces: "maxDecimalPlacesChange", decimalSeparator: "decimalSeparatorChange", thousandSeparator: "thousandSeparatorChange", placeholder: "placeholderChange", pasteRejected: "pasteRejected" }, host: { properties: { "attr.placeholder": "placeholder()", "attr.maxLength": "maxLength" } }, providers: [
|
|
122
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BignumberInputDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
123
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: BignumberInputDirective, isStandalone: true, selector: "input[sBignumberInput]", inputs: { precision: { classPropertyName: "precision", publicName: "precision", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null }, minDecimalPlaces: { classPropertyName: "minDecimalPlaces", publicName: "minDecimalPlaces", isSignal: true, isRequired: false, transformFunction: null }, maxDecimalPlaces: { classPropertyName: "maxDecimalPlaces", publicName: "maxDecimalPlaces", isSignal: true, isRequired: false, transformFunction: null }, decimalSeparator: { classPropertyName: "decimalSeparator", publicName: "decimalSeparator", isSignal: true, isRequired: false, transformFunction: null }, thousandsSeparator: { classPropertyName: "thousandsSeparator", publicName: "thousandsSeparator", isSignal: true, isRequired: false, transformFunction: null }, thousandSeparator: { classPropertyName: "thousandSeparator", publicName: "thousandSeparator", isSignal: true, isRequired: false, transformFunction: null }, alignTo: { classPropertyName: "alignTo", publicName: "alignTo", isSignal: true, isRequired: false, transformFunction: null }, allowNegative: { classPropertyName: "allowNegative", publicName: "allowNegative", isSignal: true, isRequired: false, transformFunction: null }, blockDecimalOverflow: { classPropertyName: "blockDecimalOverflow", publicName: "blockDecimalOverflow", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { minDecimalPlaces: "minDecimalPlacesChange", maxDecimalPlaces: "maxDecimalPlacesChange", decimalSeparator: "decimalSeparatorChange", thousandSeparator: "thousandSeparatorChange" }, providers: [
|
|
228
124
|
{
|
|
229
125
|
provide: NG_VALUE_ACCESSOR,
|
|
230
126
|
// NOSONAR - 'BignumberInputDirective' is deprecated.
|
|
@@ -237,10 +133,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
237
133
|
type: Directive,
|
|
238
134
|
args: [{
|
|
239
135
|
selector: 'input[sBignumberInput]',
|
|
240
|
-
host: {
|
|
241
|
-
'[attr.placeholder]': 'placeholder()',
|
|
242
|
-
'[attr.maxLength]': 'maxLength',
|
|
243
|
-
},
|
|
244
136
|
providers: [
|
|
245
137
|
{
|
|
246
138
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -251,8 +143,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
251
143
|
],
|
|
252
144
|
standalone: true,
|
|
253
145
|
}]
|
|
254
|
-
}]
|
|
146
|
+
}] });
|
|
255
147
|
|
|
148
|
+
/**
|
|
149
|
+
* @deprecated Será removido na v20. Importe diretamente o standalone `BignumberInputDirective` (de
|
|
150
|
+
* `@seniorsistemas/angular-components/bignumber-input`) no lugar deste módulo.
|
|
151
|
+
*
|
|
152
|
+
* Migração automática (também executada pelo `ng update` na v20):
|
|
153
|
+
* `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
|
|
154
|
+
*/
|
|
256
155
|
class BignumberInputModule {
|
|
257
156
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BignumberInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
258
157
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: BignumberInputModule, imports: [BignumberInputDirective], exports: [BignumberInputDirective] });
|