@ng-matero/extensions 10.16.1 → 10.16.5

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 (116) hide show
  1. package/alert/_alert-theme.scss +20 -20
  2. package/alert/alert.component.d.ts +4 -3
  3. package/alert/mtxAlert.metadata.json +1 -1
  4. package/bundles/mtxAlert.umd.js +3 -3
  5. package/bundles/mtxAlert.umd.js.map +1 -1
  6. package/bundles/mtxAlert.umd.min.js.map +1 -1
  7. package/bundles/{ng-matero-extensions-button.umd.js → mtxButton.umd.js} +2 -2
  8. package/bundles/mtxButton.umd.js.map +1 -0
  9. package/bundles/{ng-matero-extensions-button.umd.min.js → mtxButton.umd.min.js} +1 -1
  10. package/bundles/{ng-matero-extensions-button.umd.min.js.map → mtxButton.umd.min.js.map} +0 -0
  11. package/bundles/mtxCheckboxGroup.umd.js +87 -22
  12. package/bundles/mtxCheckboxGroup.umd.js.map +1 -1
  13. package/bundles/mtxCheckboxGroup.umd.min.js +1 -1
  14. package/bundles/mtxCheckboxGroup.umd.min.js.map +1 -1
  15. package/bundles/mtxColorPicker.umd.js +32 -5
  16. package/bundles/mtxColorPicker.umd.js.map +1 -1
  17. package/bundles/mtxColorPicker.umd.min.js +1 -1
  18. package/bundles/mtxColorPicker.umd.min.js.map +1 -1
  19. package/bundles/mtxDialog.umd.js +0 -2
  20. package/bundles/mtxDialog.umd.js.map +1 -1
  21. package/bundles/mtxDialog.umd.min.js +1 -1
  22. package/bundles/mtxDialog.umd.min.js.map +1 -1
  23. package/bundles/mtxFormGroup.umd.js +2 -0
  24. package/bundles/mtxFormGroup.umd.js.map +1 -1
  25. package/bundles/mtxFormGroup.umd.min.js +1 -1
  26. package/bundles/mtxFormGroup.umd.min.js.map +1 -1
  27. package/bundles/mtxGrid.umd.js +31 -101
  28. package/bundles/mtxGrid.umd.js.map +1 -1
  29. package/bundles/mtxGrid.umd.min.js +2 -2
  30. package/bundles/mtxGrid.umd.min.js.map +1 -1
  31. package/bundles/mtxLoader.umd.js +1 -1
  32. package/bundles/mtxLoader.umd.js.map +1 -1
  33. package/bundles/mtxLoader.umd.min.js +1 -1
  34. package/bundles/mtxLoader.umd.min.js.map +1 -1
  35. package/bundles/mtxProgress.umd.js +2 -2
  36. package/bundles/mtxProgress.umd.js.map +1 -1
  37. package/bundles/mtxProgress.umd.min.js.map +1 -1
  38. package/bundles/mtxSelect.umd.js +5 -1
  39. package/bundles/mtxSelect.umd.js.map +1 -1
  40. package/bundles/mtxSelect.umd.min.js +1 -1
  41. package/bundles/mtxSelect.umd.min.js.map +1 -1
  42. package/bundles/mtxTooltip.umd.js +1 -1
  43. package/bundles/mtxTooltip.umd.js.map +1 -1
  44. package/bundles/mtxTooltip.umd.min.js +1 -1
  45. package/bundles/mtxTooltip.umd.min.js.map +1 -1
  46. package/bundles/mtxUtils.umd.js.map +1 -1
  47. package/bundles/mtxUtils.umd.min.js.map +1 -1
  48. package/button/{ng-matero-extensions-button.d.ts → mtxButton.d.ts} +0 -0
  49. package/button/{ng-matero-extensions-button.metadata.json → mtxButton.metadata.json} +0 -0
  50. package/button/package.json +7 -7
  51. package/checkbox-group/checkbox-group.component.d.ts +15 -11
  52. package/checkbox-group/mtxCheckboxGroup.metadata.json +1 -1
  53. package/color-picker/color-picker.component.d.ts +10 -9
  54. package/color-picker/mtxColorPicker.metadata.json +1 -1
  55. package/data-grid/_grid-theme.scss +14 -32
  56. package/data-grid/cell.component.d.ts +2 -1
  57. package/data-grid/column-menu.component.d.ts +4 -3
  58. package/data-grid/grid.component.d.ts +7 -20
  59. package/data-grid/grid.component.scss +51 -5
  60. package/data-grid/grid.interface.d.ts +18 -36
  61. package/data-grid/mtxGrid.metadata.json +1 -1
  62. package/dialog/dialog.config.d.ts +3 -2
  63. package/dialog/mtxDialog.metadata.json +1 -1
  64. package/esm2015/alert/alert.component.js +4 -4
  65. package/esm2015/button/mtxButton.js +10 -0
  66. package/esm2015/checkbox-group/checkbox-group.component.js +77 -20
  67. package/esm2015/color-picker/color-picker.component.js +29 -6
  68. package/esm2015/data-grid/cell.component.js +2 -2
  69. package/esm2015/data-grid/column-menu.component.js +1 -2
  70. package/esm2015/data-grid/grid.component.js +32 -100
  71. package/esm2015/data-grid/grid.interface.js +12 -11
  72. package/esm2015/dialog/dialog.config.js +1 -1
  73. package/esm2015/dialog/dialog.js +1 -3
  74. package/esm2015/form-group/form-group.component.js +4 -2
  75. package/esm2015/loader/loader.component.js +2 -2
  76. package/esm2015/progress/progress.component.js +3 -3
  77. package/esm2015/select/select.component.js +6 -2
  78. package/esm2015/tooltip/tooltip.js +2 -2
  79. package/esm2015/utils/to-observable.pipe.js +1 -1
  80. package/fesm2015/mtxAlert.js +3 -3
  81. package/fesm2015/mtxAlert.js.map +1 -1
  82. package/fesm2015/{ng-matero-extensions-button.js → mtxButton.js} +2 -2
  83. package/fesm2015/mtxButton.js.map +1 -0
  84. package/fesm2015/mtxCheckboxGroup.js +76 -19
  85. package/fesm2015/mtxCheckboxGroup.js.map +1 -1
  86. package/fesm2015/mtxColorPicker.js +28 -5
  87. package/fesm2015/mtxColorPicker.js.map +1 -1
  88. package/fesm2015/mtxDialog.js +0 -2
  89. package/fesm2015/mtxDialog.js.map +1 -1
  90. package/fesm2015/mtxFormGroup.js +3 -1
  91. package/fesm2015/mtxFormGroup.js.map +1 -1
  92. package/fesm2015/mtxGrid.js +43 -111
  93. package/fesm2015/mtxGrid.js.map +1 -1
  94. package/fesm2015/mtxLoader.js +1 -1
  95. package/fesm2015/mtxLoader.js.map +1 -1
  96. package/fesm2015/mtxProgress.js +2 -2
  97. package/fesm2015/mtxProgress.js.map +1 -1
  98. package/fesm2015/mtxSelect.js +5 -1
  99. package/fesm2015/mtxSelect.js.map +1 -1
  100. package/fesm2015/mtxTooltip.js +1 -1
  101. package/fesm2015/mtxTooltip.js.map +1 -1
  102. package/fesm2015/mtxUtils.js.map +1 -1
  103. package/form-group/mtxFormGroup.metadata.json +1 -1
  104. package/loader/loader.component.d.ts +2 -1
  105. package/loader/mtxLoader.metadata.json +1 -1
  106. package/package.json +1 -1
  107. package/progress/mtxProgress.metadata.json +1 -1
  108. package/progress/progress.component.d.ts +3 -2
  109. package/select/_select-theme.scss +18 -18
  110. package/select/mtxSelect.metadata.json +1 -1
  111. package/select/select.component.d.ts +4 -1
  112. package/tooltip/mtxTooltip.metadata.json +1 -1
  113. package/utils/to-observable.pipe.d.ts +1 -1
  114. package/bundles/ng-matero-extensions-button.umd.js.map +0 -1
  115. package/esm2015/button/ng-matero-extensions-button.js +0 -10
  116. package/fesm2015/ng-matero-extensions-button.js.map +0 -1
