@daffodil/design 0.92.3-rc.2 → 0.93.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/accordion/README.md +4 -4
  2. package/breadcrumb/README.md +13 -35
  3. package/button/README.md +28 -50
  4. package/card/README.md +8 -22
  5. package/card/src/card/stroked/stroked-theme.scss +8 -1
  6. package/card/src/card-base-theme.scss +12 -1
  7. package/container/README.md +4 -26
  8. package/fesm2022/daffodil-design-accordion.mjs +15 -15
  9. package/fesm2022/daffodil-design-accordion.mjs.map +1 -1
  10. package/fesm2022/daffodil-design-article.mjs +30 -30
  11. package/fesm2022/daffodil-design-article.mjs.map +1 -1
  12. package/fesm2022/daffodil-design-breadcrumb.mjs +20 -20
  13. package/fesm2022/daffodil-design-breadcrumb.mjs.map +1 -1
  14. package/fesm2022/daffodil-design-button.mjs +37 -49
  15. package/fesm2022/daffodil-design-button.mjs.map +1 -1
  16. package/fesm2022/daffodil-design-callout.mjs +22 -22
  17. package/fesm2022/daffodil-design-callout.mjs.map +1 -1
  18. package/fesm2022/daffodil-design-card.mjs +31 -31
  19. package/fesm2022/daffodil-design-card.mjs.map +1 -1
  20. package/fesm2022/daffodil-design-checkbox.mjs +13 -13
  21. package/fesm2022/daffodil-design-checkbox.mjs.map +1 -1
  22. package/fesm2022/daffodil-design-container.mjs +7 -7
  23. package/fesm2022/daffodil-design-container.mjs.map +1 -1
  24. package/fesm2022/daffodil-design-form-field.mjs +13 -12
  25. package/fesm2022/daffodil-design-form-field.mjs.map +1 -1
  26. package/fesm2022/daffodil-design-form.mjs +9 -9
  27. package/fesm2022/daffodil-design-form.mjs.map +1 -1
  28. package/fesm2022/daffodil-design-hero.mjs +22 -22
  29. package/fesm2022/daffodil-design-hero.mjs.map +1 -1
  30. package/fesm2022/daffodil-design-image.mjs +8 -8
  31. package/fesm2022/daffodil-design-image.mjs.map +1 -1
  32. package/fesm2022/daffodil-design-input.mjs +12 -11
  33. package/fesm2022/daffodil-design-input.mjs.map +1 -1
  34. package/fesm2022/daffodil-design-link-set.mjs +16 -16
  35. package/fesm2022/daffodil-design-link-set.mjs.map +1 -1
  36. package/fesm2022/daffodil-design-list.mjs +20 -17
  37. package/fesm2022/daffodil-design-list.mjs.map +1 -1
  38. package/fesm2022/daffodil-design-loading-icon.mjs +7 -7
  39. package/fesm2022/daffodil-design-loading-icon.mjs.map +1 -1
  40. package/fesm2022/daffodil-design-media-gallery.mjs +13 -13
  41. package/fesm2022/daffodil-design-media-gallery.mjs.map +1 -1
  42. package/fesm2022/daffodil-design-menu.mjs +20 -20
  43. package/fesm2022/daffodil-design-menu.mjs.map +1 -1
  44. package/fesm2022/daffodil-design-modal.mjs +32 -26
  45. package/fesm2022/daffodil-design-modal.mjs.map +1 -1
  46. package/fesm2022/daffodil-design-native-select.mjs +5 -3
  47. package/fesm2022/daffodil-design-native-select.mjs.map +1 -1
  48. package/fesm2022/daffodil-design-navbar.mjs +9 -9
  49. package/fesm2022/daffodil-design-navbar.mjs.map +1 -1
  50. package/fesm2022/daffodil-design-notification.mjs +16 -16
  51. package/fesm2022/daffodil-design-notification.mjs.map +1 -1
  52. package/fesm2022/daffodil-design-paginator.mjs +8 -8
  53. package/fesm2022/daffodil-design-paginator.mjs.map +1 -1
  54. package/fesm2022/daffodil-design-progress-bar.mjs +10 -10
  55. package/fesm2022/daffodil-design-progress-bar.mjs.map +1 -1
  56. package/fesm2022/daffodil-design-quantity-field.mjs +13 -13
  57. package/fesm2022/daffodil-design-quantity-field.mjs.map +1 -1
  58. package/fesm2022/daffodil-design-radio.mjs +16 -16
  59. package/fesm2022/daffodil-design-radio.mjs.map +1 -1
  60. package/fesm2022/daffodil-design-select.mjs +11 -11
  61. package/fesm2022/daffodil-design-select.mjs.map +1 -1
  62. package/fesm2022/daffodil-design-sidebar.mjs +35 -29
  63. package/fesm2022/daffodil-design-sidebar.mjs.map +1 -1
  64. package/fesm2022/daffodil-design-spinner.mjs +7 -7
  65. package/fesm2022/daffodil-design-spinner.mjs.map +1 -1
  66. package/fesm2022/daffodil-design-switch.mjs +3 -3
  67. package/fesm2022/daffodil-design-switch.mjs.map +1 -1
  68. package/fesm2022/daffodil-design-tabs.mjs +17 -25
  69. package/fesm2022/daffodil-design-tabs.mjs.map +1 -1
  70. package/fesm2022/daffodil-design-tag.mjs +20 -20
  71. package/fesm2022/daffodil-design-tag.mjs.map +1 -1
  72. package/fesm2022/daffodil-design-testing.mjs +19 -0
  73. package/fesm2022/daffodil-design-testing.mjs.map +1 -0
  74. package/fesm2022/daffodil-design-text-snippet.mjs +3 -3
  75. package/fesm2022/daffodil-design-text-snippet.mjs.map +1 -1
  76. package/fesm2022/daffodil-design-textarea.mjs +3 -3
  77. package/fesm2022/daffodil-design-textarea.mjs.map +1 -1
  78. package/fesm2022/daffodil-design-toast.mjs +21 -21
  79. package/fesm2022/daffodil-design-toast.mjs.map +1 -1
  80. package/fesm2022/daffodil-design-tree.mjs +27 -25
  81. package/fesm2022/daffodil-design-tree.mjs.map +1 -1
  82. package/fesm2022/daffodil-design-youtube-player.mjs +22 -11
  83. package/fesm2022/daffodil-design-youtube-player.mjs.map +1 -1
  84. package/fesm2022/daffodil-design.mjs +110 -149
  85. package/fesm2022/daffodil-design.mjs.map +1 -1
  86. package/form/README.md +15 -6
  87. package/hero/README.md +14 -49
  88. package/image/README.md +6 -29
  89. package/input/README.md +8 -34
  90. package/list/README.md +29 -55
  91. package/list/src/list-theme.scss +16 -2
  92. package/media-gallery/README.md +36 -43
  93. package/menu/README.md +24 -55
  94. package/menu/src/menu-theme.scss +12 -2
  95. package/modal/README.md +15 -45
  96. package/native-select/README.md +8 -6
  97. package/navbar/README.md +18 -27
  98. package/notification/README.md +14 -49
  99. package/package.json +1 -1
  100. package/paginator/README.md +11 -31
  101. package/paginator/src/paginator-theme.scss +16 -2
  102. package/progress-bar/README.md +14 -41
  103. package/scss/global.scss +21 -2
  104. package/select/README.md +5 -6
  105. package/select/src/select-theme.scss +10 -2
  106. package/sidebar/README.md +1 -1
  107. package/spinner/README.md +15 -9
  108. package/switch/README.md +17 -6
  109. package/tabs/README.md +39 -39
  110. package/tag/README.md +24 -28
  111. package/textarea/README.md +9 -7
  112. package/toast/README.md +55 -52
  113. package/tree/README.md +12 -43
  114. package/tree/src/tree-theme.scss +8 -4
  115. package/{accordion/index.d.ts → types/daffodil-design-accordion.d.ts} +1 -1
  116. package/{button/index.d.ts → types/daffodil-design-button.d.ts} +7 -8
  117. package/{input/index.d.ts → types/daffodil-design-input.d.ts} +4 -1
  118. package/{list/index.d.ts → types/daffodil-design-list.d.ts} +4 -1
  119. package/{menu/index.d.ts → types/daffodil-design-menu.d.ts} +3 -3
  120. package/{modal/index.d.ts → types/daffodil-design-modal.d.ts} +11 -5
  121. package/{native-select/index.d.ts → types/daffodil-design-native-select.d.ts} +3 -1
  122. package/{sidebar/index.d.ts → types/daffodil-design-sidebar.d.ts} +9 -3
  123. package/{tabs/index.d.ts → types/daffodil-design-tabs.d.ts} +0 -6
  124. package/{tag/index.d.ts → types/daffodil-design-tag.d.ts} +9 -8
  125. package/types/daffodil-design-testing.d.ts +11 -0
  126. package/{tree/index.d.ts → types/daffodil-design-tree.d.ts} +2 -0
  127. package/{youtube-player/index.d.ts → types/daffodil-design-youtube-player.d.ts} +15 -0
  128. package/{index.d.ts → types/daffodil-design.d.ts} +17 -64
  129. /package/{article/index.d.ts → types/daffodil-design-article.d.ts} +0 -0
  130. /package/{breadcrumb/index.d.ts → types/daffodil-design-breadcrumb.d.ts} +0 -0
  131. /package/{callout/index.d.ts → types/daffodil-design-callout.d.ts} +0 -0
  132. /package/{card/index.d.ts → types/daffodil-design-card.d.ts} +0 -0
  133. /package/{checkbox/index.d.ts → types/daffodil-design-checkbox.d.ts} +0 -0
  134. /package/{container/index.d.ts → types/daffodil-design-container.d.ts} +0 -0
  135. /package/{form-field/index.d.ts → types/daffodil-design-form-field.d.ts} +0 -0
  136. /package/{form/index.d.ts → types/daffodil-design-form.d.ts} +0 -0
  137. /package/{hero/index.d.ts → types/daffodil-design-hero.d.ts} +0 -0
  138. /package/{image/index.d.ts → types/daffodil-design-image.d.ts} +0 -0
  139. /package/{link-set/index.d.ts → types/daffodil-design-link-set.d.ts} +0 -0
  140. /package/{loading-icon/index.d.ts → types/daffodil-design-loading-icon.d.ts} +0 -0
  141. /package/{media-gallery/index.d.ts → types/daffodil-design-media-gallery.d.ts} +0 -0
  142. /package/{navbar/index.d.ts → types/daffodil-design-navbar.d.ts} +0 -0
  143. /package/{notification/index.d.ts → types/daffodil-design-notification.d.ts} +0 -0
  144. /package/{paginator/index.d.ts → types/daffodil-design-paginator.d.ts} +0 -0
  145. /package/{progress-bar/index.d.ts → types/daffodil-design-progress-bar.d.ts} +0 -0
  146. /package/{quantity-field/index.d.ts → types/daffodil-design-quantity-field.d.ts} +0 -0
  147. /package/{radio/index.d.ts → types/daffodil-design-radio.d.ts} +0 -0
  148. /package/{select/index.d.ts → types/daffodil-design-select.d.ts} +0 -0
  149. /package/{spinner/index.d.ts → types/daffodil-design-spinner.d.ts} +0 -0
  150. /package/{switch/index.d.ts → types/daffodil-design-switch.d.ts} +0 -0
  151. /package/{text-snippet/index.d.ts → types/daffodil-design-text-snippet.d.ts} +0 -0
  152. /package/{textarea/index.d.ts → types/daffodil-design-textarea.d.ts} +0 -0
  153. /package/{toast/index.d.ts → types/daffodil-design-toast.d.ts} +0 -0
