@fundamental-ngx/core 0.42.0-rc.8 → 0.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/alert/alert.component.d.ts +5 -4
- package/alert/alert.module.d.ts +2 -1
- package/avatar/avatar.component.d.ts +2 -4
- package/avatar-group/directives/avatar-group-focusable-avatar.directive.d.ts +2 -6
- package/avatar-group/directives/avatar-group-overflow-button.directive.d.ts +2 -4
- package/bar/bar.component.d.ts +2 -4
- package/busy-indicator/busy-indicator-extended/busy-indicator-extended.directive.d.ts +2 -4
- package/button/button.component.d.ts +2 -6
- package/card/card-content.component.d.ts +2 -4
- package/card/card-counter.directive.d.ts +2 -4
- package/card/card-header.component.d.ts +2 -4
- package/card/card-loader.component.d.ts +2 -4
- package/card/card-second-subtitle.directive.d.ts +2 -4
- package/card/card-subtitle.directive.d.ts +2 -4
- package/card/card-title.directive.d.ts +2 -4
- package/card/card.component.d.ts +3 -5
- package/card/kpi/card-kpi-analytics-content.directive.d.ts +2 -4
- package/card/kpi/card-kpi-analytics-label.directive.d.ts +2 -4
- package/card/kpi/card-kpi-analytics.directive.d.ts +2 -4
- package/card/kpi/card-kpi-header.component.d.ts +2 -4
- package/card/kpi/card-kpi-scale-icon.directive.d.ts +2 -4
- package/card/kpi/card-kpi-scale-text.directive.d.ts +2 -4
- package/card/kpi/card-kpi-value.directive.d.ts +2 -4
- package/combobox/combobox.module.d.ts +2 -1
- package/dialog/base/dialog-base.class.d.ts +2 -2
- package/dialog/dialog-body/dialog-body.component.d.ts +2 -4
- package/dialog/dialog-container/dialog-container.component.d.ts +0 -2
- package/dialog/dialog-service/dialog.service.d.ts +4 -0
- package/dialog/dialog.component.d.ts +0 -2
- package/dynamic-page/dynamic-page-content/dynamic-page-content.component.d.ts +4 -6
- package/dynamic-page/dynamic-page-header/actions/dynamic-page-layout-actions.component.d.ts +2 -4
- package/dynamic-side-content/dynamic-side-content.component.d.ts +3 -5
- package/esm2020/alert/alert.component.mjs +7 -19
- package/esm2020/alert/alert.module.mjs +5 -4
- package/esm2020/avatar/avatar.component.mjs +6 -10
- package/esm2020/avatar-group/directives/avatar-group-focusable-avatar.directive.mjs +4 -12
- package/esm2020/avatar-group/directives/avatar-group-overflow-body.directive.mjs +2 -2
- package/esm2020/avatar-group/directives/avatar-group-overflow-button.directive.mjs +3 -7
- package/esm2020/bar/bar.component.mjs +3 -7
- package/esm2020/breadcrumb/breadcrumb-item.component.mjs +2 -2
- package/esm2020/breadcrumb/breadcrumb.component.mjs +2 -2
- package/esm2020/busy-indicator/busy-indicator-extended/busy-indicator-extended.directive.mjs +4 -8
- package/esm2020/button/button.component.mjs +3 -9
- package/esm2020/card/card-content.component.mjs +3 -7
- package/esm2020/card/card-counter.directive.mjs +3 -7
- package/esm2020/card/card-header.component.mjs +4 -8
- package/esm2020/card/card-loader.component.mjs +3 -7
- package/esm2020/card/card-second-subtitle.directive.mjs +3 -7
- package/esm2020/card/card-subtitle.directive.mjs +3 -7
- package/esm2020/card/card-title.directive.mjs +3 -7
- package/esm2020/card/card.component.mjs +3 -7
- package/esm2020/card/kpi/card-kpi-analytics-content.directive.mjs +3 -7
- package/esm2020/card/kpi/card-kpi-analytics-label.directive.mjs +3 -7
- package/esm2020/card/kpi/card-kpi-analytics.directive.mjs +3 -7
- package/esm2020/card/kpi/card-kpi-header.component.mjs +3 -7
- package/esm2020/card/kpi/card-kpi-scale-icon.directive.mjs +3 -7
- package/esm2020/card/kpi/card-kpi-scale-text.directive.mjs +3 -7
- package/esm2020/card/kpi/card-kpi-value.directive.mjs +3 -7
- package/esm2020/checkbox/checkbox/checkbox.component.mjs +5 -5
- package/esm2020/combobox/combobox.component.mjs +5 -4
- package/esm2020/combobox/combobox.module.mjs +8 -4
- package/esm2020/content-density/services/content-density-observer.service.mjs +3 -3
- package/esm2020/datetime-picker/datetime-picker.component.mjs +7 -4
- package/esm2020/dialog/base/dialog-base.class.mjs +4 -4
- package/esm2020/dialog/dialog-body/dialog-body.component.mjs +3 -7
- package/esm2020/dialog/dialog-container/dialog-container.component.mjs +1 -5
- package/esm2020/dialog/dialog-service/dialog.service.mjs +10 -2
- package/esm2020/dialog/dialog.component.mjs +3 -7
- package/esm2020/dynamic-page/dynamic-page-content/dynamic-page-content.component.mjs +4 -8
- package/esm2020/dynamic-page/dynamic-page-header/actions/dynamic-page-layout-actions.component.mjs +5 -9
- package/esm2020/dynamic-side-content/dynamic-side-content.component.mjs +3 -7
- package/esm2020/facets/content/facet-content.component.mjs +4 -8
- package/esm2020/facets/facet/facet.component.mjs +13 -19
- package/esm2020/feed-input/directives/feed-input-avatar.directive.mjs +3 -7
- package/esm2020/feed-list-item/components/item/feed-list-item.component.mjs +3 -7
- package/esm2020/feed-list-item/components/list/feed-list.component.mjs +3 -7
- package/esm2020/form/form-control/form-control.component.mjs +3 -7
- package/esm2020/form/form-group/form-group.component.mjs +3 -7
- package/esm2020/form/form-message/form-message.component.mjs +3 -7
- package/esm2020/grid-list/components/grid-list-item/grid-list-item.component.mjs +3 -3
- package/esm2020/icon/icon.component.mjs +3 -7
- package/esm2020/illustrated-message/illustrated-message.component.mjs +3 -7
- package/esm2020/info-label/info-label.component.mjs +3 -7
- package/esm2020/inline-help/inline-help.directive.mjs +26 -15
- package/esm2020/input-group/input-group-directives.mjs +6 -14
- package/esm2020/input-group/input-group.component.mjs +2 -2
- package/esm2020/layout-grid/directives/layout-grid-col.directive.mjs +3 -7
- package/esm2020/layout-grid/layout-grid.component.mjs +3 -7
- package/esm2020/layout-panel/layout-panel-footer/layout-panel-footer.component.mjs +3 -7
- package/esm2020/link/link.component.mjs +9 -13
- package/esm2020/list/directives/list-icon.directive.mjs +3 -7
- package/esm2020/list/directives/list-navigation-item-text.directive.mjs +3 -7
- package/esm2020/list/list-message.directive.mjs +3 -7
- package/esm2020/menu/menu-mobile/menu-mobile.component.mjs +2 -2
- package/esm2020/message-box/message-box-container/message-box-container.component.mjs +1 -5
- package/esm2020/message-box/message-box.component.mjs +1 -5
- package/esm2020/message-page/message-page.component.mjs +3 -7
- package/esm2020/message-strip/alert/default-config.mjs +11 -0
- package/esm2020/message-strip/alert/index.mjs +6 -0
- package/esm2020/message-strip/alert/message-strip-alert/message-strip-alert.component.mjs +68 -0
- package/esm2020/message-strip/alert/message-strip-alert-container/message-strip-alert-container.component.mjs +57 -0
- package/esm2020/message-strip/alert/message-strip-alert-container-footer/message-strip-alert-container-footer.component.mjs +65 -0
- package/esm2020/message-strip/alert/message-strip-alert.position.mjs +2 -0
- package/esm2020/message-strip/alert/message-strip-alert.ref.mjs +3 -0
- package/esm2020/message-strip/alert/message-strip-alert.service.mjs +195 -0
- package/esm2020/message-strip/alert/message-strip-configuration-type.mjs +2 -0
- package/esm2020/message-strip/alert/open-message-strip-alert.config.mjs +2 -0
- package/esm2020/message-strip/alert/tokens.mjs +14 -0
- package/esm2020/message-strip/auto-dismiss-message-strip.directive.mjs +98 -0
- package/esm2020/message-strip/fundamental-ngx-core-message-strip.mjs +2 -2
- package/esm2020/message-strip/index.mjs +6 -0
- package/esm2020/message-strip/message-strip-type.mjs +2 -0
- package/esm2020/message-strip/message-strip.component.mjs +16 -20
- package/esm2020/message-strip/message-strip.module.mjs +6 -9
- package/esm2020/multi-combobox/multi-combobox.component.mjs +6 -6
- package/esm2020/multi-input/multi-input.component.mjs +33 -19
- package/esm2020/notification/directives/notification-indicator.directive.mjs +3 -7
- package/esm2020/notification/notification-group/notification-group.component.mjs +3 -7
- package/esm2020/notification/notification-utils/notification-group-base.mjs +2 -2
- package/esm2020/object-marker/object-marker.component.mjs +3 -7
- package/esm2020/object-number/object-number.component.mjs +3 -7
- package/esm2020/object-status/object-status.component.mjs +3 -7
- package/esm2020/panel/panel.component.mjs +3 -7
- package/esm2020/product-switch/product-switch-body/product-switch-body.component.mjs +1 -1
- package/esm2020/radio/radio-button/radio-button.component.mjs +2 -2
- package/esm2020/rating-indicator/components/rating-indicator.component.mjs +3 -7
- package/esm2020/resizable-card-layout/resizable-card-layout/resizable-card-item/resizable-card-item.component.mjs +4 -8
- package/esm2020/resizable-card-layout/resizable-card-layout/resizable-card-layout.component.mjs +3 -7
- package/esm2020/segmented-button/segmented-button.component.mjs +4 -4
- package/esm2020/select/select.component.mjs +3 -3
- package/esm2020/slider/slider.component.mjs +3 -7
- package/esm2020/status-indicator/status-indicator.component.mjs +4 -8
- package/esm2020/table/directives/table-cell.directive.mjs +31 -26
- package/esm2020/table/directives/table-icon.directive.mjs +3 -9
- package/esm2020/table/directives/table-row.directive.mjs +34 -19
- package/esm2020/table/table-wrapper.component.mjs +2 -2
- package/esm2020/table/table.component.mjs +1 -1
- package/esm2020/tabs/tab-item/tab-item.directive.mjs +3 -7
- package/esm2020/tabs/tab-nav/tab-nav.component.mjs +3 -9
- package/esm2020/tabs/tab-utils/tab-directives.mjs +3 -9
- package/esm2020/tile/directives/numeric-content.directives.mjs +14 -34
- package/esm2020/tile/directives/tile.directives.mjs +9 -21
- package/esm2020/tile/tile.component.mjs +2 -2
- package/esm2020/token/token-input.directive.mjs +3 -7
- package/esm2020/token/tokenizer.component.mjs +20 -22
- package/esm2020/toolbar/toolbar.component.mjs +2 -2
- package/esm2020/tree/components/tree-item/tree-item.component.mjs +1 -1
- package/esm2020/tree/models/base-tree-item.class.mjs +2 -6
- package/esm2020/tree/tree.component.mjs +3 -7
- package/esm2020/upload-collection/upload-collection-item.directive.mjs +2 -2
- package/esm2020/wizard/wizard.component.mjs +2 -2
- package/facets/content/facet-content.component.d.ts +2 -4
- package/facets/facet/facet.component.d.ts +2 -6
- package/feed-input/directives/feed-input-avatar.directive.d.ts +2 -4
- package/feed-list-item/components/item/feed-list-item.component.d.ts +2 -4
- package/feed-list-item/components/list/feed-list.component.d.ts +2 -4
- package/fesm2015/fundamental-ngx-core-alert.mjs +48 -58
- package/fesm2015/fundamental-ngx-core-alert.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-avatar-group.mjs +6 -18
- package/fesm2015/fundamental-ngx-core-avatar-group.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-avatar.mjs +5 -9
- package/fesm2015/fundamental-ngx-core-avatar.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-bar.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-bar.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-breadcrumb.mjs +2 -2
- package/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-busy-indicator.mjs +3 -7
- package/fesm2015/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-button.mjs +2 -8
- package/fesm2015/fundamental-ngx-core-button.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-card.mjs +31 -91
- package/fesm2015/fundamental-ngx-core-card.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-checkbox.mjs +4 -4
- package/fesm2015/fundamental-ngx-core-checkbox.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-combobox.mjs +10 -5
- package/fesm2015/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-content-density.mjs +2 -2
- package/fesm2015/fundamental-ngx-core-content-density.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-datetime-picker.mjs +6 -3
- package/fesm2015/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-dialog.mjs +16 -21
- package/fesm2015/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-dynamic-page.mjs +7 -15
- package/fesm2015/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-dynamic-side-content.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-dynamic-side-content.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-facets.mjs +15 -25
- package/fesm2015/fundamental-ngx-core-facets.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-feed-input.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-feed-input.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-feed-list-item.mjs +4 -12
- package/fesm2015/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-form.mjs +6 -18
- package/fesm2015/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-grid-list.mjs +2 -2
- package/fesm2015/fundamental-ngx-core-grid-list.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-icon.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-icon.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-illustrated-message.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-illustrated-message.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-info-label.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-info-label.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-inline-help.mjs +24 -13
- package/fesm2015/fundamental-ngx-core-inline-help.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-input-group.mjs +6 -14
- package/fesm2015/fundamental-ngx-core-input-group.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-layout-grid.mjs +4 -12
- package/fesm2015/fundamental-ngx-core-layout-grid.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-layout-panel.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-layout-panel.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-link.mjs +8 -12
- package/fesm2015/fundamental-ngx-core-link.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-list.mjs +6 -18
- package/fesm2015/fundamental-ngx-core-list.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-menu.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-menu.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-message-box.mjs +0 -8
- package/fesm2015/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-message-page.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-message-page.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-message-strip.mjs +488 -28
- package/fesm2015/fundamental-ngx-core-message-strip.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-multi-combobox.mjs +5 -5
- package/fesm2015/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-multi-input.mjs +33 -17
- package/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-notification.mjs +5 -13
- package/fesm2015/fundamental-ngx-core-notification.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-object-marker.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-object-marker.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-object-number.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-object-number.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-object-status.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-object-status.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-panel.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-panel.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-product-switch.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-product-switch.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-radio.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-radio.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-rating-indicator.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-resizable-card-layout.mjs +5 -13
- package/fesm2015/fundamental-ngx-core-resizable-card-layout.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-segmented-button.mjs +3 -3
- package/fesm2015/fundamental-ngx-core-segmented-button.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-select.mjs +2 -2
- package/fesm2015/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-slider.mjs +2 -6
- package/fesm2015/fundamental-ngx-core-slider.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-status-indicator.mjs +3 -7
- package/fesm2015/fundamental-ngx-core-status-indicator.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-table.mjs +64 -48
- package/fesm2015/fundamental-ngx-core-table.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-tabs.mjs +6 -22
- package/fesm2015/fundamental-ngx-core-tabs.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-tile.mjs +22 -54
- package/fesm2015/fundamental-ngx-core-tile.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-token.mjs +22 -28
- package/fesm2015/fundamental-ngx-core-token.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-toolbar.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-toolbar.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-tree.mjs +3 -11
- package/fesm2015/fundamental-ngx-core-tree.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-upload-collection.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-upload-collection.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-wizard.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-wizard.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-alert.mjs +48 -58
- package/fesm2020/fundamental-ngx-core-alert.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-avatar-group.mjs +6 -18
- package/fesm2020/fundamental-ngx-core-avatar-group.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-avatar.mjs +5 -9
- package/fesm2020/fundamental-ngx-core-avatar.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-bar.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-bar.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-breadcrumb.mjs +2 -2
- package/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-busy-indicator.mjs +3 -7
- package/fesm2020/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-button.mjs +2 -8
- package/fesm2020/fundamental-ngx-core-button.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-card.mjs +31 -91
- package/fesm2020/fundamental-ngx-core-card.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-checkbox.mjs +4 -4
- package/fesm2020/fundamental-ngx-core-checkbox.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-combobox.mjs +10 -5
- package/fesm2020/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-content-density.mjs +2 -2
- package/fesm2020/fundamental-ngx-core-content-density.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-datetime-picker.mjs +6 -3
- package/fesm2020/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-dialog.mjs +16 -21
- package/fesm2020/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-dynamic-page.mjs +7 -15
- package/fesm2020/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-dynamic-side-content.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-dynamic-side-content.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-facets.mjs +15 -25
- package/fesm2020/fundamental-ngx-core-facets.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-feed-input.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-feed-input.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-feed-list-item.mjs +4 -12
- package/fesm2020/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-form.mjs +6 -18
- package/fesm2020/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-grid-list.mjs +2 -2
- package/fesm2020/fundamental-ngx-core-grid-list.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-icon.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-icon.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-illustrated-message.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-illustrated-message.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-info-label.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-info-label.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-inline-help.mjs +24 -13
- package/fesm2020/fundamental-ngx-core-inline-help.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-input-group.mjs +6 -14
- package/fesm2020/fundamental-ngx-core-input-group.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-layout-grid.mjs +4 -12
- package/fesm2020/fundamental-ngx-core-layout-grid.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-layout-panel.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-layout-panel.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-link.mjs +8 -12
- package/fesm2020/fundamental-ngx-core-link.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-list.mjs +6 -18
- package/fesm2020/fundamental-ngx-core-list.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-menu.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-menu.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-message-box.mjs +0 -8
- package/fesm2020/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-message-page.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-message-page.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-message-strip.mjs +493 -28
- package/fesm2020/fundamental-ngx-core-message-strip.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-multi-combobox.mjs +5 -5
- package/fesm2020/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-multi-input.mjs +31 -17
- package/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-notification.mjs +5 -13
- package/fesm2020/fundamental-ngx-core-notification.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-object-marker.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-object-marker.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-object-number.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-object-number.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-object-status.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-object-status.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-panel.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-panel.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-product-switch.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-product-switch.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-radio.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-radio.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-rating-indicator.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-resizable-card-layout.mjs +5 -13
- package/fesm2020/fundamental-ngx-core-resizable-card-layout.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-segmented-button.mjs +3 -3
- package/fesm2020/fundamental-ngx-core-segmented-button.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-select.mjs +2 -2
- package/fesm2020/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-slider.mjs +2 -6
- package/fesm2020/fundamental-ngx-core-slider.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-status-indicator.mjs +3 -7
- package/fesm2020/fundamental-ngx-core-status-indicator.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-table.mjs +64 -48
- package/fesm2020/fundamental-ngx-core-table.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-tabs.mjs +6 -22
- package/fesm2020/fundamental-ngx-core-tabs.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-tile.mjs +22 -54
- package/fesm2020/fundamental-ngx-core-tile.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-token.mjs +21 -27
- package/fesm2020/fundamental-ngx-core-token.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-toolbar.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-toolbar.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-tree.mjs +3 -11
- package/fesm2020/fundamental-ngx-core-tree.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-upload-collection.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-upload-collection.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-wizard.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-wizard.mjs.map +1 -1
- package/form/form-control/form-control.component.d.ts +2 -4
- package/form/form-group/form-group.component.d.ts +2 -4
- package/form/form-message/form-message.component.d.ts +2 -4
- package/fundamental-ngx-core-v0.42.0.tgz +0 -0
- package/icon/icon.component.d.ts +2 -4
- package/illustrated-message/illustrated-message.component.d.ts +2 -4
- package/info-label/info-label.component.d.ts +2 -4
- package/inline-help/inline-help.directive.d.ts +9 -3
- package/input-group/input-group-directives.d.ts +5 -9
- package/layout-grid/directives/layout-grid-col.directive.d.ts +2 -4
- package/layout-grid/layout-grid.component.d.ts +2 -4
- package/layout-panel/layout-panel-footer/layout-panel-footer.component.d.ts +4 -6
- package/link/link.component.d.ts +2 -4
- package/list/directives/list-icon.directive.d.ts +4 -5
- package/list/directives/list-navigation-item-text.directive.d.ts +2 -4
- package/list/list-message.directive.d.ts +2 -4
- package/message-box/message-box-container/message-box-container.component.d.ts +0 -2
- package/message-box/message-box.component.d.ts +0 -2
- package/message-page/message-page.component.d.ts +2 -4
- package/message-strip/alert/default-config.d.ts +5 -0
- package/message-strip/alert/index.d.ts +9 -0
- package/message-strip/alert/message-strip-alert/message-strip-alert.component.d.ts +52 -0
- package/message-strip/alert/message-strip-alert-container/message-strip-alert-container.component.d.ts +28 -0
- package/message-strip/alert/message-strip-alert-container-footer/message-strip-alert-container-footer.component.d.ts +36 -0
- package/message-strip/alert/message-strip-alert.position.d.ts +3 -0
- package/message-strip/alert/message-strip-alert.ref.d.ts +14 -0
- package/message-strip/alert/message-strip-alert.service.d.ts +52 -0
- package/message-strip/alert/message-strip-configuration-type.d.ts +15 -0
- package/message-strip/alert/open-message-strip-alert.config.d.ts +22 -0
- package/message-strip/alert/tokens.d.ts +20 -0
- package/message-strip/auto-dismiss-message-strip.directive.d.ts +35 -0
- package/message-strip/index.d.ts +5 -5
- package/message-strip/message-strip-type.d.ts +2 -0
- package/message-strip/message-strip.component.d.ts +7 -9
- package/message-strip/message-strip.module.d.ts +2 -4
- package/multi-combobox/multi-combobox.component.d.ts +1 -1
- package/multi-input/multi-input.component.d.ts +10 -6
- package/notification/directives/notification-indicator.directive.d.ts +2 -4
- package/notification/notification-group/notification-group.component.d.ts +2 -4
- package/object-marker/object-marker.component.d.ts +2 -4
- package/object-number/object-number.component.d.ts +2 -4
- package/object-status/object-status.component.d.ts +2 -4
- package/package.json +3 -3
- package/panel/panel.component.d.ts +2 -4
- package/radio/radio-button/radio-button.component.d.ts +1 -1
- package/rating-indicator/components/rating-indicator.component.d.ts +2 -4
- package/resizable-card-layout/resizable-card-layout/resizable-card-item/resizable-card-item.component.d.ts +2 -4
- package/resizable-card-layout/resizable-card-layout/resizable-card-layout.component.d.ts +2 -4
- package/schematics/add-dependencies/index.js +4 -4
- package/slider/slider.component.d.ts +2 -4
- package/status-indicator/status-indicator.component.d.ts +2 -4
- package/table/directives/table-cell.directive.d.ts +6 -12
- package/table/directives/table-icon.directive.d.ts +2 -6
- package/table/directives/table-row.directive.d.ts +10 -10
- package/tabs/tab-item/tab-item.directive.d.ts +2 -4
- package/tabs/tab-nav/tab-nav.component.d.ts +4 -8
- package/tabs/tab-utils/tab-directives.d.ts +2 -6
- package/tile/directives/numeric-content.directives.d.ts +10 -20
- package/tile/directives/tile.directives.d.ts +6 -12
- package/tile/tile.component.d.ts +1 -1
- package/token/token-input.directive.d.ts +2 -4
- package/token/tokenizer.component.d.ts +2 -4
- package/toolbar/toolbar.component.d.ts +1 -1
- package/tree/models/base-tree-item.class.d.ts +1 -3
- package/tree/tree.component.d.ts +1 -3
- package/esm2020/message-strip/public_api.mjs +0 -3
- package/fundamental-ngx-core-v0.42.0-rc.8.tgz +0 -0
- package/message-strip/public_api.d.ts +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-alert.mjs","sources":["../../../../libs/core/src/lib/alert/alert-utils/alert-animations.ts","../../../../libs/core/src/lib/alert/alert-utils/alert-config.ts","../../../../libs/core/src/lib/alert/alert-utils/alert-ref.ts","../../../../libs/core/src/lib/alert/alert.component.ts","../../../../libs/core/src/lib/alert/alert.component.html","../../../../libs/core/src/lib/alert/alert-utils/alert-container.component.ts","../../../../libs/core/src/lib/alert/alert-service/alert.service.ts","../../../../libs/core/src/lib/alert/alert.module.ts","../../../../libs/core/src/lib/alert/fundamental-ngx-core-alert.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\n/**\n * @deprecated\n * Alert component is depricated since version 0.16.0\n * Message Strip component should be used instead.\n */\nexport const alertFadeNgIf: AnimationTriggerMetadata = trigger('fadeAlertNgIf', [\n transition(':enter', [\n style({\n opacity: 0\n }),\n animate(\n '250ms ease-in-out',\n style({\n opacity: 1\n })\n )\n ]),\n transition(':leave', [\n style({\n opacity: 1,\n marginTop: '*',\n paddingTop: '*',\n paddingBottom: '*',\n height: '*',\n overflow: 'hidden'\n }),\n animate(\n '400ms ease-in-out',\n style({\n opacity: 0,\n marginTop: 0,\n paddingTop: 0,\n paddingBottom: 0,\n height: 0,\n overflow: 'hidden'\n })\n )\n ])\n]);\n\nexport const alertContainerNgIf: AnimationTriggerMetadata = trigger('alertContainerNgIf', [\n transition(':leave', [style({ opacity: 1 }), animate('400ms ease-in-out', style({ opacity: 0 }))])\n]);\n","import { Nullable, DynamicComponentConfig } from '@fundamental-ngx/cdk/utils';\n\n/**\n * @deprecated\n * Alert component is depricated since version 0.16.0\n * Message Strip component should be used instead.\n *\n * Configuration for opening an alert with the AlertService.\n */\nexport class AlertConfig implements DynamicComponentConfig {\n /** Whether the alert is dismissible. */\n dismissible = true;\n\n /** The type of the alert. Can be one of *warning*, *success*, *information*, *error* or null. */\n type?: string;\n\n /** Id for the alert component. If omitted, a unique one is generated. */\n id?: string;\n\n /** Width of the alert. */\n width = '33vw';\n\n /** Minimum width of the alert. */\n minWidth = '300px';\n\n /** Data being injected into the child component or template. */\n data?: any;\n\n /** Duration of time *in milliseconds* that the alert will be visible. Set to -1 for indefinite. */\n duration = 10000;\n\n /** Whether the alert should stay open if the mouse is hovering over it. */\n mousePersist = false;\n\n /** Id of the element that labels the alert. */\n ariaLabelledBy?: Nullable<string>;\n\n /** Aria label for the alert component element. */\n ariaLabel?: Nullable<string>;\n\n /** The container that the Alert is appended to. By default, it is appended to the body. */\n container?: HTMLElement | 'body' = 'body';\n}\n","import { Observable, Subject } from 'rxjs';\n\n/**\n * @deprecated\n * Alert component is depricated since version 0.16.0\n * Message Strip component should be used instead.\n *\n * Reference to an alert component generated via the AlertService.\n * It can be injected into the content component in the same way a service would be injected.\n * For a template, add let-alert to your ng-template tag. Now using *alert* in the template refers to this class.\n */\nexport class AlertRef {\n /** @hidden */\n private readonly _afterDismissed: Subject<any> = new Subject<any>();\n\n /** Observable that is triggered when the alert is dismissed. */\n public afterDismissed: Observable<any> = this._afterDismissed.asObservable();\n\n /** Data passed from the service open method. */\n public data: any;\n\n /**\n * Dismisses the alert.\n *\n * @param reason Data passed back to the calling component through the AfterDismissed observable.\n */\n dismiss(reason?: any): void {\n this._afterDismissed.next(reason);\n }\n}\n","import {\n Component,\n Input,\n OnInit,\n ElementRef,\n ChangeDetectorRef,\n ViewChild,\n ComponentFactoryResolver,\n ComponentRef,\n Type,\n AfterViewInit,\n ViewContainerRef,\n TemplateRef,\n Optional,\n EmbeddedViewRef,\n Output,\n EventEmitter,\n ViewEncapsulation,\n HostListener,\n NgZone,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { alertFadeNgIf } from './alert-utils/alert-animations';\nimport { AbstractFdNgxClass, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { AlertRef } from './alert-utils/alert-ref';\nimport { AlertConfig } from './alert-utils/alert-config';\n\nlet alertUniqueId = 0;\n\n/**\n * @deprecated\n * Alert component is depricated since version 0.16.0\n * Message Strip component should be used instead.\n *\n * The component that represents an alert. It can be only be used inline.\n * If the AlertService is used, this component is auto-generated.\n */\n@Component({\n selector: 'fd-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss'],\n host: {\n '[attr.aria-labelledby]': 'ariaLabelledBy',\n '[attr.aria-label]': 'ariaLabel',\n '[style.width]': 'width',\n '[style.min-width]': 'minWidth',\n role: 'alert',\n '[attr.id]': 'id',\n '[@fadeAlertNgIf]': ''\n },\n animations: [alertFadeNgIf],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AlertComponent extends AbstractFdNgxClass implements OnInit, AfterViewInit {\n /** @hidden */\n @ViewChild('container', { read: ViewContainerRef })\n containerRef: ViewContainerRef;\n\n /** Whether the alert is dismissible. */\n @Input()\n dismissible = true;\n\n /** The type of the alert. Can be one of *warning*, *success*, *information*, *error* or null. */\n @Input()\n type: string;\n\n /** Id for the alert component. If omitted, a unique one is generated. */\n @Input()\n id: string = 'fd-alert-' + alertUniqueId++;\n\n /** Duration of time *in milliseconds* that the alert will be visible. Set to -1 for indefinite. */\n @Input()\n duration = 10000;\n\n /** Whether the alert should stay open if the mouse is hovering over it. */\n @Input()\n mousePersist = false;\n\n /** Id of the element that labels the alert. */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** Aria label for the alert component element. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Aria label for the dismiss button. */\n @Input()\n dismissLabel = 'Dismiss';\n\n /** Width of the alert. */\n @Input()\n width: string;\n\n /** Minimum width of the alert. */\n @Input()\n minWidth: string;\n\n /** Alternative way of passing in a message to the alert. */\n @Input()\n message: string;\n\n /** Event fired when the alert is dismissed. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onDismiss: EventEmitter<undefined> = new EventEmitter<undefined>();\n\n /** @hidden */\n mouseInAlert = false;\n\n /** @hidden */\n componentRef: ComponentRef<any> | EmbeddedViewRef<any>;\n\n /** @hidden */\n childContent: Type<any> | TemplateRef<any> | string | undefined = undefined;\n\n /** @hidden */\n constructor(\n private elRef: ElementRef,\n private cdRef: ChangeDetectorRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n private ngZone: NgZone,\n @Optional() private alertConfig: AlertConfig,\n @Optional() private alertRef: AlertRef\n ) {\n super(elRef);\n this._setAlertConfig(alertConfig);\n this._setProperties();\n }\n\n /** @hidden */\n ngOnInit(): void {\n if (this.alertRef) {\n this.open();\n }\n this._setProperties();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this.childContent) {\n if (this.childContent instanceof Type) {\n this.loadFromComponent(this.childContent);\n } else if (this.childContent instanceof TemplateRef) {\n this.loadFromTemplate(this.childContent);\n } else {\n this.loadFromString(this.childContent);\n }\n this.cdRef.detectChanges();\n }\n }\n\n /**\n * Dismisses the alert. If the alert was generated via the AlertService, it is removed from the DOM.\n * Otherwise, it sets the display value to none. Fires the onDismiss event.\n *\n * @param manualDismiss Set to true to skip the dismiss animation.\n * @param reason Data to pass back to the calling component. Only usable if alert is opened using the Service.\n *\n */\n dismiss(reason?: any, manualDismiss: boolean = false): void {\n if (manualDismiss) {\n this.elRef.nativeElement.classList.add('fd-has-display-none');\n this.elRef.nativeElement.classList.remove('fd-has-display-block');\n }\n if (this.alertRef) {\n this.alertRef.dismiss(reason);\n } else {\n this.elRef.nativeElement.classList.add('fd-has-display-none');\n this.elRef.nativeElement.classList.remove('fd-has-display-block');\n }\n this.onDismiss.emit();\n }\n\n /**\n * Opens the alert.\n */\n open(): void {\n if (!this.alertRef) {\n if (this.elRef.nativeElement.style.display === 'block') {\n return;\n }\n this.elRef.nativeElement.classList.remove('fd-has-display-none');\n this.elRef.nativeElement.classList.add('fd-has-display-block');\n }\n\n if (this.duration >= 0) {\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n if (this.mousePersist) {\n const wait = (): void => {\n if (this.mouseInAlert === true) {\n setTimeout(wait, 500);\n } else {\n this.ngZone.run(() => this.dismiss());\n }\n };\n wait();\n } else {\n this.ngZone.run(() => this.dismiss());\n }\n }, this.duration);\n });\n }\n }\n\n /** @hidden */\n @HostListener('mouseenter', ['$event'])\n @HostListener('mouseleave', ['$event'])\n handleAlertMouseEvent(event): void {\n if (event.type === 'mouseenter') {\n this.mouseInAlert = true;\n } else if (event.type === 'mouseleave') {\n this.mouseInAlert = false;\n }\n }\n\n /** @hidden */\n _setProperties(): void {\n this._addClassToElement('fd-alert');\n if (this.type) {\n this._addClassToElement('fd-alert--' + this.type);\n }\n if (this.dismissible) {\n this._addClassToElement('fd-alert--dismissible');\n }\n }\n\n /** @hidden */\n private loadFromTemplate(template: TemplateRef<any>): void {\n const context = {\n $implicit: this.alertRef\n };\n this.componentRef = this.containerRef.createEmbeddedView(template, context);\n }\n\n /** @hidden */\n private loadFromComponent(componentType: Type<any>): void {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentType);\n this.containerRef.clear();\n this.componentRef = this.containerRef.createComponent(componentFactory);\n }\n\n /** @hidden */\n private loadFromString(contentString: string): void {\n this.containerRef.clear();\n this.message = contentString;\n }\n\n /** @hidden */\n private _setAlertConfig(alertConfig: AlertConfig): void {\n Object.keys(alertConfig || {})\n .filter((key) => key !== 'data' && key !== 'container')\n .forEach((key) => (this[key] = alertConfig[key]));\n }\n}\n","<button\n class=\"fd-alert__close\"\n fd-button\n glyph=\"decline\"\n fdCompact\n fdType=\"transparent\"\n *ngIf=\"dismissible\"\n (click)=\"dismiss(undefined, true)\"\n [attr.aria-controls]=\"id\"\n [attr.aria-label]=\"dismissLabel\"\n></button>\n<p class=\"fd-alert__text\">\n <ng-container #container>{{ message }}</ng-container>\n <ng-content></ng-content>\n</p>\n","import { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\nimport { alertContainerNgIf } from './alert-animations';\n\n/**\n * @deprecated\n * Alert component is depricated since version 0.16.0\n * Message Strip component should be used instead.\n */\n@Component({\n selector: 'fd-alert-container',\n template: ``,\n styles: [\n `\n .fd-alert-container {\n position: fixed;\n display: flex;\n flex-direction: column;\n z-index: 5000;\n align-items: center;\n top: 0;\n right: 50%;\n left: 50%;\n }\n `\n ],\n host: {\n '[@alertContainerNgIf]': ''\n },\n animations: [alertContainerNgIf],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AlertContainerComponent {\n /** @hidden */\n @HostBinding('class.fd-alert-container')\n fdAlertContainerClass = true;\n}\n","import { Injectable, ComponentRef, TemplateRef, Type } from '@angular/core';\nimport { AlertComponent } from '../alert.component';\nimport { AlertContainerComponent } from '../alert-utils/alert-container.component';\nimport { AlertConfig } from '../alert-utils/alert-config';\nimport { DynamicComponentService } from '@fundamental-ngx/cdk/utils';\nimport { AlertRef } from '../alert-utils/alert-ref';\n\n/**\n * @deprecated\n * Alert component is depricated since version 0.16.0\n * Message Strip component should be used instead.\n *\n * Service used to dynamically generate an alert as an overlay.\n */\n@Injectable()\nexport class AlertService {\n /** @hidden */\n private alerts: ComponentRef<AlertComponent>[] = [];\n\n /** @hidden */\n private alertContainerRef?: ComponentRef<AlertContainerComponent>;\n\n /** @hidden */\n constructor(private dynamicComponentService: DynamicComponentService) {}\n\n /**\n * Returns true if there are some alerts currently open. False otherwise.\n */\n public hasOpenAlerts(): boolean {\n return this.alerts && this.alerts.length > 0;\n }\n\n /**\n * Opens an alert component with a content of type TemplateRef, Component Type or String.\n * @param content Content of the alert component.\n * @param alertConfig Configuration of the alert component.\n */\n public open(\n content: TemplateRef<any> | Type<any> | string,\n alertConfig: AlertConfig = new AlertConfig()\n ): AlertRef {\n // Get default values from alert model\n alertConfig = Object.assign(new AlertConfig(), alertConfig);\n\n // Instantiate alert ref service\n const service: AlertRef = new AlertRef();\n service.data = alertConfig.data;\n\n // If empty or undefined alert array, create container\n if (!this.alerts || this.alerts.length === 0 || !this.alertContainerRef) {\n this.alertContainerRef = this.dynamicComponentService.createDynamicComponent<AlertContainerComponent>(\n content,\n AlertContainerComponent,\n alertConfig\n );\n }\n\n // Define Container to put backdrop and component to container\n alertConfig.container = this.alertContainerRef.location.nativeElement;\n\n const component = this.dynamicComponentService.createDynamicComponent<AlertComponent>(\n content,\n AlertComponent,\n alertConfig,\n { services: [service, alertConfig] }\n );\n\n component.location.nativeElement.style.marginTop = '10px';\n\n // Subscription to close alert from ref\n const refSub = service.afterDismissed.subscribe(() => {\n this.destroyAlertComponent(component);\n refSub.unsubscribe();\n });\n\n // Log new component\n this.alerts.push(component);\n return service;\n }\n\n /**\n * Dismisses all service-opened alerts.\n */\n public dismissAll(): void {\n this.alerts.forEach((ref) => {\n this.destroyAlertComponent(ref);\n });\n }\n\n /** @hidden */\n private destroyAlertComponent(alert: ComponentRef<AlertComponent>): void {\n this.alerts = this.alerts.filter((item) => item && item !== alert);\n this.dynamicComponentService.destroyComponent(alert);\n\n if (this.alertContainerRef && (!this.alerts || this.alerts.length === 0)) {\n this.destroyAlertContainer();\n }\n }\n\n /** @hidden */\n private destroyAlertContainer(): void {\n this.alertContainerRef && this.dynamicComponentService.destroyComponent(this.alertContainerRef);\n this.alertContainerRef = undefined;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { AlertComponent } from './alert.component';\nimport { AlertService } from './alert-service/alert.service';\nimport { AlertContainerComponent } from './alert-utils/alert-container.component';\nimport { DynamicComponentService } from '@fundamental-ngx/cdk/utils';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\n\n/**\n * @deprecated\n * Alert component is depricated since version 0.16.0\n * Message Strip component should be used instead.\n */\n@NgModule({\n declarations: [AlertComponent, AlertContainerComponent],\n imports: [CommonModule, ButtonModule],\n exports: [AlertComponent, AlertContainerComponent],\n providers: [AlertService, DynamicComponentService]\n})\nexport class AlertModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.AlertConfig","i2.AlertRef"],"mappings":";;;;;;;;;;;;AAEA;;;;AAIG;AACU,MAAA,aAAa,GAA6B,OAAO,CAAC,eAAe,EAAE;IAC5E,UAAU,CAAC,QAAQ,EAAE;AACjB,QAAA,KAAK,CAAC;AACF,YAAA,OAAO,EAAE,CAAC;SACb,CAAC;AACF,QAAA,OAAO,CACH,mBAAmB,EACnB,KAAK,CAAC;AACF,YAAA,OAAO,EAAE,CAAC;AACb,SAAA,CAAC,CACL;KACJ,CAAC;IACF,UAAU,CAAC,QAAQ,EAAE;AACjB,QAAA,KAAK,CAAC;AACF,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,SAAS,EAAE,GAAG;AACd,YAAA,UAAU,EAAE,GAAG;AACf,YAAA,aAAa,EAAE,GAAG;AAClB,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,QAAQ,EAAE,QAAQ;SACrB,CAAC;AACF,QAAA,OAAO,CACH,mBAAmB,EACnB,KAAK,CAAC;AACF,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,QAAQ,EAAE,QAAQ;AACrB,SAAA,CAAC,CACL;KACJ,CAAC;AACL,CAAA,EAAE;AAEU,MAAA,kBAAkB,GAA6B,OAAO,CAAC,oBAAoB,EAAE;IACtF,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACrG,CAAA;;AC1CD;;;;;;AAMG;MACU,WAAW,CAAA;AAAxB,IAAA,WAAA,GAAA;;AAEI,QAAA,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;;AASnB,QAAA,IAAK,CAAA,KAAA,GAAG,MAAM,CAAC;;AAGf,QAAA,IAAQ,CAAA,QAAA,GAAG,OAAO,CAAC;;AAMnB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;AAGjB,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;;AASrB,QAAA,IAAS,CAAA,SAAA,GAA0B,MAAM,CAAC;KAC7C;AAAA;;ACxCD;;;;;;;;AAQG;MACU,QAAQ,CAAA;AAArB,IAAA,WAAA,GAAA;;AAEqB,QAAA,IAAA,CAAA,eAAe,GAAiB,IAAI,OAAO,EAAO,CAAC;;QAG7D,IAAA,CAAA,cAAc,GAAoB,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;KAahF;AARG;;;;AAIG;AACH,IAAA,OAAO,CAAC,MAAY,EAAA;AAChB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACrC;AACJ;;ACFD,IAAI,aAAa,GAAG,CAAC,CAAC;AAEtB;;;;;;;AAOG;AAkBG,MAAO,cAAe,SAAQ,kBAAkB,CAAA;;IAgElD,WACY,CAAA,KAAiB,EACjB,KAAwB,EACxB,wBAAkD,EAClD,MAAc,EACF,WAAwB,EACxB,QAAkB,EAAA;QAEtC,KAAK,CAAC,KAAK,CAAC,CAAC;AAPL,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;AACjB,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAmB;AACxB,QAAA,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;AAClD,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AACF,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AACxB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;;AA/D1C,QAAA,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;;AAQnB,QAAA,IAAA,CAAA,EAAE,GAAW,WAAW,GAAG,aAAa,EAAE,CAAC;;AAI3C,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;AAIjB,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;;AAYrB,QAAA,IAAY,CAAA,YAAA,GAAG,SAAS,CAAC;;;AAiBzB,QAAA,IAAA,CAAA,SAAS,GAA4B,IAAI,YAAY,EAAa,CAAC;;AAGnE,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;;AAMrB,QAAA,IAAY,CAAA,YAAA,GAAsD,SAAS,CAAC;AAYxE,QAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAClC,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;;IAGD,QAAQ,GAAA;QACJ,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,IAAI,EAAE,CAAC;AACf,SAAA;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;;IAGD,eAAe,GAAA;QACX,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,IAAI,CAAC,YAAY,YAAY,IAAI,EAAE;AACnC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC7C,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,YAAY,YAAY,WAAW,EAAE;AACjD,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC5C,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC1C,aAAA;AACD,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;AAC9B,SAAA;KACJ;AAED;;;;;;;AAOG;AACH,IAAA,OAAO,CAAC,MAAY,EAAE,aAAA,GAAyB,KAAK,EAAA;AAChD,QAAA,IAAI,aAAa,EAAE;YACf,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YAC9D,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;AACrE,SAAA;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACjC,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YAC9D,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;AACrE,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACzB;AAED;;AAEG;IACH,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE;gBACpD,OAAO;AACV,aAAA;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YACjE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAClE,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE;AACpB,YAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;gBAC/B,UAAU,CAAC,MAAK;oBACZ,IAAI,IAAI,CAAC,YAAY,EAAE;wBACnB,MAAM,IAAI,GAAG,MAAW;AACpB,4BAAA,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;AAC5B,gCAAA,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACzB,6BAAA;AAAM,iCAAA;AACH,gCAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACzC,6BAAA;AACL,yBAAC,CAAC;AACF,wBAAA,IAAI,EAAE,CAAC;AACV,qBAAA;AAAM,yBAAA;AACH,wBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACzC,qBAAA;AACL,iBAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtB,aAAC,CAAC,CAAC;AACN,SAAA;KACJ;;AAKD,IAAA,qBAAqB,CAAC,KAAK,EAAA;AACvB,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;AAC7B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC5B,SAAA;AAAM,aAAA,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;AACpC,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC7B,SAAA;KACJ;;IAGD,cAAc,GAAA;AACV,QAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AACrD,SAAA;QACD,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;AACpD,SAAA;KACJ;;AAGO,IAAA,gBAAgB,CAAC,QAA0B,EAAA;AAC/C,QAAA,MAAM,OAAO,GAAG;YACZ,SAAS,EAAE,IAAI,CAAC,QAAQ;SAC3B,CAAC;AACF,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KAC/E;;AAGO,IAAA,iBAAiB,CAAC,aAAwB,EAAA;QAC9C,MAAM,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;AAC9F,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;KAC3E;;AAGO,IAAA,cAAc,CAAC,aAAqB,EAAA;AACxC,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC;KAChC;;AAGO,IAAA,eAAe,CAAC,WAAwB,EAAA;AAC5C,QAAA,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;AACzB,aAAA,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,WAAW,CAAC;AACtD,aAAA,OAAO,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACzD;;2GAzMQ,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,iwBAES,gBAAgB,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxDpD,mZAeA,EDmCgB,MAAA,EAAA,CAAA,i/MAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,qUAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAC,aAAa,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAIlB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAjB1B,SAAS;YACI,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAGd,IAAA,EAAA;AACF,wBAAA,wBAAwB,EAAE,gBAAgB;AAC1C,wBAAA,mBAAmB,EAAE,WAAW;AAChC,wBAAA,eAAe,EAAE,OAAO;AACxB,wBAAA,mBAAmB,EAAE,UAAU;AAC/B,wBAAA,IAAI,EAAE,OAAO;AACb,wBAAA,WAAW,EAAE,IAAI;AACjB,wBAAA,kBAAkB,EAAE,EAAE;AACzB,qBAAA,EACW,UAAA,EAAA,CAAC,aAAa,CAAC,EACZ,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,mZAAA,EAAA,MAAA,EAAA,CAAA,i/MAAA,CAAA,EAAA,CAAA;;;8BAuE1C,QAAQ;;8BACR,QAAQ;;yBAnEb,YAAY,EAAA,CAAA;sBADX,SAAS;gBAAC,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAA;gBAKlD,WAAW,EAAA,CAAA;sBADV,KAAK;gBAKN,IAAI,EAAA,CAAA;sBADH,KAAK;gBAKN,EAAE,EAAA,CAAA;sBADD,KAAK;gBAKN,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAKN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAKN,cAAc,EAAA,CAAA;sBADb,KAAK;gBAKN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAKN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAKN,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAKN,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAKN,OAAO,EAAA,CAAA;sBADN,KAAK;;;AAMN,QAAA,SAAS,EAAA,CAAA;sBAFR,MAAM;gBA0GP,qBAAqB,EAAA,CAAA;sBAFpB,YAAY;uBAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAA;;sBACrC,YAAY;uBAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AE9M1C;;;;AAIG;MAyBU,uBAAuB,CAAA;AAxBpC,IAAA,WAAA,GAAA;;AA2BI,QAAA,IAAqB,CAAA,qBAAA,GAAG,IAAI,CAAC;KAChC;;oHAJY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAtBtB,QAAA,EAAA,oBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,CAAE,EAkBA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,mIAAA,CAAA,EAAA,UAAA,EAAA,CAAC,kBAAkB,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAIvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAxBnC,SAAS;+BACI,oBAAoB,EAAA,QAAA,EACpB,CAAA,CAAE,EAeN,IAAA,EAAA;AACF,wBAAA,uBAAuB,EAAE,EAAE;qBAC9B,EACW,UAAA,EAAA,CAAC,kBAAkB,CAAC,EACjB,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,mIAAA,CAAA,EAAA,CAAA;8BAK/C,qBAAqB,EAAA,CAAA;sBADpB,WAAW;uBAAC,0BAA0B,CAAA;;;AC3B3C;;;;;;AAMG;MAEU,YAAY,CAAA;;AAQrB,IAAA,WAAA,CAAoB,uBAAgD,EAAA;AAAhD,QAAA,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAyB;;AAN5D,QAAA,IAAM,CAAA,MAAA,GAAmC,EAAE,CAAC;KAMoB;AAExE;;AAEG;IACI,aAAa,GAAA;QAChB,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;KAChD;AAED;;;;AAIG;AACI,IAAA,IAAI,CACP,OAA8C,EAC9C,WAA2B,GAAA,IAAI,WAAW,EAAE,EAAA;;QAG5C,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE,EAAE,WAAW,CAAC,CAAC;;AAG5D,QAAA,MAAM,OAAO,GAAa,IAAI,QAAQ,EAAE,CAAC;AACzC,QAAA,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;;AAGhC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AACrE,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,uBAAuB,CAAC,sBAAsB,CACxE,OAAO,EACP,uBAAuB,EACvB,WAAW,CACd,CAAC;AACL,SAAA;;QAGD,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC;QAEtE,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,sBAAsB,CACjE,OAAO,EACP,cAAc,EACd,WAAW,EACX,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,CACvC,CAAC;QAEF,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;;QAG1D,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,MAAK;AACjD,YAAA,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YACtC,MAAM,CAAC,WAAW,EAAE,CAAC;AACzB,SAAC,CAAC,CAAC;;AAGH,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5B,QAAA,OAAO,OAAO,CAAC;KAClB;AAED;;AAEG;IACI,UAAU,GAAA;QACb,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACxB,YAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;AACpC,SAAC,CAAC,CAAC;KACN;;AAGO,IAAA,qBAAqB,CAAC,KAAmC,EAAA;QAC7D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC;AACnE,QAAA,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAErD,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;YACtE,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAChC,SAAA;KACJ;;IAGO,qBAAqB,GAAA;AACzB,QAAA,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAChG,QAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;KACtC;;yGAxFQ,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;6GAAZ,YAAY,EAAA,CAAA,CAAA;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;;;ACLX;;;;AAIG;MAOU,WAAW,CAAA;;wGAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAX,WAAW,EAAA,YAAA,EAAA,CALL,cAAc,EAAE,uBAAuB,CAAA,EAAA,OAAA,EAAA,CAC5C,YAAY,EAAE,YAAY,CAAA,EAAA,OAAA,EAAA,CAC1B,cAAc,EAAE,uBAAuB,CAAA,EAAA,CAAA,CAAA;yGAGxC,WAAW,EAAA,SAAA,EAFT,CAAC,YAAY,EAAE,uBAAuB,CAAC,EAAA,OAAA,EAAA,CAFxC,YAAY,EAAE,YAAY,CAAA,EAAA,CAAA,CAAA;2FAI3B,WAAW,EAAA,UAAA,EAAA,CAAA;kBANvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE,CAAC,cAAc,EAAE,uBAAuB,CAAC;AACvD,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;AACrC,oBAAA,OAAO,EAAE,CAAC,cAAc,EAAE,uBAAuB,CAAC;AAClD,oBAAA,SAAS,EAAE,CAAC,YAAY,EAAE,uBAAuB,CAAC;iBACrD,CAAA;;;ACnBD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-alert.mjs","sources":["../../../../libs/core/src/lib/alert/alert-utils/alert-config.ts","../../../../libs/core/src/lib/alert/alert-utils/alert-ref.ts","../../../../libs/core/src/lib/alert/alert.component.ts","../../../../libs/core/src/lib/alert/alert.component.html","../../../../libs/core/src/lib/alert/alert-utils/alert-animations.ts","../../../../libs/core/src/lib/alert/alert-utils/alert-container.component.ts","../../../../libs/core/src/lib/alert/alert-service/alert.service.ts","../../../../libs/core/src/lib/alert/alert.module.ts","../../../../libs/core/src/lib/alert/fundamental-ngx-core-alert.ts"],"sourcesContent":["import { Nullable, DynamicComponentConfig } from '@fundamental-ngx/cdk/utils';\n\n/**\n * @deprecated\n * Alert component is depricated since version 0.16.0\n * Message Strip component should be used instead.\n *\n * Configuration for opening an alert with the AlertService.\n */\nexport class AlertConfig implements DynamicComponentConfig {\n /** Whether the alert is dismissible. */\n dismissible = true;\n\n /** The type of the alert. Can be one of *warning*, *success*, *information*, *error* or null. */\n type?: string;\n\n /** Id for the alert component. If omitted, a unique one is generated. */\n id?: string;\n\n /** Width of the alert. */\n width = '33vw';\n\n /** Minimum width of the alert. */\n minWidth = '300px';\n\n /** Data being injected into the child component or template. */\n data?: any;\n\n /** Duration of time *in milliseconds* that the alert will be visible. Set to -1 for indefinite. */\n duration = 10000;\n\n /** Whether the alert should stay open if the mouse is hovering over it. */\n mousePersist = false;\n\n /** Id of the element that labels the alert. */\n ariaLabelledBy?: Nullable<string>;\n\n /** Aria label for the alert component element. */\n ariaLabel?: Nullable<string>;\n\n /** The container that the Alert is appended to. By default, it is appended to the body. */\n container?: HTMLElement | 'body' = 'body';\n}\n","import { Observable, Subject } from 'rxjs';\n\n/**\n * @deprecated\n * Alert component is depricated since version 0.16.0\n * Message Strip component should be used instead.\n *\n * Reference to an alert component generated via the AlertService.\n * It can be injected into the content component in the same way a service would be injected.\n * For a template, add let-alert to your ng-template tag. Now using *alert* in the template refers to this class.\n */\nexport class AlertRef {\n /** @hidden */\n private readonly _afterDismissed: Subject<any> = new Subject<any>();\n\n /** Observable that is triggered when the alert is dismissed. */\n public afterDismissed: Observable<any> = this._afterDismissed.asObservable();\n\n /** Data passed from the service open method. */\n public data: any;\n\n /**\n * Dismisses the alert.\n *\n * @param reason Data passed back to the calling component through the AfterDismissed observable.\n */\n dismiss(reason?: any): void {\n this._afterDismissed.next(reason);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n HostListener,\n Input,\n NgZone,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { AbstractFdNgxClass, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { AlertRef } from './alert-utils/alert-ref';\nimport { AlertConfig } from './alert-utils/alert-config';\nimport { MessageStripType } from '@fundamental-ngx/core/message-strip';\n\nlet alertUniqueId = 0;\n\n/**\n * @deprecated\n * Alert component is deprecated since version 0.16.0\n * Message Strip component should be used instead.\n *\n * The component that represents an alert. It can be only be used inline.\n * If the AlertService is used, this component is auto-generated.\n */\n@Component({\n selector: 'fd-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AlertComponent extends AbstractFdNgxClass implements OnInit, AfterViewInit {\n /** @hidden */\n @ViewChild('container', { read: ViewContainerRef })\n containerRef: ViewContainerRef;\n\n /** Whether the alert is dismissible. */\n @Input()\n dismissible = true;\n\n /** The type of the alert. Can be one of *warning*, *success*, *information*, *error* or null. */\n @Input()\n type: MessageStripType;\n\n /** Id for the alert component. If omitted, a unique one is generated. */\n @Input()\n id: string = 'fd-alert-' + alertUniqueId++;\n\n /** Duration of time *in milliseconds* that the alert will be visible. Set to -1 for indefinite. */\n @Input()\n duration = 10000;\n\n /** Whether the alert should stay open if the mouse is hovering over it. */\n @Input()\n mousePersist = false;\n\n /** Id of the element that labels the alert. */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** Aria label for the alert component element. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Aria label for the dismiss button. */\n @Input()\n dismissLabel = 'Dismiss';\n\n /** Width of the alert. */\n @Input()\n width: string;\n\n /** Minimum width of the alert. */\n @Input()\n minWidth: string;\n\n /** Alternative way of passing in a message to the alert. */\n @Input()\n message: string;\n\n /** Event fired when the alert is dismissed. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onDismiss: EventEmitter<void> = new EventEmitter<void>();\n\n /** @hidden */\n mouseInAlert = false;\n\n /** @hidden */\n componentRef: ComponentRef<any> | EmbeddedViewRef<any>;\n\n /** @hidden */\n childContent: Type<any> | TemplateRef<any> | string | undefined = undefined;\n\n /** @hidden */\n constructor(\n private elRef: ElementRef,\n private cdRef: ChangeDetectorRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n private ngZone: NgZone,\n @Optional() private alertConfig: AlertConfig,\n @Optional() private alertRef: AlertRef\n ) {\n super(elRef);\n this._setAlertConfig(alertConfig);\n this._setProperties();\n }\n\n /** @hidden */\n ngOnInit(): void {\n if (this.alertRef) {\n this.open();\n }\n this._setProperties();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this.childContent) {\n if (this.childContent instanceof Type) {\n this.loadFromComponent(this.childContent);\n } else if (this.childContent instanceof TemplateRef) {\n this.loadFromTemplate(this.childContent);\n } else {\n this.loadFromString(this.childContent);\n }\n this.cdRef.detectChanges();\n }\n }\n\n /**\n * Dismisses the alert. If the alert was generated via the AlertService, it is removed from the DOM.\n * Otherwise, it sets the display value to none. Fires the onDismiss event.\n *\n * @param manualDismiss Set to true to skip the dismiss animation.\n * @param reason Data to pass back to the calling component. Only usable if alert is opened using the Service.\n *\n */\n dismiss(reason?: any, manualDismiss: boolean = false): void {\n if (manualDismiss) {\n this.elRef.nativeElement.classList.add('fd-has-display-none');\n this.elRef.nativeElement.classList.remove('fd-has-display-block');\n }\n if (this.alertRef) {\n this.alertRef.dismiss(reason);\n } else {\n this.elRef.nativeElement.classList.add('fd-has-display-none');\n this.elRef.nativeElement.classList.remove('fd-has-display-block');\n }\n this.onDismiss.emit();\n }\n\n /**\n * Opens the alert.\n */\n open(): void {\n if (!this.alertRef) {\n if (this.elRef.nativeElement.style.display === 'block') {\n return;\n }\n this.elRef.nativeElement.classList.remove('fd-has-display-none');\n this.elRef.nativeElement.classList.add('fd-has-display-block');\n }\n\n if (this.duration >= 0) {\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n if (this.mousePersist) {\n const wait = (): void => {\n if (this.mouseInAlert === true) {\n setTimeout(wait, 500);\n } else {\n this.ngZone.run(() => this.dismiss());\n }\n };\n wait();\n } else {\n this.ngZone.run(() => this.dismiss());\n }\n }, this.duration);\n });\n }\n }\n\n /** @hidden */\n @HostListener('mouseenter', ['$event'])\n @HostListener('mouseleave', ['$event'])\n handleAlertMouseEvent(event): void {\n if (event.type === 'mouseenter') {\n this.mouseInAlert = true;\n } else if (event.type === 'mouseleave') {\n this.mouseInAlert = false;\n }\n }\n\n /** @hidden */\n _setProperties(): void {\n this._addClassToElement('fd-alert');\n if (this.type) {\n this._addClassToElement('fd-alert--' + this.type);\n }\n if (this.dismissible) {\n this._addClassToElement('fd-alert--dismissible');\n }\n }\n\n /** @hidden */\n private loadFromTemplate(template: TemplateRef<any>): void {\n const context = {\n $implicit: this.alertRef\n };\n this.componentRef = this.containerRef.createEmbeddedView(template, context);\n }\n\n /** @hidden */\n private loadFromComponent(componentType: Type<any>): void {\n this.containerRef.clear();\n this.componentRef = this.containerRef.createComponent(componentType);\n }\n\n /** @hidden */\n private loadFromString(contentString: string): void {\n this.containerRef.clear();\n this.message = contentString;\n }\n\n /** @hidden */\n private _setAlertConfig(alertConfig: AlertConfig): void {\n Object.keys(alertConfig || {})\n .filter((key) => key !== 'data' && key !== 'container')\n .forEach((key) => (this[key] = alertConfig[key]));\n }\n}\n","<fd-message-strip\n [dismissLabel]=\"dismissLabel\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [ariaLabel]=\"ariaLabel\"\n [width]=\"width\"\n [minWidth]=\"minWidth\"\n [dismissible]=\"dismissible\"\n [id]=\"id\"\n [type]=\"type\"\n (onDismiss)=\"onDismiss.emit($event)\"\n>\n <ng-container #container>{{ message }}</ng-container>\n <ng-content></ng-content>\n</fd-message-strip>\n","import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\n/**\n * @deprecated\n * Alert component is depricated since version 0.16.0\n * Message Strip component should be used instead.\n */\nexport const alertFadeNgIf: AnimationTriggerMetadata = trigger('fadeAlertNgIf', [\n transition(':enter', [\n style({\n opacity: 0\n }),\n animate(\n '250ms ease-in-out',\n style({\n opacity: 1\n })\n )\n ]),\n transition(':leave', [\n style({\n opacity: 1,\n marginTop: '*',\n paddingTop: '*',\n paddingBottom: '*',\n height: '*',\n overflow: 'hidden'\n }),\n animate(\n '400ms ease-in-out',\n style({\n opacity: 0,\n marginTop: 0,\n paddingTop: 0,\n paddingBottom: 0,\n height: 0,\n overflow: 'hidden'\n })\n )\n ])\n]);\n\nexport const alertContainerNgIf: AnimationTriggerMetadata = trigger('alertContainerNgIf', [\n transition(':leave', [style({ opacity: 1 }), animate('400ms ease-in-out', style({ opacity: 0 }))])\n]);\n","import { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\nimport { alertContainerNgIf } from './alert-animations';\n\n/**\n * @deprecated\n * Alert component is depricated since version 0.16.0\n * Message Strip component should be used instead.\n */\n@Component({\n selector: 'fd-alert-container',\n template: ``,\n styles: [\n `\n .fd-alert-container {\n position: fixed;\n display: flex;\n flex-direction: column;\n z-index: 5000;\n align-items: center;\n top: 0;\n right: 50%;\n left: 50%;\n }\n `\n ],\n host: {\n '[@alertContainerNgIf]': ''\n },\n animations: [alertContainerNgIf],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AlertContainerComponent {\n /** @hidden */\n @HostBinding('class.fd-alert-container')\n fdAlertContainerClass = true;\n}\n","import { Injectable, ComponentRef, TemplateRef, Type } from '@angular/core';\nimport { AlertComponent } from '../alert.component';\nimport { AlertContainerComponent } from '../alert-utils/alert-container.component';\nimport { AlertConfig } from '../alert-utils/alert-config';\nimport { DynamicComponentService } from '@fundamental-ngx/cdk/utils';\nimport { AlertRef } from '../alert-utils/alert-ref';\n\n/**\n * @deprecated\n * Alert component is depricated since version 0.16.0\n * Message Strip component should be used instead.\n *\n * Service used to dynamically generate an alert as an overlay.\n */\n@Injectable()\nexport class AlertService {\n /** @hidden */\n private alerts: ComponentRef<AlertComponent>[] = [];\n\n /** @hidden */\n private alertContainerRef?: ComponentRef<AlertContainerComponent>;\n\n /** @hidden */\n constructor(private dynamicComponentService: DynamicComponentService) {}\n\n /**\n * Returns true if there are some alerts currently open. False otherwise.\n */\n public hasOpenAlerts(): boolean {\n return this.alerts && this.alerts.length > 0;\n }\n\n /**\n * Opens an alert component with a content of type TemplateRef, Component Type or String.\n * @param content Content of the alert component.\n * @param alertConfig Configuration of the alert component.\n */\n public open(\n content: TemplateRef<any> | Type<any> | string,\n alertConfig: AlertConfig = new AlertConfig()\n ): AlertRef {\n // Get default values from alert model\n alertConfig = Object.assign(new AlertConfig(), alertConfig);\n\n // Instantiate alert ref service\n const service: AlertRef = new AlertRef();\n service.data = alertConfig.data;\n\n // If empty or undefined alert array, create container\n if (!this.alerts || this.alerts.length === 0 || !this.alertContainerRef) {\n this.alertContainerRef = this.dynamicComponentService.createDynamicComponent<AlertContainerComponent>(\n content,\n AlertContainerComponent,\n alertConfig\n );\n }\n\n // Define Container to put backdrop and component to container\n alertConfig.container = this.alertContainerRef.location.nativeElement;\n\n const component = this.dynamicComponentService.createDynamicComponent<AlertComponent>(\n content,\n AlertComponent,\n alertConfig,\n { services: [service, alertConfig] }\n );\n\n component.location.nativeElement.style.marginTop = '10px';\n\n // Subscription to close alert from ref\n const refSub = service.afterDismissed.subscribe(() => {\n this.destroyAlertComponent(component);\n refSub.unsubscribe();\n });\n\n // Log new component\n this.alerts.push(component);\n return service;\n }\n\n /**\n * Dismisses all service-opened alerts.\n */\n public dismissAll(): void {\n this.alerts.forEach((ref) => {\n this.destroyAlertComponent(ref);\n });\n }\n\n /** @hidden */\n private destroyAlertComponent(alert: ComponentRef<AlertComponent>): void {\n this.alerts = this.alerts.filter((item) => item && item !== alert);\n this.dynamicComponentService.destroyComponent(alert);\n\n if (this.alertContainerRef && (!this.alerts || this.alerts.length === 0)) {\n this.destroyAlertContainer();\n }\n }\n\n /** @hidden */\n private destroyAlertContainer(): void {\n this.alertContainerRef && this.dynamicComponentService.destroyComponent(this.alertContainerRef);\n this.alertContainerRef = undefined;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { AlertComponent } from './alert.component';\nimport { AlertService } from './alert-service/alert.service';\nimport { AlertContainerComponent } from './alert-utils/alert-container.component';\nimport { DynamicComponentService } from '@fundamental-ngx/cdk/utils';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { MessageStripComponent } from '@fundamental-ngx/core/message-strip';\n\n/**\n * @deprecated\n * Alert component is depricated since version 0.16.0\n * Message Strip component should be used instead.\n */\n@NgModule({\n declarations: [AlertComponent, AlertContainerComponent],\n imports: [CommonModule, ButtonModule, MessageStripComponent],\n exports: [AlertComponent, AlertContainerComponent],\n providers: [AlertService, DynamicComponentService]\n})\nexport class AlertModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.AlertConfig","i2.AlertRef"],"mappings":"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"}
|
|
@@ -290,7 +290,7 @@ class AvatarGroupOverflowBodyDirective {
|
|
|
290
290
|
if (KeyUtil.isKeyCode(event, TAB)) {
|
|
291
291
|
const index = this.overflowItems
|
|
292
292
|
.toArray()
|
|
293
|
-
.findIndex((item) => item.elementRef
|
|
293
|
+
.findIndex((item) => item.elementRef.nativeElement === event.target);
|
|
294
294
|
if (index !== -1) {
|
|
295
295
|
this._keyboardEventsManager.setActiveItem(index);
|
|
296
296
|
}
|
|
@@ -375,8 +375,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
|
|
|
375
375
|
|
|
376
376
|
class AvatarGroupOverflowButtonDirective {
|
|
377
377
|
/** @hidden */
|
|
378
|
-
constructor(
|
|
379
|
-
this.
|
|
378
|
+
constructor(elementRef) {
|
|
379
|
+
this.elementRef = elementRef;
|
|
380
380
|
/** The size of the overflow button.
|
|
381
381
|
* Should be the same as the Avatar Group and Avatar size.
|
|
382
382
|
* Options include: *xs*, *s*, *m*, *l* and *xl* (default: *s*). */
|
|
@@ -404,10 +404,6 @@ class AvatarGroupOverflowButtonDirective {
|
|
|
404
404
|
];
|
|
405
405
|
}
|
|
406
406
|
/** @hidden */
|
|
407
|
-
elementRef() {
|
|
408
|
-
return this._elementRef;
|
|
409
|
-
}
|
|
410
|
-
/** @hidden */
|
|
411
407
|
_getMoreButtonColorCssClass() {
|
|
412
408
|
if (this.color === 'random') {
|
|
413
409
|
return `fd-avatar-group__more-button--accent-color-${getRandomColorAccent()}`;
|
|
@@ -455,20 +451,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
|
|
|
455
451
|
|
|
456
452
|
class AvatarGroupFocusableAvatarDirective {
|
|
457
453
|
/** @hidden */
|
|
458
|
-
constructor(
|
|
459
|
-
this.
|
|
454
|
+
constructor(elementRef, _component) {
|
|
455
|
+
this.elementRef = elementRef;
|
|
460
456
|
this._component = _component;
|
|
461
457
|
/** Tabindex of the Avatar. */
|
|
462
458
|
this.tabindex = 0;
|
|
463
459
|
}
|
|
464
|
-
/** @hidden */
|
|
465
|
-
elementRef() {
|
|
466
|
-
return this._elementRef;
|
|
467
|
-
}
|
|
468
|
-
/** @hidden */
|
|
469
|
-
get _element() {
|
|
470
|
-
return this._elementRef.nativeElement;
|
|
471
|
-
}
|
|
472
460
|
/** Handler for mouse events */
|
|
473
461
|
onClick() {
|
|
474
462
|
if (this._component) {
|
|
@@ -477,7 +465,7 @@ class AvatarGroupFocusableAvatarDirective {
|
|
|
477
465
|
}
|
|
478
466
|
/** @hidden */
|
|
479
467
|
focus() {
|
|
480
|
-
this.
|
|
468
|
+
this.elementRef.nativeElement.focus();
|
|
481
469
|
}
|
|
482
470
|
}
|
|
483
471
|
AvatarGroupFocusableAvatarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: AvatarGroupFocusableAvatarDirective, deps: [{ token: i0.ElementRef }, { token: forwardRef(() => AvatarGroupOverflowBodyDirective), optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-avatar-group.mjs","sources":["../../../../libs/core/src/lib/avatar-group/tokens.ts","../../../../libs/core/src/lib/avatar-group/directives/avatar-group-item.directive.ts","../../../../libs/core/src/lib/avatar-group/avatar-group.component.ts","../../../../libs/core/src/lib/avatar-group/avatar-group.component.html","../../../../libs/core/src/lib/avatar-group/directives/avatar-group-overflow-body.directive.ts","../../../../libs/core/src/lib/avatar-group/directives/avatar-group-overflow-item.directive.ts","../../../../libs/core/src/lib/avatar-group/directives/avatar-group-overflow-button.directive.ts","../../../../libs/core/src/lib/avatar-group/directives/avatar-group-overflow-button-text.directive.ts","../../../../libs/core/src/lib/avatar-group/directives/avatar-group-focusable-avatar.directive.ts","../../../../libs/core/src/lib/avatar-group/directives/avatar-group-popover-control.directive.ts","../../../../libs/core/src/lib/avatar-group/avatar-group.module.ts","../../../../libs/core/src/lib/avatar-group/fundamental-ngx-core-avatar-group.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { FocusableOption } from '@angular/cdk/a11y';\nimport { HasElementRef } from '@fundamental-ngx/cdk/utils';\nimport { AvatarGroupInterface } from './avatar-group.interface';\n\nexport type FocusableWithElementRef = FocusableOption & HasElementRef;\n\nexport const AVATAR_GROUP_FOCUSABLE_AVATAR_DIRECTIVE = new InjectionToken<FocusableWithElementRef>(\n 'AvatarGroupFocusableAvatarDirective'\n);\n\nexport const AVATAR_GROUP_COMPONENT = new InjectionToken<AvatarGroupInterface>('AvatarGroupComponent');\n","import { Directive, ElementRef, HostListener, Inject, Optional } from '@angular/core';\nimport { FocusableOption } from '@angular/cdk/a11y';\nimport { AvatarGroupInterface } from '../avatar-group.interface';\nimport { AVATAR_GROUP_COMPONENT } from '../tokens';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-avatar-group-item]',\n host: { class: 'fd-avatar-group__item' }\n})\nexport class AvatarGroupItemDirective implements FocusableOption {\n /** Item disable state */\n disabled = false;\n\n /** @hidden */\n constructor(\n private readonly _elementRef: ElementRef<HTMLElement>,\n @Optional() @Inject(AVATAR_GROUP_COMPONENT) private readonly _component: AvatarGroupInterface\n ) {}\n\n /** @hidden */\n get _element(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n\n /** Handler for mouse events */\n @HostListener('click')\n onClick(): void {\n if (this._component) {\n this._component._setActiveItem(this);\n }\n }\n\n /** @hidden */\n focus(): void {\n this._element.focus();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n forwardRef,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ViewportRuler } from '@angular/cdk/overlay';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW, TAB } from '@angular/cdk/keycodes';\nimport { of, Subscription } from 'rxjs';\nimport { delay } from 'rxjs/operators';\n\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { ColorAccent, KeyUtil, RtlService, Size } from '@fundamental-ngx/cdk/utils';\nimport { AvatarGroupItemDirective } from './directives/avatar-group-item.directive';\nimport { AvatarGroupInterface } from './avatar-group.interface';\nimport { AVATAR_GROUP_COMPONENT } from './tokens';\n\nexport type AvatarGroupType = 'group' | 'individual';\nexport type AvatarGroupOverflowButtonColor = 'neutral' | 'random' | ColorAccent;\n\nlet avatarGroupCount = 0;\n\n@Component({\n selector: 'fd-avatar-group',\n templateUrl: './avatar-group.component.html',\n styleUrls: ['./avatar-group.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AVATAR_GROUP_COMPONENT,\n useExisting: forwardRef(() => AvatarGroupComponent)\n }\n ]\n})\nexport class AvatarGroupComponent implements AvatarGroupInterface, OnChanges, OnInit, AfterViewInit, OnDestroy {\n /** Id of the Avatar Group. */\n @Input()\n id = `fd-avatar-group-${avatarGroupCount++}`;\n\n /** Apply user custom class. */\n @Input()\n class: string;\n\n /** The size of the Avatar Group. Options include: *xs*, *s*, *m*, *l* and *xl* (default: *s*). */\n @Input()\n size: Size = 's';\n\n /** The type of the Avatar Group. Options include: *group* and *individual* (default: *group*). */\n @Input()\n type: AvatarGroupType = 'group';\n\n /** Aria-label for Avatar Group. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Counter for all avatars. */\n allItemsCount = 0;\n\n /** Counter for visible in overflow popover avatars. */\n overflowItemsCount = 0;\n\n /** @hidden Avatar Group items. */\n @ContentChildren(AvatarGroupItemDirective, { descendants: true })\n mainItems: QueryList<AvatarGroupItemDirective>;\n\n /** @hidden */\n @ViewChild('avatarGroupContainer')\n avatarGroupContainer: ElementRef<HTMLDivElement>;\n\n /** @hidden */\n rootClassNames: Record<string, boolean | undefined | null>;\n\n /** @hidden */\n get isGroupType(): boolean {\n return this.type === 'group';\n }\n\n /** @hidden */\n private get _avatarGroupWidth(): number {\n return this.avatarGroupContainer?.nativeElement?.offsetWidth;\n }\n\n /** @hidden */\n private get _avatarGroupItemWidth(): number {\n return this.mainItems.first?._element.offsetWidth ?? 0;\n }\n\n /** @hidden */\n private get _avatarGroupItemWithMarginsWidth(): number {\n if (!this.mainItems.first) {\n return this._avatarGroupItemWidth;\n }\n\n const elementStyles = getComputedStyle(this.mainItems.first._element);\n\n return (\n this._avatarGroupItemWidth +\n parseInt(elementStyles.marginLeft, 10) +\n parseInt(elementStyles.marginRight, 10)\n );\n }\n\n /** @hidden FocusKeyManager instance */\n private _keyboardEventsManager: FocusKeyManager<AvatarGroupItemDirective>;\n\n /** @hidden */\n private readonly _subscription = new Subscription();\n\n /** @hidden handles rtl service */\n private _dir: 'ltr' | 'rtl' | null = 'ltr';\n\n /** @hidden */\n constructor(private readonly _viewportRuler: ViewportRuler, @Optional() private _rtlService: RtlService) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._subscription.add(this._viewportRuler.change().subscribe(() => this._onResize()));\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this._assignCssClasses();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._reset();\n\n this._subscription.add(\n of(true)\n .pipe(delay(5))\n .subscribe(() => this._collapseItems())\n );\n\n this._listenForItemChanges();\n this._setKeyboardEventsManager();\n this._subscribeToRtl();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscription.unsubscribe();\n this._keyboardEventsManager.destroy();\n }\n\n /** @hidden */\n @HostListener('keyup', ['$event'])\n keyUpHandler(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, TAB)) {\n const index = this.mainItems.toArray().findIndex((item) => item._element === event.target);\n if (index !== -1) {\n this._keyboardEventsManager.setActiveItem(index);\n }\n }\n\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW])) {\n event.preventDefault();\n\n // passing the event to key manager so we get a change fired\n this._keyboardEventsManager.onKeydown(event);\n }\n }\n\n /** @hidden */\n _setActiveItem(item: AvatarGroupItemDirective): void {\n this._keyboardEventsManager.setActiveItem(item);\n }\n\n /** @hidden */\n private _onResize(): void {\n this._reset();\n this._collapseItems();\n }\n\n /** @hidden */\n private _reset(): void {\n this.allItemsCount = this.mainItems.length;\n this.overflowItemsCount = 0;\n\n this.mainItems.forEach((it) => {\n it._element.style.display = 'inline-block';\n it.disabled = false;\n });\n }\n\n /** @hidden */\n private _collapseItems(): void {\n const allItemsCounter = this.mainItems?.length || 0;\n let contentWidth = 0;\n let idx = 0;\n const avatarGroupItemWidth = this._avatarGroupItemWidth;\n const avatarGroupItemWithMarginsWidth = this._avatarGroupItemWithMarginsWidth;\n\n while (idx < allItemsCounter) {\n const newContentWidth =\n idx === 0 && this.isGroupType\n ? contentWidth + avatarGroupItemWidth\n : contentWidth + avatarGroupItemWithMarginsWidth;\n\n if (newContentWidth >= this._avatarGroupWidth) {\n // -1 because the last element in the loop will be replaced by the overflow button\n const newIdx = idx - 1;\n this.overflowItemsCount = allItemsCounter - newIdx;\n const mainItemsToHide = this.mainItems.toArray().slice(newIdx);\n mainItemsToHide.forEach((it) => {\n it._element.style.display = 'none';\n it.disabled = true;\n });\n\n break;\n }\n\n contentWidth = newContentWidth;\n idx++;\n }\n }\n\n /** @hidden */\n private _listenForItemChanges(): void {\n this._subscription.add(this.mainItems.changes.subscribe(() => this._onResize()));\n }\n\n /** @hidden */\n private _assignCssClasses(): void {\n this.rootClassNames = {\n 'fd-avatar-group': true,\n [`fd-avatar-group--${this.type}-type`]: !!this.type,\n [`fd-avatar-group--${this.size}`]: !!this.size,\n [this.class]: !!this.class\n };\n }\n\n /** @hidden */\n private _setKeyboardEventsManager(): void {\n this._keyboardEventsManager?.destroy();\n this._keyboardEventsManager = new FocusKeyManager(this.mainItems)\n .withWrap()\n .withHorizontalOrientation(this._dir);\n }\n\n /** @hidden Rtl change subscription */\n private _subscribeToRtl(): void {\n if (!this._rtlService) {\n return;\n }\n\n const rtlSub = this._rtlService.rtl.subscribe((isRtl) => {\n this._dir = isRtl ? 'rtl' : 'ltr';\n\n this._keyboardEventsManager = this._keyboardEventsManager.withHorizontalOrientation(this._dir);\n });\n\n this._subscription.add(rtlSub);\n }\n}\n","<div #avatarGroupContainer [class]=\"rootClassNames\" [id]=\"id\" [attr.aria-label]=\"ariaLabel\">\n <ng-content></ng-content>\n</div>\n","import {\n AfterViewInit,\n ContentChildren,\n Directive,\n HostListener,\n Input,\n OnDestroy,\n Optional,\n QueryList\n} from '@angular/core';\nimport { FocusableOption, FocusKeyManager } from '@angular/cdk/a11y';\nimport { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, TAB, UP_ARROW } from '@angular/cdk/keycodes';\nimport { Subscription } from 'rxjs';\n\nimport { HasElementRef, KeyUtil, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { AVATAR_GROUP_FOCUSABLE_AVATAR_DIRECTIVE, FocusableWithElementRef } from '../tokens';\n\n// import { AvatarGroupFocusableAvatarDirective } from './avatar-group-focusable-avatar.directive';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-avatar-group-overflow-body]',\n host: {\n class: 'fd-avatar-group__overflow-body',\n '[class.fd-avatar-group__overflow-body--no-padding]': 'noPadding',\n '[class.fd-avatar-group__overflow-body--no-horizontal-scroll]': 'noHorizontalScroll',\n '[class.fd-avatar-group__overflow-body--no-vertical-scroll]': 'noVerticalScroll'\n }\n})\nexport class AvatarGroupOverflowBodyDirective implements AfterViewInit, OnDestroy {\n /** Remove the padding from the overflow body. */\n @Input()\n noPadding = false;\n\n /** Hide horizontal scrollbar from the overflow body. */\n @Input()\n noHorizontalScroll = true;\n\n /** Hide vertical scrollbar from the overflow body. */\n @Input()\n noVerticalScroll = true;\n\n /** @hidden Avatar Group Overflow items. */\n @ContentChildren(AVATAR_GROUP_FOCUSABLE_AVATAR_DIRECTIVE, { descendants: true })\n overflowItems: QueryList<FocusableWithElementRef>;\n\n /** @hidden FocusKeyManager instance */\n private _keyboardEventsManager: FocusKeyManager<HasElementRef>;\n\n /** @hidden */\n private readonly _subscription = new Subscription();\n\n /** @hidden handles rtl service */\n private _dir: 'ltr' | 'rtl' | null = 'ltr';\n\n /** @hidden */\n constructor(@Optional() private _rtlService: RtlService) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._listenForItemChanges();\n\n this._setKeyboardEventsManager();\n\n this._subscribeToRtl();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscription.unsubscribe();\n this._keyboardEventsManager?.destroy();\n }\n\n /** @hidden */\n @HostListener('keyup', ['$event'])\n keyUpHandler(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, TAB)) {\n const index = this.overflowItems\n .toArray()\n .findIndex((item) => item.elementRef().nativeElement === event.target);\n if (index !== -1) {\n this._keyboardEventsManager.setActiveItem(index);\n }\n }\n\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW])) {\n // passing the event to key manager so we get a change fired\n this._keyboardEventsManager.onKeydown(event);\n }\n }\n\n /** @hidden */\n _setActiveItem(item: FocusableOption & HasElementRef): void {\n this._keyboardEventsManager.setActiveItem(item);\n }\n\n /** @hidden */\n private _listenForItemChanges(): void {\n this.overflowItems.changes.subscribe(() => this._setKeyboardEventsManager());\n }\n\n /** @hidden */\n private _setKeyboardEventsManager(): void {\n this._keyboardEventsManager?.destroy();\n this._keyboardEventsManager = new FocusKeyManager(this.overflowItems)\n .withWrap()\n .withHorizontalOrientation(this._dir);\n\n this._keyboardEventsManager.setFirstItemActive();\n }\n\n /** @hidden Rtl change subscription */\n private _subscribeToRtl(): void {\n if (!this._rtlService) {\n return;\n }\n\n const rtlSub = this._rtlService.rtl.subscribe((isRtl) => {\n this._dir = isRtl ? 'rtl' : 'ltr';\n this._keyboardEventsManager.withHorizontalOrientation(this._dir);\n });\n\n this._subscription.add(rtlSub);\n }\n}\n","import { Directive } from '@angular/core';\n\nimport { AvatarGroupItemDirective } from './avatar-group-item.directive';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-avatar-group-overflow-item]'\n})\nexport class AvatarGroupOverflowItemDirective extends AvatarGroupItemDirective {}\n","import { Directive, ElementRef, Input, OnChanges, OnInit } from '@angular/core';\n\nimport { Size } from '@fundamental-ngx/cdk/utils';\nimport { applyCssClass } from '@fundamental-ngx/cdk/utils';\nimport { getRandomColorAccent } from '@fundamental-ngx/cdk/utils';\nimport { CssClassBuilder } from '@fundamental-ngx/cdk/utils';\n\nimport { AvatarGroupOverflowButtonColor } from '../avatar-group.component';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-avatar-group-overflow-button]'\n})\nexport class AvatarGroupOverflowButtonDirective implements OnInit, OnChanges, CssClassBuilder {\n /** User's custom classes. */\n @Input()\n class: string;\n\n /** The size of the overflow button.\n * Should be the same as the Avatar Group and Avatar size.\n * Options include: *xs*, *s*, *m*, *l* and *xl* (default: *s*). */\n @Input()\n size: Size = 's';\n\n /** A number from 1 to 10 representing the background color of the Avatar Group's overflow button.\n * Options include: *neutral*, *random*, *1*, *2*, *3*, *4*, *5*, *6*, *7*, *8*, *9*, *10* (default: *neutral*). */\n @Input()\n color: AvatarGroupOverflowButtonColor = 'neutral';\n\n /** @hidden */\n constructor(private readonly _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n 'fd-button',\n 'fd-avatar-group__more-button',\n (this.color && this._getMoreButtonColorCssClass()) || '',\n this.size ? `fd-avatar-group__more-button--${this.size}` : '',\n this.class\n ];\n }\n\n /** @hidden */\n elementRef(): ElementRef<HTMLElement> {\n return this._elementRef;\n }\n\n /** @hidden */\n private _getMoreButtonColorCssClass(): string | null {\n if (this.color === 'random') {\n return `fd-avatar-group__more-button--accent-color-${getRandomColorAccent()}`;\n }\n\n if (!Number.isNaN(parseInt(this.color as string, 10))) {\n return `fd-avatar-group__more-button--accent-color-${this.color}`;\n }\n return null;\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-avatar-group-overflow-button-text]',\n host: { class: 'fd-button__text fd-avatar-group__button-text' }\n})\nexport class AvatarGroupOverflowButtonTextDirective {}\n","import { Directive, ElementRef, Optional, HostBinding, HostListener, Input, Inject, forwardRef } from '@angular/core';\nimport { FocusableOption } from '@angular/cdk/a11y';\n\nimport { HasElementRef } from '@fundamental-ngx/cdk/utils';\n\nimport { AvatarGroupOverflowBodyDirective } from './avatar-group-overflow-body.directive';\nimport { AvatarGroupInterface } from '../avatar-group.interface';\nimport { AVATAR_GROUP_FOCUSABLE_AVATAR_DIRECTIVE } from '../tokens';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-avatar-group-focusable-avatar]',\n host: { class: 'fd-avatar-group__focusable-avatar' },\n providers: [\n {\n provide: AVATAR_GROUP_FOCUSABLE_AVATAR_DIRECTIVE,\n useExisting: forwardRef(() => AvatarGroupFocusableAvatarDirective)\n }\n ]\n})\nexport class AvatarGroupFocusableAvatarDirective implements FocusableOption, HasElementRef {\n /** Tabindex of the Avatar. */\n @Input()\n @HostBinding('attr.tabindex')\n tabindex = 0;\n\n /** @hidden */\n constructor(\n private readonly _elementRef: ElementRef<HTMLElement>,\n @Optional()\n @Inject(forwardRef(() => AvatarGroupOverflowBodyDirective))\n private readonly _component: AvatarGroupInterface\n ) {}\n\n /** @hidden */\n elementRef(): ElementRef {\n return this._elementRef;\n }\n\n /** @hidden */\n get _element(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n\n /** Handler for mouse events */\n @HostListener('click')\n onClick(): void {\n if (this._component) {\n this._component._setActiveItem(this);\n }\n }\n\n /** @hidden */\n focus(): void {\n this._element.focus();\n }\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\n/** Needed to bind specific class to group type popover control. */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-avatar-group-popover-control]',\n host: { class: 'fd-avatar-group__popover-control' }\n})\nexport class AvatarGroupPopoverControlDirective {\n /** Tabindex of the popover control. */\n @Input()\n @HostBinding('attr.tabindex')\n tabindex = 0;\n\n /** Role of the popover control. */\n @Input()\n @HostBinding('attr.role')\n role = 'button';\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { AvatarGroupComponent } from './avatar-group.component';\nimport { AvatarGroupItemDirective } from './directives/avatar-group-item.directive';\nimport { AvatarGroupOverflowBodyDirective } from './directives/avatar-group-overflow-body.directive';\nimport { AvatarGroupOverflowItemDirective } from './directives/avatar-group-overflow-item.directive';\nimport { AvatarGroupOverflowButtonDirective } from './directives/avatar-group-overflow-button.directive';\nimport { AvatarGroupOverflowButtonTextDirective } from './directives/avatar-group-overflow-button-text.directive';\nimport { AvatarGroupFocusableAvatarDirective } from './directives/avatar-group-focusable-avatar.directive';\nimport { AvatarGroupPopoverControlDirective } from './directives/avatar-group-popover-control.directive';\n\n@NgModule({\n imports: [CommonModule],\n exports: [\n AvatarGroupComponent,\n AvatarGroupItemDirective,\n AvatarGroupFocusableAvatarDirective,\n AvatarGroupPopoverControlDirective,\n AvatarGroupOverflowBodyDirective,\n AvatarGroupOverflowItemDirective,\n AvatarGroupOverflowButtonDirective,\n AvatarGroupOverflowButtonTextDirective\n ],\n declarations: [\n AvatarGroupComponent,\n AvatarGroupItemDirective,\n AvatarGroupFocusableAvatarDirective,\n AvatarGroupPopoverControlDirective,\n AvatarGroupOverflowBodyDirective,\n AvatarGroupOverflowItemDirective,\n AvatarGroupOverflowButtonDirective,\n AvatarGroupOverflowButtonTextDirective\n ]\n})\nexport class AvatarGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-avatar-group.mjs","sources":["../../../../libs/core/src/lib/avatar-group/tokens.ts","../../../../libs/core/src/lib/avatar-group/directives/avatar-group-item.directive.ts","../../../../libs/core/src/lib/avatar-group/avatar-group.component.ts","../../../../libs/core/src/lib/avatar-group/avatar-group.component.html","../../../../libs/core/src/lib/avatar-group/directives/avatar-group-overflow-body.directive.ts","../../../../libs/core/src/lib/avatar-group/directives/avatar-group-overflow-item.directive.ts","../../../../libs/core/src/lib/avatar-group/directives/avatar-group-overflow-button.directive.ts","../../../../libs/core/src/lib/avatar-group/directives/avatar-group-overflow-button-text.directive.ts","../../../../libs/core/src/lib/avatar-group/directives/avatar-group-focusable-avatar.directive.ts","../../../../libs/core/src/lib/avatar-group/directives/avatar-group-popover-control.directive.ts","../../../../libs/core/src/lib/avatar-group/avatar-group.module.ts","../../../../libs/core/src/lib/avatar-group/fundamental-ngx-core-avatar-group.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { FocusableOption } from '@angular/cdk/a11y';\nimport { HasElementRef } from '@fundamental-ngx/cdk/utils';\nimport { AvatarGroupInterface } from './avatar-group.interface';\n\nexport type FocusableWithElementRef = FocusableOption & HasElementRef;\n\nexport const AVATAR_GROUP_FOCUSABLE_AVATAR_DIRECTIVE = new InjectionToken<FocusableWithElementRef>(\n 'AvatarGroupFocusableAvatarDirective'\n);\n\nexport const AVATAR_GROUP_COMPONENT = new InjectionToken<AvatarGroupInterface>('AvatarGroupComponent');\n","import { Directive, ElementRef, HostListener, Inject, Optional } from '@angular/core';\nimport { FocusableOption } from '@angular/cdk/a11y';\nimport { AvatarGroupInterface } from '../avatar-group.interface';\nimport { AVATAR_GROUP_COMPONENT } from '../tokens';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-avatar-group-item]',\n host: { class: 'fd-avatar-group__item' }\n})\nexport class AvatarGroupItemDirective implements FocusableOption {\n /** Item disable state */\n disabled = false;\n\n /** @hidden */\n constructor(\n private readonly _elementRef: ElementRef<HTMLElement>,\n @Optional() @Inject(AVATAR_GROUP_COMPONENT) private readonly _component: AvatarGroupInterface\n ) {}\n\n /** @hidden */\n get _element(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n\n /** Handler for mouse events */\n @HostListener('click')\n onClick(): void {\n if (this._component) {\n this._component._setActiveItem(this);\n }\n }\n\n /** @hidden */\n focus(): void {\n this._element.focus();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n forwardRef,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ViewportRuler } from '@angular/cdk/overlay';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW, TAB } from '@angular/cdk/keycodes';\nimport { of, Subscription } from 'rxjs';\nimport { delay } from 'rxjs/operators';\n\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { ColorAccent, KeyUtil, RtlService, Size } from '@fundamental-ngx/cdk/utils';\nimport { AvatarGroupItemDirective } from './directives/avatar-group-item.directive';\nimport { AvatarGroupInterface } from './avatar-group.interface';\nimport { AVATAR_GROUP_COMPONENT } from './tokens';\n\nexport type AvatarGroupType = 'group' | 'individual';\nexport type AvatarGroupOverflowButtonColor = 'neutral' | 'random' | ColorAccent;\n\nlet avatarGroupCount = 0;\n\n@Component({\n selector: 'fd-avatar-group',\n templateUrl: './avatar-group.component.html',\n styleUrls: ['./avatar-group.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AVATAR_GROUP_COMPONENT,\n useExisting: forwardRef(() => AvatarGroupComponent)\n }\n ]\n})\nexport class AvatarGroupComponent implements AvatarGroupInterface, OnChanges, OnInit, AfterViewInit, OnDestroy {\n /** Id of the Avatar Group. */\n @Input()\n id = `fd-avatar-group-${avatarGroupCount++}`;\n\n /** Apply user custom class. */\n @Input()\n class: string;\n\n /** The size of the Avatar Group. Options include: *xs*, *s*, *m*, *l* and *xl* (default: *s*). */\n @Input()\n size: Size = 's';\n\n /** The type of the Avatar Group. Options include: *group* and *individual* (default: *group*). */\n @Input()\n type: AvatarGroupType = 'group';\n\n /** Aria-label for Avatar Group. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Counter for all avatars. */\n allItemsCount = 0;\n\n /** Counter for visible in overflow popover avatars. */\n overflowItemsCount = 0;\n\n /** @hidden Avatar Group items. */\n @ContentChildren(AvatarGroupItemDirective, { descendants: true })\n mainItems: QueryList<AvatarGroupItemDirective>;\n\n /** @hidden */\n @ViewChild('avatarGroupContainer')\n avatarGroupContainer: ElementRef<HTMLDivElement>;\n\n /** @hidden */\n rootClassNames: Record<string, boolean | undefined | null>;\n\n /** @hidden */\n get isGroupType(): boolean {\n return this.type === 'group';\n }\n\n /** @hidden */\n private get _avatarGroupWidth(): number {\n return this.avatarGroupContainer?.nativeElement?.offsetWidth;\n }\n\n /** @hidden */\n private get _avatarGroupItemWidth(): number {\n return this.mainItems.first?._element.offsetWidth ?? 0;\n }\n\n /** @hidden */\n private get _avatarGroupItemWithMarginsWidth(): number {\n if (!this.mainItems.first) {\n return this._avatarGroupItemWidth;\n }\n\n const elementStyles = getComputedStyle(this.mainItems.first._element);\n\n return (\n this._avatarGroupItemWidth +\n parseInt(elementStyles.marginLeft, 10) +\n parseInt(elementStyles.marginRight, 10)\n );\n }\n\n /** @hidden FocusKeyManager instance */\n private _keyboardEventsManager: FocusKeyManager<AvatarGroupItemDirective>;\n\n /** @hidden */\n private readonly _subscription = new Subscription();\n\n /** @hidden handles rtl service */\n private _dir: 'ltr' | 'rtl' | null = 'ltr';\n\n /** @hidden */\n constructor(private readonly _viewportRuler: ViewportRuler, @Optional() private _rtlService: RtlService) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._subscription.add(this._viewportRuler.change().subscribe(() => this._onResize()));\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this._assignCssClasses();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._reset();\n\n this._subscription.add(\n of(true)\n .pipe(delay(5))\n .subscribe(() => this._collapseItems())\n );\n\n this._listenForItemChanges();\n this._setKeyboardEventsManager();\n this._subscribeToRtl();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscription.unsubscribe();\n this._keyboardEventsManager.destroy();\n }\n\n /** @hidden */\n @HostListener('keyup', ['$event'])\n keyUpHandler(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, TAB)) {\n const index = this.mainItems.toArray().findIndex((item) => item._element === event.target);\n if (index !== -1) {\n this._keyboardEventsManager.setActiveItem(index);\n }\n }\n\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW])) {\n event.preventDefault();\n\n // passing the event to key manager so we get a change fired\n this._keyboardEventsManager.onKeydown(event);\n }\n }\n\n /** @hidden */\n _setActiveItem(item: AvatarGroupItemDirective): void {\n this._keyboardEventsManager.setActiveItem(item);\n }\n\n /** @hidden */\n private _onResize(): void {\n this._reset();\n this._collapseItems();\n }\n\n /** @hidden */\n private _reset(): void {\n this.allItemsCount = this.mainItems.length;\n this.overflowItemsCount = 0;\n\n this.mainItems.forEach((it) => {\n it._element.style.display = 'inline-block';\n it.disabled = false;\n });\n }\n\n /** @hidden */\n private _collapseItems(): void {\n const allItemsCounter = this.mainItems?.length || 0;\n let contentWidth = 0;\n let idx = 0;\n const avatarGroupItemWidth = this._avatarGroupItemWidth;\n const avatarGroupItemWithMarginsWidth = this._avatarGroupItemWithMarginsWidth;\n\n while (idx < allItemsCounter) {\n const newContentWidth =\n idx === 0 && this.isGroupType\n ? contentWidth + avatarGroupItemWidth\n : contentWidth + avatarGroupItemWithMarginsWidth;\n\n if (newContentWidth >= this._avatarGroupWidth) {\n // -1 because the last element in the loop will be replaced by the overflow button\n const newIdx = idx - 1;\n this.overflowItemsCount = allItemsCounter - newIdx;\n const mainItemsToHide = this.mainItems.toArray().slice(newIdx);\n mainItemsToHide.forEach((it) => {\n it._element.style.display = 'none';\n it.disabled = true;\n });\n\n break;\n }\n\n contentWidth = newContentWidth;\n idx++;\n }\n }\n\n /** @hidden */\n private _listenForItemChanges(): void {\n this._subscription.add(this.mainItems.changes.subscribe(() => this._onResize()));\n }\n\n /** @hidden */\n private _assignCssClasses(): void {\n this.rootClassNames = {\n 'fd-avatar-group': true,\n [`fd-avatar-group--${this.type}-type`]: !!this.type,\n [`fd-avatar-group--${this.size}`]: !!this.size,\n [this.class]: !!this.class\n };\n }\n\n /** @hidden */\n private _setKeyboardEventsManager(): void {\n this._keyboardEventsManager?.destroy();\n this._keyboardEventsManager = new FocusKeyManager(this.mainItems)\n .withWrap()\n .withHorizontalOrientation(this._dir);\n }\n\n /** @hidden Rtl change subscription */\n private _subscribeToRtl(): void {\n if (!this._rtlService) {\n return;\n }\n\n const rtlSub = this._rtlService.rtl.subscribe((isRtl) => {\n this._dir = isRtl ? 'rtl' : 'ltr';\n\n this._keyboardEventsManager = this._keyboardEventsManager.withHorizontalOrientation(this._dir);\n });\n\n this._subscription.add(rtlSub);\n }\n}\n","<div #avatarGroupContainer [class]=\"rootClassNames\" [id]=\"id\" [attr.aria-label]=\"ariaLabel\">\n <ng-content></ng-content>\n</div>\n","import {\n AfterViewInit,\n ContentChildren,\n Directive,\n HostListener,\n Input,\n OnDestroy,\n Optional,\n QueryList\n} from '@angular/core';\nimport { FocusableOption, FocusKeyManager } from '@angular/cdk/a11y';\nimport { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, TAB, UP_ARROW } from '@angular/cdk/keycodes';\nimport { Subscription } from 'rxjs';\n\nimport { HasElementRef, KeyUtil, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { AVATAR_GROUP_FOCUSABLE_AVATAR_DIRECTIVE, FocusableWithElementRef } from '../tokens';\n\n// import { AvatarGroupFocusableAvatarDirective } from './avatar-group-focusable-avatar.directive';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-avatar-group-overflow-body]',\n host: {\n class: 'fd-avatar-group__overflow-body',\n '[class.fd-avatar-group__overflow-body--no-padding]': 'noPadding',\n '[class.fd-avatar-group__overflow-body--no-horizontal-scroll]': 'noHorizontalScroll',\n '[class.fd-avatar-group__overflow-body--no-vertical-scroll]': 'noVerticalScroll'\n }\n})\nexport class AvatarGroupOverflowBodyDirective implements AfterViewInit, OnDestroy {\n /** Remove the padding from the overflow body. */\n @Input()\n noPadding = false;\n\n /** Hide horizontal scrollbar from the overflow body. */\n @Input()\n noHorizontalScroll = true;\n\n /** Hide vertical scrollbar from the overflow body. */\n @Input()\n noVerticalScroll = true;\n\n /** @hidden Avatar Group Overflow items. */\n @ContentChildren(AVATAR_GROUP_FOCUSABLE_AVATAR_DIRECTIVE, { descendants: true })\n overflowItems: QueryList<FocusableWithElementRef>;\n\n /** @hidden FocusKeyManager instance */\n private _keyboardEventsManager: FocusKeyManager<HasElementRef>;\n\n /** @hidden */\n private readonly _subscription = new Subscription();\n\n /** @hidden handles rtl service */\n private _dir: 'ltr' | 'rtl' | null = 'ltr';\n\n /** @hidden */\n constructor(@Optional() private _rtlService: RtlService) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._listenForItemChanges();\n\n this._setKeyboardEventsManager();\n\n this._subscribeToRtl();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscription.unsubscribe();\n this._keyboardEventsManager?.destroy();\n }\n\n /** @hidden */\n @HostListener('keyup', ['$event'])\n keyUpHandler(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, TAB)) {\n const index = this.overflowItems\n .toArray()\n .findIndex((item) => item.elementRef.nativeElement === event.target);\n if (index !== -1) {\n this._keyboardEventsManager.setActiveItem(index);\n }\n }\n\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW])) {\n // passing the event to key manager so we get a change fired\n this._keyboardEventsManager.onKeydown(event);\n }\n }\n\n /** @hidden */\n _setActiveItem(item: FocusableOption & HasElementRef): void {\n this._keyboardEventsManager.setActiveItem(item);\n }\n\n /** @hidden */\n private _listenForItemChanges(): void {\n this.overflowItems.changes.subscribe(() => this._setKeyboardEventsManager());\n }\n\n /** @hidden */\n private _setKeyboardEventsManager(): void {\n this._keyboardEventsManager?.destroy();\n this._keyboardEventsManager = new FocusKeyManager(this.overflowItems)\n .withWrap()\n .withHorizontalOrientation(this._dir);\n\n this._keyboardEventsManager.setFirstItemActive();\n }\n\n /** @hidden Rtl change subscription */\n private _subscribeToRtl(): void {\n if (!this._rtlService) {\n return;\n }\n\n const rtlSub = this._rtlService.rtl.subscribe((isRtl) => {\n this._dir = isRtl ? 'rtl' : 'ltr';\n this._keyboardEventsManager.withHorizontalOrientation(this._dir);\n });\n\n this._subscription.add(rtlSub);\n }\n}\n","import { Directive } from '@angular/core';\n\nimport { AvatarGroupItemDirective } from './avatar-group-item.directive';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-avatar-group-overflow-item]'\n})\nexport class AvatarGroupOverflowItemDirective extends AvatarGroupItemDirective {}\n","import { Directive, ElementRef, Input, OnChanges, OnInit } from '@angular/core';\n\nimport { Size } from '@fundamental-ngx/cdk/utils';\nimport { applyCssClass } from '@fundamental-ngx/cdk/utils';\nimport { getRandomColorAccent } from '@fundamental-ngx/cdk/utils';\nimport { CssClassBuilder } from '@fundamental-ngx/cdk/utils';\n\nimport { AvatarGroupOverflowButtonColor } from '../avatar-group.component';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-avatar-group-overflow-button]'\n})\nexport class AvatarGroupOverflowButtonDirective implements OnInit, OnChanges, CssClassBuilder {\n /** User's custom classes. */\n @Input()\n class: string;\n\n /** The size of the overflow button.\n * Should be the same as the Avatar Group and Avatar size.\n * Options include: *xs*, *s*, *m*, *l* and *xl* (default: *s*). */\n @Input()\n size: Size = 's';\n\n /** A number from 1 to 10 representing the background color of the Avatar Group's overflow button.\n * Options include: *neutral*, *random*, *1*, *2*, *3*, *4*, *5*, *6*, *7*, *8*, *9*, *10* (default: *neutral*). */\n @Input()\n color: AvatarGroupOverflowButtonColor = 'neutral';\n\n /** @hidden */\n constructor(public readonly elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n 'fd-button',\n 'fd-avatar-group__more-button',\n (this.color && this._getMoreButtonColorCssClass()) || '',\n this.size ? `fd-avatar-group__more-button--${this.size}` : '',\n this.class\n ];\n }\n\n /** @hidden */\n private _getMoreButtonColorCssClass(): string | null {\n if (this.color === 'random') {\n return `fd-avatar-group__more-button--accent-color-${getRandomColorAccent()}`;\n }\n\n if (!Number.isNaN(parseInt(this.color as string, 10))) {\n return `fd-avatar-group__more-button--accent-color-${this.color}`;\n }\n return null;\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-avatar-group-overflow-button-text]',\n host: { class: 'fd-button__text fd-avatar-group__button-text' }\n})\nexport class AvatarGroupOverflowButtonTextDirective {}\n","import { Directive, ElementRef, Optional, HostBinding, HostListener, Input, Inject, forwardRef } from '@angular/core';\nimport { FocusableOption } from '@angular/cdk/a11y';\n\nimport { HasElementRef } from '@fundamental-ngx/cdk/utils';\n\nimport { AvatarGroupOverflowBodyDirective } from './avatar-group-overflow-body.directive';\nimport { AvatarGroupInterface } from '../avatar-group.interface';\nimport { AVATAR_GROUP_FOCUSABLE_AVATAR_DIRECTIVE } from '../tokens';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-avatar-group-focusable-avatar]',\n host: { class: 'fd-avatar-group__focusable-avatar' },\n providers: [\n {\n provide: AVATAR_GROUP_FOCUSABLE_AVATAR_DIRECTIVE,\n useExisting: forwardRef(() => AvatarGroupFocusableAvatarDirective)\n }\n ]\n})\nexport class AvatarGroupFocusableAvatarDirective implements FocusableOption, HasElementRef {\n /** Tabindex of the Avatar. */\n @Input()\n @HostBinding('attr.tabindex')\n tabindex = 0;\n\n /** @hidden */\n constructor(\n public readonly elementRef: ElementRef<HTMLElement>,\n @Optional()\n @Inject(forwardRef(() => AvatarGroupOverflowBodyDirective))\n private readonly _component: AvatarGroupInterface\n ) {}\n\n /** Handler for mouse events */\n @HostListener('click')\n onClick(): void {\n if (this._component) {\n this._component._setActiveItem(this);\n }\n }\n\n /** @hidden */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\n/** Needed to bind specific class to group type popover control. */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-avatar-group-popover-control]',\n host: { class: 'fd-avatar-group__popover-control' }\n})\nexport class AvatarGroupPopoverControlDirective {\n /** Tabindex of the popover control. */\n @Input()\n @HostBinding('attr.tabindex')\n tabindex = 0;\n\n /** Role of the popover control. */\n @Input()\n @HostBinding('attr.role')\n role = 'button';\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { AvatarGroupComponent } from './avatar-group.component';\nimport { AvatarGroupItemDirective } from './directives/avatar-group-item.directive';\nimport { AvatarGroupOverflowBodyDirective } from './directives/avatar-group-overflow-body.directive';\nimport { AvatarGroupOverflowItemDirective } from './directives/avatar-group-overflow-item.directive';\nimport { AvatarGroupOverflowButtonDirective } from './directives/avatar-group-overflow-button.directive';\nimport { AvatarGroupOverflowButtonTextDirective } from './directives/avatar-group-overflow-button-text.directive';\nimport { AvatarGroupFocusableAvatarDirective } from './directives/avatar-group-focusable-avatar.directive';\nimport { AvatarGroupPopoverControlDirective } from './directives/avatar-group-popover-control.directive';\n\n@NgModule({\n imports: [CommonModule],\n exports: [\n AvatarGroupComponent,\n AvatarGroupItemDirective,\n AvatarGroupFocusableAvatarDirective,\n AvatarGroupPopoverControlDirective,\n AvatarGroupOverflowBodyDirective,\n AvatarGroupOverflowItemDirective,\n AvatarGroupOverflowButtonDirective,\n AvatarGroupOverflowButtonTextDirective\n ],\n declarations: [\n AvatarGroupComponent,\n AvatarGroupItemDirective,\n AvatarGroupFocusableAvatarDirective,\n AvatarGroupPopoverControlDirective,\n AvatarGroupOverflowBodyDirective,\n AvatarGroupOverflowItemDirective,\n AvatarGroupOverflowButtonDirective,\n AvatarGroupOverflowButtonTextDirective\n ]\n})\nexport class AvatarGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -59,7 +59,7 @@ class AvatarComponent {
|
|
|
59
59
|
*/
|
|
60
60
|
set bgImage(image) {
|
|
61
61
|
this._bgImage = image;
|
|
62
|
-
this._renderer.setStyle(this.
|
|
62
|
+
this._renderer.setStyle(this.elementRef.nativeElement, 'background-image', image);
|
|
63
63
|
}
|
|
64
64
|
get bgImage() {
|
|
65
65
|
return this._bgImage;
|
|
@@ -84,8 +84,8 @@ class AvatarComponent {
|
|
|
84
84
|
return !this.abbreviate && !this._image && !this.glyph;
|
|
85
85
|
}
|
|
86
86
|
/** @hidden */
|
|
87
|
-
constructor(
|
|
88
|
-
this.
|
|
87
|
+
constructor(elementRef, _cdr, _renderer, hostTabindex) {
|
|
88
|
+
this.elementRef = elementRef;
|
|
89
89
|
this._cdr = _cdr;
|
|
90
90
|
this._renderer = _renderer;
|
|
91
91
|
this.hostTabindex = hostTabindex;
|
|
@@ -168,10 +168,6 @@ class AvatarComponent {
|
|
|
168
168
|
];
|
|
169
169
|
}
|
|
170
170
|
/** @hidden */
|
|
171
|
-
elementRef() {
|
|
172
|
-
return this._elementRef;
|
|
173
|
-
}
|
|
174
|
-
/** @hidden */
|
|
175
171
|
_onClick(event) {
|
|
176
172
|
if (this.clickable) {
|
|
177
173
|
event.preventDefault();
|
|
@@ -184,7 +180,7 @@ class AvatarComponent {
|
|
|
184
180
|
/** @hidden */
|
|
185
181
|
zoomClicked(event) {
|
|
186
182
|
event.preventDefault();
|
|
187
|
-
this.
|
|
183
|
+
this.elementRef.nativeElement.focus();
|
|
188
184
|
this.zoomGlyphClicked.next();
|
|
189
185
|
}
|
|
190
186
|
/** @hidden Get an abbreviate from the label or return null if not fit requirements */
|
|
@@ -252,7 +248,7 @@ class AvatarComponent {
|
|
|
252
248
|
continue;
|
|
253
249
|
}
|
|
254
250
|
if (option === ALTER_ICON_OPTIONS.ALT) {
|
|
255
|
-
const altValue = this.
|
|
251
|
+
const altValue = this.elementRef.nativeElement.getAttribute('alt');
|
|
256
252
|
if (altValue) {
|
|
257
253
|
this.abbreviate = this._generateAbbreviation(altValue);
|
|
258
254
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-avatar.mjs","sources":["../../../../libs/core/src/lib/avatar/tokens.ts","../../../../libs/core/src/lib/avatar/avatar.component.ts","../../../../libs/core/src/lib/avatar/avatar.component.html","../../../../libs/core/src/lib/avatar/avatar.module.ts","../../../../libs/core/src/lib/avatar/fundamental-ngx-core-avatar.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const FD_AVATAR_COMPONENT = new InjectionToken('FdAvatarComponent');\n","import {\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ANY_LANGUAGE_LETTERS_REGEX,\n ColorAccent,\n Size,\n applyCssClass,\n getRandomColorAccent,\n CssClassBuilder\n} from '@fundamental-ngx/cdk/utils';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FD_AVATAR_COMPONENT } from './tokens';\n\nlet avatarUniqueId = 0;\n\nconst ALTER_ICON_OPTIONS = {\n CONTENT: 'content',\n ALT: 'alt',\n BACKUP: 'backup',\n DEFAULT_ICON: 'default-icon'\n};\n\n@Component({\n selector: 'fd-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: FD_AVATAR_COMPONENT,\n useExisting: AvatarComponent\n }\n ],\n host: {\n '[attr.tabindex]': '_tabindex'\n }\n})\nexport class AvatarComponent implements OnChanges, OnInit, CssClassBuilder, OnChanges {\n /** User's custom classes */\n @Input()\n class: string;\n\n /** Id of the Avatar. */\n @Input()\n @HostBinding('attr.id')\n id = `fd-avatar-${avatarUniqueId++}`;\n\n /** Aria-label for Avatar. */\n @Input()\n @HostBinding('attr.aria-label')\n @HostBinding('attr.alt')\n ariaLabel: Nullable<string> = null;\n\n /** Aria-Labelledby for element describing Avatar. */\n @Input()\n @HostBinding('attr.aria-labelledby')\n ariaLabelledby: Nullable<string> = null;\n\n /** Localized text for label */\n @Input()\n set label(value: Nullable<string>) {\n this.ariaLabel = value || null;\n this.abbreviate = this._getAbbreviate(value);\n }\n\n /** The size of the Avatar. Options include: *xs*, *s*, *m*, *l* and *xl*. */\n @Input() size: Size = 'l';\n\n /** The glyph name. */\n @Input() glyph: Nullable<string> = null;\n\n /** The glyph name for zoom icon. */\n @Input() zoomGlyph: Nullable<string> = null;\n\n /** Whether to apply a circle style to the Avatar. */\n @Input() circle = false;\n\n /** Whether to apply a transparent style to the Avatar. */\n @Input() transparent = false;\n\n /** Whether to apply background size contain style to the Avatar */\n @Input() contain = false;\n\n /** Whether to apply a placeholder background style to the Avatar. */\n @Input() placeholder = false;\n\n /** Whether to apply a tile background style to the Avatar. */\n @Input() tile = false;\n\n /** Whether to apply a border to the Avatar. */\n @Input() border = false;\n\n /** A number from 1 to 10 representing the background color of the Avatar. */\n @Input() colorAccent: Nullable<ColorAccent> = null;\n\n /** Whether to apply random background color to the Avatar. */\n @Input() random = false;\n\n /** Whether component should be focusable & clicable */\n @Input() clickable = false;\n\n /**\n * @deprecated\n * Deprecated according to Rename `backgroundImage` to `image`\n * */\n /** Background image url. */\n @Input()\n set backgroundImage(value: string) {\n this._setImage(value);\n }\n\n /** Background image resource: url or base64. */\n @Input()\n set image(value: Nullable<string>) {\n this._setImage(value);\n }\n get image(): Nullable<string> {\n return this._image;\n }\n\n /** Backup options to use when image hasn't been loaded successfully.\n * Options separated with \"|\" symbol.\n * Possible options: content, alt, backup, default-icon\n */\n @Input()\n set alterIcon(value: Nullable<string>) {\n this._alterIcon = value;\n }\n get alterIcon(): Nullable<string> {\n return this._alterIcon;\n }\n\n /** Backup image to load when image hasn't been loaded successfully.\n * Only applicable when using alterIcon input property.\n */\n @Input()\n set backupImage(value: Nullable<string>) {\n this._backupImage = value;\n }\n get backupImage(): Nullable<string> {\n return this._backupImage;\n }\n\n /** Event emitted when avatar clicked. Only fires if clickable input property set to true. */\n @Output() avatarClicked = new EventEmitter<Event>();\n\n /** Event emitted when zoom icon clicked. Only fires if zoomGlyph input property is set. */\n @Output() zoomGlyphClicked = new EventEmitter<void>();\n\n /**\n * @hidden\n */\n set bgImage(image: Nullable<string>) {\n this._bgImage = image;\n\n this._renderer.setStyle(this._elementRef.nativeElement, 'background-image', image);\n }\n\n get bgImage(): Nullable<string> {\n return this._bgImage;\n }\n\n /** @hidden */\n @HostBinding('attr.role')\n get role(): string {\n return this.zoomGlyph ? 'button' : 'img';\n }\n\n /** @hidden */\n @ViewChild('content')\n set content(value: ElementRef) {\n this._content = value;\n }\n\n /** @hidden */\n abbreviate: Nullable<string> = null;\n\n /** @hidden */\n private _image: Nullable<string> = null;\n\n /** @hidden */\n private _alterIcon: Nullable<string> = null;\n\n /** @hidden */\n private _content: Nullable<ElementRef> = null;\n\n /** @hidden */\n private _backupImage: Nullable<string> = null;\n\n /** @hidden */\n private _bgImage: Nullable<string> = null;\n\n /** @hidden */\n get _tabindex(): number | null {\n if (this.hostTabindex != null) {\n return this.hostTabindex;\n }\n return this.clickable ? 0 : null;\n }\n\n /** If a default placeholder should be displayed */\n get showDefault(): boolean {\n return !this.abbreviate && !this._image && !this.glyph;\n }\n\n /** @hidden */\n constructor(\n private readonly _elementRef: ElementRef,\n private readonly _cdr: ChangeDetectorRef,\n private readonly _renderer: Renderer2,\n @Attribute('tabindex') private hostTabindex: number | null\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n if (this.zoomGlyph) {\n this.clickable = true;\n }\n this.buildComponentCssClass();\n }\n\n /** @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n 'fd-avatar',\n this.size ? `fd-avatar--${this.size}` : '',\n this.colorAccent && !this.random ? `fd-avatar--accent-color-${this.colorAccent}` : '',\n this.random ? `fd-avatar--accent-color-${getRandomColorAccent()}` : '',\n this.circle ? 'fd-avatar--circle' : '',\n this.border ? 'fd-avatar--border' : '',\n this.transparent ? 'fd-avatar--transparent' : '',\n this.contain ? 'fd-avatar--background-contain' : '',\n this.placeholder ? 'fd-avatar--placeholder' : '',\n this.tile ? 'fd-avatar--tile' : '',\n this.class\n ];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n\n /** @hidden */\n @HostListener('click', ['$event'])\n @HostListener('keydown.enter', ['$event'])\n @HostListener('keydown.space', ['$event'])\n _onClick(event: Event): void {\n if (this.clickable) {\n event.preventDefault();\n this.avatarClicked.emit(event);\n if (this.zoomGlyph) {\n this.zoomGlyphClicked.next();\n }\n }\n }\n\n /** @hidden */\n zoomClicked(event: Event): void {\n event.preventDefault();\n this._elementRef.nativeElement.focus();\n this.zoomGlyphClicked.next();\n }\n\n /** @hidden Get an abbreviate from the label or return null if not fit requirements */\n private _getAbbreviate(label: Nullable<string>): string | null {\n if (!label || this._image) {\n return null;\n }\n\n return this._generateAbbreviation(label);\n }\n\n /** @hidden Get the abbreviation string */\n private _generateAbbreviation(label: Nullable<string>): string | null {\n if (!label) {\n return null;\n }\n const maxLettersCount = 3;\n const firstLetters = label.split(' ').map((word) => word.charAt(0));\n const abbreviate = firstLetters.join('');\n\n if (firstLetters.length > maxLettersCount || !abbreviate.match(ANY_LANGUAGE_LETTERS_REGEX)) {\n return null;\n }\n\n return abbreviate;\n }\n\n /** @hidden */\n private _setImage(value: Nullable<string>): void {\n this._image = value;\n\n if (value) {\n this._verifyImageUrl(value, (): void => {}, this._onErrorCallback);\n } else {\n this.bgImage = null;\n }\n }\n\n /** @hidden */\n private _verifyImageUrl(srcValue: string, onLoadCallback: () => void, onErrorCallback: () => void): void {\n // Don't load the same image all the time check happens\n if (srcValue === this.bgImage) {\n return;\n }\n const img = new Image();\n img.onload = onLoadCallback.bind(this);\n img.onerror = onErrorCallback.bind(this);\n img.src = srcValue;\n this._assignBgImage(srcValue);\n }\n\n /** @hidden */\n private _assignBgImage(srcValue: Nullable<string>): void {\n this.bgImage = srcValue ? `url(${srcValue})` : null;\n }\n\n /** @hidden */\n private _onErrorCallback(): void {\n if (!this._alterIcon) {\n this._showDefaultIcon();\n return;\n }\n\n const options = this._alterIcon.split('|');\n for (let i = 0; i < options.length; i++) {\n const option = options[i];\n\n if (option === ALTER_ICON_OPTIONS.CONTENT) {\n const contentValue = this._content?.nativeElement.textContent;\n if (contentValue) {\n this.abbreviate = this._generateAbbreviation(contentValue);\n break;\n }\n\n continue;\n }\n\n if (option === ALTER_ICON_OPTIONS.ALT) {\n const altValue = this._elementRef.nativeElement.getAttribute('alt');\n if (altValue) {\n this.abbreviate = this._generateAbbreviation(altValue);\n break;\n }\n\n continue;\n }\n\n if (option === ALTER_ICON_OPTIONS.BACKUP) {\n if (this._backupImage && this._backupImage !== '') {\n // Check if backupImage can be loaded successfully\n // If not, set default user icon\n this._verifyImageUrl(\n this._backupImage,\n () => {\n this._assignBgImage(this._backupImage);\n },\n () => {\n this._showDefaultIcon();\n }\n );\n break;\n }\n\n continue;\n }\n\n if (option === ALTER_ICON_OPTIONS.DEFAULT_ICON) {\n this._showDefaultIcon();\n break;\n }\n\n this._showDefaultIcon();\n }\n }\n\n /** @hidden */\n private _showDefaultIcon(): void {\n this.abbreviate = null;\n this._image = null;\n this.glyph = null;\n this._cdr.markForCheck();\n }\n}\n","<ng-container *ngIf=\"abbreviate\">{{ abbreviate }}</ng-container>\n\n<i\n *ngIf=\"zoomGlyph\"\n role=\"presentation\"\n class=\"fd-avatar__zoom-icon\"\n [class]=\"zoomGlyph ? 'sap-icon--' + zoomGlyph : ''\"\n (mousedown)=\"zoomClicked($event)\"\n>\n</i>\n\n<i\n *ngIf=\"glyph || showDefault\"\n class=\"fd-avatar__icon\"\n role=\"presentation\"\n [class]=\"glyph ? 'sap-icon--' + glyph : 'sap-icon--person-placeholder'\"\n>\n</i>\n\n<div #content style=\"display: none\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { AvatarComponent } from './avatar.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [AvatarComponent],\n declarations: [AvatarComponent]\n})\nexport class AvatarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-avatar.mjs","sources":["../../../../libs/core/src/lib/avatar/tokens.ts","../../../../libs/core/src/lib/avatar/avatar.component.ts","../../../../libs/core/src/lib/avatar/avatar.component.html","../../../../libs/core/src/lib/avatar/avatar.module.ts","../../../../libs/core/src/lib/avatar/fundamental-ngx-core-avatar.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const FD_AVATAR_COMPONENT = new InjectionToken('FdAvatarComponent');\n","import {\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ANY_LANGUAGE_LETTERS_REGEX,\n ColorAccent,\n Size,\n applyCssClass,\n getRandomColorAccent,\n CssClassBuilder\n} from '@fundamental-ngx/cdk/utils';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FD_AVATAR_COMPONENT } from './tokens';\n\nlet avatarUniqueId = 0;\n\nconst ALTER_ICON_OPTIONS = {\n CONTENT: 'content',\n ALT: 'alt',\n BACKUP: 'backup',\n DEFAULT_ICON: 'default-icon'\n};\n\n@Component({\n selector: 'fd-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: FD_AVATAR_COMPONENT,\n useExisting: AvatarComponent\n }\n ],\n host: {\n '[attr.tabindex]': '_tabindex'\n }\n})\nexport class AvatarComponent implements OnChanges, OnInit, CssClassBuilder, OnChanges {\n /** User's custom classes */\n @Input()\n class: string;\n\n /** Id of the Avatar. */\n @Input()\n @HostBinding('attr.id')\n id = `fd-avatar-${avatarUniqueId++}`;\n\n /** Aria-label for Avatar. */\n @Input()\n @HostBinding('attr.aria-label')\n @HostBinding('attr.alt')\n ariaLabel: Nullable<string> = null;\n\n /** Aria-Labelledby for element describing Avatar. */\n @Input()\n @HostBinding('attr.aria-labelledby')\n ariaLabelledby: Nullable<string> = null;\n\n /** Localized text for label */\n @Input()\n set label(value: Nullable<string>) {\n this.ariaLabel = value || null;\n this.abbreviate = this._getAbbreviate(value);\n }\n\n /** The size of the Avatar. Options include: *xs*, *s*, *m*, *l* and *xl*. */\n @Input() size: Size = 'l';\n\n /** The glyph name. */\n @Input() glyph: Nullable<string> = null;\n\n /** The glyph name for zoom icon. */\n @Input() zoomGlyph: Nullable<string> = null;\n\n /** Whether to apply a circle style to the Avatar. */\n @Input() circle = false;\n\n /** Whether to apply a transparent style to the Avatar. */\n @Input() transparent = false;\n\n /** Whether to apply background size contain style to the Avatar */\n @Input() contain = false;\n\n /** Whether to apply a placeholder background style to the Avatar. */\n @Input() placeholder = false;\n\n /** Whether to apply a tile background style to the Avatar. */\n @Input() tile = false;\n\n /** Whether to apply a border to the Avatar. */\n @Input() border = false;\n\n /** A number from 1 to 10 representing the background color of the Avatar. */\n @Input() colorAccent: Nullable<ColorAccent> = null;\n\n /** Whether to apply random background color to the Avatar. */\n @Input() random = false;\n\n /** Whether component should be focusable & clicable */\n @Input() clickable = false;\n\n /**\n * @deprecated\n * Deprecated according to Rename `backgroundImage` to `image`\n * */\n /** Background image url. */\n @Input()\n set backgroundImage(value: string) {\n this._setImage(value);\n }\n\n /** Background image resource: url or base64. */\n @Input()\n set image(value: Nullable<string>) {\n this._setImage(value);\n }\n get image(): Nullable<string> {\n return this._image;\n }\n\n /** Backup options to use when image hasn't been loaded successfully.\n * Options separated with \"|\" symbol.\n * Possible options: content, alt, backup, default-icon\n */\n @Input()\n set alterIcon(value: Nullable<string>) {\n this._alterIcon = value;\n }\n get alterIcon(): Nullable<string> {\n return this._alterIcon;\n }\n\n /** Backup image to load when image hasn't been loaded successfully.\n * Only applicable when using alterIcon input property.\n */\n @Input()\n set backupImage(value: Nullable<string>) {\n this._backupImage = value;\n }\n get backupImage(): Nullable<string> {\n return this._backupImage;\n }\n\n /** Event emitted when avatar clicked. Only fires if clickable input property set to true. */\n @Output() avatarClicked = new EventEmitter<Event>();\n\n /** Event emitted when zoom icon clicked. Only fires if zoomGlyph input property is set. */\n @Output() zoomGlyphClicked = new EventEmitter<void>();\n\n /**\n * @hidden\n */\n set bgImage(image: Nullable<string>) {\n this._bgImage = image;\n\n this._renderer.setStyle(this.elementRef.nativeElement, 'background-image', image);\n }\n\n get bgImage(): Nullable<string> {\n return this._bgImage;\n }\n\n /** @hidden */\n @HostBinding('attr.role')\n get role(): string {\n return this.zoomGlyph ? 'button' : 'img';\n }\n\n /** @hidden */\n @ViewChild('content')\n set content(value: ElementRef) {\n this._content = value;\n }\n\n /** @hidden */\n abbreviate: Nullable<string> = null;\n\n /** @hidden */\n private _image: Nullable<string> = null;\n\n /** @hidden */\n private _alterIcon: Nullable<string> = null;\n\n /** @hidden */\n private _content: Nullable<ElementRef> = null;\n\n /** @hidden */\n private _backupImage: Nullable<string> = null;\n\n /** @hidden */\n private _bgImage: Nullable<string> = null;\n\n /** @hidden */\n get _tabindex(): number | null {\n if (this.hostTabindex != null) {\n return this.hostTabindex;\n }\n return this.clickable ? 0 : null;\n }\n\n /** If a default placeholder should be displayed */\n get showDefault(): boolean {\n return !this.abbreviate && !this._image && !this.glyph;\n }\n\n /** @hidden */\n constructor(\n public readonly elementRef: ElementRef,\n private readonly _cdr: ChangeDetectorRef,\n private readonly _renderer: Renderer2,\n @Attribute('tabindex') private hostTabindex: number | null\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n if (this.zoomGlyph) {\n this.clickable = true;\n }\n this.buildComponentCssClass();\n }\n\n /** @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n 'fd-avatar',\n this.size ? `fd-avatar--${this.size}` : '',\n this.colorAccent && !this.random ? `fd-avatar--accent-color-${this.colorAccent}` : '',\n this.random ? `fd-avatar--accent-color-${getRandomColorAccent()}` : '',\n this.circle ? 'fd-avatar--circle' : '',\n this.border ? 'fd-avatar--border' : '',\n this.transparent ? 'fd-avatar--transparent' : '',\n this.contain ? 'fd-avatar--background-contain' : '',\n this.placeholder ? 'fd-avatar--placeholder' : '',\n this.tile ? 'fd-avatar--tile' : '',\n this.class\n ];\n }\n\n /** @hidden */\n @HostListener('click', ['$event'])\n @HostListener('keydown.enter', ['$event'])\n @HostListener('keydown.space', ['$event'])\n _onClick(event: Event): void {\n if (this.clickable) {\n event.preventDefault();\n this.avatarClicked.emit(event);\n if (this.zoomGlyph) {\n this.zoomGlyphClicked.next();\n }\n }\n }\n\n /** @hidden */\n zoomClicked(event: Event): void {\n event.preventDefault();\n this.elementRef.nativeElement.focus();\n this.zoomGlyphClicked.next();\n }\n\n /** @hidden Get an abbreviate from the label or return null if not fit requirements */\n private _getAbbreviate(label: Nullable<string>): string | null {\n if (!label || this._image) {\n return null;\n }\n\n return this._generateAbbreviation(label);\n }\n\n /** @hidden Get the abbreviation string */\n private _generateAbbreviation(label: Nullable<string>): string | null {\n if (!label) {\n return null;\n }\n const maxLettersCount = 3;\n const firstLetters = label.split(' ').map((word) => word.charAt(0));\n const abbreviate = firstLetters.join('');\n\n if (firstLetters.length > maxLettersCount || !abbreviate.match(ANY_LANGUAGE_LETTERS_REGEX)) {\n return null;\n }\n\n return abbreviate;\n }\n\n /** @hidden */\n private _setImage(value: Nullable<string>): void {\n this._image = value;\n\n if (value) {\n this._verifyImageUrl(value, (): void => {}, this._onErrorCallback);\n } else {\n this.bgImage = null;\n }\n }\n\n /** @hidden */\n private _verifyImageUrl(srcValue: string, onLoadCallback: () => void, onErrorCallback: () => void): void {\n // Don't load the same image all the time check happens\n if (srcValue === this.bgImage) {\n return;\n }\n const img = new Image();\n img.onload = onLoadCallback.bind(this);\n img.onerror = onErrorCallback.bind(this);\n img.src = srcValue;\n this._assignBgImage(srcValue);\n }\n\n /** @hidden */\n private _assignBgImage(srcValue: Nullable<string>): void {\n this.bgImage = srcValue ? `url(${srcValue})` : null;\n }\n\n /** @hidden */\n private _onErrorCallback(): void {\n if (!this._alterIcon) {\n this._showDefaultIcon();\n return;\n }\n\n const options = this._alterIcon.split('|');\n for (let i = 0; i < options.length; i++) {\n const option = options[i];\n\n if (option === ALTER_ICON_OPTIONS.CONTENT) {\n const contentValue = this._content?.nativeElement.textContent;\n if (contentValue) {\n this.abbreviate = this._generateAbbreviation(contentValue);\n break;\n }\n\n continue;\n }\n\n if (option === ALTER_ICON_OPTIONS.ALT) {\n const altValue = this.elementRef.nativeElement.getAttribute('alt');\n if (altValue) {\n this.abbreviate = this._generateAbbreviation(altValue);\n break;\n }\n\n continue;\n }\n\n if (option === ALTER_ICON_OPTIONS.BACKUP) {\n if (this._backupImage && this._backupImage !== '') {\n // Check if backupImage can be loaded successfully\n // If not, set default user icon\n this._verifyImageUrl(\n this._backupImage,\n () => {\n this._assignBgImage(this._backupImage);\n },\n () => {\n this._showDefaultIcon();\n }\n );\n break;\n }\n\n continue;\n }\n\n if (option === ALTER_ICON_OPTIONS.DEFAULT_ICON) {\n this._showDefaultIcon();\n break;\n }\n\n this._showDefaultIcon();\n }\n }\n\n /** @hidden */\n private _showDefaultIcon(): void {\n this.abbreviate = null;\n this._image = null;\n this.glyph = null;\n this._cdr.markForCheck();\n }\n}\n","<ng-container *ngIf=\"abbreviate\">{{ abbreviate }}</ng-container>\n\n<i\n *ngIf=\"zoomGlyph\"\n role=\"presentation\"\n class=\"fd-avatar__zoom-icon\"\n [class]=\"zoomGlyph ? 'sap-icon--' + zoomGlyph : ''\"\n (mousedown)=\"zoomClicked($event)\"\n>\n</i>\n\n<i\n *ngIf=\"glyph || showDefault\"\n class=\"fd-avatar__icon\"\n role=\"presentation\"\n [class]=\"glyph ? 'sap-icon--' + glyph : 'sap-icon--person-placeholder'\"\n>\n</i>\n\n<div #content style=\"display: none\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { AvatarComponent } from './avatar.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [AvatarComponent],\n declarations: [AvatarComponent]\n})\nexport class AvatarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|