@@ -5,29 +5,29 @@
5
5
 
6
6
  .mtx-alert-ref {
7
7
  background-color: mat-color($background, card);
8
+ }
8
9
 
9
- .mtx-alert-info & {
10
- background-color: mat-color($mat-blue, 500);
11
- border-color: mat-color($mat-blue, 500);
12
- color: white;
13
- }
10
+ .mtx-alert-info .mtx-alert-ref {
11
+ background-color: mat-color($mat-blue, 500);
12
+ border-color: mat-color($mat-blue, 500);
13
+ color: white;
14
+ }
14
15
 
15
- .mtx-alert-success & {
16
- background-color: mat-color($mat-green, 500);
17
- border-color: mat-color($mat-green, 500);
18
- color: white;
19
- }
16
+ .mtx-alert-success .mtx-alert-ref {
17
+ background-color: mat-color($mat-green, 500);
18
+ border-color: mat-color($mat-green, 500);
19
+ color: white;
20
+ }
20
21
 
21
- .mtx-alert-warning & {
22
- background-color: mat-color($mat-orange, 500);
23
- border-color: mat-color($mat-orange, 500);
24
- color: white;
25
- }
22
+ .mtx-alert-warning .mtx-alert-ref {
23
+ background-color: mat-color($mat-orange, 500);
24
+ border-color: mat-color($mat-orange, 500);
25
+ color: white;
26
+ }
26
27
 
27
- .mtx-alert-danger & {
28
- background-color: mat-color($mat-red, 500);
29
- border-color: mat-color($mat-red, 500);
30
- color: white;
31
- }
28
+ .mtx-alert-danger .mtx-alert-ref {
29
+ background-color: mat-color($mat-red, 500);
30
+ border-color: mat-color($mat-red, 500);
31
+ color: white;
32
32
  }
33
33
  }
@@ -1,14 +1,15 @@
1
1
  import { EventEmitter, ChangeDetectorRef } from '@angular/core';
