@fundamental-ngx/core 0.35.4-rc.4 → 0.35.4-rc.7

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.
Files changed (144) hide show
  1. package/action-bar/package.json +1 -1
  2. package/action-sheet/package.json +1 -1
  3. package/alert/package.json +1 -1
  4. package/assets/fonts/sap_fiori_3_fonts.css +6 -0
  5. package/assets/fonts/sap_horizon_fonts.css +6 -0
  6. package/{schematics/ng-add/styles.js → assets/fundamental-ngx-core-fonts.scss} +10 -20
  7. package/assets/fundamental-ngx-core.scss +1 -0
  8. package/avatar/package.json +1 -1
  9. package/avatar-group/package.json +1 -1
  10. package/bar/package.json +1 -1
  11. package/breadcrumb/package.json +1 -1
  12. package/busy-indicator/package.json +1 -1
  13. package/button/package.json +1 -1
  14. package/calendar/package.json +1 -1
  15. package/card/package.json +1 -1
  16. package/carousel/package.json +1 -1
  17. package/checkbox/package.json +1 -1
  18. package/combobox/package.json +1 -1
  19. package/content-density/esm2020/classes/deprecated-compact.directive.mjs +4 -4
  20. package/content-density/esm2020/classes/deprecated-condensed.directive.mjs +3 -3
  21. package/content-density/esm2020/classes/deprecated-cozy.directive.mjs +3 -3
  22. package/content-density/fesm2015/fundamental-ngx-core-content-density.mjs +7 -7
  23. package/content-density/fesm2015/fundamental-ngx-core-content-density.mjs.map +1 -1
  24. package/content-density/fesm2020/fundamental-ngx-core-content-density.mjs +7 -7
  25. package/content-density/fesm2020/fundamental-ngx-core-content-density.mjs.map +1 -1
  26. package/content-density/package.json +3 -3
  27. package/date-picker/package.json +1 -1
  28. package/datetime/package.json +1 -1
  29. package/datetime-picker/package.json +1 -1
  30. package/dialog/package.json +1 -1
  31. package/dynamic-page/package.json +1 -1
  32. package/dynamic-side-content/package.json +1 -1
  33. package/esm2020/content-density/classes/deprecated-compact.directive.mjs +4 -4
  34. package/esm2020/content-density/classes/deprecated-condensed.directive.mjs +3 -3
  35. package/esm2020/content-density/classes/deprecated-cozy.directive.mjs +3 -3
  36. package/esm2020/tile/directives/numeric-content.directives.mjs +1 -1
  37. package/facets/package.json +1 -1
  38. package/feed-input/package.json +1 -1
  39. package/feed-list-item/package.json +1 -1
  40. package/fesm2015/fundamental-ngx-core-content-density.mjs +7 -7
  41. package/fesm2015/fundamental-ngx-core-content-density.mjs.map +1 -1
  42. package/fesm2015/fundamental-ngx-core-tile.mjs.map +1 -1
  43. package/fesm2020/fundamental-ngx-core-content-density.mjs +7 -7
  44. package/fesm2020/fundamental-ngx-core-content-density.mjs.map +1 -1
  45. package/fesm2020/fundamental-ngx-core-tile.mjs.map +1 -1
  46. package/file-uploader/package.json +1 -1
  47. package/fixed-card-layout/package.json +1 -1
  48. package/flexible-column-layout/package.json +1 -1
  49. package/form/package.json +1 -1
  50. package/formatted-text/package.json +1 -1
  51. package/grid-list/package.json +1 -1
  52. package/icon/package.json +1 -1
  53. package/illustrated-message/package.json +1 -1
  54. package/infinite-scroll/package.json +1 -1
  55. package/info-label/package.json +1 -1
  56. package/inline-help/package.json +1 -1
  57. package/input-group/package.json +1 -1
  58. package/layout-grid/package.json +1 -1
  59. package/layout-panel/package.json +1 -1
  60. package/link/package.json +1 -1
  61. package/list/package.json +1 -1
  62. package/menu/package.json +1 -1
  63. package/message-box/package.json +1 -1
  64. package/message-strip/package.json +1 -1
  65. package/message-toast/package.json +1 -1
  66. package/micro-process-flow/package.json +1 -1
  67. package/mobile-mode/package.json +1 -1
  68. package/multi-input/package.json +1 -1
  69. package/nested-list/package.json +1 -1
  70. package/notification/package.json +1 -1
  71. package/object-identifier/package.json +1 -1
  72. package/object-marker/package.json +1 -1
  73. package/object-number/package.json +1 -1
  74. package/object-status/package.json +1 -1
  75. package/overflow-layout/package.json +13 -13
  76. package/package.json +26 -13
  77. package/pagination/package.json +1 -1
  78. package/panel/package.json +1 -1
  79. package/popover/package.json +1 -1
  80. package/product-switch/package.json +1 -1
  81. package/progress-indicator/package.json +1 -1
  82. package/quick-view/package.json +1 -1
  83. package/radio/package.json +1 -1
  84. package/rating-indicator/package.json +1 -1
  85. package/resizable-card-layout/package.json +1 -1
  86. package/schematics/collection.json +0 -9
  87. package/schematics/migrations/migration-0.36/index.d.ts +2 -0
  88. package/schematics/migrations/migration-0.36/index.js +113 -0
  89. package/schematics/migrations/migration-0.36/index.js.map +1 -0
  90. package/schematics/migrations.json +9 -0
  91. package/schematics/ng-add/index.js +198 -168
  92. package/schematics/ng-add/index.js.map +1 -1
  93. package/schematics/ng-add/schema.d.ts +1 -1
  94. package/schematics/ng-add/schema.json +6 -6
  95. package/schematics/utils/file-utils.js +1 -1
  96. package/schematics/utils/file-utils.js.map +1 -1
  97. package/scroll-spy/package.json +1 -1
  98. package/scrollbar/package.json +1 -1
  99. package/segmented-button/package.json +1 -1
  100. package/select/package.json +1 -1
  101. package/shared/package.json +1 -1
  102. package/shellbar/package.json +1 -1
  103. package/side-navigation/package.json +1 -1
  104. package/slider/package.json +1 -1
  105. package/split-button/package.json +1 -1
  106. package/splitter/package.json +1 -1
  107. package/status-indicator/package.json +1 -1
  108. package/step-input/package.json +1 -1
  109. package/switch/package.json +1 -1
  110. package/table/package.json +1 -1
  111. package/tabs/package.json +1 -1
  112. package/text/package.json +1 -1
  113. package/theming/package.json +1 -1
  114. package/tile/directives/numeric-content.directives.d.ts +2 -3
  115. package/tile/esm2020/directives/numeric-content.directives.mjs +1 -1
  116. package/tile/fesm2015/fundamental-ngx-core-tile.mjs.map +1 -1
  117. package/tile/fesm2020/fundamental-ngx-core-tile.mjs.map +1 -1
  118. package/tile/package.json +1 -1
  119. package/time/package.json +1 -1
  120. package/time-picker/package.json +1 -1
  121. package/timeline/package.json +1 -1
  122. package/title/package.json +1 -1
  123. package/token/package.json +1 -1
  124. package/toolbar/package.json +1 -1
  125. package/tree/package.json +1 -1
  126. package/upload-collection/package.json +1 -1
  127. package/utils/package.json +1 -1
  128. package/vertical-navigation/package.json +1 -1
  129. package/wizard/package.json +1 -1
  130. package/schematics/add-animations/index.d.ts +0 -1
  131. package/schematics/add-animations/index.js +0 -42
  132. package/schematics/add-animations/index.js.map +0 -1
  133. package/schematics/migrations/migrate-theme-fonts/index.d.ts +0 -2
  134. package/schematics/migrations/migrate-theme-fonts/index.js +0 -85
  135. package/schematics/migrations/migrate-theme-fonts/index.js.map +0 -1
  136. package/schematics/migrations/migrate-theme-fonts/schema.d.ts +0 -4
  137. package/schematics/migrations/migrate-theme-fonts/schema.js +0 -3
  138. package/schematics/migrations/migrate-theme-fonts/schema.js.map +0 -1
  139. package/schematics/migrations/migrate-theme-fonts/schema.json +0 -21
  140. package/schematics/migrations/migrate-theme-fonts/styles.d.ts +0 -2
  141. package/schematics/migrations/migrate-theme-fonts/styles.js +0 -20
  142. package/schematics/migrations/migrate-theme-fonts/styles.js.map +0 -1
  143. package/schematics/ng-add/styles.d.ts +0 -4
  144. package/schematics/ng-add/styles.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/action-bar",
