@ng-matero/extensions 12.3.0 → 12.5.1

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 (284) hide show
  1. package/README.md +1 -1
  2. package/_all-color.scss +47 -0
  3. package/_all-theme.scss +5 -3
  4. package/_index.scss +4 -2
  5. package/_theming.scss +4 -2
  6. package/alert/_alert-theme.import.scss +2 -2
  7. package/alert/_alert-theme.scss +38 -17
  8. package/alert/alert.component.d.ts +6 -6
  9. package/alert/alert.component.scss +2 -1
  10. package/alert/mtxAlert.metadata.json +1 -1
  11. package/bundles/extensions.umd.js +21 -10
  12. package/bundles/extensions.umd.js.map +1 -1
  13. package/bundles/mtxAlert.umd.js +32 -14
  14. package/bundles/mtxAlert.umd.js.map +1 -1
  15. package/bundles/mtxButton.umd.js +36 -5
  16. package/bundles/mtxButton.umd.js.map +1 -1
  17. package/bundles/mtxCheckboxGroup.umd.js +10 -1
  18. package/bundles/mtxCheckboxGroup.umd.js.map +1 -1
  19. package/bundles/mtxColorPicker.umd.js +10 -1
  20. package/bundles/mtxColorPicker.umd.js.map +1 -1
  21. package/bundles/mtxColumnResize.umd.js +55 -6
  22. package/bundles/mtxColumnResize.umd.js.map +1 -1
  23. package/bundles/mtxCore.umd.js +10 -1
  24. package/bundles/mtxCore.umd.js.map +1 -1
  25. package/bundles/mtxDatetimepicker.umd.js +139 -32
  26. package/bundles/mtxDatetimepicker.umd.js.map +1 -1
  27. package/bundles/mtxDialog.umd.js +17 -2
  28. package/bundles/mtxDialog.umd.js.map +1 -1
  29. package/bundles/mtxFormGroup.umd.js +10 -1
  30. package/bundles/mtxFormGroup.umd.js.map +1 -1
  31. package/bundles/mtxGrid.umd.js +92 -12
  32. package/bundles/mtxGrid.umd.js.map +1 -1
  33. package/bundles/mtxLoader.umd.js +37 -8
  34. package/bundles/mtxLoader.umd.js.map +1 -1
  35. package/bundles/mtxPipes.umd.js +2 -0
  36. package/bundles/mtxPipes.umd.js.map +1 -1
  37. package/bundles/mtxPopover.umd.js +27 -3
  38. package/bundles/mtxPopover.umd.js.map +1 -1
  39. package/bundles/mtxProgress.umd.js +31 -4
  40. package/bundles/mtxProgress.umd.js.map +1 -1
  41. package/bundles/mtxSelect.umd.js +107 -13
  42. package/bundles/mtxSelect.umd.js.map +1 -1
  43. package/bundles/mtxSlider.umd.js +1551 -0
  44. package/bundles/mtxSlider.umd.js.map +1 -0
  45. package/bundles/mtxSplit.umd.js +23 -6
  46. package/bundles/mtxSplit.umd.js.map +1 -1
  47. package/bundles/mtxText3d.umd.js +10 -1
  48. package/bundles/mtxText3d.umd.js.map +1 -1
  49. package/bundles/mtxTooltip.umd.js +18 -2
  50. package/bundles/mtxTooltip.umd.js.map +1 -1
  51. package/button/button-loading.directive.d.ts +9 -2
  52. package/button/mtxButton.metadata.json +1 -1
  53. package/datetimepicker/_datetimepicker-theme.import.scss +4 -2
  54. package/datetimepicker/_datetimepicker-theme.scss +101 -29
  55. package/datetimepicker/calendar-body.scss +0 -3
  56. package/datetimepicker/calendar.d.ts +10 -3
  57. package/datetimepicker/calendar.scss +5 -22
  58. package/datetimepicker/clock.scss +0 -2
  59. package/datetimepicker/datetimepicker-content.scss +2 -2
  60. package/datetimepicker/datetimepicker-input.d.ts +5 -3
  61. package/datetimepicker/datetimepicker-toggle.d.ts +2 -0
  62. package/datetimepicker/datetimepicker.d.ts +13 -3
  63. package/datetimepicker/mtxDatetimepicker.metadata.json +1 -1
  64. package/esm2015/alert/alert.component.js +25 -11
  65. package/esm2015/alert/alert.module.js +2 -1
  66. package/esm2015/button/button-loading.directive.js +31 -8
  67. package/esm2015/button/button.module.js +2 -1
  68. package/esm2015/checkbox-group/checkbox-group.component.js +10 -2
  69. package/esm2015/checkbox-group/checkbox-group.module.js +2 -1
  70. package/esm2015/color-picker/color-picker.component.js +10 -2
  71. package/esm2015/color-picker/color-picker.module.js +2 -1
  72. package/esm2015/column-resize/column-resize-directives/column-resize-flex.js +9 -2
  73. package/esm2015/column-resize/column-resize-directives/column-resize.js +9 -2
  74. package/esm2015/column-resize/column-resize-module.js +2 -1
  75. package/esm2015/column-resize/column-resize-notifier.js +10 -2
  76. package/esm2015/column-resize/column-resize.js +2 -1
  77. package/esm2015/column-resize/column-size-store.js +2 -1
  78. package/esm2015/column-resize/event-dispatcher.js +9 -2
  79. package/esm2015/column-resize/overlay-handle.js +2 -1
  80. package/esm2015/column-resize/resizable.js +2 -1
  81. package/esm2015/column-resize/resize-strategy.js +18 -3
  82. package/esm2015/core/datetime/datetime.module.js +3 -1
  83. package/esm2015/core/datetime/native-datetime-adapter.js +9 -2
  84. package/esm2015/datetimepicker/calendar-body.js +5 -3
  85. package/esm2015/datetimepicker/calendar.js +31 -12
  86. package/esm2015/datetimepicker/clock.js +11 -3
  87. package/esm2015/datetimepicker/datetimepicker-input.js +12 -4
  88. package/esm2015/datetimepicker/datetimepicker-toggle.js +11 -3
  89. package/esm2015/datetimepicker/datetimepicker.js +30 -8
  90. package/esm2015/datetimepicker/datetimepicker.module.js +2 -1
  91. package/esm2015/datetimepicker/month-view.js +11 -3
  92. package/esm2015/datetimepicker/multi-year-view.js +11 -3
  93. package/esm2015/datetimepicker/year-view.js +11 -3
  94. package/esm2015/dialog/dialog.component.js +9 -2
  95. package/esm2015/dialog/dialog.js +9 -2
  96. package/esm2015/dialog/dialog.module.js +2 -1
  97. package/esm2015/extensions-experimental.module.js +2 -1
  98. package/esm2015/extensions.module.js +6 -3
  99. package/esm2015/form-group/form-group.component.js +10 -2
  100. package/esm2015/form-group/form-group.module.js +2 -1
  101. package/esm2015/grid/cell-selection.directive.js +62 -0
  102. package/esm2015/{data-grid → grid}/cell.component.js +10 -2
  103. package/esm2015/{data-grid → grid}/column-menu.component.js +3 -1
  104. package/esm2015/grid/column-resize/column-resize-directives/column-resize-flex.js +47 -0
  105. package/esm2015/grid/column-resize/column-resize-directives/column-resize.js +47 -0
  106. package/esm2015/grid/column-resize/column-resize-directives/common.js +34 -0
  107. package/esm2015/grid/column-resize/column-resize-module.js +36 -0
  108. package/esm2015/grid/column-resize/overlay-handle.js +68 -0
  109. package/esm2015/grid/column-resize/resizable-directives/common.js +29 -0
  110. package/esm2015/grid/column-resize/resizable-directives/resizable.js +75 -0
  111. package/esm2015/grid/column-resize/resize-strategy.js +45 -0
  112. package/esm2015/grid/expansion-toggle.directive.js +62 -0
  113. package/esm2015/{data-grid → grid}/grid.component.js +10 -2
  114. package/esm2015/grid/grid.interface.js +2 -0
  115. package/esm2015/grid/grid.module.js +69 -0
  116. package/esm2015/grid/grid.service.js +50 -0
  117. package/esm2015/grid/mtxGrid.js +5 -0
  118. package/esm2015/grid/public-api.js +17 -0
  119. package/esm2015/loader/loader.component.js +26 -5
  120. package/esm2015/loader/loader.module.js +2 -1
  121. package/esm2015/pipes/pipes.module.js +2 -1
  122. package/esm2015/pipes/to-observable.pipe.js +2 -1
  123. package/esm2015/popover/popover-module.js +2 -1
  124. package/esm2015/popover/popover-target.js +9 -2
  125. package/esm2015/popover/popover-trigger.js +10 -2
  126. package/esm2015/popover/popover.js +10 -2
  127. package/esm2015/progress/progress.component.js +20 -1
  128. package/esm2015/progress/progress.module.js +2 -1
  129. package/esm2015/public-api.js +4 -3
  130. package/esm2015/select/option.component.js +10 -2
  131. package/esm2015/select/select.component.js +10 -2
  132. package/esm2015/select/select.module.js +2 -1
  133. package/esm2015/select/templates.directive.js +89 -12
  134. package/esm2015/slider/mtxSlider.js +5 -0
  135. package/esm2015/slider/public-api.js +3 -0
  136. package/esm2015/slider/slider-module.js +15 -0
  137. package/esm2015/slider/slider.js +1115 -0
  138. package/esm2015/split/interface.js +2 -0
  139. package/esm2015/split/mtxSplit.js +5 -0
  140. package/esm2015/split/public-api.js +6 -0
  141. package/esm2015/split/split-pane.directive.js +156 -0
  142. package/esm2015/split/split.component.js +620 -0
  143. package/esm2015/split/split.module.js +15 -0
  144. package/esm2015/split/utils.js +227 -0
  145. package/esm2015/text3d/text3d.component.js +10 -2
  146. package/esm2015/text3d/text3d.module.js +2 -1
  147. package/esm2015/tooltip/tooltip-module.js +2 -1
  148. package/esm2015/tooltip/tooltip.js +18 -3
  149. package/extensions.metadata.json +1 -1
  150. package/fesm2015/extensions.js +9 -4
  151. package/fesm2015/extensions.js.map +1 -1
  152. package/fesm2015/mtxAlert.js +25 -10
  153. package/fesm2015/mtxAlert.js.map +1 -1
  154. package/fesm2015/mtxButton.js +31 -7
  155. package/fesm2015/mtxButton.js.map +1 -1
  156. package/fesm2015/mtxCheckboxGroup.js +10 -1
  157. package/fesm2015/mtxCheckboxGroup.js.map +1 -1
  158. package/fesm2015/mtxColorPicker.js +10 -1
  159. package/fesm2015/mtxColorPicker.js.map +1 -1
  160. package/fesm2015/mtxColumnResize.js +55 -6
  161. package/fesm2015/mtxColumnResize.js.map +1 -1
  162. package/fesm2015/mtxCore.js +10 -1
  163. package/fesm2015/mtxCore.js.map +1 -1
  164. package/fesm2015/mtxDatetimepicker.js +120 -29
  165. package/fesm2015/mtxDatetimepicker.js.map +1 -1
  166. package/fesm2015/mtxDialog.js +17 -2
  167. package/fesm2015/mtxDialog.js.map +1 -1
  168. package/fesm2015/mtxFormGroup.js +10 -1
  169. package/fesm2015/mtxFormGroup.js.map +1 -1
  170. package/fesm2015/mtxGrid.js +90 -10
  171. package/fesm2015/mtxGrid.js.map +1 -1
  172. package/fesm2015/mtxLoader.js +26 -4
  173. package/fesm2015/mtxLoader.js.map +1 -1
  174. package/fesm2015/mtxPipes.js +2 -0
  175. package/fesm2015/mtxPipes.js.map +1 -1
  176. package/fesm2015/mtxPopover.js +27 -3
  177. package/fesm2015/mtxPopover.js.map +1 -1
  178. package/fesm2015/mtxProgress.js +20 -0
  179. package/fesm2015/mtxProgress.js.map +1 -1
  180. package/fesm2015/mtxSelect.js +107 -13
  181. package/fesm2015/mtxSelect.js.map +1 -1
  182. package/fesm2015/mtxSlider.js +1134 -0
  183. package/fesm2015/mtxSlider.js.map +1 -0
  184. package/fesm2015/mtxSplit.js +21 -4
  185. package/fesm2015/mtxSplit.js.map +1 -1
  186. package/fesm2015/mtxText3d.js +10 -1
  187. package/fesm2015/mtxText3d.js.map +1 -1
  188. package/fesm2015/mtxTooltip.js +18 -2
  189. package/fesm2015/mtxTooltip.js.map +1 -1
  190. package/form-group/_form-group-theme.import.scss +2 -2
  191. package/form-group/_form-group-theme.scss +46 -22
  192. package/form-group/form-group.component.d.ts +2 -0
  193. package/grid/_grid-theme.import.scss +2 -0
  194. package/grid/_grid-theme.scss +114 -0
  195. package/{data-grid → grid}/cell-selection.directive.d.ts +0 -0
  196. package/{data-grid → grid}/cell.component.d.ts +0 -0
  197. package/{data-grid → grid}/cell.component.scss +0 -0
  198. package/{data-grid → grid}/column-menu.component.d.ts +0 -0
  199. package/{data-grid → grid}/column-menu.component.scss +0 -0
  200. package/{data-grid → grid}/column-resize/_column-resize.scss +19 -13
  201. package/{data-grid → grid}/column-resize/column-resize-directives/column-resize-flex.d.ts +0 -0
  202. package/{data-grid → grid}/column-resize/column-resize-directives/column-resize.d.ts +0 -0
  203. package/{data-grid → grid}/column-resize/column-resize-directives/common.d.ts +0 -0
  204. package/{data-grid → grid}/column-resize/column-resize-module.d.ts +0 -0
  205. package/{data-grid → grid}/column-resize/overlay-handle.d.ts +0 -0
  206. package/{data-grid → grid}/column-resize/resizable-directives/common.d.ts +0 -0
  207. package/{data-grid → grid}/column-resize/resizable-directives/resizable.d.ts +0 -0
  208. package/{data-grid → grid}/column-resize/resize-strategy.d.ts +0 -0
  209. package/{data-grid → grid}/expansion-toggle.directive.d.ts +0 -0
  210. package/{data-grid → grid}/grid.component.d.ts +0 -0
  211. package/{data-grid → grid}/grid.component.scss +0 -0
  212. package/{data-grid → grid}/grid.interface.d.ts +0 -0
  213. package/{data-grid → grid}/grid.module.d.ts +0 -0
  214. package/{data-grid → grid}/grid.service.d.ts +0 -0
  215. package/{data-grid → grid}/mtxGrid.d.ts +0 -0
  216. package/{data-grid → grid}/mtxGrid.metadata.json +1 -1
  217. package/{data-grid → grid}/package.json +2 -2
  218. package/{data-grid → grid}/public-api.d.ts +0 -0
  219. package/loader/_loader-theme.import.scss +2 -2
  220. package/loader/_loader-theme.scss +30 -6
  221. package/loader/loader.component.d.ts +9 -2
  222. package/loader/mtxLoader.metadata.json +1 -1
  223. package/package.json +3 -3
  224. package/popover/_popover-theme.import.scss +2 -2
  225. package/popover/_popover-theme.scss +32 -8
  226. package/progress/_progress-theme.import.scss +2 -2
  227. package/progress/_progress-theme.scss +33 -8
  228. package/progress/mtxProgress.metadata.json +1 -1
  229. package/progress/progress.component.d.ts +9 -2
  230. package/public-api.d.ts +3 -2
  231. package/select/_select-theme.import.scss +2 -2
  232. package/select/_select-theme.scss +55 -31
  233. package/slider/_slider-theme.import.scss +2 -0
  234. package/slider/_slider-theme.scss +233 -0
  235. package/{split-pane/mtxSplit.d.ts → slider/mtxSlider.d.ts} +0 -0
  236. package/slider/mtxSlider.metadata.json +1 -0
  237. package/slider/package.json +11 -0
  238. package/slider/public-api.d.ts +2 -0
  239. package/slider/slider-module.d.ts +2 -0
  240. package/slider/slider.d.ts +274 -0
  241. package/slider/slider.scss +513 -0
  242. package/split/_split-theme.import.scss +2 -0
  243. package/split/_split-theme.scss +41 -0
  244. package/{split-pane → split}/interface.d.ts +0 -0
  245. package/split/mtxSplit.d.ts +4 -0
  246. package/split/mtxSplit.metadata.json +1 -0
  247. package/{split-pane → split}/package.json +2 -2
  248. package/{split-pane → split}/public-api.d.ts +0 -0
  249. package/{split-pane → split}/split-pane.directive.d.ts +0 -0
  250. package/{split-pane → split}/split.component.d.ts +0 -0
  251. package/{split-pane → split}/split.component.scss +3 -2
  252. package/{split-pane → split}/split.module.d.ts +0 -0
  253. package/{split-pane → split}/utils.d.ts +0 -0
  254. package/text3d/_text3d-theme.import.scss +2 -2
  255. package/text3d/_text3d-theme.scss +32 -7
  256. package/tooltip/_tooltip-theme.import.scss +2 -2
  257. package/tooltip/_tooltip-theme.scss +32 -15
  258. package/data-grid/_grid-theme.import.scss +0 -2
  259. package/data-grid/_grid-theme.scss +0 -90
  260. package/esm2015/data-grid/cell-selection.directive.js +0 -54
  261. package/esm2015/data-grid/column-resize/column-resize-directives/column-resize-flex.js +0 -40
  262. package/esm2015/data-grid/column-resize/column-resize-directives/column-resize.js +0 -40
  263. package/esm2015/data-grid/column-resize/column-resize-directives/common.js +0 -34
  264. package/esm2015/data-grid/column-resize/column-resize-module.js +0 -34
  265. package/esm2015/data-grid/column-resize/overlay-handle.js +0 -61
  266. package/esm2015/data-grid/column-resize/resizable-directives/common.js +0 -29
  267. package/esm2015/data-grid/column-resize/resizable-directives/resizable.js +0 -67
  268. package/esm2015/data-grid/column-resize/resize-strategy.js +0 -38
  269. package/esm2015/data-grid/expansion-toggle.directive.js +0 -54
  270. package/esm2015/data-grid/grid.interface.js +0 -2
  271. package/esm2015/data-grid/grid.module.js +0 -68
  272. package/esm2015/data-grid/grid.service.js +0 -43
  273. package/esm2015/data-grid/mtxGrid.js +0 -5
  274. package/esm2015/data-grid/public-api.js +0 -17
  275. package/esm2015/split-pane/interface.js +0 -2
  276. package/esm2015/split-pane/mtxSplit.js +0 -5
  277. package/esm2015/split-pane/public-api.js +0 -6
  278. package/esm2015/split-pane/split-pane.directive.js +0 -148
  279. package/esm2015/split-pane/split.component.js +0 -612
  280. package/esm2015/split-pane/split.module.js +0 -14
  281. package/esm2015/split-pane/utils.js +0 -227
  282. package/split-pane/_split-theme.import.scss +0 -2
  283. package/split-pane/_split-theme.scss +0 -17
  284. package/split-pane/mtxSplit.metadata.json +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"mtxButton.umd.js","sources":["../../../projects/extensions/button/button-loading.directive.ts","../../../projects/extensions/button/button.module.ts","../../../projects/extensions/button/mtxButton.ts"],"sourcesContent":["import {\r\n ComponentFactory,\r\n ComponentFactoryResolver,\r\n ComponentRef,\r\n Directive,\r\n Input,\r\n OnChanges,\r\n Renderer2,\r\n SimpleChanges,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { MatButton } from '@angular/material/button';\r\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\r\n\r\n@Directive({\r\n selector: `button[mat-button][loading],\r\n button[mat-raised-button][loading],\r\n button[mat-stroked-button][loading],\r\n button[mat-flat-button][loading],\r\n button[mat-icon-button][loading],\r\n button[mat-fab][loading],\r\n button[mat-mini-fab][loading]`,\r\n})\r\nexport class MatButtonLoadingDirective implements OnChanges {\r\n private spinnerFactory: ComponentFactory<MatProgressSpinner>;\r\n private spinner!: ComponentRef<MatProgressSpinner> | null;\r\n\r\n @Input()\r\n loading!: boolean;\r\n\r\n @Input()\r\n disabled!: boolean;\r\n\r\n @Input()\r\n color: ThemePalette;\r\n\r\n constructor(\r\n private matButton: MatButton,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private viewContainerRef: ViewContainerRef,\r\n private renderer: Renderer2\r\n ) {\r\n this.spinnerFactory = this.componentFactoryResolver.resolveComponentFactory(MatProgressSpinner);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!changes.loading) {\r\n return;\r\n }\r\n\r\n if (changes.loading.currentValue) {\r\n this.matButton._elementRef.nativeElement.classList.add('mat-button-loading');\r\n this.matButton.disabled = true;\r\n this.createSpinner();\r\n } else if (!changes.loading.firstChange) {\r\n this.matButton._elementRef.nativeElement.classList.remove('mat-button-loading');\r\n this.matButton.disabled = this.disabled;\r\n this.destroySpinner();\r\n }\r\n }\r\n\r\n private createSpinner(): void {\r\n if (!this.spinner) {\r\n this.spinner = this.viewContainerRef.createComponent(this.spinnerFactory);\r\n this.spinner.instance.color = this.color;\r\n this.spinner.instance.diameter = 20;\r\n this.spinner.instance.mode = 'indeterminate';\r\n this.renderer.appendChild(\r\n this.matButton._elementRef.nativeElement,\r\n this.spinner.instance._elementRef.nativeElement\r\n );\r\n }\r\n }\r\n\r\n private destroySpinner(): void {\r\n if (this.spinner) {\r\n this.spinner.destroy();\r\n this.spinner = null;\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatButtonLoadingDirective } from './button-loading.directive';\n\n@NgModule({\n imports: [CommonModule, MatButtonModule, MatProgressSpinnerModule],\n exports: [MatButtonLoadingDirective],\n declarations: [MatButtonLoadingDirective],\n})\nexport class MtxButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["MatProgressSpinner","Directive","MatButton","ComponentFactoryResolver","ViewContainerRef","Renderer2","Input","NgModule","CommonModule","MatButtonModule","MatProgressSpinnerModule"],"mappings":";;;;;;;QAqCE,mCACU,SAAoB,EACpB,wBAAkD,EAClD,gBAAkC,EAClC,QAAmB;YAHnB,cAAS,GAAT,SAAS,CAAW;YACpB,6BAAwB,GAAxB,wBAAwB,CAA0B;YAClD,qBAAgB,GAAhB,gBAAgB,CAAkB;YAClC,aAAQ,GAAR,QAAQ,CAAW;YAE3B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAACA,kCAAkB,CAAC,CAAC;SACjG;QAED,+CAAW,GAAX,UAAY,OAAsB;YAChC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBACpB,OAAO;aACR;YAED,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE;gBAChC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;gBAC7E,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAC/B,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;iBAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE;gBACvC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;gBAChF,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACxC,IAAI,CAAC,cAAc,EAAE,CAAC;aACvB;SACF;QAEO,iDAAa,GAAb;YACN,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC1E,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACpC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,GAAG,eAAe,CAAC;gBAC7C,IAAI,CAAC,QAAQ,CAAC,WAAW,CACvB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,EACxC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,CAChD,CAAC;aACH;SACF;QAEO,kDAAc,GAAd;YACN,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;aACrB;SACF;;;;gBAjEFC,cAAS,SAAC;oBACT,QAAQ,EAAE,uTAM+B;iBAC1C;;;;gBAXQC,gBAAS;gBAVhBC,6BAAwB;gBAOxBC,qBAAgB;gBAFhBC,cAAS;;;0BAqBRC,UAAK;2BAGLA,UAAK;wBAGLA,UAAK;;;;QCtBR;;;;;gBALCC,aAAQ,SAAC;oBACR,OAAO,EAAE,CAACC,mBAAY,EAAEC,sBAAe,EAAEC,wCAAwB,CAAC;oBAClE,OAAO,EAAE,CAAC,yBAAyB,CAAC;oBACpC,YAAY,EAAE,CAAC,yBAAyB,CAAC;iBAC1C;;;ICXD;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"mtxButton.umd.js","sources":["../../../projects/extensions/button/button-loading.directive.ts","../../../projects/extensions/button/button.module.ts","../../../projects/extensions/button/mtxButton.ts"],"sourcesContent":["import {\n ComponentFactory,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n Input,\n OnChanges,\n Renderer2,\n SimpleChanges,\n ViewContainerRef,\n} from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatButton } from '@angular/material/button';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\n\n@Directive({\n selector: `button[mat-button][loading],\n button[mat-raised-button][loading],\n button[mat-stroked-button][loading],\n button[mat-flat-button][loading],\n button[mat-icon-button][loading],\n button[mat-fab][loading],\n button[mat-mini-fab][loading]`,\n})\nexport class MatButtonLoadingDirective implements OnChanges {\n private spinnerFactory: ComponentFactory<MatProgressSpinner>;\n private spinner!: ComponentRef<MatProgressSpinner> | null;\n\n @Input()\n get loading(): boolean {\n return this._loading;\n }\n set loading(value: boolean) {\n this._loading = coerceBooleanProperty(value);\n }\n private _loading = false;\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 @Input()\n color: ThemePalette;\n\n constructor(\n private matButton: MatButton,\n private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private renderer: Renderer2\n ) {\n this.spinnerFactory = this.componentFactoryResolver.resolveComponentFactory(MatProgressSpinner);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!changes.loading) {\n return;\n }\n\n if (changes.loading.currentValue) {\n this.matButton._elementRef.nativeElement.classList.add('mat-button-loading');\n this.matButton.disabled = true;\n this.createSpinner();\n } else if (!changes.loading.firstChange) {\n this.matButton._elementRef.nativeElement.classList.remove('mat-button-loading');\n this.matButton.disabled = this.disabled;\n this.destroySpinner();\n }\n }\n\n private createSpinner(): void {\n if (!this.spinner) {\n this.spinner = this.viewContainerRef.createComponent(this.spinnerFactory);\n this.spinner.instance.color = this.color;\n this.spinner.instance.diameter = 20;\n this.spinner.instance.mode = 'indeterminate';\n this.renderer.appendChild(\n this.matButton._elementRef.nativeElement,\n this.spinner.instance._elementRef.nativeElement\n );\n }\n }\n\n private destroySpinner(): void {\n if (this.spinner) {\n this.spinner.destroy();\n this.spinner = null;\n }\n }\n\n static ngAcceptInputType_loading: BooleanInput;\n static ngAcceptInputType_disabled: BooleanInput;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatButtonLoadingDirective } from './button-loading.directive';\n\n@NgModule({\n imports: [CommonModule, MatButtonModule, MatProgressSpinnerModule],\n exports: [MatButtonLoadingDirective],\n declarations: [MatButtonLoadingDirective],\n})\nexport class MtxButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["MatProgressSpinner","coerceBooleanProperty","Directive","MatButton","ComponentFactoryResolver","ViewContainerRef","Renderer2","Input","NgModule","CommonModule","MatButtonModule","MatProgressSpinnerModule"],"mappings":"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"}
@@ -211,6 +211,7 @@
211
211
  };
212
212
  return MtxCheckboxGroupComponent;
213
213
  }());
