@ng-matero/extensions 11.3.4 → 11.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 (99) hide show
  1. package/alert/_alert-theme.scss +5 -9
  2. package/alert/alert.component.d.ts +6 -4
  3. package/alert/alert.component.scss +2 -1
  4. package/alert/mtxAlert.metadata.json +1 -1
  5. package/bundles/mtxAlert.umd.js +22 -12
  6. package/bundles/mtxAlert.umd.js.map +1 -1
  7. package/bundles/mtxAlert.umd.min.js +1 -1
  8. package/bundles/mtxAlert.umd.min.js.map +1 -1
  9. package/bundles/{ng-matero-extensions-button.umd.js → mtxButton.umd.js} +1 -1
  10. package/bundles/mtxButton.umd.js.map +1 -0
  11. package/bundles/{ng-matero-extensions-button.umd.min.js → mtxButton.umd.min.js} +1 -1
  12. package/bundles/{ng-matero-extensions-button.umd.min.js.map → mtxButton.umd.min.js.map} +0 -0
  13. package/bundles/mtxCheckboxGroup.umd.js +41 -10
  14. package/bundles/mtxCheckboxGroup.umd.js.map +1 -1
  15. package/bundles/mtxCheckboxGroup.umd.min.js +1 -1
  16. package/bundles/mtxCheckboxGroup.umd.min.js.map +1 -1
  17. package/bundles/mtxColorPicker.umd.js +14 -1
  18. package/bundles/mtxColorPicker.umd.js.map +1 -1
  19. package/bundles/mtxColorPicker.umd.min.js +1 -1
  20. package/bundles/mtxColorPicker.umd.min.js.map +1 -1
  21. package/bundles/mtxFormGroup.umd.js.map +1 -1
  22. package/bundles/mtxFormGroup.umd.min.js.map +1 -1
  23. package/bundles/mtxGrid.umd.js +14 -14
  24. package/bundles/mtxGrid.umd.js.map +1 -1
  25. package/bundles/mtxGrid.umd.min.js.map +1 -1
  26. package/bundles/mtxLoader.umd.js +27 -7
  27. package/bundles/mtxLoader.umd.js.map +1 -1
  28. package/bundles/mtxLoader.umd.min.js +1 -1
  29. package/bundles/mtxLoader.umd.min.js.map +1 -1
  30. package/bundles/mtxPopover.umd.js +177 -129
  31. package/bundles/mtxPopover.umd.js.map +1 -1
  32. package/bundles/mtxPopover.umd.min.js +1 -1
  33. package/bundles/mtxPopover.umd.min.js.map +1 -1
  34. package/bundles/mtxProgress.umd.js +28 -4
  35. package/bundles/mtxProgress.umd.js.map +1 -1
  36. package/bundles/mtxProgress.umd.min.js +1 -1
  37. package/bundles/mtxProgress.umd.min.js.map +1 -1
  38. package/bundles/mtxSelect.umd.js.map +1 -1
  39. package/bundles/mtxSelect.umd.min.js.map +1 -1
  40. package/button/{ng-matero-extensions-button.d.ts → mtxButton.d.ts} +0 -0
  41. package/button/{ng-matero-extensions-button.metadata.json → mtxButton.metadata.json} +0 -0
  42. package/button/package.json +7 -7
  43. package/checkbox-group/checkbox-group.component.d.ts +13 -6
  44. package/checkbox-group/mtxCheckboxGroup.metadata.json +1 -1
  45. package/color-picker/color-picker.component.d.ts +5 -0
  46. package/color-picker/mtxColorPicker.metadata.json +1 -1
  47. package/data-grid/grid.component.d.ts +2 -2
  48. package/esm2015/alert/alert.component.js +16 -9
  49. package/esm2015/button/mtxButton.js +5 -0
  50. package/esm2015/checkbox-group/checkbox-group.component.js +35 -8
  51. package/esm2015/color-picker/color-picker.component.js +11 -2
  52. package/esm2015/data-grid/grid.component.js +15 -15
  53. package/esm2015/form-group/form-group.component.js +1 -1
  54. package/esm2015/loader/loader.component.js +17 -4
  55. package/esm2015/popover/popover-errors.js +15 -15
  56. package/esm2015/popover/popover-interfaces.js +1 -1
  57. package/esm2015/popover/popover-trigger.js +95 -64
  58. package/esm2015/popover/popover-types.js +1 -1
  59. package/esm2015/popover/popover.js +68 -51
  60. package/esm2015/popover/public-api.js +2 -1
  61. package/esm2015/progress/progress.component.js +18 -1
  62. package/esm2015/select/select.component.js +1 -1
  63. package/fesm2015/mtxAlert.js +15 -8
  64. package/fesm2015/mtxAlert.js.map +1 -1
  65. package/fesm2015/{ng-matero-extensions-button.js → mtxButton.js} +1 -1
  66. package/fesm2015/mtxButton.js.map +1 -0
  67. package/fesm2015/mtxCheckboxGroup.js +34 -7
  68. package/fesm2015/mtxCheckboxGroup.js.map +1 -1
  69. package/fesm2015/mtxColorPicker.js +10 -1
  70. package/fesm2015/mtxColorPicker.js.map +1 -1
  71. package/fesm2015/mtxFormGroup.js.map +1 -1
  72. package/fesm2015/mtxGrid.js +14 -14
  73. package/fesm2015/mtxGrid.js.map +1 -1
  74. package/fesm2015/mtxLoader.js +16 -3
  75. package/fesm2015/mtxLoader.js.map +1 -1
  76. package/fesm2015/mtxPopover.js +174 -126
  77. package/fesm2015/mtxPopover.js.map +1 -1
  78. package/fesm2015/mtxProgress.js +17 -0
  79. package/fesm2015/mtxProgress.js.map +1 -1
  80. package/fesm2015/mtxSelect.js.map +1 -1
  81. package/form-group/form-group.component.d.ts +2 -0
  82. package/loader/loader.component.d.ts +9 -2
  83. package/loader/mtxLoader.metadata.json +1 -1
  84. package/package.json +2 -2
  85. package/popover/_popover-theme.scss +17 -7
  86. package/popover/mtxPopover.metadata.json +1 -1
  87. package/popover/popover-errors.d.ts +6 -6
  88. package/popover/popover-interfaces.d.ts +9 -9
  89. package/popover/popover-types.d.ts +3 -2
  90. package/popover/popover.d.ts +23 -17
  91. package/popover/popover.scss +117 -20
  92. package/popover/public-api.d.ts +1 -0
  93. package/progress/mtxProgress.metadata.json +1 -1
  94. package/progress/progress.component.d.ts +9 -2
  95. package/select/mtxSelect.metadata.json +1 -1
  96. package/select/select.component.d.ts +9 -5
  97. package/bundles/ng-matero-extensions-button.umd.js.map +0 -1
  98. package/esm2015/button/ng-matero-extensions-button.js +0 -5
  99. package/fesm2015/ng-matero-extensions-button.js.map +0 -1
