@ng-matero/extensions 13.2.0 → 14.1.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 (250) hide show
  1. package/README.md +1 -0
  2. package/alert/alert.component.d.ts +1 -1
  3. package/alert/{mtxAlert.d.ts → index.d.ts} +0 -0
  4. package/button/button-loading.directive.d.ts +1 -1
  5. package/button/{mtxButton.d.ts → index.d.ts} +0 -0
  6. package/checkbox-group/checkbox-group.component.d.ts +1 -1
  7. package/checkbox-group/{mtxCheckboxGroup.d.ts → index.d.ts} +0 -0
  8. package/colorpicker/colorpicker-input.d.ts +1 -1
  9. package/colorpicker/colorpicker-toggle.d.ts +2 -2
  10. package/colorpicker/colorpicker.d.ts +5 -3
  11. package/colorpicker/{mtxColorpicker.d.ts → index.d.ts} +0 -0
  12. package/column-resize/column-resize-directives/column-resize-flex.d.ts +1 -1
  13. package/column-resize/column-resize-directives/column-resize.d.ts +1 -1
  14. package/column-resize/column-resize.d.ts +1 -1
  15. package/column-resize/{mtxColumnResize.d.ts → index.d.ts} +0 -0
  16. package/column-resize/overlay-handle.d.ts +1 -1
  17. package/column-resize/resizable.d.ts +1 -1
  18. package/core/{mtxCore.d.ts → index.d.ts} +0 -0
  19. package/core/pipes/to-observable.pipe.d.ts +1 -1
  20. package/core/style/_vendor-prefixes.scss +1 -1
  21. package/datetimepicker/_datetimepicker-theme.scss +3 -3
  22. package/datetimepicker/calendar-body.d.ts +1 -1
  23. package/datetimepicker/calendar.d.ts +6 -2
  24. package/datetimepicker/calendar.scss +49 -9
  25. package/datetimepicker/clock.d.ts +4 -1
  26. package/datetimepicker/datetimepicker-content.scss +1 -1
  27. package/datetimepicker/datetimepicker-input.d.ts +1 -1
  28. package/datetimepicker/datetimepicker-toggle.d.ts +2 -2
  29. package/datetimepicker/datetimepicker-types.d.ts +1 -0
  30. package/datetimepicker/datetimepicker.d.ts +10 -6
  31. package/datetimepicker/{mtxDatetimepicker.d.ts → index.d.ts} +0 -0
  32. package/datetimepicker/month-view.d.ts +1 -1
  33. package/datetimepicker/multi-year-view.d.ts +1 -1
  34. package/datetimepicker/year-view.d.ts +1 -1
  35. package/dialog/dialog.component.d.ts +1 -1
  36. package/dialog/{mtxDialog.d.ts → index.d.ts} +0 -0
  37. package/drawer/drawer-container.d.ts +1 -1
  38. package/drawer/{mtxDrawer.d.ts → index.d.ts} +0 -0
  39. package/esm2020/alert/alert.component.mjs +3 -3
  40. package/esm2020/alert/alert.module.mjs +5 -5
  41. package/esm2020/button/button-loading.directive.mjs +3 -3
  42. package/esm2020/button/button.module.mjs +5 -5
  43. package/esm2020/checkbox-group/checkbox-group.component.mjs +7 -7
  44. package/esm2020/checkbox-group/checkbox-group.module.mjs +5 -5
  45. package/esm2020/colorpicker/colorpicker-input.mjs +3 -3
  46. package/esm2020/colorpicker/colorpicker-module.mjs +10 -12
  47. package/esm2020/colorpicker/colorpicker-toggle.mjs +8 -8
  48. package/esm2020/colorpicker/colorpicker.mjs +12 -10
  49. package/esm2020/column-resize/column-resize-directives/column-resize-flex.mjs +3 -3
  50. package/esm2020/column-resize/column-resize-directives/column-resize.mjs +3 -3
  51. package/esm2020/column-resize/column-resize-module.mjs +4 -4
  52. package/esm2020/column-resize/column-resize-notifier.mjs +6 -6
  53. package/esm2020/column-resize/column-resize.mjs +3 -3
  54. package/esm2020/column-resize/column-size-store.mjs +3 -3
  55. package/esm2020/column-resize/event-dispatcher.mjs +3 -3
  56. package/esm2020/column-resize/overlay-handle.mjs +3 -3
  57. package/esm2020/column-resize/resizable.mjs +3 -3
  58. package/esm2020/column-resize/resize-strategy.mjs +9 -9
  59. package/esm2020/core/datetime/datetime.module.mjs +10 -10
  60. package/esm2020/core/datetime/native-datetime-adapter.mjs +3 -3
  61. package/esm2020/core/pipes/pipes.module.mjs +5 -5
  62. package/esm2020/core/pipes/to-observable.pipe.mjs +3 -3
  63. package/esm2020/datetimepicker/calendar-body.mjs +3 -3
  64. package/esm2020/datetimepicker/calendar.mjs +15 -12
  65. package/esm2020/datetimepicker/clock.mjs +6 -4
  66. package/esm2020/datetimepicker/datetimepicker-input.mjs +3 -3
  67. package/esm2020/datetimepicker/datetimepicker-module.mjs +5 -5
  68. package/esm2020/datetimepicker/datetimepicker-toggle.mjs +8 -8
  69. package/esm2020/datetimepicker/datetimepicker-types.mjs +1 -1
  70. package/esm2020/datetimepicker/datetimepicker.mjs +15 -12
  71. package/esm2020/datetimepicker/month-view.mjs +6 -6
  72. package/esm2020/datetimepicker/multi-year-view.mjs +4 -4
  73. package/esm2020/datetimepicker/year-view.mjs +4 -4
  74. package/esm2020/dialog/dialog.component.mjs +6 -6
  75. package/esm2020/dialog/dialog.mjs +3 -3
  76. package/esm2020/dialog/dialog.module.mjs +5 -5
  77. package/esm2020/drawer/drawer-container.mjs +4 -4
  78. package/esm2020/drawer/drawer-module.mjs +5 -5
  79. package/esm2020/drawer/drawer.mjs +3 -3
  80. package/esm2020/form-group/form-group.component.mjs +3 -3
  81. package/esm2020/form-group/form-group.module.mjs +5 -5
  82. package/esm2020/grid/cell.component.mjs +55 -37
  83. package/esm2020/grid/column-menu.component.mjs +11 -11
  84. package/esm2020/grid/column-resize/column-resize-directives/column-resize-flex.mjs +3 -3
  85. package/esm2020/grid/column-resize/column-resize-directives/column-resize.mjs +3 -3
  86. package/esm2020/grid/column-resize/column-resize-module.mjs +8 -8
  87. package/esm2020/grid/column-resize/overlay-handle.mjs +3 -3
  88. package/esm2020/grid/column-resize/resizable-directives/resizable.mjs +3 -3
  89. package/esm2020/grid/column-resize/resize-strategy.mjs +3 -3
  90. package/esm2020/grid/expansion-toggle.directive.mjs +3 -3
  91. package/esm2020/grid/grid.component.mjs +18 -18
  92. package/esm2020/grid/grid.interface.mjs +1 -1
  93. package/esm2020/grid/grid.module.mjs +22 -24
  94. package/esm2020/grid/grid.service.mjs +3 -3
  95. package/esm2020/loader/loader.component.mjs +6 -6
  96. package/esm2020/loader/loader.module.mjs +5 -5
  97. package/esm2020/popover/popover-module.mjs +5 -5
  98. package/esm2020/popover/popover-target.mjs +3 -3
  99. package/esm2020/popover/popover-trigger.mjs +3 -3
  100. package/esm2020/popover/popover.mjs +4 -4
  101. package/esm2020/progress/progress.component.mjs +3 -3
  102. package/esm2020/progress/progress.module.mjs +5 -5
  103. package/esm2020/select/option.component.mjs +3 -3
  104. package/esm2020/select/select.component.mjs +5 -5
  105. package/esm2020/select/select.module.mjs +5 -5
  106. package/esm2020/select/templates.directive.mjs +33 -33
  107. package/esm2020/slider/slider-module.mjs +5 -5
  108. package/esm2020/slider/slider.mjs +4 -4
  109. package/esm2020/split/split-pane.directive.mjs +3 -3
  110. package/esm2020/split/split.component.mjs +3 -3
  111. package/esm2020/split/split.module.mjs +5 -5
  112. package/esm2020/text3d/text3d.component.mjs +3 -3
  113. package/esm2020/text3d/text3d.module.mjs +5 -5
  114. package/esm2020/tooltip/tooltip-module.mjs +5 -5
  115. package/esm2020/tooltip/tooltip.mjs +7 -7
  116. package/fesm2015/mtxAlert.mjs +7 -7
  117. package/fesm2015/mtxAlert.mjs.map +1 -1
  118. package/fesm2015/mtxButton.mjs +7 -7
  119. package/fesm2015/mtxButton.mjs.map +1 -1
  120. package/fesm2015/mtxCheckboxGroup.mjs +11 -11
  121. package/fesm2015/mtxCheckboxGroup.mjs.map +1 -1
  122. package/fesm2015/mtxColorpicker.mjs +30 -30
  123. package/fesm2015/mtxColorpicker.mjs.map +1 -1
  124. package/fesm2015/mtxColumnResize.mjs +40 -40
  125. package/fesm2015/mtxColumnResize.mjs.map +1 -1
  126. package/fesm2015/mtxCore.mjs +19 -19
  127. package/fesm2015/mtxCore.mjs.map +1 -1
  128. package/fesm2015/mtxDatetimepicker.mjs +407 -399
  129. package/fesm2015/mtxDatetimepicker.mjs.map +1 -1
  130. package/fesm2015/mtxDialog.mjs +13 -13
  131. package/fesm2015/mtxDialog.mjs.map +1 -1
  132. package/fesm2015/mtxDrawer.mjs +10 -10
  133. package/fesm2015/mtxDrawer.mjs.map +1 -1
  134. package/fesm2015/mtxFormGroup.mjs +7 -7
  135. package/fesm2015/mtxFormGroup.mjs.map +1 -1
  136. package/fesm2015/mtxGrid.mjs +363 -346
  137. package/fesm2015/mtxGrid.mjs.map +1 -1
  138. package/fesm2015/mtxLoader.mjs +10 -10
  139. package/fesm2015/mtxLoader.mjs.map +1 -1
  140. package/fesm2015/mtxPopover.mjs +13 -13
  141. package/fesm2015/mtxPopover.mjs.map +1 -1
  142. package/fesm2015/mtxProgress.mjs +7 -7
  143. package/fesm2015/mtxProgress.mjs.map +1 -1
  144. package/fesm2015/mtxSelect.mjs +45 -45
  145. package/fesm2015/mtxSelect.mjs.map +1 -1
  146. package/fesm2015/mtxSlider.mjs +8 -8
  147. package/fesm2015/mtxSlider.mjs.map +1 -1
  148. package/fesm2015/mtxSplit.mjs +10 -10
  149. package/fesm2015/mtxSplit.mjs.map +1 -1
  150. package/fesm2015/mtxText3d.mjs +7 -7
  151. package/fesm2015/mtxText3d.mjs.map +1 -1
  152. package/fesm2015/mtxTooltip.mjs +10 -10
  153. package/fesm2015/mtxTooltip.mjs.map +1 -1
  154. package/fesm2015/ng-matero-extensions.mjs.map +1 -1
  155. package/fesm2020/mtxAlert.mjs +7 -7
  156. package/fesm2020/mtxAlert.mjs.map +1 -1
  157. package/fesm2020/mtxButton.mjs +7 -7
  158. package/fesm2020/mtxButton.mjs.map +1 -1
  159. package/fesm2020/mtxCheckboxGroup.mjs +11 -11
  160. package/fesm2020/mtxCheckboxGroup.mjs.map +1 -1
  161. package/fesm2020/mtxColorpicker.mjs +30 -30
  162. package/fesm2020/mtxColorpicker.mjs.map +1 -1
  163. package/fesm2020/mtxColumnResize.mjs +40 -40
  164. package/fesm2020/mtxColumnResize.mjs.map +1 -1
  165. package/fesm2020/mtxCore.mjs +19 -19
  166. package/fesm2020/mtxCore.mjs.map +1 -1
  167. package/fesm2020/mtxDatetimepicker.mjs +416 -408
  168. package/fesm2020/mtxDatetimepicker.mjs.map +1 -1
  169. package/fesm2020/mtxDialog.mjs +13 -13
  170. package/fesm2020/mtxDialog.mjs.map +1 -1
  171. package/fesm2020/mtxDrawer.mjs +10 -10
  172. package/fesm2020/mtxDrawer.mjs.map +1 -1
  173. package/fesm2020/mtxFormGroup.mjs +7 -7
  174. package/fesm2020/mtxFormGroup.mjs.map +1 -1
  175. package/fesm2020/mtxGrid.mjs +362 -346
  176. package/fesm2020/mtxGrid.mjs.map +1 -1
  177. package/fesm2020/mtxLoader.mjs +10 -10
  178. package/fesm2020/mtxLoader.mjs.map +1 -1
  179. package/fesm2020/mtxPopover.mjs +13 -13
  180. package/fesm2020/mtxPopover.mjs.map +1 -1
  181. package/fesm2020/mtxProgress.mjs +7 -7
  182. package/fesm2020/mtxProgress.mjs.map +1 -1
  183. package/fesm2020/mtxSelect.mjs +45 -45
  184. package/fesm2020/mtxSelect.mjs.map +1 -1
  185. package/fesm2020/mtxSlider.mjs +8 -8
  186. package/fesm2020/mtxSlider.mjs.map +1 -1
  187. package/fesm2020/mtxSplit.mjs +10 -10
  188. package/fesm2020/mtxSplit.mjs.map +1 -1
  189. package/fesm2020/mtxText3d.mjs +7 -7
  190. package/fesm2020/mtxText3d.mjs.map +1 -1
  191. package/fesm2020/mtxTooltip.mjs +10 -10
  192. package/fesm2020/mtxTooltip.mjs.map +1 -1
  193. package/fesm2020/ng-matero-extensions.mjs.map +1 -1
  194. package/form-group/form-group.component.d.ts +1 -1
  195. package/form-group/{mtxFormGroup.d.ts → index.d.ts} +0 -0
  196. package/grid/cell.component.d.ts +6 -9
  197. package/grid/column-menu.component.d.ts +1 -1
  198. package/grid/column-menu.component.scss +2 -2
  199. package/grid/column-resize/column-resize-directives/column-resize-flex.d.ts +1 -1
  200. package/grid/column-resize/column-resize-directives/column-resize.d.ts +1 -1
  201. package/grid/column-resize/overlay-handle.d.ts +1 -1
  202. package/grid/column-resize/resizable-directives/resizable.d.ts +1 -1
  203. package/grid/expansion-toggle.directive.d.ts +1 -1
  204. package/grid/grid.component.d.ts +2 -2
  205. package/grid/grid.interface.d.ts +24 -12
  206. package/grid/{mtxGrid.d.ts → index.d.ts} +0 -0
  207. package/{ng-matero-extensions.d.ts → index.d.ts} +0 -0
  208. package/loader/{mtxLoader.d.ts → index.d.ts} +0 -0
  209. package/loader/loader.component.d.ts +1 -1
  210. package/package.json +30 -30
  211. package/popover/{mtxPopover.d.ts → index.d.ts} +0 -0
  212. package/popover/popover-target.d.ts +1 -1
  213. package/popover/popover-trigger.d.ts +1 -1
  214. package/popover/popover.d.ts +1 -1
  215. package/progress/{mtxProgress.d.ts → index.d.ts} +0 -0
  216. package/progress/progress.component.d.ts +1 -1
  217. package/select/{mtxSelect.d.ts → index.d.ts} +0 -0
  218. package/select/option.component.d.ts +1 -1
  219. package/select/select.component.d.ts +1 -1
  220. package/select/templates.directive.d.ts +11 -11
  221. package/slider/_slider-theme.scss +1 -1
  222. package/slider/{mtxSlider.d.ts → index.d.ts} +0 -0
  223. package/slider/slider.d.ts +1 -1
  224. package/slider/slider.scss +1 -1
  225. package/split/{mtxSplit.d.ts → index.d.ts} +0 -0
  226. package/split/split-pane.directive.d.ts +1 -1
  227. package/split/split.component.d.ts +1 -1
  228. package/text3d/{mtxText3d.d.ts → index.d.ts} +0 -0
  229. package/text3d/text3d.component.d.ts +1 -1
  230. package/tooltip/{mtxTooltip.d.ts → index.d.ts} +0 -0
  231. package/tooltip/tooltip.d.ts +2 -2
  232. package/alert/package.json +0 -10
  233. package/button/package.json +0 -10
  234. package/checkbox-group/package.json +0 -10
  235. package/colorpicker/package.json +0 -10
  236. package/column-resize/package.json +0 -10
  237. package/core/package.json +0 -10
  238. package/datetimepicker/package.json +0 -10
  239. package/dialog/package.json +0 -10
  240. package/drawer/package.json +0 -10
  241. package/form-group/package.json +0 -10
  242. package/grid/package.json +0 -10
  243. package/loader/package.json +0 -10
  244. package/popover/package.json +0 -10
  245. package/progress/package.json +0 -10
  246. package/select/package.json +0 -10
  247. package/slider/package.json +0 -10
  248. package/split/package.json +0 -10
  249. package/text3d/package.json +0 -10
  250. package/tooltip/package.json +0 -10