214
+ /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
214
215
  MtxCheckboxGroupComponent.decorators = [
215
216
  { type: core.Component, args: [{
216
217
  selector: 'mtx-checkbox-group',
@@ -231,12 +232,19 @@
231
232
  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"]
232
233
  },] }
233
234
  ];
234
- /** @nocollapse */
235
+ /**
236
+ * @type {function(): !Array<(null|{
237
+ * type: ?,
238
+ * decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
239
+ * })>}
240
+ * @nocollapse
241
+ */
235
242
  MtxCheckboxGroupComponent.ctorParameters = function () { return [
236
243
  { type: core.ChangeDetectorRef },
237
244
  { type: a11y.FocusMonitor },
238
245
  { type: core.ElementRef }
239
246
  ]; };
247
+ /** @type {!Object<string, !Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
240
248
  MtxCheckboxGroupComponent.propDecorators = {
241
249
  _checkboxes: [{ type: core.ContentChildren, args: [core.forwardRef(function () { return checkbox.MatCheckbox; }), { descendants: true },] }],
242
250
  items: [{ type: core.Input }],
@@ -254,6 +262,7 @@
254
262
  }
255
263
  return MtxCheckboxGroupModule;
256
264
  }());
265
+ /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
257
266
  MtxCheckboxGroupModule.decorators = [
258
267
  { type: core.NgModule, args: [{
259
268
  imports: [common.CommonModule, forms.FormsModule, checkbox.MatCheckboxModule, pipes.MtxPipesModule],
@@ -1 +1 @@
1
- {"version":3,"file":"mtxCheckboxGroup.umd.js","sources":["../../../projects/extensions/checkbox-group/checkbox-group.component.ts","../../../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 { ThemePalette } from '@angular/material/core';\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 color: ThemePalette = 'accent';\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[]) => {}): 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: () => {}): 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","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/pipes';\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":["EventEmitter","coerceBooleanProperty","Component","ViewEncapsulation","ChangeDetectionStrategy","NG_VALUE_ACCESSOR","forwardRef","ChangeDetectorRef","FocusMonitor","ElementRef","ContentChildren","MatCheckbox","Input","Output","NgModule","CommonModule","FormsModule","MatCheckboxModule","MtxPipesModule"],"mappings":"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"}
1
+ {"version":3,"file":"mtxCheckboxGroup.umd.js","sources":["../../../projects/extensions/checkbox-group/checkbox-group.component.ts","../../../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 { ThemePalette } from '@angular/material/core';\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 color: ThemePalette = 'accent';\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[]) => {}): 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: () => {}): 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","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/pipes';\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":["EventEmitter","coerceBooleanProperty","Component","ViewEncapsulation","ChangeDetectionStrategy","NG_VALUE_ACCESSOR","forwardRef","ChangeDetectorRef","FocusMonitor","ElementRef","ContentChildren","MatCheckbox","Input","Output","NgModule","CommonModule","FormsModule","MatCheckboxModule","MtxPipesModule"],"mappings":"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"}
@@ -263,6 +263,7 @@
263
263
  };
264
264
  return MtxColorPickerComponent;
265
265
  }());
266
+ /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
266
267
  MtxColorPickerComponent.decorators = [
267
268
  { type: core.Component, args: [{
268
269
  selector: 'mtx-color-picker',
@@ -274,7 +275,13 @@
274
275
  styles: [".mtx-color-picker-panel .mat-menu-content:not(:empty){padding:0}.mtx-color-picker-panel .mtx-color-picker{padding:8px}.mtx-color-picker-panel .mtx-color-picker .chrome-picker{box-shadow:none;border-radius:0}.mtx-color-picker-panel .mtx-color-picker .chrome-picker .saturation{border-radius:0}\n"]
275
276
  },] }
276
277
  ];
277
- /** @nocollapse */
278
+ /**
279
+ * @type {function(): !Array<(null|{
280
+ * type: ?,
281
+ * decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
282
+ * })>}
283
+ * @nocollapse
284
+ */
278
285
  MtxColorPickerComponent.ctorParameters = function () { return [
279
286
  { type: a11y.FocusMonitor },
280
287
  { type: core.ElementRef },
@@ -284,6 +291,7 @@
284
291
  { type: formField.MatFormField, decorators: [{ type: core.Optional }, { type: core.Host }] },
285
292
  { type: undefined, decorators: [{ type: core.Optional }, { type: core.Inject, args: [common.DOCUMENT,] }] }
286
293
  ]; };