2
+ export declare type MtxAlertType = 'default' | 'info' | 'success' | 'warning' | 'danger';
2
3
  export declare class MtxAlertComponent {
3
4
  private _changeDetectorRef;
4
5
  get hostClassList(): string;
5
- /** Alert types */
6
- type: 'default' | 'info' | 'success' | 'warning' | 'danger';
6
+ /** The alert type */
7
+ type: MtxAlertType;
7
8
  /** Whether alert visible */
8
9
  isOpen: boolean;
9
10
  /** Whether displays an inline "Close" button */
10
11
  dismissible: boolean;
11
- /** Text color */
12
+ /** The alert text color */
12
13
  color: string;
13
14
  /** Material elevation */
14
15
  elevation: number;
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"MtxAlertModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":6,"character":12}],"exports":[{"__symbolic":"reference","name":"MtxAlertComponent"}],"declarations":[{"__symbolic":"reference","name":"MtxAlertComponent"}]}]}],"members":{}},"MtxAlertComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"mtx-alert","exportAs":"mtxAlert","host":{"class":"mtx-alert"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":19,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":20,"character":19},"member":"OnPush"},"template":"<ng-template [ngIf]=\"isOpen\">\n <div [ngClass]=\"['mtx-alert-ref',\n 'mtx-alert-ref-' + type,\n 'mat-elevation-z' + elevation,\n dismissible ? 'mtx-alert-dismissible' : '']\"\n role=\"alert\">\n <ng-content></ng-content>\n <ng-template [ngIf]=\"dismissible\">\n <button type=\"button\" class=\"mtx-alert-close\" aria-label=\"Close\" (click)=\"_onClosed()\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </ng-template>\n </div>\n</ng-template>\n","styles":[".mtx-alert-ref{border:1px solid transparent;border-radius:.25rem;margin-bottom:1rem;padding:.75rem 1.25rem;position:relative}.mtx-alert-close{background-color:transparent;border:0;bottom:0;color:inherit;cursor:pointer;font-size:1.5rem;line-height:1;opacity:.5;padding:0 1.25rem;position:absolute;right:0;top:0}[dir=rtl] .mtx-alert-close{left:0;right:auto}.mtx-alert-close:hover{opacity:.75}.mtx-alert-dismissible{padding-right:4rem}"]}]}],"members":{"hostClassList":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":23,"character":3},"arguments":["class"]}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"isOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"dismissible":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"color":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"elevation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"closed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":43,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":45,"character":42}]}],"_onClosed":[{"__symbolic":"method"}]}}},"origins":{"MtxAlertModule":"./alert.module","MtxAlertComponent":"./alert.component"},"importAs":"@ng-matero/extensions/alert"}
1
+ {"__symbolic":"module","version":4,"metadata":{"MtxAlertModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":6,"character":12}],"exports":[{"__symbolic":"reference","name":"MtxAlertComponent"}],"declarations":[{"__symbolic":"reference","name":"MtxAlertComponent"}]}]}],"members":{}},"MtxAlertType":{"__symbolic":"interface"},"MtxAlertComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":13,"character":1},"arguments":[{"selector":"mtx-alert","exportAs":"mtxAlert","host":{"class":"mtx-alert"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":21,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":22,"character":19},"member":"OnPush"},"template":"<ng-template [ngIf]=\"isOpen\">\n <div [ngClass]=\"['mtx-alert-ref',\n 'mtx-alert-ref-' + type,\n 'mat-elevation-z' + elevation,\n dismissible ? 'mtx-alert-dismissible' : '']\"\n role=\"alert\">\n <ng-content></ng-content>\n <ng-template [ngIf]=\"dismissible\">\n <button type=\"button\" class=\"mtx-alert-close\" aria-label=\"Close\" (click)=\"_onClosed()\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </ng-template>\n </div>\n</ng-template>\n","styles":[".mtx-alert-ref{border:1px solid transparent;border-radius:.25rem;margin-bottom:1rem;padding:.75rem 1.25rem;position:relative}.mtx-alert-close{background-color:transparent;border:0;bottom:0;color:inherit;cursor:pointer;font-size:1.5rem;line-height:1;opacity:.5;padding:0 1.25rem;position:absolute;right:0;top:0}[dir=rtl] .mtx-alert-close{left:0;right:auto}.mtx-alert-close:hover{opacity:.75}.mtx-alert-dismissible{padding-right:4rem}"]}]}],"members":{"hostClassList":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":25,"character":3},"arguments":["class"]}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"isOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"dismissible":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"color":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"elevation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":3}}]}],"closed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":45,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":47,"character":42}]}],"_onClosed":[{"__symbolic":"method"}]}}},"origins":{"MtxAlertModule":"./alert.module","MtxAlertType":"./alert.component","MtxAlertComponent":"./alert.component"},"importAs":"@ng-matero/extensions/alert"}
@@ -16,7 +16,7 @@
16
16
  function MtxAlertComponent(_changeDetectorRef) {
17
17
  this._changeDetectorRef = _changeDetectorRef;
18
18
  /**
19
- * Alert types
19
+ * The alert type
20
20
  */
21
21
  this.type = 'default';
22
22
  /**
@@ -80,7 +80,7 @@
80
80
  };
81
81
  if (false) {
82
82
  /**
83
- * Alert types
83
+ * The alert type
84
84
  * @type {?}
85
85
  */
86
86
  MtxAlertComponent.prototype.type;
@@ -95,7 +95,7 @@
95
95
  */
96
96
  MtxAlertComponent.prototype.dismissible;
97
97
  /**
98
- * Text color
98
+ * The alert text color
99
99
  * @type {?}
100
100
  */
101
101
  MtxAlertComponent.prototype.color;
@@ -1 +1 @@
1
- {"version":3,"file":"mtxAlert.umd.js","sources":["../../../projects/extensions/alert/alert.component.ts","../../../projects/extensions/alert/alert.module.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n HostBinding,\n} from '@angular/core';\n\n@Component({\n selector: 'mtx-alert',\n exportAs: 'mtxAlert',\n host: {\n class: 'mtx-alert',\n },\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtxAlertComponent {\n @HostBinding('class') get hostClassList() {\n return `mtx-alert-${this.type}`;\n }\n\n /** Alert types */\n @Input() type: 'default' | 'info' | 'success' | 'warning' | 'danger' = 'default';\n\n /** Whether alert visible */\n @Input() isOpen = true;\n\n /** Whether displays an inline \"Close\" button */\n @Input() dismissible: boolean;\n\n /** Text color */\n @Input() color: string;\n\n /** Material elevation */\n @Input() elevation = 0;\n\n /** This event fires when alert closed, $event is an instance of Alert component */\n @Output() closed = new EventEmitter<MtxAlertComponent>();\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n _onClosed(): void {\n this.isOpen = false;\n this._changeDetectorRef.markForCheck();\n this.closed.emit(this);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MtxAlertComponent } from './alert.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [MtxAlertComponent],\n declarations: [MtxAlertComponent],\n})\nexport class MtxAlertModule {}\n"],"names":["EventEmitter","Component","ViewEncapsulation","ChangeDetectionStrategy","ChangeDetectorRef","HostBinding","Input","Output","NgModule","CommonModule"],"mappings":";;;;;;;;;;;;;;;QA6CE,2BAAoB,kBAAqC;YAArC,uBAAkB,GAAlB,kBAAkB,CAAmB;;;;YAjBhD,SAAI,GAA0D,SAAS,CAAC;;;;YAGxE,WAAM,GAAG,IAAI,CAAC;;;;YASd,cAAS,GAAG,CAAC,CAAC;;;;YAGb,WAAM,GAAG,IAAIA,iBAAY,EAAqB,CAAC;SAEI;QAtB7D,sBAA0B,4CAAa;;;;iBAAvC;gBACE,OAAO,eAAa,IAAI,CAAC,IAAM,CAAC;aACjC;;;WAAA;;;;QAsBD,qCAAS,GAAT;YACE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACxB;;;;gBAxCFC,cAAS,SAAC;oBACT,QAAQ,EAAE,WAAW;oBACrB,QAAQ,EAAE,UAAU;oBACpB,IAAI,EAAE;wBACJ,KAAK,EAAE,WAAW;qBACnB;oBACD,gjBAAqC;oBAErC,aAAa,EAAEC,sBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAEC,4BAAuB,CAAC,MAAM;;iBAChD;;;;gBAdCC,sBAAiB;;;gCAgBhBC,gBAAW,SAAC,OAAO;uBAKnBC,UAAK;yBAGLA,UAAK;8BAGLA,UAAK;wBAGLA,UAAK;4BAGLA,UAAK;yBAGLC,WAAM;;;;;;;QAfP,iCAAiF;;;;;QAGjF,mCAAuB;;;;;QAGvB,wCAA8B;;;;;QAG9B,kCAAuB;;;;;QAGvB,sCAAuB;;;;;QAGvB,mCAAyD;;;;;QAE7C,+CAA6C;;;;;;;;;QCnC3D;;;;;gBALCC,aAAQ,SAAC;oBACR,OAAO,EAAE,CAACC,mBAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,iBAAiB,CAAC;oBAC5B,YAAY,EAAE,CAAC,iBAAiB,CAAC;iBAClC;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"mtxAlert.umd.js","sources":["../../../projects/extensions/alert/alert.component.ts","../../../projects/extensions/alert/alert.module.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n HostBinding,\n} from '@angular/core';\n\nexport type MtxAlertType = 'default' | 'info' | 'success' | 'warning' | 'danger';\n\n@Component({\n selector: 'mtx-alert',\n exportAs: 'mtxAlert',\n host: {\n class: 'mtx-alert',\n },\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtxAlertComponent {\n @HostBinding('class') get hostClassList() {\n return `mtx-alert-${this.type}`;\n }\n\n /** The alert type */\n @Input() type: MtxAlertType = 'default';\n\n /** Whether alert visible */\n @Input() isOpen = true;\n\n /** Whether displays an inline \"Close\" button */\n @Input() dismissible: boolean;\n\n /** The alert text color */\n @Input() color: string;\n\n /** Material elevation */\n @Input() elevation = 0;\n\n /** This event fires when alert closed, $event is an instance of Alert component */\n @Output() closed = new EventEmitter<MtxAlertComponent>();\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n _onClosed(): void {\n this.isOpen = false;\n this._changeDetectorRef.markForCheck();\n this.closed.emit(this);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MtxAlertComponent } from './alert.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [MtxAlertComponent],\n declarations: [MtxAlertComponent],\n})\nexport class MtxAlertModule {}\n"],"names":["EventEmitter","Component","ViewEncapsulation","ChangeDetectionStrategy","ChangeDetectorRef","HostBinding","Input","Output","NgModule","CommonModule"],"mappings":";;;;;;;;;;;;;;;QA+CE,2BAAoB,kBAAqC;YAArC,uBAAkB,GAAlB,kBAAkB,CAAmB;;;;YAjBhD,SAAI,GAAiB,SAAS,CAAC;;;;YAG/B,WAAM,GAAG,IAAI,CAAC;;;;YASd,cAAS,GAAG,CAAC,CAAC;;;;YAGb,WAAM,GAAG,IAAIA,iBAAY,EAAqB,CAAC;SAEI;QAtB7D,sBAA0B,4CAAa;;;;iBAAvC;gBACE,OAAO,eAAa,IAAI,CAAC,IAAM,CAAC;aACjC;;;WAAA;;;;QAsBD,qCAAS,GAAT;YACE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACxB;;;;gBAxCFC,cAAS,SAAC;oBACT,QAAQ,EAAE,WAAW;oBACrB,QAAQ,EAAE,UAAU;oBACpB,IAAI,EAAE;wBACJ,KAAK,EAAE,WAAW;qBACnB;oBACD,gjBAAqC;oBAErC,aAAa,EAAEC,sBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAEC,4BAAuB,CAAC,MAAM;;iBAChD;;;;gBAhBCC,sBAAiB;;;gCAkBhBC,gBAAW,SAAC,OAAO;uBAKnBC,UAAK;yBAGLA,UAAK;8BAGLA,UAAK;wBAGLA,UAAK;4BAGLA,UAAK;yBAGLC,WAAM;;;;;;;QAfP,iCAAwC;;;;;QAGxC,mCAAuB;;;;;QAGvB,wCAA8B;;;;;QAG9B,kCAAuB;;;;;QAGvB,sCAAuB;;;;;QAGvB,mCAAyD;;;;;QAE7C,+CAA6C;;;;;;;;;QCrC3D;;;;;gBALCC,aAAQ,SAAC;oBACR,OAAO,EAAE,CAACC,mBAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,iBAAiB,CAAC;oBAC5B,YAAY,EAAE,CAAC,iBAAiB,CAAC;iBAClC;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../projects/extensions/alert/alert.component.ts","../../../projects/extensions/alert/alert.module.ts"],"names":["MtxAlertComponent","_changeDetectorRef","this","type","isOpen","elevation","closed","EventEmitter","Object","defineProperty","prototype","_onClosed","markForCheck","emit","Component","args","selector","exportAs","host","class","template","encapsulation","ViewEncapsulation","None","changeDetection","ChangeDetectionStrategy","OnPush","ChangeDetectorRef","HostBinding","Input","Output","NgModule","imports","CommonModule","exports","declarations"],"mappings":"ggBA6CE,SAAAA,EAAoBC,GAAAC,KAAAD,mBAAAA,EAjBXC,KAAAC,KAA8D,UAG9DD,KAAAE,QAAS,EASTF,KAAAG,UAAY,EAGXH,KAAAI,OAAS,IAAIC,EAAAA,oBApBvBC,OAAAC,eAA0BT,EAAAU,UAAA,gBAAa,KAAvC,WACE,MAAO,aAAaR,KAAKC,sCAuB3BH,EAAAU,UAAAC,UAAA,WACET,KAAKE,QAAS,EACdF,KAAKD,mBAAmBW,eACxBV,KAAKI,OAAOO,KAAKX,gCAvCpBY,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,YACVC,SAAU,WACVC,KAAM,CACJC,MAAO,aAETC,SAAA,+hBAEAC,cAAeC,EAAAA,kBAAkBC,KACjCC,gBAAiBC,EAAAA,wBAAwBC,gfAbzCC,EAAAA,4DAgBCC,EAAAA,YAAWb,KAAA,CAAC,uBAKZc,EAAAA,sBAGAA,EAAAA,2BAGAA,EAAAA,qBAGAA,EAAAA,yBAGAA,EAAAA,sBAGAC,EAAAA,gBCjCH,iCALCC,EAAAA,SAAQhB,KAAA,CAAC,CACRiB,QAAS,CAACC,EAAAA,cACVC,QAAS,CAAClC,GACVmC,aAAc,CAACnC","sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n HostBinding,\n} from '@angular/core';\n\n@Component({\n selector: 'mtx-alert',\n exportAs: 'mtxAlert',\n host: {\n class: 'mtx-alert',\n },\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtxAlertComponent {\n @HostBinding('class') get hostClassList() {\n return `mtx-alert-${this.type}`;\n }\n\n /** Alert types */\n @Input() type: 'default' | 'info' | 'success' | 'warning' | 'danger' = 'default';\n\n /** Whether alert visible */\n @Input() isOpen = true;\n\n /** Whether displays an inline \"Close\" button */\n @Input() dismissible: boolean;\n\n /** Text color */\n @Input() color: string;\n\n /** Material elevation */\n @Input() elevation = 0;\n\n /** This event fires when alert closed, $event is an instance of Alert component */\n @Output() closed = new EventEmitter<MtxAlertComponent>();\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n _onClosed(): void {\n this.isOpen = false;\n this._changeDetectorRef.markForCheck();\n this.closed.emit(this);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MtxAlertComponent } from './alert.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [MtxAlertComponent],\n declarations: [MtxAlertComponent],\n})\nexport class MtxAlertModule {}\n"]}
1
+ {"version":3,"sources":["../../../projects/extensions/alert/alert.component.ts","../../../projects/extensions/alert/alert.module.ts"],"names":["MtxAlertComponent","_changeDetectorRef","this","type","isOpen","elevation","closed","EventEmitter","Object","defineProperty","prototype","_onClosed","markForCheck","emit","Component","args","selector","exportAs","host","class","template","encapsulation","ViewEncapsulation","None","changeDetection","ChangeDetectionStrategy","OnPush","ChangeDetectorRef","HostBinding","Input","Output","NgModule","imports","CommonModule","exports","declarations"],"mappings":"ggBA+CE,SAAAA,EAAoBC,GAAAC,KAAAD,mBAAAA,EAjBXC,KAAAC,KAAqB,UAGrBD,KAAAE,QAAS,EASTF,KAAAG,UAAY,EAGXH,KAAAI,OAAS,IAAIC,EAAAA,oBApBvBC,OAAAC,eAA0BT,EAAAU,UAAA,gBAAa,KAAvC,WACE,MAAO,aAAaR,KAAKC,sCAuB3BH,EAAAU,UAAAC,UAAA,WACET,KAAKE,QAAS,EACdF,KAAKD,mBAAmBW,eACxBV,KAAKI,OAAOO,KAAKX,gCAvCpBY,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,YACVC,SAAU,WACVC,KAAM,CACJC,MAAO,aAETC,SAAA,+hBAEAC,cAAeC,EAAAA,kBAAkBC,KACjCC,gBAAiBC,EAAAA,wBAAwBC,gfAfzCC,EAAAA,4DAkBCC,EAAAA,YAAWb,KAAA,CAAC,uBAKZc,EAAAA,sBAGAA,EAAAA,2BAGAA,EAAAA,qBAGAA,EAAAA,yBAGAA,EAAAA,sBAGAC,EAAAA,gBCnCH,iCALCC,EAAAA,SAAQhB,KAAA,CAAC,CACRiB,QAAS,CAACC,EAAAA,cACVC,QAAS,CAAClC,GACVmC,aAAc,CAACnC","sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n HostBinding,\n} from '@angular/core';\n\nexport type MtxAlertType = 'default' | 'info' | 'success' | 'warning' | 'danger';\n\n@Component({\n selector: 'mtx-alert',\n exportAs: 'mtxAlert',\n host: {\n class: 'mtx-alert',\n },\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtxAlertComponent {\n @HostBinding('class') get hostClassList() {\n return `mtx-alert-${this.type}`;\n }\n\n /** The alert type */\n @Input() type: MtxAlertType = 'default';\n\n /** Whether alert visible */\n @Input() isOpen = true;\n\n /** Whether displays an inline \"Close\" button */\n @Input() dismissible: boolean;\n\n /** The alert text color */\n @Input() color: string;\n\n /** Material elevation */\n @Input() elevation = 0;\n\n /** This event fires when alert closed, $event is an instance of Alert component */\n @Output() closed = new EventEmitter<MtxAlertComponent>();\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n _onClosed(): void {\n this.isOpen = false;\n this._changeDetectorRef.markForCheck();\n this.closed.emit(this);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MtxAlertComponent } from './alert.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [MtxAlertComponent],\n declarations: [MtxAlertComponent],\n})\nexport class MtxAlertModule {}\n"]}
@@ -149,7 +149,7 @@
149
149
 
150
150
  /**
151
151
  * @fileoverview added by tsickle
152
- * Generated from: ng-matero-extensions-button.ts
152
+ * Generated from: mtxButton.ts
153
153
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
154
154
  */
155
155
 
@@ -159,4 +159,4 @@
159
159
  Object.defineProperty(exports, '__esModule', { value: true });
160
160
 
161
161
  })));
