@fundamental-ngx/core 0.37.2-rc.0 → 0.37.2
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/action-bar-actions/action-bar-actions.directive.d.ts +1 -1
- package/action-bar/action-bar-back/action-bar-back.directive.d.ts +1 -1
- package/action-bar/action-bar-description/action-bar-description.directive.d.ts +1 -1
- package/action-bar/action-bar-header/action-bar-header.directive.d.ts +1 -1
- package/action-bar/action-bar-mobile/action-bar-mobile.directive.d.ts +1 -1
- package/action-bar/action-bar-title/action-bar-title.component.d.ts +1 -1
- package/action-bar/action-bar.component.d.ts +1 -1
- package/action-sheet/action-sheet-body/action-sheet-body.component.d.ts +1 -1
- package/action-sheet/action-sheet-control/action-sheet-control.component.d.ts +1 -1
- package/action-sheet/action-sheet-item/action-sheet-item.component.d.ts +1 -1
- package/action-sheet/action-sheet-mobile/action-sheet-mobile.component.d.ts +1 -1
- package/action-sheet/action-sheet.component.d.ts +1 -1
- package/action-sheet/deprecated-action-sheet-compact.directive.d.ts +1 -1
- package/alert/alert-utils/alert-container.component.d.ts +1 -1
- package/alert/alert.component.d.ts +1 -1
- package/avatar/avatar.component.d.ts +1 -1
- package/avatar-group/avatar-group.component.d.ts +1 -1
- package/avatar-group/directives/avatar-group-focusable-avatar.directive.d.ts +1 -1
- package/avatar-group/directives/avatar-group-item.directive.d.ts +1 -1
- package/avatar-group/directives/avatar-group-overflow-body.directive.d.ts +1 -1
- package/avatar-group/directives/avatar-group-overflow-button-text.directive.d.ts +1 -1
- package/avatar-group/directives/avatar-group-overflow-button.directive.d.ts +1 -1
- package/avatar-group/directives/avatar-group-overflow-item.directive.d.ts +1 -1
- package/avatar-group/directives/avatar-group-popover-control.directive.d.ts +1 -1
- package/bar/bar.component.d.ts +1 -1
- package/bar/button-bar/button-bar.component.d.ts +1 -1
- package/bar/deprecated-bar-button-content-density.directive.d.ts +1 -1
- package/bar/deprecated-bar-content-density.directive.d.ts +1 -1
- package/bar/directives/bar-element.directive.d.ts +1 -1
- package/bar/directives/bar-left.directive.d.ts +1 -1
- package/bar/directives/bar-middle.directive.d.ts +1 -1
- package/bar/directives/bar-right.directive.d.ts +1 -1
- package/breadcrumb/breadcrumb-item.component.d.ts +1 -1
- package/breadcrumb/breadcrumb.component.d.ts +1 -1
- package/breadcrumb/deprecated-breadcrumbs-compact.directive.d.ts +1 -1
- package/busy-indicator/busy-indicator-extended/busy-indicator-extended.directive.d.ts +1 -1
- package/busy-indicator/busy-indicator.component.d.ts +1 -1
- package/button/base-button.d.ts +1 -1
- package/button/button.component.d.ts +1 -1
- package/button/deprecated-button-content-density.directive.d.ts +1 -1
- package/calendar/calendar-directives.d.ts +1 -1
- package/calendar/calendar-header/calendar-header.component.d.ts +1 -1
- package/calendar/calendar-views/calendar-aggregated-year-view/calendar-aggregated-year-view.component.d.ts +1 -1
- package/calendar/calendar-views/calendar-day-view/calendar-day-view.component.d.ts +1 -1
- package/calendar/calendar-views/calendar-month-view/calendar-month-view.component.d.ts +1 -1
- package/calendar/calendar-views/calendar-year-view/calendar-year-view.component.d.ts +1 -1
- package/calendar/calendar.component.d.ts +1 -1
- package/calendar/deprecated-calendar-content-density.directive.d.ts +1 -1
- package/card/card-content.component.d.ts +1 -1
- package/card/card-counter.directive.d.ts +1 -1
- package/card/card-footer-action-item.directive.d.ts +1 -1
- package/card/card-footer.component.d.ts +1 -1
- package/card/card-header.component.d.ts +1 -1
- package/card/card-loader.component.d.ts +1 -1
- package/card/card-second-subtitle.directive.d.ts +1 -1
- package/card/card-subtitle.directive.d.ts +1 -1
- package/card/card-title.directive.d.ts +1 -1
- package/card/card.component.d.ts +1 -1
- package/card/deprecated-card-content-density.directive.d.ts +1 -1
- package/card/kpi/card-kpi-analytics-content.directive.d.ts +1 -1
- package/card/kpi/card-kpi-analytics-label.directive.d.ts +1 -1
- package/card/kpi/card-kpi-analytics.directive.d.ts +1 -1
- package/card/kpi/card-kpi-header.component.d.ts +1 -1
- package/card/kpi/card-kpi-scale-icon.directive.d.ts +1 -1
- package/card/kpi/card-kpi-scale-text.directive.d.ts +1 -1
- package/card/kpi/card-kpi-value.directive.d.ts +1 -1
- package/carousel/carousel-item/carousel-item.component.d.ts +1 -1
- package/carousel/carousel-item.directive.d.ts +1 -1
- package/carousel/carousel.component.d.ts +1 -1
- package/carousel/carousel.directive.d.ts +1 -1
- package/checkbox/checkbox/checkbox.component.d.ts +1 -1
- package/checkbox/deprecated-checkbox-content-density.directive.d.ts +1 -1
- package/combobox/combobox-mobile/combobox-mobile.component.d.ts +1 -1
- package/combobox/combobox.component.d.ts +1 -1
- package/combobox/deprecated-combobox-content-density.directive.d.ts +1 -1
- package/content-density/classes/deprecated-compact.directive.d.ts +1 -1
- package/content-density/classes/deprecated-condensed.directive.d.ts +1 -1
- package/content-density/classes/deprecated-content-density.directive.d.ts +1 -1
- package/content-density/classes/deprecated-cozy.directive.d.ts +1 -1
- package/content-density/directives/content-density.directive.d.ts +1 -1
- package/date-picker/date-picker.component.d.ts +1 -1
- package/date-picker/deprecated-date-picker-compact.directive.d.ts +1 -1
- package/datetime-picker/datetime-picker.component.d.ts +1 -1
- package/datetime-picker/deprecated-date-time-picker-content-density.directive.d.ts +1 -1
- package/dialog/base/dialog-base.class.d.ts +1 -1
- package/dialog/base/dialog-footer-base.class.d.ts +1 -1
- package/dialog/base/dialog-header-base.class.d.ts +1 -1
- package/dialog/dialog-body/dialog-body.component.d.ts +1 -1
- package/dialog/dialog-close-button/dialog-close-button.component.d.ts +1 -1
- package/dialog/dialog-container/dialog-container.component.d.ts +1 -1
- package/dialog/dialog-default/dialog-default.component.d.ts +1 -1
- package/dialog/dialog-footer/dialog-footer.component.d.ts +1 -1
- package/dialog/dialog-footer-button/dialog-footer-button.component.d.ts +1 -1
- package/dialog/dialog-header/dialog-header.component.d.ts +1 -1
- package/dialog/dialog.component.d.ts +1 -1
- package/dialog/directives/dialog-decisive-button.directive.d.ts +1 -1
- package/dialog/directives/dialog-title.directive.d.ts +1 -1
- package/dynamic-page/deprecated-dynamic-page-compact.directive.d.ts +1 -1
- package/dynamic-page/dynamic-page-content/dynamic-page-content.component.d.ts +1 -1
- package/dynamic-page/dynamic-page-footer/dynamic-page-footer.component.d.ts +1 -1
- package/dynamic-page/dynamic-page-header/actions/dynamic-page-base-actions.d.ts +1 -1
- package/dynamic-page/dynamic-page-header/actions/dynamic-page-global-actions.component.d.ts +1 -1
- package/dynamic-page/dynamic-page-header/actions/dynamic-page-layout-actions.component.d.ts +1 -1
- package/dynamic-page/dynamic-page-header/actions/dynamic-page-title-content.component.d.ts +1 -1
- package/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.d.ts +1 -1
- package/dynamic-page/dynamic-page-header/subheader/dynamic-page-subheader.component.d.ts +1 -1
- package/dynamic-page/dynamic-page-wrapper.directive.d.ts +1 -1
- package/dynamic-page/dynamic-page.component.d.ts +1 -1
- package/dynamic-side-content/dynamic-side-content-main.component.d.ts +1 -1
- package/dynamic-side-content/dynamic-side-content-side.component.d.ts +1 -1
- package/dynamic-side-content/dynamic-side-content.component.d.ts +1 -1
- package/esm2020/action-bar/action-bar-actions/action-bar-actions.directive.mjs +3 -3
- package/esm2020/action-bar/action-bar-back/action-bar-back.directive.mjs +3 -3
- package/esm2020/action-bar/action-bar-description/action-bar-description.directive.mjs +3 -3
- package/esm2020/action-bar/action-bar-header/action-bar-header.directive.mjs +3 -3
- package/esm2020/action-bar/action-bar-mobile/action-bar-mobile.directive.mjs +3 -3
- package/esm2020/action-bar/action-bar-title/action-bar-title.component.mjs +3 -3
- package/esm2020/action-bar/action-bar.component.mjs +4 -4
- package/esm2020/action-bar/action-bar.module.mjs +4 -4
- package/esm2020/action-sheet/action-sheet-body/action-sheet-body.component.mjs +3 -3
- package/esm2020/action-sheet/action-sheet-control/action-sheet-control.component.mjs +3 -3
- package/esm2020/action-sheet/action-sheet-item/action-sheet-item.component.mjs +3 -3
- package/esm2020/action-sheet/action-sheet-mobile/action-sheet-mobile.component.mjs +3 -3
- package/esm2020/action-sheet/action-sheet-mobile/action-sheet-mobile.module.mjs +4 -4
- package/esm2020/action-sheet/action-sheet.component.mjs +4 -4
- package/esm2020/action-sheet/action-sheet.module.mjs +4 -4
- package/esm2020/action-sheet/deprecated-action-sheet-compact.directive.mjs +3 -3
- package/esm2020/alert/alert-service/alert.service.mjs +3 -3
- package/esm2020/alert/alert-utils/alert-container.component.mjs +3 -3
- package/esm2020/alert/alert.component.mjs +5 -5
- package/esm2020/alert/alert.module.mjs +4 -4
- package/esm2020/avatar/avatar.component.mjs +5 -5
- package/esm2020/avatar/avatar.module.mjs +4 -4
- package/esm2020/avatar-group/avatar-group.component.mjs +5 -5
- package/esm2020/avatar-group/avatar-group.module.mjs +4 -4
- package/esm2020/avatar-group/directives/avatar-group-focusable-avatar.directive.mjs +3 -3
- package/esm2020/avatar-group/directives/avatar-group-item.directive.mjs +3 -3
- package/esm2020/avatar-group/directives/avatar-group-overflow-body.directive.mjs +3 -3
- package/esm2020/avatar-group/directives/avatar-group-overflow-button-text.directive.mjs +3 -3
- package/esm2020/avatar-group/directives/avatar-group-overflow-button.directive.mjs +4 -4
- package/esm2020/avatar-group/directives/avatar-group-overflow-item.directive.mjs +3 -3
- package/esm2020/avatar-group/directives/avatar-group-popover-control.directive.mjs +3 -3
- package/esm2020/bar/bar.component.mjs +6 -6
- package/esm2020/bar/bar.module.mjs +4 -4
- package/esm2020/bar/button-bar/button-bar.component.mjs +3 -3
- package/esm2020/bar/deprecated-bar-button-content-density.directive.mjs +3 -3
- package/esm2020/bar/deprecated-bar-content-density.directive.mjs +3 -3
- package/esm2020/bar/directives/bar-element.directive.mjs +3 -3
- package/esm2020/bar/directives/bar-left.directive.mjs +3 -3
- package/esm2020/bar/directives/bar-middle.directive.mjs +3 -3
- package/esm2020/bar/directives/bar-right.directive.mjs +3 -3
- package/esm2020/breadcrumb/breadcrumb-item.component.mjs +3 -3
- package/esm2020/breadcrumb/breadcrumb.component.mjs +4 -4
- package/esm2020/breadcrumb/breadcrumb.module.mjs +4 -4
- package/esm2020/breadcrumb/deprecated-breadcrumbs-compact.directive.mjs +3 -3
- package/esm2020/busy-indicator/busy-indicator-extended/busy-indicator-extended.directive.mjs +3 -3
- package/esm2020/busy-indicator/busy-indicator.component.mjs +4 -4
- package/esm2020/busy-indicator/busy-indicator.module.mjs +4 -4
- package/esm2020/button/base-button.mjs +3 -3
- package/esm2020/button/button.component.mjs +6 -6
- package/esm2020/button/button.module.mjs +4 -4
- package/esm2020/button/deprecated-button-content-density.directive.mjs +3 -3
- package/esm2020/calendar/calendar-directives.mjs +3 -3
- package/esm2020/calendar/calendar-header/calendar-header.component.mjs +3 -3
- package/esm2020/calendar/calendar-views/calendar-aggregated-year-view/calendar-aggregated-year-view.component.mjs +3 -3
- package/esm2020/calendar/calendar-views/calendar-day-view/calendar-day-view.component.mjs +3 -3
- package/esm2020/calendar/calendar-views/calendar-month-view/calendar-month-view.component.mjs +3 -3
- package/esm2020/calendar/calendar-views/calendar-year-view/calendar-year-view.component.mjs +3 -3
- package/esm2020/calendar/calendar.component.mjs +5 -5
- package/esm2020/calendar/calendar.module.mjs +4 -4
- package/esm2020/calendar/calendar.service.mjs +3 -3
- package/esm2020/calendar/deprecated-calendar-content-density.directive.mjs +3 -3
- package/esm2020/calendar/i18n/calendar-i18n-labels.mjs +3 -3
- package/esm2020/card/card-content.component.mjs +4 -4
- package/esm2020/card/card-counter.directive.mjs +4 -4
- package/esm2020/card/card-footer-action-item.directive.mjs +3 -3
- package/esm2020/card/card-footer.component.mjs +3 -3
- package/esm2020/card/card-header.component.mjs +4 -4
- package/esm2020/card/card-loader.component.mjs +4 -4
- package/esm2020/card/card-second-subtitle.directive.mjs +4 -4
- package/esm2020/card/card-subtitle.directive.mjs +4 -4
- package/esm2020/card/card-title.directive.mjs +4 -4
- package/esm2020/card/card.component.mjs +6 -6
- package/esm2020/card/card.module.mjs +4 -4
- package/esm2020/card/deprecated-card-content-density.directive.mjs +3 -3
- package/esm2020/card/kpi/card-kpi-analytics-content.directive.mjs +4 -4
- package/esm2020/card/kpi/card-kpi-analytics-label.directive.mjs +4 -4
- package/esm2020/card/kpi/card-kpi-analytics.directive.mjs +4 -4
- package/esm2020/card/kpi/card-kpi-header.component.mjs +4 -4
- package/esm2020/card/kpi/card-kpi-scale-icon.directive.mjs +4 -4
- package/esm2020/card/kpi/card-kpi-scale-text.directive.mjs +4 -4
- package/esm2020/card/kpi/card-kpi-value.directive.mjs +4 -4
- package/esm2020/carousel/carousel-item/carousel-item.component.mjs +3 -3
- package/esm2020/carousel/carousel-item.directive.mjs +3 -3
- package/esm2020/carousel/carousel.component.mjs +4 -4
- package/esm2020/carousel/carousel.directive.mjs +3 -3
- package/esm2020/carousel/carousel.module.mjs +4 -4
- package/esm2020/carousel/carousel.service.mjs +4 -4
- package/esm2020/checkbox/checkbox/checkbox.component.mjs +5 -5
- package/esm2020/checkbox/checkbox.module.mjs +4 -4
- package/esm2020/checkbox/deprecated-checkbox-content-density.directive.mjs +3 -3
- package/esm2020/combobox/combobox-mobile/combobox-mobile.component.mjs +3 -3
- package/esm2020/combobox/combobox-mobile/combobox-mobile.module.mjs +4 -4
- package/esm2020/combobox/combobox.component.mjs +3 -3
- package/esm2020/combobox/combobox.module.mjs +4 -4
- package/esm2020/combobox/deprecated-combobox-content-density.directive.mjs +3 -3
- package/esm2020/combobox/list-group.pipe.mjs +3 -3
- package/esm2020/content-density/classes/deprecated-compact.directive.mjs +3 -3
- package/esm2020/content-density/classes/deprecated-condensed.directive.mjs +3 -3
- package/esm2020/content-density/classes/deprecated-content-density.directive.mjs +3 -3
- package/esm2020/content-density/classes/deprecated-cozy.directive.mjs +3 -3
- package/esm2020/content-density/content-density.module.mjs +4 -4
- package/esm2020/content-density/directives/content-density.directive.mjs +3 -3
- package/esm2020/content-density/providers/local-content-density-storage.mjs +3 -3
- package/esm2020/content-density/providers/memory-content-density-storage.mjs +3 -3
- package/esm2020/content-density/providers/url-content-density-storage.mjs +3 -3
- package/esm2020/content-density/services/content-density-observer.service.mjs +3 -3
- package/esm2020/content-density/services/deprecated-content-density.service.mjs +3 -3
- package/esm2020/content-density/services/global-content-density.service.mjs +3 -3
- package/esm2020/date-picker/date-picker.component.mjs +3 -3
- package/esm2020/date-picker/date-picker.module.mjs +4 -4
- package/esm2020/date-picker/deprecated-date-picker-compact.directive.mjs +3 -3
- package/esm2020/datetime/datetime-format.pipes.mjs +9 -9
- package/esm2020/datetime/fd-datetime-adapter.mjs +3 -3
- package/esm2020/datetime/fd-datetime-pipes.module.mjs +4 -4
- package/esm2020/datetime/fd-datetime.module.mjs +8 -8
- package/esm2020/datetime-picker/datetime-picker.component.mjs +3 -3
- package/esm2020/datetime-picker/datetime-picker.module.mjs +4 -4
- package/esm2020/datetime-picker/deprecated-date-time-picker-content-density.directive.mjs +3 -3
- package/esm2020/dialog/base/dialog-base.class.mjs +3 -3
- package/esm2020/dialog/base/dialog-footer-base.class.mjs +3 -3
- package/esm2020/dialog/base/dialog-header-base.class.mjs +3 -3
- package/esm2020/dialog/dialog-body/dialog-body.component.mjs +3 -3
- package/esm2020/dialog/dialog-close-button/dialog-close-button.component.mjs +3 -3
- package/esm2020/dialog/dialog-container/dialog-container.component.mjs +4 -4
- package/esm2020/dialog/dialog-default/dialog-default.component.mjs +3 -3
- package/esm2020/dialog/dialog-footer/dialog-footer.component.mjs +3 -3
- package/esm2020/dialog/dialog-footer-button/dialog-footer-button.component.mjs +3 -3
- package/esm2020/dialog/dialog-header/dialog-header.component.mjs +3 -3
- package/esm2020/dialog/dialog-service/dialog.service.mjs +3 -3
- package/esm2020/dialog/dialog.component.mjs +5 -5
- package/esm2020/dialog/dialog.module.mjs +4 -4
- package/esm2020/dialog/directives/dialog-decisive-button.directive.mjs +3 -3
- package/esm2020/dialog/directives/dialog-title.directive.mjs +3 -3
- package/esm2020/dialog/utils/dialog-config.class.mjs +3 -3
- package/esm2020/dialog/utils/dialog-ref.class.mjs +3 -3
- package/esm2020/dynamic-page/deprecated-dynamic-page-compact.directive.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-content/dynamic-page-content.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-footer/dynamic-page-footer.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-header/actions/dynamic-page-base-actions.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-header/actions/dynamic-page-global-actions.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-header/actions/dynamic-page-layout-actions.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-header/actions/dynamic-page-title-content.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-header/subheader/dynamic-page-subheader.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-wrapper.directive.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page.component.mjs +4 -4
- package/esm2020/dynamic-page/dynamic-page.config.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page.module.mjs +4 -4
- package/esm2020/dynamic-page/dynamic-page.service.mjs +3 -3
- package/esm2020/dynamic-side-content/dynamic-side-content-main.component.mjs +3 -3
- package/esm2020/dynamic-side-content/dynamic-side-content-side.component.mjs +3 -3
- package/esm2020/dynamic-side-content/dynamic-side-content.component.mjs +5 -5
- package/esm2020/dynamic-side-content/dynamic-side-content.module.mjs +4 -4
- package/esm2020/facets/content/facet-content.component.mjs +3 -3
- package/esm2020/facets/facet/facet.component.mjs +4 -4
- package/esm2020/facets/facet-group.component.mjs +3 -3
- package/esm2020/facets/facet.module.mjs +4 -4
- package/esm2020/feed-input/directives/feed-input-avatar.directive.mjs +4 -4
- package/esm2020/feed-input/directives/feed-input-button.directive.mjs +3 -3
- package/esm2020/feed-input/directives/feed-input-textarea.directive.mjs +3 -3
- package/esm2020/feed-input/feed-input.component.mjs +4 -4
- package/esm2020/feed-input/feed-input.module.mjs +4 -4
- package/esm2020/feed-list-item/components/feed-list-action/feed-list-action.component.mjs +3 -3
- package/esm2020/feed-list-item/components/feed-list-avatar/feed-list-avatar.component.mjs +3 -3
- package/esm2020/feed-list-item/components/feed-list-footer/feed-list-footer.component.mjs +3 -3
- package/esm2020/feed-list-item/components/item/feed-list-item.component.mjs +4 -4
- package/esm2020/feed-list-item/components/list/feed-list.component.mjs +5 -5
- package/esm2020/feed-list-item/directives/byline.directive.mjs +3 -3
- package/esm2020/feed-list-item/feed-list-item.module.mjs +4 -4
- package/esm2020/file-uploader/deprecated-file-uploader-content-density.directive.mjs +3 -3
- package/esm2020/file-uploader/directives/file-uploader-dragndrop.directive.mjs +3 -3
- package/esm2020/file-uploader/directives/file-uploader-select.directive.mjs +3 -3
- package/esm2020/file-uploader/file-uploader.component.mjs +5 -5
- package/esm2020/file-uploader/file-uploader.module.mjs +4 -4
- package/esm2020/file-uploader/file-uploader.service.mjs +3 -3
- package/esm2020/fixed-card-layout/fixed-card-layout-item/fixed-card-layout-item.component.mjs +3 -3
- package/esm2020/fixed-card-layout/fixed-card-layout.component.mjs +7 -7
- package/esm2020/fixed-card-layout/fixed-card-layout.module.mjs +4 -4
- package/esm2020/flexible-column-layout/flexible-column-layout.component.mjs +4 -4
- package/esm2020/flexible-column-layout/flexible-column-layout.module.mjs +4 -4
- package/esm2020/form/fieldset/fieldset.component.mjs +4 -4
- package/esm2020/form/fieldset/fieldset.module.mjs +4 -4
- package/esm2020/form/form-control/deprecated-form-control-content-density.directive.mjs +3 -3
- package/esm2020/form/form-control/form-control.component.mjs +5 -5
- package/esm2020/form/form-control/form-control.module.mjs +4 -4
- package/esm2020/form/form-control/input-form-control.directive.mjs +3 -3
- package/esm2020/form/form-control/textarea-form-control.directive.mjs +3 -3
- package/esm2020/form/form-group/form-group.component.mjs +5 -5
- package/esm2020/form/form-group/form-group.module.mjs +4 -4
- package/esm2020/form/form-header/form-header.component.mjs +4 -4
- package/esm2020/form/form-header/form-header.module.mjs +4 -4
- package/esm2020/form/form-input-message-group/form-input-message-group.component.mjs +3 -3
- package/esm2020/form/form-input-message-group/form-input-message-group.module.mjs +4 -4
- package/esm2020/form/form-item/form-item.component.mjs +4 -4
- package/esm2020/form/form-item/form-item.module.mjs +4 -4
- package/esm2020/form/form-label/form-label.component.mjs +4 -4
- package/esm2020/form/form-label/form-label.module.mjs +4 -4
- package/esm2020/form/form-legend/form-legend.directive.mjs +3 -3
- package/esm2020/form/form-legend/form-legend.module.mjs +4 -4
- package/esm2020/form/form-message/form-message.component.mjs +5 -5
- package/esm2020/form/form-message/form-message.module.mjs +4 -4
- package/esm2020/form/form-message/popover-form-message.service.mjs +3 -3
- package/esm2020/form/form.module.mjs +4 -4
- package/esm2020/formatted-text/formatted-text.component.mjs +3 -3
- package/esm2020/formatted-text/formatted-text.module.mjs +4 -4
- package/esm2020/fundamental-ngx.module.mjs +4 -4
- package/esm2020/grid-list/components/grid-list/grid-list-base.component.mjs +3 -3
- package/esm2020/grid-list/components/grid-list/grid-list.component.mjs +4 -4
- package/esm2020/grid-list/components/grid-list-filter-bar/grid-list-filter-bar.component.mjs +3 -3
- package/esm2020/grid-list/components/grid-list-footer/grid-list-footer.component.mjs +3 -3
- package/esm2020/grid-list/components/grid-list-group-header/grid-list-group-header.component.mjs +3 -3
- package/esm2020/grid-list/components/grid-list-item/grid-list-item.component.mjs +3 -3
- package/esm2020/grid-list/components/grid-list-item-footer-bar/grid-list-item-footer-bar.component.mjs +3 -3
- package/esm2020/grid-list/components/grid-list-item-toolbar/grid-list-item-toolbar.component.mjs +3 -3
- package/esm2020/grid-list/components/grid-list-more-btn/grid-list-more-btn.component.mjs +3 -3
- package/esm2020/grid-list/components/grid-list-title-bar/grid-list-title-bar.component.mjs +3 -3
- package/esm2020/grid-list/components/grid-list-title-bar/grid-list-title-bar.directive.mjs +3 -3
- package/esm2020/grid-list/components/grid-list-title-bar-spacer/grid-list-title-bar-spacer.component.mjs +3 -3
- package/esm2020/grid-list/directives/grid-list-item-body.directive.mjs +3 -3
- package/esm2020/grid-list/directives/grid-list-item-image.directive.mjs +3 -3
- package/esm2020/grid-list/grid-list.module.mjs +4 -4
- package/esm2020/icon/icon.component.mjs +5 -5
- package/esm2020/icon/icon.module.mjs +4 -4
- package/esm2020/illustrated-message/components/illustrated-message-actions/illustrated-message-actions.component.mjs +3 -3
- package/esm2020/illustrated-message/components/illustrated-message-figcaption/illustrated-message-figcaption.component.mjs +3 -3
- package/esm2020/illustrated-message/directives/illustrated-message-text/illustrated-message-text.directive.mjs +3 -3
- package/esm2020/illustrated-message/directives/illustrated-message-title/illustrated-message-title.directive.mjs +3 -3
- package/esm2020/illustrated-message/illustrated-message.component.mjs +6 -6
- package/esm2020/illustrated-message/illustrated-message.module.mjs +4 -4
- package/esm2020/infinite-scroll/infinite-scroll.directive.mjs +3 -3
- package/esm2020/infinite-scroll/infinite-scroll.module.mjs +4 -4
- package/esm2020/info-label/info-label.component.mjs +5 -5
- package/esm2020/info-label/info-label.module.mjs +4 -4
- package/esm2020/inline-help/inline-help.directive.mjs +3 -3
- package/esm2020/inline-help/inline-help.module.mjs +4 -4
- package/esm2020/input-group/deprecated-input-group-compact.directive.mjs +3 -3
- package/esm2020/input-group/input-group-directives.mjs +10 -10
- package/esm2020/input-group/input-group.component.mjs +5 -5
- package/esm2020/input-group/input-group.module.mjs +4 -4
- package/esm2020/layout-grid/directives/layout-grid-col.directive.mjs +4 -4
- package/esm2020/layout-grid/directives/layout-grid-row.directive.mjs +3 -3
- package/esm2020/layout-grid/layout-grid.component.mjs +5 -5
- package/esm2020/layout-grid/layout-grid.module.mjs +4 -4
- package/esm2020/layout-panel/layout-panel-actions/layout-panel-actions.component.mjs +3 -3
- package/esm2020/layout-panel/layout-panel-body/layout-panel-body.component.mjs +3 -3
- package/esm2020/layout-panel/layout-panel-description/layout-panel-description.component.mjs +3 -3
- package/esm2020/layout-panel/layout-panel-filters/layout-panel-filters.component.mjs +3 -3
- package/esm2020/layout-panel/layout-panel-footer/layout-panel-footer.component.mjs +3 -3
- package/esm2020/layout-panel/layout-panel-head/layout-panel-head.component.mjs +3 -3
- package/esm2020/layout-panel/layout-panel-header/layout-panel-header.component.mjs +3 -3
- package/esm2020/layout-panel/layout-panel-title/layout-panel-title.directive.mjs +3 -3
- package/esm2020/layout-panel/layout-panel.component.mjs +4 -4
- package/esm2020/layout-panel/layout-panel.module.mjs +4 -4
- package/esm2020/link/link.component.mjs +16 -14
- package/esm2020/link/link.module.mjs +4 -4
- package/esm2020/list/deprecated-list-content-density,directive.mjs +3 -3
- package/esm2020/list/directives/byline/list-byline-left.directive.mjs +3 -3
- package/esm2020/list/directives/byline/list-byline-right.directive.mjs +3 -3
- package/esm2020/list/directives/byline/list-byline.directive.mjs +3 -3
- package/esm2020/list/directives/byline/list-content.directive.mjs +3 -3
- package/esm2020/list/directives/byline/list-thumbnail.directive.mjs +3 -3
- package/esm2020/list/directives/list-footer.directive.mjs +3 -3
- package/esm2020/list/directives/list-group-header.directive.mjs +3 -3
- package/esm2020/list/directives/list-icon.directive.mjs +4 -4
- package/esm2020/list/directives/list-link.directive.mjs +3 -3
- package/esm2020/list/directives/list-navigation-item-arrow.directive.mjs +3 -3
- package/esm2020/list/directives/list-navigation-item-text.directive.mjs +3 -3
- package/esm2020/list/directives/list-secondary.directive.mjs +3 -3
- package/esm2020/list/directives/list-title-text.directive.mjs +3 -3
- package/esm2020/list/directives/list-title.directive.mjs +3 -3
- package/esm2020/list/list-focus-item.model.mjs +3 -3
- package/esm2020/list/list-item/list-item.component.mjs +3 -3
- package/esm2020/list/list-message.directive.mjs +4 -4
- package/esm2020/list/list-navigation-item/list-navigation-item.component.mjs +3 -3
- package/esm2020/list/list.component.mjs +5 -5
- package/esm2020/list/list.module.mjs +4 -4
- package/esm2020/menu/directives/deprecated-menu-compact.directive.mjs +3 -3
- package/esm2020/menu/directives/menu-addon.directive.mjs +3 -3
- package/esm2020/menu/directives/menu-interactive.directive.mjs +3 -3
- package/esm2020/menu/directives/menu-shortcut.directive.mjs +3 -3
- package/esm2020/menu/directives/menu-title.directive.mjs +3 -3
- package/esm2020/menu/directives/menu-trigger.directive.mjs +3 -3
- package/esm2020/menu/menu-item/menu-item.component.mjs +6 -6
- package/esm2020/menu/menu-keyboard.service.mjs +3 -3
- package/esm2020/menu/menu-mobile/menu-mobile.component.mjs +3 -3
- package/esm2020/menu/menu-mobile/menu-mobile.module.mjs +4 -4
- package/esm2020/menu/menu-separator/menu-separator.component.mjs +3 -3
- package/esm2020/menu/menu.component.mjs +4 -4
- package/esm2020/menu/menu.module.mjs +4 -4
- package/esm2020/menu/services/menu.service.mjs +3 -3
- package/esm2020/message-box/directives/message-box-decisive-button.directive.mjs +3 -3
- package/esm2020/message-box/message-box-body/message-box-body.component.mjs +3 -3
- package/esm2020/message-box/message-box-container/message-box-container.component.mjs +4 -4
- package/esm2020/message-box/message-box-default/message-box-default.component.mjs +3 -3
- package/esm2020/message-box/message-box-footer/message-box-footer.component.mjs +3 -3
- package/esm2020/message-box/message-box-footer-button/message-box-footer-button.component.mjs +3 -3
- package/esm2020/message-box/message-box-header/message-box-header.component.mjs +3 -3
- package/esm2020/message-box/message-box-semantic-icon/message-box-semantic-icon.component.mjs +3 -3
- package/esm2020/message-box/message-box.component.mjs +5 -5
- package/esm2020/message-box/message-box.module.mjs +4 -4
- package/esm2020/message-box/services/message-box.service.mjs +3 -3
- package/esm2020/message-box/utils/message-box-config.class.mjs +3 -3
- package/esm2020/message-box/utils/message-box-ref.class.mjs +3 -3
- package/esm2020/message-page/message-page-actions/message-page-actions.component.mjs +3 -3
- package/esm2020/message-page/message-page-more/message-page-more.component.mjs +3 -3
- package/esm2020/message-page/message-page-subtitle/message-page-subtitle.component.mjs +3 -3
- package/esm2020/message-page/message-page-title/message-page-title.component.mjs +3 -3
- package/esm2020/message-page/message-page.component.mjs +5 -5
- package/esm2020/message-page/message-page.module.mjs +4 -4
- package/esm2020/message-strip/message-strip.component.mjs +5 -5
- package/esm2020/message-strip/message-strip.module.mjs +4 -4
- package/esm2020/message-toast/message-toast-service/message-toast.service.mjs +3 -3
- package/esm2020/message-toast/message-toast-utils/message-toast-container.component.mjs +3 -3
- package/esm2020/message-toast/message-toast.component.mjs +4 -4
- package/esm2020/message-toast/message-toast.module.mjs +4 -4
- package/esm2020/micro-process-flow/components/micro-process-flow/deprecated-micro-process-flow-content-density.directive.mjs +3 -3
- package/esm2020/micro-process-flow/components/micro-process-flow/micro-process-flow.component.mjs +3 -3
- package/esm2020/micro-process-flow/components/micro-process-flow-icon/micro-process-flow-icon.component.mjs +3 -3
- package/esm2020/micro-process-flow/components/micro-process-flow-item/micro-process-flow-item.component.mjs +3 -3
- package/esm2020/micro-process-flow/micro-process-flow-focusable-item.directive.mjs +3 -3
- package/esm2020/micro-process-flow/micro-process-flow-intermediary-item.directive.mjs +3 -3
- package/esm2020/micro-process-flow/micro-process-flow.module.mjs +4 -4
- package/esm2020/multi-input/deprecated-multi-input-compact.directive.mjs +3 -3
- package/esm2020/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +3 -3
- package/esm2020/multi-input/multi-input-mobile/multi-input-mobile.module.mjs +4 -4
- package/esm2020/multi-input/multi-input.component.mjs +4 -4
- package/esm2020/multi-input/multi-input.module.mjs +4 -4
- package/esm2020/nested-list/deprecated-nested-list-compact.directive.mjs +3 -3
- package/esm2020/nested-list/nested-content/nested-list-content.directive.mjs +3 -3
- package/esm2020/nested-list/nested-item/nested-item.directive.mjs +3 -3
- package/esm2020/nested-list/nested-link/nested-link.directive.mjs +3 -3
- package/esm2020/nested-list/nested-list/nested-list.directive.mjs +3 -3
- package/esm2020/nested-list/nested-list-directives.mjs +13 -13
- package/esm2020/nested-list/nested-list-keyboard.service.mjs +3 -3
- package/esm2020/nested-list/nested-list-popover/nested-list-popover.component.mjs +3 -3
- package/esm2020/nested-list/nested-list-state.service.mjs +3 -3
- package/esm2020/nested-list/nested-list.module.mjs +4 -4
- package/esm2020/nested-list/prepared-nested-list/prepared-nested-list.component.mjs +4 -4
- package/esm2020/notification/directives/notification-footer-content.directive.mjs +3 -3
- package/esm2020/notification/directives/notification-indicator.directive.mjs +4 -4
- package/esm2020/notification/directives/notification-limit-description.directive.mjs +3 -3
- package/esm2020/notification/directives/notification-limit-title.directive.mjs +3 -3
- package/esm2020/notification/directives/notification-paragraph.directive.mjs +3 -3
- package/esm2020/notification/directives/notification-separator.directive.mjs +3 -3
- package/esm2020/notification/directives/notification-title.directive.mjs +3 -3
- package/esm2020/notification/notification/notification.component.mjs +5 -5
- package/esm2020/notification/notification-actions/notification-actions.component.mjs +3 -3
- package/esm2020/notification/notification-body/notification-body.component.mjs +3 -3
- package/esm2020/notification/notification-content/notification-content.component.mjs +3 -3
- package/esm2020/notification/notification-footer/notification-footer.component.mjs +3 -3
- package/esm2020/notification/notification-group/notification-group.component.mjs +4 -4
- package/esm2020/notification/notification-group-header/notification-group-header.component.mjs +3 -3
- package/esm2020/notification/notification-group-list/notification-group-list.component.mjs +3 -3
- package/esm2020/notification/notification-header/notification-header.component.mjs +3 -3
- package/esm2020/notification/notification-limit/notification-limit.component.mjs +3 -3
- package/esm2020/notification/notification-service/notification.service.mjs +4 -4
- package/esm2020/notification/notification-utils/notification-container.mjs +3 -3
- package/esm2020/notification/notification-utils/notification-group-base.mjs +3 -3
- package/esm2020/notification/notification.module.mjs +4 -4
- package/esm2020/object-identifier/object-identifier.component.mjs +5 -5
- package/esm2020/object-identifier/object-identifier.module.mjs +4 -4
- package/esm2020/object-marker/object-marker.component.mjs +6 -6
- package/esm2020/object-marker/object-marker.module.mjs +4 -4
- package/esm2020/object-number/object-number.component.mjs +5 -5
- package/esm2020/object-number/object-number.module.mjs +4 -4
- package/esm2020/object-status/object-status.component.mjs +6 -6
- package/esm2020/object-status/object-status.module.mjs +4 -4
- package/esm2020/overflow-layout/directives/overflow-expand.directive.mjs +3 -3
- package/esm2020/overflow-layout/directives/overflow-item-container-ref.directive.mjs +3 -3
- package/esm2020/overflow-layout/directives/overflow-item-ref.directive.mjs +3 -3
- package/esm2020/overflow-layout/directives/overflow-layout-focusable-item.directive.mjs +3 -3
- package/esm2020/overflow-layout/directives/overflow-layout-item-container.directive.mjs +3 -3
- package/esm2020/overflow-layout/directives/overflow-layout-item.directive.mjs +3 -3
- package/esm2020/overflow-layout/directives/overflow-layout-popover-content.directive.mjs +3 -3
- package/esm2020/overflow-layout/overflow-layout.component.mjs +3 -3
- package/esm2020/overflow-layout/overflow-layout.module.mjs +4 -4
- package/esm2020/overflow-layout/overflow-layout.service.mjs +3 -3
- package/esm2020/pagination/deprecated-pagination-compact.directive.mjs +3 -3
- package/esm2020/pagination/pagination.component.mjs +4 -4
- package/esm2020/pagination/pagination.module.mjs +4 -4
- package/esm2020/pagination/pagination.service.mjs +3 -3
- package/esm2020/panel/deprecated-panel-compact.directive.mjs +3 -3
- package/esm2020/panel/panel-content/panel-content.directive.mjs +3 -3
- package/esm2020/panel/panel-title/panel-title.directive.mjs +3 -3
- package/esm2020/panel/panel.component.mjs +4 -4
- package/esm2020/panel/panel.module.mjs +4 -4
- package/esm2020/popover/base/base-popover.class.mjs +3 -3
- package/esm2020/popover/popover-body/popover-body-directives/popover-body-footer.directive.mjs +3 -3
- package/esm2020/popover/popover-body/popover-body-directives/popover-body-header.directive.mjs +3 -3
- package/esm2020/popover/popover-body/popover-body.component.mjs +4 -4
- package/esm2020/popover/popover-container/popover-container.directive.mjs +3 -3
- package/esm2020/popover/popover-control/popover-control.component.mjs +3 -3
- package/esm2020/popover/popover-mobile/popover-mobile.component.mjs +3 -3
- package/esm2020/popover/popover-mobile/popover-mobile.module.mjs +4 -4
- package/esm2020/popover/popover-service/popover.service.mjs +3 -3
- package/esm2020/popover/popover-trigger.directive.mjs +3 -3
- package/esm2020/popover/popover.component.mjs +3 -3
- package/esm2020/popover/popover.module.mjs +4 -4
- package/esm2020/product-switch/product-switch/product-switch.component.mjs +3 -3
- package/esm2020/product-switch/product-switch-body/product-switch-body.component.mjs +4 -4
- package/esm2020/product-switch/product-switch.module.mjs +4 -4
- package/esm2020/progress-indicator/progress-indicator.component.mjs +4 -4
- package/esm2020/progress-indicator/progress-indicator.module.mjs +4 -4
- package/esm2020/quick-view/quick-view/quick-view.component.mjs +4 -4
- package/esm2020/quick-view/quick-view-group/quick-view-group.component.mjs +3 -3
- package/esm2020/quick-view/quick-view-group-item/quick-view-group-item.component.mjs +3 -3
- package/esm2020/quick-view/quick-view-group-item-content/quick-view-group-item-content-element.directive.mjs +3 -3
- package/esm2020/quick-view/quick-view-group-item-content/quick-view-group-item-content.component.mjs +3 -3
- package/esm2020/quick-view/quick-view-group-item-label/quick-view-group-item-label.component.mjs +3 -3
- package/esm2020/quick-view/quick-view-group-title/quick-view-group-title.component.mjs +3 -3
- package/esm2020/quick-view/quick-view-subheader/quick-view-subheader.component.mjs +3 -3
- package/esm2020/quick-view/quick-view-subheader-subtitle/quick-view-subheader-subtitle.component.mjs +3 -3
- package/esm2020/quick-view/quick-view-subheader-title/quick-view-subheader-title.component.mjs +3 -3
- package/esm2020/quick-view/quick-view-title/quick-view-title.component.mjs +3 -3
- package/esm2020/quick-view/quick-view.module.mjs +4 -4
- package/esm2020/radio/deprecated-radio-button-compact.directive.mjs +3 -3
- package/esm2020/radio/radio-button/radio-button.component.mjs +6 -6
- package/esm2020/radio/radio.module.mjs +4 -4
- package/esm2020/rating-indicator/components/rating-indicator.component.mjs +6 -6
- package/esm2020/rating-indicator/pipes/rating-star-label.pipe.mjs +3 -3
- package/esm2020/rating-indicator/rating-indicator.module.mjs +4 -4
- package/esm2020/resizable-card-layout/resizable-card-layout/resizable-card-item/resizable-card-item.component.mjs +4 -4
- package/esm2020/resizable-card-layout/resizable-card-layout/resizable-card-layout.component.mjs +4 -4
- package/esm2020/resizable-card-layout/resizable-card-layout.module.mjs +4 -4
- package/esm2020/scroll-spy/scroll-spy.directive.mjs +3 -3
- package/esm2020/scroll-spy/scroll-spy.module.mjs +4 -4
- package/esm2020/scrollbar/scrollbar.component.mjs +4 -4
- package/esm2020/scrollbar/scrollbar.module.mjs +4 -4
- package/esm2020/segmented-button/segmented-button.component.mjs +5 -5
- package/esm2020/segmented-button/segmented-button.module.mjs +4 -4
- package/esm2020/select/deprecated-select-compact.directive.mjs +3 -3
- package/esm2020/select/option/option.component.mjs +3 -3
- package/esm2020/select/select-key-manager.service.mjs +3 -3
- package/esm2020/select/select-mobile/select-mobile.component.mjs +3 -3
- package/esm2020/select/select-mobile/select-mobile.module.mjs +4 -4
- package/esm2020/select/select.component.mjs +8 -8
- package/esm2020/select/select.module.mjs +4 -4
- package/esm2020/shared/services/value-state-message.service.mjs +3 -3
- package/esm2020/shellbar/deprecated-shellbar-compact.directive.mjs +3 -3
- package/esm2020/shellbar/product-menu/product-menu.component.mjs +3 -3
- package/esm2020/shellbar/shellbar-action/shellbar-action.component.mjs +3 -3
- package/esm2020/shellbar/shellbar-actions/shellbar-actions.component.mjs +3 -3
- package/esm2020/shellbar/shellbar-actions-mobile/shellbar-actions-mobile.component.mjs +3 -3
- package/esm2020/shellbar/shellbar-logo/shellbar-logo.component.mjs +3 -3
- package/esm2020/shellbar/shellbar-sidenav.directive.mjs +3 -3
- package/esm2020/shellbar/shellbar-subtitle/shellbar-subtitle.component.mjs +3 -3
- package/esm2020/shellbar/shellbar-title/shellbar-title.component.mjs +3 -3
- package/esm2020/shellbar/shellbar.component.mjs +4 -4
- package/esm2020/shellbar/shellbar.module.mjs +4 -4
- package/esm2020/shellbar/user-menu/shellbar-user-menu.component.mjs +5 -5
- package/esm2020/side-navigation/side-navigation-main.directive.mjs +3 -3
- package/esm2020/side-navigation/side-navigation-utility.directive.mjs +3 -3
- package/esm2020/side-navigation/side-navigation.component.mjs +4 -4
- package/esm2020/side-navigation/side-navigation.module.mjs +4 -4
- package/esm2020/slider/deprecated-slider-cozy.directive.mjs +3 -3
- package/esm2020/slider/slider-position.directive.mjs +3 -3
- package/esm2020/slider/slider.component.mjs +6 -6
- package/esm2020/slider/slider.module.mjs +4 -4
- package/esm2020/split-button/deprecated-split-button-compact.directive.mjs +3 -3
- package/esm2020/split-button/split-button-utils/split-button.directives.mjs +3 -3
- package/esm2020/split-button/split-button.component.mjs +4 -4
- package/esm2020/split-button/split-button.module.mjs +4 -4
- package/esm2020/splitter/splitter-pagination/splitter-pagination.component.mjs +3 -3
- package/esm2020/splitter/splitter-pane-container/splitter-pane-container.component.mjs +7 -7
- package/esm2020/splitter/splitter-resizer/splitter-resizer.component.mjs +4 -4
- package/esm2020/splitter/splitter-split-pane/splitter-split-pane.component.mjs +4 -4
- package/esm2020/splitter/splitter.component.mjs +4 -4
- package/esm2020/splitter/splitter.module.mjs +4 -4
- package/esm2020/status-indicator/status-indicator.component.mjs +5 -5
- package/esm2020/status-indicator/status-indicator.module.mjs +4 -4
- package/esm2020/step-input/deprecated-step-input-compact.directive.mjs +3 -3
- package/esm2020/step-input/step-input.component.mjs +5 -5
- package/esm2020/step-input/step-input.module.mjs +4 -4
- package/esm2020/switch/deprecated-switch-compact.directive.mjs +3 -3
- package/esm2020/switch/switch.component.mjs +5 -5
- package/esm2020/switch/switch.module.mjs +4 -4
- package/esm2020/table/deprecated-table-compact.directive.mjs +3 -3
- package/esm2020/table/deprecated-table-condensed.directive.mjs +3 -3
- package/esm2020/table/directives/table-body.directive.mjs +3 -3
- package/esm2020/table/directives/table-cell.directive.mjs +3 -3
- package/esm2020/table/directives/table-footer.directive.mjs +3 -3
- package/esm2020/table/directives/table-header.directive.mjs +3 -3
- package/esm2020/table/directives/table-icon.directive.mjs +4 -4
- package/esm2020/table/directives/table-inner.directive.mjs +3 -3
- package/esm2020/table/directives/table-popover.directive.mjs +3 -3
- package/esm2020/table/directives/table-responsive-wrapper.directive.mjs +3 -3
- package/esm2020/table/directives/table-row.directive.mjs +3 -3
- package/esm2020/table/directives/table-status-indicator.directive.mjs +3 -3
- package/esm2020/table/directives/table-text.directive.mjs +3 -3
- package/esm2020/table/table-wrapper.component.mjs +4 -4
- package/esm2020/table/table.component.mjs +5 -5
- package/esm2020/table/table.module.mjs +4 -4
- package/esm2020/tabs/deprecated-tabs-compact.directive.mjs +3 -3
- package/esm2020/tabs/tab-item/tab-item.directive.mjs +4 -4
- package/esm2020/tabs/tab-item-expand/tab-item-expand.component.mjs +3 -3
- package/esm2020/tabs/tab-link/tab-link.directive.mjs +3 -3
- package/esm2020/tabs/tab-list.component.mjs +5 -5
- package/esm2020/tabs/tab-nav/tab-nav.component.mjs +5 -5
- package/esm2020/tabs/tab-panel/tab-panel.component.mjs +3 -3
- package/esm2020/tabs/tab-utils/tab-directives.mjs +31 -31
- package/esm2020/tabs/tabs.module.mjs +4 -4
- package/esm2020/text/text.component.mjs +4 -4
- package/esm2020/text/text.module.mjs +4 -4
- package/esm2020/theming/theming.module.mjs +4 -4
- package/esm2020/theming/theming.service.mjs +4 -4
- package/esm2020/tile/directives/numeric-content.directives.mjs +28 -28
- package/esm2020/tile/directives/tile.directives.mjs +70 -70
- package/esm2020/tile/tile.component.mjs +5 -5
- package/esm2020/tile/tile.module.mjs +4 -4
- package/esm2020/time/deprecated-time-content-density.directive.mjs +3 -3
- package/esm2020/time/i18n/time-i18n.mjs +3 -3
- package/esm2020/time/time-column/time-column.component.mjs +3 -3
- package/esm2020/time/time.component.mjs +5 -5
- package/esm2020/time/time.module.mjs +4 -4
- package/esm2020/time-picker/deprecated-timepicker-compact.directive.mjs +3 -3
- package/esm2020/time-picker/time-picker.component.mjs +3 -3
- package/esm2020/time-picker/time-picker.module.mjs +4 -4
- package/esm2020/timeline/components/timeline-node/timeline-node.component.mjs +3 -3
- package/esm2020/timeline/components/timeline-node-body/timeline-node-body.component.mjs +3 -3
- package/esm2020/timeline/components/timeline-node-footer/timeline-node-footer.component.mjs +3 -3
- package/esm2020/timeline/components/timeline-node-header/timeline-node-header-info/timeline-node-header-info.component.mjs +3 -3
- package/esm2020/timeline/components/timeline-node-header/timeline-node-header.component.mjs +3 -3
- package/esm2020/timeline/directives/class-bindings/timeline-header-info-sub-title.directive.mjs +3 -3
- package/esm2020/timeline/directives/class-bindings/timeline-node-header-info-text.directive.mjs +3 -3
- package/esm2020/timeline/directives/class-bindings/timeline-node-header-info-title.directive.mjs +3 -3
- package/esm2020/timeline/directives/timeline-first-list-outlet.directive.mjs +3 -3
- package/esm2020/timeline/directives/timeline-node-def.directive.mjs +3 -3
- package/esm2020/timeline/directives/timeline-second-list-outlet.directive.mjs +3 -3
- package/esm2020/timeline/services/timeline-position-control.service.mjs +3 -3
- package/esm2020/timeline/timeline.component.mjs +3 -3
- package/esm2020/timeline/timeline.module.mjs +4 -4
- package/esm2020/title/title.component.mjs +4 -4
- package/esm2020/title/title.module.mjs +4 -4
- package/esm2020/token/deprecated-tokenizer-content-density.directive.mjs +3 -3
- package/esm2020/token/token-input.directive.mjs +4 -4
- package/esm2020/token/token.component.mjs +4 -4
- package/esm2020/token/token.module.mjs +4 -4
- package/esm2020/token/tokenizer.component.mjs +5 -5
- package/esm2020/toolbar/deprecated-toolbar-size.directive.mjs +3 -3
- package/esm2020/toolbar/toolbar-form-label.directive.mjs +3 -3
- package/esm2020/toolbar/toolbar-item.directive.mjs +3 -3
- package/esm2020/toolbar/toolbar-label.directive.mjs +3 -3
- package/esm2020/toolbar/toolbar-overflow-button-menu.directive.mjs +3 -3
- package/esm2020/toolbar/toolbar-overflow-button.directive.mjs +3 -3
- package/esm2020/toolbar/toolbar-overflow-group.directive.mjs +3 -3
- package/esm2020/toolbar/toolbar-overflow-priority.directive.mjs +3 -3
- package/esm2020/toolbar/toolbar-separator.component.mjs +3 -3
- package/esm2020/toolbar/toolbar-spacer.component.mjs +3 -3
- package/esm2020/toolbar/toolbar.component.mjs +6 -6
- package/esm2020/toolbar/toolbar.module.mjs +4 -4
- package/esm2020/tree/tree-child.component.mjs +3 -3
- package/esm2020/tree/tree.component.mjs +4 -4
- package/esm2020/tree/tree.module.mjs +4 -4
- package/esm2020/upload-collection/upload-collection-button-group/upload-collection-button-group.component.mjs +3 -3
- package/esm2020/upload-collection/upload-collection-form-item/upload-collection-form-item.component.mjs +3 -3
- package/esm2020/upload-collection/upload-collection-item.directive.mjs +3 -3
- package/esm2020/upload-collection/upload-collection-simple.directives.mjs +21 -21
- package/esm2020/upload-collection/upload-collection.component.mjs +5 -5
- package/esm2020/upload-collection/upload-collection.module.mjs +4 -4
- package/esm2020/utils/abstract-fd-ngx-class.mjs +3 -3
- package/esm2020/utils/directives/auto-complete/auto-complete.directive.mjs +3 -3
- package/esm2020/utils/directives/auto-complete/auto-complete.module.mjs +4 -4
- package/esm2020/utils/directives/focus-key-manager/focus-key-manager-helpers.module.mjs +4 -4
- package/esm2020/utils/directives/focus-key-manager/focus-key-manager-item.directive.mjs +3 -3
- package/esm2020/utils/directives/focus-key-manager/focus-key-manager-list.directive.mjs +3 -3
- package/esm2020/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.mjs +4 -4
- package/esm2020/utils/directives/ignore-click-on-selection/ignore-click-on-selection.module.mjs +4 -4
- package/esm2020/utils/directives/initial-focus/initial-focus.directive.mjs +3 -3
- package/esm2020/utils/directives/initial-focus/initial-focus.module.mjs +4 -4
- package/esm2020/utils/directives/line-clamp/line-clamp.directive.mjs +6 -6
- package/esm2020/utils/directives/line-clamp/line-clamp.module.mjs +4 -4
- package/esm2020/utils/directives/only-digits/only-digits.directive.mjs +3 -3
- package/esm2020/utils/directives/only-digits/only-digits.module.mjs +4 -4
- package/esm2020/utils/directives/overflow-list/overflow-list-item.directive.mjs +3 -3
- package/esm2020/utils/directives/overflow-list/overflow-list.directive.mjs +3 -3
- package/esm2020/utils/directives/overflow-list/overflow-list.module.mjs +4 -4
- package/esm2020/utils/directives/resize/resize-handle.directive.mjs +3 -3
- package/esm2020/utils/directives/resize/resize.directive.mjs +3 -3
- package/esm2020/utils/directives/resize/resize.module.mjs +4 -4
- package/esm2020/utils/directives/template/template.directive.mjs +3 -3
- package/esm2020/utils/directives/template/template.module.mjs +4 -4
- package/esm2020/utils/directives/truncate/truncate.directive.mjs +3 -3
- package/esm2020/utils/directives/truncate/truncate.module.mjs +4 -4
- package/esm2020/utils/drag-and-drop/dnd-item/dnd-item.directive.mjs +3 -3
- package/esm2020/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.mjs +3 -3
- package/esm2020/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.mjs +3 -3
- package/esm2020/utils/drag-and-drop/dnd-list/dnd-list.directive.mjs +3 -3
- package/esm2020/utils/drag-and-drop/drag-and-drop.module.mjs +4 -4
- package/esm2020/utils/dynamic-component/dynamic-component-injector.mjs +1 -1
- package/esm2020/utils/dynamic-component/dynamic-component.service.mjs +3 -3
- package/esm2020/utils/pipes/displayFn.pipe.mjs +3 -3
- package/esm2020/utils/pipes/is-compact.pipe.mjs +3 -3
- package/esm2020/utils/pipes/pipe.module.mjs +4 -4
- package/esm2020/utils/pipes/safe.pipe.mjs +3 -3
- package/esm2020/utils/pipes/search-highlight.pipe.mjs +3 -3
- package/esm2020/utils/pipes/truncate.pipe.mjs +3 -3
- package/esm2020/utils/pipes/two-digits.pipe.mjs +3 -3
- package/esm2020/utils/pipes/value-by-path.pipe.mjs +3 -3
- package/esm2020/utils/services/content-density.service.mjs +3 -3
- package/esm2020/utils/services/destroyed.service.mjs +3 -3
- package/esm2020/utils/services/focus-trap.service.mjs +3 -3
- package/esm2020/utils/services/local-storage.service.mjs +3 -3
- package/esm2020/utils/services/resize-observer.service.mjs +7 -7
- package/esm2020/utils/services/rtl.service.mjs +3 -3
- package/esm2020/utils/services/tabbable-element.service.mjs +4 -4
- package/esm2020/utils/services/themes.service.mjs +3 -3
- package/esm2020/utils/utils.module.mjs +4 -4
- package/esm2020/vertical-navigation/vertical-navigation-group-header.directive.mjs +3 -3
- package/esm2020/vertical-navigation/vertical-navigation-main-navigation.component.mjs +4 -4
- package/esm2020/vertical-navigation/vertical-navigation.component.mjs +4 -4
- package/esm2020/vertical-navigation/vertical-navigation.module.mjs +4 -4
- package/esm2020/wizard/deprecated-wizard-compact.directive.mjs +3 -3
- package/esm2020/wizard/wizard-content/wizard-content.component.mjs +3 -3
- package/esm2020/wizard/wizard-navigation/wizard-navigation.component.mjs +3 -3
- package/esm2020/wizard/wizard-next-step/wizard-next-step.component.mjs +3 -3
- package/esm2020/wizard/wizard-progress-bar/wizard-progress-bar.directive.mjs +3 -3
- package/esm2020/wizard/wizard-step/wizard-step.component.mjs +3 -3
- package/esm2020/wizard/wizard-step-indicator/wizard-step-indicator.component.mjs +3 -3
- package/esm2020/wizard/wizard.component.mjs +5 -5
- package/esm2020/wizard/wizard.module.mjs +4 -4
- package/esm2020/wizard/wizard.service.mjs +3 -3
- package/facets/content/facet-content.component.d.ts +1 -1
- package/facets/facet/facet.component.d.ts +1 -1
- package/facets/facet-group.component.d.ts +1 -1
- package/feed-input/directives/feed-input-avatar.directive.d.ts +1 -1
- package/feed-input/directives/feed-input-button.directive.d.ts +1 -1
- package/feed-input/directives/feed-input-textarea.directive.d.ts +1 -1
- package/feed-input/feed-input.component.d.ts +1 -1
- package/feed-list-item/components/feed-list-action/feed-list-action.component.d.ts +1 -1
- package/feed-list-item/components/feed-list-avatar/feed-list-avatar.component.d.ts +1 -1
- package/feed-list-item/components/feed-list-footer/feed-list-footer.component.d.ts +1 -1
- package/feed-list-item/components/item/feed-list-item.component.d.ts +1 -1
- package/feed-list-item/components/list/feed-list.component.d.ts +1 -1
- package/feed-list-item/directives/byline.directive.d.ts +1 -1
- package/fesm2015/fundamental-ngx-core-action-bar.mjs +26 -26
- package/fesm2015/fundamental-ngx-core-action-bar.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-action-sheet.mjs +27 -27
- package/fesm2015/fundamental-ngx-core-action-sheet.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-alert.mjs +14 -14
- package/fesm2015/fundamental-ngx-core-alert.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-avatar-group.mjs +30 -30
- package/fesm2015/fundamental-ngx-core-avatar-group.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-avatar.mjs +8 -8
- package/fesm2015/fundamental-ngx-core-avatar.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-bar.mjs +30 -30
- package/fesm2015/fundamental-ngx-core-bar.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-breadcrumb.mjs +14 -14
- package/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-busy-indicator.mjs +11 -11
- package/fesm2015/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-button.mjs +15 -15
- package/fesm2015/fundamental-ngx-core-button.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-calendar.mjs +36 -36
- package/fesm2015/fundamental-ngx-core-calendar.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-card.mjs +60 -60
- package/fesm2015/fundamental-ngx-core-card.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-carousel.mjs +20 -20
- package/fesm2015/fundamental-ngx-core-carousel.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-checkbox.mjs +12 -12
- package/fesm2015/fundamental-ngx-core-checkbox.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-combobox.mjs +20 -20
- package/fesm2015/fundamental-ngx-core-content-density.mjs +37 -37
- package/fesm2015/fundamental-ngx-core-date-picker.mjs +10 -10
- package/fesm2015/fundamental-ngx-core-datetime-picker.mjs +10 -10
- package/fesm2015/fundamental-ngx-core-datetime.mjs +24 -24
- package/fesm2015/fundamental-ngx-core-dialog.mjs +53 -53
- package/fesm2015/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-dynamic-page.mjs +44 -44
- package/fesm2015/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-dynamic-side-content.mjs +14 -14
- package/fesm2015/fundamental-ngx-core-dynamic-side-content.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-facets.mjs +14 -14
- package/fesm2015/fundamental-ngx-core-facets.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-feed-input.mjs +17 -17
- package/fesm2015/fundamental-ngx-core-feed-input.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-feed-list-item.mjs +23 -23
- package/fesm2015/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-file-uploader.mjs +21 -21
- package/fesm2015/fundamental-ngx-core-file-uploader.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-fixed-card-layout.mjs +14 -14
- package/fesm2015/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-flexible-column-layout.mjs +8 -8
- package/fesm2015/fundamental-ngx-core-flexible-column-layout.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-form.mjs +86 -86
- package/fesm2015/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-formatted-text.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-grid-list.mjs +47 -47
- package/fesm2015/fundamental-ngx-core-grid-list.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-icon.mjs +8 -8
- package/fesm2015/fundamental-ngx-core-icon.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-illustrated-message.mjs +21 -21
- package/fesm2015/fundamental-ngx-core-illustrated-message.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-infinite-scroll.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-info-label.mjs +8 -8
- package/fesm2015/fundamental-ngx-core-info-label.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-inline-help.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-input-group.mjs +21 -21
- package/fesm2015/fundamental-ngx-core-input-group.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-layout-grid.mjs +14 -14
- package/fesm2015/fundamental-ngx-core-layout-grid.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-layout-panel.mjs +32 -32
- package/fesm2015/fundamental-ngx-core-layout-panel.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-link.mjs +18 -17
- package/fesm2015/fundamental-ngx-core-link.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-list.mjs +66 -66
- package/fesm2015/fundamental-ngx-core-list.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-menu.mjs +48 -48
- package/fesm2015/fundamental-ngx-core-menu.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-message-box.mjs +41 -41
- package/fesm2015/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-message-page.mjs +20 -20
- package/fesm2015/fundamental-ngx-core-message-page.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-message-strip.mjs +8 -8
- package/fesm2015/fundamental-ngx-core-message-strip.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-message-toast.mjs +14 -14
- package/fesm2015/fundamental-ngx-core-message-toast.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-micro-process-flow.mjs +22 -22
- package/fesm2015/fundamental-ngx-core-multi-input.mjs +17 -17
- package/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-nested-list.mjs +43 -43
- package/fesm2015/fundamental-ngx-core-nested-list.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-notification.mjs +66 -66
- package/fesm2015/fundamental-ngx-core-notification.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-object-identifier.mjs +9 -9
- package/fesm2015/fundamental-ngx-core-object-identifier.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-object-marker.mjs +9 -9
- package/fesm2015/fundamental-ngx-core-object-marker.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-object-number.mjs +8 -8
- package/fesm2015/fundamental-ngx-core-object-number.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-object-status.mjs +9 -9
- package/fesm2015/fundamental-ngx-core-object-status.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-overflow-layout.mjs +31 -31
- package/fesm2015/fundamental-ngx-core-pagination.mjs +14 -14
- package/fesm2015/fundamental-ngx-core-pagination.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-panel.mjs +17 -17
- package/fesm2015/fundamental-ngx-core-panel.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-popover.mjs +39 -39
- package/fesm2015/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-product-switch.mjs +11 -11
- package/fesm2015/fundamental-ngx-core-product-switch.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-progress-indicator.mjs +8 -8
- package/fesm2015/fundamental-ngx-core-progress-indicator.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-quick-view.mjs +38 -38
- package/fesm2015/fundamental-ngx-core-quick-view.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-radio.mjs +12 -12
- package/fesm2015/fundamental-ngx-core-radio.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-rating-indicator.mjs +12 -12
- package/fesm2015/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-resizable-card-layout.mjs +12 -12
- package/fesm2015/fundamental-ngx-core-resizable-card-layout.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-scroll-spy.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-scrollbar.mjs +8 -8
- package/fesm2015/fundamental-ngx-core-scrollbar.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-segmented-button.mjs +9 -9
- package/fesm2015/fundamental-ngx-core-segmented-button.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-select.mjs +27 -27
- package/fesm2015/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-shared.mjs +3 -3
- package/fesm2015/fundamental-ngx-core-shellbar.mjs +39 -39
- package/fesm2015/fundamental-ngx-core-shellbar.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-side-navigation.mjs +14 -14
- package/fesm2015/fundamental-ngx-core-side-navigation.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-slider.mjs +15 -15
- package/fesm2015/fundamental-ngx-core-slider.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-split-button.mjs +14 -14
- package/fesm2015/fundamental-ngx-core-split-button.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-splitter.mjs +23 -23
- package/fesm2015/fundamental-ngx-core-splitter.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-status-indicator.mjs +8 -8
- package/fesm2015/fundamental-ngx-core-status-indicator.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-step-input.mjs +12 -12
- package/fesm2015/fundamental-ngx-core-step-input.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-switch.mjs +12 -12
- package/fesm2015/fundamental-ngx-core-switch.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-table.mjs +52 -52
- package/fesm2015/fundamental-ngx-core-table.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-tabs.mjs +58 -58
- package/fesm2015/fundamental-ngx-core-tabs.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-text.mjs +8 -8
- package/fesm2015/fundamental-ngx-core-text.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-theming.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-theming.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-tile.mjs +104 -104
- package/fesm2015/fundamental-ngx-core-tile.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-time-picker.mjs +10 -10
- package/fesm2015/fundamental-ngx-core-time.mjs +18 -18
- package/fesm2015/fundamental-ngx-core-time.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-timeline.mjs +43 -43
- package/fesm2015/fundamental-ngx-core-title.mjs +8 -8
- package/fesm2015/fundamental-ngx-core-title.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-token.mjs +18 -18
- package/fesm2015/fundamental-ngx-core-token.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-toolbar.mjs +39 -39
- package/fesm2015/fundamental-ngx-core-toolbar.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-tree.mjs +11 -11
- package/fesm2015/fundamental-ngx-core-tree.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-upload-collection.mjs +39 -39
- package/fesm2015/fundamental-ngx-core-upload-collection.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-utils.mjs +160 -160
- package/fesm2015/fundamental-ngx-core-utils.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-vertical-navigation.mjs +15 -15
- package/fesm2015/fundamental-ngx-core-vertical-navigation.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-wizard.mjs +33 -33
- package/fesm2015/fundamental-ngx-core-wizard.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core.mjs +4 -4
- package/fesm2020/fundamental-ngx-core-action-bar.mjs +26 -26
- package/fesm2020/fundamental-ngx-core-action-bar.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-action-sheet.mjs +27 -27
- package/fesm2020/fundamental-ngx-core-action-sheet.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-alert.mjs +14 -14
- package/fesm2020/fundamental-ngx-core-alert.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-avatar-group.mjs +30 -30
- package/fesm2020/fundamental-ngx-core-avatar-group.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-avatar.mjs +8 -8
- package/fesm2020/fundamental-ngx-core-avatar.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-bar.mjs +30 -30
- package/fesm2020/fundamental-ngx-core-bar.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-breadcrumb.mjs +14 -14
- package/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-busy-indicator.mjs +11 -11
- package/fesm2020/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-button.mjs +15 -15
- package/fesm2020/fundamental-ngx-core-button.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-calendar.mjs +36 -36
- package/fesm2020/fundamental-ngx-core-calendar.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-card.mjs +60 -60
- package/fesm2020/fundamental-ngx-core-card.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-carousel.mjs +20 -20
- package/fesm2020/fundamental-ngx-core-carousel.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-checkbox.mjs +12 -12
- package/fesm2020/fundamental-ngx-core-checkbox.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-combobox.mjs +20 -20
- package/fesm2020/fundamental-ngx-core-content-density.mjs +37 -37
- package/fesm2020/fundamental-ngx-core-date-picker.mjs +10 -10
- package/fesm2020/fundamental-ngx-core-datetime-picker.mjs +10 -10
- package/fesm2020/fundamental-ngx-core-datetime.mjs +24 -24
- package/fesm2020/fundamental-ngx-core-dialog.mjs +53 -53
- package/fesm2020/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-dynamic-page.mjs +44 -44
- package/fesm2020/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-dynamic-side-content.mjs +14 -14
- package/fesm2020/fundamental-ngx-core-dynamic-side-content.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-facets.mjs +14 -14
- package/fesm2020/fundamental-ngx-core-facets.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-feed-input.mjs +17 -17
- package/fesm2020/fundamental-ngx-core-feed-input.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-feed-list-item.mjs +23 -23
- package/fesm2020/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-file-uploader.mjs +21 -21
- package/fesm2020/fundamental-ngx-core-file-uploader.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-fixed-card-layout.mjs +14 -14
- package/fesm2020/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-flexible-column-layout.mjs +8 -8
- package/fesm2020/fundamental-ngx-core-flexible-column-layout.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-form.mjs +86 -86
- package/fesm2020/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-formatted-text.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-grid-list.mjs +47 -47
- package/fesm2020/fundamental-ngx-core-grid-list.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-icon.mjs +8 -8
- package/fesm2020/fundamental-ngx-core-icon.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-illustrated-message.mjs +21 -21
- package/fesm2020/fundamental-ngx-core-illustrated-message.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-infinite-scroll.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-info-label.mjs +8 -8
- package/fesm2020/fundamental-ngx-core-info-label.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-inline-help.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-input-group.mjs +21 -21
- package/fesm2020/fundamental-ngx-core-input-group.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-layout-grid.mjs +14 -14
- package/fesm2020/fundamental-ngx-core-layout-grid.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-layout-panel.mjs +32 -32
- package/fesm2020/fundamental-ngx-core-layout-panel.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-link.mjs +18 -17
- package/fesm2020/fundamental-ngx-core-link.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-list.mjs +66 -66
- package/fesm2020/fundamental-ngx-core-list.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-menu.mjs +48 -48
- package/fesm2020/fundamental-ngx-core-menu.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-message-box.mjs +41 -41
- package/fesm2020/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-message-page.mjs +20 -20
- package/fesm2020/fundamental-ngx-core-message-page.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-message-strip.mjs +8 -8
- package/fesm2020/fundamental-ngx-core-message-strip.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-message-toast.mjs +14 -14
- package/fesm2020/fundamental-ngx-core-message-toast.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-micro-process-flow.mjs +22 -22
- package/fesm2020/fundamental-ngx-core-multi-input.mjs +17 -17
- package/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-nested-list.mjs +43 -43
- package/fesm2020/fundamental-ngx-core-nested-list.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-notification.mjs +66 -66
- package/fesm2020/fundamental-ngx-core-notification.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-object-identifier.mjs +9 -9
- package/fesm2020/fundamental-ngx-core-object-identifier.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-object-marker.mjs +9 -9
- package/fesm2020/fundamental-ngx-core-object-marker.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-object-number.mjs +8 -8
- package/fesm2020/fundamental-ngx-core-object-number.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-object-status.mjs +9 -9
- package/fesm2020/fundamental-ngx-core-object-status.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-overflow-layout.mjs +31 -31
- package/fesm2020/fundamental-ngx-core-pagination.mjs +14 -14
- package/fesm2020/fundamental-ngx-core-pagination.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-panel.mjs +17 -17
- package/fesm2020/fundamental-ngx-core-panel.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-popover.mjs +39 -39
- package/fesm2020/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-product-switch.mjs +11 -11
- package/fesm2020/fundamental-ngx-core-product-switch.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-progress-indicator.mjs +8 -8
- package/fesm2020/fundamental-ngx-core-progress-indicator.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-quick-view.mjs +38 -38
- package/fesm2020/fundamental-ngx-core-quick-view.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-radio.mjs +12 -12
- package/fesm2020/fundamental-ngx-core-radio.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-rating-indicator.mjs +12 -12
- package/fesm2020/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-resizable-card-layout.mjs +12 -12
- package/fesm2020/fundamental-ngx-core-resizable-card-layout.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-scroll-spy.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-scrollbar.mjs +8 -8
- package/fesm2020/fundamental-ngx-core-scrollbar.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-segmented-button.mjs +9 -9
- package/fesm2020/fundamental-ngx-core-segmented-button.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-select.mjs +27 -27
- package/fesm2020/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-shared.mjs +3 -3
- package/fesm2020/fundamental-ngx-core-shellbar.mjs +39 -39
- package/fesm2020/fundamental-ngx-core-shellbar.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-side-navigation.mjs +14 -14
- package/fesm2020/fundamental-ngx-core-side-navigation.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-slider.mjs +15 -15
- package/fesm2020/fundamental-ngx-core-slider.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-split-button.mjs +14 -14
- package/fesm2020/fundamental-ngx-core-split-button.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-splitter.mjs +23 -23
- package/fesm2020/fundamental-ngx-core-splitter.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-status-indicator.mjs +8 -8
- package/fesm2020/fundamental-ngx-core-status-indicator.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-step-input.mjs +12 -12
- package/fesm2020/fundamental-ngx-core-step-input.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-switch.mjs +12 -12
- package/fesm2020/fundamental-ngx-core-switch.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-table.mjs +52 -52
- package/fesm2020/fundamental-ngx-core-table.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-tabs.mjs +58 -58
- package/fesm2020/fundamental-ngx-core-tabs.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-text.mjs +8 -8
- package/fesm2020/fundamental-ngx-core-text.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-theming.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-theming.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-tile.mjs +104 -104
- package/fesm2020/fundamental-ngx-core-tile.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-time-picker.mjs +10 -10
- package/fesm2020/fundamental-ngx-core-time.mjs +18 -18
- package/fesm2020/fundamental-ngx-core-time.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-timeline.mjs +43 -43
- package/fesm2020/fundamental-ngx-core-title.mjs +8 -8
- package/fesm2020/fundamental-ngx-core-title.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-token.mjs +18 -18
- package/fesm2020/fundamental-ngx-core-token.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-toolbar.mjs +39 -39
- package/fesm2020/fundamental-ngx-core-toolbar.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-tree.mjs +11 -11
- package/fesm2020/fundamental-ngx-core-tree.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-upload-collection.mjs +39 -39
- package/fesm2020/fundamental-ngx-core-upload-collection.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-utils.mjs +160 -160
- package/fesm2020/fundamental-ngx-core-utils.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-vertical-navigation.mjs +15 -15
- package/fesm2020/fundamental-ngx-core-vertical-navigation.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-wizard.mjs +33 -33
- package/fesm2020/fundamental-ngx-core-wizard.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core.mjs +4 -4
- package/file-uploader/deprecated-file-uploader-content-density.directive.d.ts +1 -1
- package/file-uploader/directives/file-uploader-dragndrop.directive.d.ts +1 -1
- package/file-uploader/directives/file-uploader-select.directive.d.ts +1 -1
- package/file-uploader/file-uploader.component.d.ts +1 -1
- package/fixed-card-layout/fixed-card-layout-item/fixed-card-layout-item.component.d.ts +1 -1
- package/fixed-card-layout/fixed-card-layout.component.d.ts +2 -2
- package/flexible-column-layout/flexible-column-layout.component.d.ts +1 -1
- package/form/fieldset/fieldset.component.d.ts +1 -1
- package/form/form-control/deprecated-form-control-content-density.directive.d.ts +1 -1
- package/form/form-control/form-control.component.d.ts +1 -1
- package/form/form-control/input-form-control.directive.d.ts +1 -1
- package/form/form-control/textarea-form-control.directive.d.ts +1 -1
- package/form/form-group/form-group.component.d.ts +1 -1
- package/form/form-header/form-header.component.d.ts +1 -1
- package/form/form-input-message-group/form-input-message-group.component.d.ts +1 -1
- package/form/form-item/form-item.component.d.ts +1 -1
- package/form/form-label/form-label.component.d.ts +1 -1
- package/form/form-legend/form-legend.directive.d.ts +1 -1
- package/form/form-message/form-message.component.d.ts +1 -1
- package/formatted-text/formatted-text.component.d.ts +1 -1
- package/fundamental-ngx-core-v0.37.2.tgz +0 -0
- package/grid-list/components/grid-list/grid-list-base.component.d.ts +1 -1
- package/grid-list/components/grid-list/grid-list.component.d.ts +1 -1
- package/grid-list/components/grid-list-filter-bar/grid-list-filter-bar.component.d.ts +1 -1
- package/grid-list/components/grid-list-footer/grid-list-footer.component.d.ts +1 -1
- package/grid-list/components/grid-list-group-header/grid-list-group-header.component.d.ts +1 -1
- package/grid-list/components/grid-list-item/grid-list-item.component.d.ts +1 -1
- package/grid-list/components/grid-list-item-footer-bar/grid-list-item-footer-bar.component.d.ts +1 -1
- package/grid-list/components/grid-list-item-toolbar/grid-list-item-toolbar.component.d.ts +1 -1
- package/grid-list/components/grid-list-more-btn/grid-list-more-btn.component.d.ts +1 -1
- package/grid-list/components/grid-list-title-bar/grid-list-title-bar.component.d.ts +1 -1
- package/grid-list/components/grid-list-title-bar/grid-list-title-bar.directive.d.ts +1 -1
- package/grid-list/components/grid-list-title-bar-spacer/grid-list-title-bar-spacer.component.d.ts +1 -1
- package/grid-list/directives/grid-list-item-body.directive.d.ts +1 -1
- package/grid-list/directives/grid-list-item-image.directive.d.ts +1 -1
- package/icon/icon.component.d.ts +1 -1
- package/illustrated-message/components/illustrated-message-actions/illustrated-message-actions.component.d.ts +1 -1
- package/illustrated-message/components/illustrated-message-figcaption/illustrated-message-figcaption.component.d.ts +1 -1
- package/illustrated-message/directives/illustrated-message-text/illustrated-message-text.directive.d.ts +1 -1
- package/illustrated-message/directives/illustrated-message-title/illustrated-message-title.directive.d.ts +1 -1
- package/illustrated-message/illustrated-message.component.d.ts +1 -1
- package/infinite-scroll/infinite-scroll.directive.d.ts +1 -1
- package/info-label/info-label.component.d.ts +1 -1
- package/inline-help/inline-help.directive.d.ts +1 -1
- package/input-group/deprecated-input-group-compact.directive.d.ts +1 -1
- package/input-group/input-group-directives.d.ts +3 -3
- package/input-group/input-group.component.d.ts +1 -1
- package/layout-grid/directives/layout-grid-col.directive.d.ts +1 -1
- package/layout-grid/directives/layout-grid-row.directive.d.ts +1 -1
- package/layout-grid/layout-grid.component.d.ts +1 -1
- package/layout-panel/layout-panel-actions/layout-panel-actions.component.d.ts +1 -1
- package/layout-panel/layout-panel-body/layout-panel-body.component.d.ts +1 -1
- package/layout-panel/layout-panel-description/layout-panel-description.component.d.ts +1 -1
- package/layout-panel/layout-panel-filters/layout-panel-filters.component.d.ts +1 -1
- package/layout-panel/layout-panel-footer/layout-panel-footer.component.d.ts +1 -1
- package/layout-panel/layout-panel-head/layout-panel-head.component.d.ts +1 -1
- package/layout-panel/layout-panel-header/layout-panel-header.component.d.ts +1 -1
- package/layout-panel/layout-panel-title/layout-panel-title.directive.d.ts +1 -1
- package/layout-panel/layout-panel.component.d.ts +1 -1
- package/link/link.component.d.ts +6 -4
- package/list/deprecated-list-content-density,directive.d.ts +1 -1
- package/list/directives/byline/list-byline-left.directive.d.ts +1 -1
- package/list/directives/byline/list-byline-right.directive.d.ts +1 -1
- package/list/directives/byline/list-byline.directive.d.ts +1 -1
- package/list/directives/byline/list-content.directive.d.ts +1 -1
- package/list/directives/byline/list-thumbnail.directive.d.ts +1 -1
- package/list/directives/list-footer.directive.d.ts +1 -1
- package/list/directives/list-group-header.directive.d.ts +1 -1
- package/list/directives/list-icon.directive.d.ts +1 -1
- package/list/directives/list-link.directive.d.ts +1 -1
- package/list/directives/list-navigation-item-arrow.directive.d.ts +1 -1
- package/list/directives/list-navigation-item-text.directive.d.ts +1 -1
- package/list/directives/list-secondary.directive.d.ts +1 -1
- package/list/directives/list-title-text.directive.d.ts +1 -1
- package/list/directives/list-title.directive.d.ts +1 -1
- package/list/list-focus-item.model.d.ts +1 -1
- package/list/list-item/list-item.component.d.ts +1 -1
- package/list/list-message.directive.d.ts +1 -1
- package/list/list-navigation-item/list-navigation-item.component.d.ts +1 -1
- package/list/list.component.d.ts +1 -1
- package/menu/directives/deprecated-menu-compact.directive.d.ts +1 -1
- package/menu/directives/menu-addon.directive.d.ts +1 -1
- package/menu/directives/menu-interactive.directive.d.ts +1 -1
- package/menu/directives/menu-shortcut.directive.d.ts +1 -1
- package/menu/directives/menu-title.directive.d.ts +1 -1
- package/menu/directives/menu-trigger.directive.d.ts +1 -1
- package/menu/menu-item/menu-item.component.d.ts +2 -2
- package/menu/menu-mobile/menu-mobile.component.d.ts +1 -1
- package/menu/menu-separator/menu-separator.component.d.ts +1 -1
- package/menu/menu.component.d.ts +1 -1
- package/message-box/directives/message-box-decisive-button.directive.d.ts +1 -1
- package/message-box/message-box-body/message-box-body.component.d.ts +1 -1
- package/message-box/message-box-container/message-box-container.component.d.ts +1 -1
- package/message-box/message-box-default/message-box-default.component.d.ts +1 -1
- package/message-box/message-box-footer/message-box-footer.component.d.ts +1 -1
- package/message-box/message-box-footer-button/message-box-footer-button.component.d.ts +1 -1
- package/message-box/message-box-header/message-box-header.component.d.ts +1 -1
- package/message-box/message-box-semantic-icon/message-box-semantic-icon.component.d.ts +1 -1
- package/message-box/message-box.component.d.ts +1 -1
- package/message-page/message-page-actions/message-page-actions.component.d.ts +1 -1
- package/message-page/message-page-more/message-page-more.component.d.ts +1 -1
- package/message-page/message-page-subtitle/message-page-subtitle.component.d.ts +1 -1
- package/message-page/message-page-title/message-page-title.component.d.ts +1 -1
- package/message-page/message-page.component.d.ts +1 -1
- package/message-strip/message-strip.component.d.ts +1 -1
- package/message-toast/message-toast-utils/message-toast-container.component.d.ts +1 -1
- package/message-toast/message-toast.component.d.ts +1 -1
- package/micro-process-flow/components/micro-process-flow/deprecated-micro-process-flow-content-density.directive.d.ts +1 -1
- package/micro-process-flow/components/micro-process-flow/micro-process-flow.component.d.ts +1 -1
- package/micro-process-flow/components/micro-process-flow-icon/micro-process-flow-icon.component.d.ts +1 -1
- package/micro-process-flow/components/micro-process-flow-item/micro-process-flow-item.component.d.ts +1 -1
- package/micro-process-flow/micro-process-flow-focusable-item.directive.d.ts +1 -1
- package/micro-process-flow/micro-process-flow-intermediary-item.directive.d.ts +1 -1
- package/multi-input/deprecated-multi-input-compact.directive.d.ts +1 -1
- package/multi-input/multi-input-mobile/multi-input-mobile.component.d.ts +1 -1
- package/multi-input/multi-input.component.d.ts +1 -1
- package/nested-list/deprecated-nested-list-compact.directive.d.ts +1 -1
- package/nested-list/nested-content/nested-list-content.directive.d.ts +1 -1
- package/nested-list/nested-item/nested-item.directive.d.ts +1 -1
- package/nested-list/nested-link/nested-link.directive.d.ts +1 -1
- package/nested-list/nested-list/nested-list.directive.d.ts +1 -1
- package/nested-list/nested-list-directives.d.ts +4 -4
- package/nested-list/nested-list-popover/nested-list-popover.component.d.ts +1 -1
- package/nested-list/prepared-nested-list/prepared-nested-list.component.d.ts +1 -1
- package/notification/directives/notification-footer-content.directive.d.ts +1 -1
- package/notification/directives/notification-indicator.directive.d.ts +1 -1
- package/notification/directives/notification-limit-description.directive.d.ts +1 -1
- package/notification/directives/notification-limit-title.directive.d.ts +1 -1
- package/notification/directives/notification-paragraph.directive.d.ts +1 -1
- package/notification/directives/notification-separator.directive.d.ts +1 -1
- package/notification/directives/notification-title.directive.d.ts +1 -1
- package/notification/notification/notification.component.d.ts +1 -1
- package/notification/notification-actions/notification-actions.component.d.ts +1 -1
- package/notification/notification-body/notification-body.component.d.ts +1 -1
- package/notification/notification-content/notification-content.component.d.ts +1 -1
- package/notification/notification-footer/notification-footer.component.d.ts +1 -1
- package/notification/notification-group/notification-group.component.d.ts +1 -1
- package/notification/notification-group-header/notification-group-header.component.d.ts +1 -1
- package/notification/notification-group-list/notification-group-list.component.d.ts +1 -1
- package/notification/notification-header/notification-header.component.d.ts +1 -1
- package/notification/notification-limit/notification-limit.component.d.ts +1 -1
- package/notification/notification-utils/notification-container.d.ts +1 -1
- package/notification/notification-utils/notification-group-base.d.ts +1 -1
- package/object-identifier/object-identifier.component.d.ts +1 -1
- package/object-marker/object-marker.component.d.ts +1 -1
- package/object-number/object-number.component.d.ts +1 -1
- package/object-status/object-status.component.d.ts +1 -1
- package/overflow-layout/directives/overflow-expand.directive.d.ts +1 -1
- package/overflow-layout/directives/overflow-item-container-ref.directive.d.ts +1 -1
- package/overflow-layout/directives/overflow-item-ref.directive.d.ts +1 -1
- package/overflow-layout/directives/overflow-layout-focusable-item.directive.d.ts +1 -1
- package/overflow-layout/directives/overflow-layout-item-container.directive.d.ts +1 -1
- package/overflow-layout/directives/overflow-layout-item.directive.d.ts +1 -1
- package/overflow-layout/directives/overflow-layout-popover-content.directive.d.ts +1 -1
- package/overflow-layout/overflow-layout.component.d.ts +1 -1
- package/package.json +9 -9
- package/pagination/deprecated-pagination-compact.directive.d.ts +1 -1
- package/pagination/pagination.component.d.ts +1 -1
- package/panel/deprecated-panel-compact.directive.d.ts +1 -1
- package/panel/panel-content/panel-content.directive.d.ts +1 -1
- package/panel/panel-title/panel-title.directive.d.ts +1 -1
- package/panel/panel.component.d.ts +1 -1
- package/popover/base/base-popover.class.d.ts +1 -1
- package/popover/popover-body/popover-body-directives/popover-body-footer.directive.d.ts +1 -1
- package/popover/popover-body/popover-body-directives/popover-body-header.directive.d.ts +1 -1
- package/popover/popover-body/popover-body.component.d.ts +1 -1
- package/popover/popover-container/popover-container.directive.d.ts +1 -1
- package/popover/popover-control/popover-control.component.d.ts +1 -1
- package/popover/popover-mobile/popover-mobile.component.d.ts +1 -1
- package/popover/popover-trigger.directive.d.ts +1 -1
- package/popover/popover.component.d.ts +1 -1
- package/product-switch/product-switch/product-switch.component.d.ts +1 -1
- package/product-switch/product-switch-body/product-switch-body.component.d.ts +1 -1
- package/progress-indicator/progress-indicator.component.d.ts +1 -1
- package/quick-view/quick-view/quick-view.component.d.ts +1 -1
- package/quick-view/quick-view-group/quick-view-group.component.d.ts +1 -1
- package/quick-view/quick-view-group-item/quick-view-group-item.component.d.ts +1 -1
- package/quick-view/quick-view-group-item-content/quick-view-group-item-content-element.directive.d.ts +1 -1
- package/quick-view/quick-view-group-item-content/quick-view-group-item-content.component.d.ts +1 -1
- package/quick-view/quick-view-group-item-label/quick-view-group-item-label.component.d.ts +1 -1
- package/quick-view/quick-view-group-title/quick-view-group-title.component.d.ts +1 -1
- package/quick-view/quick-view-subheader/quick-view-subheader.component.d.ts +1 -1
- package/quick-view/quick-view-subheader-subtitle/quick-view-subheader-subtitle.component.d.ts +1 -1
- package/quick-view/quick-view-subheader-title/quick-view-subheader-title.component.d.ts +1 -1
- package/quick-view/quick-view-title/quick-view-title.component.d.ts +1 -1
- package/radio/deprecated-radio-button-compact.directive.d.ts +1 -1
- package/radio/radio-button/radio-button.component.d.ts +1 -1
- package/rating-indicator/components/rating-indicator.component.d.ts +1 -1
- package/resizable-card-layout/resizable-card-layout/resizable-card-item/resizable-card-item.component.d.ts +1 -1
- package/resizable-card-layout/resizable-card-layout/resizable-card-layout.component.d.ts +1 -1
- package/scroll-spy/scroll-spy.directive.d.ts +1 -1
- package/scrollbar/scrollbar.component.d.ts +1 -1
- package/segmented-button/segmented-button.component.d.ts +1 -1
- package/select/deprecated-select-compact.directive.d.ts +1 -1
- package/select/option/option.component.d.ts +1 -1
- package/select/select-mobile/select-mobile.component.d.ts +1 -1
- package/select/select.component.d.ts +1 -1
- package/shellbar/deprecated-shellbar-compact.directive.d.ts +1 -1
- package/shellbar/product-menu/product-menu.component.d.ts +1 -1
- package/shellbar/shellbar-action/shellbar-action.component.d.ts +1 -1
- package/shellbar/shellbar-actions/shellbar-actions.component.d.ts +1 -1
- package/shellbar/shellbar-actions-mobile/shellbar-actions-mobile.component.d.ts +1 -1
- package/shellbar/shellbar-logo/shellbar-logo.component.d.ts +1 -1
- package/shellbar/shellbar-sidenav.directive.d.ts +1 -1
- package/shellbar/shellbar-subtitle/shellbar-subtitle.component.d.ts +1 -1
- package/shellbar/shellbar-title/shellbar-title.component.d.ts +1 -1
- package/shellbar/shellbar.component.d.ts +1 -1
- package/shellbar/user-menu/shellbar-user-menu.component.d.ts +1 -1
- package/side-navigation/side-navigation-main.directive.d.ts +1 -1
- package/side-navigation/side-navigation-utility.directive.d.ts +1 -1
- package/side-navigation/side-navigation.component.d.ts +1 -1
- package/slider/deprecated-slider-cozy.directive.d.ts +1 -1
- package/slider/slider-position.directive.d.ts +1 -1
- package/slider/slider.component.d.ts +1 -1
- package/split-button/deprecated-split-button-compact.directive.d.ts +1 -1
- package/split-button/split-button-utils/split-button.directives.d.ts +1 -1
- package/split-button/split-button.component.d.ts +1 -1
- package/splitter/splitter-pagination/splitter-pagination.component.d.ts +1 -1
- package/splitter/splitter-pane-container/splitter-pane-container.component.d.ts +1 -1
- package/splitter/splitter-resizer/splitter-resizer.component.d.ts +1 -1
- package/splitter/splitter-split-pane/splitter-split-pane.component.d.ts +1 -1
- package/splitter/splitter.component.d.ts +1 -1
- package/status-indicator/status-indicator.component.d.ts +1 -1
- package/step-input/deprecated-step-input-compact.directive.d.ts +1 -1
- package/step-input/step-input.component.d.ts +1 -1
- package/switch/deprecated-switch-compact.directive.d.ts +1 -1
- package/switch/switch.component.d.ts +1 -1
- package/table/deprecated-table-compact.directive.d.ts +1 -1
- package/table/deprecated-table-condensed.directive.d.ts +1 -1
- package/table/directives/table-body.directive.d.ts +1 -1
- package/table/directives/table-cell.directive.d.ts +1 -1
- package/table/directives/table-footer.directive.d.ts +1 -1
- package/table/directives/table-header.directive.d.ts +1 -1
- package/table/directives/table-icon.directive.d.ts +1 -1
- package/table/directives/table-inner.directive.d.ts +1 -1
- package/table/directives/table-popover.directive.d.ts +1 -1
- package/table/directives/table-responsive-wrapper.directive.d.ts +1 -1
- package/table/directives/table-row.directive.d.ts +1 -1
- package/table/directives/table-status-indicator.directive.d.ts +1 -1
- package/table/directives/table-text.directive.d.ts +1 -1
- package/table/table-wrapper.component.d.ts +1 -1
- package/table/table.component.d.ts +1 -1
- package/tabs/deprecated-tabs-compact.directive.d.ts +1 -1
- package/tabs/tab-item/tab-item.directive.d.ts +1 -1
- package/tabs/tab-item-expand/tab-item-expand.component.d.ts +1 -1
- package/tabs/tab-link/tab-link.directive.d.ts +1 -1
- package/tabs/tab-list.component.d.ts +1 -1
- package/tabs/tab-nav/tab-nav.component.d.ts +1 -1
- package/tabs/tab-panel/tab-panel.component.d.ts +1 -1
- package/tabs/tab-utils/tab-directives.d.ts +10 -10
- package/text/text.component.d.ts +1 -1
- package/tile/directives/numeric-content.directives.d.ts +9 -9
- package/tile/directives/tile.directives.d.ts +23 -23
- package/tile/tile.component.d.ts +1 -1
- package/time/deprecated-time-content-density.directive.d.ts +1 -1
- package/time/time-column/time-column.component.d.ts +1 -1
- package/time/time.component.d.ts +1 -1
- package/time-picker/deprecated-timepicker-compact.directive.d.ts +1 -1
- package/time-picker/time-picker.component.d.ts +1 -1
- package/timeline/components/timeline-node/timeline-node.component.d.ts +1 -1
- package/timeline/components/timeline-node-body/timeline-node-body.component.d.ts +1 -1
- package/timeline/components/timeline-node-footer/timeline-node-footer.component.d.ts +1 -1
- package/timeline/components/timeline-node-header/timeline-node-header-info/timeline-node-header-info.component.d.ts +1 -1
- package/timeline/components/timeline-node-header/timeline-node-header.component.d.ts +1 -1
- package/timeline/directives/class-bindings/timeline-header-info-sub-title.directive.d.ts +1 -1
- package/timeline/directives/class-bindings/timeline-node-header-info-text.directive.d.ts +1 -1
- package/timeline/directives/class-bindings/timeline-node-header-info-title.directive.d.ts +1 -1
- package/timeline/directives/timeline-first-list-outlet.directive.d.ts +1 -1
- package/timeline/directives/timeline-node-def.directive.d.ts +1 -1
- package/timeline/directives/timeline-second-list-outlet.directive.d.ts +1 -1
- package/timeline/timeline.component.d.ts +1 -1
- package/title/title.component.d.ts +1 -1
- package/token/deprecated-tokenizer-content-density.directive.d.ts +1 -1
- package/token/token-input.directive.d.ts +1 -1
- package/token/token.component.d.ts +1 -1
- package/token/tokenizer.component.d.ts +1 -1
- package/toolbar/deprecated-toolbar-size.directive.d.ts +1 -1
- package/toolbar/toolbar-form-label.directive.d.ts +1 -1
- package/toolbar/toolbar-item.directive.d.ts +1 -1
- package/toolbar/toolbar-label.directive.d.ts +1 -1
- package/toolbar/toolbar-overflow-button-menu.directive.d.ts +1 -1
- package/toolbar/toolbar-overflow-button.directive.d.ts +1 -1
- package/toolbar/toolbar-overflow-group.directive.d.ts +1 -1
- package/toolbar/toolbar-overflow-priority.directive.d.ts +1 -1
- package/toolbar/toolbar-separator.component.d.ts +1 -1
- package/toolbar/toolbar-spacer.component.d.ts +1 -1
- package/toolbar/toolbar.component.d.ts +1 -1
- package/tree/tree-child.component.d.ts +1 -1
- package/tree/tree.component.d.ts +1 -1
- package/upload-collection/upload-collection-button-group/upload-collection-button-group.component.d.ts +1 -1
- package/upload-collection/upload-collection-form-item/upload-collection-form-item.component.d.ts +1 -1
- package/upload-collection/upload-collection-item.directive.d.ts +1 -1
- package/upload-collection/upload-collection-simple.directives.d.ts +7 -7
- package/upload-collection/upload-collection.component.d.ts +1 -1
- package/utils/abstract-fd-ngx-class.d.ts +1 -1
- package/utils/directives/auto-complete/auto-complete.directive.d.ts +1 -1
- package/utils/directives/focus-key-manager/focus-key-manager-item.directive.d.ts +1 -1
- package/utils/directives/focus-key-manager/focus-key-manager-list.directive.d.ts +1 -1
- package/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.d.ts +1 -1
- package/utils/directives/initial-focus/initial-focus.directive.d.ts +1 -1
- package/utils/directives/line-clamp/line-clamp.directive.d.ts +2 -2
- package/utils/directives/only-digits/only-digits.directive.d.ts +1 -1
- package/utils/directives/overflow-list/overflow-list-item.directive.d.ts +1 -1
- package/utils/directives/overflow-list/overflow-list.directive.d.ts +1 -1
- package/utils/directives/resize/resize-handle.directive.d.ts +1 -1
- package/utils/directives/resize/resize.directive.d.ts +1 -1
- package/utils/directives/template/template.directive.d.ts +1 -1
- package/utils/directives/truncate/truncate.directive.d.ts +1 -1
- package/utils/drag-and-drop/dnd-item/dnd-item.directive.d.ts +1 -1
- package/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.d.ts +1 -1
- package/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.d.ts +1 -1
- package/utils/drag-and-drop/dnd-list/dnd-list.directive.d.ts +1 -1
- package/utils/dynamic-component/dynamic-component-injector.d.ts +0 -11
- package/vertical-navigation/vertical-navigation-group-header.directive.d.ts +1 -1
- package/vertical-navigation/vertical-navigation-main-navigation.component.d.ts +1 -1
- package/vertical-navigation/vertical-navigation.component.d.ts +1 -1
- package/wizard/deprecated-wizard-compact.directive.d.ts +1 -1
- package/wizard/wizard-content/wizard-content.component.d.ts +1 -1
- package/wizard/wizard-navigation/wizard-navigation.component.d.ts +1 -1
- package/wizard/wizard-next-step/wizard-next-step.component.d.ts +1 -1
- package/wizard/wizard-progress-bar/wizard-progress-bar.directive.d.ts +1 -1
- package/wizard/wizard-step/wizard-step.component.d.ts +1 -1
- package/wizard/wizard-step-indicator/wizard-step-indicator.component.d.ts +1 -1
- package/wizard/wizard.component.d.ts +1 -1
- package/fundamental-ngx-core-v0.37.2-rc.0.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-utils.mjs","sources":["../../../../libs/core/src/lib/utils/directives/ignore-click-on-selection/tokens.ts","../../../../libs/core/src/lib/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.ts","../../../../libs/core/src/lib/utils/directives/ignore-click-on-selection/ignore-click-on-selection.module.ts","../../../../libs/core/src/lib/utils/directives/template/template.directive.ts","../../../../libs/core/src/lib/utils/directives/template/template.module.ts","../../../../libs/core/src/lib/utils/functions/key-util.ts","../../../../libs/core/src/lib/utils/functions/element-size.ts","../../../../libs/core/src/lib/utils/functions/uuidv4-generator.ts","../../../../libs/core/src/lib/utils/functions/parser-file-size.ts","../../../../libs/core/src/lib/utils/functions/scroll.ts","../../../../libs/core/src/lib/utils/functions/random-color-accent.ts","../../../../libs/core/src/lib/utils/functions/resize-observable.ts","../../../../libs/core/src/lib/utils/functions/intersection-observable.ts","../../../../libs/core/src/lib/utils/functions/is-compact-density.ts","../../../../libs/core/src/lib/utils/tokens/module-deprecations.token.ts","../../../../libs/core/src/lib/utils/functions/module-deprecations-provider.ts","../../../../libs/core/src/lib/utils/functions/consumer-provider-factory.ts","../../../../libs/core/src/lib/utils/functions/get-document-font-size.ts","../../../../libs/core/src/lib/utils/directives/only-digits/only-digits.directive.ts","../../../../libs/core/src/lib/utils/directives/only-digits/only-digits.module.ts","../../../../libs/core/src/lib/utils/directives/resize/resize-handle.directive.ts","../../../../libs/core/src/lib/utils/services/rtl.service.ts","../../../../libs/core/src/lib/utils/directives/resize/resize.directive.ts","../../../../libs/core/src/lib/utils/directives/resize/resize.module.ts","../../../../libs/core/src/lib/utils/services/tabbable-element.service.ts","../../../../libs/core/src/lib/utils/directives/initial-focus/initial-focus.directive.ts","../../../../libs/core/src/lib/utils/directives/line-clamp/line-clamp.directive.ts","../../../../libs/core/src/lib/utils/directives/line-clamp/line-clamp.module.ts","../../../../libs/core/src/lib/utils/directives/initial-focus/initial-focus.module.ts","../../../../libs/core/src/lib/utils/directives/auto-complete/auto-complete.directive.ts","../../../../libs/core/src/lib/utils/directives/auto-complete/auto-complete.module.ts","../../../../libs/core/src/lib/utils/directives/overflow-list/overflow-list-item.directive.ts","../../../../libs/core/src/lib/utils/directives/overflow-list/overflow-list.directive.ts","../../../../libs/core/src/lib/utils/directives/overflow-list/overflow-list.module.ts","../../../../libs/core/src/lib/utils/directives/truncate/truncate.directive.ts","../../../../libs/core/src/lib/utils/directives/truncate/truncate.module.ts","../../../../libs/core/src/lib/utils/directives/focus-key-manager/focus-key-manager.tokens.ts","../../../../libs/core/src/lib/utils/directives/focus-key-manager/focus-key-manager-list.directive.ts","../../../../libs/core/src/lib/utils/directives/focus-key-manager/focus-key-manager-item.directive.ts","../../../../libs/core/src/lib/utils/directives/focus-key-manager/focus-key-manager-helpers.module.ts","../../../../libs/core/src/lib/utils/pipes/displayFn.pipe.ts","../../../../libs/core/src/lib/utils/pipes/search-highlight.pipe.ts","../../../../libs/core/src/lib/utils/pipes/two-digits.pipe.ts","../../../../libs/core/src/lib/utils/pipes/safe.pipe.ts","../../../../libs/core/src/lib/utils/pipes/value-by-path.pipe.ts","../../../../libs/core/src/lib/utils/pipes/is-compact.pipe.ts","../../../../libs/core/src/lib/utils/pipes/truncate.pipe.ts","../../../../libs/core/src/lib/utils/pipes/pipe.module.ts","../../../../libs/core/src/lib/utils/drag-and-drop/tokens.ts","../../../../libs/core/src/lib/utils/drag-and-drop/dnd-list/dnd-list.directive.ts","../../../../libs/core/src/lib/utils/drag-and-drop/dnd-item/dnd-item.directive.ts","../../../../libs/core/src/lib/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.ts","../../../../libs/core/src/lib/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.ts","../../../../libs/core/src/lib/utils/drag-and-drop/drag-and-drop.module.ts","../../../../libs/core/src/lib/utils/interfaces/has-element-ref.interface.ts","../../../../libs/core/src/lib/utils/decorators/apply-css-class.decorator.ts","../../../../libs/core/src/lib/utils/decorators/apply-css-style.decorator.ts","../../../../libs/core/src/lib/utils/dynamic-component/dynamic-component-injector.ts","../../../../libs/core/src/lib/utils/dynamic-component/dynamic-component.service.ts","../../../../libs/core/src/lib/utils/dynamic-component/dynamic-component-container.ts","../../../../libs/core/src/lib/utils/helpers/range-selector.ts","../../../../libs/core/src/lib/utils/consts/error-messages.ts","../../../../libs/core/src/lib/utils/consts/unicode-letters.regex.ts","../../../../libs/core/src/lib/utils/consts/unicode-numbers.regex.ts","../../../../libs/core/src/lib/utils/consts/overflow-priority-score.ts","../../../../libs/core/src/lib/utils/services/themes.service.ts","../../../../libs/core/src/lib/utils/services/keyboard-support/keyboard-support.service.ts","../../../../libs/core/src/lib/utils/services/focus-trap.service.ts","../../../../libs/core/src/lib/utils/utils.module.ts","../../../../libs/core/src/lib/utils/services/content-density.service.ts","../../../../libs/core/src/lib/utils/services/resize-observer.service.ts","../../../../libs/core/src/lib/utils/services/local-storage.service.ts","../../../../libs/core/src/lib/utils/services/destroyed.service.ts","../../../../libs/core/src/lib/utils/abstract-fd-ngx-class.ts","../../../../libs/core/src/lib/utils/list-item/list-item-utils.ts","../../../../libs/core/src/lib/utils/mixins/apply-mixin.ts","../../../../libs/core/src/lib/utils/fundamental-ngx-core-utils.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const IgnoreClickOnSelectionDirectiveToken = new InjectionToken('Ignore click on selection directive');\n","import { Directive, ElementRef, HostListener, Inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { IgnoreClickOnSelectionDirectiveToken } from './tokens';\n\n/**\n * Directive will stop propagation and prevent default of click, if selected area is coming from\n * directive's host element. This gives ability to not cancel all clicks on element, just the ones\n * which include selection\n */\n@Directive({\n selector: '[fdIgnoreClickOnSelection]',\n providers: [\n {\n provide: IgnoreClickOnSelectionDirectiveToken,\n useExisting: IgnoreClickOnSelectionDirective\n }\n ]\n})\nexport class IgnoreClickOnSelectionDirective {\n /** @hidden */\n constructor(@Inject(DOCUMENT) private document: Document, private _elementRef: ElementRef<HTMLElement>) {}\n\n /** Host click listener. Checks for selection existence and if finds one, checks anchor */\n @HostListener('click', ['$event'])\n clicked($event: MouseEvent): void {\n const selection = this.document.getSelection();\n if (selection?.toString()) {\n if (\n selection.anchorNode &&\n (this._elementRef.nativeElement.isSameNode(selection.anchorNode) ||\n this._elementRef.nativeElement.isSameNode(selection.anchorNode.parentElement))\n ) {\n $event.stopPropagation();\n $event.preventDefault();\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IgnoreClickOnSelectionDirective } from './ignore-click-on-selection.directive';\n\n@NgModule({\n declarations: [IgnoreClickOnSelectionDirective],\n imports: [CommonModule],\n exports: [IgnoreClickOnSelectionDirective]\n})\nexport class IgnoreClickOnSelectionModule {}\n","import { Directive, Input, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[fdTemplate]'\n})\nexport class TemplateDirective {\n /** Name of the template */\n @Input('fdTemplate')\n name: string;\n\n /** @hidden */\n constructor(public templateRef: TemplateRef<any>) {}\n\n /** @hidden */\n getName(): string {\n return this.name;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TemplateDirective } from './template.directive';\n\n@NgModule({\n declarations: [TemplateDirective],\n exports: [TemplateDirective]\n})\nexport class TemplateModule {}\n","import { isDevMode } from '@angular/core';\nimport {\n A,\n ALT,\n BACKSPACE,\n C,\n CONTROL,\n DASH,\n DELETE,\n DOWN_ARROW,\n END,\n ENTER,\n ESCAPE,\n HOME,\n LEFT_ARROW,\n META,\n NUMPAD_MINUS,\n PAGE_DOWN,\n PAGE_UP,\n RIGHT_ARROW,\n SHIFT,\n SPACE,\n TAB,\n UP_ARROW,\n V,\n X\n} from '@angular/cdk/keycodes';\n\n/** Map of keyCodes and their corresponding \"key\" values */\nconst keyMap: Map<number, string[]> = new Map([\n [RIGHT_ARROW, ['ArrowRight', 'Right']],\n [DOWN_ARROW, ['ArrowDown', 'Down']],\n [LEFT_ARROW, ['ArrowLeft', 'Left']],\n [UP_ARROW, ['ArrowUp', 'Up']],\n [SPACE, ['Space', 'Spacebar', ' ']],\n [ESCAPE, ['Escape', 'Esc']],\n [DELETE, ['Delete', 'Del']],\n [ENTER, ['Enter']],\n [TAB, ['Tab']],\n [HOME, ['Home']],\n [END, ['End']],\n [ALT, ['Alt']],\n [CONTROL, ['Ctrl', 'Control', 'Meta']],\n [META, ['Meta']],\n [SHIFT, ['Shift']],\n [BACKSPACE, ['Backspace']],\n [A, ['KeyA']],\n [C, ['KeyC']],\n [V, ['KeyV']],\n [X, ['KeyX']],\n [PAGE_UP, ['PageUp']],\n [PAGE_DOWN, ['PageDown']],\n [DASH, ['-']],\n [NUMPAD_MINUS, ['-']]\n]);\n\nexport class KeyUtil {\n /**\n * Function used to unify key identification across different browsers using KeyCodes\n *\n * @param event - KeyboardEvent\n * @param keyCode - event.key name matching W3C specification / (ASSCI char. codes)\n * */\n static isKeyCode(event: KeyboardEvent, keyCode: number | number[]): boolean {\n if (Array.isArray(keyCode)) {\n return keyCode.some((key) => this.isKeyCode(event, key));\n }\n\n if (event && keyMap.get(keyCode)) {\n return keyMap.get(keyCode)?.some((alias) => alias === event.key) || keyCode === event.keyCode;\n }\n\n if (isDevMode()) {\n throw new Error(\n `Invalid function arguments. Check if \"event\" is a KeyboardEvent or \"key\" is defined in keyMap`\n );\n }\n\n return false;\n }\n\n /**\n * Function used to unify key identification across different browsers\n *\n * @param event - KeyboardEvent\n * @param keyType - Type of key\n * */\n static isKeyType(event: KeyboardEvent, keyType: 'alphabetical' | 'numeric' | 'control'): boolean {\n if (event && keyType) {\n switch (keyType) {\n case 'numeric':\n return event.code\n ? event.code.toLowerCase().includes('digit')\n : (event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105);\n case 'alphabetical':\n return event.code\n ? event.code.toLowerCase().includes('key')\n : event.keyCode >= 65 && event.keyCode <= 90;\n // some service commands as alt, ctr, insert, print, f4 etc. All except letters, numbers and symbols\n case 'control':\n return event.keyCode < 48 || (event.keyCode >= 112 && event.keyCode <= 123);\n }\n }\n\n if (isDevMode()) {\n throw new Error(`Invalid function arguments.`);\n }\n\n return false;\n }\n}\n","import { ElementRef } from '@angular/core';\n\nexport const pxToNum = (pixels: string): number => Number(pixels.replace('px', '')) || 0;\n\nexport const toNativeElement = (element: HTMLElement | ElementRef): HTMLElement =>\n element instanceof ElementRef ? element.nativeElement : element;\n\n/** Return elements capacity (width subtract by element padding)\n * @param element - HTMLelement or element reference\n * */\nexport function getElementCapacity(element: HTMLElement | ElementRef): number {\n const _element = toNativeElement(element);\n const computedStyle = window.getComputedStyle(_element);\n\n return pxToNum(computedStyle.width) - pxToNum(computedStyle.paddingLeft) - pxToNum(computedStyle.paddingRight);\n}\n\n/** Return elements width\n * @param element - HTMLelement or element reference\n * @param withMargin - weather to add element margins to width\n * */\nexport function getElementWidth(element: HTMLElement | ElementRef, withMargin?: boolean): number {\n const _element = toNativeElement(element);\n const computedStyle = getComputedStyle(_element);\n\n return withMargin\n ? pxToNum(computedStyle.width) + pxToNum(computedStyle.marginLeft) + pxToNum(computedStyle.marginRight)\n : pxToNum(computedStyle.width);\n}\n","/** Generate a UUID v4 */\nexport function uuidv4(): string {\n const modifier = 16;\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n // eslint-disable-next-line no-bitwise\n const r = (Math.random() * modifier) | 0,\n // eslint-disable-next-line no-bitwise\n v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(modifier);\n });\n}\n","const fileSizeMap = new Map([\n ['KB', 1024],\n ['MB', 1048576],\n ['GB', 1073741824],\n ['TB', 1099511627776]\n]);\n\n/** Parse file size to bytes */\nexport function parserFileSize(fileSize: string): number {\n if (fileSize === '') {\n return 0;\n }\n\n const sizes = fileSize.match(/[\\d.]+|\\D+/g);\n if (sizes && sizes.length > 1) {\n const size = Number(sizes[0].replace(/ +/g, ''));\n const unit = sizes[1].replace(/ +/g, '').toUpperCase();\n\n if (isNaN(size)) {\n throw new Error('FileSizeError - Invalid File size please check.');\n } else if (unit === 'B' || unit === 'BYTE' || unit === 'BYTES') {\n return size;\n } else if (unit === 'KB') {\n return fileSizeMap.get(unit)! * size;\n } else if (unit === 'MB') {\n return fileSizeMap.get(unit)! * size;\n } else if (unit === 'GB') {\n return fileSizeMap.get(unit)! * size;\n } else if (unit === 'TB') {\n return fileSizeMap.get(unit)! * size;\n } else {\n throw new Error('FileSizeError - Invalid File size please check.');\n }\n } else {\n if (isNaN(Number(sizes))) {\n throw new Error('FileSizeError - Invalid File size please check.');\n }\n\n return Number(sizes);\n }\n}\n","/**\n * Function used to scroll specified element by some distance\n *\n * @param containerElement - Container element scrolled\n * @param distanceToScroll - Distance of scroll in px\n * */\nexport function scrollTop(containerElement: Element, distanceToScroll: number): void {\n // Check if scrollTo method is supported by current browser\n if (containerElement.scrollTo && containerElement.scrollTo instanceof Function) {\n containerElement.scrollTo({\n top: distanceToScroll,\n behavior: 'smooth'\n });\n } else {\n containerElement.scrollTop = distanceToScroll;\n }\n}\n","import { ColorAccent } from '../datatypes';\n\n/** Get random number from 1 to 10. */\nexport function getRandomColorAccent(): ColorAccent {\n return (Math.floor(Math.random() * 10) + 1) as ColorAccent;\n}\n","import { fromEvent, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/**\n * RxJS wrapper for ResizeObserver class.\n * @param target HTML element to spy on.\n * @param options @see {ResizeObserverOptions}\n * @returns {Observable} with observer entries.\n */\nexport function resizeObservable(target: Element, options?: ResizeObserverOptions): Observable<ResizeObserverEntry[]> {\n if ('ResizeObserver' in window) {\n return new Observable((subscriber) => {\n let animationFrame: number;\n const ro = new ResizeObserver((entries) => {\n animationFrame = window.requestAnimationFrame(() => {\n subscriber.next(entries);\n });\n });\n\n ro.observe(target, options);\n\n return function unsubscribe(): void {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n ro.unobserve(target);\n ro.disconnect();\n };\n });\n } else {\n // If current browser does not support resizeObserver, rely on window resize and return empty array of items.\n return fromEvent(window, 'resize').pipe(map(() => []));\n }\n}\n","import { NEVER, Observable } from 'rxjs';\n\n/**\n * RxJS wrapper for IntersectionObserver class.\n * @param target HTML element to spy on.\n * @param options @see {IntersectionObserverInit}\n * @returns {Observable} with observer entries.\n */\nexport function intersectionObservable(\n target: Element,\n options?: IntersectionObserverInit\n): Observable<IntersectionObserverEntry[]> {\n if ('IntersectionObserver' in window) {\n return new Observable((subscriber) => {\n const io = new IntersectionObserver((entries) => {\n subscriber.next(entries);\n }, options);\n\n io.observe(target);\n\n return function unsubscribe(): void {\n io.disconnect();\n };\n });\n } else {\n // If browser doesn't support IntersectionObserver API never emit a value\n // since we're not supporting IE11 and any other browser should have it.\n return NEVER;\n }\n}\n","import { ContentDensity } from '../interfaces/content-density';\n\n/** Determines whether provided value is valid content density */\nexport function isValidContentDensity(size: any): size is ContentDensity {\n return size === 'cozy' || size === 'compact' || size === 'condensed';\n}\n\n/**\n * Determines if \"compact\" styles should be applied based on provided content density\n */\nexport function isCompactDensity(size: ContentDensity): boolean {\n return isValidContentDensity(size) && size !== 'cozy';\n}\n","import { InjectionToken } from '@angular/core';\nimport { ModuleDeprecation } from '../interfaces/module-deprecation.interface';\n\nexport const ModuleDeprecations = new InjectionToken<ModuleDeprecation>('ModuleDeprecations');\n","import { FactorySansProvider, Provider } from '@angular/core';\nimport { ModuleDeprecations } from '../tokens/module-deprecations.token';\n\n/** Module deprecations provider */\nexport function moduleDeprecationsProvider(classRef: any): Provider {\n return {\n provide: ModuleDeprecations,\n useClass: classRef,\n multi: true\n };\n}\n\n/** Module deprecations provider factory */\nexport function moduleDeprecationsFactory(factory: FactorySansProvider): Provider {\n return {\n provide: ModuleDeprecations,\n ...factory,\n multi: true\n };\n}\n","import { INJECTOR, Injector, Provider } from '@angular/core';\n\n/**\n * Creates provider for ConsumerClass\n */\nexport function consumerProviderFactory<T = any>(\n ConsumerClass: new (injector: Injector, additionalConfig: Record<any, any> | undefined) => T,\n providedConfiguration?: Record<any, any>\n): Provider {\n return {\n provide: ConsumerClass,\n useFactory: (injector: Injector) => new ConsumerClass(injector, providedConfiguration),\n deps: [INJECTOR]\n };\n}\n","/** Get document font size in pixels. */\nexport function getDocumentFontSize(): number {\n return document?.documentElement ? parseFloat(getComputedStyle(document.documentElement).fontSize) : 16;\n}\n","import {\n A,\n BACKSPACE,\n C,\n DASH,\n DELETE,\n END,\n ENTER,\n ESCAPE,\n HOME,\n LEFT_ARROW,\n NUMPAD_MINUS,\n RIGHT_ARROW,\n TAB,\n V,\n X\n} from '@angular/cdk/keycodes';\nimport { Directive, ElementRef, HostListener, Input } from '@angular/core';\nimport { KeyUtil } from '../../functions';\n\n@Directive({\n selector: '[fdOnlyDigits], [fd-only-digits]'\n})\nexport class OnlyDigitsDirective {\n /** Allow using decimal */\n @Input() decimal = false;\n /** Define decimal separator\n * Default: .(dot)\n */\n @Input() decimalSeparator = '.';\n\n /** @hidden */\n private _inputElement: HTMLInputElement;\n /** @hidden */\n private _hasDecimalPoint = false;\n\n /** @hidden */\n constructor(private readonly _el: ElementRef) {\n this._inputElement = this._el.nativeElement;\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n onKeyDown(e: KeyboardEvent): void {\n if (\n // Allow: Delete, Backspace, Tab, Escape, Enter, End, Home, Arrow Left, Arrow Right\n KeyUtil.isKeyCode(e, [DELETE, BACKSPACE, TAB, ESCAPE, ENTER, END, HOME, LEFT_ARROW, RIGHT_ARROW]) ||\n // Allow: Ctrl+(A/C/V/X) and Cmd+(A/C/V/X) (Mac)\n (KeyUtil.isKeyCode(e, [A, C, V, X]) && (e.ctrlKey || e.metaKey))\n ) {\n return; // let it happen, don't do anything\n }\n\n if (KeyUtil.isKeyCode(e, [DASH, NUMPAD_MINUS])) {\n const newValue = this._forecastValue(e.key);\n\n if (this._inputElement.value[0] === '-' || newValue[0] !== '-') {\n e.preventDefault();\n\n return; // has DASH point\n } else {\n return; // Allow: only one DASH point\n }\n }\n\n if (this.decimal && e.key === this.decimalSeparator) {\n const newValue = this._forecastValue(e.key);\n if (newValue.split(this.decimalSeparator).length > 2) {\n // has two or more decimal points\n e.preventDefault();\n return;\n } else {\n this._hasDecimalPoint = newValue.indexOf(this.decimalSeparator) > -1;\n return; // Allow: only one decimal point\n }\n }\n\n // Ensure that it is a number and stop the keypress\n if (e.key === ' ' || isNaN(Number(e.key))) {\n e.preventDefault();\n return;\n }\n }\n\n /** @hidden */\n @HostListener('paste', ['$event'])\n onPaste(event: any): void {\n if (window['clipboardData']) {\n // Browser is IE\n this._pasteData(window['clipboardData'].getData('text'));\n } else if (event.clipboardData && event.clipboardData.getData) {\n // Other browsers\n this._pasteData(event.clipboardData.getData('text/plain'));\n }\n\n event.preventDefault();\n }\n\n /** @hidden */\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent): void {\n const textData = event.dataTransfer?.getData('text') ?? '';\n this._inputElement.focus();\n this._pasteData(textData);\n\n event.preventDefault();\n }\n\n /** @hidden */\n private _pasteData(pastedContent: string): void {\n const sanitizedContent = this._sanitizeInput(pastedContent);\n const pasted = document.execCommand('insertText', false, sanitizedContent);\n if (!pasted) {\n if (this._inputElement.setRangeText) {\n const { selectionStart: start, selectionEnd: end } = this._inputElement;\n this._inputElement.setRangeText(sanitizedContent, start ?? 0, end ?? 0, 'end');\n // Angular's Reactive Form relies on \"input\" event, but on Firefox, the setRangeText method doesn't trigger it\n // so we have to trigger it ourself.\n if (typeof window['InstallTrigger'] !== 'undefined') {\n this._inputElement.dispatchEvent(new Event('input', { cancelable: true }));\n }\n } else {\n // Browser does not support setRangeText, e.g. IE\n this._insertAtCursor(this._inputElement, sanitizedContent);\n }\n }\n\n if (this.decimal) {\n this._hasDecimalPoint = this._inputElement.value.indexOf(this.decimalSeparator) > -1;\n }\n }\n\n // The following 2 methods were added from the below article for browsers that do not support setRangeText\n // https://stackoverflow.com/questions/11076975/how-to-insert-text-into-the-textarea-at-the-current-cursor-position\n /** @hidden */\n private _insertAtCursor(myField: HTMLInputElement, myValue: string): void {\n const startPos = myField.selectionStart ?? 0;\n const endPos = myField.selectionEnd ?? 0;\n\n myField.value =\n myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);\n\n const pos = startPos + myValue.length;\n myField.focus();\n myField.setSelectionRange(pos, pos);\n\n this._triggerEvent(myField, 'input');\n }\n\n /** @hidden */\n private _triggerEvent(el: HTMLInputElement, type: string): void {\n if ('createEvent' in document) {\n // modern browsers, IE9+\n const e = document.createEvent('HTMLEvents');\n e.initEvent(type, false, true);\n el.dispatchEvent(e);\n }\n }\n // end stack overflow code\n\n /** @hidden */\n private _sanitizeInput(input: string): string {\n let result = '';\n if (this.decimal && this._isValidDecimal(input)) {\n const regex = new RegExp(`[^0-9${this.decimalSeparator}]`, 'g');\n result = input.replace(regex, '');\n } else {\n result = input.replace(/[^0-9]/g, '');\n }\n\n if (input[0] === '-') {\n result = `-${result}`;\n }\n\n const maxLength = this._inputElement.maxLength;\n if (maxLength > 0) {\n // the input element has maxLength limit\n const allowedLength = maxLength - this._inputElement.value.length;\n result = allowedLength > 0 ? result.substring(0, allowedLength) : '';\n }\n\n return result;\n }\n\n /** @hidden */\n private _isValidDecimal(string: string): boolean {\n if (!this._hasDecimalPoint) {\n return string.split(this.decimalSeparator).length <= 2;\n } else {\n // the input element already has a decimal separator\n const selectedText = this._getSelection;\n if (selectedText && selectedText.indexOf(this.decimalSeparator) > -1) {\n return string.split(this.decimalSeparator).length <= 2;\n } else {\n return string.indexOf(this.decimalSeparator) < 0;\n }\n }\n }\n\n /** @hidden */\n private get _getSelection(): string {\n const { selectionStart, selectionEnd } = this._inputElement;\n\n return this._inputElement.value.substring(selectionStart ?? 0, selectionEnd ?? 0);\n }\n\n /** @hidden */\n private _forecastValue(key: string): string {\n const { selectionStart, selectionEnd, value: oldValue } = this._inputElement;\n const selection = oldValue.substring(selectionStart ?? 0, selectionEnd ?? 0);\n\n return selection\n ? oldValue.replace(selection, key)\n : oldValue.substring(0, selectionStart ?? 0) + key + oldValue.substring(selectionStart ?? 0);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { OnlyDigitsDirective } from './only-digits.directive';\n\n@NgModule({\n imports: [CommonModule],\n exports: [OnlyDigitsDirective],\n declarations: [OnlyDigitsDirective]\n})\nexport class OnlyDigitsModule {}\n","import { Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[fdResizeHandle], [fd-resize-handle]'\n})\nexport class ResizeHandleDirective {\n /** @hidden */\n constructor(public elementRef: ElementRef) {}\n}\n","import { BehaviorSubject } from 'rxjs';\nimport { Optional, Injectable, Inject, InjectionToken } from '@angular/core';\n\nconst DefaultRtlLanguages = ['ar', 'arc', 'dv', 'fa', 'ha', 'he', 'khw', 'ks', 'ku', 'ps', 'ur', 'yi'];\nexport const RTL_LANGUAGE = new InjectionToken<string[]>('RtlLanguage');\n\n@Injectable()\n/**\n * Service taking care of RTL trough behavior subject\n * language list is used to determine if rtl should be enabled at start\n * user can overwrite default languages by using injection token RtlLanguageToken\n */\nexport class RtlService {\n /** RTL value */\n rtl: BehaviorSubject<boolean>;\n\n /** @hidden */\n constructor(@Optional() @Inject(RTL_LANGUAGE) injectedRtlLanguages: string[]) {\n injectedRtlLanguages = injectedRtlLanguages || DefaultRtlLanguages;\n\n const filtered = injectedRtlLanguages.filter((language) => navigator.language.includes(language));\n\n this.rtl = new BehaviorSubject(filtered.length > 0);\n }\n}\n","import {\n AfterContentInit,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { ResizeHandleDirective } from './resize-handle.directive';\nimport { fromEvent, merge, Observable, Subscription } from 'rxjs';\nimport { filter, map, mapTo, pairwise, takeUntil, tap } from 'rxjs/operators';\nimport { RtlService } from '../../services/rtl.service';\n\ninterface ResizeMove {\n x: number;\n y: number;\n}\n\n@Directive({\n selector: '[fdResize], [fd-resize-handle]'\n})\nexport class ResizeDirective implements OnChanges, AfterContentInit, OnDestroy {\n /** Element limiting resizable container growth */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('fdResizeBoundary') resizeBoundary: string | HTMLElement = 'body';\n\n /** Whether resizable behaviour should be disabled */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('fdResizeDisabled') disabled = false;\n\n /** Localization of resize handle inside resizable container */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('fdResizeHandleLocation') resizeHandleLocation: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' =\n 'bottom-right';\n\n /** Resize handle reference - should be used if Resize handle is not a ContentChild of resizable container */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('fdResizeResizeHandleRef') set setResizeHandleReference(value: ResizeHandleDirective) {\n this.resizeHandleReference = value;\n }\n\n /** Emits event when resizing has tarted */\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onResizeStart = new EventEmitter<void>();\n\n /** Emits event when resizing has ended */\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onResizeEnd = new EventEmitter<void>();\n\n /** @hidden Reference to Resize handle */\n @ContentChild(ResizeHandleDirective, { static: false }) resizeHandleReference;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _isRtl = false;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef<HTMLElement>, @Optional() private _rtlService: RtlService) {}\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['disabled']) {\n if (changes['disabled'].previousValue === false && changes['disabled'].currentValue === true) {\n this._subscriptions.unsubscribe();\n } else if (changes['disabled'].previousValue === true && changes['disabled'].currentValue === false) {\n this._setResizeListeners();\n }\n }\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this._rtlService) {\n this._subscriptions.add(this._rtlService.rtl.subscribe((isRtl) => (this._isRtl = isRtl)));\n }\n\n if (!this.disabled) {\n this._setResizeListeners();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n private get _direction(): number {\n return this._isRtl ? -1 : 1;\n }\n\n /** @hidden Sets Resize listeners */\n private _setResizeListeners(): void {\n const resize = this._getResizeFunction();\n const moveOffset = this._getMoveOffsetFunction();\n const resizeContainer = this._findResizeContainer();\n if (!resizeContainer) {\n return;\n }\n const isBoundaryOverflow = this._getBoundaryOverflowFunction(resizeContainer);\n\n const mouseUpEvent$ = fromEvent<MouseEvent>(window, 'mouseup');\n const mouseMoveEvent$ = fromEvent<MouseEvent>(resizeContainer, 'mousemove');\n const mouseDownEvent$ = fromEvent<MouseEvent>(this.resizeHandleReference.elementRef.nativeElement, 'mousedown');\n\n const resizeActive$ = merge(mouseDownEvent$.pipe(mapTo(true)), mouseUpEvent$.pipe(mapTo(false)));\n const emitResizableEvents$ = this._getResizeEventsNotifiers(resizeActive$);\n const preventOtherPointerEvents$ = this._blockOtherPointerEvents(resizeActive$);\n\n const resizingCursorMovement$ = mouseMoveEvent$.pipe(\n pairwise(),\n map(([event1, event2]: [MouseEvent, MouseEvent]) => moveOffset(event1, event2)),\n filter((move) => isBoundaryOverflow(move))\n );\n\n const setupResizer = (): void => {\n resizingCursorMovement$.pipe(takeUntil(mouseUpEvent$)).subscribe((event) => resize(event));\n };\n const setupResize$ = resizeActive$.pipe(\n filter((isActive) => isActive),\n tap(() => setupResizer())\n );\n\n this._subscriptions.add(setupResize$.subscribe());\n this._subscriptions.add(emitResizableEvents$.subscribe());\n this._subscriptions.add(preventOtherPointerEvents$.subscribe());\n }\n\n /** @hidden Creates resize function*/\n private _getResizeFunction(): (move: ResizeMove) => void {\n return (move: ResizeMove) => {\n this._elementRef.nativeElement.style.width = `${this._elementRef.nativeElement.offsetWidth + move.x}px`;\n this._elementRef.nativeElement.style.height = `${this._elementRef.nativeElement.offsetHeight + move.y}px`;\n };\n }\n\n /** @hidden Creates move function */\n private _getMoveOffsetFunction(): (event1: MouseEvent, event2: MouseEvent) => ResizeMove {\n let verticalModifier: 1 | -1;\n let horizontalModifier: 1 | -1;\n\n switch (this.resizeHandleLocation) {\n case 'top-left':\n horizontalModifier = -1;\n verticalModifier = -1;\n break;\n case 'top-right':\n horizontalModifier = -1;\n verticalModifier = 1;\n break;\n case 'bottom-left':\n horizontalModifier = 1;\n verticalModifier = -1;\n break;\n case 'bottom-right':\n horizontalModifier = 1;\n verticalModifier = 1;\n break;\n }\n\n return (event1: MouseEvent, event2: MouseEvent) => {\n const x = (event2.screenX - event1.screenX) * this._direction;\n const y = event2.screenY - event1.screenY;\n\n return {\n x: x * verticalModifier,\n y: y * horizontalModifier\n };\n };\n }\n\n /** @hidden Return boundary container */\n private _findResizeContainer(): Element | null {\n let resizeContainer: Element | null;\n if (typeof this.resizeBoundary === 'string') {\n resizeContainer = this._elementRef.nativeElement.closest(this.resizeBoundary);\n } else {\n resizeContainer = this.resizeBoundary;\n }\n\n if (resizeContainer) {\n return resizeContainer;\n } else {\n console.warn(`fdResize - Cannot find \"${this.resizeBoundary}\", falling back to \"body\"`);\n return document.querySelector('body');\n }\n }\n\n /** @hidden Check whether resizable container is overflowing boundary container */\n private _getBoundaryOverflowFunction(resizeContainer: Element): (move: ResizeMove) => boolean {\n return (move: ResizeMove) => {\n const containerPosition = resizeContainer.getBoundingClientRect();\n const elementPosition = this._elementRef.nativeElement.getBoundingClientRect();\n\n switch (this.resizeHandleLocation) {\n case 'top-left':\n return (\n containerPosition.top < elementPosition.top + move.y &&\n containerPosition.left < elementPosition.left + move.x\n );\n case 'top-right':\n return (\n containerPosition.top < elementPosition.top + move.y &&\n containerPosition.right > elementPosition.right + move.x\n );\n case 'bottom-left':\n return (\n containerPosition.bottom > elementPosition.bottom + move.y &&\n containerPosition.left < elementPosition.left + move.x\n );\n case 'bottom-right':\n return (\n containerPosition.bottom > elementPosition.bottom + move.y &&\n containerPosition.right > elementPosition.right + move.x\n );\n }\n };\n }\n\n /** @hidden Create Observable notifying on resize actions */\n private _getResizeEventsNotifiers(trigger$: Observable<boolean>): Observable<any> {\n const emitResizableStart$ = trigger$.pipe(\n filter((isActive) => isActive),\n tap(() => this.onResizeStart.emit())\n );\n\n const emitResizableEnd$ = trigger$.pipe(\n filter((isActive) => !isActive),\n tap(() => this.onResizeEnd.emit())\n );\n\n return merge(emitResizableStart$, emitResizableEnd$);\n }\n\n /** @hidden Block resizable container pointer events when resizing */\n private _blockOtherPointerEvents(trigger$: Observable<boolean>): Observable<any> {\n return trigger$.pipe(\n map((isActive) => (isActive ? 'none' : 'auto')),\n tap((value) => (this._elementRef.nativeElement.style.pointerEvents = value))\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ResizeDirective } from './resize.directive';\nimport { ResizeHandleDirective } from './resize-handle.directive';\n\n@NgModule({\n imports: [CommonModule],\n exports: [ResizeDirective, ResizeHandleDirective],\n declarations: [ResizeDirective, ResizeHandleDirective]\n})\nexport class ResizeModule {}\n","import { InteractivityChecker } from '@angular/cdk/a11y';\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, Optional } from '@angular/core';\n\n@Injectable()\nexport class TabbableElementService {\n /** @hidden */\n constructor(\n private readonly _checker: InteractivityChecker,\n @Optional() @Inject(DOCUMENT) private readonly _document: Document | null\n ) {}\n\n /** Get the first tabbable element from a DOM subtree (inclusive). */\n getTabbableElement(root: HTMLElement, focusLastElement = false, skipSelf = false): HTMLElement | null {\n if (!skipSelf && this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n return root;\n }\n\n // Iterate in DOM order. Note that IE doesn't have `children` for SVG, so we fall\n // back to `childNodes` which includes text nodes, comments etc.\n const rootChildren = root.children || root.childNodes;\n\n const children = focusLastElement ? Array.from(rootChildren).reverse() : rootChildren;\n\n for (let i = 0; i < children.length; i++) {\n const tabbableChild =\n children[i].nodeType === this._document?.ELEMENT_NODE\n ? this.getTabbableElement(children[i] as HTMLElement, focusLastElement)\n : null;\n\n if (tabbableChild) {\n return tabbableChild;\n }\n }\n\n return null;\n }\n}\n","import { AfterViewInit, Directive, ElementRef, Input, NgZone } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport { TabbableElementService } from '../../services/tabbable-element.service';\n\n@Directive({\n selector: '[fdInitialFocus], [fd-initial-focus]',\n providers: [TabbableElementService]\n})\nexport class InitialFocusDirective implements AfterViewInit {\n /**\n * CSS selector of element that should be focused.\n */\n @Input('fd-initial-focus')\n focusableItem = '.fd-initial-focus-item';\n\n /**\n * Whether initial focus enabled for current element.\n */\n @Input()\n enabled = true;\n\n /**\n * Whether to focus last element in found array of elements.\n */\n @Input()\n focusLastElement = false;\n\n /** @hidden */\n constructor(\n private _elmRef: ElementRef<HTMLElement>,\n private _ngZone: NgZone,\n private readonly _tabbableService: TabbableElementService\n ) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._executeOnStable(() => this._focus());\n }\n\n /**\n * @hidden\n * Executes a function when the zone is stable.\n */\n private _executeOnStable(fn: () => any): void {\n if (this._ngZone.isStable) {\n fn();\n } else {\n this._ngZone.onStable.pipe(take(1)).subscribe(fn);\n }\n }\n\n /**\n * @hidden\n * Searches for appropriate focusable element\n */\n private _getFocusableElement(): HTMLElement | null {\n if (!this.focusableItem) {\n return this._tabbableService.getTabbableElement(this._elmRef.nativeElement, this.focusLastElement);\n }\n\n const autoFocusableItems = this._elmRef.nativeElement.querySelectorAll(\n this.focusableItem\n ) as NodeListOf<HTMLElement>;\n\n if (autoFocusableItems.length > 0) {\n return !this.focusLastElement ? autoFocusableItems[0] : autoFocusableItems[autoFocusableItems.length - 1];\n }\n\n // If no elements found, fallback to first tabbable element.\n return this._tabbableService.getTabbableElement(this._elmRef.nativeElement, this.focusLastElement);\n }\n\n /** @hidden */\n private _focus(): void {\n if (!this.enabled) {\n return;\n }\n this._getFocusableElement()?.focus();\n }\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n AfterViewInit,\n OnDestroy,\n OnChanges,\n Output,\n Renderer2,\n ChangeDetectorRef\n} from '@angular/core';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { Nullable } from '@fundamental-ngx/core/shared';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-lineclamp-target]',\n exportAs: 'fdLineClampTarget'\n})\nexport class LineClampTargetDirective implements OnChanges, AfterViewInit {\n /**\n * Target text for clamping\n */\n @Input()\n fdLineClampTargetText: string;\n\n /**\n * Event with target instance for clamping\n */\n @Output() update = new EventEmitter<LineClampTargetDirective>();\n\n /** @hidden */\n constructor(private readonly _elementRef: ElementRef) {}\n\n /**\n * Native element of clamping target\n */\n get targetElement(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.update.emit(this);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.update.emit(this);\n }\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-lineclamp]',\n exportAs: 'fdLineClamp'\n})\nexport class LineClampDirective implements OnChanges, AfterViewInit, OnDestroy {\n /**\n * Count lines for clamping\n */\n @Input()\n set fdLineClampLines(value: Nullable<number>) {\n this._lineCount = coerceNumberProperty(value);\n }\n\n /**\n * Clamping state\n */\n @Input()\n fdLineclampState = false;\n\n /**\n * Event return count of lines from the target\n */\n @Output()\n lineCountUpdate = new EventEmitter<number>();\n\n /** @hidden */\n private _lineClampTarget: HTMLElement;\n /** @hidden */\n private _originalText: string;\n /** @hidden */\n private windowResize$: Subscription;\n /** @hidden */\n private _isNativeSupport = true;\n /** @hidden */\n private _lineCount: number;\n\n /** @hidden */\n /**\n * Root native element of clamping box\n */\n get rootElement(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n\n /** @hidden */\n constructor(\n private readonly _elementRef: ElementRef,\n private readonly _renderer: Renderer2,\n private readonly _cdRef: ChangeDetectorRef\n ) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._isNativeSupport = typeof this.rootElement.style.webkitLineClamp !== 'undefined';\n\n // need to use setTimeout to force recheck of parent elements\n setTimeout(() => {\n this._checkLineCount();\n });\n\n this.windowResize$ = fromEvent(window, 'resize')\n .pipe(distinctUntilChanged(), debounceTime(200))\n .subscribe({\n next: () => this._checkLineCount()\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n if (this.windowResize$) {\n this.windowResize$.unsubscribe();\n }\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.reset();\n this.refreshClamp();\n }\n\n /** @hidden */\n reset(): void {\n if (this._lineClampTarget && this._originalText) {\n this._lineClampTarget.textContent = this._originalText;\n }\n if (this._isNativeSupport) {\n this._resetNative();\n }\n }\n\n /** @hidden */\n refreshTarget(event: LineClampTargetDirective): void {\n this._lineClampTarget = event.targetElement;\n this._originalText = event.fdLineClampTargetText;\n this.reset();\n this.refreshClamp();\n }\n\n /** @hidden */\n refreshClamp(): void {\n if (this.fdLineclampState && this._lineCount) {\n this.native();\n if (!this._isNativeSupport) {\n this._truncate();\n }\n }\n }\n\n /** @hidden\n * Truncate text in the target box, if browser not support lineclamp style\n */\n private _truncate(): void {\n if (!this._lineClampTarget) {\n return;\n }\n const lineClampHeight = Math.ceil(this.getLineHeight() * this._lineCount);\n const ellipsisTextArray = this._originalText.split(' ');\n const ellipsisText = (): void => {\n if (this.rootElement.scrollHeight > lineClampHeight) {\n ellipsisTextArray.pop();\n this._lineClampTarget.textContent = ellipsisTextArray.join(' ') + '...';\n ellipsisText.call(this);\n }\n };\n ellipsisText();\n }\n\n /** @hidden\n * Get lineheight for rootelement, if browser not support lineclamp style\n */\n private getLineHeight(): number {\n const lineHeight = window.getComputedStyle(this.rootElement, null).getPropertyValue('line-height');\n if (lineHeight === 'normal') {\n return parseInt(window.getComputedStyle(this.rootElement, null).getPropertyValue('font-size'), 10) * 1.25;\n }\n\n return parseFloat(lineHeight);\n }\n\n /** @hidden\n * Setup native styles for lineclamp text\n */\n private native(): void {\n if (this._isNativeSupport) {\n this._renderer.setStyle(this.rootElement, 'display', '-webkit-box');\n this._renderer.setStyle(this.rootElement, 'overflow', 'hidden');\n this._renderer.setStyle(this.rootElement, 'text-overflow', 'ellipsis');\n this._renderer.setStyle(this.rootElement, '-webkit-box-orient', 'vertical');\n this._renderer.setStyle(this.rootElement, '-webkit-line-clamp', `${this._lineCount}`);\n }\n }\n\n /** @hidden\n * Reset native styles for lineclamp text\n */\n private _resetNative(): void {\n if (this._isNativeSupport) {\n this._renderer.setStyle(this.rootElement, 'display', '');\n this._renderer.setStyle(this.rootElement, 'overflow', '');\n this._renderer.setStyle(this.rootElement, 'text-overflow', '');\n this._renderer.setStyle(this.rootElement, '-webkit-box-orient', '');\n this._renderer.setStyle(this.rootElement, '-webkit-line-clamp', '');\n }\n }\n\n /** @hidden */\n private _checkLineCount(): void {\n if (!this.rootElement) {\n return;\n }\n const style = window.getComputedStyle(this.rootElement, null);\n\n this.reset();\n\n const fontSize = parseInt(style.getPropertyValue('font-size'), 10);\n const boxSizing = style.getPropertyValue('box-sizing');\n let height = parseInt(style.getPropertyValue('height'), 10);\n let lineHeight = parseFloat(style.getPropertyValue('line-height'));\n if (isNaN(lineHeight)) {\n lineHeight = fontSize * 1.2;\n }\n if (boxSizing === 'border-box') {\n const padding_top = parseInt(style.getPropertyValue('padding-top'), 10);\n const padding_bottom = parseInt(style.getPropertyValue('padding-bottom'), 10);\n const border_top = parseInt(style.getPropertyValue('border-top-width'), 10);\n const border_bottom = parseInt(style.getPropertyValue('border-bottom-width'), 10);\n height = height - padding_top - padding_bottom - border_top - border_bottom;\n }\n this.refreshClamp();\n this.lineCountUpdate.emit(Math.ceil(height / lineHeight));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { LineClampTargetDirective, LineClampDirective } from './line-clamp.directive';\n\n@NgModule({\n imports: [CommonModule],\n exports: [LineClampTargetDirective, LineClampDirective],\n declarations: [LineClampTargetDirective, LineClampDirective]\n})\nexport class LineClampModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InitialFocusDirective } from './initial-focus.directive';\n\n@NgModule({\n imports: [CommonModule],\n exports: [InitialFocusDirective],\n declarations: [InitialFocusDirective]\n})\nexport class InitialFocusModule {}\n","import { Directive, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { BACKSPACE, CONTROL, DELETE, ENTER, ESCAPE, LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\nimport { KeyUtil } from '../../functions/key-util';\n\nexport interface AutoCompleteEvent {\n term: string;\n forceClose: boolean;\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-auto-complete]'\n})\nexport class AutoCompleteDirective {\n /** Values that will fill missing text in the input. */\n @Input()\n options: any[];\n\n /**\n * Input text, that is taken from ngModel of formControl,\n * there has to be difference between native input value and model value\n */\n @Input()\n inputText: string;\n\n /** Whether the auto complete directive should be enabled */\n @Input()\n enable = true;\n\n /** Display function. Accepts an object of the same type as the\n * items passed to dropdownValues as argument, and outputs a string.\n * An arrow function can be used to access the *this* keyword in the calling component.\n * See search input examples for details. */\n @Input()\n displayFn = this._defaultDisplay;\n\n /** Event thrown, when the auto ahead text is accepted */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n readonly onComplete: EventEmitter<AutoCompleteEvent> = new EventEmitter<AutoCompleteEvent>();\n\n /** @hidden */\n private readonly _completeKeys: number[] = [ENTER];\n\n /** @hidden */\n private readonly _fillKeys: number[] = [LEFT_ARROW, RIGHT_ARROW];\n\n /** @hidden */\n private readonly _stopKeys: number[] = [BACKSPACE, DELETE, ESCAPE];\n\n /** @hidden */\n private oldValue: string;\n\n /** @hidden */\n private lastKeyUpEvent: KeyboardEvent;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n @HostListener('keyup', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent): void {\n if (this.enable) {\n if (KeyUtil.isKeyCode(event, this._stopKeys)) {\n this._elementRef.nativeElement.value = this.inputText;\n } else if (KeyUtil.isKeyCode(event, this._completeKeys)) {\n this._sendCompleteEvent(true);\n this._moveIndicatorToLastCharacter();\n } else if (KeyUtil.isKeyCode(event, this._fillKeys)) {\n this._sendCompleteEvent(false);\n } else if (!this._isControlKey(event) && this.inputText) {\n /** Prevention from triggering typeahead, when having crtl/cmd + keys */\n if (!this._triggerTypeAhead()) {\n return;\n }\n\n this.oldValue = this.inputText;\n\n const item = this.options.find((option) =>\n this.displayFn(option).toLocaleLowerCase().startsWith(this.inputText.toLocaleLowerCase())\n );\n\n if (item) {\n this._typeahead(this.displayFn(item));\n }\n }\n }\n this.lastKeyUpEvent = event;\n }\n\n /** @hidden */\n private _typeahead(displayedValue: string): void {\n this._elementRef.nativeElement.value = displayedValue;\n const selectionStartIndex = this.inputText.length;\n this._elementRef.nativeElement.setSelectionRange(selectionStartIndex, displayedValue.length);\n }\n\n /** @hidden */\n private _isControlKey(event: KeyboardEvent): boolean {\n return KeyUtil.isKeyCode(event, CONTROL) || event.ctrlKey;\n }\n\n /** @hidden */\n private _defaultDisplay(value: any): string {\n return value;\n }\n\n /** @hidden */\n private _triggerTypeAhead(): boolean {\n if (\n this.lastKeyUpEvent &&\n KeyUtil.isKeyCode(this.lastKeyUpEvent, CONTROL) &&\n this.inputText === this.oldValue\n ) {\n return false;\n } else {\n return true;\n }\n }\n\n /** @hidden */\n private _sendCompleteEvent(forceClose: boolean): void {\n this.onComplete.emit({\n term: this._elementRef.nativeElement.value,\n forceClose\n });\n }\n\n /** @hidden */\n private _moveIndicatorToLastCharacter(): void {\n const inputTextLength = this.inputText?.length ?? 0;\n this._elementRef.nativeElement.setSelectionRange(inputTextLength, inputTextLength);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AutoCompleteDirective } from './auto-complete.directive';\n\n@NgModule({\n imports: [CommonModule],\n exports: [AutoCompleteDirective],\n declarations: [AutoCompleteDirective]\n})\nexport class AutoCompleteModule {}\n","import { Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[fdOverflowListItem], [fd-overflow-list-item]'\n})\nexport class OverflowListItemDirective {\n /** @hidden */\n constructor(public el: ElementRef) {}\n}\n","import {\n AfterViewInit,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n Output,\n QueryList\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { OverflowListItemDirective } from './overflow-list-item.directive';\nimport { ViewportRuler } from '@angular/cdk/overlay';\n\n@Directive({\n selector: '[fdOverflowList], [fd-overflow-list]'\n})\nexport class OverflowListDirective implements AfterViewInit, OnDestroy {\n /**\n * @description Offset to calculate correct position\n */\n @Input()\n overflowOffset = 0;\n\n /**\n * @description Flag representing rtl mode\n */\n @Input()\n isRtl: boolean;\n\n /**\n * @description value of display property of existed list items\n */\n @Input()\n itemCssBlockValue = 'flex';\n\n /**\n * @description Emits when changed amount of extra items\n */\n @Output()\n overflowChanged: EventEmitter<number> = new EventEmitter<number>();\n\n /**\n * @description References to QueryList of OverflowListItemDirective\n */\n @ContentChildren(OverflowListItemDirective)\n overflowItems: QueryList<OverflowListItemDirective>;\n\n /** @hidden */\n private _onDestroy$ = new Subject<void>();\n\n /** @hidden */\n constructor(private _el: ElementRef, private _viewportRuler: ViewportRuler, private _ngZone: NgZone) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._viewportRuler\n .change(50)\n .pipe(takeUntil(this._onDestroy$))\n // ViewportRuler invoked out of zone, that is why I need to invoke function in zone\n .subscribe(() => this._ngZone.run(() => this._calculateAmountOfOverflowedItems()));\n\n this._calculateAmountOfOverflowedItems();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /**\n * @description Get amount of extra items in current list\n * */\n getAmountOfExtraItems(): number {\n const elements = this.overflowItems.toArray().map((item) => item.el.nativeElement);\n const computed = getComputedStyle(this._el.nativeElement);\n const contentWidth =\n this._el.nativeElement.clientWidth - parseFloat(computed.paddingLeft) - parseFloat(computed.paddingRight);\n return this._checkWidthWithOffset(elements, contentWidth);\n }\n\n /** @hidden */\n private _calculateAmountOfOverflowedItems(): void {\n const extra = this.getAmountOfExtraItems();\n this.overflowChanged.emit(extra);\n }\n\n /**\n * @hidden\n * @param arrItems\n * @param containerWidth\n * @param checkWithOffset\n * */\n private _checkWidthWithOffset(\n arrItems: HTMLElement[],\n containerWidth: number,\n checkWithOffset: boolean = false\n ): number {\n let itemsTotalWidth = 0;\n const parentWidth = checkWithOffset ? containerWidth - this.overflowOffset : containerWidth;\n\n arrItems.forEach((item) => {\n item.hidden = true;\n item.style.display = this.itemCssBlockValue;\n });\n\n for (let i = 0; i < arrItems.length; i++) {\n const item = arrItems[i];\n\n itemsTotalWidth += this.isRtl\n ? containerWidth - item.offsetLeft - itemsTotalWidth\n : item.offsetWidth + item.offsetLeft - itemsTotalWidth;\n\n if (parentWidth < itemsTotalWidth) {\n this._clearTempStyles(arrItems);\n return checkWithOffset\n ? arrItems.length - i\n : this._checkWidthWithOffset(arrItems, containerWidth, true);\n }\n }\n\n this._clearTempStyles(arrItems);\n return 0;\n }\n\n /**\n * @param arrItems\n * @hidden\n * */\n private _clearTempStyles(arrItems: HTMLElement[]): void {\n arrItems.forEach((item) => {\n item.hidden = false;\n item.style.removeProperty('display');\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { OverflowListDirective } from './overflow-list.directive';\nimport { OverflowListItemDirective } from './overflow-list-item.directive';\n\n@NgModule({\n declarations: [OverflowListDirective, OverflowListItemDirective],\n imports: [CommonModule],\n exports: [OverflowListDirective, OverflowListItemDirective]\n})\nexport class OverflowListModule {}\n","import { AfterViewInit, Directive, ElementRef, Input, OnChanges } from '@angular/core';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Nullable } from '@fundamental-ngx/core/shared';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-truncate]'\n})\nexport class TruncateDirective implements OnChanges, AfterViewInit {\n /**\n * Width in pixel for truncation of an element , by default\n */\n @Input()\n set fdTruncateWidth(value: Nullable<number>) {\n this._customWidthCount = coerceNumberProperty(value);\n }\n\n /**\n * Truncating state\n */\n @Input()\n fdTruncateState = false;\n\n /** @hidden */\n private _customWidthCount = 200;\n\n /** @hidden */\n private _truncateTarget: HTMLElement;\n\n /** @hidden\n * saves default style of element before truncating\n */\n private _defaultStyle: string;\n\n /** @hidden */\n private takeDefaultStyleOnce = true;\n\n /** @hidden\n * truncation style for truncating element\n */\n private _truncationStyle: string;\n\n /** @hidden */\n constructor(private readonly _elementRef: ElementRef) {}\n\n /**\n * Root native element\n */\n get rootElement(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n\n /**\n * Method saves default style of target element before first truncate.\n */\n setDefaultStyle(): void {\n if (this.takeDefaultStyleOnce) {\n this._defaultStyle = this._truncateTarget.style.cssText;\n this.takeDefaultStyleOnce = false;\n }\n }\n /** @hidden */\n ngAfterViewInit(): void {\n if (this.rootElement) {\n this._truncate();\n }\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this._truncate();\n }\n\n /** @hidden */\n private _truncate(): void {\n this._truncateTarget = this.rootElement;\n\n if (!this._truncateTarget) {\n return;\n }\n this.setDefaultStyle();\n this._truncationStyle = `${this._defaultStyle} max-width: ${this._customWidthCount}px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;`;\n this._truncateTarget.style.cssText = this.fdTruncateState ? this._truncationStyle : this._defaultStyle;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { TruncateDirective } from './truncate.directive';\n\n@NgModule({\n imports: [CommonModule],\n exports: [TruncateDirective],\n declarations: [TruncateDirective]\n})\nexport class TruncateModule {}\n","import { FocusableOption } from '@angular/cdk/a11y';\nimport { InjectionToken } from '@angular/core';\n\nexport const FOCUSABLE_ITEM = new InjectionToken<FocusableOption>('Focusable Option');\n","import { FocusableOption, FocusKeyManager } from '@angular/cdk/a11y';\nimport {\n AfterContentInit,\n ChangeDetectorRef,\n ContentChildren,\n Directive,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n QueryList,\n SimpleChanges\n} from '@angular/core';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\nimport { RtlService } from '../../services/rtl.service';\nimport { FOCUSABLE_ITEM } from './focus-key-manager.tokens';\n\n/** Directive to apply Angular Material FocusKeyManager to lists.\n * To be used with FocusKeyManagerItemDirective\n */\n@Directive({\n selector: `[fd-focus-key-manager-list], [fdFocusKeyManagerList]`\n})\nexport class FocusKeyManagerListDirective implements OnChanges, AfterContentInit, OnDestroy {\n /** Orientation for the FocusKeyManager */\n @Input()\n orientation: 'horizontal' | 'vertical';\n\n /** Skip predicate for the FocusKeyManager */\n @Input()\n skipPredicate: (item: Record<any, any> & FocusableOption) => boolean;\n\n /** @hidden */\n @ContentChildren(FOCUSABLE_ITEM)\n readonly _items: QueryList<FocusableOption>;\n\n /** @hidden */\n get focusKeyManager(): FocusKeyManager<FocusableOption> {\n return this._focusKeyManager;\n }\n\n /** @hidden */\n private _focusKeyManager: FocusKeyManager<FocusableOption>;\n\n /** @hidden */\n private readonly _onDestroy$ = new Subject<void>();\n\n /** @hidden */\n constructor(@Optional() private readonly _rtlService: RtlService, private readonly _cdr: ChangeDetectorRef) {}\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (!this._focusKeyManager) {\n return;\n }\n\n if ('orientation' in changes) {\n this._applyOrientation();\n }\n\n if ('skiPredicate' in changes) {\n this._focusKeyManager.skipPredicate(this.skipPredicate);\n }\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._focusKeyManager = new FocusKeyManager<FocusableOption>(this._items).skipPredicate(this.skipPredicate);\n\n this._applyOrientation();\n\n this._cdr.detectChanges();\n\n this._rtlService?.rtl\n .pipe(\n filter(() => this.orientation === 'horizontal'),\n takeUntil(this._onDestroy$)\n )\n .subscribe(() => this._applyOrientation());\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /** Focus certain list's item */\n focusItem(item: number | FocusableOption): any {\n if (typeof item === 'number') {\n this._focusKeyManager.setActiveItem(item);\n } else {\n this._focusKeyManager.setActiveItem(item);\n }\n }\n\n /** @hidden */\n private _applyOrientation(): void {\n switch (this.orientation) {\n case 'horizontal':\n this._focusKeyManager.withHorizontalOrientation(this._rtlService?.rtl.value ? 'rtl' : 'ltr');\n break;\n case 'vertical':\n this._focusKeyManager.withVerticalOrientation(true);\n break;\n }\n }\n}\n","import { FocusableOption, FocusKeyManager } from '@angular/cdk/a11y';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Directive, ElementRef, forwardRef, HostBinding, HostListener, Input } from '@angular/core';\nimport { FocusKeyManagerListDirective } from './focus-key-manager-list.directive';\nimport { FOCUSABLE_ITEM } from './focus-key-manager.tokens';\n\n/** Directive to apply Angular Material FocusKeyManager to lists.\n * To be used with FocusKeyManagerItemDirective\n */\n@Directive({\n selector: '[fd-focus-key-manager-item], [fdFocusKeyManagerItem]',\n providers: [{ provide: FOCUSABLE_ITEM, useExisting: forwardRef(() => FocusKeyManagerItemDirective) }]\n})\nexport class FocusKeyManagerItemDirective implements FocusableOption {\n /** Whether item should be initially focused */\n @Input()\n set initialFocus(value: BooleanInput) {\n this._initialFocus = coerceBooleanProperty(value);\n }\n\n /** @hidden */\n @Input()\n @HostBinding('attr.tabindex')\n get _tabindex(): number {\n if (this._initialFocus) {\n return 0;\n }\n\n return this.nativeElement?.tabIndex ?? -1;\n }\n\n /** @hidden */\n private _initialFocus = false;\n\n /** Native element of the item */\n get nativeElement(): any {\n return this._elRef?.nativeElement;\n }\n\n /** @hidden */\n private get _focusKeyManager(): FocusKeyManager<FocusableOption> {\n return this._list.focusKeyManager;\n }\n\n /** @hidden */\n constructor(private readonly _list: FocusKeyManagerListDirective, private readonly _elRef: ElementRef) {}\n\n /** @hidden */\n @HostListener('focus')\n _onFocus(): void {\n // For cases where initially selected item doesn't have 0 index\n this._focusKeyManager?.updateActiveItem(this);\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n _onKeydown(event: KeyboardEvent): void {\n this._focusKeyManager?.onKeydown(event);\n }\n\n /** Focus current item native element */\n focus(): void {\n this._elRef?.nativeElement.focus();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FocusKeyManagerItemDirective } from './focus-key-manager-item.directive';\nimport { FocusKeyManagerListDirective } from './focus-key-manager-list.directive';\n\n@NgModule({\n imports: [CommonModule],\n exports: [FocusKeyManagerItemDirective, FocusKeyManagerListDirective],\n declarations: [FocusKeyManagerItemDirective, FocusKeyManagerListDirective]\n})\nexport class FocusKeyManagerHelpersModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'displayFnPipe'\n})\nexport class DisplayFnPipe implements PipeTransform {\n /** Transform value with display function. */\n transform(value: any, displayFn: any, ...args: any): string {\n return displayFn(value, ...args);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport escape from 'lodash-es/escape';\n\n@Pipe({\n name: 'highlight'\n})\nexport class SearchHighlightPipe implements PipeTransform {\n /** Highlight search term in string. */\n transform(value: string, args: string, active: boolean = true, includeSpans: boolean = false): string {\n value = escape(value);\n let result: string = value;\n if (args && value && active) {\n const testStr: string = escape(args.trim().toLowerCase());\n const startIndex = value.toLowerCase().indexOf(testStr);\n if (startIndex !== -1) {\n const matchingString = value.substr(startIndex, testStr.length);\n result = value.replace(matchingString, '<strong>' + matchingString + '</strong>');\n }\n }\n if (includeSpans) {\n result = '<span>' + result + '</span>';\n }\n return result;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'twoDigits'\n})\nexport class TwoDigitsPipe implements PipeTransform {\n /** Transform number to two digits. */\n transform(value: number, enable: boolean = true): string {\n if ((value || value === 0) && enable) {\n return value < 10 ? '0' + value : value.toString();\n } else {\n return String(value);\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safe'\n})\nexport class SafePipe implements PipeTransform {\n /** @hidden */\n constructor(protected sanitizer: DomSanitizer) {}\n\n /** Sanitize HTML string. */\n public transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n switch (type) {\n case 'html':\n return this.sanitizer.bypassSecurityTrustHtml(value);\n\n case 'style':\n return this.sanitizer.bypassSecurityTrustStyle(value);\n\n case 'script':\n return this.sanitizer.bypassSecurityTrustScript(value);\n\n case 'url':\n return this.sanitizer.bypassSecurityTrustUrl(value);\n\n case 'resourceUrl':\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n\n default:\n throw new Error(`Invalid safe type specified: ${type}`);\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { get } from 'lodash-es';\n\n@Pipe({ name: 'valueByPath' })\nexport class ValueByPathPipe implements PipeTransform {\n /** Get value by path. */\n transform(value: any, key: string): any {\n return get(value, key);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ContentDensity } from '../interfaces/content-density';\nimport { isCompactDensity } from './../functions/is-compact-density';\n\n@Pipe({ name: 'isCompactDensity' })\nexport class IsCompactDensityPipe implements PipeTransform {\n /** Check if the content density is compact. */\n transform(size: ContentDensity): boolean {\n return isCompactDensity(size);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'truncate'\n})\nexport class TruncatePipe implements PipeTransform {\n /** Truncate string to given length. */\n transform(value: string, limit: number = 500): string {\n return value && value.length > limit ? value.substring(0, limit) + '...' : value;\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { DisplayFnPipe } from './displayFn.pipe';\nimport { SearchHighlightPipe } from './search-highlight.pipe';\nimport { TwoDigitsPipe } from './two-digits.pipe';\nimport { SafePipe } from './safe.pipe';\nimport { ValueByPathPipe } from './value-by-path.pipe';\nimport { IsCompactDensityPipe } from './is-compact.pipe';\nimport { TruncatePipe } from './truncate.pipe';\n\n@NgModule({\n declarations: [\n DisplayFnPipe,\n SearchHighlightPipe,\n TwoDigitsPipe,\n SafePipe,\n ValueByPathPipe,\n IsCompactDensityPipe,\n TruncatePipe\n ],\n exports: [\n DisplayFnPipe,\n SearchHighlightPipe,\n TwoDigitsPipe,\n SafePipe,\n ValueByPathPipe,\n IsCompactDensityPipe,\n TruncatePipe\n ]\n})\nexport class PipeModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport const DND_ITEM = new InjectionToken('Drag and drop Item');\nexport const DND_LIST = new InjectionToken('Drag and drop List');\n","import {\n AfterContentInit,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Output,\n QueryList\n} from '@angular/core';\nimport { merge, Subject } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\nimport { ElementChord, FdDropEvent, LinkPosition, ElementPosition, DndItem } from '../dnd.interfaces';\nimport { DND_ITEM, DND_LIST } from '../tokens';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-dnd-list]',\n providers: [{ provide: DND_LIST, useExisting: forwardRef(() => DndListDirective) }]\n})\nexport class DndListDirective<T> implements AfterContentInit, OnDestroy {\n /**\n * Defines if the the element is allowed to be dragged in 2 dimensions,\n * When true - replace indicator will be displayed vertically\n */\n @Input()\n gridMode = false;\n\n /** When enabled, replace indicator will appear on whole element, instead of horizontal/vertical line before/after element */\n @Input()\n replaceMode = false;\n\n /** Array of items, that will be sorted */\n @Input()\n items: Array<T>;\n\n /** Defines if drag and drop feature should be enabled for list items */\n @Input()\n set draggable(draggable: boolean) {\n this._draggable = draggable;\n this._changeDraggableState(draggable);\n }\n\n /** Event that is thrown, when items are reordered */\n @Output()\n readonly itemsChange = new EventEmitter<Array<T>>();\n\n /** Event that is thrown, when the item is dropped */\n @Output()\n readonly itemDropped = new EventEmitter<FdDropEvent<T>>();\n\n /** @hidden */\n @ContentChildren(DND_ITEM)\n dndItems: QueryList<DndItem>;\n\n /** @hidden */\n private _elementsCoordinates: ElementChord[];\n\n /** @hidden */\n private _closestItemIndex: number | null = null;\n\n /** @hidden */\n private _closestItemPosition: 'before' | 'after' | null = null;\n\n /** An RxJS Subject that will kill the current data stream (for unsubscribing) */\n private readonly _refresh$ = new Subject<void>();\n\n /** @hidden */\n private readonly _onDestroy$ = new Subject<void>();\n\n /** @hidden */\n private _dndItemReference: DndItem[];\n\n /** @hidden */\n private _draggable = true;\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._changeDraggableState(this._draggable);\n this.dndItems.changes.pipe(takeUntil(this._onDestroy$), startWith(0)).subscribe(() => this._refreshQueryList());\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /** Method called, when the item is being moved by 1 px */\n onMove(mousePosition: ElementPosition, draggedItemIndex: number): void {\n /** Temporary object, to store lowest distance values */\n let closestItemIndex: number | null = null;\n\n const closestItem = this._elementsCoordinates.find((element, index) => {\n /** Check if element can be replaced */\n if (!element.stickToPosition && closestItemIndex !== index) {\n const isMouseOnElement = _isMouseOnElement(element, mousePosition);\n if (isMouseOnElement) {\n closestItemIndex = index;\n\n return true;\n }\n }\n return false;\n });\n\n if (!closestItem) {\n closestItemIndex = null;\n }\n\n /** If the closest element is different than the old one, new one is picked. It prevents from performance issues */\n if ((closestItemIndex || closestItemIndex === 0) && closestItemIndex !== this._closestItemIndex) {\n this._closestItemIndex = closestItemIndex;\n this._closestItemPosition = this._elementsCoordinates[closestItemIndex].position;\n // If closest item index is same as dragged item, just remove indicators\n if (closestItemIndex === draggedItemIndex) {\n this._removeAllLines();\n this._removeAllReplaceIndicators();\n return;\n }\n /** Generating line, that shows where the element will be placed, on drop */\n if (this.replaceMode) {\n this._createReplaceIndicator(this._closestItemIndex);\n } else {\n this._createLine(this._closestItemIndex, this._closestItemPosition);\n }\n }\n }\n\n /** Method called, when element is started to be dragged */\n dragStart(index: number): void {\n const draggedItemElement = this._dndItemReference[index].elementRef;\n /** Counting all of the elements's chords */\n this._elementsCoordinates = this._dndItemReference.map((item: DndItem) =>\n item.getElementCoordinates(this._isBefore(draggedItemElement, item.elementRef), this.gridMode)\n );\n }\n\n /** Method called, when element is released */\n dragEnd(draggedItemIndex: number): void {\n const items = this.items.slice();\n const replacedItemIndex = this._closestItemIndex;\n const draggedItem = items[draggedItemIndex];\n\n if (!replacedItemIndex) {\n return;\n }\n\n if (draggedItemIndex !== replacedItemIndex) {\n if (draggedItemIndex < replacedItemIndex) {\n for (let i = draggedItemIndex; i < replacedItemIndex; i++) {\n items[i] = items[i + 1];\n }\n } else {\n for (let i = draggedItemIndex; i > replacedItemIndex; i--) {\n items[i] = items[i - 1];\n }\n }\n\n /** Replacing items */\n items[replacedItemIndex] = draggedItem;\n\n this.itemsChange.emit(items);\n }\n\n this.itemDropped.emit({\n replacedItemIndex,\n draggedItemIndex,\n items\n });\n\n this._removeAllLines();\n this._removeAllReplaceIndicators();\n\n /** Reset */\n this._elementsCoordinates = [];\n this._closestItemIndex = null;\n this._closestItemPosition = null;\n }\n\n /** @hidden */\n private _removeAllLines(): void {\n this.dndItems.forEach((item) => item.removeLine());\n }\n\n /** @hidden */\n private _removeAllReplaceIndicators(): void {\n this.dndItems.forEach((item) => item.removeReplaceIndicator());\n }\n\n /** @hidden */\n private _createLine(closestItemIndex: number, linkPosition: LinkPosition): void {\n this._removeAllLines();\n this._dndItemReference[closestItemIndex].createLine(linkPosition, this.gridMode);\n }\n\n /** @hidden */\n private _createReplaceIndicator(closestItemIndex: number): void {\n this._removeAllReplaceIndicators();\n this._dndItemReference[closestItemIndex].createReplaceIndicator();\n }\n\n /** @hidden */\n private _refreshQueryList(): void {\n const refresh$ = merge(this._refresh$, this._onDestroy$);\n this._refresh$.next();\n\n this._dndItemReference = this.dndItems.toArray();\n\n this._changeDraggableState(this._draggable);\n\n this.dndItems.forEach((item, index) => {\n item.moved.pipe(takeUntil(refresh$)).subscribe((position: ElementPosition) => this.onMove(position, index));\n item.started.pipe(takeUntil(refresh$)).subscribe(() => this.dragStart(index));\n item.released.pipe(takeUntil(refresh$)).subscribe(() => this.dragEnd(index));\n });\n }\n\n /**\n * @hidden\n * Return information if element is placed before the dragged element\n */\n private _isBefore(draggedElement: ElementRef, targetElement: ElementRef): boolean {\n /** Sometimes the element are not straight in one column, that's why offset is needed */\n const VERTICAL_OFFSET = 20;\n\n /** Distances from the top of screen */\n const draggedElementBound = <DOMRect>draggedElement.nativeElement.getBoundingClientRect();\n const targetElementBound = <DOMRect>targetElement.nativeElement.getBoundingClientRect();\n\n if (draggedElementBound.top - targetElementBound.top > VERTICAL_OFFSET) {\n /** If element is higher than the dragged element, it's for sure before */\n return true;\n } else if (targetElementBound.top - draggedElementBound.top > VERTICAL_OFFSET) {\n /** If element is lower than the dragged element, it's for sure after */\n return false;\n } else {\n /** If elements are in same level, the horizontal position decides if it's before/after */\n return draggedElementBound.left - targetElementBound.left > 0;\n }\n }\n\n /** @hidden */\n private _changeDraggableState(draggable: boolean): void {\n if (this.dndItems) {\n this.dndItems.forEach((item) => {\n item.listDraggable = draggable;\n item.changeCDKDragState();\n });\n }\n }\n}\n\nfunction _isMouseOnElement(element: ElementChord, mousePosition: ElementPosition): boolean {\n const startX = element.x;\n const endX = element.x + element.width;\n\n const startY = element.y;\n const endY = element.y + element.height;\n\n return _between(mousePosition.x, startX, endX) && _between(mousePosition.y, startY, endY);\n}\n\nfunction _between(x: number, min: number, max: number): boolean {\n return x >= min && x <= max;\n}\n","import {\n AfterContentInit,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n Output\n} from '@angular/core';\nimport { DragDrop, DragRef } from '@angular/cdk/drag-drop';\nimport { DndItem, ElementChord, ElementPosition, LinkPosition } from '../dnd.interfaces';\nimport { Subscription } from 'rxjs';\nimport { delay } from 'rxjs/operators';\nimport { DND_ITEM } from '../tokens';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-dnd-item]',\n providers: [DragDrop, { provide: DND_ITEM, useExisting: forwardRef(() => DndItemDirective) }]\n})\nexport class DndItemDirective implements DndItem, AfterContentInit, OnDestroy {\n /**\n * Whether to apply \"fd-dnd-item\" class.\n * @default true\n */\n @Input()\n @HostBinding('class.fd-dnd-item')\n applyDragItemClass = true;\n\n /** Container selector */\n @Input()\n containerSelector?: string;\n\n /** Event thrown when the element is moved by 1px */\n @Output()\n readonly moved = new EventEmitter<ElementPosition>();\n\n /** Event thrown when the element is released */\n @Output()\n readonly released = new EventEmitter<void>();\n\n /** Event thrown when the element is started to be dragged */\n @Output()\n readonly started = new EventEmitter<void>();\n\n /**\n * Defines if the item is prevented from being moved by other elements.\n * So nothing can be placed just before and just after it\n */\n @Input()\n stickInPlace = false;\n\n /** Defines if element is draggable */\n @Input()\n set draggable(draggable: boolean) {\n this._draggable = draggable;\n this.changeCDKDragState();\n }\n\n /** Class added to element, when it's dragged. */\n @Input()\n classWhenElementDragged = 'fd-dnd-on-drag';\n\n /** Defines if every element in list is draggable */\n listDraggable = true;\n\n /** @hidden\n * Drag reference, object created from DND CDK Service\n */\n private _dragRef: DragRef;\n\n /** @hidden */\n private _draggable = true;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _placeholderElement: HTMLElement | null;\n\n /** @hidden */\n private _lineElement: HTMLElement | null;\n\n /** @hidden */\n private _replaceIndicator: HTMLElement | null;\n\n /** @hidden */\n constructor(public elementRef: ElementRef, private _dragDrop: DragDrop) {}\n\n /** @hidden */\n getElementCoordinates(isBefore: boolean, gridMode: boolean): ElementChord {\n /** Takes distance from the beginning of window page */\n const rect: DOMRect = this.elementRef.nativeElement.getBoundingClientRect();\n\n const position: LinkPosition = isBefore ? 'before' : 'after';\n\n /** Vertically distance is counted by distance from top of the side + half of the element height */\n return {\n x: rect.left,\n position,\n y: rect.top,\n stickToPosition: this.stickInPlace,\n width: rect.width,\n height: rect.height\n };\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._setCDKDrag();\n this._listenElementEvents();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n onCdkMove(position: ElementPosition): void {\n this.moved.emit(position);\n }\n\n /** @hidden */\n onCdkDragReleased(): void {\n /** Remove class which is added, when element is dragged */\n this.elementRef.nativeElement.classList.remove(this.classWhenElementDragged);\n this.released.emit();\n\n /** Resets the position of element. */\n this._dragRef.reset();\n\n /** Removes placeholder element */\n this.removePlaceholder();\n }\n\n /** @hidden */\n onCdkDragStart(): void {\n /** Adds class */\n this.elementRef.nativeElement.classList.add(this.classWhenElementDragged);\n\n if (!this._placeholderElement) {\n this.createPlaceholder();\n }\n this.started.emit();\n }\n\n /** @hidden */\n removePlaceholder(): void {\n if (this._placeholderElement && this._placeholderElement.parentNode) {\n // IE11 workaround\n this._placeholderElement.parentNode.removeChild(this._placeholderElement);\n this._placeholderElement = null;\n }\n }\n\n /** @hidden */\n removeLine(): void {\n if (this._lineElement && this._lineElement.parentNode) {\n // IE11 workaround\n this._lineElement.parentNode.removeChild(this._lineElement);\n this._lineElement = null;\n }\n }\n\n /** @hidden */\n removeReplaceIndicator(): void {\n if (this._replaceIndicator && this._replaceIndicator.parentNode) {\n // IE11 workaround\n this._replaceIndicator.parentNode.removeChild(this._replaceIndicator);\n this._replaceIndicator = null;\n }\n }\n\n /** @hidden */\n createReplaceIndicator(): void {\n this._replaceIndicator = document.createElement('DIV');\n this._replaceIndicator.classList.add('fd-replace-indicator');\n\n let container = this.elementRef.nativeElement;\n if (this.containerSelector) {\n const newContainer = this.elementRef.nativeElement.querySelector(this.containerSelector);\n if (newContainer) {\n container = newContainer;\n }\n }\n\n container.appendChild(this._replaceIndicator);\n }\n\n /** @hidden */\n createLine(position: LinkPosition, gridMode: boolean): void {\n /** Creating of line element */\n this._lineElement = document.createElement('div');\n this._lineElement.classList.add('drop-area__line');\n\n if (gridMode) {\n this._lineElement.classList.add('drop-area__line--vertical');\n } else {\n this._lineElement.classList.add('drop-area__line--horizontal');\n }\n if (position === 'after') {\n this._lineElement.classList.add('after');\n }\n if (position === 'before') {\n this._lineElement.classList.add('before');\n }\n\n /** Putting element to the container */\n let container = this.elementRef.nativeElement;\n if (this.containerSelector) {\n const newContainer = this.elementRef.nativeElement.querySelector(this.containerSelector);\n if (newContainer) {\n container = newContainer;\n }\n }\n\n container.appendChild(this._lineElement);\n }\n\n /** @hidden */\n changeCDKDragState(): void {\n if (this._dragRef) {\n this._dragRef.disabled = !(this._draggable && this.listDraggable);\n }\n }\n\n /** @hidden */\n private createPlaceholder(): void {\n const placeholder = this.elementRef.nativeElement.cloneNode(true);\n /** Cloning container element */\n this._placeholderElement = placeholder;\n\n placeholder.classList.add('fd-dnd-placeholder');\n this._setPlaceholderStyles();\n\n /** Including element to the container\n * IE11 equivalent to `this.element.nativeElement.after(clone);`\n */\n this._placeAfter(this.elementRef.nativeElement, placeholder);\n }\n\n /** @hidden */\n private _setPlaceholderStyles(): void {\n const offset = this._getOffsetToParent(this.elementRef.nativeElement);\n\n if (!offset || !this._placeholderElement) {\n return;\n }\n\n this._placeholderElement.style.top = offset.y + 'px';\n this._placeholderElement.style.left = offset.x + 'px';\n this._placeholderElement.style.position = 'absolute';\n this._placeholderElement.style.zIndex = '0';\n this._placeholderElement.style.opacity = '0.3';\n\n this._placeholderElement.style.width = this.elementRef.nativeElement.offsetWidth + 'px';\n this._placeholderElement.style.height = this.elementRef.nativeElement.offsetHeight + 'px';\n }\n\n /** @hidden */\n private _getOffsetToParent(element: Element): { x: number; y: number } | undefined {\n const parentElement = element.parentElement;\n if (!parentElement) {\n return;\n }\n\n const parentTop = parentElement.getBoundingClientRect().top;\n const parentLeft = parentElement.getBoundingClientRect().left;\n\n return {\n x: Math.abs(element.getBoundingClientRect().left - parentLeft),\n y: Math.abs(element.getBoundingClientRect().top - parentTop)\n };\n }\n\n /** @hidden */\n private _setCDKDrag(): void {\n this._dragRef = this._dragDrop.createDrag(this.elementRef);\n this._dragRef.disabled = !this._draggable;\n this._subscriptions.add(this._dragRef.moved.subscribe((event) => this.onCdkMove(event.pointerPosition)));\n this._subscriptions.add(this._dragRef.released.subscribe(() => this.onCdkDragReleased()));\n this._subscriptions.add(this._dragRef.started.subscribe(() => this.onCdkDragStart()));\n }\n\n /** IE11 equivalent of Node.after() Method */\n private _placeAfter(element: Element, cloneNode: Node): void {\n const docFrag = document.createDocumentFragment();\n docFrag.appendChild(cloneNode);\n element.parentNode?.insertBefore(docFrag, element.nextSibling);\n }\n\n /** @hidden */\n private _listenElementEvents(): void {\n this._subscriptions.add(\n this.released\n .pipe(\n // postpone blur\n delay(0)\n )\n .subscribe(() => {\n if (this.containerSelector) {\n this.elementRef.nativeElement.children[0].blur();\n }\n this.elementRef.nativeElement.blur();\n })\n );\n }\n}\n","import { moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { ChangeDetectorRef, Directive, Input, Optional } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { KeyUtil } from '../../functions';\nimport { RtlService } from '../../services/rtl.service';\n\n/**\n * This directive is used to provide drag & drop with keyboard support.\n * It should be used together with directive fdDndKeyboardItem.\n */\n@Directive({ selector: '[fdDndKeyboardGroup]' })\nexport class DndKeyboardGroupDirective {\n /** Group of items */\n @Input()\n groups: any[][];\n\n /** Whether to disable drag & drop */\n @Input()\n disableKeyboardDragDrop = false;\n\n /** Used to apply indexes when moving between groups */\n @Input()\n orientation: 'horizontal' | 'vertical' = 'vertical';\n\n /** @hidden */\n _onDndItemFocus$ = new Subject<[number, number]>();\n\n /** Custom function to call when moving item inside the group */\n @Input()\n customMoveFn = (group: any[], fromIndex: number, toIndex: number): void =>\n moveItemInArray(group, fromIndex, toIndex);\n\n /** Custom function to call when moving item between groups */\n @Input()\n customTransferFn = (group: any[], nextGroup: any[], fromIndex: number, toIndex: number): void =>\n transferArrayItem(group, nextGroup, fromIndex, toIndex);\n\n /** @hidden */\n constructor(private readonly _cdr: ChangeDetectorRef, @Optional() private readonly _rtlService: RtlService) {}\n\n /** Process drag & drop */\n processDragDrop(event: KeyboardEvent, itemIndex: number, groupIndex: number): void {\n if (this.disableKeyboardDragDrop || !event.altKey) {\n return;\n }\n\n const isRtl = this._rtlService.rtl.value;\n\n const group = this.groups[groupIndex];\n const indexInNextGroup = this.orientation === 'vertical' ? 0 : itemIndex;\n\n const nextGroupExists = this.groups.length > groupIndex + 1;\n const prevGroupExists = !!groupIndex;\n\n if (KeyUtil.isKeyCode(event, RIGHT_ARROW) && (isRtl ? prevGroupExists : nextGroupExists)) {\n event.preventDefault();\n\n const nextGroupIndex = groupIndex + (isRtl ? -1 : 1);\n const nextGroup = this.groups[nextGroupIndex];\n\n this.customTransferFn(group, nextGroup, itemIndex, indexInNextGroup);\n this._focusDndItem(nextGroupIndex, indexInNextGroup);\n } else if (KeyUtil.isKeyCode(event, LEFT_ARROW) && (isRtl ? nextGroupExists : prevGroupExists)) {\n event.preventDefault();\n\n const nextGroupIndex = groupIndex + (isRtl ? 1 : -1);\n const nextGroup = this.groups[nextGroupIndex];\n\n this.customTransferFn(group, nextGroup, itemIndex, indexInNextGroup);\n this._focusDndItem(nextGroupIndex, indexInNextGroup);\n } else if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n event.preventDefault();\n\n this.customMoveFn(group, itemIndex, itemIndex + 1);\n this._focusDndItem(groupIndex, itemIndex + 1);\n } else if (KeyUtil.isKeyCode(event, UP_ARROW)) {\n event.preventDefault();\n\n this.customMoveFn(group, itemIndex, itemIndex - 1);\n this._focusDndItem(groupIndex, itemIndex - 1);\n }\n }\n\n /** @hidden Focus after moving elements with keyboard */\n private _focusDndItem(groupIndex: number, itemIndex: number): void {\n this._cdr.detectChanges();\n\n this._onDndItemFocus$.next([groupIndex, itemIndex]);\n }\n}\n","import { Directive, ElementRef, HostListener, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { DndKeyboardGroupDirective } from '../dnd-keyboard-group/dnd-keyboard-group.directive';\n\n/**\n * This directive is used to provide drag & drop with keyboard support.\n * It should be used together with directive fdDndKeyboardGroup.\n * We are using _groups from fdDndKeyboardGroup and adding a possibility to move cards.\n * Please see example below:\n * @Component({\n * selector: 'cdk-drag-drop-example',\n * template: `<div\n * cdkDragListGroup\n * fdDndKeyboardGroup\n * [groups]=\"groups\"\n * >\n * <div\n * *ngFor=\"let group of groups; let groupIndex = index\"\n * cdkDragList\n * >\n * Group #{{ groupIndex }}\n * <div\n * *ngFor=\"let item of group; let index = index\"\n * cdkDrag\n * fdDndKeyboardItem\n * [itemIndex]=\"index\"\n * [groupIndex]=\"groupIndex\"\n * [dndKeyboardDisabled]=\"flag for disable/enable keyboard navigation if needed\"\n * tabindex=\"0\"\n * >\n * Item #{{ item }}\n * </div>\n * </div>\n * </div>`,\n * })\n * export class CdkDragDropExample {\n * groups = [\n * [1, 2, 3],\n * [4, 5, 6],\n * ];\n * }\n */\n@Directive({ selector: '[fdDndKeyboardItem]' })\nexport class DndKeyboardItemDirective implements OnInit, OnDestroy {\n /** item index in group(column) */\n @Input()\n itemIndex: number;\n\n /** group(column) index */\n @Input()\n groupIndex: number;\n\n /** @hidden */\n private readonly _onDestroy$ = new Subject<void>();\n\n /** @hidden */\n constructor(private readonly _dndGroup: DndKeyboardGroupDirective, private readonly _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._dndGroup._onDndItemFocus$.subscribe(([groupIndex, itemIndex]) => {\n if (this.groupIndex === groupIndex && this.itemIndex === itemIndex) {\n this._elementRef.nativeElement.focus();\n }\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n _onKeyDown(event: KeyboardEvent): void {\n this._dndGroup.processDragDrop(event, this.itemIndex, this.groupIndex);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DndListDirective } from './dnd-list/dnd-list.directive';\nimport { DndItemDirective } from './dnd-item/dnd-item.directive';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { DndKeyboardItemDirective } from './dnd-keyboard-item/dnd-keyboard-item.directive';\nimport { DndKeyboardGroupDirective } from './dnd-keyboard-group/dnd-keyboard-group.directive';\n\n@NgModule({\n imports: [CommonModule, DragDropModule],\n exports: [DndItemDirective, DndListDirective, DndKeyboardGroupDirective, DndKeyboardItemDirective],\n declarations: [DndItemDirective, DndListDirective, DndKeyboardGroupDirective, DndKeyboardItemDirective]\n})\nexport class DragAndDropModule {}\n","import { ElementRef } from '@angular/core';\n\nexport interface HasElementRef {\n elementRef(): ElementRef;\n}\n\nexport const ELEMENT_REF_EXCEPTION = 'HasElementRef interface has to be implemented';\n","import { ELEMENT_REF_EXCEPTION } from '../interfaces/has-element-ref.interface';\nimport { uuidv4 } from '../functions/uuidv4-generator';\nimport { CssClassBuilder } from '../interfaces/css-class-builder.interface';\n\n/**\n * Method decorator to apply css class to a component through native element\n * decorator will store original method in variable and wrap it with custom one\n * component has to implement CssClassBuilder interface\n * more info abour method decorator: https://www.typescriptlang.org/docs/handbook/decorators.html#method-decorators\n * @param target a component\n * @param propertyKey name of the method\n * @param descriptor method\n */\nexport function applyCssClass(target: any, propertyKey: string, descriptor: PropertyDescriptor): void {\n const originalMethod = descriptor.value;\n descriptor.value = function (): string[] {\n const self = this as unknown as CssClassBuilder & { _uuidv4?: string };\n if (!self.elementRef) {\n throw ELEMENT_REF_EXCEPTION;\n }\n\n const classListToApply: string[] = sanitize(originalMethod.apply(this));\n\n const elementRef = self.elementRef.apply(this);\n\n const nativeElement: HTMLElement & { _classMap?: any } = elementRef?.nativeElement;\n\n if (nativeElement) {\n if (!nativeElement._classMap) {\n nativeElement._classMap = {};\n }\n\n if (!self._uuidv4) {\n self._uuidv4 = uuidv4();\n }\n\n const currentClassList = Array.from(nativeElement.classList);\n\n const previousClassListToApply = nativeElement._classMap[self._uuidv4] || [];\n\n const newClassList = createComponentClassList(currentClassList, previousClassListToApply, classListToApply);\n\n nativeElement.className = newClassList.join(' ');\n\n nativeElement._classMap[self._uuidv4] = classListToApply;\n }\n\n return classListToApply;\n };\n}\n\n/** Filter list to unique items */\nfunction unique(value: unknown, index: number, list: unknown[]): boolean {\n return list.indexOf(value) === index;\n}\n\n/** Splits merged classes, removes falsy elements and leaves only unique items */\nfunction sanitize(array: string[]): string[] {\n return array\n .filter(Boolean)\n .reduce((classList: string[], cssClass: string) => [...classList, ...cssClass.split(/\\s+/)], [])\n .filter(unique);\n}\n\nfunction firstCommonElementIndex(array1: string[], array2: string[]): number {\n return array1.findIndex((element) => array2.indexOf(element) !== -1);\n}\n\n/** Create set of component classes based on previous set and new set */\nfunction createComponentClassList(\n allClasses: string[],\n previousComponentClassList: string[],\n newComponentClassList: string[]\n): string[] {\n allClasses = allClasses.slice();\n let index = firstCommonElementIndex(allClasses, previousComponentClassList);\n index = index === -1 ? 0 : index;\n allClasses.splice(index, previousComponentClassList.length, ...newComponentClassList);\n\n return allClasses;\n}\n","import { ELEMENT_REF_EXCEPTION, HasElementRef } from '../interfaces/has-element-ref.interface';\nimport { Hash } from '../datatypes/hash.datatype';\n\n/**\n * Method decorator to apply css styles to a component through native element\n * decorator will store original method in variable and wrap it with custom one\n * component has to implement HasElementRef or CssStyleBuilder interface\n * more info abour method decorator: https://www.typescriptlang.org/docs/handbook/decorators.html#method-decorators\n * @param target a component\n * @param propertyKey name of the method\n * @param descriptor method\n */\nexport function applyCssStyle(target: any, propertyKey: string, descriptor: PropertyDescriptor): void {\n const originalMethod = descriptor.value;\n descriptor.value = function (): Hash<number | string> {\n const self = this as unknown as HasElementRef;\n if (!self.elementRef) {\n throw ELEMENT_REF_EXCEPTION;\n }\n\n const _styles: Hash<number | string> = originalMethod.apply(this);\n if (self.elementRef()) {\n const htmlElement = self.elementRef().nativeElement as HTMLElement;\n Object.keys(_styles).forEach((key) => {\n htmlElement.style[key] = _styles[key];\n });\n }\n\n return _styles;\n };\n}\n","import { Injector, Type, InjectionToken, InjectFlags } from '@angular/core';\n\nexport class DynamicComponentInjector implements Injector {\n /** @hidden */\n constructor(private _parentInjector: Injector, private _additionalTokens: WeakMap<any, any>) {}\n\n /**\n *\n * @param token\n * @param notFoundValue\n * @param flags\n */\n get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags): T;\n\n /**\n *\n * @param token\n * @param notFoundValue\n */\n get(token: any, notFoundValue?: any): void;\n\n /** @hidden */\n get(token: any, notFoundValue?: any, _flags?: any): void {\n const value = this._additionalTokens.get(token);\n\n if (value) {\n return value;\n }\n\n return this._parentInjector.get<any>(token, notFoundValue);\n }\n}\n","import {\n ComponentFactoryResolver,\n Injectable,\n ApplicationRef,\n Injector,\n EmbeddedViewRef,\n ComponentRef,\n TemplateRef,\n Type,\n Compiler,\n NgModuleFactory,\n ViewContainerRef\n} from '@angular/core';\nimport { DynamicComponentInjector } from './dynamic-component-injector';\nimport { DynamicComponentConfig } from './dynamic-component-config';\n\n/**\n * Service used to dynamically generate components like dialogs/alerts/notifications\n */\n@Injectable()\nexport class DynamicComponentService {\n /** @hidden */\n constructor(\n private readonly _componentFactoryResolver: ComponentFactoryResolver,\n private readonly _applicationRef: ApplicationRef,\n private readonly _injector: Injector,\n private readonly _compiler: Compiler\n ) {}\n\n /**\n * Function that creates dynamic component and injects services to allow communication between component and outside\n * @param content Type of the component content\n * @param componentType Type of component that should be rendered.\n * @param config Configuration that will be passed to the component.\n * @param inject enables to provide preconfigured component injector and dependencies\n */\n public createDynamicComponent<T>(\n content: TemplateRef<any> | Type<any> | string | Record<string, any>,\n componentType: Type<T>,\n config: DynamicComponentConfig,\n inject: { injector?: Injector; services?: any[] } = {}\n ): ComponentRef<T> {\n const { injector, services } = inject;\n const dependenciesMap = this._createDependencyMap(services);\n const componentRef = this._createComponent<T>(componentType, dependenciesMap, injector);\n this._passExternalContent<T>(componentRef, content);\n this._attachToContainer<T>(componentRef, config);\n\n return componentRef;\n }\n\n /**\n * Function that creates dynamic component and injects services to allow communication between component and outside\n * @param content Type of the component content\n * @param moduleType Type of module that should be compiled.\n * @param componentType Type of component that should be rendered.\n * @param containerRef The container that the dynamic component is appended to.\n * @param injector enables to provide preconfigured component injector\n */\n async createDynamicModule<M, C>(\n content: TemplateRef<any> | Type<any> | string | Record<string, any>,\n moduleType: Type<M> | NgModuleFactory<M>,\n componentType: Type<C>,\n containerRef: ViewContainerRef,\n injector?: Injector\n ): Promise<ComponentRef<C>> {\n const moduleFactory =\n moduleType instanceof NgModuleFactory ? moduleType : await this._compiler.compileModuleAsync<M>(moduleType);\n const moduleRef = moduleFactory.create(injector || this._injector);\n const componentFactory = moduleRef.componentFactoryResolver.resolveComponentFactory(componentType);\n\n containerRef.clear();\n\n const componentRef: ComponentRef<C> = containerRef.createComponent(componentFactory);\n\n this._passExternalContent<C>(componentRef, content);\n\n return componentRef;\n }\n\n /** Function that destroys dynamic component */\n public destroyComponent(componentRef: ComponentRef<any>): void {\n this._applicationRef.detachView(componentRef.hostView);\n componentRef.destroy();\n }\n\n /** @hidden */\n private _createDependencyMap(services: any[] = []): WeakMap<any, any> {\n const dependencyMap = new WeakMap();\n services.filter((service) => !!service).forEach((service) => dependencyMap.set(service.constructor, service));\n return dependencyMap;\n }\n\n /** @hidden */\n private _attachToContainer<V>(componentRef: ComponentRef<V>, config: DynamicComponentConfig): void {\n const configObj = Object.assign({}, config);\n const componentEl = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n if (configObj.container !== 'body') {\n configObj.container?.appendChild(componentEl);\n } else {\n document.body.appendChild(componentEl);\n }\n }\n\n /** @hidden */\n private _createComponent<V>(\n componentType: Type<V>,\n dependenciesMap: WeakMap<any, any>,\n injector?: Injector\n ): ComponentRef<V> {\n const dynamicComponentInjector = new DynamicComponentInjector(injector || this._injector, dependenciesMap);\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(componentType);\n const componentRef = componentFactory.create(dynamicComponentInjector);\n this._applicationRef.attachView(componentRef.hostView);\n return componentRef;\n }\n\n /** @hidden */\n private _passExternalContent<V>(\n componentRef: ComponentRef<V>,\n content: TemplateRef<any> | Type<any> | string | Record<string, any>\n ): void {\n // TODO: this approach should be revisited, it can cause issues, that is really hard to debug\n if (Object.prototype.hasOwnProperty.call(componentRef.instance, 'childContent')) {\n (componentRef.instance as any).childContent = content;\n }\n }\n}\n","import {\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n TemplateRef,\n Type,\n ViewContainerRef\n} from '@angular/core';\n\nexport abstract class DynamicComponentContainer<T = TemplateRef<any> | Type<any>> {\n /** @hidden */\n abstract containerRef: ViewContainerRef;\n\n /** @hidden */\n childContent: T | undefined = undefined;\n\n /** @hidden */\n protected _componentRef: ComponentRef<any> | EmbeddedViewRef<any>;\n\n /** @hidden */\n constructor(protected _elementRef: ElementRef, protected _componentFactoryResolver: ComponentFactoryResolver) {}\n\n /** @hidden Load received content */\n protected abstract _loadContent(): void;\n\n /** @hidden Load received content as component */\n protected _createFromComponent(content: Type<any>): void {\n this.containerRef.clear();\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(content);\n this._componentRef = this.containerRef.createComponent(componentFactory);\n }\n\n /** @hidden Load received content as embedded view */\n protected _createFromTemplate(content: TemplateRef<any>, context: any): void {\n this.containerRef.clear();\n this._componentRef = this.containerRef.createEmbeddedView(content, context);\n }\n}\n","import { Nullable } from '@fundamental-ngx/core/shared';\n\n/**\n * Utility type, that allows to track and select ranges of elements while using multi-selection.\n *\n * @usage\n * Imagine we have a simple list of checkboxes:\n * ```html\n * <input\n * #checkboxInput\n * *ngFor=\"let o of options; let idx = index\"\n * type=\"checkbox\"\n * [checked]=\"selectionModel.checked(o)\"\n * (click)=\"toggle(idx, $event)\"\n * >\n * ```\n * With the given layout the logic should be as follows:\n * ```typescript\n * export class YourComponent {\n * options = ['a', 'b', 'c'];\n * readonly selectionModel = new SelectionModel(true);\n *\n * private readonly _rangeSelector = new RangeSelector();\n *\n *\n * toggle(idx: number, event: PointerEvent): void {\n * // getting the toggled value of the checkbox\n * const toggledSelection = event.target.value;\n *\n * // registering the selection of current checkbox\n * this._rangeSelector.onRangeElementToggled(idx, event);\n *\n * // Apply value to each element in range.\n * // If checkbox was toggled without shift pressed or without previously selected one,\n * // this method will select only it.\n * this._rangeSelector.applyValueToEachInRange(idx => {\n * if (toggledSelection) {\n * this.selectionModel.select(options[idx]);\n * } else {\n * this.selectionModel.deselect(options[idx]);\n * }\n * });\n * }\n * }\n * ```\n */\nexport class RangeSelector {\n /** @hidden */\n private _previousSelectedIndex: number | null = null;\n /** @hidden */\n private _state: RangeSelectionState | null;\n\n /**\n * Last registered selection state (either multiple or single).\n * Is updated on each `onRangeElementClicked` invokation. Will be `null` initially or once `reset()` is called.\n */\n get lastRangeSelectionState(): RangeSelectionState | null {\n return this._state ? { ...this._state } : null;\n }\n\n /**\n * The method that should be used to register each checkbox toggle.\n * Accepts two arguments: `index` and `event`. If none provided, will reset existing state.\n * Otherwise will register current index as last checked.\n *\n * If toggling was done with \"shift\" pressed and there's a previously registered index, will register a range selection.\n * At the same time if checkbox was toggled without shift pressed or without previously selected one, this method will select only it.\n *\n * After calling this method it's recommended to use `applyValueToEachInRange` to actually toggle each checkbox in range.\n *\n * See usage example on this class itself.\n */\n onRangeElementToggled(index?: number, event?: KeyboardEvent | MouseEvent | TouchEvent): RangeSelectionState | null {\n if (\n this._isNonNegativeInteger(this._previousSelectedIndex) &&\n this._isNonNegativeInteger(index) &&\n event?.shiftKey\n ) {\n this._state = {\n isRangeSelection: true,\n from: Math.min(this._previousSelectedIndex, index),\n to: Math.max(this._previousSelectedIndex, index)\n };\n this._previousSelectedIndex = index;\n } else if (this._isNonNegativeInteger(index)) {\n this._state = { isRangeSelection: false, from: index, to: index };\n this._previousSelectedIndex = index;\n } else {\n this.reset();\n }\n\n return this.lastRangeSelectionState;\n }\n\n /**\n * Allows to apply selection to each item in selection range.\n * Accepts a function to apply selection to each item by registered index.\n *\n * See usage example on this class itself.\n */\n applyValueToEachInRange(selectionMethod: (index: number) => void): void {\n const state = this.lastRangeSelectionState;\n\n if (this._isNonNegativeInteger(state?.from) && this._isNonNegativeInteger(state?.to)) {\n for (let index = state!.from; index <= state!.to; index++) {\n selectionMethod(index);\n }\n }\n }\n\n /** Resets selection state. Useful when the list of selectable items is changed (e.g. by filtering, sorting, page change) */\n reset(): void {\n this._state = null;\n this._previousSelectedIndex = null;\n }\n\n /** @hidden */\n private _isNonNegativeInteger(num: Nullable<number>): num is number {\n return Number.isInteger(num) && num! >= 0;\n }\n}\n\nexport interface RangeSelectionState {\n isRangeSelection: boolean;\n from: number;\n to: number;\n}\n","export const MOBILE_CONFIG_ERROR = `Missing configuration object for mobile version of the component.\n Consult the documentation on how to provide MobileModeConfiguration object for this component.\n`;\n\nexport const THEME_SWITCHER_ROUTER_MISSING_ERROR = `You need to import RouterModule to enable theme settings via the url.`;\n\nexport const INVALID_DATE_ERROR = 'Invalid Date';\n","/**\n * Instead of `/\\p{L}/u` because of it's not working in IE11 and Edge\n * - https://github.com/Microsoft/ChakraCore/issues/2969\n * */\n// eslint-disable-next-line max-len\nexport const LETTERS_UNICODE_RANGE = `[A-Za-z\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]`;\n// eslint-disable-next-line max-len\nexport const ANY_LANGUAGE_LETTERS_REGEX = new RegExp(LETTERS_UNICODE_RANGE, 'g');\n// eslint-disable-next-line max-len\nexport const ANY_LANGUAGE_LETTERS_GROUP_REGEX = new RegExp(`(${LETTERS_UNICODE_RANGE})+`, 'g');\n","/**\n * Polyfill for `/\\p{Nd}/u` to work in IE11 and Edge\n */\n// eslint-disable-next-line max-len\nexport const DECIMAL_NUMBER_UNICODE_RANGE = `[0-9\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0DE6-\\u0DEF\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uA9F0-\\uA9F9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19]`;\nexport const DECIMAL_NUMBER_UNICODE_REGEX = new RegExp(DECIMAL_NUMBER_UNICODE_RANGE, 'g');\nexport const DECIMAL_NUMBER_UNICODE_GROUP_REGEX = new RegExp(`(${DECIMAL_NUMBER_UNICODE_RANGE})+`, 'g');\n","export type OverflowPriority = 'always' | 'never' | 'low' | 'high' | 'disappear';\n\nexport const OVERFLOW_PRIORITY_SCORE: Map<OverflowPriority, number> = new Map([\n ['always', 0],\n ['disappear', 1],\n ['low', 2],\n ['high', 3],\n ['never', 4]\n]);\n","import { Injectable, isDevMode, Optional } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\nimport { THEME_SWITCHER_ROUTER_MISSING_ERROR } from '../consts';\n\nexport interface ThemeServiceOutput {\n themeUrl: SafeResourceUrl;\n customThemeUrl: SafeResourceUrl;\n}\n\nexport interface Theme {\n id: string;\n name: string;\n description?: string;\n}\n\n@Injectable()\n/**\n * @deprecated\n * Service providing theme switcher functionality.\n * Deprecated since 0.35.0 in favor of ThemingService from ThemingModule\n */\nexport class ThemesService {\n /** Available themes */\n themes: Theme[] = [\n {\n id: 'sap_horizon',\n name: 'Morning Horizon (Light)'\n },\n {\n id: 'sap_horizon_dark',\n name: 'Evening Horizon (Dark)'\n },\n {\n id: 'sap_horizon_hcb',\n name: 'Horizon High Contrast Black',\n description: 'Optimized contrast and accessibiliwty for extremely bright environments'\n },\n {\n id: 'sap_horizon_hcw',\n name: 'Horizon High Contrast White Horizon',\n description: 'Optimized contrast and accessibility for extremely dark environments'\n },\n {\n id: 'sap_fiori_3',\n name: 'Quartz Light',\n description: 'Use in regular office environment'\n },\n {\n id: 'sap_fiori_3_dark',\n name: 'Quartz Dark',\n description: 'Use in dimmed environments'\n },\n {\n id: 'sap_fiori_3_hcb',\n name: 'Quartz High Contrast Black',\n description: 'Optimized contrast and accessibility for extremely bright environments'\n },\n {\n id: 'sap_fiori_3_hcw',\n name: 'Quartz High Contrast White',\n description: 'Optimized contrast and accessibility for extremely dark environments'\n },\n {\n id: 'sap_fiori_3_light_dark',\n name: 'Quartz Auto (Depending on the OS Settings)'\n }\n ];\n\n /** Subject triggered, when the theming is changed by URL parameter */\n readonly onThemeQueryParamChange: Subject<ThemeServiceOutput> = new Subject<ThemeServiceOutput>();\n\n /** @hidden **/\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n constructor(@Optional() private _activatedRoute: ActivatedRoute, private _sanitizer: DomSanitizer) {}\n\n /**\n * Set theme according to additional URL parameter.\n * This parameter can be changed in function argument.\n * By default it's `theme`.\n **/\n setThemeByRoute(themeParamName?: string): void {\n const paramName = themeParamName || 'theme';\n\n if (!this._activatedRoute) {\n throw new Error(THEME_SWITCHER_ROUTER_MISSING_ERROR);\n }\n\n this._activatedRoute.queryParams\n .pipe(\n takeUntil(this._onDestroy$),\n filter((param) => param && param[paramName])\n )\n .subscribe((param) => this._propagateThemes(param[paramName]));\n\n const nativeTheme = this._getNativeParameterByName(paramName);\n if (nativeTheme) {\n this._propagateThemes(nativeTheme);\n }\n }\n\n /** Method to get once theme object directly from url. */\n getThemesFromURL(param?: string): ThemeServiceOutput | undefined {\n const paramName = param || 'theme';\n\n const nativeTheme = this._getNativeParameterByName(paramName);\n if (!nativeTheme && isDevMode()) {\n console.warn('There is no theme param set named: ' + param);\n return;\n }\n\n return {\n themeUrl: this.setTheme(nativeTheme),\n customThemeUrl: this.setCustomTheme(nativeTheme)\n };\n }\n\n /** Assign css file corresponding to chosen theme from @sap-theming **/\n setTheme(theme: string): SafeResourceUrl {\n return this._sanitizer.bypassSecurityTrustResourceUrl('assets/theming-base/' + theme + '/css_variables.css');\n }\n\n /** Assign css file corresponding to chosen theme fundamental-styles **/\n setCustomTheme(theme: string): SafeResourceUrl {\n return this._sanitizer.bypassSecurityTrustResourceUrl('assets/fundamental-styles-theming/' + theme + '.css');\n }\n\n /** @hidden */\n private _getNativeParameterByName(paramName: string): string {\n paramName = paramName.replace(/[[\\]]/g, '\\\\$&');\n const regex = new RegExp('[?&]' + paramName + '(=([^&#]*)|&|#|$)'),\n results = regex.exec(window.location.href);\n if (!results || !results[2]) {\n return '';\n }\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\n }\n\n /** @hidden */\n private _propagateThemes(theme: string): void {\n this.onThemeQueryParamChange.next({\n themeUrl: this.setTheme(theme),\n customThemeUrl: this.setCustomTheme(theme)\n });\n }\n}\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { QueryList } from '@angular/core';\nimport { KeyboardSupportItemInterface } from '../../interfaces/keyboard-support-item.interface';\nimport { merge, Subject } from 'rxjs';\nimport { filter, startWith, takeUntil, tap } from 'rxjs/operators';\nimport { KeyUtil } from '../../functions';\nimport { DOWN_ARROW, hasModifierKey, TAB, UP_ARROW } from '@angular/cdk/keycodes';\n\nexport type FocusEscapeDirection = 'up' | 'down';\n\nexport class KeyboardSupportService<T> {\n /** Subject that is thrown, when focus escapes the list */\n focusEscapeList = new Subject<FocusEscapeDirection>();\n\n /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** An RxJS Subject that will kill the data stream upon queryList changes (for unsubscribing) */\n private readonly _onRefresh$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n private _keyManager: FocusKeyManager<T>;\n\n /** @hidden */\n get keyManager(): FocusKeyManager<T> {\n return this._keyManager;\n }\n\n /** @hidden */\n private _itemList: QueryList<KeyboardSupportItemInterface & T>;\n\n /** @hidden\n * allow tab key navigation. default is true.\n */\n private _tabKeyNavigation = true;\n\n /** @hidden */\n setKeyboardService(\n queryList: QueryList<KeyboardSupportItemInterface & T>,\n wrap?: boolean,\n tabKeyNavigation = true\n ): void {\n this._itemList = queryList;\n this._tabKeyNavigation = tabKeyNavigation;\n this._keyManager = new FocusKeyManager(queryList).withWrap(wrap).withHomeAndEnd();\n queryList.changes\n .pipe(takeUntil(this._onDestroy$), startWith(0))\n .subscribe(() => this._refreshEscapeLogic(queryList));\n }\n\n /** @hidden */\n onKeyDown(event: KeyboardEvent): void {\n this._keyManager.onKeydown(event);\n if (KeyUtil.isKeyCode(event, TAB)) {\n if (KeyUtil.isKeyCode(event, TAB) && this._tabKeyNavigation) {\n event.preventDefault();\n hasModifierKey(event, 'shiftKey')\n ? this.keyManager.setPreviousItemActive()\n : this.keyManager.setNextItemActive();\n }\n }\n }\n\n /** Destroys KeyboardSupportService dependencies */\n onDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /** @hidden */\n private _refreshEscapeLogic(queryList: QueryList<KeyboardSupportItemInterface & T>): void {\n const createEscapeListener = (\n listItem: KeyboardSupportItemInterface & T,\n onKeyCode: number,\n escapeDirection: FocusEscapeDirection\n ): void => {\n listItem.keyDown\n .pipe(\n takeUntil(unsubscribe$),\n filter((event) => KeyUtil.isKeyCode(event, onKeyCode)),\n tap((event) => event.preventDefault())\n )\n .subscribe(() => this.focusEscapeList.next(escapeDirection));\n };\n\n /** Finish all of the streams, form before */\n this._onRefresh$.next();\n\n const unsubscribe$ = merge(this._onRefresh$, this._onDestroy$);\n\n if (queryList.length) {\n createEscapeListener(queryList.last, DOWN_ARROW, 'down');\n createEscapeListener(queryList.first, UP_ARROW, 'up');\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { createFocusTrap, FocusTrap, Options } from 'focus-trap';\nimport { uuidv4 } from '../functions/uuidv4-generator';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FocusTrapService {\n /** @hidden */\n private _focusTrapInstances: Map<any, FocusTrap> = new Map();\n\n /**\n * Creates focus trap instance for defined element\n * @param element Container for which to create focus trap\n * @param userOptions Focus-trap specific configuration\n * @returns {string} Unique ID of focus trap instance\n */\n createFocusTrap(\n element: string | HTMLElement | SVGElement | (string | HTMLElement | SVGElement)[],\n userOptions?: Options\n ): string {\n const uid = uuidv4();\n\n const trap = createFocusTrap(element, userOptions);\n\n this._focusTrapInstances.set(uid, trap);\n\n this.activateFocusTrap(uid);\n\n return uid;\n }\n\n /**\n * Activates focus trap for defined ID\n * @param id Unique ID of focus trap instance\n */\n activateFocusTrap(id: string): void {\n if (!this._focusTrapExists(id)) {\n return;\n }\n\n const trap = this.getFocusTrapInstance(id);\n\n trap?.activate();\n }\n\n /**\n * Deactivates focus trap for defined ID\n * @param id Unique ID of focus trap instance\n */\n deactivateFocusTrap(id: string): void {\n if (!this._focusTrapExists(id)) {\n return;\n }\n\n const trap = this.getFocusTrapInstance(id);\n\n trap?.deactivate();\n\n this._focusTrapInstances.delete(id);\n }\n\n /**\n * Pauses current focus trap.\n */\n pauseCurrentFocusTrap(): void {\n if (this._focusTrapInstances.size === 0) {\n return;\n }\n\n const trapItem = this._getLastTrapedItem();\n\n trapItem?.pause();\n }\n\n /**\n * Unpauses current focus trap.\n */\n unpauseCurrentFocusTrap(): void {\n if (this._focusTrapInstances.size === 0) {\n return;\n }\n\n const trapItem = this._getLastTrapedItem();\n\n trapItem?.unpause();\n }\n\n /**\n * Get focus trap instance by ID.\n * @param id ID of the instance.\n * @returns Focus trap instance if exists.\n */\n getFocusTrapInstance(id: string): FocusTrap | undefined {\n return this._focusTrapInstances.get(id);\n }\n\n /** @hidden */\n private _getLastTrapedItem(): FocusTrap | undefined {\n const lastItem = Array.from(this._focusTrapInstances).pop();\n\n return lastItem ? lastItem[1] : undefined;\n }\n\n /** @hidden */\n private _focusTrapExists(id: string): boolean {\n return this._focusTrapInstances.has(id);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RtlService } from './services/rtl.service';\nimport { ThemesService } from './services/themes.service';\nimport { KeyboardSupportService } from './services/keyboard-support/keyboard-support.service';\nimport { FocusTrapService } from './services/focus-trap.service';\n\n@NgModule({\n imports: [CommonModule],\n exports: [],\n providers: [RtlService, ThemesService, KeyboardSupportService, FocusTrapService]\n})\nexport class UtilsModule {}\n","import { Injectable, isDevMode } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { distinctUntilChanged, map, startWith } from 'rxjs/operators';\nimport { isCompactDensity } from '../functions/is-compact-density';\nimport { ContentDensity } from '../interfaces/content-density';\n\nexport const DEFAULT_CONTENT_DENSITY: ContentDensity = 'cozy';\n\n/**\n * Service taking care of ContentDensity\n */\n@Injectable()\nexport class ContentDensityService {\n /** Content Density BehaviourSubject */\n readonly contentDensity = new BehaviorSubject(DEFAULT_CONTENT_DENSITY);\n\n /** @hidden */\n constructor() {\n if (isDevMode()) {\n console.warn(\n `[Deprecated] ContentDensityService is deprecated and will be removed in the next major version.\n Please use ContentDensityControllerService instead, or use the ContentDensityModule forRoot method.`\n );\n }\n }\n\n /** @hidden */\n get _contentDensityListener(): Observable<ContentDensity> {\n return this.contentDensity.pipe(distinctUntilChanged(), startWith(this.contentDensity.getValue()));\n }\n\n /** @hidden */\n get _isCompactDensity(): Observable<boolean> {\n return this._contentDensityListener.pipe(map((density) => isCompactDensity(density)));\n }\n}\n","import { ElementRef, Injectable, OnDestroy } from '@angular/core';\nimport { Observable, Observer, Subject } from 'rxjs';\nimport { coerceElement } from '@angular/cdk/coercion';\n\ninterface ObservedElement {\n observer: ResizeObserver | null;\n readonly stream: Subject<ResizeObserverEntry[]>;\n count: number;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ResizeObserverFactory {\n /** Factory to create ResizeObserver if it's present in browser. */\n create(callback: ResizeObserverCallback): ResizeObserver | null {\n return typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(callback);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ResizeObserverService implements OnDestroy {\n /** @hidden */\n private _observedElements = new Map<Element, ObservedElement>();\n\n /** @hidden */\n constructor(private _resizeObserverFactory: ResizeObserverFactory) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._observedElements.forEach((_, element) => this._cleanupObserver(element));\n }\n\n /** Observe the given element and emit whenever its size changes. */\n observe(elementOrRef: Element | ElementRef<Element>): Observable<ResizeObserverEntry[]> {\n const element = coerceElement(elementOrRef);\n\n return new Observable((observer: Observer<ResizeObserverEntry[]>) => {\n const stream = this._observeElement(element);\n const subscription = stream.subscribe(observer);\n\n return () => {\n subscription.unsubscribe();\n this._unobserveElement(element);\n };\n });\n }\n\n /**\n * Observes the given element by using the existing MutationObserver if available, or creating a\n * new one if not.\n */\n private _observeElement(element: Element): Subject<ResizeObserverEntry[]> {\n if (!this._observedElements.has(element)) {\n const stream = new Subject<ResizeObserverEntry[]>();\n const observer = this._resizeObserverFactory.create((mutations) => stream.next(mutations));\n if (observer) {\n observer.observe(element);\n }\n this._observedElements.set(element, { observer, stream, count: 1 });\n } else {\n this._observedElements.get(element)!.count++;\n }\n return this._observedElements.get(element)!.stream;\n }\n\n /**\n * Un-observes the given element and cleans up the underlying MutationObserver if nobody else is\n * observing this element.\n */\n private _unobserveElement(element: Element): void {\n if (this._observedElements.has(element)) {\n this._observedElements.get(element)!.count--;\n if (!this._observedElements.get(element)!.count) {\n this._cleanupObserver(element);\n }\n }\n }\n\n /** Clean up the underlying MutationObserver for the specified element. */\n private _cleanupObserver(element: Element): void {\n if (this._observedElements.has(element)) {\n const { observer, stream } = this._observedElements.get(element)!;\n if (observer) {\n observer.disconnect();\n }\n stream.complete();\n this._observedElements.delete(element);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nclass MockStorage {\n readonly length: number;\n\n // eslint-disable-next-line\n key(index: number): any {}\n\n clear(): void {}\n\n // eslint-disable-next-line\n getItem(key: string): any {}\n\n // eslint-disable-next-line\n removeItem(key: string): void {}\n\n // eslint-disable-next-line\n setItem(key: string, value: string): void {}\n}\n\n@Injectable({ providedIn: 'root' })\nexport class LocalStorageService {\n /** @hidden */\n private _storage: Storage;\n\n /** @hidden */\n constructor() {\n typeof localStorage !== 'undefined' ? (this._storage = localStorage) : (this._storage = new MockStorage());\n }\n\n /** Get item from local storage. */\n get(key: string): any {\n const value = this._storage.getItem(key);\n if (value) {\n return JSON.parse(value);\n }\n return null;\n }\n\n /** Set item in local storage. */\n set(key: string, value: any): void {\n this._storage.setItem(key, JSON.stringify(value));\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\n\n@Injectable()\nexport class DestroyedService extends ReplaySubject<void> implements OnDestroy {\n /** @hidden */\n constructor() {\n super(1);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.next();\n this.complete();\n }\n}\n","import { ElementRef, OnChanges, OnInit, Input, Directive } from '@angular/core';\n\n/*\n This abstract class allows the user to set their own custom styles on a Fundamental Library for Angular directive, in addition to the\n styles the library needs to add itself.\n When library styles were added through the directive's host: {'[class]'} property, any styles the user added would be\n overwritten. By extending this class, we instead add library styles to the user's classList rather than replace them.\n */\n\n/** @hidden */\n@Directive()\nexport abstract class AbstractFdNgxClass implements OnInit, OnChanges {\n /** @hidden */\n private _elementRef: ElementRef;\n\n /** @hidden */\n @Input() class: string; // user's custom classes\n\n /*\n each directive that extends this class will implement this function and populate it with one or more calls to\n the '_addClassToElement' function, passing the style names to be added with each call\n */\n /** @hidden */\n abstract _setProperties(): void;\n\n /** @hidden */\n _setClassToElement(className: string): void {\n (this._elementRef.nativeElement as HTMLElement).classList.value = `${className} ${this.class}`;\n }\n\n /** @hidden */\n _clearElementClass(): void {\n (this._elementRef.nativeElement as HTMLElement).classList.value = '';\n }\n\n /** @hidden */\n _addClassToElement(className: string): void {\n (this._elementRef.nativeElement as HTMLElement).classList.add(...className.split(' '));\n }\n\n /** @hidden */\n _addStyleToElement(attribute, value): void {\n (this._elementRef.nativeElement as HTMLElement).style[attribute] = value;\n }\n\n /** @hidden */\n protected constructor(elementRef: ElementRef) {\n this._elementRef = elementRef;\n this._setProperties();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n const classList = (this._elementRef.nativeElement as HTMLElement).classList;\n while (classList.length > 0) {\n classList.remove(classList.item(0)!);\n }\n if (this.class) {\n this._addClassToElement(this.class);\n }\n this._setProperties();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._setProperties();\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const LIST_ITEM_COMPONENT = new InjectionToken<string[]>('ListItemComponent');\n\nexport interface ListItemInterface {\n selected: boolean;\n}\n","/** Apply a mixin to a class. */\nexport function applyMixins(derivedCtor: any, baseCtors: any[]): any {\n baseCtors.forEach((baseCtor) => {\n Object.getOwnPropertyNames(baseCtor.prototype).forEach((name) => {\n if (name !== 'constructor') {\n derivedCtor.prototype[name] = baseCtor.prototype[name];\n }\n });\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.RtlService","i1.TabbableElementService","i1","i1.FocusKeyManagerListDirective","i1.DndKeyboardGroupDirective","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-utils.mjs","sources":["../../../../libs/core/src/lib/utils/directives/ignore-click-on-selection/tokens.ts","../../../../libs/core/src/lib/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.ts","../../../../libs/core/src/lib/utils/directives/ignore-click-on-selection/ignore-click-on-selection.module.ts","../../../../libs/core/src/lib/utils/directives/template/template.directive.ts","../../../../libs/core/src/lib/utils/directives/template/template.module.ts","../../../../libs/core/src/lib/utils/functions/key-util.ts","../../../../libs/core/src/lib/utils/functions/element-size.ts","../../../../libs/core/src/lib/utils/functions/uuidv4-generator.ts","../../../../libs/core/src/lib/utils/functions/parser-file-size.ts","../../../../libs/core/src/lib/utils/functions/scroll.ts","../../../../libs/core/src/lib/utils/functions/random-color-accent.ts","../../../../libs/core/src/lib/utils/functions/resize-observable.ts","../../../../libs/core/src/lib/utils/functions/intersection-observable.ts","../../../../libs/core/src/lib/utils/functions/is-compact-density.ts","../../../../libs/core/src/lib/utils/tokens/module-deprecations.token.ts","../../../../libs/core/src/lib/utils/functions/module-deprecations-provider.ts","../../../../libs/core/src/lib/utils/functions/consumer-provider-factory.ts","../../../../libs/core/src/lib/utils/functions/get-document-font-size.ts","../../../../libs/core/src/lib/utils/directives/only-digits/only-digits.directive.ts","../../../../libs/core/src/lib/utils/directives/only-digits/only-digits.module.ts","../../../../libs/core/src/lib/utils/directives/resize/resize-handle.directive.ts","../../../../libs/core/src/lib/utils/services/rtl.service.ts","../../../../libs/core/src/lib/utils/directives/resize/resize.directive.ts","../../../../libs/core/src/lib/utils/directives/resize/resize.module.ts","../../../../libs/core/src/lib/utils/services/tabbable-element.service.ts","../../../../libs/core/src/lib/utils/directives/initial-focus/initial-focus.directive.ts","../../../../libs/core/src/lib/utils/directives/line-clamp/line-clamp.directive.ts","../../../../libs/core/src/lib/utils/directives/line-clamp/line-clamp.module.ts","../../../../libs/core/src/lib/utils/directives/initial-focus/initial-focus.module.ts","../../../../libs/core/src/lib/utils/directives/auto-complete/auto-complete.directive.ts","../../../../libs/core/src/lib/utils/directives/auto-complete/auto-complete.module.ts","../../../../libs/core/src/lib/utils/directives/overflow-list/overflow-list-item.directive.ts","../../../../libs/core/src/lib/utils/directives/overflow-list/overflow-list.directive.ts","../../../../libs/core/src/lib/utils/directives/overflow-list/overflow-list.module.ts","../../../../libs/core/src/lib/utils/directives/truncate/truncate.directive.ts","../../../../libs/core/src/lib/utils/directives/truncate/truncate.module.ts","../../../../libs/core/src/lib/utils/directives/focus-key-manager/focus-key-manager.tokens.ts","../../../../libs/core/src/lib/utils/directives/focus-key-manager/focus-key-manager-list.directive.ts","../../../../libs/core/src/lib/utils/directives/focus-key-manager/focus-key-manager-item.directive.ts","../../../../libs/core/src/lib/utils/directives/focus-key-manager/focus-key-manager-helpers.module.ts","../../../../libs/core/src/lib/utils/pipes/displayFn.pipe.ts","../../../../libs/core/src/lib/utils/pipes/search-highlight.pipe.ts","../../../../libs/core/src/lib/utils/pipes/two-digits.pipe.ts","../../../../libs/core/src/lib/utils/pipes/safe.pipe.ts","../../../../libs/core/src/lib/utils/pipes/value-by-path.pipe.ts","../../../../libs/core/src/lib/utils/pipes/is-compact.pipe.ts","../../../../libs/core/src/lib/utils/pipes/truncate.pipe.ts","../../../../libs/core/src/lib/utils/pipes/pipe.module.ts","../../../../libs/core/src/lib/utils/drag-and-drop/tokens.ts","../../../../libs/core/src/lib/utils/drag-and-drop/dnd-list/dnd-list.directive.ts","../../../../libs/core/src/lib/utils/drag-and-drop/dnd-item/dnd-item.directive.ts","../../../../libs/core/src/lib/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.ts","../../../../libs/core/src/lib/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.ts","../../../../libs/core/src/lib/utils/drag-and-drop/drag-and-drop.module.ts","../../../../libs/core/src/lib/utils/interfaces/has-element-ref.interface.ts","../../../../libs/core/src/lib/utils/decorators/apply-css-class.decorator.ts","../../../../libs/core/src/lib/utils/decorators/apply-css-style.decorator.ts","../../../../libs/core/src/lib/utils/dynamic-component/dynamic-component-injector.ts","../../../../libs/core/src/lib/utils/dynamic-component/dynamic-component.service.ts","../../../../libs/core/src/lib/utils/dynamic-component/dynamic-component-container.ts","../../../../libs/core/src/lib/utils/helpers/range-selector.ts","../../../../libs/core/src/lib/utils/consts/error-messages.ts","../../../../libs/core/src/lib/utils/consts/unicode-letters.regex.ts","../../../../libs/core/src/lib/utils/consts/unicode-numbers.regex.ts","../../../../libs/core/src/lib/utils/consts/overflow-priority-score.ts","../../../../libs/core/src/lib/utils/services/themes.service.ts","../../../../libs/core/src/lib/utils/services/keyboard-support/keyboard-support.service.ts","../../../../libs/core/src/lib/utils/services/focus-trap.service.ts","../../../../libs/core/src/lib/utils/utils.module.ts","../../../../libs/core/src/lib/utils/services/content-density.service.ts","../../../../libs/core/src/lib/utils/services/resize-observer.service.ts","../../../../libs/core/src/lib/utils/services/local-storage.service.ts","../../../../libs/core/src/lib/utils/services/destroyed.service.ts","../../../../libs/core/src/lib/utils/abstract-fd-ngx-class.ts","../../../../libs/core/src/lib/utils/list-item/list-item-utils.ts","../../../../libs/core/src/lib/utils/mixins/apply-mixin.ts","../../../../libs/core/src/lib/utils/fundamental-ngx-core-utils.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const IgnoreClickOnSelectionDirectiveToken = new InjectionToken('Ignore click on selection directive');\n","import { Directive, ElementRef, HostListener, Inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { IgnoreClickOnSelectionDirectiveToken } from './tokens';\n\n/**\n * Directive will stop propagation and prevent default of click, if selected area is coming from\n * directive's host element. This gives ability to not cancel all clicks on element, just the ones\n * which include selection\n */\n@Directive({\n selector: '[fdIgnoreClickOnSelection]',\n providers: [\n {\n provide: IgnoreClickOnSelectionDirectiveToken,\n useExisting: IgnoreClickOnSelectionDirective\n }\n ]\n})\nexport class IgnoreClickOnSelectionDirective {\n /** @hidden */\n constructor(@Inject(DOCUMENT) private document: Document, private _elementRef: ElementRef<HTMLElement>) {}\n\n /** Host click listener. Checks for selection existence and if finds one, checks anchor */\n @HostListener('click', ['$event'])\n clicked($event: MouseEvent): void {\n const selection = this.document.getSelection();\n if (selection?.toString()) {\n if (\n selection.anchorNode &&\n (this._elementRef.nativeElement.isSameNode(selection.anchorNode) ||\n this._elementRef.nativeElement.isSameNode(selection.anchorNode.parentElement))\n ) {\n $event.stopPropagation();\n $event.preventDefault();\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IgnoreClickOnSelectionDirective } from './ignore-click-on-selection.directive';\n\n@NgModule({\n declarations: [IgnoreClickOnSelectionDirective],\n imports: [CommonModule],\n exports: [IgnoreClickOnSelectionDirective]\n})\nexport class IgnoreClickOnSelectionModule {}\n","import { Directive, Input, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[fdTemplate]'\n})\nexport class TemplateDirective {\n /** Name of the template */\n @Input('fdTemplate')\n name: string;\n\n /** @hidden */\n constructor(public templateRef: TemplateRef<any>) {}\n\n /** @hidden */\n getName(): string {\n return this.name;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TemplateDirective } from './template.directive';\n\n@NgModule({\n declarations: [TemplateDirective],\n exports: [TemplateDirective]\n})\nexport class TemplateModule {}\n","import { isDevMode } from '@angular/core';\nimport {\n A,\n ALT,\n BACKSPACE,\n C,\n CONTROL,\n DASH,\n DELETE,\n DOWN_ARROW,\n END,\n ENTER,\n ESCAPE,\n HOME,\n LEFT_ARROW,\n META,\n NUMPAD_MINUS,\n PAGE_DOWN,\n PAGE_UP,\n RIGHT_ARROW,\n SHIFT,\n SPACE,\n TAB,\n UP_ARROW,\n V,\n X\n} from '@angular/cdk/keycodes';\n\n/** Map of keyCodes and their corresponding \"key\" values */\nconst keyMap: Map<number, string[]> = new Map([\n [RIGHT_ARROW, ['ArrowRight', 'Right']],\n [DOWN_ARROW, ['ArrowDown', 'Down']],\n [LEFT_ARROW, ['ArrowLeft', 'Left']],\n [UP_ARROW, ['ArrowUp', 'Up']],\n [SPACE, ['Space', 'Spacebar', ' ']],\n [ESCAPE, ['Escape', 'Esc']],\n [DELETE, ['Delete', 'Del']],\n [ENTER, ['Enter']],\n [TAB, ['Tab']],\n [HOME, ['Home']],\n [END, ['End']],\n [ALT, ['Alt']],\n [CONTROL, ['Ctrl', 'Control', 'Meta']],\n [META, ['Meta']],\n [SHIFT, ['Shift']],\n [BACKSPACE, ['Backspace']],\n [A, ['KeyA']],\n [C, ['KeyC']],\n [V, ['KeyV']],\n [X, ['KeyX']],\n [PAGE_UP, ['PageUp']],\n [PAGE_DOWN, ['PageDown']],\n [DASH, ['-']],\n [NUMPAD_MINUS, ['-']]\n]);\n\nexport class KeyUtil {\n /**\n * Function used to unify key identification across different browsers using KeyCodes\n *\n * @param event - KeyboardEvent\n * @param keyCode - event.key name matching W3C specification / (ASSCI char. codes)\n * */\n static isKeyCode(event: KeyboardEvent, keyCode: number | number[]): boolean {\n if (Array.isArray(keyCode)) {\n return keyCode.some((key) => this.isKeyCode(event, key));\n }\n\n if (event && keyMap.get(keyCode)) {\n return keyMap.get(keyCode)?.some((alias) => alias === event.key) || keyCode === event.keyCode;\n }\n\n if (isDevMode()) {\n throw new Error(\n `Invalid function arguments. Check if \"event\" is a KeyboardEvent or \"key\" is defined in keyMap`\n );\n }\n\n return false;\n }\n\n /**\n * Function used to unify key identification across different browsers\n *\n * @param event - KeyboardEvent\n * @param keyType - Type of key\n * */\n static isKeyType(event: KeyboardEvent, keyType: 'alphabetical' | 'numeric' | 'control'): boolean {\n if (event && keyType) {\n switch (keyType) {\n case 'numeric':\n return event.code\n ? event.code.toLowerCase().includes('digit')\n : (event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105);\n case 'alphabetical':\n return event.code\n ? event.code.toLowerCase().includes('key')\n : event.keyCode >= 65 && event.keyCode <= 90;\n // some service commands as alt, ctr, insert, print, f4 etc. All except letters, numbers and symbols\n case 'control':\n return event.keyCode < 48 || (event.keyCode >= 112 && event.keyCode <= 123);\n }\n }\n\n if (isDevMode()) {\n throw new Error(`Invalid function arguments.`);\n }\n\n return false;\n }\n}\n","import { ElementRef } from '@angular/core';\n\nexport const pxToNum = (pixels: string): number => Number(pixels.replace('px', '')) || 0;\n\nexport const toNativeElement = (element: HTMLElement | ElementRef): HTMLElement =>\n element instanceof ElementRef ? element.nativeElement : element;\n\n/** Return elements capacity (width subtract by element padding)\n * @param element - HTMLelement or element reference\n * */\nexport function getElementCapacity(element: HTMLElement | ElementRef): number {\n const _element = toNativeElement(element);\n const computedStyle = window.getComputedStyle(_element);\n\n return pxToNum(computedStyle.width) - pxToNum(computedStyle.paddingLeft) - pxToNum(computedStyle.paddingRight);\n}\n\n/** Return elements width\n * @param element - HTMLelement or element reference\n * @param withMargin - weather to add element margins to width\n * */\nexport function getElementWidth(element: HTMLElement | ElementRef, withMargin?: boolean): number {\n const _element = toNativeElement(element);\n const computedStyle = getComputedStyle(_element);\n\n return withMargin\n ? pxToNum(computedStyle.width) + pxToNum(computedStyle.marginLeft) + pxToNum(computedStyle.marginRight)\n : pxToNum(computedStyle.width);\n}\n","/** Generate a UUID v4 */\nexport function uuidv4(): string {\n const modifier = 16;\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n // eslint-disable-next-line no-bitwise\n const r = (Math.random() * modifier) | 0,\n // eslint-disable-next-line no-bitwise\n v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(modifier);\n });\n}\n","const fileSizeMap = new Map([\n ['KB', 1024],\n ['MB', 1048576],\n ['GB', 1073741824],\n ['TB', 1099511627776]\n]);\n\n/** Parse file size to bytes */\nexport function parserFileSize(fileSize: string): number {\n if (fileSize === '') {\n return 0;\n }\n\n const sizes = fileSize.match(/[\\d.]+|\\D+/g);\n if (sizes && sizes.length > 1) {\n const size = Number(sizes[0].replace(/ +/g, ''));\n const unit = sizes[1].replace(/ +/g, '').toUpperCase();\n\n if (isNaN(size)) {\n throw new Error('FileSizeError - Invalid File size please check.');\n } else if (unit === 'B' || unit === 'BYTE' || unit === 'BYTES') {\n return size;\n } else if (unit === 'KB') {\n return fileSizeMap.get(unit)! * size;\n } else if (unit === 'MB') {\n return fileSizeMap.get(unit)! * size;\n } else if (unit === 'GB') {\n return fileSizeMap.get(unit)! * size;\n } else if (unit === 'TB') {\n return fileSizeMap.get(unit)! * size;\n } else {\n throw new Error('FileSizeError - Invalid File size please check.');\n }\n } else {\n if (isNaN(Number(sizes))) {\n throw new Error('FileSizeError - Invalid File size please check.');\n }\n\n return Number(sizes);\n }\n}\n","/**\n * Function used to scroll specified element by some distance\n *\n * @param containerElement - Container element scrolled\n * @param distanceToScroll - Distance of scroll in px\n * */\nexport function scrollTop(containerElement: Element, distanceToScroll: number): void {\n // Check if scrollTo method is supported by current browser\n if (containerElement.scrollTo && containerElement.scrollTo instanceof Function) {\n containerElement.scrollTo({\n top: distanceToScroll,\n behavior: 'smooth'\n });\n } else {\n containerElement.scrollTop = distanceToScroll;\n }\n}\n","import { ColorAccent } from '../datatypes';\n\n/** Get random number from 1 to 10. */\nexport function getRandomColorAccent(): ColorAccent {\n return (Math.floor(Math.random() * 10) + 1) as ColorAccent;\n}\n","import { fromEvent, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/**\n * RxJS wrapper for ResizeObserver class.\n * @param target HTML element to spy on.\n * @param options @see {ResizeObserverOptions}\n * @returns {Observable} with observer entries.\n */\nexport function resizeObservable(target: Element, options?: ResizeObserverOptions): Observable<ResizeObserverEntry[]> {\n if ('ResizeObserver' in window) {\n return new Observable((subscriber) => {\n let animationFrame: number;\n const ro = new ResizeObserver((entries) => {\n animationFrame = window.requestAnimationFrame(() => {\n subscriber.next(entries);\n });\n });\n\n ro.observe(target, options);\n\n return function unsubscribe(): void {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n ro.unobserve(target);\n ro.disconnect();\n };\n });\n } else {\n // If current browser does not support resizeObserver, rely on window resize and return empty array of items.\n return fromEvent(window, 'resize').pipe(map(() => []));\n }\n}\n","import { NEVER, Observable } from 'rxjs';\n\n/**\n * RxJS wrapper for IntersectionObserver class.\n * @param target HTML element to spy on.\n * @param options @see {IntersectionObserverInit}\n * @returns {Observable} with observer entries.\n */\nexport function intersectionObservable(\n target: Element,\n options?: IntersectionObserverInit\n): Observable<IntersectionObserverEntry[]> {\n if ('IntersectionObserver' in window) {\n return new Observable((subscriber) => {\n const io = new IntersectionObserver((entries) => {\n subscriber.next(entries);\n }, options);\n\n io.observe(target);\n\n return function unsubscribe(): void {\n io.disconnect();\n };\n });\n } else {\n // If browser doesn't support IntersectionObserver API never emit a value\n // since we're not supporting IE11 and any other browser should have it.\n return NEVER;\n }\n}\n","import { ContentDensity } from '../interfaces/content-density';\n\n/** Determines whether provided value is valid content density */\nexport function isValidContentDensity(size: any): size is ContentDensity {\n return size === 'cozy' || size === 'compact' || size === 'condensed';\n}\n\n/**\n * Determines if \"compact\" styles should be applied based on provided content density\n */\nexport function isCompactDensity(size: ContentDensity): boolean {\n return isValidContentDensity(size) && size !== 'cozy';\n}\n","import { InjectionToken } from '@angular/core';\nimport { ModuleDeprecation } from '../interfaces/module-deprecation.interface';\n\nexport const ModuleDeprecations = new InjectionToken<ModuleDeprecation>('ModuleDeprecations');\n","import { FactorySansProvider, Provider } from '@angular/core';\nimport { ModuleDeprecations } from '../tokens/module-deprecations.token';\n\n/** Module deprecations provider */\nexport function moduleDeprecationsProvider(classRef: any): Provider {\n return {\n provide: ModuleDeprecations,\n useClass: classRef,\n multi: true\n };\n}\n\n/** Module deprecations provider factory */\nexport function moduleDeprecationsFactory(factory: FactorySansProvider): Provider {\n return {\n provide: ModuleDeprecations,\n ...factory,\n multi: true\n };\n}\n","import { INJECTOR, Injector, Provider } from '@angular/core';\n\n/**\n * Creates provider for ConsumerClass\n */\nexport function consumerProviderFactory<T = any>(\n ConsumerClass: new (injector: Injector, additionalConfig: Record<any, any> | undefined) => T,\n providedConfiguration?: Record<any, any>\n): Provider {\n return {\n provide: ConsumerClass,\n useFactory: (injector: Injector) => new ConsumerClass(injector, providedConfiguration),\n deps: [INJECTOR]\n };\n}\n","/** Get document font size in pixels. */\nexport function getDocumentFontSize(): number {\n return document?.documentElement ? parseFloat(getComputedStyle(document.documentElement).fontSize) : 16;\n}\n","import {\n A,\n BACKSPACE,\n C,\n DASH,\n DELETE,\n END,\n ENTER,\n ESCAPE,\n HOME,\n LEFT_ARROW,\n NUMPAD_MINUS,\n RIGHT_ARROW,\n TAB,\n V,\n X\n} from '@angular/cdk/keycodes';\nimport { Directive, ElementRef, HostListener, Input } from '@angular/core';\nimport { KeyUtil } from '../../functions';\n\n@Directive({\n selector: '[fdOnlyDigits], [fd-only-digits]'\n})\nexport class OnlyDigitsDirective {\n /** Allow using decimal */\n @Input() decimal = false;\n /** Define decimal separator\n * Default: .(dot)\n */\n @Input() decimalSeparator = '.';\n\n /** @hidden */\n private _inputElement: HTMLInputElement;\n /** @hidden */\n private _hasDecimalPoint = false;\n\n /** @hidden */\n constructor(private readonly _el: ElementRef) {\n this._inputElement = this._el.nativeElement;\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n onKeyDown(e: KeyboardEvent): void {\n if (\n // Allow: Delete, Backspace, Tab, Escape, Enter, End, Home, Arrow Left, Arrow Right\n KeyUtil.isKeyCode(e, [DELETE, BACKSPACE, TAB, ESCAPE, ENTER, END, HOME, LEFT_ARROW, RIGHT_ARROW]) ||\n // Allow: Ctrl+(A/C/V/X) and Cmd+(A/C/V/X) (Mac)\n (KeyUtil.isKeyCode(e, [A, C, V, X]) && (e.ctrlKey || e.metaKey))\n ) {\n return; // let it happen, don't do anything\n }\n\n if (KeyUtil.isKeyCode(e, [DASH, NUMPAD_MINUS])) {\n const newValue = this._forecastValue(e.key);\n\n if (this._inputElement.value[0] === '-' || newValue[0] !== '-') {\n e.preventDefault();\n\n return; // has DASH point\n } else {\n return; // Allow: only one DASH point\n }\n }\n\n if (this.decimal && e.key === this.decimalSeparator) {\n const newValue = this._forecastValue(e.key);\n if (newValue.split(this.decimalSeparator).length > 2) {\n // has two or more decimal points\n e.preventDefault();\n return;\n } else {\n this._hasDecimalPoint = newValue.indexOf(this.decimalSeparator) > -1;\n return; // Allow: only one decimal point\n }\n }\n\n // Ensure that it is a number and stop the keypress\n if (e.key === ' ' || isNaN(Number(e.key))) {\n e.preventDefault();\n return;\n }\n }\n\n /** @hidden */\n @HostListener('paste', ['$event'])\n onPaste(event: any): void {\n if (window['clipboardData']) {\n // Browser is IE\n this._pasteData(window['clipboardData'].getData('text'));\n } else if (event.clipboardData && event.clipboardData.getData) {\n // Other browsers\n this._pasteData(event.clipboardData.getData('text/plain'));\n }\n\n event.preventDefault();\n }\n\n /** @hidden */\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent): void {\n const textData = event.dataTransfer?.getData('text') ?? '';\n this._inputElement.focus();\n this._pasteData(textData);\n\n event.preventDefault();\n }\n\n /** @hidden */\n private _pasteData(pastedContent: string): void {\n const sanitizedContent = this._sanitizeInput(pastedContent);\n const pasted = document.execCommand('insertText', false, sanitizedContent);\n if (!pasted) {\n if (this._inputElement.setRangeText) {\n const { selectionStart: start, selectionEnd: end } = this._inputElement;\n this._inputElement.setRangeText(sanitizedContent, start ?? 0, end ?? 0, 'end');\n // Angular's Reactive Form relies on \"input\" event, but on Firefox, the setRangeText method doesn't trigger it\n // so we have to trigger it ourself.\n if (typeof window['InstallTrigger'] !== 'undefined') {\n this._inputElement.dispatchEvent(new Event('input', { cancelable: true }));\n }\n } else {\n // Browser does not support setRangeText, e.g. IE\n this._insertAtCursor(this._inputElement, sanitizedContent);\n }\n }\n\n if (this.decimal) {\n this._hasDecimalPoint = this._inputElement.value.indexOf(this.decimalSeparator) > -1;\n }\n }\n\n // The following 2 methods were added from the below article for browsers that do not support setRangeText\n // https://stackoverflow.com/questions/11076975/how-to-insert-text-into-the-textarea-at-the-current-cursor-position\n /** @hidden */\n private _insertAtCursor(myField: HTMLInputElement, myValue: string): void {\n const startPos = myField.selectionStart ?? 0;\n const endPos = myField.selectionEnd ?? 0;\n\n myField.value =\n myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);\n\n const pos = startPos + myValue.length;\n myField.focus();\n myField.setSelectionRange(pos, pos);\n\n this._triggerEvent(myField, 'input');\n }\n\n /** @hidden */\n private _triggerEvent(el: HTMLInputElement, type: string): void {\n if ('createEvent' in document) {\n // modern browsers, IE9+\n const e = document.createEvent('HTMLEvents');\n e.initEvent(type, false, true);\n el.dispatchEvent(e);\n }\n }\n // end stack overflow code\n\n /** @hidden */\n private _sanitizeInput(input: string): string {\n let result = '';\n if (this.decimal && this._isValidDecimal(input)) {\n const regex = new RegExp(`[^0-9${this.decimalSeparator}]`, 'g');\n result = input.replace(regex, '');\n } else {\n result = input.replace(/[^0-9]/g, '');\n }\n\n if (input[0] === '-') {\n result = `-${result}`;\n }\n\n const maxLength = this._inputElement.maxLength;\n if (maxLength > 0) {\n // the input element has maxLength limit\n const allowedLength = maxLength - this._inputElement.value.length;\n result = allowedLength > 0 ? result.substring(0, allowedLength) : '';\n }\n\n return result;\n }\n\n /** @hidden */\n private _isValidDecimal(string: string): boolean {\n if (!this._hasDecimalPoint) {\n return string.split(this.decimalSeparator).length <= 2;\n } else {\n // the input element already has a decimal separator\n const selectedText = this._getSelection;\n if (selectedText && selectedText.indexOf(this.decimalSeparator) > -1) {\n return string.split(this.decimalSeparator).length <= 2;\n } else {\n return string.indexOf(this.decimalSeparator) < 0;\n }\n }\n }\n\n /** @hidden */\n private get _getSelection(): string {\n const { selectionStart, selectionEnd } = this._inputElement;\n\n return this._inputElement.value.substring(selectionStart ?? 0, selectionEnd ?? 0);\n }\n\n /** @hidden */\n private _forecastValue(key: string): string {\n const { selectionStart, selectionEnd, value: oldValue } = this._inputElement;\n const selection = oldValue.substring(selectionStart ?? 0, selectionEnd ?? 0);\n\n return selection\n ? oldValue.replace(selection, key)\n : oldValue.substring(0, selectionStart ?? 0) + key + oldValue.substring(selectionStart ?? 0);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { OnlyDigitsDirective } from './only-digits.directive';\n\n@NgModule({\n imports: [CommonModule],\n exports: [OnlyDigitsDirective],\n declarations: [OnlyDigitsDirective]\n})\nexport class OnlyDigitsModule {}\n","import { Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[fdResizeHandle], [fd-resize-handle]'\n})\nexport class ResizeHandleDirective {\n /** @hidden */\n constructor(public elementRef: ElementRef) {}\n}\n","import { BehaviorSubject } from 'rxjs';\nimport { Optional, Injectable, Inject, InjectionToken } from '@angular/core';\n\nconst DefaultRtlLanguages = ['ar', 'arc', 'dv', 'fa', 'ha', 'he', 'khw', 'ks', 'ku', 'ps', 'ur', 'yi'];\nexport const RTL_LANGUAGE = new InjectionToken<string[]>('RtlLanguage');\n\n@Injectable()\n/**\n * Service taking care of RTL trough behavior subject\n * language list is used to determine if rtl should be enabled at start\n * user can overwrite default languages by using injection token RtlLanguageToken\n */\nexport class RtlService {\n /** RTL value */\n rtl: BehaviorSubject<boolean>;\n\n /** @hidden */\n constructor(@Optional() @Inject(RTL_LANGUAGE) injectedRtlLanguages: string[]) {\n injectedRtlLanguages = injectedRtlLanguages || DefaultRtlLanguages;\n\n const filtered = injectedRtlLanguages.filter((language) => navigator.language.includes(language));\n\n this.rtl = new BehaviorSubject(filtered.length > 0);\n }\n}\n","import {\n AfterContentInit,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { ResizeHandleDirective } from './resize-handle.directive';\nimport { fromEvent, merge, Observable, Subscription } from 'rxjs';\nimport { filter, map, mapTo, pairwise, takeUntil, tap } from 'rxjs/operators';\nimport { RtlService } from '../../services/rtl.service';\n\ninterface ResizeMove {\n x: number;\n y: number;\n}\n\n@Directive({\n selector: '[fdResize], [fd-resize-handle]'\n})\nexport class ResizeDirective implements OnChanges, AfterContentInit, OnDestroy {\n /** Element limiting resizable container growth */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('fdResizeBoundary') resizeBoundary: string | HTMLElement = 'body';\n\n /** Whether resizable behaviour should be disabled */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('fdResizeDisabled') disabled = false;\n\n /** Localization of resize handle inside resizable container */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('fdResizeHandleLocation') resizeHandleLocation: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' =\n 'bottom-right';\n\n /** Resize handle reference - should be used if Resize handle is not a ContentChild of resizable container */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('fdResizeResizeHandleRef') set setResizeHandleReference(value: ResizeHandleDirective) {\n this.resizeHandleReference = value;\n }\n\n /** Emits event when resizing has tarted */\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onResizeStart = new EventEmitter<void>();\n\n /** Emits event when resizing has ended */\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onResizeEnd = new EventEmitter<void>();\n\n /** @hidden Reference to Resize handle */\n @ContentChild(ResizeHandleDirective, { static: false }) resizeHandleReference;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _isRtl = false;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef<HTMLElement>, @Optional() private _rtlService: RtlService) {}\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['disabled']) {\n if (changes['disabled'].previousValue === false && changes['disabled'].currentValue === true) {\n this._subscriptions.unsubscribe();\n } else if (changes['disabled'].previousValue === true && changes['disabled'].currentValue === false) {\n this._setResizeListeners();\n }\n }\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this._rtlService) {\n this._subscriptions.add(this._rtlService.rtl.subscribe((isRtl) => (this._isRtl = isRtl)));\n }\n\n if (!this.disabled) {\n this._setResizeListeners();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n private get _direction(): number {\n return this._isRtl ? -1 : 1;\n }\n\n /** @hidden Sets Resize listeners */\n private _setResizeListeners(): void {\n const resize = this._getResizeFunction();\n const moveOffset = this._getMoveOffsetFunction();\n const resizeContainer = this._findResizeContainer();\n if (!resizeContainer) {\n return;\n }\n const isBoundaryOverflow = this._getBoundaryOverflowFunction(resizeContainer);\n\n const mouseUpEvent$ = fromEvent<MouseEvent>(window, 'mouseup');\n const mouseMoveEvent$ = fromEvent<MouseEvent>(resizeContainer, 'mousemove');\n const mouseDownEvent$ = fromEvent<MouseEvent>(this.resizeHandleReference.elementRef.nativeElement, 'mousedown');\n\n const resizeActive$ = merge(mouseDownEvent$.pipe(mapTo(true)), mouseUpEvent$.pipe(mapTo(false)));\n const emitResizableEvents$ = this._getResizeEventsNotifiers(resizeActive$);\n const preventOtherPointerEvents$ = this._blockOtherPointerEvents(resizeActive$);\n\n const resizingCursorMovement$ = mouseMoveEvent$.pipe(\n pairwise(),\n map(([event1, event2]: [MouseEvent, MouseEvent]) => moveOffset(event1, event2)),\n filter((move) => isBoundaryOverflow(move))\n );\n\n const setupResizer = (): void => {\n resizingCursorMovement$.pipe(takeUntil(mouseUpEvent$)).subscribe((event) => resize(event));\n };\n const setupResize$ = resizeActive$.pipe(\n filter((isActive) => isActive),\n tap(() => setupResizer())\n );\n\n this._subscriptions.add(setupResize$.subscribe());\n this._subscriptions.add(emitResizableEvents$.subscribe());\n this._subscriptions.add(preventOtherPointerEvents$.subscribe());\n }\n\n /** @hidden Creates resize function*/\n private _getResizeFunction(): (move: ResizeMove) => void {\n return (move: ResizeMove) => {\n this._elementRef.nativeElement.style.width = `${this._elementRef.nativeElement.offsetWidth + move.x}px`;\n this._elementRef.nativeElement.style.height = `${this._elementRef.nativeElement.offsetHeight + move.y}px`;\n };\n }\n\n /** @hidden Creates move function */\n private _getMoveOffsetFunction(): (event1: MouseEvent, event2: MouseEvent) => ResizeMove {\n let verticalModifier: 1 | -1;\n let horizontalModifier: 1 | -1;\n\n switch (this.resizeHandleLocation) {\n case 'top-left':\n horizontalModifier = -1;\n verticalModifier = -1;\n break;\n case 'top-right':\n horizontalModifier = -1;\n verticalModifier = 1;\n break;\n case 'bottom-left':\n horizontalModifier = 1;\n verticalModifier = -1;\n break;\n case 'bottom-right':\n horizontalModifier = 1;\n verticalModifier = 1;\n break;\n }\n\n return (event1: MouseEvent, event2: MouseEvent) => {\n const x = (event2.screenX - event1.screenX) * this._direction;\n const y = event2.screenY - event1.screenY;\n\n return {\n x: x * verticalModifier,\n y: y * horizontalModifier\n };\n };\n }\n\n /** @hidden Return boundary container */\n private _findResizeContainer(): Element | null {\n let resizeContainer: Element | null;\n if (typeof this.resizeBoundary === 'string') {\n resizeContainer = this._elementRef.nativeElement.closest(this.resizeBoundary);\n } else {\n resizeContainer = this.resizeBoundary;\n }\n\n if (resizeContainer) {\n return resizeContainer;\n } else {\n console.warn(`fdResize - Cannot find \"${this.resizeBoundary}\", falling back to \"body\"`);\n return document.querySelector('body');\n }\n }\n\n /** @hidden Check whether resizable container is overflowing boundary container */\n private _getBoundaryOverflowFunction(resizeContainer: Element): (move: ResizeMove) => boolean {\n return (move: ResizeMove) => {\n const containerPosition = resizeContainer.getBoundingClientRect();\n const elementPosition = this._elementRef.nativeElement.getBoundingClientRect();\n\n switch (this.resizeHandleLocation) {\n case 'top-left':\n return (\n containerPosition.top < elementPosition.top + move.y &&\n containerPosition.left < elementPosition.left + move.x\n );\n case 'top-right':\n return (\n containerPosition.top < elementPosition.top + move.y &&\n containerPosition.right > elementPosition.right + move.x\n );\n case 'bottom-left':\n return (\n containerPosition.bottom > elementPosition.bottom + move.y &&\n containerPosition.left < elementPosition.left + move.x\n );\n case 'bottom-right':\n return (\n containerPosition.bottom > elementPosition.bottom + move.y &&\n containerPosition.right > elementPosition.right + move.x\n );\n }\n };\n }\n\n /** @hidden Create Observable notifying on resize actions */\n private _getResizeEventsNotifiers(trigger$: Observable<boolean>): Observable<any> {\n const emitResizableStart$ = trigger$.pipe(\n filter((isActive) => isActive),\n tap(() => this.onResizeStart.emit())\n );\n\n const emitResizableEnd$ = trigger$.pipe(\n filter((isActive) => !isActive),\n tap(() => this.onResizeEnd.emit())\n );\n\n return merge(emitResizableStart$, emitResizableEnd$);\n }\n\n /** @hidden Block resizable container pointer events when resizing */\n private _blockOtherPointerEvents(trigger$: Observable<boolean>): Observable<any> {\n return trigger$.pipe(\n map((isActive) => (isActive ? 'none' : 'auto')),\n tap((value) => (this._elementRef.nativeElement.style.pointerEvents = value))\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ResizeDirective } from './resize.directive';\nimport { ResizeHandleDirective } from './resize-handle.directive';\n\n@NgModule({\n imports: [CommonModule],\n exports: [ResizeDirective, ResizeHandleDirective],\n declarations: [ResizeDirective, ResizeHandleDirective]\n})\nexport class ResizeModule {}\n","import { InteractivityChecker } from '@angular/cdk/a11y';\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, Optional } from '@angular/core';\n\n@Injectable()\nexport class TabbableElementService {\n /** @hidden */\n constructor(\n private readonly _checker: InteractivityChecker,\n @Optional() @Inject(DOCUMENT) private readonly _document: Document | null\n ) {}\n\n /** Get the first tabbable element from a DOM subtree (inclusive). */\n getTabbableElement(root: HTMLElement, focusLastElement = false, skipSelf = false): HTMLElement | null {\n if (!skipSelf && this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n return root;\n }\n\n // Iterate in DOM order. Note that IE doesn't have `children` for SVG, so we fall\n // back to `childNodes` which includes text nodes, comments etc.\n const rootChildren = root.children || root.childNodes;\n\n const children = focusLastElement ? Array.from(rootChildren).reverse() : rootChildren;\n\n for (let i = 0; i < children.length; i++) {\n const tabbableChild =\n children[i].nodeType === this._document?.ELEMENT_NODE\n ? this.getTabbableElement(children[i] as HTMLElement, focusLastElement)\n : null;\n\n if (tabbableChild) {\n return tabbableChild;\n }\n }\n\n return null;\n }\n}\n","import { AfterViewInit, Directive, ElementRef, Input, NgZone } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport { TabbableElementService } from '../../services/tabbable-element.service';\n\n@Directive({\n selector: '[fdInitialFocus], [fd-initial-focus]',\n providers: [TabbableElementService]\n})\nexport class InitialFocusDirective implements AfterViewInit {\n /**\n * CSS selector of element that should be focused.\n */\n @Input('fd-initial-focus')\n focusableItem = '.fd-initial-focus-item';\n\n /**\n * Whether initial focus enabled for current element.\n */\n @Input()\n enabled = true;\n\n /**\n * Whether to focus last element in found array of elements.\n */\n @Input()\n focusLastElement = false;\n\n /** @hidden */\n constructor(\n private _elmRef: ElementRef<HTMLElement>,\n private _ngZone: NgZone,\n private readonly _tabbableService: TabbableElementService\n ) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._executeOnStable(() => this._focus());\n }\n\n /**\n * @hidden\n * Executes a function when the zone is stable.\n */\n private _executeOnStable(fn: () => any): void {\n if (this._ngZone.isStable) {\n fn();\n } else {\n this._ngZone.onStable.pipe(take(1)).subscribe(fn);\n }\n }\n\n /**\n * @hidden\n * Searches for appropriate focusable element\n */\n private _getFocusableElement(): HTMLElement | null {\n if (!this.focusableItem) {\n return this._tabbableService.getTabbableElement(this._elmRef.nativeElement, this.focusLastElement);\n }\n\n const autoFocusableItems = this._elmRef.nativeElement.querySelectorAll(\n this.focusableItem\n ) as NodeListOf<HTMLElement>;\n\n if (autoFocusableItems.length > 0) {\n return !this.focusLastElement ? autoFocusableItems[0] : autoFocusableItems[autoFocusableItems.length - 1];\n }\n\n // If no elements found, fallback to first tabbable element.\n return this._tabbableService.getTabbableElement(this._elmRef.nativeElement, this.focusLastElement);\n }\n\n /** @hidden */\n private _focus(): void {\n if (!this.enabled) {\n return;\n }\n this._getFocusableElement()?.focus();\n }\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n AfterViewInit,\n OnDestroy,\n OnChanges,\n Output,\n Renderer2,\n ChangeDetectorRef\n} from '@angular/core';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { Nullable } from '@fundamental-ngx/core/shared';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-lineclamp-target]',\n exportAs: 'fdLineClampTarget'\n})\nexport class LineClampTargetDirective implements OnChanges, AfterViewInit {\n /**\n * Target text for clamping\n */\n @Input()\n fdLineClampTargetText: string;\n\n /**\n * Event with target instance for clamping\n */\n @Output() update = new EventEmitter<LineClampTargetDirective>();\n\n /** @hidden */\n constructor(private readonly _elementRef: ElementRef) {}\n\n /**\n * Native element of clamping target\n */\n get targetElement(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.update.emit(this);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.update.emit(this);\n }\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-lineclamp]',\n exportAs: 'fdLineClamp'\n})\nexport class LineClampDirective implements OnChanges, AfterViewInit, OnDestroy {\n /**\n * Count lines for clamping\n */\n @Input()\n set fdLineClampLines(value: Nullable<number>) {\n this._lineCount = coerceNumberProperty(value);\n }\n\n /**\n * Clamping state\n */\n @Input()\n fdLineclampState = false;\n\n /**\n * Event return count of lines from the target\n */\n @Output()\n lineCountUpdate = new EventEmitter<number>();\n\n /** @hidden */\n private _lineClampTarget: HTMLElement;\n /** @hidden */\n private _originalText: string;\n /** @hidden */\n private windowResize$: Subscription;\n /** @hidden */\n private _isNativeSupport = true;\n /** @hidden */\n private _lineCount: number;\n\n /** @hidden */\n /**\n * Root native element of clamping box\n */\n get rootElement(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n\n /** @hidden */\n constructor(\n private readonly _elementRef: ElementRef,\n private readonly _renderer: Renderer2,\n private readonly _cdRef: ChangeDetectorRef\n ) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._isNativeSupport = typeof this.rootElement.style.webkitLineClamp !== 'undefined';\n\n // need to use setTimeout to force recheck of parent elements\n setTimeout(() => {\n this._checkLineCount();\n });\n\n this.windowResize$ = fromEvent(window, 'resize')\n .pipe(distinctUntilChanged(), debounceTime(200))\n .subscribe({\n next: () => this._checkLineCount()\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n if (this.windowResize$) {\n this.windowResize$.unsubscribe();\n }\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.reset();\n this.refreshClamp();\n }\n\n /** @hidden */\n reset(): void {\n if (this._lineClampTarget && this._originalText) {\n this._lineClampTarget.textContent = this._originalText;\n }\n if (this._isNativeSupport) {\n this._resetNative();\n }\n }\n\n /** @hidden */\n refreshTarget(event: LineClampTargetDirective): void {\n this._lineClampTarget = event.targetElement;\n this._originalText = event.fdLineClampTargetText;\n this.reset();\n this.refreshClamp();\n }\n\n /** @hidden */\n refreshClamp(): void {\n if (this.fdLineclampState && this._lineCount) {\n this.native();\n if (!this._isNativeSupport) {\n this._truncate();\n }\n }\n }\n\n /** @hidden\n * Truncate text in the target box, if browser not support lineclamp style\n */\n private _truncate(): void {\n if (!this._lineClampTarget) {\n return;\n }\n const lineClampHeight = Math.ceil(this.getLineHeight() * this._lineCount);\n const ellipsisTextArray = this._originalText.split(' ');\n const ellipsisText = (): void => {\n if (this.rootElement.scrollHeight > lineClampHeight) {\n ellipsisTextArray.pop();\n this._lineClampTarget.textContent = ellipsisTextArray.join(' ') + '...';\n ellipsisText.call(this);\n }\n };\n ellipsisText();\n }\n\n /** @hidden\n * Get lineheight for rootelement, if browser not support lineclamp style\n */\n private getLineHeight(): number {\n const lineHeight = window.getComputedStyle(this.rootElement, null).getPropertyValue('line-height');\n if (lineHeight === 'normal') {\n return parseInt(window.getComputedStyle(this.rootElement, null).getPropertyValue('font-size'), 10) * 1.25;\n }\n\n return parseFloat(lineHeight);\n }\n\n /** @hidden\n * Setup native styles for lineclamp text\n */\n private native(): void {\n if (this._isNativeSupport) {\n this._renderer.setStyle(this.rootElement, 'display', '-webkit-box');\n this._renderer.setStyle(this.rootElement, 'overflow', 'hidden');\n this._renderer.setStyle(this.rootElement, 'text-overflow', 'ellipsis');\n this._renderer.setStyle(this.rootElement, '-webkit-box-orient', 'vertical');\n this._renderer.setStyle(this.rootElement, '-webkit-line-clamp', `${this._lineCount}`);\n }\n }\n\n /** @hidden\n * Reset native styles for lineclamp text\n */\n private _resetNative(): void {\n if (this._isNativeSupport) {\n this._renderer.setStyle(this.rootElement, 'display', '');\n this._renderer.setStyle(this.rootElement, 'overflow', '');\n this._renderer.setStyle(this.rootElement, 'text-overflow', '');\n this._renderer.setStyle(this.rootElement, '-webkit-box-orient', '');\n this._renderer.setStyle(this.rootElement, '-webkit-line-clamp', '');\n }\n }\n\n /** @hidden */\n private _checkLineCount(): void {\n if (!this.rootElement) {\n return;\n }\n const style = window.getComputedStyle(this.rootElement, null);\n\n this.reset();\n\n const fontSize = parseInt(style.getPropertyValue('font-size'), 10);\n const boxSizing = style.getPropertyValue('box-sizing');\n let height = parseInt(style.getPropertyValue('height'), 10);\n let lineHeight = parseFloat(style.getPropertyValue('line-height'));\n if (isNaN(lineHeight)) {\n lineHeight = fontSize * 1.2;\n }\n if (boxSizing === 'border-box') {\n const padding_top = parseInt(style.getPropertyValue('padding-top'), 10);\n const padding_bottom = parseInt(style.getPropertyValue('padding-bottom'), 10);\n const border_top = parseInt(style.getPropertyValue('border-top-width'), 10);\n const border_bottom = parseInt(style.getPropertyValue('border-bottom-width'), 10);\n height = height - padding_top - padding_bottom - border_top - border_bottom;\n }\n this.refreshClamp();\n this.lineCountUpdate.emit(Math.ceil(height / lineHeight));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { LineClampTargetDirective, LineClampDirective } from './line-clamp.directive';\n\n@NgModule({\n imports: [CommonModule],\n exports: [LineClampTargetDirective, LineClampDirective],\n declarations: [LineClampTargetDirective, LineClampDirective]\n})\nexport class LineClampModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InitialFocusDirective } from './initial-focus.directive';\n\n@NgModule({\n imports: [CommonModule],\n exports: [InitialFocusDirective],\n declarations: [InitialFocusDirective]\n})\nexport class InitialFocusModule {}\n","import { Directive, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { BACKSPACE, CONTROL, DELETE, ENTER, ESCAPE, LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\nimport { KeyUtil } from '../../functions/key-util';\n\nexport interface AutoCompleteEvent {\n term: string;\n forceClose: boolean;\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-auto-complete]'\n})\nexport class AutoCompleteDirective {\n /** Values that will fill missing text in the input. */\n @Input()\n options: any[];\n\n /**\n * Input text, that is taken from ngModel of formControl,\n * there has to be difference between native input value and model value\n */\n @Input()\n inputText: string;\n\n /** Whether the auto complete directive should be enabled */\n @Input()\n enable = true;\n\n /** Display function. Accepts an object of the same type as the\n * items passed to dropdownValues as argument, and outputs a string.\n * An arrow function can be used to access the *this* keyword in the calling component.\n * See search input examples for details. */\n @Input()\n displayFn = this._defaultDisplay;\n\n /** Event thrown, when the auto ahead text is accepted */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n readonly onComplete: EventEmitter<AutoCompleteEvent> = new EventEmitter<AutoCompleteEvent>();\n\n /** @hidden */\n private readonly _completeKeys: number[] = [ENTER];\n\n /** @hidden */\n private readonly _fillKeys: number[] = [LEFT_ARROW, RIGHT_ARROW];\n\n /** @hidden */\n private readonly _stopKeys: number[] = [BACKSPACE, DELETE, ESCAPE];\n\n /** @hidden */\n private oldValue: string;\n\n /** @hidden */\n private lastKeyUpEvent: KeyboardEvent;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n @HostListener('keyup', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent): void {\n if (this.enable) {\n if (KeyUtil.isKeyCode(event, this._stopKeys)) {\n this._elementRef.nativeElement.value = this.inputText;\n } else if (KeyUtil.isKeyCode(event, this._completeKeys)) {\n this._sendCompleteEvent(true);\n this._moveIndicatorToLastCharacter();\n } else if (KeyUtil.isKeyCode(event, this._fillKeys)) {\n this._sendCompleteEvent(false);\n } else if (!this._isControlKey(event) && this.inputText) {\n /** Prevention from triggering typeahead, when having crtl/cmd + keys */\n if (!this._triggerTypeAhead()) {\n return;\n }\n\n this.oldValue = this.inputText;\n\n const item = this.options.find((option) =>\n this.displayFn(option).toLocaleLowerCase().startsWith(this.inputText.toLocaleLowerCase())\n );\n\n if (item) {\n this._typeahead(this.displayFn(item));\n }\n }\n }\n this.lastKeyUpEvent = event;\n }\n\n /** @hidden */\n private _typeahead(displayedValue: string): void {\n this._elementRef.nativeElement.value = displayedValue;\n const selectionStartIndex = this.inputText.length;\n this._elementRef.nativeElement.setSelectionRange(selectionStartIndex, displayedValue.length);\n }\n\n /** @hidden */\n private _isControlKey(event: KeyboardEvent): boolean {\n return KeyUtil.isKeyCode(event, CONTROL) || event.ctrlKey;\n }\n\n /** @hidden */\n private _defaultDisplay(value: any): string {\n return value;\n }\n\n /** @hidden */\n private _triggerTypeAhead(): boolean {\n if (\n this.lastKeyUpEvent &&\n KeyUtil.isKeyCode(this.lastKeyUpEvent, CONTROL) &&\n this.inputText === this.oldValue\n ) {\n return false;\n } else {\n return true;\n }\n }\n\n /** @hidden */\n private _sendCompleteEvent(forceClose: boolean): void {\n this.onComplete.emit({\n term: this._elementRef.nativeElement.value,\n forceClose\n });\n }\n\n /** @hidden */\n private _moveIndicatorToLastCharacter(): void {\n const inputTextLength = this.inputText?.length ?? 0;\n this._elementRef.nativeElement.setSelectionRange(inputTextLength, inputTextLength);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AutoCompleteDirective } from './auto-complete.directive';\n\n@NgModule({\n imports: [CommonModule],\n exports: [AutoCompleteDirective],\n declarations: [AutoCompleteDirective]\n})\nexport class AutoCompleteModule {}\n","import { Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[fdOverflowListItem], [fd-overflow-list-item]'\n})\nexport class OverflowListItemDirective {\n /** @hidden */\n constructor(public el: ElementRef) {}\n}\n","import {\n AfterViewInit,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n Output,\n QueryList\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { OverflowListItemDirective } from './overflow-list-item.directive';\nimport { ViewportRuler } from '@angular/cdk/overlay';\n\n@Directive({\n selector: '[fdOverflowList], [fd-overflow-list]'\n})\nexport class OverflowListDirective implements AfterViewInit, OnDestroy {\n /**\n * @description Offset to calculate correct position\n */\n @Input()\n overflowOffset = 0;\n\n /**\n * @description Flag representing rtl mode\n */\n @Input()\n isRtl: boolean;\n\n /**\n * @description value of display property of existed list items\n */\n @Input()\n itemCssBlockValue = 'flex';\n\n /**\n * @description Emits when changed amount of extra items\n */\n @Output()\n overflowChanged: EventEmitter<number> = new EventEmitter<number>();\n\n /**\n * @description References to QueryList of OverflowListItemDirective\n */\n @ContentChildren(OverflowListItemDirective)\n overflowItems: QueryList<OverflowListItemDirective>;\n\n /** @hidden */\n private _onDestroy$ = new Subject<void>();\n\n /** @hidden */\n constructor(private _el: ElementRef, private _viewportRuler: ViewportRuler, private _ngZone: NgZone) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._viewportRuler\n .change(50)\n .pipe(takeUntil(this._onDestroy$))\n // ViewportRuler invoked out of zone, that is why I need to invoke function in zone\n .subscribe(() => this._ngZone.run(() => this._calculateAmountOfOverflowedItems()));\n\n this._calculateAmountOfOverflowedItems();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /**\n * @description Get amount of extra items in current list\n * */\n getAmountOfExtraItems(): number {\n const elements = this.overflowItems.toArray().map((item) => item.el.nativeElement);\n const computed = getComputedStyle(this._el.nativeElement);\n const contentWidth =\n this._el.nativeElement.clientWidth - parseFloat(computed.paddingLeft) - parseFloat(computed.paddingRight);\n return this._checkWidthWithOffset(elements, contentWidth);\n }\n\n /** @hidden */\n private _calculateAmountOfOverflowedItems(): void {\n const extra = this.getAmountOfExtraItems();\n this.overflowChanged.emit(extra);\n }\n\n /**\n * @hidden\n * @param arrItems\n * @param containerWidth\n * @param checkWithOffset\n * */\n private _checkWidthWithOffset(\n arrItems: HTMLElement[],\n containerWidth: number,\n checkWithOffset: boolean = false\n ): number {\n let itemsTotalWidth = 0;\n const parentWidth = checkWithOffset ? containerWidth - this.overflowOffset : containerWidth;\n\n arrItems.forEach((item) => {\n item.hidden = true;\n item.style.display = this.itemCssBlockValue;\n });\n\n for (let i = 0; i < arrItems.length; i++) {\n const item = arrItems[i];\n\n itemsTotalWidth += this.isRtl\n ? containerWidth - item.offsetLeft - itemsTotalWidth\n : item.offsetWidth + item.offsetLeft - itemsTotalWidth;\n\n if (parentWidth < itemsTotalWidth) {\n this._clearTempStyles(arrItems);\n return checkWithOffset\n ? arrItems.length - i\n : this._checkWidthWithOffset(arrItems, containerWidth, true);\n }\n }\n\n this._clearTempStyles(arrItems);\n return 0;\n }\n\n /**\n * @param arrItems\n * @hidden\n * */\n private _clearTempStyles(arrItems: HTMLElement[]): void {\n arrItems.forEach((item) => {\n item.hidden = false;\n item.style.removeProperty('display');\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { OverflowListDirective } from './overflow-list.directive';\nimport { OverflowListItemDirective } from './overflow-list-item.directive';\n\n@NgModule({\n declarations: [OverflowListDirective, OverflowListItemDirective],\n imports: [CommonModule],\n exports: [OverflowListDirective, OverflowListItemDirective]\n})\nexport class OverflowListModule {}\n","import { AfterViewInit, Directive, ElementRef, Input, OnChanges } from '@angular/core';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Nullable } from '@fundamental-ngx/core/shared';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-truncate]'\n})\nexport class TruncateDirective implements OnChanges, AfterViewInit {\n /**\n * Width in pixel for truncation of an element , by default\n */\n @Input()\n set fdTruncateWidth(value: Nullable<number>) {\n this._customWidthCount = coerceNumberProperty(value);\n }\n\n /**\n * Truncating state\n */\n @Input()\n fdTruncateState = false;\n\n /** @hidden */\n private _customWidthCount = 200;\n\n /** @hidden */\n private _truncateTarget: HTMLElement;\n\n /** @hidden\n * saves default style of element before truncating\n */\n private _defaultStyle: string;\n\n /** @hidden */\n private takeDefaultStyleOnce = true;\n\n /** @hidden\n * truncation style for truncating element\n */\n private _truncationStyle: string;\n\n /** @hidden */\n constructor(private readonly _elementRef: ElementRef) {}\n\n /**\n * Root native element\n */\n get rootElement(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n\n /**\n * Method saves default style of target element before first truncate.\n */\n setDefaultStyle(): void {\n if (this.takeDefaultStyleOnce) {\n this._defaultStyle = this._truncateTarget.style.cssText;\n this.takeDefaultStyleOnce = false;\n }\n }\n /** @hidden */\n ngAfterViewInit(): void {\n if (this.rootElement) {\n this._truncate();\n }\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this._truncate();\n }\n\n /** @hidden */\n private _truncate(): void {\n this._truncateTarget = this.rootElement;\n\n if (!this._truncateTarget) {\n return;\n }\n this.setDefaultStyle();\n this._truncationStyle = `${this._defaultStyle} max-width: ${this._customWidthCount}px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;`;\n this._truncateTarget.style.cssText = this.fdTruncateState ? this._truncationStyle : this._defaultStyle;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { TruncateDirective } from './truncate.directive';\n\n@NgModule({\n imports: [CommonModule],\n exports: [TruncateDirective],\n declarations: [TruncateDirective]\n})\nexport class TruncateModule {}\n","import { FocusableOption } from '@angular/cdk/a11y';\nimport { InjectionToken } from '@angular/core';\n\nexport const FOCUSABLE_ITEM = new InjectionToken<FocusableOption>('Focusable Option');\n","import { FocusableOption, FocusKeyManager } from '@angular/cdk/a11y';\nimport {\n AfterContentInit,\n ChangeDetectorRef,\n ContentChildren,\n Directive,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n QueryList,\n SimpleChanges\n} from '@angular/core';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\nimport { RtlService } from '../../services/rtl.service';\nimport { FOCUSABLE_ITEM } from './focus-key-manager.tokens';\n\n/** Directive to apply Angular Material FocusKeyManager to lists.\n * To be used with FocusKeyManagerItemDirective\n */\n@Directive({\n selector: `[fd-focus-key-manager-list], [fdFocusKeyManagerList]`\n})\nexport class FocusKeyManagerListDirective implements OnChanges, AfterContentInit, OnDestroy {\n /** Orientation for the FocusKeyManager */\n @Input()\n orientation: 'horizontal' | 'vertical';\n\n /** Skip predicate for the FocusKeyManager */\n @Input()\n skipPredicate: (item: Record<any, any> & FocusableOption) => boolean;\n\n /** @hidden */\n @ContentChildren(FOCUSABLE_ITEM)\n readonly _items: QueryList<FocusableOption>;\n\n /** @hidden */\n get focusKeyManager(): FocusKeyManager<FocusableOption> {\n return this._focusKeyManager;\n }\n\n /** @hidden */\n private _focusKeyManager: FocusKeyManager<FocusableOption>;\n\n /** @hidden */\n private readonly _onDestroy$ = new Subject<void>();\n\n /** @hidden */\n constructor(@Optional() private readonly _rtlService: RtlService, private readonly _cdr: ChangeDetectorRef) {}\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (!this._focusKeyManager) {\n return;\n }\n\n if ('orientation' in changes) {\n this._applyOrientation();\n }\n\n if ('skiPredicate' in changes) {\n this._focusKeyManager.skipPredicate(this.skipPredicate);\n }\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._focusKeyManager = new FocusKeyManager<FocusableOption>(this._items).skipPredicate(this.skipPredicate);\n\n this._applyOrientation();\n\n this._cdr.detectChanges();\n\n this._rtlService?.rtl\n .pipe(\n filter(() => this.orientation === 'horizontal'),\n takeUntil(this._onDestroy$)\n )\n .subscribe(() => this._applyOrientation());\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /** Focus certain list's item */\n focusItem(item: number | FocusableOption): any {\n if (typeof item === 'number') {\n this._focusKeyManager.setActiveItem(item);\n } else {\n this._focusKeyManager.setActiveItem(item);\n }\n }\n\n /** @hidden */\n private _applyOrientation(): void {\n switch (this.orientation) {\n case 'horizontal':\n this._focusKeyManager.withHorizontalOrientation(this._rtlService?.rtl.value ? 'rtl' : 'ltr');\n break;\n case 'vertical':\n this._focusKeyManager.withVerticalOrientation(true);\n break;\n }\n }\n}\n","import { FocusableOption, FocusKeyManager } from '@angular/cdk/a11y';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Directive, ElementRef, forwardRef, HostBinding, HostListener, Input } from '@angular/core';\nimport { FocusKeyManagerListDirective } from './focus-key-manager-list.directive';\nimport { FOCUSABLE_ITEM } from './focus-key-manager.tokens';\n\n/** Directive to apply Angular Material FocusKeyManager to lists.\n * To be used with FocusKeyManagerItemDirective\n */\n@Directive({\n selector: '[fd-focus-key-manager-item], [fdFocusKeyManagerItem]',\n providers: [{ provide: FOCUSABLE_ITEM, useExisting: forwardRef(() => FocusKeyManagerItemDirective) }]\n})\nexport class FocusKeyManagerItemDirective implements FocusableOption {\n /** Whether item should be initially focused */\n @Input()\n set initialFocus(value: BooleanInput) {\n this._initialFocus = coerceBooleanProperty(value);\n }\n\n /** @hidden */\n @Input()\n @HostBinding('attr.tabindex')\n get _tabindex(): number {\n if (this._initialFocus) {\n return 0;\n }\n\n return this.nativeElement?.tabIndex ?? -1;\n }\n\n /** @hidden */\n private _initialFocus = false;\n\n /** Native element of the item */\n get nativeElement(): any {\n return this._elRef?.nativeElement;\n }\n\n /** @hidden */\n private get _focusKeyManager(): FocusKeyManager<FocusableOption> {\n return this._list.focusKeyManager;\n }\n\n /** @hidden */\n constructor(private readonly _list: FocusKeyManagerListDirective, private readonly _elRef: ElementRef) {}\n\n /** @hidden */\n @HostListener('focus')\n _onFocus(): void {\n // For cases where initially selected item doesn't have 0 index\n this._focusKeyManager?.updateActiveItem(this);\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n _onKeydown(event: KeyboardEvent): void {\n this._focusKeyManager?.onKeydown(event);\n }\n\n /** Focus current item native element */\n focus(): void {\n this._elRef?.nativeElement.focus();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FocusKeyManagerItemDirective } from './focus-key-manager-item.directive';\nimport { FocusKeyManagerListDirective } from './focus-key-manager-list.directive';\n\n@NgModule({\n imports: [CommonModule],\n exports: [FocusKeyManagerItemDirective, FocusKeyManagerListDirective],\n declarations: [FocusKeyManagerItemDirective, FocusKeyManagerListDirective]\n})\nexport class FocusKeyManagerHelpersModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'displayFnPipe'\n})\nexport class DisplayFnPipe implements PipeTransform {\n /** Transform value with display function. */\n transform(value: any, displayFn: any, ...args: any): string {\n return displayFn(value, ...args);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport escape from 'lodash-es/escape';\n\n@Pipe({\n name: 'highlight'\n})\nexport class SearchHighlightPipe implements PipeTransform {\n /** Highlight search term in string. */\n transform(value: string, args: string, active: boolean = true, includeSpans: boolean = false): string {\n value = escape(value);\n let result: string = value;\n if (args && value && active) {\n const testStr: string = escape(args.trim().toLowerCase());\n const startIndex = value.toLowerCase().indexOf(testStr);\n if (startIndex !== -1) {\n const matchingString = value.substr(startIndex, testStr.length);\n result = value.replace(matchingString, '<strong>' + matchingString + '</strong>');\n }\n }\n if (includeSpans) {\n result = '<span>' + result + '</span>';\n }\n return result;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'twoDigits'\n})\nexport class TwoDigitsPipe implements PipeTransform {\n /** Transform number to two digits. */\n transform(value: number, enable: boolean = true): string {\n if ((value || value === 0) && enable) {\n return value < 10 ? '0' + value : value.toString();\n } else {\n return String(value);\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safe'\n})\nexport class SafePipe implements PipeTransform {\n /** @hidden */\n constructor(protected sanitizer: DomSanitizer) {}\n\n /** Sanitize HTML string. */\n public transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n switch (type) {\n case 'html':\n return this.sanitizer.bypassSecurityTrustHtml(value);\n\n case 'style':\n return this.sanitizer.bypassSecurityTrustStyle(value);\n\n case 'script':\n return this.sanitizer.bypassSecurityTrustScript(value);\n\n case 'url':\n return this.sanitizer.bypassSecurityTrustUrl(value);\n\n case 'resourceUrl':\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n\n default:\n throw new Error(`Invalid safe type specified: ${type}`);\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { get } from 'lodash-es';\n\n@Pipe({ name: 'valueByPath' })\nexport class ValueByPathPipe implements PipeTransform {\n /** Get value by path. */\n transform(value: any, key: string): any {\n return get(value, key);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ContentDensity } from '../interfaces/content-density';\nimport { isCompactDensity } from './../functions/is-compact-density';\n\n@Pipe({ name: 'isCompactDensity' })\nexport class IsCompactDensityPipe implements PipeTransform {\n /** Check if the content density is compact. */\n transform(size: ContentDensity): boolean {\n return isCompactDensity(size);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'truncate'\n})\nexport class TruncatePipe implements PipeTransform {\n /** Truncate string to given length. */\n transform(value: string, limit: number = 500): string {\n return value && value.length > limit ? value.substring(0, limit) + '...' : value;\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { DisplayFnPipe } from './displayFn.pipe';\nimport { SearchHighlightPipe } from './search-highlight.pipe';\nimport { TwoDigitsPipe } from './two-digits.pipe';\nimport { SafePipe } from './safe.pipe';\nimport { ValueByPathPipe } from './value-by-path.pipe';\nimport { IsCompactDensityPipe } from './is-compact.pipe';\nimport { TruncatePipe } from './truncate.pipe';\n\n@NgModule({\n declarations: [\n DisplayFnPipe,\n SearchHighlightPipe,\n TwoDigitsPipe,\n SafePipe,\n ValueByPathPipe,\n IsCompactDensityPipe,\n TruncatePipe\n ],\n exports: [\n DisplayFnPipe,\n SearchHighlightPipe,\n TwoDigitsPipe,\n SafePipe,\n ValueByPathPipe,\n IsCompactDensityPipe,\n TruncatePipe\n ]\n})\nexport class PipeModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport const DND_ITEM = new InjectionToken('Drag and drop Item');\nexport const DND_LIST = new InjectionToken('Drag and drop List');\n","import {\n AfterContentInit,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Output,\n QueryList\n} from '@angular/core';\nimport { merge, Subject } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\nimport { ElementChord, FdDropEvent, LinkPosition, ElementPosition, DndItem } from '../dnd.interfaces';\nimport { DND_ITEM, DND_LIST } from '../tokens';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-dnd-list]',\n providers: [{ provide: DND_LIST, useExisting: forwardRef(() => DndListDirective) }]\n})\nexport class DndListDirective<T> implements AfterContentInit, OnDestroy {\n /**\n * Defines if the the element is allowed to be dragged in 2 dimensions,\n * When true - replace indicator will be displayed vertically\n */\n @Input()\n gridMode = false;\n\n /** When enabled, replace indicator will appear on whole element, instead of horizontal/vertical line before/after element */\n @Input()\n replaceMode = false;\n\n /** Array of items, that will be sorted */\n @Input()\n items: Array<T>;\n\n /** Defines if drag and drop feature should be enabled for list items */\n @Input()\n set draggable(draggable: boolean) {\n this._draggable = draggable;\n this._changeDraggableState(draggable);\n }\n\n /** Event that is thrown, when items are reordered */\n @Output()\n readonly itemsChange = new EventEmitter<Array<T>>();\n\n /** Event that is thrown, when the item is dropped */\n @Output()\n readonly itemDropped = new EventEmitter<FdDropEvent<T>>();\n\n /** @hidden */\n @ContentChildren(DND_ITEM)\n dndItems: QueryList<DndItem>;\n\n /** @hidden */\n private _elementsCoordinates: ElementChord[];\n\n /** @hidden */\n private _closestItemIndex: number | null = null;\n\n /** @hidden */\n private _closestItemPosition: 'before' | 'after' | null = null;\n\n /** An RxJS Subject that will kill the current data stream (for unsubscribing) */\n private readonly _refresh$ = new Subject<void>();\n\n /** @hidden */\n private readonly _onDestroy$ = new Subject<void>();\n\n /** @hidden */\n private _dndItemReference: DndItem[];\n\n /** @hidden */\n private _draggable = true;\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._changeDraggableState(this._draggable);\n this.dndItems.changes.pipe(takeUntil(this._onDestroy$), startWith(0)).subscribe(() => this._refreshQueryList());\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /** Method called, when the item is being moved by 1 px */\n onMove(mousePosition: ElementPosition, draggedItemIndex: number): void {\n /** Temporary object, to store lowest distance values */\n let closestItemIndex: number | null = null;\n\n const closestItem = this._elementsCoordinates.find((element, index) => {\n /** Check if element can be replaced */\n if (!element.stickToPosition && closestItemIndex !== index) {\n const isMouseOnElement = _isMouseOnElement(element, mousePosition);\n if (isMouseOnElement) {\n closestItemIndex = index;\n\n return true;\n }\n }\n return false;\n });\n\n if (!closestItem) {\n closestItemIndex = null;\n }\n\n /** If the closest element is different than the old one, new one is picked. It prevents from performance issues */\n if ((closestItemIndex || closestItemIndex === 0) && closestItemIndex !== this._closestItemIndex) {\n this._closestItemIndex = closestItemIndex;\n this._closestItemPosition = this._elementsCoordinates[closestItemIndex].position;\n // If closest item index is same as dragged item, just remove indicators\n if (closestItemIndex === draggedItemIndex) {\n this._removeAllLines();\n this._removeAllReplaceIndicators();\n return;\n }\n /** Generating line, that shows where the element will be placed, on drop */\n if (this.replaceMode) {\n this._createReplaceIndicator(this._closestItemIndex);\n } else {\n this._createLine(this._closestItemIndex, this._closestItemPosition);\n }\n }\n }\n\n /** Method called, when element is started to be dragged */\n dragStart(index: number): void {\n const draggedItemElement = this._dndItemReference[index].elementRef;\n /** Counting all of the elements's chords */\n this._elementsCoordinates = this._dndItemReference.map((item: DndItem) =>\n item.getElementCoordinates(this._isBefore(draggedItemElement, item.elementRef), this.gridMode)\n );\n }\n\n /** Method called, when element is released */\n dragEnd(draggedItemIndex: number): void {\n const items = this.items.slice();\n const replacedItemIndex = this._closestItemIndex;\n const draggedItem = items[draggedItemIndex];\n\n if (!replacedItemIndex) {\n return;\n }\n\n if (draggedItemIndex !== replacedItemIndex) {\n if (draggedItemIndex < replacedItemIndex) {\n for (let i = draggedItemIndex; i < replacedItemIndex; i++) {\n items[i] = items[i + 1];\n }\n } else {\n for (let i = draggedItemIndex; i > replacedItemIndex; i--) {\n items[i] = items[i - 1];\n }\n }\n\n /** Replacing items */\n items[replacedItemIndex] = draggedItem;\n\n this.itemsChange.emit(items);\n }\n\n this.itemDropped.emit({\n replacedItemIndex,\n draggedItemIndex,\n items\n });\n\n this._removeAllLines();\n this._removeAllReplaceIndicators();\n\n /** Reset */\n this._elementsCoordinates = [];\n this._closestItemIndex = null;\n this._closestItemPosition = null;\n }\n\n /** @hidden */\n private _removeAllLines(): void {\n this.dndItems.forEach((item) => item.removeLine());\n }\n\n /** @hidden */\n private _removeAllReplaceIndicators(): void {\n this.dndItems.forEach((item) => item.removeReplaceIndicator());\n }\n\n /** @hidden */\n private _createLine(closestItemIndex: number, linkPosition: LinkPosition): void {\n this._removeAllLines();\n this._dndItemReference[closestItemIndex].createLine(linkPosition, this.gridMode);\n }\n\n /** @hidden */\n private _createReplaceIndicator(closestItemIndex: number): void {\n this._removeAllReplaceIndicators();\n this._dndItemReference[closestItemIndex].createReplaceIndicator();\n }\n\n /** @hidden */\n private _refreshQueryList(): void {\n const refresh$ = merge(this._refresh$, this._onDestroy$);\n this._refresh$.next();\n\n this._dndItemReference = this.dndItems.toArray();\n\n this._changeDraggableState(this._draggable);\n\n this.dndItems.forEach((item, index) => {\n item.moved.pipe(takeUntil(refresh$)).subscribe((position: ElementPosition) => this.onMove(position, index));\n item.started.pipe(takeUntil(refresh$)).subscribe(() => this.dragStart(index));\n item.released.pipe(takeUntil(refresh$)).subscribe(() => this.dragEnd(index));\n });\n }\n\n /**\n * @hidden\n * Return information if element is placed before the dragged element\n */\n private _isBefore(draggedElement: ElementRef, targetElement: ElementRef): boolean {\n /** Sometimes the element are not straight in one column, that's why offset is needed */\n const VERTICAL_OFFSET = 20;\n\n /** Distances from the top of screen */\n const draggedElementBound = <DOMRect>draggedElement.nativeElement.getBoundingClientRect();\n const targetElementBound = <DOMRect>targetElement.nativeElement.getBoundingClientRect();\n\n if (draggedElementBound.top - targetElementBound.top > VERTICAL_OFFSET) {\n /** If element is higher than the dragged element, it's for sure before */\n return true;\n } else if (targetElementBound.top - draggedElementBound.top > VERTICAL_OFFSET) {\n /** If element is lower than the dragged element, it's for sure after */\n return false;\n } else {\n /** If elements are in same level, the horizontal position decides if it's before/after */\n return draggedElementBound.left - targetElementBound.left > 0;\n }\n }\n\n /** @hidden */\n private _changeDraggableState(draggable: boolean): void {\n if (this.dndItems) {\n this.dndItems.forEach((item) => {\n item.listDraggable = draggable;\n item.changeCDKDragState();\n });\n }\n }\n}\n\nfunction _isMouseOnElement(element: ElementChord, mousePosition: ElementPosition): boolean {\n const startX = element.x;\n const endX = element.x + element.width;\n\n const startY = element.y;\n const endY = element.y + element.height;\n\n return _between(mousePosition.x, startX, endX) && _between(mousePosition.y, startY, endY);\n}\n\nfunction _between(x: number, min: number, max: number): boolean {\n return x >= min && x <= max;\n}\n","import {\n AfterContentInit,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n Output\n} from '@angular/core';\nimport { DragDrop, DragRef } from '@angular/cdk/drag-drop';\nimport { DndItem, ElementChord, ElementPosition, LinkPosition } from '../dnd.interfaces';\nimport { Subscription } from 'rxjs';\nimport { delay } from 'rxjs/operators';\nimport { DND_ITEM } from '../tokens';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-dnd-item]',\n providers: [DragDrop, { provide: DND_ITEM, useExisting: forwardRef(() => DndItemDirective) }]\n})\nexport class DndItemDirective implements DndItem, AfterContentInit, OnDestroy {\n /**\n * Whether to apply \"fd-dnd-item\" class.\n * @default true\n */\n @Input()\n @HostBinding('class.fd-dnd-item')\n applyDragItemClass = true;\n\n /** Container selector */\n @Input()\n containerSelector?: string;\n\n /** Event thrown when the element is moved by 1px */\n @Output()\n readonly moved = new EventEmitter<ElementPosition>();\n\n /** Event thrown when the element is released */\n @Output()\n readonly released = new EventEmitter<void>();\n\n /** Event thrown when the element is started to be dragged */\n @Output()\n readonly started = new EventEmitter<void>();\n\n /**\n * Defines if the item is prevented from being moved by other elements.\n * So nothing can be placed just before and just after it\n */\n @Input()\n stickInPlace = false;\n\n /** Defines if element is draggable */\n @Input()\n set draggable(draggable: boolean) {\n this._draggable = draggable;\n this.changeCDKDragState();\n }\n\n /** Class added to element, when it's dragged. */\n @Input()\n classWhenElementDragged = 'fd-dnd-on-drag';\n\n /** Defines if every element in list is draggable */\n listDraggable = true;\n\n /** @hidden\n * Drag reference, object created from DND CDK Service\n */\n private _dragRef: DragRef;\n\n /** @hidden */\n private _draggable = true;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _placeholderElement: HTMLElement | null;\n\n /** @hidden */\n private _lineElement: HTMLElement | null;\n\n /** @hidden */\n private _replaceIndicator: HTMLElement | null;\n\n /** @hidden */\n constructor(public elementRef: ElementRef, private _dragDrop: DragDrop) {}\n\n /** @hidden */\n getElementCoordinates(isBefore: boolean, gridMode: boolean): ElementChord {\n /** Takes distance from the beginning of window page */\n const rect: DOMRect = this.elementRef.nativeElement.getBoundingClientRect();\n\n const position: LinkPosition = isBefore ? 'before' : 'after';\n\n /** Vertically distance is counted by distance from top of the side + half of the element height */\n return {\n x: rect.left,\n position,\n y: rect.top,\n stickToPosition: this.stickInPlace,\n width: rect.width,\n height: rect.height\n };\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._setCDKDrag();\n this._listenElementEvents();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n onCdkMove(position: ElementPosition): void {\n this.moved.emit(position);\n }\n\n /** @hidden */\n onCdkDragReleased(): void {\n /** Remove class which is added, when element is dragged */\n this.elementRef.nativeElement.classList.remove(this.classWhenElementDragged);\n this.released.emit();\n\n /** Resets the position of element. */\n this._dragRef.reset();\n\n /** Removes placeholder element */\n this.removePlaceholder();\n }\n\n /** @hidden */\n onCdkDragStart(): void {\n /** Adds class */\n this.elementRef.nativeElement.classList.add(this.classWhenElementDragged);\n\n if (!this._placeholderElement) {\n this.createPlaceholder();\n }\n this.started.emit();\n }\n\n /** @hidden */\n removePlaceholder(): void {\n if (this._placeholderElement && this._placeholderElement.parentNode) {\n // IE11 workaround\n this._placeholderElement.parentNode.removeChild(this._placeholderElement);\n this._placeholderElement = null;\n }\n }\n\n /** @hidden */\n removeLine(): void {\n if (this._lineElement && this._lineElement.parentNode) {\n // IE11 workaround\n this._lineElement.parentNode.removeChild(this._lineElement);\n this._lineElement = null;\n }\n }\n\n /** @hidden */\n removeReplaceIndicator(): void {\n if (this._replaceIndicator && this._replaceIndicator.parentNode) {\n // IE11 workaround\n this._replaceIndicator.parentNode.removeChild(this._replaceIndicator);\n this._replaceIndicator = null;\n }\n }\n\n /** @hidden */\n createReplaceIndicator(): void {\n this._replaceIndicator = document.createElement('DIV');\n this._replaceIndicator.classList.add('fd-replace-indicator');\n\n let container = this.elementRef.nativeElement;\n if (this.containerSelector) {\n const newContainer = this.elementRef.nativeElement.querySelector(this.containerSelector);\n if (newContainer) {\n container = newContainer;\n }\n }\n\n container.appendChild(this._replaceIndicator);\n }\n\n /** @hidden */\n createLine(position: LinkPosition, gridMode: boolean): void {\n /** Creating of line element */\n this._lineElement = document.createElement('div');\n this._lineElement.classList.add('drop-area__line');\n\n if (gridMode) {\n this._lineElement.classList.add('drop-area__line--vertical');\n } else {\n this._lineElement.classList.add('drop-area__line--horizontal');\n }\n if (position === 'after') {\n this._lineElement.classList.add('after');\n }\n if (position === 'before') {\n this._lineElement.classList.add('before');\n }\n\n /** Putting element to the container */\n let container = this.elementRef.nativeElement;\n if (this.containerSelector) {\n const newContainer = this.elementRef.nativeElement.querySelector(this.containerSelector);\n if (newContainer) {\n container = newContainer;\n }\n }\n\n container.appendChild(this._lineElement);\n }\n\n /** @hidden */\n changeCDKDragState(): void {\n if (this._dragRef) {\n this._dragRef.disabled = !(this._draggable && this.listDraggable);\n }\n }\n\n /** @hidden */\n private createPlaceholder(): void {\n const placeholder = this.elementRef.nativeElement.cloneNode(true);\n /** Cloning container element */\n this._placeholderElement = placeholder;\n\n placeholder.classList.add('fd-dnd-placeholder');\n this._setPlaceholderStyles();\n\n /** Including element to the container\n * IE11 equivalent to `this.element.nativeElement.after(clone);`\n */\n this._placeAfter(this.elementRef.nativeElement, placeholder);\n }\n\n /** @hidden */\n private _setPlaceholderStyles(): void {\n const offset = this._getOffsetToParent(this.elementRef.nativeElement);\n\n if (!offset || !this._placeholderElement) {\n return;\n }\n\n this._placeholderElement.style.top = offset.y + 'px';\n this._placeholderElement.style.left = offset.x + 'px';\n this._placeholderElement.style.position = 'absolute';\n this._placeholderElement.style.zIndex = '0';\n this._placeholderElement.style.opacity = '0.3';\n\n this._placeholderElement.style.width = this.elementRef.nativeElement.offsetWidth + 'px';\n this._placeholderElement.style.height = this.elementRef.nativeElement.offsetHeight + 'px';\n }\n\n /** @hidden */\n private _getOffsetToParent(element: Element): { x: number; y: number } | undefined {\n const parentElement = element.parentElement;\n if (!parentElement) {\n return;\n }\n\n const parentTop = parentElement.getBoundingClientRect().top;\n const parentLeft = parentElement.getBoundingClientRect().left;\n\n return {\n x: Math.abs(element.getBoundingClientRect().left - parentLeft),\n y: Math.abs(element.getBoundingClientRect().top - parentTop)\n };\n }\n\n /** @hidden */\n private _setCDKDrag(): void {\n this._dragRef = this._dragDrop.createDrag(this.elementRef);\n this._dragRef.disabled = !this._draggable;\n this._subscriptions.add(this._dragRef.moved.subscribe((event) => this.onCdkMove(event.pointerPosition)));\n this._subscriptions.add(this._dragRef.released.subscribe(() => this.onCdkDragReleased()));\n this._subscriptions.add(this._dragRef.started.subscribe(() => this.onCdkDragStart()));\n }\n\n /** IE11 equivalent of Node.after() Method */\n private _placeAfter(element: Element, cloneNode: Node): void {\n const docFrag = document.createDocumentFragment();\n docFrag.appendChild(cloneNode);\n element.parentNode?.insertBefore(docFrag, element.nextSibling);\n }\n\n /** @hidden */\n private _listenElementEvents(): void {\n this._subscriptions.add(\n this.released\n .pipe(\n // postpone blur\n delay(0)\n )\n .subscribe(() => {\n if (this.containerSelector) {\n this.elementRef.nativeElement.children[0].blur();\n }\n this.elementRef.nativeElement.blur();\n })\n );\n }\n}\n","import { moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { ChangeDetectorRef, Directive, Input, Optional } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { KeyUtil } from '../../functions';\nimport { RtlService } from '../../services/rtl.service';\n\n/**\n * This directive is used to provide drag & drop with keyboard support.\n * It should be used together with directive fdDndKeyboardItem.\n */\n@Directive({ selector: '[fdDndKeyboardGroup]' })\nexport class DndKeyboardGroupDirective {\n /** Group of items */\n @Input()\n groups: any[][];\n\n /** Whether to disable drag & drop */\n @Input()\n disableKeyboardDragDrop = false;\n\n /** Used to apply indexes when moving between groups */\n @Input()\n orientation: 'horizontal' | 'vertical' = 'vertical';\n\n /** @hidden */\n _onDndItemFocus$ = new Subject<[number, number]>();\n\n /** Custom function to call when moving item inside the group */\n @Input()\n customMoveFn = (group: any[], fromIndex: number, toIndex: number): void =>\n moveItemInArray(group, fromIndex, toIndex);\n\n /** Custom function to call when moving item between groups */\n @Input()\n customTransferFn = (group: any[], nextGroup: any[], fromIndex: number, toIndex: number): void =>\n transferArrayItem(group, nextGroup, fromIndex, toIndex);\n\n /** @hidden */\n constructor(private readonly _cdr: ChangeDetectorRef, @Optional() private readonly _rtlService: RtlService) {}\n\n /** Process drag & drop */\n processDragDrop(event: KeyboardEvent, itemIndex: number, groupIndex: number): void {\n if (this.disableKeyboardDragDrop || !event.altKey) {\n return;\n }\n\n const isRtl = this._rtlService.rtl.value;\n\n const group = this.groups[groupIndex];\n const indexInNextGroup = this.orientation === 'vertical' ? 0 : itemIndex;\n\n const nextGroupExists = this.groups.length > groupIndex + 1;\n const prevGroupExists = !!groupIndex;\n\n if (KeyUtil.isKeyCode(event, RIGHT_ARROW) && (isRtl ? prevGroupExists : nextGroupExists)) {\n event.preventDefault();\n\n const nextGroupIndex = groupIndex + (isRtl ? -1 : 1);\n const nextGroup = this.groups[nextGroupIndex];\n\n this.customTransferFn(group, nextGroup, itemIndex, indexInNextGroup);\n this._focusDndItem(nextGroupIndex, indexInNextGroup);\n } else if (KeyUtil.isKeyCode(event, LEFT_ARROW) && (isRtl ? nextGroupExists : prevGroupExists)) {\n event.preventDefault();\n\n const nextGroupIndex = groupIndex + (isRtl ? 1 : -1);\n const nextGroup = this.groups[nextGroupIndex];\n\n this.customTransferFn(group, nextGroup, itemIndex, indexInNextGroup);\n this._focusDndItem(nextGroupIndex, indexInNextGroup);\n } else if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n event.preventDefault();\n\n this.customMoveFn(group, itemIndex, itemIndex + 1);\n this._focusDndItem(groupIndex, itemIndex + 1);\n } else if (KeyUtil.isKeyCode(event, UP_ARROW)) {\n event.preventDefault();\n\n this.customMoveFn(group, itemIndex, itemIndex - 1);\n this._focusDndItem(groupIndex, itemIndex - 1);\n }\n }\n\n /** @hidden Focus after moving elements with keyboard */\n private _focusDndItem(groupIndex: number, itemIndex: number): void {\n this._cdr.detectChanges();\n\n this._onDndItemFocus$.next([groupIndex, itemIndex]);\n }\n}\n","import { Directive, ElementRef, HostListener, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { DndKeyboardGroupDirective } from '../dnd-keyboard-group/dnd-keyboard-group.directive';\n\n/**\n * This directive is used to provide drag & drop with keyboard support.\n * It should be used together with directive fdDndKeyboardGroup.\n * We are using _groups from fdDndKeyboardGroup and adding a possibility to move cards.\n * Please see example below:\n * @Component({\n * selector: 'cdk-drag-drop-example',\n * template: `<div\n * cdkDragListGroup\n * fdDndKeyboardGroup\n * [groups]=\"groups\"\n * >\n * <div\n * *ngFor=\"let group of groups; let groupIndex = index\"\n * cdkDragList\n * >\n * Group #{{ groupIndex }}\n * <div\n * *ngFor=\"let item of group; let index = index\"\n * cdkDrag\n * fdDndKeyboardItem\n * [itemIndex]=\"index\"\n * [groupIndex]=\"groupIndex\"\n * [dndKeyboardDisabled]=\"flag for disable/enable keyboard navigation if needed\"\n * tabindex=\"0\"\n * >\n * Item #{{ item }}\n * </div>\n * </div>\n * </div>`,\n * })\n * export class CdkDragDropExample {\n * groups = [\n * [1, 2, 3],\n * [4, 5, 6],\n * ];\n * }\n */\n@Directive({ selector: '[fdDndKeyboardItem]' })\nexport class DndKeyboardItemDirective implements OnInit, OnDestroy {\n /** item index in group(column) */\n @Input()\n itemIndex: number;\n\n /** group(column) index */\n @Input()\n groupIndex: number;\n\n /** @hidden */\n private readonly _onDestroy$ = new Subject<void>();\n\n /** @hidden */\n constructor(private readonly _dndGroup: DndKeyboardGroupDirective, private readonly _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._dndGroup._onDndItemFocus$.subscribe(([groupIndex, itemIndex]) => {\n if (this.groupIndex === groupIndex && this.itemIndex === itemIndex) {\n this._elementRef.nativeElement.focus();\n }\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n _onKeyDown(event: KeyboardEvent): void {\n this._dndGroup.processDragDrop(event, this.itemIndex, this.groupIndex);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DndListDirective } from './dnd-list/dnd-list.directive';\nimport { DndItemDirective } from './dnd-item/dnd-item.directive';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { DndKeyboardItemDirective } from './dnd-keyboard-item/dnd-keyboard-item.directive';\nimport { DndKeyboardGroupDirective } from './dnd-keyboard-group/dnd-keyboard-group.directive';\n\n@NgModule({\n imports: [CommonModule, DragDropModule],\n exports: [DndItemDirective, DndListDirective, DndKeyboardGroupDirective, DndKeyboardItemDirective],\n declarations: [DndItemDirective, DndListDirective, DndKeyboardGroupDirective, DndKeyboardItemDirective]\n})\nexport class DragAndDropModule {}\n","import { ElementRef } from '@angular/core';\n\nexport interface HasElementRef {\n elementRef(): ElementRef;\n}\n\nexport const ELEMENT_REF_EXCEPTION = 'HasElementRef interface has to be implemented';\n","import { ELEMENT_REF_EXCEPTION } from '../interfaces/has-element-ref.interface';\nimport { uuidv4 } from '../functions/uuidv4-generator';\nimport { CssClassBuilder } from '../interfaces/css-class-builder.interface';\n\n/**\n * Method decorator to apply css class to a component through native element\n * decorator will store original method in variable and wrap it with custom one\n * component has to implement CssClassBuilder interface\n * more info abour method decorator: https://www.typescriptlang.org/docs/handbook/decorators.html#method-decorators\n * @param target a component\n * @param propertyKey name of the method\n * @param descriptor method\n */\nexport function applyCssClass(target: any, propertyKey: string, descriptor: PropertyDescriptor): void {\n const originalMethod = descriptor.value;\n descriptor.value = function (): string[] {\n const self = this as unknown as CssClassBuilder & { _uuidv4?: string };\n if (!self.elementRef) {\n throw ELEMENT_REF_EXCEPTION;\n }\n\n const classListToApply: string[] = sanitize(originalMethod.apply(this));\n\n const elementRef = self.elementRef.apply(this);\n\n const nativeElement: HTMLElement & { _classMap?: any } = elementRef?.nativeElement;\n\n if (nativeElement) {\n if (!nativeElement._classMap) {\n nativeElement._classMap = {};\n }\n\n if (!self._uuidv4) {\n self._uuidv4 = uuidv4();\n }\n\n const currentClassList = Array.from(nativeElement.classList);\n\n const previousClassListToApply = nativeElement._classMap[self._uuidv4] || [];\n\n const newClassList = createComponentClassList(currentClassList, previousClassListToApply, classListToApply);\n\n nativeElement.className = newClassList.join(' ');\n\n nativeElement._classMap[self._uuidv4] = classListToApply;\n }\n\n return classListToApply;\n };\n}\n\n/** Filter list to unique items */\nfunction unique(value: unknown, index: number, list: unknown[]): boolean {\n return list.indexOf(value) === index;\n}\n\n/** Splits merged classes, removes falsy elements and leaves only unique items */\nfunction sanitize(array: string[]): string[] {\n return array\n .filter(Boolean)\n .reduce((classList: string[], cssClass: string) => [...classList, ...cssClass.split(/\\s+/)], [])\n .filter(unique);\n}\n\nfunction firstCommonElementIndex(array1: string[], array2: string[]): number {\n return array1.findIndex((element) => array2.indexOf(element) !== -1);\n}\n\n/** Create set of component classes based on previous set and new set */\nfunction createComponentClassList(\n allClasses: string[],\n previousComponentClassList: string[],\n newComponentClassList: string[]\n): string[] {\n allClasses = allClasses.slice();\n let index = firstCommonElementIndex(allClasses, previousComponentClassList);\n index = index === -1 ? 0 : index;\n allClasses.splice(index, previousComponentClassList.length, ...newComponentClassList);\n\n return allClasses;\n}\n","import { ELEMENT_REF_EXCEPTION, HasElementRef } from '../interfaces/has-element-ref.interface';\nimport { Hash } from '../datatypes/hash.datatype';\n\n/**\n * Method decorator to apply css styles to a component through native element\n * decorator will store original method in variable and wrap it with custom one\n * component has to implement HasElementRef or CssStyleBuilder interface\n * more info abour method decorator: https://www.typescriptlang.org/docs/handbook/decorators.html#method-decorators\n * @param target a component\n * @param propertyKey name of the method\n * @param descriptor method\n */\nexport function applyCssStyle(target: any, propertyKey: string, descriptor: PropertyDescriptor): void {\n const originalMethod = descriptor.value;\n descriptor.value = function (): Hash<number | string> {\n const self = this as unknown as HasElementRef;\n if (!self.elementRef) {\n throw ELEMENT_REF_EXCEPTION;\n }\n\n const _styles: Hash<number | string> = originalMethod.apply(this);\n if (self.elementRef()) {\n const htmlElement = self.elementRef().nativeElement as HTMLElement;\n Object.keys(_styles).forEach((key) => {\n htmlElement.style[key] = _styles[key];\n });\n }\n\n return _styles;\n };\n}\n","import { Injector, Type, InjectionToken, InjectFlags } from '@angular/core';\n\nexport class DynamicComponentInjector implements Injector {\n /** @hidden */\n constructor(private _parentInjector: Injector, private _additionalTokens: WeakMap<any, any>) {}\n\n get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags): T;\n\n get(token: any, notFoundValue?: any): void;\n\n /** @hidden */\n get(token: any, notFoundValue?: any, _flags?: any): void {\n const value = this._additionalTokens.get(token);\n\n if (value) {\n return value;\n }\n\n return this._parentInjector.get<any>(token, notFoundValue);\n }\n}\n","import {\n ComponentFactoryResolver,\n Injectable,\n ApplicationRef,\n Injector,\n EmbeddedViewRef,\n ComponentRef,\n TemplateRef,\n Type,\n Compiler,\n NgModuleFactory,\n ViewContainerRef\n} from '@angular/core';\nimport { DynamicComponentInjector } from './dynamic-component-injector';\nimport { DynamicComponentConfig } from './dynamic-component-config';\n\n/**\n * Service used to dynamically generate components like dialogs/alerts/notifications\n */\n@Injectable()\nexport class DynamicComponentService {\n /** @hidden */\n constructor(\n private readonly _componentFactoryResolver: ComponentFactoryResolver,\n private readonly _applicationRef: ApplicationRef,\n private readonly _injector: Injector,\n private readonly _compiler: Compiler\n ) {}\n\n /**\n * Function that creates dynamic component and injects services to allow communication between component and outside\n * @param content Type of the component content\n * @param componentType Type of component that should be rendered.\n * @param config Configuration that will be passed to the component.\n * @param inject enables to provide preconfigured component injector and dependencies\n */\n public createDynamicComponent<T>(\n content: TemplateRef<any> | Type<any> | string | Record<string, any>,\n componentType: Type<T>,\n config: DynamicComponentConfig,\n inject: { injector?: Injector; services?: any[] } = {}\n ): ComponentRef<T> {\n const { injector, services } = inject;\n const dependenciesMap = this._createDependencyMap(services);\n const componentRef = this._createComponent<T>(componentType, dependenciesMap, injector);\n this._passExternalContent<T>(componentRef, content);\n this._attachToContainer<T>(componentRef, config);\n\n return componentRef;\n }\n\n /**\n * Function that creates dynamic component and injects services to allow communication between component and outside\n * @param content Type of the component content\n * @param moduleType Type of module that should be compiled.\n * @param componentType Type of component that should be rendered.\n * @param containerRef The container that the dynamic component is appended to.\n * @param injector enables to provide preconfigured component injector\n */\n async createDynamicModule<M, C>(\n content: TemplateRef<any> | Type<any> | string | Record<string, any>,\n moduleType: Type<M> | NgModuleFactory<M>,\n componentType: Type<C>,\n containerRef: ViewContainerRef,\n injector?: Injector\n ): Promise<ComponentRef<C>> {\n const moduleFactory =\n moduleType instanceof NgModuleFactory ? moduleType : await this._compiler.compileModuleAsync<M>(moduleType);\n const moduleRef = moduleFactory.create(injector || this._injector);\n const componentFactory = moduleRef.componentFactoryResolver.resolveComponentFactory(componentType);\n\n containerRef.clear();\n\n const componentRef: ComponentRef<C> = containerRef.createComponent(componentFactory);\n\n this._passExternalContent<C>(componentRef, content);\n\n return componentRef;\n }\n\n /** Function that destroys dynamic component */\n public destroyComponent(componentRef: ComponentRef<any>): void {\n this._applicationRef.detachView(componentRef.hostView);\n componentRef.destroy();\n }\n\n /** @hidden */\n private _createDependencyMap(services: any[] = []): WeakMap<any, any> {\n const dependencyMap = new WeakMap();\n services.filter((service) => !!service).forEach((service) => dependencyMap.set(service.constructor, service));\n return dependencyMap;\n }\n\n /** @hidden */\n private _attachToContainer<V>(componentRef: ComponentRef<V>, config: DynamicComponentConfig): void {\n const configObj = Object.assign({}, config);\n const componentEl = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n if (configObj.container !== 'body') {\n configObj.container?.appendChild(componentEl);\n } else {\n document.body.appendChild(componentEl);\n }\n }\n\n /** @hidden */\n private _createComponent<V>(\n componentType: Type<V>,\n dependenciesMap: WeakMap<any, any>,\n injector?: Injector\n ): ComponentRef<V> {\n const dynamicComponentInjector = new DynamicComponentInjector(injector || this._injector, dependenciesMap);\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(componentType);\n const componentRef = componentFactory.create(dynamicComponentInjector);\n this._applicationRef.attachView(componentRef.hostView);\n return componentRef;\n }\n\n /** @hidden */\n private _passExternalContent<V>(\n componentRef: ComponentRef<V>,\n content: TemplateRef<any> | Type<any> | string | Record<string, any>\n ): void {\n // TODO: this approach should be revisited, it can cause issues, that is really hard to debug\n if (Object.prototype.hasOwnProperty.call(componentRef.instance, 'childContent')) {\n (componentRef.instance as any).childContent = content;\n }\n }\n}\n","import {\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n TemplateRef,\n Type,\n ViewContainerRef\n} from '@angular/core';\n\nexport abstract class DynamicComponentContainer<T = TemplateRef<any> | Type<any>> {\n /** @hidden */\n abstract containerRef: ViewContainerRef;\n\n /** @hidden */\n childContent: T | undefined = undefined;\n\n /** @hidden */\n protected _componentRef: ComponentRef<any> | EmbeddedViewRef<any>;\n\n /** @hidden */\n constructor(protected _elementRef: ElementRef, protected _componentFactoryResolver: ComponentFactoryResolver) {}\n\n /** @hidden Load received content */\n protected abstract _loadContent(): void;\n\n /** @hidden Load received content as component */\n protected _createFromComponent(content: Type<any>): void {\n this.containerRef.clear();\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(content);\n this._componentRef = this.containerRef.createComponent(componentFactory);\n }\n\n /** @hidden Load received content as embedded view */\n protected _createFromTemplate(content: TemplateRef<any>, context: any): void {\n this.containerRef.clear();\n this._componentRef = this.containerRef.createEmbeddedView(content, context);\n }\n}\n","import { Nullable } from '@fundamental-ngx/core/shared';\n\n/**\n * Utility type, that allows to track and select ranges of elements while using multi-selection.\n *\n * @usage\n * Imagine we have a simple list of checkboxes:\n * ```html\n * <input\n * #checkboxInput\n * *ngFor=\"let o of options; let idx = index\"\n * type=\"checkbox\"\n * [checked]=\"selectionModel.checked(o)\"\n * (click)=\"toggle(idx, $event)\"\n * >\n * ```\n * With the given layout the logic should be as follows:\n * ```typescript\n * export class YourComponent {\n * options = ['a', 'b', 'c'];\n * readonly selectionModel = new SelectionModel(true);\n *\n * private readonly _rangeSelector = new RangeSelector();\n *\n *\n * toggle(idx: number, event: PointerEvent): void {\n * // getting the toggled value of the checkbox\n * const toggledSelection = event.target.value;\n *\n * // registering the selection of current checkbox\n * this._rangeSelector.onRangeElementToggled(idx, event);\n *\n * // Apply value to each element in range.\n * // If checkbox was toggled without shift pressed or without previously selected one,\n * // this method will select only it.\n * this._rangeSelector.applyValueToEachInRange(idx => {\n * if (toggledSelection) {\n * this.selectionModel.select(options[idx]);\n * } else {\n * this.selectionModel.deselect(options[idx]);\n * }\n * });\n * }\n * }\n * ```\n */\nexport class RangeSelector {\n /** @hidden */\n private _previousSelectedIndex: number | null = null;\n /** @hidden */\n private _state: RangeSelectionState | null;\n\n /**\n * Last registered selection state (either multiple or single).\n * Is updated on each `onRangeElementClicked` invokation. Will be `null` initially or once `reset()` is called.\n */\n get lastRangeSelectionState(): RangeSelectionState | null {\n return this._state ? { ...this._state } : null;\n }\n\n /**\n * The method that should be used to register each checkbox toggle.\n * Accepts two arguments: `index` and `event`. If none provided, will reset existing state.\n * Otherwise will register current index as last checked.\n *\n * If toggling was done with \"shift\" pressed and there's a previously registered index, will register a range selection.\n * At the same time if checkbox was toggled without shift pressed or without previously selected one, this method will select only it.\n *\n * After calling this method it's recommended to use `applyValueToEachInRange` to actually toggle each checkbox in range.\n *\n * See usage example on this class itself.\n */\n onRangeElementToggled(index?: number, event?: KeyboardEvent | MouseEvent | TouchEvent): RangeSelectionState | null {\n if (\n this._isNonNegativeInteger(this._previousSelectedIndex) &&\n this._isNonNegativeInteger(index) &&\n event?.shiftKey\n ) {\n this._state = {\n isRangeSelection: true,\n from: Math.min(this._previousSelectedIndex, index),\n to: Math.max(this._previousSelectedIndex, index)\n };\n this._previousSelectedIndex = index;\n } else if (this._isNonNegativeInteger(index)) {\n this._state = { isRangeSelection: false, from: index, to: index };\n this._previousSelectedIndex = index;\n } else {\n this.reset();\n }\n\n return this.lastRangeSelectionState;\n }\n\n /**\n * Allows to apply selection to each item in selection range.\n * Accepts a function to apply selection to each item by registered index.\n *\n * See usage example on this class itself.\n */\n applyValueToEachInRange(selectionMethod: (index: number) => void): void {\n const state = this.lastRangeSelectionState;\n\n if (this._isNonNegativeInteger(state?.from) && this._isNonNegativeInteger(state?.to)) {\n for (let index = state!.from; index <= state!.to; index++) {\n selectionMethod(index);\n }\n }\n }\n\n /** Resets selection state. Useful when the list of selectable items is changed (e.g. by filtering, sorting, page change) */\n reset(): void {\n this._state = null;\n this._previousSelectedIndex = null;\n }\n\n /** @hidden */\n private _isNonNegativeInteger(num: Nullable<number>): num is number {\n return Number.isInteger(num) && num! >= 0;\n }\n}\n\nexport interface RangeSelectionState {\n isRangeSelection: boolean;\n from: number;\n to: number;\n}\n","export const MOBILE_CONFIG_ERROR = `Missing configuration object for mobile version of the component.\n Consult the documentation on how to provide MobileModeConfiguration object for this component.\n`;\n\nexport const THEME_SWITCHER_ROUTER_MISSING_ERROR = `You need to import RouterModule to enable theme settings via the url.`;\n\nexport const INVALID_DATE_ERROR = 'Invalid Date';\n","/**\n * Instead of `/\\p{L}/u` because of it's not working in IE11 and Edge\n * - https://github.com/Microsoft/ChakraCore/issues/2969\n * */\n// eslint-disable-next-line max-len\nexport const LETTERS_UNICODE_RANGE = `[A-Za-z\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]`;\n// eslint-disable-next-line max-len\nexport const ANY_LANGUAGE_LETTERS_REGEX = new RegExp(LETTERS_UNICODE_RANGE, 'g');\n// eslint-disable-next-line max-len\nexport const ANY_LANGUAGE_LETTERS_GROUP_REGEX = new RegExp(`(${LETTERS_UNICODE_RANGE})+`, 'g');\n","/**\n * Polyfill for `/\\p{Nd}/u` to work in IE11 and Edge\n */\n// eslint-disable-next-line max-len\nexport const DECIMAL_NUMBER_UNICODE_RANGE = `[0-9\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0DE6-\\u0DEF\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uA9F0-\\uA9F9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19]`;\nexport const DECIMAL_NUMBER_UNICODE_REGEX = new RegExp(DECIMAL_NUMBER_UNICODE_RANGE, 'g');\nexport const DECIMAL_NUMBER_UNICODE_GROUP_REGEX = new RegExp(`(${DECIMAL_NUMBER_UNICODE_RANGE})+`, 'g');\n","export type OverflowPriority = 'always' | 'never' | 'low' | 'high' | 'disappear';\n\nexport const OVERFLOW_PRIORITY_SCORE: Map<OverflowPriority, number> = new Map([\n ['always', 0],\n ['disappear', 1],\n ['low', 2],\n ['high', 3],\n ['never', 4]\n]);\n","import { Injectable, isDevMode, Optional } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\nimport { THEME_SWITCHER_ROUTER_MISSING_ERROR } from '../consts';\n\nexport interface ThemeServiceOutput {\n themeUrl: SafeResourceUrl;\n customThemeUrl: SafeResourceUrl;\n}\n\nexport interface Theme {\n id: string;\n name: string;\n description?: string;\n}\n\n@Injectable()\n/**\n * @deprecated\n * Service providing theme switcher functionality.\n * Deprecated since 0.35.0 in favor of ThemingService from ThemingModule\n */\nexport class ThemesService {\n /** Available themes */\n themes: Theme[] = [\n {\n id: 'sap_horizon',\n name: 'Morning Horizon (Light)'\n },\n {\n id: 'sap_horizon_dark',\n name: 'Evening Horizon (Dark)'\n },\n {\n id: 'sap_horizon_hcb',\n name: 'Horizon High Contrast Black',\n description: 'Optimized contrast and accessibiliwty for extremely bright environments'\n },\n {\n id: 'sap_horizon_hcw',\n name: 'Horizon High Contrast White Horizon',\n description: 'Optimized contrast and accessibility for extremely dark environments'\n },\n {\n id: 'sap_fiori_3',\n name: 'Quartz Light',\n description: 'Use in regular office environment'\n },\n {\n id: 'sap_fiori_3_dark',\n name: 'Quartz Dark',\n description: 'Use in dimmed environments'\n },\n {\n id: 'sap_fiori_3_hcb',\n name: 'Quartz High Contrast Black',\n description: 'Optimized contrast and accessibility for extremely bright environments'\n },\n {\n id: 'sap_fiori_3_hcw',\n name: 'Quartz High Contrast White',\n description: 'Optimized contrast and accessibility for extremely dark environments'\n },\n {\n id: 'sap_fiori_3_light_dark',\n name: 'Quartz Auto (Depending on the OS Settings)'\n }\n ];\n\n /** Subject triggered, when the theming is changed by URL parameter */\n readonly onThemeQueryParamChange: Subject<ThemeServiceOutput> = new Subject<ThemeServiceOutput>();\n\n /** @hidden **/\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n constructor(@Optional() private _activatedRoute: ActivatedRoute, private _sanitizer: DomSanitizer) {}\n\n /**\n * Set theme according to additional URL parameter.\n * This parameter can be changed in function argument.\n * By default it's `theme`.\n **/\n setThemeByRoute(themeParamName?: string): void {\n const paramName = themeParamName || 'theme';\n\n if (!this._activatedRoute) {\n throw new Error(THEME_SWITCHER_ROUTER_MISSING_ERROR);\n }\n\n this._activatedRoute.queryParams\n .pipe(\n takeUntil(this._onDestroy$),\n filter((param) => param && param[paramName])\n )\n .subscribe((param) => this._propagateThemes(param[paramName]));\n\n const nativeTheme = this._getNativeParameterByName(paramName);\n if (nativeTheme) {\n this._propagateThemes(nativeTheme);\n }\n }\n\n /** Method to get once theme object directly from url. */\n getThemesFromURL(param?: string): ThemeServiceOutput | undefined {\n const paramName = param || 'theme';\n\n const nativeTheme = this._getNativeParameterByName(paramName);\n if (!nativeTheme && isDevMode()) {\n console.warn('There is no theme param set named: ' + param);\n return;\n }\n\n return {\n themeUrl: this.setTheme(nativeTheme),\n customThemeUrl: this.setCustomTheme(nativeTheme)\n };\n }\n\n /** Assign css file corresponding to chosen theme from @sap-theming **/\n setTheme(theme: string): SafeResourceUrl {\n return this._sanitizer.bypassSecurityTrustResourceUrl('assets/theming-base/' + theme + '/css_variables.css');\n }\n\n /** Assign css file corresponding to chosen theme fundamental-styles **/\n setCustomTheme(theme: string): SafeResourceUrl {\n return this._sanitizer.bypassSecurityTrustResourceUrl('assets/fundamental-styles-theming/' + theme + '.css');\n }\n\n /** @hidden */\n private _getNativeParameterByName(paramName: string): string {\n paramName = paramName.replace(/[[\\]]/g, '\\\\$&');\n const regex = new RegExp('[?&]' + paramName + '(=([^&#]*)|&|#|$)'),\n results = regex.exec(window.location.href);\n if (!results || !results[2]) {\n return '';\n }\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\n }\n\n /** @hidden */\n private _propagateThemes(theme: string): void {\n this.onThemeQueryParamChange.next({\n themeUrl: this.setTheme(theme),\n customThemeUrl: this.setCustomTheme(theme)\n });\n }\n}\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { QueryList } from '@angular/core';\nimport { KeyboardSupportItemInterface } from '../../interfaces/keyboard-support-item.interface';\nimport { merge, Subject } from 'rxjs';\nimport { filter, startWith, takeUntil, tap } from 'rxjs/operators';\nimport { KeyUtil } from '../../functions';\nimport { DOWN_ARROW, hasModifierKey, TAB, UP_ARROW } from '@angular/cdk/keycodes';\n\nexport type FocusEscapeDirection = 'up' | 'down';\n\nexport class KeyboardSupportService<T> {\n /** Subject that is thrown, when focus escapes the list */\n focusEscapeList = new Subject<FocusEscapeDirection>();\n\n /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** An RxJS Subject that will kill the data stream upon queryList changes (for unsubscribing) */\n private readonly _onRefresh$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n private _keyManager: FocusKeyManager<T>;\n\n /** @hidden */\n get keyManager(): FocusKeyManager<T> {\n return this._keyManager;\n }\n\n /** @hidden */\n private _itemList: QueryList<KeyboardSupportItemInterface & T>;\n\n /** @hidden\n * allow tab key navigation. default is true.\n */\n private _tabKeyNavigation = true;\n\n /** @hidden */\n setKeyboardService(\n queryList: QueryList<KeyboardSupportItemInterface & T>,\n wrap?: boolean,\n tabKeyNavigation = true\n ): void {\n this._itemList = queryList;\n this._tabKeyNavigation = tabKeyNavigation;\n this._keyManager = new FocusKeyManager(queryList).withWrap(wrap).withHomeAndEnd();\n queryList.changes\n .pipe(takeUntil(this._onDestroy$), startWith(0))\n .subscribe(() => this._refreshEscapeLogic(queryList));\n }\n\n /** @hidden */\n onKeyDown(event: KeyboardEvent): void {\n this._keyManager.onKeydown(event);\n if (KeyUtil.isKeyCode(event, TAB)) {\n if (KeyUtil.isKeyCode(event, TAB) && this._tabKeyNavigation) {\n event.preventDefault();\n hasModifierKey(event, 'shiftKey')\n ? this.keyManager.setPreviousItemActive()\n : this.keyManager.setNextItemActive();\n }\n }\n }\n\n /** Destroys KeyboardSupportService dependencies */\n onDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /** @hidden */\n private _refreshEscapeLogic(queryList: QueryList<KeyboardSupportItemInterface & T>): void {\n const createEscapeListener = (\n listItem: KeyboardSupportItemInterface & T,\n onKeyCode: number,\n escapeDirection: FocusEscapeDirection\n ): void => {\n listItem.keyDown\n .pipe(\n takeUntil(unsubscribe$),\n filter((event) => KeyUtil.isKeyCode(event, onKeyCode)),\n tap((event) => event.preventDefault())\n )\n .subscribe(() => this.focusEscapeList.next(escapeDirection));\n };\n\n /** Finish all of the streams, form before */\n this._onRefresh$.next();\n\n const unsubscribe$ = merge(this._onRefresh$, this._onDestroy$);\n\n if (queryList.length) {\n createEscapeListener(queryList.last, DOWN_ARROW, 'down');\n createEscapeListener(queryList.first, UP_ARROW, 'up');\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { createFocusTrap, FocusTrap, Options } from 'focus-trap';\nimport { uuidv4 } from '../functions/uuidv4-generator';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FocusTrapService {\n /** @hidden */\n private _focusTrapInstances: Map<any, FocusTrap> = new Map();\n\n /**\n * Creates focus trap instance for defined element\n * @param element Container for which to create focus trap\n * @param userOptions Focus-trap specific configuration\n * @returns {string} Unique ID of focus trap instance\n */\n createFocusTrap(\n element: string | HTMLElement | SVGElement | (string | HTMLElement | SVGElement)[],\n userOptions?: Options\n ): string {\n const uid = uuidv4();\n\n const trap = createFocusTrap(element, userOptions);\n\n this._focusTrapInstances.set(uid, trap);\n\n this.activateFocusTrap(uid);\n\n return uid;\n }\n\n /**\n * Activates focus trap for defined ID\n * @param id Unique ID of focus trap instance\n */\n activateFocusTrap(id: string): void {\n if (!this._focusTrapExists(id)) {\n return;\n }\n\n const trap = this.getFocusTrapInstance(id);\n\n trap?.activate();\n }\n\n /**\n * Deactivates focus trap for defined ID\n * @param id Unique ID of focus trap instance\n */\n deactivateFocusTrap(id: string): void {\n if (!this._focusTrapExists(id)) {\n return;\n }\n\n const trap = this.getFocusTrapInstance(id);\n\n trap?.deactivate();\n\n this._focusTrapInstances.delete(id);\n }\n\n /**\n * Pauses current focus trap.\n */\n pauseCurrentFocusTrap(): void {\n if (this._focusTrapInstances.size === 0) {\n return;\n }\n\n const trapItem = this._getLastTrapedItem();\n\n trapItem?.pause();\n }\n\n /**\n * Unpauses current focus trap.\n */\n unpauseCurrentFocusTrap(): void {\n if (this._focusTrapInstances.size === 0) {\n return;\n }\n\n const trapItem = this._getLastTrapedItem();\n\n trapItem?.unpause();\n }\n\n /**\n * Get focus trap instance by ID.\n * @param id ID of the instance.\n * @returns Focus trap instance if exists.\n */\n getFocusTrapInstance(id: string): FocusTrap | undefined {\n return this._focusTrapInstances.get(id);\n }\n\n /** @hidden */\n private _getLastTrapedItem(): FocusTrap | undefined {\n const lastItem = Array.from(this._focusTrapInstances).pop();\n\n return lastItem ? lastItem[1] : undefined;\n }\n\n /** @hidden */\n private _focusTrapExists(id: string): boolean {\n return this._focusTrapInstances.has(id);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RtlService } from './services/rtl.service';\nimport { ThemesService } from './services/themes.service';\nimport { KeyboardSupportService } from './services/keyboard-support/keyboard-support.service';\nimport { FocusTrapService } from './services/focus-trap.service';\n\n@NgModule({\n imports: [CommonModule],\n exports: [],\n providers: [RtlService, ThemesService, KeyboardSupportService, FocusTrapService]\n})\nexport class UtilsModule {}\n","import { Injectable, isDevMode } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { distinctUntilChanged, map, startWith } from 'rxjs/operators';\nimport { isCompactDensity } from '../functions/is-compact-density';\nimport { ContentDensity } from '../interfaces/content-density';\n\nexport const DEFAULT_CONTENT_DENSITY: ContentDensity = 'cozy';\n\n/**\n * Service taking care of ContentDensity\n */\n@Injectable()\nexport class ContentDensityService {\n /** Content Density BehaviourSubject */\n readonly contentDensity = new BehaviorSubject(DEFAULT_CONTENT_DENSITY);\n\n /** @hidden */\n constructor() {\n if (isDevMode()) {\n console.warn(\n `[Deprecated] ContentDensityService is deprecated and will be removed in the next major version.\n Please use ContentDensityControllerService instead, or use the ContentDensityModule forRoot method.`\n );\n }\n }\n\n /** @hidden */\n get _contentDensityListener(): Observable<ContentDensity> {\n return this.contentDensity.pipe(distinctUntilChanged(), startWith(this.contentDensity.getValue()));\n }\n\n /** @hidden */\n get _isCompactDensity(): Observable<boolean> {\n return this._contentDensityListener.pipe(map((density) => isCompactDensity(density)));\n }\n}\n","import { ElementRef, Injectable, OnDestroy } from '@angular/core';\nimport { Observable, Observer, Subject } from 'rxjs';\nimport { coerceElement } from '@angular/cdk/coercion';\n\ninterface ObservedElement {\n observer: ResizeObserver | null;\n readonly stream: Subject<ResizeObserverEntry[]>;\n count: number;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ResizeObserverFactory {\n /** Factory to create ResizeObserver if it's present in browser. */\n create(callback: ResizeObserverCallback): ResizeObserver | null {\n return typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(callback);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ResizeObserverService implements OnDestroy {\n /** @hidden */\n private _observedElements = new Map<Element, ObservedElement>();\n\n /** @hidden */\n constructor(private _resizeObserverFactory: ResizeObserverFactory) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._observedElements.forEach((_, element) => this._cleanupObserver(element));\n }\n\n /** Observe the given element and emit whenever its size changes. */\n observe(elementOrRef: Element | ElementRef<Element>): Observable<ResizeObserverEntry[]> {\n const element = coerceElement(elementOrRef);\n\n return new Observable((observer: Observer<ResizeObserverEntry[]>) => {\n const stream = this._observeElement(element);\n const subscription = stream.subscribe(observer);\n\n return () => {\n subscription.unsubscribe();\n this._unobserveElement(element);\n };\n });\n }\n\n /**\n * Observes the given element by using the existing MutationObserver if available, or creating a\n * new one if not.\n */\n private _observeElement(element: Element): Subject<ResizeObserverEntry[]> {\n if (!this._observedElements.has(element)) {\n const stream = new Subject<ResizeObserverEntry[]>();\n const observer = this._resizeObserverFactory.create((mutations) => stream.next(mutations));\n if (observer) {\n observer.observe(element);\n }\n this._observedElements.set(element, { observer, stream, count: 1 });\n } else {\n this._observedElements.get(element)!.count++;\n }\n return this._observedElements.get(element)!.stream;\n }\n\n /**\n * Un-observes the given element and cleans up the underlying MutationObserver if nobody else is\n * observing this element.\n */\n private _unobserveElement(element: Element): void {\n if (this._observedElements.has(element)) {\n this._observedElements.get(element)!.count--;\n if (!this._observedElements.get(element)!.count) {\n this._cleanupObserver(element);\n }\n }\n }\n\n /** Clean up the underlying MutationObserver for the specified element. */\n private _cleanupObserver(element: Element): void {\n if (this._observedElements.has(element)) {\n const { observer, stream } = this._observedElements.get(element)!;\n if (observer) {\n observer.disconnect();\n }\n stream.complete();\n this._observedElements.delete(element);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nclass MockStorage {\n readonly length: number;\n\n // eslint-disable-next-line\n key(index: number): any {}\n\n clear(): void {}\n\n // eslint-disable-next-line\n getItem(key: string): any {}\n\n // eslint-disable-next-line\n removeItem(key: string): void {}\n\n // eslint-disable-next-line\n setItem(key: string, value: string): void {}\n}\n\n@Injectable({ providedIn: 'root' })\nexport class LocalStorageService {\n /** @hidden */\n private _storage: Storage;\n\n /** @hidden */\n constructor() {\n typeof localStorage !== 'undefined' ? (this._storage = localStorage) : (this._storage = new MockStorage());\n }\n\n /** Get item from local storage. */\n get(key: string): any {\n const value = this._storage.getItem(key);\n if (value) {\n return JSON.parse(value);\n }\n return null;\n }\n\n /** Set item in local storage. */\n set(key: string, value: any): void {\n this._storage.setItem(key, JSON.stringify(value));\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\n\n@Injectable()\nexport class DestroyedService extends ReplaySubject<void> implements OnDestroy {\n /** @hidden */\n constructor() {\n super(1);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.next();\n this.complete();\n }\n}\n","import { ElementRef, OnChanges, OnInit, Input, Directive } from '@angular/core';\n\n/*\n This abstract class allows the user to set their own custom styles on a Fundamental Library for Angular directive, in addition to the\n styles the library needs to add itself.\n When library styles were added through the directive's host: {'[class]'} property, any styles the user added would be\n overwritten. By extending this class, we instead add library styles to the user's classList rather than replace them.\n */\n\n/** @hidden */\n@Directive()\nexport abstract class AbstractFdNgxClass implements OnInit, OnChanges {\n /** @hidden */\n private _elementRef: ElementRef;\n\n /** @hidden */\n @Input() class: string; // user's custom classes\n\n /*\n each directive that extends this class will implement this function and populate it with one or more calls to\n the '_addClassToElement' function, passing the style names to be added with each call\n */\n /** @hidden */\n abstract _setProperties(): void;\n\n /** @hidden */\n _setClassToElement(className: string): void {\n (this._elementRef.nativeElement as HTMLElement).classList.value = `${className} ${this.class}`;\n }\n\n /** @hidden */\n _clearElementClass(): void {\n (this._elementRef.nativeElement as HTMLElement).classList.value = '';\n }\n\n /** @hidden */\n _addClassToElement(className: string): void {\n (this._elementRef.nativeElement as HTMLElement).classList.add(...className.split(' '));\n }\n\n /** @hidden */\n _addStyleToElement(attribute, value): void {\n (this._elementRef.nativeElement as HTMLElement).style[attribute] = value;\n }\n\n /** @hidden */\n protected constructor(elementRef: ElementRef) {\n this._elementRef = elementRef;\n this._setProperties();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n const classList = (this._elementRef.nativeElement as HTMLElement).classList;\n while (classList.length > 0) {\n classList.remove(classList.item(0)!);\n }\n if (this.class) {\n this._addClassToElement(this.class);\n }\n this._setProperties();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._setProperties();\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const LIST_ITEM_COMPONENT = new InjectionToken<string[]>('ListItemComponent');\n\nexport interface ListItemInterface {\n selected: boolean;\n}\n","/** Apply a mixin to a class. */\nexport function applyMixins(derivedCtor: any, baseCtors: any[]): any {\n baseCtors.forEach((baseCtor) => {\n Object.getOwnPropertyNames(baseCtor.prototype).forEach((name) => {\n if (name !== 'constructor') {\n derivedCtor.prototype[name] = baseCtor.prototype[name];\n }\n });\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.RtlService","i1.TabbableElementService","i1","i1.FocusKeyManagerListDirective","i1.DndKeyboardGroupDirective","i2"],"mappings":"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"}
|