294
+ /** @type {!Object<string, !Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
287
295
  MtxColorPickerComponent.propDecorators = {
288
296
  value: [{ type: core.Input }],
289
297
  id: [{ type: core.Input }],
@@ -300,6 +308,7 @@
300
308
  }
301
309
  return MtxColorPickerModule;
302
310
  }());
311
+ /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
303
312
  MtxColorPickerModule.decorators = [
304
313
  { type: core.NgModule, args: [{
305
314
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"mtxColorPicker.umd.js","sources":["../../../projects/extensions/color-picker/color-picker.component.ts","../../../projects/extensions/color-picker/color-picker.module.ts","../../../projects/extensions/color-picker/mtxColorPicker.ts"],"sourcesContent":["import {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n OnDestroy,\n Optional,\n Self,\n ElementRef,\n Input,\n Output,\n EventEmitter,\n Inject,\n DoCheck,\n ViewChild,\n Host,\n AfterViewInit,\n NgZone,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { _supportsShadowDom } from '@angular/cdk/platform';\nimport { MatFormFieldControl, MatFormField } from '@angular/material/form-field';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { Subject, Observable, merge, fromEvent, Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { ColorEvent } from 'ngx-color';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'mtx-color-picker',\n exportAs: 'mtxColorPicker',\n templateUrl: './color-picker.component.html',\n styleUrls: ['./color-picker.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: MatFormFieldControl, useExisting: MtxColorPickerComponent }],\n})\nexport class MtxColorPickerComponent\n implements OnDestroy, DoCheck, AfterViewInit, ControlValueAccessor, MatFormFieldControl<any>\n{\n /** Value of the color picker control. */\n @Input()\n get value(): string | null {\n return this._value;\n }\n set value(newValue: string | null) {\n this._value = newValue;\n this._onChange(newValue);\n this.stateChanges.next();\n }\n private _value: string | null = '';\n\n /** Implemented as part of MatFormFieldControl. */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n /** Unique id for this input. */\n private _uid = `mtx-color-picker-${nextUniqueId++}`;\n\n /** Unique id of the element. */\n @Input()\n get id(): string {\n return this._id;\n }\n set id(value: string) {\n this._id = value || this._uid;\n this.stateChanges.next();\n }\n private _id!: string;\n\n /** Placeholder to be shown if value is empty. */\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n set placeholder(value: string) {\n this._placeholder = value;\n this.stateChanges.next();\n }\n private _placeholder!: string;\n\n /** Whether the input is focused. */\n get focused(): boolean {\n return this._focused || this._panelOpen;\n }\n private _focused = false;\n\n get empty(): boolean {\n return !this.value;\n }\n\n get shouldLabelFloat(): boolean {\n return this.focused || !this.empty;\n }\n\n @Input()\n get required(): boolean {\n return this._required;\n }\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n private _required = false;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n private _disabled = false;\n\n /** Whether the element is readonly. */\n @Input()\n get readonly(): boolean {\n return this._readonly;\n }\n set readonly(value: boolean) {\n this._readonly = coerceBooleanProperty(value);\n }\n private _readonly = false;\n\n errorState = false;\n\n /** A name for this control that can be used by `mat-form-field`. */\n controlType = 'mtx-color-picker';\n\n /** The aria-describedby attribute on the color picker for improved a11y. */\n _ariaDescribedby!: string;\n\n /** `View -> model callback called when value changes` */\n _onChange: (value: any) => void = () => {};\n\n /** `View -> model callback called when color picker has been touched` */\n _onTouched = () => {};\n\n /** Event emitted when the color changed */\n @Output() readonly colorChange = new EventEmitter<ColorEvent>();\n\n @ViewChild(MatMenuTrigger, { static: true }) trigger!: MatMenuTrigger;\n\n /** Whether or not the overlay panel is open. */\n _panelOpen = false;\n\n /** The subscription for closing actions (some are bound to document). */\n private _closingActionsSubscription!: Subscription;\n\n /** Whether the element is inside of a ShadowRoot component. */\n private _isInsideShadowRoot!: boolean;\n\n /**\n * Whether the color picker can open the next time it is focused. Used to prevent a focused,\n * closed color picker from being reopened if the user switches to another browser tab and then\n * comes back.\n */\n private _canOpenOnNextFocus = true;\n\n /**\n * Event handler for when the window is blurred. Needs to be an\n * arrow function in order to preserve the context.\n */\n private _windowBlurHandler = () => {\n // If the user blurred the window while the color picker is focused, it means that it'll be\n // refocused when they come back. In this case we want to skip the first focus event, if the\n // pane was closed, in order to avoid reopening it unintentionally.\n this._canOpenOnNextFocus =\n this._document.activeElement !== this._elementRef.nativeElement || this._panelOpen;\n };\n\n constructor(\n private _focusMonitor: FocusMonitor,\n private _elementRef: ElementRef<HTMLElement>,\n private _changeDetectorRef: ChangeDetectorRef,\n private _zone: NgZone,\n @Optional() @Self() public ngControl: NgControl,\n @Optional() @Host() private _formField: MatFormField,\n @Optional() @Inject(DOCUMENT) private _document: any\n ) {\n _focusMonitor.monitor(_elementRef, true).subscribe(origin => {\n if (this._focused && !origin) {\n this._onTouched();\n }\n this._focused = !!origin;\n this.stateChanges.next();\n });\n\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngDoCheck(): void {\n if (this.ngControl) {\n this.errorState = (this.ngControl.invalid && this.ngControl.touched) as boolean;\n this.stateChanges.next();\n }\n }\n\n ngAfterViewInit() {\n if (typeof window !== 'undefined') {\n this._zone.runOutsideAngular(() => {\n window.addEventListener('blur', this._windowBlurHandler);\n });\n\n if (_supportsShadowDom()) {\n const element = this._elementRef.nativeElement;\n const rootNode = element.getRootNode ? element.getRootNode() : null;\n\n // We need to take the `ShadowRoot` off of `window`, because the built-in types are\n // incorrect. See https://github.com/Microsoft/TypeScript/issues/27929.\n this._isInsideShadowRoot = rootNode instanceof (window as any).ShadowRoot;\n }\n }\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n\n /** Implemented as part of MatFormFieldControl. */\n setDescribedByIds(ids: string[]) {\n this._ariaDescribedby = ids.join(' ');\n }\n\n /** Implemented as part of MatFormFieldControl. */\n onContainerClick() {\n this._handleFocus();\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: string | null): void {\n this.value = value || '';\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: any): 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: any): 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 /** Open panel with input focus event. */\n _handleFocus() {\n this.trigger.openMenu();\n\n this._closingActionsSubscription = merge(this._getOutsideClickStream())\n .pipe()\n .subscribe(event => {\n this.trigger.closeMenu();\n this._closingActionsSubscription.unsubscribe();\n });\n }\n\n /** Opens the overlay panel. */\n _openPanel() {\n if (this._focused) {\n this._panelOpen = true;\n }\n }\n\n /** Closes the overlay panel and focuses the host element. */\n _closePanel() {\n if (this._panelOpen) {\n this._panelOpen = false;\n this._changeDetectorRef.markForCheck();\n this._onTouched();\n }\n }\n\n /** The callback of color changed. */\n _onColorChanged(model: ColorEvent) {\n this.value = model.color.hex;\n this.colorChange.emit(model);\n }\n\n /** Stream of clicks outside of the color picker panel. */\n private _getOutsideClickStream(): Observable<any> {\n return merge(\n fromEvent(this._document, 'click') as Observable<MouseEvent>,\n fromEvent(this._document, 'touchend') as Observable<TouchEvent>\n ).pipe(\n filter(event => {\n // If we're in the Shadow DOM, the event target will be the shadow root, so we have to\n // fall back to check the first element in the path of the click event.\n const clickTarget = (\n this._isInsideShadowRoot && event.composedPath ? event.composedPath()[0] : event.target\n ) as HTMLElement;\n const formField = this._formField ? this._formField._elementRef.nativeElement : null;\n\n return (\n clickTarget !== this._elementRef.nativeElement &&\n (!formField || !formField.contains(clickTarget))\n );\n })\n );\n }\n\n static ngAcceptInputType_required: BooleanInput;\n static ngAcceptInputType_readonly: BooleanInput;\n static ngAcceptInputType_disabled: BooleanInput;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { ColorChromeModule } from 'ngx-color/chrome';\n\nimport { MtxColorPickerComponent } from './color-picker.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatMenuModule,\n MatFormFieldModule,\n MatInputModule,\n ColorChromeModule,\n ],\n exports: [MtxColorPickerComponent],\n declarations: [MtxColorPickerComponent],\n})\nexport class MtxColorPickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Subject","EventEmitter","coerceBooleanProperty","_supportsShadowDom","merge","fromEvent","filter","Component","ViewEncapsulation","ChangeDetectionStrategy","MatFormFieldControl","FocusMonitor","ElementRef","ChangeDetectorRef","NgZone","NgControl","Optional","Self","MatFormField","Host","Inject","DOCUMENT","Input","Output","ViewChild","MatMenuTrigger","NgModule","CommonModule","FormsModule","MatMenuModule","MatFormFieldModule","MatInputModule","ColorChromeModule"],"mappings":"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"}
1
+ {"version":3,"file":"mtxColorPicker.umd.js","sources":["../../../projects/extensions/color-picker/color-picker.component.ts","../../../projects/extensions/color-picker/color-picker.module.ts","../../../projects/extensions/color-picker/mtxColorPicker.ts"],"sourcesContent":["import {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n OnDestroy,\n Optional,\n Self,\n ElementRef,\n Input,\n Output,\n EventEmitter,\n Inject,\n DoCheck,\n ViewChild,\n Host,\n AfterViewInit,\n NgZone,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { _supportsShadowDom } from '@angular/cdk/platform';\nimport { MatFormFieldControl, MatFormField } from '@angular/material/form-field';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { Subject, Observable, merge, fromEvent, Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { ColorEvent } from 'ngx-color';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'mtx-color-picker',\n exportAs: 'mtxColorPicker',\n templateUrl: './color-picker.component.html',\n styleUrls: ['./color-picker.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: MatFormFieldControl, useExisting: MtxColorPickerComponent }],\n})\nexport class MtxColorPickerComponent\n implements OnDestroy, DoCheck, AfterViewInit, ControlValueAccessor, MatFormFieldControl<any>\n{\n /** Value of the color picker control. */\n @Input()\n get value(): string | null {\n return this._value;\n }\n set value(newValue: string | null) {\n this._value = newValue;\n this._onChange(newValue);\n this.stateChanges.next();\n }\n private _value: string | null = '';\n\n /** Implemented as part of MatFormFieldControl. */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n /** Unique id for this input. */\n private _uid = `mtx-color-picker-${nextUniqueId++}`;\n\n /** Unique id of the element. */\n @Input()\n get id(): string {\n return this._id;\n }\n set id(value: string) {\n this._id = value || this._uid;\n this.stateChanges.next();\n }\n private _id!: string;\n\n /** Placeholder to be shown if value is empty. */\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n set placeholder(value: string) {\n this._placeholder = value;\n this.stateChanges.next();\n }\n private _placeholder!: string;\n\n /** Whether the input is focused. */\n get focused(): boolean {\n return this._focused || this._panelOpen;\n }\n private _focused = false;\n\n get empty(): boolean {\n return !this.value;\n }\n\n get shouldLabelFloat(): boolean {\n return this.focused || !this.empty;\n }\n\n @Input()\n get required(): boolean {\n return this._required;\n }\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n private _required = false;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n private _disabled = false;\n\n /** Whether the element is readonly. */\n @Input()\n get readonly(): boolean {\n return this._readonly;\n }\n set readonly(value: boolean) {\n this._readonly = coerceBooleanProperty(value);\n }\n private _readonly = false;\n\n errorState = false;\n\n /** A name for this control that can be used by `mat-form-field`. */\n controlType = 'mtx-color-picker';\n\n /** The aria-describedby attribute on the color picker for improved a11y. */\n _ariaDescribedby!: string;\n\n /** `View -> model callback called when value changes` */\n _onChange: (value: any) => void = () => {};\n\n /** `View -> model callback called when color picker has been touched` */\n _onTouched = () => {};\n\n /** Event emitted when the color changed */\n @Output() readonly colorChange = new EventEmitter<ColorEvent>();\n\n @ViewChild(MatMenuTrigger, { static: true }) trigger!: MatMenuTrigger;\n\n /** Whether or not the overlay panel is open. */\n _panelOpen = false;\n\n /** The subscription for closing actions (some are bound to document). */\n private _closingActionsSubscription!: Subscription;\n\n /** Whether the element is inside of a ShadowRoot component. */\n private _isInsideShadowRoot!: boolean;\n\n /**\n * Whether the color picker can open the next time it is focused. Used to prevent a focused,\n * closed color picker from being reopened if the user switches to another browser tab and then\n * comes back.\n */\n private _canOpenOnNextFocus = true;\n\n /**\n * Event handler for when the window is blurred. Needs to be an\n * arrow function in order to preserve the context.\n */\n private _windowBlurHandler = () => {\n // If the user blurred the window while the color picker is focused, it means that it'll be\n // refocused when they come back. In this case we want to skip the first focus event, if the\n // pane was closed, in order to avoid reopening it unintentionally.\n this._canOpenOnNextFocus =\n this._document.activeElement !== this._elementRef.nativeElement || this._panelOpen;\n };\n\n constructor(\n private _focusMonitor: FocusMonitor,\n private _elementRef: ElementRef<HTMLElement>,\n private _changeDetectorRef: ChangeDetectorRef,\n private _zone: NgZone,\n @Optional() @Self() public ngControl: NgControl,\n @Optional() @Host() private _formField: MatFormField,\n @Optional() @Inject(DOCUMENT) private _document: any\n ) {\n _focusMonitor.monitor(_elementRef, true).subscribe(origin => {\n if (this._focused && !origin) {\n this._onTouched();\n }\n this._focused = !!origin;\n this.stateChanges.next();\n });\n\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngDoCheck(): void {\n if (this.ngControl) {\n this.errorState = (this.ngControl.invalid && this.ngControl.touched) as boolean;\n this.stateChanges.next();\n }\n }\n\n ngAfterViewInit() {\n if (typeof window !== 'undefined') {\n this._zone.runOutsideAngular(() => {\n window.addEventListener('blur', this._windowBlurHandler);\n });\n\n if (_supportsShadowDom()) {\n const element = this._elementRef.nativeElement;\n const rootNode = element.getRootNode ? element.getRootNode() : null;\n\n // We need to take the `ShadowRoot` off of `window`, because the built-in types are\n // incorrect. See https://github.com/Microsoft/TypeScript/issues/27929.\n this._isInsideShadowRoot = rootNode instanceof (window as any).ShadowRoot;\n }\n }\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n\n /** Implemented as part of MatFormFieldControl. */\n setDescribedByIds(ids: string[]) {\n this._ariaDescribedby = ids.join(' ');\n }\n\n /** Implemented as part of MatFormFieldControl. */\n onContainerClick() {\n this._handleFocus();\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: string | null): void {\n this.value = value || '';\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: any): 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: any): 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 /** Open panel with input focus event. */\n _handleFocus() {\n this.trigger.openMenu();\n\n this._closingActionsSubscription = merge(this._getOutsideClickStream())\n .pipe()\n .subscribe(event => {\n this.trigger.closeMenu();\n this._closingActionsSubscription.unsubscribe();\n });\n }\n\n /** Opens the overlay panel. */\n _openPanel() {\n if (this._focused) {\n this._panelOpen = true;\n }\n }\n\n /** Closes the overlay panel and focuses the host element. */\n _closePanel() {\n if (this._panelOpen) {\n this._panelOpen = false;\n this._changeDetectorRef.markForCheck();\n this._onTouched();\n }\n }\n\n /** The callback of color changed. */\n _onColorChanged(model: ColorEvent) {\n this.value = model.color.hex;\n this.colorChange.emit(model);\n }\n\n /** Stream of clicks outside of the color picker panel. */\n private _getOutsideClickStream(): Observable<any> {\n return merge(\n fromEvent(this._document, 'click') as Observable<MouseEvent>,\n fromEvent(this._document, 'touchend') as Observable<TouchEvent>\n ).pipe(\n filter(event => {\n // If we're in the Shadow DOM, the event target will be the shadow root, so we have to\n // fall back to check the first element in the path of the click event.\n const clickTarget = (\n this._isInsideShadowRoot && event.composedPath ? event.composedPath()[0] : event.target\n ) as HTMLElement;\n const formField = this._formField ? this._formField._elementRef.nativeElement : null;\n\n return (\n clickTarget !== this._elementRef.nativeElement &&\n (!formField || !formField.contains(clickTarget))\n );\n })\n );\n }\n\n static ngAcceptInputType_required: BooleanInput;\n static ngAcceptInputType_readonly: BooleanInput;\n static ngAcceptInputType_disabled: BooleanInput;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { ColorChromeModule } from 'ngx-color/chrome';\n\nimport { MtxColorPickerComponent } from './color-picker.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatMenuModule,\n MatFormFieldModule,\n MatInputModule,\n ColorChromeModule,\n ],\n exports: [MtxColorPickerComponent],\n declarations: [MtxColorPickerComponent],\n})\nexport class MtxColorPickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Subject","EventEmitter","coerceBooleanProperty","_supportsShadowDom","merge","fromEvent","filter","Component","ViewEncapsulation","ChangeDetectionStrategy","MatFormFieldControl","FocusMonitor","ElementRef","ChangeDetectorRef","NgZone","NgControl","Optional","Self","MatFormField","Host","Inject","DOCUMENT","Input","Output","ViewChild","MatMenuTrigger","NgModule","CommonModule","FormsModule","MatMenuModule","MatFormFieldModule","MatInputModule","ColorChromeModule"],"mappings":"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"}
@@ -437,6 +437,7 @@
437
437
  };
