@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.
- package/alert/_alert-theme.scss +20 -20
- package/alert/alert.component.d.ts +4 -3
- package/alert/mtxAlert.metadata.json +1 -1
- package/bundles/mtxAlert.umd.js +3 -3
- package/bundles/mtxAlert.umd.js.map +1 -1
- package/bundles/mtxAlert.umd.min.js.map +1 -1
- package/bundles/{ng-matero-extensions-button.umd.js → mtxButton.umd.js} +2 -2
- package/bundles/mtxButton.umd.js.map +1 -0
- package/bundles/{ng-matero-extensions-button.umd.min.js → mtxButton.umd.min.js} +1 -1
- package/bundles/{ng-matero-extensions-button.umd.min.js.map → mtxButton.umd.min.js.map} +0 -0
- package/bundles/mtxCheckboxGroup.umd.js +87 -22
- package/bundles/mtxCheckboxGroup.umd.js.map +1 -1
- package/bundles/mtxCheckboxGroup.umd.min.js +1 -1
- package/bundles/mtxCheckboxGroup.umd.min.js.map +1 -1
- package/bundles/mtxColorPicker.umd.js +32 -5
- package/bundles/mtxColorPicker.umd.js.map +1 -1
- package/bundles/mtxColorPicker.umd.min.js +1 -1
- package/bundles/mtxColorPicker.umd.min.js.map +1 -1
- package/bundles/mtxDialog.umd.js +0 -2
- package/bundles/mtxDialog.umd.js.map +1 -1
- package/bundles/mtxDialog.umd.min.js +1 -1
- package/bundles/mtxDialog.umd.min.js.map +1 -1
- package/bundles/mtxFormGroup.umd.js +2 -0
- package/bundles/mtxFormGroup.umd.js.map +1 -1
- package/bundles/mtxFormGroup.umd.min.js +1 -1
- package/bundles/mtxFormGroup.umd.min.js.map +1 -1
- package/bundles/mtxGrid.umd.js +31 -101
- package/bundles/mtxGrid.umd.js.map +1 -1
- package/bundles/mtxGrid.umd.min.js +2 -2
- package/bundles/mtxGrid.umd.min.js.map +1 -1
- package/bundles/mtxLoader.umd.js +1 -1
- package/bundles/mtxLoader.umd.js.map +1 -1
- package/bundles/mtxLoader.umd.min.js +1 -1
- package/bundles/mtxLoader.umd.min.js.map +1 -1
- package/bundles/mtxProgress.umd.js +2 -2
- package/bundles/mtxProgress.umd.js.map +1 -1
- package/bundles/mtxProgress.umd.min.js.map +1 -1
- package/bundles/mtxSelect.umd.js +5 -1
- package/bundles/mtxSelect.umd.js.map +1 -1
- package/bundles/mtxSelect.umd.min.js +1 -1
- package/bundles/mtxSelect.umd.min.js.map +1 -1
- package/bundles/mtxTooltip.umd.js +1 -1
- package/bundles/mtxTooltip.umd.js.map +1 -1
- package/bundles/mtxTooltip.umd.min.js +1 -1
- package/bundles/mtxTooltip.umd.min.js.map +1 -1
- package/bundles/mtxUtils.umd.js.map +1 -1
- package/bundles/mtxUtils.umd.min.js.map +1 -1
- package/button/{ng-matero-extensions-button.d.ts → mtxButton.d.ts} +0 -0
- package/button/{ng-matero-extensions-button.metadata.json → mtxButton.metadata.json} +0 -0
- package/button/package.json +7 -7
- package/checkbox-group/checkbox-group.component.d.ts +15 -11
- package/checkbox-group/mtxCheckboxGroup.metadata.json +1 -1
- package/color-picker/color-picker.component.d.ts +10 -9
- package/color-picker/mtxColorPicker.metadata.json +1 -1
- package/data-grid/_grid-theme.scss +14 -32
- package/data-grid/cell.component.d.ts +2 -1
- package/data-grid/column-menu.component.d.ts +4 -3
- package/data-grid/grid.component.d.ts +7 -20
- package/data-grid/grid.component.scss +51 -5
- package/data-grid/grid.interface.d.ts +18 -36
- package/data-grid/mtxGrid.metadata.json +1 -1
- package/dialog/dialog.config.d.ts +3 -2
- package/dialog/mtxDialog.metadata.json +1 -1
- package/esm2015/alert/alert.component.js +4 -4
- package/esm2015/button/mtxButton.js +10 -0
- package/esm2015/checkbox-group/checkbox-group.component.js +77 -20
- package/esm2015/color-picker/color-picker.component.js +29 -6
- package/esm2015/data-grid/cell.component.js +2 -2
- package/esm2015/data-grid/column-menu.component.js +1 -2
- package/esm2015/data-grid/grid.component.js +32 -100
- package/esm2015/data-grid/grid.interface.js +12 -11
- package/esm2015/dialog/dialog.config.js +1 -1
- package/esm2015/dialog/dialog.js +1 -3
- package/esm2015/form-group/form-group.component.js +4 -2
- package/esm2015/loader/loader.component.js +2 -2
- package/esm2015/progress/progress.component.js +3 -3
- package/esm2015/select/select.component.js +6 -2
- package/esm2015/tooltip/tooltip.js +2 -2
- package/esm2015/utils/to-observable.pipe.js +1 -1
- package/fesm2015/mtxAlert.js +3 -3
- package/fesm2015/mtxAlert.js.map +1 -1
- package/fesm2015/{ng-matero-extensions-button.js → mtxButton.js} +2 -2
- package/fesm2015/mtxButton.js.map +1 -0
- package/fesm2015/mtxCheckboxGroup.js +76 -19
- package/fesm2015/mtxCheckboxGroup.js.map +1 -1
- package/fesm2015/mtxColorPicker.js +28 -5
- package/fesm2015/mtxColorPicker.js.map +1 -1
- package/fesm2015/mtxDialog.js +0 -2
- package/fesm2015/mtxDialog.js.map +1 -1
- package/fesm2015/mtxFormGroup.js +3 -1
- package/fesm2015/mtxFormGroup.js.map +1 -1
- package/fesm2015/mtxGrid.js +43 -111
- package/fesm2015/mtxGrid.js.map +1 -1
- package/fesm2015/mtxLoader.js +1 -1
- package/fesm2015/mtxLoader.js.map +1 -1
- package/fesm2015/mtxProgress.js +2 -2
- package/fesm2015/mtxProgress.js.map +1 -1
- package/fesm2015/mtxSelect.js +5 -1
- package/fesm2015/mtxSelect.js.map +1 -1
- package/fesm2015/mtxTooltip.js +1 -1
- package/fesm2015/mtxTooltip.js.map +1 -1
- package/fesm2015/mtxUtils.js.map +1 -1
- package/form-group/mtxFormGroup.metadata.json +1 -1
- package/loader/loader.component.d.ts +2 -1
- package/loader/mtxLoader.metadata.json +1 -1
- package/package.json +1 -1
- package/progress/mtxProgress.metadata.json +1 -1
- package/progress/progress.component.d.ts +3 -2
- package/select/_select-theme.scss +18 -18
- package/select/mtxSelect.metadata.json +1 -1
- package/select/select.component.d.ts +4 -1
- package/tooltip/mtxTooltip.metadata.json +1 -1
- package/utils/to-observable.pipe.d.ts +1 -1
- package/bundles/ng-matero-extensions-button.umd.js.map +0 -1
- package/esm2015/button/ng-matero-extensions-button.js +0 -10
- package/fesm2015/ng-matero-extensions-button.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mtxCheckboxGroup.js","sources":["../../../projects/extensions/checkbox-group/checkbox-group.component.ts","../../../projects/extensions/checkbox-group/checkbox-group.module.ts","../../../projects/extensions/checkbox-group/checkbox-group.interface.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","export interface MtxCheckboxGroupOption {\n ariaDescribedby?: string;\n ariaLabel?: string;\n ariaLabelledby?: string;\n label?: any;\n value?: any;\n color?: string;\n checked?: boolean;\n disabled?: boolean;\n disableRipple?: boolean;\n indeterminate?: boolean;\n labelPosition?: 'before' | 'after';\n id?: string;\n name?: string | null;\n required?: boolean;\n [k: string]: any;\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mtxCheckboxGroup.js","sources":["../../../projects/extensions/checkbox-group/checkbox-group.component.ts","../../../projects/extensions/checkbox-group/checkbox-group.module.ts","../../../projects/extensions/checkbox-group/checkbox-group.interface.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","export interface MtxCheckboxGroupOption {\n ariaDescribedby?: string;\n ariaLabel?: string;\n ariaLabelledby?: string;\n label?: any;\n value?: any;\n color?: string;\n checked?: boolean;\n disabled?: boolean;\n disableRipple?: boolean;\n indeterminate?: boolean;\n labelPosition?: 'before' | 'after';\n id?: string;\n name?: string | null;\n required?: boolean;\n [k: string]: any;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,7 @@ class MtxColorPickerComponent {
|
|
|
48
48
|
this._focused = false;
|
|
49
49
|
this._required = false;
|
|
50
50
|
this._disabled = false;
|
|
51
|
+
this._readonly = false;
|
|
51
52
|
this.errorState = false;
|
|
52
53
|
/**
|
|
53
54
|
* A name for this control that can be used by `mat-form-field`.
|
|
@@ -203,6 +204,20 @@ class MtxColorPickerComponent {
|
|
|
203
204
|
this._disabled = coerceBooleanProperty(value);
|
|
204
205
|
this.stateChanges.next();
|
|
205
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* Whether the element is readonly.
|
|
209
|
+
* @return {?}
|
|
210
|
+
*/
|
|
211
|
+
get readonly() {
|
|
212
|
+
return this._readonly;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* @param {?} value
|
|
216
|
+
* @return {?}
|
|
217
|
+
*/
|
|
218
|
+
set readonly(value) {
|
|
219
|
+
this._readonly = coerceBooleanProperty(value);
|
|
220
|
+
}
|
|
206
221
|
/**
|
|
207
222
|
* @return {?}
|
|
208
223
|
*/
|
|
@@ -335,7 +350,7 @@ class MtxColorPickerComponent {
|
|
|
335
350
|
*/
|
|
336
351
|
_onColorChanged(model) {
|
|
337
352
|
this.value = model.color.hex;
|
|
338
|
-
this.colorChange.emit(
|
|
353
|
+
this.colorChange.emit(model);
|
|
339
354
|
}
|
|
340
355
|
/**
|
|
341
356
|
* Stream of clicks outside of the color picker panel.
|
|
@@ -351,9 +366,7 @@ class MtxColorPickerComponent {
|
|
|
351
366
|
// If we're in the Shadow DOM, the event target will be the shadow root, so we have to
|
|
352
367
|
// fall back to check the first element in the path of the click event.
|
|
353
368
|
/** @type {?} */
|
|
354
|
-
const clickTarget = (/** @type {?} */ ((this._isInsideShadowRoot && event.composedPath
|
|
355
|
-
? event.composedPath()[0]
|
|
356
|
-
: event.target)));
|
|
369
|
+
const clickTarget = (/** @type {?} */ ((this._isInsideShadowRoot && event.composedPath ? event.composedPath()[0] : event.target)));
|
|
357
370
|
/** @type {?} */
|
|
358
371
|
const formField = this._formField ? this._formField._elementRef.nativeElement : null;
|
|
359
372
|
return (clickTarget !== this._elementRef.nativeElement &&
|
|
@@ -365,7 +378,7 @@ MtxColorPickerComponent.decorators = [
|
|
|
365
378
|
{ type: Component, args: [{
|
|
366
379
|
selector: 'mtx-color-picker',
|
|
367
380
|
exportAs: 'mtxColorPicker',
|
|
368
|
-
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",
|
|
381
|
+
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",
|
|
369
382
|
encapsulation: ViewEncapsulation.None,
|
|
370
383
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
371
384
|
providers: [{ provide: MatFormFieldControl, useExisting: MtxColorPickerComponent }],
|
|
@@ -388,10 +401,15 @@ MtxColorPickerComponent.propDecorators = {
|
|
|
388
401
|
placeholder: [{ type: Input }],
|
|
389
402
|
required: [{ type: Input }],
|
|
390
403
|
disabled: [{ type: Input }],
|
|
404
|
+
readonly: [{ type: Input }],
|
|
391
405
|
colorChange: [{ type: Output }],
|
|
392
406
|
trigger: [{ type: ViewChild, args: [MatMenuTrigger, { static: true },] }]
|
|
393
407
|
};
|
|
394
408
|
if (false) {
|
|
409
|
+
/** @type {?} */
|
|
410
|
+
MtxColorPickerComponent.ngAcceptInputType_required;
|
|
411
|
+
/** @type {?} */
|
|
412
|
+
MtxColorPickerComponent.ngAcceptInputType_disabled;
|
|
395
413
|
/**
|
|
396
414
|
* @type {?}
|
|
397
415
|
* @private
|
|
@@ -433,6 +451,11 @@ if (false) {
|
|
|
433
451
|
* @private
|
|
434
452
|
*/
|
|
435
453
|
MtxColorPickerComponent.prototype._disabled;
|
|
454
|
+
/**
|
|
455
|
+
* @type {?}
|
|
456
|
+
* @private
|
|
457
|
+
*/
|
|
458
|
+
MtxColorPickerComponent.prototype._readonly;
|
|
436
459
|
/** @type {?} */
|
|
437
460
|
MtxColorPickerComponent.prototype.errorState;
|
|
438
461
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mtxColorPicker.js","sources":["../../../projects/extensions/color-picker/color-picker.component.ts","../../../projects/extensions/color-picker/color-picker.module.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 { 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 { Color } 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<{ color: Color; $event: MouseEvent }>();\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: { color: Color; $event: MouseEvent }) {\n this.value = model.color.hex;\n this.colorChange.emit({ color: model.color, $event: model.$event });\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 = (this._isInsideShadowRoot && event.composedPath\n ? event.composedPath()[0]\n : event.target) 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","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"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mtxColorPicker.js","sources":["../../../projects/extensions/color-picker/color-picker.component.ts","../../../projects/extensions/color-picker/color-picker.module.ts"],"sourcesContent":["import {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n OnDestroy,\n Optional,\n Self,\n ElementRef,\n Input,\n Output,\n EventEmitter,\n Inject,\n DoCheck,\n ViewChild,\n Host,\n AfterViewInit,\n NgZone,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { _supportsShadowDom } from '@angular/cdk/platform';\nimport { MatFormFieldControl, MatFormField } from '@angular/material/form-field';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { Subject, Observable, merge, fromEvent, Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { ColorEvent } from 'ngx-color';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'mtx-color-picker',\n exportAs: 'mtxColorPicker',\n templateUrl: './color-picker.component.html',\n styleUrls: ['./color-picker.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: MatFormFieldControl, useExisting: MtxColorPickerComponent }],\n})\nexport class MtxColorPickerComponent\n implements OnDestroy, DoCheck, AfterViewInit, ControlValueAccessor, MatFormFieldControl<any>\n{\n /** Value of the color picker control. */\n @Input()\n get value(): string | null {\n return this._value;\n }\n set value(newValue: string | null) {\n this._value = newValue;\n this._onChange(newValue);\n this.stateChanges.next();\n }\n private _value: string | null = '';\n\n /** Implemented as part of MatFormFieldControl. */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n /** Unique id for this input. */\n private _uid = `mtx-color-picker-${nextUniqueId++}`;\n\n /** Unique id of the element. */\n @Input()\n get id(): string {\n return this._id;\n }\n set id(value: string) {\n this._id = value || this._uid;\n this.stateChanges.next();\n }\n private _id: string;\n\n /** Placeholder to be shown if value is empty. */\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n set placeholder(value: string) {\n this._placeholder = value;\n this.stateChanges.next();\n }\n private _placeholder: string;\n\n /** Whether the input is focused. */\n get focused(): boolean {\n return this._focused || this._panelOpen;\n }\n private _focused = false;\n\n get empty(): boolean {\n return !this.value;\n }\n\n get shouldLabelFloat(): boolean {\n return this.focused || !this.empty;\n }\n\n @Input()\n get required(): boolean {\n return this._required;\n }\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n private _required = false;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n private _disabled = false;\n\n /** Whether the element is readonly. */\n @Input()\n get readonly(): boolean {\n return this._readonly;\n }\n set readonly(value: boolean) {\n this._readonly = coerceBooleanProperty(value);\n }\n private _readonly = false;\n\n errorState = false;\n\n /** A name for this control that can be used by `mat-form-field`. */\n controlType = 'mtx-color-picker';\n\n /** The aria-describedby attribute on the color picker for improved a11y. */\n _ariaDescribedby: string;\n\n /** `View -> model callback called when value changes` */\n _onChange: (value: any) => void = () => {};\n\n /** `View -> model callback called when color picker has been touched` */\n _onTouched = () => {};\n\n /** Event emitted when the color changed */\n @Output() readonly colorChange = new EventEmitter<ColorEvent>();\n\n @ViewChild(MatMenuTrigger, { static: true }) trigger: MatMenuTrigger;\n\n /** Whether or not the overlay panel is open. */\n _panelOpen = false;\n\n /** The subscription for closing actions (some are bound to document). */\n private _closingActionsSubscription: Subscription;\n\n /** Whether the element is inside of a ShadowRoot component. */\n private _isInsideShadowRoot: boolean;\n\n /**\n * Whether the color picker can open the next time it is focused. Used to prevent a focused,\n * closed color picker from being reopened if the user switches to another browser tab and then\n * comes back.\n */\n private _canOpenOnNextFocus = true;\n\n /**\n * Event handler for when the window is blurred. Needs to be an\n * arrow function in order to preserve the context.\n */\n private _windowBlurHandler = () => {\n // If the user blurred the window while the color picker is focused, it means that it'll be\n // refocused when they come back. In this case we want to skip the first focus event, if the\n // pane was closed, in order to avoid reopening it unintentionally.\n this._canOpenOnNextFocus =\n this._document.activeElement !== this._elementRef.nativeElement || this._panelOpen;\n };\n\n constructor(\n private _focusMonitor: FocusMonitor,\n private _elementRef: ElementRef<HTMLElement>,\n private _changeDetectorRef: ChangeDetectorRef,\n private _zone: NgZone,\n @Optional() @Self() public ngControl: NgControl,\n @Optional() @Host() private _formField: MatFormField,\n @Optional() @Inject(DOCUMENT) private _document: any\n ) {\n _focusMonitor.monitor(_elementRef, true).subscribe(origin => {\n if (this._focused && !origin) {\n this._onTouched();\n }\n this._focused = !!origin;\n this.stateChanges.next();\n });\n\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngDoCheck(): void {\n if (this.ngControl) {\n this.errorState = (this.ngControl.invalid && this.ngControl.touched) as boolean;\n this.stateChanges.next();\n }\n }\n\n ngAfterViewInit() {\n if (typeof window !== 'undefined') {\n this._zone.runOutsideAngular(() => {\n window.addEventListener('blur', this._windowBlurHandler);\n });\n\n if (_supportsShadowDom()) {\n const element = this._elementRef.nativeElement;\n const rootNode = element.getRootNode ? element.getRootNode() : null;\n\n // We need to take the `ShadowRoot` off of `window`, because the built-in types are\n // incorrect. See https://github.com/Microsoft/TypeScript/issues/27929.\n this._isInsideShadowRoot = rootNode instanceof (window as any).ShadowRoot;\n }\n }\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n\n /** Implemented as part of MatFormFieldControl. */\n setDescribedByIds(ids: string[]) {\n this._ariaDescribedby = ids.join(' ');\n }\n\n /** Implemented as part of MatFormFieldControl. */\n onContainerClick() {\n this._handleFocus();\n }\n\n /**\n * Sets the model value. Implemented as part of ControlValueAccessor.\n * @param value New value to be written to the model.\n */\n writeValue(value: string | null): void {\n this.value = value || '';\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Registers a callback to be triggered when the model value changes.\n * Implemented as part of ControlValueAccessor.\n * @param fn Callback to be registered.\n */\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n /**\n * Registers a callback to be triggered when the control is touched.\n * Implemented as part of ControlValueAccessor.\n * @param fn Callback to be registered.\n */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n /**\n * Sets the disabled state of the control. Implemented as a part of ControlValueAccessor.\n * @param isDisabled Whether the control should be disabled.\n */\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n /** Open panel with input focus event. */\n _handleFocus() {\n this.trigger.openMenu();\n\n this._closingActionsSubscription = merge(this._getOutsideClickStream())\n .pipe()\n .subscribe(event => {\n this.trigger.closeMenu();\n this._closingActionsSubscription.unsubscribe();\n });\n }\n\n /** Opens the overlay panel. */\n _openPanel() {\n if (this._focused) {\n this._panelOpen = true;\n }\n }\n\n /** Closes the overlay panel and focuses the host element. */\n _closePanel() {\n if (this._panelOpen) {\n this._panelOpen = false;\n this._changeDetectorRef.markForCheck();\n this._onTouched();\n }\n }\n\n /** The callback of color changed. */\n _onColorChanged(model: ColorEvent) {\n this.value = model.color.hex;\n this.colorChange.emit(model);\n }\n\n /** Stream of clicks outside of the color picker panel. */\n private _getOutsideClickStream(): Observable<any> {\n return merge(\n fromEvent(this._document, 'click') as Observable<MouseEvent>,\n fromEvent(this._document, 'touchend') as Observable<TouchEvent>\n ).pipe(\n filter(event => {\n // If we're in the Shadow DOM, the event target will be the shadow root, so we have to\n // fall back to check the first element in the path of the click event.\n const clickTarget = (\n this._isInsideShadowRoot && event.composedPath ? event.composedPath()[0] : event.target\n ) as HTMLElement;\n const formField = this._formField ? this._formField._elementRef.nativeElement : null;\n\n return (\n clickTarget !== this._elementRef.nativeElement &&\n (!formField || !formField.contains(clickTarget))\n );\n })\n );\n }\n\n static ngAcceptInputType_required: BooleanInput;\n static ngAcceptInputType_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"],"names":[],"mappings":"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"}
|
package/fesm2015/mtxDialog.js
CHANGED
|
@@ -82,7 +82,6 @@ const defaults = {
|
|
|
82
82
|
onClick: (ɵ0),
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
|
-
color: '',
|
|
86
85
|
text: 'CLOSE',
|
|
87
86
|
onClick: (ɵ1),
|
|
88
87
|
},
|
|
@@ -168,7 +167,6 @@ class MtxDialog {
|
|
|
168
167
|
() => onOk()),
|
|
169
168
|
},
|
|
170
169
|
{
|
|
171
|
-
color: '',
|
|
172
170
|
text: 'CLOSE',
|
|
173
171
|
onClick: (/**
|
|
174
172
|
* @return {?}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mtxDialog.js","sources":["../../../projects/extensions/dialog/dialog.component.ts","../../../projects/extensions/dialog/dialog.ts","../../../projects/extensions/dialog/dialog.module.ts","../../../projects/extensions/dialog/dialog.config.ts"],"sourcesContent":["import { Component, Inject, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nimport { MtxDialogData } from './dialog.config';\n\n@Component({\n selector: 'mtx-dialog',\n exportAs: 'mtxDialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtxDialogComponent {\n constructor(\n public dialogRef: MatDialogRef<MtxDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: MtxDialogData\n ) {}\n\n _onClick(fn: () => void) {\n if (fn) {\n fn.call(this);\n }\n this._onClose();\n }\n\n _onClose() {\n this.dialogRef.close();\n }\n}\n","import { Injectable, TemplateRef } from '@angular/core';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { MtxDialogComponent } from './dialog.component';\nimport { MtxDialogData } from './dialog.config';\nimport { Observable } from 'rxjs';\n\nconst defaults: MtxDialogData = {\n title: '',\n description: '',\n buttons: [\n {\n color: 'warn',\n text: 'OK',\n focusInitial: true,\n onClick: () => {},\n },\n {\n
|
|
1
|
+
{"version":3,"file":"mtxDialog.js","sources":["../../../projects/extensions/dialog/dialog.component.ts","../../../projects/extensions/dialog/dialog.ts","../../../projects/extensions/dialog/dialog.module.ts","../../../projects/extensions/dialog/dialog.config.ts"],"sourcesContent":["import { Component, Inject, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nimport { MtxDialogData } from './dialog.config';\n\n@Component({\n selector: 'mtx-dialog',\n exportAs: 'mtxDialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtxDialogComponent {\n constructor(\n public dialogRef: MatDialogRef<MtxDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: MtxDialogData\n ) {}\n\n _onClick(fn: () => void) {\n if (fn) {\n fn.call(this);\n }\n this._onClose();\n }\n\n _onClose() {\n this.dialogRef.close();\n }\n}\n","import { Injectable, TemplateRef } from '@angular/core';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { MtxDialogComponent } from './dialog.component';\nimport { MtxDialogData } from './dialog.config';\nimport { Observable } from 'rxjs';\n\nconst defaults: MtxDialogData = {\n title: '',\n description: '',\n buttons: [\n {\n color: 'warn',\n text: 'OK',\n focusInitial: true,\n onClick: () => {},\n },\n {\n text: 'CLOSE',\n onClick: () => {},\n },\n ],\n showCloseIcon: false,\n disableClose: true,\n width: '300px',\n};\n\n@Injectable()\nexport class MtxDialog {\n constructor(public dialog: MatDialog) {}\n\n originalOpen(\n componentOrTemplateRef: ComponentType<any> | TemplateRef<any> = MtxDialogComponent,\n config: any\n ) {\n return this.dialog.open(componentOrTemplateRef, config);\n }\n\n open(\n config: MtxDialogData,\n componentOrTemplateRef: ComponentType<any> | TemplateRef<any> = MtxDialogComponent\n ) {\n const data = Object.assign({}, defaults, config);\n return this.dialog.open(componentOrTemplateRef, {\n ...data,\n data,\n });\n }\n\n alert(\n title: string | Observable<string>,\n description: string | Observable<string> = '',\n onOk = () => {}\n ) {\n this.open({\n title,\n description,\n buttons: [\n {\n color: 'warn',\n text: 'OK',\n onClick: () => onOk(),\n },\n ],\n });\n }\n\n confirm(\n title: string | Observable<string>,\n description: string | Observable<string> = '',\n onOk = () => {},\n onClose = () => {}\n ) {\n this.open({\n title,\n description,\n buttons: [\n {\n color: 'warn',\n text: 'OK',\n onClick: () => onOk(),\n },\n {\n text: 'CLOSE',\n onClick: () => onClose(),\n },\n ],\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { MtxUtilsModule } from '@ng-matero/extensions/utils';\nimport { MtxDialogComponent } from './dialog.component';\nimport { MtxDialog } from './dialog';\n\n@NgModule({\n imports: [CommonModule, MatDialogModule, MatButtonModule, MatIconModule, MtxUtilsModule],\n exports: [MtxDialogComponent],\n declarations: [MtxDialogComponent],\n providers: [MtxDialog],\n entryComponents: [MtxDialogComponent],\n})\nexport class MtxDialogModule {}\n","import { ThemePalette } from '@angular/material/core';\nimport { MatDialogConfig } from '@angular/material/dialog';\nimport { Observable } from 'rxjs';\n\nexport interface MtxDialogData extends MatDialogConfig {\n title?: string | Observable<string>;\n description?: string | Observable<string>;\n buttons?: MtxDialogBtns[];\n showCloseIcon?: boolean;\n}\n\nexport interface MtxDialogBtns {\n type?: 'raised' | 'stroked' | 'flat';\n color?: ThemePalette;\n class?: string;\n focusInitial?: boolean;\n text: string | Observable<string>;\n onClick?: () => void;\n}\n"],"names":[],"mappings":"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"}
|
package/fesm2015/mtxFormGroup.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ViewEncapsulation, ContentChildren, Input, NgModule } from '@angular/core';
|
|
1
|
+
import { Component, ViewEncapsulation, ChangeDetectionStrategy, ContentChildren, Input, NgModule } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
4
4
|
import { MatFormField } from '@angular/material/form-field';
|
|
@@ -45,11 +45,13 @@ class MtxFormGroupComponent {
|
|
|
45
45
|
MtxFormGroupComponent.decorators = [
|
|
46
46
|
{ type: Component, args: [{
|
|
47
47
|
selector: 'mtx-form-group',
|
|
48
|
+
exportAs: 'mtxFormGroup',
|
|
48
49
|
host: {
|
|
49
50
|
class: 'mtx-form-group',
|
|
50
51
|
},
|
|
51
52
|
template: "<div class=\"mtx-form-field-layout mtx-form-field-appearance-fluent\">\r\n <label *ngIf=\"label\"\r\n class=\"mtx-form-label\"\r\n [class.mtx-form-label-marker]=\"showRequiredMarker\">{{label}}</label>\r\n <ng-content></ng-content>\r\n</div>\r\n",
|
|
52
53
|
encapsulation: ViewEncapsulation.None,
|
|
54
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
53
55
|
styles: [".mtx-form-group{display:inline-block}.mtx-form-group .mtx-form-field-layout{align-items:flex-start;display:inline-flex;width:100%}.mtx-form-group .mtx-form-label{display:inline-block;line-height:1.125;padding-bottom:calc(.375em + 1px);padding-right:1em;padding-top:calc(.375em + 1px);position:relative}[dir=rtl] .mtx-form-group .mtx-form-label{padding-left:1em;padding-right:unset}.mtx-form-group .mtx-form-label.mtx-form-label-marker:after{content:\"*\";margin-left:4px}[dir=rtl] .mtx-form-group .mtx-form-label.mtx-form-label-marker:after{margin-left:auto;margin-right:4px}.mtx-form-field-appearance-fluent .mat-form-field{margin-bottom:.25em}.mtx-form-field-appearance-fluent .mat-form-field .mat-form-field-suffix .mat-icon-button{height:1.5em;width:1.5em}.mtx-form-field-appearance-fluent .mat-form-field .mat-form-field-suffix .mat-icon-button .mat-datepicker-toggle-default-icon{width:1em}.mtx-form-field-appearance-fluent .mat-form-field-has-label .mat-form-field-flex{margin-top:.84375em}.mtx-form-field-appearance-fluent .mat-form-field-appearance-standard .mat-form-field-flex{padding-top:0}.mtx-form-field-appearance-fluent .mat-form-field-flex{align-items:center;border-radius:2px;padding:0 .5em}.mtx-form-field-appearance-fluent .mat-form-field-infix{border-top:0;padding:.375em 0}.mtx-form-field-appearance-fluent .mat-form-field-prefix,.mtx-form-field-appearance-fluent .mat-form-field-suffix{display:inline-flex}.mtx-form-field-appearance-fluent .mat-form-field-prefix .mat-icon,.mtx-form-field-appearance-fluent .mat-form-field-suffix .mat-icon{line-height:normal}.mtx-form-field-appearance-fluent .mat-form-field-underline{display:none}.mtx-form-field-appearance-fluent .mtx-select{display:block;margin:0 -8px}.mtx-form-field-appearance-fluent .ng-select{margin-top:-.4375em;padding-left:8px;padding-right:8px;padding-top:.4375em}"]
|
|
54
56
|
}] }
|
|
55
57
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mtxFormGroup.js","sources":["../../../projects/extensions/form-group/form-group.component.ts","../../../projects/extensions/form-group/form-group.module.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"],"names":[],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"mtxFormGroup.js","sources":["../../../projects/extensions/form-group/form-group.component.ts","../../../projects/extensions/form-group/form-group.module.ts"],"sourcesContent":["import {\r\n AfterContentInit,\r\n ChangeDetectionStrategy,\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 exportAs: 'mtxFormGroup',\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 changeDetection: ChangeDetectionStrategy.OnPush,\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"],"names":[],"mappings":";;;;;;;;;;MAwBa,qBAAqB;IAahC;QAFQ,wBAAmB,GAAG,KAAK,CAAC;KAEpB;;;;IAThB,IACI,kBAAkB;QACpB,OAAO,IAAI,CAAC,mBAAmB,CAAC;KACjC;;;;;IACD,IAAI,kBAAkB,CAAC,KAAc;QACnC,IAAI,CAAC,mBAAmB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACzD;;;;IAKD,QAAQ,MAAW;;;;IAEnB,kBAAkB;QAChB,IAAI,CAAC,UAAU,CAAC,OAAO;;;;QAAC,IAAI;YAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAC9B,EAAC,CAAC;KACJ;;;YAhCF,SAAS,SAAC;gBACT,QAAQ,EAAE,gBAAgB;gBAC1B,QAAQ,EAAE,cAAc;gBACxB,IAAI,EAAE;oBACJ,KAAK,EAAE,gBAAgB;iBACxB;gBACD,mRAA0C;gBAE1C,aAAa,EAAE,iBAAiB,CAAC,IAAI;gBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;;aAChD;;;;;yBAEE,eAAe,SAAC,YAAY;oBAE5B,KAAK;iCACL,KAAK;;;;IAHN,2CAAoE;;IAEpE,sCAAuB;;;;;IAQvB,oDAAoC;;;;;;;;MCzBzB,kBAAkB;;;YAL9B,QAAQ,SAAC;gBACR,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,OAAO,EAAE,CAAC,qBAAqB,CAAC;gBAChC,YAAY,EAAE,CAAC,qBAAqB,CAAC;aACtC;;;;;;;;;;;;;;;;;"}
|