@fundamental-ngx/core 0.44.0-rc.2 → 0.44.0-rc.4
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/avatar/avatar.component.d.ts +0 -1
- package/bar/directives/bar-element.directive.d.ts +6 -3
- package/breadcrumb/breadcrumb.component.d.ts +4 -4
- package/carousel/carousel.component.d.ts +8 -2
- package/content-density/providers/content-density-observer-providers.d.ts +1 -1
- package/content-density/services/content-density-observer.service.d.ts +3 -3
- package/date-picker/date-picker.component.d.ts +30 -9
- package/datetime-picker/datetime-picker.component.d.ts +28 -10
- package/dialog/dialog-container/dialog-container.component.d.ts +4 -4
- package/dialog/dialog-footer-button/dialog-footer-button.component.d.ts +2 -0
- package/dialog/directives/dialog-decisive-button.directive.d.ts +2 -0
- package/dialog/utils/dialog-config.class.d.ts +1 -1
- package/esm2022/action-bar/action-bar.component.mjs +10 -3
- package/esm2022/alert/alert-service/alert.service.mjs +12 -3
- package/esm2022/alert/alert-utils/alert-config.mjs +11 -3
- package/esm2022/alert/alert-utils/alert-container.component.mjs +11 -3
- package/esm2022/alert/alert-utils/alert-ref.mjs +11 -3
- package/esm2022/alert/alert.component.mjs +17 -3
- package/esm2022/alert/alert.module.mjs +11 -3
- package/esm2022/avatar/avatar.component.mjs +2 -2
- package/esm2022/bar/directives/bar-element.directive.mjs +15 -7
- package/esm2022/breadcrumb/breadcrumb.component.mjs +9 -11
- package/esm2022/carousel/carousel.component.mjs +34 -5
- package/esm2022/combobox/combobox-mobile/combobox-mobile.component.mjs +1 -1
- package/esm2022/content-density/providers/content-density-observer-providers.mjs +4 -4
- package/esm2022/content-density/services/content-density-observer.service.mjs +13 -13
- package/esm2022/date-picker/date-picker.component.mjs +103 -10
- package/esm2022/datetime-picker/datetime-picker.component.mjs +78 -8
- package/esm2022/dialog/dialog-container/dialog-container.component.mjs +12 -13
- package/esm2022/dialog/dialog-footer-button/dialog-footer-button.component.mjs +8 -3
- package/esm2022/dialog/dialog-header/dialog-header.component.mjs +1 -1
- package/esm2022/dialog/directives/dialog-decisive-button.directive.mjs +6 -2
- package/esm2022/dialog/utils/dialog-config.class.mjs +1 -1
- package/esm2022/feed-list-item/components/item/feed-list-item.component.mjs +23 -1
- package/esm2022/form/form-label/form-label.component.mjs +21 -5
- package/esm2022/list/list-item/list-item.component.mjs +36 -1
- package/esm2022/menu/menu-mobile/menu-mobile.component.mjs +1 -1
- package/esm2022/message-box/directives/message-box-decisive-button.directive.mjs +6 -2
- package/esm2022/message-box/message-box-container/message-box-container.component.mjs +12 -15
- package/esm2022/message-box/message-box-footer-button/message-box-footer-button.component.mjs +8 -3
- package/esm2022/message-box/message-box-header/message-box-header.component.mjs +1 -1
- package/esm2022/message-strip/alert/message-strip-alert-container-footer/message-strip-alert-container-footer.component.mjs +8 -9
- package/esm2022/message-strip/auto-dismiss-message-strip.directive.mjs +10 -9
- package/esm2022/message-strip/message-strip.component.mjs +12 -1
- package/esm2022/multi-combobox/base-multi-combobox.class.mjs +17 -14
- package/esm2022/multi-combobox/mobile/mobile-multi-combobox.component.mjs +1 -1
- package/esm2022/multi-combobox/multi-combobox.component.mjs +44 -45
- package/esm2022/multi-combobox/select-all-toggler/select-all-toggler.component.mjs +8 -10
- package/esm2022/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +1 -1
- package/esm2022/overflow-layout/directives/overflow-layout-popover-content.directive.mjs +9 -11
- package/esm2022/pagination/pagination.component.mjs +140 -2
- package/esm2022/popover/base/base-popover.class.mjs +25 -1
- package/esm2022/popover/popover.component.mjs +28 -17
- package/esm2022/product-switch/product-switch/product-switch.component.mjs +11 -1
- package/esm2022/quick-view/quick-view-title/quick-view-title.component.mjs +1 -1
- package/esm2022/segmented-button/segmented-button.component.mjs +19 -21
- package/esm2022/select/select.component.mjs +17 -10
- package/esm2022/shellbar/shellbar-actions/shellbar-actions.component.mjs +12 -1
- package/esm2022/shellbar/shellbar.component.mjs +12 -11
- package/esm2022/side-navigation/side-navigation.component.mjs +12 -3
- package/esm2022/slider/slider.component.mjs +83 -13
- package/esm2022/split-button/split-button.component.mjs +34 -16
- package/esm2022/splitter/splitter-pagination/splitter-pagination.component.mjs +9 -2
- package/esm2022/splitter/splitter.component.mjs +16 -5
- package/esm2022/step-input/step-input.component.mjs +46 -24
- package/esm2022/switch/switch.component.mjs +25 -3
- package/esm2022/table/directives/table-cell.directive.mjs +5 -7
- package/esm2022/table/directives/table-row.directive.mjs +17 -20
- package/esm2022/table/table.component.mjs +10 -9
- package/esm2022/tabs/tab-item-expand/tab-item-expand.component.mjs +11 -1
- package/esm2022/tabs/tab-list.component.mjs +40 -31
- package/esm2022/text/text.component.mjs +23 -1
- package/esm2022/time/i18n/time-i18n.mjs +2 -2
- package/esm2022/token/token.component.mjs +36 -14
- package/esm2022/toolbar/toolbar.component.mjs +33 -26
- package/esm2022/tree/components/tree-item/tree-item.component.mjs +21 -21
- package/esm2022/tree/tree.component.mjs +23 -22
- package/esm2022/upload-collection/upload-collection-button-group/upload-collection-button-group.component.mjs +67 -1
- package/esm2022/upload-collection/upload-collection-form-item/upload-collection-form-item.component.mjs +12 -1
- package/feed-list-item/components/item/feed-list-item.component.d.ts +8 -2
- package/fesm2022/fundamental-ngx-core-action-bar.mjs +9 -2
- package/fesm2022/fundamental-ngx-core-action-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-alert.mjs +58 -13
- package/fesm2022/fundamental-ngx-core-alert.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-avatar.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-avatar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-bar.mjs +14 -6
- package/fesm2022/fundamental-ngx-core-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +9 -10
- package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-carousel.mjs +32 -3
- package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-combobox.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-content-density.mjs +15 -14
- package/fesm2022/fundamental-ngx-core-content-density.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-date-picker.mjs +102 -9
- package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +77 -7
- package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-dialog.mjs +23 -13
- package/fesm2022/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-feed-list-item.mjs +22 -0
- package/fesm2022/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-form.mjs +20 -4
- package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-list.mjs +35 -0
- package/fesm2022/fundamental-ngx-core-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-menu.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-box.mjs +24 -15
- package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-strip.mjs +27 -14
- package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +63 -64
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-multi-input.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-overflow-layout.mjs +9 -10
- package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-pagination.mjs +139 -1
- package/fesm2022/fundamental-ngx-core-pagination.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-popover.mjs +51 -16
- package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-product-switch.mjs +10 -0
- package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-quick-view.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-quick-view.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-segmented-button.mjs +17 -19
- package/fesm2022/fundamental-ngx-core-segmented-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-select.mjs +16 -9
- package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-shellbar.mjs +22 -10
- package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-side-navigation.mjs +11 -2
- package/fesm2022/fundamental-ngx-core-side-navigation.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-slider.mjs +82 -12
- package/fesm2022/fundamental-ngx-core-slider.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-split-button.mjs +32 -13
- package/fesm2022/fundamental-ngx-core-split-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-splitter.mjs +23 -5
- package/fesm2022/fundamental-ngx-core-splitter.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-step-input.mjs +45 -23
- package/fesm2022/fundamental-ngx-core-step-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-switch.mjs +24 -2
- package/fesm2022/fundamental-ngx-core-switch.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-table.mjs +26 -30
- package/fesm2022/fundamental-ngx-core-table.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tabs.mjs +51 -31
- package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-text.mjs +22 -0
- package/fesm2022/fundamental-ngx-core-text.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-time.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-time.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-token.mjs +36 -13
- package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-toolbar.mjs +31 -24
- package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tree.mjs +38 -38
- package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs +77 -0
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs.map +1 -1
- package/form/form-label/form-label.component.d.ts +8 -2
- package/fundamental-ngx-core-v0.44.0-rc.4.tgz +0 -0
- package/list/list-item/list-item.component.d.ts +16 -4
- package/message-box/directives/message-box-decisive-button.directive.d.ts +2 -0
- package/message-box/message-box-container/message-box-container.component.d.ts +4 -6
- package/message-box/message-box-footer-button/message-box-footer-button.component.d.ts +2 -0
- package/message-strip/alert/message-strip-alert-container-footer/message-strip-alert-container-footer.component.d.ts +1 -1
- package/message-strip/auto-dismiss-message-strip.directive.d.ts +3 -3
- package/message-strip/message-strip.component.d.ts +4 -1
- package/multi-combobox/base-multi-combobox.class.d.ts +30 -30
- package/multi-combobox/multi-combobox.component.d.ts +17 -18
- package/multi-combobox/select-all-toggler/select-all-toggler.component.d.ts +1 -1
- package/overflow-layout/directives/overflow-layout-popover-content.directive.d.ts +5 -6
- package/package.json +3 -3
- package/pagination/pagination.component.d.ts +44 -11
- package/popover/base/base-popover.class.d.ts +12 -3
- package/popover/popover.component.d.ts +8 -5
- package/product-switch/product-switch/product-switch.component.d.ts +4 -1
- package/schematics/add-dependencies/index.js +4 -4
- package/segmented-button/segmented-button.component.d.ts +6 -7
- package/select/select.component.d.ts +9 -6
- package/shellbar/shellbar-actions/shellbar-actions.component.d.ts +6 -3
- package/shellbar/shellbar.component.d.ts +1 -1
- package/slider/slider.component.d.ts +13 -4
- package/split-button/split-button.component.d.ts +11 -6
- package/splitter/splitter.component.d.ts +5 -2
- package/step-input/step-input.component.d.ts +12 -6
- package/switch/switch.component.d.ts +10 -4
- package/table/directives/table-row.directive.d.ts +2 -4
- package/table/table.component.d.ts +3 -4
- package/tabs/tab-item-expand/tab-item-expand.component.d.ts +4 -1
- package/tabs/tab-list.component.d.ts +10 -8
- package/text/text.component.d.ts +8 -2
- package/time/i18n/time-i18n.d.ts +2 -2
- package/token/token.component.d.ts +13 -7
- package/toolbar/toolbar.component.d.ts +10 -7
- package/tree/components/tree-item/tree-item.component.d.ts +28 -28
- package/tree/tree.component.d.ts +7 -7
- package/upload-collection/upload-collection-button-group/upload-collection-button-group.component.d.ts +24 -6
- package/upload-collection/upload-collection-form-item/upload-collection-form-item.component.d.ts +6 -3
- package/fundamental-ngx-core-v0.44.0-rc.2.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-content-density.mjs","sources":["../../../../libs/core/src/lib/content-density/content-density.types.ts","../../../../libs/core/src/lib/content-density/tokens/content-density-directive.ts","../../../../libs/core/src/lib/content-density/types/content-density.mode.ts","../../../../libs/core/src/lib/content-density/helpers/density-type-checkers.ts","../../../../libs/core/src/lib/content-density/directives/content-density.directive.ts","../../../../libs/core/src/lib/content-density/tokens/default-content-density.token.ts","../../../../libs/core/src/lib/content-density/classes/abstract-content-density-storage.ts","../../../../libs/core/src/lib/content-density/providers/memory-content-density-storage.ts","../../../../libs/core/src/lib/content-density/services/global-content-density.service.ts","../../../../libs/core/src/lib/content-density/tokens/content-density-storage-key.token.ts","../../../../libs/core/src/lib/content-density/providers/local-content-density-storage.ts","../../../../libs/core/src/lib/content-density/providers/url-content-density-storage.ts","../../../../libs/core/src/lib/content-density/services/deprecated-content-density.service.ts","../../../../libs/core/src/lib/content-density/content-density.module.ts","../../../../libs/core/src/lib/content-density/classes/content-density-observer.settings.ts","../../../../libs/core/src/lib/content-density/helpers/get-changes-source.provider.ts","../../../../libs/core/src/lib/content-density/variables/default-content-density-consumer-config.ts","../../../../libs/core/src/lib/content-density/services/content-density-observer.service.ts","../../../../libs/core/src/lib/content-density/providers/content-density-observer-providers.ts","../../../../libs/core/src/lib/content-density/classes/deprecated-compact.directive.ts","../../../../libs/core/src/lib/content-density/classes/deprecated-cozy.directive.ts","../../../../libs/core/src/lib/content-density/classes/deprecated-condensed.directive.ts","../../../../libs/core/src/lib/content-density/testing/mocked-local-content-density-directive.ts","../../../../libs/core/src/lib/content-density/classes/deprecated-content-density.directive.ts","../../../../libs/core/src/lib/content-density/fundamental-ngx-core-content-density.ts"],"sourcesContent":["import { Provider } from '@angular/core';\nimport { HasElementRef } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserverSettings } from './classes/content-density-observer.settings';\nimport { ContentDensityMode } from './types/content-density.mode';\n\nexport const ContentDensityGlobalKeyword = 'global';\nexport const ContentDensityDefaultKeyword = 'default';\n\nexport type LocalContentDensityMode =\n | ContentDensityMode\n | typeof ContentDensityGlobalKeyword\n | typeof ContentDensityDefaultKeyword;\n\ninterface BaseContentDensityModuleConfig {\n defaultGlobalContentDensity?: ContentDensityMode;\n}\n\ninterface LocalStorageConfig {\n storage: 'localStorage';\n storageKey?: string;\n}\n\ninterface UrlStorageConfig {\n storage: 'url';\n storageKey?: string;\n}\n\ninterface CustomStorageConfig {\n storage: Provider;\n}\n\ninterface MemoryStorageConfig {\n storage: 'memory';\n}\n\nexport type ContentDensityModuleConfig = (\n | LocalStorageConfig\n | MemoryStorageConfig\n | UrlStorageConfig\n | CustomStorageConfig\n) &\n BaseContentDensityModuleConfig;\n\nexport interface ContentDensityObserverTarget extends HasElementRef {\n contentDensitySettings?: ContentDensityObserverSettings;\n}\n\nexport type ContentDensityCallbackFn = (target: ContentDensityMode) => void;\n","import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { LocalContentDensityMode } from '../content-density.types';\n\nexport const CONTENT_DENSITY_DIRECTIVE = new InjectionToken<Observable<LocalContentDensityMode>>(\n 'ContentDensityDirective'\n);\n","export enum ContentDensityMode {\n COZY = 'cozy',\n CONDENSED = 'condensed',\n COMPACT = 'compact'\n}\n","import { ContentDensityGlobalKeyword } from '../content-density.types';\nimport { ContentDensityMode } from '../types/content-density.mode';\n\nexport const isCompact = (density: any): boolean => density === ContentDensityMode.COMPACT;\nexport const isCondensed = (density: any): boolean => density === ContentDensityMode.CONDENSED;\nexport const isCozy = (density: any): boolean => density === ContentDensityMode.COZY;\nexport const isContentDensityMode = (density: any): boolean =>\n isCompact(density) || isCondensed(density) || isCozy(density) || density === ContentDensityGlobalKeyword;\n","import { Directive, forwardRef, Input, isDevMode, OnDestroy } from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { BehaviorSubject } from 'rxjs';\nimport { ContentDensityGlobalKeyword, LocalContentDensityMode } from '../content-density.types';\nimport { CONTENT_DENSITY_DIRECTIVE } from '../tokens/content-density-directive';\nimport { isContentDensityMode } from '../helpers/density-type-checkers';\nimport { ContentDensityMode } from '../types/content-density.mode';\n\n/**\n * Directive to control the content density of the elements.\n * This Directive is used in density controllers and consumers\n */\n@Directive({\n selector: `[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]),\n [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]),\n [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]),\n [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])`,\n exportAs: 'fdContentDensity',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => ContentDensityDirective)\n }\n ],\n standalone: true\n})\nexport class ContentDensityDirective extends BehaviorSubject<LocalContentDensityMode> implements OnDestroy {\n /**\n * Update the content density of the element on the fly\n */\n @Input()\n set fdContentDensity(val: LocalContentDensityMode | '') {\n if (!isContentDensityMode(val)) {\n if (isDevMode() && val !== '') {\n console.log(\n `The value \"${val}\" is not a valid content density mode.\n Using \"${ContentDensityGlobalKeyword}\" instead.`\n );\n }\n val = ContentDensityGlobalKeyword;\n }\n this.next(val as LocalContentDensityMode);\n }\n\n /**\n * This input is basically syntax sugar, for not writing fdContentDensity=\"compact\",\n * instead you can just write fdCompact=\"true\" or [fdCompact]\n */\n @Input()\n set fdCompact(val: BooleanInput) {\n if (coerceBooleanProperty(val)) {\n this.next(ContentDensityMode.COMPACT);\n } else {\n this.next(ContentDensityGlobalKeyword);\n }\n }\n\n /**\n * This input is basically syntax sugar, for not writing fdContentDensity=\"condensed\",\n * instead you can just write fdCondensed=\"true\" or [fdCondensed]\n */\n @Input()\n set fdCondensed(val: BooleanInput) {\n if (coerceBooleanProperty(val)) {\n this.next(ContentDensityMode.CONDENSED);\n } else {\n this.next(ContentDensityGlobalKeyword);\n }\n }\n\n /**\n * This input is basically syntax sugar, for not writing fdContentDensity=\"cozy\",\n * instead you can just write fdCozy=\"true\" or [fdCozy]\n */\n @Input()\n set fdCozy(val: BooleanInput) {\n if (coerceBooleanProperty(val)) {\n this.next(ContentDensityMode.COZY);\n } else {\n this.next(ContentDensityGlobalKeyword);\n }\n }\n\n /** @hidden */\n constructor() {\n super(ContentDensityGlobalKeyword);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.complete();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ContentDensityMode } from '../types/content-density.mode';\n\nexport const DEFAULT_CONTENT_DENSITY = new InjectionToken<ContentDensityMode>('Default global content density', {\n factory: () => ContentDensityMode.COZY\n});\n","import { ContentDensityMode } from '../types/content-density.mode';\nimport { Observable } from 'rxjs';\n\n/**\n * Abstract provider class for providing content density storage functionality\n * Default implementation is MemoryContentDensityStorage\n */\nexport abstract class ContentDensityStorage {\n /**\n * Get listener for current density updates\n */\n abstract getContentDensity(): Observable<ContentDensityMode>;\n\n /**\n * Save updated configuration\n * @param density\n */\n abstract setContentDensity(density: ContentDensityMode): Observable<void>;\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { ContentDensityStorage } from '../classes/abstract-content-density-storage';\nimport { ContentDensityMode } from '../types/content-density.mode';\nimport { DEFAULT_CONTENT_DENSITY } from '../tokens/default-content-density.token';\n\n@Injectable()\nexport class MemoryContentDensityStorage implements ContentDensityStorage {\n /** @hidden */\n private _currentContentDensity$: BehaviorSubject<ContentDensityMode>;\n\n /** @hidden */\n constructor(@Inject(DEFAULT_CONTENT_DENSITY) defaultContentDensity: ContentDensityMode) {\n this._currentContentDensity$ = new BehaviorSubject(defaultContentDensity);\n }\n\n /** Content density observable */\n getContentDensity(): Observable<ContentDensityMode> {\n return this._currentContentDensity$.asObservable();\n }\n\n /** Change content density */\n setContentDensity(density: ContentDensityMode): Observable<void> {\n this._currentContentDensity$.next(density);\n return of(undefined);\n }\n}\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { ContentDensityStorage } from '../classes/abstract-content-density-storage';\nimport { Observable, Subscription } from 'rxjs';\nimport { ContentDensityMode } from '../types/content-density.mode';\nimport { DEFAULT_CONTENT_DENSITY } from '../tokens/default-content-density.token';\n\n/**\n * Service for managing global content density state.\n */\n@Injectable()\nexport class GlobalContentDensityService implements OnDestroy {\n /**\n * Current content density.\n */\n currentContentDensity: ContentDensityMode;\n\n /** @hidden */\n private _subscription = new Subscription();\n\n /** @hidden */\n constructor(\n @Inject(ContentDensityStorage) private _storage: ContentDensityStorage,\n @Inject(DEFAULT_CONTENT_DENSITY) private _defaultContentDensity: ContentDensityMode\n ) {\n this._subscription.add(\n this.contentDensityListener().subscribe((density) => {\n this.currentContentDensity = density;\n })\n );\n }\n\n /** Listen to current content density changes */\n contentDensityListener(): Observable<ContentDensityMode> {\n return this._storage.getContentDensity();\n }\n\n /** Update content density */\n updateContentDensity(density: ContentDensityMode): Observable<void> {\n return this._storage.setContentDensity(density);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscription.unsubscribe();\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const CONTENT_DENSITY_STORAGE_KEY = new InjectionToken<string>(\n 'Content density storage key for local storage or for url param',\n {\n factory: () => '__ContentDensity__'\n }\n);\n","import { Inject, Injectable } from '@angular/core';\nimport { LocalStorageService } from '@fundamental-ngx/cdk/utils';\nimport { Observable, of, Subject } from 'rxjs';\nimport { ContentDensityStorage } from '../classes/abstract-content-density-storage';\nimport { DEFAULT_CONTENT_DENSITY } from '../tokens/default-content-density.token';\nimport { CONTENT_DENSITY_STORAGE_KEY } from '../tokens/content-density-storage-key.token';\nimport { ContentDensityMode } from '../types/content-density.mode';\n\n@Injectable()\nexport class LocalContentDensityStorage implements ContentDensityStorage {\n /** @hidden */\n private _update$ = new Subject<void>();\n\n /** @hidden */\n constructor(\n @Inject(DEFAULT_CONTENT_DENSITY) private _defaultContentDensity: ContentDensityMode,\n @Inject(CONTENT_DENSITY_STORAGE_KEY) private _storageKey: string,\n private _storage: LocalStorageService\n ) {\n this._initialize();\n }\n\n /** Content density observable */\n getContentDensity(): Observable<ContentDensityMode> {\n return new Observable<ContentDensityMode>((subscriber) => {\n subscriber.next(this._storage.get(this._storageKey));\n const subscription = this._update$.subscribe(() => {\n subscriber.next(this._storage.get(this._storageKey));\n });\n return () => {\n subscription.unsubscribe();\n };\n });\n }\n\n /** Change content density */\n setContentDensity(density: ContentDensityMode): Observable<void> {\n this._storage.set(this._storageKey, density);\n this._update$.next();\n return of(undefined);\n }\n\n /** @hidden */\n private _initialize(): void {\n if (!this._storage.get(this._storageKey)) {\n this._storage.set(this._storageKey, this._defaultContentDensity);\n }\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ContentDensityStorage } from '../classes/abstract-content-density-storage';\nimport { DEFAULT_CONTENT_DENSITY } from '../tokens/default-content-density.token';\nimport { CONTENT_DENSITY_STORAGE_KEY } from '../tokens/content-density-storage-key.token';\nimport { ContentDensityMode } from '../types/content-density.mode';\nimport { BehaviorSubject, distinctUntilChanged, filter, Observable, of } from 'rxjs';\n\n@Injectable()\nexport class UrlContentDensityStorage implements ContentDensityStorage {\n /** @hidden */\n private _current$: BehaviorSubject<ContentDensityMode>;\n\n /** @hidden */\n constructor(\n private _router: Router,\n private _activatedRoute: ActivatedRoute,\n @Inject(DEFAULT_CONTENT_DENSITY) private _defaultContentDensity: ContentDensityMode,\n @Inject(CONTENT_DENSITY_STORAGE_KEY) private _storageKey: string\n ) {\n this._initialize();\n }\n\n /** @hidden */\n private _initialize(): void {\n this._current$ = new BehaviorSubject<ContentDensityMode>(this._defaultContentDensity);\n\n this._activatedRoute.queryParams\n .pipe(filter((queryParams) => !!queryParams[this._storageKey]))\n .subscribe((queryParams) => {\n this._current$.next(queryParams[this._storageKey]);\n });\n }\n\n /** @hidden */\n private _setUrlQueryParam(density: ContentDensityMode): void {\n const url = new URL(`https://google.com${this._router.url}`);\n url.searchParams.delete(this._storageKey);\n url.searchParams.append(this._storageKey, density);\n const queryParams = {};\n url.searchParams.forEach((value, key) => (queryParams[key] = value));\n\n this._router.navigateByUrl(url.pathname + '?' + url.searchParams.toString());\n }\n\n /** Content density observable */\n getContentDensity(): Observable<ContentDensityMode> {\n return this._current$.asObservable().pipe(distinctUntilChanged());\n }\n\n /** Change content density */\n setContentDensity(density: ContentDensityMode): Observable<void> {\n this._current$.next(density);\n this._setUrlQueryParam(density);\n return of(undefined);\n }\n}\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { GlobalContentDensityService } from './global-content-density.service';\nimport { BehaviorSubject, Observable, skip, tap } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { isCompact } from '../helpers/density-type-checkers';\nimport { DEFAULT_CONTENT_DENSITY } from '../tokens/default-content-density.token';\nimport { ContentDensityMode } from '../types/content-density.mode';\n\n/**\n * Temporary replacement for ContentDensityService\n */\n@Injectable()\nexport class DeprecatedContentDensityService implements OnDestroy {\n /** Content Density BehaviourSubject */\n readonly contentDensity = new BehaviorSubject<ContentDensityMode>(this._defaultContentDensity);\n\n /** @hidden */\n constructor(\n private _contentDensityController: GlobalContentDensityService,\n @Inject(DEFAULT_CONTENT_DENSITY) private _defaultContentDensity: ContentDensityMode\n ) {\n this.contentDensity\n .pipe(\n skip(1),\n tap((d) => this._contentDensityController.updateContentDensity(d))\n )\n .subscribe();\n }\n\n /** @hidden */\n get _contentDensityListener(): Observable<ContentDensityMode> {\n return this._contentDensityController.contentDensityListener();\n }\n\n /** @hidden */\n get _isCompactDensity(): Observable<boolean> {\n return this._contentDensityController.contentDensityListener().pipe(map(isCompact));\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.contentDensity.complete();\n }\n}\n","import { ModuleWithProviders, NgModule, Provider } from '@angular/core';\nimport { CommonModule, DOCUMENT } from '@angular/common';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ContentDensityDirective } from './directives/content-density.directive';\nimport { DEFAULT_CONTENT_DENSITY } from './tokens/default-content-density.token';\nimport { ContentDensityModuleConfig } from './content-density.types';\nimport { ContentDensityStorage } from './classes/abstract-content-density-storage';\nimport { MemoryContentDensityStorage } from './providers/memory-content-density-storage';\nimport { GlobalContentDensityService } from './services/global-content-density.service';\nimport { LocalContentDensityStorage } from './providers/local-content-density-storage';\nimport { CONTENT_DENSITY_STORAGE_KEY } from './tokens/content-density-storage-key.token';\nimport { UrlContentDensityStorage } from './providers/url-content-density-storage';\nimport { ContentDensityService } from '@fundamental-ngx/cdk/utils';\nimport { DeprecatedContentDensityService } from './services/deprecated-content-density.service';\nimport { ContentDensityMode } from './types/content-density.mode';\n\nfunction generateContentDensityStorage(config: ContentDensityModuleConfig): Provider {\n if (config.storage === 'localStorage') {\n return {\n provide: ContentDensityStorage,\n useClass: LocalContentDensityStorage\n };\n }\n if (config.storage === 'memory') {\n return {\n provide: ContentDensityStorage,\n useClass: MemoryContentDensityStorage\n };\n }\n if (config.storage === 'url') {\n return {\n provide: ContentDensityStorage,\n useClass: UrlContentDensityStorage,\n deps: [Router, ActivatedRoute, DEFAULT_CONTENT_DENSITY, CONTENT_DENSITY_STORAGE_KEY, DOCUMENT]\n };\n }\n return [];\n}\n\n@NgModule({\n imports: [CommonModule, ContentDensityDirective],\n exports: [ContentDensityDirective]\n})\nexport class ContentDensityModule {\n /** Module with providers */\n static forRoot(config?: ContentDensityModuleConfig): ModuleWithProviders<ContentDensityModule> {\n let storage: Provider;\n const conf: ContentDensityModuleConfig = config || { storage: 'memory' };\n\n if (typeof conf.storage === 'string') {\n storage = generateContentDensityStorage(conf);\n } else if (typeof conf.storage === 'object') {\n storage = conf.storage;\n } else {\n storage = {\n provide: ContentDensityStorage,\n useClass: MemoryContentDensityStorage\n };\n }\n\n return {\n ngModule: ContentDensityModule,\n providers: [\n {\n provide: DEFAULT_CONTENT_DENSITY,\n useValue: conf.defaultGlobalContentDensity || ContentDensityMode.COZY\n },\n {\n provide: CONTENT_DENSITY_STORAGE_KEY,\n useValue: (conf as any).storageKey || '__ContentDensity__'\n },\n {\n provide: ContentDensityService,\n useClass: DeprecatedContentDensityService\n },\n GlobalContentDensityService,\n storage\n ]\n };\n }\n}\n","import { FactorySansProvider, ProviderToken } from '@angular/core';\nimport { ContentDensityMode } from '../types/content-density.mode';\n\nexport class ContentDensityObserverSettings {\n /** Classes to be added to the element. */\n modifiers?: Partial<Record<ContentDensityMode, string>>;\n /** Supported content densities. */\n supportedContentDensity?: ContentDensityMode[];\n /** Default content density. */\n defaultContentDensity?: ContentDensityMode | ProviderToken<ContentDensityMode> | FactorySansProvider;\n /** Whether in debug mode. */\n debug?: boolean;\n /** Whether to always add class modifiers. Useful for components that are detached from its parent component. */\n alwaysAddModifiers?: boolean;\n /** Whether to force child components to restrict supported content density with current component's one. */\n restrictChildContentDensity?: boolean;\n}\n","import { Observable, of, switchMap } from 'rxjs';\nimport { GlobalContentDensityService } from '../services/global-content-density.service';\nimport {\n ContentDensityDefaultKeyword,\n ContentDensityGlobalKeyword,\n LocalContentDensityMode\n} from '../content-density.types';\nimport { ContentDensityMode } from '../types/content-density.mode';\n\nexport const getChangesSource$ = (params: {\n defaultContentDensity: ContentDensityMode;\n contentDensityDirective?: Observable<LocalContentDensityMode>;\n contentDensityService?: GlobalContentDensityService;\n parentContentDensityService?: Observable<ContentDensityMode>;\n}): Observable<ContentDensityMode> => {\n const serviceValue$: Observable<ContentDensityMode> = params.contentDensityService\n ? params.contentDensityService.contentDensityListener()\n : of(params.defaultContentDensity);\n const changesSource$ = params.parentContentDensityService\n ? params.parentContentDensityService\n : params.contentDensityDirective\n ? params.contentDensityDirective\n : serviceValue$;\n\n return changesSource$.pipe(\n switchMap((mode: LocalContentDensityMode) => {\n if (mode === ContentDensityDefaultKeyword) {\n return of(params.defaultContentDensity);\n }\n if (mode === ContentDensityGlobalKeyword) {\n return serviceValue$;\n }\n return of(mode);\n })\n );\n};\n","import { ContentDensityMode } from '../types/content-density.mode';\nimport { ContentDensityObserverSettings } from '../classes/content-density-observer.settings';\n\nexport const defaultContentDensityObserverConfigs: Required<ContentDensityObserverSettings> = {\n modifiers: {\n [ContentDensityMode.COMPACT]: 'is-compact',\n [ContentDensityMode.COZY]: 'is-cozy',\n [ContentDensityMode.CONDENSED]: 'is-condensed'\n },\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY],\n defaultContentDensity: ContentDensityMode.COZY,\n debug: false,\n alwaysAddModifiers: false,\n restrictChildContentDensity: false\n};\n","import { ElementRef, FactorySansProvider, inject, Injectable, InjectFlags, Injector, Renderer2 } from '@angular/core';\nimport { DestroyedService } from '@fundamental-ngx/cdk/utils';\nimport { BehaviorSubject, distinctUntilChanged, map, takeUntil } from 'rxjs';\nimport { ContentDensityObserverSettings } from '../classes/content-density-observer.settings';\nimport { ContentDensityObserverTarget } from '../content-density.types';\nimport { getChangesSource$ } from '../helpers/get-changes-source.provider';\nimport { GlobalContentDensityService } from '../services/global-content-density.service';\nimport { CONTENT_DENSITY_DIRECTIVE } from '../tokens/content-density-directive';\nimport { ContentDensityMode } from '../types/content-density.mode';\nimport { defaultContentDensityObserverConfigs } from '../variables/default-content-density-consumer-config';\n\nconst isFactoryProvider = (obj: any): obj is FactorySansProvider => !!(obj && (obj as FactorySansProvider).useFactory);\n\nconst getDeps = (injector: Injector, defaultContentDensity: FactorySansProvider): Array<any> =>\n (defaultContentDensity.deps || []).map((dep): any => {\n if (Array.isArray(dep)) {\n let type;\n let flags = InjectFlags.Default;\n for (let index = 0; index < dep.length; index++) {\n const flag = dep[index]['__NG_DI_FLAG__'];\n if (typeof flag === 'number') {\n // eslint-disable-next-line no-bitwise\n flags |= flag;\n } else {\n type = dep[index];\n }\n }\n return injector.get(type, undefined, flags);\n }\n return injector.get(dep, undefined, InjectFlags.Default);\n });\n\nconst getDefaultContentDensity = (\n injector: Injector,\n configuration: Required<ContentDensityObserverSettings>\n): ContentDensityMode => {\n if (typeof configuration.defaultContentDensity === 'string') {\n return configuration.defaultContentDensity as ContentDensityMode;\n }\n if (isFactoryProvider(configuration.defaultContentDensity)) {\n const deps = getDeps(injector, configuration.defaultContentDensity);\n return configuration.defaultContentDensity.useFactory(...deps);\n }\n return injector.get(configuration.defaultContentDensity, undefined, undefined);\n};\n\nconst initialContentDensity = (\n injector: Injector,\n configuration?: ContentDensityObserverSettings\n): ContentDensityMode => {\n const serviceValue = injector.get(GlobalContentDensityService, null, InjectFlags.Optional)?.currentContentDensity;\n if (serviceValue) {\n return serviceValue;\n }\n return getDefaultContentDensity(injector, {\n ...defaultContentDensityObserverConfigs,\n ...(configuration || {})\n });\n};\n\n@Injectable()\nexport class ContentDensityObserver extends BehaviorSubject<ContentDensityMode> {\n /** @hidden */\n private readonly _isCompact$ = new BehaviorSubject<boolean>(false);\n /** @hidden */\n private readonly _isCozy$ = new BehaviorSubject<boolean>(false);\n /** @hidden */\n private readonly _isCondensed$ = new BehaviorSubject<boolean>(false);\n /** @hidden */\n readonly config: ContentDensityObserverSettings;\n /** @hidden */\n readonly isCompact$ = this._isCompact$.asObservable();\n /** @hidden */\n readonly isCozy$ = this._isCozy$.asObservable();\n /** @hidden */\n readonly isCondensed$ = this._isCondensed$.asObservable();\n /** @hidden */\n get isCompact(): boolean {\n return this._isCompact$.value;\n }\n /** @hidden */\n get isCozy(): boolean {\n return this._isCozy$.value;\n }\n /** @hidden */\n get isCondensed(): boolean {\n return this._isCondensed$.value;\n }\n\n /** @hidden */\n private _globalContentDensityService = inject(GlobalContentDensityService, {\n optional: true\n });\n\n /** @hidden */\n private _contentDensityDirective = inject(CONTENT_DENSITY_DIRECTIVE, {\n optional: true\n });\n\n /** @hidden */\n private _parentContentDensityObserver = inject(ContentDensityObserver, {\n optional: true,\n skipSelf: true\n });\n\n /** @hidden */\n private _renderer: Renderer2 | null = inject(Renderer2);\n\n /** @hidden */\n private readonly _destroy$ = inject(DestroyedService);\n\n /** @hidden */\n private _elementRef: ElementRef<any> | null = inject(ElementRef);\n\n /** @hidden */\n private _elements = [this._elementRef];\n\n /** @hidden */\n private _alternativeTo = {\n [ContentDensityMode.COMPACT]: (): ContentDensityMode =>\n this._isSupported(ContentDensityMode.CONDENSED) ? ContentDensityMode.CONDENSED : ContentDensityMode.COZY,\n [ContentDensityMode.CONDENSED]: (): ContentDensityMode =>\n this._isSupported(ContentDensityMode.COMPACT) ? ContentDensityMode.COMPACT : ContentDensityMode.COZY,\n [ContentDensityMode.COZY]: (): ContentDensityMode => ContentDensityMode.COZY // No alternative here, everyone should support it\n };\n\n /** @hidden */\n constructor(private _injector: Injector, private _providedConfig?: ContentDensityObserverSettings) {\n super(initialContentDensity(_injector, _providedConfig));\n\n const destroySub = this._destroy$.subscribe({\n complete: () => {\n destroySub.unsubscribe();\n this.complete();\n if (this.config.debug) {\n console.log('ContentDensityObserver: destroyed');\n }\n }\n });\n\n this.config = {\n ...defaultContentDensityObserverConfigs,\n ...(this._parentContentDensityObserver?.config ?? {}),\n ...(_providedConfig || {})\n };\n\n getChangesSource$({\n defaultContentDensity: this.value,\n contentDensityDirective: this._contentDensityDirective ?? undefined,\n contentDensityService: this._globalContentDensityService ?? undefined,\n parentContentDensityService: this.config.restrictChildContentDensity\n ? this._parentContentDensityObserver?.asObservable() ?? undefined\n : undefined\n })\n .pipe(\n map((density) => {\n if (this.config.debug) {\n console.log(`ContentDensityObserver: density changed to ${density}`);\n }\n if (!this._isSupported(density)) {\n try {\n if (this.config.debug) {\n console.log(\n `ContentDensityObserver: ${density} is not supported. Failing back to alternative one.`\n );\n }\n return this._alternativeTo[density]();\n } catch (e) {\n throw new Error(`ContentDensityObserver: density ${density} is not supported`);\n }\n }\n return density;\n }),\n distinctUntilChanged(),\n takeUntil(this._destroy$)\n )\n .subscribe((density) => {\n this.next(density);\n this._applyClass();\n this._isCompact$.next(density === ContentDensityMode.COMPACT);\n this._isCozy$.next(density === ContentDensityMode.COZY);\n this._isCondensed$.next(density === ContentDensityMode.CONDENSED);\n });\n }\n\n /** @hidden */\n consume(...consumers: ContentDensityObserverTarget[]): void {\n this._elements.concat(...consumers.map((c) => c.elementRef));\n }\n\n /**\n * Completes the stream and closes all internal subscriptions.\n */\n override complete(): void {\n super.complete();\n this._isCondensed$.complete();\n this._isCozy$.complete();\n this._isCompact$.complete();\n this._parentContentDensityObserver = null;\n this._contentDensityDirective = null;\n this._globalContentDensityService = null;\n this._elementRef = null;\n this._renderer = null;\n this._elements = [];\n }\n\n /** @hidden */\n removeConsumer(consumer: ContentDensityObserverTarget): void {\n this._elements.splice(this._elements.indexOf(consumer.elementRef), 1);\n }\n\n /** @hidden */\n private _applyClass(): void {\n if (!this.config?.modifiers) {\n return;\n }\n const modifiers = this.config.modifiers;\n\n const parentContentDensityEqual = this._parentContentDensityObserver?.value === this.value;\n\n this._elements.forEach((element) => {\n Object.values(modifiers).forEach((className) => {\n this._renderer?.removeClass(element?.nativeElement, className);\n });\n\n // Simply remove all modifiers from current element. Content density state is covered by parent element.\n if (parentContentDensityEqual && !this.config.alwaysAddModifiers) {\n return;\n }\n\n this._renderer?.addClass(element?.nativeElement, modifiers[this.value]!);\n });\n }\n\n /** Check if the given density is supported */\n private _isSupported(density: ContentDensityMode): boolean {\n return this.config.supportedContentDensity?.includes(density) ?? false;\n }\n}\n","import { Provider } from '@angular/core';\nimport { consumerProviderFactory, DestroyedService } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver } from '../services/content-density-observer.service';\nimport { ContentDensityObserverSettings } from '../classes/content-density-observer.settings';\n\n/**\n * Creates provider for ContentDensityObserver and adds DestroyedService provider\n */\nexport function contentDensityObserverProviders(params?: ContentDensityObserverSettings): Provider[] {\n return [DestroyedService, consumerProviderFactory(ContentDensityObserver, params)];\n}\n","import { Directive, Input, isDevMode, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ContentDensityMode } from '../types/content-density.mode';\nimport { ModuleDeprecation } from '@fundamental-ngx/cdk/utils';\n\n/**\n * Directive decorator is only for allowing @Input\n */\n@Directive()\nexport class DeprecatedCompactDirective\n extends BehaviorSubject<ContentDensityMode>\n implements OnDestroy, ModuleDeprecation\n{\n /** @deprecated use fdCompact directive instead */\n @Input()\n set compact(value: BooleanInput) {\n if (isDevMode()) {\n console.warn(`${this.message}. Use [fdCompact] directive instead.`);\n }\n this.next(coerceBooleanProperty(value) ? ContentDensityMode.COMPACT : ContentDensityMode.COZY);\n }\n\n /** @hidden */\n readonly message: string;\n\n /** @hidden */\n readonly alternative = {\n name: 'Use [fdCompact] directive instead',\n link: ['/core', 'content-density']\n };\n\n /** @hidden */\n constructor(selectorBase: string) {\n super(ContentDensityMode.COZY);\n this.message = `Usage of ${selectorBase}[compact] is deprecated`;\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.complete();\n }\n}\n","import { Directive, Input, isDevMode, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ContentDensityMode } from '../types/content-density.mode';\nimport { ModuleDeprecation } from '@fundamental-ngx/cdk/utils';\n\n/**\n * Directive decorator is only for allowing @Input\n */\n@Directive()\nexport class DeprecatedCozyDirective\n extends BehaviorSubject<ContentDensityMode>\n implements OnDestroy, ModuleDeprecation\n{\n /** @deprecated use fdCozy directive instead */\n @Input()\n set cozy(value: BooleanInput) {\n if (isDevMode()) {\n console.warn(`${this.message}. Use [fdCozy] directive instead.`);\n }\n this.next(coerceBooleanProperty(value) ? ContentDensityMode.COZY : ContentDensityMode.COMPACT);\n }\n\n /** @hidden */\n readonly message: string;\n\n /** @hidden */\n readonly alternative = {\n name: 'Use [fdCozy] directive instead',\n link: ['/core', 'content-density']\n };\n\n /** @hidden */\n constructor(selectorBase: string) {\n super(ContentDensityMode.COMPACT);\n this.message = `Usage of ${selectorBase}[cozy] is deprecated`;\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.complete();\n }\n}\n","import { Directive, Input, isDevMode, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ContentDensityMode } from '../types/content-density.mode';\nimport { ModuleDeprecation } from '@fundamental-ngx/cdk/utils';\n\n/**\n * Directive decorator is only for allowing @Input\n */\n@Directive()\nexport class DeprecatedCondensedDirective\n extends BehaviorSubject<ContentDensityMode>\n implements OnDestroy, ModuleDeprecation\n{\n /** @deprecated use fdCondensed directive instead */\n @Input()\n set condensed(value: BooleanInput) {\n if (isDevMode()) {\n console.warn(`${this.message}. Use [fdCondensed] directive instead.`);\n }\n this.next(coerceBooleanProperty(value) ? ContentDensityMode.CONDENSED : ContentDensityMode.COZY);\n }\n\n /** @hidden */\n readonly message: string;\n\n /** @hidden */\n readonly alternative = {\n name: 'Use [fdCondensed] directive instead',\n link: ['/core', 'content-density']\n };\n\n /** @hidden */\n constructor(selectorBase: string) {\n super(ContentDensityMode.COZY);\n this.message = `Usage of ${selectorBase}[condensed] is deprecated`;\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.complete();\n }\n}\n","import { Provider } from '@angular/core';\nimport { ContentDensityGlobalKeyword, LocalContentDensityMode } from '../content-density.types';\nimport { BehaviorSubject } from 'rxjs';\nimport { CONTENT_DENSITY_DIRECTIVE } from '../tokens/content-density-directive';\n\n/** @hidden */\nexport function mockedLocalContentDensityDirective(\n defaultValue: LocalContentDensityMode = ContentDensityGlobalKeyword\n): { contentDensityDirectiveProvider: Provider; setContentDensity: (cd: LocalContentDensityMode) => void } {\n const behaviorSubject = new BehaviorSubject(defaultValue);\n return {\n contentDensityDirectiveProvider: {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useValue: behaviorSubject.asObservable()\n },\n setContentDensity: (cd: LocalContentDensityMode) => behaviorSubject.next(cd)\n };\n}\n","import { Directive, Input, isDevMode, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ContentDensityMode } from '../types/content-density.mode';\nimport { ModuleDeprecation } from '@fundamental-ngx/cdk/utils';\n\nconst warnedSelectorBases = new Set<string>();\n\n/**\n * Directive decorator is only for allowing @Input\n */\n@Directive()\nexport class DeprecatedContentDensityDirective\n extends BehaviorSubject<ContentDensityMode>\n implements OnDestroy, ModuleDeprecation\n{\n /** @deprecated use fdCompact directive instead */\n @Input()\n set contentDensity(value: any) {\n if (isDevMode() && !warnedSelectorBases.has(this.selectorBase)) {\n console.warn(`${this.message}. Use [fd${capitalize(value)}] or [fdContentDensity] directives instead.`);\n warnedSelectorBases.add(this.selectorBase);\n }\n this._manuallySet = true;\n this.next(value);\n }\n\n /** Deprecation message */\n get message(): string {\n return `Usage of ${this.selectorBase}[contentDensity] is deprecated`;\n }\n\n /** Alternative usage description with a link to the docs */\n get alternative(): any {\n return {\n name: `Use [${this._manuallySet ? `fd${capitalize(this.value)}` : 'fdContentDensity'}] directive instead`,\n link: ['/core', 'content-density']\n };\n }\n\n /** @hidden */\n selectorBase: string;\n\n /** @hidden */\n private _manuallySet = false;\n\n /** @hidden */\n constructor() {\n super(ContentDensityMode.COZY);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.complete();\n }\n}\n\nconst capitalize = (str: string): string => str?.charAt(0).toUpperCase() + str?.slice(1);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","map","i1.ContentDensityObserverSettings"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-content-density.mjs","sources":["../../../../libs/core/src/lib/content-density/content-density.types.ts","../../../../libs/core/src/lib/content-density/tokens/content-density-directive.ts","../../../../libs/core/src/lib/content-density/types/content-density.mode.ts","../../../../libs/core/src/lib/content-density/helpers/density-type-checkers.ts","../../../../libs/core/src/lib/content-density/directives/content-density.directive.ts","../../../../libs/core/src/lib/content-density/tokens/default-content-density.token.ts","../../../../libs/core/src/lib/content-density/classes/abstract-content-density-storage.ts","../../../../libs/core/src/lib/content-density/providers/memory-content-density-storage.ts","../../../../libs/core/src/lib/content-density/services/global-content-density.service.ts","../../../../libs/core/src/lib/content-density/tokens/content-density-storage-key.token.ts","../../../../libs/core/src/lib/content-density/providers/local-content-density-storage.ts","../../../../libs/core/src/lib/content-density/providers/url-content-density-storage.ts","../../../../libs/core/src/lib/content-density/services/deprecated-content-density.service.ts","../../../../libs/core/src/lib/content-density/content-density.module.ts","../../../../libs/core/src/lib/content-density/classes/content-density-observer.settings.ts","../../../../libs/core/src/lib/content-density/helpers/get-changes-source.provider.ts","../../../../libs/core/src/lib/content-density/variables/default-content-density-consumer-config.ts","../../../../libs/core/src/lib/content-density/services/content-density-observer.service.ts","../../../../libs/core/src/lib/content-density/providers/content-density-observer-providers.ts","../../../../libs/core/src/lib/content-density/classes/deprecated-compact.directive.ts","../../../../libs/core/src/lib/content-density/classes/deprecated-cozy.directive.ts","../../../../libs/core/src/lib/content-density/classes/deprecated-condensed.directive.ts","../../../../libs/core/src/lib/content-density/testing/mocked-local-content-density-directive.ts","../../../../libs/core/src/lib/content-density/classes/deprecated-content-density.directive.ts","../../../../libs/core/src/lib/content-density/fundamental-ngx-core-content-density.ts"],"sourcesContent":["import { Provider } from '@angular/core';\nimport { HasElementRef } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserverSettings } from './classes/content-density-observer.settings';\nimport { ContentDensityMode } from './types/content-density.mode';\n\nexport const ContentDensityGlobalKeyword = 'global';\nexport const ContentDensityDefaultKeyword = 'default';\n\nexport type LocalContentDensityMode =\n | ContentDensityMode\n | typeof ContentDensityGlobalKeyword\n | typeof ContentDensityDefaultKeyword;\n\ninterface BaseContentDensityModuleConfig {\n defaultGlobalContentDensity?: ContentDensityMode;\n}\n\ninterface LocalStorageConfig {\n storage: 'localStorage';\n storageKey?: string;\n}\n\ninterface UrlStorageConfig {\n storage: 'url';\n storageKey?: string;\n}\n\ninterface CustomStorageConfig {\n storage: Provider;\n}\n\ninterface MemoryStorageConfig {\n storage: 'memory';\n}\n\nexport type ContentDensityModuleConfig = (\n | LocalStorageConfig\n | MemoryStorageConfig\n | UrlStorageConfig\n | CustomStorageConfig\n) &\n BaseContentDensityModuleConfig;\n\nexport interface ContentDensityObserverTarget extends HasElementRef {\n contentDensitySettings?: ContentDensityObserverSettings;\n}\n\nexport type ContentDensityCallbackFn = (target: ContentDensityMode) => void;\n","import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { LocalContentDensityMode } from '../content-density.types';\n\nexport const CONTENT_DENSITY_DIRECTIVE = new InjectionToken<Observable<LocalContentDensityMode>>(\n 'ContentDensityDirective'\n);\n","export enum ContentDensityMode {\n COZY = 'cozy',\n CONDENSED = 'condensed',\n COMPACT = 'compact'\n}\n","import { ContentDensityGlobalKeyword } from '../content-density.types';\nimport { ContentDensityMode } from '../types/content-density.mode';\n\nexport const isCompact = (density: any): boolean => density === ContentDensityMode.COMPACT;\nexport const isCondensed = (density: any): boolean => density === ContentDensityMode.CONDENSED;\nexport const isCozy = (density: any): boolean => density === ContentDensityMode.COZY;\nexport const isContentDensityMode = (density: any): boolean =>\n isCompact(density) || isCondensed(density) || isCozy(density) || density === ContentDensityGlobalKeyword;\n","import { Directive, forwardRef, Input, isDevMode, OnDestroy } from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { BehaviorSubject } from 'rxjs';\nimport { ContentDensityGlobalKeyword, LocalContentDensityMode } from '../content-density.types';\nimport { CONTENT_DENSITY_DIRECTIVE } from '../tokens/content-density-directive';\nimport { isContentDensityMode } from '../helpers/density-type-checkers';\nimport { ContentDensityMode } from '../types/content-density.mode';\n\n/**\n * Directive to control the content density of the elements.\n * This Directive is used in density controllers and consumers\n */\n@Directive({\n selector: `[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]),\n [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]),\n [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]),\n [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])`,\n exportAs: 'fdContentDensity',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => ContentDensityDirective)\n }\n ],\n standalone: true\n})\nexport class ContentDensityDirective extends BehaviorSubject<LocalContentDensityMode> implements OnDestroy {\n /**\n * Update the content density of the element on the fly\n */\n @Input()\n set fdContentDensity(val: LocalContentDensityMode | '') {\n if (!isContentDensityMode(val)) {\n if (isDevMode() && val !== '') {\n console.log(\n `The value \"${val}\" is not a valid content density mode.\n Using \"${ContentDensityGlobalKeyword}\" instead.`\n );\n }\n val = ContentDensityGlobalKeyword;\n }\n this.next(val as LocalContentDensityMode);\n }\n\n /**\n * This input is basically syntax sugar, for not writing fdContentDensity=\"compact\",\n * instead you can just write fdCompact=\"true\" or [fdCompact]\n */\n @Input()\n set fdCompact(val: BooleanInput) {\n if (coerceBooleanProperty(val)) {\n this.next(ContentDensityMode.COMPACT);\n } else {\n this.next(ContentDensityGlobalKeyword);\n }\n }\n\n /**\n * This input is basically syntax sugar, for not writing fdContentDensity=\"condensed\",\n * instead you can just write fdCondensed=\"true\" or [fdCondensed]\n */\n @Input()\n set fdCondensed(val: BooleanInput) {\n if (coerceBooleanProperty(val)) {\n this.next(ContentDensityMode.CONDENSED);\n } else {\n this.next(ContentDensityGlobalKeyword);\n }\n }\n\n /**\n * This input is basically syntax sugar, for not writing fdContentDensity=\"cozy\",\n * instead you can just write fdCozy=\"true\" or [fdCozy]\n */\n @Input()\n set fdCozy(val: BooleanInput) {\n if (coerceBooleanProperty(val)) {\n this.next(ContentDensityMode.COZY);\n } else {\n this.next(ContentDensityGlobalKeyword);\n }\n }\n\n /** @hidden */\n constructor() {\n super(ContentDensityGlobalKeyword);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.complete();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ContentDensityMode } from '../types/content-density.mode';\n\nexport const DEFAULT_CONTENT_DENSITY = new InjectionToken<ContentDensityMode>('Default global content density', {\n factory: () => ContentDensityMode.COZY\n});\n","import { ContentDensityMode } from '../types/content-density.mode';\nimport { Observable } from 'rxjs';\n\n/**\n * Abstract provider class for providing content density storage functionality\n * Default implementation is MemoryContentDensityStorage\n */\nexport abstract class ContentDensityStorage {\n /**\n * Get listener for current density updates\n */\n abstract getContentDensity(): Observable<ContentDensityMode>;\n\n /**\n * Save updated configuration\n * @param density\n */\n abstract setContentDensity(density: ContentDensityMode): Observable<void>;\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { ContentDensityStorage } from '../classes/abstract-content-density-storage';\nimport { ContentDensityMode } from '../types/content-density.mode';\nimport { DEFAULT_CONTENT_DENSITY } from '../tokens/default-content-density.token';\n\n@Injectable()\nexport class MemoryContentDensityStorage implements ContentDensityStorage {\n /** @hidden */\n private _currentContentDensity$: BehaviorSubject<ContentDensityMode>;\n\n /** @hidden */\n constructor(@Inject(DEFAULT_CONTENT_DENSITY) defaultContentDensity: ContentDensityMode) {\n this._currentContentDensity$ = new BehaviorSubject(defaultContentDensity);\n }\n\n /** Content density observable */\n getContentDensity(): Observable<ContentDensityMode> {\n return this._currentContentDensity$.asObservable();\n }\n\n /** Change content density */\n setContentDensity(density: ContentDensityMode): Observable<void> {\n this._currentContentDensity$.next(density);\n return of(undefined);\n }\n}\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { ContentDensityStorage } from '../classes/abstract-content-density-storage';\nimport { Observable, Subscription } from 'rxjs';\nimport { ContentDensityMode } from '../types/content-density.mode';\nimport { DEFAULT_CONTENT_DENSITY } from '../tokens/default-content-density.token';\n\n/**\n * Service for managing global content density state.\n */\n@Injectable()\nexport class GlobalContentDensityService implements OnDestroy {\n /**\n * Current content density.\n */\n currentContentDensity: ContentDensityMode;\n\n /** @hidden */\n private _subscription = new Subscription();\n\n /** @hidden */\n constructor(\n @Inject(ContentDensityStorage) private _storage: ContentDensityStorage,\n @Inject(DEFAULT_CONTENT_DENSITY) private _defaultContentDensity: ContentDensityMode\n ) {\n this._subscription.add(\n this.contentDensityListener().subscribe((density) => {\n this.currentContentDensity = density;\n })\n );\n }\n\n /** Listen to current content density changes */\n contentDensityListener(): Observable<ContentDensityMode> {\n return this._storage.getContentDensity();\n }\n\n /** Update content density */\n updateContentDensity(density: ContentDensityMode): Observable<void> {\n return this._storage.setContentDensity(density);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscription.unsubscribe();\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const CONTENT_DENSITY_STORAGE_KEY = new InjectionToken<string>(\n 'Content density storage key for local storage or for url param',\n {\n factory: () => '__ContentDensity__'\n }\n);\n","import { Inject, Injectable } from '@angular/core';\nimport { LocalStorageService } from '@fundamental-ngx/cdk/utils';\nimport { Observable, of, Subject } from 'rxjs';\nimport { ContentDensityStorage } from '../classes/abstract-content-density-storage';\nimport { DEFAULT_CONTENT_DENSITY } from '../tokens/default-content-density.token';\nimport { CONTENT_DENSITY_STORAGE_KEY } from '../tokens/content-density-storage-key.token';\nimport { ContentDensityMode } from '../types/content-density.mode';\n\n@Injectable()\nexport class LocalContentDensityStorage implements ContentDensityStorage {\n /** @hidden */\n private _update$ = new Subject<void>();\n\n /** @hidden */\n constructor(\n @Inject(DEFAULT_CONTENT_DENSITY) private _defaultContentDensity: ContentDensityMode,\n @Inject(CONTENT_DENSITY_STORAGE_KEY) private _storageKey: string,\n private _storage: LocalStorageService\n ) {\n this._initialize();\n }\n\n /** Content density observable */\n getContentDensity(): Observable<ContentDensityMode> {\n return new Observable<ContentDensityMode>((subscriber) => {\n subscriber.next(this._storage.get(this._storageKey));\n const subscription = this._update$.subscribe(() => {\n subscriber.next(this._storage.get(this._storageKey));\n });\n return () => {\n subscription.unsubscribe();\n };\n });\n }\n\n /** Change content density */\n setContentDensity(density: ContentDensityMode): Observable<void> {\n this._storage.set(this._storageKey, density);\n this._update$.next();\n return of(undefined);\n }\n\n /** @hidden */\n private _initialize(): void {\n if (!this._storage.get(this._storageKey)) {\n this._storage.set(this._storageKey, this._defaultContentDensity);\n }\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ContentDensityStorage } from '../classes/abstract-content-density-storage';\nimport { DEFAULT_CONTENT_DENSITY } from '../tokens/default-content-density.token';\nimport { CONTENT_DENSITY_STORAGE_KEY } from '../tokens/content-density-storage-key.token';\nimport { ContentDensityMode } from '../types/content-density.mode';\nimport { BehaviorSubject, distinctUntilChanged, filter, Observable, of } from 'rxjs';\n\n@Injectable()\nexport class UrlContentDensityStorage implements ContentDensityStorage {\n /** @hidden */\n private _current$: BehaviorSubject<ContentDensityMode>;\n\n /** @hidden */\n constructor(\n private _router: Router,\n private _activatedRoute: ActivatedRoute,\n @Inject(DEFAULT_CONTENT_DENSITY) private _defaultContentDensity: ContentDensityMode,\n @Inject(CONTENT_DENSITY_STORAGE_KEY) private _storageKey: string\n ) {\n this._initialize();\n }\n\n /** @hidden */\n private _initialize(): void {\n this._current$ = new BehaviorSubject<ContentDensityMode>(this._defaultContentDensity);\n\n this._activatedRoute.queryParams\n .pipe(filter((queryParams) => !!queryParams[this._storageKey]))\n .subscribe((queryParams) => {\n this._current$.next(queryParams[this._storageKey]);\n });\n }\n\n /** @hidden */\n private _setUrlQueryParam(density: ContentDensityMode): void {\n const url = new URL(`https://google.com${this._router.url}`);\n url.searchParams.delete(this._storageKey);\n url.searchParams.append(this._storageKey, density);\n const queryParams = {};\n url.searchParams.forEach((value, key) => (queryParams[key] = value));\n\n this._router.navigateByUrl(url.pathname + '?' + url.searchParams.toString());\n }\n\n /** Content density observable */\n getContentDensity(): Observable<ContentDensityMode> {\n return this._current$.asObservable().pipe(distinctUntilChanged());\n }\n\n /** Change content density */\n setContentDensity(density: ContentDensityMode): Observable<void> {\n this._current$.next(density);\n this._setUrlQueryParam(density);\n return of(undefined);\n }\n}\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { GlobalContentDensityService } from './global-content-density.service';\nimport { BehaviorSubject, Observable, skip, tap } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { isCompact } from '../helpers/density-type-checkers';\nimport { DEFAULT_CONTENT_DENSITY } from '../tokens/default-content-density.token';\nimport { ContentDensityMode } from '../types/content-density.mode';\n\n/**\n * Temporary replacement for ContentDensityService\n */\n@Injectable()\nexport class DeprecatedContentDensityService implements OnDestroy {\n /** Content Density BehaviourSubject */\n readonly contentDensity = new BehaviorSubject<ContentDensityMode>(this._defaultContentDensity);\n\n /** @hidden */\n constructor(\n private _contentDensityController: GlobalContentDensityService,\n @Inject(DEFAULT_CONTENT_DENSITY) private _defaultContentDensity: ContentDensityMode\n ) {\n this.contentDensity\n .pipe(\n skip(1),\n tap((d) => this._contentDensityController.updateContentDensity(d))\n )\n .subscribe();\n }\n\n /** @hidden */\n get _contentDensityListener(): Observable<ContentDensityMode> {\n return this._contentDensityController.contentDensityListener();\n }\n\n /** @hidden */\n get _isCompactDensity(): Observable<boolean> {\n return this._contentDensityController.contentDensityListener().pipe(map(isCompact));\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.contentDensity.complete();\n }\n}\n","import { ModuleWithProviders, NgModule, Provider } from '@angular/core';\nimport { CommonModule, DOCUMENT } from '@angular/common';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ContentDensityDirective } from './directives/content-density.directive';\nimport { DEFAULT_CONTENT_DENSITY } from './tokens/default-content-density.token';\nimport { ContentDensityModuleConfig } from './content-density.types';\nimport { ContentDensityStorage } from './classes/abstract-content-density-storage';\nimport { MemoryContentDensityStorage } from './providers/memory-content-density-storage';\nimport { GlobalContentDensityService } from './services/global-content-density.service';\nimport { LocalContentDensityStorage } from './providers/local-content-density-storage';\nimport { CONTENT_DENSITY_STORAGE_KEY } from './tokens/content-density-storage-key.token';\nimport { UrlContentDensityStorage } from './providers/url-content-density-storage';\nimport { ContentDensityService } from '@fundamental-ngx/cdk/utils';\nimport { DeprecatedContentDensityService } from './services/deprecated-content-density.service';\nimport { ContentDensityMode } from './types/content-density.mode';\n\nfunction generateContentDensityStorage(config: ContentDensityModuleConfig): Provider {\n if (config.storage === 'localStorage') {\n return {\n provide: ContentDensityStorage,\n useClass: LocalContentDensityStorage\n };\n }\n if (config.storage === 'memory') {\n return {\n provide: ContentDensityStorage,\n useClass: MemoryContentDensityStorage\n };\n }\n if (config.storage === 'url') {\n return {\n provide: ContentDensityStorage,\n useClass: UrlContentDensityStorage,\n deps: [Router, ActivatedRoute, DEFAULT_CONTENT_DENSITY, CONTENT_DENSITY_STORAGE_KEY, DOCUMENT]\n };\n }\n return [];\n}\n\n@NgModule({\n imports: [CommonModule, ContentDensityDirective],\n exports: [ContentDensityDirective]\n})\nexport class ContentDensityModule {\n /** Module with providers */\n static forRoot(config?: ContentDensityModuleConfig): ModuleWithProviders<ContentDensityModule> {\n let storage: Provider;\n const conf: ContentDensityModuleConfig = config || { storage: 'memory' };\n\n if (typeof conf.storage === 'string') {\n storage = generateContentDensityStorage(conf);\n } else if (typeof conf.storage === 'object') {\n storage = conf.storage;\n } else {\n storage = {\n provide: ContentDensityStorage,\n useClass: MemoryContentDensityStorage\n };\n }\n\n return {\n ngModule: ContentDensityModule,\n providers: [\n {\n provide: DEFAULT_CONTENT_DENSITY,\n useValue: conf.defaultGlobalContentDensity || ContentDensityMode.COZY\n },\n {\n provide: CONTENT_DENSITY_STORAGE_KEY,\n useValue: (conf as any).storageKey || '__ContentDensity__'\n },\n {\n provide: ContentDensityService,\n useClass: DeprecatedContentDensityService\n },\n GlobalContentDensityService,\n storage\n ]\n };\n }\n}\n","import { FactorySansProvider, ProviderToken } from '@angular/core';\nimport { ContentDensityMode } from '../types/content-density.mode';\n\nexport class ContentDensityObserverSettings {\n /** Classes to be added to the element. */\n modifiers?: Partial<Record<ContentDensityMode, string>>;\n /** Supported content densities. */\n supportedContentDensity?: ContentDensityMode[];\n /** Default content density. */\n defaultContentDensity?: ContentDensityMode | ProviderToken<ContentDensityMode> | FactorySansProvider;\n /** Whether in debug mode. */\n debug?: boolean;\n /** Whether to always add class modifiers. Useful for components that are detached from its parent component. */\n alwaysAddModifiers?: boolean;\n /** Whether to force child components to restrict supported content density with current component's one. */\n restrictChildContentDensity?: boolean;\n}\n","import { Observable, of, switchMap } from 'rxjs';\nimport { GlobalContentDensityService } from '../services/global-content-density.service';\nimport {\n ContentDensityDefaultKeyword,\n ContentDensityGlobalKeyword,\n LocalContentDensityMode\n} from '../content-density.types';\nimport { ContentDensityMode } from '../types/content-density.mode';\n\nexport const getChangesSource$ = (params: {\n defaultContentDensity: ContentDensityMode;\n contentDensityDirective?: Observable<LocalContentDensityMode>;\n contentDensityService?: GlobalContentDensityService;\n parentContentDensityService?: Observable<ContentDensityMode>;\n}): Observable<ContentDensityMode> => {\n const serviceValue$: Observable<ContentDensityMode> = params.contentDensityService\n ? params.contentDensityService.contentDensityListener()\n : of(params.defaultContentDensity);\n const changesSource$ = params.parentContentDensityService\n ? params.parentContentDensityService\n : params.contentDensityDirective\n ? params.contentDensityDirective\n : serviceValue$;\n\n return changesSource$.pipe(\n switchMap((mode: LocalContentDensityMode) => {\n if (mode === ContentDensityDefaultKeyword) {\n return of(params.defaultContentDensity);\n }\n if (mode === ContentDensityGlobalKeyword) {\n return serviceValue$;\n }\n return of(mode);\n })\n );\n};\n","import { ContentDensityMode } from '../types/content-density.mode';\nimport { ContentDensityObserverSettings } from '../classes/content-density-observer.settings';\n\nexport const defaultContentDensityObserverConfigs: Required<ContentDensityObserverSettings> = {\n modifiers: {\n [ContentDensityMode.COMPACT]: 'is-compact',\n [ContentDensityMode.COZY]: 'is-cozy',\n [ContentDensityMode.CONDENSED]: 'is-condensed'\n },\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY],\n defaultContentDensity: ContentDensityMode.COZY,\n debug: false,\n alwaysAddModifiers: false,\n restrictChildContentDensity: false\n};\n","import {\n DestroyRef,\n ElementRef,\n FactorySansProvider,\n inject,\n Injectable,\n InjectFlags,\n Injector,\n Renderer2\n} from '@angular/core';\nimport { BehaviorSubject, distinctUntilChanged, map } from 'rxjs';\nimport { ContentDensityObserverSettings } from '../classes/content-density-observer.settings';\nimport { ContentDensityObserverTarget } from '../content-density.types';\nimport { getChangesSource$ } from '../helpers/get-changes-source.provider';\nimport { GlobalContentDensityService } from '../services/global-content-density.service';\nimport { CONTENT_DENSITY_DIRECTIVE } from '../tokens/content-density-directive';\nimport { ContentDensityMode } from '../types/content-density.mode';\nimport { defaultContentDensityObserverConfigs } from '../variables/default-content-density-consumer-config';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nconst isFactoryProvider = (obj: any): obj is FactorySansProvider => !!(obj && (obj as FactorySansProvider).useFactory);\n\nconst getDeps = (injector: Injector, defaultContentDensity: FactorySansProvider): Array<any> =>\n (defaultContentDensity.deps || []).map((dep): any => {\n if (Array.isArray(dep)) {\n let type;\n let flags = InjectFlags.Default;\n for (let index = 0; index < dep.length; index++) {\n const flag = dep[index]['__NG_DI_FLAG__'];\n if (typeof flag === 'number') {\n // eslint-disable-next-line no-bitwise\n flags |= flag;\n } else {\n type = dep[index];\n }\n }\n return injector.get(type, undefined, flags);\n }\n return injector.get(dep, undefined, InjectFlags.Default);\n });\n\nconst getDefaultContentDensity = (\n injector: Injector,\n configuration: Required<ContentDensityObserverSettings>\n): ContentDensityMode => {\n if (typeof configuration.defaultContentDensity === 'string') {\n return configuration.defaultContentDensity as ContentDensityMode;\n }\n if (isFactoryProvider(configuration.defaultContentDensity)) {\n const deps = getDeps(injector, configuration.defaultContentDensity);\n return configuration.defaultContentDensity.useFactory(...deps);\n }\n return injector.get(configuration.defaultContentDensity, undefined, undefined);\n};\n\nconst initialContentDensity = (\n injector: Injector,\n configuration?: ContentDensityObserverSettings\n): ContentDensityMode => {\n const serviceValue = injector.get(GlobalContentDensityService, null, InjectFlags.Optional)?.currentContentDensity;\n if (serviceValue) {\n return serviceValue;\n }\n return getDefaultContentDensity(injector, {\n ...defaultContentDensityObserverConfigs,\n ...(configuration || {})\n });\n};\n\n@Injectable()\nexport class ContentDensityObserver extends BehaviorSubject<ContentDensityMode> {\n /** @hidden */\n readonly config: ContentDensityObserverSettings;\n /** @hidden */\n private readonly _isCompact$ = new BehaviorSubject<boolean>(false);\n /** @hidden */\n private readonly _isCozy$ = new BehaviorSubject<boolean>(false);\n /** @hidden */\n private readonly _isCondensed$ = new BehaviorSubject<boolean>(false);\n /** @hidden */\n // eslint-disable-next-line @typescript-eslint/member-ordering\n readonly isCompact$ = this._isCompact$.asObservable();\n /** @hidden */\n // eslint-disable-next-line @typescript-eslint/member-ordering\n readonly isCozy$ = this._isCozy$.asObservable();\n /** @hidden */\n // eslint-disable-next-line @typescript-eslint/member-ordering\n readonly isCondensed$ = this._isCondensed$.asObservable();\n /** @hidden */\n get isCompact(): boolean {\n return this._isCompact$.value;\n }\n /** @hidden */\n get isCozy(): boolean {\n return this._isCozy$.value;\n }\n /** @hidden */\n get isCondensed(): boolean {\n return this._isCondensed$.value;\n }\n\n /** @hidden */\n private _globalContentDensityService = inject(GlobalContentDensityService, {\n optional: true\n });\n\n /** @hidden */\n private _contentDensityDirective = inject(CONTENT_DENSITY_DIRECTIVE, {\n optional: true\n });\n\n /** @hidden */\n private _parentContentDensityObserver = inject(ContentDensityObserver, {\n optional: true,\n skipSelf: true\n });\n\n /** @hidden */\n private _renderer: Renderer2 | null = inject(Renderer2);\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private _elementRef: ElementRef<any> | null = inject(ElementRef);\n\n /** @hidden */\n private _elements = [this._elementRef];\n\n /** @hidden */\n private _alternativeTo = {\n [ContentDensityMode.COMPACT]: (): ContentDensityMode =>\n this._isSupported(ContentDensityMode.CONDENSED) ? ContentDensityMode.CONDENSED : ContentDensityMode.COZY,\n [ContentDensityMode.CONDENSED]: (): ContentDensityMode =>\n this._isSupported(ContentDensityMode.COMPACT) ? ContentDensityMode.COMPACT : ContentDensityMode.COZY,\n [ContentDensityMode.COZY]: (): ContentDensityMode => ContentDensityMode.COZY // No alternative here, everyone should support it\n };\n\n /** @hidden */\n constructor(private _injector: Injector, private _providedConfig?: ContentDensityObserverSettings) {\n super(initialContentDensity(_injector, _providedConfig));\n\n this._destroyRef.onDestroy(() => {\n this.complete();\n if (this.config.debug) {\n console.log('ContentDensityObserver: destroyed');\n }\n });\n\n this.config = {\n ...defaultContentDensityObserverConfigs,\n ...(this._parentContentDensityObserver?.config ?? {}),\n ...(_providedConfig || {})\n };\n\n getChangesSource$({\n defaultContentDensity: this.value,\n contentDensityDirective: this._contentDensityDirective ?? undefined,\n contentDensityService: this._globalContentDensityService ?? undefined,\n parentContentDensityService: this.config.restrictChildContentDensity\n ? this._parentContentDensityObserver?.asObservable() ?? undefined\n : undefined\n })\n .pipe(\n map((density) => {\n if (this.config.debug) {\n console.log(`ContentDensityObserver: density changed to ${density}`);\n }\n if (!this._isSupported(density)) {\n try {\n if (this.config.debug) {\n console.log(\n `ContentDensityObserver: ${density} is not supported. Failing back to alternative one.`\n );\n }\n return this._alternativeTo[density]();\n } catch (e) {\n throw new Error(`ContentDensityObserver: density ${density} is not supported`);\n }\n }\n return density;\n }),\n distinctUntilChanged(),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((density) => {\n this.next(density);\n this._applyClass();\n this._isCompact$.next(density === ContentDensityMode.COMPACT);\n this._isCozy$.next(density === ContentDensityMode.COZY);\n this._isCondensed$.next(density === ContentDensityMode.CONDENSED);\n });\n }\n\n /** @hidden */\n consume(...consumers: ContentDensityObserverTarget[]): void {\n this._elements.concat(...consumers.map((c) => c.elementRef));\n }\n\n /**\n * Completes the stream and closes all internal subscriptions.\n */\n override complete(): void {\n super.complete();\n this._isCondensed$.complete();\n this._isCozy$.complete();\n this._isCompact$.complete();\n this._parentContentDensityObserver = null;\n this._contentDensityDirective = null;\n this._globalContentDensityService = null;\n this._elementRef = null;\n this._renderer = null;\n this._elements = [];\n }\n\n /** @hidden */\n removeConsumer(consumer: ContentDensityObserverTarget): void {\n this._elements.splice(this._elements.indexOf(consumer.elementRef), 1);\n }\n\n /** @hidden */\n private _applyClass(): void {\n if (!this.config?.modifiers) {\n return;\n }\n const modifiers = this.config.modifiers;\n\n const parentContentDensityEqual = this._parentContentDensityObserver?.value === this.value;\n\n this._elements.forEach((element) => {\n Object.values(modifiers).forEach((className) => {\n this._renderer?.removeClass(element?.nativeElement, className);\n });\n\n // Simply remove all modifiers from current element. Content density state is covered by parent element.\n if (parentContentDensityEqual && !this.config.alwaysAddModifiers) {\n return;\n }\n\n this._renderer?.addClass(element?.nativeElement, modifiers[this.value]!);\n });\n }\n\n /** Check if the given density is supported */\n private _isSupported(density: ContentDensityMode): boolean {\n return this.config.supportedContentDensity?.includes(density) ?? false;\n }\n}\n","import { Provider } from '@angular/core';\nimport { consumerProviderFactory } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver } from '../services/content-density-observer.service';\nimport { ContentDensityObserverSettings } from '../classes/content-density-observer.settings';\n\n/**\n * Creates provider for ContentDensityObserver\n */\nexport function contentDensityObserverProviders(params?: ContentDensityObserverSettings): Provider[] {\n return [consumerProviderFactory(ContentDensityObserver, params)];\n}\n","import { Directive, Input, isDevMode, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ContentDensityMode } from '../types/content-density.mode';\nimport { ModuleDeprecation } from '@fundamental-ngx/cdk/utils';\n\n/**\n * Directive decorator is only for allowing @Input\n */\n@Directive()\nexport class DeprecatedCompactDirective\n extends BehaviorSubject<ContentDensityMode>\n implements OnDestroy, ModuleDeprecation\n{\n /** @deprecated use fdCompact directive instead */\n @Input()\n set compact(value: BooleanInput) {\n if (isDevMode()) {\n console.warn(`${this.message}. Use [fdCompact] directive instead.`);\n }\n this.next(coerceBooleanProperty(value) ? ContentDensityMode.COMPACT : ContentDensityMode.COZY);\n }\n\n /** @hidden */\n readonly message: string;\n\n /** @hidden */\n readonly alternative = {\n name: 'Use [fdCompact] directive instead',\n link: ['/core', 'content-density']\n };\n\n /** @hidden */\n constructor(selectorBase: string) {\n super(ContentDensityMode.COZY);\n this.message = `Usage of ${selectorBase}[compact] is deprecated`;\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.complete();\n }\n}\n","import { Directive, Input, isDevMode, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ContentDensityMode } from '../types/content-density.mode';\nimport { ModuleDeprecation } from '@fundamental-ngx/cdk/utils';\n\n/**\n * Directive decorator is only for allowing @Input\n */\n@Directive()\nexport class DeprecatedCozyDirective\n extends BehaviorSubject<ContentDensityMode>\n implements OnDestroy, ModuleDeprecation\n{\n /** @deprecated use fdCozy directive instead */\n @Input()\n set cozy(value: BooleanInput) {\n if (isDevMode()) {\n console.warn(`${this.message}. Use [fdCozy] directive instead.`);\n }\n this.next(coerceBooleanProperty(value) ? ContentDensityMode.COZY : ContentDensityMode.COMPACT);\n }\n\n /** @hidden */\n readonly message: string;\n\n /** @hidden */\n readonly alternative = {\n name: 'Use [fdCozy] directive instead',\n link: ['/core', 'content-density']\n };\n\n /** @hidden */\n constructor(selectorBase: string) {\n super(ContentDensityMode.COMPACT);\n this.message = `Usage of ${selectorBase}[cozy] is deprecated`;\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.complete();\n }\n}\n","import { Directive, Input, isDevMode, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ContentDensityMode } from '../types/content-density.mode';\nimport { ModuleDeprecation } from '@fundamental-ngx/cdk/utils';\n\n/**\n * Directive decorator is only for allowing @Input\n */\n@Directive()\nexport class DeprecatedCondensedDirective\n extends BehaviorSubject<ContentDensityMode>\n implements OnDestroy, ModuleDeprecation\n{\n /** @deprecated use fdCondensed directive instead */\n @Input()\n set condensed(value: BooleanInput) {\n if (isDevMode()) {\n console.warn(`${this.message}. Use [fdCondensed] directive instead.`);\n }\n this.next(coerceBooleanProperty(value) ? ContentDensityMode.CONDENSED : ContentDensityMode.COZY);\n }\n\n /** @hidden */\n readonly message: string;\n\n /** @hidden */\n readonly alternative = {\n name: 'Use [fdCondensed] directive instead',\n link: ['/core', 'content-density']\n };\n\n /** @hidden */\n constructor(selectorBase: string) {\n super(ContentDensityMode.COZY);\n this.message = `Usage of ${selectorBase}[condensed] is deprecated`;\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.complete();\n }\n}\n","import { Provider } from '@angular/core';\nimport { ContentDensityGlobalKeyword, LocalContentDensityMode } from '../content-density.types';\nimport { BehaviorSubject } from 'rxjs';\nimport { CONTENT_DENSITY_DIRECTIVE } from '../tokens/content-density-directive';\n\n/** @hidden */\nexport function mockedLocalContentDensityDirective(\n defaultValue: LocalContentDensityMode = ContentDensityGlobalKeyword\n): { contentDensityDirectiveProvider: Provider; setContentDensity: (cd: LocalContentDensityMode) => void } {\n const behaviorSubject = new BehaviorSubject(defaultValue);\n return {\n contentDensityDirectiveProvider: {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useValue: behaviorSubject.asObservable()\n },\n setContentDensity: (cd: LocalContentDensityMode) => behaviorSubject.next(cd)\n };\n}\n","import { Directive, Input, isDevMode, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ContentDensityMode } from '../types/content-density.mode';\nimport { ModuleDeprecation } from '@fundamental-ngx/cdk/utils';\n\nconst warnedSelectorBases = new Set<string>();\n\n/**\n * Directive decorator is only for allowing @Input\n */\n@Directive()\nexport class DeprecatedContentDensityDirective\n extends BehaviorSubject<ContentDensityMode>\n implements OnDestroy, ModuleDeprecation\n{\n /** @deprecated use fdCompact directive instead */\n @Input()\n set contentDensity(value: any) {\n if (isDevMode() && !warnedSelectorBases.has(this.selectorBase)) {\n console.warn(`${this.message}. Use [fd${capitalize(value)}] or [fdContentDensity] directives instead.`);\n warnedSelectorBases.add(this.selectorBase);\n }\n this._manuallySet = true;\n this.next(value);\n }\n\n /** Deprecation message */\n get message(): string {\n return `Usage of ${this.selectorBase}[contentDensity] is deprecated`;\n }\n\n /** Alternative usage description with a link to the docs */\n get alternative(): any {\n return {\n name: `Use [${this._manuallySet ? `fd${capitalize(this.value)}` : 'fdContentDensity'}] directive instead`,\n link: ['/core', 'content-density']\n };\n }\n\n /** @hidden */\n selectorBase: string;\n\n /** @hidden */\n private _manuallySet = false;\n\n /** @hidden */\n constructor() {\n super(ContentDensityMode.COZY);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.complete();\n }\n}\n\nconst capitalize = (str: string): string => str?.charAt(0).toUpperCase() + str?.slice(1);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","map","i1.ContentDensityObserverSettings"],"mappings":"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"}
|
|
@@ -56,6 +56,83 @@ class DatePickerComponent {
|
|
|
56
56
|
this._messageTriggers = triggers;
|
|
57
57
|
this._popoverFormMessage.triggers = triggers;
|
|
58
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* @deprecated use i18n capabilities instead
|
|
61
|
+
* Aria-label for the datepicker input.
|
|
62
|
+
*/
|
|
63
|
+
set dateInputLabel(value) {
|
|
64
|
+
console.warn("Property dateInputLabel is deprecated. Use i18n capabilities 'coreDatePicker.dateInputLabel' key instead.");
|
|
65
|
+
this._dateInputLabel = value;
|
|
66
|
+
}
|
|
67
|
+
get dateInputLabel() {
|
|
68
|
+
return this._dateInputLabel;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* @deprecated use i18n capabilities instead
|
|
72
|
+
* Aria-label for the datepicker input.
|
|
73
|
+
*/
|
|
74
|
+
set dateRangeInputLabel(value) {
|
|
75
|
+
console.warn("Property dateRangeInputLabel is deprecated. Use i18n capabilities 'coreDatePicker.dateRangeInputLabel' key instead.");
|
|
76
|
+
this._dateRangeInputLabel = value;
|
|
77
|
+
}
|
|
78
|
+
get dateRangeInputLabel() {
|
|
79
|
+
return this._dateRangeInputLabel;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* @deprecated use i18n capabilities instead
|
|
83
|
+
* Aria-label for the button to show/hide the calendar.
|
|
84
|
+
*/
|
|
85
|
+
set displayCalendarToggleLabel(value) {
|
|
86
|
+
console.warn("Property displayCalendarToggleLabel is deprecated. Use i18n capabilities 'coreDatePicker.displayCalendarToggleLabel' key instead.");
|
|
87
|
+
this._displayCalendarToggleLabel = value;
|
|
88
|
+
}
|
|
89
|
+
get displayCalendarToggleLabel() {
|
|
90
|
+
return this._displayCalendarToggleLabel;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* @deprecated use i18n capabilities instead
|
|
94
|
+
* Value state "success" aria message.
|
|
95
|
+
*/
|
|
96
|
+
set valueStateSuccessMessage(value) {
|
|
97
|
+
console.warn("Property valueStateSuccessMessage is deprecated. Use i18n capabilities 'coreDatePicker.valueStateSuccessMessage' key instead.");
|
|
98
|
+
this._valueStateSuccessMessage = value;
|
|
99
|
+
}
|
|
100
|
+
get valueStateSuccessMessage() {
|
|
101
|
+
return this._valueStateSuccessMessage;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* @deprecated use i18n capabilities instead
|
|
105
|
+
* Value state "information" aria message.
|
|
106
|
+
*/
|
|
107
|
+
set valueStateInformationMessage(value) {
|
|
108
|
+
console.warn("Property valueStateInformationMessage is deprecated. Use i18n capabilities 'coreDatePicker.valueStateInformationMessage' key instead.");
|
|
109
|
+
this._valueStateInformationMessage = value;
|
|
110
|
+
}
|
|
111
|
+
get valueStateInformationMessage() {
|
|
112
|
+
return this._valueStateInformationMessage;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* @deprecated use i18n capabilities instead
|
|
116
|
+
* Value state "warning" aria message.
|
|
117
|
+
*/
|
|
118
|
+
set valueStateWarningMessage(value) {
|
|
119
|
+
console.warn("Property valueStateWarningMessage is deprecated. Use i18n capabilities 'coreDatePicker.valueStateWarningMessage' key instead.");
|
|
120
|
+
this._valueStateWarningMessage = value;
|
|
121
|
+
}
|
|
122
|
+
get valueStateWarningMessage() {
|
|
123
|
+
return this._valueStateWarningMessage;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* @deprecated use i18n capabilities instead
|
|
127
|
+
* Value state "error" aria message.
|
|
128
|
+
*/
|
|
129
|
+
set valueStateErrorMessage(value) {
|
|
130
|
+
console.warn("Property valueStateErrorMessage is deprecated. Use i18n capabilities 'coreDatePicker.valueStateErrorMessage' key instead.");
|
|
131
|
+
this._valueStateErrorMessage = value;
|
|
132
|
+
}
|
|
133
|
+
get valueStateErrorMessage() {
|
|
134
|
+
return this._valueStateErrorMessage;
|
|
135
|
+
}
|
|
59
136
|
/**
|
|
60
137
|
* The state of the form control - applies css classes.
|
|
61
138
|
* Also, this is applied to message.
|
|
@@ -145,8 +222,6 @@ class DatePickerComponent {
|
|
|
145
222
|
this.showTodayButton = false;
|
|
146
223
|
/** Label for Today-Selection-Button */
|
|
147
224
|
this.todayButtonLabel = 'Today';
|
|
148
|
-
/** @hidden */
|
|
149
|
-
this._state = 'default';
|
|
150
225
|
/**
|
|
151
226
|
* Whether AddOn Button should be focusable
|
|
152
227
|
* @default true
|
|
@@ -212,6 +287,8 @@ class DatePickerComponent {
|
|
|
212
287
|
this._onDestroy$ = new Subject();
|
|
213
288
|
/** @hidden */
|
|
214
289
|
this._subscriptions = new Subscription();
|
|
290
|
+
/** @hidden */
|
|
291
|
+
this._state = 'default';
|
|
215
292
|
/**
|
|
216
293
|
* Function used to disable certain dates in the calendar.
|
|
217
294
|
* @param date date representation
|
|
@@ -328,7 +405,10 @@ class DatePickerComponent {
|
|
|
328
405
|
if (dates && (startChanged || endChanged)) {
|
|
329
406
|
const shouldClose = this.closeOnDateChoose && dates.end !== null;
|
|
330
407
|
this._inputFieldDate = this._formatDateRange(dates);
|
|
331
|
-
this.selectedRangeDate = {
|
|
408
|
+
this.selectedRangeDate = {
|
|
409
|
+
start: dates.start,
|
|
410
|
+
end: dates.end
|
|
411
|
+
};
|
|
332
412
|
this.selectedRangeDateChange.emit(this.selectedRangeDate);
|
|
333
413
|
this.onChange(this.selectedRangeDate);
|
|
334
414
|
this._isInvalidDateInput = !this.isModelValid();
|
|
@@ -348,7 +428,10 @@ class DatePickerComponent {
|
|
|
348
428
|
this.closeFromCalendar();
|
|
349
429
|
}
|
|
350
430
|
else if (this.type === 'range') {
|
|
351
|
-
this.handleRangeDateChange({
|
|
431
|
+
this.handleRangeDateChange({
|
|
432
|
+
start: todayDate,
|
|
433
|
+
end: todayDate
|
|
434
|
+
});
|
|
352
435
|
}
|
|
353
436
|
}
|
|
354
437
|
/**
|
|
@@ -398,7 +481,10 @@ class DatePickerComponent {
|
|
|
398
481
|
if (!selected) {
|
|
399
482
|
this._inputFieldDate = '';
|
|
400
483
|
this._refreshCurrentlyDisplayedCalendarDate(this._dateTimeAdapter.today());
|
|
401
|
-
this.selectedRangeDate = {
|
|
484
|
+
this.selectedRangeDate = {
|
|
485
|
+
start: null,
|
|
486
|
+
end: null
|
|
487
|
+
};
|
|
402
488
|
this.selectedDate = null;
|
|
403
489
|
this._changeDetectionRef.detectChanges();
|
|
404
490
|
return;
|
|
@@ -471,7 +557,10 @@ class DatePickerComponent {
|
|
|
471
557
|
else {
|
|
472
558
|
if (!dateStr) {
|
|
473
559
|
this._isInvalidDateInput = !this.allowNull;
|
|
474
|
-
this.selectedRangeDate = {
|
|
560
|
+
this.selectedRangeDate = {
|
|
561
|
+
start: null,
|
|
562
|
+
end: null
|
|
563
|
+
};
|
|
475
564
|
this._refreshCurrentlyDisplayedCalendarDate(this.selectedRangeDate.start);
|
|
476
565
|
this.onChange(this.selectedRangeDate);
|
|
477
566
|
this.selectedRangeDateChange.emit(this.selectedRangeDate);
|
|
@@ -609,7 +698,7 @@ class DatePickerComponent {
|
|
|
609
698
|
registerFormItemControl(DatePickerComponent),
|
|
610
699
|
PopoverFormMessageService,
|
|
611
700
|
PopoverService
|
|
612
|
-
], viewQueries: [{ propertyName: "_calendarComponent", first: true, predicate: CalendarComponent, descendants: true }, { propertyName: "_inputGroupElement", first: true, predicate: ["inputGroupComponent"], descendants: true, read: ElementRef }, { propertyName: "_inputElement", first: true, predicate: InputGroupInputDirective, descendants: true, read: ElementRef }], ngImport: i0, template: "<fd-popover\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"_onOpenStateChanged($event)\"\n [triggers]=\"[]\"\n [placement]=\"placement\"\n [disabled]=\"disabled\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"false\"\n [appendTo]=\"appendTo\"\n>\n <fd-popover-control>\n <fd-input-group\n #inputGroupComponent\n [state]=\"state\"\n [disabled]=\"disabled\"\n [isControl]=\"true\"\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n glyph=\"appointment-2\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n [iconTitle]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"toggleCalendar()\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [attr.id]=\"inputId\"\n aria-haspopup=\"grid\"\n aria-autocomplete=\"none\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"_dateInputArialLabel || (_dateInputArialLabelKey | fdTranslate)\"\n [attr.aria-required]=\"required\"\n [attr.aria-describedby]=\"_formValueStateMessageId\"\n [ngModel]=\"_inputFieldDate\"\n (keyup.enter)=\"handleInputChange($any($event.target).value, false)\"\n (ngModelChange)=\"handleInputChange($event, true)\"\n (blur)=\"_onBlur($event)\"\n />\n </fd-input-group>\n </fd-popover-control>\n <fd-popover-body [attr.aria-expanded]=\"isOpen\" [attr.aria-hidden]=\"!isOpen\">\n <fd-form-message [embedded]=\"true\" *ngIf=\"_message\" [type]=\"state\">\n {{ _message }}\n </fd-form-message>\n <ng-content></ng-content>\n\n <fd-calendar\n (closeCalendar)=\"closeFromCalendar()\"\n [activeView]=\"activeView\"\n [markWeekends]=\"markWeekends\"\n [specialDaysRules]=\"specialDaysRules\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [aggregatedYearGrid]=\"aggregatedYearGrid\"\n [yearGrid]=\"yearGrid\"\n (activeViewChange)=\"handleCalendarActiveViewChange($event)\"\n [calType]=\"type\"\n [rangeHoverEffect]=\"rangeHoverEffect\"\n [disableFunction]=\"disableFunction\"\n [disableRangeStartFunction]=\"disableRangeStartFunction\"\n [disableRangeEndFunction]=\"disableRangeEndFunction\"\n [selectedDate]=\"selectedDate\"\n [selectedRangeDate]=\"selectedRangeDate\"\n (selectedRangeDateChange)=\"handleRangeDateChange($event)\"\n (selectedDateChange)=\"handleSingleDateChange($event)\"\n [startingDayOfWeek]=\"startingDayOfWeek\"\n [previousButtonDisableFunction]=\"previousButtonDisableFunction\"\n [nextButtonDisableFunction]=\"nextButtonDisableFunction\"\n ></fd-calendar>\n\n <div *ngIf=\"showTodayButton\" fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n <fd-bar-element>\n <button fd-button [label]=\"todayButtonLabel\" (click)=\"onTodayButtonClick()\"></button>\n </fd-bar-element>\n </div>\n </div>\n </fd-popover-body>\n</fd-popover>\n\n<div style=\"display: none\" aria-hidden=\"true\">\n <div [attr.id]=\"_formValueStateMessageId\" aria-atomic=\"true\" aria-live=\"assertive\">\n <ng-container [ngSwitch]=\"state\">\n <ng-container *ngSwitchCase=\"'success'\">{{\n valueStateSuccessMessage || ('coreDatePicker.valueStateSuccessMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'information'\">{{\n valueStateInformationMessage || ('coreDatePicker.valueStateInformationMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'warning'\">{{\n valueStateWarningMessage || ('coreDatePicker.valueStateWarningMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'error'\">{{\n valueStateErrorMessage || ('coreDatePicker.valueStateErrorMessage' | fdTranslate)\n }}</ng-container>\n </ng-container>\n {{ _message }}\n </div>\n</div>\n", styles: [".fd-date-picker-custom{display:inline-block}.fd-date-picker-custom fd-popover{display:block}.fd-date-picker-custom fd-calendar{border-radius:.25rem;border-radius:var(--sapElement_BorderCornerRadius, .25rem)}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i4.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "component", type: i4.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: i5.CalendarComponent, selector: "fd-calendar", inputs: ["selectedDate", "markWeekends", "showWeekNumbers", "mobileLandscape", "mobilePortrait", "selectedRangeDate", "activeView", "startingDayOfWeek", "calType", "id", "specialDaysRules", "yearGrid", "aggregatedYearGrid", "rangeHoverEffect", "previousButtonDisableFunction", "nextButtonDisableFunction", "escapeFocusFunction", "disableFunction", "disableRangeStartFunction", "disableRangeEndFunction"], outputs: ["activeViewChange", "selectedDateChange", "selectedRangeDateChange", "isValidDateChange", "closeCalendar", "closeClicked"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.InputGroupComponent, selector: "fd-input-group", inputs: ["inputTemplate", "placement", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "iconTitle", "ariaLabelledby", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "directive", type: i7.InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "component", type: i8.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i2.FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { kind: "component", type: i9.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i9.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i9.BarElementDirective, selector: "fd-bar-element", inputs: ["
|
|
701
|
+
], viewQueries: [{ propertyName: "_calendarComponent", first: true, predicate: CalendarComponent, descendants: true }, { propertyName: "_inputGroupElement", first: true, predicate: ["inputGroupComponent"], descendants: true, read: ElementRef }, { propertyName: "_inputElement", first: true, predicate: InputGroupInputDirective, descendants: true, read: ElementRef }], ngImport: i0, template: "<fd-popover\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"_onOpenStateChanged($event)\"\n [triggers]=\"[]\"\n [placement]=\"placement\"\n [disabled]=\"disabled\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"false\"\n [appendTo]=\"appendTo\"\n>\n <fd-popover-control>\n <fd-input-group\n #inputGroupComponent\n [state]=\"state\"\n [disabled]=\"disabled\"\n [isControl]=\"true\"\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n glyph=\"appointment-2\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n [iconTitle]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"toggleCalendar()\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [attr.id]=\"inputId\"\n aria-haspopup=\"grid\"\n aria-autocomplete=\"none\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"_dateInputArialLabel || (_dateInputArialLabelKey | fdTranslate)\"\n [attr.aria-required]=\"required\"\n [attr.aria-describedby]=\"_formValueStateMessageId\"\n [ngModel]=\"_inputFieldDate\"\n (keyup.enter)=\"handleInputChange($any($event.target).value, false)\"\n (ngModelChange)=\"handleInputChange($event, true)\"\n (blur)=\"_onBlur($event)\"\n />\n </fd-input-group>\n </fd-popover-control>\n <fd-popover-body [attr.aria-expanded]=\"isOpen\" [attr.aria-hidden]=\"!isOpen\">\n <fd-form-message [embedded]=\"true\" *ngIf=\"_message\" [type]=\"state\">\n {{ _message }}\n </fd-form-message>\n <ng-content></ng-content>\n\n <fd-calendar\n (closeCalendar)=\"closeFromCalendar()\"\n [activeView]=\"activeView\"\n [markWeekends]=\"markWeekends\"\n [specialDaysRules]=\"specialDaysRules\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [aggregatedYearGrid]=\"aggregatedYearGrid\"\n [yearGrid]=\"yearGrid\"\n (activeViewChange)=\"handleCalendarActiveViewChange($event)\"\n [calType]=\"type\"\n [rangeHoverEffect]=\"rangeHoverEffect\"\n [disableFunction]=\"disableFunction\"\n [disableRangeStartFunction]=\"disableRangeStartFunction\"\n [disableRangeEndFunction]=\"disableRangeEndFunction\"\n [selectedDate]=\"selectedDate\"\n [selectedRangeDate]=\"selectedRangeDate\"\n (selectedRangeDateChange)=\"handleRangeDateChange($event)\"\n (selectedDateChange)=\"handleSingleDateChange($event)\"\n [startingDayOfWeek]=\"startingDayOfWeek\"\n [previousButtonDisableFunction]=\"previousButtonDisableFunction\"\n [nextButtonDisableFunction]=\"nextButtonDisableFunction\"\n ></fd-calendar>\n\n <div *ngIf=\"showTodayButton\" fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n <fd-bar-element>\n <button fd-button [label]=\"todayButtonLabel\" (click)=\"onTodayButtonClick()\"></button>\n </fd-bar-element>\n </div>\n </div>\n </fd-popover-body>\n</fd-popover>\n\n<div style=\"display: none\" aria-hidden=\"true\">\n <div [attr.id]=\"_formValueStateMessageId\" aria-atomic=\"true\" aria-live=\"assertive\">\n <ng-container [ngSwitch]=\"state\">\n <ng-container *ngSwitchCase=\"'success'\">{{\n valueStateSuccessMessage || ('coreDatePicker.valueStateSuccessMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'information'\">{{\n valueStateInformationMessage || ('coreDatePicker.valueStateInformationMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'warning'\">{{\n valueStateWarningMessage || ('coreDatePicker.valueStateWarningMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'error'\">{{\n valueStateErrorMessage || ('coreDatePicker.valueStateErrorMessage' | fdTranslate)\n }}</ng-container>\n </ng-container>\n {{ _message }}\n </div>\n</div>\n", styles: [".fd-date-picker-custom{display:inline-block}.fd-date-picker-custom fd-popover{display:block}.fd-date-picker-custom fd-calendar{border-radius:.25rem;border-radius:var(--sapElement_BorderCornerRadius, .25rem)}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i4.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "component", type: i4.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: i5.CalendarComponent, selector: "fd-calendar", inputs: ["selectedDate", "markWeekends", "showWeekNumbers", "mobileLandscape", "mobilePortrait", "selectedRangeDate", "activeView", "startingDayOfWeek", "calType", "id", "specialDaysRules", "yearGrid", "aggregatedYearGrid", "rangeHoverEffect", "previousButtonDisableFunction", "nextButtonDisableFunction", "escapeFocusFunction", "disableFunction", "disableRangeStartFunction", "disableRangeEndFunction"], outputs: ["activeViewChange", "selectedDateChange", "selectedRangeDateChange", "isValidDateChange", "closeCalendar", "closeClicked"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.InputGroupComponent, selector: "fd-input-group", inputs: ["inputTemplate", "placement", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "iconTitle", "ariaLabelledby", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "directive", type: i7.InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "component", type: i8.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i2.FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { kind: "component", type: i9.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i9.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i9.BarElementDirective, selector: "fd-bar-element", inputs: ["isTitle", "fullWidth"] }, { kind: "pipe", type: i10.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
613
702
|
}
|
|
614
703
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
615
704
|
type: Component,
|
|
@@ -732,10 +821,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
|
|
|
732
821
|
args: [CalendarComponent]
|
|
733
822
|
}], _inputGroupElement: [{
|
|
734
823
|
type: ViewChild,
|
|
735
|
-
args: ['inputGroupComponent', {
|
|
824
|
+
args: ['inputGroupComponent', {
|
|
825
|
+
read: ElementRef
|
|
826
|
+
}]
|
|
736
827
|
}], _inputElement: [{
|
|
737
828
|
type: ViewChild,
|
|
738
|
-
args: [InputGroupInputDirective, {
|
|
829
|
+
args: [InputGroupInputDirective, {
|
|
830
|
+
read: ElementRef
|
|
831
|
+
}]
|
|
739
832
|
}], disableFunction: [{
|
|
740
833
|
type: Input
|
|
741
834
|
}], disableRangeStartFunction: [{
|