438
438
  return ColumnResize;
439
439
  }());
440
+ /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
440
441
  ColumnResize.decorators = [
441
442
  { type: core.Directive }
442
443
  ];
@@ -463,6 +464,7 @@
463
464
  }
464
465
  return ColumnResizeNotifierSource;
465
466
  }());
467
+ /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
466
468
  ColumnResizeNotifierSource.decorators = [
467
469
  { type: core.Injectable }
468
470
  ];
@@ -479,10 +481,17 @@
479
481
  };
480
482
  return ColumnResizeNotifier;
481
483
  }());
484
+ /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
482
485
  ColumnResizeNotifier.decorators = [
483
486
  { type: core.Injectable }
484
487
  ];
485
- /** @nocollapse */
488
+ /**
489
+ * @type {function(): !Array<(null|{
490
+ * type: ?,
491
+ * decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
492
+ * })>}
493
+ * @nocollapse
494
+ */
486
495
  ColumnResizeNotifier.ctorParameters = function () { return [
487
496
  { type: ColumnResizeNotifierSource }
488
497
  ]; };
@@ -540,10 +549,17 @@
540
549
  };
541
550
  return HeaderRowEventDispatcher;
542
551
  }());
552
+ /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
543
553
  HeaderRowEventDispatcher.decorators = [
544
554
  { type: core.Injectable }
545
555
  ];