@@ -5,10 +5,10 @@ import * as i1 from '@angular/forms';
5
5
 
6
6
  class DaffRadioSetComponent {
7
7
  constructor() { }
8
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioSetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: DaffRadioSetComponent, isStandalone: true, selector: "daff-radio-set", inputs: { name: "name" }, host: { attributes: { "role": "radiogroup" } }, ngImport: i0, template: "<ng-content></ng-content>", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffRadioSetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: DaffRadioSetComponent, isStandalone: true, selector: "daff-radio-set", inputs: { name: "name" }, host: { attributes: { "role": "radiogroup" } }, ngImport: i0, template: "<ng-content></ng-content>", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioSetComponent, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffRadioSetComponent, decorators: [{
12
12
  type: Component,
13
13
  args: [{ selector: 'daff-radio-set', changeDetection: ChangeDetectionStrategy.OnPush, host: {
14
14
  role: 'radiogroup',
@@ -92,10 +92,10 @@ class DaffRadioComponent {
92
92
  this.select();
93
93
  }
94
94
  ;
95
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioComponent, deps: [{ token: DaffRadioSetComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
96
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: DaffRadioComponent, isStandalone: true, selector: "daff-radio", inputs: { checked: "checked", value: "value", id: "id", name: "name", label: ["aria-label", "label"], labelledby: ["aria-labelledby", "labelledby"] }, outputs: { selectionChange: "selectionChange" }, host: { attributes: { "role": "radio" }, properties: { "class.focused": "focused", "class.disabled": "disabled" } }, ngImport: i0, template: "<input type=\"radio\" \n[attr.checked]=\"checked ? '' : null\" \n[attr.id]=\"id\" \n[attr.name]=\"name\" \n[attr.aria-label]=\"label\"\n[attr.aria-labelledby]=\"labelledby\"\n[attr.value]=\"value\"\n[attr.disabled] = \"disabled ? '' : null\" \n(change)=\"onChange()\"\n(blur)=\"onBlur()\"\n(focus)=\"onFocus()\"/>\n<label [attr.for]=\"id\">\n <ng-content></ng-content>\n</label>", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
95
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffRadioComponent, deps: [{ token: DaffRadioSetComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
96
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: DaffRadioComponent, isStandalone: true, selector: "daff-radio", inputs: { checked: "checked", value: "value", id: "id", name: "name", label: ["aria-label", "label"], labelledby: ["aria-labelledby", "labelledby"] }, outputs: { selectionChange: "selectionChange" }, host: { attributes: { "role": "radio" }, properties: { "class.focused": "focused", "class.disabled": "disabled" } }, ngImport: i0, template: "<input type=\"radio\" \n[attr.checked]=\"checked ? '' : null\" \n[attr.id]=\"id\" \n[attr.name]=\"name\" \n[attr.aria-label]=\"label\"\n[attr.aria-labelledby]=\"labelledby\"\n[attr.value]=\"value\"\n[attr.disabled] = \"disabled ? '' : null\" \n(change)=\"onChange()\"\n(blur)=\"onBlur()\"\n(focus)=\"onFocus()\"/>\n<label [attr.for]=\"id\">\n <ng-content></ng-content>\n</label>", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
97
97
  }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioComponent, decorators: [{
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffRadioComponent, decorators: [{
99
99
  type: Component,
100
100
  args: [{ selector: 'daff-radio', changeDetection: ChangeDetectionStrategy.OnPush, host: {
101
101
  role: 'radio',
@@ -166,10 +166,10 @@ class DaffRadioRegistry {
166
166
  return controlPair.control.control.parent === accessor._control.control.parent
167
167
  && controlPair.accessor.name === accessor.name;
168
168
  }
169
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
170
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioRegistry, providedIn: 'root' }); }
169
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffRadioRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
170
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffRadioRegistry, providedIn: 'root' }); }
171
171
  }
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioRegistry, decorators: [{
172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffRadioRegistry, decorators: [{
173
173
  type: Injectable,
174
174
  args: [{ providedIn: 'root' }]
175
175
  }] });
@@ -241,10 +241,10 @@ class DaffRadioControlValueAccessorDirective {
241
241
  fireDeselect() {
242
242
  this._radio.deselect();
243
243
  }
244
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioControlValueAccessorDirective, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: DaffRadioRegistry }, { token: DaffRadioComponent }], target: i0.ɵɵFactoryTarget.Directive }); }
245
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: DaffRadioControlValueAccessorDirective, isStandalone: true, selector: "daff-radio[ngModel], daff-radio[formControl], daff-radio[formControlName]", inputs: { value: "value", name: "name" }, ngImport: i0 }); }
244
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffRadioControlValueAccessorDirective, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: DaffRadioRegistry }, { token: DaffRadioComponent }], target: i0.ɵɵFactoryTarget.Directive }); }
245
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: DaffRadioControlValueAccessorDirective, isStandalone: true, selector: "daff-radio[ngModel], daff-radio[formControl], daff-radio[formControlName]", inputs: { value: "value", name: "name" }, ngImport: i0 }); }
246
246
  }
247
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioControlValueAccessorDirective, decorators: [{
247
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffRadioControlValueAccessorDirective, decorators: [{
248
248
  type: Directive,
249
249
  args: [{
250
250
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -261,16 +261,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
261
261
  }] } });
262
262
 
263
263
  class DaffRadioModule {
264
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
265
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioModule, imports: [CommonModule,
264
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
265
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: DaffRadioModule, imports: [CommonModule,
266
266
  DaffRadioComponent,
267
267
  DaffRadioSetComponent,
268
268
  DaffRadioControlValueAccessorDirective], exports: [DaffRadioComponent,
269
269
  DaffRadioSetComponent,
270
270
  DaffRadioControlValueAccessorDirective] }); }
271
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioModule, imports: [CommonModule] }); }
271
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffRadioModule, imports: [CommonModule] }); }
272
272
  }