@@ -23,6 +23,7 @@
23
23
  this._focused = false;
24
24
  this._required = false;
25
25
  this._disabled = false;
26
+ this._readonly = false;
26
27
  this.errorState = false;
27
28
  /** A name for this control that can be used by `mat-form-field`. */
28
29
  this.controlType = 'mtx-color-picker';
@@ -143,6 +144,17 @@
143
144
  enumerable: false,
144
145
  configurable: true
145
146
  });
147
+ Object.defineProperty(MtxColorPickerComponent.prototype, "readonly", {
148
+ /** Whether the element is readonly. */
149
+ get: function () {
150
+ return this._readonly;
151
+ },
152
+ set: function (value) {
153
+ this._readonly = coercion.coerceBooleanProperty(value);
154
+ },
155
+ enumerable: false,
156
+ configurable: true
157
+ });
146
158
  MtxColorPickerComponent.prototype.ngDoCheck = function () {
147
159
  if (this.ngControl) {
148
160
  this.errorState = (this.ngControl.invalid && this.ngControl.touched);
@@ -255,7 +267,7 @@
255
267
  { type: core.Component, args: [{
256
268
  selector: 'mtx-color-picker',
257
269
  exportAs: 'mtxColorPicker',
258
- template: "<input matInput\n [(ngModel)]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n (focus)=\"_handleFocus()\"\n autocomplete=\"off\">\n\n<div #colorPickerTrigger=\"matMenuTrigger\"\n [matMenuTriggerFor]=\"colorPickerPopover\"\n (menuOpened)=\"_openPanel()\"\n (menuClosed)=\"_closePanel()\">\n</div>\n\n<mat-menu #colorPickerPopover=\"matMenu\" class=\"mtx-color-picker-panel\" [hasBackdrop]=\"false\">\n <div class=\"mtx-color-picker\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\">\n <color-chrome [color]=\"value\" (onChangeComplete)=\"_onColorChanged($event)\"></color-chrome>\n </div>\n</mat-menu>\n",
270
+ template: "<input matInput\n [(ngModel)]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n (focus)=\"_handleFocus()\"\n autocomplete=\"off\">\n\n<div #colorPickerTrigger=\"matMenuTrigger\"\n [matMenuTriggerFor]=\"colorPickerPopover\"\n (menuOpened)=\"_openPanel()\"\n (menuClosed)=\"_closePanel()\">\n</div>\n\n<mat-menu #colorPickerPopover=\"matMenu\" class=\"mtx-color-picker-panel\" [hasBackdrop]=\"false\">\n <div class=\"mtx-color-picker\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\">\n <color-chrome [color]=\"value\" (onChangeComplete)=\"_onColorChanged($event)\"></color-chrome>\n </div>\n</mat-menu>\n",
259
271
  encapsulation: core.ViewEncapsulation.None,
260
272
  changeDetection: core.ChangeDetectionStrategy.OnPush,
261
273
  providers: [{ provide: formField.MatFormFieldControl, useExisting: MtxColorPickerComponent }],
@@ -278,6 +290,7 @@
278
290
  placeholder: [{ type: core.Input }],
279
291
  required: [{ type: core.Input }],
280
292
  disabled: [{ type: core.Input }],
293
+ readonly: [{ type: core.Input }],
281
294
  colorChange: [{ type: core.Output }],
282
295
  trigger: [{ type: core.ViewChild, args: [menu.MatMenuTrigger, { static: true },] }]
283
296
  };
@@ -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 /** 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 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_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 /** 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,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/menu"),require("@angular/material/form-field"),require("@angular/material/input"),require("ngx-color/chrome"),require("@angular/cdk/a11y"),require("@angular/cdk/coercion"),require("@angular/cdk/platform"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@ng-matero/extensions/color-picker",["exports","@angular/core","@angular/common","@angular/forms","@angular/material/menu","@angular/material/form-field","@angular/material/input","ngx-color/chrome","@angular/cdk/a11y","@angular/cdk/coercion","@angular/cdk/platform","rxjs","rxjs/operators"],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["color-picker"]={}),e.ng.core,e.ng.common,e.ng.forms,e.ng.material.menu,e.ng.material.formField,e.ng.material.input,e["ngx-color-chrome"],e.ng.cdk.a11y,e.ng.cdk.coercion,e.ng.cdk.platform,e.rxjs,e.rxjs.operators)}(this,(function(e,t,o,n,r,i,a,s,c,l,u,p,d){"use strict";var h=0,g=function(){function e(e,o,n,r,i,a,s){var c=this;this._focusMonitor=e,this._elementRef=o,this._changeDetectorRef=n,this._zone=r,this.ngControl=i,this._formField=a,this._document=s,this._value="",this.stateChanges=new p.Subject,this._uid="mtx-color-picker-"+h++,this._focused=!1,this._required=!1,this._disabled=!1,this.errorState=!1,this.controlType="mtx-color-picker",this._onChange=function(){},this._onTouched=function(){},this.colorChange=new t.EventEmitter,this._panelOpen=!1,this._canOpenOnNextFocus=!0,this._windowBlurHandler=function(){c._canOpenOnNextFocus=c._document.activeElement!==c._elementRef.nativeElement||c._panelOpen},e.monitor(o,!0).subscribe((function(e){c._focused&&!e&&c._onTouched(),c._focused=!!e,c.stateChanges.next()})),null!=this.ngControl&&(this.ngControl.valueAccessor=this)}return Object.defineProperty(e.prototype,"value",{get:function(){return this._value},set:function(e){this._value=e,this._onChange(e),this.stateChanges.next()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"id",{get:function(){return this._id},set:function(e){this._id=e||this._uid,this.stateChanges.next()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"placeholder",{get:function(){return this._placeholder},set:function(e){this._placeholder=e,this.stateChanges.next()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"focused",{get:function(){return this._focused||this._panelOpen},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"empty",{get:function(){return!this.value},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"shouldLabelFloat",{get:function(){return this.focused||!this.empty},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"required",{get:function(){return this._required},set:function(e){this._required=l.coerceBooleanProperty(e),this.stateChanges.next()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=l.coerceBooleanProperty(e),this.stateChanges.next()},enumerable:!1,configurable:!0}),e.prototype.ngDoCheck=function(){this.ngControl&&(this.errorState=this.ngControl.invalid&&this.ngControl.touched,this.stateChanges.next())},e.prototype.ngAfterViewInit=function(){var e=this;if("undefined"!=typeof window&&(this._zone.runOutsideAngular((function(){window.addEventListener("blur",e._windowBlurHandler)})),u._supportsShadowDom())){var t=this._elementRef.nativeElement,o=t.getRootNode?t.getRootNode():null;this._isInsideShadowRoot=o instanceof window.ShadowRoot}},e.prototype.ngOnDestroy=function(){this.stateChanges.complete(),this._focusMonitor.stopMonitoring(this._elementRef)},e.prototype.setDescribedByIds=function(e){this._ariaDescribedby=e.join(" ")},e.prototype.onContainerClick=function(){this._handleFocus()},e.prototype.writeValue=function(e){this.value=e||"",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._handleFocus=function(){var e=this;this.trigger.openMenu(),this._closingActionsSubscription=p.merge(this._getOutsideClickStream()).pipe().subscribe((function(t){e.trigger.closeMenu(),e._closingActionsSubscription.unsubscribe()}))},e.prototype._openPanel=function(){this._focused&&(this._panelOpen=!0)},e.prototype._closePanel=function(){this._panelOpen&&(this._panelOpen=!1,this._changeDetectorRef.markForCheck(),this._onTouched())},e.prototype._onColorChanged=function(e){this.value=e.color.hex,this.colorChange.emit(e)},e.prototype._getOutsideClickStream=function(){var e=this;return p.merge(p.fromEvent(this._document,"click"),p.fromEvent(this._document,"touchend")).pipe(d.filter((function(t){var o=e._isInsideShadowRoot&&t.composedPath?t.composedPath()[0]:t.target,n=e._formField?e._formField._elementRef.nativeElement:null;return!(o===e._elementRef.nativeElement||n&&n.contains(o))})))},e}();g.decorators=[{type:t.Component,args:[{selector:"mtx-color-picker",exportAs:"mtxColorPicker",template:'<input matInput\n [(ngModel)]="value"\n [placeholder]="placeholder"\n [disabled]="disabled"\n (focus)="_handleFocus()"\n autocomplete="off">\n\n<div #colorPickerTrigger="matMenuTrigger"\n [matMenuTriggerFor]="colorPickerPopover"\n (menuOpened)="_openPanel()"\n (menuClosed)="_closePanel()">\n</div>\n\n<mat-menu #colorPickerPopover="matMenu" class="mtx-color-picker-panel" [hasBackdrop]="false">\n <div class="mtx-color-picker"\n (click)="$event.stopPropagation()"\n (keydown)="$event.stopPropagation()">\n <color-chrome [color]="value" (onChangeComplete)="_onColorChanged($event)"></color-chrome>\n </div>\n</mat-menu>\n',encapsulation:t.ViewEncapsulation.None,changeDetection:t.ChangeDetectionStrategy.OnPush,providers:[{provide:i.MatFormFieldControl,useExisting:g}],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}"]}]}],g.ctorParameters=function(){return[{type:c.FocusMonitor},{type:t.ElementRef},{type:t.ChangeDetectorRef},{type:t.NgZone},{type:n.NgControl,decorators:[{type:t.Optional},{type:t.Self}]},{type:i.MatFormField,decorators:[{type:t.Optional},{type:t.Host}]},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[o.DOCUMENT]}]}]},g.propDecorators={value:[{type:t.Input}],id:[{type:t.Input}],placeholder:[{type:t.Input}],required:[{type:t.Input}],disabled:[{type:t.Input}],colorChange:[{type:t.Output}],trigger:[{type:t.ViewChild,args:[r.MatMenuTrigger,{static:!0}]}]};var m=function(){};m.decorators=[{type:t.NgModule,args:[{imports:[o.CommonModule,n.FormsModule,r.MatMenuModule,i.MatFormFieldModule,a.MatInputModule,s.ColorChromeModule],exports:[g],declarations:[g]}]}],e.MtxColorPickerComponent=g,e.MtxColorPickerModule=m,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/menu"),require("@angular/material/form-field"),require("@angular/material/input"),require("ngx-color/chrome"),require("@angular/cdk/a11y"),require("@angular/cdk/coercion"),require("@angular/cdk/platform"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@ng-matero/extensions/color-picker",["exports","@angular/core","@angular/common","@angular/forms","@angular/material/menu","@angular/material/form-field","@angular/material/input","ngx-color/chrome","@angular/cdk/a11y","@angular/cdk/coercion","@angular/cdk/platform","rxjs","rxjs/operators"],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["color-picker"]={}),e.ng.core,e.ng.common,e.ng.forms,e.ng.material.menu,e.ng.material.formField,e.ng.material.input,e["ngx-color-chrome"],e.ng.cdk.a11y,e.ng.cdk.coercion,e.ng.cdk.platform,e.rxjs,e.rxjs.operators)}(this,(function(e,t,o,n,r,i,a,c,s,l,u,p,d){"use strict";var h=0,g=function(){function e(e,o,n,r,i,a,c){var s=this;this._focusMonitor=e,this._elementRef=o,this._changeDetectorRef=n,this._zone=r,this.ngControl=i,this._formField=a,this._document=c,this._value="",this.stateChanges=new p.Subject,this._uid="mtx-color-picker-"+h++,this._focused=!1,this._required=!1,this._disabled=!1,this._readonly=!1,this.errorState=!1,this.controlType="mtx-color-picker",this._onChange=function(){},this._onTouched=function(){},this.colorChange=new t.EventEmitter,this._panelOpen=!1,this._canOpenOnNextFocus=!0,this._windowBlurHandler=function(){s._canOpenOnNextFocus=s._document.activeElement!==s._elementRef.nativeElement||s._panelOpen},e.monitor(o,!0).subscribe((function(e){s._focused&&!e&&s._onTouched(),s._focused=!!e,s.stateChanges.next()})),null!=this.ngControl&&(this.ngControl.valueAccessor=this)}return Object.defineProperty(e.prototype,"value",{get:function(){return this._value},set:function(e){this._value=e,this._onChange(e),this.stateChanges.next()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"id",{get:function(){return this._id},set:function(e){this._id=e||this._uid,this.stateChanges.next()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"placeholder",{get:function(){return this._placeholder},set:function(e){this._placeholder=e,this.stateChanges.next()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"focused",{get:function(){return this._focused||this._panelOpen},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"empty",{get:function(){return!this.value},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"shouldLabelFloat",{get:function(){return this.focused||!this.empty},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"required",{get:function(){return this._required},set:function(e){this._required=l.coerceBooleanProperty(e),this.stateChanges.next()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=l.coerceBooleanProperty(e),this.stateChanges.next()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"readonly",{get:function(){return this._readonly},set:function(e){this._readonly=l.coerceBooleanProperty(e)},enumerable:!1,configurable:!0}),e.prototype.ngDoCheck=function(){this.ngControl&&(this.errorState=this.ngControl.invalid&&this.ngControl.touched,this.stateChanges.next())},e.prototype.ngAfterViewInit=function(){var e=this;if("undefined"!=typeof window&&(this._zone.runOutsideAngular((function(){window.addEventListener("blur",e._windowBlurHandler)})),u._supportsShadowDom())){var t=this._elementRef.nativeElement,o=t.getRootNode?t.getRootNode():null;this._isInsideShadowRoot=o instanceof window.ShadowRoot}},e.prototype.ngOnDestroy=function(){this.stateChanges.complete(),this._focusMonitor.stopMonitoring(this._elementRef)},e.prototype.setDescribedByIds=function(e){this._ariaDescribedby=e.join(" ")},e.prototype.onContainerClick=function(){this._handleFocus()},e.prototype.writeValue=function(e){this.value=e||"",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._handleFocus=function(){var e=this;this.trigger.openMenu(),this._closingActionsSubscription=p.merge(this._getOutsideClickStream()).pipe().subscribe((function(t){e.trigger.closeMenu(),e._closingActionsSubscription.unsubscribe()}))},e.prototype._openPanel=function(){this._focused&&(this._panelOpen=!0)},e.prototype._closePanel=function(){this._panelOpen&&(this._panelOpen=!1,this._changeDetectorRef.markForCheck(),this._onTouched())},e.prototype._onColorChanged=function(e){this.value=e.color.hex,this.colorChange.emit(e)},e.prototype._getOutsideClickStream=function(){var e=this;return p.merge(p.fromEvent(this._document,"click"),p.fromEvent(this._document,"touchend")).pipe(d.filter((function(t){var o=e._isInsideShadowRoot&&t.composedPath?t.composedPath()[0]:t.target,n=e._formField?e._formField._elementRef.nativeElement:null;return!(o===e._elementRef.nativeElement||n&&n.contains(o))})))},e}();g.decorators=[{type:t.Component,args:[{selector:"mtx-color-picker",exportAs:"mtxColorPicker",template:'<input matInput\n [(ngModel)]="value"\n [placeholder]="placeholder"\n [disabled]="disabled"\n [readonly]="readonly"\n (focus)="_handleFocus()"\n autocomplete="off">\n\n<div #colorPickerTrigger="matMenuTrigger"\n [matMenuTriggerFor]="colorPickerPopover"\n (menuOpened)="_openPanel()"\n (menuClosed)="_closePanel()">\n</div>\n\n<mat-menu #colorPickerPopover="matMenu" class="mtx-color-picker-panel" [hasBackdrop]="false">\n <div class="mtx-color-picker"\n (click)="$event.stopPropagation()"\n (keydown)="$event.stopPropagation()">\n <color-chrome [color]="value" (onChangeComplete)="_onColorChanged($event)"></color-chrome>\n </div>\n</mat-menu>\n',encapsulation:t.ViewEncapsulation.None,changeDetection:t.ChangeDetectionStrategy.OnPush,providers:[{provide:i.MatFormFieldControl,useExisting:g}],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}"]}]}],g.ctorParameters=function(){return[{type:s.FocusMonitor},{type:t.ElementRef},{type:t.ChangeDetectorRef},{type:t.NgZone},{type:n.NgControl,decorators:[{type:t.Optional},{type:t.Self}]},{type:i.MatFormField,decorators:[{type:t.Optional},{type:t.Host}]},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[o.DOCUMENT]}]}]},g.propDecorators={value:[{type:t.Input}],id:[{type:t.Input}],placeholder:[{type:t.Input}],required:[{type:t.Input}],disabled:[{type:t.Input}],readonly:[{type:t.Input}],colorChange:[{type:t.Output}],trigger:[{type:t.ViewChild,args:[r.MatMenuTrigger,{static:!0}]}]};var m=function(){};m.decorators=[{type:t.NgModule,args:[{imports:[o.CommonModule,n.FormsModule,r.MatMenuModule,i.MatFormFieldModule,a.MatInputModule,c.ColorChromeModule],exports:[g],declarations:[g]}]}],e.MtxColorPickerComponent=g,e.MtxColorPickerModule=m,Object.defineProperty(e,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=mtxColorPicker.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../projects/extensions/color-picker/color-picker.component.ts","../../../projects/extensions/color-picker/color-picker.module.ts"],"names":["nextUniqueId","MtxColorPickerComponent","_focusMonitor","_elementRef","_changeDetectorRef","_zone","ngControl","_formField","_document","_this","this","_value","stateChanges","Subject","_uid","_focused","_required","_disabled","errorState","controlType","_onChange","_onTouched","colorChange","EventEmitter","_panelOpen","_canOpenOnNextFocus","_windowBlurHandler","activeElement","nativeElement","monitor","subscribe","origin","next","valueAccessor","Object","defineProperty","prototype","newValue","_id","value","_placeholder","focused","empty","coerceBooleanProperty","ngDoCheck","invalid","touched","ngAfterViewInit","window","runOutsideAngular","addEventListener","_supportsShadowDom","element","rootNode","getRootNode","_isInsideShadowRoot","ShadowRoot","ngOnDestroy","complete","stopMonitoring","setDescribedByIds","ids","_ariaDescribedby","join","onContainerClick","_handleFocus","writeValue","markForCheck","registerOnChange","fn","registerOnTouched","setDisabledState","isDisabled","disabled","trigger","openMenu","_closingActionsSubscription","merge","_getOutsideClickStream","pipe","event","closeMenu","unsubscribe","_openPanel","_closePanel","_onColorChanged","model","color","hex","emit","fromEvent","filter","clickTarget","composedPath","target","formField","contains","Component","args","selector","exportAs","template","encapsulation","ViewEncapsulation","None","changeDetection","ChangeDetectionStrategy","OnPush","providers","provide","MatFormFieldControl","useExisting","FocusMonitor","ElementRef","ChangeDetectorRef","NgZone","NgControl","decorators","type","Optional","Self","MatFormField","Host","Inject","DOCUMENT","Input","Output","ViewChild","MatMenuTrigger","static","NgModule","imports","CommonModule","FormsModule","MatMenuModule","MatFormFieldModule","MatInputModule","ColorChromeModule","exports","declarations"],"mappings":"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","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 /** 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 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_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"]}
1
+ {"version":3,"sources":["../../../projects/extensions/color-picker/color-picker.component.ts","../../../projects/extensions/color-picker/color-picker.module.ts"],"names":["nextUniqueId","MtxColorPickerComponent","_focusMonitor","_elementRef","_changeDetectorRef","_zone","ngControl","_formField","_document","_this","this","_value","stateChanges","Subject","_uid","_focused","_required","_disabled","_readonly","errorState","controlType","_onChange","_onTouched","colorChange","EventEmitter","_panelOpen","_canOpenOnNextFocus","_windowBlurHandler","activeElement","nativeElement","monitor","subscribe","origin","next","valueAccessor","Object","defineProperty","prototype","newValue","_id","value","_placeholder","focused","empty","coerceBooleanProperty","ngDoCheck","invalid","touched","ngAfterViewInit","window","runOutsideAngular","addEventListener","_supportsShadowDom","element","rootNode","getRootNode","_isInsideShadowRoot","ShadowRoot","ngOnDestroy","complete","stopMonitoring","setDescribedByIds","ids","_ariaDescribedby","join","onContainerClick","_handleFocus","writeValue","markForCheck","registerOnChange","fn","registerOnTouched","setDisabledState","isDisabled","disabled","trigger","openMenu","_closingActionsSubscription","merge","_getOutsideClickStream","pipe","event","closeMenu","unsubscribe","_openPanel","_closePanel","_onColorChanged","model","color","hex","emit","fromEvent","filter","clickTarget","composedPath","target","formField","contains","Component","args","selector","exportAs","template","encapsulation","ViewEncapsulation","None","changeDetection","ChangeDetectionStrategy","OnPush","providers","provide","MatFormFieldControl","useExisting","FocusMonitor","ElementRef","ChangeDetectorRef","NgZone","NgControl","decorators","type","Optional","Self","MatFormField","Host","Inject","DOCUMENT","Input","Output","ViewChild","MatMenuTrigger","static","NgModule","imports","CommonModule","FormsModule","MatMenuModule","MatFormFieldModule","MatInputModule","ColorChromeModule","exports","declarations"],"mappings":"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","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 /** 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"]}
@@ -1 +1 @@
1
- {"version":3,"file":"mtxFormGroup.umd.js","sources":["../../../projects/extensions/form-group/form-group.component.ts","../../../projects/extensions/form-group/form-group.module.ts","../../../projects/extensions/form-group/mtxFormGroup.ts"],"sourcesContent":["import {\r\n AfterContentInit,\r\n Component,\r\n ContentChildren,\r\n Input,\r\n OnInit,\r\n QueryList,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { MatFormField } from '@angular/material/form-field';\r\n\r\n@Component({\r\n selector: 'mtx-form-group',\r\n host: {\r\n class: 'mtx-form-group',\r\n },\r\n templateUrl: './form-group.component.html',\r\n styleUrls: ['./form-group.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MtxFormGroupComponent implements OnInit, AfterContentInit {\r\n @ContentChildren(MatFormField) formFields!: QueryList<MatFormField>;\r\n\r\n @Input() label: string;\r\n @Input()\r\n get showRequiredMarker() {\r\n return this._showRequiredMarker;\r\n }\r\n set showRequiredMarker(value: boolean) {\r\n this._showRequiredMarker = coerceBooleanProperty(value);\r\n }\r\n private _showRequiredMarker = false;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n ngAfterContentInit() {\r\n this.formFields.forEach(item => {\r\n item.appearance = 'standard';\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MtxFormGroupComponent } from './form-group.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [MtxFormGroupComponent],\n declarations: [MtxFormGroupComponent],\n})\nexport class MtxFormGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["coerceBooleanProperty","Component","ViewEncapsulation","ContentChildren","MatFormField","Input","NgModule","CommonModule"],"mappings":";;;;;;;QAkCE;YAFQ,wBAAmB,GAAG,KAAK,CAAC;SAEpB;QAThB,sBACI,qDAAkB;iBADtB;gBAEE,OAAO,IAAI,CAAC,mBAAmB,CAAC;aACjC;iBACD,UAAuB,KAAc;gBACnC,IAAI,CAAC,mBAAmB,GAAGA,8BAAqB,CAAC,KAAK,CAAC,CAAC;aACzD;;;WAHA;QAQD,wCAAQ,GAAR,eAAmB;QAEnB,kDAAkB,GAAlB;YACE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAA,IAAI;gBAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;aAC9B,CAAC,CAAC;SACJ;;;;gBA9BFC,cAAS,SAAC;oBACT,QAAQ,EAAE,gBAAgB;oBAC1B,IAAI,EAAE;wBACJ,KAAK,EAAE,gBAAgB;qBACxB;oBACD,mRAA0C;oBAE1C,aAAa,EAAEC,sBAAiB,CAAC,IAAI;;iBACtC;;;;;6BAEEC,oBAAe,SAACC,sBAAY;wBAE5BC,UAAK;qCACLA,UAAK;;;;QCfR;;;;;gBALCC,aAAQ,SAAC;oBACR,OAAO,EAAE,CAACC,mBAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,qBAAqB,CAAC;oBAChC,YAAY,EAAE,CAAC,qBAAqB,CAAC;iBACtC;;;ICTD;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"mtxFormGroup.umd.js","sources":["../../../projects/extensions/form-group/form-group.component.ts","../../../projects/extensions/form-group/form-group.module.ts","../../../projects/extensions/form-group/mtxFormGroup.ts"],"sourcesContent":["import {\r\n AfterContentInit,\r\n Component,\r\n ContentChildren,\r\n Input,\r\n OnInit,\r\n QueryList,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { MatFormField } from '@angular/material/form-field';\r\n\r\n@Component({\r\n selector: 'mtx-form-group',\r\n host: {\r\n class: 'mtx-form-group',\r\n },\r\n templateUrl: './form-group.component.html',\r\n styleUrls: ['./form-group.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MtxFormGroupComponent implements OnInit, AfterContentInit {\r\n @ContentChildren(MatFormField) formFields!: QueryList<MatFormField>;\r\n\r\n @Input() label: string;\r\n @Input()\r\n get showRequiredMarker() {\r\n return this._showRequiredMarker;\r\n }\r\n set showRequiredMarker(value: boolean) {\r\n this._showRequiredMarker = coerceBooleanProperty(value);\r\n }\r\n private _showRequiredMarker = false;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n ngAfterContentInit() {\r\n this.formFields.forEach(item => {\r\n item.appearance = 'standard';\r\n });\r\n }\r\n\r\n static ngAcceptInputType_showRequiredMarker: BooleanInput;\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MtxFormGroupComponent } from './form-group.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [MtxFormGroupComponent],\n declarations: [MtxFormGroupComponent],\n})\nexport class MtxFormGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["coerceBooleanProperty","Component","ViewEncapsulation","ContentChildren","MatFormField","Input","NgModule","CommonModule"],"mappings":";;;;;;;QAkCE;YAFQ,wBAAmB,GAAG,KAAK,CAAC;SAEpB;QAThB,sBACI,qDAAkB;iBADtB;gBAEE,OAAO,IAAI,CAAC,mBAAmB,CAAC;aACjC;iBACD,UAAuB,KAAc;gBACnC,IAAI,CAAC,mBAAmB,GAAGA,8BAAqB,CAAC,KAAK,CAAC,CAAC;aACzD;;;WAHA;QAQD,wCAAQ,GAAR,eAAmB;QAEnB,kDAAkB,GAAlB;YACE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAA,IAAI;gBAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;aAC9B,CAAC,CAAC;SACJ;;;;gBA9BFC,cAAS,SAAC;oBACT,QAAQ,EAAE,gBAAgB;oBAC1B,IAAI,EAAE;wBACJ,KAAK,EAAE,gBAAgB;qBACxB;oBACD,mRAA0C;oBAE1C,aAAa,EAAEC,sBAAiB,CAAC,IAAI;;iBACtC;;;;;6BAEEC,oBAAe,SAACC,sBAAY;wBAE5BC,UAAK;qCACLA,UAAK;;;;QCfR;;;;;gBALCC,aAAQ,SAAC;oBACR,OAAO,EAAE,CAACC,mBAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,qBAAqB,CAAC;oBAChC,YAAY,EAAE,CAAC,qBAAqB,CAAC;iBACtC;;;ICTD;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../projects/extensions/form-group/form-group.component.ts","../../../projects/extensions/form-group/form-group.module.ts"],"names":["MtxFormGroupComponent","this","_showRequiredMarker","Object","defineProperty","prototype","value","coerceBooleanProperty","ngOnInit","ngAfterContentInit","formFields","forEach","item","appearance","Component","args","selector","host","class","template","encapsulation","ViewEncapsulation","None","ContentChildren","MatFormField","Input","NgModule","imports","CommonModule","exports","declarations"],"mappings":"2rBAkCE,SAAAA,IAFQC,KAAAC,qBAAsB,SAP9BC,OAAAC,eACIJ,EAAAK,UAAA,qBAAkB,KADtB,WAEE,OAAOJ,KAAKC,yBAEd,SAAuBI,GACrBL,KAAKC,oBAAsBK,EAAAA,sBAAsBD,oCAMnDN,EAAAK,UAAAG,SAAA,aAEAR,EAAAK,UAAAI,mBAAA,WACER,KAAKS,WAAWC,SAAQ,SAAAC,GACtBA,EAAKC,WAAa,wCA5BvBC,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,iBACVC,KAAM,CACJC,MAAO,kBAETC,SAAA,kQAEAC,cAAeC,EAAAA,kBAAkBC,s5DAGhCC,EAAAA,gBAAeR,KAAA,CAACS,EAAAA,6BAEhBC,EAAAA,kCACAA,EAAAA,eCfH,iCALCC,EAAAA,SAAQX,KAAA,CAAC,CACRY,QAAS,CAACC,EAAAA,cACVC,QAAS,CAAC7B,GACV8B,aAAc,CAAC9B","sourcesContent":["import {\r\n AfterContentInit,\r\n Component,\r\n ContentChildren,\r\n Input,\r\n OnInit,\r\n QueryList,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { MatFormField } from '@angular/material/form-field';\r\n\r\n@Component({\r\n selector: 'mtx-form-group',\r\n host: {\r\n class: 'mtx-form-group',\r\n },\r\n templateUrl: './form-group.component.html',\r\n styleUrls: ['./form-group.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MtxFormGroupComponent implements OnInit, AfterContentInit {\r\n @ContentChildren(MatFormField) formFields!: QueryList<MatFormField>;\r\n\r\n @Input() label: string;\r\n @Input()\r\n get showRequiredMarker() {\r\n return this._showRequiredMarker;\r\n }\r\n set showRequiredMarker(value: boolean) {\r\n this._showRequiredMarker = coerceBooleanProperty(value);\r\n }\r\n private _showRequiredMarker = false;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n ngAfterContentInit() {\r\n this.formFields.forEach(item => {\r\n item.appearance = 'standard';\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MtxFormGroupComponent } from './form-group.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [MtxFormGroupComponent],\n declarations: [MtxFormGroupComponent],\n})\nexport class MtxFormGroupModule {}\n"]}
1
+ {"version":3,"sources":["../../../projects/extensions/form-group/form-group.component.ts","../../../projects/extensions/form-group/form-group.module.ts"],"names":["MtxFormGroupComponent","this","_showRequiredMarker","Object","defineProperty","prototype","value","coerceBooleanProperty","ngOnInit","ngAfterContentInit","formFields","forEach","item","appearance","Component","args","selector","host","class","template","encapsulation","ViewEncapsulation","None","ContentChildren","MatFormField","Input","NgModule","imports","CommonModule","exports","declarations"],"mappings":"2rBAkCE,SAAAA,IAFQC,KAAAC,qBAAsB,SAP9BC,OAAAC,eACIJ,EAAAK,UAAA,qBAAkB,KADtB,WAEE,OAAOJ,KAAKC,yBAEd,SAAuBI,GACrBL,KAAKC,oBAAsBK,EAAAA,sBAAsBD,oCAMnDN,EAAAK,UAAAG,SAAA,aAEAR,EAAAK,UAAAI,mBAAA,WACER,KAAKS,WAAWC,SAAQ,SAAAC,GACtBA,EAAKC,WAAa,wCA5BvBC,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,iBACVC,KAAM,CACJC,MAAO,kBAETC,SAAA,kQAEAC,cAAeC,EAAAA,kBAAkBC,s5DAGhCC,EAAAA,gBAAeR,KAAA,CAACS,EAAAA,6BAEhBC,EAAAA,kCACAA,EAAAA,eCfH,iCALCC,EAAAA,SAAQX,KAAA,CAAC,CACRY,QAAS,CAACC,EAAAA,cACVC,QAAS,CAAC7B,GACV8B,aAAc,CAAC9B","sourcesContent":["import {\r\n AfterContentInit,\r\n Component,\r\n ContentChildren,\r\n Input,\r\n OnInit,\r\n QueryList,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { MatFormField } from '@angular/material/form-field';\r\n\r\n@Component({\r\n selector: 'mtx-form-group',\r\n host: {\r\n class: 'mtx-form-group',\r\n },\r\n templateUrl: './form-group.component.html',\r\n styleUrls: ['./form-group.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MtxFormGroupComponent implements OnInit, AfterContentInit {\r\n @ContentChildren(MatFormField) formFields!: QueryList<MatFormField>;\r\n\r\n @Input() label: string;\r\n @Input()\r\n get showRequiredMarker() {\r\n return this._showRequiredMarker;\r\n }\r\n set showRequiredMarker(value: boolean) {\r\n this._showRequiredMarker = coerceBooleanProperty(value);\r\n }\r\n private _showRequiredMarker = false;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n ngAfterContentInit() {\r\n this.formFields.forEach(item => {\r\n item.appearance = 'standard';\r\n });\r\n }\r\n\r\n static ngAcceptInputType_showRequiredMarker: BooleanInput;\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MtxFormGroupComponent } from './form-group.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [MtxFormGroupComponent],\n declarations: [MtxFormGroupComponent],\n})\nexport class MtxFormGroupModule {}\n"]}
@@ -375,7 +375,7 @@
375
375
  this.length = 0;
376
376
  this.loading = false;
377
377
  this.columnResizable = false;
378
- // Page
378
+ // ===== Page =====
379
379
  this.pageOnFront = true;
380
380
  this.showPaginator = true;
381
381
  this.pageDisabled = false;
@@ -385,22 +385,22 @@
385
385
  this.pageSizeOptions = [10, 50, 100];
386
386
  this.hidePageSize = false;
387
387
  this.page = new core.EventEmitter();
388
- // Sort
388
+ // ===== Sort =====
389
389
  this.sortOnFront = true;
390
390
  this.sortDisableClear = false;
391
391
  this.sortDisabled = false;
392
392
  this.sortStart = 'asc';
393
393
  this.sortChange = new core.EventEmitter();
394
- // Row
394
+ // ===== Row =====
395
395
  this.rowHover = false;
396
396
  this.rowStriped = false;
397
397
  this.rowClick = new core.EventEmitter();
398
- // Expansion
398
+ // ===== Expandable Row =====
399
399
  this.expansionRowStates = [];
400
400
  this.expandable = false;
401
401
  this.expansionChange = new core.EventEmitter();
402
- // Row selection
403
- /** Whether support multiple row/cell selection */
402
+ // ===== Row Selection =====
403
+ /** Whether support multiple row/cell selection. */
404
404
  this.multiSelectable = true;
405
405
  this.rowSelection = new collections.SelectionModel(true, []);
406
406
  this.rowSelected = [];
@@ -408,14 +408,14 @@
408
408
  this.hideRowSelectionCheckbox = false;
409
409
  this.rowSelectionFormatter = {};
410
410
  this.rowSelectionChange = new core.EventEmitter();
411
- // Cell selection
411
+ // ===== Cell Selection =====
412
412
  this.cellSelection = [];
413
413
  this.cellSelectable = true;
414
414
  this.cellSelectionChange = new core.EventEmitter();
415
- // Toolbar
415
+ // ===== Toolbar =====
416
416
  this.showToolbar = false;
417
417
  this.toolbarTitle = '';
418
- // Column menu
418
+ // ===== Column Menu =====
419
419
  this.columnMenuData = [];
420
420
  this.showColumnMenuButton = true;
421
421
  this.columnMenuButtonText = '';
@@ -431,13 +431,13 @@
431
431
  this.columnMenuHeaderText = 'Columns Header';
432
432
  this.showColumnMenuFooter = false;
433
433
  this.columnMenuFooterText = 'Columns Footer';
434
- // No Result
434
+ // ===== No Result =====
435
435
  this.noResultText = 'No records found';
436
- // Summary
436
+ // ===== Summary =====
437
437
  this.showSummary = false;
438
- // Sidebar
438
+ // ===== Side Bar =====
439
439
  this.showSidebar = false;
440
- // Status bar
440
+ // ===== Status Bar =====
441
441
  this.showStatusbar = false;
442
442
  }
443
443
  Object.defineProperty(MtxGridComponent.prototype, "_hasNoResult", {
@@ -639,7 +639,7 @@
639
639
  this.expansionRowStates[index].expanded = !this.expansionRowStates[index].expanded;
640
640
  return this.expansionRowStates[index].expanded;
641
641
  };
642
- /** Scroll to top when turn to the next page */
642
+ /** Scroll to top when turn to the next page. */
643
643
  MtxGridComponent.prototype._handlePage = function (e) {
644
644
  if (this.pageOnFront) {
645
645
  this.scrollTop(0);