546
- /** @nocollapse */
556
+ /**
557
+ * @type {function(): !Array<(null|{
558
+ * type: ?,
559
+ * decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
560
+ * })>}
561
+ * @nocollapse
562
+ */
547
563
  HeaderRowEventDispatcher.ctorParameters = function () { return [
548
564
  { type: core.NgZone }
549
565
  ]; };
@@ -575,6 +591,7 @@
575
591
  };
576
592
  return ResizeStrategy;
577
593
  }());
594
+ /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
578
595
  ResizeStrategy.decorators = [
579
596
  { type: core.Injectable }
580
597
  ];
@@ -616,10 +633,17 @@
616
633
  };
617
634
  return TableLayoutFixedResizeStrategy;
618
635
  }(ResizeStrategy));
636
+ /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
619
637
  TableLayoutFixedResizeStrategy.decorators = [
620
638
  { type: core.Injectable }
621
639
  ];
622
- /** @nocollapse */
640
+ /**
641
+ * @type {function(): !Array<(null|{
642
+ * type: ?,
643
+ * decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
644
+ * })>}
645
+ * @nocollapse
646
+ */
623
647
  TableLayoutFixedResizeStrategy.ctorParameters = function () { return [
624
648
  { type: ColumnResize },
625
649
  { type: table._CoalescedStyleScheduler, decorators: [{ type: core.Inject, args: [table._COALESCED_STYLE_SCHEDULER,] }] },
@@ -738,10 +762,17 @@
738
762
  };
739
763
  return CdkFlexTableResizeStrategy;
740
764
  }(ResizeStrategy));
