@fundamental-ngx/core 0.34.3-rc.2 → 0.34.3-rc.22
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/action-bar/package.json +1 -1
- package/action-sheet/package.json +1 -1
- package/alert/package.json +1 -1
- package/avatar/package.json +1 -1
- package/avatar-group/package.json +1 -1
- package/bar/package.json +1 -1
- package/breadcrumb/esm2020/breadcrumb.component.mjs +3 -3
- package/breadcrumb/fesm2015/fundamental-ngx-core-breadcrumb.mjs +2 -2
- package/breadcrumb/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/breadcrumb/fesm2020/fundamental-ngx-core-breadcrumb.mjs +2 -2
- package/breadcrumb/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/breadcrumb/package.json +1 -1
- package/busy-indicator/package.json +1 -1
- package/button/package.json +1 -1
- package/calendar/package.json +1 -1
- package/card/package.json +1 -1
- package/carousel/carousel.component.d.ts +20 -3
- package/carousel/esm2020/carousel.component.mjs +90 -26
- package/carousel/fesm2015/fundamental-ngx-core-carousel.mjs +89 -25
- package/carousel/fesm2015/fundamental-ngx-core-carousel.mjs.map +1 -1
- package/carousel/fesm2020/fundamental-ngx-core-carousel.mjs +89 -25
- package/carousel/fesm2020/fundamental-ngx-core-carousel.mjs.map +1 -1
- package/carousel/package.json +1 -1
- package/checkbox/checkbox/checkbox.component.d.ts +1 -1
- package/checkbox/esm2020/checkbox/checkbox.component.mjs +2 -2
- package/checkbox/fesm2015/fundamental-ngx-core-checkbox.mjs +1 -1
- package/checkbox/fesm2015/fundamental-ngx-core-checkbox.mjs.map +1 -1
- package/checkbox/fesm2020/fundamental-ngx-core-checkbox.mjs +1 -1
- package/checkbox/fesm2020/fundamental-ngx-core-checkbox.mjs.map +1 -1
- package/checkbox/package.json +1 -1
- package/combobox/combobox.component.d.ts +2 -1
- package/combobox/combobox.module.d.ts +11 -10
- package/combobox/esm2020/combobox.component.mjs +4 -3
- package/combobox/esm2020/combobox.module.mjs +7 -6
- package/combobox/esm2020/list-group.pipe.mjs +16 -0
- package/combobox/esm2020/public_api.mjs +2 -1
- package/combobox/fesm2015/fundamental-ngx-core-combobox.mjs +30 -16
- package/combobox/fesm2015/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/combobox/fesm2020/fundamental-ngx-core-combobox.mjs +30 -16
- package/combobox/fesm2020/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/{utils/pipes → combobox}/list-group.pipe.d.ts +2 -1
- package/combobox/package.json +1 -1
- package/combobox/public_api.d.ts +1 -0
- package/date-picker/esm2020/date-picker.component.mjs +3 -3
- package/date-picker/fesm2015/fundamental-ngx-core-date-picker.mjs +2 -2
- package/date-picker/fesm2015/fundamental-ngx-core-date-picker.mjs.map +1 -1
- package/date-picker/fesm2020/fundamental-ngx-core-date-picker.mjs +2 -2
- package/date-picker/fesm2020/fundamental-ngx-core-date-picker.mjs.map +1 -1
- package/date-picker/package.json +1 -1
- package/datetime/package.json +1 -1
- package/datetime-picker/datetime-picker.component.d.ts +7 -1
- package/datetime-picker/datetime-picker.module.d.ts +3 -2
- package/datetime-picker/esm2020/datetime-picker.component.mjs +21 -10
- package/datetime-picker/esm2020/datetime-picker.module.mjs +5 -1
- package/datetime-picker/fesm2015/fundamental-ngx-core-datetime-picker.mjs +25 -10
- package/datetime-picker/fesm2015/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
- package/datetime-picker/fesm2020/fundamental-ngx-core-datetime-picker.mjs +25 -10
- package/datetime-picker/fesm2020/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
- package/datetime-picker/package.json +1 -1
- package/dialog/package.json +1 -1
- package/dynamic-page/dynamic-page-content/dynamic-page-content.component.d.ts +8 -3
- package/dynamic-page/dynamic-page.component.d.ts +7 -3
- package/dynamic-page/esm2020/dynamic-page-content/dynamic-page-content.component.mjs +17 -8
- package/dynamic-page/esm2020/dynamic-page.component.mjs +29 -8
- package/dynamic-page/fesm2015/fundamental-ngx-core-dynamic-page.mjs +58 -29
- package/dynamic-page/fesm2015/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
- package/dynamic-page/fesm2020/fundamental-ngx-core-dynamic-page.mjs +57 -29
- package/dynamic-page/fesm2020/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
- package/dynamic-page/package.json +1 -1
- package/dynamic-side-content/package.json +1 -1
- package/esm2020/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2020/carousel/carousel.component.mjs +90 -26
- package/esm2020/checkbox/checkbox/checkbox.component.mjs +2 -2
- package/esm2020/combobox/combobox.component.mjs +4 -3
- package/esm2020/combobox/combobox.module.mjs +7 -6
- package/esm2020/combobox/list-group.pipe.mjs +16 -0
- package/esm2020/combobox/public_api.mjs +2 -1
- package/esm2020/date-picker/date-picker.component.mjs +3 -3
- package/esm2020/datetime-picker/datetime-picker.component.mjs +21 -10
- package/esm2020/datetime-picker/datetime-picker.module.mjs +5 -1
- package/esm2020/dynamic-page/dynamic-page-content/dynamic-page-content.component.mjs +17 -8
- package/esm2020/dynamic-page/dynamic-page.component.mjs +29 -8
- package/esm2020/facets/facet/facet.component.mjs +3 -3
- package/esm2020/feed-list-item/components/item/feed-list-item.component.mjs +1 -1
- package/esm2020/fixed-card-layout/fixed-card-layout.component.mjs +7 -3
- package/esm2020/form/form-label/form-label.component.mjs +14 -6
- package/esm2020/form/form-label/form-label.module.mjs +5 -4
- package/esm2020/form/form-message/form-message.component.mjs +1 -1
- package/esm2020/grid-list/components/grid-list/grid-list-base.component.mjs +1 -1
- package/esm2020/grid-list/components/grid-list-item/grid-list-item.component.mjs +3 -3
- package/esm2020/grid-list/helpers/parse-layout-pattern.mjs +2 -2
- package/esm2020/link/link.component.mjs +6 -3
- package/esm2020/menu/services/menu.service.mjs +8 -6
- package/esm2020/message-toast/constants.mjs +3 -0
- package/esm2020/message-toast/message-toast-service/message-toast.service.mjs +15 -7
- package/esm2020/message-toast/message-toast.module.mjs +43 -3
- package/esm2020/message-toast/public_api.mjs +2 -1
- package/esm2020/multi-input/multi-input.component.mjs +2 -2
- package/esm2020/pagination/pagination.component.mjs +7 -7
- package/esm2020/popover/base/base-popover.class.mjs +2 -2
- package/esm2020/popover/popover-container/popover-container.directive.mjs +36 -0
- package/esm2020/popover/popover-service/popover.service.mjs +12 -3
- package/esm2020/popover/popover.module.mjs +10 -5
- package/esm2020/popover/public_api.mjs +2 -1
- package/esm2020/quick-view/quick-view-group-item-label/quick-view-group-item-label.component.mjs +1 -1
- package/esm2020/rating-indicator/components/rating-indicator.component.mjs +4 -7
- package/esm2020/select/select.component.mjs +1 -10
- package/esm2020/select/select.interface.mjs +1 -1
- package/esm2020/shared/interfaces/form-states.mjs +1 -1
- package/esm2020/shared/public_api.mjs +2 -1
- package/esm2020/shared/utils/form.mjs +5 -0
- package/esm2020/slider/slider.component.mjs +3 -3
- package/esm2020/text/text.component.mjs +1 -1
- package/esm2020/tile/directives/numeric-content.directives.mjs +1 -1
- package/esm2020/time/time-column/time-column.component.mjs +2 -2
- package/esm2020/time-picker/time-picker.component.mjs +6 -3
- package/esm2020/utils/pipes/pipe.module.mjs +4 -33
- package/esm2020/utils/public_api.mjs +1 -2
- package/facets/esm2020/facet/facet.component.mjs +3 -3
- package/facets/fesm2015/fundamental-ngx-core-facets.mjs +2 -2
- package/facets/fesm2015/fundamental-ngx-core-facets.mjs.map +1 -1
- package/facets/fesm2020/fundamental-ngx-core-facets.mjs +2 -2
- package/facets/fesm2020/fundamental-ngx-core-facets.mjs.map +1 -1
- package/facets/package.json +1 -1
- package/feed-input/package.json +1 -1
- package/feed-list-item/esm2020/components/item/feed-list-item.component.mjs +1 -1
- package/feed-list-item/fesm2015/fundamental-ngx-core-feed-list-item.mjs +1 -1
- package/feed-list-item/fesm2020/fundamental-ngx-core-feed-list-item.mjs +1 -1
- package/feed-list-item/package.json +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-carousel.mjs +89 -25
- package/fesm2015/fundamental-ngx-core-carousel.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-checkbox.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-checkbox.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-combobox.mjs +30 -16
- package/fesm2015/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-date-picker.mjs +2 -2
- package/fesm2015/fundamental-ngx-core-date-picker.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-datetime-picker.mjs +25 -10
- package/fesm2015/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-dynamic-page.mjs +58 -29
- package/fesm2015/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-facets.mjs +2 -2
- package/fesm2015/fundamental-ngx-core-facets.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-feed-list-item.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-fixed-card-layout.mjs +7 -2
- package/fesm2015/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-form.mjs +17 -8
- package/fesm2015/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-grid-list.mjs +3 -3
- package/fesm2015/fundamental-ngx-core-grid-list.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-link.mjs +5 -2
- package/fesm2015/fundamental-ngx-core-link.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-menu.mjs +7 -5
- package/fesm2015/fundamental-ngx-core-menu.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-message-toast.mjs +57 -9
- package/fesm2015/fundamental-ngx-core-message-toast.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-multi-input.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-pagination.mjs +6 -6
- package/fesm2015/fundamental-ngx-core-pagination.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-popover.mjs +51 -8
- package/fesm2015/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-quick-view.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-rating-indicator.mjs +3 -6
- package/fesm2015/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-select.mjs +1 -10
- package/fesm2015/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-shared.mjs +6 -1
- package/fesm2015/fundamental-ngx-core-shared.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-slider.mjs +2 -2
- package/fesm2015/fundamental-ngx-core-slider.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-text.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-tile.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-time-picker.mjs +5 -2
- package/fesm2015/fundamental-ngx-core-time-picker.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-time.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-time.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-utils.mjs +4 -46
- package/fesm2015/fundamental-ngx-core-utils.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-carousel.mjs +89 -25
- package/fesm2020/fundamental-ngx-core-carousel.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-checkbox.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-checkbox.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-combobox.mjs +30 -16
- package/fesm2020/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-date-picker.mjs +2 -2
- package/fesm2020/fundamental-ngx-core-date-picker.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-datetime-picker.mjs +25 -10
- package/fesm2020/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-dynamic-page.mjs +57 -29
- package/fesm2020/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-facets.mjs +2 -2
- package/fesm2020/fundamental-ngx-core-facets.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-feed-list-item.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-fixed-card-layout.mjs +6 -2
- package/fesm2020/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-form.mjs +17 -8
- package/fesm2020/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-grid-list.mjs +3 -3
- package/fesm2020/fundamental-ngx-core-grid-list.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-link.mjs +5 -2
- package/fesm2020/fundamental-ngx-core-link.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-menu.mjs +7 -5
- package/fesm2020/fundamental-ngx-core-menu.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-message-toast.mjs +55 -9
- package/fesm2020/fundamental-ngx-core-message-toast.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-multi-input.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-pagination.mjs +6 -6
- package/fesm2020/fundamental-ngx-core-pagination.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-popover.mjs +50 -8
- package/fesm2020/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-quick-view.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-rating-indicator.mjs +3 -6
- package/fesm2020/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-select.mjs +1 -10
- package/fesm2020/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-shared.mjs +6 -1
- package/fesm2020/fundamental-ngx-core-shared.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-slider.mjs +2 -2
- package/fesm2020/fundamental-ngx-core-slider.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-text.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-tile.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-time-picker.mjs +5 -2
- package/fesm2020/fundamental-ngx-core-time-picker.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-time.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-time.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-utils.mjs +4 -46
- package/fesm2020/fundamental-ngx-core-utils.mjs.map +1 -1
- package/file-uploader/package.json +1 -1
- package/fixed-card-layout/esm2020/fixed-card-layout.component.mjs +7 -3
- package/fixed-card-layout/fesm2015/fundamental-ngx-core-fixed-card-layout.mjs +7 -2
- package/fixed-card-layout/fesm2015/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
- package/fixed-card-layout/fesm2020/fundamental-ngx-core-fixed-card-layout.mjs +6 -2
- package/fixed-card-layout/fesm2020/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
- package/fixed-card-layout/fixed-card-layout.component.d.ts +1 -1
- package/fixed-card-layout/package.json +1 -1
- package/flexible-column-layout/package.json +1 -1
- package/form/esm2020/form-label/form-label.component.mjs +14 -6
- package/form/esm2020/form-label/form-label.module.mjs +5 -4
- package/form/esm2020/form-message/form-message.component.mjs +1 -1
- package/form/fesm2015/fundamental-ngx-core-form.mjs +17 -8
- package/form/fesm2015/fundamental-ngx-core-form.mjs.map +1 -1
- package/form/fesm2020/fundamental-ngx-core-form.mjs +17 -8
- package/form/fesm2020/fundamental-ngx-core-form.mjs.map +1 -1
- package/form/form-label/form-label.component.d.ts +3 -1
- package/form/form-label/form-label.module.d.ts +2 -1
- package/form/form-message/form-message.component.d.ts +5 -3
- package/form/package.json +1 -1
- package/formatted-text/package.json +1 -1
- package/grid-list/components/grid-list/grid-list-base.component.d.ts +1 -1
- package/grid-list/components/grid-list-item/grid-list-item.component.d.ts +2 -2
- package/grid-list/esm2020/components/grid-list/grid-list-base.component.mjs +1 -1
- package/grid-list/esm2020/components/grid-list-item/grid-list-item.component.mjs +3 -3
- package/grid-list/esm2020/helpers/parse-layout-pattern.mjs +2 -2
- package/grid-list/fesm2015/fundamental-ngx-core-grid-list.mjs +3 -3
- package/grid-list/fesm2015/fundamental-ngx-core-grid-list.mjs.map +1 -1
- package/grid-list/fesm2020/fundamental-ngx-core-grid-list.mjs +3 -3
- package/grid-list/fesm2020/fundamental-ngx-core-grid-list.mjs.map +1 -1
- package/grid-list/package.json +1 -1
- package/icon/package.json +1 -1
- package/illustrated-message/package.json +1 -1
- package/infinite-scroll/package.json +1 -1
- package/info-label/package.json +1 -1
- package/inline-help/package.json +1 -1
- package/input-group/package.json +1 -1
- package/layout-grid/package.json +1 -1
- package/layout-panel/package.json +1 -1
- package/link/esm2020/link.component.mjs +6 -3
- package/link/fesm2015/fundamental-ngx-core-link.mjs +5 -2
- package/link/fesm2015/fundamental-ngx-core-link.mjs.map +1 -1
- package/link/fesm2020/fundamental-ngx-core-link.mjs +5 -2
- package/link/fesm2020/fundamental-ngx-core-link.mjs.map +1 -1
- package/link/link.component.d.ts +3 -1
- package/link/package.json +1 -1
- package/list/package.json +1 -1
- package/menu/esm2020/services/menu.service.mjs +8 -6
- package/menu/fesm2015/fundamental-ngx-core-menu.mjs +7 -5
- package/menu/fesm2015/fundamental-ngx-core-menu.mjs.map +1 -1
- package/menu/fesm2020/fundamental-ngx-core-menu.mjs +7 -5
- package/menu/fesm2020/fundamental-ngx-core-menu.mjs.map +1 -1
- package/menu/package.json +1 -1
- package/message-box/package.json +1 -1
- package/message-strip/package.json +1 -1
- package/message-toast/constants.d.ts +3 -0
- package/message-toast/esm2020/constants.mjs +3 -0
- package/message-toast/esm2020/message-toast-service/message-toast.service.mjs +15 -7
- package/message-toast/esm2020/message-toast.module.mjs +43 -3
- package/message-toast/esm2020/public_api.mjs +2 -1
- package/message-toast/fesm2015/fundamental-ngx-core-message-toast.mjs +57 -9
- package/message-toast/fesm2015/fundamental-ngx-core-message-toast.mjs.map +1 -1
- package/message-toast/fesm2020/fundamental-ngx-core-message-toast.mjs +55 -9
- package/message-toast/fesm2020/fundamental-ngx-core-message-toast.mjs.map +1 -1
- package/message-toast/message-toast-service/message-toast.service.d.ts +2 -1
- package/message-toast/message-toast.module.d.ts +14 -0
- package/message-toast/package.json +1 -1
- package/message-toast/public_api.d.ts +1 -0
- package/micro-process-flow/package.json +1 -1
- package/mobile-mode/package.json +1 -1
- package/multi-input/esm2020/multi-input.component.mjs +2 -2
- package/multi-input/fesm2015/fundamental-ngx-core-multi-input.mjs +1 -1
- package/multi-input/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/multi-input/fesm2020/fundamental-ngx-core-multi-input.mjs +1 -1
- package/multi-input/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/multi-input/multi-input.component.d.ts +3 -3
- package/multi-input/package.json +1 -1
- package/nested-list/package.json +1 -1
- package/notification/package.json +1 -1
- package/object-identifier/package.json +1 -1
- package/object-marker/package.json +1 -1
- package/object-number/package.json +1 -1
- package/object-status/package.json +1 -1
- package/package.json +2 -2
- package/pagination/esm2020/pagination.component.mjs +7 -7
- package/pagination/fesm2015/fundamental-ngx-core-pagination.mjs +6 -6
- package/pagination/fesm2015/fundamental-ngx-core-pagination.mjs.map +1 -1
- package/pagination/fesm2020/fundamental-ngx-core-pagination.mjs +6 -6
- package/pagination/fesm2020/fundamental-ngx-core-pagination.mjs.map +1 -1
- package/pagination/package.json +1 -1
- package/pagination/pagination.component.d.ts +4 -4
- package/panel/package.json +1 -1
- package/popover/base/base-popover.class.d.ts +1 -1
- package/popover/esm2020/base/base-popover.class.mjs +2 -2
- package/popover/esm2020/popover-container/popover-container.directive.mjs +36 -0
- package/popover/esm2020/popover-service/popover.service.mjs +12 -3
- package/popover/esm2020/popover.module.mjs +10 -5
- package/popover/esm2020/public_api.mjs +2 -1
- package/popover/fesm2015/fundamental-ngx-core-popover.mjs +51 -8
- package/popover/fesm2015/fundamental-ngx-core-popover.mjs.map +1 -1
- package/popover/fesm2020/fundamental-ngx-core-popover.mjs +50 -8
- package/popover/fesm2020/fundamental-ngx-core-popover.mjs.map +1 -1
- package/popover/package.json +1 -1
- package/popover/popover-container/popover-container.directive.d.ts +17 -0
- package/popover/popover-service/popover.service.d.ts +4 -2
- package/popover/popover.module.d.ts +5 -4
- package/popover/public_api.d.ts +1 -0
- package/product-switch/package.json +1 -1
- package/progress-indicator/package.json +1 -1
- package/quick-view/esm2020/quick-view-group-item-label/quick-view-group-item-label.component.mjs +1 -1
- package/quick-view/fesm2015/fundamental-ngx-core-quick-view.mjs +1 -1
- package/quick-view/fesm2020/fundamental-ngx-core-quick-view.mjs +1 -1
- package/quick-view/package.json +1 -1
- package/radio/package.json +1 -1
- package/rating-indicator/esm2020/components/rating-indicator.component.mjs +4 -7
- package/rating-indicator/fesm2015/fundamental-ngx-core-rating-indicator.mjs +3 -6
- package/rating-indicator/fesm2015/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
- package/rating-indicator/fesm2020/fundamental-ngx-core-rating-indicator.mjs +3 -6
- package/rating-indicator/fesm2020/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
- package/rating-indicator/package.json +1 -1
- package/resizable-card-layout/package.json +1 -1
- package/schematics/ng-add/index.js +1 -1
- package/scroll-spy/package.json +1 -1
- package/scrollbar/package.json +1 -1
- package/segmented-button/package.json +1 -1
- package/select/esm2020/select.component.mjs +1 -10
- package/select/esm2020/select.interface.mjs +1 -1
- package/select/fesm2015/fundamental-ngx-core-select.mjs +1 -10
- package/select/fesm2015/fundamental-ngx-core-select.mjs.map +1 -1
- package/select/fesm2020/fundamental-ngx-core-select.mjs +1 -10
- package/select/fesm2020/fundamental-ngx-core-select.mjs.map +1 -1
- package/select/package.json +1 -1
- package/select/select.component.d.ts +5 -11
- package/select/select.interface.d.ts +1 -2
- package/shared/esm2020/interfaces/form-states.mjs +1 -1
- package/shared/esm2020/public_api.mjs +2 -1
- package/shared/esm2020/utils/form.mjs +5 -0
- package/shared/fesm2015/fundamental-ngx-core-shared.mjs +6 -1
- package/shared/fesm2015/fundamental-ngx-core-shared.mjs.map +1 -1
- package/shared/fesm2020/fundamental-ngx-core-shared.mjs +6 -1
- package/shared/fesm2020/fundamental-ngx-core-shared.mjs.map +1 -1
- package/shared/interfaces/form-states.d.ts +1 -1
- package/shared/package.json +1 -1
- package/shared/public_api.d.ts +1 -0
- package/shared/utils/form.d.ts +2 -0
- package/shellbar/package.json +1 -1
- package/side-navigation/package.json +1 -1
- package/slider/esm2020/slider.component.mjs +3 -3
- package/slider/fesm2015/fundamental-ngx-core-slider.mjs +2 -2
- package/slider/fesm2015/fundamental-ngx-core-slider.mjs.map +1 -1
- package/slider/fesm2020/fundamental-ngx-core-slider.mjs +2 -2
- package/slider/fesm2020/fundamental-ngx-core-slider.mjs.map +1 -1
- package/slider/package.json +1 -1
- package/split-button/package.json +1 -1
- package/splitter/package.json +1 -1
- package/status-indicator/package.json +1 -1
- package/step-input/package.json +1 -1
- package/switch/package.json +1 -1
- package/table/package.json +1 -1
- package/tabs/package.json +1 -1
- package/text/esm2020/text.component.mjs +1 -1
- package/text/fesm2015/fundamental-ngx-core-text.mjs +1 -1
- package/text/fesm2020/fundamental-ngx-core-text.mjs +1 -1
- package/text/package.json +1 -1
- package/tile/directives/numeric-content.directives.d.ts +5 -5
- package/tile/esm2020/directives/numeric-content.directives.mjs +1 -1
- package/tile/fesm2015/fundamental-ngx-core-tile.mjs.map +1 -1
- package/tile/fesm2020/fundamental-ngx-core-tile.mjs.map +1 -1
- package/tile/package.json +1 -1
- package/time/esm2020/time-column/time-column.component.mjs +2 -2
- package/time/fesm2015/fundamental-ngx-core-time.mjs +1 -1
- package/time/fesm2015/fundamental-ngx-core-time.mjs.map +1 -1
- package/time/fesm2020/fundamental-ngx-core-time.mjs +1 -1
- package/time/fesm2020/fundamental-ngx-core-time.mjs.map +1 -1
- package/time/package.json +1 -1
- package/time-picker/esm2020/time-picker.component.mjs +6 -3
- package/time-picker/fesm2015/fundamental-ngx-core-time-picker.mjs +5 -2
- package/time-picker/fesm2015/fundamental-ngx-core-time-picker.mjs.map +1 -1
- package/time-picker/fesm2020/fundamental-ngx-core-time-picker.mjs +5 -2
- package/time-picker/fesm2020/fundamental-ngx-core-time-picker.mjs.map +1 -1
- package/time-picker/package.json +1 -1
- package/timeline/package.json +1 -1
- package/title/package.json +1 -1
- package/token/package.json +1 -1
- package/toolbar/package.json +1 -1
- package/tree/package.json +1 -1
- package/upload-collection/package.json +1 -1
- package/utils/esm2020/pipes/pipe.module.mjs +4 -33
- package/utils/esm2020/public_api.mjs +1 -2
- package/utils/fesm2015/fundamental-ngx-core-utils.mjs +4 -46
- package/utils/fesm2015/fundamental-ngx-core-utils.mjs.map +1 -1
- package/utils/fesm2020/fundamental-ngx-core-utils.mjs +4 -46
- package/utils/fesm2020/fundamental-ngx-core-utils.mjs.map +1 -1
- package/utils/package.json +1 -1
- package/utils/pipes/pipe.module.d.ts +4 -5
- package/utils/public_api.d.ts +0 -1
- package/vertical-navigation/package.json +1 -1
- package/wizard/package.json +1 -1
- package/esm2020/utils/pipes/list-group.pipe.mjs +0 -16
- package/utils/esm2020/pipes/list-group.pipe.mjs +0 -16
|
@@ -1,15 +1,47 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { MESSAGE_TOAST_CONFIG } from './constants';
|
|
4
|
+
import { MessageToastConfig } from './message-toast-utils/message-toast-config';
|
|
3
5
|
import { MessageToastComponent } from './message-toast.component';
|
|
4
6
|
import { MessageToastService } from './message-toast-service/message-toast.service';
|
|
5
7
|
import { MessageToastContainerComponent } from './message-toast-utils/message-toast-container.component';
|
|
6
8
|
import { DynamicComponentService } from '@fundamental-ngx/core/utils';
|
|
7
9
|
import * as i0 from "@angular/core";
|
|
10
|
+
/**
|
|
11
|
+
* Adds Message Toast functionality to your application.
|
|
12
|
+
*
|
|
13
|
+
* Can be imported in two ways:
|
|
14
|
+
* * Plain MessageToastModule with default configuration
|
|
15
|
+
* * With `withConfig()` method which allows passing custom default configuration.
|
|
16
|
+
*/
|
|
8
17
|
export class MessageToastModule {
|
|
18
|
+
/**
|
|
19
|
+
* Allows configuring module on a global level with custom configuration.
|
|
20
|
+
* @param config User's custom configuration.
|
|
21
|
+
*/
|
|
22
|
+
static withConfig(config) {
|
|
23
|
+
return {
|
|
24
|
+
ngModule: MessageToastModule,
|
|
25
|
+
providers: [
|
|
26
|
+
{
|
|
27
|
+
provide: MESSAGE_TOAST_CONFIG,
|
|
28
|
+
useValue: config
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
};
|
|
32
|
+
}
|
|
9
33
|
}
|
|
10
34
|
MessageToastModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: MessageToastModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
35
|
MessageToastModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: MessageToastModule, declarations: [MessageToastComponent, MessageToastContainerComponent], imports: [CommonModule], exports: [MessageToastComponent, MessageToastContainerComponent] });
|
|
12
|
-
MessageToastModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: MessageToastModule, providers: [
|
|
36
|
+
MessageToastModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: MessageToastModule, providers: [
|
|
37
|
+
MessageToastService,
|
|
38
|
+
DynamicComponentService,
|
|
39
|
+
// Provide default configuration which user can later override.
|
|
40
|
+
{
|
|
41
|
+
provide: MESSAGE_TOAST_CONFIG,
|
|
42
|
+
useValue: new MessageToastConfig()
|
|
43
|
+
}
|
|
44
|
+
], imports: [[CommonModule]] });
|
|
13
45
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: MessageToastModule, decorators: [{
|
|
14
46
|
type: NgModule,
|
|
15
47
|
args: [{
|
|
@@ -17,7 +49,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
|
|
|
17
49
|
imports: [CommonModule],
|
|
18
50
|
exports: [MessageToastComponent, MessageToastContainerComponent],
|
|
19
51
|
entryComponents: [MessageToastContainerComponent, MessageToastComponent],
|
|
20
|
-
providers: [
|
|
52
|
+
providers: [
|
|
53
|
+
MessageToastService,
|
|
54
|
+
DynamicComponentService,
|
|
55
|
+
// Provide default configuration which user can later override.
|
|
56
|
+
{
|
|
57
|
+
provide: MESSAGE_TOAST_CONFIG,
|
|
58
|
+
useValue: new MessageToastConfig()
|
|
59
|
+
}
|
|
60
|
+
]
|
|
21
61
|
}]
|
|
22
62
|
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS10b2FzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9tZXNzYWdlLXRvYXN0L21lc3NhZ2UtdG9hc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFaEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDcEYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDekcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBRXRFOzs7Ozs7R0FNRztBQWdCSCxNQUFNLE9BQU8sa0JBQWtCO0lBQzNCOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBMEI7UUFDeEMsT0FBTztZQUNILFFBQVEsRUFBRSxrQkFBa0I7WUFDNUIsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSxvQkFBb0I7b0JBQzdCLFFBQVEsRUFBRSxNQUFNO2lCQUNuQjthQUNKO1NBQ0osQ0FBQztJQUNOLENBQUM7OytHQWZRLGtCQUFrQjtnSEFBbEIsa0JBQWtCLGlCQWRaLHFCQUFxQixFQUFFLDhCQUE4QixhQUMxRCxZQUFZLGFBQ1oscUJBQXFCLEVBQUUsOEJBQThCO2dIQVl0RCxrQkFBa0IsYUFWaEI7UUFDUCxtQkFBbUI7UUFDbkIsdUJBQXVCO1FBQ3ZCLCtEQUErRDtRQUMvRDtZQUNJLE9BQU8sRUFBRSxvQkFBb0I7WUFDN0IsUUFBUSxFQUFFLElBQUksa0JBQWtCLEVBQUU7U0FDckM7S0FDSixZQVhRLENBQUMsWUFBWSxDQUFDOzJGQWFkLGtCQUFrQjtrQkFmOUIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSw4QkFBOEIsQ0FBQztvQkFDckUsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSw4QkFBOEIsQ0FBQztvQkFDaEUsZUFBZSxFQUFFLENBQUMsOEJBQThCLEVBQUUscUJBQXFCLENBQUM7b0JBQ3hFLFNBQVMsRUFBRTt3QkFDUCxtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsK0RBQStEO3dCQUMvRDs0QkFDSSxPQUFPLEVBQUUsb0JBQW9COzRCQUM3QixRQUFRLEVBQUUsSUFBSSxrQkFBa0IsRUFBRTt5QkFDckM7cUJBQ0o7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1FU1NBR0VfVE9BU1RfQ09ORklHIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgTWVzc2FnZVRvYXN0Q29uZmlnIH0gZnJvbSAnLi9tZXNzYWdlLXRvYXN0LXV0aWxzL21lc3NhZ2UtdG9hc3QtY29uZmlnJztcblxuaW1wb3J0IHsgTWVzc2FnZVRvYXN0Q29tcG9uZW50IH0gZnJvbSAnLi9tZXNzYWdlLXRvYXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZXNzYWdlVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi9tZXNzYWdlLXRvYXN0LXNlcnZpY2UvbWVzc2FnZS10b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IE1lc3NhZ2VUb2FzdENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vbWVzc2FnZS10b2FzdC11dGlscy9tZXNzYWdlLXRvYXN0LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdXRpbHMnO1xuXG4vKipcbiAqIEFkZHMgTWVzc2FnZSBUb2FzdCBmdW5jdGlvbmFsaXR5IHRvIHlvdXIgYXBwbGljYXRpb24uXG4gKlxuICogQ2FuIGJlIGltcG9ydGVkIGluIHR3byB3YXlzOlxuICogKiBQbGFpbiBNZXNzYWdlVG9hc3RNb2R1bGUgd2l0aCBkZWZhdWx0IGNvbmZpZ3VyYXRpb25cbiAqICogV2l0aCBgd2l0aENvbmZpZygpYCBtZXRob2Qgd2hpY2ggYWxsb3dzIHBhc3NpbmcgY3VzdG9tIGRlZmF1bHQgY29uZmlndXJhdGlvbi5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtNZXNzYWdlVG9hc3RDb21wb25lbnQsIE1lc3NhZ2VUb2FzdENvbnRhaW5lckNvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgZXhwb3J0czogW01lc3NhZ2VUb2FzdENvbXBvbmVudCwgTWVzc2FnZVRvYXN0Q29udGFpbmVyQ29tcG9uZW50XSxcbiAgICBlbnRyeUNvbXBvbmVudHM6IFtNZXNzYWdlVG9hc3RDb250YWluZXJDb21wb25lbnQsIE1lc3NhZ2VUb2FzdENvbXBvbmVudF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIE1lc3NhZ2VUb2FzdFNlcnZpY2UsXG4gICAgICAgIER5bmFtaWNDb21wb25lbnRTZXJ2aWNlLFxuICAgICAgICAvLyBQcm92aWRlIGRlZmF1bHQgY29uZmlndXJhdGlvbiB3aGljaCB1c2VyIGNhbiBsYXRlciBvdmVycmlkZS5cbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTUVTU0FHRV9UT0FTVF9DT05GSUcsXG4gICAgICAgICAgICB1c2VWYWx1ZTogbmV3IE1lc3NhZ2VUb2FzdENvbmZpZygpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2VUb2FzdE1vZHVsZSB7XG4gICAgLyoqXG4gICAgICogQWxsb3dzIGNvbmZpZ3VyaW5nIG1vZHVsZSBvbiBhIGdsb2JhbCBsZXZlbCB3aXRoIGN1c3RvbSBjb25maWd1cmF0aW9uLlxuICAgICAqIEBwYXJhbSBjb25maWcgVXNlcidzIGN1c3RvbSBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIHN0YXRpYyB3aXRoQ29uZmlnKGNvbmZpZzogTWVzc2FnZVRvYXN0Q29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxNZXNzYWdlVG9hc3RNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBNZXNzYWdlVG9hc3RNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IE1FU1NBR0VfVE9BU1RfQ09ORklHLFxuICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogY29uZmlnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -4,4 +4,5 @@ export * from './message-toast.component';
|
|
|
4
4
|
export * from './message-toast-utils/message-toast-ref';
|
|
5
5
|
export * from './message-toast-utils/message-toast-config';
|
|
6
6
|
export * from './message-toast-utils/message-toast-container.component';
|
|
7
|
-
|
|
7
|
+
export * from './constants';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL21lc3NhZ2UtdG9hc3QvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbWVzc2FnZS10b2FzdC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXNzYWdlLXRvYXN0LXNlcnZpY2UvbWVzc2FnZS10b2FzdC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbWVzc2FnZS10b2FzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXNzYWdlLXRvYXN0LXV0aWxzL21lc3NhZ2UtdG9hc3QtcmVmJztcbmV4cG9ydCAqIGZyb20gJy4vbWVzc2FnZS10b2FzdC11dGlscy9tZXNzYWdlLXRvYXN0LWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL21lc3NhZ2UtdG9hc3QtdXRpbHMvbWVzc2FnZS10b2FzdC1jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzJztcbiJdfQ==
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter, Type, TemplateRef, ViewContainerRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, ViewChild, Input, Output, HostBinding, HostListener, Injectable, NgModule } from '@angular/core';
|
|
2
|
+
import { InjectionToken, EventEmitter, Type, TemplateRef, ViewContainerRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, ViewChild, Input, Output, HostBinding, HostListener, Injectable, Inject, NgModule } from '@angular/core';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
4
|
import { Subject } from 'rxjs';
|
|
5
5
|
import * as i1 from '@fundamental-ngx/core/utils';
|
|
6
6
|
import { DynamicComponentService } from '@fundamental-ngx/core/utils';
|
|
7
7
|
import * as i2 from '@angular/cdk/a11y';
|
|
8
8
|
|
|
9
|
+
const MESSAGE_TOAST_CONFIG = new InjectionToken('MessageToastConfig');
|
|
10
|
+
|
|
9
11
|
/**
|
|
10
12
|
* Configuration for opening a message toast with the MessageToastService.
|
|
11
13
|
*/
|
|
@@ -276,9 +278,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
|
|
|
276
278
|
*/
|
|
277
279
|
class MessageToastService {
|
|
278
280
|
/** @hidden */
|
|
279
|
-
constructor(_dynamicComponentService, _liveAnnouncer) {
|
|
281
|
+
constructor(_dynamicComponentService, _liveAnnouncer, _defaultConfig) {
|
|
280
282
|
this._dynamicComponentService = _dynamicComponentService;
|
|
281
283
|
this._liveAnnouncer = _liveAnnouncer;
|
|
284
|
+
this._defaultConfig = _defaultConfig;
|
|
282
285
|
this._messageToasts = [];
|
|
283
286
|
}
|
|
284
287
|
/**
|
|
@@ -292,9 +295,11 @@ class MessageToastService {
|
|
|
292
295
|
* @param content Content of the message toast component.
|
|
293
296
|
* @param messageToastConfig Configuration of the message toast component.
|
|
294
297
|
*/
|
|
295
|
-
open(content, messageToastConfig =
|
|
298
|
+
open(content, messageToastConfig = {}) {
|
|
296
299
|
// Get default values from message toast model
|
|
297
|
-
|
|
300
|
+
const mergedConfig = Object.assign(Object.assign({}, this._defaultConfig), messageToastConfig);
|
|
301
|
+
// We need MessageToastConfig instance for correct DI in the component.
|
|
302
|
+
messageToastConfig = Object.assign(new MessageToastConfig(), mergedConfig);
|
|
298
303
|
// Instantiate message toast ref service
|
|
299
304
|
const service = new MessageToastRef();
|
|
300
305
|
service.data = messageToastConfig.data;
|
|
@@ -338,17 +343,52 @@ class MessageToastService {
|
|
|
338
343
|
this._messageToastContainerRef = undefined;
|
|
339
344
|
}
|
|
340
345
|
}
|
|
341
|
-
MessageToastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: MessageToastService, deps: [{ token: i1.DynamicComponentService }, { token: i2.LiveAnnouncer }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
346
|
+
MessageToastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: MessageToastService, deps: [{ token: i1.DynamicComponentService }, { token: i2.LiveAnnouncer }, { token: MESSAGE_TOAST_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
342
347
|
MessageToastService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: MessageToastService });
|
|
343
348
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: MessageToastService, decorators: [{
|
|
344
349
|
type: Injectable
|
|
345
|
-
}], ctorParameters: function () {
|
|
350
|
+
}], ctorParameters: function () {
|
|
351
|
+
return [{ type: i1.DynamicComponentService }, { type: i2.LiveAnnouncer }, { type: MessageToastConfig, decorators: [{
|
|
352
|
+
type: Inject,
|
|
353
|
+
args: [MESSAGE_TOAST_CONFIG]
|
|
354
|
+
}] }];
|
|
355
|
+
} });
|
|
346
356
|
|
|
357
|
+
/**
|
|
358
|
+
* Adds Message Toast functionality to your application.
|
|
359
|
+
*
|
|
360
|
+
* Can be imported in two ways:
|
|
361
|
+
* * Plain MessageToastModule with default configuration
|
|
362
|
+
* * With `withConfig()` method which allows passing custom default configuration.
|
|
363
|
+
*/
|
|
347
364
|
class MessageToastModule {
|
|
365
|
+
/**
|
|
366
|
+
* Allows configuring module on a global level with custom configuration.
|
|
367
|
+
* @param config User's custom configuration.
|
|
368
|
+
*/
|
|
369
|
+
static withConfig(config) {
|
|
370
|
+
return {
|
|
371
|
+
ngModule: MessageToastModule,
|
|
372
|
+
providers: [
|
|
373
|
+
{
|
|
374
|
+
provide: MESSAGE_TOAST_CONFIG,
|
|
375
|
+
useValue: config
|
|
376
|
+
}
|
|
377
|
+
]
|
|
378
|
+
};
|
|
379
|
+
}
|
|
348
380
|
}
|
|
349
381
|
MessageToastModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: MessageToastModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
350
382
|
MessageToastModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: MessageToastModule, declarations: [MessageToastComponent, MessageToastContainerComponent], imports: [CommonModule], exports: [MessageToastComponent, MessageToastContainerComponent] });
|
|
351
|
-
MessageToastModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: MessageToastModule, providers: [
|
|
383
|
+
MessageToastModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: MessageToastModule, providers: [
|
|
384
|
+
MessageToastService,
|
|
385
|
+
DynamicComponentService,
|
|
386
|
+
// Provide default configuration which user can later override.
|
|
387
|
+
{
|
|
388
|
+
provide: MESSAGE_TOAST_CONFIG,
|
|
389
|
+
useValue: new MessageToastConfig()
|
|
390
|
+
}
|
|
391
|
+
], imports: [[CommonModule]] });
|
|
352
392
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: MessageToastModule, decorators: [{
|
|
353
393
|
type: NgModule,
|
|
354
394
|
args: [{
|
|
@@ -356,7 +396,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
|
|
|
356
396
|
imports: [CommonModule],
|
|
357
397
|
exports: [MessageToastComponent, MessageToastContainerComponent],
|
|
358
398
|
entryComponents: [MessageToastContainerComponent, MessageToastComponent],
|
|
359
|
-
providers: [
|
|
399
|
+
providers: [
|
|
400
|
+
MessageToastService,
|
|
401
|
+
DynamicComponentService,
|
|
402
|
+
// Provide default configuration which user can later override.
|
|
403
|
+
{
|
|
404
|
+
provide: MESSAGE_TOAST_CONFIG,
|
|
405
|
+
useValue: new MessageToastConfig()
|
|
406
|
+
}
|
|
407
|
+
]
|
|
360
408
|
}]
|
|
361
409
|
}] });
|
|
362
410
|
|
|
@@ -364,5 +412,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
|
|
|
364
412
|
* Generated bundle index. Do not edit.
|
|
365
413
|
*/
|
|
366
414
|
|
|
367
|
-
export { MessageToastComponent, MessageToastConfig, MessageToastContainerComponent, MessageToastModule, MessageToastRef, MessageToastService };
|
|
415
|
+
export { MESSAGE_TOAST_CONFIG, MessageToastComponent, MessageToastConfig, MessageToastContainerComponent, MessageToastModule, MessageToastRef, MessageToastService };
|
|
368
416
|
//# sourceMappingURL=fundamental-ngx-core-message-toast.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-message-toast.mjs","sources":["../../../../../libs/core/src/lib/message-toast/message-toast-utils/message-toast-config.ts","../../../../../libs/core/src/lib/message-toast/message-toast-utils/message-toast-ref.ts","../../../../../libs/core/src/lib/message-toast/message-toast.component.ts","../../../../../libs/core/src/lib/message-toast/message-toast-utils/message-toast-container.component.ts","../../../../../libs/core/src/lib/message-toast/message-toast-service/message-toast.service.ts","../../../../../libs/core/src/lib/message-toast/message-toast.module.ts","../../../../../libs/core/src/lib/message-toast/fundamental-ngx-core-message-toast.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-inferrable-types */\nimport { DynamicComponentConfig } from '@fundamental-ngx/core/utils';\n\n/**\n * Configuration for opening a message toast with the MessageToastService.\n */\nexport class MessageToastConfig implements DynamicComponentConfig {\n /** Id for the message toast component. If omitted, a unique one is generated. */\n id?: string;\n\n /** Data being injected into the child component or template. */\n data?: any;\n\n /** Duration of time *in milliseconds* that the message toast will be visible. Set to -1 for indefinite. */\n duration?: number = 3000;\n\n /** Whether the message toast should stay visible if the cursor is over it. */\n mousePersist?: boolean = false;\n\n /** Aria label for the message toast component element. */\n ariaLabel?: string = null;\n\n /** Width of the message toast. */\n width?: string;\n\n /** Minimum width of the message toast. */\n minWidth?: string;\n\n /** Maximum width of the message toast. */\n maxWidth?: string;\n\n /** The container that the message toast is appended to. By default, it is appended to the body. */\n container?: HTMLElement | 'body' = 'body';\n}\n","import { Subject } from 'rxjs';\n/**\n * Reference to a message toast component generated via the MessageToastService.\n * It can be injected into the content component in the same way a service would be injected.\n * For a template, add let-messageToast to your ng-template tag. Now using *messageToast* in the template refers to this class.\n */\nexport class MessageToastRef {\n private readonly _afterTimeout = new Subject<void>();\n\n /** Observable that is triggered when the message toast has timed out. */\n afterTimeout = this._afterTimeout.asObservable();\n\n /** Data passed from the service open method. */\n data: any;\n\n /**\n * Hides the message toast.\n */\n timeout(): void {\n this._afterTimeout.next();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n NgZone,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { MessageToastConfig } from './message-toast-utils/message-toast-config';\nimport { MessageToastRef } from './message-toast-utils/message-toast-ref';\n\nlet messageToastUniqueId = 0;\n\n/**\n * The component that represents a message toast.\n */\n@Component({\n selector: 'fd-message-toast',\n template: `<ng-container #container>{{ message }}</ng-container>`,\n styleUrls: ['./message-toast.component.scss'],\n host: {\n '[attr.aria-label]': 'ariaLabel',\n '[attr.aria-live]': '\"polite\"',\n '[attr.id]': 'id',\n '[style.width]': 'width',\n '[style.min-width]': 'minWidth',\n '[style.max-width]': 'maxWidth'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MessageToastComponent implements OnInit, AfterViewInit {\n /** @hidden */\n constructor(\n private _elRef: ElementRef,\n private cdRef: ChangeDetectorRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n private ngZone: NgZone,\n @Optional() private messageToastConfig: MessageToastConfig,\n @Optional() private messageToastRef: MessageToastRef\n ) {\n this._setMessageToastConfig(messageToastConfig);\n }\n\n /** @hidden */\n @ViewChild('container', { read: ViewContainerRef })\n containerRef: ViewContainerRef;\n\n /** Id of the message toast. If omitted, a unique one is generated. */\n @Input()\n id: string = 'fd-message-toast-' + messageToastUniqueId++;\n\n /**\n * Duration of time *in milliseconds* that the message toast will be visible.\n * The standard value is 3000 ms.\n * The duration can be set to more than 3000 ms,\n * but it's not recommended to set it to less than 3000 ms.\n * Set to -1 for indefinite.\n */\n @Input()\n duration = 3000;\n\n /** Whether the message toast should stay open if the cursor is over it. */\n @Input()\n mousePersist = false;\n\n /** Aria label for the message toast component element. */\n @Input()\n ariaLabel: string = null;\n\n /** Alternative way of passing in a message to the message toast. */\n @Input()\n message: string;\n\n /** Width of the message toast. */\n @Input()\n width: string;\n\n /** Minimum width of the message toast. */\n @Input()\n minWidth: string;\n\n /**\n * Maximum width of the message toast.\n * The standard maximum width is 15rem.\n * It's not recommended to extend the width to more than 35rem.\n */\n @Input()\n maxWidth: string;\n\n /** Event fired when the message toast is timeout. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onHide: EventEmitter<undefined> = new EventEmitter<undefined>();\n\n /** @hidden */\n mouseOverMessageToast = false;\n\n /** @hidden */\n componentRef: ComponentRef<any> | EmbeddedViewRef<any>;\n\n /** @hidden */\n childContent: Type<any> | TemplateRef<any> | string = undefined;\n\n /** @hidden */\n @HostBinding('class.fd-message-toast')\n messageToastClass = true;\n\n /** @hidden */\n ngOnInit(): void {\n if (this.messageToastRef) {\n this.open();\n }\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 * Closes the message toast\n */\n close(): void {\n if (this.messageToastRef) {\n this.messageToastRef.timeout();\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.onHide.emit();\n }\n\n /**\n * Opens the message toast.\n */\n open(): void {\n if (!this.messageToastRef) {\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 if (this.duration >= 0) {\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n if (!this.mousePersist) {\n this.ngZone.run(() => this.close());\n return;\n }\n const wait = (): void => {\n if (this.mouseOverMessageToast === true) {\n setTimeout(wait, 500);\n } else {\n this.ngZone.run(() => this.close());\n }\n };\n wait();\n }, this.duration);\n });\n }\n }\n\n /** @hidden */\n @HostListener('mouseenter')\n handleMessageToastMouseEnterEvent(): void {\n this.mouseOverMessageToast = true;\n }\n\n /** @hidden */\n @HostListener('mouseleave')\n handleMessageToastMouseLeaveEvent(): void {\n this.mouseOverMessageToast = false;\n }\n\n /** @hidden */\n private _loadFromTemplate(template: TemplateRef<any>): void {\n const context = {\n $implicit: this.messageToastRef\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 _setMessageToastConfig(messageToastConfig: MessageToastConfig): void {\n Object.keys(messageToastConfig || {})\n .filter((key) => key !== 'data' && key !== 'container')\n .forEach((key) => (this[key] = messageToastConfig[key]));\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-message-toast-container',\n template: ``,\n styles: [\n `\n .fd-message-toast-container {\n position: fixed;\n display: flex;\n flex-direction: column;\n z-index: 5000;\n align-items: center;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n }\n `\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MessageToastContainerComponent {\n /** @hidden */\n @HostBinding('class.fd-message-toast-container')\n fdMessageToastContainerClass = true;\n\n /** Role attribute */\n @Input()\n @HostBinding('attr.role')\n role = 'alert';\n}\n","import { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Injectable, ComponentRef, TemplateRef, Type } from '@angular/core';\nimport { MessageToastComponent } from '../message-toast.component';\nimport { MessageToastContainerComponent } from '../message-toast-utils/message-toast-container.component';\nimport { MessageToastRef } from '../message-toast-utils/message-toast-ref';\nimport { MessageToastConfig } from '../message-toast-utils/message-toast-config';\nimport { DynamicComponentService } from '@fundamental-ngx/core/utils';\n\n/**\n * Service for generating message toasts dynamically.\n */\n@Injectable()\nexport class MessageToastService {\n private _messageToasts: ComponentRef<MessageToastComponent>[] = [];\n private _messageToastContainerRef: ComponentRef<MessageToastContainerComponent>;\n\n /** @hidden */\n constructor(private _dynamicComponentService: DynamicComponentService, private _liveAnnouncer: LiveAnnouncer) {}\n\n /**\n * Returns true if there are some message toasts currently open. False otherwise.\n */\n hasOpenMessageToasts(): boolean {\n return this._messageToasts && this._messageToasts.length > 0;\n }\n\n /**\n * Opens a message toast component with a content of type TemplateRef, Component Type or String.\n * @param content Content of the message toast component.\n * @param messageToastConfig Configuration of the message toast component.\n */\n open(\n content: TemplateRef<any> | Type<any> | string,\n messageToastConfig: MessageToastConfig = new MessageToastConfig()\n ): MessageToastRef {\n // Get default values from message toast model\n messageToastConfig = Object.assign(new MessageToastConfig(), messageToastConfig);\n\n // Instantiate message toast ref service\n const service: MessageToastRef = new MessageToastRef();\n service.data = messageToastConfig.data;\n\n // If empty or undefined message toast array, create container\n if (!this._messageToasts || this._messageToasts.length === 0 || !this._messageToastContainerRef) {\n this._messageToastContainerRef =\n this._dynamicComponentService.createDynamicComponent<MessageToastContainerComponent>(\n content,\n MessageToastContainerComponent,\n messageToastConfig\n );\n }\n\n // Define Container to put backdrop and component to container\n messageToastConfig.container = this._messageToastContainerRef.location.nativeElement;\n\n const component = this._dynamicComponentService.createDynamicComponent<MessageToastComponent>(\n content,\n MessageToastComponent,\n messageToastConfig,\n { services: [service, messageToastConfig] }\n );\n\n component.location.nativeElement.style.marginBottom = '10px';\n\n // Subscription to close message toast from ref\n const refSub = service.afterTimeout.subscribe(() => {\n this._destroyMessageToastComponent(component);\n refSub.unsubscribe();\n });\n\n this._messageToasts.push(component);\n\n return service;\n }\n\n /**\n * Hides all message toasts opened by the service.\n */\n hideAll(): void {\n this._messageToasts.forEach((ref) => {\n this._destroyMessageToastComponent(ref);\n });\n }\n\n /** @hidden */\n private _destroyMessageToastComponent(messageToast: ComponentRef<MessageToastComponent>): void {\n this._messageToasts[this._messageToasts.indexOf(messageToast)] = null;\n this._messageToasts = this._messageToasts.filter((item) => item !== null && item !== undefined);\n this._dynamicComponentService.destroyComponent(messageToast);\n\n if (this._messageToastContainerRef && (!this._messageToasts || this._messageToasts.length === 0)) {\n this._destroyMessageToastContainer();\n }\n }\n\n /** @hidden */\n private _destroyMessageToastContainer(): void {\n this._dynamicComponentService.destroyComponent(this._messageToastContainerRef);\n this._messageToastContainerRef = undefined;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MessageToastComponent } from './message-toast.component';\nimport { MessageToastService } from './message-toast-service/message-toast.service';\nimport { MessageToastContainerComponent } from './message-toast-utils/message-toast-container.component';\nimport { DynamicComponentService } from '@fundamental-ngx/core/utils';\n\n@NgModule({\n declarations: [MessageToastComponent, MessageToastContainerComponent],\n imports: [CommonModule],\n exports: [MessageToastComponent, MessageToastContainerComponent],\n entryComponents: [MessageToastContainerComponent, MessageToastComponent],\n providers: [MessageToastService, DynamicComponentService]\n})\nexport class MessageToastModule {}\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-message-toast.mjs","sources":["../../../../../libs/core/src/lib/message-toast/constants.ts","../../../../../libs/core/src/lib/message-toast/message-toast-utils/message-toast-config.ts","../../../../../libs/core/src/lib/message-toast/message-toast-utils/message-toast-ref.ts","../../../../../libs/core/src/lib/message-toast/message-toast.component.ts","../../../../../libs/core/src/lib/message-toast/message-toast-utils/message-toast-container.component.ts","../../../../../libs/core/src/lib/message-toast/message-toast-service/message-toast.service.ts","../../../../../libs/core/src/lib/message-toast/message-toast.module.ts","../../../../../libs/core/src/lib/message-toast/fundamental-ngx-core-message-toast.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { MessageToastConfig } from './message-toast-utils/message-toast-config';\n\nexport const MESSAGE_TOAST_CONFIG = new InjectionToken<MessageToastConfig>('MessageToastConfig');\n","/* eslint-disable @typescript-eslint/no-inferrable-types */\nimport { DynamicComponentConfig } from '@fundamental-ngx/core/utils';\n\n/**\n * Configuration for opening a message toast with the MessageToastService.\n */\nexport class MessageToastConfig implements DynamicComponentConfig {\n /** Id for the message toast component. If omitted, a unique one is generated. */\n id?: string;\n\n /** Data being injected into the child component or template. */\n data?: any;\n\n /** Duration of time *in milliseconds* that the message toast will be visible. Set to -1 for indefinite. */\n duration?: number = 3000;\n\n /** Whether the message toast should stay visible if the cursor is over it. */\n mousePersist?: boolean = false;\n\n /** Aria label for the message toast component element. */\n ariaLabel?: string = null;\n\n /** Width of the message toast. */\n width?: string;\n\n /** Minimum width of the message toast. */\n minWidth?: string;\n\n /** Maximum width of the message toast. */\n maxWidth?: string;\n\n /** The container that the message toast is appended to. By default, it is appended to the body. */\n container?: HTMLElement | 'body' = 'body';\n}\n","import { Subject } from 'rxjs';\n/**\n * Reference to a message toast component generated via the MessageToastService.\n * It can be injected into the content component in the same way a service would be injected.\n * For a template, add let-messageToast to your ng-template tag. Now using *messageToast* in the template refers to this class.\n */\nexport class MessageToastRef {\n private readonly _afterTimeout = new Subject<void>();\n\n /** Observable that is triggered when the message toast has timed out. */\n afterTimeout = this._afterTimeout.asObservable();\n\n /** Data passed from the service open method. */\n data: any;\n\n /**\n * Hides the message toast.\n */\n timeout(): void {\n this._afterTimeout.next();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n NgZone,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { MessageToastConfig } from './message-toast-utils/message-toast-config';\nimport { MessageToastRef } from './message-toast-utils/message-toast-ref';\n\nlet messageToastUniqueId = 0;\n\n/**\n * The component that represents a message toast.\n */\n@Component({\n selector: 'fd-message-toast',\n template: `<ng-container #container>{{ message }}</ng-container>`,\n styleUrls: ['./message-toast.component.scss'],\n host: {\n '[attr.aria-label]': 'ariaLabel',\n '[attr.aria-live]': '\"polite\"',\n '[attr.id]': 'id',\n '[style.width]': 'width',\n '[style.min-width]': 'minWidth',\n '[style.max-width]': 'maxWidth'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MessageToastComponent implements OnInit, AfterViewInit {\n /** @hidden */\n constructor(\n private _elRef: ElementRef,\n private cdRef: ChangeDetectorRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n private ngZone: NgZone,\n @Optional() private messageToastConfig: MessageToastConfig,\n @Optional() private messageToastRef: MessageToastRef\n ) {\n this._setMessageToastConfig(messageToastConfig);\n }\n\n /** @hidden */\n @ViewChild('container', { read: ViewContainerRef })\n containerRef: ViewContainerRef;\n\n /** Id of the message toast. If omitted, a unique one is generated. */\n @Input()\n id: string = 'fd-message-toast-' + messageToastUniqueId++;\n\n /**\n * Duration of time *in milliseconds* that the message toast will be visible.\n * The standard value is 3000 ms.\n * The duration can be set to more than 3000 ms,\n * but it's not recommended to set it to less than 3000 ms.\n * Set to -1 for indefinite.\n */\n @Input()\n duration = 3000;\n\n /** Whether the message toast should stay open if the cursor is over it. */\n @Input()\n mousePersist = false;\n\n /** Aria label for the message toast component element. */\n @Input()\n ariaLabel: string = null;\n\n /** Alternative way of passing in a message to the message toast. */\n @Input()\n message: string;\n\n /** Width of the message toast. */\n @Input()\n width: string;\n\n /** Minimum width of the message toast. */\n @Input()\n minWidth: string;\n\n /**\n * Maximum width of the message toast.\n * The standard maximum width is 15rem.\n * It's not recommended to extend the width to more than 35rem.\n */\n @Input()\n maxWidth: string;\n\n /** Event fired when the message toast is timeout. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onHide: EventEmitter<undefined> = new EventEmitter<undefined>();\n\n /** @hidden */\n mouseOverMessageToast = false;\n\n /** @hidden */\n componentRef: ComponentRef<any> | EmbeddedViewRef<any>;\n\n /** @hidden */\n childContent: Type<any> | TemplateRef<any> | string = undefined;\n\n /** @hidden */\n @HostBinding('class.fd-message-toast')\n messageToastClass = true;\n\n /** @hidden */\n ngOnInit(): void {\n if (this.messageToastRef) {\n this.open();\n }\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 * Closes the message toast\n */\n close(): void {\n if (this.messageToastRef) {\n this.messageToastRef.timeout();\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.onHide.emit();\n }\n\n /**\n * Opens the message toast.\n */\n open(): void {\n if (!this.messageToastRef) {\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 if (this.duration >= 0) {\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n if (!this.mousePersist) {\n this.ngZone.run(() => this.close());\n return;\n }\n const wait = (): void => {\n if (this.mouseOverMessageToast === true) {\n setTimeout(wait, 500);\n } else {\n this.ngZone.run(() => this.close());\n }\n };\n wait();\n }, this.duration);\n });\n }\n }\n\n /** @hidden */\n @HostListener('mouseenter')\n handleMessageToastMouseEnterEvent(): void {\n this.mouseOverMessageToast = true;\n }\n\n /** @hidden */\n @HostListener('mouseleave')\n handleMessageToastMouseLeaveEvent(): void {\n this.mouseOverMessageToast = false;\n }\n\n /** @hidden */\n private _loadFromTemplate(template: TemplateRef<any>): void {\n const context = {\n $implicit: this.messageToastRef\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 _setMessageToastConfig(messageToastConfig: MessageToastConfig): void {\n Object.keys(messageToastConfig || {})\n .filter((key) => key !== 'data' && key !== 'container')\n .forEach((key) => (this[key] = messageToastConfig[key]));\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-message-toast-container',\n template: ``,\n styles: [\n `\n .fd-message-toast-container {\n position: fixed;\n display: flex;\n flex-direction: column;\n z-index: 5000;\n align-items: center;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n }\n `\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MessageToastContainerComponent {\n /** @hidden */\n @HostBinding('class.fd-message-toast-container')\n fdMessageToastContainerClass = true;\n\n /** Role attribute */\n @Input()\n @HostBinding('attr.role')\n role = 'alert';\n}\n","import { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Injectable, ComponentRef, TemplateRef, Type, Inject } from '@angular/core';\nimport { MESSAGE_TOAST_CONFIG } from '../constants';\nimport { MessageToastComponent } from '../message-toast.component';\nimport { MessageToastContainerComponent } from '../message-toast-utils/message-toast-container.component';\nimport { MessageToastRef } from '../message-toast-utils/message-toast-ref';\nimport { MessageToastConfig } from '../message-toast-utils/message-toast-config';\nimport { DynamicComponentService } from '@fundamental-ngx/core/utils';\n\n/**\n * Service for generating message toasts dynamically.\n */\n@Injectable()\nexport class MessageToastService {\n private _messageToasts: ComponentRef<MessageToastComponent>[] = [];\n private _messageToastContainerRef: ComponentRef<MessageToastContainerComponent>;\n\n /** @hidden */\n constructor(\n private _dynamicComponentService: DynamicComponentService,\n private _liveAnnouncer: LiveAnnouncer,\n @Inject(MESSAGE_TOAST_CONFIG) private _defaultConfig: MessageToastConfig\n ) {}\n\n /**\n * Returns true if there are some message toasts currently open. False otherwise.\n */\n hasOpenMessageToasts(): boolean {\n return this._messageToasts && this._messageToasts.length > 0;\n }\n\n /**\n * Opens a message toast component with a content of type TemplateRef, Component Type or String.\n * @param content Content of the message toast component.\n * @param messageToastConfig Configuration of the message toast component.\n */\n open(content: TemplateRef<any> | Type<any> | string, messageToastConfig: MessageToastConfig = {}): MessageToastRef {\n // Get default values from message toast model\n const mergedConfig = { ...this._defaultConfig, ...messageToastConfig };\n\n // We need MessageToastConfig instance for correct DI in the component.\n messageToastConfig = Object.assign(new MessageToastConfig(), mergedConfig);\n\n // Instantiate message toast ref service\n const service: MessageToastRef = new MessageToastRef();\n service.data = messageToastConfig.data;\n\n // If empty or undefined message toast array, create container\n if (!this._messageToasts || this._messageToasts.length === 0 || !this._messageToastContainerRef) {\n this._messageToastContainerRef =\n this._dynamicComponentService.createDynamicComponent<MessageToastContainerComponent>(\n content,\n MessageToastContainerComponent,\n messageToastConfig\n );\n }\n\n // Define Container to put backdrop and component to container\n messageToastConfig.container = this._messageToastContainerRef.location.nativeElement;\n\n const component = this._dynamicComponentService.createDynamicComponent<MessageToastComponent>(\n content,\n MessageToastComponent,\n messageToastConfig,\n { services: [service, messageToastConfig] }\n );\n\n component.location.nativeElement.style.marginBottom = '10px';\n\n // Subscription to close message toast from ref\n const refSub = service.afterTimeout.subscribe(() => {\n this._destroyMessageToastComponent(component);\n refSub.unsubscribe();\n });\n\n this._messageToasts.push(component);\n\n return service;\n }\n\n /**\n * Hides all message toasts opened by the service.\n */\n hideAll(): void {\n this._messageToasts.forEach((ref) => {\n this._destroyMessageToastComponent(ref);\n });\n }\n\n /** @hidden */\n private _destroyMessageToastComponent(messageToast: ComponentRef<MessageToastComponent>): void {\n this._messageToasts[this._messageToasts.indexOf(messageToast)] = null;\n this._messageToasts = this._messageToasts.filter((item) => item !== null && item !== undefined);\n this._dynamicComponentService.destroyComponent(messageToast);\n\n if (this._messageToastContainerRef && (!this._messageToasts || this._messageToasts.length === 0)) {\n this._destroyMessageToastContainer();\n }\n }\n\n /** @hidden */\n private _destroyMessageToastContainer(): void {\n this._dynamicComponentService.destroyComponent(this._messageToastContainerRef);\n this._messageToastContainerRef = undefined;\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MESSAGE_TOAST_CONFIG } from './constants';\nimport { MessageToastConfig } from './message-toast-utils/message-toast-config';\n\nimport { MessageToastComponent } from './message-toast.component';\nimport { MessageToastService } from './message-toast-service/message-toast.service';\nimport { MessageToastContainerComponent } from './message-toast-utils/message-toast-container.component';\nimport { DynamicComponentService } from '@fundamental-ngx/core/utils';\n\n/**\n * Adds Message Toast functionality to your application.\n *\n * Can be imported in two ways:\n * * Plain MessageToastModule with default configuration\n * * With `withConfig()` method which allows passing custom default configuration.\n */\n@NgModule({\n declarations: [MessageToastComponent, MessageToastContainerComponent],\n imports: [CommonModule],\n exports: [MessageToastComponent, MessageToastContainerComponent],\n entryComponents: [MessageToastContainerComponent, MessageToastComponent],\n providers: [\n MessageToastService,\n DynamicComponentService,\n // Provide default configuration which user can later override.\n {\n provide: MESSAGE_TOAST_CONFIG,\n useValue: new MessageToastConfig()\n }\n ]\n})\nexport class MessageToastModule {\n /**\n * Allows configuring module on a global level with custom configuration.\n * @param config User's custom configuration.\n */\n static withConfig(config: MessageToastConfig): ModuleWithProviders<MessageToastModule> {\n return {\n ngModule: MessageToastModule,\n providers: [\n {\n provide: MESSAGE_TOAST_CONFIG,\n useValue: config\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter, Type, TemplateRef, ViewContainerRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, ViewChild, Input, Output, HostBinding, HostListener, Injectable, NgModule } from '@angular/core';
|
|
2
|
+
import { InjectionToken, EventEmitter, Type, TemplateRef, ViewContainerRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, ViewChild, Input, Output, HostBinding, HostListener, Injectable, Inject, NgModule } from '@angular/core';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
4
|
import { Subject } from 'rxjs';
|
|
5
5
|
import * as i2 from '@angular/cdk/a11y';
|
|
6
6
|
import * as i1 from '@fundamental-ngx/core/utils';
|
|
7
7
|
import { DynamicComponentService } from '@fundamental-ngx/core/utils';
|
|
8
8
|
|
|
9
|
+
const MESSAGE_TOAST_CONFIG = new InjectionToken('MessageToastConfig');
|
|
10
|
+
|
|
9
11
|
/**
|
|
10
12
|
* Configuration for opening a message toast with the MessageToastService.
|
|
11
13
|
*/
|
|
@@ -274,9 +276,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
|
|
|
274
276
|
*/
|
|
275
277
|
class MessageToastService {
|
|
276
278
|
/** @hidden */
|
|
277
|
-
constructor(_dynamicComponentService, _liveAnnouncer) {
|
|
279
|
+
constructor(_dynamicComponentService, _liveAnnouncer, _defaultConfig) {
|
|
278
280
|
this._dynamicComponentService = _dynamicComponentService;
|
|
279
281
|
this._liveAnnouncer = _liveAnnouncer;
|
|
282
|
+
this._defaultConfig = _defaultConfig;
|
|
280
283
|
this._messageToasts = [];
|
|
281
284
|
}
|
|
282
285
|
/**
|
|
@@ -290,9 +293,11 @@ class MessageToastService {
|
|
|
290
293
|
* @param content Content of the message toast component.
|
|
291
294
|
* @param messageToastConfig Configuration of the message toast component.
|
|
292
295
|
*/
|
|
293
|
-
open(content, messageToastConfig =
|
|
296
|
+
open(content, messageToastConfig = {}) {
|
|
294
297
|
// Get default values from message toast model
|
|
295
|
-
|
|
298
|
+
const mergedConfig = { ...this._defaultConfig, ...messageToastConfig };
|
|
299
|
+
// We need MessageToastConfig instance for correct DI in the component.
|
|
300
|
+
messageToastConfig = Object.assign(new MessageToastConfig(), mergedConfig);
|
|
296
301
|
// Instantiate message toast ref service
|
|
297
302
|
const service = new MessageToastRef();
|
|
298
303
|
service.data = messageToastConfig.data;
|
|
@@ -336,17 +341,50 @@ class MessageToastService {
|
|
|
336
341
|
this._messageToastContainerRef = undefined;
|
|
337
342
|
}
|
|
338
343
|
}
|
|
339
|
-
MessageToastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: MessageToastService, deps: [{ token: i1.DynamicComponentService }, { token: i2.LiveAnnouncer }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
344
|
+
MessageToastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: MessageToastService, deps: [{ token: i1.DynamicComponentService }, { token: i2.LiveAnnouncer }, { token: MESSAGE_TOAST_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
340
345
|
MessageToastService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: MessageToastService });
|
|
341
346
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: MessageToastService, decorators: [{
|
|
342
347
|
type: Injectable
|
|
343
|
-
}], ctorParameters: function () { return [{ type: i1.DynamicComponentService }, { type: i2.LiveAnnouncer }
|
|
348
|
+
}], ctorParameters: function () { return [{ type: i1.DynamicComponentService }, { type: i2.LiveAnnouncer }, { type: MessageToastConfig, decorators: [{
|
|
349
|
+
type: Inject,
|
|
350
|
+
args: [MESSAGE_TOAST_CONFIG]
|
|
351
|
+
}] }]; } });
|
|
344
352
|
|
|
353
|
+
/**
|
|
354
|
+
* Adds Message Toast functionality to your application.
|
|
355
|
+
*
|
|
356
|
+
* Can be imported in two ways:
|
|
357
|
+
* * Plain MessageToastModule with default configuration
|
|
358
|
+
* * With `withConfig()` method which allows passing custom default configuration.
|
|
359
|
+
*/
|
|
345
360
|
class MessageToastModule {
|
|
361
|
+
/**
|
|
362
|
+
* Allows configuring module on a global level with custom configuration.
|
|
363
|
+
* @param config User's custom configuration.
|
|
364
|
+
*/
|
|
365
|
+
static withConfig(config) {
|
|
366
|
+
return {
|
|
367
|
+
ngModule: MessageToastModule,
|
|
368
|
+
providers: [
|
|
369
|
+
{
|
|
370
|
+
provide: MESSAGE_TOAST_CONFIG,
|
|
371
|
+
useValue: config
|
|
372
|
+
}
|
|
373
|
+
]
|
|
374
|
+
};
|
|
375
|
+
}
|
|
346
376
|
}
|
|
347
377
|
MessageToastModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: MessageToastModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
348
378
|
MessageToastModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: MessageToastModule, declarations: [MessageToastComponent, MessageToastContainerComponent], imports: [CommonModule], exports: [MessageToastComponent, MessageToastContainerComponent] });
|
|
349
|
-
MessageToastModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: MessageToastModule, providers: [
|
|
379
|
+
MessageToastModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: MessageToastModule, providers: [
|
|
380
|
+
MessageToastService,
|
|
381
|
+
DynamicComponentService,
|
|
382
|
+
// Provide default configuration which user can later override.
|
|
383
|
+
{
|
|
384
|
+
provide: MESSAGE_TOAST_CONFIG,
|
|
385
|
+
useValue: new MessageToastConfig()
|
|
386
|
+
}
|
|
387
|
+
], imports: [[CommonModule]] });
|
|
350
388
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: MessageToastModule, decorators: [{
|
|
351
389
|
type: NgModule,
|
|
352
390
|
args: [{
|
|
@@ -354,7 +392,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
|
|
|
354
392
|
imports: [CommonModule],
|
|
355
393
|
exports: [MessageToastComponent, MessageToastContainerComponent],
|
|
356
394
|
entryComponents: [MessageToastContainerComponent, MessageToastComponent],
|
|
357
|
-
providers: [
|
|
395
|
+
providers: [
|
|
396
|
+
MessageToastService,
|
|
397
|
+
DynamicComponentService,
|
|
398
|
+
// Provide default configuration which user can later override.
|
|
399
|
+
{
|
|
400
|
+
provide: MESSAGE_TOAST_CONFIG,
|
|
401
|
+
useValue: new MessageToastConfig()
|
|
402
|
+
}
|
|
403
|
+
]
|
|
358
404
|
}]
|
|
359
405
|
}] });
|
|
360
406
|
|
|
@@ -362,5 +408,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
|
|
|
362
408
|
* Generated bundle index. Do not edit.
|
|
363
409
|
*/
|
|
364
410
|
|
|
365
|
-
export { MessageToastComponent, MessageToastConfig, MessageToastContainerComponent, MessageToastModule, MessageToastRef, MessageToastService };
|
|
411
|
+
export { MESSAGE_TOAST_CONFIG, MessageToastComponent, MessageToastConfig, MessageToastContainerComponent, MessageToastModule, MessageToastRef, MessageToastService };
|
|
366
412
|
//# sourceMappingURL=fundamental-ngx-core-message-toast.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-message-toast.mjs","sources":["../../../../../libs/core/src/lib/message-toast/message-toast-utils/message-toast-config.ts","../../../../../libs/core/src/lib/message-toast/message-toast-utils/message-toast-ref.ts","../../../../../libs/core/src/lib/message-toast/message-toast.component.ts","../../../../../libs/core/src/lib/message-toast/message-toast-utils/message-toast-container.component.ts","../../../../../libs/core/src/lib/message-toast/message-toast-service/message-toast.service.ts","../../../../../libs/core/src/lib/message-toast/message-toast.module.ts","../../../../../libs/core/src/lib/message-toast/fundamental-ngx-core-message-toast.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-inferrable-types */\nimport { DynamicComponentConfig } from '@fundamental-ngx/core/utils';\n\n/**\n * Configuration for opening a message toast with the MessageToastService.\n */\nexport class MessageToastConfig implements DynamicComponentConfig {\n /** Id for the message toast component. If omitted, a unique one is generated. */\n id?: string;\n\n /** Data being injected into the child component or template. */\n data?: any;\n\n /** Duration of time *in milliseconds* that the message toast will be visible. Set to -1 for indefinite. */\n duration?: number = 3000;\n\n /** Whether the message toast should stay visible if the cursor is over it. */\n mousePersist?: boolean = false;\n\n /** Aria label for the message toast component element. */\n ariaLabel?: string = null;\n\n /** Width of the message toast. */\n width?: string;\n\n /** Minimum width of the message toast. */\n minWidth?: string;\n\n /** Maximum width of the message toast. */\n maxWidth?: string;\n\n /** The container that the message toast is appended to. By default, it is appended to the body. */\n container?: HTMLElement | 'body' = 'body';\n}\n","import { Subject } from 'rxjs';\n/**\n * Reference to a message toast component generated via the MessageToastService.\n * It can be injected into the content component in the same way a service would be injected.\n * For a template, add let-messageToast to your ng-template tag. Now using *messageToast* in the template refers to this class.\n */\nexport class MessageToastRef {\n private readonly _afterTimeout = new Subject<void>();\n\n /** Observable that is triggered when the message toast has timed out. */\n afterTimeout = this._afterTimeout.asObservable();\n\n /** Data passed from the service open method. */\n data: any;\n\n /**\n * Hides the message toast.\n */\n timeout(): void {\n this._afterTimeout.next();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n NgZone,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { MessageToastConfig } from './message-toast-utils/message-toast-config';\nimport { MessageToastRef } from './message-toast-utils/message-toast-ref';\n\nlet messageToastUniqueId = 0;\n\n/**\n * The component that represents a message toast.\n */\n@Component({\n selector: 'fd-message-toast',\n template: `<ng-container #container>{{ message }}</ng-container>`,\n styleUrls: ['./message-toast.component.scss'],\n host: {\n '[attr.aria-label]': 'ariaLabel',\n '[attr.aria-live]': '\"polite\"',\n '[attr.id]': 'id',\n '[style.width]': 'width',\n '[style.min-width]': 'minWidth',\n '[style.max-width]': 'maxWidth'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MessageToastComponent implements OnInit, AfterViewInit {\n /** @hidden */\n constructor(\n private _elRef: ElementRef,\n private cdRef: ChangeDetectorRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n private ngZone: NgZone,\n @Optional() private messageToastConfig: MessageToastConfig,\n @Optional() private messageToastRef: MessageToastRef\n ) {\n this._setMessageToastConfig(messageToastConfig);\n }\n\n /** @hidden */\n @ViewChild('container', { read: ViewContainerRef })\n containerRef: ViewContainerRef;\n\n /** Id of the message toast. If omitted, a unique one is generated. */\n @Input()\n id: string = 'fd-message-toast-' + messageToastUniqueId++;\n\n /**\n * Duration of time *in milliseconds* that the message toast will be visible.\n * The standard value is 3000 ms.\n * The duration can be set to more than 3000 ms,\n * but it's not recommended to set it to less than 3000 ms.\n * Set to -1 for indefinite.\n */\n @Input()\n duration = 3000;\n\n /** Whether the message toast should stay open if the cursor is over it. */\n @Input()\n mousePersist = false;\n\n /** Aria label for the message toast component element. */\n @Input()\n ariaLabel: string = null;\n\n /** Alternative way of passing in a message to the message toast. */\n @Input()\n message: string;\n\n /** Width of the message toast. */\n @Input()\n width: string;\n\n /** Minimum width of the message toast. */\n @Input()\n minWidth: string;\n\n /**\n * Maximum width of the message toast.\n * The standard maximum width is 15rem.\n * It's not recommended to extend the width to more than 35rem.\n */\n @Input()\n maxWidth: string;\n\n /** Event fired when the message toast is timeout. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onHide: EventEmitter<undefined> = new EventEmitter<undefined>();\n\n /** @hidden */\n mouseOverMessageToast = false;\n\n /** @hidden */\n componentRef: ComponentRef<any> | EmbeddedViewRef<any>;\n\n /** @hidden */\n childContent: Type<any> | TemplateRef<any> | string = undefined;\n\n /** @hidden */\n @HostBinding('class.fd-message-toast')\n messageToastClass = true;\n\n /** @hidden */\n ngOnInit(): void {\n if (this.messageToastRef) {\n this.open();\n }\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 * Closes the message toast\n */\n close(): void {\n if (this.messageToastRef) {\n this.messageToastRef.timeout();\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.onHide.emit();\n }\n\n /**\n * Opens the message toast.\n */\n open(): void {\n if (!this.messageToastRef) {\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 if (this.duration >= 0) {\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n if (!this.mousePersist) {\n this.ngZone.run(() => this.close());\n return;\n }\n const wait = (): void => {\n if (this.mouseOverMessageToast === true) {\n setTimeout(wait, 500);\n } else {\n this.ngZone.run(() => this.close());\n }\n };\n wait();\n }, this.duration);\n });\n }\n }\n\n /** @hidden */\n @HostListener('mouseenter')\n handleMessageToastMouseEnterEvent(): void {\n this.mouseOverMessageToast = true;\n }\n\n /** @hidden */\n @HostListener('mouseleave')\n handleMessageToastMouseLeaveEvent(): void {\n this.mouseOverMessageToast = false;\n }\n\n /** @hidden */\n private _loadFromTemplate(template: TemplateRef<any>): void {\n const context = {\n $implicit: this.messageToastRef\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 _setMessageToastConfig(messageToastConfig: MessageToastConfig): void {\n Object.keys(messageToastConfig || {})\n .filter((key) => key !== 'data' && key !== 'container')\n .forEach((key) => (this[key] = messageToastConfig[key]));\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-message-toast-container',\n template: ``,\n styles: [\n `\n .fd-message-toast-container {\n position: fixed;\n display: flex;\n flex-direction: column;\n z-index: 5000;\n align-items: center;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n }\n `\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MessageToastContainerComponent {\n /** @hidden */\n @HostBinding('class.fd-message-toast-container')\n fdMessageToastContainerClass = true;\n\n /** Role attribute */\n @Input()\n @HostBinding('attr.role')\n role = 'alert';\n}\n","import { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Injectable, ComponentRef, TemplateRef, Type } from '@angular/core';\nimport { MessageToastComponent } from '../message-toast.component';\nimport { MessageToastContainerComponent } from '../message-toast-utils/message-toast-container.component';\nimport { MessageToastRef } from '../message-toast-utils/message-toast-ref';\nimport { MessageToastConfig } from '../message-toast-utils/message-toast-config';\nimport { DynamicComponentService } from '@fundamental-ngx/core/utils';\n\n/**\n * Service for generating message toasts dynamically.\n */\n@Injectable()\nexport class MessageToastService {\n private _messageToasts: ComponentRef<MessageToastComponent>[] = [];\n private _messageToastContainerRef: ComponentRef<MessageToastContainerComponent>;\n\n /** @hidden */\n constructor(private _dynamicComponentService: DynamicComponentService, private _liveAnnouncer: LiveAnnouncer) {}\n\n /**\n * Returns true if there are some message toasts currently open. False otherwise.\n */\n hasOpenMessageToasts(): boolean {\n return this._messageToasts && this._messageToasts.length > 0;\n }\n\n /**\n * Opens a message toast component with a content of type TemplateRef, Component Type or String.\n * @param content Content of the message toast component.\n * @param messageToastConfig Configuration of the message toast component.\n */\n open(\n content: TemplateRef<any> | Type<any> | string,\n messageToastConfig: MessageToastConfig = new MessageToastConfig()\n ): MessageToastRef {\n // Get default values from message toast model\n messageToastConfig = Object.assign(new MessageToastConfig(), messageToastConfig);\n\n // Instantiate message toast ref service\n const service: MessageToastRef = new MessageToastRef();\n service.data = messageToastConfig.data;\n\n // If empty or undefined message toast array, create container\n if (!this._messageToasts || this._messageToasts.length === 0 || !this._messageToastContainerRef) {\n this._messageToastContainerRef =\n this._dynamicComponentService.createDynamicComponent<MessageToastContainerComponent>(\n content,\n MessageToastContainerComponent,\n messageToastConfig\n );\n }\n\n // Define Container to put backdrop and component to container\n messageToastConfig.container = this._messageToastContainerRef.location.nativeElement;\n\n const component = this._dynamicComponentService.createDynamicComponent<MessageToastComponent>(\n content,\n MessageToastComponent,\n messageToastConfig,\n { services: [service, messageToastConfig] }\n );\n\n component.location.nativeElement.style.marginBottom = '10px';\n\n // Subscription to close message toast from ref\n const refSub = service.afterTimeout.subscribe(() => {\n this._destroyMessageToastComponent(component);\n refSub.unsubscribe();\n });\n\n this._messageToasts.push(component);\n\n return service;\n }\n\n /**\n * Hides all message toasts opened by the service.\n */\n hideAll(): void {\n this._messageToasts.forEach((ref) => {\n this._destroyMessageToastComponent(ref);\n });\n }\n\n /** @hidden */\n private _destroyMessageToastComponent(messageToast: ComponentRef<MessageToastComponent>): void {\n this._messageToasts[this._messageToasts.indexOf(messageToast)] = null;\n this._messageToasts = this._messageToasts.filter((item) => item !== null && item !== undefined);\n this._dynamicComponentService.destroyComponent(messageToast);\n\n if (this._messageToastContainerRef && (!this._messageToasts || this._messageToasts.length === 0)) {\n this._destroyMessageToastContainer();\n }\n }\n\n /** @hidden */\n private _destroyMessageToastContainer(): void {\n this._dynamicComponentService.destroyComponent(this._messageToastContainerRef);\n this._messageToastContainerRef = undefined;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MessageToastComponent } from './message-toast.component';\nimport { MessageToastService } from './message-toast-service/message-toast.service';\nimport { MessageToastContainerComponent } from './message-toast-utils/message-toast-container.component';\nimport { DynamicComponentService } from '@fundamental-ngx/core/utils';\n\n@NgModule({\n declarations: [MessageToastComponent, MessageToastContainerComponent],\n imports: [CommonModule],\n exports: [MessageToastComponent, MessageToastContainerComponent],\n entryComponents: [MessageToastContainerComponent, MessageToastComponent],\n providers: [MessageToastService, DynamicComponentService]\n})\nexport class MessageToastModule {}\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-message-toast.mjs","sources":["../../../../../libs/core/src/lib/message-toast/constants.ts","../../../../../libs/core/src/lib/message-toast/message-toast-utils/message-toast-config.ts","../../../../../libs/core/src/lib/message-toast/message-toast-utils/message-toast-ref.ts","../../../../../libs/core/src/lib/message-toast/message-toast.component.ts","../../../../../libs/core/src/lib/message-toast/message-toast-utils/message-toast-container.component.ts","../../../../../libs/core/src/lib/message-toast/message-toast-service/message-toast.service.ts","../../../../../libs/core/src/lib/message-toast/message-toast.module.ts","../../../../../libs/core/src/lib/message-toast/fundamental-ngx-core-message-toast.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { MessageToastConfig } from './message-toast-utils/message-toast-config';\n\nexport const MESSAGE_TOAST_CONFIG = new InjectionToken<MessageToastConfig>('MessageToastConfig');\n","/* eslint-disable @typescript-eslint/no-inferrable-types */\nimport { DynamicComponentConfig } from '@fundamental-ngx/core/utils';\n\n/**\n * Configuration for opening a message toast with the MessageToastService.\n */\nexport class MessageToastConfig implements DynamicComponentConfig {\n /** Id for the message toast component. If omitted, a unique one is generated. */\n id?: string;\n\n /** Data being injected into the child component or template. */\n data?: any;\n\n /** Duration of time *in milliseconds* that the message toast will be visible. Set to -1 for indefinite. */\n duration?: number = 3000;\n\n /** Whether the message toast should stay visible if the cursor is over it. */\n mousePersist?: boolean = false;\n\n /** Aria label for the message toast component element. */\n ariaLabel?: string = null;\n\n /** Width of the message toast. */\n width?: string;\n\n /** Minimum width of the message toast. */\n minWidth?: string;\n\n /** Maximum width of the message toast. */\n maxWidth?: string;\n\n /** The container that the message toast is appended to. By default, it is appended to the body. */\n container?: HTMLElement | 'body' = 'body';\n}\n","import { Subject } from 'rxjs';\n/**\n * Reference to a message toast component generated via the MessageToastService.\n * It can be injected into the content component in the same way a service would be injected.\n * For a template, add let-messageToast to your ng-template tag. Now using *messageToast* in the template refers to this class.\n */\nexport class MessageToastRef {\n private readonly _afterTimeout = new Subject<void>();\n\n /** Observable that is triggered when the message toast has timed out. */\n afterTimeout = this._afterTimeout.asObservable();\n\n /** Data passed from the service open method. */\n data: any;\n\n /**\n * Hides the message toast.\n */\n timeout(): void {\n this._afterTimeout.next();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n NgZone,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { MessageToastConfig } from './message-toast-utils/message-toast-config';\nimport { MessageToastRef } from './message-toast-utils/message-toast-ref';\n\nlet messageToastUniqueId = 0;\n\n/**\n * The component that represents a message toast.\n */\n@Component({\n selector: 'fd-message-toast',\n template: `<ng-container #container>{{ message }}</ng-container>`,\n styleUrls: ['./message-toast.component.scss'],\n host: {\n '[attr.aria-label]': 'ariaLabel',\n '[attr.aria-live]': '\"polite\"',\n '[attr.id]': 'id',\n '[style.width]': 'width',\n '[style.min-width]': 'minWidth',\n '[style.max-width]': 'maxWidth'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MessageToastComponent implements OnInit, AfterViewInit {\n /** @hidden */\n constructor(\n private _elRef: ElementRef,\n private cdRef: ChangeDetectorRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n private ngZone: NgZone,\n @Optional() private messageToastConfig: MessageToastConfig,\n @Optional() private messageToastRef: MessageToastRef\n ) {\n this._setMessageToastConfig(messageToastConfig);\n }\n\n /** @hidden */\n @ViewChild('container', { read: ViewContainerRef })\n containerRef: ViewContainerRef;\n\n /** Id of the message toast. If omitted, a unique one is generated. */\n @Input()\n id: string = 'fd-message-toast-' + messageToastUniqueId++;\n\n /**\n * Duration of time *in milliseconds* that the message toast will be visible.\n * The standard value is 3000 ms.\n * The duration can be set to more than 3000 ms,\n * but it's not recommended to set it to less than 3000 ms.\n * Set to -1 for indefinite.\n */\n @Input()\n duration = 3000;\n\n /** Whether the message toast should stay open if the cursor is over it. */\n @Input()\n mousePersist = false;\n\n /** Aria label for the message toast component element. */\n @Input()\n ariaLabel: string = null;\n\n /** Alternative way of passing in a message to the message toast. */\n @Input()\n message: string;\n\n /** Width of the message toast. */\n @Input()\n width: string;\n\n /** Minimum width of the message toast. */\n @Input()\n minWidth: string;\n\n /**\n * Maximum width of the message toast.\n * The standard maximum width is 15rem.\n * It's not recommended to extend the width to more than 35rem.\n */\n @Input()\n maxWidth: string;\n\n /** Event fired when the message toast is timeout. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onHide: EventEmitter<undefined> = new EventEmitter<undefined>();\n\n /** @hidden */\n mouseOverMessageToast = false;\n\n /** @hidden */\n componentRef: ComponentRef<any> | EmbeddedViewRef<any>;\n\n /** @hidden */\n childContent: Type<any> | TemplateRef<any> | string = undefined;\n\n /** @hidden */\n @HostBinding('class.fd-message-toast')\n messageToastClass = true;\n\n /** @hidden */\n ngOnInit(): void {\n if (this.messageToastRef) {\n this.open();\n }\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 * Closes the message toast\n */\n close(): void {\n if (this.messageToastRef) {\n this.messageToastRef.timeout();\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.onHide.emit();\n }\n\n /**\n * Opens the message toast.\n */\n open(): void {\n if (!this.messageToastRef) {\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 if (this.duration >= 0) {\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n if (!this.mousePersist) {\n this.ngZone.run(() => this.close());\n return;\n }\n const wait = (): void => {\n if (this.mouseOverMessageToast === true) {\n setTimeout(wait, 500);\n } else {\n this.ngZone.run(() => this.close());\n }\n };\n wait();\n }, this.duration);\n });\n }\n }\n\n /** @hidden */\n @HostListener('mouseenter')\n handleMessageToastMouseEnterEvent(): void {\n this.mouseOverMessageToast = true;\n }\n\n /** @hidden */\n @HostListener('mouseleave')\n handleMessageToastMouseLeaveEvent(): void {\n this.mouseOverMessageToast = false;\n }\n\n /** @hidden */\n private _loadFromTemplate(template: TemplateRef<any>): void {\n const context = {\n $implicit: this.messageToastRef\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 _setMessageToastConfig(messageToastConfig: MessageToastConfig): void {\n Object.keys(messageToastConfig || {})\n .filter((key) => key !== 'data' && key !== 'container')\n .forEach((key) => (this[key] = messageToastConfig[key]));\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-message-toast-container',\n template: ``,\n styles: [\n `\n .fd-message-toast-container {\n position: fixed;\n display: flex;\n flex-direction: column;\n z-index: 5000;\n align-items: center;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n }\n `\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MessageToastContainerComponent {\n /** @hidden */\n @HostBinding('class.fd-message-toast-container')\n fdMessageToastContainerClass = true;\n\n /** Role attribute */\n @Input()\n @HostBinding('attr.role')\n role = 'alert';\n}\n","import { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Injectable, ComponentRef, TemplateRef, Type, Inject } from '@angular/core';\nimport { MESSAGE_TOAST_CONFIG } from '../constants';\nimport { MessageToastComponent } from '../message-toast.component';\nimport { MessageToastContainerComponent } from '../message-toast-utils/message-toast-container.component';\nimport { MessageToastRef } from '../message-toast-utils/message-toast-ref';\nimport { MessageToastConfig } from '../message-toast-utils/message-toast-config';\nimport { DynamicComponentService } from '@fundamental-ngx/core/utils';\n\n/**\n * Service for generating message toasts dynamically.\n */\n@Injectable()\nexport class MessageToastService {\n private _messageToasts: ComponentRef<MessageToastComponent>[] = [];\n private _messageToastContainerRef: ComponentRef<MessageToastContainerComponent>;\n\n /** @hidden */\n constructor(\n private _dynamicComponentService: DynamicComponentService,\n private _liveAnnouncer: LiveAnnouncer,\n @Inject(MESSAGE_TOAST_CONFIG) private _defaultConfig: MessageToastConfig\n ) {}\n\n /**\n * Returns true if there are some message toasts currently open. False otherwise.\n */\n hasOpenMessageToasts(): boolean {\n return this._messageToasts && this._messageToasts.length > 0;\n }\n\n /**\n * Opens a message toast component with a content of type TemplateRef, Component Type or String.\n * @param content Content of the message toast component.\n * @param messageToastConfig Configuration of the message toast component.\n */\n open(content: TemplateRef<any> | Type<any> | string, messageToastConfig: MessageToastConfig = {}): MessageToastRef {\n // Get default values from message toast model\n const mergedConfig = { ...this._defaultConfig, ...messageToastConfig };\n\n // We need MessageToastConfig instance for correct DI in the component.\n messageToastConfig = Object.assign(new MessageToastConfig(), mergedConfig);\n\n // Instantiate message toast ref service\n const service: MessageToastRef = new MessageToastRef();\n service.data = messageToastConfig.data;\n\n // If empty or undefined message toast array, create container\n if (!this._messageToasts || this._messageToasts.length === 0 || !this._messageToastContainerRef) {\n this._messageToastContainerRef =\n this._dynamicComponentService.createDynamicComponent<MessageToastContainerComponent>(\n content,\n MessageToastContainerComponent,\n messageToastConfig\n );\n }\n\n // Define Container to put backdrop and component to container\n messageToastConfig.container = this._messageToastContainerRef.location.nativeElement;\n\n const component = this._dynamicComponentService.createDynamicComponent<MessageToastComponent>(\n content,\n MessageToastComponent,\n messageToastConfig,\n { services: [service, messageToastConfig] }\n );\n\n component.location.nativeElement.style.marginBottom = '10px';\n\n // Subscription to close message toast from ref\n const refSub = service.afterTimeout.subscribe(() => {\n this._destroyMessageToastComponent(component);\n refSub.unsubscribe();\n });\n\n this._messageToasts.push(component);\n\n return service;\n }\n\n /**\n * Hides all message toasts opened by the service.\n */\n hideAll(): void {\n this._messageToasts.forEach((ref) => {\n this._destroyMessageToastComponent(ref);\n });\n }\n\n /** @hidden */\n private _destroyMessageToastComponent(messageToast: ComponentRef<MessageToastComponent>): void {\n this._messageToasts[this._messageToasts.indexOf(messageToast)] = null;\n this._messageToasts = this._messageToasts.filter((item) => item !== null && item !== undefined);\n this._dynamicComponentService.destroyComponent(messageToast);\n\n if (this._messageToastContainerRef && (!this._messageToasts || this._messageToasts.length === 0)) {\n this._destroyMessageToastContainer();\n }\n }\n\n /** @hidden */\n private _destroyMessageToastContainer(): void {\n this._dynamicComponentService.destroyComponent(this._messageToastContainerRef);\n this._messageToastContainerRef = undefined;\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MESSAGE_TOAST_CONFIG } from './constants';\nimport { MessageToastConfig } from './message-toast-utils/message-toast-config';\n\nimport { MessageToastComponent } from './message-toast.component';\nimport { MessageToastService } from './message-toast-service/message-toast.service';\nimport { MessageToastContainerComponent } from './message-toast-utils/message-toast-container.component';\nimport { DynamicComponentService } from '@fundamental-ngx/core/utils';\n\n/**\n * Adds Message Toast functionality to your application.\n *\n * Can be imported in two ways:\n * * Plain MessageToastModule with default configuration\n * * With `withConfig()` method which allows passing custom default configuration.\n */\n@NgModule({\n declarations: [MessageToastComponent, MessageToastContainerComponent],\n imports: [CommonModule],\n exports: [MessageToastComponent, MessageToastContainerComponent],\n entryComponents: [MessageToastContainerComponent, MessageToastComponent],\n providers: [\n MessageToastService,\n DynamicComponentService,\n // Provide default configuration which user can later override.\n {\n provide: MESSAGE_TOAST_CONFIG,\n useValue: new MessageToastConfig()\n }\n ]\n})\nexport class MessageToastModule {\n /**\n * Allows configuring module on a global level with custom configuration.\n * @param config User's custom configuration.\n */\n static withConfig(config: MessageToastConfig): ModuleWithProviders<MessageToastModule> {\n return {\n ngModule: MessageToastModule,\n providers: [\n {\n provide: MESSAGE_TOAST_CONFIG,\n useValue: config\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -10,10 +10,11 @@ import * as i0 from "@angular/core";
|
|
|
10
10
|
export declare class MessageToastService {
|
|
11
11
|
private _dynamicComponentService;
|
|
12
12
|
private _liveAnnouncer;
|
|
13
|
+
private _defaultConfig;
|
|
13
14
|
private _messageToasts;
|
|
14
15
|
private _messageToastContainerRef;
|
|
15
16
|
/** @hidden */
|
|
16
|
-
constructor(_dynamicComponentService: DynamicComponentService, _liveAnnouncer: LiveAnnouncer);
|
|
17
|
+
constructor(_dynamicComponentService: DynamicComponentService, _liveAnnouncer: LiveAnnouncer, _defaultConfig: MessageToastConfig);
|
|
17
18
|
/**
|
|
18
19
|
* Returns true if there are some message toasts currently open. False otherwise.
|
|
19
20
|
*/
|
|
@@ -1,8 +1,22 @@
|
|
|
1
|
+
import { ModuleWithProviders } from '@angular/core';
|
|
2
|
+
import { MessageToastConfig } from './message-toast-utils/message-toast-config';
|
|
1
3
|
import * as i0 from "@angular/core";
|
|
2
4
|
import * as i1 from "./message-toast.component";
|
|
3
5
|
import * as i2 from "./message-toast-utils/message-toast-container.component";
|
|
4
6
|
import * as i3 from "@angular/common";
|
|
7
|
+
/**
|
|
8
|
+
* Adds Message Toast functionality to your application.
|
|
9
|
+
*
|
|
10
|
+
* Can be imported in two ways:
|
|
11
|
+
* * Plain MessageToastModule with default configuration
|
|
12
|
+
* * With `withConfig()` method which allows passing custom default configuration.
|
|
13
|
+
*/
|
|
5
14
|
export declare class MessageToastModule {
|
|
15
|
+
/**
|
|
16
|
+
* Allows configuring module on a global level with custom configuration.
|
|
17
|
+
* @param config User's custom configuration.
|
|
18
|
+
*/
|
|
19
|
+
static withConfig(config: MessageToastConfig): ModuleWithProviders<MessageToastModule>;
|
|
6
20
|
static ɵfac: i0.ɵɵFactoryDeclaration<MessageToastModule, never>;
|
|
7
21
|
static ɵmod: i0.ɵɵNgModuleDeclaration<MessageToastModule, [typeof i1.MessageToastComponent, typeof i2.MessageToastContainerComponent], [typeof i3.CommonModule], [typeof i1.MessageToastComponent, typeof i2.MessageToastContainerComponent]>;
|
|
8
22
|
static ɵinj: i0.ɵɵInjectorDeclaration<MessageToastModule>;
|