162
- //# sourceMappingURL=ng-matero-extensions-button.umd.js.map
162
+ //# sourceMappingURL=mtxButton.umd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mtxButton.umd.js","sources":["../../../projects/extensions/button/button-loading.directive.ts","../../../projects/extensions/button/button.module.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"],"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;;;;;;;QATN,mDAA6D;;;;;QAC7D,4CAAyD;;QAEzD,4CACiB;;QAEjB,6CACkB;;QAElB,0CACoB;;;;;QAGlB,8CAA4B;;;;;QAC5B,6DAA0D;;;;;QAC1D,qDAA0C;;;;;QAC1C,6CAA2B;;;;;;;;;QC7B/B;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,2 +1,2 @@
1
1
  !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/common"),require("@angular/material/button"),require("@angular/material/progress-spinner")):"function"==typeof define&&define.amd?define("@ng-matero/extensions/button",["exports","@angular/core","@angular/common","@angular/material/button","@angular/material/progress-spinner"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self)["ng-matero"]=t["ng-matero"]||{},t["ng-matero"].extensions=t["ng-matero"].extensions||{},t["ng-matero"].extensions.button={}),t.ng.core,t.ng.common,t.ng.material.button,t.ng.material.progressSpinner)}(this,(function(t,e,n,o,r){"use strict";var i=function(){function t(t,e,n,o){this.matButton=t,this.componentFactoryResolver=e,this.viewContainerRef=n,this.renderer=o,this.spinnerFactory=this.componentFactoryResolver.resolveComponentFactory(r.MatProgressSpinner)}return t.prototype.ngOnChanges=function(t){t.loading&&(t.loading.currentValue?(this.matButton._elementRef.nativeElement.classList.add("mat-button-loading"),this.matButton.disabled=!0,this.createSpinner()):t.loading.firstChange||(this.matButton._elementRef.nativeElement.classList.remove("mat-button-loading"),this.matButton.disabled=this.disabled,this.destroySpinner()))},t.prototype.createSpinner=function(){this.spinner||(this.spinner=this.viewContainerRef.createComponent(this.spinnerFactory),this.spinner.instance.color=this.color,this.spinner.instance.diameter=20,this.spinner.instance.mode="indeterminate",this.renderer.appendChild(this.matButton._elementRef.nativeElement,this.spinner.instance._elementRef.nativeElement))},t.prototype.destroySpinner=function(){this.spinner&&(this.spinner.destroy(),this.spinner=null)},t}();i.decorators=[{type:e.Directive,args:[{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]"}]}],i.ctorParameters=function(){return[{type:o.MatButton},{type:e.ComponentFactoryResolver},{type:e.ViewContainerRef},{type:e.Renderer2}]},i.propDecorators={loading:[{type:e.Input}],disabled:[{type:e.Input}],color:[{type:e.Input}]};var a=function(){};a.decorators=[{type:e.NgModule,args:[{imports:[n.CommonModule,o.MatButtonModule,r.MatProgressSpinnerModule],exports:[i],declarations:[i]}]}],t.MatButtonLoadingDirective=i,t.MtxButtonModule=a,Object.defineProperty(t,"__esModule",{value:!0})}));