765
+ /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
741
766
  CdkFlexTableResizeStrategy.decorators = [
742
767
  { type: core.Injectable }
743
768
  ];
744
- /** @nocollapse */
769
+ /**
770
+ * @type {function(): !Array<(null|{
771
+ * type: ?,
772
+ * decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
773
+ * })>}
774
+ * @nocollapse
775
+ */
745
776
  CdkFlexTableResizeStrategy.ctorParameters = function () { return [
746
777
  { type: ColumnResize },
747
778
  { type: table._CoalescedStyleScheduler, decorators: [{ type: core.Inject, args: [table._COALESCED_STYLE_SCHEDULER,] }] },
@@ -804,6 +835,7 @@
804
835
  }
805
836
  return CdkColumnResize;
806
837
  }(ColumnResize));
838
+ /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
807
839
  CdkColumnResize.decorators = [
808
840
  { type: core.Directive, args: [{
809
841
  selector: 'table[cdk-table][columnResize]',
@@ -812,7 +844,13 @@
812
844
  ]),
813
845
  },] }
814
846
  ];
815
- /** @nocollapse */
847
+ /**
848
+ * @type {function(): !Array<(null|{
849
+ * type: ?,
850
+ * decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
851
+ * })>}
852
+ * @nocollapse
853
+ */
816
854
  CdkColumnResize.ctorParameters = function () { return [
817
855
  { type: ColumnResizeNotifier },
818
856
  { type: core.ElementRef },
@@ -840,6 +878,7 @@
840
878
  }
841
879
  return CdkColumnResizeFlex;
842
880
  }(ColumnResize));