3
- "version": "0.35.4-rc.4",
3
+ "version": "0.35.4-rc.7",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/action-sheet",
3
- "version": "0.35.4-rc.4",
3
+ "version": "0.35.4-rc.7",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/alert",
3
- "version": "0.35.4-rc.4",
3
+ "version": "0.35.4-rc.7",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -0,0 +1,6 @@
1
+ @font-face {
2
+ font-family: 'SAP-icons';
3
+ src: url('~@sap-theming/theming-base-content/content/Base/baseLib/baseTheme/fonts/SAP-icons.woff') format('woff');
4
+ font-weight: normal;
5
+ font-style: normal;
6
+ }
@@ -0,0 +1,6 @@
1
+ @font-face {
2
+ font-family: 'SAP-icons';
3
+ src: url('~@sap-theming/theming-base-content/content/Base/baseLib/sap_horizon/fonts/SAP-icons.woff') format('woff');
4
+ font-weight: normal;
5
+ font-style: normal;
6
+ }
@@ -1,47 +1,37 @@
1
- "use strict";
2
- /** */
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.defaultStyles = void 0;
5
- exports.defaultStyles = {
6
- '72-Regular-full.woff': `
7
1
  @font-face {
8
2
  font-family: '72';
9
- src: url('~@sap-theming/theming-base-content/content/Base/baseLib/baseTheme/fonts/72-Regular-full.woff') format('woff');
3
+ src: url('~@sap-theming/theming-base-content/content/Base/baseLib/baseTheme/fonts/72-Regular-full.woff')
4
+ format('woff');
10
5
  font-weight: normal;
11
6
  font-style: normal;
12
7
  }
13
- `,
14
- '72-Light.woff': `
8
+
15
9
  @font-face {
16
10
  font-family: '72';
17
11
  src: url('~@sap-theming/theming-base-content/content/Base/baseLib/baseTheme/fonts/72-Light.woff') format('woff');
18
12
  font-weight: 300;
19
13
  font-style: normal;
20
14
  }
21
- `,
22
- '72-Bold.woff': `
15
+
23
16
  @font-face {
24
17
  font-family: '72';
25
18
  src: url('~@sap-theming/theming-base-content/content/Base/baseLib/baseTheme/fonts/72-Bold.woff') format('woff');
26
19
  font-weight: 700;
27
20
  font-style: normal;
28
21
  }
29
- `,
30
- 'BusinessSuiteInAppSymbols.woff': `
22
+
31
23
  @font-face {
32
24
  font-family: 'BusinessSuiteInAppSymbols';
33
- src: url('~@sap-theming/theming-base-content/content/Base/baseLib/baseTheme/fonts/BusinessSuiteInAppSymbols.woff') format('woff');
25
+ src: url('~@sap-theming/theming-base-content/content/Base/baseLib/baseTheme/fonts/BusinessSuiteInAppSymbols.woff')
26
+ format('woff');
34
27
  font-weight: normal;
35
28
  font-style: normal;
36
29
  }
37
- `,
38
- 'SAP-icons-TNT.woff': `
30
+
39
31
  @font-face {
40
32
  font-family: 'SAP-icons-TNT';
41
- src: url('~@sap-theming/theming-base-content/content/Base/baseLib/baseTheme/fonts/SAP-icons-TNT.woff') format('woff');
33
+ src: url('~@sap-theming/theming-base-content/content/Base/baseLib/baseTheme/fonts/SAP-icons-TNT.woff')
34
+ format('woff');
42
35
  font-weight: normal;
43
36
  font-style: normal;
44
37
  }
45
- `
46
- };
47
- //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ @import '~fundamental-styles/dist/icon.css';
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/avatar",
3
- "version": "0.35.4-rc.4",
3
+ "version": "0.35.4-rc.7",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/avatar-group",
3
- "version": "0.35.4-rc.4",
3
+ "version": "0.35.4-rc.7",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
package/bar/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/bar",
3
- "version": "0.35.4-rc.4",
3
+ "version": "0.35.4-rc.7",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/breadcrumb",
3
- "version": "0.35.4-rc.4",
3
+ "version": "0.35.4-rc.7",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/busy-indicator",
3
- "version": "0.35.4-rc.4",
3
+ "version": "0.35.4-rc.7",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/button",
3
- "version": "0.35.4-rc.4",
3
+ "version": "0.35.4-rc.7",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/calendar",
3
- "version": "0.35.4-rc.4",
3
+ "version": "0.35.4-rc.7",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
package/card/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/card",
3
- "version": "0.35.4-rc.4",
3
+ "version": "0.35.4-rc.7",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/carousel",
3
- "version": "0.35.4-rc.4",
3
+ "version": "0.35.4-rc.7",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/checkbox",
3
- "version": "0.35.4-rc.4",
3
+ "version": "0.35.4-rc.7",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/combobox",
3
- "version": "0.35.4-rc.4",
3
+ "version": "0.35.4-rc.7",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -14,12 +14,12 @@ export class DeprecatedCompactDirective extends BehaviorSubject {
14
14
  link: ['/core', 'content-density']
15
15
  };
16
16
  this.message = `Usage of ${selectorBase}[compact] is deprecated`;
17
- if (isDevMode()) {
18
- console.warn(`${this.message}. Use [fdCompact] directive instead.`);
19
- }
20
17
  }
21
18
  /** @deprecated use fdCompact directive instead */
22
19
  set compact(value) {
20
+ if (isDevMode()) {
21
+ console.warn(`${this.message}. Use [fdCompact] directive instead.`);
22
+ }
23
23
  this.next(coerceBooleanProperty(value) ? ContentDensityMode.COMPACT : ContentDensityMode.COZY);
24
24
  }