273
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioModule, decorators: [{
273
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffRadioModule, decorators: [{
274
274
  type: NgModule,
275
275
  args: [{
276
276
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-design-radio.mjs","sources":["../../../libs/design/radio/src/radio-set/radio-set.component.ts","../../../libs/design/radio/src/radio-set/radio-set.component.html","../../../libs/design/radio/src/radio/radio.component.ts","../../../libs/design/radio/src/radio/radio.component.html","../../../libs/design/radio/src/registry/radio-registry.ts","../../../libs/design/radio/src/cva/radio-cva.directive.ts","../../../libs/design/radio/src/radio.module.ts","../../../libs/design/radio/src/radio.ts","../../../libs/design/radio/src/daffodil-design-radio.ts"],"sourcesContent":["import {\n Component,\n Input,\n ChangeDetectionStrategy,\n} from '@angular/core';\n\n@Component({\n selector: 'daff-radio-set',\n templateUrl: './radio-set.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'radiogroup',\n },\n})\n\nexport class DaffRadioSetComponent {\n\n @Input() name: string;\n\n constructor() { }\n\n}\n","<ng-content></ng-content>","import {\n Component,\n OnInit,\n Input,\n ChangeDetectionStrategy,\n Optional,\n Output,\n EventEmitter,\n} from '@angular/core';\n\nimport { DaffRadioSetComponent } from '../radio-set/radio-set.component';\n\nlet radioUniqueId = 0;\n\n@Component({\n selector: 'daff-radio',\n templateUrl: './radio.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'radio',\n '[class.focused]': 'focused',\n '[class.disabled]': 'disabled',\n },\n})\n\nexport class DaffRadioComponent implements OnInit {\n\n /**\n * @docs-private\n */\n _checked = false;\n /**\n * Output event of selection being changed\n */\n @Output() selectionChange: EventEmitter<boolean> = new EventEmitter();\n\n\n /**\n * The checked property of the radio\n */\n @Input()\n get checked() {\n return this._checked;\n }\n set checked(value: boolean) {\n if (this._checked !== value) {\n this._checked = value;\n this.selectionChange.emit(this.value);\n }\n }\n /**\n * The value of the radio\n */\n @Input() value: any;\n /**\n * The id of the radio. It is uniquely generated but can be overwritten by the user. Must be unique.\n */\n @Input() id: string = 'daff-radio-' + radioUniqueId;\n\n /**\n * Name of the Radio\n */\n @Input() name = '';\n\n /**\n * Used for aria-label. Default to name if user does not input a label.\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('aria-label') label: string = this.name;\n\n /**\n * Used for aria-labelledby.\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('aria-labelledby') labelledby: string;\n\n\n disabled = false;\n focused = false;\n\n constructor(@Optional() private radioset: DaffRadioSetComponent) {\n radioUniqueId++;\n }\n\n /**\n * @docs-private\n */\n ngOnInit() {\n this.name = this.radioset ? this.radioset.name : this.name;\n }\n\n /**\n * updates Focus styling\n */\n onFocus() {\n this.focused = true;\n }\n /**\n * updates Blur styling\n */\n onBlur() {\n this.focused = false;\n }\n /**\n * toggles checked attribute on\n */\n select(): void {\n this.checked = true;\n }\n /**\n * toggles checked attribute off\n */\n deselect(): void {\n this.checked = false;\n }\n onChange() {\n this.select();\n };\n}\n","<input type=\"radio\" \n[attr.checked]=\"checked ? '' : null\" \n[attr.id]=\"id\" \n[attr.name]=\"name\" \n[attr.aria-label]=\"label\"\n[attr.aria-labelledby]=\"labelledby\"\n[attr.value]=\"value\"\n[attr.disabled] = \"disabled ? '' : null\" \n(change)=\"onChange()\"\n(blur)=\"onBlur()\"\n(focus)=\"onFocus()\"/>\n<label [attr.for]=\"id\">\n <ng-content></ng-content>\n</label>","import { Injectable } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nimport { DaffRadioControlValueAccessorDirective } from '../cva/radio-cva.directive';\n\nexport interface ControlAccessorPair {\n control: NgControl;\n accessor: DaffRadioControlValueAccessorDirective;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class DaffRadioRegistry {\n private _accessors: ControlAccessorPair[] = [];\n\n /**\n * @description\n * Adds a control to the internal registry.\n */\n add(control: NgControl, accessor: DaffRadioControlValueAccessorDirective) {\n this._accessors.push({\n control,\n accessor,\n });\n }\n\n /**\n * @description\n * Removes a control from the internal registry.\n */\n remove(accessor: DaffRadioControlValueAccessorDirective) {\n for (let i = this._accessors.length - 1; i >= 0; --i) {\n if (this._accessors[i].accessor === accessor) {\n this._accessors.splice(i, 1);\n return;\n }\n }\n }\n\n /**\n * @description\n * Selects a radio button.\n */\n select(accessor: DaffRadioControlValueAccessorDirective) {\n this._accessors.forEach((c) => {\n if (this._isSameGroup(c, accessor) && c.accessor !== accessor) {\n c.accessor.fireDeselect();\n }\n });\n }\n\n private _isSameGroup(\n controlPair: ControlAccessorPair,\n accessor: DaffRadioControlValueAccessorDirective): boolean {\n if (!controlPair.control.control) {\n return false;\n }\n return controlPair.control.control.parent === accessor._control.control.parent\n && controlPair.accessor.name === accessor.name;\n }\n}\n","import {\n Directive,\n Input,\n OnInit,\n Self,\n Optional,\n} from '@angular/core';\nimport {\n NgControl,\n ControlValueAccessor,\n} from '@angular/forms';\n\nimport { DaffRadioComponent } from '../radio/radio.component';\nimport { DaffRadioRegistry } from '../registry/radio-registry';\n\n/**\n * ControlValueAccessor functionality for the DaffRadio\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'daff-radio[ngModel], daff-radio[formControl], daff-radio[formControlName]',\n})\nexport class DaffRadioControlValueAccessorDirective implements OnInit, ControlValueAccessor {\n _onChange: () => void;\n _onTouched: () => void;\n\n /**\n * The value of the ControlValueAccessor\n */\n @Input() value: any;\n\n /**\n * The name of the ControlValueAccessor\n */\n @Input() name: string;\n\n constructor(\n @Optional() @Self() public _control: NgControl,\n private _registry: DaffRadioRegistry,\n private _radio: DaffRadioComponent,\n ) {\n if (this._control != null) {\n this._control.valueAccessor = this;\n }\n }\n\n /**\n * @docs-private\n */\n ngOnInit(): void {\n if (this._control) {\n this.writeValue(this._control.value);\n this._registry.add(this._control, this);\n }\n\n this._radio.selectionChange.subscribe(\n value => value ? this._onChange() : null,\n );\n }\n /**\n *\n * writeValue function from the CVA interface\n */\n writeValue(value: any): void {\n // the this._onChange null check here is necessary because of an ongoing bug in angular forms\n // where writeValue can be called before the component initializes: https://github.com/angular/angular/issues/29218\n if (this.value === value && this._onChange) {\n this._onChange();\n this.fireSelect();\n }\n }\n\n /**\n * registerOnChange implemented from the CVA interface\n */\n registerOnChange(fn: any): void {\n this._onChange = () => {\n fn(this.value);\n this._registry.select(this);\n };\n }\n\n /**\n * registerOnTouch implemented from the CVA interface\n */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n /**\n * sets the disabled state.\n */\n setDisabledState?(isDisabled: boolean): void {\n this._radio.disabled = isDisabled;\n }\n\n /**\n calls select function for the radio\n */\n fireSelect() {\n this._radio.select();\n }\n\n /**\n calls deselect function for the radio\n */\n fireDeselect() {\n this._radio.deselect();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DaffRadioControlValueAccessorDirective } from './cva/radio-cva.directive';\nimport { DaffRadioComponent } from './radio/radio.component';\nimport { DaffRadioSetComponent } from './radio-set/radio-set.component';\n\n@NgModule({\n imports: [\n CommonModule,\n DaffRadioComponent,\n DaffRadioSetComponent,\n DaffRadioControlValueAccessorDirective,\n ],\n exports: [\n DaffRadioComponent,\n DaffRadioSetComponent,\n DaffRadioControlValueAccessorDirective,\n ],\n})\nexport class DaffRadioModule { }\n","import { DaffRadioControlValueAccessorDirective } from './cva/radio-cva.directive';\nimport { DaffRadioComponent } from './radio/radio.component';\nimport { DaffRadioSetComponent } from './radio-set/radio-set.component';\n/**\n * @docs-private\n */\nexport const DAFF_RADIO_COMPONENTS = <const> [\n DaffRadioComponent,\n DaffRadioSetComponent,\n DaffRadioControlValueAccessorDirective,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DaffRadioSetComponent","i2.DaffRadioRegistry","i3.DaffRadioComponent"],"mappings":"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"}
1
+ {"version":3,"file":"daffodil-design-radio.mjs","sources":["../../../libs/design/radio/src/radio-set/radio-set.component.ts","../../../libs/design/radio/src/radio-set/radio-set.component.html","../../../libs/design/radio/src/radio/radio.component.ts","../../../libs/design/radio/src/radio/radio.component.html","../../../libs/design/radio/src/registry/radio-registry.ts","../../../libs/design/radio/src/cva/radio-cva.directive.ts","../../../libs/design/radio/src/radio.module.ts","../../../libs/design/radio/src/radio.ts","../../../libs/design/radio/src/daffodil-design-radio.ts"],"sourcesContent":["import {\n Component,\n Input,\n ChangeDetectionStrategy,\n} from '@angular/core';\n\n@Component({\n selector: 'daff-radio-set',\n templateUrl: './radio-set.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'radiogroup',\n },\n})\n\nexport class DaffRadioSetComponent {\n\n @Input() name: string;\n\n constructor() { }\n\n}\n","<ng-content></ng-content>","import {\n Component,\n OnInit,\n Input,\n ChangeDetectionStrategy,\n Optional,\n Output,\n EventEmitter,\n} from '@angular/core';\n\nimport { DaffRadioSetComponent } from '../radio-set/radio-set.component';\n\nlet radioUniqueId = 0;\n\n@Component({\n selector: 'daff-radio',\n templateUrl: './radio.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'radio',\n '[class.focused]': 'focused',\n '[class.disabled]': 'disabled',\n },\n})\n\nexport class DaffRadioComponent implements OnInit {\n\n /**\n * @docs-private\n */\n _checked = false;\n /**\n * Output event of selection being changed\n */\n @Output() selectionChange: EventEmitter<boolean> = new EventEmitter();\n\n\n /**\n * The checked property of the radio\n */\n @Input()\n get checked() {\n return this._checked;\n }\n set checked(value: boolean) {\n if (this._checked !== value) {\n this._checked = value;\n this.selectionChange.emit(this.value);\n }\n }\n /**\n * The value of the radio\n */\n @Input() value: any;\n /**\n * The id of the radio. It is uniquely generated but can be overwritten by the user. Must be unique.\n */\n @Input() id: string = 'daff-radio-' + radioUniqueId;\n\n /**\n * Name of the Radio\n */\n @Input() name = '';\n\n /**\n * Used for aria-label. Default to name if user does not input a label.\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('aria-label') label: string = this.name;\n\n /**\n * Used for aria-labelledby.\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('aria-labelledby') labelledby: string;\n\n\n disabled = false;\n focused = false;\n\n constructor(@Optional() private radioset: DaffRadioSetComponent) {\n radioUniqueId++;\n }\n\n /**\n * @docs-private\n */\n ngOnInit() {\n this.name = this.radioset ? this.radioset.name : this.name;\n }\n\n /**\n * updates Focus styling\n */\n onFocus() {\n this.focused = true;\n }\n /**\n * updates Blur styling\n */\n onBlur() {\n this.focused = false;\n }\n /**\n * toggles checked attribute on\n */\n select(): void {\n this.checked = true;\n }\n /**\n * toggles checked attribute off\n */\n deselect(): void {\n this.checked = false;\n }\n onChange() {\n this.select();\n };\n}\n","<input type=\"radio\" \n[attr.checked]=\"checked ? '' : null\" \n[attr.id]=\"id\" \n[attr.name]=\"name\" \n[attr.aria-label]=\"label\"\n[attr.aria-labelledby]=\"labelledby\"\n[attr.value]=\"value\"\n[attr.disabled] = \"disabled ? '' : null\" \n(change)=\"onChange()\"\n(blur)=\"onBlur()\"\n(focus)=\"onFocus()\"/>\n<label [attr.for]=\"id\">\n <ng-content></ng-content>\n</label>","import { Injectable } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nimport { DaffRadioControlValueAccessorDirective } from '../cva/radio-cva.directive';\n\nexport interface ControlAccessorPair {\n control: NgControl;\n accessor: DaffRadioControlValueAccessorDirective;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class DaffRadioRegistry {\n private _accessors: ControlAccessorPair[] = [];\n\n /**\n * @description\n * Adds a control to the internal registry.\n */\n add(control: NgControl, accessor: DaffRadioControlValueAccessorDirective) {\n this._accessors.push({\n control,\n accessor,\n });\n }\n\n /**\n * @description\n * Removes a control from the internal registry.\n */\n remove(accessor: DaffRadioControlValueAccessorDirective) {\n for (let i = this._accessors.length - 1; i >= 0; --i) {\n if (this._accessors[i].accessor === accessor) {\n this._accessors.splice(i, 1);\n return;\n }\n }\n }\n\n /**\n * @description\n * Selects a radio button.\n */\n select(accessor: DaffRadioControlValueAccessorDirective) {\n this._accessors.forEach((c) => {\n if (this._isSameGroup(c, accessor) && c.accessor !== accessor) {\n c.accessor.fireDeselect();\n }\n });\n }\n\n private _isSameGroup(\n controlPair: ControlAccessorPair,\n accessor: DaffRadioControlValueAccessorDirective): boolean {\n if (!controlPair.control.control) {\n return false;\n }\n return controlPair.control.control.parent === accessor._control.control.parent\n && controlPair.accessor.name === accessor.name;\n }\n}\n","import {\n Directive,\n Input,\n OnInit,\n Self,\n Optional,\n} from '@angular/core';\nimport {\n NgControl,\n ControlValueAccessor,\n} from '@angular/forms';\n\nimport { DaffRadioComponent } from '../radio/radio.component';\nimport { DaffRadioRegistry } from '../registry/radio-registry';\n\n/**\n * ControlValueAccessor functionality for the DaffRadio\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'daff-radio[ngModel], daff-radio[formControl], daff-radio[formControlName]',\n})\nexport class DaffRadioControlValueAccessorDirective implements OnInit, ControlValueAccessor {\n _onChange: () => void;\n _onTouched: () => void;\n\n /**\n * The value of the ControlValueAccessor\n */\n @Input() value: any;\n\n /**\n * The name of the ControlValueAccessor\n */\n @Input() name: string;\n\n constructor(\n @Optional() @Self() public _control: NgControl,\n private _registry: DaffRadioRegistry,\n private _radio: DaffRadioComponent,\n ) {\n if (this._control != null) {\n this._control.valueAccessor = this;\n }\n }\n\n /**\n * @docs-private\n */\n ngOnInit(): void {\n if (this._control) {\n this.writeValue(this._control.value);\n this._registry.add(this._control, this);\n }\n\n this._radio.selectionChange.subscribe(\n value => value ? this._onChange() : null,\n );\n }\n /**\n *\n * writeValue function from the CVA interface\n */\n writeValue(value: any): void {\n // the this._onChange null check here is necessary because of an ongoing bug in angular forms\n // where writeValue can be called before the component initializes: https://github.com/angular/angular/issues/29218\n if (this.value === value && this._onChange) {\n this._onChange();\n this.fireSelect();\n }\n }\n\n /**\n * registerOnChange implemented from the CVA interface\n */\n registerOnChange(fn: any): void {\n this._onChange = () => {\n fn(this.value);\n this._registry.select(this);\n };\n }\n\n /**\n * registerOnTouch implemented from the CVA interface\n */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n /**\n * sets the disabled state.\n */\n setDisabledState?(isDisabled: boolean): void {\n this._radio.disabled = isDisabled;\n }\n\n /**\n calls select function for the radio\n */\n fireSelect() {\n this._radio.select();\n }\n\n /**\n calls deselect function for the radio\n */\n fireDeselect() {\n this._radio.deselect();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DaffRadioControlValueAccessorDirective } from './cva/radio-cva.directive';\nimport { DaffRadioComponent } from './radio/radio.component';\nimport { DaffRadioSetComponent } from './radio-set/radio-set.component';\n\n@NgModule({\n imports: [\n CommonModule,\n DaffRadioComponent,\n DaffRadioSetComponent,\n DaffRadioControlValueAccessorDirective,\n ],\n exports: [\n DaffRadioComponent,\n DaffRadioSetComponent,\n DaffRadioControlValueAccessorDirective,\n ],\n})\nexport class DaffRadioModule { }\n","import { DaffRadioControlValueAccessorDirective } from './cva/radio-cva.directive';\nimport { DaffRadioComponent } from './radio/radio.component';\nimport { DaffRadioSetComponent } from './radio-set/radio-set.component';\n/**\n * @docs-private\n */\nexport const DAFF_RADIO_COMPONENTS = <const> [\n DaffRadioComponent,\n DaffRadioSetComponent,\n DaffRadioControlValueAccessorDirective,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DaffRadioSetComponent","i2.DaffRadioRegistry","i3.DaffRadioComponent"],"mappings":"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"}
@@ -20,10 +20,10 @@ class DaffSelectOptionDirective {
20
20
  constructor(templateRef) {
21
21
  this.templateRef = templateRef;
22
22
  }
23
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffSelectOptionDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
24
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: DaffSelectOptionDirective, isStandalone: true, selector: "[daffSelectOption]", ngImport: i0 }); }
23
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffSelectOptionDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
24
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: DaffSelectOptionDirective, isStandalone: true, selector: "[daffSelectOption]", ngImport: i0 }); }
25
25
  }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffSelectOptionDirective, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffSelectOptionDirective, decorators: [{
27
27
  type: Directive,
28
28
  args: [{
29
29
  selector: '[daffSelectOption]',
@@ -76,7 +76,7 @@ class DaffSelectComponent extends DaffFormFieldControl {
76
76
  * @docs-private
77
77
  */
78
78
  get isOpen() {
79
- return this.openDirective.open;
79
+ return this.openDirective.open();
80
80
  }
81
81
  constructor(cd, document, ngControl, overlay, openDirective, formField) {
82
82
  super(ngControl);
@@ -199,8 +199,8 @@ class DaffSelectComponent extends DaffFormFieldControl {
199
199
  open(event) {
200
200
  event?.preventDefault();
201
201
  event?.stopPropagation();
202
- if (!this.openDirective.open) {
203
- this.openDirective.open = true;
202
+ if (!this.openDirective.open()) {
203
+ this.openDirective.open.set(true);
204
204
  if (this._value) {
205
205
  this._highlighted = this.options.findIndex((v) => v === this._value);
206
206
  }
@@ -246,8 +246,8 @@ class DaffSelectComponent extends DaffFormFieldControl {
246
246
  close(event) {
247
247
  event?.preventDefault();
248
248
  event?.stopPropagation();
249
- if (this.openDirective.open) {
250
- this.openDirective.open = false;
249
+ if (this.openDirective.open()) {
250
+ this.openDirective.open.set(false);
251
251
  this.cd.markForCheck();
252
252
  // do we actually have to dispose and recreate the overlay every time we want to close the dropdown?
253
253
  this._overlay?.dispose();
@@ -299,12 +299,12 @@ class DaffSelectComponent extends DaffFormFieldControl {
299
299
  this._highlighted = this._highlighted > 0 ? this._highlighted - 1 : this.options.length - 1;
300
300
  (event?.target).children[this._highlighted].scrollIntoView();
301
301
  }
302
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffSelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: DOCUMENT }, { token: i1.NgControl, optional: true, self: true }, { token: i2.Overlay }, { token: i3.DaffOpenableDirective }, { token: i4.DaffFormFieldComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
303
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: DaffSelectComponent, isStandalone: true, selector: "daff-select", inputs: { disabled: ["disabled", "disabled", booleanAttribute], required: ["required", "required", booleanAttribute], options: "options", optionsId: "optionsId" }, host: { properties: { "attr.aria-labelledby": "ariaLabelledBy" }, classAttribute: "daff-select" }, providers: [
302
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffSelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: DOCUMENT }, { token: i1.NgControl, optional: true, self: true }, { token: i2.Overlay }, { token: i3.DaffOpenableDirective }, { token: i4.DaffFormFieldComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
303
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DaffSelectComponent, isStandalone: true, selector: "daff-select", inputs: { disabled: ["disabled", "disabled", booleanAttribute], required: ["required", "required", booleanAttribute], options: "options", optionsId: "optionsId" }, host: { properties: { "attr.aria-labelledby": "ariaLabelledBy" }, classAttribute: "daff-select" }, providers: [
304
304
  { provide: DaffFormFieldControl, useExisting: DaffSelectComponent },
305
305
  ], queries: [{ propertyName: "optionTemplate", first: true, predicate: DaffSelectOptionDirective, descendants: true }], viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["field"], descendants: true }, { propertyName: "optionsTemplatePortal", first: true, predicate: ["optionsTemplate"], descendants: true }, { propertyName: "optionsElement", first: true, predicate: ["optionsEl"], descendants: true, read: (ElementRef) }], usesInheritance: true, hostDirectives: [{ directive: i3.DaffOpenableDirective }], ngImport: i0, template: "<button #field class=\"daff-select__field\"\n type=\"button\"\n (click)=\"open($event)\"\n (focus)=\"focus()\"\n (blur)=\"blur()\"\n [disabled]=\"disabled\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-controls]=\"optionsId\"\n (keydown.arrowdown)=\"open($event)\"\n (keydown.arrowup)=\"open($event)\"\n (keydown.alt.arrowup)=\"open($event)\"\n (keydown.alt.arrowdown)=\"open($event)\"\n (keydown.space)=\"open($event)\"\n (keydown.enter)=\"open($event)\">\n @if (value) {\n <ng-container\n [ngTemplateOutlet]=\"optionTemplate?.templateRef\"\n [ngTemplateOutletContext]=\"\n {\n option: value,\n isSelected: true,\n isHighlighted: true,\n }\n \"><div></div>\n </ng-container>\n }\n</button>\n<ng-template cdkPortal #optionsTemplate=\"cdkPortal\">\n <div class=\"daff-select__options\" #optionsEl\n [id]=\"optionsId\"\n tabindex=\"0\"\n role=\"listbox\"\n (blur)=\"blur()\"\n (keydown.enter)=\"selectHighlighted($event)\"\n (keydown.space)=\"selectHighlighted($event)\"\n (keydown.escape)=\"close($event)\"\n (keydown.arrowdown)=\"highlightNext($event)\"\n (keydown.arrowup)=\"highlightPrevious($event)\">\n @for (option of options; track $index; let i = $index) {\n <div class=\"daff-select__option\"\n [class.selected]=\"value === option\"\n [class.highlighted]=\"highlighted === i\"\n (click)=\"selectOption(option)\">\n <ng-container\n [ngTemplateOutlet]=\"optionTemplate?.templateRef\"\n [ngTemplateOutletContext]=\"{\n isSelected: value === option,\n isHighlighted: highlighted === i,\n option\n }\">\n </ng-container>\n </div>\n }\n </div>\n</ng-template>\n", styles: [".daff-select{display:inline-block;width:100%}.daff-select.disabled .daff-select__field{cursor:not-allowed}.daff-select__field{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;appearance:none;background:none;border:none;font-size:1rem;line-height:1.25rem;min-height:3.5rem;margin:0;outline:none;padding:1.5rem 0 .5rem;text-align:left;width:100%;position:relative}.daff-select__field[disabled]{cursor:not-allowed}.daff-select__field:after{content:\"\";position:absolute;top:48%;right:.125rem;display:inline-block;border-right:.125rem solid currentColor;border-bottom:.125rem solid currentColor;width:.5rem;height:.5rem;transform:translateY(-50%) rotate(45deg);transition:transform .15s}.daff-select.daff-open .daff-select__field:after{top:56%;transform:translateY(-50%) rotate(225deg)}.daff-select__options{width:100%}.daff-select__option{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:block;appearance:none;background:none;border:none;font-size:1rem;line-height:1.25rem;margin:0;padding:.5rem;text-align:left;width:100%}.daff-select__option:first-of-type{border-radius:.25rem .25rem 0 0}.daff-select__option:last-of-type{border-radius:0 0 .25rem .25rem}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i5.CdkPortal, selector: "[cdkPortal]", exportAs: ["cdkPortal"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
306
306
  }
307
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffSelectComponent, decorators: [{
307
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffSelectComponent, decorators: [{
308
308
  type: Component,
309
309
  args: [{ selector: 'daff-select', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [
310
310
  {
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-design-select.mjs","sources":["../../../libs/design/select/src/option/option.directive.ts","../../../libs/design/select/src/select/select.component.ts","../../../libs/design/select/src/select/select.component.html","../../../libs/design/select/src/select.ts","../../../libs/design/select/src/daffodil-design-select.ts"],"sourcesContent":["import {\n Directive,\n Optional,\n TemplateRef,\n} from '@angular/core';\n\n/**\n * The directive provides the template for a list of options inside the select dropdown.\n */\n@Directive({\n selector: '[daffSelectOption]',\n})\nexport class DaffSelectOptionDirective {\n constructor(@Optional() public templateRef?: TemplateRef<unknown>) {}\n}\n","import {\n Overlay,\n OverlayModule,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport {\n PortalModule,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n ChangeDetectorRef,\n OnInit,\n ElementRef,\n Inject,\n Optional,\n Self,\n ContentChild,\n ViewChild,\n OnDestroy,\n booleanAttribute,\n DOCUMENT,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NgControl,\n Validators,\n} from '@angular/forms';\nimport {\n Subject,\n delay,\n map,\n merge,\n of,\n takeUntil,\n tap,\n} from 'rxjs';\n\nimport { DaffOpenableDirective } from '@daffodil/design';\nimport {\n DaffFormFieldComponent,\n DaffFormFieldControl,\n} from '@daffodil/design/form-field';\n\nimport { DaffSelectOptionDirective } from '../option/option.directive';\n\nlet daffSelectOtionsId = 0;\n\n/**\n * DaffSelectComponent is a form control component that presents a list of selectable options,\n * similar to the native `<select>` element we call `<daff-native-select>`.\n *\n */\n@Component({\n selector: 'daff-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: DaffOpenableDirective,\n },\n ],\n host: {\n class: 'daff-select',\n '[attr.aria-labelledby]': 'ariaLabelledBy',\n },\n providers: [\n\n { provide: DaffFormFieldControl, useExisting: DaffSelectComponent },\n ],\n imports: [\n NgTemplateOutlet,\n OverlayModule,\n PortalModule,\n ],\n})\nexport class DaffSelectComponent<T = unknown> extends DaffFormFieldControl<string> implements DaffFormFieldControl<string>, OnInit, OnDestroy, ControlValueAccessor {\n /** @docs-private */\n controlType = 'custom-select';\n\n /**\n * @docs-private\n */\n supportsAutoLabelling = false;\n\n private _destroyed = new Subject<boolean>();\n private _overlay: OverlayRef;\n private _value = null;\n private _highlighted = 0;\n\n /**\n * @docs-private\n */\n get focused() {\n return this.document.activeElement === this.buttonElement?.nativeElement || this.document.activeElement === this.optionsElement?.nativeElement;\n }\n\n /**\n * @docs-private\n */\n get raised() {\n return this.focused && this.isOpen;\n }\n\n /** @docs-private */\n focus() {\n (<HTMLElement>this.buttonElement?.nativeElement)?.focus();\n this.emitState();\n }\n\n /** @docs-private */\n blur() {\n this.onTouched();\n this.emitState(true);\n }\n\n /**\n * @docs-private\n *\n * Implemented as part of DaffFormFieldControl.\n */\n @Input({ transform: booleanAttribute }) disabled = false;\n\n private _required = false;\n\n /**\n * @docs-private\n *\n * Implemented as part of DaffFormFieldControl.\n */\n @Input({ transform: booleanAttribute })\n get required(): boolean {\n return this.ngControl?.control?.hasValidator(Validators.required) ?? this._required;\n }\n set required(value: boolean) {\n this._required = value;\n }\n\n @Input() options: T[] = [];\n\n /**\n * @docs-private\n */\n get isOpen() {\n return this.openDirective.open;\n }\n\n /**\n * @docs-private\n *\n * `aria-labelledby` for the select.\n */\n ariaLabelledBy = '';\n\n /**\n * The unique id of the select options. Defaults to an autogenerated value.\n */\n @Input() optionsId: string = 'daff-select-options' + '-' + ++daffSelectOtionsId;\n\n constructor(\n private cd: ChangeDetectorRef,\n @Inject(DOCUMENT) private document: Document,\n @Optional() @Self() public ngControl: NgControl,\n private overlay: Overlay,\n private openDirective: DaffOpenableDirective,\n @Optional() private formField: DaffFormFieldComponent,\n ) {\n super(ngControl);\n\n if(!this.formField) {\n throw new Error('DaffSelectComponent needs to be used with the DaffFormFieldComponent.');\n }\n\n this.ariaLabelledBy = this.formField.id;\n\n this.openDirective.stateless = false;\n\n this.document.addEventListener('keydown', (event) => {\n if (event.key === 'Tab' && this.isOpen) {\n event.preventDefault();\n event.stopPropagation();\n\n this.focusOptionsList();\n }\n });\n\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n /**\n * @docs-private\n */\n @ViewChild('field') buttonElement: ElementRef<HTMLButtonElement>;\n /**\n * @docs-private\n */\n @ViewChild('optionsTemplate') optionsTemplatePortal: TemplatePortal<unknown>;\n /**\n * @docs-private\n */\n @ViewChild('optionsEl', { read: ElementRef<HTMLDivElement> }) optionsElement: ElementRef<HTMLDivElement>;\n\n /**\n * @docs-private\n */\n @ContentChild(DaffSelectOptionDirective) optionTemplate?: DaffSelectOptionDirective;\n\n /**\n * @docs-private\n */\n get value() {\n return this._value;\n }\n\n /**\n * @docs-private\n */\n get highlighted(): number {\n return this._highlighted;\n }\n\n set highlighted(val: number) {\n this._highlighted = val;\n this.cd.markForCheck();\n }\n\n private focusOptionsList() {\n this.optionsElement?.nativeElement.focus();\n }\n\n private focusButton() {\n this.buttonElement?.nativeElement.focus();\n }\n\n /**\n * @docs-private\n */\n ngOnDestroy(): void {\n this._destroyed.next(true);\n this._overlay?.dispose();\n }\n\n private onChange(value: T): void {};\n private onTouched(): void {};\n\n /**\n * @docs-private\n */\n writeValue(value: T): void {\n this._value = value;\n this.cd.markForCheck();\n }\n\n /**\n * @docs-private\n */\n registerOnChange(fn: (value: T) => void): void {\n this.onChange = fn;\n }\n\n /**\n * @docs-private\n */\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /**\n * @docs-private\n */\n flushValue() {\n this.ngControl?.control?.setValue(this._value);\n }\n\n /**\n * @docs-private\n */\n ngOnInit() {\n this.stateChanges = merge(\n this._stateChanges.asObservable(),\n this.ngControl ? this.ngControl.statusChanges : of(undefined),\n ).pipe(\n map(() => this.state),\n tap((state) => this.disabled = state.disabled),\n );\n }\n\n /**\n * Opens the options list.\n */\n open(event?: KeyboardEvent | MouseEvent) {\n event?.preventDefault();\n event?.stopPropagation();\n\n if (!this.openDirective.open) {\n this.openDirective.open = true;\n\n if (this._value) {\n this._highlighted = this.options.findIndex((v) => v === this._value);\n }\n\n const formFieldEl = this.formField.elementRef.nativeElement;\n const formFieldWidth = formFieldEl.getBoundingClientRect().width;\n\n this._overlay = this.overlay.create({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.block(),\n disposeOnNavigation: true,\n width: `${formFieldWidth}px`,\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(formFieldEl)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 2,\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -2,\n },\n ]),\n });\n\n this._overlay.attachments().pipe(\n takeUntil(this._destroyed),\n delay(0),\n ).subscribe(() => {\n this.focusOptionsList();\n });\n\n this._overlay.attach(this.optionsTemplatePortal);\n\n this._overlay.backdropClick().pipe(\n takeUntil(this._destroyed),\n ).subscribe(() => this.close());\n this.cd.markForCheck();\n }\n }\n\n /**\n * Closes the options list.\n */\n close(event?: KeyboardEvent | MouseEvent) {\n event?.preventDefault();\n event?.stopPropagation();\n\n if (this.openDirective.open) {\n this.openDirective.open = false;\n this.cd.markForCheck();\n\n // do we actually have to dispose and recreate the overlay every time we want to close the dropdown?\n this._overlay?.dispose();\n this._overlay = null;\n this.focusButton();\n }\n }\n\n /**\n * Selects the value in a particular position in the options list.\n */\n private selectValueInPosition(position: number) {\n if (position >= 0 && position < this.options.length) {\n this.writeValue(this.options[position]);\n }\n\n this.close();\n }\n\n /**\n * Selects an option.\n */\n selectOption(option: T) {\n this._value = option;\n this.onChange(this._value);\n\n this.close();\n }\n\n /**\n * Selects the option referenced by the highlighted index.\n */\n selectHighlighted(event?: KeyboardEvent | MouseEvent) {\n event?.preventDefault();\n event?.stopPropagation();\n this.selectValueInPosition(this._highlighted);\n\n this.onChange(this._value);\n }\n\n /**\n * Highlights the next option in the list.\n */\n highlightNext(event?: KeyboardEvent | MouseEvent) {\n event?.preventDefault();\n event?.stopPropagation();\n this._highlighted = this._highlighted < this.options.length - 1 ? this._highlighted + 1 : 0;\n (<HTMLElement>event?.target).children[this._highlighted].scrollIntoView();\n }\n\n /**\n * Highlights the previous option in the list.\n */\n highlightPrevious(event?: KeyboardEvent | MouseEvent) {\n event?.preventDefault();\n event?.stopPropagation();\n this._highlighted = this._highlighted > 0 ? this._highlighted - 1 : this.options.length - 1;\n (<HTMLElement>event?.target).children[this._highlighted].scrollIntoView();\n }\n}\n","<button #field class=\"daff-select__field\"\n type=\"button\"\n (click)=\"open($event)\"\n (focus)=\"focus()\"\n (blur)=\"blur()\"\n [disabled]=\"disabled\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-controls]=\"optionsId\"\n (keydown.arrowdown)=\"open($event)\"\n (keydown.arrowup)=\"open($event)\"\n (keydown.alt.arrowup)=\"open($event)\"\n (keydown.alt.arrowdown)=\"open($event)\"\n (keydown.space)=\"open($event)\"\n (keydown.enter)=\"open($event)\">\n @if (value) {\n <ng-container\n [ngTemplateOutlet]=\"optionTemplate?.templateRef\"\n [ngTemplateOutletContext]=\"\n {\n option: value,\n isSelected: true,\n isHighlighted: true,\n }\n \"><div></div>\n </ng-container>\n }\n</button>\n<ng-template cdkPortal #optionsTemplate=\"cdkPortal\">\n <div class=\"daff-select__options\" #optionsEl\n [id]=\"optionsId\"\n tabindex=\"0\"\n role=\"listbox\"\n (blur)=\"blur()\"\n (keydown.enter)=\"selectHighlighted($event)\"\n (keydown.space)=\"selectHighlighted($event)\"\n (keydown.escape)=\"close($event)\"\n (keydown.arrowdown)=\"highlightNext($event)\"\n (keydown.arrowup)=\"highlightPrevious($event)\">\n @for (option of options; track $index; let i = $index) {\n <div class=\"daff-select__option\"\n [class.selected]=\"value === option\"\n [class.highlighted]=\"highlighted === i\"\n (click)=\"selectOption(option)\">\n <ng-container\n [ngTemplateOutlet]=\"optionTemplate?.templateRef\"\n [ngTemplateOutletContext]=\"{\n isSelected: value === option,\n isHighlighted: highlighted === i,\n option\n }\">\n </ng-container>\n </div>\n }\n </div>\n</ng-template>\n","import { DaffSelectOptionDirective } from './option/option.directive';\nimport { DaffSelectComponent } from './select/select.component';\n\nexport const DAFF_SELECT_COMPONENTS = <const> [\n DaffSelectComponent,\n DaffSelectOptionDirective,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daffodil-design-select.mjs","sources":["../../../libs/design/select/src/option/option.directive.ts","../../../libs/design/select/src/select/select.component.ts","../../../libs/design/select/src/select/select.component.html","../../../libs/design/select/src/select.ts","../../../libs/design/select/src/daffodil-design-select.ts"],"sourcesContent":["import {\n Directive,\n Optional,\n TemplateRef,\n} from '@angular/core';\n\n/**\n * The directive provides the template for a list of options inside the select dropdown.\n */\n@Directive({\n selector: '[daffSelectOption]',\n})\nexport class DaffSelectOptionDirective {\n constructor(@Optional() public templateRef?: TemplateRef<unknown>) {}\n}\n","import {\n Overlay,\n OverlayModule,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport {\n PortalModule,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n ChangeDetectorRef,\n OnInit,\n ElementRef,\n Inject,\n Optional,\n Self,\n ContentChild,\n ViewChild,\n OnDestroy,\n booleanAttribute,\n DOCUMENT,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NgControl,\n Validators,\n} from '@angular/forms';\nimport {\n Subject,\n delay,\n map,\n merge,\n of,\n takeUntil,\n tap,\n} from 'rxjs';\n\nimport { DaffOpenableDirective } from '@daffodil/design';\nimport {\n DaffFormFieldComponent,\n DaffFormFieldControl,\n} from '@daffodil/design/form-field';\n\nimport { DaffSelectOptionDirective } from '../option/option.directive';\n\nlet daffSelectOtionsId = 0;\n\n/**\n * DaffSelectComponent is a form control component that presents a list of selectable options,\n * similar to the native `<select>` element we call `<daff-native-select>`.\n *\n */\n@Component({\n selector: 'daff-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: DaffOpenableDirective,\n },\n ],\n host: {\n class: 'daff-select',\n '[attr.aria-labelledby]': 'ariaLabelledBy',\n },\n providers: [\n\n { provide: DaffFormFieldControl, useExisting: DaffSelectComponent },\n ],\n imports: [\n NgTemplateOutlet,\n OverlayModule,\n PortalModule,\n ],\n})\nexport class DaffSelectComponent<T = unknown> extends DaffFormFieldControl<string> implements DaffFormFieldControl<string>, OnInit, OnDestroy, ControlValueAccessor {\n /** @docs-private */\n controlType = 'custom-select';\n\n /**\n * @docs-private\n */\n supportsAutoLabelling = false;\n\n private _destroyed = new Subject<boolean>();\n private _overlay: OverlayRef;\n private _value = null;\n private _highlighted = 0;\n\n /**\n * @docs-private\n */\n get focused() {\n return this.document.activeElement === this.buttonElement?.nativeElement || this.document.activeElement === this.optionsElement?.nativeElement;\n }\n\n /**\n * @docs-private\n */\n get raised() {\n return this.focused && this.isOpen;\n }\n\n /** @docs-private */\n focus() {\n (<HTMLElement>this.buttonElement?.nativeElement)?.focus();\n this.emitState();\n }\n\n /** @docs-private */\n blur() {\n this.onTouched();\n this.emitState(true);\n }\n\n /**\n * @docs-private\n *\n * Implemented as part of DaffFormFieldControl.\n */\n @Input({ transform: booleanAttribute }) disabled = false;\n\n private _required = false;\n\n /**\n * @docs-private\n *\n * Implemented as part of DaffFormFieldControl.\n */\n @Input({ transform: booleanAttribute })\n get required(): boolean {\n return this.ngControl?.control?.hasValidator(Validators.required) ?? this._required;\n }\n set required(value: boolean) {\n this._required = value;\n }\n\n @Input() options: T[] = [];\n\n /**\n * @docs-private\n */\n get isOpen() {\n return this.openDirective.open();\n }\n\n /**\n * @docs-private\n *\n * `aria-labelledby` for the select.\n */\n ariaLabelledBy = '';\n\n /**\n * The unique id of the select options. Defaults to an autogenerated value.\n */\n @Input() optionsId: string = 'daff-select-options' + '-' + ++daffSelectOtionsId;\n\n constructor(\n private cd: ChangeDetectorRef,\n @Inject(DOCUMENT) private document: Document,\n @Optional() @Self() public ngControl: NgControl,\n private overlay: Overlay,\n private openDirective: DaffOpenableDirective,\n @Optional() private formField: DaffFormFieldComponent,\n ) {\n super(ngControl);\n\n if(!this.formField) {\n throw new Error('DaffSelectComponent needs to be used with the DaffFormFieldComponent.');\n }\n\n this.ariaLabelledBy = this.formField.id;\n\n this.openDirective.stateless = false;\n\n this.document.addEventListener('keydown', (event) => {\n if (event.key === 'Tab' && this.isOpen) {\n event.preventDefault();\n event.stopPropagation();\n\n this.focusOptionsList();\n }\n });\n\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n /**\n * @docs-private\n */\n @ViewChild('field') buttonElement: ElementRef<HTMLButtonElement>;\n /**\n * @docs-private\n */\n @ViewChild('optionsTemplate') optionsTemplatePortal: TemplatePortal<unknown>;\n /**\n * @docs-private\n */\n @ViewChild('optionsEl', { read: ElementRef<HTMLDivElement> }) optionsElement: ElementRef<HTMLDivElement>;\n\n /**\n * @docs-private\n */\n @ContentChild(DaffSelectOptionDirective) optionTemplate?: DaffSelectOptionDirective;\n\n /**\n * @docs-private\n */\n get value() {\n return this._value;\n }\n\n /**\n * @docs-private\n */\n get highlighted(): number {\n return this._highlighted;\n }\n\n set highlighted(val: number) {\n this._highlighted = val;\n this.cd.markForCheck();\n }\n\n private focusOptionsList() {\n this.optionsElement?.nativeElement.focus();\n }\n\n private focusButton() {\n this.buttonElement?.nativeElement.focus();\n }\n\n /**\n * @docs-private\n */\n ngOnDestroy(): void {\n this._destroyed.next(true);\n this._overlay?.dispose();\n }\n\n private onChange(value: T): void {};\n private onTouched(): void {};\n\n /**\n * @docs-private\n */\n writeValue(value: T): void {\n this._value = value;\n this.cd.markForCheck();\n }\n\n /**\n * @docs-private\n */\n registerOnChange(fn: (value: T) => void): void {\n this.onChange = fn;\n }\n\n /**\n * @docs-private\n */\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /**\n * @docs-private\n */\n flushValue() {\n this.ngControl?.control?.setValue(this._value);\n }\n\n /**\n * @docs-private\n */\n ngOnInit() {\n this.stateChanges = merge(\n this._stateChanges.asObservable(),\n this.ngControl ? this.ngControl.statusChanges : of(undefined),\n ).pipe(\n map(() => this.state),\n tap((state) => this.disabled = state.disabled),\n );\n }\n\n /**\n * Opens the options list.\n */\n open(event?: KeyboardEvent | MouseEvent) {\n event?.preventDefault();\n event?.stopPropagation();\n\n if (!this.openDirective.open()) {\n this.openDirective.open.set(true);\n\n if (this._value) {\n this._highlighted = this.options.findIndex((v) => v === this._value);\n }\n\n const formFieldEl = this.formField.elementRef.nativeElement;\n const formFieldWidth = formFieldEl.getBoundingClientRect().width;\n\n this._overlay = this.overlay.create({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.block(),\n disposeOnNavigation: true,\n width: `${formFieldWidth}px`,\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(formFieldEl)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 2,\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -2,\n },\n ]),\n });\n\n this._overlay.attachments().pipe(\n takeUntil(this._destroyed),\n delay(0),\n ).subscribe(() => {\n this.focusOptionsList();\n });\n\n this._overlay.attach(this.optionsTemplatePortal);\n\n this._overlay.backdropClick().pipe(\n takeUntil(this._destroyed),\n ).subscribe(() => this.close());\n this.cd.markForCheck();\n }\n }\n\n /**\n * Closes the options list.\n */\n close(event?: KeyboardEvent | MouseEvent) {\n event?.preventDefault();\n event?.stopPropagation();\n\n if (this.openDirective.open()) {\n this.openDirective.open.set(false);\n this.cd.markForCheck();\n\n // do we actually have to dispose and recreate the overlay every time we want to close the dropdown?\n this._overlay?.dispose();\n this._overlay = null;\n this.focusButton();\n }\n }\n\n /**\n * Selects the value in a particular position in the options list.\n */\n private selectValueInPosition(position: number) {\n if (position >= 0 && position < this.options.length) {\n this.writeValue(this.options[position]);\n }\n\n this.close();\n }\n\n /**\n * Selects an option.\n */\n selectOption(option: T) {\n this._value = option;\n this.onChange(this._value);\n\n this.close();\n }\n\n /**\n * Selects the option referenced by the highlighted index.\n */\n selectHighlighted(event?: KeyboardEvent | MouseEvent) {\n event?.preventDefault();\n event?.stopPropagation();\n this.selectValueInPosition(this._highlighted);\n\n this.onChange(this._value);\n }\n\n /**\n * Highlights the next option in the list.\n */\n highlightNext(event?: KeyboardEvent | MouseEvent) {\n event?.preventDefault();\n event?.stopPropagation();\n this._highlighted = this._highlighted < this.options.length - 1 ? this._highlighted + 1 : 0;\n (<HTMLElement>event?.target).children[this._highlighted].scrollIntoView();\n }\n\n /**\n * Highlights the previous option in the list.\n */\n highlightPrevious(event?: KeyboardEvent | MouseEvent) {\n event?.preventDefault();\n event?.stopPropagation();\n this._highlighted = this._highlighted > 0 ? this._highlighted - 1 : this.options.length - 1;\n (<HTMLElement>event?.target).children[this._highlighted].scrollIntoView();\n }\n}\n","<button #field class=\"daff-select__field\"\n type=\"button\"\n (click)=\"open($event)\"\n (focus)=\"focus()\"\n (blur)=\"blur()\"\n [disabled]=\"disabled\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-controls]=\"optionsId\"\n (keydown.arrowdown)=\"open($event)\"\n (keydown.arrowup)=\"open($event)\"\n (keydown.alt.arrowup)=\"open($event)\"\n (keydown.alt.arrowdown)=\"open($event)\"\n (keydown.space)=\"open($event)\"\n (keydown.enter)=\"open($event)\">\n @if (value) {\n <ng-container\n [ngTemplateOutlet]=\"optionTemplate?.templateRef\"\n [ngTemplateOutletContext]=\"\n {\n option: value,\n isSelected: true,\n isHighlighted: true,\n }\n \"><div></div>\n </ng-container>\n }\n</button>\n<ng-template cdkPortal #optionsTemplate=\"cdkPortal\">\n <div class=\"daff-select__options\" #optionsEl\n [id]=\"optionsId\"\n tabindex=\"0\"\n role=\"listbox\"\n (blur)=\"blur()\"\n (keydown.enter)=\"selectHighlighted($event)\"\n (keydown.space)=\"selectHighlighted($event)\"\n (keydown.escape)=\"close($event)\"\n (keydown.arrowdown)=\"highlightNext($event)\"\n (keydown.arrowup)=\"highlightPrevious($event)\">\n @for (option of options; track $index; let i = $index) {\n <div class=\"daff-select__option\"\n [class.selected]=\"value === option\"\n [class.highlighted]=\"highlighted === i\"\n (click)=\"selectOption(option)\">\n <ng-container\n [ngTemplateOutlet]=\"optionTemplate?.templateRef\"\n [ngTemplateOutletContext]=\"{\n isSelected: value === option,\n isHighlighted: highlighted === i,\n option\n }\">\n </ng-container>\n </div>\n }\n </div>\n</ng-template>\n","import { DaffSelectOptionDirective } from './option/option.directive';\nimport { DaffSelectComponent } from './select/select.component';\n\nexport const DAFF_SELECT_COMPONENTS = <const> [\n DaffSelectComponent,\n DaffSelectOptionDirective,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { fromEvent, BehaviorSubject } from 'rxjs';
7
7
  import { filter } from 'rxjs/operators';
8
8
  import * as i2 from '@daffodil/design';
9
9
  import { daffFocusableElementsSelector, DaffOpenableDirective } from '@daffodil/design';
10
- import { trigger, state, transition, style, animate } from '@angular/animations';
10
+ import { trigger, state, style, transition, animate } from '@angular/animations';
11
11
  import { FaIconComponent } from '@fortawesome/angular-fontawesome';
12
12
  import { faTimes } from '@fortawesome/free-solid-svg-icons';
13
13
  import { createSingleInjectionToken } from '@daffodil/core';
@@ -118,7 +118,7 @@ class DaffSidebarComponent {
118
118
  */
119
119
  get transformSidebar() {
120
120
  return {
121
- value: getAnimationState$1(this.openDirective.open, this.mode),
121
+ value: getAnimationState$1(this.openDirective.open(), this.mode),
122
122
  params: { width: getSidebarAnimationWidth(this.side, this.width) },
123
123
  };
124
124
  }
@@ -236,12 +236,12 @@ class DaffSidebarComponent {
236
236
  toggle() {
237
237
  this.openDirective.toggle();
238
238
  }
239
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffSidebarComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.ConfigurableFocusTrapFactory }, { token: i2.DaffFocusStackService }, { token: i2.DaffOpenableDirective }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
240
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: DaffSidebarComponent, isStandalone: true, selector: "daff-sidebar", inputs: { side: "side", mode: "mode" }, outputs: { escapePressed: "escapePressed" }, host: { listeners: { "@transformSidebar.start": "onAnimationStart($event)", "@transformSidebar.done": "onAnimationComplete($event)" }, properties: { "class.side": "mode === \"side\"", "class.over": "mode === \"over\"", "class.under": "mode === \"under\"", "class.side-fixed": "mode === \"side-fixed\"", "class.left": "side === \"left\"", "class.right": "side === \"right\"", "@transformSidebar": "this.transformSidebar" }, classAttribute: "daff-sidebar" }, hostDirectives: [{ directive: i2.DaffOpenableDirective, inputs: ["open", "open"], outputs: ["toggled", "toggled"] }], ngImport: i0, template: "<ng-content select=\"daff-sidebar-header\"></ng-content>\n<div class=\"daff-sidebar__body\">\n\t<ng-content></ng-content>\n</div>\n<ng-content select=\"daff-sidebar-footer\"></ng-content>", styles: [":host{display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto;width:15rem}:host.left{width:var(--daff-sidebar-left-width, 15rem)}:host.right{width:var(--daff-sidebar-right-width, 15rem)}:host.side-fixed{visibility:hidden;position:fixed;bottom:0;z-index:5;top:var(--daff-sidebar-side-fixed-top-shift, 64px);height:calc(100dvh - var(--daff-sidebar-side-fixed-top-shift, 64px))}:host.side-fixed.left{left:0}:host.side-fixed.right{right:0}@media(min-width:1024px){:host.side-fixed{visibility:visible}}:host.over,:host.under{position:fixed;top:0;bottom:0}:host.over.left,:host.under.left{left:0}:host.over.right,:host.under.right{right:0}:host.over{z-index:7}:host.under{z-index:2}:host-context(daff-sidebar-viewport daff-sidebar-viewport).side-fixed{position:sticky}:host-context(.daff-sidebar-viewport.beside).side-fixed{top:0;height:100%}.daff-sidebar__body{flex-grow:1;height:100%;overflow-y:auto}\n"], animations: [
239
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffSidebarComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.ConfigurableFocusTrapFactory }, { token: i2.DaffFocusStackService }, { token: i2.DaffOpenableDirective }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
240
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: DaffSidebarComponent, isStandalone: true, selector: "daff-sidebar", inputs: { side: "side", mode: "mode" }, outputs: { escapePressed: "escapePressed" }, host: { listeners: { "@transformSidebar.start": "onAnimationStart($event)", "@transformSidebar.done": "onAnimationComplete($event)" }, properties: { "class.side": "mode === \"side\"", "class.over": "mode === \"over\"", "class.under": "mode === \"under\"", "class.side-fixed": "mode === \"side-fixed\"", "class.left": "side === \"left\"", "class.right": "side === \"right\"", "@transformSidebar": "this.transformSidebar" }, classAttribute: "daff-sidebar" }, hostDirectives: [{ directive: i2.DaffOpenableDirective, inputs: ["open", "open"], outputs: ["toggled", "toggled"] }], ngImport: i0, template: "<ng-content select=\"daff-sidebar-header\"></ng-content>\n<div class=\"daff-sidebar__body\">\n\t<ng-content></ng-content>\n</div>\n<ng-content select=\"daff-sidebar-footer\"></ng-content>", styles: [":host{display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto;width:15rem}:host.left{width:var(--daff-sidebar-left-width, 15rem)}:host.right{width:var(--daff-sidebar-right-width, 15rem)}:host.side-fixed{visibility:hidden;position:fixed;bottom:0;z-index:5;top:var(--daff-sidebar-side-fixed-top-shift, 64px);height:calc(100dvh - var(--daff-sidebar-side-fixed-top-shift, 64px))}:host.side-fixed.left{left:0}:host.side-fixed.right{right:0}@media(min-width:1024px){:host.side-fixed{visibility:visible}}:host.over,:host.under{position:fixed;top:0;bottom:0}:host.over.left,:host.under.left{left:0}:host.over.right,:host.under.right{right:0}:host.over{z-index:7}:host.under{z-index:2}:host-context(daff-sidebar-viewport daff-sidebar-viewport).side-fixed{position:sticky}:host-context(.daff-sidebar-viewport.beside).side-fixed{top:0;height:100%}.daff-sidebar__body{flex-grow:1;height:100%;overflow-y:auto}\n"], animations: [
241
241
  daffSidebarAnimations.transformSidebar,
242
242
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
243
243
  }
244
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffSidebarComponent, decorators: [{
244
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffSidebarComponent, decorators: [{
245
245
  type: Component,
246
246
  args: [{ selector: 'daff-sidebar', changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [{
247
247
  directive: DaffOpenableDirective,
@@ -288,10 +288,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
288
288
  * ```
289
289
  */
290
290
  class DaffSidebarFooterComponent {
291
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffSidebarFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
292
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: DaffSidebarFooterComponent, isStandalone: true, selector: "daff-sidebar-footer", host: { classAttribute: "daff-sidebar-footer" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{display:block;width:100%;flex-grow:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
291
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffSidebarFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
292
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: DaffSidebarFooterComponent, isStandalone: true, selector: "daff-sidebar-footer", host: { classAttribute: "daff-sidebar-footer" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{display:block;width:100%;flex-grow:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
293
293
  }
294
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffSidebarFooterComponent, decorators: [{
294
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffSidebarFooterComponent, decorators: [{
295
295
  type: Component,
296
296
  args: [{ selector: 'daff-sidebar-footer', template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, host: {
297
297
  'class': 'daff-sidebar-footer',
@@ -313,10 +313,10 @@ class DaffSidebarHeaderTitleDirective {
313
313
  */
314
314
  this.class = true;
315
315
  }
316
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffSidebarHeaderTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
317
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: DaffSidebarHeaderTitleDirective, isStandalone: true, selector: "[daffSidebarHeaderTitle]", host: { properties: { "class.daff-sidebar-header__title": "this.class" } }, ngImport: i0 }); }
316
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffSidebarHeaderTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
317
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: DaffSidebarHeaderTitleDirective, isStandalone: true, selector: "[daffSidebarHeaderTitle]", host: { properties: { "class.daff-sidebar-header__title": "this.class" } }, ngImport: i0 }); }
318
318
  }
319
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffSidebarHeaderTitleDirective, decorators: [{
319
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffSidebarHeaderTitleDirective, decorators: [{
320
320
  type: Directive,
321
321
  args: [{
322
322
  selector: '[daffSidebarHeaderTitle]',
@@ -355,10 +355,10 @@ class DaffSidebarHeaderComponent {
355
355
  onCloseSidebar(event) {
356
356
  this.closeSidebar.emit();
357
357
  }
358
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffSidebarHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
359
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: DaffSidebarHeaderComponent, isStandalone: true, selector: "daff-sidebar-header", inputs: { dismissible: "dismissible" }, outputs: { closeSidebar: "closeSidebar" }, host: { properties: { "class.dismissible": "dismissible" }, classAttribute: "daff-sidebar-header" }, ngImport: i0, template: "@if (dismissible) {\n <button class=\"daff-sidebar-header__close-icon\" aria-label=\"Close Sidebar\" (click)=\"onCloseSidebar($event)\">\n <fa-icon [icon]=\"faTimes\" [fixedWidth]=\"true\" size=\"lg\"></fa-icon>\n </button>\n}\n<div class=\"daff-sidebar-header__content\">\n <ng-content></ng-content>\n</div>", styles: [".daff-sidebar-header{display:flex;align-items:center;position:relative;padding:0 1rem;min-height:3rem;max-height:3rem;width:100%}.daff-sidebar-header__close-icon{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:absolute;appearance:none;background:none;border:none;color:currentColor;height:3rem;margin:0;min-height:3rem;min-width:3rem;padding:0;width:3rem;left:initial;right:0;top:0}.daff-sidebar-header__title,.daff-sidebar-header__content{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;line-height:1rem;font-weight:500}.daff-sidebar-header__close-icon+.daff-sidebar-header__content{margin:0 1.75rem 0 0}.daff-sidebar.right .daff-sidebar-header__close-icon{left:0;right:initial}.daff-sidebar.right .daff-sidebar-header__close-icon+.daff-sidebar-header__title,.daff-sidebar.right .daff-sidebar-header__close-icon+.daff-sidebar-header__content{margin:0 0 0 1.75rem}\n"], dependencies: [{ kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"], outputs: ["iconChange", "titleChange", "animationChange", "maskChange", "flipChange", "sizeChange", "pullChange", "borderChange", "inverseChange", "symbolChange", "rotateChange", "fixedWidthChange", "transformChange", "a11yRoleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
358
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffSidebarHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
359
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DaffSidebarHeaderComponent, isStandalone: true, selector: "daff-sidebar-header", inputs: { dismissible: "dismissible" }, outputs: { closeSidebar: "closeSidebar" }, host: { properties: { "class.dismissible": "dismissible" }, classAttribute: "daff-sidebar-header" }, ngImport: i0, template: "@if (dismissible) {\n <button class=\"daff-sidebar-header__close-icon\" aria-label=\"Close Sidebar\" (click)=\"onCloseSidebar($event)\">\n <fa-icon [icon]=\"faTimes\" [fixedWidth]=\"true\" size=\"lg\"></fa-icon>\n </button>\n}\n<div class=\"daff-sidebar-header__content\">\n <ng-content></ng-content>\n</div>", styles: [".daff-sidebar-header{display:flex;align-items:center;position:relative;padding:0 1rem;min-height:3rem;max-height:3rem;width:100%}.daff-sidebar-header__close-icon{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:absolute;appearance:none;background:none;border:none;color:currentColor;height:3rem;margin:0;min-height:3rem;min-width:3rem;padding:0;width:3rem;left:initial;right:0;top:0}.daff-sidebar-header__title,.daff-sidebar-header__content{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;line-height:1rem;font-weight:500}.daff-sidebar-header__close-icon+.daff-sidebar-header__content{margin:0 1.75rem 0 0}.daff-sidebar.right .daff-sidebar-header__close-icon{left:0;right:initial}.daff-sidebar.right .daff-sidebar-header__close-icon+.daff-sidebar-header__title,.daff-sidebar.right .daff-sidebar-header__close-icon+.daff-sidebar-header__content{margin:0 0 0 1.75rem}\n"], dependencies: [{ kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"], outputs: ["iconChange", "titleChange", "animationChange", "maskChange", "flipChange", "sizeChange", "pullChange", "borderChange", "inverseChange", "symbolChange", "rotateChange", "fixedWidthChange", "transformChange", "a11yRoleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
360
360
  }
361
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffSidebarHeaderComponent, decorators: [{
361
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffSidebarHeaderComponent, decorators: [{
362
362
  type: Component,
363
363
  args: [{ selector: 'daff-sidebar-header', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
364
364
  'class': 'daff-sidebar-header',
@@ -443,13 +443,13 @@ const daffSidebarViewportScrollFactory = () => {
443
443
  /**
444
444
  * Determines, given a list of sidebars, whether or not the backdrop is interactable (typically clickable).
445
445
  */
446
- const sidebarViewportBackdropInteractable = (sidebars) => sidebars.reduce((acc, sidebar) => ((sidebar.mode === 'over' || sidebar.mode === 'under') && sidebar.open) || acc, false);
446
+ const sidebarViewportBackdropInteractable = (sidebars) => sidebars.reduce((acc, sidebar) => ((sidebar.mode === 'over' || sidebar.mode === 'under') && sidebar.open()) || acc, false);
447
447
 
448
448
  /**
449
449
  * Given a list of sidebars, compute the whether or not the content is padded.
450
450
  */
451
451
  const isSidebarViewportContentPadded = (sidebars, side) => sidebars.reduce((acc, sidebar) => {
452
- if (!(sidebar.mode === "side-fixed" /* DaffSidebarModeEnum.SideFixed */ && sidebar.open)) {
452
+ if (!(sidebar.mode === "side-fixed" /* DaffSidebarModeEnum.SideFixed */ && sidebar.open())) {
453
453
  return acc || false;
454
454
  }
455
455
  if (sidebar.side === side) {
@@ -467,7 +467,7 @@ const isViewportContentShifted = (mode, open) => (mode === 'under' && open);
467
467
  * Given a list of sidebars, compute the associated content shift.
468
468
  */
469
469
  const sidebarViewportContentShift = (sidebars) => sidebars.reduce((acc, sidebar) => {
470
- if (!isViewportContentShifted(sidebar.mode, sidebar.open)) {
470
+ if (!isViewportContentShifted(sidebar.mode, sidebar.open())) {
471
471
  return acc;
472
472
  }
473
473
  if (sidebar.side === 'left') {
@@ -566,12 +566,12 @@ class DaffSidebarViewportBackdropComponent {
566
566
  onBackdropClicked() {
567
567
  this.backdropClicked.emit();
568
568
  }
569
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffSidebarViewportBackdropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
570
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: DaffSidebarViewportBackdropComponent, isStandalone: true, selector: "daff-sidebar-viewport-backdrop", inputs: { transparent: "transparent", interactable: "interactable", fullscreen: "fullscreen" }, outputs: { backdropClicked: "backdropClicked" }, host: { listeners: { "@fadeBackdrop.done": "animationDone($event)", "@fadeBackdrop.start": "animationStart($event)", "click": "onBackdropClicked()" }, properties: { "class.interactable": "this.interactableClass", "class.transparent": "this.transparent", "class.fullscreen": "this.fullscreen", "@fadeBackdrop": "this.fadeBackdropTrigger" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{display:block;background:#0000004d;-webkit-tap-highlight-color:rgba(0,0,0,0);position:absolute;pointer-events:auto;height:100%;width:100%;visibility:hidden;z-index:6}:host.interactable{visibility:visible;pointer-events:all;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host.transparent{background:none}:host:focus,:host:active,:host:visited{outline:0}:host.fullscreen{position:absolute}\n"], animations: [
569
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffSidebarViewportBackdropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
570
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: DaffSidebarViewportBackdropComponent, isStandalone: true, selector: "daff-sidebar-viewport-backdrop", inputs: { transparent: "transparent", interactable: "interactable", fullscreen: "fullscreen" }, outputs: { backdropClicked: "backdropClicked" }, host: { listeners: { "@fadeBackdrop.done": "animationDone($event)", "@fadeBackdrop.start": "animationStart($event)", "click": "onBackdropClicked()" }, properties: { "class.interactable": "this.interactableClass", "class.transparent": "this.transparent", "class.fullscreen": "this.fullscreen", "@fadeBackdrop": "this.fadeBackdropTrigger" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{display:block;background:#0000004d;-webkit-tap-highlight-color:rgba(0,0,0,0);position:absolute;pointer-events:auto;height:100%;width:100%;visibility:hidden;z-index:6}:host.interactable{visibility:visible;pointer-events:all;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host.transparent{background:none}:host:focus,:host:active,:host:visited{outline:0}:host.fullscreen{position:absolute}\n"], animations: [
571
571
  daffSidebarViewportBackdropAnimations.fadeBackdrop,
572
572
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
573
573
  }
574
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffSidebarViewportBackdropComponent, decorators: [{
574
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffSidebarViewportBackdropComponent, decorators: [{
575
575
  type: Component,
576
576
  args: [{ selector: 'daff-sidebar-viewport-backdrop', template: '<ng-content></ng-content>', animations: [
577
577
  daffSidebarViewportBackdropAnimations.fadeBackdrop,
@@ -656,7 +656,13 @@ class DaffSidebarViewportComponent {
656
656
  * right when there are child sidebars.
657
657
  */
658
658
  this._shift = '0px';
659
+ /**
660
+ * @docs-private
661
+ */
659
662
  this._isPaddedLeft = false;
663
+ /**
664
+ * @docs-private
665
+ */
660
666
  this._isPaddedRight = false;
661
667
  /**
662
668
  * @docs-private
@@ -730,7 +736,7 @@ class DaffSidebarViewportComponent {
730
736
  */
731
737
  updateAnimationState() {
732
738
  this._animationState = {
733
- value: getSidebarViewportAnimationState(this.sidebars.reduce((acc, sidebar) => acc || isViewportContentShifted(sidebar.mode, sidebar.open), false)),
739
+ value: getSidebarViewportAnimationState(this.sidebars.reduce((acc, sidebar) => acc || isViewportContentShifted(sidebar.mode, sidebar.open()), false)),
734
740
  params: { shift: this._shift },
735
741
  };
736
742
  }
@@ -742,8 +748,8 @@ class DaffSidebarViewportComponent {
742
748
  _backdropClicked() {
743
749
  this.backdropClicked.emit();
744
750
  }
745
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffSidebarViewportComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: DAFF_SIDEBAR_SCROLL_TOKEN, skipSelf: true }, { token: DaffSidebarViewportComponent, optional: true, skipSelf: true }, { token: DAFF_SIDEBAR_SCROLL_TOKEN }], target: i0.ɵɵFactoryTarget.Component }); }
746
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: DaffSidebarViewportComponent, isStandalone: true, selector: "daff-sidebar-viewport", inputs: { navPlacement: "navPlacement" }, outputs: { backdropClicked: "backdropClicked" }, host: { properties: { "class.beside": "navPlacement === \"beside\"", "class.above": "navPlacement === \"above\"", "class.pad-left": "_isPaddedLeft", "class.pad-right": "_isPaddedRight" }, classAttribute: "daff-sidebar-viewport" }, providers: [
751
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffSidebarViewportComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: DAFF_SIDEBAR_SCROLL_TOKEN, skipSelf: true }, { token: DaffSidebarViewportComponent, optional: true, skipSelf: true }, { token: DAFF_SIDEBAR_SCROLL_TOKEN }], target: i0.ɵɵFactoryTarget.Component }); }
752
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: DaffSidebarViewportComponent, isStandalone: true, selector: "daff-sidebar-viewport", inputs: { navPlacement: "navPlacement" }, outputs: { backdropClicked: "backdropClicked" }, host: { properties: { "class.beside": "navPlacement === \"beside\"", "class.above": "navPlacement === \"above\"", "class.pad-left": "_isPaddedLeft", "class.pad-right": "_isPaddedRight" }, classAttribute: "daff-sidebar-viewport" }, providers: [
747
753
  {
748
754
  provide: DAFF_SIDEBAR_SCROLL_TOKEN,
749
755
  useFactory: daffSidebarViewportScrollFactory,
@@ -752,7 +758,7 @@ class DaffSidebarViewportComponent {
752
758
  daffSidebarAnimations.transformContent,
753
759
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
754
760
  }
755
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffSidebarViewportComponent, decorators: [{
761
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffSidebarViewportComponent, decorators: [{
756
762
  type: Component,
757
763
  args: [{ selector: 'daff-sidebar-viewport', changeDetection: ChangeDetectionStrategy.OnPush, animations: [
758
764
  daffSidebarAnimations.transformContent,
@@ -798,8 +804,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
798
804
  * @deprecated in favor of {@link DAFF_SIDEBAR_COMPONENTS}. Deprecated in version 0.78.0. Will be removed in version 1.0.0.
799
805
  */
800
806
  class DaffSidebarModule {
801
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffSidebarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
802
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: DaffSidebarModule, imports: [CommonModule,
807
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffSidebarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
808
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: DaffSidebarModule, imports: [CommonModule,
803
809
  A11yModule,
804
810
  DaffSidebarComponent,
805
811
  DaffSidebarViewportComponent,
@@ -810,11 +816,11 @@ class DaffSidebarModule {
810
816
  DaffSidebarHeaderComponent,
811
817
  DaffSidebarFooterComponent,
812
818
  DaffSidebarHeaderTitleDirective] }); }
813
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffSidebarModule, imports: [CommonModule,
819
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffSidebarModule, imports: [CommonModule,
814
820
  A11yModule,
815
821
  DaffSidebarHeaderComponent] }); }
816
822
  }
817
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffSidebarModule, decorators: [{
823
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffSidebarModule, decorators: [{
818
824
  type: NgModule,
819
825
  args: [{
820
826
  imports: [
@@ -846,7 +852,7 @@ class DaffSidebarService {
846
852
  return this._open.asReadonly();
847
853
  }
848
854
  constructor(defaultId = null) {
849
- this._open = signal(false, ...(ngDevMode ? [{ debugName: "_open" }] : []));
855
+ this._open = signal(false, ...(ngDevMode ? [{ debugName: "_open" }] : /* istanbul ignore next */ []));
850
856
  this._id$ = new BehaviorSubject(defaultId);
851
857
  this.id$ = this._id$.asObservable();
852
858
  }