@@ -1,10 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, forwardRef, Component, ViewEncapsulation, ChangeDetectionStrategy, ContentChildren, Input, Output, NgModule } from '@angular/core';
3
- import * as i3 from '@angular/common';
3
+ import * as i2 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
- import * as i4 from '@angular/forms';
5
+ import * as i3 from '@angular/forms';
6
6
  import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
7
- import * as i2 from '@angular/material/checkbox';
7
+ import * as i4 from '@angular/material/checkbox';
8
8
  import { MatCheckbox, MatCheckboxModule } from '@angular/material/checkbox';
9
9
  import * as i5 from '@ng-matero/extensions/core';
10
10
  import { MtxPipesModule } from '@ng-matero/extensions/core';
@@ -195,15 +195,15 @@ class MtxCheckboxGroupComponent {
195
195
  this._getSelectedItems(index);
196
196
  }
197
197
  }
198
- /** @nocollapse */ MtxCheckboxGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: MtxCheckboxGroupComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FocusMonitor }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
199
- /** @nocollapse */ MtxCheckboxGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.6", type: MtxCheckboxGroupComponent, selector: "mtx-checkbox-group", inputs: { items: "items", bindLabel: "bindLabel", bindValue: "bindValue", showSelectAll: "showSelectAll", selectAllLabel: "selectAllLabel", compareWith: "compareWith", disabled: "disabled" }, outputs: { change: "change" }, host: { classAttribute: "mtx-checkbox-group" }, providers: [
198
+ /** @nocollapse */ MtxCheckboxGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxCheckboxGroupComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FocusMonitor }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
199
+ /** @nocollapse */ MtxCheckboxGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MtxCheckboxGroupComponent, selector: "mtx-checkbox-group", inputs: { items: "items", bindLabel: "bindLabel", bindValue: "bindValue", showSelectAll: "showSelectAll", selectAllLabel: "selectAllLabel", compareWith: "compareWith", disabled: "disabled" }, outputs: { change: "change" }, host: { classAttribute: "mtx-checkbox-group" }, providers: [
200
200
  {
201
201
  provide: NG_VALUE_ACCESSOR,
202
202
  useExisting: forwardRef((() => MtxCheckboxGroupComponent)),
203
203
  multi: true,
204
204
  },
205
- ], queries: [{ propertyName: "_checkboxes", predicate: i0.forwardRef(function () { return MatCheckbox; }), descendants: true }], exportAs: ["mtxCheckboxGroup"], ngImport: i0, template: "<mat-checkbox class=\"mtx-checkbox-master\"\n *ngIf=\"showSelectAll\"\n [checked]=\"selectAll\"\n [(indeterminate)]=\"selectAllIndeterminate\"\n [disabled]=\"disabled\"\n (change)=\"_updateMasterCheckboxState($event, -1);\">\n {{selectAllLabel}}\n</mat-checkbox>\n\n<mat-checkbox class=\"mtx-checkbox-normal\"\n *ngFor=\"let option of items; let i = index;\"\n [(ngModel)]=\"option.checked\"\n [aria-describedby]=\"option.ariaDescribedby\"\n [aria-label]=\"option.ariaLabel\"\n [aria-labelledby]=\"option.ariaLabelledby\"\n [color]=\"option.color\"\n [disabled]=\"option.disabled || disabled\"\n [disableRipple]=\"option.disableRipple\"\n [labelPosition]=\"option.labelPosition\"\n [required]=\"option.required\"\n (change)=\"_updateNormalCheckboxState($event, i)\">\n {{option[bindLabel] | toObservable | async}}\n</mat-checkbox>\n", styles: [".mtx-checkbox-group{display:block}.mtx-checkbox-group .mat-checkbox{margin-right:16px}[dir=rtl] .mtx-checkbox-group .mat-checkbox{margin-right:auto;margin-left:16px}\n"], components: [{ type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.MatCheckboxRequiredValidator, selector: "mat-checkbox[required][formControlName], mat-checkbox[required][formControl], mat-checkbox[required][ngModel]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "async": i3.AsyncPipe, "toObservable": i5.MtxToObservablePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
206
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: MtxCheckboxGroupComponent, decorators: [{
205
+ ], queries: [{ propertyName: "_checkboxes", predicate: i0.forwardRef(function () { return MatCheckbox; }), descendants: true }], exportAs: ["mtxCheckboxGroup"], ngImport: i0, template: "<mat-checkbox class=\"mtx-checkbox-master\"\n *ngIf=\"showSelectAll\"\n [checked]=\"selectAll\"\n [(indeterminate)]=\"selectAllIndeterminate\"\n [disabled]=\"disabled\"\n (change)=\"_updateMasterCheckboxState($event, -1);\">\n {{selectAllLabel}}\n</mat-checkbox>\n\n<mat-checkbox class=\"mtx-checkbox-normal\"\n *ngFor=\"let option of items; let i = index;\"\n [(ngModel)]=\"option.checked\"\n [aria-describedby]=\"option.ariaDescribedby\"\n [aria-label]=\"option.ariaLabel\"\n [aria-labelledby]=\"option.ariaLabelledby\"\n [color]=\"option.color\"\n [disabled]=\"option.disabled || disabled\"\n [disableRipple]=\"option.disableRipple\"\n [labelPosition]=\"option.labelPosition\"\n [required]=\"option.required\"\n (change)=\"_updateNormalCheckboxState($event, i)\">\n {{option[bindLabel] | toObservable | async}}\n</mat-checkbox>\n", styles: [".mtx-checkbox-group{display:block}.mtx-checkbox-group .mat-checkbox{margin-right:16px}[dir=rtl] .mtx-checkbox-group .mat-checkbox{margin-right:auto;margin-left:16px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i4.MatCheckboxRequiredValidator, selector: "mat-checkbox[required][formControlName], mat-checkbox[required][formControl], mat-checkbox[required][ngModel]" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.MtxToObservablePipe, name: "toObservable" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
206
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxCheckboxGroupComponent, decorators: [{
207
207
  type: Component,
208
208
  args: [{ selector: 'mtx-checkbox-group', exportAs: 'mtxCheckboxGroup', host: {
209
209
  class: 'mtx-checkbox-group',
@@ -237,10 +237,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImpor
237
237
 
238
238
  class MtxCheckboxGroupModule {
239
239
  }
240
- /** @nocollapse */ MtxCheckboxGroupModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: MtxCheckboxGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
241
- /** @nocollapse */ MtxCheckboxGroupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: MtxCheckboxGroupModule, declarations: [MtxCheckboxGroupComponent], imports: [CommonModule, FormsModule, MatCheckboxModule, MtxPipesModule], exports: [MtxCheckboxGroupComponent, MtxPipesModule] });
242
- /** @nocollapse */ MtxCheckboxGroupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: MtxCheckboxGroupModule, imports: [[CommonModule, FormsModule, MatCheckboxModule, MtxPipesModule], MtxPipesModule] });
243
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: MtxCheckboxGroupModule, decorators: [{
240
+ /** @nocollapse */ MtxCheckboxGroupModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxCheckboxGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
241
+ /** @nocollapse */ MtxCheckboxGroupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.2", ngImport: i0, type: MtxCheckboxGroupModule, declarations: [MtxCheckboxGroupComponent], imports: [CommonModule, FormsModule, MatCheckboxModule, MtxPipesModule], exports: [MtxCheckboxGroupComponent, MtxPipesModule] });
242
+ /** @nocollapse */ MtxCheckboxGroupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxCheckboxGroupModule, imports: [CommonModule, FormsModule, MatCheckboxModule, MtxPipesModule, MtxPipesModule] });
243
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxCheckboxGroupModule, decorators: [{
244
244
  type: NgModule,
245
245
  args: [{
246
246
  imports: [CommonModule, FormsModule, MatCheckboxModule, MtxPipesModule],
@@ -1 +1 @@
1
- {"version":3,"file":"mtxCheckboxGroup.mjs","sources":["../../../projects/extensions/checkbox-group/checkbox-group.component.ts","../../../projects/extensions/checkbox-group/checkbox-group.component.html","../../../projects/extensions/checkbox-group/checkbox-group.module.ts","../../../projects/extensions/checkbox-group/mtxCheckboxGroup.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n forwardRef,\n AfterViewInit,\n ContentChildren,\n QueryList,\n ElementRef,\n OnDestroy,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { MatCheckbox, MatCheckboxChange } from '@angular/material/checkbox';\nimport { MtxCheckboxGroupOption } from './checkbox-group.interface';\nimport { FocusMonitor } from '@angular/cdk/a11y';\n\nexport class MtxCheckboxBase {\n constructor(public label?: any, public value?: any) {}\n}\n\n@Component({\n selector: 'mtx-checkbox-group',\n exportAs: 'mtxCheckboxGroup',\n host: {\n class: 'mtx-checkbox-group',\n },\n templateUrl: './checkbox-group.component.html',\n styleUrls: ['./checkbox-group.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MtxCheckboxGroupComponent),\n multi: true,\n },\n ],\n})\nexport class MtxCheckboxGroupComponent implements AfterViewInit, OnDestroy, ControlValueAccessor {\n @ContentChildren(forwardRef(() => MatCheckbox), { descendants: true })\n _checkboxes!: QueryList<MatCheckbox>;\n\n @Input()\n get items() {\n return this._items;\n }\n set items(value: any[]) {\n // TODO: Deep clone\n this._originalItems = JSON.parse(JSON.stringify(value));\n this._items = value.map(option => {\n return option instanceof Object ? option : new MtxCheckboxBase(option, option);\n });\n }\n private _items: any[] = [];\n private _originalItems: any[] = [];\n\n @Input() bindLabel = 'label';\n\n @Input() bindValue = 'value';\n\n @Input()\n get showSelectAll(): boolean {\n return this._showSelectAll;\n }\n set showSelectAll(value: boolean) {\n this._showSelectAll = coerceBooleanProperty(value);\n }\n private _showSelectAll = false;\n\n @Input() selectAllLabel = 'Select All';\n\n @Input()\n get compareWith() {\n return this._compareWith;\n }\n set compareWith(fn: (o1: any, o2: any) => boolean) {\n if (typeof fn !== 'function') {\n throw Error('`compareWith` must be a function.');\n }\n\n if (fn) {\n this._compareWith = fn;\n }\n }\n private _compareWith!: (o1: any, o2: any) => boolean;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled = false;\n\n @Output() change = new EventEmitter<{ model: MtxCheckboxGroupOption[]; index: number }>();\n\n selectAll = false;\n selectAllIndeterminate = false;\n\n selectedItems: MtxCheckboxGroupOption[] = [];\n\n _onChange: (value: MtxCheckboxGroupOption[]) => void = () => null;\n _onTouched: () => void = () => null;\n\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _focusMonitor: FocusMonitor,\n private _elementRef: ElementRef<HTMLElement>\n ) {}\n\n ngAfterViewInit() {\n this._focusMonitor.monitor(this._elementRef, true).subscribe(focusOrigin => {\n if (!focusOrigin) {\n // When a focused element becomes disabled, the browser *immediately* fires a blur event.\n // Angular does not expect events to be raised during change detection, so any state change\n // (such as a form control's 'ng-touched') will cause a changed-after-checked error.\n // See https://github.com/angular/angular/issues/17793. To work around this, we defer\n // telling the form control it has been touched until the next tick.\n Promise.resolve().then(() => {\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n });\n }\n });\n }\n\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n\n /**\n * Finds and selects and option based on its value.\n * @returns Option that has the corresponding value.\n */\n private _selectValue(value: MtxCheckboxGroupOption) {\n const correspondingOption = (this.items as MtxCheckboxGroupOption[]).find(option => {\n try {\n const compareValue = option[this.bindValue] === value;\n return this._compareWith ? this._compareWith(option, value) : compareValue;\n } catch (error) {\n console.warn(error);\n return false;\n }\n });\n\n if (correspondingOption) {\n correspondingOption.checked = true;\n }\n\n return correspondingOption;\n }\n\n /**\n * Sets the model value. Implemented as part of ControlValueAccessor.\n * @param value New value to be written to the model.\n */\n writeValue(value: any[]): void {\n if (value) {\n if (!Array.isArray(value)) {\n throw Error('Value must be an array.');\n }\n\n value.forEach((currentValue: any) => this._selectValue(currentValue));\n this.selectedItems = value;\n }\n\n this._checkMasterCheckboxState();\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Registers a callback to be triggered when the model value changes.\n * Implemented as part of ControlValueAccessor.\n * @param fn Callback to be registered.\n */\n registerOnChange(fn: (value: MtxCheckboxGroupOption[]) => Record<string, unknown>): void {\n this._onChange = fn;\n }\n\n /**\n * Registers a callback to be triggered when the control is touched.\n * Implemented as part of ControlValueAccessor.\n * @param fn Callback to be registered.\n */\n registerOnTouched(fn: () => Record<string, unknown>): void {\n this._onTouched = fn;\n }\n\n /**\n * Sets the disabled state of the control. Implemented as a part of ControlValueAccessor.\n * @param isDisabled Whether the control should be disabled.\n */\n setDisabledState(isDisabled: boolean) {\n this._disabled = isDisabled;\n }\n\n private _checkMasterCheckboxState() {\n if (\n (this.items as MtxCheckboxGroupOption[])\n .filter(option => option.checked || !option.disabled)\n .every(option => !option.checked)\n ) {\n this.selectAll = false;\n this.selectAllIndeterminate = false;\n } else if (\n (this.items as MtxCheckboxGroupOption[])\n .filter(option => option.checked || !option.disabled)\n .every(option => option.checked)\n ) {\n this.selectAll = true;\n this.selectAllIndeterminate = false;\n } else {\n this.selectAllIndeterminate = true;\n }\n }\n\n private _getSelectedItems(index: number) {\n this.selectedItems = (this.items as MtxCheckboxGroupOption[]).filter(option => option.checked);\n\n if (this._compareWith) {\n this.selectedItems = (this._originalItems as MtxCheckboxGroupOption[]).filter(option =>\n this.selectedItems.find(selectedOption => this._compareWith(option, selectedOption))\n );\n } else {\n this.selectedItems = this.selectedItems.map(option => option[this.bindValue]);\n }\n\n this._onChange(this.selectedItems);\n\n this.change.emit({ model: this.selectedItems, index });\n }\n\n /** Handle normal checkbox toggle */\n _updateNormalCheckboxState(e: MatCheckboxChange, index: number): void {\n this._checkMasterCheckboxState();\n this._getSelectedItems(index);\n }\n\n /** Handle master checkbox toggle */\n _updateMasterCheckboxState(e: MatCheckboxChange, index: number): void {\n this.selectAll = !this.selectAll;\n this.selectAllIndeterminate = false;\n\n if (this.selectAll) {\n (this.items as MtxCheckboxGroupOption[])\n .filter(option => option.checked || !option.disabled)\n .forEach(option => (option.checked = true));\n } else {\n (this.items as MtxCheckboxGroupOption[])\n .filter(option => option.checked || !option.disabled)\n .forEach(option => (option.checked = !!option.disabled));\n }\n\n this._getSelectedItems(index);\n }\n\n static ngAcceptInputType_showSelectAll: BooleanInput;\n static ngAcceptInputType_disabled: BooleanInput;\n}\n","<mat-checkbox class=\"mtx-checkbox-master\"\n *ngIf=\"showSelectAll\"\n [checked]=\"selectAll\"\n [(indeterminate)]=\"selectAllIndeterminate\"\n [disabled]=\"disabled\"\n (change)=\"_updateMasterCheckboxState($event, -1);\">\n {{selectAllLabel}}\n</mat-checkbox>\n\n<mat-checkbox class=\"mtx-checkbox-normal\"\n *ngFor=\"let option of items; let i = index;\"\n [(ngModel)]=\"option.checked\"\n [aria-describedby]=\"option.ariaDescribedby\"\n [aria-label]=\"option.ariaLabel\"\n [aria-labelledby]=\"option.ariaLabelledby\"\n [color]=\"option.color\"\n [disabled]=\"option.disabled || disabled\"\n [disableRipple]=\"option.disableRipple\"\n [labelPosition]=\"option.labelPosition\"\n [required]=\"option.required\"\n (change)=\"_updateNormalCheckboxState($event, i)\">\n {{option[bindLabel] | toObservable | async}}\n</mat-checkbox>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n\nimport { MtxPipesModule } from '@ng-matero/extensions/core';\nimport { MtxCheckboxGroupComponent } from './checkbox-group.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, MatCheckboxModule, MtxPipesModule],\n exports: [MtxCheckboxGroupComponent, MtxPipesModule],\n declarations: [MtxCheckboxGroupComponent],\n})\nexport class MtxCheckboxGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mtxCheckboxGroup.mjs","sources":["../../../projects/extensions/checkbox-group/checkbox-group.component.ts","../../../projects/extensions/checkbox-group/checkbox-group.component.html","../../../projects/extensions/checkbox-group/checkbox-group.module.ts","../../../projects/extensions/checkbox-group/mtxCheckboxGroup.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n forwardRef,\n AfterViewInit,\n ContentChildren,\n QueryList,\n ElementRef,\n OnDestroy,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { MatCheckbox, MatCheckboxChange } from '@angular/material/checkbox';\nimport { MtxCheckboxGroupOption } from './checkbox-group.interface';\nimport { FocusMonitor } from '@angular/cdk/a11y';\n\nexport class MtxCheckboxBase {\n constructor(public label?: any, public value?: any) {}\n}\n\n@Component({\n selector: 'mtx-checkbox-group',\n exportAs: 'mtxCheckboxGroup',\n host: {\n class: 'mtx-checkbox-group',\n },\n templateUrl: './checkbox-group.component.html',\n styleUrls: ['./checkbox-group.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MtxCheckboxGroupComponent),\n multi: true,\n },\n ],\n})\nexport class MtxCheckboxGroupComponent implements AfterViewInit, OnDestroy, ControlValueAccessor {\n @ContentChildren(forwardRef(() => MatCheckbox), { descendants: true })\n _checkboxes!: QueryList<MatCheckbox>;\n\n @Input()\n get items() {\n return this._items;\n }\n set items(value: any[]) {\n // TODO: Deep clone\n this._originalItems = JSON.parse(JSON.stringify(value));\n this._items = value.map(option => {\n return option instanceof Object ? option : new MtxCheckboxBase(option, option);\n });\n }\n private _items: any[] = [];\n private _originalItems: any[] = [];\n\n @Input() bindLabel = 'label';\n\n @Input() bindValue = 'value';\n\n @Input()\n get showSelectAll(): boolean {\n return this._showSelectAll;\n }\n set showSelectAll(value: boolean) {\n this._showSelectAll = coerceBooleanProperty(value);\n }\n private _showSelectAll = false;\n\n @Input() selectAllLabel = 'Select All';\n\n @Input()\n get compareWith() {\n return this._compareWith;\n }\n set compareWith(fn: (o1: any, o2: any) => boolean) {\n if (typeof fn !== 'function') {\n throw Error('`compareWith` must be a function.');\n }\n\n if (fn) {\n this._compareWith = fn;\n }\n }\n private _compareWith!: (o1: any, o2: any) => boolean;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled = false;\n\n @Output() change = new EventEmitter<{ model: MtxCheckboxGroupOption[]; index: number }>();\n\n selectAll = false;\n selectAllIndeterminate = false;\n\n selectedItems: MtxCheckboxGroupOption[] = [];\n\n _onChange: (value: MtxCheckboxGroupOption[]) => void = () => null;\n _onTouched: () => void = () => null;\n\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _focusMonitor: FocusMonitor,\n private _elementRef: ElementRef<HTMLElement>\n ) {}\n\n ngAfterViewInit() {\n this._focusMonitor.monitor(this._elementRef, true).subscribe(focusOrigin => {\n if (!focusOrigin) {\n // When a focused element becomes disabled, the browser *immediately* fires a blur event.\n // Angular does not expect events to be raised during change detection, so any state change\n // (such as a form control's 'ng-touched') will cause a changed-after-checked error.\n // See https://github.com/angular/angular/issues/17793. To work around this, we defer\n // telling the form control it has been touched until the next tick.\n Promise.resolve().then(() => {\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n });\n }\n });\n }\n\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n\n /**\n * Finds and selects and option based on its value.\n * @returns Option that has the corresponding value.\n */\n private _selectValue(value: MtxCheckboxGroupOption) {\n const correspondingOption = (this.items as MtxCheckboxGroupOption[]).find(option => {\n try {\n const compareValue = option[this.bindValue] === value;\n return this._compareWith ? this._compareWith(option, value) : compareValue;\n } catch (error) {\n console.warn(error);\n return false;\n }\n });\n\n if (correspondingOption) {\n correspondingOption.checked = true;\n }\n\n return correspondingOption;\n }\n\n /**\n * Sets the model value. Implemented as part of ControlValueAccessor.\n * @param value New value to be written to the model.\n */\n writeValue(value: any[]): void {\n if (value) {\n if (!Array.isArray(value)) {\n throw Error('Value must be an array.');\n }\n\n value.forEach((currentValue: any) => this._selectValue(currentValue));\n this.selectedItems = value;\n }\n\n this._checkMasterCheckboxState();\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Registers a callback to be triggered when the model value changes.\n * Implemented as part of ControlValueAccessor.\n * @param fn Callback to be registered.\n */\n registerOnChange(fn: (value: MtxCheckboxGroupOption[]) => Record<string, unknown>): void {\n this._onChange = fn;\n }\n\n /**\n * Registers a callback to be triggered when the control is touched.\n * Implemented as part of ControlValueAccessor.\n * @param fn Callback to be registered.\n */\n registerOnTouched(fn: () => Record<string, unknown>): void {\n this._onTouched = fn;\n }\n\n /**\n * Sets the disabled state of the control. Implemented as a part of ControlValueAccessor.\n * @param isDisabled Whether the control should be disabled.\n */\n setDisabledState(isDisabled: boolean) {\n this._disabled = isDisabled;\n }\n\n private _checkMasterCheckboxState() {\n if (\n (this.items as MtxCheckboxGroupOption[])\n .filter(option => option.checked || !option.disabled)\n .every(option => !option.checked)\n ) {\n this.selectAll = false;\n this.selectAllIndeterminate = false;\n } else if (\n (this.items as MtxCheckboxGroupOption[])\n .filter(option => option.checked || !option.disabled)\n .every(option => option.checked)\n ) {\n this.selectAll = true;\n this.selectAllIndeterminate = false;\n } else {\n this.selectAllIndeterminate = true;\n }\n }\n\n private _getSelectedItems(index: number) {\n this.selectedItems = (this.items as MtxCheckboxGroupOption[]).filter(option => option.checked);\n\n if (this._compareWith) {\n this.selectedItems = (this._originalItems as MtxCheckboxGroupOption[]).filter(option =>\n this.selectedItems.find(selectedOption => this._compareWith(option, selectedOption))\n );\n } else {\n this.selectedItems = this.selectedItems.map(option => option[this.bindValue]);\n }\n\n this._onChange(this.selectedItems);\n\n this.change.emit({ model: this.selectedItems, index });\n }\n\n /** Handle normal checkbox toggle */\n _updateNormalCheckboxState(e: MatCheckboxChange, index: number): void {\n this._checkMasterCheckboxState();\n this._getSelectedItems(index);\n }\n\n /** Handle master checkbox toggle */\n _updateMasterCheckboxState(e: MatCheckboxChange, index: number): void {\n this.selectAll = !this.selectAll;\n this.selectAllIndeterminate = false;\n\n if (this.selectAll) {\n (this.items as MtxCheckboxGroupOption[])\n .filter(option => option.checked || !option.disabled)\n .forEach(option => (option.checked = true));\n } else {\n (this.items as MtxCheckboxGroupOption[])\n .filter(option => option.checked || !option.disabled)\n .forEach(option => (option.checked = !!option.disabled));\n }\n\n this._getSelectedItems(index);\n }\n\n static ngAcceptInputType_showSelectAll: BooleanInput;\n static ngAcceptInputType_disabled: BooleanInput;\n}\n","<mat-checkbox class=\"mtx-checkbox-master\"\n *ngIf=\"showSelectAll\"\n [checked]=\"selectAll\"\n [(indeterminate)]=\"selectAllIndeterminate\"\n [disabled]=\"disabled\"\n (change)=\"_updateMasterCheckboxState($event, -1);\">\n {{selectAllLabel}}\n</mat-checkbox>\n\n<mat-checkbox class=\"mtx-checkbox-normal\"\n *ngFor=\"let option of items; let i = index;\"\n [(ngModel)]=\"option.checked\"\n [aria-describedby]=\"option.ariaDescribedby\"\n [aria-label]=\"option.ariaLabel\"\n [aria-labelledby]=\"option.ariaLabelledby\"\n [color]=\"option.color\"\n [disabled]=\"option.disabled || disabled\"\n [disableRipple]=\"option.disableRipple\"\n [labelPosition]=\"option.labelPosition\"\n [required]=\"option.required\"\n (change)=\"_updateNormalCheckboxState($event, i)\">\n {{option[bindLabel] | toObservable | async}}\n</mat-checkbox>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n\nimport { MtxPipesModule } from '@ng-matero/extensions/core';\nimport { MtxCheckboxGroupComponent } from './checkbox-group.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, MatCheckboxModule, MtxPipesModule],\n exports: [MtxCheckboxGroupComponent, MtxPipesModule],\n declarations: [MtxCheckboxGroupComponent],\n})\nexport class MtxCheckboxGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import * as i2 from '@angular/common';
1
+ import * as i1$1 from '@angular/common';
2
2
  import { DOCUMENT, CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
4
  import { forwardRef, EventEmitter, Directive, Optional, Input, Output, Component, ViewEncapsulation, ChangeDetectionStrategy, ContentChild, ViewChild, InjectionToken, Inject, NgModule } from '@angular/core';
@@ -6,7 +6,7 @@ import * as i3 from '@angular/cdk/overlay';
6
6
  import { Overlay, OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
7
7
  import { A11yModule } from '@angular/cdk/a11y';
8
8
  import { ComponentPortal, PortalModule } from '@angular/cdk/portal';
9
- import * as i1$1 from '@angular/material/button';
9
+ import * as i2 from '@angular/material/button';
10
10
  import { MatButtonModule } from '@angular/material/button';
11
11
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
12
12
  import { DOWN_ARROW, ESCAPE, hasModifierKey, UP_ARROW } from '@angular/cdk/keycodes';
@@ -18,7 +18,7 @@ import { mixinColor } from '@angular/material/core';
18
18
  import { take, filter } from 'rxjs/operators';
19
19
  import { trigger, transition, animate, keyframes, style } from '@angular/animations';
20
20
  import { TinyColor } from '@ctrl/tinycolor';
21
- import * as i1$2 from 'ngx-color/chrome';
21
+ import * as i2$1 from 'ngx-color/chrome';
22
22
  import { ColorChromeModule } from 'ngx-color/chrome';
23
23
  import * as i4 from '@angular/cdk/bidi';
24
24
 
@@ -199,13 +199,13 @@ class MtxColorpickerInput {
199
199
  this._elementRef.nativeElement.value = value ? value : '';
200
200
  }
201
201
  }
202
- /** @nocollapse */ MtxColorpickerInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: MtxColorpickerInput, deps: [{ token: i0.ElementRef }, { token: i1.MatFormField, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
203
- /** @nocollapse */ MtxColorpickerInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.6", type: MtxColorpickerInput, selector: "input[mtxColorpicker]", inputs: { mtxColorpicker: "mtxColorpicker", disabled: "disabled", value: "value", format: "format" }, outputs: { colorChange: "colorChange", colorInput: "colorInput" }, host: { listeners: { "input": "_onInput($event.target.value)", "change": "_onChange()", "blur": "_onBlur()", "keydown": "_onKeydown($event)" }, properties: { "attr.aria-haspopup": "_picker ? \"dialog\" : null", "attr.aria-owns": "(_picker?.opened && _picker.id) || null", "disabled": "disabled" }, classAttribute: "mtx-colorpicker-input" }, providers: [
202
+ /** @nocollapse */ MtxColorpickerInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxColorpickerInput, deps: [{ token: i0.ElementRef }, { token: i1.MatFormField, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
203
+ /** @nocollapse */ MtxColorpickerInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.2", type: MtxColorpickerInput, selector: "input[mtxColorpicker]", inputs: { mtxColorpicker: "mtxColorpicker", disabled: "disabled", value: "value", format: "format" }, outputs: { colorChange: "colorChange", colorInput: "colorInput" }, host: { listeners: { "input": "_onInput($event.target.value)", "change": "_onChange()", "blur": "_onBlur()", "keydown": "_onKeydown($event)" }, properties: { "attr.aria-haspopup": "_picker ? \"dialog\" : null", "attr.aria-owns": "(_picker?.opened && _picker.id) || null", "disabled": "disabled" }, classAttribute: "mtx-colorpicker-input" }, providers: [
204
204
  MTX_COLORPICKER_VALUE_ACCESSOR,
205
205
  MTX_COLORPICKER_VALIDATORS,
206
206
  { provide: MAT_INPUT_VALUE_ACCESSOR, useExisting: MtxColorpickerInput },
207
207
  ], exportAs: ["mtxColorpickerInput"], ngImport: i0 });
208
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: MtxColorpickerInput, decorators: [{
208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxColorpickerInput, decorators: [{
209
209
  type: Directive,
210
210
  args: [{
211
211
  selector: 'input[mtxColorpicker]',
@@ -247,9 +247,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImpor
247
247
  /** Can be used to override the icon of a `mtxColorpickerToggle`. */
248
248
  class MtxColorpickerToggleIcon {
249
249
  }
250
- /** @nocollapse */ MtxColorpickerToggleIcon.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: MtxColorpickerToggleIcon, deps: [], target: i0.ɵɵFactoryTarget.Directive });
251
- /** @nocollapse */ MtxColorpickerToggleIcon.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.6", type: MtxColorpickerToggleIcon, selector: "[mtxColorpickerToggleIcon]", ngImport: i0 });
252
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: MtxColorpickerToggleIcon, decorators: [{
250
+ /** @nocollapse */ MtxColorpickerToggleIcon.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxColorpickerToggleIcon, deps: [], target: i0.ɵɵFactoryTarget.Directive });
251
+ /** @nocollapse */ MtxColorpickerToggleIcon.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.2", type: MtxColorpickerToggleIcon, selector: "[mtxColorpickerToggleIcon]", ngImport: i0 });
252
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxColorpickerToggleIcon, decorators: [{
253
253
  type: Directive,
254
254
  args: [{
255
255
  selector: '[mtxColorpickerToggleIcon]',
@@ -297,9 +297,9 @@ class MtxColorpickerToggle {
297
297
  this._stateChanges = merge([pickerDisabled, inputDisabled, datepickerToggled]).subscribe(() => this._changeDetectorRef.markForCheck());
298
298
  }
299
299
  }
300
- /** @nocollapse */ MtxColorpickerToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: MtxColorpickerToggle, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
301
- /** @nocollapse */ MtxColorpickerToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.6", type: MtxColorpickerToggle, selector: "mtx-colorpicker-toggle", inputs: { picker: ["for", "picker"], tabIndex: "tabIndex", disabled: "disabled", disableRipple: "disableRipple" }, host: { listeners: { "focus": "_button.focus()" }, properties: { "attr.tabindex": "disabled ? null : -1", "class.mtx-colorpicker-toggle-active": "picker && picker.opened", "class.mat-accent": "picker && picker.color === \"accent\"", "class.mat-warn": "picker && picker.color === \"warn\"" }, classAttribute: "mtx-colorpicker-toggle" }, queries: [{ propertyName: "_customIcon", first: true, predicate: MtxColorpickerToggleIcon, descendants: true }], viewQueries: [{ propertyName: "_button", first: true, predicate: ["button"], descendants: true }], exportAs: ["mtxColorpickerToggle"], usesOnChanges: true, ngImport: i0, template: "<button #button\n mat-icon-button\n type=\"button\"\n [attr.aria-haspopup]=\"picker ? 'dialog' : null\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n [disableRipple]=\"disableRipple\"\n (click)=\"open($event)\">\n\n <svg *ngIf=\"!_customIcon\"\n class=\"mtx-colorpicker-toggle-default-icon\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n height=\"24px\"\n fill=\"currentColor\"\n focusable=\"false\">\n <path\n d=\"M17.5,12A1.5,1.5 0 0,1 16,10.5A1.5,1.5 0 0,1 17.5,9A1.5,1.5 0 0,1 19,10.5A1.5,1.5 0 0,1 17.5,12M14.5,8A1.5,1.5 0 0,1 13,6.5A1.5,1.5 0 0,1 14.5,5A1.5,1.5 0 0,1 16,6.5A1.5,1.5 0 0,1 14.5,8M9.5,8A1.5,1.5 0 0,1 8,6.5A1.5,1.5 0 0,1 9.5,5A1.5,1.5 0 0,1 11,6.5A1.5,1.5 0 0,1 9.5,8M6.5,12A1.5,1.5 0 0,1 5,10.5A1.5,1.5 0 0,1 6.5,9A1.5,1.5 0 0,1 8,10.5A1.5,1.5 0 0,1 6.5,12M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A1.5,1.5 0 0,0 13.5,19.5C13.5,19.11 13.35,18.76 13.11,18.5C12.88,18.23 12.73,17.88 12.73,17.5A1.5,1.5 0 0,1 14.23,16H16A5,5 0 0,0 21,11C21,6.58 16.97,3 12,3Z\" />\n </svg>\n\n <ng-content select=\"[mtxColorpickerToggleIcon]\"></ng-content>\n</button>\n", styles: [".mat-form-field-appearance-legacy .mat-form-field-prefix .mtx-colorpicker-toggle-default-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mtx-colorpicker-toggle-default-icon{width:1em}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mtx-colorpicker-toggle-default-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mtx-colorpicker-toggle-default-icon{display:block;width:1.5em;height:1.5em}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mtx-colorpicker-toggle-default-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mtx-colorpicker-toggle-default-icon{margin:auto}\n"], components: [{ type: i1$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
302
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: MtxColorpickerToggle, decorators: [{
300
+ /** @nocollapse */ MtxColorpickerToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxColorpickerToggle, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
301
+ /** @nocollapse */ MtxColorpickerToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MtxColorpickerToggle, selector: "mtx-colorpicker-toggle", inputs: { picker: ["for", "picker"], tabIndex: "tabIndex", disabled: "disabled", disableRipple: "disableRipple" }, host: { listeners: { "focus": "_button.focus()" }, properties: { "attr.tabindex": "disabled ? null : -1", "class.mtx-colorpicker-toggle-active": "picker && picker.opened", "class.mat-accent": "picker && picker.color === \"accent\"", "class.mat-warn": "picker && picker.color === \"warn\"" }, classAttribute: "mtx-colorpicker-toggle" }, queries: [{ propertyName: "_customIcon", first: true, predicate: MtxColorpickerToggleIcon, descendants: true }], viewQueries: [{ propertyName: "_button", first: true, predicate: ["button"], descendants: true }], exportAs: ["mtxColorpickerToggle"], usesOnChanges: true, ngImport: i0, template: "<button #button\n mat-icon-button\n type=\"button\"\n [attr.aria-haspopup]=\"picker ? 'dialog' : null\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n [disableRipple]=\"disableRipple\"\n (click)=\"open($event)\">\n\n <svg *ngIf=\"!_customIcon\"\n class=\"mtx-colorpicker-toggle-default-icon\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n height=\"24px\"\n fill=\"currentColor\"\n focusable=\"false\">\n <path\n d=\"M17.5,12A1.5,1.5 0 0,1 16,10.5A1.5,1.5 0 0,1 17.5,9A1.5,1.5 0 0,1 19,10.5A1.5,1.5 0 0,1 17.5,12M14.5,8A1.5,1.5 0 0,1 13,6.5A1.5,1.5 0 0,1 14.5,5A1.5,1.5 0 0,1 16,6.5A1.5,1.5 0 0,1 14.5,8M9.5,8A1.5,1.5 0 0,1 8,6.5A1.5,1.5 0 0,1 9.5,5A1.5,1.5 0 0,1 11,6.5A1.5,1.5 0 0,1 9.5,8M6.5,12A1.5,1.5 0 0,1 5,10.5A1.5,1.5 0 0,1 6.5,9A1.5,1.5 0 0,1 8,10.5A1.5,1.5 0 0,1 6.5,12M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A1.5,1.5 0 0,0 13.5,19.5C13.5,19.11 13.35,18.76 13.11,18.5C12.88,18.23 12.73,17.88 12.73,17.5A1.5,1.5 0 0,1 14.23,16H16A5,5 0 0,0 21,11C21,6.58 16.97,3 12,3Z\" />\n </svg>\n\n <ng-content select=\"[mtxColorpickerToggleIcon]\"></ng-content>\n</button>\n", styles: [".mat-form-field-appearance-legacy .mat-form-field-prefix .mtx-colorpicker-toggle-default-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mtx-colorpicker-toggle-default-icon{width:1em}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mtx-colorpicker-toggle-default-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mtx-colorpicker-toggle-default-icon{display:block;width:1.5em;height:1.5em}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mtx-colorpicker-toggle-default-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mtx-colorpicker-toggle-default-icon{margin:auto}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
302
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxColorpickerToggle, decorators: [{
303
303
  type: Component,
304
304
  args: [{ selector: 'mtx-colorpicker-toggle', host: {
305
305
  'class': 'mtx-colorpicker-toggle',
@@ -387,9 +387,9 @@ class MtxColorpickerContent extends _MtxColorpickerContentBase {
387
387
  }[this.picker.format];
388
388
  }
389
389
  }
390
- /** @nocollapse */ MtxColorpickerContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: MtxColorpickerContent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
391
- /** @nocollapse */ MtxColorpickerContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.6", type: MtxColorpickerContent, selector: "mtx-colorpicker-content", inputs: { color: "color" }, host: { listeners: { "@transformPanel.done": "_animationDone.next()" }, properties: { "@transformPanel": "_animationState" }, classAttribute: "mtx-colorpicker-content" }, exportAs: ["mtxColorpickerContent"], usesInheritance: true, ngImport: i0, template: "<ng-template [ngIf]=\"picker.content\" [ngIfElse]=\"default\"\n [ngTemplateOutlet]=\"picker.content\">\n</ng-template>\n<ng-template #default>\n <color-chrome [color]=\"picker.selected\"\n (onChangeComplete)=\"picker.select(getColorString($event))\">\n </color-chrome>\n</ng-template>\n", styles: [".mtx-colorpicker-content{display:block;border-radius:4px}\n"], components: [{ type: i1$2.ChromeComponent, selector: "color-chrome", inputs: ["disableAlpha"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [mtxColorpickerAnimations.transformPanel], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
392
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: MtxColorpickerContent, decorators: [{
390
+ /** @nocollapse */ MtxColorpickerContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxColorpickerContent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
391
+ /** @nocollapse */ MtxColorpickerContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MtxColorpickerContent, selector: "mtx-colorpicker-content", inputs: { color: "color" }, host: { listeners: { "@transformPanel.done": "_animationDone.next()" }, properties: { "@transformPanel": "_animationState" }, classAttribute: "mtx-colorpicker-content" }, exportAs: ["mtxColorpickerContent"], usesInheritance: true, ngImport: i0, template: "<ng-template [ngIf]=\"picker.content\" [ngIfElse]=\"default\"\n [ngTemplateOutlet]=\"picker.content\">\n</ng-template>\n<ng-template #default>\n <color-chrome [color]=\"picker.selected\"\n (onChangeComplete)=\"picker.select(getColorString($event))\">\n </color-chrome>\n</ng-template>\n", styles: [".mtx-colorpicker-content{display:block;border-radius:4px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2$1.ChromeComponent, selector: "color-chrome", inputs: ["disableAlpha"] }], animations: [mtxColorpickerAnimations.transformPanel], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
392
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxColorpickerContent, decorators: [{
393
393
  type: Component,
394
394
  args: [{ selector: 'mtx-colorpicker-content', host: {
395
395
  'class': 'mtx-colorpicker-content',
@@ -486,7 +486,7 @@ class MtxColorpicker {
486
486
  this._inputStateChanges.unsubscribe();
487
487
  this._disabledChange.complete();
488
488
  }
489
- /** Selects the given color */
489
+ /** Selects the given color. */
490
490
  select(nextVal) {
491
491
  const oldValue = this.selected;
492
492
  this.selected = nextVal;
@@ -504,6 +504,7 @@ class MtxColorpicker {
504
504
  this.pickerInput = input;
505
505
  this._inputStateChanges = input._valueChange.subscribe((value) => (this.selected = value));
506
506
  }
507
+ /** Open the panel. */
507
508
  open() {
508
509
  if (this._opened || this.disabled) {
509
510
  return;
@@ -586,6 +587,7 @@ class MtxColorpicker {
586
587
  // Update the position once the panel has rendered. Only relevant in dropdown mode.
587
588
  this._ngZone.onStable.pipe(take(1)).subscribe(() => overlayRef.updatePosition());
588
589
  }
590
+ /** Destroys the current overlay. */
589
591
  _destroyOverlay() {
590
592
  if (this._overlayRef) {
591
593
  this._overlayRef.dispose();
@@ -645,9 +647,9 @@ class MtxColorpicker {
645
647
  })));
646
648
  }
647
649
  }
648
- /** @nocollapse */ MtxColorpicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: MtxColorpicker, deps: [{ token: i3.Overlay }, { token: i0.NgZone }, { token: i0.ViewContainerRef }, { token: MTX_COLORPICKER_SCROLL_STRATEGY }, { token: i4.Directionality, optional: true }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Component });
649
- /** @nocollapse */ MtxColorpicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.6", type: MtxColorpicker, selector: "mtx-colorpicker", inputs: { content: "content", disabled: "disabled", xPosition: "xPosition", yPosition: "yPosition", restoreFocus: "restoreFocus", opened: "opened", color: "color", format: "format" }, outputs: { openedStream: "opened", closedStream: "closed" }, exportAs: ["mtxColorpicker"], usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
650
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: MtxColorpicker, decorators: [{
650
+ /** @nocollapse */ MtxColorpicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxColorpicker, deps: [{ token: i3.Overlay }, { token: i0.NgZone }, { token: i0.ViewContainerRef }, { token: MTX_COLORPICKER_SCROLL_STRATEGY }, { token: i4.Directionality, optional: true }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Component });
651
+ /** @nocollapse */ MtxColorpicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MtxColorpicker, selector: "mtx-colorpicker", inputs: { content: "content", disabled: "disabled", xPosition: "xPosition", yPosition: "yPosition", restoreFocus: "restoreFocus", opened: "opened", color: "color", format: "format" }, outputs: { openedStream: "opened", closedStream: "closed" }, exportAs: ["mtxColorpicker"], usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
652
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxColorpicker, decorators: [{
651
653
  type: Component,
652
654
  args: [{
653
655
  selector: 'mtx-colorpicker',
@@ -694,8 +696,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImpor
694
696
 
695
697
  class MtxColorpickerModule {
696
698
  }
697
- /** @nocollapse */ MtxColorpickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: MtxColorpickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
698
- /** @nocollapse */ MtxColorpickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: MtxColorpickerModule, declarations: [MtxColorpicker,
699
+ /** @nocollapse */ MtxColorpickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxColorpickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
700
+ /** @nocollapse */ MtxColorpickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.2", ngImport: i0, type: MtxColorpickerModule, declarations: [MtxColorpicker,
699
701
  MtxColorpickerContent,
700
702
  MtxColorpickerInput,
701
703
  MtxColorpickerToggle,
@@ -709,15 +711,13 @@ class MtxColorpickerModule {
709
711
  MtxColorpickerInput,
710
712
  MtxColorpickerToggle,
711
713
  MtxColorpickerToggleIcon] });
712
- /** @nocollapse */ MtxColorpickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: MtxColorpickerModule, providers: [MTX_COLORPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER], imports: [[
713
- CommonModule,
714
- OverlayModule,
715
- A11yModule,
716
- PortalModule,
717
- MatButtonModule,
718
- ColorChromeModule,
719
- ]] });
720
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: MtxColorpickerModule, decorators: [{
714
+ /** @nocollapse */ MtxColorpickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxColorpickerModule, providers: [MTX_COLORPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER], imports: [CommonModule,
715
+ OverlayModule,
716
+ A11yModule,
717
+ PortalModule,
718
+ MatButtonModule,
719
+ ColorChromeModule] });
720
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxColorpickerModule, decorators: [{
721
721
  type: NgModule,
722
722
  args: [{
723
723
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"mtxColorpicker.mjs","sources":["../../../projects/extensions/colorpicker/colorpicker-input.ts","../../../projects/extensions/colorpicker/colorpicker-toggle.ts","../../../projects/extensions/colorpicker/colorpicker-toggle.html","../../../projects/extensions/colorpicker/colorpicker-animations.ts","../../../projects/extensions/colorpicker/colorpicker.ts","../../../projects/extensions/colorpicker/colorpicker-content.html","../../../projects/extensions/colorpicker/colorpicker-module.ts","../../../projects/extensions/colorpicker/mtxColorpicker.ts"],"sourcesContent":["import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { DOWN_ARROW } from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Optional,\n Output,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatFormField } from '@angular/material/form-field';\nimport { MAT_INPUT_VALUE_ACCESSOR } from '@angular/material/input';\nimport { Subscription } from 'rxjs';\nimport { MtxColorpicker } from './colorpicker';\n\nexport class MtxColorPickerInputEvent {\n /** The new value for the target colorpicker input. */\n value: string | null;\n\n constructor(\n /** Reference to the colorpicker input component that emitted the event. */\n public target: MtxColorpickerInput,\n /** Reference to the native input element associated with the colorpicker input. */\n public targetElement: HTMLElement\n ) {\n this.value = this.target.value;\n }\n}\n\nexport const MTX_COLORPICKER_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MtxColorpickerInput),\n multi: true,\n};\n\nexport const MTX_COLORPICKER_VALIDATORS: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MtxColorpickerInput),\n multi: true,\n};\n\nexport type ColorFormat = 'hex' | 'rgb' | 'hsl' | 'hsv';\n\n@Directive({\n selector: 'input[mtxColorpicker]',\n providers: [\n MTX_COLORPICKER_VALUE_ACCESSOR,\n MTX_COLORPICKER_VALIDATORS,\n { provide: MAT_INPUT_VALUE_ACCESSOR, useExisting: MtxColorpickerInput },\n ],\n host: {\n 'class': 'mtx-colorpicker-input',\n '[attr.aria-haspopup]': '_picker ? \"dialog\" : null',\n '[attr.aria-owns]': '(_picker?.opened && _picker.id) || null',\n '[disabled]': 'disabled',\n '(input)': '_onInput($event.target.value)',\n '(change)': '_onChange()',\n '(blur)': '_onBlur()',\n '(keydown)': '_onKeydown($event)',\n },\n exportAs: 'mtxColorpickerInput',\n})\nexport class MtxColorpickerInput implements ControlValueAccessor, AfterViewInit, OnDestroy {\n /** Whether the component has been initialized. */\n private _isInitialized!: boolean;\n\n @Input()\n set mtxColorpicker(value: MtxColorpicker) {\n if (!value) {\n return;\n }\n\n this._picker = value;\n this._picker.registerInput(this);\n this._pickerSubscription.unsubscribe();\n\n this._pickerSubscription = this._picker._selectedChanged.subscribe((selected: string) => {\n this.value = selected;\n this._cvaOnChange(selected);\n this._onTouched();\n this.colorInput.emit(new MtxColorPickerInputEvent(this, this._elementRef.nativeElement));\n this.colorChange.emit(new MtxColorPickerInputEvent(this, this._elementRef.nativeElement));\n });\n }\n _picker!: MtxColorpicker;\n\n /** Whether the colorpicker-input is disabled. */\n @Input()\n get disabled(): boolean {\n return !!this._disabled;\n }\n set disabled(value: boolean) {\n const newValue = coerceBooleanProperty(value);\n const element = this._elementRef.nativeElement;\n\n if (this._disabled !== newValue) {\n this._disabled = newValue;\n this._disabledChange.emit(newValue);\n }\n\n // We need to null check the `blur` method, because it's undefined during SSR.\n // In Ivy static bindings are invoked earlier, before the element is attached to the DOM.\n // This can cause an error to be thrown in some browsers (IE/Edge) which assert that the\n // element has been inserted.\n if (newValue && this._isInitialized && element.blur) {\n // Normally, native input elements automatically blur if they turn disabled. This behavior\n // is problematic, because it would mean that it triggers another change detection cycle,\n // which then causes a changed after checked error if the input element was focused before.\n element.blur();\n }\n }\n private _disabled!: boolean;\n\n /** The value of the input. */\n @Input()\n get value(): string | null {\n return this._value;\n }\n set value(value: string | null) {\n const oldValue = this.value;\n this._value = value;\n this._formatValue(value);\n\n this._valueChange.emit(value);\n }\n private _value!: string | null;\n\n /** The input and output color format. */\n @Input() format: ColorFormat = 'hex';\n\n /** Emits when a `change` event is fired on this `<input>`. */\n @Output() readonly colorChange: EventEmitter<MtxColorPickerInputEvent> =\n new EventEmitter<MtxColorPickerInputEvent>();\n\n /** Emits when an `input` event is fired on this `<input>`. */\n @Output() readonly colorInput: EventEmitter<MtxColorPickerInputEvent> =\n new EventEmitter<MtxColorPickerInputEvent>();\n\n /** Emits when the disabled state has changed */\n _disabledChange = new EventEmitter<boolean>();\n\n /** Emits when the value changes (either due to user input or programmatic change). */\n _valueChange = new EventEmitter<string | null>();\n\n _onTouched = () => {};\n\n _validatorOnChange = () => {};\n\n private _cvaOnChange: (value: any) => void = () => {};\n\n private _pickerSubscription = Subscription.EMPTY;\n\n /** The combined form control validator for this input. */\n private _validator: ValidatorFn | null = Validators.compose([]);\n\n /** Whether the last value set on the input was valid. */\n private _lastValueValid = false;\n\n constructor(\n private _elementRef: ElementRef<HTMLInputElement>,\n @Optional() private _formField: MatFormField\n ) {}\n\n ngAfterViewInit() {\n this._isInitialized = true;\n }\n\n ngOnDestroy() {\n this._pickerSubscription.unsubscribe();\n this._valueChange.complete();\n this._disabledChange.complete();\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this._validatorOnChange = fn;\n }\n\n /** @docs-private */\n validate(c: AbstractControl): ValidationErrors | null {\n return this._validator ? this._validator(c) : null;\n }\n\n /**\n * @deprecated\n * @breaking-change 8.0.0 Use `getConnectedOverlayOrigin` instead\n */\n getPopupConnectionElementRef(): ElementRef {\n return this.getConnectedOverlayOrigin();\n }\n\n /**\n * Gets the element that the colorpicker popup should be connected to.\n * @return The element to connect the popup to.\n */\n getConnectedOverlayOrigin(): ElementRef {\n return this._formField ? this._formField.getConnectedOverlayOrigin() : this._elementRef;\n }\n\n /** Gets the ID of an element that should be used a description for the overlay. */\n getOverlayLabelId(): string | null {\n if (this._formField) {\n return this._formField.getLabelId();\n }\n\n return this._elementRef.nativeElement.getAttribute('aria-labelledby');\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(value: string): void {\n this.value = value;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void): void {\n this._cvaOnChange = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n _onKeydown(event: KeyboardEvent) {\n const isAltDownArrow = event.altKey && event.keyCode === DOWN_ARROW;\n\n if (this._picker && isAltDownArrow && !this._elementRef.nativeElement.readOnly) {\n this._picker.open();\n event.preventDefault();\n }\n }\n\n /** Handles blur events on the input. */\n _onBlur() {\n // Reformat the input only if we have a valid value.\n if (this.value) {\n this._formatValue(this.value);\n }\n\n this._onTouched();\n }\n\n _onInput(value: string) {\n const nextValue = value;\n\n this._value = nextValue;\n this._cvaOnChange(nextValue);\n this._valueChange.emit(nextValue);\n this.colorInput.emit(new MtxColorPickerInputEvent(this, this._elementRef.nativeElement));\n }\n\n _onChange() {\n this.colorChange.emit(new MtxColorPickerInputEvent(this, this._elementRef.nativeElement));\n }\n\n /** Returns the palette used by the input's form field, if any. */\n getThemePalette(): ThemePalette {\n return this._formField ? this._formField.color : undefined;\n }\n\n /** TODO: Formats a value and sets it on the input element. */\n private _formatValue(value: string | null) {\n this._elementRef.nativeElement.value = value ? value : '';\n }\n\n // Accept `any` to avoid conflicts with other directives on `<input>` that\n // may accept different types.\n static ngAcceptInputType_value: any;\n static ngAcceptInputType_disabled: BooleanInput;\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n Directive,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MatButton } from '@angular/material/button';\nimport { Subscription, of, merge } from 'rxjs';\nimport { MtxColorpicker } from './colorpicker';\n\n/** Can be used to override the icon of a `mtxColorpickerToggle`. */\n@Directive({\n selector: '[mtxColorpickerToggleIcon]',\n})\nexport class MtxColorpickerToggleIcon {}\n\n@Component({\n selector: 'mtx-colorpicker-toggle',\n templateUrl: './colorpicker-toggle.html',\n styleUrls: ['./colorpicker-toggle.scss'],\n host: {\n 'class': 'mtx-colorpicker-toggle',\n // Always set the tabindex to -1 so that it doesn't overlap with any custom tabindex the\n // consumer may have provided, while still being able to receive focus.\n '[attr.tabindex]': 'disabled ? null : -1',\n '[class.mtx-colorpicker-toggle-active]': 'picker && picker.opened',\n '[class.mat-accent]': 'picker && picker.color === \"accent\"',\n '[class.mat-warn]': 'picker && picker.color === \"warn\"',\n '(focus)': '_button.focus()',\n },\n exportAs: 'mtxColorpickerToggle',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtxColorpickerToggle implements AfterContentInit, OnChanges, OnDestroy {\n private _stateChanges = Subscription.EMPTY;\n\n /** Colorpicker instance that the button will toggle. */\n @Input('for') picker!: MtxColorpicker;\n\n /** Tabindex for the toggle. */\n @Input() tabIndex!: number;\n\n /** Whether the toggle button is disabled. */\n @Input()\n get disabled(): boolean {\n if (this._disabled == null && this.picker) {\n return this.picker.disabled;\n }\n\n return !!this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled!: boolean;\n\n /** Whether ripples on the toggle should be disabled. */\n @Input() disableRipple!: boolean;\n\n /** Custom icon set by the consumer. */\n @ContentChild(MtxColorpickerToggleIcon) _customIcon!: MtxColorpickerToggleIcon;\n\n /** Underlying button element. */\n @ViewChild('button') _button!: MatButton;\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.picker) {\n this._watchStateChanges();\n }\n }\n\n ngOnDestroy() {\n this._stateChanges.unsubscribe();\n }\n\n ngAfterContentInit() {\n this._watchStateChanges();\n }\n\n open(event: Event): void {\n if (this.picker && !this.disabled) {\n this.picker.open();\n event.stopPropagation();\n }\n }\n\n private _watchStateChanges() {\n const pickerDisabled = this.picker ? this.picker._disabledChange : of();\n const inputDisabled =\n this.picker && this.picker.pickerInput ? this.picker.pickerInput._disabledChange : of();\n const datepickerToggled = this.picker\n ? merge(this.picker.openedStream, this.picker.closedStream)\n : of();\n\n this._stateChanges.unsubscribe();\n this._stateChanges = merge([pickerDisabled, inputDisabled, datepickerToggled]).subscribe(() =>\n this._changeDetectorRef.markForCheck()\n );\n }\n\n static ngAcceptInputType_disabled: BooleanInput;\n static ngAcceptInputType_disableRipple: BooleanInput;\n}\n","<button #button\n mat-icon-button\n type=\"button\"\n [attr.aria-haspopup]=\"picker ? 'dialog' : null\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n [disableRipple]=\"disableRipple\"\n (click)=\"open($event)\">\n\n <svg *ngIf=\"!_customIcon\"\n class=\"mtx-colorpicker-toggle-default-icon\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n height=\"24px\"\n fill=\"currentColor\"\n focusable=\"false\">\n <path\n d=\"M17.5,12A1.5,1.5 0 0,1 16,10.5A1.5,1.5 0 0,1 17.5,9A1.5,1.5 0 0,1 19,10.5A1.5,1.5 0 0,1 17.5,12M14.5,8A1.5,1.5 0 0,1 13,6.5A1.5,1.5 0 0,1 14.5,5A1.5,1.5 0 0,1 16,6.5A1.5,1.5 0 0,1 14.5,8M9.5,8A1.5,1.5 0 0,1 8,6.5A1.5,1.5 0 0,1 9.5,5A1.5,1.5 0 0,1 11,6.5A1.5,1.5 0 0,1 9.5,8M6.5,12A1.5,1.5 0 0,1 5,10.5A1.5,1.5 0 0,1 6.5,9A1.5,1.5 0 0,1 8,10.5A1.5,1.5 0 0,1 6.5,12M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A1.5,1.5 0 0,0 13.5,19.5C13.5,19.11 13.35,18.76 13.11,18.5C12.88,18.23 12.73,17.88 12.73,17.5A1.5,1.5 0 0,1 14.23,16H16A5,5 0 0,0 21,11C21,6.58 16.97,3 12,3Z\" />\n </svg>\n\n <ng-content select=\"[mtxColorpickerToggleIcon]\"></ng-content>\n</button>\n","import {\n animate,\n style,\n transition,\n trigger,\n keyframes,\n AnimationTriggerMetadata,\n} from '@angular/animations';\n\n/**\n * Animations used by the colorpicker.\n * @docs-private\n */\nexport const mtxColorpickerAnimations: {\n readonly transformPanel: AnimationTriggerMetadata;\n} = {\n /** Transforms the height of the colorpicker's panel. */\n transformPanel: trigger('transformPanel', [\n transition(\n 'void => enter-dropdown',\n animate(\n '120ms cubic-bezier(0, 0, 0.2, 1)',\n keyframes([\n style({ opacity: 0, transform: 'scale(1, 0.8)' }),\n style({ opacity: 1, transform: 'scale(1, 1)' }),\n ])\n )\n ),\n transition('* => void', animate('100ms linear', style({ opacity: 0 }))),\n ]),\n};\n","import { Directionality } from '@angular/cdk/bidi';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ESCAPE, hasModifierKey, UP_ARROW } from '@angular/cdk/keycodes';\nimport {\n ScrollStrategy,\n OverlayConfig,\n Overlay,\n OverlayRef,\n FlexibleConnectedPositionStrategy,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n TemplateRef,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { CanColor, mixinColor, ThemePalette } from '@angular/material/core';\nimport { Subject, Subscription, merge } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { mtxColorpickerAnimations } from './colorpicker-animations';\nimport { ColorFormat, MtxColorpickerInput } from './colorpicker-input';\n\nimport { ColorEvent } from 'ngx-color';\n\nimport { TinyColor } from '@ctrl/tinycolor';\n\n/** Used to generate a unique ID for each colorpicker instance. */\nlet colorpickerUid = 0;\n\n/** Injection token that determines the scroll handling while the panel is open. */\nexport const MTX_COLORPICKER_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>(\n 'mtx-colorpicker-scroll-strategy'\n);\n\nexport function MTX_COLORPICKER_SCROLL_STRATEGY_FACTORY(overlay: Overlay): () => ScrollStrategy {\n return () => overlay.scrollStrategies.reposition();\n}\n\n/** Possible positions for the colorpicker dropdown along the X axis. */\nexport type ColorpickerDropdownPositionX = 'start' | 'end';\n\n/** Possible positions for the colorpicker dropdown along the Y axis. */\nexport type ColorpickerDropdownPositionY = 'above' | 'below';\n\nexport const MTX_COLORPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: MTX_COLORPICKER_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MTX_COLORPICKER_SCROLL_STRATEGY_FACTORY,\n};\n\n// Boilerplate for applying mixins to MtxColorpickerContent.\n/** @docs-private */\nconst _MtxColorpickerContentBase = mixinColor(\n class {\n constructor(public _elementRef: ElementRef) {}\n }\n);\n\n@Component({\n selector: 'mtx-colorpicker-content',\n templateUrl: './colorpicker-content.html',\n styleUrls: ['colorpicker-content.scss'],\n host: {\n 'class': 'mtx-colorpicker-content',\n '[@transformPanel]': '_animationState',\n '(@transformPanel.done)': '_animationDone.next()',\n },\n animations: [mtxColorpickerAnimations.transformPanel],\n exportAs: 'mtxColorpickerContent',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['color'],\n})\nexport class MtxColorpickerContent\n extends _MtxColorpickerContentBase\n implements OnDestroy, CanColor\n{\n picker!: MtxColorpicker;\n\n /** Current state of the animation. */\n _animationState: 'enter-dropdown' | 'void' = 'enter-dropdown';\n\n /** Emits when an animation has finished. */\n readonly _animationDone = new Subject<void>();\n\n constructor(elementRef: ElementRef, private _changeDetectorRef: ChangeDetectorRef) {\n super(elementRef);\n }\n\n _startExitAnimation() {\n this._animationState = 'void';\n this._changeDetectorRef.markForCheck();\n }\n\n ngOnDestroy() {\n this._animationDone.complete();\n }\n\n getColorString(e: ColorEvent): string {\n return {\n hex: e.color.rgb.a === 1 ? e.color.hex : new TinyColor(e.color.rgb).toHex8String(),\n rgb: new TinyColor(e.color.rgb).toRgbString(),\n hsl: new TinyColor(e.color.hsl).toHslString(),\n hsv: new TinyColor(e.color.hsv).toHsvString(),\n }[this.picker.format];\n }\n}\n\n@Component({\n selector: 'mtx-colorpicker',\n template: '',\n exportAs: 'mtxColorpicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtxColorpicker implements OnChanges, OnDestroy {\n private _scrollStrategy: () => ScrollStrategy;\n private _inputStateChanges = Subscription.EMPTY;\n\n /** Custom colorpicker content set by the consumer. */\n @Input() content!: TemplateRef<any>;\n\n /** Emits when the colorpicker has been opened. */\n @Output('opened') openedStream: EventEmitter<void> = new EventEmitter<void>();\n\n /** Emits when the colorpicker has been closed. */\n @Output('closed') closedStream: EventEmitter<void> = new EventEmitter<void>();\n\n @Input() get disabled() {\n return this._disabled === undefined && this.pickerInput\n ? this.pickerInput.disabled\n : !!this._disabled;\n }\n set disabled(value: boolean) {\n const newValue = coerceBooleanProperty(value);\n\n if (newValue !== this._disabled) {\n this._disabled = newValue;\n this._disabledChange.next(newValue);\n }\n }\n private _disabled!: boolean;\n\n /** Preferred position of the colorpicker in the X axis. */\n @Input()\n xPosition: ColorpickerDropdownPositionX = 'start';\n\n /** Preferred position of the colorpicker in the Y axis. */\n @Input()\n yPosition: ColorpickerDropdownPositionY = 'below';\n\n /**\n * Whether to restore focus to the previously-focused element when the panel is closed.\n * Note that automatic focus restoration is an accessibility feature and it is recommended that\n * you provide your own equivalent, if you decide to turn it off.\n */\n @Input()\n get restoreFocus(): boolean {\n return this._restoreFocus;\n }\n set restoreFocus(value: boolean) {\n this._restoreFocus = coerceBooleanProperty(value);\n }\n private _restoreFocus = true;\n\n /** Whether the panel is open. */\n @Input()\n get opened(): boolean {\n return this._opened;\n }\n set opened(value: boolean) {\n coerceBooleanProperty(value) ? this.open() : this.close();\n }\n private _opened = false;\n\n /** The id for the colorpicker panel. */\n id = `mtx-colorpicker-${colorpickerUid++}`;\n\n /** Color palette to use on the colorpicker's panel. */\n @Input()\n get color(): ThemePalette {\n return this._color || (this.pickerInput ? this.pickerInput.getThemePalette() : undefined);\n }\n set color(value: ThemePalette) {\n this._color = value;\n }\n private _color: ThemePalette;\n\n /** The input and output color format. */\n @Input()\n get format(): ColorFormat {\n return this._format || this.pickerInput.format;\n }\n set format(value: ColorFormat) {\n this._format = value;\n }\n _format!: ColorFormat;\n\n /** The currently selected color. */\n get selected(): string {\n return this._validSelected;\n }\n set selected(value: string) {\n this._validSelected = value;\n }\n private _validSelected: string = '';\n\n /** A reference to the overlay when the picker is opened as a popup. */\n private _overlayRef!: OverlayRef | null;\n\n /** Reference to the component instance rendered in the overlay. */\n private _componentRef!: ComponentRef<MtxColorpickerContent> | null;\n\n /** The element that was focused before the colorpicker was opened. */\n private _focusedElementBeforeOpen: HTMLElement | null = null;\n\n /** Unique class that will be added to the backdrop so that the test harnesses can look it up. */\n private _backdropHarnessClass = `${this.id}-backdrop`;\n\n /** The input element this colorpicker is associated with. */\n pickerInput!: MtxColorpickerInput;\n\n /** Emits when the datepicker is disabled. */\n readonly _disabledChange = new Subject<boolean>();\n\n /** Emits new selected color when selected color changes. */\n readonly _selectedChanged = new Subject<string>();\n\n constructor(\n private _overlay: Overlay,\n private _ngZone: NgZone,\n private _viewContainerRef: ViewContainerRef,\n @Inject(MTX_COLORPICKER_SCROLL_STRATEGY) scrollStrategy: any,\n @Optional() private _dir: Directionality,\n @Optional() @Inject(DOCUMENT) private _document: any\n ) {\n this._scrollStrategy = scrollStrategy;\n }\n\n ngOnChanges() {}\n\n ngOnDestroy() {\n this._destroyOverlay();\n this.close();\n this._inputStateChanges.unsubscribe();\n this._disabledChange.complete();\n }\n\n /** Selects the given color */\n select(nextVal: string): void {\n const oldValue = this.selected;\n this.selected = nextVal;\n\n // TODO: `nextVal` should compare with `oldValue`\n this._selectedChanged.next(nextVal);\n }\n\n /**\n * Register an input with this colorpicker.\n * @param input The colorpicker input to register with this colorpicker.\n */\n registerInput(input: MtxColorpickerInput): void {\n if (this.pickerInput) {\n throw Error('A Colorpicker can only be associated with a single input.');\n }\n this.pickerInput = input;\n this._inputStateChanges = input._valueChange.subscribe(\n (value: string) => (this.selected = value)\n );\n }\n\n open(): void {\n if (this._opened || this.disabled) {\n return;\n }\n if (!this.pickerInput) {\n throw Error('Attempted to open an Colorpicker with no associated input.');\n }\n\n if (this._document) {\n this._focusedElementBeforeOpen = this._document.activeElement;\n }\n\n this._openOverlay();\n this._opened = true;\n this.openedStream.emit();\n }\n\n /** Close the panel. */\n close(): void {\n if (!this._opened) {\n return;\n }\n\n if (this._componentRef) {\n const instance = this._componentRef.instance;\n instance._startExitAnimation();\n instance._animationDone.pipe(take(1)).subscribe(() => this._destroyOverlay());\n }\n\n const completeClose = () => {\n // The `_opened` could've been reset already if\n // we got two events in quick succession.\n if (this._opened) {\n this._opened = false;\n this.closedStream.emit();\n this._focusedElementBeforeOpen = null;\n }\n };\n\n if (\n this._restoreFocus &&\n this._focusedElementBeforeOpen &&\n typeof this._focusedElementBeforeOpen.focus === 'function'\n ) {\n // Because IE moves focus asynchronously, we can't count on it being restored before we've\n // marked the colorpicker as closed. If the event fires out of sequence and the element that\n // we're refocusing opens the colorpicker on focus, the user could be stuck with not being\n // able to close the panel at all. We work around it by making the logic, that marks\n // the colorpicker as closed, async as well.\n this._focusedElementBeforeOpen.focus();\n setTimeout(completeClose);\n } else {\n completeClose();\n }\n }\n\n /** Forwards relevant values from the colorpicker to the colorpicker content inside the overlay. */\n protected _forwardContentValues(instance: MtxColorpickerContent) {\n instance.picker = this;\n instance.color = this.color;\n }\n\n /** Open the colopicker as a popup. */\n private _openOverlay(): void {\n this._destroyOverlay();\n\n const labelId = this.pickerInput.getOverlayLabelId();\n const portal = new ComponentPortal<MtxColorpickerContent>(\n MtxColorpickerContent,\n this._viewContainerRef\n );\n const overlayRef = (this._overlayRef = this._overlay.create(\n new OverlayConfig({\n positionStrategy: this._getDropdownStrategy(),\n hasBackdrop: true,\n backdropClass: ['mat-overlay-transparent-backdrop', this._backdropHarnessClass],\n direction: this._dir,\n scrollStrategy: this._scrollStrategy(),\n panelClass: `mtx-colorpicker-popup`,\n })\n ));\n const overlayElement = overlayRef.overlayElement;\n overlayElement.setAttribute('role', 'dialog');\n\n if (labelId) {\n overlayElement.setAttribute('aria-labelledby', labelId);\n }\n\n this._getCloseStream(overlayRef).subscribe(event => {\n if (event) {\n event.preventDefault();\n }\n this.close();\n });\n\n this._componentRef = overlayRef.attach(portal);\n this._forwardContentValues(this._componentRef.instance);\n\n // Update the position once the panel has rendered. Only relevant in dropdown mode.\n this._ngZone.onStable.pipe(take(1)).subscribe(() => overlayRef.updatePosition());\n }\n\n private _destroyOverlay() {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = this._componentRef = null;\n }\n }\n\n /** Gets a position strategy that will open the panel as a dropdown. */\n private _getDropdownStrategy() {\n const strategy = this._overlay\n .position()\n .flexibleConnectedTo(this.pickerInput.getConnectedOverlayOrigin())\n .withTransformOriginOn('.mtx-colorpicker-content')\n .withFlexibleDimensions(false)\n .withViewportMargin(8)\n .withLockedPosition();\n\n return this._setConnectedPositions(strategy);\n }\n\n /** Sets the positions of the colorpicker in dropdown mode based on the current configuration. */\n private _setConnectedPositions(strategy: FlexibleConnectedPositionStrategy) {\n const primaryX = this.xPosition === 'end' ? 'end' : 'start';\n const secondaryX = primaryX === 'start' ? 'end' : 'start';\n const primaryY = this.yPosition === 'above' ? 'bottom' : 'top';\n const secondaryY = primaryY === 'top' ? 'bottom' : 'top';\n\n return strategy.withPositions([\n {\n originX: primaryX,\n originY: secondaryY,\n overlayX: primaryX,\n overlayY: primaryY,\n },\n {\n originX: primaryX,\n originY: primaryY,\n overlayX: primaryX,\n overlayY: secondaryY,\n },\n {\n originX: secondaryX,\n originY: secondaryY,\n overlayX: secondaryX,\n overlayY: primaryY,\n },\n {\n originX: secondaryX,\n originY: primaryY,\n overlayX: secondaryX,\n overlayY: secondaryY,\n },\n ]);\n }\n\n /** Gets an observable that will emit when the overlay is supposed to be closed. */\n private _getCloseStream(overlayRef: OverlayRef) {\n return merge(\n overlayRef.backdropClick(),\n overlayRef.detachments(),\n overlayRef.keydownEvents().pipe(\n filter(event => {\n // Closing on alt + up is only valid when there's an input associated with the colorpicker.\n return (\n (event.keyCode === ESCAPE && !hasModifierKey(event)) ||\n (this.pickerInput && hasModifierKey(event, 'altKey') && event.keyCode === UP_ARROW)\n );\n })\n )\n );\n }\n\n static ngAcceptInputType_disabled: BooleanInput;\n}\n","<ng-template [ngIf]=\"picker.content\" [ngIfElse]=\"default\"\n [ngTemplateOutlet]=\"picker.content\">\n</ng-template>\n<ng-template #default>\n <color-chrome [color]=\"picker.selected\"\n (onChangeComplete)=\"picker.select(getColorString($event))\">\n </color-chrome>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MtxColorpickerInput } from './colorpicker-input';\nimport { MtxColorpickerToggle, MtxColorpickerToggleIcon } from './colorpicker-toggle';\nimport {\n MtxColorpicker,\n MtxColorpickerContent,\n MTX_COLORPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER,\n} from './colorpicker';\n\nimport { ColorChromeModule } from 'ngx-color/chrome';\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n A11yModule,\n PortalModule,\n MatButtonModule,\n ColorChromeModule,\n ],\n exports: [\n MtxColorpicker,\n MtxColorpickerContent,\n MtxColorpickerInput,\n MtxColorpickerToggle,\n MtxColorpickerToggleIcon,\n ],\n declarations: [\n MtxColorpicker,\n MtxColorpickerContent,\n MtxColorpickerInput,\n MtxColorpickerToggle,\n MtxColorpickerToggleIcon,\n ],\n providers: [MTX_COLORPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER],\n})\nexport class MtxColorpickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mtxColorpicker.mjs","sources":["../../../projects/extensions/colorpicker/colorpicker-input.ts","../../../projects/extensions/colorpicker/colorpicker-toggle.ts","../../../projects/extensions/colorpicker/colorpicker-toggle.html","../../../projects/extensions/colorpicker/colorpicker-animations.ts","../../../projects/extensions/colorpicker/colorpicker.ts","../../../projects/extensions/colorpicker/colorpicker-content.html","../../../projects/extensions/colorpicker/colorpicker-module.ts","../../../projects/extensions/colorpicker/mtxColorpicker.ts"],"sourcesContent":["import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { DOWN_ARROW } from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Optional,\n Output,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatFormField } from '@angular/material/form-field';\nimport { MAT_INPUT_VALUE_ACCESSOR } from '@angular/material/input';\nimport { Subscription } from 'rxjs';\nimport { MtxColorpicker } from './colorpicker';\n\nexport class MtxColorPickerInputEvent {\n /** The new value for the target colorpicker input. */\n value: string | null;\n\n constructor(\n /** Reference to the colorpicker input component that emitted the event. */\n public target: MtxColorpickerInput,\n /** Reference to the native input element associated with the colorpicker input. */\n public targetElement: HTMLElement\n ) {\n this.value = this.target.value;\n }\n}\n\nexport const MTX_COLORPICKER_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MtxColorpickerInput),\n multi: true,\n};\n\nexport const MTX_COLORPICKER_VALIDATORS: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MtxColorpickerInput),\n multi: true,\n};\n\nexport type ColorFormat = 'hex' | 'rgb' | 'hsl' | 'hsv';\n\n@Directive({\n selector: 'input[mtxColorpicker]',\n providers: [\n MTX_COLORPICKER_VALUE_ACCESSOR,\n MTX_COLORPICKER_VALIDATORS,\n { provide: MAT_INPUT_VALUE_ACCESSOR, useExisting: MtxColorpickerInput },\n ],\n host: {\n 'class': 'mtx-colorpicker-input',\n '[attr.aria-haspopup]': '_picker ? \"dialog\" : null',\n '[attr.aria-owns]': '(_picker?.opened && _picker.id) || null',\n '[disabled]': 'disabled',\n '(input)': '_onInput($event.target.value)',\n '(change)': '_onChange()',\n '(blur)': '_onBlur()',\n '(keydown)': '_onKeydown($event)',\n },\n exportAs: 'mtxColorpickerInput',\n})\nexport class MtxColorpickerInput implements ControlValueAccessor, AfterViewInit, OnDestroy {\n /** Whether the component has been initialized. */\n private _isInitialized!: boolean;\n\n @Input()\n set mtxColorpicker(value: MtxColorpicker) {\n if (!value) {\n return;\n }\n\n this._picker = value;\n this._picker.registerInput(this);\n this._pickerSubscription.unsubscribe();\n\n this._pickerSubscription = this._picker._selectedChanged.subscribe((selected: string) => {\n this.value = selected;\n this._cvaOnChange(selected);\n this._onTouched();\n this.colorInput.emit(new MtxColorPickerInputEvent(this, this._elementRef.nativeElement));\n this.colorChange.emit(new MtxColorPickerInputEvent(this, this._elementRef.nativeElement));\n });\n }\n _picker!: MtxColorpicker;\n\n /** Whether the colorpicker-input is disabled. */\n @Input()\n get disabled(): boolean {\n return !!this._disabled;\n }\n set disabled(value: boolean) {\n const newValue = coerceBooleanProperty(value);\n const element = this._elementRef.nativeElement;\n\n if (this._disabled !== newValue) {\n this._disabled = newValue;\n this._disabledChange.emit(newValue);\n }\n\n // We need to null check the `blur` method, because it's undefined during SSR.\n // In Ivy static bindings are invoked earlier, before the element is attached to the DOM.\n // This can cause an error to be thrown in some browsers (IE/Edge) which assert that the\n // element has been inserted.\n if (newValue && this._isInitialized && element.blur) {\n // Normally, native input elements automatically blur if they turn disabled. This behavior\n // is problematic, because it would mean that it triggers another change detection cycle,\n // which then causes a changed after checked error if the input element was focused before.\n element.blur();\n }\n }\n private _disabled!: boolean;\n\n /** The value of the input. */\n @Input()\n get value(): string | null {\n return this._value;\n }\n set value(value: string | null) {\n const oldValue = this.value;\n this._value = value;\n this._formatValue(value);\n\n this._valueChange.emit(value);\n }\n private _value!: string | null;\n\n /** The input and output color format. */\n @Input() format: ColorFormat = 'hex';\n\n /** Emits when a `change` event is fired on this `<input>`. */\n @Output() readonly colorChange: EventEmitter<MtxColorPickerInputEvent> =\n new EventEmitter<MtxColorPickerInputEvent>();\n\n /** Emits when an `input` event is fired on this `<input>`. */\n @Output() readonly colorInput: EventEmitter<MtxColorPickerInputEvent> =\n new EventEmitter<MtxColorPickerInputEvent>();\n\n /** Emits when the disabled state has changed */\n _disabledChange = new EventEmitter<boolean>();\n\n /** Emits when the value changes (either due to user input or programmatic change). */\n _valueChange = new EventEmitter<string | null>();\n\n _onTouched = () => {};\n\n _validatorOnChange = () => {};\n\n private _cvaOnChange: (value: any) => void = () => {};\n\n private _pickerSubscription = Subscription.EMPTY;\n\n /** The combined form control validator for this input. */\n private _validator: ValidatorFn | null = Validators.compose([]);\n\n /** Whether the last value set on the input was valid. */\n private _lastValueValid = false;\n\n constructor(\n private _elementRef: ElementRef<HTMLInputElement>,\n @Optional() private _formField: MatFormField\n ) {}\n\n ngAfterViewInit() {\n this._isInitialized = true;\n }\n\n ngOnDestroy() {\n this._pickerSubscription.unsubscribe();\n this._valueChange.complete();\n this._disabledChange.complete();\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this._validatorOnChange = fn;\n }\n\n /** @docs-private */\n validate(c: AbstractControl): ValidationErrors | null {\n return this._validator ? this._validator(c) : null;\n }\n\n /**\n * @deprecated\n * @breaking-change 8.0.0 Use `getConnectedOverlayOrigin` instead\n */\n getPopupConnectionElementRef(): ElementRef {\n return this.getConnectedOverlayOrigin();\n }\n\n /**\n * Gets the element that the colorpicker popup should be connected to.\n * @return The element to connect the popup to.\n */\n getConnectedOverlayOrigin(): ElementRef {\n return this._formField ? this._formField.getConnectedOverlayOrigin() : this._elementRef;\n }\n\n /** Gets the ID of an element that should be used a description for the overlay. */\n getOverlayLabelId(): string | null {\n if (this._formField) {\n return this._formField.getLabelId();\n }\n\n return this._elementRef.nativeElement.getAttribute('aria-labelledby');\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(value: string): void {\n this.value = value;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void): void {\n this._cvaOnChange = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n _onKeydown(event: KeyboardEvent) {\n const isAltDownArrow = event.altKey && event.keyCode === DOWN_ARROW;\n\n if (this._picker && isAltDownArrow && !this._elementRef.nativeElement.readOnly) {\n this._picker.open();\n event.preventDefault();\n }\n }\n\n /** Handles blur events on the input. */\n _onBlur() {\n // Reformat the input only if we have a valid value.\n if (this.value) {\n this._formatValue(this.value);\n }\n\n this._onTouched();\n }\n\n _onInput(value: string) {\n const nextValue = value;\n\n this._value = nextValue;\n this._cvaOnChange(nextValue);\n this._valueChange.emit(nextValue);\n this.colorInput.emit(new MtxColorPickerInputEvent(this, this._elementRef.nativeElement));\n }\n\n _onChange() {\n this.colorChange.emit(new MtxColorPickerInputEvent(this, this._elementRef.nativeElement));\n }\n\n /** Returns the palette used by the input's form field, if any. */\n getThemePalette(): ThemePalette {\n return this._formField ? this._formField.color : undefined;\n }\n\n /** TODO: Formats a value and sets it on the input element. */\n private _formatValue(value: string | null) {\n this._elementRef.nativeElement.value = value ? value : '';\n }\n\n // Accept `any` to avoid conflicts with other directives on `<input>` that\n // may accept different types.\n static ngAcceptInputType_value: any;\n static ngAcceptInputType_disabled: BooleanInput;\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n Directive,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MatButton } from '@angular/material/button';\nimport { Subscription, of, merge } from 'rxjs';\nimport { MtxColorpicker } from './colorpicker';\n\n/** Can be used to override the icon of a `mtxColorpickerToggle`. */\n@Directive({\n selector: '[mtxColorpickerToggleIcon]',\n})\nexport class MtxColorpickerToggleIcon {}\n\n@Component({\n selector: 'mtx-colorpicker-toggle',\n templateUrl: './colorpicker-toggle.html',\n styleUrls: ['./colorpicker-toggle.scss'],\n host: {\n 'class': 'mtx-colorpicker-toggle',\n // Always set the tabindex to -1 so that it doesn't overlap with any custom tabindex the\n // consumer may have provided, while still being able to receive focus.\n '[attr.tabindex]': 'disabled ? null : -1',\n '[class.mtx-colorpicker-toggle-active]': 'picker && picker.opened',\n '[class.mat-accent]': 'picker && picker.color === \"accent\"',\n '[class.mat-warn]': 'picker && picker.color === \"warn\"',\n '(focus)': '_button.focus()',\n },\n exportAs: 'mtxColorpickerToggle',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtxColorpickerToggle implements AfterContentInit, OnChanges, OnDestroy {\n private _stateChanges = Subscription.EMPTY;\n\n /** Colorpicker instance that the button will toggle. */\n @Input('for') picker!: MtxColorpicker;\n\n /** Tabindex for the toggle. */\n @Input() tabIndex!: number;\n\n /** Whether the toggle button is disabled. */\n @Input()\n get disabled(): boolean {\n if (this._disabled == null && this.picker) {\n return this.picker.disabled;\n }\n\n return !!this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled!: boolean;\n\n /** Whether ripples on the toggle should be disabled. */\n @Input() disableRipple!: boolean;\n\n /** Custom icon set by the consumer. */\n @ContentChild(MtxColorpickerToggleIcon) _customIcon!: MtxColorpickerToggleIcon;\n\n /** Underlying button element. */\n @ViewChild('button') _button!: MatButton;\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.picker) {\n this._watchStateChanges();\n }\n }\n\n ngOnDestroy() {\n this._stateChanges.unsubscribe();\n }\n\n ngAfterContentInit() {\n this._watchStateChanges();\n }\n\n open(event: Event): void {\n if (this.picker && !this.disabled) {\n this.picker.open();\n event.stopPropagation();\n }\n }\n\n private _watchStateChanges() {\n const pickerDisabled = this.picker ? this.picker._disabledChange : of();\n const inputDisabled =\n this.picker && this.picker.pickerInput ? this.picker.pickerInput._disabledChange : of();\n const datepickerToggled = this.picker\n ? merge(this.picker.openedStream, this.picker.closedStream)\n : of();\n\n this._stateChanges.unsubscribe();\n this._stateChanges = merge([pickerDisabled, inputDisabled, datepickerToggled]).subscribe(() =>\n this._changeDetectorRef.markForCheck()\n );\n }\n\n static ngAcceptInputType_disabled: BooleanInput;\n static ngAcceptInputType_disableRipple: BooleanInput;\n}\n","<button #button\n mat-icon-button\n type=\"button\"\n [attr.aria-haspopup]=\"picker ? 'dialog' : null\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n [disableRipple]=\"disableRipple\"\n (click)=\"open($event)\">\n\n <svg *ngIf=\"!_customIcon\"\n class=\"mtx-colorpicker-toggle-default-icon\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n height=\"24px\"\n fill=\"currentColor\"\n focusable=\"false\">\n <path\n d=\"M17.5,12A1.5,1.5 0 0,1 16,10.5A1.5,1.5 0 0,1 17.5,9A1.5,1.5 0 0,1 19,10.5A1.5,1.5 0 0,1 17.5,12M14.5,8A1.5,1.5 0 0,1 13,6.5A1.5,1.5 0 0,1 14.5,5A1.5,1.5 0 0,1 16,6.5A1.5,1.5 0 0,1 14.5,8M9.5,8A1.5,1.5 0 0,1 8,6.5A1.5,1.5 0 0,1 9.5,5A1.5,1.5 0 0,1 11,6.5A1.5,1.5 0 0,1 9.5,8M6.5,12A1.5,1.5 0 0,1 5,10.5A1.5,1.5 0 0,1 6.5,9A1.5,1.5 0 0,1 8,10.5A1.5,1.5 0 0,1 6.5,12M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A1.5,1.5 0 0,0 13.5,19.5C13.5,19.11 13.35,18.76 13.11,18.5C12.88,18.23 12.73,17.88 12.73,17.5A1.5,1.5 0 0,1 14.23,16H16A5,5 0 0,0 21,11C21,6.58 16.97,3 12,3Z\" />\n </svg>\n\n <ng-content select=\"[mtxColorpickerToggleIcon]\"></ng-content>\n</button>\n","import {\n animate,\n style,\n transition,\n trigger,\n keyframes,\n AnimationTriggerMetadata,\n} from '@angular/animations';\n\n/**\n * Animations used by the colorpicker.\n * @docs-private\n */\nexport const mtxColorpickerAnimations: {\n readonly transformPanel: AnimationTriggerMetadata;\n} = {\n /** Transforms the height of the colorpicker's panel. */\n transformPanel: trigger('transformPanel', [\n transition(\n 'void => enter-dropdown',\n animate(\n '120ms cubic-bezier(0, 0, 0.2, 1)',\n keyframes([\n style({ opacity: 0, transform: 'scale(1, 0.8)' }),\n style({ opacity: 1, transform: 'scale(1, 1)' }),\n ])\n )\n ),\n transition('* => void', animate('100ms linear', style({ opacity: 0 }))),\n ]),\n};\n","import { Directionality } from '@angular/cdk/bidi';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ESCAPE, hasModifierKey, UP_ARROW } from '@angular/cdk/keycodes';\nimport {\n ScrollStrategy,\n OverlayConfig,\n Overlay,\n OverlayRef,\n FlexibleConnectedPositionStrategy,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n TemplateRef,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { CanColor, mixinColor, ThemePalette } from '@angular/material/core';\nimport { Subject, Subscription, merge } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { mtxColorpickerAnimations } from './colorpicker-animations';\nimport { ColorFormat, MtxColorpickerInput } from './colorpicker-input';\n\nimport { ColorEvent } from 'ngx-color';\n\nimport { TinyColor } from '@ctrl/tinycolor';\n\n/** Used to generate a unique ID for each colorpicker instance. */\nlet colorpickerUid = 0;\n\n/** Injection token that determines the scroll handling while the panel is open. */\nexport const MTX_COLORPICKER_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>(\n 'mtx-colorpicker-scroll-strategy'\n);\n\nexport function MTX_COLORPICKER_SCROLL_STRATEGY_FACTORY(overlay: Overlay): () => ScrollStrategy {\n return () => overlay.scrollStrategies.reposition();\n}\n\n/** Possible positions for the colorpicker dropdown along the X axis. */\nexport type ColorpickerDropdownPositionX = 'start' | 'end';\n\n/** Possible positions for the colorpicker dropdown along the Y axis. */\nexport type ColorpickerDropdownPositionY = 'above' | 'below';\n\nexport const MTX_COLORPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: MTX_COLORPICKER_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MTX_COLORPICKER_SCROLL_STRATEGY_FACTORY,\n};\n\n// Boilerplate for applying mixins to MtxColorpickerContent.\n/** @docs-private */\nconst _MtxColorpickerContentBase = mixinColor(\n class {\n constructor(public _elementRef: ElementRef) {}\n }\n);\n\n@Component({\n selector: 'mtx-colorpicker-content',\n templateUrl: './colorpicker-content.html',\n styleUrls: ['colorpicker-content.scss'],\n host: {\n 'class': 'mtx-colorpicker-content',\n '[@transformPanel]': '_animationState',\n '(@transformPanel.done)': '_animationDone.next()',\n },\n animations: [mtxColorpickerAnimations.transformPanel],\n exportAs: 'mtxColorpickerContent',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['color'],\n})\nexport class MtxColorpickerContent\n extends _MtxColorpickerContentBase\n implements OnDestroy, CanColor\n{\n picker!: MtxColorpicker;\n\n /** Current state of the animation. */\n _animationState: 'enter-dropdown' | 'void' = 'enter-dropdown';\n\n /** Emits when an animation has finished. */\n readonly _animationDone = new Subject<void>();\n\n constructor(elementRef: ElementRef, private _changeDetectorRef: ChangeDetectorRef) {\n super(elementRef);\n }\n\n _startExitAnimation() {\n this._animationState = 'void';\n this._changeDetectorRef.markForCheck();\n }\n\n ngOnDestroy() {\n this._animationDone.complete();\n }\n\n getColorString(e: ColorEvent): string {\n return {\n hex: e.color.rgb.a === 1 ? e.color.hex : new TinyColor(e.color.rgb).toHex8String(),\n rgb: new TinyColor(e.color.rgb).toRgbString(),\n hsl: new TinyColor(e.color.hsl).toHslString(),\n hsv: new TinyColor(e.color.hsv).toHsvString(),\n }[this.picker.format];\n }\n}\n\n@Component({\n selector: 'mtx-colorpicker',\n template: '',\n exportAs: 'mtxColorpicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtxColorpicker implements OnChanges, OnDestroy {\n private _scrollStrategy: () => ScrollStrategy;\n private _inputStateChanges = Subscription.EMPTY;\n\n /** Custom colorpicker content set by the consumer. */\n @Input() content!: TemplateRef<any>;\n\n /** Emits when the colorpicker has been opened. */\n @Output('opened') openedStream: EventEmitter<void> = new EventEmitter<void>();\n\n /** Emits when the colorpicker has been closed. */\n @Output('closed') closedStream: EventEmitter<void> = new EventEmitter<void>();\n\n @Input() get disabled() {\n return this._disabled === undefined && this.pickerInput\n ? this.pickerInput.disabled\n : !!this._disabled;\n }\n set disabled(value: boolean) {\n const newValue = coerceBooleanProperty(value);\n\n if (newValue !== this._disabled) {\n this._disabled = newValue;\n this._disabledChange.next(newValue);\n }\n }\n private _disabled!: boolean;\n\n /** Preferred position of the colorpicker in the X axis. */\n @Input()\n xPosition: ColorpickerDropdownPositionX = 'start';\n\n /** Preferred position of the colorpicker in the Y axis. */\n @Input()\n yPosition: ColorpickerDropdownPositionY = 'below';\n\n /**\n * Whether to restore focus to the previously-focused element when the panel is closed.\n * Note that automatic focus restoration is an accessibility feature and it is recommended that\n * you provide your own equivalent, if you decide to turn it off.\n */\n @Input()\n get restoreFocus(): boolean {\n return this._restoreFocus;\n }\n set restoreFocus(value: boolean) {\n this._restoreFocus = coerceBooleanProperty(value);\n }\n private _restoreFocus = true;\n\n /** Whether the panel is open. */\n @Input()\n get opened(): boolean {\n return this._opened;\n }\n set opened(value: boolean) {\n coerceBooleanProperty(value) ? this.open() : this.close();\n }\n private _opened = false;\n\n /** The id for the colorpicker panel. */\n id = `mtx-colorpicker-${colorpickerUid++}`;\n\n /** Color palette to use on the colorpicker's panel. */\n @Input()\n get color(): ThemePalette {\n return this._color || (this.pickerInput ? this.pickerInput.getThemePalette() : undefined);\n }\n set color(value: ThemePalette) {\n this._color = value;\n }\n private _color: ThemePalette;\n\n /** The input and output color format. */\n @Input()\n get format(): ColorFormat {\n return this._format || this.pickerInput.format;\n }\n set format(value: ColorFormat) {\n this._format = value;\n }\n _format!: ColorFormat;\n\n /** The currently selected color. */\n get selected(): string {\n return this._validSelected;\n }\n set selected(value: string) {\n this._validSelected = value;\n }\n private _validSelected: string = '';\n\n /** A reference to the overlay when the picker is opened as a popup. */\n private _overlayRef!: OverlayRef | null;\n\n /** Reference to the component instance rendered in the overlay. */\n private _componentRef!: ComponentRef<MtxColorpickerContent> | null;\n\n /** The element that was focused before the colorpicker was opened. */\n private _focusedElementBeforeOpen: HTMLElement | null = null;\n\n /** Unique class that will be added to the backdrop so that the test harnesses can look it up. */\n private _backdropHarnessClass = `${this.id}-backdrop`;\n\n /** The input element this colorpicker is associated with. */\n pickerInput!: MtxColorpickerInput;\n\n /** Emits when the datepicker is disabled. */\n readonly _disabledChange = new Subject<boolean>();\n\n /** Emits new selected color when selected color changes. */\n readonly _selectedChanged = new Subject<string>();\n\n constructor(\n private _overlay: Overlay,\n private _ngZone: NgZone,\n private _viewContainerRef: ViewContainerRef,\n @Inject(MTX_COLORPICKER_SCROLL_STRATEGY) scrollStrategy: any,\n @Optional() private _dir: Directionality,\n @Optional() @Inject(DOCUMENT) private _document: any\n ) {\n this._scrollStrategy = scrollStrategy;\n }\n\n ngOnChanges() {}\n\n ngOnDestroy() {\n this._destroyOverlay();\n this.close();\n this._inputStateChanges.unsubscribe();\n this._disabledChange.complete();\n }\n\n /** Selects the given color. */\n select(nextVal: string): void {\n const oldValue = this.selected;\n this.selected = nextVal;\n\n // TODO: `nextVal` should compare with `oldValue`\n this._selectedChanged.next(nextVal);\n }\n\n /**\n * Register an input with this colorpicker.\n * @param input The colorpicker input to register with this colorpicker.\n */\n registerInput(input: MtxColorpickerInput): void {\n if (this.pickerInput) {\n throw Error('A Colorpicker can only be associated with a single input.');\n }\n this.pickerInput = input;\n this._inputStateChanges = input._valueChange.subscribe(\n (value: string) => (this.selected = value)\n );\n }\n\n /** Open the panel. */\n open(): void {\n if (this._opened || this.disabled) {\n return;\n }\n if (!this.pickerInput) {\n throw Error('Attempted to open an Colorpicker with no associated input.');\n }\n\n if (this._document) {\n this._focusedElementBeforeOpen = this._document.activeElement;\n }\n\n this._openOverlay();\n this._opened = true;\n this.openedStream.emit();\n }\n\n /** Close the panel. */\n close(): void {\n if (!this._opened) {\n return;\n }\n\n if (this._componentRef) {\n const instance = this._componentRef.instance;\n instance._startExitAnimation();\n instance._animationDone.pipe(take(1)).subscribe(() => this._destroyOverlay());\n }\n\n const completeClose = () => {\n // The `_opened` could've been reset already if\n // we got two events in quick succession.\n if (this._opened) {\n this._opened = false;\n this.closedStream.emit();\n this._focusedElementBeforeOpen = null;\n }\n };\n\n if (\n this._restoreFocus &&\n this._focusedElementBeforeOpen &&\n typeof this._focusedElementBeforeOpen.focus === 'function'\n ) {\n // Because IE moves focus asynchronously, we can't count on it being restored before we've\n // marked the colorpicker as closed. If the event fires out of sequence and the element that\n // we're refocusing opens the colorpicker on focus, the user could be stuck with not being\n // able to close the panel at all. We work around it by making the logic, that marks\n // the colorpicker as closed, async as well.\n this._focusedElementBeforeOpen.focus();\n setTimeout(completeClose);\n } else {\n completeClose();\n }\n }\n\n /** Forwards relevant values from the colorpicker to the colorpicker content inside the overlay. */\n protected _forwardContentValues(instance: MtxColorpickerContent) {\n instance.picker = this;\n instance.color = this.color;\n }\n\n /** Open the colopicker as a popup. */\n private _openOverlay(): void {\n this._destroyOverlay();\n\n const labelId = this.pickerInput.getOverlayLabelId();\n const portal = new ComponentPortal<MtxColorpickerContent>(\n MtxColorpickerContent,\n this._viewContainerRef\n );\n const overlayRef = (this._overlayRef = this._overlay.create(\n new OverlayConfig({\n positionStrategy: this._getDropdownStrategy(),\n hasBackdrop: true,\n backdropClass: ['mat-overlay-transparent-backdrop', this._backdropHarnessClass],\n direction: this._dir,\n scrollStrategy: this._scrollStrategy(),\n panelClass: `mtx-colorpicker-popup`,\n })\n ));\n const overlayElement = overlayRef.overlayElement;\n overlayElement.setAttribute('role', 'dialog');\n\n if (labelId) {\n overlayElement.setAttribute('aria-labelledby', labelId);\n }\n\n this._getCloseStream(overlayRef).subscribe(event => {\n if (event) {\n event.preventDefault();\n }\n this.close();\n });\n\n this._componentRef = overlayRef.attach(portal);\n this._forwardContentValues(this._componentRef.instance);\n\n // Update the position once the panel has rendered. Only relevant in dropdown mode.\n this._ngZone.onStable.pipe(take(1)).subscribe(() => overlayRef.updatePosition());\n }\n\n /** Destroys the current overlay. */\n private _destroyOverlay() {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = this._componentRef = null;\n }\n }\n\n /** Gets a position strategy that will open the panel as a dropdown. */\n private _getDropdownStrategy() {\n const strategy = this._overlay\n .position()\n .flexibleConnectedTo(this.pickerInput.getConnectedOverlayOrigin())\n .withTransformOriginOn('.mtx-colorpicker-content')\n .withFlexibleDimensions(false)\n .withViewportMargin(8)\n .withLockedPosition();\n\n return this._setConnectedPositions(strategy);\n }\n\n /** Sets the positions of the colorpicker in dropdown mode based on the current configuration. */\n private _setConnectedPositions(strategy: FlexibleConnectedPositionStrategy) {\n const primaryX = this.xPosition === 'end' ? 'end' : 'start';\n const secondaryX = primaryX === 'start' ? 'end' : 'start';\n const primaryY = this.yPosition === 'above' ? 'bottom' : 'top';\n const secondaryY = primaryY === 'top' ? 'bottom' : 'top';\n\n return strategy.withPositions([\n {\n originX: primaryX,\n originY: secondaryY,\n overlayX: primaryX,\n overlayY: primaryY,\n },\n {\n originX: primaryX,\n originY: primaryY,\n overlayX: primaryX,\n overlayY: secondaryY,\n },\n {\n originX: secondaryX,\n originY: secondaryY,\n overlayX: secondaryX,\n overlayY: primaryY,\n },\n {\n originX: secondaryX,\n originY: primaryY,\n overlayX: secondaryX,\n overlayY: secondaryY,\n },\n ]);\n }\n\n /** Gets an observable that will emit when the overlay is supposed to be closed. */\n private _getCloseStream(overlayRef: OverlayRef) {\n return merge(\n overlayRef.backdropClick(),\n overlayRef.detachments(),\n overlayRef.keydownEvents().pipe(\n filter(event => {\n // Closing on alt + up is only valid when there's an input associated with the colorpicker.\n return (\n (event.keyCode === ESCAPE && !hasModifierKey(event)) ||\n (this.pickerInput && hasModifierKey(event, 'altKey') && event.keyCode === UP_ARROW)\n );\n })\n )\n );\n }\n\n static ngAcceptInputType_disabled: BooleanInput;\n}\n","<ng-template [ngIf]=\"picker.content\" [ngIfElse]=\"default\"\n [ngTemplateOutlet]=\"picker.content\">\n</ng-template>\n<ng-template #default>\n <color-chrome [color]=\"picker.selected\"\n (onChangeComplete)=\"picker.select(getColorString($event))\">\n </color-chrome>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MtxColorpickerInput } from './colorpicker-input';\nimport { MtxColorpickerToggle, MtxColorpickerToggleIcon } from './colorpicker-toggle';\nimport {\n MtxColorpicker,\n MtxColorpickerContent,\n MTX_COLORPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER,\n} from './colorpicker';\n\nimport { ColorChromeModule } from 'ngx-color/chrome';\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n A11yModule,\n PortalModule,\n MatButtonModule,\n ColorChromeModule,\n ],\n exports: [\n MtxColorpicker,\n MtxColorpickerContent,\n MtxColorpickerInput,\n MtxColorpickerToggle,\n MtxColorpickerToggleIcon,\n ],\n declarations: [\n MtxColorpicker,\n MtxColorpickerContent,\n MtxColorpickerInput,\n MtxColorpickerToggle,\n MtxColorpickerToggleIcon,\n ],\n providers: [MTX_COLORPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER],\n})\nexport class MtxColorpickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}