25
25
  ngOnDestroy() {
@@ -33,4 +33,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
33
33
  }], ctorParameters: function () { return [{ type: undefined }]; }, propDecorators: { compact: [{
34
34
  type: Input
35
35
  }] } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcmVjYXRlZC1jb21wYWN0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NvbnRlbnQtZGVuc2l0eS9jbGFzc2VzL2RlcHJlY2F0ZWQtY29tcGFjdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUc5RDs7R0FFRztBQUVILE1BQU0sT0FBTywwQkFDVCxTQUFRLGVBQW1DO0lBZTNDLFlBQVksWUFBb0I7UUFDNUIsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBTjFCLGdCQUFXLEdBQUc7WUFDbkIsSUFBSSxFQUFFLG1DQUFtQztZQUN6QyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUM7U0FDckMsQ0FBQztRQUlFLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxZQUFZLHlCQUF5QixDQUFDO1FBQ2pFLElBQUksU0FBUyxFQUFFLEVBQUU7WUFDYixPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sc0NBQXNDLENBQUMsQ0FBQztTQUN2RTtJQUNMLENBQUM7SUFsQkQsa0RBQWtEO0lBQ2xELElBQ0ksT0FBTyxDQUFDLEtBQW1CO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkcsQ0FBQztJQWdCRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUM7O3VIQTFCUSwwQkFBMEI7MkdBQTFCLDBCQUEwQjsyRkFBMUIsMEJBQTBCO2tCQUR0QyxTQUFTOzZGQU9GLE9BQU87c0JBRFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIGlzRGV2TW9kZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5TW9kZSB9IGZyb20gJy4uL2NvbnRlbnQtZGVuc2l0eS50eXBlcyc7XG5pbXBvcnQgeyBNb2R1bGVEZXByZWNhdGlvbiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS91dGlscyc7XG5cbi8qKlxuICogRGlyZWN0aXZlIGRlY29yYXRvciBpcyBvbmx5IGZvciBhbGxvd2luZyBASW5wdXRcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgRGVwcmVjYXRlZENvbXBhY3REaXJlY3RpdmVcbiAgICBleHRlbmRzIEJlaGF2aW9yU3ViamVjdDxDb250ZW50RGVuc2l0eU1vZGU+XG4gICAgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE1vZHVsZURlcHJlY2F0aW9uXG57XG4gICAgLyoqIEBkZXByZWNhdGVkIHVzZSBmZENvbXBhY3QgZGlyZWN0aXZlIGluc3RlYWQgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBjb21wYWN0KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5uZXh0KGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSkgPyBDb250ZW50RGVuc2l0eU1vZGUuQ09NUEFDVCA6IENvbnRlbnREZW5zaXR5TW9kZS5DT1pZKTtcbiAgICB9XG5cbiAgICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgYWx0ZXJuYXRpdmUgPSB7XG4gICAgICAgIG5hbWU6ICdVc2UgW2ZkQ29tcGFjdF0gZGlyZWN0aXZlIGluc3RlYWQnLFxuICAgICAgICBsaW5rOiBbJy9jb3JlJywgJ2NvbnRlbnQtZGVuc2l0eSddXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHNlbGVjdG9yQmFzZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKENvbnRlbnREZW5zaXR5TW9kZS5DT1pZKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlID0gYFVzYWdlIG9mICR7c2VsZWN0b3JCYXNlfVtjb21wYWN0XSBpcyBkZXByZWNhdGVkYDtcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYCR7dGhpcy5tZXNzYWdlfS4gVXNlIFtmZENvbXBhY3RdIGRpcmVjdGl2ZSBpbnN0ZWFkLmApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29tcGxldGUoKTtcbiAgICB9XG59XG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcmVjYXRlZC1jb21wYWN0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NvbnRlbnQtZGVuc2l0eS9jbGFzc2VzL2RlcHJlY2F0ZWQtY29tcGFjdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUc5RDs7R0FFRztBQUVILE1BQU0sT0FBTywwQkFDVCxTQUFRLGVBQW1DO0lBa0IzQyxZQUFZLFlBQW9CO1FBQzVCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQU4xQixnQkFBVyxHQUFHO1lBQ25CLElBQUksRUFBRSxtQ0FBbUM7WUFDekMsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLGlCQUFpQixDQUFDO1NBQ3JDLENBQUM7UUFJRSxJQUFJLENBQUMsT0FBTyxHQUFHLFlBQVksWUFBWSx5QkFBeUIsQ0FBQztJQUNyRSxDQUFDO0lBbEJELGtEQUFrRDtJQUNsRCxJQUNJLE9BQU8sQ0FBQyxLQUFtQjtRQUMzQixJQUFJLFNBQVMsRUFBRSxFQUFFO1lBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLHNDQUFzQyxDQUFDLENBQUM7U0FDdkU7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFhRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUM7O3VIQTFCUSwwQkFBMEI7MkdBQTFCLDBCQUEwQjsyRkFBMUIsMEJBQTBCO2tCQUR0QyxTQUFTOzZGQU9GLE9BQU87c0JBRFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIGlzRGV2TW9kZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5TW9kZSB9IGZyb20gJy4uL2NvbnRlbnQtZGVuc2l0eS50eXBlcyc7XG5pbXBvcnQgeyBNb2R1bGVEZXByZWNhdGlvbiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS91dGlscyc7XG5cbi8qKlxuICogRGlyZWN0aXZlIGRlY29yYXRvciBpcyBvbmx5IGZvciBhbGxvd2luZyBASW5wdXRcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgRGVwcmVjYXRlZENvbXBhY3REaXJlY3RpdmVcbiAgICBleHRlbmRzIEJlaGF2aW9yU3ViamVjdDxDb250ZW50RGVuc2l0eU1vZGU+XG4gICAgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE1vZHVsZURlcHJlY2F0aW9uXG57XG4gICAgLyoqIEBkZXByZWNhdGVkIHVzZSBmZENvbXBhY3QgZGlyZWN0aXZlIGluc3RlYWQgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBjb21wYWN0KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYCR7dGhpcy5tZXNzYWdlfS4gVXNlIFtmZENvbXBhY3RdIGRpcmVjdGl2ZSBpbnN0ZWFkLmApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubmV4dChjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpID8gQ29udGVudERlbnNpdHlNb2RlLkNPTVBBQ1QgOiBDb250ZW50RGVuc2l0eU1vZGUuQ09aWSk7XG4gICAgfVxuXG4gICAgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGFsdGVybmF0aXZlID0ge1xuICAgICAgICBuYW1lOiAnVXNlIFtmZENvbXBhY3RdIGRpcmVjdGl2ZSBpbnN0ZWFkJyxcbiAgICAgICAgbGluazogWycvY29yZScsICdjb250ZW50LWRlbnNpdHknXVxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3RvcihzZWxlY3RvckJhc2U6IHN0cmluZykge1xuICAgICAgICBzdXBlcihDb250ZW50RGVuc2l0eU1vZGUuQ09aWSk7XG4gICAgICAgIHRoaXMubWVzc2FnZSA9IGBVc2FnZSBvZiAke3NlbGVjdG9yQmFzZX1bY29tcGFjdF0gaXMgZGVwcmVjYXRlZGA7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29tcGxldGUoKTtcbiAgICB9XG59XG4iXX0=
@@ -14,11 +14,11 @@ export class DeprecatedCondensedDirective extends BehaviorSubject {
14
14
  link: ['/core', 'content-density']
15
15
  };
16
16
  this.message = `Usage of ${selectorBase}[condensed] is deprecated`;
17
+ }
18
+ set condensed(value) {
17
19
  if (isDevMode()) {
18
20
  console.warn(`${this.message}. Use [fdCondensed] directive instead.`);
19
21
  }
20
- }
21
- set condensed(value) {
22
22
  this.next(coerceBooleanProperty(value) ? ContentDensityMode.CONDENSED : ContentDensityMode.COZY);
23
23
  }
