@seniorsistemas/angular-components 19.9.15 → 19.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +84 -2
- package/accordion/README.md +5 -4
- package/accordion/lib/accordion/accordion.module.d.ts +7 -0
- package/alert/lib/alert/alert.module.d.ts +7 -0
- package/badge/README.md +5 -4
- package/badge/lib/badge/badge.module.d.ts +10 -0
- package/bignumber-input/README.md +5 -4
- package/bignumber-input/lib/bignumber-input/bignumber-input.directive.d.ts +16 -39
- package/bignumber-input/lib/bignumber-input/bignumber-input.module.d.ts +7 -0
- package/breadcrumb/README.md +5 -4
- package/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.module.d.ts +5 -1
- package/button/lib/button/button.module.d.ts +7 -0
- package/calendar-mask/README.md +5 -4
- package/calendar-mask/lib/calendar-mask/calendar-mask.module.d.ts +7 -0
- package/card/README.md +6 -5
- package/card/lib/card/card.module.d.ts +7 -0
- package/chat/README.md +11 -8
- package/chat/lib/chat/chat.module.d.ts +7 -0
- package/checkbox-list/README.md +5 -4
- package/checkbox-list/lib/checkbox-list/checkbox-list.module.d.ts +7 -0
- package/chips/README.md +5 -4
- package/chips/lib/chips/chips.module.d.ts +7 -0
- package/code-editor/README.md +5 -4
- package/code-editor/lib/code-editor/code-editor.module.d.ts +7 -0
- package/collapse-link/README.md +5 -4
- package/collapse-link/lib/collapse-link/collapse-link.module.d.ts +7 -0
- package/common/lib/angular-components.module.d.ts +9 -0
- package/common/lib/provide-angular-components.d.ts +19 -0
- package/common/lib/svg-factory/svg-factory.module.d.ts +7 -0
- package/common/public-api.d.ts +1 -0
- package/content-generator/README.md +2 -2
- package/content-generator/lib/content-generator/content-generator.module.d.ts +7 -0
- package/control-errors/README.md +2 -2
- package/control-errors/lib/control-errors/control-errors.module.d.ts +7 -0
- package/country-phone-picker/README.md +2 -2
- package/country-phone-picker/lib/country-phone-picker/country-phone-picker.module.d.ts +7 -0
- package/currency/README.md +1 -1
- package/custom-fields/README.md +14 -3
- package/custom-fields/lib/custom-fields/custom-fields.module.d.ts +7 -0
- package/custom-fields/lib/custom-fields/models/custom-field-value-parser.d.ts +21 -0
- package/custom-fields/lib/custom-fields/models/index.d.ts +1 -0
- package/dialog/README.md +1 -1
- package/drawer/README.md +8 -4
- package/drawer/lib/drawer/drawer.module.d.ts +10 -0
- package/dynamic-form/README.md +18 -2
- package/dynamic-form/dynamic-form/dynamic-form.module.d.ts +7 -0
- package/dynamic-form/dynamic-form/form-field/addon-config.d.ts +10 -1
- package/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.d.ts +15 -15
- package/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.d.ts +8 -6
- package/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.d.ts +5 -2
- package/dynamic-form/public-api.d.ts +0 -1
- package/editable-overlay/README.md +2 -2
- package/editable-overlay/lib/editable-overlay/editable-overlay.module.d.ts +7 -0
- package/empty-state/README.md +5 -2
- package/empty-state/lib/empty-state/empty-state.module.d.ts +7 -0
- package/esm2022/accordion/lib/accordion/accordion.module.mjs +8 -1
- package/esm2022/alert/lib/alert/alert.module.mjs +8 -1
- package/esm2022/badge/lib/badge/badge.module.mjs +11 -1
- package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.directive.mjs +19 -127
- package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.module.mjs +8 -1
- package/esm2022/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.module.mjs +6 -2
- package/esm2022/button/lib/button/button.module.mjs +8 -1
- package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.module.mjs +8 -1
- package/esm2022/card/lib/card/card.module.mjs +8 -1
- package/esm2022/chat/lib/chat/chat.module.mjs +8 -1
- package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.module.mjs +8 -1
- package/esm2022/chips/lib/chips/chips.module.mjs +8 -1
- package/esm2022/code-editor/lib/code-editor/code-editor.component.mjs +10 -1
- package/esm2022/code-editor/lib/code-editor/code-editor.module.mjs +9 -15
- package/esm2022/collapse-link/lib/collapse-link/collapse-link.module.mjs +8 -1
- package/esm2022/common/lib/angular-components.module.mjs +10 -1
- package/esm2022/common/lib/provide-angular-components.mjs +22 -0
- package/esm2022/common/lib/svg-factory/svg-factory.module.mjs +8 -1
- package/esm2022/common/public-api.mjs +2 -1
- package/esm2022/content-generator/lib/content-generator/content-generator.module.mjs +8 -1
- package/esm2022/control-errors/lib/control-errors/control-errors.module.mjs +8 -1
- package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.module.mjs +8 -1
- package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.service.mjs +4 -3
- package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +17 -13
- package/esm2022/custom-fields/lib/custom-fields/custom-fields.module.mjs +8 -1
- package/esm2022/custom-fields/lib/custom-fields/custom-fields.service.mjs +4 -3
- package/esm2022/custom-fields/lib/custom-fields/models/custom-field-type.mjs +4 -2
- package/esm2022/custom-fields/lib/custom-fields/models/custom-field-value-parser.mjs +46 -0
- package/esm2022/custom-fields/lib/custom-fields/models/index.mjs +2 -1
- package/esm2022/drawer/lib/drawer/drawer.module.mjs +11 -1
- package/esm2022/dynamic-form/dynamic-form/dynamic-form.module.mjs +8 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/addon-config.mjs +6 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +33 -10
- package/esm2022/dynamic-form/public-api.mjs +2 -7
- package/esm2022/editable-overlay/lib/editable-overlay/editable-overlay.module.mjs +8 -1
- package/esm2022/empty-state/lib/empty-state/empty-state.module.mjs +8 -1
- package/esm2022/fieldset/lib/fieldset/fieldset.module.mjs +8 -1
- package/esm2022/file-picker/lib/file-picker/file-picker.module.mjs +8 -1
- package/esm2022/file-picker/lib/file-picker/file-picker.service.mjs +4 -3
- package/esm2022/gantt/lib/gantt/gantt.module.mjs +8 -1
- package/esm2022/global-search/lib/global-search/global-search.module.mjs +19 -1
- package/esm2022/grid-menu/lib/grid-menu/grid-menu.module.mjs +8 -1
- package/esm2022/help-popover/lib/help-popover/help-popover.module.mjs +8 -1
- package/esm2022/image-cropper/lib/image-cropper/image-cropper.module.mjs +12 -1
- package/esm2022/image-cropper/lib/image-cropper/image-cropper.service.mjs +4 -3
- package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.module.mjs +8 -1
- package/esm2022/info-sign/lib/info-sign/info-sign.module.mjs +8 -1
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +5 -5
- package/esm2022/inline-edit/lib/inline-edit/inline-edit.module.mjs +8 -1
- package/esm2022/input-group/lib/input-group/input-group.module.mjs +8 -1
- package/esm2022/input-mask/lib/input-mask/input-mask.module.mjs +8 -1
- package/esm2022/input-text/lib/input-text/input-text.module.mjs +8 -1
- package/esm2022/insights/lib/insights/insights.module.mjs +11 -1
- package/esm2022/kanban/lib/kanban/kanban-event.service.mjs +4 -3
- package/esm2022/kanban/lib/kanban/kanban.module.mjs +11 -1
- package/esm2022/label-value/lib/label-value/label-value.module.mjs +8 -1
- package/esm2022/loading-state/lib/loading-state/loading-state.module.mjs +8 -1
- package/esm2022/locale/lib/locale/locale.module.mjs +14 -1
- package/esm2022/locale/lib/locale/locale.service.mjs +4 -3
- package/esm2022/locale/lib/locale/options/index.mjs +1 -13
- package/esm2022/locale/lib/locale/pipes/localized-bignumber-impure.pipe.mjs +1 -1
- package/esm2022/locale/lib/locale/pipes/localized-bignumber.pipe.mjs +10 -2
- package/esm2022/locale/lib/locale/provide-locale.mjs +42 -0
- package/esm2022/locale/public-api.mjs +2 -1
- package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.directive.mjs +5 -1
- package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.module.mjs +8 -1
- package/esm2022/mask/lib/mask/mask-formatter.module.mjs +8 -1
- package/esm2022/mouse-events/lib/mouse-events/mouse-events.module.mjs +8 -1
- package/esm2022/navigation-button/lib/navigation-button/navigation-button.module.mjs +8 -1
- package/esm2022/number-input/lib/number-input/number-input.directive.mjs +2 -2
- package/esm2022/number-input/lib/number-input/number-input.module.mjs +9 -2
- package/esm2022/numeric/lib/numeric.module.mjs +8 -1
- package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.directive.mjs +178 -15
- package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.module.mjs +8 -1
- package/esm2022/object-card/lib/object-card/object-card.module.mjs +12 -1
- package/esm2022/panel/lib/panel/panel.module.mjs +11 -1
- package/esm2022/password-strength/lib/password-strength/password-strength.module.mjs +8 -1
- package/esm2022/picklist/lib/picklist/picklist.module.mjs +8 -1
- package/esm2022/pin-code-field/lib/pin-code-field.module.mjs +8 -1
- package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.mjs +8 -1
- package/esm2022/progressbar/lib/progressbar/progressbar.module.mjs +8 -1
- package/esm2022/rating-scale/lib/rating-scale/rating-scale.module.mjs +8 -1
- package/esm2022/select/lib/select/select.component.mjs +16 -3
- package/esm2022/select-button/lib/select-button/select-button.module.mjs +8 -1
- package/esm2022/shared/lib/shared/border-button/border-button.module.mjs +8 -1
- package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.module.mjs +8 -1
- package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.service.mjs +4 -3
- package/esm2022/slider/lib/slider/slider.module.mjs +8 -1
- package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition.module.mjs +8 -1
- package/esm2022/split-button/lib/split-button/split-button.module.mjs +8 -1
- package/esm2022/stats-card/lib/stats-card/stats-card.module.mjs +8 -1
- package/esm2022/stepper/lib/stepper/stepper.module.mjs +8 -1
- package/esm2022/structure/lib/structure/structure.module.mjs +8 -1
- package/esm2022/switch/lib/switch/switch.module.mjs +8 -1
- package/esm2022/table/lib/table/table.module.mjs +9 -1
- package/esm2022/table-header/lib/table-header/table-header-checkox.module.mjs +8 -1
- package/esm2022/template/lib/template/template.module.mjs +8 -1
- package/esm2022/text-area/lib/text-area.module.mjs +8 -1
- package/esm2022/thumbnail/lib/thumbnail/thumbnail.module.mjs +8 -1
- package/esm2022/thumbnails/lib/thumbnails/thumbnails.module.mjs +8 -1
- package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.module.mjs +8 -1
- package/esm2022/tile/lib/tile/tile.module.mjs +11 -1
- package/esm2022/timeline/lib/timeline/timeline.module.mjs +8 -1
- package/esm2022/toast/lib/toast/toast.module.mjs +8 -1
- package/esm2022/token-list/lib/token-list/token-list.module.mjs +8 -1
- package/esm2022/tooltip/lib/tooltip/tooltip.module.mjs +8 -1
- package/esm2022/topbar/lib/topbar/topbar.module.mjs +11 -1
- package/esm2022/tree/lib/tree/tree.module.mjs +8 -1
- package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.module.mjs +8 -1
- package/fesm2022/seniorsistemas-angular-components-accordion.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-alert.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-alert.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-badge.mjs +10 -0
- package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs +25 -126
- package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +5 -1
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-button.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-card.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-card.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-chat.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-chat.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-chips.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +164 -160
- package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-common.mjs +38 -2
- package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +10 -2
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +75 -15
- package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-drawer.mjs +10 -0
- package/fesm2022/seniorsistemas-angular-components-drawer.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +52 -208
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +10 -2
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-gantt.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs +18 -0
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +14 -2
- package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +11 -4
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-input-group.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-input-group.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-input-mask.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-input-mask.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-input-text.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-input-text.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-insights.mjs +10 -0
- package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-kanban.mjs +13 -2
- package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-label-value.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-label-value.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-locale.mjs +58 -5
- package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +11 -0
- package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-mask.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-mask.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-number-input.mjs +9 -2
- package/fesm2022/seniorsistemas-angular-components-number-input.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs +184 -14
- package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-numeric.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-object-card.mjs +11 -0
- package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-panel.mjs +10 -0
- package/fesm2022/seniorsistemas-angular-components-panel.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-picklist.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-select-button.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-select.mjs +15 -2
- package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-shared.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs +10 -2
- package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-slider.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-stats-card.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-stepper.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-stepper.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-structure.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-structure.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-switch.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table.mjs +8 -0
- package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-template.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-template.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tile.mjs +10 -0
- package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-timeline.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-timeline.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-toast.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-token-list.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-topbar.mjs +10 -0
- package/fesm2022/seniorsistemas-angular-components-topbar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tree.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
- package/fieldset/README.md +2 -2
- package/fieldset/lib/fieldset/fieldset.module.d.ts +7 -0
- package/file-picker/README.md +2 -2
- package/file-picker/lib/file-picker/file-picker.module.d.ts +7 -0
- package/file-upload/README.md +1 -1
- package/gantt/README.md +2 -2
- package/gantt/lib/gantt/gantt.module.d.ts +7 -0
- package/global-search/README.md +5 -2
- package/global-search/lib/global-search/global-search.module.d.ts +18 -0
- package/grid-menu/README.md +5 -4
- package/grid-menu/lib/grid-menu/grid-menu.module.d.ts +7 -0
- package/help-popover/README.md +5 -4
- package/help-popover/lib/help-popover/help-popover.module.d.ts +7 -0
- package/ia-insight/README.md +1 -1
- package/image-cropper/README.md +6 -5
- package/image-cropper/lib/image-cropper/image-cropper.module.d.ts +11 -0
- package/infinite-scroll/README.md +5 -4
- package/infinite-scroll/lib/infinite-scroll/infinite-scroll.module.d.ts +7 -0
- package/info-sign/README.md +5 -4
- package/info-sign/lib/info-sign/info-sign.module.d.ts +7 -0
- package/inline-edit/README.md +5 -4
- package/inline-edit/lib/inline-edit/inline-edit.module.d.ts +7 -0
- package/input-group/lib/input-group/input-group.module.d.ts +7 -0
- package/input-mask/lib/input-mask/input-mask.module.d.ts +7 -0
- package/input-text/lib/input-text/input-text.module.d.ts +7 -0
- package/insights/README.md +6 -4
- package/insights/lib/insights/insights.module.d.ts +10 -0
- package/kanban/README.md +6 -4
- package/kanban/lib/kanban/kanban.module.d.ts +10 -0
- package/label-value/README.md +5 -4
- package/label-value/lib/label-value/label-value.module.d.ts +7 -0
- package/loading-state/README.md +9 -5
- package/loading-state/lib/loading-state/loading-state.module.d.ts +7 -0
- package/locale/lib/locale/locale.module.d.ts +13 -0
- package/locale/lib/locale/pipes/localized-bignumber-impure.pipe.d.ts +2 -2
- package/locale/lib/locale/pipes/localized-bignumber.pipe.d.ts +20 -1
- package/locale/lib/locale/provide-locale.d.ts +18 -0
- package/locale/public-api.d.ts +1 -0
- package/localized-number-input/README.md +32 -8
- package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +4 -0
- package/localized-number-input/lib/localized-number-input/localized-number-input.module.d.ts +7 -0
- package/mask/lib/mask/mask-formatter.module.d.ts +7 -0
- package/mouse-events/README.md +5 -4
- package/mouse-events/lib/mouse-events/mouse-events.module.d.ts +7 -0
- package/navigation-button/README.md +5 -4
- package/navigation-button/lib/navigation-button/navigation-button.module.d.ts +7 -0
- package/number-input/lib/number-input/number-input.directive.d.ts +1 -1
- package/number-input/lib/number-input/number-input.module.d.ts +8 -1
- package/numeric/README.md +6 -5
- package/numeric/lib/numeric.module.d.ts +7 -0
- package/numeric-mask/README.md +44 -1
- package/numeric-mask/lib/numeric-mask/numeric-mask.directive.d.ts +65 -4
- package/numeric-mask/lib/numeric-mask/numeric-mask.module.d.ts +7 -0
- package/object-card/README.md +11 -4
- package/object-card/lib/object-card/object-card.module.d.ts +11 -0
- package/package.json +1 -1
- package/panel/README.md +8 -4
- package/panel/lib/panel/panel.module.d.ts +10 -0
- package/password-strength/README.md +6 -3
- package/password-strength/lib/password-strength/password-strength.module.d.ts +7 -0
- package/picklist/README.md +8 -5
- package/picklist/lib/picklist/picklist.module.d.ts +7 -0
- package/pin-code-field/lib/pin-code-field.module.d.ts +7 -0
- package/product-header/README.md +2 -2
- package/profile-picture-picker/README.md +6 -3
- package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.d.ts +7 -0
- package/progressbar/README.md +6 -3
- package/progressbar/lib/progressbar/progressbar.module.d.ts +7 -0
- package/rating-scale/README.md +6 -3
- package/rating-scale/lib/rating-scale/rating-scale.module.d.ts +7 -0
- package/schematics/collection.json +40 -0
- package/schematics/migrations/migrate-app-to-standalone/index.d.ts +32 -0
- package/schematics/migrations/migrate-app-to-standalone/index.js +98 -0
- package/schematics/migrations/migrate-app-to-standalone/index.js.map +1 -0
- package/schematics/migrations/migrate-deprecated-apis/index.d.ts +49 -0
- package/schematics/migrations/migrate-deprecated-apis/index.js +660 -0
- package/schematics/migrations/migrate-deprecated-apis/index.js.map +1 -0
- package/schematics/migrations/migrate-deprecated-datepicker/index.d.ts +31 -0
- package/schematics/migrations/migrate-deprecated-datepicker/index.js +115 -0
- package/schematics/migrations/migrate-deprecated-datepicker/index.js.map +1 -0
- package/schematics/migrations/migrate-deprecated-dynamic-form/index.d.ts +52 -0
- package/schematics/migrations/migrate-deprecated-dynamic-form/index.js +661 -0
- package/schematics/migrations/migrate-deprecated-dynamic-form/index.js.map +1 -0
- package/schematics/migrations/migrate-deprecated-imports/index.d.ts +23 -0
- package/schematics/migrations/migrate-deprecated-imports/index.js +335 -0
- package/schematics/migrations/migrate-deprecated-imports/index.js.map +1 -0
- package/schematics/migrations/migrate-deprecated-selectors/index.d.ts +15 -0
- package/schematics/migrations/migrate-deprecated-selectors/index.js +76 -0
- package/schematics/migrations/migrate-deprecated-selectors/index.js.map +1 -0
- package/schematics/migrations/migrate-modules-to-standalone/index.d.ts +51 -0
- package/schematics/migrations/migrate-modules-to-standalone/index.js +632 -0
- package/schematics/migrations/migrate-modules-to-standalone/index.js.map +1 -0
- package/schematics/migrations/migrate-modules-to-standalone/modules-map.json +1656 -0
- package/schematics/migrations/migrate-v20/index.d.ts +9 -0
- package/schematics/migrations/migrate-v20/index.js +90 -0
- package/schematics/migrations/migrate-v20/index.js.map +1 -0
- package/schematics/migrations/migrate-v20/items.d.ts +7 -0
- package/schematics/migrations/migrate-v20/items.js +54 -0
- package/schematics/migrations/migrate-v20/items.js.map +1 -0
- package/schematics/migrations/migrate-v20/plan.d.ts +32 -0
- package/schematics/migrations/migrate-v20/plan.js +29 -0
- package/schematics/migrations/migrate-v20/plan.js.map +1 -0
- package/schematics/migrations.json +5 -1
- package/schematics/schema/app-standalone.schema.json +21 -0
- package/schematics/schema/migrate-v20.schema.json +33 -0
- package/schematics/schema/scope.schema.json +17 -0
- package/schematics/utils/ast-utils.js +16 -0
- package/schematics/utils/ast-utils.js.map +1 -1
- package/schematics/utils/eol.d.ts +5 -0
- package/schematics/utils/eol.js +17 -0
- package/schematics/utils/eol.js.map +1 -0
- package/schematics/utils/prompt-utils.d.ts +62 -0
- package/schematics/utils/prompt-utils.js +166 -0
- package/schematics/utils/prompt-utils.js.map +1 -0
- package/schematics/utils/report.d.ts +27 -0
- package/schematics/utils/report.js +70 -0
- package/schematics/utils/report.js.map +1 -0
- package/schematics/utils/scope.d.ts +17 -0
- package/schematics/utils/scope.js +55 -0
- package/schematics/utils/scope.js.map +1 -0
- package/schematics/utils/selection.d.ts +21 -0
- package/schematics/utils/selection.js +60 -0
- package/schematics/utils/selection.js.map +1 -0
- package/schematics/utils/symbol-utils.d.ts +31 -0
- package/schematics/utils/symbol-utils.js +202 -0
- package/schematics/utils/symbol-utils.js.map +1 -0
- package/schematics/utils/template-utils.d.ts +62 -0
- package/schematics/utils/template-utils.js +165 -0
- package/schematics/utils/template-utils.js.map +1 -0
- package/schematics/utils/tsconfig-paths.d.ts +5 -0
- package/schematics/utils/tsconfig-paths.js +73 -0
- package/schematics/utils/tsconfig-paths.js.map +1 -0
- package/select/lib/select/select.component.d.ts +8 -0
- package/select-button/README.md +6 -3
- package/select-button/lib/select-button/select-button.module.d.ts +7 -0
- package/shared/lib/shared/border-button/border-button.module.d.ts +7 -0
- package/sidebar/README.md +2 -2
- package/slide-in-bar/README.md +5 -5
- package/slide-in-bar/lib/slide-in-bar/slide-in-bar.module.d.ts +7 -0
- package/slider/README.md +6 -3
- package/slider/lib/slider/slider.module.d.ts +7 -0
- package/speech-recognition/README.md +6 -3
- package/speech-recognition/lib/speech-recognition/speech-recognition.module.d.ts +7 -0
- package/split-button/README.md +6 -3
- package/split-button/lib/split-button/split-button.module.d.ts +7 -0
- package/stats-card/README.md +6 -3
- package/stats-card/lib/stats-card/stats-card.module.d.ts +7 -0
- package/stepper/README.md +6 -3
- package/stepper/lib/stepper/stepper.module.d.ts +7 -0
- package/structure/lib/structure/structure.module.d.ts +7 -0
- package/switch/README.md +6 -3
- package/switch/lib/switch/switch.module.d.ts +7 -0
- package/table/README.md +12 -4
- package/table/lib/table/table.module.d.ts +8 -0
- package/table-header/lib/table-header/table-header-checkox.module.d.ts +7 -0
- package/template/README.md +0 -11
- package/template/lib/template/template.module.d.ts +7 -0
- package/text-area/lib/text-area.module.d.ts +7 -0
- package/text-area-ia/README.md +1 -1
- package/thumbnail/lib/thumbnail/thumbnail.module.d.ts +7 -0
- package/thumbnails/lib/thumbnails/thumbnails.module.d.ts +7 -0
- package/tiered-menu/lib/tiered-menu/tiered-menu.module.d.ts +7 -0
- package/tile/lib/tile/tile.module.d.ts +10 -0
- package/timeline/lib/timeline/timeline.module.d.ts +7 -0
- package/toast/lib/toast/toast.module.d.ts +7 -0
- package/token-list/lib/token-list/token-list.module.d.ts +7 -0
- package/tooltip/lib/tooltip/tooltip.module.d.ts +7 -0
- package/topbar/lib/topbar/topbar.module.d.ts +10 -0
- package/tree/lib/tree/tree.module.d.ts +7 -0
- package/workspace-switch/lib/workspace-switch/workspace-switch.module.d.ts +7 -0
- package/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.d.ts +0 -664
- package/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.d.ts +0 -29
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +0 -96
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +0 -124
|
@@ -232,6 +232,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
232
232
|
type: Output
|
|
233
233
|
}] } });
|
|
234
234
|
|
|
235
|
+
/**
|
|
236
|
+
* @deprecated Será removido na v20. Importe diretamente os standalones `GlobalSearchComponent` e
|
|
237
|
+
* `GlobalSearchDropdownItemComponent` (de `@seniorsistemas/angular-components/global-search`) no lugar deste
|
|
238
|
+
* módulo.
|
|
239
|
+
*
|
|
240
|
+
* Este módulo também reexportava `TooltipDirective` (`@seniorsistemas/angular-components/tooltip`, usado em
|
|
241
|
+
* templates por `[sTooltip]`), `ThumbnailComponent` (`@seniorsistemas/angular-components/thumbnail`, usado em
|
|
242
|
+
* templates por `<s-thumbnail>`), `ButtonComponent` (`@seniorsistemas/angular-components/button`, usado em
|
|
243
|
+
* templates por `<s-button>`), `LoadingStateComponent` (`@seniorsistemas/angular-components/loading-state`,
|
|
244
|
+
* usado em templates por `<s-loading-state>`), `LoadingStateDirective`
|
|
245
|
+
* (`@seniorsistemas/angular-components/loading-state`, usado em templates por `[sLoadingState]`),
|
|
246
|
+
* `EmptyStateComponent` (`@seniorsistemas/angular-components/empty-state`, usado em templates por
|
|
247
|
+
* `<s-empty-state>`) e `EmptyStateGoBackComponent` (`@seniorsistemas/angular-components/empty-state`, usado
|
|
248
|
+
* em templates por `<s-empty-state-go-back>`). Se o seu template usa algum deles, importe-o diretamente.
|
|
249
|
+
*
|
|
250
|
+
* Migração automática (também executada pelo `ng update` na v20):
|
|
251
|
+
* `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
|
|
252
|
+
*/
|
|
235
253
|
class GlobalSearchModule {
|
|
236
254
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GlobalSearchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
237
255
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: GlobalSearchModule, imports: [TooltipModule,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-global-search.mjs","sources":["../../projects/angular-components/global-search/src/lib/global-search/components/dropdown/global-search-dropdown-item.component.ts","../../projects/angular-components/global-search/src/lib/global-search/components/dropdown/global-search-dropdown-item.component.html","../../projects/angular-components/global-search/src/lib/global-search/global-search.component.ts","../../projects/angular-components/global-search/src/lib/global-search/global-search.component.html","../../projects/angular-components/global-search/src/lib/global-search/global-search.module.ts","../../projects/angular-components/global-search/src/seniorsistemas-angular-components-global-search.ts"],"sourcesContent":["import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ViewChild } from '@angular/core';\r\n\r\nimport { GlobalSearchSizeEnum } from '../../types/global-search-size.enum';\r\nimport { ThumbnailComponent } from '@seniorsistemas/angular-components/thumbnail';\r\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\r\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\n\r\n@Component({\r\n selector: 's-global-search-dropdown-item',\r\n templateUrl: './global-search-dropdown-item.component.html',\r\n styleUrls: ['./global-search-dropdown-item.component.scss'],\r\n standalone: true,\r\n imports: [ThumbnailComponent, ButtonComponent, TooltipDirective, NgClass, NgTemplateOutlet],\r\n})\r\nexport class GlobalSearchDropdownItemComponent {\r\n public static nextId = 0;\r\n\r\n @Input()\r\n public id = `s-global-search-dropdown-item-${GlobalSearchDropdownItemComponent.nextId++}`;\r\n\r\n @Input()\r\n public primaryLabel?: string;\r\n\r\n @Input()\r\n public secondaryEmptyLabel?: string;\r\n\r\n @Input()\r\n public tertiaryEmptyLabel?: string;\r\n\r\n @Input()\r\n public imageSource?: string;\r\n\r\n @Input()\r\n public imageAlt?: string;\r\n\r\n @Input()\r\n public iconClass?: string;\r\n\r\n @Input()\r\n public secondaryLabel?: string;\r\n\r\n @Input()\r\n public tertiaryLabel?: string;\r\n\r\n @Input()\r\n public size: GlobalSearchSizeEnum = 'standart';\r\n\r\n @Input()\r\n public template: TemplateRef<any> | null = null;\r\n\r\n @Output()\r\n public buttonClick = new EventEmitter<void>();\r\n\r\n @ContentChild(ThumbnailComponent, { static: true })\r\n public thumbnailComponent: ThumbnailComponent | null = null;\r\n\r\n @ViewChild(TemplateRef, { static: true })\r\n public content: TemplateRef<any> | null = null;\r\n\r\n public isMediumSize(): boolean {\r\n return this.size === 'medium';\r\n }\r\n\r\n public isSmallSize(): boolean {\r\n return this.size === 'small';\r\n }\r\n\r\n public getImageSize(): 'medium' | 'small' {\r\n return this._isStandardSize() ? 'medium' : 'small';\r\n }\r\n\r\n private _isStandardSize(): boolean {\r\n return this.size === 'standart';\r\n }\r\n}\r\n","<ng-template>\r\n <div\r\n class=\"global-search-dropdown-item\"\r\n [ngClass]=\"{ 'grid grid-cols-2 gap-2': isSmallSize() }\"\r\n >\r\n <ng-content select=\"s-thumbnail\"></ng-content>\r\n\r\n @if (!thumbnailComponent && (imageSource || iconClass) && !isSmallSize()) {\r\n <s-thumbnail\r\n [id]=\"id + '-thumbnail'\"\r\n [imageSource]=\"imageSource\"\r\n [imageAlt]=\"imageAlt || primaryLabel\"\r\n [iconClass]=\"iconClass ?? ''\"\r\n [size]=\"getImageSize()\"\r\n ></s-thumbnail>\r\n }\r\n\r\n <div\r\n class=\"global-search-item__container ml-[10px] only:ml-0 w-full whitespace-nowrap max-md:whitespace-normal overflow-hidden text-ellipsis {{ !isSmallSize() ? 'w-[60%]' : '' }}\"\r\n >\r\n <div #titleTemplate>\r\n <ng-content select=\"[titleTemplate]\"></ng-content>\r\n </div>\r\n @if (!titleTemplate.children.length) {\r\n <s-button\r\n styleClass=\"no-padding\"\r\n [id]=\"id + '-title'\"\r\n priority=\"link\"\r\n [sTooltip]=\"primaryLabel\"\r\n tooltipPosition=\"right\"\r\n [showDelay]=\"0\"\r\n [escape]=\"true\"\r\n [label]=\"primaryLabel\"\r\n size=\"small\"\r\n (clicked)=\"buttonClick.emit()\"\r\n >\r\n </s-button>\r\n }\r\n\r\n <div #labelTemplate>\r\n <ng-content select=\"[labelTemplate]\"></ng-content>\r\n </div>\r\n\r\n @if (!labelTemplate.children.length) {\r\n <span\r\n [id]=\"id + '-label'\"\r\n [ngClass]=\"{\r\n 'text-right pt-[2px] pl-[15px]': isSmallSize(),\r\n 'italic': !secondaryLabel,\r\n }\"\r\n class=\"text-grayscale-90 block whitespace-nowrap max-md:whitespace-normal overflow-hidden text-ellipsis\"\r\n [sTooltip]=\"secondaryLabel\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n [escape]=\"true\"\r\n >{{ secondaryLabel ? secondaryLabel : secondaryEmptyLabel }}</span\r\n >\r\n }\r\n\r\n <div #descriptionTemplate>\r\n <ng-content select=\"[descriptionTemplate]\"></ng-content>\r\n </div>\r\n\r\n @if (!descriptionTemplate.children.length && !isMediumSize() && !isSmallSize()) {\r\n <span\r\n [id]=\"id + '-description'\"\r\n class=\"text-grayscale-50 block whitespace-nowrap max-md:whitespace-normal overflow-hidden text-ellipsis\"\r\n [ngClass]=\"{ 'italic': !secondaryLabel }\"\r\n [sTooltip]=\"tertiaryLabel\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n [escape]=\"true\"\r\n >\r\n {{ tertiaryLabel ? tertiaryLabel : tertiaryEmptyLabel }}\r\n </span>\r\n }\r\n </div>\r\n @if (!isSmallSize()) {\r\n <div class=\"w-[40%] flex flex-col text-right\">\r\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n</ng-template>\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n QueryList,\r\n inject,\r\n} from '@angular/core';\r\n\r\nimport { GlobalSearchDropdownItemComponent } from './components/dropdown/global-search-dropdown-item.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { LoadingStateDirective } from '@seniorsistemas/angular-components/loading-state';\r\nimport { NgTemplateOutlet, NgClass } from '@angular/common';\r\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\r\nimport { EmptyStateComponent } from '@seniorsistemas/angular-components/empty-state';\r\n\r\n/**\r\n * @description Componente de busca global com input, dropdown de resultados, estado\r\n * de carregamento, empty state e suporte a itens customizáveis via `GlobalSearchDropdownItemComponent`.\r\n *\r\n * @example\r\n * ```html\r\n * <s-global-search\r\n * totalItensLabel=\"resultados\"\r\n * showMoreLabel=\"Ver mais\"\r\n * [totalElements]=\"total\"\r\n * (search)=\"onBusca($event)\" />\r\n * ```\r\n *\r\n * @category Structure\r\n */\r\n@Component({\r\n selector: 's-global-search',\r\n templateUrl: './global-search.component.html',\r\n styleUrls: ['./global-search.component.scss'],\r\n animations: [\r\n trigger('expandableContent', [\r\n state('*', style({ height: '0' })),\r\n state('false', style({ height: '0' })),\r\n state('true', style({ height: '*' })),\r\n transition('* => true', animate('200ms ease-out')),\r\n transition('false <=> true', animate('200ms ease-out')),\r\n ]),\r\n ],\r\n standalone: true,\r\n imports: [\r\n FormsModule,\r\n LoadingStateDirective,\r\n NgTemplateOutlet,\r\n ButtonComponent,\r\n EmptyStateComponent,\r\n NgClass,\r\n ],\r\n})\r\nexport class GlobalSearchComponent {\r\n private readonly _cdr = inject(ChangeDetectorRef);\r\n\r\n public static nextId = 0;\r\n\r\n /** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */\r\n @Input()\r\n public id = `s-global-search-${GlobalSearchDropdownItemComponent.nextId++}`;\r\n\r\n /** @description Tempo de debounce em ms antes de emitir o evento de busca. @default 500 */\r\n @Input()\r\n public delay = 500;\r\n\r\n /** @description Label que acompanha o total de resultados. Campo obrigatório. */\r\n @Input({ required: true })\r\n public totalItensLabel!: string;\r\n\r\n /** @description Rótulo do link para exibir mais resultados. Campo obrigatório. */\r\n @Input({ required: true })\r\n public showMoreLabel!: string;\r\n\r\n /** @description Placeholder do input de busca. */\r\n @Input()\r\n public placeholder?: string;\r\n\r\n /** @description Exibe indicador de carregamento no dropdown. @default false */\r\n @Input()\r\n public isLoading = false;\r\n\r\n /** @description Número total de resultados encontrados. */\r\n @Input()\r\n public totalElements?: number;\r\n\r\n /** @description Título do empty state quando não há resultados. */\r\n @Input()\r\n public emptyTitle?: string;\r\n\r\n /** @description Descrição do empty state exibida abaixo do título. */\r\n @Input()\r\n public emptyDescription?: string;\r\n\r\n /** @description Classe do ícone exibido no empty state. */\r\n @Input()\r\n public emptyIcon?: string;\r\n\r\n /** @description Exibe o rodapé com o link \"ver mais\" e contagem de resultados. @default true */\r\n @Input() showFooter = true;\r\n\r\n @ContentChildren(GlobalSearchDropdownItemComponent)\r\n public dropdownItens: QueryList<GlobalSearchDropdownItemComponent> | null = null;\r\n\r\n /** @description Emitido ao digitar no campo de busca, com o valor atual da pesquisa. */\r\n @Output()\r\n public searched = new EventEmitter<string>();\r\n\r\n /** @description Emitido quando o campo de busca ganha ou perde foco (`true` = focado). */\r\n @Output()\r\n public focused = new EventEmitter<boolean>();\r\n\r\n /** @description Emitido ao clicar no link para exibir mais resultados. */\r\n @Output()\r\n public moreShown = new EventEmitter<void>();\r\n\r\n public search: string | null = null;\r\n public wasSearched = false;\r\n public isModalLoading = false;\r\n public expanded = true;\r\n\r\n private isFocused = false;\r\n\r\n /**\r\n * @description Controla a largura do campo: fica compacto quando não está focado\r\n * nem tem texto digitado, e expande ao focar ou ao ter conteúdo (mesmo sem foco).\r\n */\r\n protected get isExpanded(): boolean {\r\n return this.isFocused || !!this.search;\r\n }\r\n\r\n public onChange() {\r\n const search = this.search;\r\n setTimeout(() => {\r\n if (this.search === search) {\r\n this._canShowGlobalSearchActive();\r\n this.searched.emit(this.search ?? '');\r\n }\r\n }, this.delay);\r\n }\r\n\r\n public focusIn() {\r\n this.isFocused = true;\r\n this.focused.emit(true);\r\n }\r\n\r\n public focusOut() {\r\n this.isFocused = false;\r\n this.focused.emit(false);\r\n }\r\n\r\n public showMore() {\r\n this.moreShown.emit();\r\n }\r\n\r\n public close() {\r\n this.search = null;\r\n this.wasSearched = false;\r\n this.dropdownItens = null;\r\n this.isModalLoading = false;\r\n }\r\n\r\n private _canShowGlobalSearchActive() {\r\n this.wasSearched = !!this.search;\r\n if (!this.search) {\r\n this.close();\r\n }\r\n this._cdr.detectChanges();\r\n }\r\n}\r\n","<div class=\"global-search__wrapper group flex max-w-full\">\r\n <input\r\n class=\"global-search__input rounded-tl-[20px] rounded-bl-[20px] rounded-tr-none rounded-br-none border border-solid border-grayscale-30 border-r-0 cursor-pointer h-[25px] min-h-[25px] pl-[15px] text-sm font-open-sans outline-none bg-grayscale-0 transition-all duration-300 w-[136px]\"\r\n [class.global-search__input-active]=\"isExpanded\"\r\n [(ngModel)]=\"search\"\r\n (ngModelChange)=\"onChange()\"\r\n [placeholder]=\"placeholder\"\r\n (focus)=\"focusIn()\"\r\n (blur)=\"focusOut()\"\r\n />\r\n <span class=\"global-search__span items-center bg-transparent border border-solid border-grayscale-30 border-l-0 rounded-tr-[20px] rounded-br-[20px] flex h-[25px] justify-center px-2 transition-all duration-300\">\r\n <em class=\"fas fa-search\"></em>\r\n </span>\r\n\r\n @if (wasSearched) {\r\n <div class=\"bg-grayscale-0 rounded-[5px] shadow-[0_2px_8px_0_rgba(0,0,0,0.4)] mt-[60px] min-h-[50px] absolute w-[500px] z-[6]\">\r\n <div\r\n *sLoadingState=\"isLoading && !isModalLoading\"\r\n class=\"global-search__loader\"\r\n >\r\n @if ((dropdownItens && dropdownItens.length > 0) || isLoading) {\r\n <div class=\"min-h-[50px] w-full\">\r\n @if (dropdownItens && dropdownItens.length > 0) {\r\n <div>\r\n <div class=\"border-b border-solid border-grayscale-30 text-grayscale-90 font-semibold h-[50px] p-[15px] flex items-center justify-between\">\r\n <span class=\"m-0 p-0\">{{ totalItensLabel }}</span>\r\n <span\r\n class=\"m-0 p-0 cursor-pointer text-right\"\r\n (click)=\"close()\"\r\n >\r\n <em class=\"fas fa-times\"></em>\r\n </span>\r\n </div>\r\n <div\r\n class=\"max-h-[510px] overflow-auto\"\r\n [@expandableContent]=\"expanded\"\r\n >\r\n @for (item of dropdownItens; track item.id) {\r\n <div\r\n class=\"s-object-card-field hover:bg-[#dbe0e4]\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"item.content\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (showFooter) {\r\n <div class=\"border-t border-solid border-grayscale-30 h-[50px]\">\r\n <s-button\r\n class=\"flex flex-col\"\r\n (click)=\"showMore()\"\r\n priority=\"link\"\r\n >\r\n {{ showMoreLabel }}\r\n </s-button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n @if ((!dropdownItens || !dropdownItens.length) && !isLoading) {\r\n <s-empty-state\r\n [title]=\"emptyTitle ?? ''\"\r\n [description]=\"emptyDescription\"\r\n ngClass=\"global-search__empty-state--icon\"\r\n [iconClass]=\"emptyIcon ? emptyIcon : 'fas fa-search'\"\r\n >\r\n </s-empty-state>\r\n }\r\n </div>\r\n </div>\r\n }\r\n\r\n @if (wasSearched) {\r\n <div\r\n class=\"bg-[rgba(0,0,0,0.4)] cursor-pointer h-[calc(100vh-70px)] left-0 mt-[50px] absolute w-full z-[5]\"\r\n (click)=\"close()\"\r\n ></div>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\r\nimport { EmptyStateModule } from '@seniorsistemas/angular-components/empty-state';\r\nimport { LoadingStateModule } from '@seniorsistemas/angular-components/loading-state';\r\nimport { ThumbnailModule } from '@seniorsistemas/angular-components/thumbnail';\r\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\r\nimport { GlobalSearchDropdownItemComponent } from './components/dropdown/global-search-dropdown-item.component';\r\nimport { GlobalSearchComponent } from './global-search.component';\r\n\r\n@NgModule({\r\n imports: [\r\n TooltipModule,\r\n ThumbnailModule,\r\n ButtonModule,\r\n LoadingStateModule,\r\n EmptyStateModule,\r\n GlobalSearchComponent,\r\n GlobalSearchDropdownItemComponent,\r\n ],\r\n exports: [\r\n GlobalSearchComponent,\r\n GlobalSearchDropdownItemComponent,\r\n TooltipModule,\r\n ThumbnailModule,\r\n ButtonModule,\r\n LoadingStateModule,\r\n EmptyStateModule,\r\n ],\r\n})\r\nexport class GlobalSearchModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-global-search.mjs","sources":["../../projects/angular-components/global-search/src/lib/global-search/components/dropdown/global-search-dropdown-item.component.ts","../../projects/angular-components/global-search/src/lib/global-search/components/dropdown/global-search-dropdown-item.component.html","../../projects/angular-components/global-search/src/lib/global-search/global-search.component.ts","../../projects/angular-components/global-search/src/lib/global-search/global-search.component.html","../../projects/angular-components/global-search/src/lib/global-search/global-search.module.ts","../../projects/angular-components/global-search/src/seniorsistemas-angular-components-global-search.ts"],"sourcesContent":["import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ViewChild } from '@angular/core';\r\n\r\nimport { GlobalSearchSizeEnum } from '../../types/global-search-size.enum';\r\nimport { ThumbnailComponent } from '@seniorsistemas/angular-components/thumbnail';\r\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\r\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\n\r\n@Component({\r\n selector: 's-global-search-dropdown-item',\r\n templateUrl: './global-search-dropdown-item.component.html',\r\n styleUrls: ['./global-search-dropdown-item.component.scss'],\r\n standalone: true,\r\n imports: [ThumbnailComponent, ButtonComponent, TooltipDirective, NgClass, NgTemplateOutlet],\r\n})\r\nexport class GlobalSearchDropdownItemComponent {\r\n public static nextId = 0;\r\n\r\n @Input()\r\n public id = `s-global-search-dropdown-item-${GlobalSearchDropdownItemComponent.nextId++}`;\r\n\r\n @Input()\r\n public primaryLabel?: string;\r\n\r\n @Input()\r\n public secondaryEmptyLabel?: string;\r\n\r\n @Input()\r\n public tertiaryEmptyLabel?: string;\r\n\r\n @Input()\r\n public imageSource?: string;\r\n\r\n @Input()\r\n public imageAlt?: string;\r\n\r\n @Input()\r\n public iconClass?: string;\r\n\r\n @Input()\r\n public secondaryLabel?: string;\r\n\r\n @Input()\r\n public tertiaryLabel?: string;\r\n\r\n @Input()\r\n public size: GlobalSearchSizeEnum = 'standart';\r\n\r\n @Input()\r\n public template: TemplateRef<any> | null = null;\r\n\r\n @Output()\r\n public buttonClick = new EventEmitter<void>();\r\n\r\n @ContentChild(ThumbnailComponent, { static: true })\r\n public thumbnailComponent: ThumbnailComponent | null = null;\r\n\r\n @ViewChild(TemplateRef, { static: true })\r\n public content: TemplateRef<any> | null = null;\r\n\r\n public isMediumSize(): boolean {\r\n return this.size === 'medium';\r\n }\r\n\r\n public isSmallSize(): boolean {\r\n return this.size === 'small';\r\n }\r\n\r\n public getImageSize(): 'medium' | 'small' {\r\n return this._isStandardSize() ? 'medium' : 'small';\r\n }\r\n\r\n private _isStandardSize(): boolean {\r\n return this.size === 'standart';\r\n }\r\n}\r\n","<ng-template>\r\n <div\r\n class=\"global-search-dropdown-item\"\r\n [ngClass]=\"{ 'grid grid-cols-2 gap-2': isSmallSize() }\"\r\n >\r\n <ng-content select=\"s-thumbnail\"></ng-content>\r\n\r\n @if (!thumbnailComponent && (imageSource || iconClass) && !isSmallSize()) {\r\n <s-thumbnail\r\n [id]=\"id + '-thumbnail'\"\r\n [imageSource]=\"imageSource\"\r\n [imageAlt]=\"imageAlt || primaryLabel\"\r\n [iconClass]=\"iconClass ?? ''\"\r\n [size]=\"getImageSize()\"\r\n ></s-thumbnail>\r\n }\r\n\r\n <div\r\n class=\"global-search-item__container ml-[10px] only:ml-0 w-full whitespace-nowrap max-md:whitespace-normal overflow-hidden text-ellipsis {{ !isSmallSize() ? 'w-[60%]' : '' }}\"\r\n >\r\n <div #titleTemplate>\r\n <ng-content select=\"[titleTemplate]\"></ng-content>\r\n </div>\r\n @if (!titleTemplate.children.length) {\r\n <s-button\r\n styleClass=\"no-padding\"\r\n [id]=\"id + '-title'\"\r\n priority=\"link\"\r\n [sTooltip]=\"primaryLabel\"\r\n tooltipPosition=\"right\"\r\n [showDelay]=\"0\"\r\n [escape]=\"true\"\r\n [label]=\"primaryLabel\"\r\n size=\"small\"\r\n (clicked)=\"buttonClick.emit()\"\r\n >\r\n </s-button>\r\n }\r\n\r\n <div #labelTemplate>\r\n <ng-content select=\"[labelTemplate]\"></ng-content>\r\n </div>\r\n\r\n @if (!labelTemplate.children.length) {\r\n <span\r\n [id]=\"id + '-label'\"\r\n [ngClass]=\"{\r\n 'text-right pt-[2px] pl-[15px]': isSmallSize(),\r\n 'italic': !secondaryLabel,\r\n }\"\r\n class=\"text-grayscale-90 block whitespace-nowrap max-md:whitespace-normal overflow-hidden text-ellipsis\"\r\n [sTooltip]=\"secondaryLabel\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n [escape]=\"true\"\r\n >{{ secondaryLabel ? secondaryLabel : secondaryEmptyLabel }}</span\r\n >\r\n }\r\n\r\n <div #descriptionTemplate>\r\n <ng-content select=\"[descriptionTemplate]\"></ng-content>\r\n </div>\r\n\r\n @if (!descriptionTemplate.children.length && !isMediumSize() && !isSmallSize()) {\r\n <span\r\n [id]=\"id + '-description'\"\r\n class=\"text-grayscale-50 block whitespace-nowrap max-md:whitespace-normal overflow-hidden text-ellipsis\"\r\n [ngClass]=\"{ 'italic': !secondaryLabel }\"\r\n [sTooltip]=\"tertiaryLabel\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n [escape]=\"true\"\r\n >\r\n {{ tertiaryLabel ? tertiaryLabel : tertiaryEmptyLabel }}\r\n </span>\r\n }\r\n </div>\r\n @if (!isSmallSize()) {\r\n <div class=\"w-[40%] flex flex-col text-right\">\r\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n</ng-template>\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n QueryList,\r\n inject,\r\n} from '@angular/core';\r\n\r\nimport { GlobalSearchDropdownItemComponent } from './components/dropdown/global-search-dropdown-item.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { LoadingStateDirective } from '@seniorsistemas/angular-components/loading-state';\r\nimport { NgTemplateOutlet, NgClass } from '@angular/common';\r\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\r\nimport { EmptyStateComponent } from '@seniorsistemas/angular-components/empty-state';\r\n\r\n/**\r\n * @description Componente de busca global com input, dropdown de resultados, estado\r\n * de carregamento, empty state e suporte a itens customizáveis via `GlobalSearchDropdownItemComponent`.\r\n *\r\n * @example\r\n * ```html\r\n * <s-global-search\r\n * totalItensLabel=\"resultados\"\r\n * showMoreLabel=\"Ver mais\"\r\n * [totalElements]=\"total\"\r\n * (search)=\"onBusca($event)\" />\r\n * ```\r\n *\r\n * @category Structure\r\n */\r\n@Component({\r\n selector: 's-global-search',\r\n templateUrl: './global-search.component.html',\r\n styleUrls: ['./global-search.component.scss'],\r\n animations: [\r\n trigger('expandableContent', [\r\n state('*', style({ height: '0' })),\r\n state('false', style({ height: '0' })),\r\n state('true', style({ height: '*' })),\r\n transition('* => true', animate('200ms ease-out')),\r\n transition('false <=> true', animate('200ms ease-out')),\r\n ]),\r\n ],\r\n standalone: true,\r\n imports: [\r\n FormsModule,\r\n LoadingStateDirective,\r\n NgTemplateOutlet,\r\n ButtonComponent,\r\n EmptyStateComponent,\r\n NgClass,\r\n ],\r\n})\r\nexport class GlobalSearchComponent {\r\n private readonly _cdr = inject(ChangeDetectorRef);\r\n\r\n public static nextId = 0;\r\n\r\n /** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */\r\n @Input()\r\n public id = `s-global-search-${GlobalSearchDropdownItemComponent.nextId++}`;\r\n\r\n /** @description Tempo de debounce em ms antes de emitir o evento de busca. @default 500 */\r\n @Input()\r\n public delay = 500;\r\n\r\n /** @description Label que acompanha o total de resultados. Campo obrigatório. */\r\n @Input({ required: true })\r\n public totalItensLabel!: string;\r\n\r\n /** @description Rótulo do link para exibir mais resultados. Campo obrigatório. */\r\n @Input({ required: true })\r\n public showMoreLabel!: string;\r\n\r\n /** @description Placeholder do input de busca. */\r\n @Input()\r\n public placeholder?: string;\r\n\r\n /** @description Exibe indicador de carregamento no dropdown. @default false */\r\n @Input()\r\n public isLoading = false;\r\n\r\n /** @description Número total de resultados encontrados. */\r\n @Input()\r\n public totalElements?: number;\r\n\r\n /** @description Título do empty state quando não há resultados. */\r\n @Input()\r\n public emptyTitle?: string;\r\n\r\n /** @description Descrição do empty state exibida abaixo do título. */\r\n @Input()\r\n public emptyDescription?: string;\r\n\r\n /** @description Classe do ícone exibido no empty state. */\r\n @Input()\r\n public emptyIcon?: string;\r\n\r\n /** @description Exibe o rodapé com o link \"ver mais\" e contagem de resultados. @default true */\r\n @Input() showFooter = true;\r\n\r\n @ContentChildren(GlobalSearchDropdownItemComponent)\r\n public dropdownItens: QueryList<GlobalSearchDropdownItemComponent> | null = null;\r\n\r\n /** @description Emitido ao digitar no campo de busca, com o valor atual da pesquisa. */\r\n @Output()\r\n public searched = new EventEmitter<string>();\r\n\r\n /** @description Emitido quando o campo de busca ganha ou perde foco (`true` = focado). */\r\n @Output()\r\n public focused = new EventEmitter<boolean>();\r\n\r\n /** @description Emitido ao clicar no link para exibir mais resultados. */\r\n @Output()\r\n public moreShown = new EventEmitter<void>();\r\n\r\n public search: string | null = null;\r\n public wasSearched = false;\r\n public isModalLoading = false;\r\n public expanded = true;\r\n\r\n private isFocused = false;\r\n\r\n /**\r\n * @description Controla a largura do campo: fica compacto quando não está focado\r\n * nem tem texto digitado, e expande ao focar ou ao ter conteúdo (mesmo sem foco).\r\n */\r\n protected get isExpanded(): boolean {\r\n return this.isFocused || !!this.search;\r\n }\r\n\r\n public onChange() {\r\n const search = this.search;\r\n setTimeout(() => {\r\n if (this.search === search) {\r\n this._canShowGlobalSearchActive();\r\n this.searched.emit(this.search ?? '');\r\n }\r\n }, this.delay);\r\n }\r\n\r\n public focusIn() {\r\n this.isFocused = true;\r\n this.focused.emit(true);\r\n }\r\n\r\n public focusOut() {\r\n this.isFocused = false;\r\n this.focused.emit(false);\r\n }\r\n\r\n public showMore() {\r\n this.moreShown.emit();\r\n }\r\n\r\n public close() {\r\n this.search = null;\r\n this.wasSearched = false;\r\n this.dropdownItens = null;\r\n this.isModalLoading = false;\r\n }\r\n\r\n private _canShowGlobalSearchActive() {\r\n this.wasSearched = !!this.search;\r\n if (!this.search) {\r\n this.close();\r\n }\r\n this._cdr.detectChanges();\r\n }\r\n}\r\n","<div class=\"global-search__wrapper group flex max-w-full\">\r\n <input\r\n class=\"global-search__input rounded-tl-[20px] rounded-bl-[20px] rounded-tr-none rounded-br-none border border-solid border-grayscale-30 border-r-0 cursor-pointer h-[25px] min-h-[25px] pl-[15px] text-sm font-open-sans outline-none bg-grayscale-0 transition-all duration-300 w-[136px]\"\r\n [class.global-search__input-active]=\"isExpanded\"\r\n [(ngModel)]=\"search\"\r\n (ngModelChange)=\"onChange()\"\r\n [placeholder]=\"placeholder\"\r\n (focus)=\"focusIn()\"\r\n (blur)=\"focusOut()\"\r\n />\r\n <span class=\"global-search__span items-center bg-transparent border border-solid border-grayscale-30 border-l-0 rounded-tr-[20px] rounded-br-[20px] flex h-[25px] justify-center px-2 transition-all duration-300\">\r\n <em class=\"fas fa-search\"></em>\r\n </span>\r\n\r\n @if (wasSearched) {\r\n <div class=\"bg-grayscale-0 rounded-[5px] shadow-[0_2px_8px_0_rgba(0,0,0,0.4)] mt-[60px] min-h-[50px] absolute w-[500px] z-[6]\">\r\n <div\r\n *sLoadingState=\"isLoading && !isModalLoading\"\r\n class=\"global-search__loader\"\r\n >\r\n @if ((dropdownItens && dropdownItens.length > 0) || isLoading) {\r\n <div class=\"min-h-[50px] w-full\">\r\n @if (dropdownItens && dropdownItens.length > 0) {\r\n <div>\r\n <div class=\"border-b border-solid border-grayscale-30 text-grayscale-90 font-semibold h-[50px] p-[15px] flex items-center justify-between\">\r\n <span class=\"m-0 p-0\">{{ totalItensLabel }}</span>\r\n <span\r\n class=\"m-0 p-0 cursor-pointer text-right\"\r\n (click)=\"close()\"\r\n >\r\n <em class=\"fas fa-times\"></em>\r\n </span>\r\n </div>\r\n <div\r\n class=\"max-h-[510px] overflow-auto\"\r\n [@expandableContent]=\"expanded\"\r\n >\r\n @for (item of dropdownItens; track item.id) {\r\n <div\r\n class=\"s-object-card-field hover:bg-[#dbe0e4]\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"item.content\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (showFooter) {\r\n <div class=\"border-t border-solid border-grayscale-30 h-[50px]\">\r\n <s-button\r\n class=\"flex flex-col\"\r\n (click)=\"showMore()\"\r\n priority=\"link\"\r\n >\r\n {{ showMoreLabel }}\r\n </s-button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n @if ((!dropdownItens || !dropdownItens.length) && !isLoading) {\r\n <s-empty-state\r\n [title]=\"emptyTitle ?? ''\"\r\n [description]=\"emptyDescription\"\r\n ngClass=\"global-search__empty-state--icon\"\r\n [iconClass]=\"emptyIcon ? emptyIcon : 'fas fa-search'\"\r\n >\r\n </s-empty-state>\r\n }\r\n </div>\r\n </div>\r\n }\r\n\r\n @if (wasSearched) {\r\n <div\r\n class=\"bg-[rgba(0,0,0,0.4)] cursor-pointer h-[calc(100vh-70px)] left-0 mt-[50px] absolute w-full z-[5]\"\r\n (click)=\"close()\"\r\n ></div>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\r\nimport { EmptyStateModule } from '@seniorsistemas/angular-components/empty-state';\r\nimport { LoadingStateModule } from '@seniorsistemas/angular-components/loading-state';\r\nimport { ThumbnailModule } from '@seniorsistemas/angular-components/thumbnail';\r\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\r\nimport { GlobalSearchDropdownItemComponent } from './components/dropdown/global-search-dropdown-item.component';\r\nimport { GlobalSearchComponent } from './global-search.component';\r\n\r\n/**\r\n * @deprecated Será removido na v20. Importe diretamente os standalones `GlobalSearchComponent` e\r\n * `GlobalSearchDropdownItemComponent` (de `@seniorsistemas/angular-components/global-search`) no lugar deste\r\n * módulo.\r\n *\r\n * Este módulo também reexportava `TooltipDirective` (`@seniorsistemas/angular-components/tooltip`, usado em\r\n * templates por `[sTooltip]`), `ThumbnailComponent` (`@seniorsistemas/angular-components/thumbnail`, usado em\r\n * templates por `<s-thumbnail>`), `ButtonComponent` (`@seniorsistemas/angular-components/button`, usado em\r\n * templates por `<s-button>`), `LoadingStateComponent` (`@seniorsistemas/angular-components/loading-state`,\r\n * usado em templates por `<s-loading-state>`), `LoadingStateDirective`\r\n * (`@seniorsistemas/angular-components/loading-state`, usado em templates por `[sLoadingState]`),\r\n * `EmptyStateComponent` (`@seniorsistemas/angular-components/empty-state`, usado em templates por\r\n * `<s-empty-state>`) e `EmptyStateGoBackComponent` (`@seniorsistemas/angular-components/empty-state`, usado\r\n * em templates por `<s-empty-state-go-back>`). Se o seu template usa algum deles, importe-o diretamente.\r\n *\r\n * Migração automática (também executada pelo `ng update` na v20):\r\n * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`\r\n */\r\n@NgModule({\r\n imports: [\r\n TooltipModule,\r\n ThumbnailModule,\r\n ButtonModule,\r\n LoadingStateModule,\r\n EmptyStateModule,\r\n GlobalSearchComponent,\r\n GlobalSearchDropdownItemComponent,\r\n ],\r\n exports: [\r\n GlobalSearchComponent,\r\n GlobalSearchDropdownItemComponent,\r\n TooltipModule,\r\n ThumbnailModule,\r\n ButtonModule,\r\n LoadingStateModule,\r\n EmptyStateModule,\r\n ],\r\n})\r\nexport class GlobalSearchModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -152,6 +152,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
152
152
|
type: Output
|
|
153
153
|
}] } });
|
|
154
154
|
|
|
155
|
+
/**
|
|
156
|
+
* @deprecated Será removido na v20. Importe diretamente os standalones `GridMenuItemComponent` e
|
|
157
|
+
* `GridMenuComponent` (de `@seniorsistemas/angular-components/grid-menu`) no lugar deste módulo.
|
|
158
|
+
*
|
|
159
|
+
* Migração automática (também executada pelo `ng update` na v20):
|
|
160
|
+
* `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
|
|
161
|
+
*/
|
|
155
162
|
class GridMenuModule {
|
|
156
163
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GridMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
157
164
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: GridMenuModule, imports: [GridMenuItemComponent, GridMenuComponent], exports: [GridMenuItemComponent, GridMenuComponent] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-grid-menu.mjs","sources":["../../projects/angular-components/grid-menu/src/lib/grid-menu/components/grid-menu-item/grid-menu-item.component.ts","../../projects/angular-components/grid-menu/src/lib/grid-menu/components/grid-menu-item/grid-menu-item.component.html","../../projects/angular-components/grid-menu/src/lib/grid-menu/grid-menu.component.ts","../../projects/angular-components/grid-menu/src/lib/grid-menu/grid-menu.component.html","../../projects/angular-components/grid-menu/src/lib/grid-menu/grid-menu.module.ts","../../projects/angular-components/grid-menu/src/seniorsistemas-angular-components-grid-menu.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\n\r\nimport { GridMenuItem } from '../../types/grid-menu-item';\r\nimport { InteractiveContentDirective } from '@seniorsistemas/angular-components/interactive-content';\r\n\r\n@Component({\r\n selector: 's-grid-menu-item',\r\n templateUrl: './grid-menu-item.component.html',\r\n standalone: true,\r\n imports: [InteractiveContentDirective, NgClass],\r\n})\r\nexport class GridMenuItemComponent {\r\n @Input({ required: true })\r\n public item!: GridMenuItem;\r\n\r\n @Input()\r\n public iconIsFromFontAwesome = false;\r\n\r\n @Output() clickedGridMenuItem = new EventEmitter<GridMenuItem>();\r\n\r\n public fontAwesomePrefix: 'fal' | 'fas' = 'fal';\r\n\r\n public onClick(): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n this.item.action?.();\r\n this.clickedGridMenuItem.emit(this.item);\r\n }\r\n\r\n public onMouseEnter() {\r\n if (this.disabled) {\r\n return;\r\n }\r\n this.fontAwesomePrefix = 'fas';\r\n }\r\n\r\n public onMouseLeave() {\r\n if (this.disabled) {\r\n return;\r\n }\r\n this.fontAwesomePrefix = 'fal';\r\n }\r\n\r\n public get iconFontAwesomeClassName() {\r\n const prefix = this.item.active ? 'fas' : this.fontAwesomePrefix;\r\n return `${prefix} ${this.item.icon}`;\r\n }\r\n\r\n public get initialLetter(): string {\r\n let initialLetter = '';\r\n if (this.item.label) {\r\n const words = this.item.label.split(' ', 2);\r\n initialLetter = words[0].charAt(0).toUpperCase();\r\n if (words.length > 1) {\r\n initialLetter += words[1].charAt(0).toUpperCase();\r\n }\r\n }\r\n return initialLetter;\r\n }\r\n\r\n public get disabled(): boolean {\r\n return typeof this.item?.disabled === 'function' ? !!this.item.disabled() : !!this.item?.disabled;\r\n }\r\n}\r\n","@if (item) {\n <button\n class=\"items-center bg-transparent border-0 inline-flex flex-col gap-3 justify-center p-[5px] rounded-xxbig transition-transform duration-300 ease-in-out w-[200px] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[3px] focus-visible:outline-[var(--s-focus-ring-color,#0090ff)]\"\n [ngClass]=\"{\n 'cursor-pointer group hover:scale-105': !disabled,\n 'cursor-default opacity-50': disabled,\n 'scale-105 bg-grayscale-20': item.active,\n 'hover:bg-grayscale-20': iconIsFromFontAwesome && !disabled\n }\"\n (sInteractiveContent)=\"onClick()\"\n [disabled]=\"disabled\"\n [tabindex]=\"disabled ? -1 : 0\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n >\n <div\n class=\"self-center rounded-xxbig flex h-16 justify-center overflow-hidden p-2 w-16 items-center text-[3em]\"\n [class.bg-grayscale-20]=\"!iconIsFromFontAwesome\"\n >\n @if (item.icon) {\n @if (iconIsFromFontAwesome) {\n <i [ngClass]=\"iconFontAwesomeClassName + ' text-[#009494]'\"> </i>\n } @else {\n <span\n class=\"bg-center bg-no-repeat bg-cover inline-block h-full w-full\"\n style=\"background-image: url('{{ item.icon }}');\"\n >\n </span>\n }\n } @else if (!item.icon) {\n <span class=\"items-center flex font-open-sans text-xl font-bold group-hover:font-bold\">{{ initialLetter }}</span>\n }\n </div>\n <span\n class=\"font-open-sans text-sm line-clamp-2 overflow-hidden text-ellipsis w-full group-hover:font-bold\"\n [style.paddingBottom]=\"iconIsFromFontAwesome ? '1em' : null\"\n >{{ item.label }}</span>\n </button>\n}\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\r\n\r\nimport { GridMenuItem } from './types/grid-menu-item';\r\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\r\nimport { GridMenuItemComponent } from './components/grid-menu-item/grid-menu-item.component';\r\n\r\n/**\r\n * @description Componente de menu em grade que exibe uma coleção de itens como cards clicáveis.\r\n * Suporta seleção de item ativo e pode utilizar ícones do Font Awesome ou ícones padrão.\r\n *\r\n * @example\r\n * ```html\r\n * <s-grid-menu\r\n * [items]=\"menuItems\"\r\n * [selectable]=\"true\"\r\n * [(selected)]=\"selectedItem\"\r\n * />\r\n * ```\r\n *\r\n * @category Navegação\r\n */\r\n@Component({\r\n selector: 's-grid-menu',\r\n templateUrl: './grid-menu.component.html',\r\n standalone: true,\r\n imports: [GridMenuItemComponent],\r\n})\r\nexport class GridMenuComponent implements OnChanges {\r\n private previousGridMenuItemClicked: GridMenuItem | undefined;\r\n\r\n /**\r\n * @description Lista de itens exibidos no grid. Aceita um único item ou um array de `GridMenuItem`.\r\n * Valores nulos ou indefinidos resultam em uma lista vazia.\r\n */\r\n @Input()\r\n public set items(items: GridMenuItem[] | GridMenuItem) {\r\n if (isNullOrUndefined(items)) {\r\n this.itemsArray = [];\r\n } else {\r\n this.itemsArray = Array.isArray(items) ? (items as GridMenuItem[]) : [items];\r\n }\r\n }\r\n\r\n /**\r\n * @description Quando `true`, utiliza classes de ícones do Font Awesome nos itens do grid.\r\n * Quando `false`, utiliza o sistema de ícones padrão do projeto.\r\n *\r\n * @default false\r\n */\r\n @Input() useFontAwesomeIcons = false;\r\n\r\n public itemsArray: GridMenuItem[] = [];\r\n\r\n /**\r\n * @description Habilita o modo de seleção do grid. Quando `true`, permite que o usuário\r\n * clique em um item para selecioná-lo, marcando-o como ativo.\r\n *\r\n * @default false\r\n */\r\n @Input() selectable = false;\r\n\r\n /**\r\n * @description Item atualmente selecionado no grid. Usado em conjunto com `selectable = true`\r\n * e suporta two-way binding via `[(selected)]`.\r\n */\r\n @Input() selected!: GridMenuItem;\r\n\r\n /**\r\n * @description Emitido quando o usuário seleciona um novo item no grid.\r\n * Retorna o `GridMenuItem` selecionado. Usado para two-way binding com `[(selected)]`.\r\n */\r\n @Output() selectedChange = new EventEmitter<GridMenuItem>();\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['selected'] && changes['selected'].isFirstChange()) {\r\n if (this.selectable) {\r\n this.previousGridMenuItemClicked = this.selected;\r\n this.selected.active = true;\r\n }\r\n }\r\n }\r\n\r\n onClickGridMenuItem(gridMenuItem: GridMenuItem) {\r\n if (!this.selectable) {\r\n return;\r\n }\r\n if (this.previousGridMenuItemClicked) {\r\n this.previousGridMenuItemClicked.active = false;\r\n }\r\n gridMenuItem.active = !gridMenuItem.active;\r\n this.previousGridMenuItemClicked = gridMenuItem;\r\n this.selectedChange.next(gridMenuItem);\r\n }\r\n}\r\n","<section class=\"grid gap-5 [grid-template-columns:repeat(auto-fill,200px)] justify-evenly\">\n @for (item of itemsArray; track $index) {\n <s-grid-menu-item\n [item]=\"item\"\n [iconIsFromFontAwesome]=\"useFontAwesomeIcons\"\n (clickedGridMenuItem)=\"onClickGridMenuItem($event)\"\n ></s-grid-menu-item>\n }\n</section>\n","import { NgModule } from '@angular/core';\r\n\r\nimport { GridMenuItemComponent } from './components/grid-menu-item/grid-menu-item.component';\r\nimport { GridMenuComponent } from './grid-menu.component';\r\n\r\n@NgModule({\r\n imports: [GridMenuItemComponent, GridMenuComponent],\r\n exports: [GridMenuItemComponent, GridMenuComponent],\r\n})\r\nexport class GridMenuModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-grid-menu.mjs","sources":["../../projects/angular-components/grid-menu/src/lib/grid-menu/components/grid-menu-item/grid-menu-item.component.ts","../../projects/angular-components/grid-menu/src/lib/grid-menu/components/grid-menu-item/grid-menu-item.component.html","../../projects/angular-components/grid-menu/src/lib/grid-menu/grid-menu.component.ts","../../projects/angular-components/grid-menu/src/lib/grid-menu/grid-menu.component.html","../../projects/angular-components/grid-menu/src/lib/grid-menu/grid-menu.module.ts","../../projects/angular-components/grid-menu/src/seniorsistemas-angular-components-grid-menu.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\n\r\nimport { GridMenuItem } from '../../types/grid-menu-item';\r\nimport { InteractiveContentDirective } from '@seniorsistemas/angular-components/interactive-content';\r\n\r\n@Component({\r\n selector: 's-grid-menu-item',\r\n templateUrl: './grid-menu-item.component.html',\r\n standalone: true,\r\n imports: [InteractiveContentDirective, NgClass],\r\n})\r\nexport class GridMenuItemComponent {\r\n @Input({ required: true })\r\n public item!: GridMenuItem;\r\n\r\n @Input()\r\n public iconIsFromFontAwesome = false;\r\n\r\n @Output() clickedGridMenuItem = new EventEmitter<GridMenuItem>();\r\n\r\n public fontAwesomePrefix: 'fal' | 'fas' = 'fal';\r\n\r\n public onClick(): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n this.item.action?.();\r\n this.clickedGridMenuItem.emit(this.item);\r\n }\r\n\r\n public onMouseEnter() {\r\n if (this.disabled) {\r\n return;\r\n }\r\n this.fontAwesomePrefix = 'fas';\r\n }\r\n\r\n public onMouseLeave() {\r\n if (this.disabled) {\r\n return;\r\n }\r\n this.fontAwesomePrefix = 'fal';\r\n }\r\n\r\n public get iconFontAwesomeClassName() {\r\n const prefix = this.item.active ? 'fas' : this.fontAwesomePrefix;\r\n return `${prefix} ${this.item.icon}`;\r\n }\r\n\r\n public get initialLetter(): string {\r\n let initialLetter = '';\r\n if (this.item.label) {\r\n const words = this.item.label.split(' ', 2);\r\n initialLetter = words[0].charAt(0).toUpperCase();\r\n if (words.length > 1) {\r\n initialLetter += words[1].charAt(0).toUpperCase();\r\n }\r\n }\r\n return initialLetter;\r\n }\r\n\r\n public get disabled(): boolean {\r\n return typeof this.item?.disabled === 'function' ? !!this.item.disabled() : !!this.item?.disabled;\r\n }\r\n}\r\n","@if (item) {\n <button\n class=\"items-center bg-transparent border-0 inline-flex flex-col gap-3 justify-center p-[5px] rounded-xxbig transition-transform duration-300 ease-in-out w-[200px] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[3px] focus-visible:outline-[var(--s-focus-ring-color,#0090ff)]\"\n [ngClass]=\"{\n 'cursor-pointer group hover:scale-105': !disabled,\n 'cursor-default opacity-50': disabled,\n 'scale-105 bg-grayscale-20': item.active,\n 'hover:bg-grayscale-20': iconIsFromFontAwesome && !disabled\n }\"\n (sInteractiveContent)=\"onClick()\"\n [disabled]=\"disabled\"\n [tabindex]=\"disabled ? -1 : 0\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n >\n <div\n class=\"self-center rounded-xxbig flex h-16 justify-center overflow-hidden p-2 w-16 items-center text-[3em]\"\n [class.bg-grayscale-20]=\"!iconIsFromFontAwesome\"\n >\n @if (item.icon) {\n @if (iconIsFromFontAwesome) {\n <i [ngClass]=\"iconFontAwesomeClassName + ' text-[#009494]'\"> </i>\n } @else {\n <span\n class=\"bg-center bg-no-repeat bg-cover inline-block h-full w-full\"\n style=\"background-image: url('{{ item.icon }}');\"\n >\n </span>\n }\n } @else if (!item.icon) {\n <span class=\"items-center flex font-open-sans text-xl font-bold group-hover:font-bold\">{{ initialLetter }}</span>\n }\n </div>\n <span\n class=\"font-open-sans text-sm line-clamp-2 overflow-hidden text-ellipsis w-full group-hover:font-bold\"\n [style.paddingBottom]=\"iconIsFromFontAwesome ? '1em' : null\"\n >{{ item.label }}</span>\n </button>\n}\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\r\n\r\nimport { GridMenuItem } from './types/grid-menu-item';\r\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\r\nimport { GridMenuItemComponent } from './components/grid-menu-item/grid-menu-item.component';\r\n\r\n/**\r\n * @description Componente de menu em grade que exibe uma coleção de itens como cards clicáveis.\r\n * Suporta seleção de item ativo e pode utilizar ícones do Font Awesome ou ícones padrão.\r\n *\r\n * @example\r\n * ```html\r\n * <s-grid-menu\r\n * [items]=\"menuItems\"\r\n * [selectable]=\"true\"\r\n * [(selected)]=\"selectedItem\"\r\n * />\r\n * ```\r\n *\r\n * @category Navegação\r\n */\r\n@Component({\r\n selector: 's-grid-menu',\r\n templateUrl: './grid-menu.component.html',\r\n standalone: true,\r\n imports: [GridMenuItemComponent],\r\n})\r\nexport class GridMenuComponent implements OnChanges {\r\n private previousGridMenuItemClicked: GridMenuItem | undefined;\r\n\r\n /**\r\n * @description Lista de itens exibidos no grid. Aceita um único item ou um array de `GridMenuItem`.\r\n * Valores nulos ou indefinidos resultam em uma lista vazia.\r\n */\r\n @Input()\r\n public set items(items: GridMenuItem[] | GridMenuItem) {\r\n if (isNullOrUndefined(items)) {\r\n this.itemsArray = [];\r\n } else {\r\n this.itemsArray = Array.isArray(items) ? (items as GridMenuItem[]) : [items];\r\n }\r\n }\r\n\r\n /**\r\n * @description Quando `true`, utiliza classes de ícones do Font Awesome nos itens do grid.\r\n * Quando `false`, utiliza o sistema de ícones padrão do projeto.\r\n *\r\n * @default false\r\n */\r\n @Input() useFontAwesomeIcons = false;\r\n\r\n public itemsArray: GridMenuItem[] = [];\r\n\r\n /**\r\n * @description Habilita o modo de seleção do grid. Quando `true`, permite que o usuário\r\n * clique em um item para selecioná-lo, marcando-o como ativo.\r\n *\r\n * @default false\r\n */\r\n @Input() selectable = false;\r\n\r\n /**\r\n * @description Item atualmente selecionado no grid. Usado em conjunto com `selectable = true`\r\n * e suporta two-way binding via `[(selected)]`.\r\n */\r\n @Input() selected!: GridMenuItem;\r\n\r\n /**\r\n * @description Emitido quando o usuário seleciona um novo item no grid.\r\n * Retorna o `GridMenuItem` selecionado. Usado para two-way binding com `[(selected)]`.\r\n */\r\n @Output() selectedChange = new EventEmitter<GridMenuItem>();\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['selected'] && changes['selected'].isFirstChange()) {\r\n if (this.selectable) {\r\n this.previousGridMenuItemClicked = this.selected;\r\n this.selected.active = true;\r\n }\r\n }\r\n }\r\n\r\n onClickGridMenuItem(gridMenuItem: GridMenuItem) {\r\n if (!this.selectable) {\r\n return;\r\n }\r\n if (this.previousGridMenuItemClicked) {\r\n this.previousGridMenuItemClicked.active = false;\r\n }\r\n gridMenuItem.active = !gridMenuItem.active;\r\n this.previousGridMenuItemClicked = gridMenuItem;\r\n this.selectedChange.next(gridMenuItem);\r\n }\r\n}\r\n","<section class=\"grid gap-5 [grid-template-columns:repeat(auto-fill,200px)] justify-evenly\">\n @for (item of itemsArray; track $index) {\n <s-grid-menu-item\n [item]=\"item\"\n [iconIsFromFontAwesome]=\"useFontAwesomeIcons\"\n (clickedGridMenuItem)=\"onClickGridMenuItem($event)\"\n ></s-grid-menu-item>\n }\n</section>\n","import { NgModule } from '@angular/core';\r\n\r\nimport { GridMenuItemComponent } from './components/grid-menu-item/grid-menu-item.component';\r\nimport { GridMenuComponent } from './grid-menu.component';\r\n\r\n/**\r\n * @deprecated Será removido na v20. Importe diretamente os standalones `GridMenuItemComponent` e\r\n * `GridMenuComponent` (de `@seniorsistemas/angular-components/grid-menu`) no lugar deste módulo.\r\n *\r\n * Migração automática (também executada pelo `ng update` na v20):\r\n * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`\r\n */\r\n@NgModule({\r\n imports: [GridMenuItemComponent, GridMenuComponent],\r\n exports: [GridMenuItemComponent, GridMenuComponent],\r\n})\r\nexport class GridMenuModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -450,6 +450,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
450
450
|
args: ['click']
|
|
451
451
|
}] } });
|
|
452
452
|
|
|
453
|
+
/**
|
|
454
|
+
* @deprecated Será removido na v20. Importe diretamente o standalone `HelpPopoverDirective` (de
|
|
455
|
+
* `@seniorsistemas/angular-components/help-popover`) no lugar deste módulo.
|
|
456
|
+
*
|
|
457
|
+
* Migração automática (também executada pelo `ng update` na v20):
|
|
458
|
+
* `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
|
|
459
|
+
*/
|
|
453
460
|
class HelpPopoverModule {
|
|
454
461
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HelpPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
455
462
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: HelpPopoverModule, imports: [HelpPopoverDirective], exports: [HelpPopoverDirective] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-help-popover.mjs","sources":["../../projects/angular-components/help-popover/src/lib/help-popover/help-popover/help-popover.component.ts","../../projects/angular-components/help-popover/src/lib/help-popover/help-popover/help-popover.component.html","../../projects/angular-components/help-popover/src/lib/help-popover/help-popover.directive.ts","../../projects/angular-components/help-popover/src/lib/help-popover/help-popover.module.ts","../../projects/angular-components/help-popover/src/seniorsistemas-angular-components-help-popover.ts"],"sourcesContent":["import { Component, ElementRef, EventEmitter, OnDestroy, TemplateRef, ViewChild } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { HelpPopoverArrowPosition, HelpPopoverPosition } from '../models/help-popover.models';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\r\n\r\n@Component({\r\n selector: 's-help-popover',\r\n templateUrl: './help-popover.component.html',\r\n styleUrls: ['./help-popover.component.scss'],\r\n standalone: true,\r\n imports: [NgTemplateOutlet, ButtonComponent],\r\n})\r\nexport class HelpPopoverComponent implements OnDestroy {\r\n private readonly VALID_POSITIONS: HelpPopoverPosition[] = ['top', 'bottom', 'left', 'right'];\r\n private readonly VALID_ARROW_POSITIONS: HelpPopoverArrowPosition[] = ['beginning', 'end', 'middle'];\r\n private _position: HelpPopoverPosition = 'bottom';\r\n popoverContent: string | TemplateRef<any> | null = null;\r\n closeButton = true;\r\n icon = '';\r\n header = '';\r\n footer = '';\r\n button = '';\r\n visible = false;\r\n @ViewChild('arrowElement', { read: ElementRef, static: true }) arrowElement: ElementRef<HTMLElement> | null = null;\r\n public get position(): HelpPopoverPosition {\r\n return this._position;\r\n }\r\n public set position(value: HelpPopoverPosition) {\r\n if (!this.VALID_POSITIONS.includes(value)) {\r\n throw new Error(`Invalid position: ${value}. Valid positions: ${this.VALID_POSITIONS}`);\r\n }\r\n this._position = value;\r\n }\r\n\r\n private _arrowPosition: HelpPopoverArrowPosition = 'beginning';\r\n public get arrowPosition(): HelpPopoverArrowPosition {\r\n return this._arrowPosition;\r\n }\r\n public set arrowPosition(value: HelpPopoverArrowPosition) {\r\n if (!this.VALID_ARROW_POSITIONS.includes(value)) {\r\n throw new Error(`Invalid arrow position: ${value}. Valid arrow positions: ${this.VALID_ARROW_POSITIONS}`);\r\n }\r\n this._arrowPosition = value;\r\n }\r\n\r\n buttonClicked!: EventEmitter<void>;\r\n\r\n closed = new Subject<void>();\r\n get contentIsString() {\r\n return typeof this.popoverContent === 'string';\r\n }\r\n\r\n get popoverContentTemplateRef() {\r\n return this.popoverContent as TemplateRef<any>;\r\n }\r\n\r\n get hasHeaderContainer() {\r\n const _hasHeader = this.hasHeaderText;\r\n const hasIcon = this.hasIcon;\r\n const hasCloseButton = this.closeButton;\r\n return _hasHeader || hasIcon || hasCloseButton;\r\n }\r\n\r\n get hasFooter() {\r\n const _hasFooterText = this.hasFooterText;\r\n const hasButtonText = this.button && this.button.length > 0;\r\n return _hasFooterText || hasButtonText;\r\n }\r\n\r\n get hasHeaderText() {\r\n return this.header && this.header.length > 0;\r\n }\r\n\r\n get hasFooterText() {\r\n return this.footer && this.footer.length > 0;\r\n }\r\n\r\n get hasIcon() {\r\n return this.icon && this.icon.length > 0;\r\n }\r\n\r\n close() {\r\n this.closed.next();\r\n }\r\n\r\n clickButton() {\r\n this.buttonClicked!.emit();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.closed.complete();\r\n }\r\n}\r\n","<div\n class=\"popover-container\"\n [style.visibility]=\"visible ? 'visible' : 'hidden'\"\n [class.popover-container-top]=\"position === 'top'\"\n [class.popover-container-right]=\"position === 'right'\"\n [class.popover-container-bottom]=\"position === 'bottom'\"\n [class.popover-container-left]=\"position === 'left'\"\n>\n <div\n class=\"arrow-container\"\n [class.arrow-container-beginning]=\"arrowPosition === 'beginning'\"\n [class.arrow-container-middle]=\"arrowPosition === 'middle'\"\n [class.arrow-container-end]=\"arrowPosition === 'end'\"\n >\n <div\n class=\"arrow\"\n #arrowElement\n ></div>\n </div>\n <div class=\"popover\">\n @if (hasHeaderContainer) {\n <div\n class=\"popover-header-container\"\n [class.space-between]=\"hasIcon || hasHeaderText\"\n [class.flex-end]=\"!(hasIcon || hasHeaderText) && closeButton\"\n >\n @if (hasIcon || hasHeaderText) {\n <div class=\"popover-header-container-text\">\n @if (hasIcon) {\n <div class=\"popover-icon\">\n <i [class]=\"icon\"></i>\n </div>\n }\n @if (hasHeaderText) {\n <div class=\"popover-header-text\">\n {{ header }}\n </div>\n }\n </div>\n }\n @if (closeButton) {\n <div class=\"popover-close-button\">\n <i\n class=\"fas fa-times\"\n (click)=\"close()\"\n ></i>\n </div>\n }\n </div>\n }\n\n <div class=\"popover-content\">\n @if (contentIsString) {\n {{ popoverContent }}\n } @else {\n <ng-container *ngTemplateOutlet=\"popoverContentTemplateRef\"></ng-container>\n }\n </div>\n\n @if (hasFooter) {\n <div class=\"separator\"></div>\n <div\n class=\"popover-footer-container\"\n [class.space-between]=\"hasFooterText\"\n [class.flex-end]=\"!hasFooterText\"\n >\n @if (hasFooterText) {\n <p class=\"popover-footer-text\">\n {{ footer }}\n </p>\n }\n @if (button && button.length > 0) {\n <div class=\"popover-footer-button\">\n <s-button\n [label]=\"button\"\n priority=\"primary\"\n size=\"small\"\n (clicked)=\"clickButton()\"\n [disabled]=\"false\"\n [auxiliary]=\"false\"\n >\n </s-button>\n </div>\n }\n </div>\n }\n </div>\n</div>\n\n","import {\r\n ComponentRef,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n inject,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n TemplateRef,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { HelpPopoverComponent } from './help-popover/help-popover.component';\r\nimport { HelpPopoverArrowPosition, HelpPopoverPosition } from './models/help-popover.models';\r\nimport {\r\n ElementLeftoverPosition,\r\n ElementPosition,\r\n getElementLeftoverContentAvailable,\r\n getElementPositionInfo,\r\n isMousePositionOutsideOfElement,\r\n} from '@seniorsistemas/angular-components/utils';\r\n\r\n/**\r\n * @description Diretiva que exibe um popover de ajuda ao clicar no elemento hospedeiro.\r\n * O popover suporta conteúdo como texto simples ou `TemplateRef`, além de botão de fechar,\r\n * ícone, cabeçalho, rodapé e posição configurável. Pode ser acionado programaticamente.\r\n *\r\n * @example\r\n * ```html\r\n * <button [sHelpPopover]=\"'Informe aqui o seu CPF'\" popoverPosition=\"right\">?</button>\r\n * ```\r\n *\r\n * @category Overlay\r\n */\r\n@Directive({\r\n selector: '[sHelpPopover]',\r\n exportAs: 'sHelpPopover',\r\n standalone: true,\r\n})\r\nexport class HelpPopoverDirective implements OnDestroy, OnInit {\r\n private readonly MUTATION_OBSERVER_CONFIG: MutationObserverInit = {\r\n attributes: true,\r\n childList: true,\r\n subtree: true,\r\n };\r\n private readonly OBSERVER_CALLBACK = () => {\r\n if (!this.componentRef) {\r\n return;\r\n }\r\n this.applyPositionIntoElement();\r\n };\r\n private readonly RESIZE_OBSERVER = () => {\r\n this.onResize$.next();\r\n };\r\n\r\n /**\r\n * @description Conteúdo do popover. Aceita uma `string` com texto simples ou um `TemplateRef`\r\n * para renderizar conteúdo Angular customizado dentro do popover.\r\n */\r\n @Input() sHelpPopover: string | TemplateRef<any> | null = null;\r\n\r\n /**\r\n * @description Quando `true`, exibe o botão de fechar (X) no cabeçalho do popover.\r\n *\r\n * @default true\r\n */\r\n @Input() closeButton = true;\r\n\r\n /**\r\n * @description Classe de ícone exibida no cabeçalho do popover (ex: classe de Font Awesome).\r\n */\r\n @Input() popoverIcon = '';\r\n\r\n /**\r\n * @description Texto exibido no cabeçalho do popover.\r\n */\r\n @Input() popoverHeader = '';\r\n\r\n /**\r\n * @description Texto exibido no rodapé do popover.\r\n */\r\n @Input() popoverFooter = '';\r\n\r\n /**\r\n * @description Texto do botão de ação exibido no rodapé do popover.\r\n * Ao clicar, emite o evento `buttonClicked`.\r\n */\r\n @Input() popoverButtonText = '';\r\n\r\n /**\r\n * @description Alinhamento da seta indicadora em relação ao lado do popover.\r\n * Valores aceitos: `'beginning'` (padrão), `'middle'`, `'end'`.\r\n *\r\n * @default 'beginning'\r\n */\r\n @Input() popoverArrowPosition: HelpPopoverArrowPosition = 'beginning';\r\n\r\n /**\r\n * @description Posição do popover em relação ao elemento hospedeiro.\r\n * Valores aceitos: `'top'`, `'bottom'` (padrão), `'left'`, `'right'`.\r\n * O componente tenta reposicionar automaticamente caso não haja espaço.\r\n *\r\n * @default 'bottom'\r\n */\r\n @Input()\r\n public set popoverPosition(value: HelpPopoverPosition) {\r\n this._popoverPosition = value;\r\n this.internalPosition = value;\r\n }\r\n\r\n public get popoverPosition(): HelpPopoverPosition {\r\n return this._popoverPosition;\r\n }\r\n\r\n /**\r\n * @description Emitido quando o usuário clica no botão de ação do rodapé do popover.\r\n */\r\n @Output() buttonClicked = new EventEmitter<void>();\r\n\r\n private _popoverPosition: HelpPopoverPosition = 'bottom';\r\n\r\n private onDestroy$ = new Subject<void>();\r\n private componentRef: ComponentRef<HelpPopoverComponent> | null = null;\r\n private mutationObserverPopoverElement: MutationObserver | null = null;\r\n private mutationObserverPopoverContent: MutationObserver | null = null;\r\n private internalPosition: HelpPopoverPosition = 'bottom';\r\n private onResize$ = new Subject<void>();\r\n private manualTrigger = false;\r\n private listener = (event: PointerEvent | MouseEvent) => {\r\n if (!this.componentRef) {\r\n return;\r\n }\r\n const totalElementArea = this.getPopoverElement.getBoundingClientRect();\r\n if (isMousePositionOutsideOfElement(event, totalElementArea)) {\r\n this.destroy();\r\n }\r\n };\r\n private readonly viewContainerRef = inject(ViewContainerRef);\r\n private readonly element: ElementRef<HTMLElement> = inject(ElementRef);\r\n\r\n ngOnInit(): void {\r\n const popoverElementObserver = new MutationObserver(this.OBSERVER_CALLBACK);\r\n this.mutationObserverPopoverElement = popoverElementObserver;\r\n popoverElementObserver.observe(this.element.nativeElement, this.MUTATION_OBSERVER_CONFIG);\r\n window.addEventListener('resize', this.RESIZE_OBSERVER);\r\n window.addEventListener('scrollend', this.OBSERVER_CALLBACK);\r\n this.onResize$.pipe(takeUntil(this.onDestroy$), debounceTime(100)).subscribe(this.OBSERVER_CALLBACK);\r\n }\r\n\r\n show() {\r\n this.manualTrigger = true;\r\n this._createComponent();\r\n }\r\n\r\n @HostListener('click')\r\n doClick() {\r\n if (this.manualTrigger) {\r\n return;\r\n }\r\n this._createComponent();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.onDestroy$.next();\r\n this.onDestroy$.complete();\r\n this.destroy();\r\n if (this.mutationObserverPopoverElement) {\r\n this.mutationObserverPopoverElement.disconnect();\r\n }\r\n window.removeEventListener('resize', this.RESIZE_OBSERVER);\r\n window.removeEventListener('scrollend', this.OBSERVER_CALLBACK);\r\n }\r\n\r\n private _createComponent() {\r\n if (!this.sHelpPopover) {\r\n return;\r\n }\r\n if (this.componentRef) {\r\n this.destroy();\r\n }\r\n const componentRef = this.viewContainerRef.createComponent(HelpPopoverComponent);\r\n this.componentRef = componentRef;\r\n if (this.mutationObserverPopoverContent) {\r\n this.mutationObserverPopoverContent.disconnect();\r\n }\r\n this.mutationObserverPopoverContent = new MutationObserver(this.OBSERVER_CALLBACK);\r\n const element = this.getPopoverElement as HTMLElement;\r\n this.mutationObserverPopoverContent.observe(\r\n element.querySelector('.popover-content') as HTMLElement,\r\n this.MUTATION_OBSERVER_CONFIG,\r\n );\r\n document.body.appendChild(componentRef.location.nativeElement);\r\n setTimeout(() => {\r\n document.addEventListener('click', this.listener);\r\n });\r\n const component = componentRef.instance;\r\n component.popoverContent = this.sHelpPopover;\r\n component.closeButton = this.closeButton;\r\n component.icon = this.popoverIcon;\r\n component.header = this.popoverHeader;\r\n component.footer = this.popoverFooter;\r\n component.button = this.popoverButtonText;\r\n component.position = this.internalPosition;\r\n component.arrowPosition = this.popoverArrowPosition;\r\n component.buttonClicked = this.buttonClicked;\r\n component.closed.pipe(takeUntil(this.onDestroy$)).subscribe(() => {\r\n this.destroy();\r\n });\r\n this.applyPositionIntoElement();\r\n }\r\n\r\n private destroy() {\r\n document.removeEventListener('click', this.listener);\r\n if (this.componentRef) {\r\n this.componentRef.destroy();\r\n this.componentRef = null;\r\n }\r\n\r\n this.internalPosition = this.popoverPosition;\r\n\r\n if (this.mutationObserverPopoverContent) {\r\n this.mutationObserverPopoverContent.disconnect();\r\n }\r\n }\r\n\r\n private applyPositionIntoElement() {\r\n const popoverElementPosition = getElementPositionInfo(this.element.nativeElement);\r\n const position = this.validPosition;\r\n this.internalPosition = position;\r\n this.popoverComponentInstance.position = this.internalPosition;\r\n setTimeout(() => {\r\n switch (this.internalPosition) {\r\n case 'bottom': {\r\n this.applyPopoverPositionBottom(popoverElementPosition);\r\n break;\r\n }\r\n case 'top': {\r\n this.applyPopoverPositionTop(popoverElementPosition);\r\n break;\r\n }\r\n case 'left': {\r\n this.applyPopoverPositionLeft(popoverElementPosition);\r\n break;\r\n }\r\n case 'right': {\r\n this.applyPopoverPositionRight(popoverElementPosition);\r\n break;\r\n }\r\n }\r\n this.popoverComponentInstance.visible = true;\r\n });\r\n }\r\n\r\n private applyPopoverPositionBottom(popoverElementPosition: ElementPosition) {\r\n const popoverElement = this.getPopoverElement;\r\n const leftPopover = this.getHorizontalLeft(popoverElementPosition);\r\n popoverElement.style.position = 'absolute';\r\n popoverElement.style.left = `${leftPopover}px`;\r\n popoverElement.style.top = `calc(${popoverElementPosition.top}px + ${popoverElementPosition.elementHeight}px)`;\r\n }\r\n\r\n private applyPopoverPositionTop(popoverElementPosition: ElementPosition) {\r\n const popoverElement = this.getPopoverElement;\r\n const leftPopover = this.getHorizontalLeft(popoverElementPosition);\r\n const popoverHeight = popoverElement.getBoundingClientRect().height;\r\n popoverElement.style.position = 'absolute';\r\n popoverElement.style.left = `${leftPopover}px`;\r\n popoverElement.style.top = `calc(${popoverElementPosition.top}px - ${popoverHeight}px)`;\r\n }\r\n\r\n private applyPopoverPositionLeft(popoverElementPosition: ElementPosition) {\r\n const popoverElement = this.getPopoverElement;\r\n const popoverWidth = popoverElement.getBoundingClientRect().width;\r\n popoverElement.style.position = 'absolute';\r\n popoverElement.style.left = `calc(${popoverElementPosition.right}px - ${popoverWidth + popoverElementPosition.elementWidth}px)`;\r\n popoverElement.style.top = this.getVerticalTop(popoverElementPosition);\r\n }\r\n\r\n private applyPopoverPositionRight(popoverElementPosition: ElementPosition) {\r\n const popoverElement = this.getPopoverElement;\r\n popoverElement.style.position = 'absolute';\r\n popoverElement.style.left = `calc(${popoverElementPosition.right}px)`;\r\n popoverElement.style.top = this.getVerticalTop(popoverElementPosition);\r\n }\r\n\r\n private getHorizontalLeft(popoverElementPosition: ElementPosition) {\r\n const popoverElement = this.getPopoverElement;\r\n const popoverWidth = popoverElement.getBoundingClientRect().width;\r\n let _horizontalLeft = popoverElementPosition.left;\r\n if (this.popoverArrowPosition === 'end') {\r\n _horizontalLeft = popoverElementPosition.right - popoverWidth;\r\n } else if (this.popoverArrowPosition === 'middle') {\r\n _horizontalLeft = popoverElementPosition.left + popoverElementPosition.elementWidth / 2 - popoverWidth / 2;\r\n }\r\n return _horizontalLeft;\r\n }\r\n\r\n private getVerticalTop(popoverElementPosition: ElementPosition) {\r\n const arrowElement = this.popoverComponentInstance.arrowElement?.nativeElement as HTMLElement;\r\n const arrowElementPosition = getElementPositionInfo(arrowElement);\r\n const popoverContentPosition = getElementPositionInfo(this.getPopoverElement);\r\n const popoverElement = this.getPopoverElement;\r\n const popoverHeight = popoverElement.getBoundingClientRect().height;\r\n let top = `calc(${popoverElementPosition.top}px - ${popoverHeight / 2}px + ${popoverElementPosition.elementHeight / 2}px)`;\r\n\r\n const arrowMiddle = arrowElementPosition.elementHeight / 2;\r\n if (this.popoverArrowPosition === 'beginning') {\r\n const distanceArrowFromStart = arrowElementPosition.top - popoverContentPosition.top;\r\n top = `calc(${popoverElementPosition.top}px + ${popoverElementPosition.elementHeight / 2}px - ${distanceArrowFromStart + arrowMiddle}px)`;\r\n } else if (this.popoverArrowPosition === 'end') {\r\n const distanceArrowFromEnd =\r\n popoverContentPosition.top +\r\n popoverContentPosition.elementHeight -\r\n (arrowElementPosition.top + arrowElementPosition.elementHeight);\r\n top = `calc(${popoverElementPosition.top}px - ${popoverContentPosition.elementHeight}px + ${popoverElementPosition.elementHeight / 2}px + ${distanceArrowFromEnd + arrowMiddle}px)`;\r\n }\r\n return top;\r\n }\r\n\r\n private getLeftoverContentAvailableForPopover(): ElementLeftoverPosition {\r\n return getElementLeftoverContentAvailable(this.element.nativeElement);\r\n }\r\n\r\n private get getPopoverElement(): HTMLElement {\r\n return this.componentRef?.location.nativeElement as HTMLElement;\r\n }\r\n\r\n private get popoverComponentInstance() {\r\n return this.componentRef?.instance as HelpPopoverComponent;\r\n }\r\n\r\n /**\r\n * Given the current position of the popover and the available space around\r\n * the trigger element, this function will return the position that the popover\r\n * will be set at.\r\n *\r\n * If the popover will fit at the given position, it will return the same\r\n * position.\r\n *\r\n * If the popover will not fit at the given position, it will return the position\r\n * that has the most available space (top or bottom).\r\n *\r\n * If there is no position with available space, it will return the given\r\n * position.\r\n *\r\n * @returns The position that the popover will be set at.\r\n */\r\n private get validPosition(): HelpPopoverPosition {\r\n const { freeDistanceToBottom, freeDistanceToTop, freeDistanceToLeft, freeDistanceToRight } =\r\n this.getLeftoverContentAvailableForPopover();\r\n\r\n const popoverElementPosition = getElementPositionInfo(this.getPopoverElement);\r\n const popoverElementWidth = popoverElementPosition.elementWidth;\r\n const popoverElementHeight = popoverElementPosition.elementHeight;\r\n\r\n const remainingSpaceBottom = freeDistanceToBottom - popoverElementHeight;\r\n const remainingSpaceTop = freeDistanceToTop - popoverElementHeight;\r\n const remainingSpaceLeft = freeDistanceToLeft - popoverElementWidth;\r\n const remainingSpaceRight = freeDistanceToRight - popoverElementWidth;\r\n\r\n const canSetAtBottom = remainingSpaceBottom > 0;\r\n const canSetAtTop = remainingSpaceTop > 0;\r\n const canSetAtLeft = remainingSpaceLeft > 0;\r\n const canSetAtRight = remainingSpaceRight > 0;\r\n\r\n let validPosition: HelpPopoverPosition | undefined = undefined;\r\n if (canSetAtBottom && this.popoverPosition === 'bottom') {\r\n validPosition = 'bottom';\r\n } else if (canSetAtTop && this.popoverPosition === 'top') {\r\n validPosition = 'top';\r\n } else if (canSetAtLeft && this.popoverPosition === 'left') {\r\n validPosition = 'left';\r\n } else if (canSetAtRight && this.popoverPosition === 'right') {\r\n validPosition = 'right';\r\n }\r\n\r\n const needUseOtherPosition = !validPosition;\r\n if (needUseOtherPosition) {\r\n const freePositions: { position: HelpPopoverPosition; freeDistance: number }[] = [\r\n {\r\n position: 'bottom' as HelpPopoverPosition,\r\n freeDistance: remainingSpaceBottom,\r\n },\r\n {\r\n position: 'top' as HelpPopoverPosition,\r\n freeDistance: remainingSpaceTop,\r\n },\r\n ].filter((x) => x.freeDistance > 0);\r\n\r\n if (freePositions.length === 0) {\r\n return this.popoverPosition;\r\n }\r\n const itemWithMaxFreeDistance = freePositions.sort((a, b) => b.freeDistance - a.freeDistance)[0];\r\n return itemWithMaxFreeDistance.position;\r\n } else {\r\n return this.popoverPosition;\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { HelpPopoverDirective } from './help-popover.directive';\r\n@NgModule({\r\n imports: [HelpPopoverDirective],\r\n exports: [HelpPopoverDirective],\r\n})\r\nexport class HelpPopoverModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-help-popover.mjs","sources":["../../projects/angular-components/help-popover/src/lib/help-popover/help-popover/help-popover.component.ts","../../projects/angular-components/help-popover/src/lib/help-popover/help-popover/help-popover.component.html","../../projects/angular-components/help-popover/src/lib/help-popover/help-popover.directive.ts","../../projects/angular-components/help-popover/src/lib/help-popover/help-popover.module.ts","../../projects/angular-components/help-popover/src/seniorsistemas-angular-components-help-popover.ts"],"sourcesContent":["import { Component, ElementRef, EventEmitter, OnDestroy, TemplateRef, ViewChild } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { HelpPopoverArrowPosition, HelpPopoverPosition } from '../models/help-popover.models';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\r\n\r\n@Component({\r\n selector: 's-help-popover',\r\n templateUrl: './help-popover.component.html',\r\n styleUrls: ['./help-popover.component.scss'],\r\n standalone: true,\r\n imports: [NgTemplateOutlet, ButtonComponent],\r\n})\r\nexport class HelpPopoverComponent implements OnDestroy {\r\n private readonly VALID_POSITIONS: HelpPopoverPosition[] = ['top', 'bottom', 'left', 'right'];\r\n private readonly VALID_ARROW_POSITIONS: HelpPopoverArrowPosition[] = ['beginning', 'end', 'middle'];\r\n private _position: HelpPopoverPosition = 'bottom';\r\n popoverContent: string | TemplateRef<any> | null = null;\r\n closeButton = true;\r\n icon = '';\r\n header = '';\r\n footer = '';\r\n button = '';\r\n visible = false;\r\n @ViewChild('arrowElement', { read: ElementRef, static: true }) arrowElement: ElementRef<HTMLElement> | null = null;\r\n public get position(): HelpPopoverPosition {\r\n return this._position;\r\n }\r\n public set position(value: HelpPopoverPosition) {\r\n if (!this.VALID_POSITIONS.includes(value)) {\r\n throw new Error(`Invalid position: ${value}. Valid positions: ${this.VALID_POSITIONS}`);\r\n }\r\n this._position = value;\r\n }\r\n\r\n private _arrowPosition: HelpPopoverArrowPosition = 'beginning';\r\n public get arrowPosition(): HelpPopoverArrowPosition {\r\n return this._arrowPosition;\r\n }\r\n public set arrowPosition(value: HelpPopoverArrowPosition) {\r\n if (!this.VALID_ARROW_POSITIONS.includes(value)) {\r\n throw new Error(`Invalid arrow position: ${value}. Valid arrow positions: ${this.VALID_ARROW_POSITIONS}`);\r\n }\r\n this._arrowPosition = value;\r\n }\r\n\r\n buttonClicked!: EventEmitter<void>;\r\n\r\n closed = new Subject<void>();\r\n get contentIsString() {\r\n return typeof this.popoverContent === 'string';\r\n }\r\n\r\n get popoverContentTemplateRef() {\r\n return this.popoverContent as TemplateRef<any>;\r\n }\r\n\r\n get hasHeaderContainer() {\r\n const _hasHeader = this.hasHeaderText;\r\n const hasIcon = this.hasIcon;\r\n const hasCloseButton = this.closeButton;\r\n return _hasHeader || hasIcon || hasCloseButton;\r\n }\r\n\r\n get hasFooter() {\r\n const _hasFooterText = this.hasFooterText;\r\n const hasButtonText = this.button && this.button.length > 0;\r\n return _hasFooterText || hasButtonText;\r\n }\r\n\r\n get hasHeaderText() {\r\n return this.header && this.header.length > 0;\r\n }\r\n\r\n get hasFooterText() {\r\n return this.footer && this.footer.length > 0;\r\n }\r\n\r\n get hasIcon() {\r\n return this.icon && this.icon.length > 0;\r\n }\r\n\r\n close() {\r\n this.closed.next();\r\n }\r\n\r\n clickButton() {\r\n this.buttonClicked!.emit();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.closed.complete();\r\n }\r\n}\r\n","<div\n class=\"popover-container\"\n [style.visibility]=\"visible ? 'visible' : 'hidden'\"\n [class.popover-container-top]=\"position === 'top'\"\n [class.popover-container-right]=\"position === 'right'\"\n [class.popover-container-bottom]=\"position === 'bottom'\"\n [class.popover-container-left]=\"position === 'left'\"\n>\n <div\n class=\"arrow-container\"\n [class.arrow-container-beginning]=\"arrowPosition === 'beginning'\"\n [class.arrow-container-middle]=\"arrowPosition === 'middle'\"\n [class.arrow-container-end]=\"arrowPosition === 'end'\"\n >\n <div\n class=\"arrow\"\n #arrowElement\n ></div>\n </div>\n <div class=\"popover\">\n @if (hasHeaderContainer) {\n <div\n class=\"popover-header-container\"\n [class.space-between]=\"hasIcon || hasHeaderText\"\n [class.flex-end]=\"!(hasIcon || hasHeaderText) && closeButton\"\n >\n @if (hasIcon || hasHeaderText) {\n <div class=\"popover-header-container-text\">\n @if (hasIcon) {\n <div class=\"popover-icon\">\n <i [class]=\"icon\"></i>\n </div>\n }\n @if (hasHeaderText) {\n <div class=\"popover-header-text\">\n {{ header }}\n </div>\n }\n </div>\n }\n @if (closeButton) {\n <div class=\"popover-close-button\">\n <i\n class=\"fas fa-times\"\n (click)=\"close()\"\n ></i>\n </div>\n }\n </div>\n }\n\n <div class=\"popover-content\">\n @if (contentIsString) {\n {{ popoverContent }}\n } @else {\n <ng-container *ngTemplateOutlet=\"popoverContentTemplateRef\"></ng-container>\n }\n </div>\n\n @if (hasFooter) {\n <div class=\"separator\"></div>\n <div\n class=\"popover-footer-container\"\n [class.space-between]=\"hasFooterText\"\n [class.flex-end]=\"!hasFooterText\"\n >\n @if (hasFooterText) {\n <p class=\"popover-footer-text\">\n {{ footer }}\n </p>\n }\n @if (button && button.length > 0) {\n <div class=\"popover-footer-button\">\n <s-button\n [label]=\"button\"\n priority=\"primary\"\n size=\"small\"\n (clicked)=\"clickButton()\"\n [disabled]=\"false\"\n [auxiliary]=\"false\"\n >\n </s-button>\n </div>\n }\n </div>\n }\n </div>\n</div>\n\n","import {\r\n ComponentRef,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n inject,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n TemplateRef,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { HelpPopoverComponent } from './help-popover/help-popover.component';\r\nimport { HelpPopoverArrowPosition, HelpPopoverPosition } from './models/help-popover.models';\r\nimport {\r\n ElementLeftoverPosition,\r\n ElementPosition,\r\n getElementLeftoverContentAvailable,\r\n getElementPositionInfo,\r\n isMousePositionOutsideOfElement,\r\n} from '@seniorsistemas/angular-components/utils';\r\n\r\n/**\r\n * @description Diretiva que exibe um popover de ajuda ao clicar no elemento hospedeiro.\r\n * O popover suporta conteúdo como texto simples ou `TemplateRef`, além de botão de fechar,\r\n * ícone, cabeçalho, rodapé e posição configurável. Pode ser acionado programaticamente.\r\n *\r\n * @example\r\n * ```html\r\n * <button [sHelpPopover]=\"'Informe aqui o seu CPF'\" popoverPosition=\"right\">?</button>\r\n * ```\r\n *\r\n * @category Overlay\r\n */\r\n@Directive({\r\n selector: '[sHelpPopover]',\r\n exportAs: 'sHelpPopover',\r\n standalone: true,\r\n})\r\nexport class HelpPopoverDirective implements OnDestroy, OnInit {\r\n private readonly MUTATION_OBSERVER_CONFIG: MutationObserverInit = {\r\n attributes: true,\r\n childList: true,\r\n subtree: true,\r\n };\r\n private readonly OBSERVER_CALLBACK = () => {\r\n if (!this.componentRef) {\r\n return;\r\n }\r\n this.applyPositionIntoElement();\r\n };\r\n private readonly RESIZE_OBSERVER = () => {\r\n this.onResize$.next();\r\n };\r\n\r\n /**\r\n * @description Conteúdo do popover. Aceita uma `string` com texto simples ou um `TemplateRef`\r\n * para renderizar conteúdo Angular customizado dentro do popover.\r\n */\r\n @Input() sHelpPopover: string | TemplateRef<any> | null = null;\r\n\r\n /**\r\n * @description Quando `true`, exibe o botão de fechar (X) no cabeçalho do popover.\r\n *\r\n * @default true\r\n */\r\n @Input() closeButton = true;\r\n\r\n /**\r\n * @description Classe de ícone exibida no cabeçalho do popover (ex: classe de Font Awesome).\r\n */\r\n @Input() popoverIcon = '';\r\n\r\n /**\r\n * @description Texto exibido no cabeçalho do popover.\r\n */\r\n @Input() popoverHeader = '';\r\n\r\n /**\r\n * @description Texto exibido no rodapé do popover.\r\n */\r\n @Input() popoverFooter = '';\r\n\r\n /**\r\n * @description Texto do botão de ação exibido no rodapé do popover.\r\n * Ao clicar, emite o evento `buttonClicked`.\r\n */\r\n @Input() popoverButtonText = '';\r\n\r\n /**\r\n * @description Alinhamento da seta indicadora em relação ao lado do popover.\r\n * Valores aceitos: `'beginning'` (padrão), `'middle'`, `'end'`.\r\n *\r\n * @default 'beginning'\r\n */\r\n @Input() popoverArrowPosition: HelpPopoverArrowPosition = 'beginning';\r\n\r\n /**\r\n * @description Posição do popover em relação ao elemento hospedeiro.\r\n * Valores aceitos: `'top'`, `'bottom'` (padrão), `'left'`, `'right'`.\r\n * O componente tenta reposicionar automaticamente caso não haja espaço.\r\n *\r\n * @default 'bottom'\r\n */\r\n @Input()\r\n public set popoverPosition(value: HelpPopoverPosition) {\r\n this._popoverPosition = value;\r\n this.internalPosition = value;\r\n }\r\n\r\n public get popoverPosition(): HelpPopoverPosition {\r\n return this._popoverPosition;\r\n }\r\n\r\n /**\r\n * @description Emitido quando o usuário clica no botão de ação do rodapé do popover.\r\n */\r\n @Output() buttonClicked = new EventEmitter<void>();\r\n\r\n private _popoverPosition: HelpPopoverPosition = 'bottom';\r\n\r\n private onDestroy$ = new Subject<void>();\r\n private componentRef: ComponentRef<HelpPopoverComponent> | null = null;\r\n private mutationObserverPopoverElement: MutationObserver | null = null;\r\n private mutationObserverPopoverContent: MutationObserver | null = null;\r\n private internalPosition: HelpPopoverPosition = 'bottom';\r\n private onResize$ = new Subject<void>();\r\n private manualTrigger = false;\r\n private listener = (event: PointerEvent | MouseEvent) => {\r\n if (!this.componentRef) {\r\n return;\r\n }\r\n const totalElementArea = this.getPopoverElement.getBoundingClientRect();\r\n if (isMousePositionOutsideOfElement(event, totalElementArea)) {\r\n this.destroy();\r\n }\r\n };\r\n private readonly viewContainerRef = inject(ViewContainerRef);\r\n private readonly element: ElementRef<HTMLElement> = inject(ElementRef);\r\n\r\n ngOnInit(): void {\r\n const popoverElementObserver = new MutationObserver(this.OBSERVER_CALLBACK);\r\n this.mutationObserverPopoverElement = popoverElementObserver;\r\n popoverElementObserver.observe(this.element.nativeElement, this.MUTATION_OBSERVER_CONFIG);\r\n window.addEventListener('resize', this.RESIZE_OBSERVER);\r\n window.addEventListener('scrollend', this.OBSERVER_CALLBACK);\r\n this.onResize$.pipe(takeUntil(this.onDestroy$), debounceTime(100)).subscribe(this.OBSERVER_CALLBACK);\r\n }\r\n\r\n show() {\r\n this.manualTrigger = true;\r\n this._createComponent();\r\n }\r\n\r\n @HostListener('click')\r\n doClick() {\r\n if (this.manualTrigger) {\r\n return;\r\n }\r\n this._createComponent();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.onDestroy$.next();\r\n this.onDestroy$.complete();\r\n this.destroy();\r\n if (this.mutationObserverPopoverElement) {\r\n this.mutationObserverPopoverElement.disconnect();\r\n }\r\n window.removeEventListener('resize', this.RESIZE_OBSERVER);\r\n window.removeEventListener('scrollend', this.OBSERVER_CALLBACK);\r\n }\r\n\r\n private _createComponent() {\r\n if (!this.sHelpPopover) {\r\n return;\r\n }\r\n if (this.componentRef) {\r\n this.destroy();\r\n }\r\n const componentRef = this.viewContainerRef.createComponent(HelpPopoverComponent);\r\n this.componentRef = componentRef;\r\n if (this.mutationObserverPopoverContent) {\r\n this.mutationObserverPopoverContent.disconnect();\r\n }\r\n this.mutationObserverPopoverContent = new MutationObserver(this.OBSERVER_CALLBACK);\r\n const element = this.getPopoverElement as HTMLElement;\r\n this.mutationObserverPopoverContent.observe(\r\n element.querySelector('.popover-content') as HTMLElement,\r\n this.MUTATION_OBSERVER_CONFIG,\r\n );\r\n document.body.appendChild(componentRef.location.nativeElement);\r\n setTimeout(() => {\r\n document.addEventListener('click', this.listener);\r\n });\r\n const component = componentRef.instance;\r\n component.popoverContent = this.sHelpPopover;\r\n component.closeButton = this.closeButton;\r\n component.icon = this.popoverIcon;\r\n component.header = this.popoverHeader;\r\n component.footer = this.popoverFooter;\r\n component.button = this.popoverButtonText;\r\n component.position = this.internalPosition;\r\n component.arrowPosition = this.popoverArrowPosition;\r\n component.buttonClicked = this.buttonClicked;\r\n component.closed.pipe(takeUntil(this.onDestroy$)).subscribe(() => {\r\n this.destroy();\r\n });\r\n this.applyPositionIntoElement();\r\n }\r\n\r\n private destroy() {\r\n document.removeEventListener('click', this.listener);\r\n if (this.componentRef) {\r\n this.componentRef.destroy();\r\n this.componentRef = null;\r\n }\r\n\r\n this.internalPosition = this.popoverPosition;\r\n\r\n if (this.mutationObserverPopoverContent) {\r\n this.mutationObserverPopoverContent.disconnect();\r\n }\r\n }\r\n\r\n private applyPositionIntoElement() {\r\n const popoverElementPosition = getElementPositionInfo(this.element.nativeElement);\r\n const position = this.validPosition;\r\n this.internalPosition = position;\r\n this.popoverComponentInstance.position = this.internalPosition;\r\n setTimeout(() => {\r\n switch (this.internalPosition) {\r\n case 'bottom': {\r\n this.applyPopoverPositionBottom(popoverElementPosition);\r\n break;\r\n }\r\n case 'top': {\r\n this.applyPopoverPositionTop(popoverElementPosition);\r\n break;\r\n }\r\n case 'left': {\r\n this.applyPopoverPositionLeft(popoverElementPosition);\r\n break;\r\n }\r\n case 'right': {\r\n this.applyPopoverPositionRight(popoverElementPosition);\r\n break;\r\n }\r\n }\r\n this.popoverComponentInstance.visible = true;\r\n });\r\n }\r\n\r\n private applyPopoverPositionBottom(popoverElementPosition: ElementPosition) {\r\n const popoverElement = this.getPopoverElement;\r\n const leftPopover = this.getHorizontalLeft(popoverElementPosition);\r\n popoverElement.style.position = 'absolute';\r\n popoverElement.style.left = `${leftPopover}px`;\r\n popoverElement.style.top = `calc(${popoverElementPosition.top}px + ${popoverElementPosition.elementHeight}px)`;\r\n }\r\n\r\n private applyPopoverPositionTop(popoverElementPosition: ElementPosition) {\r\n const popoverElement = this.getPopoverElement;\r\n const leftPopover = this.getHorizontalLeft(popoverElementPosition);\r\n const popoverHeight = popoverElement.getBoundingClientRect().height;\r\n popoverElement.style.position = 'absolute';\r\n popoverElement.style.left = `${leftPopover}px`;\r\n popoverElement.style.top = `calc(${popoverElementPosition.top}px - ${popoverHeight}px)`;\r\n }\r\n\r\n private applyPopoverPositionLeft(popoverElementPosition: ElementPosition) {\r\n const popoverElement = this.getPopoverElement;\r\n const popoverWidth = popoverElement.getBoundingClientRect().width;\r\n popoverElement.style.position = 'absolute';\r\n popoverElement.style.left = `calc(${popoverElementPosition.right}px - ${popoverWidth + popoverElementPosition.elementWidth}px)`;\r\n popoverElement.style.top = this.getVerticalTop(popoverElementPosition);\r\n }\r\n\r\n private applyPopoverPositionRight(popoverElementPosition: ElementPosition) {\r\n const popoverElement = this.getPopoverElement;\r\n popoverElement.style.position = 'absolute';\r\n popoverElement.style.left = `calc(${popoverElementPosition.right}px)`;\r\n popoverElement.style.top = this.getVerticalTop(popoverElementPosition);\r\n }\r\n\r\n private getHorizontalLeft(popoverElementPosition: ElementPosition) {\r\n const popoverElement = this.getPopoverElement;\r\n const popoverWidth = popoverElement.getBoundingClientRect().width;\r\n let _horizontalLeft = popoverElementPosition.left;\r\n if (this.popoverArrowPosition === 'end') {\r\n _horizontalLeft = popoverElementPosition.right - popoverWidth;\r\n } else if (this.popoverArrowPosition === 'middle') {\r\n _horizontalLeft = popoverElementPosition.left + popoverElementPosition.elementWidth / 2 - popoverWidth / 2;\r\n }\r\n return _horizontalLeft;\r\n }\r\n\r\n private getVerticalTop(popoverElementPosition: ElementPosition) {\r\n const arrowElement = this.popoverComponentInstance.arrowElement?.nativeElement as HTMLElement;\r\n const arrowElementPosition = getElementPositionInfo(arrowElement);\r\n const popoverContentPosition = getElementPositionInfo(this.getPopoverElement);\r\n const popoverElement = this.getPopoverElement;\r\n const popoverHeight = popoverElement.getBoundingClientRect().height;\r\n let top = `calc(${popoverElementPosition.top}px - ${popoverHeight / 2}px + ${popoverElementPosition.elementHeight / 2}px)`;\r\n\r\n const arrowMiddle = arrowElementPosition.elementHeight / 2;\r\n if (this.popoverArrowPosition === 'beginning') {\r\n const distanceArrowFromStart = arrowElementPosition.top - popoverContentPosition.top;\r\n top = `calc(${popoverElementPosition.top}px + ${popoverElementPosition.elementHeight / 2}px - ${distanceArrowFromStart + arrowMiddle}px)`;\r\n } else if (this.popoverArrowPosition === 'end') {\r\n const distanceArrowFromEnd =\r\n popoverContentPosition.top +\r\n popoverContentPosition.elementHeight -\r\n (arrowElementPosition.top + arrowElementPosition.elementHeight);\r\n top = `calc(${popoverElementPosition.top}px - ${popoverContentPosition.elementHeight}px + ${popoverElementPosition.elementHeight / 2}px + ${distanceArrowFromEnd + arrowMiddle}px)`;\r\n }\r\n return top;\r\n }\r\n\r\n private getLeftoverContentAvailableForPopover(): ElementLeftoverPosition {\r\n return getElementLeftoverContentAvailable(this.element.nativeElement);\r\n }\r\n\r\n private get getPopoverElement(): HTMLElement {\r\n return this.componentRef?.location.nativeElement as HTMLElement;\r\n }\r\n\r\n private get popoverComponentInstance() {\r\n return this.componentRef?.instance as HelpPopoverComponent;\r\n }\r\n\r\n /**\r\n * Given the current position of the popover and the available space around\r\n * the trigger element, this function will return the position that the popover\r\n * will be set at.\r\n *\r\n * If the popover will fit at the given position, it will return the same\r\n * position.\r\n *\r\n * If the popover will not fit at the given position, it will return the position\r\n * that has the most available space (top or bottom).\r\n *\r\n * If there is no position with available space, it will return the given\r\n * position.\r\n *\r\n * @returns The position that the popover will be set at.\r\n */\r\n private get validPosition(): HelpPopoverPosition {\r\n const { freeDistanceToBottom, freeDistanceToTop, freeDistanceToLeft, freeDistanceToRight } =\r\n this.getLeftoverContentAvailableForPopover();\r\n\r\n const popoverElementPosition = getElementPositionInfo(this.getPopoverElement);\r\n const popoverElementWidth = popoverElementPosition.elementWidth;\r\n const popoverElementHeight = popoverElementPosition.elementHeight;\r\n\r\n const remainingSpaceBottom = freeDistanceToBottom - popoverElementHeight;\r\n const remainingSpaceTop = freeDistanceToTop - popoverElementHeight;\r\n const remainingSpaceLeft = freeDistanceToLeft - popoverElementWidth;\r\n const remainingSpaceRight = freeDistanceToRight - popoverElementWidth;\r\n\r\n const canSetAtBottom = remainingSpaceBottom > 0;\r\n const canSetAtTop = remainingSpaceTop > 0;\r\n const canSetAtLeft = remainingSpaceLeft > 0;\r\n const canSetAtRight = remainingSpaceRight > 0;\r\n\r\n let validPosition: HelpPopoverPosition | undefined = undefined;\r\n if (canSetAtBottom && this.popoverPosition === 'bottom') {\r\n validPosition = 'bottom';\r\n } else if (canSetAtTop && this.popoverPosition === 'top') {\r\n validPosition = 'top';\r\n } else if (canSetAtLeft && this.popoverPosition === 'left') {\r\n validPosition = 'left';\r\n } else if (canSetAtRight && this.popoverPosition === 'right') {\r\n validPosition = 'right';\r\n }\r\n\r\n const needUseOtherPosition = !validPosition;\r\n if (needUseOtherPosition) {\r\n const freePositions: { position: HelpPopoverPosition; freeDistance: number }[] = [\r\n {\r\n position: 'bottom' as HelpPopoverPosition,\r\n freeDistance: remainingSpaceBottom,\r\n },\r\n {\r\n position: 'top' as HelpPopoverPosition,\r\n freeDistance: remainingSpaceTop,\r\n },\r\n ].filter((x) => x.freeDistance > 0);\r\n\r\n if (freePositions.length === 0) {\r\n return this.popoverPosition;\r\n }\r\n const itemWithMaxFreeDistance = freePositions.sort((a, b) => b.freeDistance - a.freeDistance)[0];\r\n return itemWithMaxFreeDistance.position;\r\n } else {\r\n return this.popoverPosition;\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { HelpPopoverDirective } from './help-popover.directive';\r\n/**\r\n * @deprecated Será removido na v20. Importe diretamente o standalone `HelpPopoverDirective` (de\r\n * `@seniorsistemas/angular-components/help-popover`) no lugar deste módulo.\r\n *\r\n * Migração automática (também executada pelo `ng update` na v20):\r\n * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`\r\n */\r\n@NgModule({\r\n imports: [HelpPopoverDirective],\r\n exports: [HelpPopoverDirective],\r\n})\r\nexport class HelpPopoverModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -216,6 +216,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
216
216
|
args: [FooterComponent, { static: true }]
|
|
217
217
|
}] } });
|
|
218
218
|
|
|
219
|
+
/**
|
|
220
|
+
* @deprecated Será removido na v20. Importe diretamente o standalone `ImageCropperComponent` (de
|
|
221
|
+
* `@seniorsistemas/angular-components/image-cropper`) no lugar deste módulo.
|
|
222
|
+
*
|
|
223
|
+
* Este módulo também reexportava `HeaderComponent` (`@seniorsistemas/angular-components/structure`, usado em
|
|
224
|
+
* templates por `<s-header>`) e `FooterComponent` (`@seniorsistemas/angular-components/structure`, usado em
|
|
225
|
+
* templates por `<s-footer>`). Se o seu template usa algum deles, importe-o diretamente.
|
|
226
|
+
*
|
|
227
|
+
* Migração automática (também executada pelo `ng update` na v20):
|
|
228
|
+
* `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
|
|
229
|
+
*/
|
|
219
230
|
class ImageCropperModule {
|
|
220
231
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ImageCropperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
221
232
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ImageCropperModule, imports: [StructureModule, ImageCropperComponent], exports: [ImageCropperComponent, StructureModule] });
|
|
@@ -285,10 +296,11 @@ class ImageCropperService {
|
|
|
285
296
|
activeCropper.componentRef.destroy();
|
|
286
297
|
}
|
|
287
298
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ImageCropperService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
288
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ImageCropperService });
|
|
299
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ImageCropperService, providedIn: 'root' });
|
|
289
300
|
}
|
|
290
301
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ImageCropperService, decorators: [{
|
|
291
|
-
type: Injectable
|
|
302
|
+
type: Injectable,
|
|
303
|
+
args: [{ providedIn: 'root' }]
|
|
292
304
|
}] });
|
|
293
305
|
|
|
294
306
|
/**
|