2
- //# sourceMappingURL=ng-matero-extensions-button.umd.min.js.map
2
+ //# sourceMappingURL=mtxButton.umd.min.js.map
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/forms'), require('@angular/material/checkbox'), require('@ng-matero/extensions/utils'), require('@angular/cdk/coercion')) :
3
- typeof define === 'function' && define.amd ? define('@ng-matero/extensions/checkbox-group', ['exports', '@angular/core', '@angular/common', '@angular/forms', '@angular/material/checkbox', '@ng-matero/extensions/utils', '@angular/cdk/coercion'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global['ng-matero'] = global['ng-matero'] || {}, global['ng-matero'].extensions = global['ng-matero'].extensions || {}, global['ng-matero'].extensions['checkbox-group'] = {}), global.ng.core, global.ng.common, global.ng.forms, global.ng.material.checkbox, global['ng-matero'].extensions.utils, global.ng.cdk.coercion));
5
- }(this, (function (exports, core, common, forms, checkbox, utils, coercion) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/forms'), require('@angular/material/checkbox'), require('@ng-matero/extensions/utils'), require('@angular/cdk/a11y'), require('@angular/cdk/coercion')) :
3
+ typeof define === 'function' && define.amd ? define('@ng-matero/extensions/checkbox-group', ['exports', '@angular/core', '@angular/common', '@angular/forms', '@angular/material/checkbox', '@ng-matero/extensions/utils', '@angular/cdk/a11y', '@angular/cdk/coercion'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global['ng-matero'] = global['ng-matero'] || {}, global['ng-matero'].extensions = global['ng-matero'].extensions || {}, global['ng-matero'].extensions['checkbox-group'] = {}), global.ng.core, global.ng.common, global.ng.forms, global.ng.material.checkbox, global['ng-matero'].extensions.utils, global.ng.cdk.a11y, global.ng.cdk.coercion));
5
+ }(this, (function (exports, core, common, forms, checkbox, utils, a11y, coercion) { 'use strict';
6
6
 
7
7
  /**
8
8
  * @fileoverview added by tsickle
@@ -29,20 +29,23 @@
29
29
  var MtxCheckboxGroupComponent = /** @class */ (function () {
30
30
  /**
31
31
  * @param {?} _changeDetectorRef
32
+ * @param {?} _focusMonitor
33
+ * @param {?} _elementRef
32
34
  */
33
- function MtxCheckboxGroupComponent(_changeDetectorRef) {
35
+ function MtxCheckboxGroupComponent(_changeDetectorRef, _focusMonitor, _elementRef) {
34
36
  this._changeDetectorRef = _changeDetectorRef;
37
+ this._focusMonitor = _focusMonitor;
38
+ this._elementRef = _elementRef;
35
39
  this._items = [];
36
40
  this._originalItems = [];
37
41
  this.bindLabel = 'label';
38
42
  this.bindValue = 'value';
39
- this.showSelectAll = false;
43
+ this._showSelectAll = false;
40
44
  this.selectAllLabel = 'Select All';
41
45
  this._disabled = false;
42
46
  this.change = new core.EventEmitter();
43
47
  this.selectAll = false;
44
48
  this.selectAllIndeterminate = false;
45
- this.color = 'accent';
46
49
  this.selectedItems = [];
47
50
  this._onChange = ( /**
48
51
  * @return {?}
@@ -78,6 +81,23 @@
78
81
  enumerable: false,
79
82
  configurable: true
80
83
  });
84
+ Object.defineProperty(MtxCheckboxGroupComponent.prototype, "showSelectAll", {
85
+ /**
86
+ * @return {?}
87
+ */
88
+ get: function () {
89
+ return this._showSelectAll;
90
+ },
91
+ /**
92
+ * @param {?} value
93
+ * @return {?}
94
+ */
95
+ set: function (value) {
96
+ this._showSelectAll = coercion.coerceBooleanProperty(value);
97
+ },
98
+ enumerable: false,
99
+ configurable: true
100
+ });
81
101
  Object.defineProperty(MtxCheckboxGroupComponent.prototype, "compareWith", {
82
102
  /**
83
103
  * @return {?}
@@ -120,7 +140,36 @@
120
140
  /**
121
141
  * @return {?}
122
142
  */
123
- MtxCheckboxGroupComponent.prototype.ngAfterViewInit = function () { };
143
+ MtxCheckboxGroupComponent.prototype.ngAfterViewInit = function () {
144
+ var _this = this;
145
+ this._focusMonitor.monitor(this._elementRef, true).subscribe(( /**
146
+ * @param {?} focusOrigin
147
+ * @return {?}
148
+ */function (/**
149
+ * @param {?} focusOrigin
150
+ * @return {?}
151
+ */ focusOrigin) {
152
+ if (!focusOrigin) {
153
+ // When a focused element becomes disabled, the browser *immediately* fires a blur event.
154
+ // Angular does not expect events to be raised during change detection, so any state change
155
+ // (such as a form control's 'ng-touched') will cause a changed-after-checked error.
156
+ // See https://github.com/angular/angular/issues/17793. To work around this, we defer
157
+ // telling the form control it has been touched until the next tick.
158
+ Promise.resolve().then(( /**
159
+ * @return {?}
160
+ */function () {
161
+ _this._onTouched();
162
+ _this._changeDetectorRef.markForCheck();
163
+ }));
164
+ }
165
+ }));
166
+ };
167
+ /**
168
+ * @return {?}
169
+ */
170
+ MtxCheckboxGroupComponent.prototype.ngOnDestroy = function () {
171
+ this._focusMonitor.stopMonitoring(this._elementRef);
172
+ };
124
173
  /**
125
174
  * Finds and selects and option based on its value.
126
175
  * @private
@@ -130,10 +179,13 @@
130
179
  MtxCheckboxGroupComponent.prototype._selectValue = function (value) {
131
180
  var _this = this;
132
181
  /** @type {?} */
133
- var correspondingOption = this.items.find(( /**
182
+ var correspondingOption = (( /** @type {?} */(this.items))).find(( /**
134
183
  * @param {?} option
135
184
  * @return {?}
136
- */function (option) {
185
+ */function (/**
186
+ * @param {?} option
187
+ * @return {?}
188
+ */ option) {
137
189
  try {
138
190
  /** @type {?} */
139
191
  var compareValue = option[_this.bindValue] === value;
@@ -200,7 +252,7 @@
200
252
  * @return {?}
201
253
  */
202
254
  MtxCheckboxGroupComponent.prototype._checkMasterCheckboxState = function () {
203
- if (this.items
255
+ if ((( /** @type {?} */(this.items)))
204
256
  .filter(( /**
205
257
  * @param {?} option
206
258
  * @return {?}
@@ -218,7 +270,7 @@
218
270
  this.selectAll = false;
219
271
  this.selectAllIndeterminate = false;
220
272
  }
221
- else if (this.items
273
+ else if ((( /** @type {?} */(this.items)))
222
274
  .filter(( /**
223
275
  * @param {?} option
224
276
  * @return {?}
@@ -247,7 +299,7 @@
247
299
  */
248
300
  MtxCheckboxGroupComponent.prototype._getSelectedItems = function (index) {
249
301
  var _this = this;
250
- this.selectedItems = this.items.filter(( /**
302
+ this.selectedItems = (( /** @type {?} */(this.items))).filter(( /**
251
303
  * @param {?} option
252
304
  * @return {?}
253
305
  */function (/**
@@ -255,7 +307,7 @@
255
307
  * @return {?}
256
308
  */ option) { return option.checked; }));
257
309
  if (this._compareWith) {
258
- this.selectedItems = this._originalItems.filter(( /**
310
+ this.selectedItems = (( /** @type {?} */(this._originalItems))).filter(( /**
259
311
  * @param {?} option
260
312
  * @return {?}
261
313
  */function (/**
@@ -301,7 +353,7 @@
301
353
  this.selectAll = !this.selectAll;
302
354
  this.selectAllIndeterminate = false;
303
355
  if (this.selectAll) {
304
- this.items
356
+ (( /** @type {?} */(this.items)))
305
357
  .filter(( /**
306
358
  * @param {?} option
307
359
  * @return {?}
@@ -318,7 +370,7 @@
318
370
  */ option) { return (option.checked = true); }));
319
371
  }
320
372
  else {
321
- this.items
373
+ (( /** @type {?} */(this.items)))
322
374
  .filter(( /**
323
375
  * @param {?} option
324
376
  * @return {?}
@@ -345,7 +397,7 @@
345
397
  host: {
346
398
  class: 'mtx-checkbox-group',
347
399
  },
348
- 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 || 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",
400
+ 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",
349
401
  encapsulation: core.ViewEncapsulation.None,
350
402
  changeDetection: core.ChangeDetectionStrategy.OnPush,
351
403
  providers: [
@@ -362,7 +414,9 @@
362
414
  ];
363
415
  /** @nocollapse */
364
416
  MtxCheckboxGroupComponent.ctorParameters = function () { return [
365
- { type: core.ChangeDetectorRef }
417
+ { type: core.ChangeDetectorRef },
418
+ { type: a11y.FocusMonitor },
419
+ { type: core.ElementRef }
366
420
  ]; };
367
421
  MtxCheckboxGroupComponent.propDecorators = {
368
422
  _checkboxes: [{ type: core.ContentChildren, args: [core.forwardRef(( /**
@@ -394,8 +448,11 @@
394
448
  MtxCheckboxGroupComponent.prototype.bindLabel;
395
449
  /** @type {?} */
396
450
  MtxCheckboxGroupComponent.prototype.bindValue;
397
- /** @type {?} */
398
- MtxCheckboxGroupComponent.prototype.showSelectAll;
451
+ /**
452
+ * @type {?}
453
+ * @private
454
+ */
455
+ MtxCheckboxGroupComponent.prototype._showSelectAll;
399
456
  /** @type {?} */
400
457
  MtxCheckboxGroupComponent.prototype.selectAllLabel;
401
458
  /**
@@ -415,8 +472,6 @@
415
472
  /** @type {?} */
416
473
  MtxCheckboxGroupComponent.prototype.selectAllIndeterminate;
417
474
  /** @type {?} */
418
- MtxCheckboxGroupComponent.prototype.color;
419
- /** @type {?} */
420
475
  MtxCheckboxGroupComponent.prototype.selectedItems;
421
476
  /** @type {?} */
422
477
  MtxCheckboxGroupComponent.prototype._onChange;
@@ -427,6 +482,16 @@
427
482
  * @private
428
483
  */
429
484
  MtxCheckboxGroupComponent.prototype._changeDetectorRef;
485
+ /**
486
+ * @type {?}
487
+ * @private
488
+ */
489
+ MtxCheckboxGroupComponent.prototype._focusMonitor;
490
+ /**
491
+ * @type {?}
492
+ * @private
493
+ */
494
+ MtxCheckboxGroupComponent.prototype._elementRef;
430
495
  }
431
496
 
432
497
  /**
@@ -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"],"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} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatCheckbox } from '@angular/material/checkbox';\nimport { MtxCheckboxGroupOption } from './checkbox-group.interface';\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, ControlValueAccessor {\n @ContentChildren(forwardRef(() => MatCheckbox), { descendants: true })\n _checkboxes: QueryList<MatCheckbox>;\n\n @Input()\n get items(): MtxCheckboxGroupOption[] {\n return this._items;\n }\n set items(value) {\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: MtxCheckboxGroupOption[] = [];\n private _originalItems: MtxCheckboxGroupOption[] = [];\n\n @Input() bindLabel = 'label';\n @Input() bindValue = 'value';\n @Input() showSelectAll = false;\n @Input() selectAllLabel = 'Select All';\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(private _changeDetectorRef: ChangeDetectorRef) {}\n\n ngAfterViewInit() {}\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.find((option: MtxCheckboxGroupOption) => {\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\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\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.filter(option => option.checked);\n\n if (this._compareWith) {\n this.selectedItems = this._originalItems.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: boolean, index: number): void {\n this._checkMasterCheckboxState();\n this._getSelectedItems(index);\n }\n\n /** Handle master checkbox toggle */\n _updateMasterCheckboxState(e: boolean, index: number): void {\n this.selectAll = !this.selectAll;\n this.selectAllIndeterminate = false;\n\n if (this.selectAll) {\n this.items\n .filter(option => option.checked || !option.disabled)\n .forEach(option => (option.checked = true));\n } else {\n this.items\n .filter(option => option.checked || !option.disabled)\n .forEach(option => (option.checked = !!option.disabled));\n }\n\n this._getSelectedItems(index);\n }\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 { MtxUtilsModule } from '@ng-matero/extensions/utils';\nimport { MtxCheckboxGroupComponent } from './checkbox-group.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, MatCheckboxModule, MtxUtilsModule],\n exports: [MtxCheckboxGroupComponent],\n declarations: [MtxCheckboxGroupComponent],\n})\nexport class MtxCheckboxGroupModule {}\n"],"names":["EventEmitter","coerceBooleanProperty","Component","ViewEncapsulation","ChangeDetectionStrategy","NG_VALUE_ACCESSOR","forwardRef","ChangeDetectorRef","ContentChildren","MatCheckbox","Input","Output","NgModule","CommonModule","FormsModule","MatCheckboxModule","MtxUtilsModule"],"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"],"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 { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { MatCheckbox, MatCheckboxChange } from '@angular/material/checkbox';\nimport { MtxCheckboxGroupOption } from './checkbox-group.interface';\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[]) => {}): 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","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n\nimport { MtxUtilsModule } from '@ng-matero/extensions/utils';\nimport { MtxCheckboxGroupComponent } from './checkbox-group.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, MatCheckboxModule, MtxUtilsModule],\n exports: [MtxCheckboxGroupComponent],\n declarations: [MtxCheckboxGroupComponent],\n})\nexport class MtxCheckboxGroupModule {}\n"],"names":["EventEmitter","coerceBooleanProperty","Component","ViewEncapsulation","ChangeDetectionStrategy","NG_VALUE_ACCESSOR","forwardRef","ChangeDetectorRef","FocusMonitor","ElementRef","ContentChildren","MatCheckbox","Input","Output","NgModule","CommonModule","FormsModule","MatCheckboxModule","MtxUtilsModule"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("@angular/forms"),require("@angular/material/checkbox"),require("@ng-matero/extensions/utils"),require("@angular/cdk/coercion")):"function"==typeof define&&define.amd?define("@ng-matero/extensions/checkbox-group",["exports","@angular/core","@angular/common","@angular/forms","@angular/material/checkbox","@ng-matero/extensions/utils","@angular/cdk/coercion"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self)["ng-matero"]=e["ng-matero"]||{},e["ng-matero"].extensions=e["ng-matero"].extensions||{},e["ng-matero"].extensions["checkbox-group"]={}),e.ng.core,e.ng.common,e.ng.forms,e.ng.material.checkbox,e["ng-matero"].extensions.utils,e.ng.cdk.coercion)}(this,(function(e,t,n,o,i,r,c){"use strict";var s=function(e,t){this.label=e,this.value=t};var a=function(){function e(e){this._changeDetectorRef=e,this._items=[],this._originalItems=[],this.bindLabel="label",this.bindValue="value",this.showSelectAll=!1,this.selectAllLabel="Select All",this._disabled=!1,this.change=new t.EventEmitter,this.selectAll=!1,this.selectAllIndeterminate=!1,this.color="accent",this.selectedItems=[],this._onChange=function(){return null},this._onTouched=function(){return null}}return Object.defineProperty(e.prototype,"items",{get:function(){return this._items},set:function(e){this._originalItems=JSON.parse(JSON.stringify(e)),this._items=e.map((function(e){return e instanceof Object?e:new s(e,e)}))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"compareWith",{get:function(){return this._compareWith},set:function(e){if("function"!=typeof e)throw Error("`compareWith` must be a function.");e&&(this._compareWith=e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=c.coerceBooleanProperty(e)},enumerable:!1,configurable:!0}),e.prototype.ngAfterViewInit=function(){},e.prototype._selectValue=function(e){var t=this,n=this.items.find((function(n){try{var o=n[t.bindValue]===e;return t._compareWith?t._compareWith(n,e):o}catch(e){return console.warn(e),!1}}));return n&&(n.checked=!0),n},e.prototype.writeValue=function(e){var t=this;if(e){if(!Array.isArray(e))throw Error("Value must be an array.");e.forEach((function(e){return t._selectValue(e)})),this.selectedItems=e}this._checkMasterCheckboxState(),this._changeDetectorRef.markForCheck()},e.prototype.registerOnChange=function(e){this._onChange=e},e.prototype.registerOnTouched=function(e){this._onTouched=e},e.prototype.setDisabledState=function(e){this._disabled=e},e.prototype._checkMasterCheckboxState=function(){this.items.filter((function(e){return e.checked||!e.disabled})).every((function(e){return!e.checked}))?(this.selectAll=!1,this.selectAllIndeterminate=!1):this.items.filter((function(e){return e.checked||!e.disabled})).every((function(e){return e.checked}))?(this.selectAll=!0,this.selectAllIndeterminate=!1):this.selectAllIndeterminate=!0},e.prototype._getSelectedItems=function(e){var t=this;this.selectedItems=this.items.filter((function(e){return e.checked})),this._compareWith?this.selectedItems=this._originalItems.filter((function(e){return t.selectedItems.find((function(n){return t._compareWith(e,n)}))})):this.selectedItems=this.selectedItems.map((function(e){return e[t.bindValue]})),this._onChange(this.selectedItems),this.change.emit({model:this.selectedItems,index:e})},e.prototype._updateNormalCheckboxState=function(e,t){this._checkMasterCheckboxState(),this._getSelectedItems(t)},e.prototype._updateMasterCheckboxState=function(e,t){this.selectAll=!this.selectAll,this.selectAllIndeterminate=!1,this.selectAll?this.items.filter((function(e){return e.checked||!e.disabled})).forEach((function(e){return e.checked=!0})):this.items.filter((function(e){return e.checked||!e.disabled})).forEach((function(e){return e.checked=!!e.disabled})),this._getSelectedItems(t)},e}();a.decorators=[{type:t.Component,args:[{selector:"mtx-checkbox-group",exportAs:"mtxCheckboxGroup",host:{class:"mtx-checkbox-group"},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 || 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',encapsulation:t.ViewEncapsulation.None,changeDetection:t.ChangeDetectionStrategy.OnPush,providers:[{provide:o.NG_VALUE_ACCESSOR,useExisting:t.forwardRef((function(){return a})),multi:!0}],styles:[".mtx-checkbox-group{display:block}.mtx-checkbox-group .mat-checkbox{margin-right:16px}[dir=rtl] .mtx-checkbox-group .mat-checkbox{margin-left:16px;margin-right:auto}"]}]}],a.ctorParameters=function(){return[{type:t.ChangeDetectorRef}]},a.propDecorators={_checkboxes:[{type:t.ContentChildren,args:[t.forwardRef((function(){return i.MatCheckbox})),{descendants:!0}]}],items:[{type:t.Input}],bindLabel:[{type:t.Input}],bindValue:[{type:t.Input}],showSelectAll:[{type:t.Input}],selectAllLabel:[{type:t.Input}],compareWith:[{type:t.Input}],disabled:[{type:t.Input}],change:[{type:t.Output}]};var l=function(){};l.decorators=[{type:t.NgModule,args:[{imports:[n.CommonModule,o.FormsModule,i.MatCheckboxModule,r.MtxUtilsModule],exports:[a],declarations:[a]}]}],e.MtxCheckboxBase=s,e.MtxCheckboxGroupComponent=a,e.MtxCheckboxGroupModule=l,Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("@angular/forms"),require("@angular/material/checkbox"),require("@ng-matero/extensions/utils"),require("@angular/cdk/a11y"),require("@angular/cdk/coercion")):"function"==typeof define&&define.amd?define("@ng-matero/extensions/checkbox-group",["exports","@angular/core","@angular/common","@angular/forms","@angular/material/checkbox","@ng-matero/extensions/utils","@angular/cdk/a11y","@angular/cdk/coercion"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self)["ng-matero"]=e["ng-matero"]||{},e["ng-matero"].extensions=e["ng-matero"].extensions||{},e["ng-matero"].extensions["checkbox-group"]={}),e.ng.core,e.ng.common,e.ng.forms,e.ng.material.checkbox,e["ng-matero"].extensions.utils,e.ng.cdk.a11y,e.ng.cdk.coercion)}(this,(function(e,t,n,o,i,r,c,s){"use strict";var a=function(e,t){this.label=e,this.value=t};var l=function(){function e(e,n,o){this._changeDetectorRef=e,this._focusMonitor=n,this._elementRef=o,this._items=[],this._originalItems=[],this.bindLabel="label",this.bindValue="value",this._showSelectAll=!1,this.selectAllLabel="Select All",this._disabled=!1,this.change=new t.EventEmitter,this.selectAll=!1,this.selectAllIndeterminate=!1,this.selectedItems=[],this._onChange=function(){return null},this._onTouched=function(){return null}}return Object.defineProperty(e.prototype,"items",{get:function(){return this._items},set:function(e){this._originalItems=JSON.parse(JSON.stringify(e)),this._items=e.map((function(e){return e instanceof Object?e:new a(e,e)}))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"showSelectAll",{get:function(){return this._showSelectAll},set:function(e){this._showSelectAll=s.coerceBooleanProperty(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"compareWith",{get:function(){return this._compareWith},set:function(e){if("function"!=typeof e)throw Error("`compareWith` must be a function.");e&&(this._compareWith=e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=s.coerceBooleanProperty(e)},enumerable:!1,configurable:!0}),e.prototype.ngAfterViewInit=function(){var e=this;this._focusMonitor.monitor(this._elementRef,!0).subscribe((function(t){t||Promise.resolve().then((function(){e._onTouched(),e._changeDetectorRef.markForCheck()}))}))},e.prototype.ngOnDestroy=function(){this._focusMonitor.stopMonitoring(this._elementRef)},e.prototype._selectValue=function(e){var t=this,n=this.items.find((function(n){try{var o=n[t.bindValue]===e;return t._compareWith?t._compareWith(n,e):o}catch(e){return console.warn(e),!1}}));return n&&(n.checked=!0),n},e.prototype.writeValue=function(e){var t=this;if(e){if(!Array.isArray(e))throw Error("Value must be an array.");e.forEach((function(e){return t._selectValue(e)})),this.selectedItems=e}this._checkMasterCheckboxState(),this._changeDetectorRef.markForCheck()},e.prototype.registerOnChange=function(e){this._onChange=e},e.prototype.registerOnTouched=function(e){this._onTouched=e},e.prototype.setDisabledState=function(e){this._disabled=e},e.prototype._checkMasterCheckboxState=function(){this.items.filter((function(e){return e.checked||!e.disabled})).every((function(e){return!e.checked}))?(this.selectAll=!1,this.selectAllIndeterminate=!1):this.items.filter((function(e){return e.checked||!e.disabled})).every((function(e){return e.checked}))?(this.selectAll=!0,this.selectAllIndeterminate=!1):this.selectAllIndeterminate=!0},e.prototype._getSelectedItems=function(e){var t=this;this.selectedItems=this.items.filter((function(e){return e.checked})),this._compareWith?this.selectedItems=this._originalItems.filter((function(e){return t.selectedItems.find((function(n){return t._compareWith(e,n)}))})):this.selectedItems=this.selectedItems.map((function(e){return e[t.bindValue]})),this._onChange(this.selectedItems),this.change.emit({model:this.selectedItems,index:e})},e.prototype._updateNormalCheckboxState=function(e,t){this._checkMasterCheckboxState(),this._getSelectedItems(t)},e.prototype._updateMasterCheckboxState=function(e,t){this.selectAll=!this.selectAll,this.selectAllIndeterminate=!1,this.selectAll?this.items.filter((function(e){return e.checked||!e.disabled})).forEach((function(e){return e.checked=!0})):this.items.filter((function(e){return e.checked||!e.disabled})).forEach((function(e){return e.checked=!!e.disabled})),this._getSelectedItems(t)},e}();l.decorators=[{type:t.Component,args:[{selector:"mtx-checkbox-group",exportAs:"mtxCheckboxGroup",host:{class:"mtx-checkbox-group"},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',encapsulation:t.ViewEncapsulation.None,changeDetection:t.ChangeDetectionStrategy.OnPush,providers:[{provide:o.NG_VALUE_ACCESSOR,useExisting:t.forwardRef((function(){return l})),multi:!0}],styles:[".mtx-checkbox-group{display:block}.mtx-checkbox-group .mat-checkbox{margin-right:16px}[dir=rtl] .mtx-checkbox-group .mat-checkbox{margin-left:16px;margin-right:auto}"]}]}],l.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:c.FocusMonitor},{type:t.ElementRef}]},l.propDecorators={_checkboxes:[{type:t.ContentChildren,args:[t.forwardRef((function(){return i.MatCheckbox})),{descendants:!0}]}],items:[{type:t.Input}],bindLabel:[{type:t.Input}],bindValue:[{type:t.Input}],showSelectAll:[{type:t.Input}],selectAllLabel:[{type:t.Input}],compareWith:[{type:t.Input}],disabled:[{type:t.Input}],change:[{type:t.Output}]};var u=function(){};u.decorators=[{type:t.NgModule,args:[{imports:[n.CommonModule,o.FormsModule,i.MatCheckboxModule,r.MtxUtilsModule],exports:[l],declarations:[l]}]}],e.MtxCheckboxBase=a,e.MtxCheckboxGroupComponent=l,e.MtxCheckboxGroupModule=u,Object.defineProperty(e,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=mtxCheckboxGroup.umd.min.js.map