@seniorsistemas/angular-components 19.0.4 → 19.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/lib/accordion/accordion.component.d.ts +25 -0
- package/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.d.ts +60 -0
- package/alert/lib/alert/alert.component.d.ts +40 -0
- package/autocomplete/lib/autocomplete/autocomplete.component.d.ts +51 -0
- package/badge/lib/badge/badge.component.d.ts +20 -0
- package/bignumber-input/lib/bignumber-input/bignumber-input.directive.d.ts +46 -1
- package/breadcrumb/lib/breadcrumb/breadcrumb-models.d.ts +11 -0
- package/breadcrumb/lib/breadcrumb/breadcrumb.component.d.ts +19 -23
- package/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.d.ts +25 -0
- package/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.module.d.ts +10 -0
- package/breadcrumb/public-api.d.ts +4 -2
- package/button/lib/button/button.component.d.ts +103 -1
- package/calendar-mask/lib/calendar-mask/calendar-mask.directive.d.ts +24 -0
- package/card/lib/card/card.component.d.ts +18 -0
- package/chat/lib/chat/chat.component.d.ts +20 -2
- package/chat/lib/chat/components/chat-message/chat-message.component.d.ts +18 -2
- package/checkbox/lib/checkbox/checkbox.component.d.ts +23 -3
- package/checkbox-list/lib/checkbox-list/checkbox-list.component.d.ts +20 -0
- package/chips/lib/chips/chip-item/chip-item.component.d.ts +15 -0
- package/chips/lib/chips/chips/chips.component.d.ts +41 -0
- package/code-editor/lib/code-editor/code-editor.component.d.ts +40 -0
- package/collapse-link/lib/collapse-link/collapse-link.component.d.ts +18 -0
- package/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.d.ts +5 -0
- package/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.d.ts +19 -0
- package/content-generator/lib/content-generator/content-generator.component.d.ts +30 -0
- package/control-errors/lib/control-errors/control-errors.component.d.ts +36 -0
- package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +36 -0
- package/currency/lib/currency.service.d.ts +15 -2
- package/custom-fields/lib/custom-fields/custom-fields.component.d.ts +31 -0
- package/dialog/lib/src/dialog/dialog.component.d.ts +51 -0
- package/dialog/lib/src/dialog/services/dialog.service.d.ts +2 -2
- package/dialog/lib/src/dialog/services/internal-dialog.service.d.ts +1 -1
- package/dynamic-form/dynamic-form/components/lookup/lookup.component.d.ts +6 -5
- package/dynamic-form/dynamic-form/components/lookup/models/lookup-api.model.d.ts +5 -0
- package/dynamic-form/dynamic-form/configurations/structure/fieldset.d.ts +14 -0
- package/dynamic-form/dynamic-form/configurations/structure/row.d.ts +67 -0
- package/dynamic-form/dynamic-form/configurations/structure/section.d.ts +8 -0
- package/dynamic-form/dynamic-form/configurations/structure/structure.d.ts +19 -0
- package/dynamic-form/dynamic-form/dynamic-form.component.d.ts +21 -1
- package/dynamic-form/dynamic-form/form-field/configurations/fields/autocomplete-field.d.ts +45 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/bignumber-field.d.ts +59 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/blob-field.d.ts +55 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-field.d.ts +35 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-switch-field.d.ts +17 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/button-field.d.ts +23 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/calendar-field.d.ts +66 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/checkbox-field.d.ts +15 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/chips-field.d.ts +30 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/content-generator-field.d.ts +47 -2
- package/dynamic-form/dynamic-form/form-field/configurations/fields/country-phone-picker-field.d.ts +26 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.d.ts +18 -1
- package/dynamic-form/dynamic-form/form-field/configurations/fields/field.d.ts +44 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.d.ts +112 -4
- package/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.d.ts +42 -3
- package/dynamic-form/dynamic-form/form-field/configurations/fields/password-field.d.ts +48 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/profile-picture.d.ts +62 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/radio-button-field.d.ts +34 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/select-field.d.ts +63 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/slider-field.d.ts +47 -1
- package/dynamic-form/dynamic-form/form-field/configurations/fields/star-rating-field.d.ts +23 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/text-area-field.d.ts +37 -1
- package/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.d.ts +65 -2
- package/dynamic-form/public-api.d.ts +1 -0
- package/editable-overlay/lib/editable-overlay/editable-overlay.directive.d.ts +16 -0
- package/empty-state/lib/empty-state/empty-state.component.d.ts +59 -0
- package/esm2022/accordion/lib/accordion/accordion.component.mjs +26 -1
- package/esm2022/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.mjs +61 -1
- package/esm2022/alert/lib/alert/alert.component.mjs +41 -1
- package/esm2022/autocomplete/lib/autocomplete/autocomplete.component.mjs +52 -1
- package/esm2022/badge/lib/badge/badge.component.mjs +21 -1
- package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.directive.mjs +47 -2
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-models.mjs +2 -0
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.component.mjs +39 -98
- package/esm2022/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.mjs +120 -0
- package/esm2022/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.module.mjs +19 -0
- package/esm2022/breadcrumb/public-api.mjs +4 -3
- package/esm2022/button/lib/button/button.component.mjs +107 -3
- package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.directive.mjs +72 -47
- package/esm2022/card/lib/card/card.component.mjs +21 -6
- package/esm2022/chat/lib/chat/chat.component.mjs +23 -5
- package/esm2022/chat/lib/chat/components/chat-message/chat-message.component.mjs +20 -4
- package/esm2022/checkbox/lib/checkbox/checkbox.component.mjs +24 -4
- package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.component.mjs +22 -2
- package/esm2022/chips/lib/chips/chip-item/chip-item.component.mjs +17 -2
- package/esm2022/chips/lib/chips/chips/chips.component.mjs +42 -1
- package/esm2022/code-editor/lib/code-editor/code-editor.component.mjs +41 -1
- package/esm2022/collapse-link/lib/collapse-link/collapse-link.component.mjs +19 -1
- package/esm2022/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.mjs +6 -1
- package/esm2022/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.mjs +21 -2
- package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +32 -2
- package/esm2022/control-errors/lib/control-errors/control-errors.component.mjs +37 -1
- package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +37 -1
- package/esm2022/currency/lib/currency.service.mjs +21 -8
- package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +32 -1
- package/esm2022/dialog/lib/src/dialog/dialog.component.mjs +66 -11
- package/esm2022/dialog/lib/src/dialog/services/dialog.service.mjs +13 -10
- package/esm2022/dialog/lib/src/dialog/services/internal-dialog.service.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/components/grid/row/row.component.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form/components/lookup/models/lookup-api.model.mjs +2 -0
- package/esm2022/dynamic-form/dynamic-form/configurations/structure/fieldset.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/configurations/structure/row.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/configurations/structure/section.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/configurations/structure/structure.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/dynamic-form.component.mjs +22 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/autocomplete-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/bignumber-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/blob-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-switch-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/button-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/calendar-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/checkbox-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/chips-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/content-generator-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/country-phone-picker-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/field.mjs +1 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/password-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/profile-picture.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/radio-button-field.mjs +6 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/select-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/slider-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/star-rating-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/text-area-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/button-field/button-field.component.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/radio-button/radio-button-field.component.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.mjs +3 -3
- package/esm2022/dynamic-form/public-api.mjs +2 -2
- package/esm2022/editable-overlay/lib/editable-overlay/editable-overlay.directive.mjs +17 -1
- package/esm2022/empty-state/lib/empty-state/empty-state.component.mjs +61 -2
- package/esm2022/fieldset/lib/fieldset/fieldset.component.mjs +25 -5
- package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +49 -2
- package/esm2022/gantt/lib/gantt/gantt.component.mjs +32 -1
- package/esm2022/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.mjs +1 -1
- package/esm2022/global-search/lib/global-search/global-search.component.mjs +31 -2
- package/esm2022/grid-menu/lib/grid-menu/grid-menu.component.mjs +40 -1
- package/esm2022/help-popover/lib/help-popover/help-popover/help-popover.component.mjs +1 -1
- package/esm2022/help-popover/lib/help-popover/help-popover.directive.mjs +83 -27
- package/esm2022/image-cropper/lib/image-cropper/image-cropper.component.mjs +41 -4
- package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.mjs +18 -2
- package/esm2022/info-sign/lib/info-sign/info-sign.directive.mjs +33 -4
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +1 -1
- package/esm2022/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +1 -1
- package/esm2022/inline-edit/lib/inline-edit/inline-edit.component.mjs +16 -1
- package/esm2022/insights/lib/insights/insights.component.mjs +23 -1
- package/esm2022/interactive-content/lib/interactive-content/interactive-content.directive.mjs +21 -1
- package/esm2022/kanban/lib/kanban/components/kanban-column/kanban-column.component.mjs +1 -1
- package/esm2022/kanban/lib/kanban/components/kanban-item/kanban-item.component.mjs +1 -1
- package/esm2022/kanban/lib/kanban/kanban.component.mjs +34 -16
- package/esm2022/label-value/lib/label-value/label-value.component.mjs +14 -1
- package/esm2022/lib/locale/fallback.mjs +4 -2
- package/esm2022/loading-state/lib/loading-state/loading-state.component.mjs +37 -1
- package/esm2022/loading-state/lib/loading-state/loading-state.directive.mjs +24 -1
- package/esm2022/locale/lib/locale/locale.service.mjs +8 -1
- package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.directive.mjs +17 -1
- package/esm2022/mask/lib/mask/mask-formatter.pipe.mjs +13 -1
- package/esm2022/mouse-events/lib/mouse-events/double-click.directive.mjs +16 -3
- package/esm2022/mouse-events/lib/mouse-events/long-press.directive.mjs +24 -10
- package/esm2022/navigation-button/lib/navigation-button/navigation-button.component.mjs +21 -2
- package/esm2022/number-input/lib/number-input/number-input.directive.mjs +32 -12
- package/esm2022/numeric/lib/numeric.pipe.mjs +16 -1
- package/esm2022/numeric/lib/numeric.service.mjs +21 -1
- package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.directive.mjs +9 -6
- package/esm2022/object-card/lib/object-card/elements/field/object-card-field.component.mjs +1 -1
- package/esm2022/object-card/lib/object-card/elements/main/object-card-main.component.mjs +1 -1
- package/esm2022/object-card/lib/object-card/object-card.component.mjs +24 -1
- package/esm2022/optional-fields/editor/editor-field.mjs +1 -1
- package/esm2022/paginator/lib/paginator/paginator.component.mjs +20 -1
- package/esm2022/panel/lib/panel/panel.component.mjs +44 -23
- package/esm2022/password-strength/lib/password-strength/password-strength.component.mjs +25 -1
- package/esm2022/password-strength/lib/password-strength/password-strength.directive.mjs +54 -1
- package/esm2022/picklist/lib/picklist/picklist.component.mjs +34 -3
- package/esm2022/pin-code-field/lib/pin-code-field/pin-code-field.component.mjs +29 -34
- package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +87 -3
- package/esm2022/progressbar/lib/progressbar/progressbar.component.mjs +53 -3
- package/esm2022/radio-button/lib/radio-button/radio-button.component.mjs +28 -1
- package/esm2022/radio-button/lib/radio-button-group/radio-button-group.component.mjs +27 -1
- package/esm2022/rating-scale/lib/rating-scale/rating-scale.component.mjs +39 -7
- package/esm2022/select/lib/select/select.component.mjs +35 -1
- package/esm2022/select-button/lib/select-button/select-button.component.mjs +35 -1
- package/esm2022/shared/lib/shared/border-button/border-button.component.mjs +11 -3
- package/esm2022/sidebar/lib/sidebar/sidebar.component.mjs +54 -1
- package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.mjs +76 -36
- package/esm2022/slider/lib/slider/slider.component.mjs +90 -9
- package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +25 -4
- package/esm2022/split-button/lib/split-button/split-button.component.mjs +24 -2
- package/esm2022/star-rating/star-rating/star-rating.component.mjs +17 -1
- package/esm2022/stats-card/lib/stats-card/stats-card.component.mjs +32 -10
- package/esm2022/stepper/lib/stepper/stepper.component.mjs +20 -1
- package/esm2022/structure/lib/structure/footer.component.mjs +11 -1
- package/esm2022/switch/lib/switch/switch.component.mjs +22 -2
- package/esm2022/table/lib/table/table-column/table-columns.component.mjs +16 -1
- package/esm2022/table/lib/table/table-paging/table-paging.component.mjs +1 -1
- package/esm2022/table-header/lib/table-header/table-header-checkbox.component.mjs +29 -3
- package/esm2022/tabs/lib/tab-item/tab-item.component.mjs +33 -2
- package/esm2022/tabs/lib/tabs/tabs.component.mjs +35 -3
- package/esm2022/template/lib/template/template.directive.mjs +14 -2
- package/esm2022/text-area/lib/text-area/text-area.component.mjs +28 -1
- package/esm2022/thumbnail/lib/thumbnail/thumbnail.component.mjs +25 -1
- package/esm2022/thumbnails/lib/thumbnails/thumbnails.component.mjs +28 -3
- package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.mjs +65 -46
- package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.mjs +3 -3
- package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.directive.mjs +35 -2
- package/esm2022/tile/lib/tile/tile.component.mjs +26 -1
- package/esm2022/timeline/lib/timeline/timeline.component.mjs +26 -3
- package/esm2022/toast/lib/toast/toast.component.mjs +24 -4
- package/esm2022/token-list/lib/token-list/token-list.component.mjs +22 -1
- package/esm2022/tooltip/lib/tooltip/tooltip.directive.mjs +66 -1
- package/esm2022/topbar/lib/topbar/topbar.component.mjs +18 -1
- package/esm2022/tree/lib/tree/tree.component.mjs +28 -1
- package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.component.mjs +47 -1
- package/fesm2022/seniorsistemas-angular-components-accordion.mjs +85 -0
- package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-alert.mjs +40 -0
- package/fesm2022/seniorsistemas-angular-components-alert.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs +51 -0
- package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-badge.mjs +20 -0
- package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs +46 -1
- package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +93 -37
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-button.mjs +106 -2
- package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +71 -46
- package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-card.mjs +19 -4
- package/fesm2022/seniorsistemas-angular-components-card.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-chat.mjs +39 -5
- package/fesm2022/seniorsistemas-angular-components-chat.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +21 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +23 -3
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-chips.mjs +57 -1
- package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +40 -0
- package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs +18 -0
- package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-common.mjs +5 -0
- package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs +20 -1
- package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +31 -1
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +36 -0
- package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +36 -0
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-currency.mjs +19 -6
- package/fesm2022/seniorsistemas-angular-components-currency.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +31 -0
- package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dialog.mjs +74 -16
- package/fesm2022/seniorsistemas-angular-components-dialog.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +38 -13
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs +16 -0
- package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +60 -1
- package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +21 -1
- package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +48 -1
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-gantt.mjs +31 -0
- package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs +31 -2
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs +39 -0
- package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +81 -25
- package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +39 -2
- package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +17 -1
- package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +30 -1
- package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +17 -2
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-insights.mjs +22 -0
- package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs +20 -0
- package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-kanban.mjs +30 -12
- package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-label-value.mjs +13 -0
- package/fesm2022/seniorsistemas-angular-components-label-value.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +59 -0
- package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-locale.mjs +7 -0
- package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +16 -0
- package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-mask.mjs +12 -0
- package/fesm2022/seniorsistemas-angular-components-mask.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs +35 -8
- package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +20 -1
- package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-number-input.mjs +31 -11
- package/fesm2022/seniorsistemas-angular-components-number-input.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs +8 -5
- package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-numeric.mjs +35 -0
- package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-object-card.mjs +25 -2
- package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-optional-fields-editor.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs +19 -0
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-panel.mjs +39 -18
- package/fesm2022/seniorsistemas-angular-components-panel.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +77 -0
- package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-picklist.mjs +33 -2
- package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs +28 -33
- package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +86 -2
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +52 -2
- package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-radio-button.mjs +53 -0
- package/fesm2022/seniorsistemas-angular-components-radio-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +36 -4
- package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-select-button.mjs +34 -0
- package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-select.mjs +34 -0
- package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-shared.mjs +9 -1
- package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-sidebar.mjs +53 -0
- package/fesm2022/seniorsistemas-angular-components-sidebar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs +71 -31
- package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-slider.mjs +89 -8
- package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +24 -3
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs +22 -0
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-star-rating.mjs +16 -0
- package/fesm2022/seniorsistemas-angular-components-star-rating.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-stats-card.mjs +30 -8
- package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-stepper.mjs +19 -0
- package/fesm2022/seniorsistemas-angular-components-stepper.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-structure.mjs +10 -0
- package/fesm2022/seniorsistemas-angular-components-structure.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-switch.mjs +20 -0
- package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs +28 -2
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table.mjs +16 -1
- package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tabs.mjs +65 -2
- package/fesm2022/seniorsistemas-angular-components-tabs.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-template.mjs +13 -1
- package/fesm2022/seniorsistemas-angular-components-template.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs +27 -0
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +24 -0
- package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +26 -1
- package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +99 -47
- package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tile.mjs +25 -0
- package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-timeline.mjs +25 -2
- package/fesm2022/seniorsistemas-angular-components-timeline.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-toast.mjs +22 -2
- package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-token-list.mjs +21 -0
- package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +65 -0
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-topbar.mjs +17 -0
- package/fesm2022/seniorsistemas-angular-components-topbar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tree.mjs +27 -0
- package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +46 -0
- package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components.mjs +3 -1
- package/fesm2022/seniorsistemas-angular-components.mjs.map +1 -1
- package/fieldset/lib/fieldset/fieldset.component.d.ts +23 -3
- package/file-picker/lib/file-picker/file-picker.component.d.ts +47 -0
- package/gantt/lib/gantt/gantt.component.d.ts +31 -0
- package/global-search/lib/global-search/global-search.component.d.ts +29 -0
- package/grid-menu/lib/grid-menu/grid-menu.component.d.ts +39 -0
- package/help-popover/lib/help-popover/help-popover.directive.d.ts +67 -17
- package/image-cropper/lib/image-cropper/image-cropper.component.d.ts +38 -0
- package/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.d.ts +15 -0
- package/info-sign/lib/info-sign/info-sign.directive.d.ts +30 -1
- package/inline-edit/lib/inline-edit/inline-edit.component.d.ts +15 -0
- package/insights/lib/insights/insights.component.d.ts +22 -0
- package/interactive-content/lib/interactive-content/interactive-content.directive.d.ts +20 -0
- package/kanban/lib/kanban/kanban.component.d.ts +25 -5
- package/label-value/lib/label-value/label-value.component.d.ts +13 -0
- package/loading-state/lib/loading-state/loading-state.component.d.ts +36 -0
- package/loading-state/lib/loading-state/loading-state.directive.d.ts +23 -0
- package/locale/lib/locale/locale.service.d.ts +7 -0
- package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +16 -0
- package/mask/lib/mask/mask-formatter.pipe.d.ts +12 -0
- package/mouse-events/lib/mouse-events/double-click.directive.d.ts +13 -0
- package/mouse-events/lib/mouse-events/long-press.directive.d.ts +16 -2
- package/navigation-button/lib/navigation-button/navigation-button.component.d.ts +19 -0
- package/number-input/lib/number-input/number-input.directive.d.ts +19 -1
- package/numeric/lib/numeric.pipe.d.ts +15 -0
- package/numeric/lib/numeric.service.d.ts +20 -0
- package/numeric-mask/lib/numeric-mask/numeric-mask.directive.d.ts +5 -4
- package/object-card/lib/object-card/object-card.component.d.ts +23 -0
- package/optional-fields/editor/editor-field.d.ts +19 -0
- package/package.json +7 -7
- package/paginator/lib/paginator/paginator.component.d.ts +19 -0
- package/panel/lib/panel/panel.component.d.ts +24 -3
- package/password-strength/lib/password-strength/password-strength.component.d.ts +24 -0
- package/password-strength/lib/password-strength/password-strength.directive.d.ts +53 -0
- package/picklist/lib/picklist/picklist.component.d.ts +29 -0
- package/pin-code-field/lib/pin-code-field/pin-code-field.component.d.ts +28 -33
- package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +85 -1
- package/progressbar/lib/progressbar/progressbar.component.d.ts +50 -0
- package/radio-button/lib/radio-button/radio-button.component.d.ts +27 -0
- package/radio-button/lib/radio-button-group/radio-button-group.component.d.ts +26 -0
- package/rating-scale/lib/rating-scale/rating-scale.component.d.ts +30 -2
- package/select/lib/select/select.component.d.ts +34 -0
- package/select-button/lib/select-button/select-button.component.d.ts +34 -0
- package/shared/lib/shared/border-button/border-button.component.d.ts +10 -2
- package/sidebar/lib/sidebar/sidebar.component.d.ts +53 -0
- package/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.d.ts +53 -2
- package/slider/lib/slider/slider.component.d.ts +72 -0
- package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +18 -0
- package/split-button/lib/split-button/split-button.component.d.ts +22 -0
- package/star-rating/star-rating/star-rating.component.d.ts +16 -0
- package/stats-card/lib/stats-card/stats-card.component.d.ts +28 -0
- package/stepper/lib/stepper/stepper.component.d.ts +19 -0
- package/structure/lib/structure/footer.component.d.ts +10 -0
- package/switch/lib/switch/switch.component.d.ts +20 -0
- package/table/lib/table/table-column/table-columns.component.d.ts +15 -0
- package/table-header/lib/table-header/table-header-checkbox.component.d.ts +18 -0
- package/tabs/lib/tab-item/tab-item.component.d.ts +31 -0
- package/tabs/lib/tabs/tabs.component.d.ts +28 -0
- package/template/lib/template/template.directive.d.ts +12 -0
- package/text-area/lib/text-area/text-area.component.d.ts +27 -0
- package/thumbnail/lib/thumbnail/thumbnail.component.d.ts +24 -0
- package/thumbnails/lib/thumbnails/thumbnails.component.d.ts +27 -2
- package/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +3 -1
- package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +31 -1
- package/tile/lib/tile/tile.component.d.ts +25 -0
- package/timeline/lib/timeline/timeline.component.d.ts +24 -0
- package/toast/lib/toast/toast.component.d.ts +22 -2
- package/token-list/lib/token-list/token-list.component.d.ts +21 -0
- package/tooltip/lib/tooltip/tooltip.directive.d.ts +65 -0
- package/topbar/lib/topbar/topbar.component.d.ts +17 -0
- package/tree/lib/tree/tree.component.d.ts +27 -0
- package/workspace-switch/lib/workspace-switch/workspace-switch.component.d.ts +46 -0
- package/breadcrumb/lib/breadcrumb/breadcrumb.module.d.ts +0 -10
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.module.mjs +0 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-insights.mjs","sources":["../../projects/angular-components/insights/src/lib/insights/components/insights-card/components/insights-card-loader/insights-card-loader.component.ts","../../projects/angular-components/insights/src/lib/insights/components/insights-card/components/insights-card-loader/insights-card-loader.component.html","../../projects/angular-components/insights/src/lib/insights/components/insights-card/insights-card.component.ts","../../projects/angular-components/insights/src/lib/insights/components/insights-card/insights-card.component.html","../../projects/angular-components/insights/src/lib/insights/components/insights-sidebar/insights-sidebar.component.ts","../../projects/angular-components/insights/src/lib/insights/components/insights-sidebar/insights-sidebar.component.html","../../projects/angular-components/insights/src/lib/insights/insights.component.ts","../../projects/angular-components/insights/src/lib/insights/insights.component.html","../../projects/angular-components/insights/src/lib/insights/insights.module.ts","../../projects/angular-components/insights/src/seniorsistemas-angular-components-insights.ts"],"sourcesContent":["import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-insights-card-loader\",\n templateUrl: \"./insights-card-loader.component.html\",\n styleUrls: [\"./insights-card-loader.component.scss\"],\n})\nexport class InsightsCardLoaderComponent {}\n","<div class=\"insights-card-loader\">\n <div class=\"loader\">\n <div class=\"loader-icon\">\n <div *sSVGFactory=\"'iassist'\"></div>\n </div>\n </div>\n \n <span class=\"loader-label\">{{ \"platform.angular_components.loading_insight\" | translate }}</span>\n</div>\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport { Component, Input } from '@angular/core';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport { ToastService } from '@seniorsistemas/angular-components/toast';\nimport { finalize, first } from 'rxjs/operators';\n\nimport { marked } from 'marked';\nimport { InsightsItem } from '../../models/insights-item';\n\n@Component({\n selector: 's-insights-card',\n templateUrl: './insights-card.component.html',\n styleUrls: ['./insights-card.component.scss'],\n})\nexport class InsightsCardComponent {\n @Input({ required: true })\n public insight!: InsightsItem;\n\n public open = false;\n public isLoading = false;\n public content?: string;\n\n public likeSelected = false;\n public dislikeSelected = false;\n\n constructor(\n private readonly clipboard: Clipboard,\n private readonly toastService: ToastService,\n private readonly translateService: TranslateService,\n ) {}\n\n public toggle(): void {\n const newOpenState = !this.open;\n this.open = newOpenState;\n if (newOpenState === true && this.insight.onOpenSidebar) {\n this.insight.onOpenSidebar();\n } else if (newOpenState === false && this.insight.onCloseSideBar) {\n this.insight.onCloseSideBar();\n }\n if (newOpenState === true) {\n this._requestInsight();\n }\n }\n\n public onLikeSelected(): void {\n if (this.likeSelected) {\n this.likeSelected = false;\n } else {\n this.likeSelected = true;\n this.dislikeSelected = false;\n this.insight.onLikeSelected?.();\n }\n }\n\n public onDislikeSelected(): void {\n if (this.dislikeSelected) {\n this.dislikeSelected = false;\n } else {\n this.dislikeSelected = true;\n this.likeSelected = false;\n this.insight.onDislikeSelected?.();\n }\n }\n\n public copyContent(): void {\n if (!this.content) return;\n\n this.insight.onCopy?.(this.content);\n\n if (this.clipboard.copy(this.content)) {\n this.toastService.show({\n severity: 'info',\n title: this.translateService.instant('platform.angular_components.copied_to_clipboard'),\n });\n }\n }\n\n public reloadContent(): void {\n this._requestInsight();\n }\n\n private _requestInsight(): void {\n this.isLoading = true;\n\n this.insight.request$\n .pipe(\n first(),\n finalize(() => (this.isLoading = false)),\n )\n .subscribe(async (content: string) => {\n this.content = await marked(content);\n if (this.insight.onContentLoaded) {\n this.insight.onContentLoaded();\n }\n });\n }\n}\n","<div\n class=\"insights-card\"\n [ngClass]=\"{ 'insights-card--close': !open }\"\n>\n <div\n class=\"header\"\n (click)=\"toggle()\"\n >\n <s-badge\n text=\"Insight\"\n iconClass=\"fal fa-lightbulb\"\n ></s-badge>\n <span class=\"insight-title\">{{ insight.title }}</span>\n <span class=\"toggle-icon\">\n <i\n class=\"fas\"\n [ngClass]=\"{\n 'fa-angle-down': !open,\n 'fa-angle-up': open,\n }\"\n >\n </i>\n </span>\n </div>\n <div class=\"content\">\n <ng-container *ngIf=\"isLoading; then loadingBlock; else contentBlock\"></ng-container>\n <ng-template #loadingBlock>\n <s-insights-card-loader></s-insights-card-loader>\n </ng-template>\n <ng-template #contentBlock>\n <ng-container *ngIf=\"content; then successBlock; else errorBlock\"></ng-container>\n\n <ng-template #successBlock>\n <span\n class=\"text\"\n [innerHTML]=\"content\"\n ></span>\n <span class=\"insight-footer\">{{ \"platform.angular_components.insight_footer\" | translate }}</span>\n\n </ng-template>\n <ng-template #errorBlock>\n <span class=\"text text--error\">{{\n 'platform.angular_components.error_loading_insight_alt' | translate\n }}</span>\n </ng-template>\n\n <div class=\"options\">\n <button\n [disabled]=\"!content\"\n (click)=\"copyContent()\"\n class=\"option\"\n >\n <i class=\"fal fa-copy\"></i>\n </button>\n <button\n (click)=\"reloadContent()\"\n class=\"option\"\n >\n <i class=\"fal fa-redo\"></i>\n </button>\n <button\n *ngIf=\"insight.onLikeSelected\"\n [disabled]=\"!content\"\n (click)=\"onLikeSelected()\"\n class=\"option\"\n >\n <i\n [ngClass]=\"{\n fal: !likeSelected,\n fas: likeSelected,\n 'fa-thumbs-up': true,\n }\"\n >\n </i>\n </button>\n <button\n *ngIf=\"insight.onDislikeSelected\"\n [disabled]=\"!content\"\n (click)=\"onDislikeSelected()\"\n class=\"option\"\n >\n <i\n [ngClass]=\"{\n fal: !dislikeSelected,\n fas: dislikeSelected,\n 'fa-thumbs-down': true,\n }\"\n ></i>\n </button>\n </div>\n </ng-template>\n </div>\n</div>\n","import { Component, Input, output, TemplateRef } from '@angular/core';\n\nimport { InsightsItem } from '../../models/index';\n\n@Component({\n selector: 's-insights-sidebar',\n templateUrl: './insights-sidebar.component.html',\n styleUrls: ['./insights-sidebar.component.scss'],\n})\nexport class InsightsSidebarComponent {\n @Input()\n public insights: InsightsItem[] = [];\n\n @Input()\n public hasPermission = false;\n\n @Input()\n public introText?: string;\n\n @Input()\n public introTemplate: TemplateRef<any> | null = null;\n\n @Input()\n public emptyText?: string;\n\n @Input()\n public emptyTemplate: TemplateRef<any> | null = null;\n\n @Input()\n public noPermissionText?: string;\n\n @Input()\n public noPermissionTemplate: TemplateRef<any> | null = null;\n\n public closedSidebar = output<void>();\n\n public openedSidebar = output<void>();\n\n public opened = false;\n\n public toggle(): void {\n const newState = !this.opened;\n if (newState) {\n this.open();\n } else {\n this.close();\n }\n }\n\n public open(): void {\n this.opened = true;\n this.openedSidebar.emit();\n }\n\n public close(): void {\n this.opened = false;\n this.closedSidebar.emit();\n }\n}\n","<div\n class=\"sidebar\"\n [class.opened]=\"opened\">\n <div class=\"header\">\n <button (click)=\"close()\" class=\"option\">\n <span class=\"far fa-chevron-double-right\"></span>\n </button>\n <div class=\"title\">\n <span><ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container></span>\n <span>IAssist Insights</span>\n </div>\n </div>\n <div class=\"intro\">\n <ng-container *ngIf=\"hasPermission; then permissionBlock; else noPermissionBlock\"></ng-container>\n\n <ng-template #permissionBlock>\n <ng-container *ngIf=\"insights.length; then introBlock; else emptyBlock\"></ng-container>\n\n <ng-template #introBlock>\n <ng-container *ngIf=\"introTemplate; then introCustomBlock; else introTextBlock\"></ng-container>\n\n <ng-template #introCustomBlock>\n <ng-container *ngTemplateOutlet=\"introTemplate\"></ng-container>\n </ng-template>\n\n <ng-template #introTextBlock>\n <span class=\"text\">{{ introText || \"platform.angular_components.insight_intro\" | translate }}</span>\n </ng-template>\n </ng-template>\n\n <ng-template #emptyBlock>\n <ng-container *ngIf=\"emptyTemplate; then emptyCustomBlock; else emptyTextBlock\"></ng-container>\n\n <ng-template #emptyCustomBlock>\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </ng-template>\n\n <ng-template #emptyTextBlock>\n <span class=\"text\">{{ emptyText || \"platform.angular_components.insight_empty\" | translate }}</span>\n </ng-template>\n </ng-template>\n </ng-template>\n\n <ng-template #noPermissionBlock>\n <ng-container *ngIf=\"noPermissionTemplate; then noPermissionCustomBlock; else noPermissionTextBlock\"></ng-container>\n\n <ng-template #noPermissionCustomBlock>\n <ng-container *ngTemplateOutlet=\"noPermissionTemplate\"></ng-container>\n </ng-template>\n\n <ng-template #noPermissionTextBlock>\n <span>{{ noPermissionText || \"platform.angular_components.insight_no_permission\" | translate }}</span>\n </ng-template>\n </ng-template>\n </div>\n <div class=\"insights\">\n <ng-container *ngIf=\"insights.length\">\n <s-insights-card\n *ngFor=\"let insight of insights\"\n [insight]=\"insight\">\n </s-insights-card>\n </ng-container>\n </div>\n</div>\n\n<ng-template #iassistIcon>\n <div style=\"width: 28px; height: 28px;\">\n <span *sSVGFactory=\"'iassist'\"></span>\n </div>\n</ng-template>\n","import {\n AfterContentInit,\n Component,\n ContentChildren,\n Input,\n output,\n QueryList,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\n\nimport { DEPRECATED_CONFIG } from '@seniorsistemas/angular-components/common/deprecated-selector';\nimport { DeprecatedSelectorDirective } from '@seniorsistemas/angular-components/common/deprecated-selector';\nimport { TemplateDirective } from '@seniorsistemas/angular-components/template';\n\nimport { InsightsSidebarComponent } from './components/insights-sidebar/insights-sidebar.component';\nimport { InsightsItem } from './models/insights-item';\nimport { InsightsTemplateTypes } from './models/insights-template-types';\n@Component({\n selector: 's-insights, s-ia-insight',\n templateUrl: './insights.component.html',\n hostDirectives: [DeprecatedSelectorDirective],\n providers: [\n {\n provide: DEPRECATED_CONFIG,\n useValue: {\n oldSelector: 's-ia-insight',\n newSelector: 's-insights',\n removalVersion: '20.0.0',\n },\n },\n ],\n})\nexport class InsightsComponent implements AfterContentInit {\n @Input()\n public insights: InsightsItem[] = [];\n\n @Input()\n public hasPermission = true;\n\n @Input()\n public introText?: string;\n\n @Input()\n public emptyText?: string;\n\n @Input()\n public noPermissionText?: string;\n\n @ViewChild(InsightsSidebarComponent)\n public sidebar: InsightsSidebarComponent | null = null;\n\n @ContentChildren(TemplateDirective)\n public templates: QueryList<TemplateDirective> | null = null;\n\n public openInsights = output<void>();\n\n public closedInsights = output<void>();\n\n public introTemplate: TemplateRef<any> | null = null;\n public emptyTemplate: TemplateRef<any> | null = null;\n public noPermissionTemplate: TemplateRef<any> | null = null;\n\n public ngAfterContentInit(): void {\n this._getTemplates();\n }\n\n public open(): void {\n this.sidebar?.open();\n }\n\n public close(): void {\n this.sidebar?.close();\n }\n\n public getIntroTemplate(): TemplateRef<any> | null {\n return this._getCustomTemplate('intro');\n }\n\n public getNoPermissionTemplate(): TemplateRef<any> | null {\n return this._getCustomTemplate('no-permission');\n }\n\n public getEmptyTemplate(): TemplateRef<any> | null {\n return this._getCustomTemplate('empty');\n }\n\n private _getCustomTemplate(type: InsightsTemplateTypes): TemplateRef<any> | null {\n return this.templates?.find((template: TemplateDirective) => template.type === type)?.template ?? null;\n }\n\n private _getTemplates(): void {\n this.introTemplate = this.getIntroTemplate();\n this.emptyTemplate = this.getEmptyTemplate();\n this.noPermissionTemplate = this.getNoPermissionTemplate();\n }\n}\n\n","<s-insights-sidebar\n #sidebar\n [insights]=\"insights\"\n [hasPermission]=\"hasPermission\"\n [introText]=\"introText\"\n [introTemplate]=\"introTemplate\"\n [emptyText]=\"emptyText\"\n [emptyTemplate]=\"emptyTemplate\"\n [noPermissionText]=\"noPermissionText\"\n [noPermissionTemplate]=\"noPermissionTemplate\"\n (openedSidebar)=\"openInsights.emit()\"\n (closedSidebar)=\"closedInsights.emit()\"\n>\n</s-insights-sidebar>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BadgeModule } from '@seniorsistemas/angular-components/badge';\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\nimport { TemplateModule } from '@seniorsistemas/angular-components/template';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\n\nimport { InsightsCardComponent } from './components/insights-card/insights-card.component';\nimport { InsightsSidebarComponent } from './components/insights-sidebar/insights-sidebar.component';\nimport { InsightsComponent } from './insights.component';\nimport { SVGFactoryModule } from '@seniorsistemas/angular-components/common';\nimport { InsightsCardLoaderComponent } from './components/insights-card/components';\n\n@NgModule({\n imports: [\n CommonModule,\n TranslateModule,\n BadgeModule,\n ButtonModule,\n TooltipModule,\n TemplateModule,\n SVGFactoryModule,\n ],\n declarations: [InsightsComponent, InsightsCardComponent, InsightsSidebarComponent, InsightsCardLoaderComponent],\n exports: [InsightsComponent, TemplateModule],\n})\nexport class InsightsModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1","i4","i6.InsightsCardLoaderComponent","i3.InsightsCardComponent","i2.InsightsSidebarComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-insights.mjs","sources":["../../projects/angular-components/insights/src/lib/insights/components/insights-card/components/insights-card-loader/insights-card-loader.component.ts","../../projects/angular-components/insights/src/lib/insights/components/insights-card/components/insights-card-loader/insights-card-loader.component.html","../../projects/angular-components/insights/src/lib/insights/components/insights-card/insights-card.component.ts","../../projects/angular-components/insights/src/lib/insights/components/insights-card/insights-card.component.html","../../projects/angular-components/insights/src/lib/insights/components/insights-sidebar/insights-sidebar.component.ts","../../projects/angular-components/insights/src/lib/insights/components/insights-sidebar/insights-sidebar.component.html","../../projects/angular-components/insights/src/lib/insights/insights.component.ts","../../projects/angular-components/insights/src/lib/insights/insights.component.html","../../projects/angular-components/insights/src/lib/insights/insights.module.ts","../../projects/angular-components/insights/src/seniorsistemas-angular-components-insights.ts"],"sourcesContent":["import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-insights-card-loader\",\n templateUrl: \"./insights-card-loader.component.html\",\n styleUrls: [\"./insights-card-loader.component.scss\"],\n})\nexport class InsightsCardLoaderComponent {}\n","<div class=\"insights-card-loader\">\n <div class=\"loader\">\n <div class=\"loader-icon\">\n <div *sSVGFactory=\"'iassist'\"></div>\n </div>\n </div>\n \n <span class=\"loader-label\">{{ \"platform.angular_components.loading_insight\" | translate }}</span>\n</div>\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport { Component, Input } from '@angular/core';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport { ToastService } from '@seniorsistemas/angular-components/toast';\nimport { finalize, first } from 'rxjs/operators';\n\nimport { marked } from 'marked';\nimport { InsightsItem } from '../../models/insights-item';\n\n@Component({\n selector: 's-insights-card',\n templateUrl: './insights-card.component.html',\n styleUrls: ['./insights-card.component.scss'],\n})\nexport class InsightsCardComponent {\n @Input({ required: true })\n public insight!: InsightsItem;\n\n public open = false;\n public isLoading = false;\n public content?: string;\n\n public likeSelected = false;\n public dislikeSelected = false;\n\n constructor(\n private readonly clipboard: Clipboard,\n private readonly toastService: ToastService,\n private readonly translateService: TranslateService,\n ) {}\n\n public toggle(): void {\n const newOpenState = !this.open;\n this.open = newOpenState;\n if (newOpenState === true && this.insight.onOpenSidebar) {\n this.insight.onOpenSidebar();\n } else if (newOpenState === false && this.insight.onCloseSideBar) {\n this.insight.onCloseSideBar();\n }\n if (newOpenState === true) {\n this._requestInsight();\n }\n }\n\n public onLikeSelected(): void {\n if (this.likeSelected) {\n this.likeSelected = false;\n } else {\n this.likeSelected = true;\n this.dislikeSelected = false;\n this.insight.onLikeSelected?.();\n }\n }\n\n public onDislikeSelected(): void {\n if (this.dislikeSelected) {\n this.dislikeSelected = false;\n } else {\n this.dislikeSelected = true;\n this.likeSelected = false;\n this.insight.onDislikeSelected?.();\n }\n }\n\n public copyContent(): void {\n if (!this.content) return;\n\n this.insight.onCopy?.(this.content);\n\n if (this.clipboard.copy(this.content)) {\n this.toastService.show({\n severity: 'info',\n title: this.translateService.instant('platform.angular_components.copied_to_clipboard'),\n });\n }\n }\n\n public reloadContent(): void {\n this._requestInsight();\n }\n\n private _requestInsight(): void {\n this.isLoading = true;\n\n this.insight.request$\n .pipe(\n first(),\n finalize(() => (this.isLoading = false)),\n )\n .subscribe(async (content: string) => {\n this.content = await marked(content);\n if (this.insight.onContentLoaded) {\n this.insight.onContentLoaded();\n }\n });\n }\n}\n","<div\n class=\"insights-card\"\n [ngClass]=\"{ 'insights-card--close': !open }\"\n>\n <div\n class=\"header\"\n (click)=\"toggle()\"\n >\n <s-badge\n text=\"Insight\"\n iconClass=\"fal fa-lightbulb\"\n ></s-badge>\n <span class=\"insight-title\">{{ insight.title }}</span>\n <span class=\"toggle-icon\">\n <i\n class=\"fas\"\n [ngClass]=\"{\n 'fa-angle-down': !open,\n 'fa-angle-up': open,\n }\"\n >\n </i>\n </span>\n </div>\n <div class=\"content\">\n <ng-container *ngIf=\"isLoading; then loadingBlock; else contentBlock\"></ng-container>\n <ng-template #loadingBlock>\n <s-insights-card-loader></s-insights-card-loader>\n </ng-template>\n <ng-template #contentBlock>\n <ng-container *ngIf=\"content; then successBlock; else errorBlock\"></ng-container>\n\n <ng-template #successBlock>\n <span\n class=\"text\"\n [innerHTML]=\"content\"\n ></span>\n <span class=\"insight-footer\">{{ \"platform.angular_components.insight_footer\" | translate }}</span>\n\n </ng-template>\n <ng-template #errorBlock>\n <span class=\"text text--error\">{{\n 'platform.angular_components.error_loading_insight_alt' | translate\n }}</span>\n </ng-template>\n\n <div class=\"options\">\n <button\n [disabled]=\"!content\"\n (click)=\"copyContent()\"\n class=\"option\"\n >\n <i class=\"fal fa-copy\"></i>\n </button>\n <button\n (click)=\"reloadContent()\"\n class=\"option\"\n >\n <i class=\"fal fa-redo\"></i>\n </button>\n <button\n *ngIf=\"insight.onLikeSelected\"\n [disabled]=\"!content\"\n (click)=\"onLikeSelected()\"\n class=\"option\"\n >\n <i\n [ngClass]=\"{\n fal: !likeSelected,\n fas: likeSelected,\n 'fa-thumbs-up': true,\n }\"\n >\n </i>\n </button>\n <button\n *ngIf=\"insight.onDislikeSelected\"\n [disabled]=\"!content\"\n (click)=\"onDislikeSelected()\"\n class=\"option\"\n >\n <i\n [ngClass]=\"{\n fal: !dislikeSelected,\n fas: dislikeSelected,\n 'fa-thumbs-down': true,\n }\"\n ></i>\n </button>\n </div>\n </ng-template>\n </div>\n</div>\n","import { Component, Input, output, TemplateRef } from '@angular/core';\n\nimport { InsightsItem } from '../../models/index';\n\n@Component({\n selector: 's-insights-sidebar',\n templateUrl: './insights-sidebar.component.html',\n styleUrls: ['./insights-sidebar.component.scss'],\n})\nexport class InsightsSidebarComponent {\n @Input()\n public insights: InsightsItem[] = [];\n\n @Input()\n public hasPermission = false;\n\n @Input()\n public introText?: string;\n\n @Input()\n public introTemplate: TemplateRef<any> | null = null;\n\n @Input()\n public emptyText?: string;\n\n @Input()\n public emptyTemplate: TemplateRef<any> | null = null;\n\n @Input()\n public noPermissionText?: string;\n\n @Input()\n public noPermissionTemplate: TemplateRef<any> | null = null;\n\n public closedSidebar = output<void>();\n\n public openedSidebar = output<void>();\n\n public opened = false;\n\n public toggle(): void {\n const newState = !this.opened;\n if (newState) {\n this.open();\n } else {\n this.close();\n }\n }\n\n public open(): void {\n this.opened = true;\n this.openedSidebar.emit();\n }\n\n public close(): void {\n this.opened = false;\n this.closedSidebar.emit();\n }\n}\n","<div\n class=\"sidebar\"\n [class.opened]=\"opened\">\n <div class=\"header\">\n <button (click)=\"close()\" class=\"option\">\n <span class=\"far fa-chevron-double-right\"></span>\n </button>\n <div class=\"title\">\n <span><ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container></span>\n <span>IAssist Insights</span>\n </div>\n </div>\n <div class=\"intro\">\n <ng-container *ngIf=\"hasPermission; then permissionBlock; else noPermissionBlock\"></ng-container>\n\n <ng-template #permissionBlock>\n <ng-container *ngIf=\"insights.length; then introBlock; else emptyBlock\"></ng-container>\n\n <ng-template #introBlock>\n <ng-container *ngIf=\"introTemplate; then introCustomBlock; else introTextBlock\"></ng-container>\n\n <ng-template #introCustomBlock>\n <ng-container *ngTemplateOutlet=\"introTemplate\"></ng-container>\n </ng-template>\n\n <ng-template #introTextBlock>\n <span class=\"text\">{{ introText || \"platform.angular_components.insight_intro\" | translate }}</span>\n </ng-template>\n </ng-template>\n\n <ng-template #emptyBlock>\n <ng-container *ngIf=\"emptyTemplate; then emptyCustomBlock; else emptyTextBlock\"></ng-container>\n\n <ng-template #emptyCustomBlock>\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </ng-template>\n\n <ng-template #emptyTextBlock>\n <span class=\"text\">{{ emptyText || \"platform.angular_components.insight_empty\" | translate }}</span>\n </ng-template>\n </ng-template>\n </ng-template>\n\n <ng-template #noPermissionBlock>\n <ng-container *ngIf=\"noPermissionTemplate; then noPermissionCustomBlock; else noPermissionTextBlock\"></ng-container>\n\n <ng-template #noPermissionCustomBlock>\n <ng-container *ngTemplateOutlet=\"noPermissionTemplate\"></ng-container>\n </ng-template>\n\n <ng-template #noPermissionTextBlock>\n <span>{{ noPermissionText || \"platform.angular_components.insight_no_permission\" | translate }}</span>\n </ng-template>\n </ng-template>\n </div>\n <div class=\"insights\">\n <ng-container *ngIf=\"insights.length\">\n <s-insights-card\n *ngFor=\"let insight of insights\"\n [insight]=\"insight\">\n </s-insights-card>\n </ng-container>\n </div>\n</div>\n\n<ng-template #iassistIcon>\n <div style=\"width: 28px; height: 28px;\">\n <span *sSVGFactory=\"'iassist'\"></span>\n </div>\n</ng-template>\n","import {\n AfterContentInit,\n Component,\n ContentChildren,\n Input,\n output,\n QueryList,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\n\nimport { DEPRECATED_CONFIG } from '@seniorsistemas/angular-components/common/deprecated-selector';\nimport { DeprecatedSelectorDirective } from '@seniorsistemas/angular-components/common/deprecated-selector';\nimport { TemplateDirective } from '@seniorsistemas/angular-components/template';\n\nimport { InsightsSidebarComponent } from './components/insights-sidebar/insights-sidebar.component';\nimport { InsightsItem } from './models/insights-item';\nimport { InsightsTemplateTypes } from './models/insights-template-types';\n/**\n * @description Componente de painel lateral de insights com IA. Exibe uma lista de itens\n * de insights em um sidebar, suportando templates customizáveis para o conteúdo de\n * introdução, estado vazio e sem permissão. Também exporta como seletor legado `s-ia-insight`.\n *\n * @example\n * ```html\n * <s-insights\n * [insights]=\"listaInsights\"\n * [hasPermission]=\"true\"\n * (openInsights)=\"onAbrir()\" />\n * ```\n *\n * @category Structure\n */\n@Component({\n selector: 's-insights, s-ia-insight',\n templateUrl: './insights.component.html',\n hostDirectives: [DeprecatedSelectorDirective],\n providers: [\n {\n provide: DEPRECATED_CONFIG,\n useValue: {\n oldSelector: 's-ia-insight',\n newSelector: 's-insights',\n removalVersion: '20.0.0',\n },\n },\n ],\n})\nexport class InsightsComponent implements AfterContentInit {\n /** @description Lista de itens de insight a serem exibidos no painel. @default [] */\n @Input()\n public insights: InsightsItem[] = [];\n\n /** @description Indica se o usuário tem permissão para ver os insights. @default true */\n @Input()\n public hasPermission = true;\n\n /** @description Texto de introdução exibido no topo do painel (quando sem template customizado). */\n @Input()\n public introText?: string;\n\n /** @description Texto exibido quando não há insights disponíveis. */\n @Input()\n public emptyText?: string;\n\n /** @description Texto exibido quando o usuário não tem permissão. */\n @Input()\n public noPermissionText?: string;\n\n @ViewChild(InsightsSidebarComponent)\n public sidebar: InsightsSidebarComponent | null = null;\n\n @ContentChildren(TemplateDirective)\n public templates: QueryList<TemplateDirective> | null = null;\n\n /** @description Emitido quando o painel de insights é aberto. */\n public openInsights = output<void>();\n\n /** @description Emitido quando o painel de insights é fechado. */\n public closedInsights = output<void>();\n\n public introTemplate: TemplateRef<any> | null = null;\n public emptyTemplate: TemplateRef<any> | null = null;\n public noPermissionTemplate: TemplateRef<any> | null = null;\n\n public ngAfterContentInit(): void {\n this._getTemplates();\n }\n\n public open(): void {\n this.sidebar?.open();\n }\n\n public close(): void {\n this.sidebar?.close();\n }\n\n public getIntroTemplate(): TemplateRef<any> | null {\n return this._getCustomTemplate('intro');\n }\n\n public getNoPermissionTemplate(): TemplateRef<any> | null {\n return this._getCustomTemplate('no-permission');\n }\n\n public getEmptyTemplate(): TemplateRef<any> | null {\n return this._getCustomTemplate('empty');\n }\n\n private _getCustomTemplate(type: InsightsTemplateTypes): TemplateRef<any> | null {\n return this.templates?.find((template: TemplateDirective) => template.type === type)?.template ?? null;\n }\n\n private _getTemplates(): void {\n this.introTemplate = this.getIntroTemplate();\n this.emptyTemplate = this.getEmptyTemplate();\n this.noPermissionTemplate = this.getNoPermissionTemplate();\n }\n}\n\n","<s-insights-sidebar\n #sidebar\n [insights]=\"insights\"\n [hasPermission]=\"hasPermission\"\n [introText]=\"introText\"\n [introTemplate]=\"introTemplate\"\n [emptyText]=\"emptyText\"\n [emptyTemplate]=\"emptyTemplate\"\n [noPermissionText]=\"noPermissionText\"\n [noPermissionTemplate]=\"noPermissionTemplate\"\n (openedSidebar)=\"openInsights.emit()\"\n (closedSidebar)=\"closedInsights.emit()\"\n>\n</s-insights-sidebar>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BadgeModule } from '@seniorsistemas/angular-components/badge';\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\nimport { TemplateModule } from '@seniorsistemas/angular-components/template';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\n\nimport { InsightsCardComponent } from './components/insights-card/insights-card.component';\nimport { InsightsSidebarComponent } from './components/insights-sidebar/insights-sidebar.component';\nimport { InsightsComponent } from './insights.component';\nimport { SVGFactoryModule } from '@seniorsistemas/angular-components/common';\nimport { InsightsCardLoaderComponent } from './components/insights-card/components';\n\n@NgModule({\n imports: [\n CommonModule,\n TranslateModule,\n BadgeModule,\n ButtonModule,\n TooltipModule,\n TemplateModule,\n SVGFactoryModule,\n ],\n declarations: [InsightsComponent, InsightsCardComponent, InsightsSidebarComponent, InsightsCardLoaderComponent],\n exports: [InsightsComponent, TemplateModule],\n})\nexport class InsightsModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1","i4","i6.InsightsCardLoaderComponent","i3.InsightsCardComponent","i2.InsightsSidebarComponent"],"mappings":"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"}
|
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { output, input, Directive } from '@angular/core';
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* @description Diretiva de acessibilidade que torna qualquer elemento HTML interativo,
|
|
6
|
+
* adicionando suporte a eventos de foco e navegação por teclado (Enter e Espaço)
|
|
7
|
+
* além do clique padrão. Gerencia automaticamente o atributo `tabindex`.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```html
|
|
11
|
+
* <div
|
|
12
|
+
* (sInteractiveContent)="onActivate($event)"
|
|
13
|
+
* [focusable]="true">
|
|
14
|
+
* Conteúdo interativo
|
|
15
|
+
* </div>
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @category Inputs
|
|
19
|
+
*/
|
|
4
20
|
class InteractiveContentDirective {
|
|
5
21
|
elementRef;
|
|
22
|
+
/** @description Emitido quando o usuário clica ou pressiona Enter/Espaço no elemento. */
|
|
6
23
|
activated = output({ alias: 'sInteractiveContent' });
|
|
24
|
+
/** @description Habilita o foco via teclado (tabindex). @default true */
|
|
7
25
|
focusable = input(true);
|
|
26
|
+
/** @description Desabilita os eventos de interação do elemento. @default false */
|
|
8
27
|
disabled = input(false);
|
|
28
|
+
/** @description Quando `true`, chama `event.stopPropagation()` ao ativar. @default false */
|
|
9
29
|
stopPropagation = input(false);
|
|
10
30
|
EVENT_LISTENER = (event) => {
|
|
11
31
|
if (this.disabled()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-interactive-content.mjs","sources":["../../projects/angular-components/interactive-content/src/lib/interactive-content/interactive-content.directive.ts","../../projects/angular-components/interactive-content/src/seniorsistemas-angular-components-interactive-content.ts"],"sourcesContent":["import { Directive, ElementRef, OnInit, OnDestroy, input, output } from '@angular/core';\n\n@Directive({\n selector: '[sInteractiveContent]',\n standalone: true,\n})\nexport class InteractiveContentDirective implements OnInit, OnDestroy {\n public activated = output<PointerEvent | KeyboardEvent>({ alias: 'sInteractiveContent' });\n public focusable = input(true);\n public disabled = input(false);\n public stopPropagation = input(false);\n\n private readonly EVENT_LISTENER = (event: Event) => {\n if (this.disabled()) {\n return;\n }\n\n if (event instanceof KeyboardEvent) {\n const key = event.key;\n const validKeys = ['Enter', ' '];\n if (!validKeys.includes(key)) {\n return;\n }\n event.preventDefault();\n\n if (this.stopPropagation()) {\n event.stopPropagation();\n }\n }\n this.activated.emit(event as PointerEvent | KeyboardEvent);\n };\n\n constructor(private readonly elementRef: ElementRef<HTMLElement>) {}\n\n public ngOnInit(): void {\n this.setTabIndex();\n this.checkAccessbilityEvents();\n }\n\n private setTabIndex() {\n if (this.disabled() || !this.focusable()) {\n this.element.tabIndex = -1;\n return;\n }\n\n if (this.element.tabIndex === undefined || this.element.tabIndex < 0) {\n this.element.tabIndex = 0;\n }\n }\n\n private checkAccessbilityEvents() {\n this.element.addEventListener('click', this.EVENT_LISTENER);\n this.element.addEventListener('keydown', this.EVENT_LISTENER);\n }\n\n private get element() {\n return this.elementRef.nativeElement;\n }\n\n ngOnDestroy(): void {\n this.element.removeEventListener('click', this.EVENT_LISTENER);\n this.element.removeEventListener('keydown', this.EVENT_LISTENER);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-interactive-content.mjs","sources":["../../projects/angular-components/interactive-content/src/lib/interactive-content/interactive-content.directive.ts","../../projects/angular-components/interactive-content/src/seniorsistemas-angular-components-interactive-content.ts"],"sourcesContent":["import { Directive, ElementRef, OnInit, OnDestroy, input, output } from '@angular/core';\n\n/**\n * @description Diretiva de acessibilidade que torna qualquer elemento HTML interativo,\n * adicionando suporte a eventos de foco e navegação por teclado (Enter e Espaço)\n * além do clique padrão. Gerencia automaticamente o atributo `tabindex`.\n *\n * @example\n * ```html\n * <div\n * (sInteractiveContent)=\"onActivate($event)\"\n * [focusable]=\"true\">\n * Conteúdo interativo\n * </div>\n * ```\n *\n * @category Inputs\n */\n@Directive({\n selector: '[sInteractiveContent]',\n standalone: true,\n})\nexport class InteractiveContentDirective implements OnInit, OnDestroy {\n /** @description Emitido quando o usuário clica ou pressiona Enter/Espaço no elemento. */\n public activated = output<PointerEvent | KeyboardEvent>({ alias: 'sInteractiveContent' });\n /** @description Habilita o foco via teclado (tabindex). @default true */\n public focusable = input(true);\n /** @description Desabilita os eventos de interação do elemento. @default false */\n public disabled = input(false);\n /** @description Quando `true`, chama `event.stopPropagation()` ao ativar. @default false */\n public stopPropagation = input(false);\n\n private readonly EVENT_LISTENER = (event: Event) => {\n if (this.disabled()) {\n return;\n }\n\n if (event instanceof KeyboardEvent) {\n const key = event.key;\n const validKeys = ['Enter', ' '];\n if (!validKeys.includes(key)) {\n return;\n }\n event.preventDefault();\n\n if (this.stopPropagation()) {\n event.stopPropagation();\n }\n }\n this.activated.emit(event as PointerEvent | KeyboardEvent);\n };\n\n constructor(private readonly elementRef: ElementRef<HTMLElement>) {}\n\n public ngOnInit(): void {\n this.setTabIndex();\n this.checkAccessbilityEvents();\n }\n\n private setTabIndex() {\n if (this.disabled() || !this.focusable()) {\n this.element.tabIndex = -1;\n return;\n }\n\n if (this.element.tabIndex === undefined || this.element.tabIndex < 0) {\n this.element.tabIndex = 0;\n }\n }\n\n private checkAccessbilityEvents() {\n this.element.addEventListener('click', this.EVENT_LISTENER);\n this.element.addEventListener('keydown', this.EVENT_LISTENER);\n }\n\n private get element() {\n return this.elementRef.nativeElement;\n }\n\n ngOnDestroy(): void {\n this.element.removeEventListener('click', this.EVENT_LISTENER);\n this.element.removeEventListener('keydown', this.EVENT_LISTENER);\n }\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -78,7 +78,7 @@ class KanbanItemComponent {
|
|
|
78
78
|
this.kanbanItemOptions = options;
|
|
79
79
|
}
|
|
80
80
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KanbanItemComponent, deps: [{ token: KanbanEventService }], target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: KanbanItemComponent, selector: "s-kanban-item", inputs: { item: "item", selected: "selected", showCheckbox: "showCheckbox", headerTemplate: "headerTemplate", bodyTemplate: "bodyTemplate", footerTemplate: "footerTemplate" }, ngImport: i0, template: "<div\n class=\"kanban-item\"\n [ngClass]=\"{\n 'kanban-item--selected': selected && !item.disabled,\n 'kanban-item--disabled': item.disabled,\n 'kanban-item--frozen': !item.disabled && item.frozen\n }\">\n <div class=\"kanban-item__header\">\n <div class=\"content\">\n <form>\n <input\n *ngIf=\"showCheckbox && !item.disabled && !item.frozen\"\n type=\"checkbox\"\n name=\"checkbox\"\n [(ngModel)]=\"selected\"\n (ngModelChange)=\"onSelectedChange($event)\"\n (click)=\"$event.stopPropagation()\">\n </form>\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <button\n *ngIf=\"item.options && !item.disabled\"\n class=\"options-button\"\n (click)=\"$event.stopPropagation();\"\n sTieredMenu\n [items]=\"kanbanItemOptions\">\n <i class=\"fas fa-ellipsis-v\"></i>\n </button>\n </div>\n <div class=\"kanban-item__body\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <div *ngIf=\"footerTemplate\" class=\"kanban-item__footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: item }\"></ng-container> \n </div>\n</div>\n", styles: [".kanban-item{background-color:#fff;border-radius:4px;box-shadow:0 1px 5px #00000040;cursor:pointer;display:flex;flex-direction:column;margin:16px;min-width:260px;padding:16px;-webkit-user-select:none;user-select:none}.kanban-item .kanban-item__header{display:flex;justify-content:space-between}.kanban-item .kanban-item__header .content{display:flex;gap:16px}.kanban-item .kanban-item__header .options-button{background-color:transparent;border:none;cursor:pointer;margin-right:-8px;padding:0 8px}.kanban-item .kanban-item__body{margin:16px 0}.kanban-item .kanban-item__footer{border-top:1px solid #dedce5;display:flex;justify-content:space-between}.kanban-item .kanban-item__footer .date-info{align-items:center;color:#6e7280;display:flex;font-family:\"Open Sans\" sans-serif;font-size:12px;gap:4px;line-height:150%}.kanban-item--selected{border:1px solid #428BCA}.kanban-item--disabled{opacity:50%}.kanban-item--frozen{box-shadow:none}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.TieredMenuDirective, selector: "[sTieredMenu]", inputs: ["items", "focusedItem", "triggerEvent"] }] });
|
|
81
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: KanbanItemComponent, selector: "s-kanban-item", inputs: { item: "item", selected: "selected", showCheckbox: "showCheckbox", headerTemplate: "headerTemplate", bodyTemplate: "bodyTemplate", footerTemplate: "footerTemplate" }, ngImport: i0, template: "<div\n class=\"kanban-item\"\n [ngClass]=\"{\n 'kanban-item--selected': selected && !item.disabled,\n 'kanban-item--disabled': item.disabled,\n 'kanban-item--frozen': !item.disabled && item.frozen\n }\">\n <div class=\"kanban-item__header\">\n <div class=\"content\">\n <form>\n <input\n *ngIf=\"showCheckbox && !item.disabled && !item.frozen\"\n type=\"checkbox\"\n name=\"checkbox\"\n [(ngModel)]=\"selected\"\n (ngModelChange)=\"onSelectedChange($event)\"\n (click)=\"$event.stopPropagation()\">\n </form>\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <button\n *ngIf=\"item.options && !item.disabled\"\n class=\"options-button\"\n (click)=\"$event.stopPropagation();\"\n sTieredMenu\n [items]=\"kanbanItemOptions\">\n <i class=\"fas fa-ellipsis-v\"></i>\n </button>\n </div>\n <div class=\"kanban-item__body\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <div *ngIf=\"footerTemplate\" class=\"kanban-item__footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: item }\"></ng-container> \n </div>\n</div>\n", styles: [".kanban-item{background-color:#fff;border-radius:4px;box-shadow:0 1px 5px #00000040;cursor:pointer;display:flex;flex-direction:column;margin:16px;min-width:260px;padding:16px;-webkit-user-select:none;user-select:none}.kanban-item .kanban-item__header{display:flex;justify-content:space-between}.kanban-item .kanban-item__header .content{display:flex;gap:16px}.kanban-item .kanban-item__header .options-button{background-color:transparent;border:none;cursor:pointer;margin-right:-8px;padding:0 8px}.kanban-item .kanban-item__body{margin:16px 0}.kanban-item .kanban-item__footer{border-top:1px solid #dedce5;display:flex;justify-content:space-between}.kanban-item .kanban-item__footer .date-info{align-items:center;color:#6e7280;display:flex;font-family:\"Open Sans\" sans-serif;font-size:12px;gap:4px;line-height:150%}.kanban-item--selected{border:1px solid #428BCA}.kanban-item--disabled{opacity:50%}.kanban-item--frozen{box-shadow:none}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.TieredMenuDirective, selector: "[sTieredMenu]", inputs: ["items", "focusedItem", "triggerEvent", "ariaLabel"] }] });
|
|
82
82
|
}
|
|
83
83
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KanbanItemComponent, decorators: [{
|
|
84
84
|
type: Component,
|
|
@@ -175,7 +175,7 @@ class KanbanColumnComponent {
|
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
177
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KanbanColumnComponent, deps: [{ token: KanbanEventService }], target: i0.ɵɵFactoryTarget.Component });
|
|
178
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: KanbanColumnComponent, selector: "s-kanban-column", inputs: { data: "data", showCheckbox: "showCheckbox", headerTemplate: "headerTemplate" }, ngImport: i0, template: "<div class=\"kanban-column\">\n <div class=\"kanban-column__header\">\n <div class=\"content\">\n <form>\n @if (showCheckbox) {\n <input\n type=\"checkbox\"\n name=\"checkbox\"\n [formControl]=\"selectionControl\"\n />\n }\n </form>\n\n @if (!headerTemplate) {\n <div class=\"header\">\n <span class=\"title\">{{ data.title }} ({{ data.items.length }})</span>\n </div>\n } @else {\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: data }\"></ng-container>\n }\n </div>\n @if (data.options) {\n <s-button\n priority=\"default\"\n [disabled]=\"false\"\n [auxiliary]=\"true\"\n size=\"small\"\n [menuOptions]=\"tieredMenuOptions\"\n >\n </s-button>\n }\n </div>\n <div class=\"kanban-column__body\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".kanban-column{align-items:center;background-color:#fbfafc;border:1px solid #dedce5;display:flex;flex-direction:column;height:100%;min-height:120px;-webkit-user-select:none;user-select:none;width:100%}.kanban-column .kanban-column__header{align-items:center;border-bottom:1px solid #dedce5;display:flex;justify-content:space-between;padding:16px 16px 8px;width:100%}.kanban-column .kanban-column__header .content{display:flex;gap:16px}.kanban-column .kanban-column__header .content .teste{display:flex;flex-direction:column;font-family:\"Open Sans\" sans-serif}.kanban-column .kanban-column__header .content .teste .title{font-size:14px;font-weight:800}.kanban-column .kanban-column__header .content .teste .description{font-size:12px}.kanban-column .kanban-column__body{display:flex;height:100%;justify-content:center;width:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4$1.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor"], outputs: ["clicked"] }] });
|
|
178
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: KanbanColumnComponent, selector: "s-kanban-column", inputs: { data: "data", showCheckbox: "showCheckbox", headerTemplate: "headerTemplate" }, ngImport: i0, template: "<div class=\"kanban-column\">\n <div class=\"kanban-column__header\">\n <div class=\"content\">\n <form>\n @if (showCheckbox) {\n <input\n type=\"checkbox\"\n name=\"checkbox\"\n [formControl]=\"selectionControl\"\n />\n }\n </form>\n\n @if (!headerTemplate) {\n <div class=\"header\">\n <span class=\"title\">{{ data.title }} ({{ data.items.length }})</span>\n </div>\n } @else {\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: data }\"></ng-container>\n }\n </div>\n @if (data.options) {\n <s-button\n priority=\"default\"\n [disabled]=\"false\"\n [auxiliary]=\"true\"\n size=\"small\"\n [menuOptions]=\"tieredMenuOptions\"\n >\n </s-button>\n }\n </div>\n <div class=\"kanban-column__body\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".kanban-column{align-items:center;background-color:#fbfafc;border:1px solid #dedce5;display:flex;flex-direction:column;height:100%;min-height:120px;-webkit-user-select:none;user-select:none;width:100%}.kanban-column .kanban-column__header{align-items:center;border-bottom:1px solid #dedce5;display:flex;justify-content:space-between;padding:16px 16px 8px;width:100%}.kanban-column .kanban-column__header .content{display:flex;gap:16px}.kanban-column .kanban-column__header .content .teste{display:flex;flex-direction:column;font-family:\"Open Sans\" sans-serif}.kanban-column .kanban-column__header .content .teste .title{font-size:14px;font-weight:800}.kanban-column .kanban-column__header .content .teste .description{font-size:12px}.kanban-column .kanban-column__body{display:flex;height:100%;justify-content:center;width:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4$1.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "menuAriaLabel", "size", "slide", "animation", "badge", "iconColor"], outputs: ["clicked"] }] });
|
|
179
179
|
}
|
|
180
180
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KanbanColumnComponent, decorators: [{
|
|
181
181
|
type: Component,
|
|
@@ -201,13 +201,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
201
201
|
type: Input
|
|
202
202
|
}] } });
|
|
203
203
|
|
|
204
|
+
/**
|
|
205
|
+
* @description Componente de quadro Kanban com suporte a arrastar e soltar colunas e itens.
|
|
206
|
+
* Permite seleção via checkboxes, templates customizáveis para cabeçalho, corpo e rodapé
|
|
207
|
+
* dos cards, além de emitir eventos de movição e seleção.
|
|
208
|
+
*
|
|
209
|
+
* @example
|
|
210
|
+
* ```html
|
|
211
|
+
* <s-kanban
|
|
212
|
+
* [data]="dadosKanban"
|
|
213
|
+
* (itemsMoved)="onItemMovido($event)" />
|
|
214
|
+
* ```
|
|
215
|
+
*
|
|
216
|
+
* @category Data
|
|
217
|
+
*/
|
|
204
218
|
class KanbanComponent {
|
|
205
219
|
kanbanEventService;
|
|
220
|
+
/** @description Dados do quadro Kanban com colunas e itens. Campo obrigatório. */
|
|
206
221
|
data;
|
|
222
|
+
/** @description Exibe checkboxes de seleção em cada item Kanban. @default true */
|
|
207
223
|
showItemCheckboxes = true;
|
|
224
|
+
/** @description Exibe checkboxes de seleção no cabeçalho de cada coluna. @default true */
|
|
208
225
|
showColumnCheckboxes = true;
|
|
226
|
+
/** @description Emitido quando o usuário move um item entre colunas ou posições. */
|
|
209
227
|
itemsMoved = new EventEmitter();
|
|
228
|
+
/** @description Emitido quando os dados do quadro são atualizados após movição. */
|
|
210
229
|
dataUpdated = new EventEmitter();
|
|
230
|
+
/** @description Emitido quando a seleção de itens muda, com a lista de itens selecionados. */
|
|
211
231
|
itemsSelected = new EventEmitter();
|
|
212
232
|
selectedColumn = null;
|
|
213
233
|
selectedItems = new Set();
|
|
@@ -238,7 +258,7 @@ class KanbanComponent {
|
|
|
238
258
|
const previousColumn = this.data.columns.find((column) => column.id === event.previousContainer.id);
|
|
239
259
|
const targetColumn = this.data.columns.find((column) => column.id === event.container.id);
|
|
240
260
|
if (!previousColumn || !targetColumn) {
|
|
241
|
-
throw new Error(
|
|
261
|
+
throw new Error('Unable to obtain information about columns when performing drag and drop');
|
|
242
262
|
}
|
|
243
263
|
if (event.previousContainer === event.container) {
|
|
244
264
|
moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
|
|
@@ -305,7 +325,9 @@ class KanbanComponent {
|
|
|
305
325
|
this.draggingItems.clear();
|
|
306
326
|
}
|
|
307
327
|
getLinkedColumns(currentColumn) {
|
|
308
|
-
return this.data.columns
|
|
328
|
+
return this.data.columns
|
|
329
|
+
.filter((column) => column != currentColumn)
|
|
330
|
+
.map((column) => column.id ?? '');
|
|
309
331
|
}
|
|
310
332
|
getColumnHeaderTemplate() {
|
|
311
333
|
return this._getCustomTemplate('column-header') ?? null;
|
|
@@ -337,14 +359,10 @@ class KanbanComponent {
|
|
|
337
359
|
this.selectedColumn = column;
|
|
338
360
|
this.itemsSelected.emit([...this.selectedItems]);
|
|
339
361
|
});
|
|
340
|
-
this.kanbanEventService.unselectAllColumnItemsEvent
|
|
341
|
-
.pipe(takeUntil(this._unsubscribe$))
|
|
342
|
-
.subscribe((_) => {
|
|
362
|
+
this.kanbanEventService.unselectAllColumnItemsEvent.pipe(takeUntil(this._unsubscribe$)).subscribe((_) => {
|
|
343
363
|
this.selectedItems.clear();
|
|
344
364
|
});
|
|
345
|
-
this.kanbanEventService.selectItemEvent
|
|
346
|
-
.pipe(takeUntil(this._unsubscribe$))
|
|
347
|
-
.subscribe((item) => {
|
|
365
|
+
this.kanbanEventService.selectItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe((item) => {
|
|
348
366
|
if (this.selectedColumn && !this.selectedColumn.items.includes(item)) {
|
|
349
367
|
this.selectedItems.clear();
|
|
350
368
|
}
|
|
@@ -373,7 +391,7 @@ class KanbanComponent {
|
|
|
373
391
|
const columns = this.data.columns;
|
|
374
392
|
const columnIds = this.data.columns.map((column) => column.id);
|
|
375
393
|
if (new Set(columnIds).size !== columns.length) {
|
|
376
|
-
throw new Error(
|
|
394
|
+
throw new Error('Repeated IDs are not accepted.');
|
|
377
395
|
}
|
|
378
396
|
}
|
|
379
397
|
_getTemplates() {
|
|
@@ -388,7 +406,7 @@ class KanbanComponent {
|
|
|
388
406
|
}
|
|
389
407
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KanbanComponent, decorators: [{
|
|
390
408
|
type: Component,
|
|
391
|
-
args: [{ selector:
|
|
409
|
+
args: [{ selector: 's-kanban', template: "<div class=\"kanban\">\n <s-kanban-column\n *ngFor=\"let column of data.columns\"\n [data]=\"column\"\n [showCheckbox]=\"showColumnCheckboxes\"\n [headerTemplate]=\"columnHeaderTemplate\">\n <div\n [id]=\"column.id + ''\"\n style=\"height: 100%; width: 100%;\"\n cdkDropList\n #dynamicList=\"cdkDropList\"\n [cdkDropListData]=\"column.items\"\n [cdkDropListConnectedTo]=\"getLinkedColumns(column)\"\n (cdkDropListDropped)=\"drop($event)\">\n\n @if (!columnEmptyMessageTemplate) {\n <div *ngIf=\"!column.items.length\" class=\"empty-message\">\n <p class=\"text\">\n <span class=\"fas fa-clock\"></span> \n <span>{{ \"platform.angular_components.count_items_in_target\" | translate:{ count: column.items.length, target: column.title } }}</span>\n </p>\n </div>\n } @else {\n <ng-container *ngTemplateOutlet=\"columnEmptyMessageTemplate; context: { $implicit: column }\"></ng-container>\n }\n\n <div\n *ngFor=\"let item of column.items\"\n cdkDrag\n [cdkDragData]=\"item\"\n [cdkDragDisabled]=\"item.disabled || item.frozen\"\n (cdkDragStarted)=\"dragStarted()\"\n (cdkDragReleased)=\"dragReleased()\"\n (click)=\"selectItem($event, item, column)\">\n \n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n\n <ng-container *cdkDragPreview>\n @if (selectedItems.size > 1) {\n <s-kanban-item-dragging [quantityItems]=\"selectedItems.size\"></s-kanban-item-dragging>\n } @else {\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n }\n\n </ng-container>\n\n <ng-template #itemTemplate>\n <s-kanban-item\n [item]=\"item\"\n [selected]=\"selectedItems.has(item)\"\n [showCheckbox]=\"showItemCheckboxes\"\n [headerTemplate]=\"itemHeaderTemplate\"\n [bodyTemplate]=\"itemBodyTemplate\"\n [footerTemplate]=\"itemFooterTemplate\">\n </s-kanban-item>\n </ng-template>\n\n <div *cdkDragPlaceholder>\n <div class=\"placeholder\">\n <div class=\"placeholder-line\"></div>\n </div>\n </div>\n </div>\n </div>\n </s-kanban-column>\n</div>\n\n", styles: [".kanban{display:flex;gap:16px;overflow:auto;width:100%}.kanban .empty-message{display:flex;justify-content:center;margin:16px}.kanban .empty-message .text{overflow:hidden;text-align:center;text-overflow:ellipsis;width:100%;white-space:nowrap}@media screen and (max-width: 600px){.kanban{flex-direction:column}}s-kanban-column{display:flex;flex-grow:1;min-width:292px}.placeholder{display:flex;justify-content:center}.placeholder .placeholder-line{background-color:#a5a5b2;height:1px;margin:6px 0;width:50%}\n"] }]
|
|
392
410
|
}], ctorParameters: () => [{ type: KanbanEventService }], propDecorators: { data: [{
|
|
393
411
|
type: Input,
|
|
394
412
|
args: [{ required: true }]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-kanban.mjs","sources":["../../projects/angular-components/kanban/src/lib/kanban/kanban-event.service.ts","../../projects/angular-components/kanban/src/lib/kanban/components/kanban-item/kanban-item.component.ts","../../projects/angular-components/kanban/src/lib/kanban/components/kanban-item/kanban-item.component.html","../../projects/angular-components/kanban/src/lib/kanban/components/kanban-column/kanban-column.component.ts","../../projects/angular-components/kanban/src/lib/kanban/components/kanban-column/kanban-column.component.html","../../projects/angular-components/kanban/src/lib/kanban/components/kanban-item-dragging/kanban-item-dragging.component.ts","../../projects/angular-components/kanban/src/lib/kanban/components/kanban-item-dragging/kanban-item-dragging.component.html","../../projects/angular-components/kanban/src/lib/kanban/kanban.component.ts","../../projects/angular-components/kanban/src/lib/kanban/kanban.component.html","../../projects/angular-components/kanban/src/lib/kanban/kanban.module.ts","../../projects/angular-components/kanban/src/seniorsistemas-angular-components-kanban.ts"],"sourcesContent":["import { EventEmitter, Injectable } from '@angular/core';\n\nimport { KanbanColumn, KanbanItem } from './types';\n\n@Injectable()\nexport class KanbanEventService {\n public selectAllColumnItemsEvent = new EventEmitter<KanbanColumn>();\n public unselectAllColumnItemsEvent = new EventEmitter<KanbanColumn>();\n public selectItemEvent = new EventEmitter<KanbanItem>();\n public unselectItemEvent = new EventEmitter<KanbanItem>();\n\n public emitSelectAllColumnItemsEvent(column: KanbanColumn): void {\n this.selectAllColumnItemsEvent.emit(column);\n }\n\n public emitUnselectAllColumnItemsEvent(column: KanbanColumn): void {\n this.unselectAllColumnItemsEvent.emit(column);\n }\n\n public emitSelectItemEvent(item: KanbanItem): void {\n this.selectItemEvent.emit(item);\n }\n\n public emitUnselectItemEvent(item: KanbanItem): void {\n this.unselectItemEvent.emit(item);\n }\n}\n","import { Component, Input, OnInit, TemplateRef } from \"@angular/core\";\n\nimport { KanbanItem } from \"../../types\";\nimport { KanbanEventService } from \"../../kanban-event.service\";\nimport { KanbanItemOption } from \"../../types/kanban-data\";\nimport { TieredMenuItemData } from \"@seniorsistemas/angular-components/tiered-menu\";\n\n@Component({\n selector: \"s-kanban-item\",\n templateUrl: \"./kanban-item.component.html\",\n styleUrls: [\"./kanban-item.component.scss\"],\n})\nexport class KanbanItemComponent implements OnInit {\n @Input({ required: true })\n public item!: KanbanItem;\n\n @Input()\n public selected = false;\n\n @Input()\n public showCheckbox = true;\n\n @Input()\n public headerTemplate: TemplateRef<any> | null = null;\n\n @Input()\n public bodyTemplate: TemplateRef<any> | null = null;\n\n @Input()\n public footerTemplate: TemplateRef<any> | null = null;\n\n public kanbanItemOptions: TieredMenuItemData[] = [];\n\n constructor(private readonly _kanbanEventService: KanbanEventService) { }\n\n public ngOnInit(): void {\n this._convertToTieredMenuItemData();\n }\n\n public onSelectedChange(value: any): void {\n if (value) {\n this._kanbanEventService.emitSelectItemEvent(this.item);\n } else {\n this._kanbanEventService.emitUnselectItemEvent(this.item);\n }\n }\n\n private _convertToTieredMenuItemData() {\n if (!this.item.options) return;\n\n const options: TieredMenuItemData[] = [];\n\n this.item.options.forEach((option: KanbanItemOption) => {\n options.push({\n ...option,\n command: () => option.command(this.item),\n });\n });\n\n this.kanbanItemOptions = options;\n }\n}\n","<div\n class=\"kanban-item\"\n [ngClass]=\"{\n 'kanban-item--selected': selected && !item.disabled,\n 'kanban-item--disabled': item.disabled,\n 'kanban-item--frozen': !item.disabled && item.frozen\n }\">\n <div class=\"kanban-item__header\">\n <div class=\"content\">\n <form>\n <input\n *ngIf=\"showCheckbox && !item.disabled && !item.frozen\"\n type=\"checkbox\"\n name=\"checkbox\"\n [(ngModel)]=\"selected\"\n (ngModelChange)=\"onSelectedChange($event)\"\n (click)=\"$event.stopPropagation()\">\n </form>\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <button\n *ngIf=\"item.options && !item.disabled\"\n class=\"options-button\"\n (click)=\"$event.stopPropagation();\"\n sTieredMenu\n [items]=\"kanbanItemOptions\">\n <i class=\"fas fa-ellipsis-v\"></i>\n </button>\n </div>\n <div class=\"kanban-item__body\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <div *ngIf=\"footerTemplate\" class=\"kanban-item__footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: item }\"></ng-container> \n </div>\n</div>\n","import { Component, Input, OnDestroy, OnInit, TemplateRef } from \"@angular/core\";\n\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { KanbanColumn, KanbanItem } from \"../../types\";\nimport { KanbanEventService } from \"../../kanban-event.service\";\nimport { FormControl } from \"@angular/forms\";\nimport { KanbanColumnOption } from \"../../types/kanban-data\";\nimport { TieredMenuItemData } from \"@seniorsistemas/angular-components/tiered-menu\";\n\n@Component({\n selector: \"s-kanban-column\",\n templateUrl: \"./kanban-column.component.html\",\n styleUrls: [\"./kanban-column.component.scss\"],\n})\nexport class KanbanColumnComponent implements OnInit, OnDestroy {\n @Input({ required: true })\n public data!: KanbanColumn;\n\n @Input()\n public showCheckbox = true;\n\n @Input()\n public headerTemplate: TemplateRef<any> | null = null;\n\n public selectionControl = new FormControl(false);\n public tieredMenuOptions!: TieredMenuItemData[];\n\n private _unsubscribe$ = new Subject<void>();\n\n constructor(\n private readonly kanbanEventService: KanbanEventService,\n ) { }\n\n public ngOnInit(): void {\n this._validateInputs();\n this._subscriveEvents();\n\n this._createTieredOptions();\n\n this.tieredMenuOptions = this.data.options ? this.data.options as TieredMenuItemData[] : [];\n }\n\n public ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n\n private _createTieredOptions(): void {\n if (!this.data.options) return;\n\n const options: KanbanColumnOption[] = [];\n\n this.data.options.forEach((option: KanbanColumnOption) => {\n options.push({\n ...option,\n command: () => { option.command(this.data) },\n });\n });\n\n this.data.options = options;\n }\n\n private _subscriveEvents(): void {\n this.selectionControl.valueChanges\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((value: boolean | null) => {\n if (value) {\n this.kanbanEventService.emitSelectAllColumnItemsEvent(this.data);\n } else {\n this.kanbanEventService.emitUnselectAllColumnItemsEvent(this.data);\n }\n });\n\n this.kanbanEventService.unselectItemEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((_) => {\n this.selectionControl.setValue(false, { emitEvent: false });\n });\n\n this.kanbanEventService.selectItemEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: KanbanItem) => {\n if (!this.data.items.includes(item)) {\n this.selectionControl.setValue(false, { emitEvent: false });\n }\n });\n\n this.kanbanEventService.selectAllColumnItemsEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((column: KanbanColumn) => {\n if (this.data !== column) {\n this.selectionControl.setValue(false, { emitEvent: false });\n }\n });\n\n this.kanbanEventService.unselectAllColumnItemsEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((column: KanbanColumn) => {\n if (this.data !== column) {\n this.selectionControl.setValue(false, { emitEvent: false });\n }\n })\n }\n\n private _validateInputs(): void {\n if (!this.data) {\n throw new Error(\"data parameter is required\");\n }\n }\n}\n","<div class=\"kanban-column\">\n <div class=\"kanban-column__header\">\n <div class=\"content\">\n <form>\n @if (showCheckbox) {\n <input\n type=\"checkbox\"\n name=\"checkbox\"\n [formControl]=\"selectionControl\"\n />\n }\n </form>\n\n @if (!headerTemplate) {\n <div class=\"header\">\n <span class=\"title\">{{ data.title }} ({{ data.items.length }})</span>\n </div>\n } @else {\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: data }\"></ng-container>\n }\n </div>\n @if (data.options) {\n <s-button\n priority=\"default\"\n [disabled]=\"false\"\n [auxiliary]=\"true\"\n size=\"small\"\n [menuOptions]=\"tieredMenuOptions\"\n >\n </s-button>\n }\n </div>\n <div class=\"kanban-column__body\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 's-kanban-item-dragging',\n templateUrl: './kanban-item-dragging.component.html',\n styleUrls: ['./kanban-item-dragging.component.scss'],\n})\nexport class KanbanItemDraggingComponent {\n @Input()\n public quantityItems = 0;\n}\n","<div class=\"kanban-item-dragging-container\">\n <div\n *ngIf=\"quantityItems\"\n class=\"kanban-item-dragging\">\n </div>\n\n <div\n class=\"kanban-item-dragging\"\n [ngClass]=\"{ 'kanban-item-dragging--over': quantityItems }\">\n <div class=\"content\">\n <input type=\"checkbox\" checked />\n <s-badge\n [text]=\"'platform.angular_components.count_items_selected' | translate:{ count: quantityItems }\"\n color=\"blue\">\n </s-badge>\n </div>\n </div>\n\n</div>\n","import { CdkDragDrop, moveItemInArray, transferArrayItem } from \"@angular/cdk/drag-drop\";\nimport {\n AfterContentInit,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n TemplateRef,\n} from \"@angular/core\";\n\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { KanbanEventService } from \"./kanban-event.service\";\nimport { KanbanColumn, KanbanData, KanbanItem, KanbanItemMovedData } from \"./types/index\";\nimport { TemplateDirective } from \"@seniorsistemas/angular-components/template\";\n\n@Component({\n selector: \"s-kanban\",\n templateUrl: \"./kanban.component.html\",\n styleUrls: [\"./kanban.component.scss\"],\n})\nexport class KanbanComponent implements OnInit, AfterContentInit, OnDestroy {\n @Input({ required: true })\n public data!: KanbanData;\n\n @Input()\n public showItemCheckboxes = true;\n\n @Input()\n public showColumnCheckboxes = true;\n\n @Output()\n public itemsMoved = new EventEmitter<KanbanItemMovedData>();\n\n @Output()\n public dataUpdated = new EventEmitter<KanbanData>();\n\n @Output()\n public itemsSelected = new EventEmitter<KanbanItem[]>();\n\n public selectedColumn: KanbanColumn | null = null;\n public selectedItems = new Set<KanbanItem>();\n public draggingItems = new Set<KanbanItem>();\n\n public columnHeaderTemplate: TemplateRef<any> | null = null;\n public columnEmptyMessageTemplate: TemplateRef<any> | null = null;\n public itemHeaderTemplate: TemplateRef<any> | null = null;\n public itemBodyTemplate: TemplateRef<any> | null = null;\n public itemFooterTemplate: TemplateRef<any> | null = null;\n\n private _unsubscribe$ = new Subject<void>();\n\n @ContentChildren(TemplateDirective) templates: QueryList<TemplateDirective> | null = null;\n\n constructor(private readonly kanbanEventService: KanbanEventService) { }\n\n public ngOnInit(): void {\n this._subscribeEvents();\n this._normalizeData();\n this._validateInputs();\n }\n\n ngAfterContentInit() {\n this._getTemplates();\n }\n\n public ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n\n public drop(event: CdkDragDrop<KanbanItem[]>): void {\n const previousColumn = this.data.columns.find((column: KanbanColumn) => column.id === event.previousContainer.id);\n const targetColumn = this.data.columns.find((column: KanbanColumn) => column.id === event.container.id);\n\n if (!previousColumn || !targetColumn) {\n throw new Error(\"Unable to obtain information about columns when performing drag and drop\");\n }\n\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n } else {\n transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);\n }\n\n this.selectedItems.forEach((item: KanbanItem) => {\n const previousIndex = event.previousContainer.data.indexOf(item);\n if (previousIndex !== -1 && item !== event.item.data) {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, previousIndex, event.currentIndex);\n } else {\n transferArrayItem(event.previousContainer.data, event.container.data, previousIndex, event.currentIndex);\n }\n }\n });\n\n this.selectedItems.add(event.item.data);\n\n this.itemsMoved.emit({\n items: [...this.selectedItems],\n previousColumn,\n targetColumn,\n });\n\n if (this.dataUpdated.observers?.length) {\n this.dataUpdated.emit({ ...this.data });\n }\n\n this.data.columns.forEach((column: KanbanColumn) => {\n this.kanbanEventService.emitUnselectAllColumnItemsEvent(column);\n });\n this.selectedItems.clear();\n }\n\n public selectItem(event: MouseEvent, item: KanbanItem, column: KanbanColumn): void {\n if (item.disabled || item.frozen) return;\n\n if (event.ctrlKey) {\n if (this.selectedItems.delete(item)) {\n this.kanbanEventService.emitUnselectItemEvent(item);\n } else {\n if (this.selectedColumn && !this.selectedColumn.items.includes(item)) {\n this.selectedItems.clear();\n }\n\n this.selectedItems.add(item);\n this.selectedColumn = column;\n this.kanbanEventService.emitSelectItemEvent(item);\n }\n } else {\n if (this.selectedItems.delete(item)) return;\n\n this.selectedItems.clear();\n this.selectedItems.add(item);\n this.selectedColumn = column;\n this.kanbanEventService.emitSelectItemEvent(item);\n }\n }\n\n public dragStarted(): void {\n this.selectedItems.forEach((item: KanbanItem) => {\n this.draggingItems.add(item);\n });\n }\n\n public dragReleased(): void {\n this.draggingItems.clear();\n }\n\n public getLinkedColumns(currentColumn: KanbanColumn): string[] {\n return this.data.columns.filter((column: KanbanColumn) => column != currentColumn).map((column: KanbanColumn) => column.id ?? '');\n }\n\n public getColumnHeaderTemplate(): TemplateRef<any> | null {\n return this._getCustomTemplate('column-header') ?? null;\n }\n\n public getColumnEmptyMessageTemplate(): TemplateRef<any> | null {\n return this._getCustomTemplate('column-empty-message') ?? null;\n }\n\n public getItemHeaderTemplate(): TemplateRef<any> | null {\n return this._getCustomTemplate('item-header') ?? null;\n }\n\n public getItemBodyTemplate(): TemplateRef<any> | null {\n return this._getCustomTemplate('item-body') ?? null;\n }\n\n public getItemFooterTemplate(): TemplateRef<any> | null {\n return this._getCustomTemplate('item-footer') ?? null;\n }\n\n private _getCustomTemplate(type: string): TemplateRef<any> | null {\n return this.templates?.find((template: TemplateDirective) => template.type === type)?.template ?? null;\n }\n\n private _subscribeEvents(): void {\n this.kanbanEventService.selectAllColumnItemsEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((column: KanbanColumn) => {\n column.items\n .filter((item: KanbanItem) => !item.disabled && !item.frozen)\n .forEach((item: KanbanItem) => {\n this.selectedItems.add(item);\n });\n this.selectedColumn = column;\n this.itemsSelected.emit([...this.selectedItems]);\n });\n\n this.kanbanEventService.unselectAllColumnItemsEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((_) => {\n this.selectedItems.clear();\n });\n\n this.kanbanEventService.selectItemEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: KanbanItem) => {\n if (this.selectedColumn && !this.selectedColumn.items.includes(item)) {\n this.selectedItems.clear();\n }\n this.selectedItems.add(item);\n this.itemsSelected.emit([...this.selectedItems]);\n\n // Finding the item column and setting selectedColumn.\n this.data.columns.forEach((column: KanbanColumn) => {\n column.items.forEach((currentItem: KanbanItem) => {\n if (currentItem === item) {\n this.selectedColumn = column;\n return;\n }\n });\n });\n });\n\n this.kanbanEventService.unselectItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe((item: KanbanItem) => {\n this.selectedItems.delete(item);\n });\n }\n\n private _normalizeData(): void {\n this.data.columns.forEach((column: KanbanColumn) => {\n column.id = column.id || `id-${Math.random().toString(36).substring(2, 9)}-${Date.now().toString(36)}`;\n });\n }\n\n private _validateInputs(): void {\n const columns = this.data.columns;\n const columnIds = this.data.columns.map((column: KanbanColumn) => column.id);\n\n if (new Set(columnIds).size !== columns.length) {\n throw new Error(\"Repeated IDs are not accepted.\");\n }\n }\n\n private _getTemplates(): void {\n this.columnHeaderTemplate = this.getColumnHeaderTemplate();\n this.columnEmptyMessageTemplate = this.getColumnEmptyMessageTemplate();\n this.itemHeaderTemplate = this.getItemHeaderTemplate();\n this.itemBodyTemplate = this.getItemBodyTemplate();\n this.itemFooterTemplate = this.getItemFooterTemplate();\n }\n}\n","<div class=\"kanban\">\n <s-kanban-column\n *ngFor=\"let column of data.columns\"\n [data]=\"column\"\n [showCheckbox]=\"showColumnCheckboxes\"\n [headerTemplate]=\"columnHeaderTemplate\">\n <div\n [id]=\"column.id + ''\"\n style=\"height: 100%; width: 100%;\"\n cdkDropList\n #dynamicList=\"cdkDropList\"\n [cdkDropListData]=\"column.items\"\n [cdkDropListConnectedTo]=\"getLinkedColumns(column)\"\n (cdkDropListDropped)=\"drop($event)\">\n\n @if (!columnEmptyMessageTemplate) {\n <div *ngIf=\"!column.items.length\" class=\"empty-message\">\n <p class=\"text\">\n <span class=\"fas fa-clock\"></span> \n <span>{{ \"platform.angular_components.count_items_in_target\" | translate:{ count: column.items.length, target: column.title } }}</span>\n </p>\n </div>\n } @else {\n <ng-container *ngTemplateOutlet=\"columnEmptyMessageTemplate; context: { $implicit: column }\"></ng-container>\n }\n\n <div\n *ngFor=\"let item of column.items\"\n cdkDrag\n [cdkDragData]=\"item\"\n [cdkDragDisabled]=\"item.disabled || item.frozen\"\n (cdkDragStarted)=\"dragStarted()\"\n (cdkDragReleased)=\"dragReleased()\"\n (click)=\"selectItem($event, item, column)\">\n \n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n\n <ng-container *cdkDragPreview>\n @if (selectedItems.size > 1) {\n <s-kanban-item-dragging [quantityItems]=\"selectedItems.size\"></s-kanban-item-dragging>\n } @else {\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n }\n\n </ng-container>\n\n <ng-template #itemTemplate>\n <s-kanban-item\n [item]=\"item\"\n [selected]=\"selectedItems.has(item)\"\n [showCheckbox]=\"showItemCheckboxes\"\n [headerTemplate]=\"itemHeaderTemplate\"\n [bodyTemplate]=\"itemBodyTemplate\"\n [footerTemplate]=\"itemFooterTemplate\">\n </s-kanban-item>\n </ng-template>\n\n <div *cdkDragPlaceholder>\n <div class=\"placeholder\">\n <div class=\"placeholder-line\"></div>\n </div>\n </div>\n </div>\n </div>\n </s-kanban-column>\n</div>\n\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { KanbanColumnComponent } from './components/kanban-column/kanban-column.component';\nimport { KanbanItemDraggingComponent } from './components/kanban-item-dragging/kanban-item-dragging.component';\nimport { KanbanItemComponent } from './components/kanban-item/kanban-item.component';\nimport { KanbanEventService } from './kanban-event.service';\nimport { KanbanComponent } from './kanban.component';\nimport { BadgeModule } from '@seniorsistemas/angular-components/badge';\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\nimport { TieredMenuModule } from '@seniorsistemas/angular-components/tiered-menu';\nimport { TemplateModule } from '@seniorsistemas/angular-components/template';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n DragDropModule,\n BadgeModule,\n ButtonModule,\n TieredMenuModule,\n TemplateModule,\n ],\n declarations: [KanbanComponent, KanbanItemComponent, KanbanColumnComponent, KanbanItemDraggingComponent],\n exports: [KanbanComponent, TemplateModule],\n providers: [KanbanEventService],\n})\nexport class KanbanModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.KanbanEventService","i4","i1","i2","i3","i4.KanbanItemComponent","i5.KanbanColumnComponent","i6.KanbanItemDraggingComponent","i7"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-kanban.mjs","sources":["../../projects/angular-components/kanban/src/lib/kanban/kanban-event.service.ts","../../projects/angular-components/kanban/src/lib/kanban/components/kanban-item/kanban-item.component.ts","../../projects/angular-components/kanban/src/lib/kanban/components/kanban-item/kanban-item.component.html","../../projects/angular-components/kanban/src/lib/kanban/components/kanban-column/kanban-column.component.ts","../../projects/angular-components/kanban/src/lib/kanban/components/kanban-column/kanban-column.component.html","../../projects/angular-components/kanban/src/lib/kanban/components/kanban-item-dragging/kanban-item-dragging.component.ts","../../projects/angular-components/kanban/src/lib/kanban/components/kanban-item-dragging/kanban-item-dragging.component.html","../../projects/angular-components/kanban/src/lib/kanban/kanban.component.ts","../../projects/angular-components/kanban/src/lib/kanban/kanban.component.html","../../projects/angular-components/kanban/src/lib/kanban/kanban.module.ts","../../projects/angular-components/kanban/src/seniorsistemas-angular-components-kanban.ts"],"sourcesContent":["import { EventEmitter, Injectable } from '@angular/core';\n\nimport { KanbanColumn, KanbanItem } from './types';\n\n@Injectable()\nexport class KanbanEventService {\n public selectAllColumnItemsEvent = new EventEmitter<KanbanColumn>();\n public unselectAllColumnItemsEvent = new EventEmitter<KanbanColumn>();\n public selectItemEvent = new EventEmitter<KanbanItem>();\n public unselectItemEvent = new EventEmitter<KanbanItem>();\n\n public emitSelectAllColumnItemsEvent(column: KanbanColumn): void {\n this.selectAllColumnItemsEvent.emit(column);\n }\n\n public emitUnselectAllColumnItemsEvent(column: KanbanColumn): void {\n this.unselectAllColumnItemsEvent.emit(column);\n }\n\n public emitSelectItemEvent(item: KanbanItem): void {\n this.selectItemEvent.emit(item);\n }\n\n public emitUnselectItemEvent(item: KanbanItem): void {\n this.unselectItemEvent.emit(item);\n }\n}\n","import { Component, Input, OnInit, TemplateRef } from \"@angular/core\";\n\nimport { KanbanItem } from \"../../types\";\nimport { KanbanEventService } from \"../../kanban-event.service\";\nimport { KanbanItemOption } from \"../../types/kanban-data\";\nimport { TieredMenuItemData } from \"@seniorsistemas/angular-components/tiered-menu\";\n\n@Component({\n selector: \"s-kanban-item\",\n templateUrl: \"./kanban-item.component.html\",\n styleUrls: [\"./kanban-item.component.scss\"],\n})\nexport class KanbanItemComponent implements OnInit {\n @Input({ required: true })\n public item!: KanbanItem;\n\n @Input()\n public selected = false;\n\n @Input()\n public showCheckbox = true;\n\n @Input()\n public headerTemplate: TemplateRef<any> | null = null;\n\n @Input()\n public bodyTemplate: TemplateRef<any> | null = null;\n\n @Input()\n public footerTemplate: TemplateRef<any> | null = null;\n\n public kanbanItemOptions: TieredMenuItemData[] = [];\n\n constructor(private readonly _kanbanEventService: KanbanEventService) { }\n\n public ngOnInit(): void {\n this._convertToTieredMenuItemData();\n }\n\n public onSelectedChange(value: any): void {\n if (value) {\n this._kanbanEventService.emitSelectItemEvent(this.item);\n } else {\n this._kanbanEventService.emitUnselectItemEvent(this.item);\n }\n }\n\n private _convertToTieredMenuItemData() {\n if (!this.item.options) return;\n\n const options: TieredMenuItemData[] = [];\n\n this.item.options.forEach((option: KanbanItemOption) => {\n options.push({\n ...option,\n command: () => option.command(this.item),\n });\n });\n\n this.kanbanItemOptions = options;\n }\n}\n","<div\n class=\"kanban-item\"\n [ngClass]=\"{\n 'kanban-item--selected': selected && !item.disabled,\n 'kanban-item--disabled': item.disabled,\n 'kanban-item--frozen': !item.disabled && item.frozen\n }\">\n <div class=\"kanban-item__header\">\n <div class=\"content\">\n <form>\n <input\n *ngIf=\"showCheckbox && !item.disabled && !item.frozen\"\n type=\"checkbox\"\n name=\"checkbox\"\n [(ngModel)]=\"selected\"\n (ngModelChange)=\"onSelectedChange($event)\"\n (click)=\"$event.stopPropagation()\">\n </form>\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <button\n *ngIf=\"item.options && !item.disabled\"\n class=\"options-button\"\n (click)=\"$event.stopPropagation();\"\n sTieredMenu\n [items]=\"kanbanItemOptions\">\n <i class=\"fas fa-ellipsis-v\"></i>\n </button>\n </div>\n <div class=\"kanban-item__body\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <div *ngIf=\"footerTemplate\" class=\"kanban-item__footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: item }\"></ng-container> \n </div>\n</div>\n","import { Component, Input, OnDestroy, OnInit, TemplateRef } from \"@angular/core\";\n\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { KanbanColumn, KanbanItem } from \"../../types\";\nimport { KanbanEventService } from \"../../kanban-event.service\";\nimport { FormControl } from \"@angular/forms\";\nimport { KanbanColumnOption } from \"../../types/kanban-data\";\nimport { TieredMenuItemData } from \"@seniorsistemas/angular-components/tiered-menu\";\n\n@Component({\n selector: \"s-kanban-column\",\n templateUrl: \"./kanban-column.component.html\",\n styleUrls: [\"./kanban-column.component.scss\"],\n})\nexport class KanbanColumnComponent implements OnInit, OnDestroy {\n @Input({ required: true })\n public data!: KanbanColumn;\n\n @Input()\n public showCheckbox = true;\n\n @Input()\n public headerTemplate: TemplateRef<any> | null = null;\n\n public selectionControl = new FormControl(false);\n public tieredMenuOptions!: TieredMenuItemData[];\n\n private _unsubscribe$ = new Subject<void>();\n\n constructor(\n private readonly kanbanEventService: KanbanEventService,\n ) { }\n\n public ngOnInit(): void {\n this._validateInputs();\n this._subscriveEvents();\n\n this._createTieredOptions();\n\n this.tieredMenuOptions = this.data.options ? this.data.options as TieredMenuItemData[] : [];\n }\n\n public ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n\n private _createTieredOptions(): void {\n if (!this.data.options) return;\n\n const options: KanbanColumnOption[] = [];\n\n this.data.options.forEach((option: KanbanColumnOption) => {\n options.push({\n ...option,\n command: () => { option.command(this.data) },\n });\n });\n\n this.data.options = options;\n }\n\n private _subscriveEvents(): void {\n this.selectionControl.valueChanges\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((value: boolean | null) => {\n if (value) {\n this.kanbanEventService.emitSelectAllColumnItemsEvent(this.data);\n } else {\n this.kanbanEventService.emitUnselectAllColumnItemsEvent(this.data);\n }\n });\n\n this.kanbanEventService.unselectItemEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((_) => {\n this.selectionControl.setValue(false, { emitEvent: false });\n });\n\n this.kanbanEventService.selectItemEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: KanbanItem) => {\n if (!this.data.items.includes(item)) {\n this.selectionControl.setValue(false, { emitEvent: false });\n }\n });\n\n this.kanbanEventService.selectAllColumnItemsEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((column: KanbanColumn) => {\n if (this.data !== column) {\n this.selectionControl.setValue(false, { emitEvent: false });\n }\n });\n\n this.kanbanEventService.unselectAllColumnItemsEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((column: KanbanColumn) => {\n if (this.data !== column) {\n this.selectionControl.setValue(false, { emitEvent: false });\n }\n })\n }\n\n private _validateInputs(): void {\n if (!this.data) {\n throw new Error(\"data parameter is required\");\n }\n }\n}\n","<div class=\"kanban-column\">\n <div class=\"kanban-column__header\">\n <div class=\"content\">\n <form>\n @if (showCheckbox) {\n <input\n type=\"checkbox\"\n name=\"checkbox\"\n [formControl]=\"selectionControl\"\n />\n }\n </form>\n\n @if (!headerTemplate) {\n <div class=\"header\">\n <span class=\"title\">{{ data.title }} ({{ data.items.length }})</span>\n </div>\n } @else {\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: data }\"></ng-container>\n }\n </div>\n @if (data.options) {\n <s-button\n priority=\"default\"\n [disabled]=\"false\"\n [auxiliary]=\"true\"\n size=\"small\"\n [menuOptions]=\"tieredMenuOptions\"\n >\n </s-button>\n }\n </div>\n <div class=\"kanban-column__body\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 's-kanban-item-dragging',\n templateUrl: './kanban-item-dragging.component.html',\n styleUrls: ['./kanban-item-dragging.component.scss'],\n})\nexport class KanbanItemDraggingComponent {\n @Input()\n public quantityItems = 0;\n}\n","<div class=\"kanban-item-dragging-container\">\n <div\n *ngIf=\"quantityItems\"\n class=\"kanban-item-dragging\">\n </div>\n\n <div\n class=\"kanban-item-dragging\"\n [ngClass]=\"{ 'kanban-item-dragging--over': quantityItems }\">\n <div class=\"content\">\n <input type=\"checkbox\" checked />\n <s-badge\n [text]=\"'platform.angular_components.count_items_selected' | translate:{ count: quantityItems }\"\n color=\"blue\">\n </s-badge>\n </div>\n </div>\n\n</div>\n","import { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport {\n AfterContentInit,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n TemplateRef,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { KanbanEventService } from './kanban-event.service';\nimport { KanbanColumn, KanbanData, KanbanItem, KanbanItemMovedData } from './types/index';\nimport { TemplateDirective } from '@seniorsistemas/angular-components/template';\n\n/**\n * @description Componente de quadro Kanban com suporte a arrastar e soltar colunas e itens.\n * Permite seleção via checkboxes, templates customizáveis para cabeçalho, corpo e rodapé\n * dos cards, além de emitir eventos de movição e seleção.\n *\n * @example\n * ```html\n * <s-kanban\n * [data]=\"dadosKanban\"\n * (itemsMoved)=\"onItemMovido($event)\" />\n * ```\n *\n * @category Data\n */\n@Component({\n selector: 's-kanban',\n templateUrl: './kanban.component.html',\n styleUrls: ['./kanban.component.scss'],\n})\nexport class KanbanComponent implements OnInit, AfterContentInit, OnDestroy {\n /** @description Dados do quadro Kanban com colunas e itens. Campo obrigatório. */\n @Input({ required: true })\n public data!: KanbanData;\n\n /** @description Exibe checkboxes de seleção em cada item Kanban. @default true */\n @Input()\n public showItemCheckboxes = true;\n\n /** @description Exibe checkboxes de seleção no cabeçalho de cada coluna. @default true */\n @Input()\n public showColumnCheckboxes = true;\n\n /** @description Emitido quando o usuário move um item entre colunas ou posições. */\n @Output()\n public itemsMoved = new EventEmitter<KanbanItemMovedData>();\n\n /** @description Emitido quando os dados do quadro são atualizados após movição. */\n @Output()\n public dataUpdated = new EventEmitter<KanbanData>();\n\n /** @description Emitido quando a seleção de itens muda, com a lista de itens selecionados. */\n @Output()\n public itemsSelected = new EventEmitter<KanbanItem[]>();\n\n public selectedColumn: KanbanColumn | null = null;\n public selectedItems = new Set<KanbanItem>();\n public draggingItems = new Set<KanbanItem>();\n\n public columnHeaderTemplate: TemplateRef<any> | null = null;\n public columnEmptyMessageTemplate: TemplateRef<any> | null = null;\n public itemHeaderTemplate: TemplateRef<any> | null = null;\n public itemBodyTemplate: TemplateRef<any> | null = null;\n public itemFooterTemplate: TemplateRef<any> | null = null;\n\n private _unsubscribe$ = new Subject<void>();\n\n @ContentChildren(TemplateDirective) templates: QueryList<TemplateDirective> | null = null;\n\n constructor(private readonly kanbanEventService: KanbanEventService) {}\n\n public ngOnInit(): void {\n this._subscribeEvents();\n this._normalizeData();\n this._validateInputs();\n }\n\n ngAfterContentInit() {\n this._getTemplates();\n }\n\n public ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n\n public drop(event: CdkDragDrop<KanbanItem[]>): void {\n const previousColumn = this.data.columns.find(\n (column: KanbanColumn) => column.id === event.previousContainer.id,\n );\n const targetColumn = this.data.columns.find((column: KanbanColumn) => column.id === event.container.id);\n\n if (!previousColumn || !targetColumn) {\n throw new Error('Unable to obtain information about columns when performing drag and drop');\n }\n\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n } else {\n transferArrayItem(\n event.previousContainer.data,\n event.container.data,\n event.previousIndex,\n event.currentIndex,\n );\n }\n\n this.selectedItems.forEach((item: KanbanItem) => {\n const previousIndex = event.previousContainer.data.indexOf(item);\n if (previousIndex !== -1 && item !== event.item.data) {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, previousIndex, event.currentIndex);\n } else {\n transferArrayItem(\n event.previousContainer.data,\n event.container.data,\n previousIndex,\n event.currentIndex,\n );\n }\n }\n });\n\n this.selectedItems.add(event.item.data);\n\n this.itemsMoved.emit({\n items: [...this.selectedItems],\n previousColumn,\n targetColumn,\n });\n\n if (this.dataUpdated.observers?.length) {\n this.dataUpdated.emit({ ...this.data });\n }\n\n this.data.columns.forEach((column: KanbanColumn) => {\n this.kanbanEventService.emitUnselectAllColumnItemsEvent(column);\n });\n this.selectedItems.clear();\n }\n\n public selectItem(event: MouseEvent, item: KanbanItem, column: KanbanColumn): void {\n if (item.disabled || item.frozen) return;\n\n if (event.ctrlKey) {\n if (this.selectedItems.delete(item)) {\n this.kanbanEventService.emitUnselectItemEvent(item);\n } else {\n if (this.selectedColumn && !this.selectedColumn.items.includes(item)) {\n this.selectedItems.clear();\n }\n\n this.selectedItems.add(item);\n this.selectedColumn = column;\n this.kanbanEventService.emitSelectItemEvent(item);\n }\n } else {\n if (this.selectedItems.delete(item)) return;\n\n this.selectedItems.clear();\n this.selectedItems.add(item);\n this.selectedColumn = column;\n this.kanbanEventService.emitSelectItemEvent(item);\n }\n }\n\n public dragStarted(): void {\n this.selectedItems.forEach((item: KanbanItem) => {\n this.draggingItems.add(item);\n });\n }\n\n public dragReleased(): void {\n this.draggingItems.clear();\n }\n\n public getLinkedColumns(currentColumn: KanbanColumn): string[] {\n return this.data.columns\n .filter((column: KanbanColumn) => column != currentColumn)\n .map((column: KanbanColumn) => column.id ?? '');\n }\n\n public getColumnHeaderTemplate(): TemplateRef<any> | null {\n return this._getCustomTemplate('column-header') ?? null;\n }\n\n public getColumnEmptyMessageTemplate(): TemplateRef<any> | null {\n return this._getCustomTemplate('column-empty-message') ?? null;\n }\n\n public getItemHeaderTemplate(): TemplateRef<any> | null {\n return this._getCustomTemplate('item-header') ?? null;\n }\n\n public getItemBodyTemplate(): TemplateRef<any> | null {\n return this._getCustomTemplate('item-body') ?? null;\n }\n\n public getItemFooterTemplate(): TemplateRef<any> | null {\n return this._getCustomTemplate('item-footer') ?? null;\n }\n\n private _getCustomTemplate(type: string): TemplateRef<any> | null {\n return this.templates?.find((template: TemplateDirective) => template.type === type)?.template ?? null;\n }\n\n private _subscribeEvents(): void {\n this.kanbanEventService.selectAllColumnItemsEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((column: KanbanColumn) => {\n column.items\n .filter((item: KanbanItem) => !item.disabled && !item.frozen)\n .forEach((item: KanbanItem) => {\n this.selectedItems.add(item);\n });\n this.selectedColumn = column;\n this.itemsSelected.emit([...this.selectedItems]);\n });\n\n this.kanbanEventService.unselectAllColumnItemsEvent.pipe(takeUntil(this._unsubscribe$)).subscribe((_) => {\n this.selectedItems.clear();\n });\n\n this.kanbanEventService.selectItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe((item: KanbanItem) => {\n if (this.selectedColumn && !this.selectedColumn.items.includes(item)) {\n this.selectedItems.clear();\n }\n this.selectedItems.add(item);\n this.itemsSelected.emit([...this.selectedItems]);\n\n // Finding the item column and setting selectedColumn.\n this.data.columns.forEach((column: KanbanColumn) => {\n column.items.forEach((currentItem: KanbanItem) => {\n if (currentItem === item) {\n this.selectedColumn = column;\n return;\n }\n });\n });\n });\n\n this.kanbanEventService.unselectItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe((item: KanbanItem) => {\n this.selectedItems.delete(item);\n });\n }\n\n private _normalizeData(): void {\n this.data.columns.forEach((column: KanbanColumn) => {\n column.id = column.id || `id-${Math.random().toString(36).substring(2, 9)}-${Date.now().toString(36)}`;\n });\n }\n\n private _validateInputs(): void {\n const columns = this.data.columns;\n const columnIds = this.data.columns.map((column: KanbanColumn) => column.id);\n\n if (new Set(columnIds).size !== columns.length) {\n throw new Error('Repeated IDs are not accepted.');\n }\n }\n\n private _getTemplates(): void {\n this.columnHeaderTemplate = this.getColumnHeaderTemplate();\n this.columnEmptyMessageTemplate = this.getColumnEmptyMessageTemplate();\n this.itemHeaderTemplate = this.getItemHeaderTemplate();\n this.itemBodyTemplate = this.getItemBodyTemplate();\n this.itemFooterTemplate = this.getItemFooterTemplate();\n }\n}\n\n","<div class=\"kanban\">\n <s-kanban-column\n *ngFor=\"let column of data.columns\"\n [data]=\"column\"\n [showCheckbox]=\"showColumnCheckboxes\"\n [headerTemplate]=\"columnHeaderTemplate\">\n <div\n [id]=\"column.id + ''\"\n style=\"height: 100%; width: 100%;\"\n cdkDropList\n #dynamicList=\"cdkDropList\"\n [cdkDropListData]=\"column.items\"\n [cdkDropListConnectedTo]=\"getLinkedColumns(column)\"\n (cdkDropListDropped)=\"drop($event)\">\n\n @if (!columnEmptyMessageTemplate) {\n <div *ngIf=\"!column.items.length\" class=\"empty-message\">\n <p class=\"text\">\n <span class=\"fas fa-clock\"></span> \n <span>{{ \"platform.angular_components.count_items_in_target\" | translate:{ count: column.items.length, target: column.title } }}</span>\n </p>\n </div>\n } @else {\n <ng-container *ngTemplateOutlet=\"columnEmptyMessageTemplate; context: { $implicit: column }\"></ng-container>\n }\n\n <div\n *ngFor=\"let item of column.items\"\n cdkDrag\n [cdkDragData]=\"item\"\n [cdkDragDisabled]=\"item.disabled || item.frozen\"\n (cdkDragStarted)=\"dragStarted()\"\n (cdkDragReleased)=\"dragReleased()\"\n (click)=\"selectItem($event, item, column)\">\n \n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n\n <ng-container *cdkDragPreview>\n @if (selectedItems.size > 1) {\n <s-kanban-item-dragging [quantityItems]=\"selectedItems.size\"></s-kanban-item-dragging>\n } @else {\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n }\n\n </ng-container>\n\n <ng-template #itemTemplate>\n <s-kanban-item\n [item]=\"item\"\n [selected]=\"selectedItems.has(item)\"\n [showCheckbox]=\"showItemCheckboxes\"\n [headerTemplate]=\"itemHeaderTemplate\"\n [bodyTemplate]=\"itemBodyTemplate\"\n [footerTemplate]=\"itemFooterTemplate\">\n </s-kanban-item>\n </ng-template>\n\n <div *cdkDragPlaceholder>\n <div class=\"placeholder\">\n <div class=\"placeholder-line\"></div>\n </div>\n </div>\n </div>\n </div>\n </s-kanban-column>\n</div>\n\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { KanbanColumnComponent } from './components/kanban-column/kanban-column.component';\nimport { KanbanItemDraggingComponent } from './components/kanban-item-dragging/kanban-item-dragging.component';\nimport { KanbanItemComponent } from './components/kanban-item/kanban-item.component';\nimport { KanbanEventService } from './kanban-event.service';\nimport { KanbanComponent } from './kanban.component';\nimport { BadgeModule } from '@seniorsistemas/angular-components/badge';\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\nimport { TieredMenuModule } from '@seniorsistemas/angular-components/tiered-menu';\nimport { TemplateModule } from '@seniorsistemas/angular-components/template';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n DragDropModule,\n BadgeModule,\n ButtonModule,\n TieredMenuModule,\n TemplateModule,\n ],\n declarations: [KanbanComponent, KanbanItemComponent, KanbanColumnComponent, KanbanItemDraggingComponent],\n exports: [KanbanComponent, TemplateModule],\n providers: [KanbanEventService],\n})\nexport class KanbanModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.KanbanEventService","i4","i1","i2","i3","i4.KanbanItemComponent","i5.KanbanColumnComponent","i6.KanbanItemDraggingComponent","i7"],"mappings":"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"}
|