24
24
  ngOnDestroy() {
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
32
32
  }], ctorParameters: function () { return [{ type: undefined }]; }, propDecorators: { condensed: [{
33
33
  type: Input
34
34
  }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcmVjYXRlZC1jb25kZW5zZWQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY29udGVudC1kZW5zaXR5L2NsYXNzZXMvZGVwcmVjYXRlZC1jb25kZW5zZWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFHOUQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sNEJBQ1QsU0FBUSxlQUFtQztJQWMzQyxZQUFZLFlBQW9CO1FBQzVCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQU4xQixnQkFBVyxHQUFHO1lBQ25CLElBQUksRUFBRSxxQ0FBcUM7WUFDM0MsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLGlCQUFpQixDQUFDO1NBQ3JDLENBQUM7UUFJRSxJQUFJLENBQUMsT0FBTyxHQUFHLFlBQVksWUFBWSwyQkFBMkIsQ0FBQztRQUNuRSxJQUFJLFNBQVMsRUFBRSxFQUFFO1lBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLHdDQUF3QyxDQUFDLENBQUM7U0FDekU7SUFDTCxDQUFDO0lBakJELElBQ0ksU0FBUyxDQUFDLEtBQW1CO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckcsQ0FBQztJQWdCRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUM7O3lIQXpCUSw0QkFBNEI7NkdBQTVCLDRCQUE0QjsyRkFBNUIsNEJBQTRCO2tCQUR4QyxTQUFTOzZGQU1GLFNBQVM7c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIGlzRGV2TW9kZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5TW9kZSB9IGZyb20gJy4uL2NvbnRlbnQtZGVuc2l0eS50eXBlcyc7XG5pbXBvcnQgeyBNb2R1bGVEZXByZWNhdGlvbiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS91dGlscyc7XG5cbi8qKlxuICogRGlyZWN0aXZlIGRlY29yYXRvciBpcyBvbmx5IGZvciBhbGxvd2luZyBASW5wdXRcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgRGVwcmVjYXRlZENvbmRlbnNlZERpcmVjdGl2ZVxuICAgIGV4dGVuZHMgQmVoYXZpb3JTdWJqZWN0PENvbnRlbnREZW5zaXR5TW9kZT5cbiAgICBpbXBsZW1lbnRzIE9uRGVzdHJveSwgTW9kdWxlRGVwcmVjYXRpb25cbntcbiAgICBASW5wdXQoKVxuICAgIHNldCBjb25kZW5zZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLm5leHQoY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKSA/IENvbnRlbnREZW5zaXR5TW9kZS5DT05ERU5TRUQgOiBDb250ZW50RGVuc2l0eU1vZGUuQ09aWSk7XG4gICAgfVxuXG4gICAgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGFsdGVybmF0aXZlID0ge1xuICAgICAgICBuYW1lOiAnVXNlIFtmZENvbmRlbnNlZF0gZGlyZWN0aXZlIGluc3RlYWQnLFxuICAgICAgICBsaW5rOiBbJy9jb3JlJywgJ2NvbnRlbnQtZGVuc2l0eSddXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHNlbGVjdG9yQmFzZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKENvbnRlbnREZW5zaXR5TW9kZS5DT1pZKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlID0gYFVzYWdlIG9mICR7c2VsZWN0b3JCYXNlfVtjb25kZW5zZWRdIGlzIGRlcHJlY2F0ZWRgO1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgJHt0aGlzLm1lc3NhZ2V9LiBVc2UgW2ZkQ29uZGVuc2VkXSBkaXJlY3RpdmUgaW5zdGVhZC5gKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIl19
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcmVjYXRlZC1jb25kZW5zZWQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY29udGVudC1kZW5zaXR5L2NsYXNzZXMvZGVwcmVjYXRlZC1jb25kZW5zZWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFHOUQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sNEJBQ1QsU0FBUSxlQUFtQztJQWlCM0MsWUFBWSxZQUFvQjtRQUM1QixLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFOMUIsZ0JBQVcsR0FBRztZQUNuQixJQUFJLEVBQUUscUNBQXFDO1lBQzNDLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQztTQUNyQyxDQUFDO1FBSUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLFlBQVksMkJBQTJCLENBQUM7SUFDdkUsQ0FBQztJQWpCRCxJQUNJLFNBQVMsQ0FBQyxLQUFtQjtRQUM3QixJQUFJLFNBQVMsRUFBRSxFQUFFO1lBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLHdDQUF3QyxDQUFDLENBQUM7U0FDekU7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFhRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUM7O3lIQXpCUSw0QkFBNEI7NkdBQTVCLDRCQUE0QjsyRkFBNUIsNEJBQTRCO2tCQUR4QyxTQUFTOzZGQU1GLFNBQVM7c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIGlzRGV2TW9kZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5TW9kZSB9IGZyb20gJy4uL2NvbnRlbnQtZGVuc2l0eS50eXBlcyc7XG5pbXBvcnQgeyBNb2R1bGVEZXByZWNhdGlvbiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS91dGlscyc7XG5cbi8qKlxuICogRGlyZWN0aXZlIGRlY29yYXRvciBpcyBvbmx5IGZvciBhbGxvd2luZyBASW5wdXRcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgRGVwcmVjYXRlZENvbmRlbnNlZERpcmVjdGl2ZVxuICAgIGV4dGVuZHMgQmVoYXZpb3JTdWJqZWN0PENvbnRlbnREZW5zaXR5TW9kZT5cbiAgICBpbXBsZW1lbnRzIE9uRGVzdHJveSwgTW9kdWxlRGVwcmVjYXRpb25cbntcbiAgICBASW5wdXQoKVxuICAgIHNldCBjb25kZW5zZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgJHt0aGlzLm1lc3NhZ2V9LiBVc2UgW2ZkQ29uZGVuc2VkXSBkaXJlY3RpdmUgaW5zdGVhZC5gKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm5leHQoY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKSA/IENvbnRlbnREZW5zaXR5TW9kZS5DT05ERU5TRUQgOiBDb250ZW50RGVuc2l0eU1vZGUuQ09aWSk7XG4gICAgfVxuXG4gICAgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGFsdGVybmF0aXZlID0ge1xuICAgICAgICBuYW1lOiAnVXNlIFtmZENvbmRlbnNlZF0gZGlyZWN0aXZlIGluc3RlYWQnLFxuICAgICAgICBsaW5rOiBbJy9jb3JlJywgJ2NvbnRlbnQtZGVuc2l0eSddXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHNlbGVjdG9yQmFzZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKENvbnRlbnREZW5zaXR5TW9kZS5DT1pZKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlID0gYFVzYWdlIG9mICR7c2VsZWN0b3JCYXNlfVtjb25kZW5zZWRdIGlzIGRlcHJlY2F0ZWRgO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIl19
@@ -14,11 +14,11 @@ export class DeprecatedCozyDirective extends BehaviorSubject {
14
14
  link: ['/core', 'content-density']
15
15
  };
16
16
  this.message = `Usage of ${selectorBase}[cozy] is deprecated`;
17
+ }
18
+ set cozy(value) {
17
19
  if (isDevMode()) {
18
20
  console.warn(`${this.message}. Use [fdCozy] directive instead.`);
19
21
  }
20
- }
21
- set cozy(value) {
22
22
  this.next(coerceBooleanProperty(value) ? ContentDensityMode.COZY : ContentDensityMode.COMPACT);
23
23
  }
24
24
  ngOnDestroy() {
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
32
32
  }], ctorParameters: function () { return [{ type: undefined }]; }, propDecorators: { cozy: [{
33
33
  type: Input
34
34
  }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcmVjYXRlZC1jb3p5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NvbnRlbnQtZGVuc2l0eS9jbGFzc2VzL2RlcHJlY2F0ZWQtY296eS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUc5RDs7R0FFRztBQUVILE1BQU0sT0FBTyx1QkFDVCxTQUFRLGVBQW1DO0lBYzNDLFlBQVksWUFBb0I7UUFDNUIsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBTjdCLGdCQUFXLEdBQUc7WUFDbkIsSUFBSSxFQUFFLGdDQUFnQztZQUN0QyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUM7U0FDckMsQ0FBQztRQUlFLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxZQUFZLHNCQUFzQixDQUFDO1FBQzlELElBQUksU0FBUyxFQUFFLEVBQUU7WUFDYixPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sbUNBQW1DLENBQUMsQ0FBQztTQUNwRTtJQUNMLENBQUM7SUFqQkQsSUFDSSxJQUFJLENBQUMsS0FBbUI7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuRyxDQUFDO0lBZ0JELFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7b0hBekJRLHVCQUF1Qjt3R0FBdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBRG5DLFNBQVM7NkZBTUYsSUFBSTtzQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgaXNEZXZNb2RlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlNb2RlIH0gZnJvbSAnLi4vY29udGVudC1kZW5zaXR5LnR5cGVzJztcbmltcG9ydCB7IE1vZHVsZURlcHJlY2F0aW9uIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3V0aWxzJztcblxuLyoqXG4gKiBEaXJlY3RpdmUgZGVjb3JhdG9yIGlzIG9ubHkgZm9yIGFsbG93aW5nIEBJbnB1dFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBEZXByZWNhdGVkQ296eURpcmVjdGl2ZVxuICAgIGV4dGVuZHMgQmVoYXZpb3JTdWJqZWN0PENvbnRlbnREZW5zaXR5TW9kZT5cbiAgICBpbXBsZW1lbnRzIE9uRGVzdHJveSwgTW9kdWxlRGVwcmVjYXRpb25cbntcbiAgICBASW5wdXQoKVxuICAgIHNldCBjb3p5KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5uZXh0KGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSkgPyBDb250ZW50RGVuc2l0eU1vZGUuQ09aWSA6IENvbnRlbnREZW5zaXR5TW9kZS5DT01QQUNUKTtcbiAgICB9XG5cbiAgICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgYWx0ZXJuYXRpdmUgPSB7XG4gICAgICAgIG5hbWU6ICdVc2UgW2ZkQ296eV0gZGlyZWN0aXZlIGluc3RlYWQnLFxuICAgICAgICBsaW5rOiBbJy9jb3JlJywgJ2NvbnRlbnQtZGVuc2l0eSddXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHNlbGVjdG9yQmFzZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKENvbnRlbnREZW5zaXR5TW9kZS5DT01QQUNUKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlID0gYFVzYWdlIG9mICR7c2VsZWN0b3JCYXNlfVtjb3p5XSBpcyBkZXByZWNhdGVkYDtcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYCR7dGhpcy5tZXNzYWdlfS4gVXNlIFtmZENvenldIGRpcmVjdGl2ZSBpbnN0ZWFkLmApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29tcGxldGUoKTtcbiAgICB9XG59XG4iXX0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcmVjYXRlZC1jb3p5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NvbnRlbnQtZGVuc2l0eS9jbGFzc2VzL2RlcHJlY2F0ZWQtY296eS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUc5RDs7R0FFRztBQUVILE1BQU0sT0FBTyx1QkFDVCxTQUFRLGVBQW1DO0lBaUIzQyxZQUFZLFlBQW9CO1FBQzVCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQU43QixnQkFBVyxHQUFHO1lBQ25CLElBQUksRUFBRSxnQ0FBZ0M7WUFDdEMsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLGlCQUFpQixDQUFDO1NBQ3JDLENBQUM7UUFJRSxJQUFJLENBQUMsT0FBTyxHQUFHLFlBQVksWUFBWSxzQkFBc0IsQ0FBQztJQUNsRSxDQUFDO0lBakJELElBQ0ksSUFBSSxDQUFDLEtBQW1CO1FBQ3hCLElBQUksU0FBUyxFQUFFLEVBQUU7WUFDYixPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sbUNBQW1DLENBQUMsQ0FBQztTQUNwRTtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkcsQ0FBQztJQWFELFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7b0hBekJRLHVCQUF1Qjt3R0FBdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBRG5DLFNBQVM7NkZBTUYsSUFBSTtzQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgaXNEZXZNb2RlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlNb2RlIH0gZnJvbSAnLi4vY29udGVudC1kZW5zaXR5LnR5cGVzJztcbmltcG9ydCB7IE1vZHVsZURlcHJlY2F0aW9uIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3V0aWxzJztcblxuLyoqXG4gKiBEaXJlY3RpdmUgZGVjb3JhdG9yIGlzIG9ubHkgZm9yIGFsbG93aW5nIEBJbnB1dFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBEZXByZWNhdGVkQ296eURpcmVjdGl2ZVxuICAgIGV4dGVuZHMgQmVoYXZpb3JTdWJqZWN0PENvbnRlbnREZW5zaXR5TW9kZT5cbiAgICBpbXBsZW1lbnRzIE9uRGVzdHJveSwgTW9kdWxlRGVwcmVjYXRpb25cbntcbiAgICBASW5wdXQoKVxuICAgIHNldCBjb3p5KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYCR7dGhpcy5tZXNzYWdlfS4gVXNlIFtmZENvenldIGRpcmVjdGl2ZSBpbnN0ZWFkLmApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubmV4dChjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpID8gQ29udGVudERlbnNpdHlNb2RlLkNPWlkgOiBDb250ZW50RGVuc2l0eU1vZGUuQ09NUEFDVCk7XG4gICAgfVxuXG4gICAgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGFsdGVybmF0aXZlID0ge1xuICAgICAgICBuYW1lOiAnVXNlIFtmZENvenldIGRpcmVjdGl2ZSBpbnN0ZWFkJyxcbiAgICAgICAgbGluazogWycvY29yZScsICdjb250ZW50LWRlbnNpdHknXVxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3RvcihzZWxlY3RvckJhc2U6IHN0cmluZykge1xuICAgICAgICBzdXBlcihDb250ZW50RGVuc2l0eU1vZGUuQ09NUEFDVCk7XG4gICAgICAgIHRoaXMubWVzc2FnZSA9IGBVc2FnZSBvZiAke3NlbGVjdG9yQmFzZX1bY296eV0gaXMgZGVwcmVjYXRlZGA7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29tcGxldGUoKTtcbiAgICB9XG59XG4iXX0=
@@ -562,12 +562,12 @@ class DeprecatedCompactDirective extends BehaviorSubject {
562
562
  link: ['/core', 'content-density']
563
563
  };
564
564
  this.message = `Usage of ${selectorBase}[compact] is deprecated`;
565
- if (isDevMode()) {
566
- console.warn(`${this.message}. Use [fdCompact] directive instead.`);
567
- }
568
565
  }
569
566
  /** @deprecated use fdCompact directive instead */
570
567
  set compact(value) {
568
+ if (isDevMode()) {
569
+ console.warn(`${this.message}. Use [fdCompact] directive instead.`);
570
+ }
571
571
  this.next(coerceBooleanProperty(value) ? ContentDensityMode.COMPACT : ContentDensityMode.COZY);
572
572
  }
573
573
  ngOnDestroy() {
@@ -593,11 +593,11 @@ class DeprecatedCozyDirective extends BehaviorSubject {
593
593
  link: ['/core', 'content-density']
594
594
  };
595
595
  this.message = `Usage of ${selectorBase}[cozy] is deprecated`;
596
+ }
597
+ set cozy(value) {
596
598
  if (isDevMode()) {
597
599
  console.warn(`${this.message}. Use [fdCozy] directive instead.`);
598
600
  }
599
- }
600
- set cozy(value) {
601
601
  this.next(coerceBooleanProperty(value) ? ContentDensityMode.COZY : ContentDensityMode.COMPACT);
602
602
  }
603
603
  ngOnDestroy() {
@@ -623,11 +623,11 @@ class DeprecatedCondensedDirective extends BehaviorSubject {
623
623
  link: ['/core', 'content-density']
624
624
  };
625
625
  this.message = `Usage of ${selectorBase}[condensed] is deprecated`;
626
+ }
627
+ set condensed(value) {
626
628
  if (isDevMode()) {
627
629
  console.warn(`${this.message}. Use [fdCondensed] directive instead.`);
628
630
  }
629
- }
630
- set condensed(value) {
631
631
  this.next(coerceBooleanProperty(value) ? ContentDensityMode.CONDENSED : ContentDensityMode.COZY);
632
632
  }
633
633
  ngOnDestroy() {
@@ -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/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/helpers/density-type-checkers.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/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/helpers/content-density-change-callback-factory.ts","../../../../../libs/core/src/lib/content-density/classes/content-density-observer.settings.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/fundamental-ngx-core-content-density.ts"],"sourcesContent":["import { Provider } from '@angular/core';\nimport { HasElementRef } from '@fundamental-ngx/core/utils';\nimport { ContentDensityObserverSettings } from './classes/content-density-observer.settings';\n\nexport const ContentDensityGlobalKeyword = 'global';\n\nexport enum ContentDensityMode {\n COZY = 'cozy',\n CONDENSED = 'condensed',\n COMPACT = 'compact'\n}\n\nexport type LocalContentDensityMode = ContentDensityMode | typeof ContentDensityGlobalKeyword;\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 { ContentDensityMode } from '../content-density.types';\n\nexport const CONTENT_DENSITY_DIRECTIVE = new InjectionToken<Observable<ContentDensityMode>>('ContentDensityDirective');\n","import { Directive, forwardRef, Input, OnDestroy } from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { BehaviorSubject } from 'rxjs';\nimport { ContentDensityGlobalKeyword, ContentDensityMode, LocalContentDensityMode } from '../content-density.types';\nimport { CONTENT_DENSITY_DIRECTIVE } from '../tokens/content-density-directive';\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})\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 this.next(val ? val : ContentDensityGlobalKeyword);\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 '../content-density.types';\n\nexport const DEFAULT_CONTENT_DENSITY = new InjectionToken<ContentDensityMode>('Default global content density', {\n factory: () => ContentDensityMode.COZY\n});\n","import { ContentDensityMode } from '../content-density.types';\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 '../content-density.types';\nimport { DEFAULT_CONTENT_DENSITY } from '../tokens/default-content-density.token';\n\n@Injectable()\nexport class MemoryContentDensityStorage implements ContentDensityStorage {\n private _currentContentDensity$: BehaviorSubject<ContentDensityMode>;\n\n constructor(@Inject(DEFAULT_CONTENT_DENSITY) defaultContentDensity: ContentDensityMode) {\n this._currentContentDensity$ = new BehaviorSubject(defaultContentDensity);\n }\n\n getContentDensity(): Observable<ContentDensityMode> {\n return this._currentContentDensity$.asObservable();\n }\n\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 '../content-density.types';\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/core/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 '../content-density.types';\n\n@Injectable()\nexport class LocalContentDensityStorage implements ContentDensityStorage {\n private _update$ = new Subject<void>();\n\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 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 setContentDensity(density: ContentDensityMode): Observable<void> {\n this._storage.set(this._storageKey, density);\n this._update$.next();\n return of(undefined);\n }\n\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 '../content-density.types';\nimport { BehaviorSubject, distinctUntilChanged, filter, Observable, of } from 'rxjs';\n\n@Injectable()\nexport class UrlContentDensityStorage implements ContentDensityStorage {\n private _current$: BehaviorSubject<ContentDensityMode>;\n\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 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 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 getContentDensity(): Observable<ContentDensityMode> {\n return this._current$.asObservable().pipe(distinctUntilChanged());\n }\n\n setContentDensity(density: ContentDensityMode): Observable<void> {\n this._current$.next(density);\n this._setUrlQueryParam(density);\n return of(undefined);\n }\n}\n","import { ContentDensityMode } from '../content-density.types';\n\nexport const isCompact = (density: ContentDensityMode): boolean => density === ContentDensityMode.COMPACT;\nexport const isCondensed = (density: ContentDensityMode): boolean => density === ContentDensityMode.CONDENSED;\nexport const isCozy = (density: ContentDensityMode): boolean => density === ContentDensityMode.COZY;\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 '../content-density.types';\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 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 { ContentDensityMode, 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/core/utils';\nimport { DeprecatedContentDensityService } from './services/deprecated-content-density.service';\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],\n exports: [ContentDensityDirective],\n declarations: [ContentDensityDirective]\n})\nexport class ContentDensityModule {\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 { Observable, of, switchMap } from 'rxjs';\nimport { GlobalContentDensityService } from '../services/global-content-density.service';\nimport { ContentDensityGlobalKeyword, ContentDensityMode, LocalContentDensityMode } from '../content-density.types';\n\nexport const getChangesSource$ = (params: {\n defaultContentDensity: ContentDensityMode;\n contentDensityDirective?: Observable<LocalContentDensityMode>;\n contentDensityService?: GlobalContentDensityService;\n}): Observable<ContentDensityMode> => {\n const serviceValue$: Observable<ContentDensityMode> = params.contentDensityService\n ? params.contentDensityService.contentDensityListener()\n : of(params.defaultContentDensity);\n const changesSource$ = params.contentDensityDirective ? params.contentDensityDirective : serviceValue$;\n\n return changesSource$.pipe(\n switchMap((mode: LocalContentDensityMode) => {\n if (mode !== ContentDensityGlobalKeyword) {\n return of(mode);\n }\n return serviceValue$;\n })\n );\n};\n","import { ContentDensityMode } from '../content-density.types';\nimport { ContentDensityObserverSettings } from '../classes/content-density-observer.settings';\n\nexport const defaultContentDensityObserverConfigs: Required<ContentDensityObserverSettings> = {\n modifiers: {},\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY],\n defaultContentDensity: ContentDensityMode.COZY\n};\n","import { coerceElement } from '@angular/cdk/coercion';\nimport { ContentDensityCallbackFn, ContentDensityObserverTarget, ContentDensityMode } from '../content-density.types';\nimport { defaultContentDensityObserverConfigs } from '../variables/default-content-density-consumer-config';\nimport { ContentDensityObserverSettings } from '../classes/content-density-observer.settings';\n\nexport function contentDensityCallbackFactory(\n consumerConfig: ContentDensityObserverTarget | ContentDensityCallbackFn\n): ContentDensityCallbackFn {\n if (typeof consumerConfig === 'function') {\n return consumerConfig;\n }\n return (contentDensityMode: ContentDensityMode) => {\n const configs = {\n contentDensitySettings: {\n ...defaultContentDensityObserverConfigs,\n ...consumerConfig.contentDensitySettings\n },\n elementRef: () => consumerConfig.elementRef()\n };\n const settings: Required<ContentDensityObserverSettings> = configs.contentDensitySettings;\n const element = coerceElement(configs.elementRef());\n\n Object.values(settings.modifiers).forEach((className) => {\n element.classList.remove(className);\n });\n if (settings.modifiers[contentDensityMode]) {\n element.classList.add(settings.modifiers[contentDensityMode]);\n }\n };\n}\n","import { ContentDensityMode } from '../content-density.types';\n\nexport class ContentDensityObserverSettings {\n modifiers?: Partial<Record<ContentDensityMode, string>>;\n supportedContentDensity?: ContentDensityMode[];\n defaultContentDensity?: ContentDensityMode;\n}\n","import { ChangeDetectorRef, ElementRef, Injectable, InjectFlags, Injector } from '@angular/core';\nimport {\n ContentDensityCallbackFn,\n ContentDensityMode,\n ContentDensityObserverTarget,\n LocalContentDensityMode\n} from '../content-density.types';\nimport { BehaviorSubject, distinctUntilChanged, finalize, map, Observable, Subscription, takeUntil, tap } from 'rxjs';\nimport { GlobalContentDensityService } from '../services/global-content-density.service';\nimport { getChangesSource$ } from '../helpers/get-changes-source.provider';\nimport { defaultContentDensityObserverConfigs } from '../variables/default-content-density-consumer-config';\nimport { contentDensityCallbackFactory } from '../helpers/content-density-change-callback-factory';\nimport { isCompact, isCondensed, isCozy } from '../helpers/density-type-checkers';\nimport { CONTENT_DENSITY_DIRECTIVE } from '../tokens/content-density-directive';\nimport { DestroyedService } from '@fundamental-ngx/core/utils';\nimport { ContentDensityObserverSettings } from '../classes/content-density-observer.settings';\n\n@Injectable()\nexport class ContentDensityObserver extends BehaviorSubject<ContentDensityMode> {\n /** Stream for getting compact state changes */\n isCompact$: Observable<boolean>;\n /** Stream for getting cozy state changes */\n isCozy$: Observable<boolean>;\n /** Stream for getting condensed state changes */\n isCondensed$: Observable<boolean>;\n\n /** @hidden */\n private _callbacks: Map<any, ContentDensityCallbackFn> = new Map<any, ContentDensityCallbackFn>();\n\n /** @hidden */\n private _isCompact: boolean;\n /** @hidden */\n private _isCozy: boolean;\n /** @hidden */\n private _isCondensed: boolean;\n\n /** @hidden */\n private _compactSubscription: Subscription;\n /** @hidden */\n private _condensedSubscription: Subscription;\n /** @hidden */\n private _cozySubscription: Subscription;\n\n /** @hidden */\n private configuration: Required<ContentDensityObserverSettings>;\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 private readonly destroy$: Observable<void>;\n private changeDetectorRef: ChangeDetectorRef;\n private contentDensityDirective?: Observable<LocalContentDensityMode>;\n private contentDensityService?: GlobalContentDensityService;\n\n constructor(private _injector: Injector, private _providedConfig?: ContentDensityObserverSettings) {\n super(\n _injector.get(GlobalContentDensityService, null, InjectFlags.Optional)?.currentContentDensity ||\n _providedConfig?.defaultContentDensity ||\n defaultContentDensityObserverConfigs.defaultContentDensity\n );\n this.configuration = {\n ...defaultContentDensityObserverConfigs,\n ...(_providedConfig || {})\n };\n this.destroy$ = this._injector.get(DestroyedService);\n this.changeDetectorRef = this._injector.get(ChangeDetectorRef);\n this.contentDensityDirective = this._injector.get(CONTENT_DENSITY_DIRECTIVE, undefined, InjectFlags.Optional);\n this.contentDensityService = this._injector.get(GlobalContentDensityService, undefined, InjectFlags.Optional);\n\n const changesSource$: Observable<ContentDensityMode> = getChangesSource$({\n defaultContentDensity: this.configuration.defaultContentDensity,\n contentDensityDirective: this.contentDensityDirective,\n contentDensityService: this.contentDensityService\n }).pipe(\n map((density: ContentDensityMode) => {\n if (!this.isSupported(density)) {\n return this.alternativeTo[density]();\n }\n return density;\n }),\n distinctUntilChanged(),\n takeUntil(this.destroy$)\n );\n changesSource$\n .pipe(\n tap((density) => this._callCallbacks(density)),\n finalize(() => this.complete())\n )\n .subscribe((density) => {\n this.next(density);\n });\n this.isCompact$ = changesSource$.pipe(map(isCompact));\n this.isCozy$ = changesSource$.pipe(map(isCozy));\n this.isCondensed$ = changesSource$.pipe(map(isCondensed));\n if (_providedConfig) {\n this.consume({\n contentDensitySettings: this.configuration,\n elementRef: () => this._injector.get(ElementRef)\n });\n }\n }\n\n isSupported(density: ContentDensityMode): boolean {\n return this.configuration.supportedContentDensity.includes(density);\n }\n\n /**\n * Sync isCompact. Calls ChangeDetectorRef.markForCheck() on update\n */\n get isCompact(): boolean {\n if (!this._compactSubscription) {\n this._compactSubscription = this._listenToChanges(this.isCompact$, (v) => (this._isCompact = v));\n }\n return this._isCompact;\n }\n\n /**\n * Sync isCondensed. Calls ChangeDetectorRef.markForCheck() on update\n */\n get isCondensed(): boolean {\n if (!this._condensedSubscription) {\n this._condensedSubscription = this._listenToChanges(this.isCondensed$, (v) => (this._isCondensed = v));\n }\n return this._isCondensed;\n }\n\n /**\n * Sync isCozy. Calls ChangeDetectorRef.markForCheck() on update\n */\n get isCozy(): boolean {\n if (!this._cozySubscription) {\n this._cozySubscription = this._listenToChanges(this.isCozy$, (v) => (this._isCozy = v));\n }\n return this._isCozy;\n }\n\n /**\n * Pass consumers callback function, or configuration object to be called on density change\n */\n consume(\n ...consumerConfigs: Array<ContentDensityObserverTarget | ContentDensityCallbackFn>\n ): ContentDensityObserver {\n consumerConfigs.forEach((consumerConfig) => {\n const callback = contentDensityCallbackFactory(consumerConfig);\n this._callbacks.set(consumerConfig, callback);\n callback(this.value);\n });\n return this;\n }\n\n /**\n * Remove consumer callback from list of callbacks\n */\n removeConsumer(\n ...consumerConfigs: Array<ContentDensityObserverTarget | ContentDensityCallbackFn>\n ): ContentDensityObserver {\n consumerConfigs.forEach((consumerConfig) => {\n this._callbacks.delete(consumerConfig);\n });\n return this;\n }\n\n /** @hidden */\n private _callCallbacks(density: ContentDensityMode): void {\n this._callbacks.forEach((callback) => callback(density));\n }\n\n /** @hidden */\n private _listenToChanges(source: Observable<boolean>, callback: (newValue: boolean) => void): Subscription {\n return source\n .pipe(\n tap(callback),\n tap(() => this.changeDetectorRef.markForCheck()),\n takeUntil(this.destroy$)\n )\n .subscribe();\n }\n}\n","import { Provider } from '@angular/core';\nimport { consumerProviderFactory, DestroyedService } from '@fundamental-ngx/core/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 '../content-density.types';\nimport { ModuleDeprecation } from '@fundamental-ngx/core/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 this.next(coerceBooleanProperty(value) ? ContentDensityMode.COMPACT : ContentDensityMode.COZY);\n }\n\n readonly message: string;\n readonly alternative = {\n name: 'Use [fdCompact] directive instead',\n link: ['/core', 'content-density']\n };\n\n constructor(selectorBase: string) {\n super(ContentDensityMode.COZY);\n this.message = `Usage of ${selectorBase}[compact] is deprecated`;\n if (isDevMode()) {\n console.warn(`${this.message}. Use [fdCompact] directive instead.`);\n }\n }\n\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 '../content-density.types';\nimport { ModuleDeprecation } from '@fundamental-ngx/core/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 @Input()\n set cozy(value: BooleanInput) {\n this.next(coerceBooleanProperty(value) ? ContentDensityMode.COZY : ContentDensityMode.COMPACT);\n }\n\n readonly message: string;\n readonly alternative = {\n name: 'Use [fdCozy] directive instead',\n link: ['/core', 'content-density']\n };\n\n constructor(selectorBase: string) {\n super(ContentDensityMode.COMPACT);\n this.message = `Usage of ${selectorBase}[cozy] is deprecated`;\n if (isDevMode()) {\n console.warn(`${this.message}. Use [fdCozy] directive instead.`);\n }\n }\n\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 '../content-density.types';\nimport { ModuleDeprecation } from '@fundamental-ngx/core/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 @Input()\n set condensed(value: BooleanInput) {\n this.next(coerceBooleanProperty(value) ? ContentDensityMode.CONDENSED : ContentDensityMode.COZY);\n }\n\n readonly message: string;\n readonly alternative = {\n name: 'Use [fdCondensed] directive instead',\n link: ['/core', 'content-density']\n };\n\n constructor(selectorBase: string) {\n super(ContentDensityMode.COZY);\n this.message = `Usage of ${selectorBase}[condensed] is deprecated`;\n if (isDevMode()) {\n console.warn(`${this.message}. Use [fdCondensed] directive instead.`);\n }\n }\n\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\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["map"],"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/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/helpers/density-type-checkers.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/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/helpers/content-density-change-callback-factory.ts","../../../../../libs/core/src/lib/content-density/classes/content-density-observer.settings.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/fundamental-ngx-core-content-density.ts"],"sourcesContent":["import { Provider } from '@angular/core';\nimport { HasElementRef } from '@fundamental-ngx/core/utils';\nimport { ContentDensityObserverSettings } from './classes/content-density-observer.settings';\n\nexport const ContentDensityGlobalKeyword = 'global';\n\nexport enum ContentDensityMode {\n COZY = 'cozy',\n CONDENSED = 'condensed',\n COMPACT = 'compact'\n}\n\nexport type LocalContentDensityMode = ContentDensityMode | typeof ContentDensityGlobalKeyword;\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 { ContentDensityMode } from '../content-density.types';\n\nexport const CONTENT_DENSITY_DIRECTIVE = new InjectionToken<Observable<ContentDensityMode>>('ContentDensityDirective');\n","import { Directive, forwardRef, Input, OnDestroy } from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { BehaviorSubject } from 'rxjs';\nimport { ContentDensityGlobalKeyword, ContentDensityMode, LocalContentDensityMode } from '../content-density.types';\nimport { CONTENT_DENSITY_DIRECTIVE } from '../tokens/content-density-directive';\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})\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 this.next(val ? val : ContentDensityGlobalKeyword);\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 '../content-density.types';\n\nexport const DEFAULT_CONTENT_DENSITY = new InjectionToken<ContentDensityMode>('Default global content density', {\n factory: () => ContentDensityMode.COZY\n});\n","import { ContentDensityMode } from '../content-density.types';\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 '../content-density.types';\nimport { DEFAULT_CONTENT_DENSITY } from '../tokens/default-content-density.token';\n\n@Injectable()\nexport class MemoryContentDensityStorage implements ContentDensityStorage {\n private _currentContentDensity$: BehaviorSubject<ContentDensityMode>;\n\n constructor(@Inject(DEFAULT_CONTENT_DENSITY) defaultContentDensity: ContentDensityMode) {\n this._currentContentDensity$ = new BehaviorSubject(defaultContentDensity);\n }\n\n getContentDensity(): Observable<ContentDensityMode> {\n return this._currentContentDensity$.asObservable();\n }\n\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 '../content-density.types';\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/core/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 '../content-density.types';\n\n@Injectable()\nexport class LocalContentDensityStorage implements ContentDensityStorage {\n private _update$ = new Subject<void>();\n\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 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 setContentDensity(density: ContentDensityMode): Observable<void> {\n this._storage.set(this._storageKey, density);\n this._update$.next();\n return of(undefined);\n }\n\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 '../content-density.types';\nimport { BehaviorSubject, distinctUntilChanged, filter, Observable, of } from 'rxjs';\n\n@Injectable()\nexport class UrlContentDensityStorage implements ContentDensityStorage {\n private _current$: BehaviorSubject<ContentDensityMode>;\n\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 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 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 getContentDensity(): Observable<ContentDensityMode> {\n return this._current$.asObservable().pipe(distinctUntilChanged());\n }\n\n setContentDensity(density: ContentDensityMode): Observable<void> {\n this._current$.next(density);\n this._setUrlQueryParam(density);\n return of(undefined);\n }\n}\n","import { ContentDensityMode } from '../content-density.types';\n\nexport const isCompact = (density: ContentDensityMode): boolean => density === ContentDensityMode.COMPACT;\nexport const isCondensed = (density: ContentDensityMode): boolean => density === ContentDensityMode.CONDENSED;\nexport const isCozy = (density: ContentDensityMode): boolean => density === ContentDensityMode.COZY;\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 '../content-density.types';\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 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 { ContentDensityMode, 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/core/utils';\nimport { DeprecatedContentDensityService } from './services/deprecated-content-density.service';\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],\n exports: [ContentDensityDirective],\n declarations: [ContentDensityDirective]\n})\nexport class ContentDensityModule {\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 { Observable, of, switchMap } from 'rxjs';\nimport { GlobalContentDensityService } from '../services/global-content-density.service';\nimport { ContentDensityGlobalKeyword, ContentDensityMode, LocalContentDensityMode } from '../content-density.types';\n\nexport const getChangesSource$ = (params: {\n defaultContentDensity: ContentDensityMode;\n contentDensityDirective?: Observable<LocalContentDensityMode>;\n contentDensityService?: GlobalContentDensityService;\n}): Observable<ContentDensityMode> => {\n const serviceValue$: Observable<ContentDensityMode> = params.contentDensityService\n ? params.contentDensityService.contentDensityListener()\n : of(params.defaultContentDensity);\n const changesSource$ = params.contentDensityDirective ? params.contentDensityDirective : serviceValue$;\n\n return changesSource$.pipe(\n switchMap((mode: LocalContentDensityMode) => {\n if (mode !== ContentDensityGlobalKeyword) {\n return of(mode);\n }\n return serviceValue$;\n })\n );\n};\n","import { ContentDensityMode } from '../content-density.types';\nimport { ContentDensityObserverSettings } from '../classes/content-density-observer.settings';\n\nexport const defaultContentDensityObserverConfigs: Required<ContentDensityObserverSettings> = {\n modifiers: {},\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY],\n defaultContentDensity: ContentDensityMode.COZY\n};\n","import { coerceElement } from '@angular/cdk/coercion';\nimport { ContentDensityCallbackFn, ContentDensityObserverTarget, ContentDensityMode } from '../content-density.types';\nimport { defaultContentDensityObserverConfigs } from '../variables/default-content-density-consumer-config';\nimport { ContentDensityObserverSettings } from '../classes/content-density-observer.settings';\n\nexport function contentDensityCallbackFactory(\n consumerConfig: ContentDensityObserverTarget | ContentDensityCallbackFn\n): ContentDensityCallbackFn {\n if (typeof consumerConfig === 'function') {\n return consumerConfig;\n }\n return (contentDensityMode: ContentDensityMode) => {\n const configs = {\n contentDensitySettings: {\n ...defaultContentDensityObserverConfigs,\n ...consumerConfig.contentDensitySettings\n },\n elementRef: () => consumerConfig.elementRef()\n };\n const settings: Required<ContentDensityObserverSettings> = configs.contentDensitySettings;\n const element = coerceElement(configs.elementRef());\n\n Object.values(settings.modifiers).forEach((className) => {\n element.classList.remove(className);\n });\n if (settings.modifiers[contentDensityMode]) {\n element.classList.add(settings.modifiers[contentDensityMode]);\n }\n };\n}\n","import { ContentDensityMode } from '../content-density.types';\n\nexport class ContentDensityObserverSettings {\n modifiers?: Partial<Record<ContentDensityMode, string>>;\n supportedContentDensity?: ContentDensityMode[];\n defaultContentDensity?: ContentDensityMode;\n}\n","import { ChangeDetectorRef, ElementRef, Injectable, InjectFlags, Injector } from '@angular/core';\nimport {\n ContentDensityCallbackFn,\n ContentDensityMode,\n ContentDensityObserverTarget,\n LocalContentDensityMode\n} from '../content-density.types';\nimport { BehaviorSubject, distinctUntilChanged, finalize, map, Observable, Subscription, takeUntil, tap } from 'rxjs';\nimport { GlobalContentDensityService } from '../services/global-content-density.service';\nimport { getChangesSource$ } from '../helpers/get-changes-source.provider';\nimport { defaultContentDensityObserverConfigs } from '../variables/default-content-density-consumer-config';\nimport { contentDensityCallbackFactory } from '../helpers/content-density-change-callback-factory';\nimport { isCompact, isCondensed, isCozy } from '../helpers/density-type-checkers';\nimport { CONTENT_DENSITY_DIRECTIVE } from '../tokens/content-density-directive';\nimport { DestroyedService } from '@fundamental-ngx/core/utils';\nimport { ContentDensityObserverSettings } from '../classes/content-density-observer.settings';\n\n@Injectable()\nexport class ContentDensityObserver extends BehaviorSubject<ContentDensityMode> {\n /** Stream for getting compact state changes */\n isCompact$: Observable<boolean>;\n /** Stream for getting cozy state changes */\n isCozy$: Observable<boolean>;\n /** Stream for getting condensed state changes */\n isCondensed$: Observable<boolean>;\n\n /** @hidden */\n private _callbacks: Map<any, ContentDensityCallbackFn> = new Map<any, ContentDensityCallbackFn>();\n\n /** @hidden */\n private _isCompact: boolean;\n /** @hidden */\n private _isCozy: boolean;\n /** @hidden */\n private _isCondensed: boolean;\n\n /** @hidden */\n private _compactSubscription: Subscription;\n /** @hidden */\n private _condensedSubscription: Subscription;\n /** @hidden */\n private _cozySubscription: Subscription;\n\n /** @hidden */\n private configuration: Required<ContentDensityObserverSettings>;\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 private readonly destroy$: Observable<void>;\n private changeDetectorRef: ChangeDetectorRef;\n private contentDensityDirective?: Observable<LocalContentDensityMode>;\n private contentDensityService?: GlobalContentDensityService;\n\n constructor(private _injector: Injector, private _providedConfig?: ContentDensityObserverSettings) {\n super(\n _injector.get(GlobalContentDensityService, null, InjectFlags.Optional)?.currentContentDensity ||\n _providedConfig?.defaultContentDensity ||\n defaultContentDensityObserverConfigs.defaultContentDensity\n );\n this.configuration = {\n ...defaultContentDensityObserverConfigs,\n ...(_providedConfig || {})\n };\n this.destroy$ = this._injector.get(DestroyedService);\n this.changeDetectorRef = this._injector.get(ChangeDetectorRef);\n this.contentDensityDirective = this._injector.get(CONTENT_DENSITY_DIRECTIVE, undefined, InjectFlags.Optional);\n this.contentDensityService = this._injector.get(GlobalContentDensityService, undefined, InjectFlags.Optional);\n\n const changesSource$: Observable<ContentDensityMode> = getChangesSource$({\n defaultContentDensity: this.configuration.defaultContentDensity,\n contentDensityDirective: this.contentDensityDirective,\n contentDensityService: this.contentDensityService\n }).pipe(\n map((density: ContentDensityMode) => {\n if (!this.isSupported(density)) {\n return this.alternativeTo[density]();\n }\n return density;\n }),\n distinctUntilChanged(),\n takeUntil(this.destroy$)\n );\n changesSource$\n .pipe(\n tap((density) => this._callCallbacks(density)),\n finalize(() => this.complete())\n )\n .subscribe((density) => {\n this.next(density);\n });\n this.isCompact$ = changesSource$.pipe(map(isCompact));\n this.isCozy$ = changesSource$.pipe(map(isCozy));\n this.isCondensed$ = changesSource$.pipe(map(isCondensed));\n if (_providedConfig) {\n this.consume({\n contentDensitySettings: this.configuration,\n elementRef: () => this._injector.get(ElementRef)\n });\n }\n }\n\n isSupported(density: ContentDensityMode): boolean {\n return this.configuration.supportedContentDensity.includes(density);\n }\n\n /**\n * Sync isCompact. Calls ChangeDetectorRef.markForCheck() on update\n */\n get isCompact(): boolean {\n if (!this._compactSubscription) {\n this._compactSubscription = this._listenToChanges(this.isCompact$, (v) => (this._isCompact = v));\n }\n return this._isCompact;\n }\n\n /**\n * Sync isCondensed. Calls ChangeDetectorRef.markForCheck() on update\n */\n get isCondensed(): boolean {\n if (!this._condensedSubscription) {\n this._condensedSubscription = this._listenToChanges(this.isCondensed$, (v) => (this._isCondensed = v));\n }\n return this._isCondensed;\n }\n\n /**\n * Sync isCozy. Calls ChangeDetectorRef.markForCheck() on update\n */\n get isCozy(): boolean {\n if (!this._cozySubscription) {\n this._cozySubscription = this._listenToChanges(this.isCozy$, (v) => (this._isCozy = v));\n }\n return this._isCozy;\n }\n\n /**\n * Pass consumers callback function, or configuration object to be called on density change\n */\n consume(\n ...consumerConfigs: Array<ContentDensityObserverTarget | ContentDensityCallbackFn>\n ): ContentDensityObserver {\n consumerConfigs.forEach((consumerConfig) => {\n const callback = contentDensityCallbackFactory(consumerConfig);\n this._callbacks.set(consumerConfig, callback);\n callback(this.value);\n });\n return this;\n }\n\n /**\n * Remove consumer callback from list of callbacks\n */\n removeConsumer(\n ...consumerConfigs: Array<ContentDensityObserverTarget | ContentDensityCallbackFn>\n ): ContentDensityObserver {\n consumerConfigs.forEach((consumerConfig) => {\n this._callbacks.delete(consumerConfig);\n });\n return this;\n }\n\n /** @hidden */\n private _callCallbacks(density: ContentDensityMode): void {\n this._callbacks.forEach((callback) => callback(density));\n }\n\n /** @hidden */\n private _listenToChanges(source: Observable<boolean>, callback: (newValue: boolean) => void): Subscription {\n return source\n .pipe(\n tap(callback),\n tap(() => this.changeDetectorRef.markForCheck()),\n takeUntil(this.destroy$)\n )\n .subscribe();\n }\n}\n","import { Provider } from '@angular/core';\nimport { consumerProviderFactory, DestroyedService } from '@fundamental-ngx/core/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 '../content-density.types';\nimport { ModuleDeprecation } from '@fundamental-ngx/core/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 readonly message: string;\n readonly alternative = {\n name: 'Use [fdCompact] directive instead',\n link: ['/core', 'content-density']\n };\n\n constructor(selectorBase: string) {\n super(ContentDensityMode.COZY);\n this.message = `Usage of ${selectorBase}[compact] is deprecated`;\n }\n\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 '../content-density.types';\nimport { ModuleDeprecation } from '@fundamental-ngx/core/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 @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 readonly message: string;\n readonly alternative = {\n name: 'Use [fdCozy] directive instead',\n link: ['/core', 'content-density']\n };\n\n constructor(selectorBase: string) {\n super(ContentDensityMode.COMPACT);\n this.message = `Usage of ${selectorBase}[cozy] is deprecated`;\n }\n\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 '../content-density.types';\nimport { ModuleDeprecation } from '@fundamental-ngx/core/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 @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 readonly message: string;\n readonly alternative = {\n name: 'Use [fdCondensed] directive instead',\n link: ['/core', 'content-density']\n };\n\n constructor(selectorBase: string) {\n super(ContentDensityMode.COZY);\n this.message = `Usage of ${selectorBase}[condensed] is deprecated`;\n }\n\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\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["map"],"mappings":"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"}