881
+ /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
843
882
  CdkColumnResizeFlex.decorators = [
844
883
  { type: core.Directive, args: [{
845
884
  selector: 'cdk-table[columnResize]',
@@ -848,7 +887,13 @@
848
887
  ]),
849
888
  },] }
850
889
  ];
851
- /** @nocollapse */
890
+ /**
891
+ * @type {function(): !Array<(null|{
892
+ * type: ?,
893
+ * decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
894
+ * })>}
895
+ * @nocollapse
896
+ */
852
897
  CdkColumnResizeFlex.ctorParameters = function () { return [
853
898
  { type: ColumnResizeNotifier },
854
899
  { type: core.ElementRef },
@@ -874,6 +919,7 @@
874
919
  }
875
920
  return CdkColumnResizeModule;
876
921
  }());
922
+ /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
877
923
  CdkColumnResizeModule.decorators = [
878
924
  { type: core.NgModule, args: [{
879
925
  declarations: [CdkColumnResize, CdkColumnResizeFlex],
@@ -896,6 +942,7 @@
896
942
  }
897
943
  return ColumnSizeStore;
898
944
  }());
945
+ /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
899
946
  ColumnSizeStore.decorators = [
900
947
  { type: core.Injectable }
901
948
  ];
@@ -1118,6 +1165,7 @@
1118
1165
  };
1119
1166
  return Resizable;
1120
1167
  }());
1168
+ /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
1121
1169
  Resizable.decorators = [
1122
1170
  { type: core.Directive }
1123
1171
  ];
@@ -1257,6 +1305,7 @@
1257
1305
  };
1258
1306
  return ResizeOverlayHandle;
1259
1307
  }());
1308
+ /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
1260
1309
  ResizeOverlayHandle.decorators = [
1261
1310
  { type: core.Directive }
1262
1311
  ];