@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
|
@@ -60,6 +60,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
60
60
|
type: Input
|
|
61
61
|
}] } });
|
|
62
62
|
|
|
63
|
+
/**
|
|
64
|
+
* @deprecated Será removido na v20. Importe diretamente o standalone `EditableOverlayDirective` (de
|
|
65
|
+
* `@seniorsistemas/angular-components/editable-overlay`) no lugar deste módulo.
|
|
66
|
+
*
|
|
67
|
+
* Migração automática (também executada pelo `ng update` na v20):
|
|
68
|
+
* `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
|
|
69
|
+
*/
|
|
63
70
|
class EditableOverlayModule {
|
|
64
71
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EditableOverlayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
65
72
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: EditableOverlayModule, imports: [EditableOverlayDirective], exports: [EditableOverlayDirective] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-editable-overlay.mjs","sources":["../../projects/angular-components/editable-overlay/src/lib/editable-overlay/editable-overlay.directive.ts","../../projects/angular-components/editable-overlay/src/lib/editable-overlay/editable-overlay.module.ts","../../projects/angular-components/editable-overlay/src/seniorsistemas-angular-components-editable-overlay.ts"],"sourcesContent":["import { AfterViewInit, Directive, Input } from '@angular/core';\r\n\r\nimport { DomHandler } from 'primeng/dom';\r\n\r\n// TODO: O que é esta diretiva?\r\n\r\n/**\r\n * @description Diretiva aplicada a um `p-table` do PrimeNG para corrigir o comportamento\r\n * de clique fora da célula editável, evitando que cliques em overlays (como dropdowns e modais)\r\n * fechem indevidamente o modo de edição da célula.\r\n *\r\n * @example\r\n * ```html\r\n * <p-table sEditableOverlay [table]=\"dt\" #dt>...</p-table>\r\n * ```\r\n *\r\n * @category Overlay\r\n */\r\n@Directive({\r\n selector: 'p-table[sEditableOverlay]',\r\n standalone: true,\r\n})\r\nexport class EditableOverlayDirective implements AfterViewInit {\r\n /**\r\n * @description Referência direta à instância do `p-table` ao qual a diretiva está aplicada.\r\n * Utilizada para sobrescrever o comportamento padrão de `bindDocumentEditListener`.\r\n */\r\n @Input()\r\n public table: any;\r\n\r\n public ngAfterViewInit(): void {\r\n this.table.bindDocumentEditListener = this._bindDocument.bind(this);\r\n }\r\n\r\n public isFromOverlayTrigger(event: any) {\r\n return event.path.some((path: any) => path.className && path.className.includes('ng-trigger-overlayAnimation'));\r\n }\r\n\r\n public isFromModal(event: any) {\r\n return event.path.some((path: any) => path.className && path.className.includes('s-lookup'));\r\n }\r\n\r\n private _bindDocument() {\r\n if (!this.table.documentEditListener) {\r\n this.table.documentEditListener = (event: any) => {\r\n if (\r\n !this.isFromOverlayTrigger(event) &&\r\n !this.isFromModal(event) &&\r\n this.table.editingCell &&\r\n !this.table.editingCellClick &&\r\n this.table.isEditingCellValid()\r\n ) {\r\n DomHandler.removeClass(this.table.editingCell, 'ui-editing-cell');\r\n this.table.editingCell = null;\r\n this.table.unbindDocumentEditListener();\r\n }\r\n\r\n this.table.editingCellClick = false;\r\n };\r\n\r\n document.addEventListener('click', this.table.documentEditListener);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { EditableOverlayDirective } from './editable-overlay.directive';\r\n\r\n@NgModule({\r\n imports: [EditableOverlayDirective],\r\n exports: [EditableOverlayDirective],\r\n})\r\nexport class EditableOverlayModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAIA;AAEA;;;;;;;;;;;AAWG;MAKU,wBAAwB,CAAA;AACjC;;;AAGG;AAEI,IAAA,KAAK,CAAM;IAEX,eAAe,GAAA;AAClB,QAAA,IAAI,CAAC,KAAK,CAAC,wBAAwB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACvE;AAEM,IAAA,oBAAoB,CAAC,KAAU,EAAA;QAClC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC,CAAC;KACnH;AAEM,IAAA,WAAW,CAAC,KAAU,EAAA;QACzB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;KAChG;IAEO,aAAa,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE;YAClC,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,CAAC,KAAU,KAAI;AAC7C,gBAAA,IACI,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;AACjC,oBAAA,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;oBACxB,IAAI,CAAC,KAAK,CAAC,WAAW;AACtB,oBAAA,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB;AAC5B,oBAAA,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,EACjC;oBACE,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;AAClE,oBAAA,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;AAC9B,oBAAA,IAAI,CAAC,KAAK,CAAC,0BAA0B,EAAE,CAAC;iBAC3C;AAED,gBAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC;AACxC,aAAC,CAAC;YAEF,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACvE;KACJ;wGAxCQ,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;8BAOU,KAAK,EAAA,CAAA;sBADX,KAAK;;;
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-editable-overlay.mjs","sources":["../../projects/angular-components/editable-overlay/src/lib/editable-overlay/editable-overlay.directive.ts","../../projects/angular-components/editable-overlay/src/lib/editable-overlay/editable-overlay.module.ts","../../projects/angular-components/editable-overlay/src/seniorsistemas-angular-components-editable-overlay.ts"],"sourcesContent":["import { AfterViewInit, Directive, Input } from '@angular/core';\r\n\r\nimport { DomHandler } from 'primeng/dom';\r\n\r\n// TODO: O que é esta diretiva?\r\n\r\n/**\r\n * @description Diretiva aplicada a um `p-table` do PrimeNG para corrigir o comportamento\r\n * de clique fora da célula editável, evitando que cliques em overlays (como dropdowns e modais)\r\n * fechem indevidamente o modo de edição da célula.\r\n *\r\n * @example\r\n * ```html\r\n * <p-table sEditableOverlay [table]=\"dt\" #dt>...</p-table>\r\n * ```\r\n *\r\n * @category Overlay\r\n */\r\n@Directive({\r\n selector: 'p-table[sEditableOverlay]',\r\n standalone: true,\r\n})\r\nexport class EditableOverlayDirective implements AfterViewInit {\r\n /**\r\n * @description Referência direta à instância do `p-table` ao qual a diretiva está aplicada.\r\n * Utilizada para sobrescrever o comportamento padrão de `bindDocumentEditListener`.\r\n */\r\n @Input()\r\n public table: any;\r\n\r\n public ngAfterViewInit(): void {\r\n this.table.bindDocumentEditListener = this._bindDocument.bind(this);\r\n }\r\n\r\n public isFromOverlayTrigger(event: any) {\r\n return event.path.some((path: any) => path.className && path.className.includes('ng-trigger-overlayAnimation'));\r\n }\r\n\r\n public isFromModal(event: any) {\r\n return event.path.some((path: any) => path.className && path.className.includes('s-lookup'));\r\n }\r\n\r\n private _bindDocument() {\r\n if (!this.table.documentEditListener) {\r\n this.table.documentEditListener = (event: any) => {\r\n if (\r\n !this.isFromOverlayTrigger(event) &&\r\n !this.isFromModal(event) &&\r\n this.table.editingCell &&\r\n !this.table.editingCellClick &&\r\n this.table.isEditingCellValid()\r\n ) {\r\n DomHandler.removeClass(this.table.editingCell, 'ui-editing-cell');\r\n this.table.editingCell = null;\r\n this.table.unbindDocumentEditListener();\r\n }\r\n\r\n this.table.editingCellClick = false;\r\n };\r\n\r\n document.addEventListener('click', this.table.documentEditListener);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { EditableOverlayDirective } from './editable-overlay.directive';\r\n\r\n/**\r\n * @deprecated Será removido na v20. Importe diretamente o standalone `EditableOverlayDirective` (de\r\n * `@seniorsistemas/angular-components/editable-overlay`) 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: [EditableOverlayDirective],\r\n exports: [EditableOverlayDirective],\r\n})\r\nexport class EditableOverlayModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -137,6 +137,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
137
137
|
type: Input
|
|
138
138
|
}] } });
|
|
139
139
|
|
|
140
|
+
/**
|
|
141
|
+
* @deprecated Será removido na v20. Importe diretamente os standalones `EmptyStateComponent` e
|
|
142
|
+
* `EmptyStateGoBackComponent` (de `@seniorsistemas/angular-components/empty-state`) no lugar deste módulo.
|
|
143
|
+
*
|
|
144
|
+
* Migração automática (também executada pelo `ng update` na v20):
|
|
145
|
+
* `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
|
|
146
|
+
*/
|
|
140
147
|
class EmptyStateModule {
|
|
141
148
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EmptyStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
142
149
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: EmptyStateModule, imports: [EmptyStateComponent, EmptyStateGoBackComponent], exports: [EmptyStateComponent, EmptyStateGoBackComponent] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-empty-state.mjs","sources":["../../projects/angular-components/empty-state/src/lib/empty-state/empty-state.component.ts","../../projects/angular-components/empty-state/src/lib/empty-state/empty-state.component.html","../../projects/angular-components/empty-state/src/lib/empty-state/go-back/go-back.component.ts","../../projects/angular-components/empty-state/src/lib/empty-state/go-back/go-back.component.html","../../projects/angular-components/empty-state/src/lib/empty-state/empty-state.module.ts","../../projects/angular-components/empty-state/src/seniorsistemas-angular-components-empty-state.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\r\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\r\n\r\n/**\r\n * @description Componente de estado vazio exibido quando não há conteúdo para mostrar.\r\n * Apresenta um ícone, título, descrição e até duas ações configuráveis\r\n * (primária com suporte a tiered menu e secundária simples).\r\n *\r\n * @example\r\n * ```html\r\n * <s-empty-state\r\n * title=\"Nenhum resultado encontrado\"\r\n * description=\"Tente ajustar os filtros da busca.\"\r\n * primaryActionLabel=\"Criar novo\"\r\n * (primaryAction)=\"onCreate()\"\r\n * />\r\n * ```\r\n *\r\n * @category Feedback\r\n */\r\n@Component({\r\n selector: 's-empty-state',\r\n templateUrl: './empty-state.component.html',\r\n standalone: true,\r\n imports: [ButtonComponent],\r\n})\r\nexport class EmptyStateComponent {\r\n public static readonly nextIdSeed = 0;\r\n private static _nextId = EmptyStateComponent.nextIdSeed;\r\n\r\n public static getNextId(): number {\r\n return this._nextId++;\r\n }\r\n\r\n /**\r\n * @description Identificador único do componente. Gerado automaticamente se não informado.\r\n */\r\n @Input()\r\n public id = `s-empty-state-${EmptyStateComponent.getNextId()}`;\r\n\r\n /**\r\n * @description Título principal exibido no estado vazio. Campo obrigatório.\r\n */\r\n @Input({ required: true })\r\n public title!: string;\r\n\r\n /**\r\n * @description Classe CSS do ícone exibido no estado vazio.\r\n * Aceita classes de bibliotecas de ícones como Font Awesome.\r\n *\r\n * @default 'fa fa-inbox'\r\n */\r\n @Input()\r\n public iconClass = 'fa fa-inbox';\r\n\r\n /**\r\n * @description Texto descritivo exibido abaixo do título, explicando o motivo do estado vazio\r\n * ou orientando o usuário sobre as próximas ações.\r\n */\r\n @Input()\r\n public description?: string;\r\n\r\n /**\r\n * @description Controla a visibilidade do botão de ação primária.\r\n *\r\n * @default true\r\n */\r\n @Input()\r\n public showPrimaryAction = true;\r\n\r\n /**\r\n * @description Controla a visibilidade do botão de ação secundária.\r\n *\r\n * @default true\r\n */\r\n @Input()\r\n public showSecondaryAction = true;\r\n\r\n /**\r\n * @description Texto do botão de ação primária.\r\n * Quando `primaryModel` possui itens, o botão exibe um tiered menu ao clicar.\r\n */\r\n @Input()\r\n public primaryActionLabel?: string;\r\n\r\n /** @description Texto do botão de ação secundária. */\r\n @Input()\r\n public secondaryActionLabel?: string;\r\n\r\n /**\r\n * @description Lista de itens para o tiered menu da ação primária.\r\n * Quando informado com itens, o botão primário exibe um menu de opções\r\n * ao invés de emitir o evento `primaryAction` diretamente.\r\n */\r\n @Input()\r\n public primaryModel: TieredMenuItemData[] = [];\r\n\r\n /**\r\n * @description Emitido quando o usuário clica no botão de ação primária e `primaryModel` está vazio.\r\n */\r\n @Output()\r\n public primaryAction = new EventEmitter<void>();\r\n\r\n /**\r\n * @description Emitido quando o usuário clica no botão de ação secundária.\r\n */\r\n @Output()\r\n public secondaryAction = new EventEmitter<void>();\r\n}\r\n","<div\n [id]=\"id\"\n class=\"w-full text-center\"\n>\n <div\n [id]=\"id + '-icon'\"\n class=\"text-[#d8d8d8] text-[6em]\"\n >\n <i\n [attr.class]=\"iconClass ? iconClass : 'fa fa-cogs'\"\n aria-hidden=\"true\"\n ></i>\n </div>\n <div\n [id]=\"id + '-title'\"\n class=\"font-bold mb-[10px]\"\n >\n {{ title }}\n </div>\n\n @if (description) {\n <div\n [id]=\"id + '-description'\"\n class=\"mb-[15px] text-[#999999] px-5 text-center\"\n >\n <p class=\"mx-auto max-w-[400px] max-h-[80px] overflow-hidden\">{{ description }}</p>\n </div>\n }\n @if (showPrimaryAction && primaryActionLabel) {\n <div\n [id]=\"id + '-actions'\"\n class=\"text-center w-full\"\n >\n <s-button\n [id]=\"id + '-primary-action'\"\n type=\"button\"\n [label]=\"primaryActionLabel\"\n [menuOptions]=\"primaryModel\"\n (clicked)=\"primaryAction.next()\"\n ></s-button>\n @if (showSecondaryAction && secondaryActionLabel) {\n <s-button\n [id]=\"id + '-secondary-action'\"\n id=\"secondaryAction\"\n type=\"button\"\n [label]=\"secondaryActionLabel\"\n priority=\"link\"\n (clicked)=\"secondaryAction.next()\"\n ></s-button>\n }\n </div>\n }\n</div>\n","import { Component, Input, inject } from '@angular/core';\r\n\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { EmptyStateComponent } from '../empty-state.component';\r\n\r\n@Component({\r\n selector: 's-empty-state-go-back',\r\n templateUrl: './go-back.component.html',\r\n styleUrls: [],\r\n standalone: true,\r\n imports: [EmptyStateComponent],\r\n})\r\nexport class EmptyStateGoBackComponent {\r\n private readonly _cookieService = inject(CookieService);\r\n\r\n @Input()\r\n public iconClass = 'fa fa-exclamation-triangle';\r\n\r\n @Input({ required: true })\r\n public title!: string;\r\n\r\n @Input()\r\n public description?: string;\r\n\r\n @Input()\r\n public primaryActionLabel?: string;\r\n\r\n public goBack() {\r\n const portalUrl = this._cookieService.get('com.senior.portal.url');\r\n window.open(portalUrl, '_top');\r\n }\r\n}\r\n","<s-empty-state \n [iconClass]=\"iconClass\" \n [title]=\"title\" \n [description]=\"description\" \n (primaryAction)=\"goBack()\"\n [primaryActionLabel]=\"primaryActionLabel\">\n</s-empty-state>","import { NgModule } from '@angular/core';\r\n\r\nimport { CookieService } from 'ngx-cookie-service';\r\n\r\nimport { EmptyStateComponent } from './empty-state.component';\r\nimport { EmptyStateGoBackComponent } from './go-back/go-back.component';\r\n\r\n@NgModule({\r\n imports: [EmptyStateComponent, EmptyStateGoBackComponent],\r\n providers: [CookieService],\r\n exports: [EmptyStateComponent, EmptyStateGoBackComponent],\r\n})\r\nexport class EmptyStateModule {}\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-empty-state.mjs","sources":["../../projects/angular-components/empty-state/src/lib/empty-state/empty-state.component.ts","../../projects/angular-components/empty-state/src/lib/empty-state/empty-state.component.html","../../projects/angular-components/empty-state/src/lib/empty-state/go-back/go-back.component.ts","../../projects/angular-components/empty-state/src/lib/empty-state/go-back/go-back.component.html","../../projects/angular-components/empty-state/src/lib/empty-state/empty-state.module.ts","../../projects/angular-components/empty-state/src/seniorsistemas-angular-components-empty-state.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\r\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\r\n\r\n/**\r\n * @description Componente de estado vazio exibido quando não há conteúdo para mostrar.\r\n * Apresenta um ícone, título, descrição e até duas ações configuráveis\r\n * (primária com suporte a tiered menu e secundária simples).\r\n *\r\n * @example\r\n * ```html\r\n * <s-empty-state\r\n * title=\"Nenhum resultado encontrado\"\r\n * description=\"Tente ajustar os filtros da busca.\"\r\n * primaryActionLabel=\"Criar novo\"\r\n * (primaryAction)=\"onCreate()\"\r\n * />\r\n * ```\r\n *\r\n * @category Feedback\r\n */\r\n@Component({\r\n selector: 's-empty-state',\r\n templateUrl: './empty-state.component.html',\r\n standalone: true,\r\n imports: [ButtonComponent],\r\n})\r\nexport class EmptyStateComponent {\r\n public static readonly nextIdSeed = 0;\r\n private static _nextId = EmptyStateComponent.nextIdSeed;\r\n\r\n public static getNextId(): number {\r\n return this._nextId++;\r\n }\r\n\r\n /**\r\n * @description Identificador único do componente. Gerado automaticamente se não informado.\r\n */\r\n @Input()\r\n public id = `s-empty-state-${EmptyStateComponent.getNextId()}`;\r\n\r\n /**\r\n * @description Título principal exibido no estado vazio. Campo obrigatório.\r\n */\r\n @Input({ required: true })\r\n public title!: string;\r\n\r\n /**\r\n * @description Classe CSS do ícone exibido no estado vazio.\r\n * Aceita classes de bibliotecas de ícones como Font Awesome.\r\n *\r\n * @default 'fa fa-inbox'\r\n */\r\n @Input()\r\n public iconClass = 'fa fa-inbox';\r\n\r\n /**\r\n * @description Texto descritivo exibido abaixo do título, explicando o motivo do estado vazio\r\n * ou orientando o usuário sobre as próximas ações.\r\n */\r\n @Input()\r\n public description?: string;\r\n\r\n /**\r\n * @description Controla a visibilidade do botão de ação primária.\r\n *\r\n * @default true\r\n */\r\n @Input()\r\n public showPrimaryAction = true;\r\n\r\n /**\r\n * @description Controla a visibilidade do botão de ação secundária.\r\n *\r\n * @default true\r\n */\r\n @Input()\r\n public showSecondaryAction = true;\r\n\r\n /**\r\n * @description Texto do botão de ação primária.\r\n * Quando `primaryModel` possui itens, o botão exibe um tiered menu ao clicar.\r\n */\r\n @Input()\r\n public primaryActionLabel?: string;\r\n\r\n /** @description Texto do botão de ação secundária. */\r\n @Input()\r\n public secondaryActionLabel?: string;\r\n\r\n /**\r\n * @description Lista de itens para o tiered menu da ação primária.\r\n * Quando informado com itens, o botão primário exibe um menu de opções\r\n * ao invés de emitir o evento `primaryAction` diretamente.\r\n */\r\n @Input()\r\n public primaryModel: TieredMenuItemData[] = [];\r\n\r\n /**\r\n * @description Emitido quando o usuário clica no botão de ação primária e `primaryModel` está vazio.\r\n */\r\n @Output()\r\n public primaryAction = new EventEmitter<void>();\r\n\r\n /**\r\n * @description Emitido quando o usuário clica no botão de ação secundária.\r\n */\r\n @Output()\r\n public secondaryAction = new EventEmitter<void>();\r\n}\r\n","<div\n [id]=\"id\"\n class=\"w-full text-center\"\n>\n <div\n [id]=\"id + '-icon'\"\n class=\"text-[#d8d8d8] text-[6em]\"\n >\n <i\n [attr.class]=\"iconClass ? iconClass : 'fa fa-cogs'\"\n aria-hidden=\"true\"\n ></i>\n </div>\n <div\n [id]=\"id + '-title'\"\n class=\"font-bold mb-[10px]\"\n >\n {{ title }}\n </div>\n\n @if (description) {\n <div\n [id]=\"id + '-description'\"\n class=\"mb-[15px] text-[#999999] px-5 text-center\"\n >\n <p class=\"mx-auto max-w-[400px] max-h-[80px] overflow-hidden\">{{ description }}</p>\n </div>\n }\n @if (showPrimaryAction && primaryActionLabel) {\n <div\n [id]=\"id + '-actions'\"\n class=\"text-center w-full\"\n >\n <s-button\n [id]=\"id + '-primary-action'\"\n type=\"button\"\n [label]=\"primaryActionLabel\"\n [menuOptions]=\"primaryModel\"\n (clicked)=\"primaryAction.next()\"\n ></s-button>\n @if (showSecondaryAction && secondaryActionLabel) {\n <s-button\n [id]=\"id + '-secondary-action'\"\n id=\"secondaryAction\"\n type=\"button\"\n [label]=\"secondaryActionLabel\"\n priority=\"link\"\n (clicked)=\"secondaryAction.next()\"\n ></s-button>\n }\n </div>\n }\n</div>\n","import { Component, Input, inject } from '@angular/core';\r\n\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { EmptyStateComponent } from '../empty-state.component';\r\n\r\n@Component({\r\n selector: 's-empty-state-go-back',\r\n templateUrl: './go-back.component.html',\r\n styleUrls: [],\r\n standalone: true,\r\n imports: [EmptyStateComponent],\r\n})\r\nexport class EmptyStateGoBackComponent {\r\n private readonly _cookieService = inject(CookieService);\r\n\r\n @Input()\r\n public iconClass = 'fa fa-exclamation-triangle';\r\n\r\n @Input({ required: true })\r\n public title!: string;\r\n\r\n @Input()\r\n public description?: string;\r\n\r\n @Input()\r\n public primaryActionLabel?: string;\r\n\r\n public goBack() {\r\n const portalUrl = this._cookieService.get('com.senior.portal.url');\r\n window.open(portalUrl, '_top');\r\n }\r\n}\r\n","<s-empty-state \n [iconClass]=\"iconClass\" \n [title]=\"title\" \n [description]=\"description\" \n (primaryAction)=\"goBack()\"\n [primaryActionLabel]=\"primaryActionLabel\">\n</s-empty-state>","import { NgModule } from '@angular/core';\r\n\r\nimport { CookieService } from 'ngx-cookie-service';\r\n\r\nimport { EmptyStateComponent } from './empty-state.component';\r\nimport { EmptyStateGoBackComponent } from './go-back/go-back.component';\r\n\r\n/**\r\n * @deprecated Será removido na v20. Importe diretamente os standalones `EmptyStateComponent` e\r\n * `EmptyStateGoBackComponent` (de `@seniorsistemas/angular-components/empty-state`) 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: [EmptyStateComponent, EmptyStateGoBackComponent],\r\n providers: [CookieService],\r\n exports: [EmptyStateComponent, EmptyStateGoBackComponent],\r\n})\r\nexport class EmptyStateModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -108,6 +108,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
108
108
|
type: Output
|
|
109
109
|
}] } });
|
|
110
110
|
|
|
111
|
+
/**
|
|
112
|
+
* @deprecated Será removido na v20. Importe diretamente o standalone `FieldsetComponent` (de
|
|
113
|
+
* `@seniorsistemas/angular-components/fieldset`) no lugar deste módulo.
|
|
114
|
+
*
|
|
115
|
+
* Migração automática (também executada pelo `ng update` na v20):
|
|
116
|
+
* `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
|
|
117
|
+
*/
|
|
111
118
|
class FieldsetModule {
|
|
112
119
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FieldsetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
113
120
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: FieldsetModule, imports: [FieldsetComponent], exports: [FieldsetComponent] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-fieldset.mjs","sources":["../../projects/angular-components/fieldset/src/lib/fieldset/fieldset.component.ts","../../projects/angular-components/fieldset/src/lib/fieldset/fieldset.component.html","../../projects/angular-components/fieldset/src/lib/fieldset/fieldset.module.ts","../../projects/angular-components/fieldset/src/seniorsistemas-angular-components-fieldset.ts"],"sourcesContent":["import { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n computed,\r\n contentChildren,\r\n EventEmitter,\r\n input,\r\n model,\r\n Output,\r\n signal,\r\n} from '@angular/core';\r\n\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { InteractiveContentDirective } from '@seniorsistemas/angular-components/interactive-content';\r\nimport { TemplateDirective } from '@seniorsistemas/angular-components/template';\r\nimport { FieldSetToggle } from './fieldset.models';\r\n\r\n/**\r\n * @description Componente de fieldset com legenda, ícone configurável e suporte a\r\n * toggle (recolher/expandir) com animação. Suporta templates personalizados via\r\n * diretiva `TemplateDirective`, com os tipos `'header'` (substitui a legenda) e\r\n * `'body'` (conteúdo do fieldset).\r\n *\r\n * Prefira declarar o conteúdo em `sTemplate=\"body\"` em vez de projetá-lo direto:\r\n * o `ng-content` é instanciado pelo componente pai mesmo com o fieldset recolhido,\r\n * disparando o `ngOnInit` dos filhos prematuramente. O template de corpo só é\r\n * instanciado quando o fieldset está de fato ativo, e é obrigatório para que\r\n * `destroyOnHide` funcione.\r\n *\r\n * @example\r\n * ```html\r\n * <s-fieldset legend=\"Dados pessoais\" [toggleable]=\"true\">\r\n * <ng-template sTemplate=\"body\">\r\n * <p>Conteúdo do fieldset</p>\r\n * </ng-template>\r\n * </s-fieldset>\r\n * ```\r\n *\r\n * @category Inputs\r\n */\r\n@Component({\r\n selector: 's-fieldset',\r\n templateUrl: './fieldset.component.html',\r\n styles: [':host { display: block; }'],\r\n animations: [\r\n trigger('toggleAnimation', [\r\n transition(':enter', [\r\n style({ opacity: 0, height: 0 }),\r\n animate('300ms ease-out', style({ opacity: 1, height: '*' })),\r\n ]),\r\n transition(':leave', [\r\n style({ opacity: 1, height: '*' }),\r\n animate('300ms ease-in', style({ opacity: 0, height: 0 })),\r\n ]),\r\n state('open', style({ opacity: 1, height: '*' })),\r\n state('closed', style({ opacity: 0, height: 0 })),\r\n transition('open <=> closed', animate('300ms ease')),\r\n ]),\r\n ],\r\n standalone: true,\r\n imports: [InteractiveContentDirective, NgTemplateOutlet],\r\n})\r\nexport class FieldsetComponent implements AfterViewInit {\r\n /** @description Texto exibido como título do fieldset. @default '' */\r\n legend = input('');\r\n /** @description Habilita o botão de toggle que permite recolher e expandir o conteúdo. @default false */\r\n toggleable = input(false);\r\n /** @description Classe de ícone exibida ao lado da legenda (ex.: `'fas fa-cog'`). @default '' */\r\n icon = input('');\r\n /** @description Quando `true`, remove o conteúdo do DOM ao recolher o fieldset. @default false */\r\n destroyOnHide = input(false);\r\n\r\n templateDirectives = contentChildren(TemplateDirective);\r\n headerTemplate = computed(() => {\r\n return this.templateDirectives()?.find((template) => template.type === 'header')?.template;\r\n });\r\n\r\n bodyTemplate = computed(() => {\r\n return this.templateDirectives()?.find((template) => template.type === 'body')?.template;\r\n });\r\n /** @description Emitido imediatamente antes da animação de toggle iniciar, com o estado atual. */\r\n @Output() beforeToggle = new EventEmitter<FieldSetToggle>();\r\n /** @description Emitido após a animação de toggle concluir, com o novo estado. */\r\n @Output() afterToggle = new EventEmitter<FieldSetToggle>();\r\n\r\n active = model(true);\r\n\r\n /** @description `true` quando a animação de fechamento já terminou, aplicando `overflow-hidden` ao conteúdo. */\r\n protected collapsed = signal(false);\r\n\r\n ngAfterViewInit() {\r\n const hasBodyTemplate = this.bodyTemplate();\r\n if (!hasBodyTemplate && this.destroyOnHide()) {\r\n console.warn(\r\n 'FieldsetComponent: O uso de destroyOnHide=true requer um template de corpo definido com sTemplate=\"body\".',\r\n );\r\n }\r\n }\r\n\r\n protected toggleActive(originalEvent: PointerEvent | KeyboardEvent) {\r\n if (!this.toggleable()) {\r\n return;\r\n }\r\n this.beforeToggle.next({ collapsed: this.active(), originalEvent });\r\n this.active.set(!this.active());\r\n this.afterToggle.next({ collapsed: this.active(), originalEvent });\r\n }\r\n\r\n protected onToggleAnimationDone(event: AnimationEvent) {\r\n this.collapsed.set(event.toState === 'closed');\r\n }\r\n}\r\n","<fieldset\r\n class=\"mb-[10px] min-h-[4.5em] w-full min-w-0 rounded-xbig border border-grayscale-20 bg-grayscale-0 px-2 py-1.5\"\r\n>\r\n <legend\r\n class=\"ml-4 flex select-none items-center gap-1 rounded-medium px-1 font-open-sans text-sm font-bold text-grayscale-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-[var(--s-focus-ring-color,#0090ff)]\"\r\n [class.cursor-pointer]=\"toggleable()\"\r\n (sInteractiveContent)=\"toggleActive($event)\"\r\n [focusable]=\"toggleable()\"\r\n >\r\n @if (toggleable()) {\r\n @if (active()) {\r\n <i class=\"fas fa-minus\"></i>\r\n } @else {\r\n <i class=\"fas fa-plus\"></i>\r\n }\r\n }\r\n @let _headerTemplate = headerTemplate();\r\n @if (_headerTemplate) {\r\n <ng-container *ngTemplateOutlet=\"_headerTemplate\"></ng-container>\r\n } @else {\r\n @if (icon()) {\r\n <i [class]=\"icon()\"></i>\r\n }\r\n {{ legend() }}\r\n }\r\n </legend>\r\n @if (destroyOnHide() ? (toggleable() ? active() : true) : true) {\r\n <div\r\n [@toggleAnimation]=\"destroyOnHide() ? null : active() ? 'open' : 'closed'\"\r\n (@toggleAnimation.done)=\"onToggleAnimationDone($event)\"\r\n [class.overflow-hidden]=\"collapsed()\"\r\n >\r\n @let _bodyTemplate = bodyTemplate();\r\n @if (_bodyTemplate) {\r\n <ng-container *ngTemplateOutlet=\"_bodyTemplate\"></ng-container>\r\n } @else {\r\n <ng-content></ng-content>\r\n }\r\n </div>\r\n }\r\n</fieldset>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { FieldsetComponent } from './fieldset.component';\r\n\r\n@NgModule({\r\n imports: [FieldsetComponent],\r\n exports: [FieldsetComponent],\r\n})\r\nexport class FieldsetModule {}\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-fieldset.mjs","sources":["../../projects/angular-components/fieldset/src/lib/fieldset/fieldset.component.ts","../../projects/angular-components/fieldset/src/lib/fieldset/fieldset.component.html","../../projects/angular-components/fieldset/src/lib/fieldset/fieldset.module.ts","../../projects/angular-components/fieldset/src/seniorsistemas-angular-components-fieldset.ts"],"sourcesContent":["import { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n computed,\r\n contentChildren,\r\n EventEmitter,\r\n input,\r\n model,\r\n Output,\r\n signal,\r\n} from '@angular/core';\r\n\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { InteractiveContentDirective } from '@seniorsistemas/angular-components/interactive-content';\r\nimport { TemplateDirective } from '@seniorsistemas/angular-components/template';\r\nimport { FieldSetToggle } from './fieldset.models';\r\n\r\n/**\r\n * @description Componente de fieldset com legenda, ícone configurável e suporte a\r\n * toggle (recolher/expandir) com animação. Suporta templates personalizados via\r\n * diretiva `TemplateDirective`, com os tipos `'header'` (substitui a legenda) e\r\n * `'body'` (conteúdo do fieldset).\r\n *\r\n * Prefira declarar o conteúdo em `sTemplate=\"body\"` em vez de projetá-lo direto:\r\n * o `ng-content` é instanciado pelo componente pai mesmo com o fieldset recolhido,\r\n * disparando o `ngOnInit` dos filhos prematuramente. O template de corpo só é\r\n * instanciado quando o fieldset está de fato ativo, e é obrigatório para que\r\n * `destroyOnHide` funcione.\r\n *\r\n * @example\r\n * ```html\r\n * <s-fieldset legend=\"Dados pessoais\" [toggleable]=\"true\">\r\n * <ng-template sTemplate=\"body\">\r\n * <p>Conteúdo do fieldset</p>\r\n * </ng-template>\r\n * </s-fieldset>\r\n * ```\r\n *\r\n * @category Inputs\r\n */\r\n@Component({\r\n selector: 's-fieldset',\r\n templateUrl: './fieldset.component.html',\r\n styles: [':host { display: block; }'],\r\n animations: [\r\n trigger('toggleAnimation', [\r\n transition(':enter', [\r\n style({ opacity: 0, height: 0 }),\r\n animate('300ms ease-out', style({ opacity: 1, height: '*' })),\r\n ]),\r\n transition(':leave', [\r\n style({ opacity: 1, height: '*' }),\r\n animate('300ms ease-in', style({ opacity: 0, height: 0 })),\r\n ]),\r\n state('open', style({ opacity: 1, height: '*' })),\r\n state('closed', style({ opacity: 0, height: 0 })),\r\n transition('open <=> closed', animate('300ms ease')),\r\n ]),\r\n ],\r\n standalone: true,\r\n imports: [InteractiveContentDirective, NgTemplateOutlet],\r\n})\r\nexport class FieldsetComponent implements AfterViewInit {\r\n /** @description Texto exibido como título do fieldset. @default '' */\r\n legend = input('');\r\n /** @description Habilita o botão de toggle que permite recolher e expandir o conteúdo. @default false */\r\n toggleable = input(false);\r\n /** @description Classe de ícone exibida ao lado da legenda (ex.: `'fas fa-cog'`). @default '' */\r\n icon = input('');\r\n /** @description Quando `true`, remove o conteúdo do DOM ao recolher o fieldset. @default false */\r\n destroyOnHide = input(false);\r\n\r\n templateDirectives = contentChildren(TemplateDirective);\r\n headerTemplate = computed(() => {\r\n return this.templateDirectives()?.find((template) => template.type === 'header')?.template;\r\n });\r\n\r\n bodyTemplate = computed(() => {\r\n return this.templateDirectives()?.find((template) => template.type === 'body')?.template;\r\n });\r\n /** @description Emitido imediatamente antes da animação de toggle iniciar, com o estado atual. */\r\n @Output() beforeToggle = new EventEmitter<FieldSetToggle>();\r\n /** @description Emitido após a animação de toggle concluir, com o novo estado. */\r\n @Output() afterToggle = new EventEmitter<FieldSetToggle>();\r\n\r\n active = model(true);\r\n\r\n /** @description `true` quando a animação de fechamento já terminou, aplicando `overflow-hidden` ao conteúdo. */\r\n protected collapsed = signal(false);\r\n\r\n ngAfterViewInit() {\r\n const hasBodyTemplate = this.bodyTemplate();\r\n if (!hasBodyTemplate && this.destroyOnHide()) {\r\n console.warn(\r\n 'FieldsetComponent: O uso de destroyOnHide=true requer um template de corpo definido com sTemplate=\"body\".',\r\n );\r\n }\r\n }\r\n\r\n protected toggleActive(originalEvent: PointerEvent | KeyboardEvent) {\r\n if (!this.toggleable()) {\r\n return;\r\n }\r\n this.beforeToggle.next({ collapsed: this.active(), originalEvent });\r\n this.active.set(!this.active());\r\n this.afterToggle.next({ collapsed: this.active(), originalEvent });\r\n }\r\n\r\n protected onToggleAnimationDone(event: AnimationEvent) {\r\n this.collapsed.set(event.toState === 'closed');\r\n }\r\n}\r\n","<fieldset\r\n class=\"mb-[10px] min-h-[4.5em] w-full min-w-0 rounded-xbig border border-grayscale-20 bg-grayscale-0 px-2 py-1.5\"\r\n>\r\n <legend\r\n class=\"ml-4 flex select-none items-center gap-1 rounded-medium px-1 font-open-sans text-sm font-bold text-grayscale-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-[var(--s-focus-ring-color,#0090ff)]\"\r\n [class.cursor-pointer]=\"toggleable()\"\r\n (sInteractiveContent)=\"toggleActive($event)\"\r\n [focusable]=\"toggleable()\"\r\n >\r\n @if (toggleable()) {\r\n @if (active()) {\r\n <i class=\"fas fa-minus\"></i>\r\n } @else {\r\n <i class=\"fas fa-plus\"></i>\r\n }\r\n }\r\n @let _headerTemplate = headerTemplate();\r\n @if (_headerTemplate) {\r\n <ng-container *ngTemplateOutlet=\"_headerTemplate\"></ng-container>\r\n } @else {\r\n @if (icon()) {\r\n <i [class]=\"icon()\"></i>\r\n }\r\n {{ legend() }}\r\n }\r\n </legend>\r\n @if (destroyOnHide() ? (toggleable() ? active() : true) : true) {\r\n <div\r\n [@toggleAnimation]=\"destroyOnHide() ? null : active() ? 'open' : 'closed'\"\r\n (@toggleAnimation.done)=\"onToggleAnimationDone($event)\"\r\n [class.overflow-hidden]=\"collapsed()\"\r\n >\r\n @let _bodyTemplate = bodyTemplate();\r\n @if (_bodyTemplate) {\r\n <ng-container *ngTemplateOutlet=\"_bodyTemplate\"></ng-container>\r\n } @else {\r\n <ng-content></ng-content>\r\n }\r\n </div>\r\n }\r\n</fieldset>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { FieldsetComponent } from './fieldset.component';\r\n\r\n/**\r\n * @deprecated Será removido na v20. Importe diretamente o standalone `FieldsetComponent` (de\r\n * `@seniorsistemas/angular-components/fieldset`) 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: [FieldsetComponent],\r\n exports: [FieldsetComponent],\r\n})\r\nexport class FieldsetModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;AAkBA;;;;;;;;;;;;;;;;;;;;;;AAsBG;MAuBU,iBAAiB,CAAA;;AAE1B,IAAA,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;;AAEnB,IAAA,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;;AAE1B,IAAA,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;;AAEjB,IAAA,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;AAE7B,IAAA,kBAAkB,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;AACxD,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;QAC3B,OAAO,IAAI,CAAC,kBAAkB,EAAE,EAAE,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,QAAQ,CAAC;AAC/F,KAAC,CAAC,CAAC;AAEH,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;QACzB,OAAO,IAAI,CAAC,kBAAkB,EAAE,EAAE,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,QAAQ,CAAC;AAC7F,KAAC,CAAC,CAAC;;AAEO,IAAA,YAAY,GAAG,IAAI,YAAY,EAAkB,CAAC;;AAElD,IAAA,WAAW,GAAG,IAAI,YAAY,EAAkB,CAAC;AAE3D,IAAA,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;;AAGX,IAAA,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEpC,eAAe,GAAA;AACX,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5C,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AAC1C,YAAA,OAAO,CAAC,IAAI,CACR,2GAA2G,CAC9G,CAAC;SACL;KACJ;AAES,IAAA,YAAY,CAAC,aAA2C,EAAA;AAC9D,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;YACpB,OAAO;SACV;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;KACtE;AAES,IAAA,qBAAqB,CAAC,KAAqB,EAAA;QACjD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC;KAClD;wGAhDQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,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,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,SAAA,EAUW,iBAAiB,ECzE1D,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,gvDAyCA,gFDoBc,2BAA2B,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAhB3C,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACR,OAAO,CAAC,iBAAiB,EAAE;gBACvB,UAAU,CAAC,QAAQ,EAAE;oBACjB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AAChC,oBAAA,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;iBAChE,CAAC;gBACF,UAAU,CAAC,QAAQ,EAAE;oBACjB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAClC,oBAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;iBAC7D,CAAC;AACF,gBAAA,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AACjD,gBAAA,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AACjD,gBAAA,UAAU,CAAC,iBAAiB,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;aACvD,CAAC;AACL,SAAA,EAAA,CAAA,CAAA;;4FAIQ,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAtB7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAGV,UAAA,EAAA;wBACR,OAAO,CAAC,iBAAiB,EAAE;4BACvB,UAAU,CAAC,QAAQ,EAAE;gCACjB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AAChC,gCAAA,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;6BAChE,CAAC;4BACF,UAAU,CAAC,QAAQ,EAAE;gCACjB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAClC,gCAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;6BAC7D,CAAC;AACF,4BAAA,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AACjD,4BAAA,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AACjD,4BAAA,UAAU,CAAC,iBAAiB,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;yBACvD,CAAC;AACL,qBAAA,EAAA,UAAA,EACW,IAAI,EACP,OAAA,EAAA,CAAC,2BAA2B,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,gvDAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA;8BAqB9C,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAEG,WAAW,EAAA,CAAA;sBAApB,MAAM;;;AEhFX;;;;;;AAMG;MAKU,cAAc,CAAA;wGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAd,cAAc,EAAA,OAAA,EAAA,CAHb,iBAAiB,CAAA,EAAA,OAAA,EAAA,CACjB,iBAAiB,CAAA,EAAA,CAAA,CAAA;yGAElB,cAAc,EAAA,CAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,iBAAiB,CAAC;oBAC5B,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC/B,iBAAA,CAAA;;;ACdD;;AAEG;;;;"}
|
|
@@ -22,10 +22,11 @@ class FilePickerService {
|
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
24
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilePickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
25
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilePickerService });
|
|
25
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilePickerService, providedIn: 'root' });
|
|
26
26
|
}
|
|
27
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilePickerService, decorators: [{
|
|
28
|
-
type: Injectable
|
|
28
|
+
type: Injectable,
|
|
29
|
+
args: [{ providedIn: 'root' }]
|
|
29
30
|
}] });
|
|
30
31
|
|
|
31
32
|
const ALL_PERMISSIONS = ['add', 'read', 'remove'];
|
|
@@ -374,6 +375,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
374
375
|
args: ['window:resize']
|
|
375
376
|
}] } });
|
|
376
377
|
|
|
378
|
+
/**
|
|
379
|
+
* @deprecated Será removido na v20. Importe diretamente o standalone `FilePickerComponent` (de
|
|
380
|
+
* `@seniorsistemas/angular-components/file-picker`) no lugar deste módulo.
|
|
381
|
+
*
|
|
382
|
+
* Migração automática (também executada pelo `ng update` na v20):
|
|
383
|
+
* `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
|
|
384
|
+
*/
|
|
377
385
|
class FilePickerModule {
|
|
378
386
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
379
387
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: FilePickerModule, imports: [FilePickerComponent], exports: [FilePickerComponent] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-file-picker.mjs","sources":["../../projects/angular-components/file-picker/src/lib/file-picker/file-picker.service.ts","../../projects/angular-components/file-picker/src/lib/file-picker/models/file-picker-permissions.ts","../../projects/angular-components/file-picker/src/lib/file-picker/file-picker.component.ts","../../projects/angular-components/file-picker/src/lib/file-picker/file-picker.component.html","../../projects/angular-components/file-picker/src/lib/file-picker/file-picker.module.ts","../../projects/angular-components/file-picker/src/seniorsistemas-angular-components-file-picker.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { CustomHttpClient } from '@seniorsistemas/angular-components/common';\n\nimport { ListBlobMetadataRequest, ListBlobMetadataResponse } from './models/list-blob-metadata';\n\n@Injectable()\nexport class FilePickerService {\n private BASE_URL_FIELD_CUSTOMIZATION = 'platform/field_customization';\n private TOKEN = new AbortController();\n\n public async getMetadataCustomField<T>(request: ListBlobMetadataRequest): Promise<ListBlobMetadataResponse> {\n return CustomHttpClient.post(`${this.BASE_URL_FIELD_CUSTOMIZATION}/queries/getFileMetadata`, request, {\n signal: this.TOKEN.signal,\n });\n }\n}\n","export type FilePickerPermissions = 'add' | 'read' | 'remove';\n\nexport const ALL_PERMISSIONS: FilePickerPermissions[] = ['add', 'read', 'remove'];\n","import {\r\n AfterContentInit,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n inject,\r\n} from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\nimport { TranslateService, TranslatePipe } from '@ngx-translate/core';\r\nimport { DEPRECATED_CONFIG } from '@seniorsistemas/angular-components/common/deprecated-selector';\r\nimport { DeprecatedSelectorDirective } from '@seniorsistemas/angular-components/common/deprecated-selector';\r\nimport { Breakpoints, isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\r\nimport moment from 'moment';\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { FilePickerService } from './file-picker.service';\r\nimport { FileDto } from './models/file-dto';\r\nimport { ALL_PERMISSIONS, FilePickerPermissions } from './models/file-picker-permissions';\r\nimport { ListBlobMetadataResponse } from './models/list-blob-metadata';\r\nimport { UploadError } from './models/uploadError';\r\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { ProgressBarComponent } from '@seniorsistemas/angular-components/progressbar';\r\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\r\n\r\n/**\r\n * @description Componente de upload de arquivos com suporte a seleção múltipla,\r\n * validação de tipo/tamanho, controle de permissões (adicionar, ler, remover),\r\n * download e cancelamento de uploads em andamento.\r\n *\r\n * @example\r\n * ```html\r\n * <s-file-picker\r\n * [multiple]=\"true\"\r\n * accept=\"application/pdf\"\r\n * [maxFileSize]=\"5242880\"\r\n * [files]=\"arquivos\"\r\n * (uploadHandler)=\"onUpload($event)\"\r\n * (removeFile)=\"onRemove($event)\" />\r\n * ```\r\n *\r\n * @category Inputs\r\n */\r\n@Component({\r\n selector: 's-file-picker, s-file-upload',\r\n templateUrl: './file-picker.component.html',\r\n styleUrls: ['./file-picker.component.scss'],\r\n hostDirectives: [DeprecatedSelectorDirective],\r\n providers: [\r\n {\r\n provide: DEPRECATED_CONFIG,\r\n useValue: {\r\n oldSelector: 's-file-upload',\r\n newSelector: 's-file-picker',\r\n removalVersion: '20.0.0',\r\n },\r\n },\r\n ],\r\n standalone: true,\r\n imports: [ButtonComponent, NgTemplateOutlet, ProgressBarComponent, TooltipDirective, TranslatePipe],\r\n})\r\nexport class FilePickerComponent implements OnInit, OnDestroy, AfterContentInit {\r\n private readonly sanitizer = inject(DomSanitizer);\r\n private readonly filePickerService = inject(FilePickerService);\r\n private readonly translate = inject(TranslateService);\r\n\r\n public static nextId = 0;\r\n\r\n public ADD_PERMISSION: FilePickerPermissions = 'add';\r\n public READ_PERMISSION: FilePickerPermissions = 'read';\r\n public REMOVE_PERMISSION: FilePickerPermissions = 'remove';\r\n\r\n @ViewChild('inputUpload', { static: false })\r\n private readonly inputUpload: ElementRef | null = null;\r\n\r\n @ViewChild('anchor', { static: false })\r\n private readonly anchor: ElementRef | null = null;\r\n\r\n /** @description Identificador do componente no DOM. Gerado automaticamente se não informado. */\r\n @Input()\r\n public id = `s-file-picker-${FilePickerComponent.nextId++}`;\r\n\r\n /** @description Rótulo do botão de seleção de arquivo. */\r\n @Input()\r\n public chooseLabel?: string;\r\n\r\n /** @description Rótulo do botão de remoção de arquivo. */\r\n @Input()\r\n public removeLabel?: string;\r\n\r\n /** @description Rótulo do botão de cancelamento de upload. */\r\n @Input()\r\n public cancelLabel?: string;\r\n\r\n /** @description Texto do tooltip exibido após upload bem-sucedido. */\r\n @Input()\r\n public successTooltip?: string;\r\n\r\n /** @description Permite selecionar múltiplos arquivos ao mesmo tempo. */\r\n @Input()\r\n public multiple?: boolean;\r\n\r\n /** @description Tipos MIME aceitos pelo seletor de arquivo (ex.: `'application/pdf,image/*'`). */\r\n @Input()\r\n public accept?: string;\r\n\r\n /** @description Lista de extensões de arquivo aceitas para validação (ex.: `['.pdf', '.docx']`). @default [] */\r\n @Input()\r\n public supportedExtensions: string[] = [];\r\n\r\n /** @description Label ARIA para o nome do arquivo, para leitores de tela. */\r\n @Input()\r\n public ariaLabelFileName?: string;\r\n\r\n /** @description Tamanho máximo por arquivo em bytes. */\r\n @Input()\r\n public maxFileSize?: number;\r\n\r\n /** @description Tamanho máximo combinado de todos os arquivos em bytes. */\r\n @Input()\r\n public maxCombinedFileSize?: number;\r\n\r\n /** @description Número máximo de arquivos que podem ser selecionados. */\r\n @Input()\r\n public fileLimit?: number;\r\n\r\n /** @description Label ARIA para a barra de progresso do upload. */\r\n @Input()\r\n public ariaLabelProgress?: string;\r\n\r\n /** @description Label ARIA para o ícone de sucesso. */\r\n @Input()\r\n public ariaLabelSuccess?: string;\r\n\r\n /** @description Label ARIA para mensagens de erro de validação. */\r\n @Input()\r\n public ariaLabelError?: string;\r\n\r\n /** @description Label ARIA para o botão de remoção de arquivo. */\r\n @Input()\r\n public ariaLabelRemove?: string;\r\n\r\n /** @description FormControl externo vinculado ao componente para controle de estado. */\r\n @Input()\r\n public formControl?: FormControl;\r\n\r\n /** @description Desabilita todas as interações do componente. @default false */\r\n @Input()\r\n public disabled = false;\r\n\r\n /** @description Exibe a data de upload de cada arquivo. @default false */\r\n @Input()\r\n public showFileUploadDate: boolean = false;\r\n\r\n /** @description Lista de permissões habilitadas no componente: `'add'`, `'read'`, `'remove'`. @default ALL_PERMISSIONS */\r\n @Input()\r\n public permissions: FilePickerPermissions[] = ALL_PERMISSIONS;\r\n\r\n /**\r\n * @description Lista de arquivos já enviados a serem exibidos no componente.\r\n * Ao atribuir, os arquivos são processados e suas URLs são geradas para preview.\r\n */\r\n @Input()\r\n public set files(files: FileDto[]) {\r\n if (!files || files?.length === 0) {\r\n this._files = [];\r\n return;\r\n }\r\n if (this.showFileUploadDate && files[0]?.objectId) {\r\n this.getUploadDate(files);\r\n }\r\n this._files = files.map((file) => {\r\n file.objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(file));\r\n return file;\r\n });\r\n }\r\n\r\n /** @description Emitido quando o usuário seleciona arquivos válidos para upload. */\r\n @Output()\r\n public uploadHandler: EventEmitter<{ files: FileDto[] }> = new EventEmitter();\r\n\r\n /** @description Emitido quando o usuário remove um arquivo da lista. */\r\n @Output()\r\n public removeFile: EventEmitter<{ file: File }> = new EventEmitter();\r\n\r\n /** @description Emitido quando o usuário cancela um upload em andamento. Emite o índice do arquivo cancelado. */\r\n @Output()\r\n public cancelUpload: EventEmitter<number> = new EventEmitter();\r\n\r\n /** @description Emitido quando o usuário clica para baixar um arquivo. */\r\n @Output()\r\n public downloadFile: EventEmitter<{ index: number; anchor: ElementRef }> = new EventEmitter();\r\n\r\n /** @description Emitido quando um arquivo não passa na validação de tipo, tamanho ou limite. */\r\n @Output()\r\n public validateErrors: EventEmitter<UploadError> = new EventEmitter();\r\n\r\n private _files: FileDto[] = [];\r\n private readonly ngUsubscribe: Subject<void> = new Subject();\r\n public isSmallDevice = false;\r\n public inputValue = '';\r\n public modifiedDate?: string;\r\n\r\n public ngOnInit(): void {\r\n this.supportedExtensions = this.supportedExtensions.map((extension) =>\r\n extension.replace('.', '').toLowerCase(),\r\n );\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.ngUsubscribe.next();\r\n this.ngUsubscribe.complete();\r\n }\r\n\r\n public ngAfterContentInit() {\r\n this.update();\r\n }\r\n\r\n @HostListener('window:resize')\r\n public onResize() {\r\n this.update();\r\n }\r\n\r\n public _onInputFileSelect($event: Event): void {\r\n const eventTargetFiles = ($event.target as HTMLInputElement)?.files as FileList;\r\n const dataTransferFiles = ($event as DragEvent).dataTransfer?.files as FileList;\r\n const files: FileDto[] = Array.from(dataTransferFiles ? dataTransferFiles : eventTargetFiles);\r\n this.onFileSelect(files);\r\n }\r\n\r\n public onFileSelect(files: FileDto[]): void {\r\n const newFiles: FileDto[] = [];\r\n\r\n if (!this.multiple) {\r\n this.files = [];\r\n }\r\n\r\n if (this.isFileLimitExceeded(files)) {\r\n this.validateErrors.emit({\r\n files,\r\n validation: 'maxFileLimit',\r\n });\r\n this.clearFileInput();\r\n return;\r\n }\r\n\r\n if (this.isFileCombinedSizeExceeded(files)) {\r\n this.validateErrors.emit({\r\n files: files,\r\n validation: 'maxCombinedFileSize',\r\n });\r\n this.clearFileInput();\r\n return;\r\n }\r\n\r\n for (const file of files) {\r\n if (this.isUnsupportedFileExtension(file)) {\r\n this.validateErrors.emit({\r\n files: [file],\r\n validation: 'unsupportedExtension',\r\n });\r\n continue;\r\n }\r\n\r\n if (this.isFileSizeExceeded(file)) {\r\n this.validateErrors.emit({\r\n files: [file],\r\n validation: 'maxFileSize',\r\n });\r\n continue;\r\n }\r\n\r\n newFiles.push(file);\r\n }\r\n\r\n if (newFiles.length) {\r\n this.files = this.files.concat(newFiles);\r\n this.uploadHandler.emit({\r\n files: newFiles,\r\n });\r\n }\r\n\r\n this.clearFileInput();\r\n }\r\n\r\n public onRemoveFile(file: FileDto): void {\r\n const fileIndex = this.files.indexOf(file);\r\n const removedFiles = this.files.splice(fileIndex, 1);\r\n\r\n if (removedFiles.length) {\r\n this.removeFile.emit({ file });\r\n }\r\n }\r\n\r\n public onCancelUpload(index: number) {\r\n const removedFiles = this.files.splice(index, 1);\r\n\r\n if (removedFiles.length) {\r\n this.cancelUpload.emit(index);\r\n }\r\n\r\n this.clearFileInput();\r\n }\r\n\r\n public onDowloadFile(index: number) {\r\n if (isNullOrUndefined(this.anchor)) return;\r\n\r\n this.downloadFile.emit({\r\n index,\r\n anchor: this.anchor,\r\n });\r\n }\r\n\r\n public get files(): FileDto[] {\r\n return this._files;\r\n }\r\n\r\n public formatFileSize(size: number): string {\r\n if (size === 0) {\r\n return '0 Bytes';\r\n }\r\n const k = 1024;\r\n const sizes = ['bytes', 'KB', 'MB', 'GB', 'TB'];\r\n const i = Math.floor(Math.log(size) / Math.log(k));\r\n return parseFloat((size / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\r\n }\r\n\r\n private update() {\r\n const windowWidth = window.innerWidth;\r\n this.isSmallDevice = windowWidth <= Breakpoints.SM_MAX;\r\n }\r\n\r\n private isFileLimitExceeded(files: FileDto[]) {\r\n if (!this.fileLimit) {\r\n return false;\r\n }\r\n return this.files.length + files.length > this.fileLimit;\r\n }\r\n\r\n private isFileCombinedSizeExceeded(files: File[]): boolean {\r\n if (!this.maxCombinedFileSize) {\r\n return false;\r\n }\r\n\r\n const filesList = [...files, ...this.files];\r\n\r\n const combinedSize = filesList.reduce((combinedSize, file) => combinedSize + file.size, 0);\r\n\r\n return combinedSize > this.maxCombinedFileSize;\r\n }\r\n\r\n private isFileSizeExceeded(file: File): boolean {\r\n if (!this.maxFileSize) {\r\n return false;\r\n }\r\n return file.size > this.maxFileSize;\r\n }\r\n\r\n private isUnsupportedFileExtension(file: File) {\r\n if (this.supportedExtensions?.length) {\r\n const extension = file.name.split('.').pop()?.toLowerCase() ?? '';\r\n\r\n return !this.supportedExtensions.includes(extension);\r\n }\r\n return false;\r\n }\r\n\r\n private clearFileInput() {\r\n if (isNullOrUndefined(this.inputUpload?.nativeElement)) return;\r\n\r\n this.inputUpload.nativeElement.value = null;\r\n }\r\n\r\n private getUploadDate(blobFile: FileDto[]): void {\r\n if (!blobFile) {\r\n return;\r\n }\r\n\r\n this.filePickerService\r\n .getMetadataCustomField({ objectId: blobFile[0].objectId ?? '' })\r\n .then((metadata) => this.setModifiedDate(metadata));\r\n }\r\n\r\n private setModifiedDate(metadata: ListBlobMetadataResponse): void {\r\n const hour = moment(metadata.modified).format('HH');\r\n const minutes = moment(metadata.modified).format('mm');\r\n const day = moment(metadata.modified).format('DD');\r\n const month = moment(metadata.modified).format('MM');\r\n const fullYear = moment(metadata.modified).format('YYYY');\r\n\r\n this.modifiedDate = this.translate.instant('platform.angular_components.date_modified_custom_blob', {\r\n hour,\r\n minutes,\r\n day,\r\n month,\r\n fullYear,\r\n });\r\n }\r\n}\r\n","<div\n [id]=\"id\"\n class=\"file-picker\"\n>\n <div class=\"file-picker-choose\">\n <input\n #inputUpload\n [id]=\"id + 'input-upload'\"\n type=\"file\"\n name=\"file\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n (change)=\"_onInputFileSelect($event)\"\n />\n @if (permissions.includes(ADD_PERMISSION)) {\n <s-button\n [id]=\"id + 'upload-button'\"\n [label]=\"chooseLabel || 'platform.angular_components.attach_files' | translate\"\n (clicked)=\"inputUpload.click()\"\n priority=\"primary\"\n [disabled]=\"disabled || !!formControl?.disabled || fileLimit === files.length\"\n [auxiliary]=\"false\"\n >\n </s-button>\n }\n </div>\n\n @if (files.length) {\n <section\n [id]=\"id + 'fileupload-list'\"\n class=\"file-picker-list\"\n role=\"grid\"\n >\n @for (file of files; track file; let i = $index) {\n <div\n class=\"file-picker-list-file\"\n role=\"row\"\n >\n <div\n [id]=\"id + '-file-' + i + '-name'\"\n class=\"flex flex-grow items-center justify-between overflow-hidden text-ellipsis text-nowrap\"\n role=\"gridcell\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n (permissions.includes(READ_PERMISSION) && file.savedFile) || file.progress === 100\n ? descriptionUrl\n : description;\n context: {\n $implicit: file,\n index: i,\n }\n \"\n >\n </ng-container>\n\n <span>{{ formatFileSize(file.size) }}</span>\n\n @if (modifiedDate) {\n <span class=\"file-picker-list-file-name-date\">{{ modifiedDate }}</span>\n }\n </div>\n <div\n class=\"file-picker-list-file-status\"\n role=\"gridcell\"\n >\n @if (file.isUploading && !isSmallDevice) {\n <div class=\"w-64\">\n <s-progressbar\n [value]=\"file.progress ?? 0\"\n [showValue]=\"false\"\n activeColor=\"blue\"\n ></s-progressbar>\n </div>\n }\n\n @if (file.isUploading && isSmallDevice) {\n <span\n [id]=\"id + '-file-' + i + '-spin'\"\n class=\"fas fa-circle-notch fa-spin\"\n [attr.aria-label]=\"\n ariaLabelProgress || 'platform.angular_components.loading_file' | translate\n \"\n >\n </span>\n }\n\n @if (!file.isUploading && !file.error && file.progress === 100) {\n <span\n [id]=\"id + '-file-' + i + '-check'\"\n class=\"fas fa-check\"\n role=\"alert\"\n [attr.aria-label]=\"\n ariaLabelSuccess ||\n successTooltip ||\n 'platform.angular_components.file_attached_successfully' | translate\n \"\n [sTooltip]=\"\n successTooltip || 'platform.angular_components.file_attached_successfully'\n | translate\n \"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n [escape]=\"true\"\n >\n </span>\n }\n\n @if (file.error?.message) {\n <span\n [id]=\"id + '-file-' + i + '-error'\"\n class=\"fas fa-times\"\n role=\"alert\"\n [sTooltip]=\"file.error?.message\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n [escape]=\"true\"\n >\n </span>\n }\n </div>\n <div\n class=\"file-picker-list-file-actions\"\n role=\"gridcell\"\n >\n @if (file.isUploading) {\n <a\n [id]=\"id + '-file-' + i + '-cancel'\"\n class=\"file-picker-list-file-actions-action\"\n (click)=\"onCancelUpload(i)\"\n >\n {{ cancelLabel || 'platform.angular_components.cancel' | translate }}\n </a>\n }\n\n @if (\n permissions.includes(REMOVE_PERMISSION) &&\n !file.isUploading &&\n !(disabled || !!formControl?.disabled)\n ) {\n <a\n role=\"button\"\n tabindex=\"0\"\n [id]=\"id + '-file-' + i + '-remove'\"\n class=\"file-picker-list-file-actions-action\"\n (click)=\"onRemoveFile(file)\"\n [attr.aria-label]=\"\n ariaLabelRemove || removeLabel || 'platform.angular_components.remove' | translate\n \"\n >\n {{ removeLabel || 'platform.angular_components.remove' | translate }}\n </a>\n }\n </div>\n </div>\n }\n </section>\n }\n</div>\n\n<ng-template\n #descriptionUrl\n let-file\n let-i=\"index\"\n>\n <div class=\"flex justify-between\">\n <div>\n <a\n [id]=\"id + '-file-' + i + '-name-link'\"\n tabindex=\"0\"\n (click)=\"onDowloadFile(i)\"\n [attr.aria-label]=\"ariaLabelFileName || file.name\"\n class=\"break-words focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-[var(--s-focus-ring-color,#0090ff)]\"\n >{{ file.name }}\n </a>\n <a\n style=\"display: none\"\n [href]=\"file.objectURL\"\n target=\"_blank\"\n download\n #anchor\n >\n </a>\n </div>\n </div>\n</ng-template>\n\n<ng-template\n #description\n let-file\n>\n <div class=\"flex justify-between\">\n <span\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabelFileName || file.name\"\n class=\"focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-[var(--s-focus-ring-color,#0090ff)]\"\n >\n {{ file.name }}\n </span>\n </div>\n</ng-template>\n\n","import { NgModule } from '@angular/core';\r\n\r\nimport { FilePickerComponent } from './file-picker.component';\r\nimport { FilePickerService } from './file-picker.service';\r\n\r\n@NgModule({\r\n imports: [FilePickerComponent],\r\n providers: [FilePickerService],\r\n exports: [FilePickerComponent],\r\n})\r\nexport class FilePickerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;MAOa,iBAAiB,CAAA;IAClB,4BAA4B,GAAG,8BAA8B,CAAC;AAC9D,IAAA,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IAE/B,MAAM,sBAAsB,CAAI,OAAgC,EAAA;QACnE,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,4BAA4B,CAAA,wBAAA,CAA0B,EAAE,OAAO,EAAE;AAClG,YAAA,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;AAC5B,SAAA,CAAC,CAAC;KACN;wGARQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;4GAAjB,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;;;ACJJ,MAAM,eAAe,GAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC;;AC+BjF;;;;;;;;;;;;;;;;;AAiBG;MAmBU,mBAAmB,CAAA;AACX,IAAA,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACjC,IAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC9C,IAAA,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAE/C,IAAA,OAAO,MAAM,GAAG,CAAC,CAAC;IAElB,cAAc,GAA0B,KAAK,CAAC;IAC9C,eAAe,GAA0B,MAAM,CAAC;IAChD,iBAAiB,GAA0B,QAAQ,CAAC;IAG1C,WAAW,GAAsB,IAAI,CAAC;IAGtC,MAAM,GAAsB,IAAI,CAAC;;AAI3C,IAAA,EAAE,GAAG,CAAiB,cAAA,EAAA,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC;;AAIrD,IAAA,WAAW,CAAU;;AAIrB,IAAA,WAAW,CAAU;;AAIrB,IAAA,WAAW,CAAU;;AAIrB,IAAA,cAAc,CAAU;;AAIxB,IAAA,QAAQ,CAAW;;AAInB,IAAA,MAAM,CAAU;;IAIhB,mBAAmB,GAAa,EAAE,CAAC;;AAInC,IAAA,iBAAiB,CAAU;;AAI3B,IAAA,WAAW,CAAU;;AAIrB,IAAA,mBAAmB,CAAU;;AAI7B,IAAA,SAAS,CAAU;;AAInB,IAAA,iBAAiB,CAAU;;AAI3B,IAAA,gBAAgB,CAAU;;AAI1B,IAAA,cAAc,CAAU;;AAIxB,IAAA,eAAe,CAAU;;AAIzB,IAAA,WAAW,CAAe;;IAI1B,QAAQ,GAAG,KAAK,CAAC;;IAIjB,kBAAkB,GAAY,KAAK,CAAC;;IAIpC,WAAW,GAA4B,eAAe,CAAC;AAE9D;;;AAGG;IACH,IACW,KAAK,CAAC,KAAgB,EAAA;QAC7B,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,OAAO;SACV;QACD,IAAI,IAAI,CAAC,kBAAkB,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE;AAC/C,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC7B;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AAC7B,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;AACzF,YAAA,OAAO,IAAI,CAAC;AAChB,SAAC,CAAC,CAAC;KACN;;AAIM,IAAA,aAAa,GAAuC,IAAI,YAAY,EAAE,CAAC;;AAIvE,IAAA,UAAU,GAAiC,IAAI,YAAY,EAAE,CAAC;;AAI9D,IAAA,YAAY,GAAyB,IAAI,YAAY,EAAE,CAAC;;AAIxD,IAAA,YAAY,GAAwD,IAAI,YAAY,EAAE,CAAC;;AAIvF,IAAA,cAAc,GAA8B,IAAI,YAAY,EAAE,CAAC;IAE9D,MAAM,GAAc,EAAE,CAAC;AACd,IAAA,YAAY,GAAkB,IAAI,OAAO,EAAE,CAAC;IACtD,aAAa,GAAG,KAAK,CAAC;IACtB,UAAU,GAAG,EAAE,CAAC;AAChB,IAAA,YAAY,CAAU;IAEtB,QAAQ,GAAA;QACX,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,SAAS,KAC9D,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAC3C,CAAC;KACL;IAEM,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;KAChC;IAEM,kBAAkB,GAAA;QACrB,IAAI,CAAC,MAAM,EAAE,CAAC;KACjB;IAGM,QAAQ,GAAA;QACX,IAAI,CAAC,MAAM,EAAE,CAAC;KACjB;AAEM,IAAA,kBAAkB,CAAC,MAAa,EAAA;AACnC,QAAA,MAAM,gBAAgB,GAAI,MAAM,CAAC,MAA2B,EAAE,KAAiB,CAAC;AAChF,QAAA,MAAM,iBAAiB,GAAI,MAAoB,CAAC,YAAY,EAAE,KAAiB,CAAC;AAChF,QAAA,MAAM,KAAK,GAAc,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,GAAG,gBAAgB,CAAC,CAAC;AAC9F,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KAC5B;AAEM,IAAA,YAAY,CAAC,KAAgB,EAAA;QAChC,MAAM,QAAQ,GAAc,EAAE,CAAC;AAE/B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;SACnB;AAED,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;gBACrB,KAAK;AACL,gBAAA,UAAU,EAAE,cAAc;AAC7B,aAAA,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,OAAO;SACV;AAED,QAAA,IAAI,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE;AACxC,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACrB,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,UAAU,EAAE,qBAAqB;AACpC,aAAA,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,OAAO;SACV;AAED,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACtB,YAAA,IAAI,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE;AACvC,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACrB,KAAK,EAAE,CAAC,IAAI,CAAC;AACb,oBAAA,UAAU,EAAE,sBAAsB;AACrC,iBAAA,CAAC,CAAC;gBACH,SAAS;aACZ;AAED,YAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;AAC/B,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACrB,KAAK,EAAE,CAAC,IAAI,CAAC;AACb,oBAAA,UAAU,EAAE,aAAa;AAC5B,iBAAA,CAAC,CAAC;gBACH,SAAS;aACZ;AAED,YAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACvB;AAED,QAAA,IAAI,QAAQ,CAAC,MAAM,EAAE;YACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AACpB,gBAAA,KAAK,EAAE,QAAQ;AAClB,aAAA,CAAC,CAAC;SACN;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;AAEM,IAAA,YAAY,CAAC,IAAa,EAAA;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3C,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAErD,QAAA,IAAI,YAAY,CAAC,MAAM,EAAE;YACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;SAClC;KACJ;AAEM,IAAA,cAAc,CAAC,KAAa,EAAA;AAC/B,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAEjD,QAAA,IAAI,YAAY,CAAC,MAAM,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACjC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;AAEM,IAAA,aAAa,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO;AAE3C,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACnB,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;AACtB,SAAA,CAAC,CAAC;KACN;AAED,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;AAEM,IAAA,cAAc,CAAC,IAAY,EAAA;AAC9B,QAAA,IAAI,IAAI,KAAK,CAAC,EAAE;AACZ,YAAA,OAAO,SAAS,CAAC;SACpB;QACD,MAAM,CAAC,GAAG,IAAI,CAAC;AACf,QAAA,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,OAAO,UAAU,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;KAC1E;IAEO,MAAM,GAAA;AACV,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC;KAC1D;AAEO,IAAA,mBAAmB,CAAC,KAAgB,EAAA;AACxC,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACjB,YAAA,OAAO,KAAK,CAAC;SAChB;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;KAC5D;AAEO,IAAA,0BAA0B,CAAC,KAAa,EAAA;AAC5C,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;AAC3B,YAAA,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAE5C,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,IAAI,KAAK,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAE3F,QAAA,OAAO,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC;KAClD;AAEO,IAAA,kBAAkB,CAAC,IAAU,EAAA;AACjC,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACnB,YAAA,OAAO,KAAK,CAAC;SAChB;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;KACvC;AAEO,IAAA,0BAA0B,CAAC,IAAU,EAAA;AACzC,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE,MAAM,EAAE;AAClC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YAElE,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACxD;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;IAEO,cAAc,GAAA;AAClB,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC;YAAE,OAAO;QAE/D,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC;KAC/C;AAEO,IAAA,aAAa,CAAC,QAAmB,EAAA;QACrC,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO;SACV;AAED,QAAA,IAAI,CAAC,iBAAiB;AACjB,aAAA,sBAAsB,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;AAChE,aAAA,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC3D;AAEO,IAAA,eAAe,CAAC,QAAkC,EAAA;AACtD,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACpD,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACvD,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACnD,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACrD,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE1D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,uDAAuD,EAAE;YAChG,IAAI;YACJ,OAAO;YACP,GAAG;YACH,KAAK;YACL,QAAQ;AACX,SAAA,CAAC,CAAC;KACN;wGAhVQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EAbjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,YAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,QAAQ,EAAE;AACN,oBAAA,WAAW,EAAE,eAAe;AAC5B,oBAAA,WAAW,EAAE,eAAe;AAC5B,oBAAA,cAAc,EAAE,QAAQ;AAC3B,iBAAA;AACJ,aAAA;SACJ,ECjEL,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,upQA0MA,EDvIc,MAAA,EAAA,CAAA,4xEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,EAAE,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,oJAAE,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,aAAA,EAAA,WAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,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,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEzF,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAlB/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,EAGxB,cAAA,EAAA,CAAC,2BAA2B,CAAC,EAClC,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,QAAQ,EAAE;AACN,gCAAA,WAAW,EAAE,eAAe;AAC5B,gCAAA,WAAW,EAAE,eAAe;AAC5B,gCAAA,cAAc,EAAE,QAAQ;AAC3B,6BAAA;AACJ,yBAAA;AACJ,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,OAAA,EACP,CAAC,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,upQAAA,EAAA,MAAA,EAAA,CAAA,4xEAAA,CAAA,EAAA,CAAA;8BAclF,WAAW,EAAA,CAAA;sBAD3B,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAI1B,MAAM,EAAA,CAAA;sBADtB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAK/B,EAAE,EAAA,CAAA;sBADR,KAAK;gBAKC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAKC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAKC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAKC,cAAc,EAAA,CAAA;sBADpB,KAAK;gBAKC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAKC,MAAM,EAAA,CAAA;sBADZ,KAAK;gBAKC,mBAAmB,EAAA,CAAA;sBADzB,KAAK;gBAKC,iBAAiB,EAAA,CAAA;sBADvB,KAAK;gBAKC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAKC,mBAAmB,EAAA,CAAA;sBADzB,KAAK;gBAKC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAKC,iBAAiB,EAAA,CAAA;sBADvB,KAAK;gBAKC,gBAAgB,EAAA,CAAA;sBADtB,KAAK;gBAKC,cAAc,EAAA,CAAA;sBADpB,KAAK;gBAKC,eAAe,EAAA,CAAA;sBADrB,KAAK;gBAKC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAKC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAKC,kBAAkB,EAAA,CAAA;sBADxB,KAAK;gBAKC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAQK,KAAK,EAAA,CAAA;sBADf,KAAK;gBAiBC,aAAa,EAAA,CAAA;sBADnB,MAAM;gBAKA,UAAU,EAAA,CAAA;sBADhB,MAAM;gBAKA,YAAY,EAAA,CAAA;sBADlB,MAAM;gBAKA,YAAY,EAAA,CAAA;sBADlB,MAAM;gBAKA,cAAc,EAAA,CAAA;sBADpB,MAAM;gBAyBA,QAAQ,EAAA,CAAA;sBADd,YAAY;uBAAC,eAAe,CAAA;;;MExNpB,gBAAgB,CAAA;wGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAhB,gBAAgB,EAAA,OAAA,EAAA,CAJf,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAEnB,mBAAmB,CAAA,EAAA,CAAA,CAAA;AAEpB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAHd,SAAA,EAAA,CAAC,iBAAiB,CAAC,YADpB,mBAAmB,CAAA,EAAA,CAAA,CAAA;;4FAIpB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,mBAAmB,CAAC;oBAC9B,SAAS,EAAE,CAAC,iBAAiB,CAAC;oBAC9B,OAAO,EAAE,CAAC,mBAAmB,CAAC;AACjC,iBAAA,CAAA;;;ACTD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-file-picker.mjs","sources":["../../projects/angular-components/file-picker/src/lib/file-picker/file-picker.service.ts","../../projects/angular-components/file-picker/src/lib/file-picker/models/file-picker-permissions.ts","../../projects/angular-components/file-picker/src/lib/file-picker/file-picker.component.ts","../../projects/angular-components/file-picker/src/lib/file-picker/file-picker.component.html","../../projects/angular-components/file-picker/src/lib/file-picker/file-picker.module.ts","../../projects/angular-components/file-picker/src/seniorsistemas-angular-components-file-picker.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { CustomHttpClient } from '@seniorsistemas/angular-components/common';\n\nimport { ListBlobMetadataRequest, ListBlobMetadataResponse } from './models/list-blob-metadata';\n\n@Injectable({ providedIn: 'root' })\nexport class FilePickerService {\n private BASE_URL_FIELD_CUSTOMIZATION = 'platform/field_customization';\n private TOKEN = new AbortController();\n\n public async getMetadataCustomField<T>(request: ListBlobMetadataRequest): Promise<ListBlobMetadataResponse> {\n return CustomHttpClient.post(`${this.BASE_URL_FIELD_CUSTOMIZATION}/queries/getFileMetadata`, request, {\n signal: this.TOKEN.signal,\n });\n }\n}\n","export type FilePickerPermissions = 'add' | 'read' | 'remove';\n\nexport const ALL_PERMISSIONS: FilePickerPermissions[] = ['add', 'read', 'remove'];\n","import {\r\n AfterContentInit,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n inject,\r\n} from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\nimport { TranslateService, TranslatePipe } from '@ngx-translate/core';\r\nimport { DEPRECATED_CONFIG } from '@seniorsistemas/angular-components/common/deprecated-selector';\r\nimport { DeprecatedSelectorDirective } from '@seniorsistemas/angular-components/common/deprecated-selector';\r\nimport { Breakpoints, isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\r\nimport moment from 'moment';\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { FilePickerService } from './file-picker.service';\r\nimport { FileDto } from './models/file-dto';\r\nimport { ALL_PERMISSIONS, FilePickerPermissions } from './models/file-picker-permissions';\r\nimport { ListBlobMetadataResponse } from './models/list-blob-metadata';\r\nimport { UploadError } from './models/uploadError';\r\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { ProgressBarComponent } from '@seniorsistemas/angular-components/progressbar';\r\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\r\n\r\n/**\r\n * @description Componente de upload de arquivos com suporte a seleção múltipla,\r\n * validação de tipo/tamanho, controle de permissões (adicionar, ler, remover),\r\n * download e cancelamento de uploads em andamento.\r\n *\r\n * @example\r\n * ```html\r\n * <s-file-picker\r\n * [multiple]=\"true\"\r\n * accept=\"application/pdf\"\r\n * [maxFileSize]=\"5242880\"\r\n * [files]=\"arquivos\"\r\n * (uploadHandler)=\"onUpload($event)\"\r\n * (removeFile)=\"onRemove($event)\" />\r\n * ```\r\n *\r\n * @category Inputs\r\n */\r\n@Component({\r\n selector: 's-file-picker, s-file-upload',\r\n templateUrl: './file-picker.component.html',\r\n styleUrls: ['./file-picker.component.scss'],\r\n hostDirectives: [DeprecatedSelectorDirective],\r\n providers: [\r\n {\r\n provide: DEPRECATED_CONFIG,\r\n useValue: {\r\n oldSelector: 's-file-upload',\r\n newSelector: 's-file-picker',\r\n removalVersion: '20.0.0',\r\n },\r\n },\r\n ],\r\n standalone: true,\r\n imports: [ButtonComponent, NgTemplateOutlet, ProgressBarComponent, TooltipDirective, TranslatePipe],\r\n})\r\nexport class FilePickerComponent implements OnInit, OnDestroy, AfterContentInit {\r\n private readonly sanitizer = inject(DomSanitizer);\r\n private readonly filePickerService = inject(FilePickerService);\r\n private readonly translate = inject(TranslateService);\r\n\r\n public static nextId = 0;\r\n\r\n public ADD_PERMISSION: FilePickerPermissions = 'add';\r\n public READ_PERMISSION: FilePickerPermissions = 'read';\r\n public REMOVE_PERMISSION: FilePickerPermissions = 'remove';\r\n\r\n @ViewChild('inputUpload', { static: false })\r\n private readonly inputUpload: ElementRef | null = null;\r\n\r\n @ViewChild('anchor', { static: false })\r\n private readonly anchor: ElementRef | null = null;\r\n\r\n /** @description Identificador do componente no DOM. Gerado automaticamente se não informado. */\r\n @Input()\r\n public id = `s-file-picker-${FilePickerComponent.nextId++}`;\r\n\r\n /** @description Rótulo do botão de seleção de arquivo. */\r\n @Input()\r\n public chooseLabel?: string;\r\n\r\n /** @description Rótulo do botão de remoção de arquivo. */\r\n @Input()\r\n public removeLabel?: string;\r\n\r\n /** @description Rótulo do botão de cancelamento de upload. */\r\n @Input()\r\n public cancelLabel?: string;\r\n\r\n /** @description Texto do tooltip exibido após upload bem-sucedido. */\r\n @Input()\r\n public successTooltip?: string;\r\n\r\n /** @description Permite selecionar múltiplos arquivos ao mesmo tempo. */\r\n @Input()\r\n public multiple?: boolean;\r\n\r\n /** @description Tipos MIME aceitos pelo seletor de arquivo (ex.: `'application/pdf,image/*'`). */\r\n @Input()\r\n public accept?: string;\r\n\r\n /** @description Lista de extensões de arquivo aceitas para validação (ex.: `['.pdf', '.docx']`). @default [] */\r\n @Input()\r\n public supportedExtensions: string[] = [];\r\n\r\n /** @description Label ARIA para o nome do arquivo, para leitores de tela. */\r\n @Input()\r\n public ariaLabelFileName?: string;\r\n\r\n /** @description Tamanho máximo por arquivo em bytes. */\r\n @Input()\r\n public maxFileSize?: number;\r\n\r\n /** @description Tamanho máximo combinado de todos os arquivos em bytes. */\r\n @Input()\r\n public maxCombinedFileSize?: number;\r\n\r\n /** @description Número máximo de arquivos que podem ser selecionados. */\r\n @Input()\r\n public fileLimit?: number;\r\n\r\n /** @description Label ARIA para a barra de progresso do upload. */\r\n @Input()\r\n public ariaLabelProgress?: string;\r\n\r\n /** @description Label ARIA para o ícone de sucesso. */\r\n @Input()\r\n public ariaLabelSuccess?: string;\r\n\r\n /** @description Label ARIA para mensagens de erro de validação. */\r\n @Input()\r\n public ariaLabelError?: string;\r\n\r\n /** @description Label ARIA para o botão de remoção de arquivo. */\r\n @Input()\r\n public ariaLabelRemove?: string;\r\n\r\n /** @description FormControl externo vinculado ao componente para controle de estado. */\r\n @Input()\r\n public formControl?: FormControl;\r\n\r\n /** @description Desabilita todas as interações do componente. @default false */\r\n @Input()\r\n public disabled = false;\r\n\r\n /** @description Exibe a data de upload de cada arquivo. @default false */\r\n @Input()\r\n public showFileUploadDate: boolean = false;\r\n\r\n /** @description Lista de permissões habilitadas no componente: `'add'`, `'read'`, `'remove'`. @default ALL_PERMISSIONS */\r\n @Input()\r\n public permissions: FilePickerPermissions[] = ALL_PERMISSIONS;\r\n\r\n /**\r\n * @description Lista de arquivos já enviados a serem exibidos no componente.\r\n * Ao atribuir, os arquivos são processados e suas URLs são geradas para preview.\r\n */\r\n @Input()\r\n public set files(files: FileDto[]) {\r\n if (!files || files?.length === 0) {\r\n this._files = [];\r\n return;\r\n }\r\n if (this.showFileUploadDate && files[0]?.objectId) {\r\n this.getUploadDate(files);\r\n }\r\n this._files = files.map((file) => {\r\n file.objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(file));\r\n return file;\r\n });\r\n }\r\n\r\n /** @description Emitido quando o usuário seleciona arquivos válidos para upload. */\r\n @Output()\r\n public uploadHandler: EventEmitter<{ files: FileDto[] }> = new EventEmitter();\r\n\r\n /** @description Emitido quando o usuário remove um arquivo da lista. */\r\n @Output()\r\n public removeFile: EventEmitter<{ file: File }> = new EventEmitter();\r\n\r\n /** @description Emitido quando o usuário cancela um upload em andamento. Emite o índice do arquivo cancelado. */\r\n @Output()\r\n public cancelUpload: EventEmitter<number> = new EventEmitter();\r\n\r\n /** @description Emitido quando o usuário clica para baixar um arquivo. */\r\n @Output()\r\n public downloadFile: EventEmitter<{ index: number; anchor: ElementRef }> = new EventEmitter();\r\n\r\n /** @description Emitido quando um arquivo não passa na validação de tipo, tamanho ou limite. */\r\n @Output()\r\n public validateErrors: EventEmitter<UploadError> = new EventEmitter();\r\n\r\n private _files: FileDto[] = [];\r\n private readonly ngUsubscribe: Subject<void> = new Subject();\r\n public isSmallDevice = false;\r\n public inputValue = '';\r\n public modifiedDate?: string;\r\n\r\n public ngOnInit(): void {\r\n this.supportedExtensions = this.supportedExtensions.map((extension) =>\r\n extension.replace('.', '').toLowerCase(),\r\n );\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.ngUsubscribe.next();\r\n this.ngUsubscribe.complete();\r\n }\r\n\r\n public ngAfterContentInit() {\r\n this.update();\r\n }\r\n\r\n @HostListener('window:resize')\r\n public onResize() {\r\n this.update();\r\n }\r\n\r\n public _onInputFileSelect($event: Event): void {\r\n const eventTargetFiles = ($event.target as HTMLInputElement)?.files as FileList;\r\n const dataTransferFiles = ($event as DragEvent).dataTransfer?.files as FileList;\r\n const files: FileDto[] = Array.from(dataTransferFiles ? dataTransferFiles : eventTargetFiles);\r\n this.onFileSelect(files);\r\n }\r\n\r\n public onFileSelect(files: FileDto[]): void {\r\n const newFiles: FileDto[] = [];\r\n\r\n if (!this.multiple) {\r\n this.files = [];\r\n }\r\n\r\n if (this.isFileLimitExceeded(files)) {\r\n this.validateErrors.emit({\r\n files,\r\n validation: 'maxFileLimit',\r\n });\r\n this.clearFileInput();\r\n return;\r\n }\r\n\r\n if (this.isFileCombinedSizeExceeded(files)) {\r\n this.validateErrors.emit({\r\n files: files,\r\n validation: 'maxCombinedFileSize',\r\n });\r\n this.clearFileInput();\r\n return;\r\n }\r\n\r\n for (const file of files) {\r\n if (this.isUnsupportedFileExtension(file)) {\r\n this.validateErrors.emit({\r\n files: [file],\r\n validation: 'unsupportedExtension',\r\n });\r\n continue;\r\n }\r\n\r\n if (this.isFileSizeExceeded(file)) {\r\n this.validateErrors.emit({\r\n files: [file],\r\n validation: 'maxFileSize',\r\n });\r\n continue;\r\n }\r\n\r\n newFiles.push(file);\r\n }\r\n\r\n if (newFiles.length) {\r\n this.files = this.files.concat(newFiles);\r\n this.uploadHandler.emit({\r\n files: newFiles,\r\n });\r\n }\r\n\r\n this.clearFileInput();\r\n }\r\n\r\n public onRemoveFile(file: FileDto): void {\r\n const fileIndex = this.files.indexOf(file);\r\n const removedFiles = this.files.splice(fileIndex, 1);\r\n\r\n if (removedFiles.length) {\r\n this.removeFile.emit({ file });\r\n }\r\n }\r\n\r\n public onCancelUpload(index: number) {\r\n const removedFiles = this.files.splice(index, 1);\r\n\r\n if (removedFiles.length) {\r\n this.cancelUpload.emit(index);\r\n }\r\n\r\n this.clearFileInput();\r\n }\r\n\r\n public onDowloadFile(index: number) {\r\n if (isNullOrUndefined(this.anchor)) return;\r\n\r\n this.downloadFile.emit({\r\n index,\r\n anchor: this.anchor,\r\n });\r\n }\r\n\r\n public get files(): FileDto[] {\r\n return this._files;\r\n }\r\n\r\n public formatFileSize(size: number): string {\r\n if (size === 0) {\r\n return '0 Bytes';\r\n }\r\n const k = 1024;\r\n const sizes = ['bytes', 'KB', 'MB', 'GB', 'TB'];\r\n const i = Math.floor(Math.log(size) / Math.log(k));\r\n return parseFloat((size / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\r\n }\r\n\r\n private update() {\r\n const windowWidth = window.innerWidth;\r\n this.isSmallDevice = windowWidth <= Breakpoints.SM_MAX;\r\n }\r\n\r\n private isFileLimitExceeded(files: FileDto[]) {\r\n if (!this.fileLimit) {\r\n return false;\r\n }\r\n return this.files.length + files.length > this.fileLimit;\r\n }\r\n\r\n private isFileCombinedSizeExceeded(files: File[]): boolean {\r\n if (!this.maxCombinedFileSize) {\r\n return false;\r\n }\r\n\r\n const filesList = [...files, ...this.files];\r\n\r\n const combinedSize = filesList.reduce((combinedSize, file) => combinedSize + file.size, 0);\r\n\r\n return combinedSize > this.maxCombinedFileSize;\r\n }\r\n\r\n private isFileSizeExceeded(file: File): boolean {\r\n if (!this.maxFileSize) {\r\n return false;\r\n }\r\n return file.size > this.maxFileSize;\r\n }\r\n\r\n private isUnsupportedFileExtension(file: File) {\r\n if (this.supportedExtensions?.length) {\r\n const extension = file.name.split('.').pop()?.toLowerCase() ?? '';\r\n\r\n return !this.supportedExtensions.includes(extension);\r\n }\r\n return false;\r\n }\r\n\r\n private clearFileInput() {\r\n if (isNullOrUndefined(this.inputUpload?.nativeElement)) return;\r\n\r\n this.inputUpload.nativeElement.value = null;\r\n }\r\n\r\n private getUploadDate(blobFile: FileDto[]): void {\r\n if (!blobFile) {\r\n return;\r\n }\r\n\r\n this.filePickerService\r\n .getMetadataCustomField({ objectId: blobFile[0].objectId ?? '' })\r\n .then((metadata) => this.setModifiedDate(metadata));\r\n }\r\n\r\n private setModifiedDate(metadata: ListBlobMetadataResponse): void {\r\n const hour = moment(metadata.modified).format('HH');\r\n const minutes = moment(metadata.modified).format('mm');\r\n const day = moment(metadata.modified).format('DD');\r\n const month = moment(metadata.modified).format('MM');\r\n const fullYear = moment(metadata.modified).format('YYYY');\r\n\r\n this.modifiedDate = this.translate.instant('platform.angular_components.date_modified_custom_blob', {\r\n hour,\r\n minutes,\r\n day,\r\n month,\r\n fullYear,\r\n });\r\n }\r\n}\r\n","<div\n [id]=\"id\"\n class=\"file-picker\"\n>\n <div class=\"file-picker-choose\">\n <input\n #inputUpload\n [id]=\"id + 'input-upload'\"\n type=\"file\"\n name=\"file\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n (change)=\"_onInputFileSelect($event)\"\n />\n @if (permissions.includes(ADD_PERMISSION)) {\n <s-button\n [id]=\"id + 'upload-button'\"\n [label]=\"chooseLabel || 'platform.angular_components.attach_files' | translate\"\n (clicked)=\"inputUpload.click()\"\n priority=\"primary\"\n [disabled]=\"disabled || !!formControl?.disabled || fileLimit === files.length\"\n [auxiliary]=\"false\"\n >\n </s-button>\n }\n </div>\n\n @if (files.length) {\n <section\n [id]=\"id + 'fileupload-list'\"\n class=\"file-picker-list\"\n role=\"grid\"\n >\n @for (file of files; track file; let i = $index) {\n <div\n class=\"file-picker-list-file\"\n role=\"row\"\n >\n <div\n [id]=\"id + '-file-' + i + '-name'\"\n class=\"flex flex-grow items-center justify-between overflow-hidden text-ellipsis text-nowrap\"\n role=\"gridcell\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n (permissions.includes(READ_PERMISSION) && file.savedFile) || file.progress === 100\n ? descriptionUrl\n : description;\n context: {\n $implicit: file,\n index: i,\n }\n \"\n >\n </ng-container>\n\n <span>{{ formatFileSize(file.size) }}</span>\n\n @if (modifiedDate) {\n <span class=\"file-picker-list-file-name-date\">{{ modifiedDate }}</span>\n }\n </div>\n <div\n class=\"file-picker-list-file-status\"\n role=\"gridcell\"\n >\n @if (file.isUploading && !isSmallDevice) {\n <div class=\"w-64\">\n <s-progressbar\n [value]=\"file.progress ?? 0\"\n [showValue]=\"false\"\n activeColor=\"blue\"\n ></s-progressbar>\n </div>\n }\n\n @if (file.isUploading && isSmallDevice) {\n <span\n [id]=\"id + '-file-' + i + '-spin'\"\n class=\"fas fa-circle-notch fa-spin\"\n [attr.aria-label]=\"\n ariaLabelProgress || 'platform.angular_components.loading_file' | translate\n \"\n >\n </span>\n }\n\n @if (!file.isUploading && !file.error && file.progress === 100) {\n <span\n [id]=\"id + '-file-' + i + '-check'\"\n class=\"fas fa-check\"\n role=\"alert\"\n [attr.aria-label]=\"\n ariaLabelSuccess ||\n successTooltip ||\n 'platform.angular_components.file_attached_successfully' | translate\n \"\n [sTooltip]=\"\n successTooltip || 'platform.angular_components.file_attached_successfully'\n | translate\n \"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n [escape]=\"true\"\n >\n </span>\n }\n\n @if (file.error?.message) {\n <span\n [id]=\"id + '-file-' + i + '-error'\"\n class=\"fas fa-times\"\n role=\"alert\"\n [sTooltip]=\"file.error?.message\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n [escape]=\"true\"\n >\n </span>\n }\n </div>\n <div\n class=\"file-picker-list-file-actions\"\n role=\"gridcell\"\n >\n @if (file.isUploading) {\n <a\n [id]=\"id + '-file-' + i + '-cancel'\"\n class=\"file-picker-list-file-actions-action\"\n (click)=\"onCancelUpload(i)\"\n >\n {{ cancelLabel || 'platform.angular_components.cancel' | translate }}\n </a>\n }\n\n @if (\n permissions.includes(REMOVE_PERMISSION) &&\n !file.isUploading &&\n !(disabled || !!formControl?.disabled)\n ) {\n <a\n role=\"button\"\n tabindex=\"0\"\n [id]=\"id + '-file-' + i + '-remove'\"\n class=\"file-picker-list-file-actions-action\"\n (click)=\"onRemoveFile(file)\"\n [attr.aria-label]=\"\n ariaLabelRemove || removeLabel || 'platform.angular_components.remove' | translate\n \"\n >\n {{ removeLabel || 'platform.angular_components.remove' | translate }}\n </a>\n }\n </div>\n </div>\n }\n </section>\n }\n</div>\n\n<ng-template\n #descriptionUrl\n let-file\n let-i=\"index\"\n>\n <div class=\"flex justify-between\">\n <div>\n <a\n [id]=\"id + '-file-' + i + '-name-link'\"\n tabindex=\"0\"\n (click)=\"onDowloadFile(i)\"\n [attr.aria-label]=\"ariaLabelFileName || file.name\"\n class=\"break-words focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-[var(--s-focus-ring-color,#0090ff)]\"\n >{{ file.name }}\n </a>\n <a\n style=\"display: none\"\n [href]=\"file.objectURL\"\n target=\"_blank\"\n download\n #anchor\n >\n </a>\n </div>\n </div>\n</ng-template>\n\n<ng-template\n #description\n let-file\n>\n <div class=\"flex justify-between\">\n <span\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabelFileName || file.name\"\n class=\"focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-[var(--s-focus-ring-color,#0090ff)]\"\n >\n {{ file.name }}\n </span>\n </div>\n</ng-template>\n\n","import { NgModule } from '@angular/core';\r\n\r\nimport { FilePickerComponent } from './file-picker.component';\r\nimport { FilePickerService } from './file-picker.service';\r\n\r\n/**\r\n * @deprecated Será removido na v20. Importe diretamente o standalone `FilePickerComponent` (de\r\n * `@seniorsistemas/angular-components/file-picker`) 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: [FilePickerComponent],\r\n providers: [FilePickerService],\r\n exports: [FilePickerComponent],\r\n})\r\nexport class FilePickerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1760,6 +1760,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
1760
1760
|
args: ['ganttSvg']
|
|
1761
1761
|
}] } });
|
|
1762
1762
|
|
|
1763
|
+
/**
|
|
1764
|
+
* @deprecated Será removido na v20. Importe diretamente o standalone `GanttComponent` (de
|
|
1765
|
+
* `@seniorsistemas/angular-components/gantt`) no lugar deste módulo.
|
|
1766
|
+
*
|
|
1767
|
+
* Migração automática (também executada pelo `ng update` na v20):
|
|
1768
|
+
* `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
|
|
1769
|
+
*/
|
|
1763
1770
|
class GanttModule {
|
|
1764
1771
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GanttModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1765
1772
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: GanttModule, imports: [GanttComponent], exports: [GanttComponent] });
|