@seniorsistemas/angular-components 19.0.5 → 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.component.d.ts +12 -0
- package/button/lib/button/button.component.d.ts +101 -0
- 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.component.mjs +13 -1
- package/esm2022/button/lib/button/button.component.mjs +102 -1
- 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 +20 -1
- package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +31 -1
- 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/lookup/lookup.component.mjs +1 -1
- 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/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 +60 -1
- package/esm2022/fieldset/lib/fieldset/fieldset.component.mjs +25 -5
- package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +48 -1
- package/esm2022/gantt/lib/gantt/gantt.component.mjs +32 -1
- package/esm2022/global-search/lib/global-search/global-search.component.mjs +30 -1
- package/esm2022/grid-menu/lib/grid-menu/grid-menu.component.mjs +40 -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 +40 -3
- 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/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/kanban.component.mjs +34 -16
- package/esm2022/label-value/lib/label-value/label-value.component.mjs +14 -1
- 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 +20 -1
- 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/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 +33 -2
- 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 +86 -2
- 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-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/tiered-menu.directive.mjs +30 -1
- 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 +12 -0
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-button.mjs +101 -0
- 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 +19 -0
- package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +30 -0
- 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 +29 -4
- 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 +59 -0
- 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 +47 -0
- 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 +29 -0
- 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 +80 -24
- package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +38 -1
- 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 +15 -0
- 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 +28 -10
- 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 +19 -0
- 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 +23 -0
- 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 +32 -1
- 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 +85 -1
- 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 +15 -0
- 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 +29 -0
- 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/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 +12 -12
- 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/tiered-menu.directive.d.ts +29 -0
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-tooltip.mjs","sources":["../../projects/angular-components/tooltip/src/lib/tooltip/tooltip.component.ts","../../projects/angular-components/tooltip/src/lib/tooltip/tooltip.component.html","../../projects/angular-components/tooltip/src/lib/tooltip/tooltip.directive.ts","../../projects/angular-components/tooltip/src/lib/tooltip/tooltip.module.ts","../../projects/angular-components/tooltip/src/seniorsistemas-angular-components-tooltip.ts"],"sourcesContent":["import { Component, signal } from '@angular/core';\n\nimport { TooltipPositions } from './models/tooltip-position';\n\n@Component({\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n})\nexport class TooltipComponent {\n public tooltip = '';\n public position: TooltipPositions = 'top';\n public left = 0;\n public top = 0;\n public visible = false;\n public escape = false;\n}\n","<div\n id=\"tooltip\"\n class=\"tooltip\"\n [ngClass]=\"['tooltip--' + position]\"\n [class.tooltip--visible]=\"visible\"\n [ngStyle]=\"{\n left: left + 'px',\n top: top + 'px',\n }\"\n>\n @if (escape) {\n <span class=\"tooltip__content\">\n {{ tooltip }}\n </span>\n } @else {\n <span\n class=\"tooltip__content\"\n [innerHTML]=\"tooltip\"\n >\n </span>\n }\n</div>\n","import {\n ApplicationRef,\n ComponentRef,\n Directive,\n ElementRef,\n HostListener,\n input,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport { DebounceUtils } from '@seniorsistemas/angular-components/common';\nimport {\n getElementLeftoverContentAvailable,\n getElementPositionInfo,\n isNullOrUndefined,\n} from '@seniorsistemas/angular-components/utils';\nimport { MobileBehavior } from './models/mobile-behavior';\nimport { TooltipEvent } from './models/tooltip-event';\nimport { TooltipPositions } from './models/tooltip-position';\nimport { TooltipComponent } from './tooltip.component';\n\n@Directive({\n selector: '[sTooltip]',\n standalone: true,\n})\nexport class TooltipDirective implements OnInit, OnDestroy {\n @Input('sTooltip')\n public tooltip?: string;\n\n @Input()\n public tooltipPosition: TooltipPositions = 'top';\n\n @Input()\n public showDelay = 500;\n\n @Input()\n public displayTime?: number;\n\n @Input()\n public tooltipEvent: TooltipEvent = 'hover';\n\n @Input()\n public escape = false;\n\n @Input()\n public visible = true;\n\n @Input()\n public mobileBehavior: MobileBehavior = 'pressing';\n\n @Input()\n public focusedInputRef: HTMLInputElement | null = null;\n\n checkTruncatedText = input(false);\n\n private componentRef: ComponentRef<TooltipComponent> | null = null;\n private showTimeout?: number;\n private touchTimeout?: number;\n private tooltipDivElement: HTMLElement | null = null;\n private readonly debounceCreateTooltipFunction: () => void;\n private tooltipCreatedByFocus = false;\n\n constructor(\n private readonly elementRef: ElementRef,\n private readonly appRef: ApplicationRef,\n private readonly debounceUtils: DebounceUtils,\n private readonly renderer: Renderer2,\n private readonly viewContainerRef: ViewContainerRef,\n ) {\n this.debounceCreateTooltipFunction = this.debounceUtils.debounceLeading(() => this._createTooltip(true, true));\n }\n\n public ngOnInit(): void {\n this.validatePosition();\n this.updateTooltipVisibilityWhenFocusOnInput();\n }\n\n public ngOnDestroy(): void {\n this.destroy();\n }\n\n /**\n * Manipula a visibilidade do tooltip quando houver uma referência de input.\n */\n private updateTooltipVisibilityWhenFocusOnInput() {\n if (this.focusedInputRef) {\n const inputFocus = this.focusedInputRef;\n const icon = this.getIconFromFocusedInput();\n this.renderer.listen(inputFocus, 'focus', () => {\n if (icon) {\n this._createTooltip(false, false);\n this.tooltipCreatedByFocus = true;\n }\n });\n this.renderer.listen(inputFocus, 'blur', () => {\n if (icon) {\n this.removeTooltip(icon);\n this.destroy();\n this.tooltipCreatedByFocus = false;\n }\n });\n }\n }\n\n /**\n * Obtém o elemento do ícone associado ao label do input em focus.\n * @returns O ícone do input em focus.\n */\n private getIconFromFocusedInput(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n /**\n * Remove o tooltip associado ao ícone do input em focus.\n * @param icon O ícone do input em focus.\n */\n private removeTooltip(icon: HTMLElement): void {\n const tooltip = icon.querySelector('.tooltip') as HTMLElement;\n if (tooltip) {\n tooltip.remove();\n }\n }\n\n // whenever the component with the tooltip is clicked I destroy the tooltip.\n // whenever a key is pressed on the component with the tooltip I destroy the tooltip.\n @HostListener('click')\n @HostListener('keydown')\n public onClick(): void {\n if (\n this.tooltipEvent === 'hover' &&\n !navigator.userAgent.match(/Android/i) &&\n !navigator.userAgent.match(/iPhone/i)\n ) {\n this.destroy();\n }\n }\n\n @HostListener('focus')\n public onFocus(): void {\n if (this.tooltipEvent === 'focus') {\n this._createTooltip(true, true);\n }\n }\n\n @HostListener('blur')\n public onBlur(): void {\n if (this.tooltipEvent === 'focus') {\n this.destroy();\n }\n }\n\n @HostListener('mouseenter')\n public onMouseEnter(): void {\n if (this.tooltipEvent === 'hover' || this.focusedInputRef) {\n this.debounceCreateTooltipFunction();\n }\n }\n\n @HostListener('mouseleave')\n @HostListener('wheel')\n public onMouseLeave(): void {\n if ((this.tooltipEvent === 'hover' || this.focusedInputRef) && !this.tooltipCreatedByFocus) {\n this.destroy();\n }\n }\n\n @HostListener('touchstart')\n public onTouchStart(): void {\n if (this.tooltipEvent === 'hover') {\n window.clearTimeout(this.touchTimeout);\n const _delay = this.mobileBehavior === 'pressing' ? this.showDelay : 0;\n this.touchTimeout = window.setTimeout(() => {\n this._createTooltip(true, true);\n }, _delay);\n }\n }\n\n @HostListener('touchend')\n public onTouchEnd(): void {\n if (this.tooltipEvent === 'hover') {\n if (this.mobileBehavior === 'pressing') {\n window.clearTimeout(this.touchTimeout);\n this.destroy();\n }\n }\n }\n\n private validatePosition() {\n const containsPosition = ['top', 'right', 'bottom', 'left'].includes(this.tooltipPosition);\n\n if (!containsPosition) {\n this.tooltipPosition = 'top';\n throw new Error(`Tooltip ${this.tooltipPosition} position is unexpected`);\n }\n }\n\n private getDomElement(): HTMLElement {\n this.componentRef = this.viewContainerRef.createComponent(TooltipComponent);\n return this.componentRef.location.nativeElement;\n }\n\n private _createTooltip(useShowDelay = false, autoDestroy = true) {\n const hasText = (this.tooltip || '').length > 0;\n const hasComponentRef = this.componentRef !== null;\n if (!hasText || hasComponentRef) {\n return;\n }\n const blockIfIsNotTruncatedContent = this.checkTruncatedText() ? !this.contentIsTruncated : false;\n if (blockIfIsNotTruncatedContent) {\n return;\n }\n const domElement = this.getDomElement();\n document.body.appendChild(domElement);\n this.tooltipDivElement = domElement.querySelector('.tooltip');\n this.setTooltipComponentProperties();\n const _showDelay = useShowDelay ? this.showDelay : 0;\n setTimeout(() => {\n this.showTooltip();\n }, _showDelay);\n\n this.renderer.listen(window, 'scroll', () => {\n this.setTooltipPositionProperty();\n });\n\n if (autoDestroy && this.displayTime) {\n setTimeout(() => {\n this.destroy();\n }, this.displayTime);\n }\n }\n\n private showTooltip() {\n if (this.componentRef) {\n this.componentRef.instance.visible = this.visible;\n\n this.setTooltipPositionProperty();\n }\n }\n\n private setTooltipPositionProperty() {\n if (!this.componentRef) {\n return;\n }\n const anchorSize = 5;\n const { left, right } = this.elementRef.nativeElement.getBoundingClientRect();\n\n const tooltipElementPosition = getElementPositionInfo(this.tooltipDivElement!);\n const elementLeftover = getElementLeftoverContentAvailable(this.elementRef.nativeElement);\n const elementTriggerPosition = getElementPositionInfo(this.elementRef.nativeElement);\n const horizontalPositions: TooltipPositions[] = ['left', 'right'];\n const isPositionHorizontal = horizontalPositions.includes(this.tooltipPosition);\n const distanceToBorders = isPositionHorizontal\n ? tooltipElementPosition.elementWidth\n : tooltipElementPosition.elementHorizontalCenter;\n const canSetAtTop = elementLeftover.freeDistanceToTop > tooltipElementPosition.elementHeight;\n const canSetAtLeft = elementLeftover.freeDistanceToLeft > distanceToBorders;\n const canSetAtRight = elementLeftover.freeDistanceToRight > distanceToBorders;\n const canSetAtBottom = elementLeftover.freeDistanceToBottom > tooltipElementPosition.elementHeight;\n const topVertical = elementTriggerPosition.top + elementTriggerPosition.elementVerticalCenter;\n const checkTopPosition = () => {\n return canSetAtTop && canSetAtLeft && canSetAtRight;\n };\n const checkBottomPosition = () => {\n return canSetAtBottom && canSetAtLeft && canSetAtRight;\n };\n const checkLeftPosition = () => {\n return canSetAtLeft && canSetAtTop && canSetAtBottom;\n };\n\n const checkRightPosition = () => {\n return canSetAtRight && canSetAtTop && canSetAtBottom;\n };\n\n const setTopPosition = (): { left: number; top: number } => {\n return {\n left: left + (right - left) / 2,\n top: elementTriggerPosition.top - anchorSize,\n };\n };\n\n const setBottomPosition = (): { left: number; top: number } => {\n return {\n left: left + (right - left) / 2,\n top: elementTriggerPosition.top + elementTriggerPosition.elementHeight,\n };\n };\n\n const setLeftPosition = (): { left: number; top: number } => {\n return {\n left: left,\n top: topVertical,\n };\n };\n\n const setRightPosition = (): { left: number; top: number } => {\n return {\n left: right,\n top: topVertical,\n };\n };\n\n type Position = {\n pos: TooltipPositions;\n check: () => boolean;\n set: () => { left: number; top: number };\n };\n\n const positions: Position[] = [\n {\n pos: 'top',\n check: checkTopPosition,\n set: setTopPosition,\n },\n {\n pos: 'bottom',\n check: checkBottomPosition,\n set: setBottomPosition,\n },\n {\n pos: 'left',\n check: checkLeftPosition,\n set: setLeftPosition,\n },\n {\n pos: 'right',\n check: checkRightPosition,\n set: setRightPosition,\n },\n ];\n\n const positionDefined = positions.find((position) => position.pos === this.tooltipPosition);\n let validPosition: Position | undefined = positionDefined;\n const canUseDefinedPosition = positionDefined?.check();\n if (canUseDefinedPosition) {\n validPosition = positionDefined;\n } else if (!canUseDefinedPosition) {\n const validAlternativePosition = positions.find((position) => position.check());\n if (validAlternativePosition) {\n validPosition = validAlternativePosition;\n }\n }\n const _position = validPosition!.set();\n const positionLeft = _position.left;\n const positionTop = _position.top;\n this.componentRef.instance.left = Math.round(positionLeft);\n this.componentRef.instance.top = Math.round(positionTop);\n this.componentRef.instance.position = validPosition!.pos;\n }\n\n private setTooltipComponentProperties() {\n if (!this.componentRef) return;\n\n this.componentRef.instance.tooltip = this.tooltip as string;\n this.componentRef.instance.escape = this.escape;\n }\n\n private destroy(): void {\n if (!isNullOrUndefined(this.componentRef)) {\n window.clearTimeout(this.showTimeout);\n this.appRef.detachView(this.componentRef.hostView);\n this.componentRef.destroy();\n this.componentRef = null;\n this.tooltipDivElement = null;\n }\n }\n\n private get contentIsTruncated() {\n const element = this.elementRef.nativeElement as HTMLElement;\n const truncatedByVertical = element.scrollHeight > element.clientHeight;\n const truncatedByHorizontal = element.scrollWidth > element.clientWidth;\n return truncatedByHorizontal || truncatedByVertical;\n }\n}\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { TooltipComponent } from './tooltip.component';\nimport { TooltipDirective } from './tooltip.directive';\n\n@NgModule({\n imports: [CommonModule, TooltipDirective],\n declarations: [TooltipComponent],\n exports: [TooltipDirective],\n})\nexport class TooltipModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-tooltip.mjs","sources":["../../projects/angular-components/tooltip/src/lib/tooltip/tooltip.component.ts","../../projects/angular-components/tooltip/src/lib/tooltip/tooltip.component.html","../../projects/angular-components/tooltip/src/lib/tooltip/tooltip.directive.ts","../../projects/angular-components/tooltip/src/lib/tooltip/tooltip.module.ts","../../projects/angular-components/tooltip/src/seniorsistemas-angular-components-tooltip.ts"],"sourcesContent":["import { Component, signal } from '@angular/core';\n\nimport { TooltipPositions } from './models/tooltip-position';\n\n@Component({\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n})\nexport class TooltipComponent {\n public tooltip = '';\n public position: TooltipPositions = 'top';\n public left = 0;\n public top = 0;\n public visible = false;\n public escape = false;\n}\n","<div\n id=\"tooltip\"\n class=\"tooltip\"\n [ngClass]=\"['tooltip--' + position]\"\n [class.tooltip--visible]=\"visible\"\n [ngStyle]=\"{\n left: left + 'px',\n top: top + 'px',\n }\"\n>\n @if (escape) {\n <span class=\"tooltip__content\">\n {{ tooltip }}\n </span>\n } @else {\n <span\n class=\"tooltip__content\"\n [innerHTML]=\"tooltip\"\n >\n </span>\n }\n</div>\n","import {\n ApplicationRef,\n ComponentRef,\n Directive,\n ElementRef,\n HostListener,\n input,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport { DebounceUtils } from '@seniorsistemas/angular-components/common';\nimport {\n getElementLeftoverContentAvailable,\n getElementPositionInfo,\n isNullOrUndefined,\n} from '@seniorsistemas/angular-components/utils';\nimport { MobileBehavior } from './models/mobile-behavior';\nimport { TooltipEvent } from './models/tooltip-event';\nimport { TooltipPositions } from './models/tooltip-position';\nimport { TooltipComponent } from './tooltip.component';\n\n/**\n * @description Diretiva que exibe um tooltip (dica de ferramenta) flutuante ao interagir com o elemento hospedeiro.\n * Posiciona-se automaticamente considerando o espaço disponível na tela.\n * Suporta eventos de hover, click e focus, além de comportamentos customizados para mobile.\n *\n * @example\n * ```html\n * <button sTooltip=\"Clique aqui\" tooltipPosition=\"top\">Ação</button>\n * ```\n *\n * @category Overlay\n */\n@Directive({\n selector: '[sTooltip]',\n standalone: true,\n})\nexport class TooltipDirective implements OnInit, OnDestroy {\n /**\n * @description Texto exibido no tooltip. Quando vazio ou `undefined`, o tooltip não é renderizado.\n */\n @Input('sTooltip')\n public tooltip?: string;\n\n /**\n * @description Posição preferencial do tooltip em relação ao elemento hospedeiro.\n * O tooltip se reposiciona automaticamente se não houver espaço suficiente.\n *\n * @default 'top'\n */\n @Input()\n public tooltipPosition: TooltipPositions = 'top';\n\n /**\n * @description Tempo em milissegundos antes do tooltip aparecer após o evento de ativação.\n *\n * @default 500\n */\n @Input()\n public showDelay = 500;\n\n /**\n * @description Tempo em milissegundos que o tooltip permanece visível após aparecer.\n * Quando não informado, o tooltip permanece até o usuário sair do elemento.\n */\n @Input()\n public displayTime?: number;\n\n /**\n * @description Evento do elemento hospedeiro que dispara a exibição do tooltip.\n * - `'hover'`: exibe ao passar o mouse (padrão).\n * - `'click'`: exibe ao clicar.\n * - `'focus'`: exibe ao focar no elemento.\n *\n * @default 'hover'\n */\n @Input()\n public tooltipEvent: TooltipEvent = 'hover';\n\n /**\n * @description Quando `true`, o conteúdo HTML do tooltip é escapado antes de ser renderizado.\n *\n * @default false\n */\n @Input()\n public escape = false;\n\n /**\n * @description Quando `false`, o tooltip nunca é exibido, mesmo que haja interação do usuário.\n * Útil para desabilitar tooltips dinamicamente.\n *\n * @default true\n */\n @Input()\n public visible = true;\n\n /**\n * @description Comportamento do tooltip em dispositivos móveis (touch).\n * - `'pressing'`: exibe ao pressionar e manter o toque (padrão).\n * - `'none'`: desabilita o tooltip em dispositivos táteis.\n *\n * @default 'pressing'\n */\n @Input()\n public mobileBehavior: MobileBehavior = 'pressing';\n\n /**\n * @description Referência a um input HTML para sincronizar a exibição do tooltip com o foco no campo.\n */\n @Input()\n public focusedInputRef: HTMLInputElement | null = null;\n\n /**\n * @description Quando `true`, o tooltip só é exibido se o texto do elemento estiver truncado (overflow).\n * Útil para cells de tabela ou elementos com `text-overflow: ellipsis`.\n *\n * @default false\n */\n checkTruncatedText = input(false);\n\n private componentRef: ComponentRef<TooltipComponent> | null = null;\n private showTimeout?: number;\n private touchTimeout?: number;\n private tooltipDivElement: HTMLElement | null = null;\n private readonly debounceCreateTooltipFunction: () => void;\n private tooltipCreatedByFocus = false;\n\n constructor(\n private readonly elementRef: ElementRef,\n private readonly appRef: ApplicationRef,\n private readonly debounceUtils: DebounceUtils,\n private readonly renderer: Renderer2,\n private readonly viewContainerRef: ViewContainerRef,\n ) {\n this.debounceCreateTooltipFunction = this.debounceUtils.debounceLeading(() => this._createTooltip(true, true));\n }\n\n public ngOnInit(): void {\n this.validatePosition();\n this.updateTooltipVisibilityWhenFocusOnInput();\n }\n\n public ngOnDestroy(): void {\n this.destroy();\n }\n\n /**\n * Manipula a visibilidade do tooltip quando houver uma referência de input.\n */\n private updateTooltipVisibilityWhenFocusOnInput() {\n if (this.focusedInputRef) {\n const inputFocus = this.focusedInputRef;\n const icon = this.getIconFromFocusedInput();\n this.renderer.listen(inputFocus, 'focus', () => {\n if (icon) {\n this._createTooltip(false, false);\n this.tooltipCreatedByFocus = true;\n }\n });\n this.renderer.listen(inputFocus, 'blur', () => {\n if (icon) {\n this.removeTooltip(icon);\n this.destroy();\n this.tooltipCreatedByFocus = false;\n }\n });\n }\n }\n\n /**\n * Obtém o elemento do ícone associado ao label do input em focus.\n * @returns O ícone do input em focus.\n */\n private getIconFromFocusedInput(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n /**\n * Remove o tooltip associado ao ícone do input em focus.\n * @param icon O ícone do input em focus.\n */\n private removeTooltip(icon: HTMLElement): void {\n const tooltip = icon.querySelector('.tooltip') as HTMLElement;\n if (tooltip) {\n tooltip.remove();\n }\n }\n\n // whenever the component with the tooltip is clicked I destroy the tooltip.\n // whenever a key is pressed on the component with the tooltip I destroy the tooltip.\n @HostListener('click')\n @HostListener('keydown')\n public onClick(): void {\n if (\n this.tooltipEvent === 'hover' &&\n !navigator.userAgent.match(/Android/i) &&\n !navigator.userAgent.match(/iPhone/i)\n ) {\n this.destroy();\n }\n }\n\n @HostListener('focus')\n public onFocus(): void {\n if (this.tooltipEvent === 'focus') {\n this._createTooltip(true, true);\n }\n }\n\n @HostListener('blur')\n public onBlur(): void {\n if (this.tooltipEvent === 'focus') {\n this.destroy();\n }\n }\n\n @HostListener('mouseenter')\n public onMouseEnter(): void {\n if (this.tooltipEvent === 'hover' || this.focusedInputRef) {\n this.debounceCreateTooltipFunction();\n }\n }\n\n @HostListener('mouseleave')\n @HostListener('wheel')\n public onMouseLeave(): void {\n if ((this.tooltipEvent === 'hover' || this.focusedInputRef) && !this.tooltipCreatedByFocus) {\n this.destroy();\n }\n }\n\n @HostListener('touchstart')\n public onTouchStart(): void {\n if (this.tooltipEvent === 'hover') {\n window.clearTimeout(this.touchTimeout);\n const _delay = this.mobileBehavior === 'pressing' ? this.showDelay : 0;\n this.touchTimeout = window.setTimeout(() => {\n this._createTooltip(true, true);\n }, _delay);\n }\n }\n\n @HostListener('touchend')\n public onTouchEnd(): void {\n if (this.tooltipEvent === 'hover') {\n if (this.mobileBehavior === 'pressing') {\n window.clearTimeout(this.touchTimeout);\n this.destroy();\n }\n }\n }\n\n private validatePosition() {\n const containsPosition = ['top', 'right', 'bottom', 'left'].includes(this.tooltipPosition);\n\n if (!containsPosition) {\n this.tooltipPosition = 'top';\n throw new Error(`Tooltip ${this.tooltipPosition} position is unexpected`);\n }\n }\n\n private getDomElement(): HTMLElement {\n this.componentRef = this.viewContainerRef.createComponent(TooltipComponent);\n return this.componentRef.location.nativeElement;\n }\n\n private _createTooltip(useShowDelay = false, autoDestroy = true) {\n const hasText = (this.tooltip || '').length > 0;\n const hasComponentRef = this.componentRef !== null;\n if (!hasText || hasComponentRef) {\n return;\n }\n const blockIfIsNotTruncatedContent = this.checkTruncatedText() ? !this.contentIsTruncated : false;\n if (blockIfIsNotTruncatedContent) {\n return;\n }\n const domElement = this.getDomElement();\n document.body.appendChild(domElement);\n this.tooltipDivElement = domElement.querySelector('.tooltip');\n this.setTooltipComponentProperties();\n const _showDelay = useShowDelay ? this.showDelay : 0;\n setTimeout(() => {\n this.showTooltip();\n }, _showDelay);\n\n this.renderer.listen(window, 'scroll', () => {\n this.setTooltipPositionProperty();\n });\n\n if (autoDestroy && this.displayTime) {\n setTimeout(() => {\n this.destroy();\n }, this.displayTime);\n }\n }\n\n private showTooltip() {\n if (this.componentRef) {\n this.componentRef.instance.visible = this.visible;\n\n this.setTooltipPositionProperty();\n }\n }\n\n private setTooltipPositionProperty() {\n if (!this.componentRef) {\n return;\n }\n const anchorSize = 5;\n const { left, right } = this.elementRef.nativeElement.getBoundingClientRect();\n\n const tooltipElementPosition = getElementPositionInfo(this.tooltipDivElement!);\n const elementLeftover = getElementLeftoverContentAvailable(this.elementRef.nativeElement);\n const elementTriggerPosition = getElementPositionInfo(this.elementRef.nativeElement);\n const horizontalPositions: TooltipPositions[] = ['left', 'right'];\n const isPositionHorizontal = horizontalPositions.includes(this.tooltipPosition);\n const distanceToBorders = isPositionHorizontal\n ? tooltipElementPosition.elementWidth\n : tooltipElementPosition.elementHorizontalCenter;\n const canSetAtTop = elementLeftover.freeDistanceToTop > tooltipElementPosition.elementHeight;\n const canSetAtLeft = elementLeftover.freeDistanceToLeft > distanceToBorders;\n const canSetAtRight = elementLeftover.freeDistanceToRight > distanceToBorders;\n const canSetAtBottom = elementLeftover.freeDistanceToBottom > tooltipElementPosition.elementHeight;\n const topVertical = elementTriggerPosition.top + elementTriggerPosition.elementVerticalCenter;\n const checkTopPosition = () => {\n return canSetAtTop && canSetAtLeft && canSetAtRight;\n };\n const checkBottomPosition = () => {\n return canSetAtBottom && canSetAtLeft && canSetAtRight;\n };\n const checkLeftPosition = () => {\n return canSetAtLeft && canSetAtTop && canSetAtBottom;\n };\n\n const checkRightPosition = () => {\n return canSetAtRight && canSetAtTop && canSetAtBottom;\n };\n\n const setTopPosition = (): { left: number; top: number } => {\n return {\n left: left + (right - left) / 2,\n top: elementTriggerPosition.top - anchorSize,\n };\n };\n\n const setBottomPosition = (): { left: number; top: number } => {\n return {\n left: left + (right - left) / 2,\n top: elementTriggerPosition.top + elementTriggerPosition.elementHeight,\n };\n };\n\n const setLeftPosition = (): { left: number; top: number } => {\n return {\n left: left,\n top: topVertical,\n };\n };\n\n const setRightPosition = (): { left: number; top: number } => {\n return {\n left: right,\n top: topVertical,\n };\n };\n\n type Position = {\n pos: TooltipPositions;\n check: () => boolean;\n set: () => { left: number; top: number };\n };\n\n const positions: Position[] = [\n {\n pos: 'top',\n check: checkTopPosition,\n set: setTopPosition,\n },\n {\n pos: 'bottom',\n check: checkBottomPosition,\n set: setBottomPosition,\n },\n {\n pos: 'left',\n check: checkLeftPosition,\n set: setLeftPosition,\n },\n {\n pos: 'right',\n check: checkRightPosition,\n set: setRightPosition,\n },\n ];\n\n const positionDefined = positions.find((position) => position.pos === this.tooltipPosition);\n let validPosition: Position | undefined = positionDefined;\n const canUseDefinedPosition = positionDefined?.check();\n if (canUseDefinedPosition) {\n validPosition = positionDefined;\n } else if (!canUseDefinedPosition) {\n const validAlternativePosition = positions.find((position) => position.check());\n if (validAlternativePosition) {\n validPosition = validAlternativePosition;\n }\n }\n const _position = validPosition!.set();\n const positionLeft = _position.left;\n const positionTop = _position.top;\n this.componentRef.instance.left = Math.round(positionLeft);\n this.componentRef.instance.top = Math.round(positionTop);\n this.componentRef.instance.position = validPosition!.pos;\n }\n\n private setTooltipComponentProperties() {\n if (!this.componentRef) return;\n\n this.componentRef.instance.tooltip = this.tooltip as string;\n this.componentRef.instance.escape = this.escape;\n }\n\n private destroy(): void {\n if (!isNullOrUndefined(this.componentRef)) {\n window.clearTimeout(this.showTimeout);\n this.appRef.detachView(this.componentRef.hostView);\n this.componentRef.destroy();\n this.componentRef = null;\n this.tooltipDivElement = null;\n }\n }\n\n private get contentIsTruncated() {\n const element = this.elementRef.nativeElement as HTMLElement;\n const truncatedByVertical = element.scrollHeight > element.clientHeight;\n const truncatedByHorizontal = element.scrollWidth > element.clientWidth;\n return truncatedByHorizontal || truncatedByVertical;\n }\n}\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { TooltipComponent } from './tooltip.component';\nimport { TooltipDirective } from './tooltip.directive';\n\n@NgModule({\n imports: [CommonModule, TooltipDirective],\n declarations: [TooltipComponent],\n exports: [TooltipDirective],\n})\nexport class TooltipModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -6,15 +6,32 @@ import { CommonModule } from '@angular/common';
|
|
|
6
6
|
import { ThumbnailModule } from '@seniorsistemas/angular-components/thumbnail';
|
|
7
7
|
import { TooltipModule } from '@seniorsistemas/angular-components/tooltip';
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* @description Componente de barra superior (topbar) com título e suporte a
|
|
11
|
+
* conteúdo transclusão. Também responde ao seletor legado `s-product-header`.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```html
|
|
15
|
+
* <s-topbar header="Minha Aplicação">
|
|
16
|
+
* <!-- ações e menus -->
|
|
17
|
+
* </s-topbar>
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @category Structure
|
|
21
|
+
*/
|
|
9
22
|
class TopbarComponent {
|
|
10
23
|
static nextIdSeed = 0;
|
|
11
24
|
static _nextId = TopbarComponent.nextIdSeed;
|
|
12
25
|
static getNextId() {
|
|
13
26
|
return this._nextId++;
|
|
14
27
|
}
|
|
28
|
+
/** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */
|
|
15
29
|
id = `s-topbar-${TopbarComponent.getNextId()}`;
|
|
30
|
+
/** @description Título exibido na barra superior. Campo obrigatório. */
|
|
16
31
|
header;
|
|
32
|
+
/** @description Z-index base aplicado ao componente. @default 0 */
|
|
17
33
|
baseZIndex = 0;
|
|
34
|
+
/** @description Quando `true`, aplica borda inferior; quando `false`, aplica borda superior. @default true */
|
|
18
35
|
isHeaderFrame = true;
|
|
19
36
|
container = null;
|
|
20
37
|
ngAfterViewInit() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-topbar.mjs","sources":["../../projects/angular-components/topbar/src/lib/topbar/topbar.component.ts","../../projects/angular-components/topbar/src/lib/topbar/topbar.component.html","../../projects/angular-components/topbar/src/lib/topbar/topbar.module.ts","../../projects/angular-components/topbar/src/seniorsistemas-angular-components-topbar.ts"],"sourcesContent":["import { AfterViewInit, Component, ElementRef, Input, ViewChild } from '@angular/core';\n\nimport { DEPRECATED_CONFIG } from '@seniorsistemas/angular-components/common/deprecated-selector';\nimport { DeprecatedSelectorDirective } from '@seniorsistemas/angular-components/common/deprecated-selector';\n\n@Component({\n selector: 's-topbar, s-product-header',\n templateUrl: './topbar.component.html',\n styleUrls: ['./topbar.component.scss'],\n hostDirectives: [DeprecatedSelectorDirective],\n providers: [\n {\n provide: DEPRECATED_CONFIG,\n useValue: {\n oldSelector: 's-product-header',\n newSelector: 's-topbar',\n removalVersion: '20.0.0',\n },\n },\n ]
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-topbar.mjs","sources":["../../projects/angular-components/topbar/src/lib/topbar/topbar.component.ts","../../projects/angular-components/topbar/src/lib/topbar/topbar.component.html","../../projects/angular-components/topbar/src/lib/topbar/topbar.module.ts","../../projects/angular-components/topbar/src/seniorsistemas-angular-components-topbar.ts"],"sourcesContent":["import { AfterViewInit, Component, ElementRef, Input, ViewChild } from '@angular/core';\n\nimport { DEPRECATED_CONFIG } from '@seniorsistemas/angular-components/common/deprecated-selector';\nimport { DeprecatedSelectorDirective } from '@seniorsistemas/angular-components/common/deprecated-selector';\n\n/**\n * @description Componente de barra superior (topbar) com título e suporte a\n * conteúdo transclusão. Também responde ao seletor legado `s-product-header`.\n *\n * @example\n * ```html\n * <s-topbar header=\"Minha Aplicação\">\n * <!-- ações e menus -->\n * </s-topbar>\n * ```\n *\n * @category Structure\n */\n@Component({\n selector: 's-topbar, s-product-header',\n templateUrl: './topbar.component.html',\n styleUrls: ['./topbar.component.scss'],\n hostDirectives: [DeprecatedSelectorDirective],\n providers: [\n {\n provide: DEPRECATED_CONFIG,\n useValue: {\n oldSelector: 's-product-header',\n newSelector: 's-topbar',\n removalVersion: '20.0.0',\n },\n },\n ],\n})\nexport class TopbarComponent implements AfterViewInit {\n public static readonly nextIdSeed = 0;\n private static _nextId = TopbarComponent.nextIdSeed;\n\n public static getNextId(): number {\n return this._nextId++;\n }\n\n /** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */\n @Input()\n public id = `s-topbar-${TopbarComponent.getNextId()}`;\n\n /** @description Título exibido na barra superior. Campo obrigatório. */\n @Input({ required: true })\n public header!: string;\n\n /** @description Z-index base aplicado ao componente. @default 0 */\n @Input()\n public baseZIndex = 0;\n\n /** @description Quando `true`, aplica borda inferior; quando `false`, aplica borda superior. @default true */\n @Input()\n public isHeaderFrame = true;\n\n @ViewChild('headerContainer', { static: false })\n public container: ElementRef | null = null;\n\n public ngAfterViewInit(): void {\n if (!this.container) {\n return;\n }\n\n if (this.isHeaderFrame) {\n this.container.nativeElement.style.borderBottom = '1px solid #ddd';\n } else {\n this.container.nativeElement.style.borderTop = '1px solid #ddd';\n }\n }\n}\n\n","<div [id]=\"id\" class=\"box\">\n <div\n #headerContainer\n class=\"sds-container\"\n [class]=\"isHeaderFrame ? 'header-frame' : 'primary-header'\"\n >\n <h1 [class]=\"isHeaderFrame ? 'title' : 'primary-title'\">{{ header }}</h1>\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { ThumbnailModule } from \"@seniorsistemas/angular-components/thumbnail\";\nimport { TopbarComponent } from \"./topbar.component\";\nimport { TooltipModule } from \"@seniorsistemas/angular-components/tooltip\";\n\n@NgModule({\n imports: [CommonModule, TooltipModule, ThumbnailModule],\n declarations: [TopbarComponent],\n exports: [TopbarComponent, ThumbnailModule],\n})\nexport class TopbarModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -161,9 +161,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
161
161
|
args: ['input', { read: ElementRef }]
|
|
162
162
|
}] } });
|
|
163
163
|
|
|
164
|
+
/**
|
|
165
|
+
* @description Componente de árvore hierárquica com suporte a seleção única ou múltipla,
|
|
166
|
+
* checkboxes, noós expansíveis e edição inline de rótulos. Gerencia o estado interno
|
|
167
|
+
* dos nós e emite eventos na seleção, expansão, colapso e edição.
|
|
168
|
+
*
|
|
169
|
+
* @example
|
|
170
|
+
* ```html
|
|
171
|
+
* <s-tree
|
|
172
|
+
* [treeData]="nos"
|
|
173
|
+
* selectionMode="multiple"
|
|
174
|
+
* [showCheckbox]="true"
|
|
175
|
+
* (selectedChange)="onSelecaoMudou($event)" />
|
|
176
|
+
* ```
|
|
177
|
+
*
|
|
178
|
+
* @category Data
|
|
179
|
+
*/
|
|
164
180
|
class TreeComponent {
|
|
181
|
+
/** @description Lista de nós raíz da árvore. @default [] */
|
|
165
182
|
treeData = [];
|
|
166
183
|
_selected = [];
|
|
184
|
+
/** @description Nó(s) selecionado(s). Suporta array ou item único dependendo de `selectionMode`. @default [] */
|
|
167
185
|
get selected() {
|
|
168
186
|
return this._selected;
|
|
169
187
|
}
|
|
@@ -176,14 +194,23 @@ class TreeComponent {
|
|
|
176
194
|
}
|
|
177
195
|
this._selected = value;
|
|
178
196
|
}
|
|
197
|
+
/** @description Exibe indicador de carregamento nos nós. @default false */
|
|
179
198
|
loading = false;
|
|
199
|
+
/** @description Modo de seleção: `'single'` ou `'multiple'`. @default 'single' */
|
|
180
200
|
selectionMode = 'single';
|
|
201
|
+
/** @description Exibe checkboxes nos nós para seleção visual. @default false */
|
|
181
202
|
showCheckbox = false;
|
|
203
|
+
/** @description Expão todos os nós inicialmente. @default false */
|
|
182
204
|
allExpanded = false;
|
|
205
|
+
/** @description Emitido quando a seleção muda, com o(s) nó(s) selecionado(s). */
|
|
183
206
|
selectedChange = new EventEmitter();
|
|
207
|
+
/** @description Emitido quando o usuário clica em um nó da árvore. */
|
|
184
208
|
treeNodeItemClicked = new EventEmitter();
|
|
209
|
+
/** @description Emitido após uma edição inline de rótulo de nó. */
|
|
185
210
|
treeNodeEdit = new EventEmitter();
|
|
211
|
+
/** @description Emitido quando um nó é expandido pelo usuário. */
|
|
186
212
|
nodeExpanded = new EventEmitter();
|
|
213
|
+
/** @description Emitido quando um nó é colapsado pelo usuário. */
|
|
187
214
|
nodeCollapsed = new EventEmitter();
|
|
188
215
|
ngOnChanges(changes) {
|
|
189
216
|
this.onChanges(changes);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-tree.mjs","sources":["../../projects/angular-components/tree/src/lib/tree/components/tree-node-item/tree-node-item.component.ts","../../projects/angular-components/tree/src/lib/tree/components/tree-node-item/tree-node-item.component.html","../../projects/angular-components/tree/src/lib/tree/tree.component.ts","../../projects/angular-components/tree/src/lib/tree/tree.component.html","../../projects/angular-components/tree/src/lib/tree/tree.module.ts","../../projects/angular-components/tree/src/seniorsistemas-angular-components-tree.ts"],"sourcesContent":["import { animate, query, stagger, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewChild, input } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { InternalTreeNodeItem, TreeNodeEdit } from '../../Models/tree.models';\n\n@Component({\n selector: 's-tree-node-item',\n templateUrl: './tree-node-item.component.html',\n styleUrls: ['./tree-node-item.component.scss'],\n animations: [\n trigger('fadeExpand', [\n transition(':enter', [\n style({ height: '0px', opacity: 0, overflow: 'hidden' }),\n animate('200ms ease-out', style({ height: '*', opacity: 1 })),\n ]),\n transition(':leave', [animate('150ms ease-in', style({ height: '0px', opacity: 0 }))]),\n ]),\n trigger('childrenAnimation', [\n transition(':enter', [\n query(\n ':enter',\n [\n style({ opacity: 0, transform: 'translateY(-10px)' }),\n stagger(60, [animate('200ms ease-out', style({ opacity: 1, transform: 'translateY(0)' }))]),\n ],\n { optional: true },\n ),\n ]),\n ]),\n ],\n})\nexport class TreeNodeItemComponent {\n readonly ariaLevel = input(0);\n readonly showCheckbox = input(false);\n @Input() treeNodeItem!: InternalTreeNodeItem;\n @Output() treeNodeItemClicked = new EventEmitter<{ item: InternalTreeNodeItem; event: Event }>();\n @Output() treeNodeEdit = new EventEmitter<TreeNodeEdit>();\n @Output() nodeExpanded = new EventEmitter<InternalTreeNodeItem>();\n @Output() nodeCollapsed = new EventEmitter<InternalTreeNodeItem>();\n\n @ViewChild('input', { read: ElementRef }) input!: ElementRef<HTMLInputElement>;\n\n constructor(\n private readonly cdr: ChangeDetectorRef,\n private readonly translateService: TranslateService,\n ) {}\n\n get hasChildren(): boolean {\n return !!(this.treeNodeItem?.children && this.treeNodeItem.children.length > 0);\n }\n\n get editable() {\n return this.treeNodeItem?.editable || false;\n }\n\n get ariaLabel() {\n return `${this.translateService.instant('platform.angular_components.select')} ${this.treeNodeItem.label}`;\n }\n\n expandNode() {\n if (this.hasChildren && !this.treeNodeItem.isExpanded) {\n this.toggleExpanded(this.treeNodeItem);\n }\n }\n\n collapseNode() {\n if (this.hasChildren && this.treeNodeItem.isExpanded) {\n this.toggleExpanded(this.treeNodeItem);\n }\n }\n\n onCheckboxEnter(node: InternalTreeNodeItem) {\n const newState = node.checked === true ? false : true;\n node.checked = newState;\n this.treeNodeItemClicked.emit({ item: node, event: new KeyboardEvent('keydown', { key: 'Enter' }) });\n }\n\n handleTreeNodeItemClick(event: Event, treeNodeItem?: InternalTreeNodeItem) {\n const item = treeNodeItem || this.treeNodeItem;\n this.treeNodeItemClicked.emit({ item, event });\n }\n\n handleTreeNodeItemClicked({ event, item }: { event: Event; item: InternalTreeNodeItem }) {\n if (item.isEditing) {\n return;\n }\n this.handleTreeNodeItemClick(event, item);\n }\n\n toggleExpanded(treeNodeItem: InternalTreeNodeItem) {\n treeNodeItem.isExpanded = !treeNodeItem.isExpanded;\n if (treeNodeItem.isExpanded) {\n this.nodeExpanded.emit(treeNodeItem);\n } else {\n this.nodeCollapsed.emit(treeNodeItem);\n }\n }\n\n toggleEditing($event: Event) {\n $event.stopPropagation();\n this.treeNodeItem.isEditing = !this.treeNodeItem.isEditing;\n this.cdr.detectChanges();\n if (this.treeNodeItem.isEditing) {\n this.treeNodeItem.editNewValue = this.treeNodeItem.label;\n const input = this.input?.nativeElement;\n input?.focus();\n }\n }\n\n cancelEdit($event: Event) {\n $event.stopPropagation();\n this.treeNodeItem.isEditing = false;\n this.treeNodeItem.editNewValue = '';\n this.treeNodeItem.editPreviousValue = '';\n this.cdr.detectChanges();\n }\n\n saveEdit($event: Event) {\n $event.stopPropagation();\n this.treeNodeItem.isEditing = false;\n if (!this.treeNodeItem.editNewValue) {\n return;\n }\n\n this.treeNodeItem.editPreviousValue = this.treeNodeItem.label;\n this.treeNodeItem.label = this.treeNodeItem.editNewValue;\n\n const revertAction = () => {\n this.treeNodeItem.label = this.treeNodeItem.editPreviousValue as string;\n this.treeNodeItem.isEditing = false;\n this.cdr.detectChanges();\n };\n this.treeNodeEdit.emit({\n revertAction,\n item: this.treeNodeItem,\n newValue: this.treeNodeItem.editNewValue,\n previousValue: this.treeNodeItem.editPreviousValue,\n });\n }\n\n treeNodeEditChildEvent(payload: TreeNodeEdit) {\n this.treeNodeEdit.emit(payload);\n }\n}\n","@if (treeNodeItem) {\n <div\n class=\"tree-node-item\"\n role=\"treeitem\"\n [class.tree-node-item-selected]=\"treeNodeItem.checked\"\n [class.selectable]=\"hasChildren\"\n [attr.aria-expanded]=\"hasChildren ? treeNodeItem.isExpanded : null\"\n [attr.aria-selected]=\"treeNodeItem.checked === true\"\n [attr.aria-label]=\"treeNodeItem.label\"\n [attr.aria-level]=\"ariaLevel()\"\n tabindex=\"0\"\n (keydown.enter)=\"handleTreeNodeItemClick($event)\"\n (keydown.arrowRight)=\"expandNode()\"\n (keydown.arrowLeft)=\"collapseNode()\"\n >\n @if (hasChildren || treeNodeItem.leaf === true) {\n <div\n class=\"arrow\"\n (click)=\"toggleExpanded(treeNodeItem)\"\n >\n @if (!treeNodeItem.isExpanded) {\n <i [class]=\"treeNodeItem.collapsedIcon || 'fas fa-chevron-right'\"></i>\n }\n @if (treeNodeItem.isExpanded) {\n <i [class]=\"treeNodeItem.expandedIcon || 'fas fa-chevron-down'\"></i>\n }\n </div>\n }\n\n <div\n class=\"tree-node-item-text\"\n (click)=\"handleTreeNodeItemClick($event)\"\n >\n @if (treeNodeItem.icon || treeNodeItem.isEditing) {\n <span class=\"tree-node-item-text-icon\">\n @if (treeNodeItem.icon && !treeNodeItem.isEditing) {\n <i [class]=\"treeNodeItem.icon\"></i>\n }\n @if (treeNodeItem.isEditing) {\n <i\n class=\"fas fa-edit edit\"\n (click)=\"saveEdit($event)\"\n ></i>\n }\n </span>\n }\n\n @if (showCheckbox() && !treeNodeItem.isEditing) {\n <span class=\"tree-node-item-text-checkbox\">\n <input\n type=\"checkbox\"\n [checked]=\"treeNodeItem.checked === true\"\n [indeterminate]=\"treeNodeItem.checked === null\"\n [attr.aria-checked]=\"treeNodeItem.checked === null ? 'mixed' : treeNodeItem.checked\"\n [attr.aria-label]=\"ariaLabel\"\n role=\"checkbox\"\n tabindex=\"0\"\n (keydown.enter)=\"onCheckboxEnter(treeNodeItem)\"\n />\n </span>\n }\n\n <span class=\"tree-node-item-text-label\">\n @if (treeNodeItem.isEditing) {\n <input\n #input\n type=\"text\"\n pInputText\n class=\"tree-node-item-text-input\"\n [(ngModel)]=\"treeNodeItem.editNewValue\"\n (keydown.enter)=\"saveEdit($event)\"\n (keydown.escape)=\"cancelEdit($event)\"\n (click)=\"$event.stopPropagation()\"\n aria-label=\"Editar nome do item\"\n aria-live=\"polite\"\n />\n } @else if (!treeNodeItem.isEditing) {\n {{ treeNodeItem.label }}\n }\n </span>\n\n @if (editable) {\n <span class=\"tree-node-item-text-editable\">\n <i\n class=\"fas fa-pencil-alt\"\n (click)=\"toggleEditing($event)\"\n aria-label=\"Editar item\"\n tabindex=\"0\"\n ></i>\n </span>\n }\n </div>\n </div>\n}\n\n@if (hasChildren && treeNodeItem.isExpanded) {\n <div\n @fadeExpand\n class=\"child\"\n role=\"group\"\n @childrenAnimation\n >\n @for (child of treeNodeItem.children; track $index) {\n <s-tree-node-item\n [showCheckbox]=\"showCheckbox()\"\n [treeNodeItem]=\"child\"\n [ariaLevel]=\"ariaLevel() + 1\"\n (treeNodeItemClicked)=\"handleTreeNodeItemClicked($event)\"\n (treeNodeEdit)=\"treeNodeEditChildEvent($event)\"\n (nodeExpanded)=\"nodeExpanded.emit($event)\"\n (nodeCollapsed)=\"nodeCollapsed.emit($event)\"\n class=\"child-item\"\n />\n }\n </div>\n}\n\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\n\nimport { InternalTreeNodeItem, TreeNodeEdit, TreeNodeItem } from './Models/tree.models';\n\n@Component({\n selector: 's-tree',\n templateUrl: './tree.component.html',\n styleUrls: ['./tree.component.scss'],\n})\nexport class TreeComponent implements OnChanges {\n @Input()\n public treeData: TreeNodeItem[] = [];\n\n private _selected: TreeNodeItem[] = [];\n @Input()\n public get selected(): TreeNodeItem[] {\n return this._selected;\n }\n public set selected(value: TreeNodeItem[] | TreeNodeItem | undefined) {\n if (!value) {\n value = [];\n }\n if (!Array.isArray(value)) {\n value = [value];\n }\n this._selected = value;\n }\n\n @Input()\n public loading = false;\n\n @Input()\n public selectionMode: 'single' | 'multiple' = 'single';\n\n @Input()\n public showCheckbox = false;\n\n @Input()\n public allExpanded = false;\n\n @Output()\n public selectedChange: EventEmitter<TreeNodeItem[] | TreeNodeItem> = new EventEmitter();\n\n @Output()\n public treeNodeItemClicked: EventEmitter<TreeNodeItem> = new EventEmitter();\n\n @Output()\n public treeNodeEdit: EventEmitter<TreeNodeEdit> = new EventEmitter();\n\n @Output()\n public nodeExpanded: EventEmitter<TreeNodeItem> = new EventEmitter();\n\n @Output()\n public nodeCollapsed: EventEmitter<TreeNodeItem> = new EventEmitter();\n\n public ngOnChanges(changes: SimpleChanges): void {\n this.onChanges(changes);\n }\n\n public onTreeNodeItemClicked({ item }: { item: InternalTreeNodeItem }) {\n this.treeNodeItemClicked.emit(parseInternalTreeNodeItem(item));\n this.toggleChecked(item);\n }\n\n public onTreeNodeEdit(payload: TreeNodeEdit) {\n const { revertAction, item, newValue, previousValue } = payload;\n this.treeNodeEdit.emit({\n revertAction,\n item: parseInternalTreeNodeItem(item),\n newValue,\n previousValue,\n });\n }\n\n public onNodeExpanded(item: InternalTreeNodeItem) {\n this.nodeExpanded.emit(parseInternalTreeNodeItem(item));\n }\n\n public onNodeCollapsed(item: InternalTreeNodeItem) {\n this.nodeCollapsed.emit(parseInternalTreeNodeItem(item));\n }\n\n private toggleChecked(treeNodeItem: TreeNodeItem) {\n const elementCheckState = !treeNodeItem.checked;\n if (!this.multiple) {\n flattenTree(this.treeData).forEach((x) => (x.checked = false));\n this.selected = [treeNodeItem];\n }\n treeNodeItem.checked = elementCheckState;\n if (this.multiple) {\n this.checkTreeDataChildren(treeNodeItem);\n }\n this.setSelected();\n }\n\n private checkTreeDataChildren(selectedTreeNode: TreeNodeItem) {\n const parentChecked = selectedTreeNode.checked;\n if (selectedTreeNode.children) {\n selectedTreeNode.children.forEach((item) => {\n const childrens = flattenTree(item.children || []);\n item.checked = parentChecked;\n childrens.forEach((child) => (child.checked = parentChecked));\n });\n }\n\n const getNodeChildrenSummary = (node: TreeNodeItem) => {\n const children = node.children ?? [];\n const allChildrenChecked = children.every((y) => y.checked === true);\n const someChildrenChecked = children.some((y) => y.checked === true || y.checked === null);\n const allChildrenUnchecked = children.every((y) => y.checked === false || y.checked === undefined);\n return { allChildrenChecked, someChildrenChecked, allChildrenUnchecked };\n };\n const updateCheckedStateRecursively = (node: TreeNodeItem): void => {\n if (!node.children?.length) return;\n\n node.children.forEach(updateCheckedStateRecursively);\n\n const { allChildrenChecked, someChildrenChecked, allChildrenUnchecked } = getNodeChildrenSummary(node);\n if (allChildrenChecked) {\n node.checked = true;\n } else if (someChildrenChecked) {\n node.checked = null;\n } else if (allChildrenUnchecked) {\n node.checked = false;\n }\n };\n this.treeData.forEach(updateCheckedStateRecursively);\n }\n\n private setSelected() {\n const selected = this.selectedElements;\n this.selected = [...selected];\n this.selectedChange.emit(selected);\n }\n\n private onChanges(changes: SimpleChanges) {\n const allExpandedChanges = changes['allExpanded'];\n const _checkIsFirstChangeWithValue = (value: Extract<keyof TreeComponent, 'selected' | 'treeData'>) => {\n if (!changes[value]) {\n return;\n }\n return (\n (!changes[value].previousValue || changes[value].previousValue.length === 0) &&\n changes[value].currentValue?.length > 0\n );\n };\n\n if (_checkIsFirstChangeWithValue('selected')) {\n this.syncSelectedChanges();\n }\n\n if (_checkIsFirstChangeWithValue('treeData')) {\n const isAllExpanded = this.allExpanded;\n if (isAllExpanded) {\n this.expandAll();\n }\n }\n\n if (allExpandedChanges) {\n if (this.allExpanded) {\n this.expandAll();\n } else {\n this.collapseAll();\n }\n }\n }\n\n private syncSelectedChanges() {\n const treeFlatten = flattenTree(this.treeData);\n this.selected.forEach((selectedItem) => {\n const item = treeFlatten.find((item) => item.id === selectedItem.id);\n if (item) {\n item.checked = true;\n }\n if (item && item.children && this.multiple) {\n item.children.forEach((child) => {\n child.checked = true;\n const existChildInSelectedList = this.selected.some((item) => item.id === child.id);\n if (!existChildInSelectedList) {\n this.selected.push(child);\n }\n });\n }\n });\n const selectedElements = this.selectedElements;\n const selectedElementsNotInSelectedList = selectedElements.filter(\n (x) => !this.selected.some((y) => y.id === x.id),\n );\n selectedElementsNotInSelectedList.forEach((item) => {\n this.checkTreeDataChildren(item);\n });\n this.setSelected();\n }\n\n private collapseAll() {\n const flatten = flattenTree(this.treeData);\n flatten.forEach((item) => {\n item.isExpanded = false;\n });\n }\n\n private expandAll() {\n const flatten = flattenTree(this.treeData);\n flatten.forEach((item) => {\n item.isExpanded = true;\n });\n }\n\n private get selectedElements() {\n return flattenTree(this.treeData)\n .filter((x) => x.checked)\n .filter((x) => x.leaf !== true && !x.children?.length);\n }\n\n private get multiple() {\n return this.selectionMode === 'multiple';\n }\n}\n\nconst flattenTree = <T = any>(tree: TreeNodeItem<T>[]): TreeNodeItem<T>[] => {\n const result: TreeNodeItem<T>[] = [];\n\n function traverse(nodes: TreeNodeItem<T>[]) {\n for (const node of nodes) {\n result.push(node);\n if (node.children && node.children.length) {\n traverse(node.children);\n }\n }\n }\n\n traverse(tree);\n return result;\n};\n\nconst parseInternalTreeNodeItem = <T = any>(internalTreeNodeItem: InternalTreeNodeItem<T>): TreeNodeItem<T> => {\n const { id, label, icon, checked, isExpanded, payload, editable, children } = internalTreeNodeItem;\n const object = {\n id,\n label,\n icon,\n checked,\n isExpanded,\n payload,\n editable,\n _children: children?.map(parseInternalTreeNodeItem),\n get children() {\n return this._children;\n },\n set children(value) {\n this._children = value;\n internalTreeNodeItem.children = value;\n },\n };\n Object.defineProperty(object, '_children', {\n enumerable: false,\n });\n return object as TreeNodeItem<T>;\n};\n","<div class=\"tree\" *sLoadingState=\"loading\">\n @for(item of treeData; track $index) {\n <s-tree-node-item\n [showCheckbox]=\"showCheckbox\"\n [treeNodeItem]=\"item\"\n (nodeExpanded)=\"onNodeExpanded($event)\"\n (nodeCollapsed)=\"onNodeCollapsed($event)\"\n (treeNodeEdit)=\"onTreeNodeEdit($event)\"\n (treeNodeItemClicked)=\"onTreeNodeItemClicked($event)\">\n </s-tree-node-item>\n\n }\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { TreeComponent } from './tree.component';\nimport { TreeNodeItemComponent } from './components/tree-node-item/tree-node-item.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { LoadingStateModule } from '@seniorsistemas/angular-components/loading-state';\nimport { FormsModule } from '@angular/forms';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@NgModule({\n declarations: [TreeComponent, TreeNodeItemComponent],\n imports: [FormsModule, InputTextModule, LoadingStateModule, TranslateModule],\n exports: [TreeComponent],\n})\nexport class TreeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.TreeNodeItemComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-tree.mjs","sources":["../../projects/angular-components/tree/src/lib/tree/components/tree-node-item/tree-node-item.component.ts","../../projects/angular-components/tree/src/lib/tree/components/tree-node-item/tree-node-item.component.html","../../projects/angular-components/tree/src/lib/tree/tree.component.ts","../../projects/angular-components/tree/src/lib/tree/tree.component.html","../../projects/angular-components/tree/src/lib/tree/tree.module.ts","../../projects/angular-components/tree/src/seniorsistemas-angular-components-tree.ts"],"sourcesContent":["import { animate, query, stagger, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewChild, input } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { InternalTreeNodeItem, TreeNodeEdit } from '../../Models/tree.models';\n\n@Component({\n selector: 's-tree-node-item',\n templateUrl: './tree-node-item.component.html',\n styleUrls: ['./tree-node-item.component.scss'],\n animations: [\n trigger('fadeExpand', [\n transition(':enter', [\n style({ height: '0px', opacity: 0, overflow: 'hidden' }),\n animate('200ms ease-out', style({ height: '*', opacity: 1 })),\n ]),\n transition(':leave', [animate('150ms ease-in', style({ height: '0px', opacity: 0 }))]),\n ]),\n trigger('childrenAnimation', [\n transition(':enter', [\n query(\n ':enter',\n [\n style({ opacity: 0, transform: 'translateY(-10px)' }),\n stagger(60, [animate('200ms ease-out', style({ opacity: 1, transform: 'translateY(0)' }))]),\n ],\n { optional: true },\n ),\n ]),\n ]),\n ],\n})\nexport class TreeNodeItemComponent {\n readonly ariaLevel = input(0);\n readonly showCheckbox = input(false);\n @Input() treeNodeItem!: InternalTreeNodeItem;\n @Output() treeNodeItemClicked = new EventEmitter<{ item: InternalTreeNodeItem; event: Event }>();\n @Output() treeNodeEdit = new EventEmitter<TreeNodeEdit>();\n @Output() nodeExpanded = new EventEmitter<InternalTreeNodeItem>();\n @Output() nodeCollapsed = new EventEmitter<InternalTreeNodeItem>();\n\n @ViewChild('input', { read: ElementRef }) input!: ElementRef<HTMLInputElement>;\n\n constructor(\n private readonly cdr: ChangeDetectorRef,\n private readonly translateService: TranslateService,\n ) {}\n\n get hasChildren(): boolean {\n return !!(this.treeNodeItem?.children && this.treeNodeItem.children.length > 0);\n }\n\n get editable() {\n return this.treeNodeItem?.editable || false;\n }\n\n get ariaLabel() {\n return `${this.translateService.instant('platform.angular_components.select')} ${this.treeNodeItem.label}`;\n }\n\n expandNode() {\n if (this.hasChildren && !this.treeNodeItem.isExpanded) {\n this.toggleExpanded(this.treeNodeItem);\n }\n }\n\n collapseNode() {\n if (this.hasChildren && this.treeNodeItem.isExpanded) {\n this.toggleExpanded(this.treeNodeItem);\n }\n }\n\n onCheckboxEnter(node: InternalTreeNodeItem) {\n const newState = node.checked === true ? false : true;\n node.checked = newState;\n this.treeNodeItemClicked.emit({ item: node, event: new KeyboardEvent('keydown', { key: 'Enter' }) });\n }\n\n handleTreeNodeItemClick(event: Event, treeNodeItem?: InternalTreeNodeItem) {\n const item = treeNodeItem || this.treeNodeItem;\n this.treeNodeItemClicked.emit({ item, event });\n }\n\n handleTreeNodeItemClicked({ event, item }: { event: Event; item: InternalTreeNodeItem }) {\n if (item.isEditing) {\n return;\n }\n this.handleTreeNodeItemClick(event, item);\n }\n\n toggleExpanded(treeNodeItem: InternalTreeNodeItem) {\n treeNodeItem.isExpanded = !treeNodeItem.isExpanded;\n if (treeNodeItem.isExpanded) {\n this.nodeExpanded.emit(treeNodeItem);\n } else {\n this.nodeCollapsed.emit(treeNodeItem);\n }\n }\n\n toggleEditing($event: Event) {\n $event.stopPropagation();\n this.treeNodeItem.isEditing = !this.treeNodeItem.isEditing;\n this.cdr.detectChanges();\n if (this.treeNodeItem.isEditing) {\n this.treeNodeItem.editNewValue = this.treeNodeItem.label;\n const input = this.input?.nativeElement;\n input?.focus();\n }\n }\n\n cancelEdit($event: Event) {\n $event.stopPropagation();\n this.treeNodeItem.isEditing = false;\n this.treeNodeItem.editNewValue = '';\n this.treeNodeItem.editPreviousValue = '';\n this.cdr.detectChanges();\n }\n\n saveEdit($event: Event) {\n $event.stopPropagation();\n this.treeNodeItem.isEditing = false;\n if (!this.treeNodeItem.editNewValue) {\n return;\n }\n\n this.treeNodeItem.editPreviousValue = this.treeNodeItem.label;\n this.treeNodeItem.label = this.treeNodeItem.editNewValue;\n\n const revertAction = () => {\n this.treeNodeItem.label = this.treeNodeItem.editPreviousValue as string;\n this.treeNodeItem.isEditing = false;\n this.cdr.detectChanges();\n };\n this.treeNodeEdit.emit({\n revertAction,\n item: this.treeNodeItem,\n newValue: this.treeNodeItem.editNewValue,\n previousValue: this.treeNodeItem.editPreviousValue,\n });\n }\n\n treeNodeEditChildEvent(payload: TreeNodeEdit) {\n this.treeNodeEdit.emit(payload);\n }\n}\n","@if (treeNodeItem) {\n <div\n class=\"tree-node-item\"\n role=\"treeitem\"\n [class.tree-node-item-selected]=\"treeNodeItem.checked\"\n [class.selectable]=\"hasChildren\"\n [attr.aria-expanded]=\"hasChildren ? treeNodeItem.isExpanded : null\"\n [attr.aria-selected]=\"treeNodeItem.checked === true\"\n [attr.aria-label]=\"treeNodeItem.label\"\n [attr.aria-level]=\"ariaLevel()\"\n tabindex=\"0\"\n (keydown.enter)=\"handleTreeNodeItemClick($event)\"\n (keydown.arrowRight)=\"expandNode()\"\n (keydown.arrowLeft)=\"collapseNode()\"\n >\n @if (hasChildren || treeNodeItem.leaf === true) {\n <div\n class=\"arrow\"\n (click)=\"toggleExpanded(treeNodeItem)\"\n >\n @if (!treeNodeItem.isExpanded) {\n <i [class]=\"treeNodeItem.collapsedIcon || 'fas fa-chevron-right'\"></i>\n }\n @if (treeNodeItem.isExpanded) {\n <i [class]=\"treeNodeItem.expandedIcon || 'fas fa-chevron-down'\"></i>\n }\n </div>\n }\n\n <div\n class=\"tree-node-item-text\"\n (click)=\"handleTreeNodeItemClick($event)\"\n >\n @if (treeNodeItem.icon || treeNodeItem.isEditing) {\n <span class=\"tree-node-item-text-icon\">\n @if (treeNodeItem.icon && !treeNodeItem.isEditing) {\n <i [class]=\"treeNodeItem.icon\"></i>\n }\n @if (treeNodeItem.isEditing) {\n <i\n class=\"fas fa-edit edit\"\n (click)=\"saveEdit($event)\"\n ></i>\n }\n </span>\n }\n\n @if (showCheckbox() && !treeNodeItem.isEditing) {\n <span class=\"tree-node-item-text-checkbox\">\n <input\n type=\"checkbox\"\n [checked]=\"treeNodeItem.checked === true\"\n [indeterminate]=\"treeNodeItem.checked === null\"\n [attr.aria-checked]=\"treeNodeItem.checked === null ? 'mixed' : treeNodeItem.checked\"\n [attr.aria-label]=\"ariaLabel\"\n role=\"checkbox\"\n tabindex=\"0\"\n (keydown.enter)=\"onCheckboxEnter(treeNodeItem)\"\n />\n </span>\n }\n\n <span class=\"tree-node-item-text-label\">\n @if (treeNodeItem.isEditing) {\n <input\n #input\n type=\"text\"\n pInputText\n class=\"tree-node-item-text-input\"\n [(ngModel)]=\"treeNodeItem.editNewValue\"\n (keydown.enter)=\"saveEdit($event)\"\n (keydown.escape)=\"cancelEdit($event)\"\n (click)=\"$event.stopPropagation()\"\n aria-label=\"Editar nome do item\"\n aria-live=\"polite\"\n />\n } @else if (!treeNodeItem.isEditing) {\n {{ treeNodeItem.label }}\n }\n </span>\n\n @if (editable) {\n <span class=\"tree-node-item-text-editable\">\n <i\n class=\"fas fa-pencil-alt\"\n (click)=\"toggleEditing($event)\"\n aria-label=\"Editar item\"\n tabindex=\"0\"\n ></i>\n </span>\n }\n </div>\n </div>\n}\n\n@if (hasChildren && treeNodeItem.isExpanded) {\n <div\n @fadeExpand\n class=\"child\"\n role=\"group\"\n @childrenAnimation\n >\n @for (child of treeNodeItem.children; track $index) {\n <s-tree-node-item\n [showCheckbox]=\"showCheckbox()\"\n [treeNodeItem]=\"child\"\n [ariaLevel]=\"ariaLevel() + 1\"\n (treeNodeItemClicked)=\"handleTreeNodeItemClicked($event)\"\n (treeNodeEdit)=\"treeNodeEditChildEvent($event)\"\n (nodeExpanded)=\"nodeExpanded.emit($event)\"\n (nodeCollapsed)=\"nodeCollapsed.emit($event)\"\n class=\"child-item\"\n />\n }\n </div>\n}\n\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\n\nimport { InternalTreeNodeItem, TreeNodeEdit, TreeNodeItem } from './Models/tree.models';\n\n/**\n * @description Componente de árvore hierárquica com suporte a seleção única ou múltipla,\n * checkboxes, noós expansíveis e edição inline de rótulos. Gerencia o estado interno\n * dos nós e emite eventos na seleção, expansão, colapso e edição.\n *\n * @example\n * ```html\n * <s-tree\n * [treeData]=\"nos\"\n * selectionMode=\"multiple\"\n * [showCheckbox]=\"true\"\n * (selectedChange)=\"onSelecaoMudou($event)\" />\n * ```\n *\n * @category Data\n */\n@Component({\n selector: 's-tree',\n templateUrl: './tree.component.html',\n styleUrls: ['./tree.component.scss'],\n})\nexport class TreeComponent implements OnChanges {\n /** @description Lista de nós raíz da árvore. @default [] */\n @Input()\n public treeData: TreeNodeItem[] = [];\n\n private _selected: TreeNodeItem[] = [];\n /** @description Nó(s) selecionado(s). Suporta array ou item único dependendo de `selectionMode`. @default [] */\n @Input()\n public get selected(): TreeNodeItem[] {\n return this._selected;\n }\n public set selected(value: TreeNodeItem[] | TreeNodeItem | undefined) {\n if (!value) {\n value = [];\n }\n if (!Array.isArray(value)) {\n value = [value];\n }\n this._selected = value;\n }\n\n /** @description Exibe indicador de carregamento nos nós. @default false */\n @Input()\n public loading = false;\n\n /** @description Modo de seleção: `'single'` ou `'multiple'`. @default 'single' */\n @Input()\n public selectionMode: 'single' | 'multiple' = 'single';\n\n /** @description Exibe checkboxes nos nós para seleção visual. @default false */\n @Input()\n public showCheckbox = false;\n\n /** @description Expão todos os nós inicialmente. @default false */\n @Input()\n public allExpanded = false;\n\n /** @description Emitido quando a seleção muda, com o(s) nó(s) selecionado(s). */\n @Output()\n public selectedChange: EventEmitter<TreeNodeItem[] | TreeNodeItem> = new EventEmitter();\n\n /** @description Emitido quando o usuário clica em um nó da árvore. */\n @Output()\n public treeNodeItemClicked: EventEmitter<TreeNodeItem> = new EventEmitter();\n\n /** @description Emitido após uma edição inline de rótulo de nó. */\n @Output()\n public treeNodeEdit: EventEmitter<TreeNodeEdit> = new EventEmitter();\n\n /** @description Emitido quando um nó é expandido pelo usuário. */\n @Output()\n public nodeExpanded: EventEmitter<TreeNodeItem> = new EventEmitter();\n\n /** @description Emitido quando um nó é colapsado pelo usuário. */\n @Output()\n public nodeCollapsed: EventEmitter<TreeNodeItem> = new EventEmitter();\n\n public ngOnChanges(changes: SimpleChanges): void {\n this.onChanges(changes);\n }\n\n public onTreeNodeItemClicked({ item }: { item: InternalTreeNodeItem }) {\n this.treeNodeItemClicked.emit(parseInternalTreeNodeItem(item));\n this.toggleChecked(item);\n }\n\n public onTreeNodeEdit(payload: TreeNodeEdit) {\n const { revertAction, item, newValue, previousValue } = payload;\n this.treeNodeEdit.emit({\n revertAction,\n item: parseInternalTreeNodeItem(item),\n newValue,\n previousValue,\n });\n }\n\n public onNodeExpanded(item: InternalTreeNodeItem) {\n this.nodeExpanded.emit(parseInternalTreeNodeItem(item));\n }\n\n public onNodeCollapsed(item: InternalTreeNodeItem) {\n this.nodeCollapsed.emit(parseInternalTreeNodeItem(item));\n }\n\n private toggleChecked(treeNodeItem: TreeNodeItem) {\n const elementCheckState = !treeNodeItem.checked;\n if (!this.multiple) {\n flattenTree(this.treeData).forEach((x) => (x.checked = false));\n this.selected = [treeNodeItem];\n }\n treeNodeItem.checked = elementCheckState;\n if (this.multiple) {\n this.checkTreeDataChildren(treeNodeItem);\n }\n this.setSelected();\n }\n\n private checkTreeDataChildren(selectedTreeNode: TreeNodeItem) {\n const parentChecked = selectedTreeNode.checked;\n if (selectedTreeNode.children) {\n selectedTreeNode.children.forEach((item) => {\n const childrens = flattenTree(item.children || []);\n item.checked = parentChecked;\n childrens.forEach((child) => (child.checked = parentChecked));\n });\n }\n\n const getNodeChildrenSummary = (node: TreeNodeItem) => {\n const children = node.children ?? [];\n const allChildrenChecked = children.every((y) => y.checked === true);\n const someChildrenChecked = children.some((y) => y.checked === true || y.checked === null);\n const allChildrenUnchecked = children.every((y) => y.checked === false || y.checked === undefined);\n return { allChildrenChecked, someChildrenChecked, allChildrenUnchecked };\n };\n const updateCheckedStateRecursively = (node: TreeNodeItem): void => {\n if (!node.children?.length) return;\n\n node.children.forEach(updateCheckedStateRecursively);\n\n const { allChildrenChecked, someChildrenChecked, allChildrenUnchecked } = getNodeChildrenSummary(node);\n if (allChildrenChecked) {\n node.checked = true;\n } else if (someChildrenChecked) {\n node.checked = null;\n } else if (allChildrenUnchecked) {\n node.checked = false;\n }\n };\n this.treeData.forEach(updateCheckedStateRecursively);\n }\n\n private setSelected() {\n const selected = this.selectedElements;\n this.selected = [...selected];\n this.selectedChange.emit(selected);\n }\n\n private onChanges(changes: SimpleChanges) {\n const allExpandedChanges = changes['allExpanded'];\n const _checkIsFirstChangeWithValue = (value: Extract<keyof TreeComponent, 'selected' | 'treeData'>) => {\n if (!changes[value]) {\n return;\n }\n return (\n (!changes[value].previousValue || changes[value].previousValue.length === 0) &&\n changes[value].currentValue?.length > 0\n );\n };\n\n if (_checkIsFirstChangeWithValue('selected')) {\n this.syncSelectedChanges();\n }\n\n if (_checkIsFirstChangeWithValue('treeData')) {\n const isAllExpanded = this.allExpanded;\n if (isAllExpanded) {\n this.expandAll();\n }\n }\n\n if (allExpandedChanges) {\n if (this.allExpanded) {\n this.expandAll();\n } else {\n this.collapseAll();\n }\n }\n }\n\n private syncSelectedChanges() {\n const treeFlatten = flattenTree(this.treeData);\n this.selected.forEach((selectedItem) => {\n const item = treeFlatten.find((item) => item.id === selectedItem.id);\n if (item) {\n item.checked = true;\n }\n if (item && item.children && this.multiple) {\n item.children.forEach((child) => {\n child.checked = true;\n const existChildInSelectedList = this.selected.some((item) => item.id === child.id);\n if (!existChildInSelectedList) {\n this.selected.push(child);\n }\n });\n }\n });\n const selectedElements = this.selectedElements;\n const selectedElementsNotInSelectedList = selectedElements.filter(\n (x) => !this.selected.some((y) => y.id === x.id),\n );\n selectedElementsNotInSelectedList.forEach((item) => {\n this.checkTreeDataChildren(item);\n });\n this.setSelected();\n }\n\n private collapseAll() {\n const flatten = flattenTree(this.treeData);\n flatten.forEach((item) => {\n item.isExpanded = false;\n });\n }\n\n private expandAll() {\n const flatten = flattenTree(this.treeData);\n flatten.forEach((item) => {\n item.isExpanded = true;\n });\n }\n\n private get selectedElements() {\n return flattenTree(this.treeData)\n .filter((x) => x.checked)\n .filter((x) => x.leaf !== true && !x.children?.length);\n }\n\n private get multiple() {\n return this.selectionMode === 'multiple';\n }\n}\n\nconst flattenTree = <T = any>(tree: TreeNodeItem<T>[]): TreeNodeItem<T>[] => {\n const result: TreeNodeItem<T>[] = [];\n\n function traverse(nodes: TreeNodeItem<T>[]) {\n for (const node of nodes) {\n result.push(node);\n if (node.children && node.children.length) {\n traverse(node.children);\n }\n }\n }\n\n traverse(tree);\n return result;\n};\n\nconst parseInternalTreeNodeItem = <T = any>(internalTreeNodeItem: InternalTreeNodeItem<T>): TreeNodeItem<T> => {\n const { id, label, icon, checked, isExpanded, payload, editable, children } = internalTreeNodeItem;\n const object = {\n id,\n label,\n icon,\n checked,\n isExpanded,\n payload,\n editable,\n _children: children?.map(parseInternalTreeNodeItem),\n get children() {\n return this._children;\n },\n set children(value) {\n this._children = value;\n internalTreeNodeItem.children = value;\n },\n };\n Object.defineProperty(object, '_children', {\n enumerable: false,\n });\n return object as TreeNodeItem<T>;\n};\n\n","<div class=\"tree\" *sLoadingState=\"loading\">\n @for(item of treeData; track $index) {\n <s-tree-node-item\n [showCheckbox]=\"showCheckbox\"\n [treeNodeItem]=\"item\"\n (nodeExpanded)=\"onNodeExpanded($event)\"\n (nodeCollapsed)=\"onNodeCollapsed($event)\"\n (treeNodeEdit)=\"onTreeNodeEdit($event)\"\n (treeNodeItemClicked)=\"onTreeNodeItemClicked($event)\">\n </s-tree-node-item>\n\n }\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { TreeComponent } from './tree.component';\nimport { TreeNodeItemComponent } from './components/tree-node-item/tree-node-item.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { LoadingStateModule } from '@seniorsistemas/angular-components/loading-state';\nimport { FormsModule } from '@angular/forms';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@NgModule({\n declarations: [TreeComponent, TreeNodeItemComponent],\n imports: [FormsModule, InputTextModule, LoadingStateModule, TranslateModule],\n exports: [TreeComponent],\n})\nexport class TreeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.TreeNodeItemComponent"],"mappings":"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"}
|
|
@@ -3,14 +3,60 @@ import { EventEmitter, Component, Input, Output, ViewChildren, HostBinding, Host
|
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* @description Componente de seleção de workspace exibe um dropdown com a lista de espaços de trabalho
|
|
8
|
+
* disponíveis, permitindo ao usuário alternar entre eles. Suporta navegação por teclado
|
|
9
|
+
* (setas, Enter, Escape), estado desabilitado e um botão de ação customizável no rodapé.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```html
|
|
13
|
+
* <s-workspace-switch
|
|
14
|
+
* [workspaces]="workspaces"
|
|
15
|
+
* footerButtonLabel="Criar workspace"
|
|
16
|
+
* (selected)="onWorkspaceSelect($event)"
|
|
17
|
+
* (footerButtonClicked)="onCreate()"
|
|
18
|
+
* />
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @category Navegação
|
|
22
|
+
*/
|
|
6
23
|
class WorkspaceSwitchComponent {
|
|
7
24
|
eRef;
|
|
8
25
|
changeDetectorRef;
|
|
26
|
+
/**
|
|
27
|
+
* @description Lista de workspaces disponíveis para seleção. Campo obrigatório.
|
|
28
|
+
* Cada item deve implementar a interface `Workspace`.
|
|
29
|
+
* Lança um erro em runtime se a lista estiver vazia.
|
|
30
|
+
*/
|
|
9
31
|
workspaces = [];
|
|
32
|
+
/**
|
|
33
|
+
* @description Rótulo exibido no botão de ação localizado no rodapé do dropdown.
|
|
34
|
+
*
|
|
35
|
+
* @default 'Adicionar'
|
|
36
|
+
*/
|
|
10
37
|
footerButtonLabel = 'Adicionar';
|
|
38
|
+
/**
|
|
39
|
+
* @description Controla a visibilidade do botão de ação no rodapé do dropdown.
|
|
40
|
+
* Quando `false`, o botão não é renderizado.
|
|
41
|
+
*
|
|
42
|
+
* @default true
|
|
43
|
+
*/
|
|
11
44
|
showFooterButton = true;
|
|
45
|
+
/**
|
|
46
|
+
* @description Quando `true`, o componente fica desabilitado: não abre o dropdown,
|
|
47
|
+
* não emite eventos e fica inacessível via teclado (`tabindex = -1`).
|
|
48
|
+
*
|
|
49
|
+
* @default false
|
|
50
|
+
*/
|
|
12
51
|
disabled = false;
|
|
52
|
+
/**
|
|
53
|
+
* @description Emitido quando o usuário clica no botão de ação do rodapé do dropdown.
|
|
54
|
+
*/
|
|
13
55
|
footerButtonClicked = new EventEmitter();
|
|
56
|
+
/**
|
|
57
|
+
* @description Emitido quando o usuário seleciona um workspace da lista.
|
|
58
|
+
* Retorna o objeto `Workspace` selecionado.
|
|
59
|
+
*/
|
|
14
60
|
selected = new EventEmitter();
|
|
15
61
|
listItems = null;
|
|
16
62
|
get open() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-workspace-switch.mjs","sources":["../../projects/angular-components/workspace-switch/src/lib/workspace-switch/workspace-switch.component.ts","../../projects/angular-components/workspace-switch/src/lib/workspace-switch/workspace-switch.component.html","../../projects/angular-components/workspace-switch/src/lib/workspace-switch/workspace-switch.module.ts","../../projects/angular-components/workspace-switch/src/seniorsistemas-angular-components-workspace-switch.ts"],"sourcesContent":["import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Output,\n QueryList,\n ViewChildren,\n} from '@angular/core';\n\nimport { Workspace } from './models/workspace';\n\n@Component({\n selector: 's-workspace-switch',\n templateUrl: './workspace-switch.component.html',\n styleUrls: ['./workspace-switch.component.scss'],\n})\nexport class WorkspaceSwitchComponent implements OnInit {\n @Input({ required: true })\n public workspaces: Workspace[] = [];\n\n @Input()\n public footerButtonLabel = 'Adicionar';\n\n @Input()\n public showFooterButton = true;\n\n @Input()\n public disabled = false;\n\n @Output()\n public footerButtonClicked = new EventEmitter();\n\n @Output()\n public selected: EventEmitter<Workspace> = new EventEmitter();\n\n @ViewChildren('listItem')\n public listItems: QueryList<ElementRef> | null = null;\n\n public get open() {\n return this._open;\n }\n\n public set open(open: boolean) {\n this._open = open;\n this.changeDetectorRef.detectChanges();\n\n if (open) {\n this._calculateListMaxHeight();\n }\n }\n\n public height = 0;\n public selectedItemIndex = 0;\n public currentItemIndex = 0;\n\n private _open = false;\n\n constructor(\n private readonly eRef: ElementRef,\n private readonly changeDetectorRef: ChangeDetectorRef,\n ) {}\n\n @HostBinding('attr.tabindex')\n public tabindex = 0;\n\n @HostListener('document:click', ['$event'])\n public onClickout(event: MouseEvent): void {\n if (!this.eRef.nativeElement.contains(event.target)) {\n this.open = false;\n }\n }\n\n @HostListener('keydown', ['$event'])\n public onKeydown(event: KeyboardEvent): void {\n if (event.key === 'Enter' || event.key === ' ') {\n if (this.open) {\n const workspace = this.workspaces[this.selectedItemIndex];\n\n if (workspace.disabled) {\n return;\n }\n\n this.selectedItemIndex = this.currentItemIndex;\n this.selected.emit(this.workspaces[this.selectedItemIndex]);\n }\n this.open = !this.open;\n } else if (event.key === 'Escape') {\n this.open = false;\n } else if (event.key === 'ArrowDown') {\n if (this.currentItemIndex < this.workspaces.length - 1) {\n this.currentItemIndex++;\n this._scrollToCurrentItem();\n }\n } else if (event.key === 'ArrowUp') {\n if (this.currentItemIndex > 0) {\n this.currentItemIndex--;\n this._scrollToCurrentItem();\n }\n }\n }\n\n public ngOnInit(): void {\n if (this.disabled) {\n this.tabindex = -1;\n }\n }\n\n public validations(): void {\n if (!this.workspaces.length) {\n throw new Error('Workspaces list is empty.');\n }\n }\n\n public buttonOnBlur(): void {\n this.open = false;\n this.currentItemIndex = this.selectedItemIndex;\n }\n\n public onSelectItem(workspace: Workspace): void {\n if (workspace.disabled) {\n return;\n }\n\n this.open = false;\n this.selectedItemIndex = this.workspaces.indexOf(workspace);\n this.currentItemIndex = this.selectedItemIndex;\n this.selected.emit(workspace);\n }\n\n public onFooterButtonClick(): void {\n this.open = false;\n this.footerButtonClicked.emit();\n }\n\n private _calculateListMaxHeight(): void {\n const workspaceListRef = this.eRef.nativeElement.querySelector('#workspace-list');\n const { top } = workspaceListRef.getBoundingClientRect();\n\n this.height = window.innerHeight - top - 20 - (this.showFooterButton ? 64 : 0);\n this.changeDetectorRef.detectChanges();\n }\n\n private _scrollToCurrentItem(): void {\n const currentItem = this.listItems?.toArray()[this.currentItemIndex];\n if (currentItem) {\n currentItem.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n }\n}\n","<div\n class=\"workspace-switch\"\n [ngClass]=\"{ 'workspace-switch--disabled': disabled }\"\n (blur)=\"buttonOnBlur()\"\n>\n <div\n class=\"button\"\n (click)=\"open = !open\"\n >\n <div class=\"item\">\n <span class=\"title\">{{ workspaces[selectedItemIndex].title }}</span>\n <span class=\"subtitle\">{{ workspaces[selectedItemIndex].subtitle }}</span>\n </div>\n <div class=\"icons\">\n <span class=\"fas fa-chevron-up\"></span>\n <span class=\"fas fa-chevron-down\"></span>\n </div>\n </div>\n <div\n *ngIf=\"!disabled && open\"\n class=\"drop-panel\"\n >\n <ul\n id=\"workspace-list\"\n class=\"workspace-list\"\n [ngStyle]=\"{ 'max-height': height + 'px' }\"\n >\n\n @for(workspace of workspaces; track workspace.id; let i = $index) {\n <li\n #listItem\n class=\"workspace\"\n [ngClass]=\"{\n 'workspace--focused': i === currentItemIndex && !workspace.disabled,\n 'workspace--disabled': workspace.disabled,\n }\"\n (click)=\"onSelectItem(workspace)\"\n >\n <div class=\"item\">\n <span class=\"title\">{{ workspace.title }}</span>\n <span class=\"subtitle\">{{ workspace.subtitle }}</span>\n </div>\n\n @if (i === selectedItemIndex) {\n <span class=\"active-icon fas fa-check\"></span>\n }\n </li>\n }\n\n </ul>\n <div\n *ngIf=\"showFooterButton\"\n class=\"footer\"\n >\n <div\n class=\"footer__button\"\n (click)=\"onFooterButtonClick()\"\n >\n <span class=\"footer__button__icon fas fa-plus\"></span>\n <span class=\"footer__button__title\">{{ footerButtonLabel }}</span>\n </div>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WorkspaceSwitchComponent } from './workspace-switch.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [WorkspaceSwitchComponent],\n exports: [WorkspaceSwitchComponent],\n})\nexport class WorkspaceSwitchModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-workspace-switch.mjs","sources":["../../projects/angular-components/workspace-switch/src/lib/workspace-switch/workspace-switch.component.ts","../../projects/angular-components/workspace-switch/src/lib/workspace-switch/workspace-switch.component.html","../../projects/angular-components/workspace-switch/src/lib/workspace-switch/workspace-switch.module.ts","../../projects/angular-components/workspace-switch/src/seniorsistemas-angular-components-workspace-switch.ts"],"sourcesContent":["import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Output,\n QueryList,\n ViewChildren,\n} from '@angular/core';\n\nimport { Workspace } from './models/workspace';\n\n/**\n * @description Componente de seleção de workspace exibe um dropdown com a lista de espaços de trabalho\n * disponíveis, permitindo ao usuário alternar entre eles. Suporta navegação por teclado\n * (setas, Enter, Escape), estado desabilitado e um botão de ação customizável no rodapé.\n *\n * @example\n * ```html\n * <s-workspace-switch\n * [workspaces]=\"workspaces\"\n * footerButtonLabel=\"Criar workspace\"\n * (selected)=\"onWorkspaceSelect($event)\"\n * (footerButtonClicked)=\"onCreate()\"\n * />\n * ```\n *\n * @category Navegação\n */\n@Component({\n selector: 's-workspace-switch',\n templateUrl: './workspace-switch.component.html',\n styleUrls: ['./workspace-switch.component.scss'],\n})\nexport class WorkspaceSwitchComponent implements OnInit {\n /**\n * @description Lista de workspaces disponíveis para seleção. Campo obrigatório.\n * Cada item deve implementar a interface `Workspace`.\n * Lança um erro em runtime se a lista estiver vazia.\n */\n @Input({ required: true })\n public workspaces: Workspace[] = [];\n\n /**\n * @description Rótulo exibido no botão de ação localizado no rodapé do dropdown.\n *\n * @default 'Adicionar'\n */\n @Input()\n public footerButtonLabel = 'Adicionar';\n\n /**\n * @description Controla a visibilidade do botão de ação no rodapé do dropdown.\n * Quando `false`, o botão não é renderizado.\n *\n * @default true\n */\n @Input()\n public showFooterButton = true;\n\n /**\n * @description Quando `true`, o componente fica desabilitado: não abre o dropdown,\n * não emite eventos e fica inacessível via teclado (`tabindex = -1`).\n *\n * @default false\n */\n @Input()\n public disabled = false;\n\n /**\n * @description Emitido quando o usuário clica no botão de ação do rodapé do dropdown.\n */\n @Output()\n public footerButtonClicked = new EventEmitter();\n\n /**\n * @description Emitido quando o usuário seleciona um workspace da lista.\n * Retorna o objeto `Workspace` selecionado.\n */\n @Output()\n public selected: EventEmitter<Workspace> = new EventEmitter();\n\n @ViewChildren('listItem')\n public listItems: QueryList<ElementRef> | null = null;\n\n public get open() {\n return this._open;\n }\n\n public set open(open: boolean) {\n this._open = open;\n this.changeDetectorRef.detectChanges();\n\n if (open) {\n this._calculateListMaxHeight();\n }\n }\n\n public height = 0;\n public selectedItemIndex = 0;\n public currentItemIndex = 0;\n\n private _open = false;\n\n constructor(\n private readonly eRef: ElementRef,\n private readonly changeDetectorRef: ChangeDetectorRef,\n ) {}\n\n @HostBinding('attr.tabindex')\n public tabindex = 0;\n\n @HostListener('document:click', ['$event'])\n public onClickout(event: MouseEvent): void {\n if (!this.eRef.nativeElement.contains(event.target)) {\n this.open = false;\n }\n }\n\n @HostListener('keydown', ['$event'])\n public onKeydown(event: KeyboardEvent): void {\n if (event.key === 'Enter' || event.key === ' ') {\n if (this.open) {\n const workspace = this.workspaces[this.selectedItemIndex];\n\n if (workspace.disabled) {\n return;\n }\n\n this.selectedItemIndex = this.currentItemIndex;\n this.selected.emit(this.workspaces[this.selectedItemIndex]);\n }\n this.open = !this.open;\n } else if (event.key === 'Escape') {\n this.open = false;\n } else if (event.key === 'ArrowDown') {\n if (this.currentItemIndex < this.workspaces.length - 1) {\n this.currentItemIndex++;\n this._scrollToCurrentItem();\n }\n } else if (event.key === 'ArrowUp') {\n if (this.currentItemIndex > 0) {\n this.currentItemIndex--;\n this._scrollToCurrentItem();\n }\n }\n }\n\n public ngOnInit(): void {\n if (this.disabled) {\n this.tabindex = -1;\n }\n }\n\n public validations(): void {\n if (!this.workspaces.length) {\n throw new Error('Workspaces list is empty.');\n }\n }\n\n public buttonOnBlur(): void {\n this.open = false;\n this.currentItemIndex = this.selectedItemIndex;\n }\n\n public onSelectItem(workspace: Workspace): void {\n if (workspace.disabled) {\n return;\n }\n\n this.open = false;\n this.selectedItemIndex = this.workspaces.indexOf(workspace);\n this.currentItemIndex = this.selectedItemIndex;\n this.selected.emit(workspace);\n }\n\n public onFooterButtonClick(): void {\n this.open = false;\n this.footerButtonClicked.emit();\n }\n\n private _calculateListMaxHeight(): void {\n const workspaceListRef = this.eRef.nativeElement.querySelector('#workspace-list');\n const { top } = workspaceListRef.getBoundingClientRect();\n\n this.height = window.innerHeight - top - 20 - (this.showFooterButton ? 64 : 0);\n this.changeDetectorRef.detectChanges();\n }\n\n private _scrollToCurrentItem(): void {\n const currentItem = this.listItems?.toArray()[this.currentItemIndex];\n if (currentItem) {\n currentItem.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n }\n}\n\n","<div\n class=\"workspace-switch\"\n [ngClass]=\"{ 'workspace-switch--disabled': disabled }\"\n (blur)=\"buttonOnBlur()\"\n>\n <div\n class=\"button\"\n (click)=\"open = !open\"\n >\n <div class=\"item\">\n <span class=\"title\">{{ workspaces[selectedItemIndex].title }}</span>\n <span class=\"subtitle\">{{ workspaces[selectedItemIndex].subtitle }}</span>\n </div>\n <div class=\"icons\">\n <span class=\"fas fa-chevron-up\"></span>\n <span class=\"fas fa-chevron-down\"></span>\n </div>\n </div>\n <div\n *ngIf=\"!disabled && open\"\n class=\"drop-panel\"\n >\n <ul\n id=\"workspace-list\"\n class=\"workspace-list\"\n [ngStyle]=\"{ 'max-height': height + 'px' }\"\n >\n\n @for(workspace of workspaces; track workspace.id; let i = $index) {\n <li\n #listItem\n class=\"workspace\"\n [ngClass]=\"{\n 'workspace--focused': i === currentItemIndex && !workspace.disabled,\n 'workspace--disabled': workspace.disabled,\n }\"\n (click)=\"onSelectItem(workspace)\"\n >\n <div class=\"item\">\n <span class=\"title\">{{ workspace.title }}</span>\n <span class=\"subtitle\">{{ workspace.subtitle }}</span>\n </div>\n\n @if (i === selectedItemIndex) {\n <span class=\"active-icon fas fa-check\"></span>\n }\n </li>\n }\n\n </ul>\n <div\n *ngIf=\"showFooterButton\"\n class=\"footer\"\n >\n <div\n class=\"footer__button\"\n (click)=\"onFooterButtonClick()\"\n >\n <span class=\"footer__button__icon fas fa-plus\"></span>\n <span class=\"footer__button__title\">{{ footerButtonLabel }}</span>\n </div>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WorkspaceSwitchComponent } from './workspace-switch.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [WorkspaceSwitchComponent],\n exports: [WorkspaceSwitchComponent],\n})\nexport class WorkspaceSwitchModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAgBA;;;;;;;;;;;;;;;;AAgBG;MAMU,wBAAwB,CAAA;AAuEZ,IAAA,IAAA,CAAA;AACA,IAAA,iBAAA,CAAA;AAvErB;;;;AAIG;IAEI,UAAU,GAAgB,EAAE,CAAC;AAEpC;;;;AAIG;IAEI,iBAAiB,GAAG,WAAW,CAAC;AAEvC;;;;;AAKG;IAEI,gBAAgB,GAAG,IAAI,CAAC;AAE/B;;;;;AAKG;IAEI,QAAQ,GAAG,KAAK,CAAC;AAExB;;AAEG;AAEI,IAAA,mBAAmB,GAAG,IAAI,YAAY,EAAE,CAAC;AAEhD;;;AAGG;AAEI,IAAA,QAAQ,GAA4B,IAAI,YAAY,EAAE,CAAC;IAGvD,SAAS,GAAiC,IAAI,CAAC;AAEtD,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IAED,IAAW,IAAI,CAAC,IAAa,EAAA;AACzB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;QAEvC,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,uBAAuB,EAAE,CAAC;SAClC;KACJ;IAEM,MAAM,GAAG,CAAC,CAAC;IACX,iBAAiB,GAAG,CAAC,CAAC;IACtB,gBAAgB,GAAG,CAAC,CAAC;IAEpB,KAAK,GAAG,KAAK,CAAC;IAEtB,WACqB,CAAA,IAAgB,EAChB,iBAAoC,EAAA;QADpC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;KACrD;IAGG,QAAQ,GAAG,CAAC,CAAC;AAGb,IAAA,UAAU,CAAC,KAAiB,EAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACjD,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;SACrB;KACJ;AAGM,IAAA,SAAS,CAAC,KAAoB,EAAA;AACjC,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;AAC5C,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE;gBACX,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAE1D,gBAAA,IAAI,SAAS,CAAC,QAAQ,EAAE;oBACpB,OAAO;iBACV;AAED,gBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAC/C,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;aAC/D;AACD,YAAA,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;SAC1B;AAAM,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;AAC/B,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;SACrB;AAAM,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE;AAClC,YAAA,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpD,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,IAAI,CAAC,oBAAoB,EAAE,CAAC;aAC/B;SACJ;AAAM,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE;AAChC,YAAA,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE;gBAC3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,IAAI,CAAC,oBAAoB,EAAE,CAAC;aAC/B;SACJ;KACJ;IAEM,QAAQ,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;SACtB;KACJ;IAEM,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;AACzB,YAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;SAChD;KACJ;IAEM,YAAY,GAAA;AACf,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AAClB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC;KAClD;AAEM,IAAA,YAAY,CAAC,SAAoB,EAAA;AACpC,QAAA,IAAI,SAAS,CAAC,QAAQ,EAAE;YACpB,OAAO;SACV;AAED,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC;AAC/C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACjC;IAEM,mBAAmB,GAAA;AACtB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AAClB,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;KACnC;IAEO,uBAAuB,GAAA;AAC3B,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QAClF,MAAM,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAAC,qBAAqB,EAAE,CAAC;QAEzD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,CAAC,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC/E,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KAC1C;IAEO,oBAAoB,GAAA;AACxB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACrE,IAAI,WAAW,EAAE;AACb,YAAA,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;SACtF;KACJ;wGAhKQ,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,ggBCtCrC,4nEAgEA,EAAA,MAAA,EAAA,CAAA,m4EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,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,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FD1Ba,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACI,oBAAoB,EAAA,QAAA,EAAA,4nEAAA,EAAA,MAAA,EAAA,CAAA,m4EAAA,CAAA,EAAA,CAAA;+GAWvB,UAAU,EAAA,CAAA;sBADhB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBASlB,iBAAiB,EAAA,CAAA;sBADvB,KAAK;gBAUC,gBAAgB,EAAA,CAAA;sBADtB,KAAK;gBAUC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAOC,mBAAmB,EAAA,CAAA;sBADzB,MAAM;gBAQA,QAAQ,EAAA,CAAA;sBADd,MAAM;gBAIA,SAAS,EAAA,CAAA;sBADf,YAAY;uBAAC,UAAU,CAAA;gBA4BjB,QAAQ,EAAA,CAAA;sBADd,WAAW;uBAAC,eAAe,CAAA;gBAIrB,UAAU,EAAA,CAAA;sBADhB,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAQnC,SAAS,EAAA,CAAA;sBADf,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MEjH1B,qBAAqB,CAAA;wGAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EAHf,YAAA,EAAA,CAAA,wBAAwB,CAD7B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,wBAAwB,CAAA,EAAA,CAAA,CAAA;AAEzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YAJpB,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAIb,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,wBAAwB,CAAC;oBACxC,OAAO,EAAE,CAAC,wBAAwB,CAAC;AACtC,iBAAA,CAAA;;;ACTD;;AAEG;;;;"}
|