@seniorsistemas/angular-components 19.0.4 → 19.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/lib/accordion/accordion.component.d.ts +25 -0
- package/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.d.ts +60 -0
- package/alert/lib/alert/alert.component.d.ts +40 -0
- package/autocomplete/lib/autocomplete/autocomplete.component.d.ts +51 -0
- package/badge/lib/badge/badge.component.d.ts +20 -0
- package/bignumber-input/lib/bignumber-input/bignumber-input.directive.d.ts +46 -1
- package/breadcrumb/lib/breadcrumb/breadcrumb-models.d.ts +11 -0
- package/breadcrumb/lib/breadcrumb/breadcrumb.component.d.ts +19 -23
- package/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.d.ts +25 -0
- package/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.module.d.ts +10 -0
- package/breadcrumb/public-api.d.ts +4 -2
- package/button/lib/button/button.component.d.ts +103 -1
- package/calendar-mask/lib/calendar-mask/calendar-mask.directive.d.ts +24 -0
- package/card/lib/card/card.component.d.ts +18 -0
- package/chat/lib/chat/chat.component.d.ts +20 -2
- package/chat/lib/chat/components/chat-message/chat-message.component.d.ts +18 -2
- package/checkbox/lib/checkbox/checkbox.component.d.ts +23 -3
- package/checkbox-list/lib/checkbox-list/checkbox-list.component.d.ts +20 -0
- package/chips/lib/chips/chip-item/chip-item.component.d.ts +15 -0
- package/chips/lib/chips/chips/chips.component.d.ts +41 -0
- package/code-editor/lib/code-editor/code-editor.component.d.ts +40 -0
- package/collapse-link/lib/collapse-link/collapse-link.component.d.ts +18 -0
- package/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.d.ts +5 -0
- package/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.d.ts +19 -0
- package/content-generator/lib/content-generator/content-generator.component.d.ts +30 -0
- package/control-errors/lib/control-errors/control-errors.component.d.ts +36 -0
- package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +36 -0
- package/currency/lib/currency.service.d.ts +15 -2
- package/custom-fields/lib/custom-fields/custom-fields.component.d.ts +31 -0
- package/dialog/lib/src/dialog/dialog.component.d.ts +51 -0
- package/dialog/lib/src/dialog/services/dialog.service.d.ts +2 -2
- package/dialog/lib/src/dialog/services/internal-dialog.service.d.ts +1 -1
- package/dynamic-form/dynamic-form/components/lookup/lookup.component.d.ts +6 -5
- package/dynamic-form/dynamic-form/components/lookup/models/lookup-api.model.d.ts +5 -0
- package/dynamic-form/dynamic-form/configurations/structure/fieldset.d.ts +14 -0
- package/dynamic-form/dynamic-form/configurations/structure/row.d.ts +67 -0
- package/dynamic-form/dynamic-form/configurations/structure/section.d.ts +8 -0
- package/dynamic-form/dynamic-form/configurations/structure/structure.d.ts +19 -0
- package/dynamic-form/dynamic-form/dynamic-form.component.d.ts +21 -1
- package/dynamic-form/dynamic-form/form-field/configurations/fields/autocomplete-field.d.ts +45 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/bignumber-field.d.ts +59 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/blob-field.d.ts +55 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-field.d.ts +35 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-switch-field.d.ts +17 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/button-field.d.ts +23 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/calendar-field.d.ts +66 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/checkbox-field.d.ts +15 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/chips-field.d.ts +30 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/content-generator-field.d.ts +47 -2
- package/dynamic-form/dynamic-form/form-field/configurations/fields/country-phone-picker-field.d.ts +26 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.d.ts +18 -1
- package/dynamic-form/dynamic-form/form-field/configurations/fields/field.d.ts +44 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.d.ts +112 -4
- package/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.d.ts +42 -3
- package/dynamic-form/dynamic-form/form-field/configurations/fields/password-field.d.ts +48 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/profile-picture.d.ts +62 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/radio-button-field.d.ts +34 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/select-field.d.ts +63 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/slider-field.d.ts +47 -1
- package/dynamic-form/dynamic-form/form-field/configurations/fields/star-rating-field.d.ts +23 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/text-area-field.d.ts +37 -1
- package/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.d.ts +65 -2
- package/dynamic-form/public-api.d.ts +1 -0
- package/editable-overlay/lib/editable-overlay/editable-overlay.directive.d.ts +16 -0
- package/empty-state/lib/empty-state/empty-state.component.d.ts +59 -0
- package/esm2022/accordion/lib/accordion/accordion.component.mjs +26 -1
- package/esm2022/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.mjs +61 -1
- package/esm2022/alert/lib/alert/alert.component.mjs +41 -1
- package/esm2022/autocomplete/lib/autocomplete/autocomplete.component.mjs +52 -1
- package/esm2022/badge/lib/badge/badge.component.mjs +21 -1
- package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.directive.mjs +47 -2
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-models.mjs +2 -0
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.component.mjs +39 -98
- package/esm2022/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.mjs +120 -0
- package/esm2022/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.module.mjs +19 -0
- package/esm2022/breadcrumb/public-api.mjs +4 -3
- package/esm2022/button/lib/button/button.component.mjs +107 -3
- package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.directive.mjs +72 -47
- package/esm2022/card/lib/card/card.component.mjs +21 -6
- package/esm2022/chat/lib/chat/chat.component.mjs +23 -5
- package/esm2022/chat/lib/chat/components/chat-message/chat-message.component.mjs +20 -4
- package/esm2022/checkbox/lib/checkbox/checkbox.component.mjs +24 -4
- package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.component.mjs +22 -2
- package/esm2022/chips/lib/chips/chip-item/chip-item.component.mjs +17 -2
- package/esm2022/chips/lib/chips/chips/chips.component.mjs +42 -1
- package/esm2022/code-editor/lib/code-editor/code-editor.component.mjs +41 -1
- package/esm2022/collapse-link/lib/collapse-link/collapse-link.component.mjs +19 -1
- package/esm2022/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.mjs +6 -1
- package/esm2022/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.mjs +21 -2
- package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +32 -2
- package/esm2022/control-errors/lib/control-errors/control-errors.component.mjs +37 -1
- package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +37 -1
- package/esm2022/currency/lib/currency.service.mjs +21 -8
- package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +32 -1
- package/esm2022/dialog/lib/src/dialog/dialog.component.mjs +66 -11
- package/esm2022/dialog/lib/src/dialog/services/dialog.service.mjs +13 -10
- package/esm2022/dialog/lib/src/dialog/services/internal-dialog.service.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/components/grid/row/row.component.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form/components/lookup/models/lookup-api.model.mjs +2 -0
- package/esm2022/dynamic-form/dynamic-form/configurations/structure/fieldset.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/configurations/structure/row.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/configurations/structure/section.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/configurations/structure/structure.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/dynamic-form.component.mjs +22 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/autocomplete-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/bignumber-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/blob-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-switch-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/button-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/calendar-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/checkbox-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/chips-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/content-generator-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/country-phone-picker-field.mjs +1 -1
- 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/field.mjs +1 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-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/configurations/fields/password-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/profile-picture.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/radio-button-field.mjs +6 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/select-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/slider-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/star-rating-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/text-area-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/button-field/button-field.component.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/radio-button/radio-button-field.component.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.mjs +3 -3
- package/esm2022/dynamic-form/public-api.mjs +2 -2
- package/esm2022/editable-overlay/lib/editable-overlay/editable-overlay.directive.mjs +17 -1
- package/esm2022/empty-state/lib/empty-state/empty-state.component.mjs +61 -2
- package/esm2022/fieldset/lib/fieldset/fieldset.component.mjs +25 -5
- package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +49 -2
- package/esm2022/gantt/lib/gantt/gantt.component.mjs +32 -1
- package/esm2022/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.mjs +1 -1
- package/esm2022/global-search/lib/global-search/global-search.component.mjs +31 -2
- package/esm2022/grid-menu/lib/grid-menu/grid-menu.component.mjs +40 -1
- package/esm2022/help-popover/lib/help-popover/help-popover/help-popover.component.mjs +1 -1
- package/esm2022/help-popover/lib/help-popover/help-popover.directive.mjs +83 -27
- package/esm2022/image-cropper/lib/image-cropper/image-cropper.component.mjs +41 -4
- package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.mjs +18 -2
- package/esm2022/info-sign/lib/info-sign/info-sign.directive.mjs +33 -4
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +1 -1
- package/esm2022/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +1 -1
- package/esm2022/inline-edit/lib/inline-edit/inline-edit.component.mjs +16 -1
- package/esm2022/insights/lib/insights/insights.component.mjs +23 -1
- package/esm2022/interactive-content/lib/interactive-content/interactive-content.directive.mjs +21 -1
- package/esm2022/kanban/lib/kanban/components/kanban-column/kanban-column.component.mjs +1 -1
- package/esm2022/kanban/lib/kanban/components/kanban-item/kanban-item.component.mjs +1 -1
- package/esm2022/kanban/lib/kanban/kanban.component.mjs +34 -16
- package/esm2022/label-value/lib/label-value/label-value.component.mjs +14 -1
- package/esm2022/lib/locale/fallback.mjs +4 -2
- package/esm2022/loading-state/lib/loading-state/loading-state.component.mjs +37 -1
- package/esm2022/loading-state/lib/loading-state/loading-state.directive.mjs +24 -1
- package/esm2022/locale/lib/locale/locale.service.mjs +8 -1
- package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.directive.mjs +17 -1
- package/esm2022/mask/lib/mask/mask-formatter.pipe.mjs +13 -1
- package/esm2022/mouse-events/lib/mouse-events/double-click.directive.mjs +16 -3
- package/esm2022/mouse-events/lib/mouse-events/long-press.directive.mjs +24 -10
- package/esm2022/navigation-button/lib/navigation-button/navigation-button.component.mjs +21 -2
- package/esm2022/number-input/lib/number-input/number-input.directive.mjs +32 -12
- package/esm2022/numeric/lib/numeric.pipe.mjs +16 -1
- package/esm2022/numeric/lib/numeric.service.mjs +21 -1
- package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.directive.mjs +9 -6
- package/esm2022/object-card/lib/object-card/elements/field/object-card-field.component.mjs +1 -1
- package/esm2022/object-card/lib/object-card/elements/main/object-card-main.component.mjs +1 -1
- package/esm2022/object-card/lib/object-card/object-card.component.mjs +24 -1
- package/esm2022/optional-fields/editor/editor-field.mjs +1 -1
- package/esm2022/paginator/lib/paginator/paginator.component.mjs +20 -1
- package/esm2022/panel/lib/panel/panel.component.mjs +44 -23
- package/esm2022/password-strength/lib/password-strength/password-strength.component.mjs +25 -1
- package/esm2022/password-strength/lib/password-strength/password-strength.directive.mjs +54 -1
- package/esm2022/picklist/lib/picklist/picklist.component.mjs +34 -3
- package/esm2022/pin-code-field/lib/pin-code-field/pin-code-field.component.mjs +29 -34
- package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +87 -3
- package/esm2022/progressbar/lib/progressbar/progressbar.component.mjs +53 -3
- package/esm2022/radio-button/lib/radio-button/radio-button.component.mjs +28 -1
- package/esm2022/radio-button/lib/radio-button-group/radio-button-group.component.mjs +27 -1
- package/esm2022/rating-scale/lib/rating-scale/rating-scale.component.mjs +39 -7
- package/esm2022/select/lib/select/select.component.mjs +35 -1
- package/esm2022/select-button/lib/select-button/select-button.component.mjs +35 -1
- package/esm2022/shared/lib/shared/border-button/border-button.component.mjs +11 -3
- package/esm2022/sidebar/lib/sidebar/sidebar.component.mjs +54 -1
- package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.mjs +76 -36
- package/esm2022/slider/lib/slider/slider.component.mjs +90 -9
- package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +25 -4
- package/esm2022/split-button/lib/split-button/split-button.component.mjs +24 -2
- package/esm2022/star-rating/star-rating/star-rating.component.mjs +17 -1
- package/esm2022/stats-card/lib/stats-card/stats-card.component.mjs +32 -10
- package/esm2022/stepper/lib/stepper/stepper.component.mjs +20 -1
- package/esm2022/structure/lib/structure/footer.component.mjs +11 -1
- package/esm2022/switch/lib/switch/switch.component.mjs +22 -2
- package/esm2022/table/lib/table/table-column/table-columns.component.mjs +16 -1
- package/esm2022/table/lib/table/table-paging/table-paging.component.mjs +1 -1
- package/esm2022/table-header/lib/table-header/table-header-checkbox.component.mjs +29 -3
- package/esm2022/tabs/lib/tab-item/tab-item.component.mjs +33 -2
- package/esm2022/tabs/lib/tabs/tabs.component.mjs +35 -3
- package/esm2022/template/lib/template/template.directive.mjs +14 -2
- package/esm2022/text-area/lib/text-area/text-area.component.mjs +28 -1
- package/esm2022/thumbnail/lib/thumbnail/thumbnail.component.mjs +25 -1
- package/esm2022/thumbnails/lib/thumbnails/thumbnails.component.mjs +28 -3
- package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.mjs +65 -46
- package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.mjs +3 -3
- package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.directive.mjs +35 -2
- package/esm2022/tile/lib/tile/tile.component.mjs +26 -1
- package/esm2022/timeline/lib/timeline/timeline.component.mjs +26 -3
- package/esm2022/toast/lib/toast/toast.component.mjs +24 -4
- package/esm2022/token-list/lib/token-list/token-list.component.mjs +22 -1
- package/esm2022/tooltip/lib/tooltip/tooltip.directive.mjs +66 -1
- package/esm2022/topbar/lib/topbar/topbar.component.mjs +18 -1
- package/esm2022/tree/lib/tree/tree.component.mjs +28 -1
- package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.component.mjs +47 -1
- package/fesm2022/seniorsistemas-angular-components-accordion.mjs +85 -0
- package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-alert.mjs +40 -0
- package/fesm2022/seniorsistemas-angular-components-alert.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs +51 -0
- package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-badge.mjs +20 -0
- package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs +46 -1
- package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +93 -37
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-button.mjs +106 -2
- package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +71 -46
- package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-card.mjs +19 -4
- package/fesm2022/seniorsistemas-angular-components-card.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-chat.mjs +39 -5
- package/fesm2022/seniorsistemas-angular-components-chat.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +21 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +23 -3
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-chips.mjs +57 -1
- package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +40 -0
- package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs +18 -0
- package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-common.mjs +5 -0
- package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs +20 -1
- package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +31 -1
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +36 -0
- package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +36 -0
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-currency.mjs +19 -6
- package/fesm2022/seniorsistemas-angular-components-currency.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +31 -0
- package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dialog.mjs +74 -16
- package/fesm2022/seniorsistemas-angular-components-dialog.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +38 -13
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs +16 -0
- package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +60 -1
- package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +21 -1
- package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +48 -1
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-gantt.mjs +31 -0
- package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs +31 -2
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs +39 -0
- package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +81 -25
- package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +39 -2
- package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +17 -1
- package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +30 -1
- package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +17 -2
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-insights.mjs +22 -0
- package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs +20 -0
- package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-kanban.mjs +30 -12
- package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-label-value.mjs +13 -0
- package/fesm2022/seniorsistemas-angular-components-label-value.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +59 -0
- package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-locale.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +16 -0
- package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-mask.mjs +12 -0
- package/fesm2022/seniorsistemas-angular-components-mask.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs +35 -8
- package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +20 -1
- package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-number-input.mjs +31 -11
- package/fesm2022/seniorsistemas-angular-components-number-input.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs +8 -5
- package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-numeric.mjs +35 -0
- package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-object-card.mjs +25 -2
- package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-optional-fields-editor.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs +19 -0
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-panel.mjs +39 -18
- package/fesm2022/seniorsistemas-angular-components-panel.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +77 -0
- package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-picklist.mjs +33 -2
- package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs +28 -33
- package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +86 -2
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +52 -2
- package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-radio-button.mjs +53 -0
- package/fesm2022/seniorsistemas-angular-components-radio-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +36 -4
- package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-select-button.mjs +34 -0
- package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-select.mjs +34 -0
- package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-shared.mjs +9 -1
- package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-sidebar.mjs +53 -0
- package/fesm2022/seniorsistemas-angular-components-sidebar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs +71 -31
- package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-slider.mjs +89 -8
- package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +24 -3
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs +22 -0
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-star-rating.mjs +16 -0
- package/fesm2022/seniorsistemas-angular-components-star-rating.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-stats-card.mjs +30 -8
- package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-stepper.mjs +19 -0
- package/fesm2022/seniorsistemas-angular-components-stepper.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-structure.mjs +10 -0
- package/fesm2022/seniorsistemas-angular-components-structure.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-switch.mjs +20 -0
- package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs +28 -2
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table.mjs +16 -1
- package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tabs.mjs +65 -2
- package/fesm2022/seniorsistemas-angular-components-tabs.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-template.mjs +13 -1
- package/fesm2022/seniorsistemas-angular-components-template.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs +27 -0
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +24 -0
- package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +26 -1
- package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +99 -47
- package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tile.mjs +25 -0
- package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-timeline.mjs +25 -2
- package/fesm2022/seniorsistemas-angular-components-timeline.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-toast.mjs +22 -2
- package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-token-list.mjs +21 -0
- package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +65 -0
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-topbar.mjs +17 -0
- package/fesm2022/seniorsistemas-angular-components-topbar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tree.mjs +27 -0
- package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +46 -0
- package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components.mjs +3 -1
- package/fesm2022/seniorsistemas-angular-components.mjs.map +1 -1
- package/fieldset/lib/fieldset/fieldset.component.d.ts +23 -3
- package/file-picker/lib/file-picker/file-picker.component.d.ts +47 -0
- package/gantt/lib/gantt/gantt.component.d.ts +31 -0
- package/global-search/lib/global-search/global-search.component.d.ts +29 -0
- package/grid-menu/lib/grid-menu/grid-menu.component.d.ts +39 -0
- package/help-popover/lib/help-popover/help-popover.directive.d.ts +67 -17
- package/image-cropper/lib/image-cropper/image-cropper.component.d.ts +38 -0
- package/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.d.ts +15 -0
- package/info-sign/lib/info-sign/info-sign.directive.d.ts +30 -1
- package/inline-edit/lib/inline-edit/inline-edit.component.d.ts +15 -0
- package/insights/lib/insights/insights.component.d.ts +22 -0
- package/interactive-content/lib/interactive-content/interactive-content.directive.d.ts +20 -0
- package/kanban/lib/kanban/kanban.component.d.ts +25 -5
- package/label-value/lib/label-value/label-value.component.d.ts +13 -0
- package/loading-state/lib/loading-state/loading-state.component.d.ts +36 -0
- package/loading-state/lib/loading-state/loading-state.directive.d.ts +23 -0
- package/locale/lib/locale/locale.service.d.ts +7 -0
- package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +16 -0
- package/mask/lib/mask/mask-formatter.pipe.d.ts +12 -0
- package/mouse-events/lib/mouse-events/double-click.directive.d.ts +13 -0
- package/mouse-events/lib/mouse-events/long-press.directive.d.ts +16 -2
- package/navigation-button/lib/navigation-button/navigation-button.component.d.ts +19 -0
- package/number-input/lib/number-input/number-input.directive.d.ts +19 -1
- package/numeric/lib/numeric.pipe.d.ts +15 -0
- package/numeric/lib/numeric.service.d.ts +20 -0
- package/numeric-mask/lib/numeric-mask/numeric-mask.directive.d.ts +5 -4
- package/object-card/lib/object-card/object-card.component.d.ts +23 -0
- package/optional-fields/editor/editor-field.d.ts +19 -0
- package/package.json +7 -7
- package/paginator/lib/paginator/paginator.component.d.ts +19 -0
- package/panel/lib/panel/panel.component.d.ts +24 -3
- package/password-strength/lib/password-strength/password-strength.component.d.ts +24 -0
- package/password-strength/lib/password-strength/password-strength.directive.d.ts +53 -0
- package/picklist/lib/picklist/picklist.component.d.ts +29 -0
- package/pin-code-field/lib/pin-code-field/pin-code-field.component.d.ts +28 -33
- package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +85 -1
- package/progressbar/lib/progressbar/progressbar.component.d.ts +50 -0
- package/radio-button/lib/radio-button/radio-button.component.d.ts +27 -0
- package/radio-button/lib/radio-button-group/radio-button-group.component.d.ts +26 -0
- package/rating-scale/lib/rating-scale/rating-scale.component.d.ts +30 -2
- package/select/lib/select/select.component.d.ts +34 -0
- package/select-button/lib/select-button/select-button.component.d.ts +34 -0
- package/shared/lib/shared/border-button/border-button.component.d.ts +10 -2
- package/sidebar/lib/sidebar/sidebar.component.d.ts +53 -0
- package/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.d.ts +53 -2
- package/slider/lib/slider/slider.component.d.ts +72 -0
- package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +18 -0
- package/split-button/lib/split-button/split-button.component.d.ts +22 -0
- package/star-rating/star-rating/star-rating.component.d.ts +16 -0
- package/stats-card/lib/stats-card/stats-card.component.d.ts +28 -0
- package/stepper/lib/stepper/stepper.component.d.ts +19 -0
- package/structure/lib/structure/footer.component.d.ts +10 -0
- package/switch/lib/switch/switch.component.d.ts +20 -0
- package/table/lib/table/table-column/table-columns.component.d.ts +15 -0
- package/table-header/lib/table-header/table-header-checkbox.component.d.ts +18 -0
- package/tabs/lib/tab-item/tab-item.component.d.ts +31 -0
- package/tabs/lib/tabs/tabs.component.d.ts +28 -0
- package/template/lib/template/template.directive.d.ts +12 -0
- package/text-area/lib/text-area/text-area.component.d.ts +27 -0
- package/thumbnail/lib/thumbnail/thumbnail.component.d.ts +24 -0
- package/thumbnails/lib/thumbnails/thumbnails.component.d.ts +27 -2
- package/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +3 -1
- package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +31 -1
- package/tile/lib/tile/tile.component.d.ts +25 -0
- package/timeline/lib/timeline/timeline.component.d.ts +24 -0
- package/toast/lib/toast/toast.component.d.ts +22 -2
- package/token-list/lib/token-list/token-list.component.d.ts +21 -0
- package/tooltip/lib/tooltip/tooltip.directive.d.ts +65 -0
- package/topbar/lib/topbar/topbar.component.d.ts +17 -0
- package/tree/lib/tree/tree.component.d.ts +27 -0
- package/workspace-switch/lib/workspace-switch/workspace-switch.component.d.ts +46 -0
- package/breadcrumb/lib/breadcrumb/breadcrumb.module.d.ts +0 -10
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.module.mjs +0 -20
|
@@ -4,7 +4,23 @@ import { DomHandler } from 'primeng/dom';
|
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
|
|
6
6
|
// TODO: O que é esta diretiva?
|
|
7
|
+
/**
|
|
8
|
+
* @description Diretiva aplicada a um `p-table` do PrimeNG para corrigir o comportamento
|
|
9
|
+
* de clique fora da célula editável, evitando que cliques em overlays (como dropdowns e modais)
|
|
10
|
+
* fechem indevidamente o modo de edição da célula.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```html
|
|
14
|
+
* <p-table sEditableOverlay [table]="dt" #dt>...</p-table>
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @category Overlay
|
|
18
|
+
*/
|
|
7
19
|
class EditableOverlayDirective {
|
|
20
|
+
/**
|
|
21
|
+
* @description Referência direta à instância do `p-table` ao qual a diretiva está aplicada.
|
|
22
|
+
* Utilizada para sobrescrever o comportamento padrão de `bindDocumentEditListener`.
|
|
23
|
+
*/
|
|
8
24
|
table;
|
|
9
25
|
ngAfterViewInit() {
|
|
10
26
|
this.table.bindDocumentEditListener = this._bindDocument.bind(this);
|
|
@@ -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';\n\nimport { DomHandler } from 'primeng/dom';\n\n// TODO: O que é esta diretiva?\n\n@Directive({\n selector: 'p-table[sEditableOverlay]',\n})\nexport class EditableOverlayDirective implements AfterViewInit {\n @Input()\n public table: any;\n\n public ngAfterViewInit(): void {\n this.table.bindDocumentEditListener = this._bindDocument.bind(this);\n }\n\n public isFromOverlayTrigger(event: any) {\n return event.path.some((path: any) => path.className && path.className.includes('ng-trigger-overlayAnimation'));\n }\n\n public isFromModal(event: any) {\n return event.path.some((path: any) => path.className && path.className.includes('s-lookup'));\n }\n\n private _bindDocument() {\n if (!this.table.documentEditListener) {\n this.table.documentEditListener = (event: any) => {\n if (\n !this.isFromOverlayTrigger(event) &&\n !this.isFromModal(event) &&\n this.table.editingCell &&\n !this.table.editingCellClick &&\n this.table.isEditingCellValid()\n ) {\n DomHandler.removeClass(this.table.editingCell, 'ui-editing-cell');\n this.table.editingCell = null;\n this.table.unbindDocumentEditListener();\n }\n\n this.table.editingCellClick = false;\n };\n\n document.addEventListener('click', this.table.documentEditListener);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { EditableOverlayDirective } from './editable-overlay.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [EditableOverlayDirective],\n exports: [EditableOverlayDirective],\n})\nexport class EditableOverlayModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAIA;
|
|
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';\n\nimport { DomHandler } from 'primeng/dom';\n\n// TODO: O que é esta diretiva?\n\n/**\n * @description Diretiva aplicada a um `p-table` do PrimeNG para corrigir o comportamento\n * de clique fora da célula editável, evitando que cliques em overlays (como dropdowns e modais)\n * fechem indevidamente o modo de edição da célula.\n *\n * @example\n * ```html\n * <p-table sEditableOverlay [table]=\"dt\" #dt>...</p-table>\n * ```\n *\n * @category Overlay\n */\n@Directive({\n selector: 'p-table[sEditableOverlay]',\n})\nexport class EditableOverlayDirective implements AfterViewInit {\n /**\n * @description Referência direta à instância do `p-table` ao qual a diretiva está aplicada.\n * Utilizada para sobrescrever o comportamento padrão de `bindDocumentEditListener`.\n */\n @Input()\n public table: any;\n\n public ngAfterViewInit(): void {\n this.table.bindDocumentEditListener = this._bindDocument.bind(this);\n }\n\n public isFromOverlayTrigger(event: any) {\n return event.path.some((path: any) => path.className && path.className.includes('ng-trigger-overlayAnimation'));\n }\n\n public isFromModal(event: any) {\n return event.path.some((path: any) => path.className && path.className.includes('s-lookup'));\n }\n\n private _bindDocument() {\n if (!this.table.documentEditListener) {\n this.table.documentEditListener = (event: any) => {\n if (\n !this.isFromOverlayTrigger(event) &&\n !this.isFromModal(event) &&\n this.table.editingCell &&\n !this.table.editingCellClick &&\n this.table.isEditingCellValid()\n ) {\n DomHandler.removeClass(this.table.editingCell, 'ui-editing-cell');\n this.table.editingCell = null;\n this.table.unbindDocumentEditListener();\n }\n\n this.table.editingCellClick = false;\n };\n\n document.addEventListener('click', this.table.documentEditListener);\n }\n }\n}\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { EditableOverlayDirective } from './editable-overlay.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [EditableOverlayDirective],\n exports: [EditableOverlayDirective],\n})\nexport class EditableOverlayModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -6,25 +6,84 @@ import { CookieService } from 'ngx-cookie-service';
|
|
|
6
6
|
import * as i1 from '@seniorsistemas/angular-components/button';
|
|
7
7
|
import { ButtonModule } from '@seniorsistemas/angular-components/button';
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* @description Componente de estado vazio exibido quando não há conteúdo para mostrar.
|
|
11
|
+
* Apresenta um ícone, título, descrição e até duas ações configuráveis
|
|
12
|
+
* (primária com suporte a tiered menu e secundária simples).
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```html
|
|
16
|
+
* <s-empty-state
|
|
17
|
+
* title="Nenhum resultado encontrado"
|
|
18
|
+
* description="Tente ajustar os filtros da busca."
|
|
19
|
+
* primaryActionLabel="Criar novo"
|
|
20
|
+
* (primaryAction)="onCreate()"
|
|
21
|
+
* />
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @category Feedback
|
|
25
|
+
*/
|
|
9
26
|
class EmptyStateComponent {
|
|
10
27
|
static nextIdSeed = 0;
|
|
11
28
|
static _nextId = EmptyStateComponent.nextIdSeed;
|
|
12
29
|
static getNextId() {
|
|
13
30
|
return this._nextId++;
|
|
14
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* @description Identificador único do componente. Gerado automaticamente se não informado.
|
|
34
|
+
*/
|
|
15
35
|
id = `s-empty-state-${EmptyStateComponent.getNextId()}`;
|
|
36
|
+
/**
|
|
37
|
+
* @description Título principal exibido no estado vazio. Campo obrigatório.
|
|
38
|
+
*/
|
|
16
39
|
title;
|
|
40
|
+
/**
|
|
41
|
+
* @description Classe CSS do ícone exibido no estado vazio.
|
|
42
|
+
* Aceita classes de bibliotecas de ícones como Font Awesome.
|
|
43
|
+
*
|
|
44
|
+
* @default 'fa fa-inbox'
|
|
45
|
+
*/
|
|
17
46
|
iconClass = 'fa fa-inbox';
|
|
47
|
+
/**
|
|
48
|
+
* @description Texto descritivo exibido abaixo do título, explicando o motivo do estado vazio
|
|
49
|
+
* ou orientando o usuário sobre as próximas ações.
|
|
50
|
+
*/
|
|
18
51
|
description;
|
|
52
|
+
/**
|
|
53
|
+
* @description Controla a visibilidade do botão de ação primária.
|
|
54
|
+
*
|
|
55
|
+
* @default true
|
|
56
|
+
*/
|
|
19
57
|
showPrimaryAction = true;
|
|
58
|
+
/**
|
|
59
|
+
* @description Controla a visibilidade do botão de ação secundária.
|
|
60
|
+
*
|
|
61
|
+
* @default true
|
|
62
|
+
*/
|
|
20
63
|
showSecondaryAction = true;
|
|
64
|
+
/**
|
|
65
|
+
* @description Texto do botão de ação primária.
|
|
66
|
+
* Quando `primaryModel` possui itens, o botão exibe um tiered menu ao clicar.
|
|
67
|
+
*/
|
|
21
68
|
primaryActionLabel;
|
|
69
|
+
/** @description Texto do botão de ação secundária. */
|
|
22
70
|
secondaryActionLabel;
|
|
71
|
+
/**
|
|
72
|
+
* @description Lista de itens para o tiered menu da ação primária.
|
|
73
|
+
* Quando informado com itens, o botão primário exibe um menu de opções
|
|
74
|
+
* ao invés de emitir o evento `primaryAction` diretamente.
|
|
75
|
+
*/
|
|
23
76
|
primaryModel = [];
|
|
77
|
+
/**
|
|
78
|
+
* @description Emitido quando o usuário clica no botão de ação primária e `primaryModel` está vazio.
|
|
79
|
+
*/
|
|
24
80
|
primaryAction = new EventEmitter();
|
|
81
|
+
/**
|
|
82
|
+
* @description Emitido quando o usuário clica no botão de ação secundária.
|
|
83
|
+
*/
|
|
25
84
|
secondaryAction = new EventEmitter();
|
|
26
85
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EmptyStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
27
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: EmptyStateComponent, selector: "s-empty-state", inputs: { id: "id", title: "title", iconClass: "iconClass", description: "description", showPrimaryAction: "showPrimaryAction", showSecondaryAction: "showSecondaryAction", primaryActionLabel: "primaryActionLabel", secondaryActionLabel: "secondaryActionLabel", primaryModel: "primaryModel" }, outputs: { primaryAction: "primaryAction", secondaryAction: "secondaryAction" }, ngImport: i0, template: "<div\n [id]=\"id\"\n class=\"empty-state\"\n>\n <div\n [id]=\"id + '-icon'\"\n class=\"icon\"\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=\"title\"\n >\n {{ title }}\n </div>\n\n @if (description) {\n <div\n [id]=\"id + '-description'\"\n class=\"description\"\n >\n <p>{{ description }}</p>\n </div>\n }\n @if (showPrimaryAction && primaryActionLabel) {\n <div\n [id]=\"id + '-actions'\"\n class=\"actions\"\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", styles: [".empty-state{width:100%;text-align:center}.empty-state .icon{color:#d8d8d8;font-size:6em}.empty-state .title{font-weight:700;margin-bottom:10px}.empty-state .description{margin-bottom:15px;color:#999;padding:0 20px;text-align:center}.empty-state .description p{margin:auto;max-width:400px;max-height:80px;overflow:hidden}.empty-state .actions{text-align:center;width:100%}\n"], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor"], outputs: ["clicked"] }] });
|
|
86
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: EmptyStateComponent, selector: "s-empty-state", inputs: { id: "id", title: "title", iconClass: "iconClass", description: "description", showPrimaryAction: "showPrimaryAction", showSecondaryAction: "showSecondaryAction", primaryActionLabel: "primaryActionLabel", secondaryActionLabel: "secondaryActionLabel", primaryModel: "primaryModel" }, outputs: { primaryAction: "primaryAction", secondaryAction: "secondaryAction" }, ngImport: i0, template: "<div\n [id]=\"id\"\n class=\"empty-state\"\n>\n <div\n [id]=\"id + '-icon'\"\n class=\"icon\"\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=\"title\"\n >\n {{ title }}\n </div>\n\n @if (description) {\n <div\n [id]=\"id + '-description'\"\n class=\"description\"\n >\n <p>{{ description }}</p>\n </div>\n }\n @if (showPrimaryAction && primaryActionLabel) {\n <div\n [id]=\"id + '-actions'\"\n class=\"actions\"\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", styles: [".empty-state{width:100%;text-align:center}.empty-state .icon{color:#d8d8d8;font-size:6em}.empty-state .title{font-weight:700;margin-bottom:10px}.empty-state .description{margin-bottom:15px;color:#999;padding:0 20px;text-align:center}.empty-state .description p{margin:auto;max-width:400px;max-height:80px;overflow:hidden}.empty-state .actions{text-align:center;width:100%}\n"], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "menuAriaLabel", "size", "slide", "animation", "badge", "iconColor"], outputs: ["clicked"] }] });
|
|
28
87
|
}
|
|
29
88
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EmptyStateComponent, decorators: [{
|
|
30
89
|
type: Component,
|
|
@@ -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';\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\n\n@Component({\n selector: 's-empty-state',\n templateUrl: './empty-state.component.html',\n styleUrls: ['./empty-state.component.scss'],\n})\nexport class EmptyStateComponent {\n public static readonly nextIdSeed = 0;\n private static _nextId = EmptyStateComponent.nextIdSeed;\n\n public static getNextId(): number {\n return this._nextId++;\n }\n \n @Input()\n public id = `s-empty-state-${EmptyStateComponent.getNextId()}`;\n\n @Input({ required: true })\n public title!: string;\n \n @Input()\n public iconClass = 'fa fa-inbox'; \n \n @Input()\n public description?: string;\n \n @Input()\n public showPrimaryAction = true;\n \n @Input()\n public showSecondaryAction = true;\n \n @Input()\n public primaryActionLabel?: string;\n \n @Input()\n public secondaryActionLabel?: string;\n \n @Input()\n public primaryModel: TieredMenuItemData[] = [];\n\n @Output()\n public primaryAction = new EventEmitter<void>();\n \n @Output()\n public secondaryAction = new EventEmitter<void>();\n}\n","<div\n [id]=\"id\"\n class=\"empty-state\"\n>\n <div\n [id]=\"id + '-icon'\"\n class=\"icon\"\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=\"title\"\n >\n {{ title }}\n </div>\n\n @if (description) {\n <div\n [id]=\"id + '-description'\"\n class=\"description\"\n >\n <p>{{ description }}</p>\n </div>\n }\n @if (showPrimaryAction && primaryActionLabel) {\n <div\n [id]=\"id + '-actions'\"\n class=\"actions\"\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 } from '@angular/core';\n\nimport { CookieService } from 'ngx-cookie-service';\n\n@Component({\n selector: 's-empty-state-go-back',\n templateUrl: './go-back.component.html',\n styleUrls: [],\n})\nexport class EmptyStateGoBackComponent {\n @Input()\n public iconClass = 'fa fa-exclamation-triangle';\n\n @Input({ required: true })\n public title!: string;\n\n @Input()\n public description?: string;\n\n @Input()\n public primaryActionLabel?: string;\n\n constructor(private readonly _cookieService: CookieService) {}\n\n public goBack() {\n const portalUrl = this._cookieService.get('com.senior.portal.url');\n window.open(portalUrl, '_top');\n }\n}\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';\nimport { CommonModule } from '@angular/common';\n\nimport { CookieService } from 'ngx-cookie-service';\n\nimport { EmptyStateComponent } from './empty-state.component';\nimport { EmptyStateGoBackComponent } from './go-back/go-back.component';\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\n\n@NgModule({\n imports: [CommonModule, ButtonModule],\n providers: [CookieService],\n declarations: [EmptyStateComponent, EmptyStateGoBackComponent],\n exports: [EmptyStateComponent, EmptyStateGoBackComponent],\n})\nexport class EmptyStateModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.EmptyStateComponent"],"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';\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\n\n/**\n * @description Componente de estado vazio exibido quando não há conteúdo para mostrar.\n * Apresenta um ícone, título, descrição e até duas ações configuráveis\n * (primária com suporte a tiered menu e secundária simples).\n *\n * @example\n * ```html\n * <s-empty-state\n * title=\"Nenhum resultado encontrado\"\n * description=\"Tente ajustar os filtros da busca.\"\n * primaryActionLabel=\"Criar novo\"\n * (primaryAction)=\"onCreate()\"\n * />\n * ```\n *\n * @category Feedback\n */\n@Component({\n selector: 's-empty-state',\n templateUrl: './empty-state.component.html',\n styleUrls: ['./empty-state.component.scss'],\n})\nexport class EmptyStateComponent {\n public static readonly nextIdSeed = 0;\n private static _nextId = EmptyStateComponent.nextIdSeed;\n\n public static getNextId(): number {\n return this._nextId++;\n }\n\n /**\n * @description Identificador único do componente. Gerado automaticamente se não informado.\n */\n @Input()\n public id = `s-empty-state-${EmptyStateComponent.getNextId()}`;\n\n /**\n * @description Título principal exibido no estado vazio. Campo obrigatório.\n */\n @Input({ required: true })\n public title!: string;\n\n /**\n * @description Classe CSS do ícone exibido no estado vazio.\n * Aceita classes de bibliotecas de ícones como Font Awesome.\n *\n * @default 'fa fa-inbox'\n */\n @Input()\n public iconClass = 'fa fa-inbox';\n\n /**\n * @description Texto descritivo exibido abaixo do título, explicando o motivo do estado vazio\n * ou orientando o usuário sobre as próximas ações.\n */\n @Input()\n public description?: string;\n\n /**\n * @description Controla a visibilidade do botão de ação primária.\n *\n * @default true\n */\n @Input()\n public showPrimaryAction = true;\n\n /**\n * @description Controla a visibilidade do botão de ação secundária.\n *\n * @default true\n */\n @Input()\n public showSecondaryAction = true;\n\n /**\n * @description Texto do botão de ação primária.\n * Quando `primaryModel` possui itens, o botão exibe um tiered menu ao clicar.\n */\n @Input()\n public primaryActionLabel?: string;\n\n /** @description Texto do botão de ação secundária. */\n @Input()\n public secondaryActionLabel?: string;\n\n /**\n * @description Lista de itens para o tiered menu da ação primária.\n * Quando informado com itens, o botão primário exibe um menu de opções\n * ao invés de emitir o evento `primaryAction` diretamente.\n */\n @Input()\n public primaryModel: TieredMenuItemData[] = [];\n\n /**\n * @description Emitido quando o usuário clica no botão de ação primária e `primaryModel` está vazio.\n */\n @Output()\n public primaryAction = new EventEmitter<void>();\n\n /**\n * @description Emitido quando o usuário clica no botão de ação secundária.\n */\n @Output()\n public secondaryAction = new EventEmitter<void>();\n}\n\n","<div\n [id]=\"id\"\n class=\"empty-state\"\n>\n <div\n [id]=\"id + '-icon'\"\n class=\"icon\"\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=\"title\"\n >\n {{ title }}\n </div>\n\n @if (description) {\n <div\n [id]=\"id + '-description'\"\n class=\"description\"\n >\n <p>{{ description }}</p>\n </div>\n }\n @if (showPrimaryAction && primaryActionLabel) {\n <div\n [id]=\"id + '-actions'\"\n class=\"actions\"\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 } from '@angular/core';\n\nimport { CookieService } from 'ngx-cookie-service';\n\n@Component({\n selector: 's-empty-state-go-back',\n templateUrl: './go-back.component.html',\n styleUrls: [],\n})\nexport class EmptyStateGoBackComponent {\n @Input()\n public iconClass = 'fa fa-exclamation-triangle';\n\n @Input({ required: true })\n public title!: string;\n\n @Input()\n public description?: string;\n\n @Input()\n public primaryActionLabel?: string;\n\n constructor(private readonly _cookieService: CookieService) {}\n\n public goBack() {\n const portalUrl = this._cookieService.get('com.senior.portal.url');\n window.open(portalUrl, '_top');\n }\n}\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';\nimport { CommonModule } from '@angular/common';\n\nimport { CookieService } from 'ngx-cookie-service';\n\nimport { EmptyStateComponent } from './empty-state.component';\nimport { EmptyStateGoBackComponent } from './go-back/go-back.component';\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\n\n@NgModule({\n imports: [CommonModule, ButtonModule],\n providers: [CookieService],\n declarations: [EmptyStateComponent, EmptyStateGoBackComponent],\n exports: [EmptyStateComponent, EmptyStateGoBackComponent],\n})\nexport class EmptyStateModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.EmptyStateComponent"],"mappings":"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"}
|
|
@@ -7,14 +7,34 @@ import { CommonModule } from '@angular/common';
|
|
|
7
7
|
import * as i2 from '@seniorsistemas/angular-components/interactive-content';
|
|
8
8
|
import { InteractiveContentDirective } from '@seniorsistemas/angular-components/interactive-content';
|
|
9
9
|
|
|
10
|
+
/**
|
|
11
|
+
* @description Componente de fieldset com legenda, ícone configurável e suporte a
|
|
12
|
+
* toggle (recolher/expandir) com animação. Suporta template personalizado para o
|
|
13
|
+
* cabeçalho via diretiva `TemplateDirective` com tipo `'header'`.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```html
|
|
17
|
+
* <s-fieldset legend="Dados pessoais" [toggleable]="true">
|
|
18
|
+
* <p>Conteúdo do fieldset</p>
|
|
19
|
+
* </s-fieldset>
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @category Inputs
|
|
23
|
+
*/
|
|
10
24
|
class FieldsetComponent {
|
|
25
|
+
/** @description Texto exibido como título do fieldset. @default '' */
|
|
11
26
|
legend = '';
|
|
27
|
+
/** @description Habilita o botão de toggle que permite recolher e expandir o conteúdo. @default false */
|
|
12
28
|
toggleable = false;
|
|
29
|
+
/** @description Classe de ícone exibida ao lado da legenda (ex.: `'fas fa-cog'`). @default '' */
|
|
13
30
|
icon = '';
|
|
31
|
+
/** @description Quando `true`, remove o conteúdo do DOM ao recolher o fieldset. @default true */
|
|
14
32
|
destroyOnHide = true;
|
|
15
33
|
templateDirectives;
|
|
16
34
|
headerTemplate;
|
|
35
|
+
/** @description Emitido imediatamente antes da animação de toggle iniciar, com o estado atual. */
|
|
17
36
|
beforeToggle = new EventEmitter();
|
|
37
|
+
/** @description Emitido após a animação de toggle concluir, com o novo estado. */
|
|
18
38
|
afterToggle = new EventEmitter();
|
|
19
39
|
active = true;
|
|
20
40
|
ngAfterViewInit() {
|
|
@@ -47,7 +67,7 @@ class FieldsetComponent {
|
|
|
47
67
|
}
|
|
48
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FieldsetComponent, decorators: [{
|
|
49
69
|
type: Component,
|
|
50
|
-
args: [{ selector:
|
|
70
|
+
args: [{ selector: 's-fieldset', animations: [
|
|
51
71
|
trigger('toggleAnimation', [
|
|
52
72
|
transition(':enter', [
|
|
53
73
|
style({ opacity: 0, height: 0 }),
|
|
@@ -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, state, style, transition, trigger } from
|
|
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, state, style, transition, trigger } from '@angular/animations';\nimport {\n AfterViewInit,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n Output,\n QueryList,\n TemplateRef,\n} from '@angular/core';\n\nimport { TemplateDirective } from '@seniorsistemas/angular-components/template';\nimport { FieldSetToggle } from './fieldset.models';\n\n/**\n * @description Componente de fieldset com legenda, ícone configurável e suporte a\n * toggle (recolher/expandir) com animação. Suporta template personalizado para o\n * cabeçalho via diretiva `TemplateDirective` com tipo `'header'`.\n *\n * @example\n * ```html\n * <s-fieldset legend=\"Dados pessoais\" [toggleable]=\"true\">\n * <p>Conteúdo do fieldset</p>\n * </s-fieldset>\n * ```\n *\n * @category Inputs\n */\n@Component({\n selector: 's-fieldset',\n templateUrl: './fieldset.component.html',\n styleUrls: ['./fieldset.component.scss'],\n animations: [\n trigger('toggleAnimation', [\n transition(':enter', [\n style({ opacity: 0, height: 0 }),\n animate('300ms ease-out', style({ opacity: 1, height: '*' })),\n ]),\n transition(':leave', [\n style({ opacity: 1, height: '*' }),\n animate('300ms ease-in', style({ opacity: 0, height: 0 })),\n ]),\n state('open', style({ opacity: 1, height: '*' })),\n state('closed', style({ opacity: 0, height: 0 })),\n transition('open <=> closed', animate('300ms ease')),\n ]),\n ],\n})\nexport class FieldsetComponent implements AfterViewInit {\n /** @description Texto exibido como título do fieldset. @default '' */\n @Input() legend = '';\n /** @description Habilita o botão de toggle que permite recolher e expandir o conteúdo. @default false */\n @Input() toggleable = false;\n /** @description Classe de ícone exibida ao lado da legenda (ex.: `'fas fa-cog'`). @default '' */\n @Input() icon = '';\n /** @description Quando `true`, remove o conteúdo do DOM ao recolher o fieldset. @default true */\n @Input() destroyOnHide = true;\n @ContentChildren(TemplateDirective) readonly templateDirectives: QueryList<TemplateDirective> | undefined;\n headerTemplate: TemplateRef<any> | undefined;\n /** @description Emitido imediatamente antes da animação de toggle iniciar, com o estado atual. */\n @Output() beforeToggle = new EventEmitter<FieldSetToggle>();\n /** @description Emitido após a animação de toggle concluir, com o novo estado. */\n @Output() afterToggle = new EventEmitter<FieldSetToggle>();\n active = true;\n\n ngAfterViewInit(): void {\n this.headerTemplate = this.templateDirectives?.find((template) => template.type === 'header')?.template;\n }\n\n toggleActive(originalEvent: PointerEvent | KeyboardEvent) {\n if (!this.toggleable) {\n return;\n }\n this.beforeToggle.next({ collapsed: this.active, originalEvent });\n this.active = !this.active;\n this.afterToggle.next({ collapsed: this.active, originalEvent });\n }\n}\n\n","<fieldset\n class=\"fieldset\"\n [class.fieldset-togglable]=\"toggleable\"\n>\n <legend\n class=\"fieldset-title\"\n (sInteractiveContent)=\"toggleActive($event)\"\n >\n <ng-container *ngIf=\"toggleable\">\n @if (active) {\n <i class=\"fas fa-plus\"></i>\n } @else {\n <i class=\"fas fa-minus\"></i>\n }\n </ng-container>\n @if (headerTemplate) {\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n } @else {\n <i\n *ngIf=\"icon\"\n [class]=\"icon\"\n ></i>\n {{ legend }}\n }\n </legend>\n @if (destroyOnHide ? (toggleable ? active : true) : true) {\n <div [@toggleAnimation]=\"destroyOnHide ? null : active ? 'open' : 'closed'\">\n <ng-content></ng-content>\n </div>\n }\n</fieldset>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { InteractiveContentDirective } from '@seniorsistemas/angular-components/interactive-content';\n\nimport { FieldsetComponent } from './fieldset.component';\n\n@NgModule({\n imports: [CommonModule, InteractiveContentDirective],\n declarations: [FieldsetComponent],\n exports: [FieldsetComponent],\n})\nexport class FieldsetModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;AAeA;;;;;;;;;;;;;AAaG;MAqBU,iBAAiB,CAAA;;IAEjB,MAAM,GAAG,EAAE,CAAC;;IAEZ,UAAU,GAAG,KAAK,CAAC;;IAEnB,IAAI,GAAG,EAAE,CAAC;;IAEV,aAAa,GAAG,IAAI,CAAC;AACe,IAAA,kBAAkB,CAA2C;AAC1G,IAAA,cAAc,CAA+B;;AAEnC,IAAA,YAAY,GAAG,IAAI,YAAY,EAAkB,CAAC;;AAElD,IAAA,WAAW,GAAG,IAAI,YAAY,EAAkB,CAAC;IAC3D,MAAM,GAAG,IAAI,CAAC;IAEd,eAAe,GAAA;QACX,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,QAAQ,CAAC;KAC3G;AAED,IAAA,YAAY,CAAC,aAA2C,EAAA;AACpD,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,OAAO;SACV;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;AAClE,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;KACpE;wGA5BQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAST,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,iBAAiB,EC1DtC,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,46BA+BA,EDEgB,MAAA,EAAA,CAAA,gcAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,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;;4FAEQ,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBApB7B,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,QAAA,EAAA,46BAAA,EAAA,MAAA,EAAA,CAAA,gcAAA,CAAA,EAAA,CAAA;8BAIQ,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAEG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACuC,kBAAkB,EAAA,CAAA;sBAA9D,eAAe;uBAAC,iBAAiB,CAAA;gBAGxB,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAEG,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MEnDE,cAAc,CAAA;wGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,iBAHR,iBAAiB,CAAA,EAAA,OAAA,EAAA,CADtB,YAAY,EAAE,2BAA2B,aAEzC,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAElB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAJb,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAIb,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,2BAA2B,CAAC;oBACpD,YAAY,EAAE,CAAC,iBAAiB,CAAC;oBACjC,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC/B,iBAAA,CAAA;;;ACXD;;AAEG;;;;"}
|
|
@@ -36,6 +36,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
36
36
|
type: Injectable
|
|
37
37
|
}] });
|
|
38
38
|
|
|
39
|
+
/**
|
|
40
|
+
* @description Componente de upload de arquivos com suporte a seleção múltipla,
|
|
41
|
+
* validação de tipo/tamanho, controle de permissões (adicionar, ler, remover),
|
|
42
|
+
* download e cancelamento de uploads em andamento.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```html
|
|
46
|
+
* <s-file-picker
|
|
47
|
+
* [multiple]="true"
|
|
48
|
+
* accept="application/pdf"
|
|
49
|
+
* [maxFileSize]="5242880"
|
|
50
|
+
* [files]="arquivos"
|
|
51
|
+
* (uploadHandler)="onUpload($event)"
|
|
52
|
+
* (removeFile)="onRemove($event)" />
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* @category Inputs
|
|
56
|
+
*/
|
|
39
57
|
class FilePickerComponent {
|
|
40
58
|
sanitizer;
|
|
41
59
|
filePickerService;
|
|
@@ -46,26 +64,50 @@ class FilePickerComponent {
|
|
|
46
64
|
REMOVE_PERMISSION = 'remove';
|
|
47
65
|
inputUpload = null;
|
|
48
66
|
anchor = null;
|
|
67
|
+
/** @description Identificador do componente no DOM. Gerado automaticamente se não informado. */
|
|
49
68
|
id = `s-file-picker-${FilePickerComponent.nextId++}`;
|
|
69
|
+
/** @description Rótulo do botão de seleção de arquivo. */
|
|
50
70
|
chooseLabel;
|
|
71
|
+
/** @description Rótulo do botão de remoção de arquivo. */
|
|
51
72
|
removeLabel;
|
|
73
|
+
/** @description Rótulo do botão de cancelamento de upload. */
|
|
52
74
|
cancelLabel;
|
|
75
|
+
/** @description Texto do tooltip exibido após upload bem-sucedido. */
|
|
53
76
|
successTooltip;
|
|
77
|
+
/** @description Permite selecionar múltiplos arquivos ao mesmo tempo. */
|
|
54
78
|
multiple;
|
|
79
|
+
/** @description Tipos MIME aceitos pelo seletor de arquivo (ex.: `'application/pdf,image/*'`). */
|
|
55
80
|
accept;
|
|
81
|
+
/** @description Lista de extensões de arquivo aceitas para validação (ex.: `['.pdf', '.docx']`). @default [] */
|
|
56
82
|
supportedExtensions = [];
|
|
83
|
+
/** @description Label ARIA para o nome do arquivo, para leitores de tela. */
|
|
57
84
|
ariaLabelFileName;
|
|
85
|
+
/** @description Tamanho máximo por arquivo em bytes. */
|
|
58
86
|
maxFileSize;
|
|
87
|
+
/** @description Tamanho máximo combinado de todos os arquivos em bytes. */
|
|
59
88
|
maxCombinedFileSize;
|
|
89
|
+
/** @description Número máximo de arquivos que podem ser selecionados. */
|
|
60
90
|
fileLimit;
|
|
91
|
+
/** @description Label ARIA para a barra de progresso do upload. */
|
|
61
92
|
ariaLabelProgress;
|
|
93
|
+
/** @description Label ARIA para o ícone de sucesso. */
|
|
62
94
|
ariaLabelSuccess;
|
|
95
|
+
/** @description Label ARIA para mensagens de erro de validação. */
|
|
63
96
|
ariaLabelError;
|
|
97
|
+
/** @description Label ARIA para o botão de remoção de arquivo. */
|
|
64
98
|
ariaLabelRemove;
|
|
99
|
+
/** @description FormControl externo vinculado ao componente para controle de estado. */
|
|
65
100
|
formControl;
|
|
101
|
+
/** @description Desabilita todas as interações do componente. @default false */
|
|
66
102
|
disabled = false;
|
|
103
|
+
/** @description Exibe a data de upload de cada arquivo. @default false */
|
|
67
104
|
showFileUploadDate = false;
|
|
105
|
+
/** @description Lista de permissões habilitadas no componente: `'add'`, `'read'`, `'remove'`. @default ALL_PERMISSIONS */
|
|
68
106
|
permissions = ALL_PERMISSIONS;
|
|
107
|
+
/**
|
|
108
|
+
* @description Lista de arquivos já enviados a serem exibidos no componente.
|
|
109
|
+
* Ao atribuir, os arquivos são processados e suas URLs são geradas para preview.
|
|
110
|
+
*/
|
|
69
111
|
set files(files) {
|
|
70
112
|
if (!files || files?.length === 0) {
|
|
71
113
|
this._files = [];
|
|
@@ -79,10 +121,15 @@ class FilePickerComponent {
|
|
|
79
121
|
return file;
|
|
80
122
|
});
|
|
81
123
|
}
|
|
124
|
+
/** @description Emitido quando o usuário seleciona arquivos válidos para upload. */
|
|
82
125
|
uploadHandler = new EventEmitter();
|
|
126
|
+
/** @description Emitido quando o usuário remove um arquivo da lista. */
|
|
83
127
|
removeFile = new EventEmitter();
|
|
128
|
+
/** @description Emitido quando o usuário cancela um upload em andamento. Emite o índice do arquivo cancelado. */
|
|
84
129
|
cancelUpload = new EventEmitter();
|
|
130
|
+
/** @description Emitido quando o usuário clica para baixar um arquivo. */
|
|
85
131
|
downloadFile = new EventEmitter();
|
|
132
|
+
/** @description Emitido quando um arquivo não passa na validação de tipo, tamanho ou limite. */
|
|
86
133
|
validateErrors = new EventEmitter();
|
|
87
134
|
_files = [];
|
|
88
135
|
ngUsubscribe = new Subject();
|
|
@@ -261,7 +308,7 @@ class FilePickerComponent {
|
|
|
261
308
|
removalVersion: '20.0.0',
|
|
262
309
|
},
|
|
263
310
|
},
|
|
264
|
-
], viewQueries: [{ propertyName: "inputUpload", first: true, predicate: ["inputUpload"], descendants: true }, { propertyName: "anchor", first: true, predicate: ["anchor"], descendants: true }], hostDirectives: [{ directive: i4.DeprecatedSelectorDirective }], ngImport: i0, template: "<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 [pTooltip]=\"\n successTooltip || 'platform.angular_components.file_attached_successfully'\n | translate\n \"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n [appendTo]=\"'body'\"\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 [pTooltip]=\"file.error?.message\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n [appendTo]=\"'body'\"\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\"\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 >\n {{ file.name }}\n </span>\n </div>\n</ng-template>\n\n", styles: [".file-picker .file-picker-choose{position:relative;margin:15px 0;width:max-content}.file-picker input[type=file]{display:none}.file-picker-list{border:1px solid #ccc}.file-picker-list-file:not(:first-child){border-top:1px solid #ccc}.file-picker-list .file-picker-list-file{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;padding:15px}.file-picker-list .file-picker-list-file .file-picker-list-file-name{display:flex;flex-direction:column;align-self:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-picker-list .file-picker-list-file .file-picker-list-file-name .file-picker-list-file-name-date{font-size:.75rem;color:#999}.file-picker-list .file-picker-list-file .file-picker-list-file-name>a{cursor:pointer;text-decoration:none}.file-picker-list .file-picker-list-file .file-picker-list-file-status{align-self:center}.file-picker-list .file-picker-list-file .fas.fa-circle-notch{color:#d8d8d8;font-size:12px}.file-picker-list .file-picker-list-file .fas.fa-check{color:#0c9348;font-size:12px}.file-picker-list .file-picker-list-file .fas.fa-times{color:#c13018;font-size:12px}.file-picker-list .file-picker-list-file .file-picker-list-file-actions{margin-top:15px;align-self:center;width:100%}.file-picker-list .file-picker-list-file .file-picker-list-file-actions a.file-picker-list-file-actions-action{text-decoration:none;color:#428bca}.file-picker-list .file-picker-list-file .file-picker-list-file-actions a.file-picker-list-file-actions-action:hover,.file-picker-list .file-picker-list-file .file-picker-list-file-actions a.file-picker-list-file-actions-action :focus,.file-picker-list .file-picker-list-file .file-picker-list-file-actions a.file-picker-list-file-actions-action :visited{text-decoration:none}@media (min-width: 768px){.file-picker-list .file-picker-list-file{flex-wrap:nowrap}.file-picker-list .file-picker-list-file .file-picker-list-file-name{width:auto;flex-grow:2}.file-picker-list .file-picker-list-file .file-picker-list-file-status{margin:0 15px}.file-picker-list .file-picker-list-file .file-picker-list-file-actions{margin:0;width:auto}}\n"], dependencies: [{ kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor"], outputs: ["clicked"] }, { kind: "directive", type: i7.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i8.ProgressBarComponent, selector: "s-progressbar", inputs: ["value", "activeColor", "numberFormatOptions", "targetValue", "label", "targetLabel", "showValue", "mode"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
|
|
311
|
+
], viewQueries: [{ propertyName: "inputUpload", first: true, predicate: ["inputUpload"], descendants: true }, { propertyName: "anchor", first: true, predicate: ["anchor"], descendants: true }], hostDirectives: [{ directive: i4.DeprecatedSelectorDirective }], ngImport: i0, template: "<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 [pTooltip]=\"\n successTooltip || 'platform.angular_components.file_attached_successfully'\n | translate\n \"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n [appendTo]=\"'body'\"\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 [pTooltip]=\"file.error?.message\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n [appendTo]=\"'body'\"\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\"\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 >\n {{ file.name }}\n </span>\n </div>\n</ng-template>\n\n", styles: [".file-picker .file-picker-choose{position:relative;margin:15px 0;width:max-content}.file-picker input[type=file]{display:none}.file-picker-list{border:1px solid #ccc}.file-picker-list-file:not(:first-child){border-top:1px solid #ccc}.file-picker-list .file-picker-list-file{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;padding:15px}.file-picker-list .file-picker-list-file .file-picker-list-file-name{display:flex;flex-direction:column;align-self:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-picker-list .file-picker-list-file .file-picker-list-file-name .file-picker-list-file-name-date{font-size:.75rem;color:#999}.file-picker-list .file-picker-list-file .file-picker-list-file-name>a{cursor:pointer;text-decoration:none}.file-picker-list .file-picker-list-file .file-picker-list-file-status{align-self:center}.file-picker-list .file-picker-list-file .fas.fa-circle-notch{color:#d8d8d8;font-size:12px}.file-picker-list .file-picker-list-file .fas.fa-check{color:#0c9348;font-size:12px}.file-picker-list .file-picker-list-file .fas.fa-times{color:#c13018;font-size:12px}.file-picker-list .file-picker-list-file .file-picker-list-file-actions{margin-top:15px;align-self:center;width:100%}.file-picker-list .file-picker-list-file .file-picker-list-file-actions a.file-picker-list-file-actions-action{text-decoration:none;color:#428bca}.file-picker-list .file-picker-list-file .file-picker-list-file-actions a.file-picker-list-file-actions-action:hover,.file-picker-list .file-picker-list-file .file-picker-list-file-actions a.file-picker-list-file-actions-action :focus,.file-picker-list .file-picker-list-file .file-picker-list-file-actions a.file-picker-list-file-actions-action :visited{text-decoration:none}@media (min-width: 768px){.file-picker-list .file-picker-list-file{flex-wrap:nowrap}.file-picker-list .file-picker-list-file .file-picker-list-file-name{width:auto;flex-grow:2}.file-picker-list .file-picker-list-file .file-picker-list-file-status{margin:0 15px}.file-picker-list .file-picker-list-file .file-picker-list-file-actions{margin:0;width:auto}}\n"], dependencies: [{ kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "menuAriaLabel", "size", "slide", "animation", "badge", "iconColor"], outputs: ["clicked"] }, { kind: "directive", type: i7.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i8.ProgressBarComponent, selector: "s-progressbar", inputs: ["value", "activeColor", "numberFormatOptions", "targetValue", "label", "targetLabel", "showValue", "mode"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
|
|
265
312
|
}
|
|
266
313
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilePickerComponent, decorators: [{
|
|
267
314
|
type: Component,
|