@ngx-mce/color-picker 21.3.3 → 22.0.0-next.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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { output, input, signal, Input, Directive, inject, NgZone, Component, ViewEncapsulation, Injectable, InjectionToken, viewChild, ChangeDetectorRef, HostBinding, Output, ChangeDetectionStrategy, EventEmitter, DOCUMENT, ViewContainerRef, forwardRef, ElementRef, effect, untracked, HostListener } from '@angular/core';
2
+ import { output, input, signal, Input, Directive, inject, NgZone, ChangeDetectionStrategy, Component, ViewEncapsulation, Injectable, InjectionToken, viewChild, ChangeDetectorRef, HostBinding, Output, EventEmitter, DOCUMENT, ViewContainerRef, forwardRef, ElementRef, effect, untracked, HostListener } from '@angular/core';
3
3
  import * as i3 from '@angular/forms';
4
4
  import { FormGroup, FormControl, Validators, ReactiveFormsModule, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
5
5
  import * as i1 from '@angular/material/form-field';
@@ -289,8 +289,10 @@ class Color {
289
289
 
290
290
  class NgxMatBaseColorCanvas {
291
291
  colorChanged = output();
292
- theme = input(...(ngDevMode ? [undefined, { debugName: "theme" }] : /* istanbul ignore next */ []));
293
- color = signal(null, ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
292
+ theme = input(/* @ts-ignore */
293
+ ...(ngDevMode ? [undefined, { debugName: "theme" }] : /* istanbul ignore next */ []));
294
+ color = signal(null, /* @ts-ignore */
295
+ ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
294
296
  set setColor(color) {
295
297
  this.color.set(color);
296
298
  }
@@ -347,10 +349,10 @@ class NgxMatBaseColorCanvas {
347
349
  emitChange(color) {
348
350
  this.colorChanged.emit(color);
349
351
  }
350
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: NgxMatBaseColorCanvas, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
351
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.14", type: NgxMatBaseColorCanvas, isStandalone: true, inputs: { theme: { classPropertyName: "theme", publicName: "theme", isSignal: true, isRequired: false, transformFunction: null }, setColor: { classPropertyName: "setColor", publicName: "color", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { colorChanged: "colorChanged" }, ngImport: i0 });
352
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgxMatBaseColorCanvas, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
353
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.0", type: NgxMatBaseColorCanvas, isStandalone: true, inputs: { theme: { classPropertyName: "theme", publicName: "theme", isSignal: true, isRequired: false, transformFunction: null }, setColor: { classPropertyName: "setColor", publicName: "color", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { colorChanged: "colorChanged" }, ngImport: i0 });
352
354
  }
353
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: NgxMatBaseColorCanvas, decorators: [{
355
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgxMatBaseColorCanvas, decorators: [{
354
356
  type: Directive
355
357
  }], ctorParameters: () => [{ type: undefined }], propDecorators: { colorChanged: [{ type: i0.Output, args: ["colorChanged"] }], theme: [{ type: i0.Input, args: [{ isSignal: true, alias: "theme", required: false }] }], setColor: [{
356
358
  type: Input,
@@ -394,12 +396,12 @@ class NgxMatColorSliderComponent extends NgxMatBaseColorCanvas {
394
396
  const { r, g, b } = getColorAtPosition(this.ctx, e.offsetX, e.offsetY);
395
397
  this.emitChange(new Color(r, g, b));
396
398
  }
397
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: NgxMatColorSliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
398
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.14", type: NgxMatColorSliderComponent, isStandalone: true, selector: "ngx-mat-color-slider", usesInheritance: true, ngImport: i0, template: "<canvas\n id=\"color-strip\"\n class=\"zone-strip\"\n (mousedown)=\"onMousedown($event)\"\n (mouseup)=\"onMouseup($event)\"\n width=\"15\"\n height=\"234\"\n></canvas>\n", styles: [""] });
399
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgxMatColorSliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
400
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.0", type: NgxMatColorSliderComponent, isStandalone: true, selector: "ngx-mat-color-slider", usesInheritance: true, ngImport: i0, template: "<canvas\n id=\"color-strip\"\n class=\"zone-strip\"\n (mousedown)=\"onMousedown($event)\"\n (mouseup)=\"onMouseup($event)\"\n width=\"15\"\n height=\"234\"\n></canvas>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.Eager });
399
401
  }
400
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: NgxMatColorSliderComponent, decorators: [{
402
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgxMatColorSliderComponent, decorators: [{
401
403
  type: Component,
402
- args: [{ selector: 'ngx-mat-color-slider', template: "<canvas\n id=\"color-strip\"\n class=\"zone-strip\"\n (mousedown)=\"onMousedown($event)\"\n (mouseup)=\"onMouseup($event)\"\n width=\"15\"\n height=\"234\"\n></canvas>\n" }]
404
+ args: [{ selector: 'ngx-mat-color-slider', changeDetection: ChangeDetectionStrategy.Eager, template: "<canvas\n id=\"color-strip\"\n class=\"zone-strip\"\n (mousedown)=\"onMousedown($event)\"\n (mouseup)=\"onMouseup($event)\"\n width=\"15\"\n height=\"234\"\n></canvas>\n" }]
403
405
  }], ctorParameters: () => [] });
404
406
 
405
407
  const RADIUS_NOB = 5;
@@ -507,14 +509,14 @@ class NgxMatColorCanvasComponent extends NgxMatBaseColorCanvas {
507
509
  const { r, g, b } = getColorAtPosition(this.ctx, e.offsetX, e.offsetY);
508
510
  this.emitChange(new Color(r, g, b));
509
511
  }
510
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: NgxMatColorCanvasComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
511
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.14", type: NgxMatColorCanvasComponent, isStandalone: true, selector: "ngx-mat-color-canvas", host: { classAttribute: "ngx-mat-color-canvas" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<form [formGroup]=\"formGroup\">\n <div class=\"color-canvas-row\">\n <div class=\"zone-canvas\">\n <canvas\n id=\"color-block\"\n class=\"zone-block\"\n (mousedown)=\"onMousedown($event)\"\n (mouseup)=\"onMouseup($event)\"\n width=\"200\"\n height=\"235\"\n ></canvas>\n <ngx-mat-color-slider (colorChanged)=\"onSliderColorChanged($event)\" />\n </div>\n\n <div class=\"zone-inputs\">\n <mat-form-field [color]=\"theme()\">\n <mat-label>R</mat-label>\n <input\n matInput\n formControlName=\"r\"\n ngxMatNumericColorInput\n autocomplete=\"off\"\n />\n </mat-form-field>\n\n <mat-form-field [color]=\"theme()\">\n <mat-label>G</mat-label>\n <input\n matInput\n formControlName=\"g\"\n ngxMatNumericColorInput\n autocomplete=\"off\"\n />\n </mat-form-field>\n\n <mat-form-field [color]=\"theme()\">\n <mat-label>B</mat-label>\n <input\n matInput\n formControlName=\"b\"\n ngxMatNumericColorInput\n autocomplete=\"off\"\n />\n </mat-form-field>\n </div>\n </div>\n\n <div class=\"color-canvas-row\">\n <button\n mat-mini-fab\n [style.background-color]=\"color()?.rgba || 'transparent'\"\n class=\"preview\"\n ></button>\n <mat-form-field [color]=\"theme()\">\n <mat-label>HEX6</mat-label>\n <mat-label matPrefix class=\"symbol\">#&nbsp;</mat-label>\n <input matInput formControlName=\"hex\" autocomplete=\"off\" />\n </mat-form-field>\n <mat-form-field class=\"input-opacity\" [color]=\"theme()\">\n <mat-label>A</mat-label>\n <input\n matInput\n formControlName=\"a\"\n type=\"number\"\n min=\"0\"\n max=\"1\"\n step=\"0.1\"\n autocomplete=\"off\"\n />\n </mat-form-field>\n </div>\n</form>\n", styles: [".ngx-mat-color-canvas .color-canvas-row{display:flex}.ngx-mat-color-canvas .color-canvas-row:first-of-type{height:235px;margin-bottom:12px}.ngx-mat-color-canvas .color-canvas-row:first-of-type .card{height:180px}.ngx-mat-color-canvas .color-canvas-row canvas:hover{cursor:crosshair}.ngx-mat-color-canvas .color-canvas-row .zone{display:flex}.ngx-mat-color-canvas .color-canvas-row .zone-canvas{height:235px}.ngx-mat-color-canvas .color-canvas-row .zone-canvas .zone-block{border:1px solid rgba(0,0,0,.12)}.ngx-mat-color-canvas .color-canvas-row .zone-strip{flex-basis:auto;margin-left:10px}.ngx-mat-color-canvas .color-canvas-row .zone-inputs{display:flex;width:60px;height:235px;flex-direction:column;margin-left:16px;margin-top:12px}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2){display:flex}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2) .preview{min-width:40px;min-height:40px;height:40px;width:40px;margin-top:12px}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2) .mat-mdc-form-field{margin-left:16px}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2) .mat-mdc-form-field:first-of-type{width:170px}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2) .mat-mdc-form-field:first-of-type .symbol{font-weight:700;color:#0000008a}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2) .mat-mdc-form-field:last-of-type{width:60px}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2) .mat-mdc-form-field:last-of-type .mat-mdc-text-field-wrapper{padding:0 8px}.ngx-mat-color-canvas .mat-mdc-form-field-label{font-weight:700}.ngx-mat-color-canvas .mat-mdc-form-field .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:transparent}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: NgxMatColorSliderComponent, selector: "ngx-mat-color-slider" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i3.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], encapsulation: i0.ViewEncapsulation.None });
512
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgxMatColorCanvasComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
513
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.0", type: NgxMatColorCanvasComponent, isStandalone: true, selector: "ngx-mat-color-canvas", host: { classAttribute: "ngx-mat-color-canvas" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<form [formGroup]=\"formGroup\">\n <div class=\"color-canvas-row\">\n <div class=\"zone-canvas\">\n <canvas\n id=\"color-block\"\n class=\"zone-block\"\n (mousedown)=\"onMousedown($event)\"\n (mouseup)=\"onMouseup($event)\"\n width=\"200\"\n height=\"235\"\n ></canvas>\n <ngx-mat-color-slider (colorChanged)=\"onSliderColorChanged($event)\" />\n </div>\n\n <div class=\"zone-inputs\">\n <mat-form-field [color]=\"theme()\">\n <mat-label>R</mat-label>\n <input\n matInput\n formControlName=\"r\"\n ngxMatNumericColorInput\n autocomplete=\"off\"\n />\n </mat-form-field>\n\n <mat-form-field [color]=\"theme()\">\n <mat-label>G</mat-label>\n <input\n matInput\n formControlName=\"g\"\n ngxMatNumericColorInput\n autocomplete=\"off\"\n />\n </mat-form-field>\n\n <mat-form-field [color]=\"theme()\">\n <mat-label>B</mat-label>\n <input\n matInput\n formControlName=\"b\"\n ngxMatNumericColorInput\n autocomplete=\"off\"\n />\n </mat-form-field>\n </div>\n </div>\n\n <div class=\"color-canvas-row\">\n <button\n mat-mini-fab\n [style.background-color]=\"color()?.rgba || 'transparent'\"\n class=\"preview\"\n ></button>\n <mat-form-field [color]=\"theme()\">\n <mat-label>HEX6</mat-label>\n <mat-label matPrefix class=\"symbol\">#&nbsp;</mat-label>\n <input matInput formControlName=\"hex\" autocomplete=\"off\" />\n </mat-form-field>\n <mat-form-field class=\"input-opacity\" [color]=\"theme()\">\n <mat-label>A</mat-label>\n <input\n matInput\n formControlName=\"a\"\n type=\"number\"\n min=\"0\"\n max=\"1\"\n step=\"0.1\"\n autocomplete=\"off\"\n />\n </mat-form-field>\n </div>\n</form>\n", styles: [".ngx-mat-color-canvas .color-canvas-row{display:flex}.ngx-mat-color-canvas .color-canvas-row:first-of-type{height:235px;margin-bottom:12px}.ngx-mat-color-canvas .color-canvas-row:first-of-type .card{height:180px}.ngx-mat-color-canvas .color-canvas-row canvas:hover{cursor:crosshair}.ngx-mat-color-canvas .color-canvas-row .zone{display:flex}.ngx-mat-color-canvas .color-canvas-row .zone-canvas{height:235px}.ngx-mat-color-canvas .color-canvas-row .zone-canvas .zone-block{border:1px solid rgba(0,0,0,.12)}.ngx-mat-color-canvas .color-canvas-row .zone-strip{flex-basis:auto;margin-left:10px}.ngx-mat-color-canvas .color-canvas-row .zone-inputs{display:flex;width:60px;height:235px;flex-direction:column;margin-left:16px;margin-top:12px}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2){display:flex}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2) .preview{min-width:40px;min-height:40px;height:40px;width:40px;margin-top:12px}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2) .mat-mdc-form-field{margin-left:16px}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2) .mat-mdc-form-field:first-of-type{width:170px}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2) .mat-mdc-form-field:first-of-type .symbol{font-weight:700;color:#0000008a}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2) .mat-mdc-form-field:last-of-type{width:60px}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2) .mat-mdc-form-field:last-of-type .mat-mdc-text-field-wrapper{padding:0 8px}.ngx-mat-color-canvas .mat-mdc-form-field-label{font-weight:700}.ngx-mat-color-canvas .mat-mdc-form-field .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:transparent}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: NgxMatColorSliderComponent, selector: "ngx-mat-color-slider" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NumberValueAccessor, selector: "input[type=number]:not([ngNoCva])[formControlName],input[type=number]:not([ngNoCva])[formControl],input[type=number]:not([ngNoCva])[ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i3.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None });
512
514
  }
513
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: NgxMatColorCanvasComponent, decorators: [{
515
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgxMatColorCanvasComponent, decorators: [{
514
516
  type: Component,
515
517
  args: [{ selector: 'ngx-mat-color-canvas', encapsulation: ViewEncapsulation.None, host: {
516
518
  class: 'ngx-mat-color-canvas',
517
- }, imports: [MatFormFieldModule, MatInputModule, NgxMatColorSliderComponent, ReactiveFormsModule], template: "<form [formGroup]=\"formGroup\">\n <div class=\"color-canvas-row\">\n <div class=\"zone-canvas\">\n <canvas\n id=\"color-block\"\n class=\"zone-block\"\n (mousedown)=\"onMousedown($event)\"\n (mouseup)=\"onMouseup($event)\"\n width=\"200\"\n height=\"235\"\n ></canvas>\n <ngx-mat-color-slider (colorChanged)=\"onSliderColorChanged($event)\" />\n </div>\n\n <div class=\"zone-inputs\">\n <mat-form-field [color]=\"theme()\">\n <mat-label>R</mat-label>\n <input\n matInput\n formControlName=\"r\"\n ngxMatNumericColorInput\n autocomplete=\"off\"\n />\n </mat-form-field>\n\n <mat-form-field [color]=\"theme()\">\n <mat-label>G</mat-label>\n <input\n matInput\n formControlName=\"g\"\n ngxMatNumericColorInput\n autocomplete=\"off\"\n />\n </mat-form-field>\n\n <mat-form-field [color]=\"theme()\">\n <mat-label>B</mat-label>\n <input\n matInput\n formControlName=\"b\"\n ngxMatNumericColorInput\n autocomplete=\"off\"\n />\n </mat-form-field>\n </div>\n </div>\n\n <div class=\"color-canvas-row\">\n <button\n mat-mini-fab\n [style.background-color]=\"color()?.rgba || 'transparent'\"\n class=\"preview\"\n ></button>\n <mat-form-field [color]=\"theme()\">\n <mat-label>HEX6</mat-label>\n <mat-label matPrefix class=\"symbol\">#&nbsp;</mat-label>\n <input matInput formControlName=\"hex\" autocomplete=\"off\" />\n </mat-form-field>\n <mat-form-field class=\"input-opacity\" [color]=\"theme()\">\n <mat-label>A</mat-label>\n <input\n matInput\n formControlName=\"a\"\n type=\"number\"\n min=\"0\"\n max=\"1\"\n step=\"0.1\"\n autocomplete=\"off\"\n />\n </mat-form-field>\n </div>\n</form>\n", styles: [".ngx-mat-color-canvas .color-canvas-row{display:flex}.ngx-mat-color-canvas .color-canvas-row:first-of-type{height:235px;margin-bottom:12px}.ngx-mat-color-canvas .color-canvas-row:first-of-type .card{height:180px}.ngx-mat-color-canvas .color-canvas-row canvas:hover{cursor:crosshair}.ngx-mat-color-canvas .color-canvas-row .zone{display:flex}.ngx-mat-color-canvas .color-canvas-row .zone-canvas{height:235px}.ngx-mat-color-canvas .color-canvas-row .zone-canvas .zone-block{border:1px solid rgba(0,0,0,.12)}.ngx-mat-color-canvas .color-canvas-row .zone-strip{flex-basis:auto;margin-left:10px}.ngx-mat-color-canvas .color-canvas-row .zone-inputs{display:flex;width:60px;height:235px;flex-direction:column;margin-left:16px;margin-top:12px}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2){display:flex}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2) .preview{min-width:40px;min-height:40px;height:40px;width:40px;margin-top:12px}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2) .mat-mdc-form-field{margin-left:16px}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2) .mat-mdc-form-field:first-of-type{width:170px}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2) .mat-mdc-form-field:first-of-type .symbol{font-weight:700;color:#0000008a}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2) .mat-mdc-form-field:last-of-type{width:60px}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2) .mat-mdc-form-field:last-of-type .mat-mdc-text-field-wrapper{padding:0 8px}.ngx-mat-color-canvas .mat-mdc-form-field-label{font-weight:700}.ngx-mat-color-canvas .mat-mdc-form-field .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:transparent}\n"] }]
519
+ }, changeDetection: ChangeDetectionStrategy.Eager, imports: [MatFormFieldModule, MatInputModule, NgxMatColorSliderComponent, ReactiveFormsModule], template: "<form [formGroup]=\"formGroup\">\n <div class=\"color-canvas-row\">\n <div class=\"zone-canvas\">\n <canvas\n id=\"color-block\"\n class=\"zone-block\"\n (mousedown)=\"onMousedown($event)\"\n (mouseup)=\"onMouseup($event)\"\n width=\"200\"\n height=\"235\"\n ></canvas>\n <ngx-mat-color-slider (colorChanged)=\"onSliderColorChanged($event)\" />\n </div>\n\n <div class=\"zone-inputs\">\n <mat-form-field [color]=\"theme()\">\n <mat-label>R</mat-label>\n <input\n matInput\n formControlName=\"r\"\n ngxMatNumericColorInput\n autocomplete=\"off\"\n />\n </mat-form-field>\n\n <mat-form-field [color]=\"theme()\">\n <mat-label>G</mat-label>\n <input\n matInput\n formControlName=\"g\"\n ngxMatNumericColorInput\n autocomplete=\"off\"\n />\n </mat-form-field>\n\n <mat-form-field [color]=\"theme()\">\n <mat-label>B</mat-label>\n <input\n matInput\n formControlName=\"b\"\n ngxMatNumericColorInput\n autocomplete=\"off\"\n />\n </mat-form-field>\n </div>\n </div>\n\n <div class=\"color-canvas-row\">\n <button\n mat-mini-fab\n [style.background-color]=\"color()?.rgba || 'transparent'\"\n class=\"preview\"\n ></button>\n <mat-form-field [color]=\"theme()\">\n <mat-label>HEX6</mat-label>\n <mat-label matPrefix class=\"symbol\">#&nbsp;</mat-label>\n <input matInput formControlName=\"hex\" autocomplete=\"off\" />\n </mat-form-field>\n <mat-form-field class=\"input-opacity\" [color]=\"theme()\">\n <mat-label>A</mat-label>\n <input\n matInput\n formControlName=\"a\"\n type=\"number\"\n min=\"0\"\n max=\"1\"\n step=\"0.1\"\n autocomplete=\"off\"\n />\n </mat-form-field>\n </div>\n</form>\n", styles: [".ngx-mat-color-canvas .color-canvas-row{display:flex}.ngx-mat-color-canvas .color-canvas-row:first-of-type{height:235px;margin-bottom:12px}.ngx-mat-color-canvas .color-canvas-row:first-of-type .card{height:180px}.ngx-mat-color-canvas .color-canvas-row canvas:hover{cursor:crosshair}.ngx-mat-color-canvas .color-canvas-row .zone{display:flex}.ngx-mat-color-canvas .color-canvas-row .zone-canvas{height:235px}.ngx-mat-color-canvas .color-canvas-row .zone-canvas .zone-block{border:1px solid rgba(0,0,0,.12)}.ngx-mat-color-canvas .color-canvas-row .zone-strip{flex-basis:auto;margin-left:10px}.ngx-mat-color-canvas .color-canvas-row .zone-inputs{display:flex;width:60px;height:235px;flex-direction:column;margin-left:16px;margin-top:12px}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2){display:flex}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2) .preview{min-width:40px;min-height:40px;height:40px;width:40px;margin-top:12px}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2) .mat-mdc-form-field{margin-left:16px}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2) .mat-mdc-form-field:first-of-type{width:170px}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2) .mat-mdc-form-field:first-of-type .symbol{font-weight:700;color:#0000008a}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2) .mat-mdc-form-field:last-of-type{width:60px}.ngx-mat-color-canvas .color-canvas-row:nth-of-type(2) .mat-mdc-form-field:last-of-type .mat-mdc-text-field-wrapper{padding:0 8px}.ngx-mat-color-canvas .mat-mdc-form-field-label{font-weight:700}.ngx-mat-color-canvas .mat-mdc-form-field .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:transparent}\n"] }]
518
520
  }], ctorParameters: () => [] });
519
521
 
520
522
  class NgxMatColorCollectionComponent {
@@ -524,7 +526,8 @@ class NgxMatColorCollectionComponent {
524
526
  this.selectedColor.set(c.toHexString());
525
527
  }
526
528
  }
527
- selectedColor = signal('', ...(ngDevMode ? [{ debugName: "selectedColor" }] : /* istanbul ignore next */ []));
529
+ selectedColor = signal('', /* @ts-ignore */
530
+ ...(ngDevMode ? [{ debugName: "selectedColor" }] : /* istanbul ignore next */ []));
528
531
  colors1 = BASIC_COLORS.slice(0, 8);
529
532
  colors2 = BASIC_COLORS.slice(8, 16);
530
533
  select(hex) {
@@ -534,33 +537,35 @@ class NgxMatColorCollectionComponent {
534
537
  this.colorChanged.emit(new Color(rgba.r, rgba.g, rgba.b, rgba.a));
535
538
  }
536
539
  }
537
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: NgxMatColorCollectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
538
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: NgxMatColorCollectionComponent, isStandalone: true, selector: "ngx-mat-color-collection", inputs: { color: "color" }, outputs: { colorChanged: "colorChanged" }, host: { classAttribute: "ngx-mat-color-collection" }, ngImport: i0, template: "<div class=\"color-collection-row\">\n @for (c of colors1; track c) {\n <button\n mat-mini-fab\n [style.background-color]=\"c\"\n class=\"btn-color\"\n (click)=\"select(c)\"\n [ngClass]=\"{ active: selectedColor() === c }\"\n [disableRipple]=\"true\"></button>\n }\n</div>\n<div class=\"color-collection-row\">\n @for (c of colors2; track c) {\n <button\n mat-mini-fab\n [style.background-color]=\"c\"\n class=\"btn-color\"\n (click)=\"select(c)\"\n [ngClass]=\"{ active: selectedColor() === c }\"\n [disableRipple]=\"true\"></button>\n }\n</div>\n", styles: [".ngx-mat-color-collection .btn-color{height:20px;width:20px;margin-right:11px;box-shadow:none;opacity:.3;will-change:opacity;transition:opacity .3s linear}.ngx-mat-color-collection .btn-color.active{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f;opacity:1}.ngx-mat-color-collection .btn-color .mat-mdc-button-touch-target{display:none!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$1.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], encapsulation: i0.ViewEncapsulation.None });
540
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgxMatColorCollectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
541
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.0", type: NgxMatColorCollectionComponent, isStandalone: true, selector: "ngx-mat-color-collection", inputs: { color: "color" }, outputs: { colorChanged: "colorChanged" }, host: { classAttribute: "ngx-mat-color-collection" }, ngImport: i0, template: "<div class=\"color-collection-row\">\n @for (c of colors1; track c) {\n <button\n mat-mini-fab\n [style.background-color]=\"c\"\n class=\"btn-color\"\n (click)=\"select(c)\"\n [ngClass]=\"{ active: selectedColor() === c }\"\n [disableRipple]=\"true\"></button>\n }\n</div>\n<div class=\"color-collection-row\">\n @for (c of colors2; track c) {\n <button\n mat-mini-fab\n [style.background-color]=\"c\"\n class=\"btn-color\"\n (click)=\"select(c)\"\n [ngClass]=\"{ active: selectedColor() === c }\"\n [disableRipple]=\"true\"></button>\n }\n</div>\n", styles: [".ngx-mat-color-collection .btn-color{height:20px;width:20px;margin-right:11px;box-shadow:none;opacity:.3;will-change:opacity;transition:opacity .3s linear}.ngx-mat-color-collection .btn-color.active{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f;opacity:1}.ngx-mat-color-collection .btn-color .mat-mdc-button-touch-target{display:none!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$1.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None });
539
542
  }
540
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: NgxMatColorCollectionComponent, decorators: [{
543
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgxMatColorCollectionComponent, decorators: [{
541
544
  type: Component,
542
545
  args: [{ selector: 'ngx-mat-color-collection', encapsulation: ViewEncapsulation.None, host: {
543
546
  class: 'ngx-mat-color-collection',
544
- }, imports: [MatButtonModule, NgClass], template: "<div class=\"color-collection-row\">\n @for (c of colors1; track c) {\n <button\n mat-mini-fab\n [style.background-color]=\"c\"\n class=\"btn-color\"\n (click)=\"select(c)\"\n [ngClass]=\"{ active: selectedColor() === c }\"\n [disableRipple]=\"true\"></button>\n }\n</div>\n<div class=\"color-collection-row\">\n @for (c of colors2; track c) {\n <button\n mat-mini-fab\n [style.background-color]=\"c\"\n class=\"btn-color\"\n (click)=\"select(c)\"\n [ngClass]=\"{ active: selectedColor() === c }\"\n [disableRipple]=\"true\"></button>\n }\n</div>\n", styles: [".ngx-mat-color-collection .btn-color{height:20px;width:20px;margin-right:11px;box-shadow:none;opacity:.3;will-change:opacity;transition:opacity .3s linear}.ngx-mat-color-collection .btn-color.active{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f;opacity:1}.ngx-mat-color-collection .btn-color .mat-mdc-button-touch-target{display:none!important}\n"] }]
547
+ }, changeDetection: ChangeDetectionStrategy.Eager, imports: [MatButtonModule, NgClass], template: "<div class=\"color-collection-row\">\n @for (c of colors1; track c) {\n <button\n mat-mini-fab\n [style.background-color]=\"c\"\n class=\"btn-color\"\n (click)=\"select(c)\"\n [ngClass]=\"{ active: selectedColor() === c }\"\n [disableRipple]=\"true\"></button>\n }\n</div>\n<div class=\"color-collection-row\">\n @for (c of colors2; track c) {\n <button\n mat-mini-fab\n [style.background-color]=\"c\"\n class=\"btn-color\"\n (click)=\"select(c)\"\n [ngClass]=\"{ active: selectedColor() === c }\"\n [disableRipple]=\"true\"></button>\n }\n</div>\n", styles: [".ngx-mat-color-collection .btn-color{height:20px;width:20px;margin-right:11px;box-shadow:none;opacity:.3;will-change:opacity;transition:opacity .3s linear}.ngx-mat-color-collection .btn-color.active{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f;opacity:1}.ngx-mat-color-collection .btn-color .mat-mdc-button-touch-target{display:none!important}\n"] }]
545
548
  }], propDecorators: { colorChanged: [{ type: i0.Output, args: ["colorChanged"] }], color: [{
546
549
  type: Input
547
550
  }] } });
548
551
 
549
552
  class NgxMatColorPaletteComponent {
550
553
  colorChanged = output();
551
- color = input(...(ngDevMode ? [undefined, { debugName: "color" }] : /* istanbul ignore next */ []));
552
- theme = input(...(ngDevMode ? [undefined, { debugName: "theme" }] : /* istanbul ignore next */ []));
554
+ color = input(/* @ts-ignore */
555
+ ...(ngDevMode ? [undefined, { debugName: "color" }] : /* istanbul ignore next */ []));
556
+ theme = input(/* @ts-ignore */
557
+ ...(ngDevMode ? [undefined, { debugName: "theme" }] : /* istanbul ignore next */ []));
553
558
  handleColorChanged(color) {
554
559
  this.colorChanged.emit(color);
555
560
  }
556
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: NgxMatColorPaletteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
557
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.14", type: NgxMatColorPaletteComponent, isStandalone: true, selector: "ngx-mat-color-palette", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, theme: { classPropertyName: "theme", publicName: "theme", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { colorChanged: "colorChanged" }, host: { classAttribute: "ngx-mat-color-palette" }, ngImport: i0, template: "<ngx-mat-color-canvas\n (colorChanged)=\"handleColorChanged($event)\"\n [color]=\"color()\"\n [theme]=\"theme()\"\n/>\n\n<ngx-mat-color-collection\n (colorChanged)=\"handleColorChanged($event)\"\n [color]=\"color()\"\n/>\n", styles: [".ngx-mat-color-palette .actions{margin-top:10px;display:flex}.ngx-mat-color-palette .actions .left{display:flex;flex-direction:column;margin-right:15px}.ngx-mat-color-palette .actions .left .preview{flex:2 1 auto;margin-bottom:10px}.ngx-mat-color-palette .actions .right{display:flex;width:60px;flex-direction:column}\n"], dependencies: [{ kind: "component", type: NgxMatColorCollectionComponent, selector: "ngx-mat-color-collection", inputs: ["color"], outputs: ["colorChanged"] }, { kind: "component", type: NgxMatColorCanvasComponent, selector: "ngx-mat-color-canvas" }], encapsulation: i0.ViewEncapsulation.None });
561
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgxMatColorPaletteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
562
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.0", type: NgxMatColorPaletteComponent, isStandalone: true, selector: "ngx-mat-color-palette", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, theme: { classPropertyName: "theme", publicName: "theme", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { colorChanged: "colorChanged" }, host: { classAttribute: "ngx-mat-color-palette" }, ngImport: i0, template: "<ngx-mat-color-canvas\n (colorChanged)=\"handleColorChanged($event)\"\n [color]=\"color()\"\n [theme]=\"theme()\"\n/>\n\n<ngx-mat-color-collection\n (colorChanged)=\"handleColorChanged($event)\"\n [color]=\"color()\"\n/>\n", styles: [".ngx-mat-color-palette .actions{margin-top:10px;display:flex}.ngx-mat-color-palette .actions .left{display:flex;flex-direction:column;margin-right:15px}.ngx-mat-color-palette .actions .left .preview{flex:2 1 auto;margin-bottom:10px}.ngx-mat-color-palette .actions .right{display:flex;width:60px;flex-direction:column}\n"], dependencies: [{ kind: "component", type: NgxMatColorCollectionComponent, selector: "ngx-mat-color-collection", inputs: ["color"], outputs: ["colorChanged"] }, { kind: "component", type: NgxMatColorCanvasComponent, selector: "ngx-mat-color-canvas" }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None });
558
563
  }
559
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: NgxMatColorPaletteComponent, decorators: [{
564
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgxMatColorPaletteComponent, decorators: [{
560
565
  type: Component,
561
566
  args: [{ selector: 'ngx-mat-color-palette', encapsulation: ViewEncapsulation.None, host: {
562
567
  class: 'ngx-mat-color-palette',
563
- }, imports: [NgxMatColorCollectionComponent, NgxMatColorCanvasComponent], template: "<ngx-mat-color-canvas\n (colorChanged)=\"handleColorChanged($event)\"\n [color]=\"color()\"\n [theme]=\"theme()\"\n/>\n\n<ngx-mat-color-collection\n (colorChanged)=\"handleColorChanged($event)\"\n [color]=\"color()\"\n/>\n", styles: [".ngx-mat-color-palette .actions{margin-top:10px;display:flex}.ngx-mat-color-palette .actions .left{display:flex;flex-direction:column;margin-right:15px}.ngx-mat-color-palette .actions .left .preview{flex:2 1 auto;margin-bottom:10px}.ngx-mat-color-palette .actions .right{display:flex;width:60px;flex-direction:column}\n"] }]
568
+ }, changeDetection: ChangeDetectionStrategy.Eager, imports: [NgxMatColorCollectionComponent, NgxMatColorCanvasComponent], template: "<ngx-mat-color-canvas\n (colorChanged)=\"handleColorChanged($event)\"\n [color]=\"color()\"\n [theme]=\"theme()\"\n/>\n\n<ngx-mat-color-collection\n (colorChanged)=\"handleColorChanged($event)\"\n [color]=\"color()\"\n/>\n", styles: [".ngx-mat-color-palette .actions{margin-top:10px;display:flex}.ngx-mat-color-palette .actions .left{display:flex;flex-direction:column;margin-right:15px}.ngx-mat-color-palette .actions .left .preview{flex:2 1 auto;margin-bottom:10px}.ngx-mat-color-palette .actions .right{display:flex;width:60px;flex-direction:column}\n"] }]
564
569
  }], propDecorators: { colorChanged: [{ type: i0.Output, args: ["colorChanged"] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], theme: [{ type: i0.Input, args: [{ isSignal: true, alias: "theme", required: false }] }] } });
565
570
 
566
571
  class ColorAdapter {
@@ -581,10 +586,10 @@ class ColorAdapter {
581
586
  }
582
587
  return null;
583
588
  }
584
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ColorAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
585
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ColorAdapter });
589
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: ColorAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
590
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: ColorAdapter });
586
591
  }
587
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ColorAdapter, decorators: [{
592
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: ColorAdapter, decorators: [{
588
593
  type: Injectable
589
594
  }] });
590
595
 
@@ -607,7 +612,8 @@ const NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY_FACTORY_PROVIDER = {
607
612
  };
608
613
  class NgxMatColorPickerContentComponent {
609
614
  /** Reference to the internal calendar component. */
610
- _palette = viewChild(NgxMatColorPaletteComponent, ...(ngDevMode ? [{ debugName: "_palette" }] : /* istanbul ignore next */ []));
615
+ _palette = viewChild(NgxMatColorPaletteComponent, /* @ts-ignore */
616
+ ...(ngDevMode ? [{ debugName: "_palette" }] : /* istanbul ignore next */ []));
611
617
  picker = null;
612
618
  color;
613
619
  _isLeaving = false;
@@ -636,10 +642,10 @@ class NgxMatColorPickerContentComponent {
636
642
  this._animationDone.next();
637
643
  }
638
644
  }
639
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: NgxMatColorPickerContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
640
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.14", type: NgxMatColorPickerContentComponent, isStandalone: true, selector: "ngx-mat-color-picker-content", inputs: { color: "color" }, outputs: { _animationDone: "_animationDone" }, host: { listeners: { "animationend": "_onAnimationEnd($event)" }, properties: { "class.ngx-mat-colorpicker-content-touch": "picker?.touchUi", "class.panel-enter-dropdown": "this.isEnterDropdown", "class.panel-enter-dialog": "this.isEnterDialog", "class.panel-leave": "this.isLeaving" }, classAttribute: "ngx-mat-colorpicker-content" }, viewQueries: [{ propertyName: "_palette", first: true, predicate: NgxMatColorPaletteComponent, descendants: true, isSignal: true }], exportAs: ["ngxMatColorPickerContent"], ngImport: i0, template: "<ngx-mat-color-palette\n (colorChanged)=\"picker?.select($event)\"\n [color]=\"picker!._selected\"\n [theme]=\"color\"></ngx-mat-color-palette>\n", styles: ["@keyframes panelDropdownEnter{0%{opacity:0;transform:scaleY(.8)}to{opacity:1;transform:scale(1)}}@keyframes panelDialogEnter{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}@keyframes panelLeave{0%{opacity:1}to{opacity:0}}.panel-enter-dropdown{animation:panelDropdownEnter .12s cubic-bezier(0,0,.2,1)}.panel-enter-dialog{animation:panelDialogEnter .15s cubic-bezier(0,0,.2,1)}.panel-leave{animation:panelLeave .1s linear forwards;pointer-events:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.calendar-fade-enter{animation:fadeIn .12s .1s cubic-bezier(.55,0,.55,.2) forwards}\n", ".ngx-mat-colorpicker-content{display:block;border-radius:4px;box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;background-color:#fff;color:#000000de;padding:16px}.ngx-mat-colorpicker-content .ngx-mat-color-palette{width:296px;height:354px}.ngx-mat-colorpicker-content-touch{display:block;max-height:80vh;overflow:auto}.ngx-mat-colorpicker-content-touch .ngx-mat-color-palette{min-width:250px;min-height:312px;max-width:750px;max-height:788px}@media all and (orientation:landscape){.mat-colorpicker-content-touch .ngx-mat-color-palette{width:64vh;height:80vh}}@media all and (orientation:portrait){.mat-colorpicker-content-touch .ngx-mat-color-palette{width:80vw;height:100vw}}\n"], dependencies: [{ kind: "component", type: NgxMatColorPaletteComponent, selector: "ngx-mat-color-palette", inputs: ["color", "theme"], outputs: ["colorChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
645
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgxMatColorPickerContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
646
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.0", type: NgxMatColorPickerContentComponent, isStandalone: true, selector: "ngx-mat-color-picker-content", inputs: { color: "color" }, outputs: { _animationDone: "_animationDone" }, host: { listeners: { "animationend": "_onAnimationEnd($event)" }, properties: { "class.ngx-mat-colorpicker-content-touch": "picker?.touchUi", "class.panel-enter-dropdown": "this.isEnterDropdown", "class.panel-enter-dialog": "this.isEnterDialog", "class.panel-leave": "this.isLeaving" }, classAttribute: "ngx-mat-colorpicker-content" }, viewQueries: [{ propertyName: "_palette", first: true, predicate: NgxMatColorPaletteComponent, descendants: true, isSignal: true }], exportAs: ["ngxMatColorPickerContent"], ngImport: i0, template: "<ngx-mat-color-palette\n (colorChanged)=\"picker?.select($event)\"\n [color]=\"picker!._selected\"\n [theme]=\"color\"></ngx-mat-color-palette>\n", styles: ["@keyframes panelDropdownEnter{0%{opacity:0;transform:scaleY(.8)}to{opacity:1;transform:scale(1)}}@keyframes panelDialogEnter{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}@keyframes panelLeave{0%{opacity:1}to{opacity:0}}.panel-enter-dropdown{animation:panelDropdownEnter .12s cubic-bezier(0,0,.2,1)}.panel-enter-dialog{animation:panelDialogEnter .15s cubic-bezier(0,0,.2,1)}.panel-leave{animation:panelLeave .1s linear forwards;pointer-events:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.calendar-fade-enter{animation:fadeIn .12s .1s cubic-bezier(.55,0,.55,.2) forwards}\n", ".ngx-mat-colorpicker-content{display:block;border-radius:4px;box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;background-color:#fff;color:#000000de;padding:16px}.ngx-mat-colorpicker-content .ngx-mat-color-palette{width:296px;height:354px}.ngx-mat-colorpicker-content-touch{display:block;max-height:80vh;overflow:auto}.ngx-mat-colorpicker-content-touch .ngx-mat-color-palette{min-width:250px;min-height:312px;max-width:750px;max-height:788px}@media all and (orientation:landscape){.mat-colorpicker-content-touch .ngx-mat-color-palette{width:64vh;height:80vh}}@media all and (orientation:portrait){.mat-colorpicker-content-touch .ngx-mat-color-palette{width:80vw;height:100vw}}\n"], dependencies: [{ kind: "component", type: NgxMatColorPaletteComponent, selector: "ngx-mat-color-palette", inputs: ["color", "theme"], outputs: ["colorChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
641
647
  }
642
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: NgxMatColorPickerContentComponent, decorators: [{
648
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgxMatColorPickerContentComponent, decorators: [{
643
649
  type: Component,
644
650
  args: [{ selector: 'ngx-mat-color-picker-content', host: {
645
651
  class: 'ngx-mat-colorpicker-content',
@@ -973,10 +979,10 @@ class NgxMatColorPickerComponent {
973
979
  },
974
980
  ]);
975
981
  }
976
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: NgxMatColorPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
977
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.14", type: NgxMatColorPickerComponent, isStandalone: true, selector: "ngx-mat-color-picker", inputs: { id: "id", disabled: "disabled", touchUi: "touchUi", opened: "opened", defaultColor: "defaultColor", color: "color" }, outputs: { openedStream: "opened", closedStream: "closed" }, host: { properties: { "class.mat-primary": "this.isPrimary", "class.mat-accent": "this.isAccent", "class.mat-warn": "this.isWarn" } }, providers: [ColorAdapter, NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY_FACTORY_PROVIDER], exportAs: ["ngxMatColorPicker"], ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
982
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgxMatColorPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
983
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.0", type: NgxMatColorPickerComponent, isStandalone: true, selector: "ngx-mat-color-picker", inputs: { id: "id", disabled: "disabled", touchUi: "touchUi", opened: "opened", defaultColor: "defaultColor", color: "color" }, outputs: { openedStream: "opened", closedStream: "closed" }, host: { properties: { "class.mat-primary": "this.isPrimary", "class.mat-accent": "this.isAccent", "class.mat-warn": "this.isWarn" } }, providers: [ColorAdapter, NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY_FACTORY_PROVIDER], exportAs: ["ngxMatColorPicker"], ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
978
984
  }
979
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: NgxMatColorPickerComponent, decorators: [{
985
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgxMatColorPickerComponent, decorators: [{
980
986
  type: Component,
981
987
  args: [{
982
988
  selector: 'ngx-mat-color-picker',
@@ -1204,15 +1210,15 @@ class NgxMatColorPickerInput {
1204
1210
  this._validatorOnChange();
1205
1211
  }
1206
1212
  }
1207
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: NgxMatColorPickerInput, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1208
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.14", type: NgxMatColorPickerInput, isStandalone: true, selector: "input[ngxMatColorPicker]", inputs: { ngxMatColorPicker: "ngxMatColorPicker", disabled: "disabled", value: "value" }, outputs: { colorChange: "colorChange", colorInput: "colorInput" }, host: { listeners: { "input": "_onInput($event)", "change": "_onChange()", "blur": "_onBlur()", "keydown": "_onKeydown($event)" }, properties: { "attr.aria-haspopup": "_picker ? \"dialog\" : null", "attr.aria-owns": "(_picker?.opened && _picker?.id) || null", "disabled": "disabled" } }, providers: [
1213
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgxMatColorPickerInput, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1214
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.0", type: NgxMatColorPickerInput, isStandalone: true, selector: "input[ngxMatColorPicker]", inputs: { ngxMatColorPicker: "ngxMatColorPicker", disabled: "disabled", value: "value" }, outputs: { colorChange: "colorChange", colorInput: "colorInput" }, host: { listeners: { "input": "_onInput($event)", "change": "_onChange()", "blur": "_onBlur()", "keydown": "_onKeydown($event)" }, properties: { "attr.aria-haspopup": "_picker ? \"dialog\" : null", "attr.aria-owns": "(_picker?.opened && _picker?.id) || null", "disabled": "disabled" } }, providers: [
1209
1215
  { provide: MAT_INPUT_VALUE_ACCESSOR, useExisting: NgxMatColorPickerInput },
1210
1216
  ColorAdapter,
1211
1217
  MAT_COLORPICKER_VALIDATORS,
1212
1218
  MAT_COLORPICKER_VALUE_ACCESSOR,
1213
1219
  ], exportAs: ["ngxMatColorPickerInput"], ngImport: i0 });
1214
1220
  }
1215
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: NgxMatColorPickerInput, decorators: [{
1221
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgxMatColorPickerInput, decorators: [{
1216
1222
  type: Directive,
1217
1223
  args: [{
1218
1224
  selector: 'input[ngxMatColorPicker]',
@@ -1242,10 +1248,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
1242
1248
  }], colorChange: [{ type: i0.Output, args: ["colorChange"] }], colorInput: [{ type: i0.Output, args: ["colorInput"] }] } });
1243
1249
 
1244
1250
  class NgxMatColorpickerToggleIcon {
1245
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: NgxMatColorpickerToggleIcon, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1246
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.14", type: NgxMatColorpickerToggleIcon, isStandalone: true, selector: "[ngxMatColorpickerToggleIcon]", ngImport: i0 });
1251
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgxMatColorpickerToggleIcon, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1252
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.0", type: NgxMatColorpickerToggleIcon, isStandalone: true, selector: "[ngxMatColorpickerToggleIcon]", ngImport: i0 });
1247
1253
  }
1248
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: NgxMatColorpickerToggleIcon, decorators: [{
1254
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgxMatColorpickerToggleIcon, decorators: [{
1249
1255
  type: Directive,
1250
1256
  args: [{
1251
1257
  selector: '[ngxMatColorpickerToggleIcon]',
@@ -1254,7 +1260,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
1254
1260
  class NgxMatColorToggleComponent {
1255
1261
  _stateChanges = Subscription.EMPTY;
1256
1262
  picker = input(undefined, { ...(ngDevMode ? { debugName: "picker" } : /* istanbul ignore next */ {}), alias: 'for' });
1257
- tabIndex = input(...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
1263
+ tabIndex = input(/* @ts-ignore */
1264
+ ...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
1258
1265
  get disabled() {
1259
1266
  if (this._disabled == null && this.picker()) {
1260
1267
  return this.picker()?.disabled;
@@ -1266,8 +1273,10 @@ class NgxMatColorToggleComponent {
1266
1273
  }
1267
1274
  _disabled = false;
1268
1275
  /** Whether ripples on the toggle should be disabled. */
1269
- disableRipple = input(...(ngDevMode ? [undefined, { debugName: "disableRipple" }] : /* istanbul ignore next */ []));
1270
- _button = viewChild('button', ...(ngDevMode ? [{ debugName: "_button" }] : /* istanbul ignore next */ []));
1276
+ disableRipple = input(/* @ts-ignore */
1277
+ ...(ngDevMode ? [undefined, { debugName: "disableRipple" }] : /* istanbul ignore next */ []));
1278
+ _button = viewChild('button', /* @ts-ignore */
1279
+ ...(ngDevMode ? [{ debugName: "_button" }] : /* istanbul ignore next */ []));
1271
1280
  _cd = inject(ChangeDetectorRef);
1272
1281
  constructor() {
1273
1282
  effect(() => {
@@ -1296,10 +1305,10 @@ class NgxMatColorToggleComponent {
1296
1305
  this._stateChanges.unsubscribe();
1297
1306
  this._stateChanges = merge(disabled$, inputDisabled$, pickerToggled$).subscribe(() => this._cd.markForCheck());
1298
1307
  }
1299
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: NgxMatColorToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1300
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.14", type: NgxMatColorToggleComponent, isStandalone: true, selector: "ngx-mat-color-toggle", inputs: { picker: { classPropertyName: "picker", publicName: "for", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, disableRipple: { classPropertyName: "disableRipple", publicName: "disableRipple", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "focus": "_button()?.focus()" }, properties: { "attr.tabindex": "-1", "class.ngx-mat-color-toggle-active": "picker()?.opened", "class.mat-accent": "picker()?.color === \"accent\"", "class.mat-warn": "picker()?.color === \"warn\"" }, classAttribute: "ngx-mat-color-toggle" }, viewQueries: [{ propertyName: "_button", first: true, predicate: ["button"], descendants: true, isSignal: true }], exportAs: ["ngxMatColorPickerToggle"], ngImport: i0, template: "<button\n #button\n mat-icon-button\n type=\"button\"\n [attr.aria-haspopup]=\"picker() ? 'dialog' : null\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex()\"\n [disabled]=\"disabled\"\n (click)=\"open($event)\"\n [disableRipple]=\"disableRipple()\"\n>\n <ng-content select=\"[ngxMatColorpickerToggleIcon]\">\n <mat-icon [style.color]=\"picker()?._selected?.rgba\">palette</mat-icon>\n </ng-content>\n</button>\n", styles: [".mat-form-field-appearance .mat-form-field-prefix .ngx-mat-color-toggle-default-icon,.mat-form-field-appearance .mat-form-field-suffix .ngx-mat-color-toggle-default-icon{width:1em}.mat-form-field:not(.mat-form-field-appearance) .mat-form-field-prefix .ngx-mat-color-toggle-default-icon,.mat-form-field:not(.mat-form-field-appearance) .mat-form-field-suffix .ngx-mat-color-toggle-default-icon{display:block;width:1.5em;height:1.5em}.mat-form-field:not(.mat-form-field-appearance) .mat-form-field-prefix .mat-icon-button .ngx-mat-color-toggle-default-icon,.mat-form-field:not(.mat-form-field-appearance) .mat-form-field-suffix .mat-icon-button .ngx-mat-color-toggle-default-icon{margin:auto}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None });
1308
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgxMatColorToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1309
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.0", type: NgxMatColorToggleComponent, isStandalone: true, selector: "ngx-mat-color-toggle", inputs: { picker: { classPropertyName: "picker", publicName: "for", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, disableRipple: { classPropertyName: "disableRipple", publicName: "disableRipple", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "focus": "_button()?.focus()" }, properties: { "attr.tabindex": "-1", "class.ngx-mat-color-toggle-active": "picker()?.opened", "class.mat-accent": "picker()?.color === \"accent\"", "class.mat-warn": "picker()?.color === \"warn\"" }, classAttribute: "ngx-mat-color-toggle" }, viewQueries: [{ propertyName: "_button", first: true, predicate: ["button"], descendants: true, isSignal: true }], exportAs: ["ngxMatColorPickerToggle"], ngImport: i0, template: "<button\n #button\n mat-icon-button\n type=\"button\"\n [attr.aria-haspopup]=\"picker() ? 'dialog' : null\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex()\"\n [disabled]=\"disabled\"\n (click)=\"open($event)\"\n [disableRipple]=\"disableRipple()\"\n>\n <ng-content select=\"[ngxMatColorpickerToggleIcon]\">\n <mat-icon [style.color]=\"picker()?._selected?.rgba\">palette</mat-icon>\n </ng-content>\n</button>\n", styles: [".mat-form-field-appearance .mat-form-field-prefix .ngx-mat-color-toggle-default-icon,.mat-form-field-appearance .mat-form-field-suffix .ngx-mat-color-toggle-default-icon{width:1em}.mat-form-field:not(.mat-form-field-appearance) .mat-form-field-prefix .ngx-mat-color-toggle-default-icon,.mat-form-field:not(.mat-form-field-appearance) .mat-form-field-suffix .ngx-mat-color-toggle-default-icon{display:block;width:1.5em;height:1.5em}.mat-form-field:not(.mat-form-field-appearance) .mat-form-field-prefix .mat-icon-button .ngx-mat-color-toggle-default-icon,.mat-form-field:not(.mat-form-field-appearance) .mat-form-field-suffix .mat-icon-button .ngx-mat-color-toggle-default-icon{margin:auto}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None });
1301
1310
  }
1302
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: NgxMatColorToggleComponent, decorators: [{
1311
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NgxMatColorToggleComponent, decorators: [{
1303
1312
  type: Component,
1304
1313
  args: [{ selector: 'ngx-mat-color-toggle', host: {
1305
1314
  class: 'ngx-mat-color-toggle',
@@ -1310,7 +1319,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
1310
1319
  '[class.mat-accent]': 'picker()?.color === "accent"',
1311
1320
  '[class.mat-warn]': 'picker()?.color === "warn"',
1312
1321
  '(focus)': '_button()?.focus()',
1313
- }, exportAs: 'ngxMatColorPickerToggle', encapsulation: ViewEncapsulation.None, imports: [MatButtonModule, MatIconModule], template: "<button\n #button\n mat-icon-button\n type=\"button\"\n [attr.aria-haspopup]=\"picker() ? 'dialog' : null\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex()\"\n [disabled]=\"disabled\"\n (click)=\"open($event)\"\n [disableRipple]=\"disableRipple()\"\n>\n <ng-content select=\"[ngxMatColorpickerToggleIcon]\">\n <mat-icon [style.color]=\"picker()?._selected?.rgba\">palette</mat-icon>\n </ng-content>\n</button>\n", styles: [".mat-form-field-appearance .mat-form-field-prefix .ngx-mat-color-toggle-default-icon,.mat-form-field-appearance .mat-form-field-suffix .ngx-mat-color-toggle-default-icon{width:1em}.mat-form-field:not(.mat-form-field-appearance) .mat-form-field-prefix .ngx-mat-color-toggle-default-icon,.mat-form-field:not(.mat-form-field-appearance) .mat-form-field-suffix .ngx-mat-color-toggle-default-icon{display:block;width:1.5em;height:1.5em}.mat-form-field:not(.mat-form-field-appearance) .mat-form-field-prefix .mat-icon-button .ngx-mat-color-toggle-default-icon,.mat-form-field:not(.mat-form-field-appearance) .mat-form-field-suffix .mat-icon-button .ngx-mat-color-toggle-default-icon{margin:auto}\n"] }]
1322
+ }, exportAs: 'ngxMatColorPickerToggle', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Eager, imports: [MatButtonModule, MatIconModule], template: "<button\n #button\n mat-icon-button\n type=\"button\"\n [attr.aria-haspopup]=\"picker() ? 'dialog' : null\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex()\"\n [disabled]=\"disabled\"\n (click)=\"open($event)\"\n [disableRipple]=\"disableRipple()\"\n>\n <ng-content select=\"[ngxMatColorpickerToggleIcon]\">\n <mat-icon [style.color]=\"picker()?._selected?.rgba\">palette</mat-icon>\n </ng-content>\n</button>\n", styles: [".mat-form-field-appearance .mat-form-field-prefix .ngx-mat-color-toggle-default-icon,.mat-form-field-appearance .mat-form-field-suffix .ngx-mat-color-toggle-default-icon{width:1em}.mat-form-field:not(.mat-form-field-appearance) .mat-form-field-prefix .ngx-mat-color-toggle-default-icon,.mat-form-field:not(.mat-form-field-appearance) .mat-form-field-suffix .ngx-mat-color-toggle-default-icon{display:block;width:1.5em;height:1.5em}.mat-form-field:not(.mat-form-field-appearance) .mat-form-field-prefix .mat-icon-button .ngx-mat-color-toggle-default-icon,.mat-form-field:not(.mat-form-field-appearance) .mat-form-field-suffix .mat-icon-button .ngx-mat-color-toggle-default-icon{margin:auto}\n"] }]
1314
1323
  }], ctorParameters: () => [], propDecorators: { picker: [{ type: i0.Input, args: [{ isSignal: true, alias: "for", required: false }] }], tabIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabIndex", required: false }] }], disabled: [{
1315
1324
  type: Input
1316
1325
  }], disableRipple: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableRipple", required: false }] }], _button: [{ type: i0.ViewChild, args: ['button', { isSignal: true }] }] } });
@@ -1328,10 +1337,10 @@ class NumericColorInputDirective {
1328
1337
  val = isNaN(val) ? 0 : val;
1329
1338
  input.value = val;
1330
1339
  }
1331
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: NumericColorInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1332
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.14", type: NumericColorInputDirective, isStandalone: true, selector: "[ngxMatNumericColorInput]", host: { listeners: { "input": "onInput($event)" } }, ngImport: i0 });
1340
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NumericColorInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1341
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.0", type: NumericColorInputDirective, isStandalone: true, selector: "[ngxMatNumericColorInput]", host: { listeners: { "input": "onInput($event)" } }, ngImport: i0 });
1333
1342
  }
1334
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: NumericColorInputDirective, decorators: [{
1343
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: NumericColorInputDirective, decorators: [{
1335
1344
  type: Directive,
1336
1345
  args: [{
1337
1346
  selector: '[ngxMatNumericColorInput]',
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-mce-color-picker.mjs","sources":["../../../projects/color-picker/src/lib/helpers/color-helpers.ts","../../../projects/color-picker/src/lib/models/color.model.ts","../../../projects/color-picker/src/lib/components/color-canvas/base-color-canvas.ts","../../../projects/color-picker/src/lib/components/color-canvas/color-slider/color-slider.component.ts","../../../projects/color-picker/src/lib/components/color-canvas/color-slider/color-slider.component.html","../../../projects/color-picker/src/lib/components/color-canvas/color-canvas.component.ts","../../../projects/color-picker/src/lib/components/color-canvas/color-canvas.component.html","../../../projects/color-picker/src/lib/components/color-collection/color-collection.component.ts","../../../projects/color-picker/src/lib/components/color-collection/color-collection.component.html","../../../projects/color-picker/src/lib/components/color-palette/color-palette.component.ts","../../../projects/color-picker/src/lib/components/color-palette/color-palette.component.html","../../../projects/color-picker/src/lib/services/color-adapter.ts","../../../projects/color-picker/src/lib/services/color-formats.ts","../../../projects/color-picker/src/lib/components/color-picker/color-picker.component.ts","../../../projects/color-picker/src/lib/components/color-picker/color-picker-content.component.html","../../../projects/color-picker/src/lib/components/color-picker/color-input.component.ts","../../../projects/color-picker/src/lib/components/color-toggle/color-toggle.component.ts","../../../projects/color-picker/src/lib/components/color-toggle/color-toggle.component.html","../../../projects/color-picker/src/lib/directives/numeric-color-input.directive.ts","../../../projects/color-picker/src/public-api.ts","../../../projects/color-picker/src/ngx-mce-color-picker.ts"],"sourcesContent":["const trimLeft = /^\\s+/;\nconst trimRight = /\\s+$/;\nconst mathRound = Math.round;\n\nexport const NUMERIC_REGEX = /[^0-9]/g;\nexport const MAX_RGB = 255;\nexport const MIN_RGB = 0;\n\n/** List basic colors */\nexport const BASIC_COLORS = [\n '#ffffff',\n '#ffff00',\n '#ff00ff',\n '#ff0000',\n '#c0c0c0',\n '#808080',\n '#808000',\n '#800080',\n '#800000',\n '#00ffff',\n '#00ff00',\n '#008080',\n '#008000',\n '#0000ff',\n '#000080',\n '#000000',\n];\n\n/**\n * Get color at position\n * @param ctx\n * @param x\n * @param y\n */\nexport function getColorAtPosition(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n): { r: number; g: number; b: number } {\n const imageData: Uint8ClampedArray = ctx.getImageData(x, y, 1, 1).data;\n return { r: imageData[0], g: imageData[1], b: imageData[2] };\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nexport function rgbaToHex(\n r: number,\n g: number,\n b: number,\n a: number,\n allow4Char?: boolean,\n): string {\n const hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a.toString(16))),\n ];\n\n // Return a 4 character hex if possible\n if (\n allow4Char &&\n hex[0].charAt(0) == hex[0].charAt(1) &&\n hex[1].charAt(0) == hex[1].charAt(1) &&\n hex[2].charAt(0) == hex[2].charAt(1) &&\n hex[3].charAt(0) == hex[3].charAt(1)\n ) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join('');\n}\n\n// Force a hex value to have 2 characters\nexport function pad2(c: string): string {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Converts a decimal to a hex value\nexport function convertDecimalToHex(d: string) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h: string) {\n return parseIntFromHex(h) / 255;\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val: string) {\n return parseInt(val, 16);\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nexport function rgbToHex(r: number, g: number, b: number, allow3Char?: boolean) {\n const hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n ];\n\n // Return a 3 character hex if possible\n if (\n allow3Char &&\n hex[0].charAt(0) == hex[0].charAt(1) &&\n hex[1].charAt(0) == hex[1].charAt(1) &&\n hex[2].charAt(0) == hex[2].charAt(1)\n ) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join('');\n}\n\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening parent\nconst CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\nconst CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\nconst CSS_UNIT = '(?:' + CSS_NUMBER + ')|(?:' + CSS_INTEGER + ')';\nconst PERMISSIVE_MATCH3 =\n '[\\\\s|\\\\(]+(' + CSS_UNIT + ')[,|\\\\s]+(' + CSS_UNIT + ')[,|\\\\s]+(' + CSS_UNIT + ')\\\\s*\\\\)?';\nconst PERMISSIVE_MATCH4 =\n '[\\\\s|\\\\(]+(' +\n CSS_UNIT +\n ')[,|\\\\s]+(' +\n CSS_UNIT +\n ')[,|\\\\s]+(' +\n CSS_UNIT +\n ')[,|\\\\s]+(' +\n CSS_UNIT +\n ')\\\\s*\\\\)?';\n\nexport const matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nexport function stringInputToObject(color: string): {\n r: number;\n g: number;\n b: number;\n a: number;\n} | null {\n color = color.replace(trimLeft, '').replace(trimRight, '').toLowerCase();\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n let match;\n if ((match = matchers.rgb.exec(color))) {\n return {\n r: parseFloat(match[1]),\n g: parseFloat(match[2]),\n b: parseFloat(match[3]),\n a: 1\n };\n }\n if ((match = matchers.rgba.exec(color))) {\n return {\n r: parseFloat(match[1]),\n g: parseFloat(match[2]),\n b: parseFloat(match[3]),\n a: parseFloat(match[4])\n };\n }\n\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: 1,\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: 1,\n };\n }\n\n return null;\n}\n\nexport function createMissingDateImplError(provider: string) {\n return Error(\n `NgxMatColorPicker: No provider found for ${provider}. You must define MAT_COLOR_FORMATS in your module`,\n );\n}\n","import { MAX_RGB, rgbaToHex, rgbToHex } from '../helpers';\nimport { ColorInputFormat } from './color-input-format';\n\nexport class Color {\n public r: number;\n public g: number;\n public b: number;\n public a: number;\n public roundA: number;\n\n public hex: string;\n public rgba: string;\n\n constructor(_r: number, _g: number, _b: number, _a?: number) {\n this.r = _r > MAX_RGB ? MAX_RGB : _r;\n this.g = _g > MAX_RGB ? MAX_RGB : _g;\n this.b = _b > MAX_RGB ? MAX_RGB : _b;\n if (_a != null) {\n this.a = _a > 1 ? 1 : _a;\n } else {\n this.a = 1;\n }\n this.roundA = Math.round(this.a);\n this.hex = rgbToHex(this.r, this.g, this.b);\n this.rgba = this.toRgba();\n }\n\n public toHex(allow3Char?: boolean): string {\n return rgbToHex(this.r, this.g, this.b, allow3Char);\n }\n\n public toRgba(): string {\n return `rgba(${this.r},${this.g},${this.b},${this.a})`;\n }\n\n public toHexString(allow3Char?: boolean): string {\n return '#' + this.toHex(allow3Char);\n }\n\n public toRgbString(): string {\n return this.a === 1\n ? 'rgb(' + Math.round(this.r) + ', ' + Math.round(this.g) + ', ' + Math.round(this.b) + ')'\n : 'rgba(' +\n Math.round(this.r) +\n ', ' +\n Math.round(this.g) +\n ', ' +\n Math.round(this.b) +\n ', ' +\n this.roundA +\n ')';\n }\n\n public toHex8(allow4Char?: boolean): string {\n return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n }\n\n public toHex8String(allow4Char?: boolean): string {\n return '#' + this.toHex8(allow4Char);\n }\n\n public toString(format: ColorInputFormat): string {\n const formatSet = !!format;\n\n let formattedString;\n const hasAlpha = this.a < 1 && this.a >= 0;\n const needsAlphaFormat =\n !formatSet &&\n hasAlpha &&\n (format === 'hex' ||\n format === 'hex6' ||\n format === 'hex3' ||\n format === 'hex4' ||\n format === 'hex8');\n\n if (needsAlphaFormat) {\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex4') {\n formattedString = this.toHex8String(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n\n return formattedString || this.toHexString();\n }\n}\n","import {\n AfterViewInit,\n Directive,\n Input,\n input,\n NgZone,\n OnDestroy,\n output,\n signal,\n} from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { Subject } from 'rxjs';\nimport { Color } from '../../models';\n\n@Directive()\nexport abstract class NgxMatBaseColorCanvas implements OnDestroy, AfterViewInit {\n readonly colorChanged = output<Color>();\n readonly theme = input<ThemePalette>();\n readonly color = signal<Color | undefined | null>(null);\n\n @Input({\n alias: 'color',\n })\n set setColor(color: Color | undefined | null) {\n this.color.set(color);\n }\n\n canvas: HTMLCanvasElement | null = null;\n\n elementId: string;\n\n ctx: CanvasRenderingContext2D | null = null;\n width = 0;\n height = 0;\n\n x = 0;\n y = 0;\n\n drag = false;\n\n protected _destroyed: Subject<void> = new Subject<void>();\n\n protected zone: NgZone | null = null;\n\n constructor(\n elementId: string,\n ) {\n this.elementId = elementId;\n }\n\n ngOnDestroy(): void {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n ngAfterViewInit(): void {\n this.canvas = document.getElementById(this.elementId) as HTMLCanvasElement;\n this.ctx = this.canvas.getContext('2d');\n this.width = this.canvas.width;\n this.height = this.canvas.height;\n this.draw();\n }\n\n protected draw() {\n this.ctx?.clearRect(0, 0, this.width, this.height);\n this.ctx?.rect(0, 0, this.width, this.height);\n this.fillGradient();\n if (this.y != 0) {\n this.redrawIndicator(this.x, this.y);\n }\n }\n\n public onMousedown(e: MouseEvent) {\n this.drag = true;\n this.changeColor(e);\n\n this.zone?.runOutsideAngular(() => {\n this.canvas?.addEventListener('mousemove', this.onMousemove.bind(this));\n });\n }\n\n public onMousemove(e: MouseEvent) {\n if (this.drag) {\n this.zone?.run(() => {\n this.changeColor(e);\n });\n }\n }\n\n public onMouseup(_: MouseEvent) {\n this.drag = false;\n this.canvas?.removeEventListener('mousemove', this.onMousemove);\n }\n\n public emitChange(color: Color) {\n this.colorChanged.emit(color);\n }\n\n abstract changeColor(e: MouseEvent): void;\n abstract fillGradient(): void;\n abstract redrawIndicator(x: number, y: number): void;\n}\n","import { Component, inject, NgZone } from '@angular/core';\nimport { getColorAtPosition } from '../../../helpers';\nimport { Color } from '../../../models';\nimport { NgxMatBaseColorCanvas } from '../base-color-canvas';\n\n@Component({\n selector: 'ngx-mat-color-slider',\n templateUrl: './color-slider.component.html',\n styleUrls: ['./color-slider.component.scss'],\n})\nexport class NgxMatColorSliderComponent extends NgxMatBaseColorCanvas {\n protected override zone = inject(NgZone);\n\n constructor() {\n super('color-strip');\n }\n\n override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n }\n\n public fillGradient() {\n const grd = this.ctx?.createLinearGradient(0, 0, 0, this.height);\n grd?.addColorStop(0, 'rgba(255, 0, 0, 1)');\n grd?.addColorStop(0.17, 'rgba(255, 255, 0, 1)');\n grd?.addColorStop(0.34, 'rgba(0, 255, 0, 1)');\n grd?.addColorStop(0.51, 'rgba(0, 255, 255, 1)');\n grd?.addColorStop(0.68, 'rgba(0, 0, 255, 1)');\n grd?.addColorStop(0.85, 'rgba(255, 0, 255, 1)');\n grd?.addColorStop(1, 'rgba(255, 0, 0, 1)');\n\n this.ctx!.fillStyle = grd!;\n this.ctx?.fill();\n }\n\n public redrawIndicator(x: number, y: number) {\n this.ctx?.beginPath();\n this.ctx!.strokeStyle = 'white';\n this.ctx!.lineWidth = 2;\n this.ctx?.arc(7.5, y, 7.5, 0, 2 * Math.PI, false);\n this.ctx?.stroke();\n this.ctx?.closePath();\n }\n\n public changeColor(e: MouseEvent) {\n this.x = e.offsetX;\n this.y = e.offsetY;\n this.draw();\n const { r, g, b } = getColorAtPosition(this.ctx!, e.offsetX, e.offsetY);\n this.emitChange(new Color(r, g, b));\n }\n}\n","<canvas\n id=\"color-strip\"\n class=\"zone-strip\"\n (mousedown)=\"onMousedown($event)\"\n (mouseup)=\"onMouseup($event)\"\n width=\"15\"\n height=\"234\"\n></canvas>\n","import {\n AfterViewInit,\n Component,\n inject,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n AbstractControl,\n FormControl,\n FormGroup,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { merge } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { getColorAtPosition, matchers, stringInputToObject } from '../../helpers';\nimport { Color } from '../../models';\nimport { NgxMatBaseColorCanvas } from './base-color-canvas';\nimport { NgxMatColorSliderComponent } from './color-slider/color-slider.component';\n\nconst RADIUS_NOB = 5;\n\n@Component({\n selector: 'ngx-mat-color-canvas',\n templateUrl: './color-canvas.component.html',\n styleUrls: ['./color-canvas.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ngx-mat-color-canvas',\n },\n imports: [MatFormFieldModule, MatInputModule, NgxMatColorSliderComponent, ReactiveFormsModule],\n})\nexport class NgxMatColorCanvasComponent\n extends NgxMatBaseColorCanvas\n implements OnInit, AfterViewInit, OnChanges, OnDestroy\n{\n private _baseColor: Color | null = null;\n\n get rCtrl(): AbstractControl | null {\n return this.formGroup.get('r');\n }\n\n get gCtrl(): AbstractControl | null {\n return this.formGroup.get('g');\n }\n\n get bCtrl(): AbstractControl | null {\n return this.formGroup.get('b');\n }\n\n get aCtrl(): AbstractControl | null {\n return this.formGroup.get('a');\n }\n\n get hexCtrl(): AbstractControl | null {\n return this.formGroup.get('hex');\n }\n\n _resetBaseColor = true;\n\n formGroup: FormGroup;\n\n rgba = \"\";\n\n protected override zone = inject(NgZone);\n\n constructor() {\n super('color-block');\n this.formGroup = new FormGroup({\n r: new FormControl(null, [Validators.required]),\n g: new FormControl(null, [Validators.required]),\n b: new FormControl(null, [Validators.required]),\n a: new FormControl(null, [Validators.required]),\n hex: new FormControl(null, [Validators.required, Validators.pattern(matchers.hex6)]),\n });\n }\n\n ngOnInit() {\n const rgbaCtrl$ = merge(\n this.rCtrl!.valueChanges,\n this.gCtrl!.valueChanges,\n this.bCtrl!.valueChanges,\n this.aCtrl!.valueChanges,\n );\n rgbaCtrl$.pipe(takeUntil(this._destroyed), debounceTime(400)).subscribe((_) => {\n const color = new Color(\n Number(this.rCtrl!.value),\n Number(this.gCtrl!.value),\n Number(this.bCtrl!.value),\n Number(this.aCtrl!.value),\n );\n this.emitChange(color);\n });\n\n const hexCtrl$ = this.hexCtrl!.valueChanges;\n hexCtrl$\n .pipe(takeUntil(this._destroyed), debounceTime(400), distinctUntilChanged())\n .subscribe((hex) => {\n const obj = stringInputToObject(hex);\n if (obj != null) {\n const color = new Color(obj.r, obj.g, obj.b, obj.a);\n this.emitChange(color);\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const key = \"setColor\";\n \n if (changes[key] && changes[key].currentValue) {\n this.updateForm(changes[key].currentValue);\n if (this._resetBaseColor) {\n this._baseColor = changes[key].currentValue;\n }\n\n this._resetBaseColor = true;\n\n if (!changes[key].firstChange) {\n this.draw();\n }\n }\n }\n\n private updateForm(val: Color): void {\n const config = { emitEvent: false };\n \n this.rCtrl?.setValue(val.r, config);\n this.gCtrl?.setValue(val.g, config);\n this.bCtrl?.setValue(val.b, config);\n this.aCtrl?.setValue(val.a, config);\n this.hexCtrl?.setValue(val.hex, config);\n }\n\n public redrawIndicator(x: number, y: number) {\n this.ctx?.beginPath();\n this.ctx!.strokeStyle = 'white';\n this.ctx?.arc(x, y, RADIUS_NOB, 0, 2 * Math.PI, false);\n this.ctx?.stroke();\n this.ctx?.closePath();\n }\n\n public fillGradient() {\n this.ctx!.fillStyle = this._baseColor ? this._baseColor.rgba : 'rgba(255,255,255,1)';\n this.ctx?.fillRect(0, 0, this.width, this.height);\n\n const grdWhite = this.ctx?.createLinearGradient(0, 0, this.width, 0);\n grdWhite?.addColorStop(0, 'rgba(255,255,255,1)');\n grdWhite?.addColorStop(1, 'rgba(255,255,255,0)');\n this.ctx!.fillStyle = grdWhite!;\n this.ctx?.fillRect(0, 0, this.width, this.height);\n\n const grdBlack = this.ctx?.createLinearGradient(0, 0, 0, this.height);\n grdBlack?.addColorStop(0, 'rgba(0,0,0,0)');\n grdBlack?.addColorStop(1, 'rgba(0,0,0,1)');\n this.ctx!.fillStyle = grdBlack!;\n this.ctx?.fillRect(0, 0, this.width, this.height);\n }\n\n public onSliderColorChanged(c: Color) {\n this._baseColor = c;\n this.color.set(c);\n this.fillGradient();\n this.emitChange(c);\n }\n\n public changeColor(e: MouseEvent): void {\n this.x = e.offsetX;\n this.y = e.offsetY;\n this._resetBaseColor = false;\n this.draw();\n const { r, g, b } = getColorAtPosition(this.ctx!, e.offsetX, e.offsetY);\n this.emitChange(new Color(r, g, b));\n }\n}\n","<form [formGroup]=\"formGroup\">\n <div class=\"color-canvas-row\">\n <div class=\"zone-canvas\">\n <canvas\n id=\"color-block\"\n class=\"zone-block\"\n (mousedown)=\"onMousedown($event)\"\n (mouseup)=\"onMouseup($event)\"\n width=\"200\"\n height=\"235\"\n ></canvas>\n <ngx-mat-color-slider (colorChanged)=\"onSliderColorChanged($event)\" />\n </div>\n\n <div class=\"zone-inputs\">\n <mat-form-field [color]=\"theme()\">\n <mat-label>R</mat-label>\n <input\n matInput\n formControlName=\"r\"\n ngxMatNumericColorInput\n autocomplete=\"off\"\n />\n </mat-form-field>\n\n <mat-form-field [color]=\"theme()\">\n <mat-label>G</mat-label>\n <input\n matInput\n formControlName=\"g\"\n ngxMatNumericColorInput\n autocomplete=\"off\"\n />\n </mat-form-field>\n\n <mat-form-field [color]=\"theme()\">\n <mat-label>B</mat-label>\n <input\n matInput\n formControlName=\"b\"\n ngxMatNumericColorInput\n autocomplete=\"off\"\n />\n </mat-form-field>\n </div>\n </div>\n\n <div class=\"color-canvas-row\">\n <button\n mat-mini-fab\n [style.background-color]=\"color()?.rgba || 'transparent'\"\n class=\"preview\"\n ></button>\n <mat-form-field [color]=\"theme()\">\n <mat-label>HEX6</mat-label>\n <mat-label matPrefix class=\"symbol\">#&nbsp;</mat-label>\n <input matInput formControlName=\"hex\" autocomplete=\"off\" />\n </mat-form-field>\n <mat-form-field class=\"input-opacity\" [color]=\"theme()\">\n <mat-label>A</mat-label>\n <input\n matInput\n formControlName=\"a\"\n type=\"number\"\n min=\"0\"\n max=\"1\"\n step=\"0.1\"\n autocomplete=\"off\"\n />\n </mat-form-field>\n </div>\n</form>\n","import { NgClass } from '@angular/common';\nimport { Component, Input, output, signal, ViewEncapsulation } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { BASIC_COLORS, stringInputToObject } from '../../helpers';\nimport { Color } from '../../models';\n\n@Component({\n selector: 'ngx-mat-color-collection',\n templateUrl: './color-collection.component.html',\n styleUrls: ['./color-collection.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ngx-mat-color-collection',\n },\n imports: [MatButtonModule, NgClass],\n})\nexport class NgxMatColorCollectionComponent {\n readonly colorChanged = output<Color>();\n\n @Input()\n set color(c: Color | undefined | null) {\n if (c) {\n this.selectedColor.set(c.toHexString());\n }\n }\n\n readonly selectedColor = signal<string>('');\n\n colors1: string[] = BASIC_COLORS.slice(0, 8);\n colors2: string[] = BASIC_COLORS.slice(8, 16);\n\n select(hex: string) {\n this.selectedColor.set(hex);\n const rgba = stringInputToObject(hex);\n if (rgba != null) {\n this.colorChanged.emit(new Color(rgba.r, rgba.g, rgba.b, rgba.a));\n }\n }\n}\n","<div class=\"color-collection-row\">\n @for (c of colors1; track c) {\n <button\n mat-mini-fab\n [style.background-color]=\"c\"\n class=\"btn-color\"\n (click)=\"select(c)\"\n [ngClass]=\"{ active: selectedColor() === c }\"\n [disableRipple]=\"true\"></button>\n }\n</div>\n<div class=\"color-collection-row\">\n @for (c of colors2; track c) {\n <button\n mat-mini-fab\n [style.background-color]=\"c\"\n class=\"btn-color\"\n (click)=\"select(c)\"\n [ngClass]=\"{ active: selectedColor() === c }\"\n [disableRipple]=\"true\"></button>\n }\n</div>\n","import { Component, ViewEncapsulation, input, output } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { Color } from '../../models';\nimport { NgxMatColorCanvasComponent } from '../color-canvas/color-canvas.component';\nimport { NgxMatColorCollectionComponent } from '../color-collection/color-collection.component';\n\n@Component({\n selector: 'ngx-mat-color-palette',\n templateUrl: 'color-palette.component.html',\n styleUrls: ['color-palette.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ngx-mat-color-palette',\n },\n imports: [NgxMatColorCollectionComponent, NgxMatColorCanvasComponent],\n})\nexport class NgxMatColorPaletteComponent {\n readonly colorChanged = output<Color>();\n\n readonly color = input<Color | undefined | null>();\n readonly theme = input<ThemePalette>();\n\n public handleColorChanged(color: Color) {\n this.colorChanged.emit(color);\n }\n}\n","<ngx-mat-color-canvas\n (colorChanged)=\"handleColorChanged($event)\"\n [color]=\"color()\"\n [theme]=\"theme()\"\n/>\n\n<ngx-mat-color-collection\n (colorChanged)=\"handleColorChanged($event)\"\n [color]=\"color()\"\n/>\n","import { Injectable } from '@angular/core';\nimport { stringInputToObject } from '../helpers';\nimport { Color, ColorInputFormat } from '../models';\n\n@Injectable()\nexport class ColorAdapter {\n sameColor(a: Color, b: Color) {\n if (a == null && b == null) return true;\n if (a != null && b != null) return a.rgba === b.rgba;\n return false;\n }\n\n format(c: Color, format: ColorInputFormat): string {\n return c.toString(format);\n }\n\n parse(value: string): Color | null {\n const obj = stringInputToObject(value);\n if (obj) {\n return new Color(obj.r, obj.g, obj.b, obj.a);\n }\n return null;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ColorInputFormat } from '../models';\n\nexport interface MatColorFormats {\n display: {\n colorInput: ColorInputFormat\n };\n}\n\nexport const NGX_MAT_COLOR_FORMATS: MatColorFormats = {\n display: {\n colorInput: 'hex',\n },\n};\n\nexport const MAT_COLOR_FORMATS = new InjectionToken<MatColorFormats>('mat-color-formats');\n","import { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ESCAPE, UP_ARROW } from '@angular/cdk/keycodes';\nimport {\n Overlay,\n OverlayConfig,\n OverlayRef,\n PositionStrategy,\n ScrollStrategy,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n EventEmitter,\n HostBinding,\n InjectionToken,\n Input,\n NgZone,\n OnDestroy,\n Output,\n ViewContainerRef,\n ViewEncapsulation,\n viewChild,\n DOCUMENT,\n ChangeDetectorRef,\n inject,\n OnInit,\n} from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { Subject, Subscription, merge } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { Color } from '../../models';\nimport { ColorAdapter } from '../../services';\nimport { NgxMatColorPaletteComponent } from '../color-palette/color-palette.component';\nimport { NgxMatColorPickerInput } from './color-input.component';\n\n/** Injection token that determines the scroll handling while the calendar is open. */\nexport const NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>(\n 'ngx-mat-colorpicker-scroll-strategy',\n);\n\nexport function NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY_FACTORY(\n overlay: Overlay,\n): () => ScrollStrategy {\n return () => overlay.scrollStrategies.reposition();\n}\n\nexport const NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY_FACTORY,\n};\n\n@Component({\n selector: 'ngx-mat-color-picker-content',\n templateUrl: './color-picker-content.component.html',\n styleUrls: ['../../../../../shared/base-animations.scss', 'color-picker-content.component.scss'],\n host: {\n class: 'ngx-mat-colorpicker-content',\n '[class.ngx-mat-colorpicker-content-touch]': 'picker?.touchUi',\n '(animationend)': '_onAnimationEnd($event)',\n },\n exportAs: 'ngxMatColorPickerContent',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgxMatColorPaletteComponent],\n})\nexport class NgxMatColorPickerContentComponent implements OnInit {\n /** Reference to the internal calendar component. */\n _palette = viewChild(NgxMatColorPaletteComponent);\n\n picker: NgxMatColorPickerComponent | null = null;\n\n @Input() color: ThemePalette;\n\n _isLeaving = false;\n _panelEnterClass: 'enter-dropdown' | 'enter-dialog' | null = null;\n\n @Output() readonly _animationDone = new Subject<void>();\n\n private _cdr = inject(ChangeDetectorRef);\n\n @HostBinding('class.panel-enter-dropdown')\n get isEnterDropdown() {\n return !this._isLeaving && this._panelEnterClass === 'enter-dropdown';\n }\n\n @HostBinding('class.panel-enter-dialog')\n get isEnterDialog() {\n return !this._isLeaving && this._panelEnterClass === 'enter-dialog';\n }\n\n @HostBinding('class.panel-leave')\n get isLeaving() {\n return this._isLeaving;\n }\n\n ngOnInit(): void {\n this._panelEnterClass = this.picker?.touchUi ? 'enter-dialog' : 'enter-dropdown';\n this._cdr.markForCheck(); // ensure initial class is applied\n }\n\n _startExitAnimation() {\n this._isLeaving = true;\n this._cdr.markForCheck(); // trigger class update\n }\n\n _onAnimationEnd(event: AnimationEvent) {\n if (event.animationName === 'panelLeave') {\n this._animationDone.next();\n }\n }\n}\n\n@Component({\n selector: 'ngx-mat-color-picker',\n template: '',\n exportAs: 'ngxMatColorPicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [ColorAdapter, NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY_FACTORY_PROVIDER],\n})\nexport class NgxMatColorPickerComponent implements OnDestroy {\n @Input() id = `ngx-mat-color-picker-${Math.floor(Math.random() * 1000000)}`;\n\n /** Emits when the datepicker has been opened. */\n @Output('opened') openedStream: EventEmitter<void> = new EventEmitter<void>();\n\n /** Emits when the datepicker has been closed. */\n @Output('closed') closedStream: EventEmitter<void> = new EventEmitter<void>();\n\n @Input() get disabled() {\n return this._disabled === undefined && this._pickerInput\n ? this._pickerInput.disabled\n : !!this._disabled;\n }\n set disabled(value: boolean) {\n const newValue = coerceBooleanProperty(value);\n\n if (newValue !== this._disabled) {\n this._disabled = newValue;\n this._disabledChange.next(newValue);\n }\n }\n private _disabled = false;\n\n @Input()\n get touchUi(): boolean {\n return this._touchUi;\n }\n set touchUi(value: boolean) {\n this._touchUi = coerceBooleanProperty(value);\n }\n private _touchUi = false;\n\n /** Whether the calendar is open. */\n @Input()\n get opened(): boolean {\n return this._opened;\n }\n set opened(value: boolean) {\n if (value)\n this.open();\n else\n this.close();\n }\n private _opened = false;\n\n /** Default Color palette to use on the datepicker's calendar. */\n @Input()\n get defaultColor(): ThemePalette {\n return this._defaultColor;\n }\n set defaultColor(value: ThemePalette) {\n this._defaultColor = value;\n }\n _defaultColor: ThemePalette = 'primary';\n\n /** Color palette to use on the datepicker's calendar. */\n @Input()\n get color(): ThemePalette {\n return this._color || (this._pickerInput ? this._pickerInput.getThemePalette() : undefined);\n }\n set color(value: ThemePalette) {\n this._color = value;\n }\n _color: ThemePalette;\n\n @HostBinding('class.mat-primary') get isPrimary() {\n return this.color === 'primary';\n }\n @HostBinding('class.mat-accent') get isAccent() {\n return this.color === 'accent';\n }\n @HostBinding('class.mat-warn') get isWarn() {\n return this.color === 'warn';\n }\n\n /** The currently selected date. */\n get _selected(): Color | null {\n return this._validSelected;\n }\n set _selected(value: Color) {\n this._validSelected = value;\n }\n private _validSelected: Color | null = null;\n\n _pickerInput: NgxMatColorPickerInput | null = null;\n /** A reference to the overlay when the picker is opened as a popup. */\n _popupRef: OverlayRef | null = null;\n\n /** A reference to the dialog when the picker is opened as a dialog. */\n private _dialogRef: MatDialogRef<NgxMatColorPickerContentComponent> | null = null;\n /** Reference to the component instantiated in popup mode. */\n private _popupComponentRef: ComponentRef<NgxMatColorPickerContentComponent> | undefined | null = null;\n /** A portal containing the content for this picker. */\n private _portal: ComponentPortal<NgxMatColorPickerContentComponent> | null = null;\n\n /** Emits when the datepicker is disabled. */\n readonly _disabledChange = new EventEmitter<boolean>();\n\n /** The element that was focused before the datepicker was opened. */\n private _focusedElementBeforeOpen: HTMLElement | null = null;\n\n /** Subscription to value changes in the associated input element. */\n private _inputSubscription = Subscription.EMPTY;\n\n /** Emits new selected date when selected date changes. */\n readonly _selectedChanged = new Subject<Color>();\n\n /** Whether an animation is currently in progress. */\n private _isAnimating = false;\n\n private _dialog = inject(MatDialog);\n private _overlay = inject(Overlay);\n private _zone = inject(NgZone);\n private _adapter = inject(ColorAdapter);\n private _dir = inject(Directionality, { optional: true });\n private _scrollStrategy = inject(NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY);\n private _document = inject(DOCUMENT, { optional: true });\n private _viewContainerRef = inject(ViewContainerRef);\n\n ngOnDestroy() {\n this.close();\n this._inputSubscription.unsubscribe();\n this._disabledChange.complete();\n\n if (this._popupRef) {\n this._popupRef.dispose();\n this._popupComponentRef = null;\n }\n }\n\n /** Selects the given date */\n select(nextVal: Color): void {\n const oldValue = this._selected;\n this._selected = nextVal;\n if (!this._adapter.sameColor(oldValue!, this._selected)) {\n this._selectedChanged.next(nextVal);\n }\n }\n\n /**\n * Register an input with this datepicker.\n * @param input The datepicker input to register with this datepicker.\n */\n registerInput(input: NgxMatColorPickerInput): void {\n if (this._pickerInput) {\n throw Error('A ColorPicker can only be associated with a single input.');\n }\n this._pickerInput = input;\n this._inputSubscription = this._pickerInput._valueChange.subscribe(\n (value: Color) => (this._selected = value),\n );\n }\n\n public open(): void {\n if (this._opened || this.disabled || this._isAnimating) {\n return;\n }\n if (!this._pickerInput) {\n throw Error('Attempted to open an ColorPicker with no associated input.');\n }\n\n if (this._document) {\n this._focusedElementBeforeOpen = this._document.activeElement as HTMLElement | null;\n }\n\n if (this.touchUi)\n this._openAsDialog();\n else\n this._openAsPopup();\n\n this._opened = true;\n this.openedStream.emit();\n }\n\n /** Open the calendar as a dialog. */\n private _openAsDialog(): void {\n if (this._dialogRef) {\n this._dialogRef.close();\n }\n\n this._dialogRef = this._dialog.open<NgxMatColorPickerContentComponent>(\n NgxMatColorPickerContentComponent,\n {\n direction: this._dir ? this._dir.value : 'ltr',\n viewContainerRef: this._viewContainerRef,\n panelClass: 'ngx-mat-colorpicker-dialog',\n },\n );\n\n this._dialogRef.afterClosed().subscribe(() => this._handleDialogClosed());\n this._dialogRef.componentInstance.picker = this;\n this._setColor();\n }\n\n private _handleDialogClosed(): void {\n this._opened = false;\n this._isAnimating = false;\n this.closedStream.emit();\n if (this._focusedElementBeforeOpen) {\n this._focusedElementBeforeOpen.focus();\n this._focusedElementBeforeOpen = null;\n }\n this._dialogRef = null;\n }\n\n /** Open the calendar as a popup. */\n private _openAsPopup(): void {\n if (!this._portal) {\n this._portal = new ComponentPortal<NgxMatColorPickerContentComponent>(\n NgxMatColorPickerContentComponent,\n this._viewContainerRef,\n );\n }\n\n if (!this._popupRef) {\n this._createPopup();\n }\n\n if (!this._popupRef?.hasAttached()) {\n this._popupComponentRef = this._popupRef?.attach(this._portal);\n this._popupComponentRef!.instance.picker = this;\n this._setColor();\n\n // Update the position once the calendar has rendered.\n this._zone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this._popupRef?.updatePosition();\n });\n }\n }\n\n /** Create the popup. */\n private _createPopup(): void {\n const overlayConfig = new OverlayConfig({\n positionStrategy: this._createPopupPositionStrategy(),\n hasBackdrop: true,\n backdropClass: 'mat-overlay-transparent-backdrop',\n direction: this._dir ?? \"ltr\",\n scrollStrategy: this._scrollStrategy(),\n panelClass: 'mat-colorpicker-popup',\n });\n\n this._popupRef = this._overlay.create(overlayConfig);\n this._popupRef.overlayElement.setAttribute('role', 'dialog');\n\n merge(\n this._popupRef.backdropClick(),\n this._popupRef.detachments(),\n this._popupRef.keydownEvents().pipe(\n filter((event) => {\n // Closing on alt + up is only valid when there's an input associated with the datepicker.\n return (\n event.keyCode === ESCAPE ||\n (this._pickerInput! && event.altKey && event.keyCode === UP_ARROW)\n );\n }),\n ),\n ).subscribe((event) => {\n if (event) {\n event.preventDefault();\n }\n\n this.close();\n });\n }\n\n close(): void {\n if (!this._opened || this._isAnimating) {\n return;\n }\n\n if (this.touchUi) {\n // Dialog mode – close the dialog, state reset happens in afterClosed\n if (this._dialogRef) {\n this._dialogRef.close();\n }\n } else {\n // Popup mode – animate out then clean up\n let contentInstance: NgxMatColorPickerContentComponent | null = null;\n if (this._popupComponentRef) {\n contentInstance = this._popupComponentRef.instance;\n }\n\n const canRestoreFocus =\n this._focusedElementBeforeOpen &&\n typeof this._focusedElementBeforeOpen.focus === 'function';\n\n const completeClose = () => {\n if (this._popupRef && this._popupRef.hasAttached()) {\n this._popupRef.detach();\n }\n if (this._portal && this._portal.isAttached) {\n this._portal.detach();\n }\n this._opened = false;\n this._isAnimating = false;\n this.closedStream.emit();\n if (canRestoreFocus) {\n this._focusedElementBeforeOpen!.focus();\n }\n this._focusedElementBeforeOpen = null;\n };\n\n if (contentInstance) {\n this._isAnimating = true;\n contentInstance._startExitAnimation();\n\n contentInstance._animationDone.pipe(take(1)).subscribe(() => {\n // Restore focus before the timeout to ensure it happens even if the\n // overlay is removed synchronously.\n if (canRestoreFocus) {\n this._focusedElementBeforeOpen!.focus();\n }\n setTimeout(completeClose);\n });\n } else {\n // No content to animate – close immediately\n if (canRestoreFocus) {\n this._focusedElementBeforeOpen!.focus();\n setTimeout(completeClose);\n } else {\n completeClose();\n }\n }\n }\n }\n\n /** Passes the current theme color along to the calendar overlay. */\n private _setColor(): void {\n const color = this.color;\n if (this._popupComponentRef) {\n this._popupComponentRef.instance.color = color;\n }\n if (this._dialogRef) {\n this._dialogRef.componentInstance.color = color;\n }\n }\n\n /** Create the popup PositionStrategy. */\n private _createPopupPositionStrategy(): PositionStrategy {\n return this._overlay\n .position()\n .flexibleConnectedTo(this._pickerInput!.getConnectedOverlayOrigin())\n .withTransformOriginOn('.ngx-mat-colorpicker-content')\n .withFlexibleDimensions(false)\n .withViewportMargin(8)\n .withLockedPosition()\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n ]);\n }\n}\n","<ngx-mat-color-palette\n (colorChanged)=\"picker?.select($event)\"\n [color]=\"picker!._selected\"\n [theme]=\"color\"></ngx-mat-color-palette>\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { DOWN_ARROW } from '@angular/cdk/keycodes';\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n OnDestroy,\n output,\n Provider,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatFormField } from '@angular/material/form-field';\nimport { MAT_INPUT_VALUE_ACCESSOR } from '@angular/material/input';\nimport { Subscription } from 'rxjs';\nimport { createMissingDateImplError } from '../../helpers';\nimport { Color } from '../../models';\nimport { ColorAdapter, MAT_COLOR_FORMATS } from '../../services';\nimport { NgxMatColorPickerComponent } from './color-picker.component';\n\nexport class NgxMatColorPickerInputEvent {\n /** The new value for the target colorpicker input. */\n value: Color | null;\n\n constructor(\n /** Reference to the colorpicker input component that emitted the event. */\n public target: NgxMatColorPickerInput,\n /** Reference to the native input element associated with the colorpicker input. */\n public targetElement: HTMLElement,\n ) {\n this.value = this.target.value;\n }\n}\n\nexport const MAT_COLORPICKER_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgxMatColorPickerInput),\n multi: true,\n};\n\nexport const MAT_COLORPICKER_VALIDATORS: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NgxMatColorPickerInput),\n multi: true,\n};\n\n@Directive({\n selector: 'input[ngxMatColorPicker]',\n providers: [\n { provide: MAT_INPUT_VALUE_ACCESSOR, useExisting: NgxMatColorPickerInput },\n ColorAdapter,\n MAT_COLORPICKER_VALIDATORS,\n MAT_COLORPICKER_VALUE_ACCESSOR,\n ],\n host: {\n '[attr.aria-haspopup]': '_picker ? \"dialog\" : null',\n '[attr.aria-owns]': '(_picker?.opened && _picker?.id) || null',\n '[disabled]': 'disabled',\n '(input)': '_onInput($event)',\n '(change)': '_onChange()',\n '(blur)': '_onBlur()',\n '(keydown)': '_onKeydown($event)',\n },\n exportAs: 'ngxMatColorPickerInput',\n})\nexport class NgxMatColorPickerInput implements ControlValueAccessor, OnDestroy, Validator {\n @Input()\n set ngxMatColorPicker(value: NgxMatColorPickerComponent) {\n if (!value) {\n return;\n }\n\n this._picker = value;\n this._picker.registerInput(this);\n this._pickerSubscription.unsubscribe();\n\n this._pickerSubscription = this._picker._selectedChanged.subscribe((selected: Color) => {\n this.value = selected;\n this._cvaOnChange(selected);\n this._onTouched();\n this.colorInput.emit(new NgxMatColorPickerInputEvent(this, this._elementRef.nativeElement));\n this.colorChange.emit(new NgxMatColorPickerInputEvent(this, this._elementRef.nativeElement));\n });\n }\n _picker: NgxMatColorPickerComponent | null = null;\n\n /** Whether the colorpicker-input is disabled. */\n @Input()\n get disabled(): boolean {\n return !!this._disabled;\n }\n set disabled(value: boolean) {\n const newValue = coerceBooleanProperty(value);\n const element = this._elementRef.nativeElement;\n\n if (this._disabled !== newValue) {\n this._disabled = newValue;\n this._disabledChange.emit(newValue);\n }\n\n // We need to null check the `blur` method, because it's undefined during SSR.\n if (newValue && element.blur) {\n // Normally, native input elements automatically blur if they turn disabled. This behavior\n // is problematic, because it would mean that it triggers another change detection cycle,\n // which then causes a changed after checked error if the input element was focused before.\n element.blur();\n }\n }\n private _disabled = false;\n\n /** The value of the input. */\n @Input()\n get value(): Color | null {\n return this._value;\n }\n set value(value: Color | null) {\n const oldValue = this.value;\n this._value = value;\n this._formatValue(value);\n\n if (!this._adapter.sameColor(oldValue!, value!)) {\n this._valueChange.emit(value);\n }\n }\n private _value: Color | null = null;\n\n /** Emits when a `change` event is fired on this `<input>`. */\n readonly colorChange = output<NgxMatColorPickerInputEvent>();\n\n /** Emits when an `input` event is fired on this `<input>`. */\n readonly colorInput = output<NgxMatColorPickerInputEvent>();\n\n /** Emits when the disabled state has changed */\n _disabledChange = new EventEmitter<boolean>();\n\n /** Emits when the value changes (either due to user input or programmatic change). */\n _valueChange = new EventEmitter<Color | null>();\n\n _onTouched = () => {\n // Intentionally empty.\n };\n\n private _cvaOnChange: (value: any) => void = () => {\n // Intentionally empty.\n };\n\n private _validatorOnChange = () => {\n // Intentionally empty.\n };\n\n private _pickerSubscription = Subscription.EMPTY;\n\n /** The combined form control validator for this input. */\n private _validator: ValidatorFn | null = Validators.compose([]);\n\n /** Whether the last value set on the input was valid. */\n private _lastValueValid = false;\n\n private _elementRef = inject(ElementRef<HTMLInputElement>);\n private _formField = inject(MatFormField, { optional: true });\n private _colorFormats = inject(MAT_COLOR_FORMATS, { optional: true });\n private _adapter = inject(ColorAdapter);\n\n constructor() {\n if (!this._colorFormats) {\n throw createMissingDateImplError('MAT_COLOR_FORMATS');\n }\n }\n\n /** Returns the palette used by the input's form field, if any. */\n public getThemePalette(): ThemePalette {\n return this._formField ? this._formField.color : undefined;\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this._validatorOnChange = fn;\n }\n\n validate(c: AbstractControl): ValidationErrors | null {\n return this._validator ? this._validator(c) : null;\n }\n\n /**\n * @deprecated\n * @breaking-change 8.0.0 Use `getConnectedOverlayOrigin` instead\n */\n getPopupConnectionElementRef(): ElementRef {\n return this.getConnectedOverlayOrigin();\n }\n\n /**\n * Gets the element that the colorpicker popup should be connected to.\n * @return The element to connect the popup to.\n */\n getConnectedOverlayOrigin(): ElementRef {\n return this._formField ? this._formField.getConnectedOverlayOrigin() : this._elementRef;\n }\n\n ngOnDestroy(): void {\n this._pickerSubscription.unsubscribe();\n this._valueChange.complete();\n this._disabledChange.complete();\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(value: Color): void {\n this.value = value;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void): void {\n this._cvaOnChange = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n _onChange() {\n this.colorChange.emit(new NgxMatColorPickerInputEvent(this, this._elementRef.nativeElement));\n }\n\n _onKeydown(event: KeyboardEvent) {\n const isAltDownArrow = event.altKey && event.keyCode === DOWN_ARROW;\n\n if (this._picker && isAltDownArrow && !this._elementRef.nativeElement.readOnly) {\n this._picker.open();\n event.preventDefault();\n }\n }\n\n /** Handles blur events on the input. */\n _onBlur() {\n // Reformat the input only if we have a valid value.\n if (this.value) {\n this._formatValue(this.value);\n }\n\n this._onTouched();\n }\n\n /** Formats a value and sets it on the input element. */\n private _formatValue(value: Color | null) {\n this._elementRef.nativeElement.value = this._colorFormats && value\n ? this._adapter.format(value, this._colorFormats.display.colorInput)\n : '';\n }\n\n _onInput(event?: Event) {\n const lastValueWasValid = this._lastValueValid;\n const target = event?.target as HTMLInputElement;\n const nextValue = this._adapter.parse(target.value);\n\n if (!this._adapter.sameColor(nextValue!, this._value!)) {\n this._value = nextValue;\n this._cvaOnChange(nextValue);\n this._valueChange.emit(nextValue);\n this.colorInput.emit(new NgxMatColorPickerInputEvent(this, this._elementRef.nativeElement));\n } else if (lastValueWasValid !== this._lastValueValid) {\n this._validatorOnChange();\n }\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n Component,\n Directive,\n EventEmitter,\n Input,\n OnDestroy,\n ViewEncapsulation,\n effect,\n inject,\n input,\n untracked,\n viewChild,\n} from '@angular/core';\nimport { MatButton, MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Subscription, merge, of } from 'rxjs';\nimport { NgxMatColorPickerComponent } from '../color-picker/color-picker.component';\n\n@Directive({\n selector: '[ngxMatColorpickerToggleIcon]',\n})\nexport class NgxMatColorpickerToggleIcon {}\n\n@Component({\n selector: 'ngx-mat-color-toggle',\n templateUrl: './color-toggle.component.html',\n styleUrls: ['./color-toggle.component.scss'],\n host: {\n class: 'ngx-mat-color-toggle',\n // Always set the tabindex to -1 so that it doesn't overlap with any custom tabindex the\n // consumer may have provided, while still being able to receive focus.\n '[attr.tabindex]': '-1',\n '[class.ngx-mat-color-toggle-active]': 'picker()?.opened',\n '[class.mat-accent]': 'picker()?.color === \"accent\"',\n '[class.mat-warn]': 'picker()?.color === \"warn\"',\n '(focus)': '_button()?.focus()',\n },\n exportAs: 'ngxMatColorPickerToggle',\n encapsulation: ViewEncapsulation.None,\n imports: [MatButtonModule, MatIconModule],\n})\nexport class NgxMatColorToggleComponent implements AfterContentInit, OnDestroy {\n private _stateChanges = Subscription.EMPTY;\n\n picker = input<NgxMatColorPickerComponent>(undefined, { alias: 'for' });\n tabIndex = input<number>();\n\n @Input() get disabled(): boolean | undefined { \n if (this._disabled == null && this.picker()) {\n return this.picker()?.disabled;\n }\n return undefined;\n }\n set disabled(value: boolean) {\n this._disabled = value;\n }\n private _disabled = false;\n\n /** Whether ripples on the toggle should be disabled. */\n disableRipple = input<boolean>();\n\n _button = viewChild<MatButton>('button');\n\n private _cd = inject(ChangeDetectorRef);\n\n constructor() {\n effect(() => {\n this.picker();\n\n untracked(() => this._watchStateChanges());\n });\n }\n\n ngOnDestroy() {\n this._stateChanges.unsubscribe();\n }\n\n ngAfterContentInit() {\n this._watchStateChanges();\n }\n\n public open(event: Event): void {\n if (this.picker() && !this.disabled) {\n this.picker()?.open();\n event.stopPropagation();\n }\n }\n\n private _watchStateChanges() {\n const disabled$ = this.picker()?._disabledChange ?? new EventEmitter();\n const inputDisabled$ = this.picker()?._pickerInput?._disabledChange ?? new EventEmitter();\n\n const pickerToggled$ = this.picker()\n ? merge(this.picker()!.openedStream, this.picker()!.closedStream)\n : of();\n this._stateChanges.unsubscribe();\n\n this._stateChanges = merge(disabled$, inputDisabled$, pickerToggled$).subscribe(() =>\n this._cd.markForCheck(),\n );\n }\n}\n","<button\n #button\n mat-icon-button\n type=\"button\"\n [attr.aria-haspopup]=\"picker() ? 'dialog' : null\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex()\"\n [disabled]=\"disabled\"\n (click)=\"open($event)\"\n [disableRipple]=\"disableRipple()\"\n>\n <ng-content select=\"[ngxMatColorpickerToggleIcon]\">\n <mat-icon [style.color]=\"picker()?._selected?.rgba\">palette</mat-icon>\n </ng-content>\n</button>\n","import { Directive, HostListener } from '@angular/core';\nimport { NUMERIC_REGEX } from '../helpers';\n\n@Directive({\n selector: '[ngxMatNumericColorInput]',\n})\nexport class NumericColorInputDirective {\n @HostListener('input', ['$event'])\n onInput($event: any) {\n this._formatInput($event.target);\n }\n\n /**\n * Format input\n * @param input\n */\n private _formatInput(input: any) {\n let val = Number(input.value.replace(NUMERIC_REGEX, ''));\n val = isNaN(val) ? 0 : val;\n input.value = val;\n }\n}\n","/*\n * Public API Surface of color-picker\n */\nexport * from './lib/components';\nexport * from './lib/directives';\nexport * from './lib/helpers';\nexport * from './lib/models';\nexport * from './lib/services';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-mce-color-picker.mjs","sources":["../../../projects/color-picker/src/lib/helpers/color-helpers.ts","../../../projects/color-picker/src/lib/models/color.model.ts","../../../projects/color-picker/src/lib/components/color-canvas/base-color-canvas.ts","../../../projects/color-picker/src/lib/components/color-canvas/color-slider/color-slider.component.ts","../../../projects/color-picker/src/lib/components/color-canvas/color-slider/color-slider.component.html","../../../projects/color-picker/src/lib/components/color-canvas/color-canvas.component.ts","../../../projects/color-picker/src/lib/components/color-canvas/color-canvas.component.html","../../../projects/color-picker/src/lib/components/color-collection/color-collection.component.ts","../../../projects/color-picker/src/lib/components/color-collection/color-collection.component.html","../../../projects/color-picker/src/lib/components/color-palette/color-palette.component.ts","../../../projects/color-picker/src/lib/components/color-palette/color-palette.component.html","../../../projects/color-picker/src/lib/services/color-adapter.ts","../../../projects/color-picker/src/lib/services/color-formats.ts","../../../projects/color-picker/src/lib/components/color-picker/color-picker.component.ts","../../../projects/color-picker/src/lib/components/color-picker/color-picker-content.component.html","../../../projects/color-picker/src/lib/components/color-picker/color-input.component.ts","../../../projects/color-picker/src/lib/components/color-toggle/color-toggle.component.ts","../../../projects/color-picker/src/lib/components/color-toggle/color-toggle.component.html","../../../projects/color-picker/src/lib/directives/numeric-color-input.directive.ts","../../../projects/color-picker/src/public-api.ts","../../../projects/color-picker/src/ngx-mce-color-picker.ts"],"sourcesContent":["const trimLeft = /^\\s+/;\nconst trimRight = /\\s+$/;\nconst mathRound = Math.round;\n\nexport const NUMERIC_REGEX = /[^0-9]/g;\nexport const MAX_RGB = 255;\nexport const MIN_RGB = 0;\n\n/** List basic colors */\nexport const BASIC_COLORS = [\n '#ffffff',\n '#ffff00',\n '#ff00ff',\n '#ff0000',\n '#c0c0c0',\n '#808080',\n '#808000',\n '#800080',\n '#800000',\n '#00ffff',\n '#00ff00',\n '#008080',\n '#008000',\n '#0000ff',\n '#000080',\n '#000000',\n];\n\n/**\n * Get color at position\n * @param ctx\n * @param x\n * @param y\n */\nexport function getColorAtPosition(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n): { r: number; g: number; b: number } {\n const imageData: Uint8ClampedArray = ctx.getImageData(x, y, 1, 1).data;\n return { r: imageData[0], g: imageData[1], b: imageData[2] };\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nexport function rgbaToHex(\n r: number,\n g: number,\n b: number,\n a: number,\n allow4Char?: boolean,\n): string {\n const hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a.toString(16))),\n ];\n\n // Return a 4 character hex if possible\n if (\n allow4Char &&\n hex[0].charAt(0) == hex[0].charAt(1) &&\n hex[1].charAt(0) == hex[1].charAt(1) &&\n hex[2].charAt(0) == hex[2].charAt(1) &&\n hex[3].charAt(0) == hex[3].charAt(1)\n ) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join('');\n}\n\n// Force a hex value to have 2 characters\nexport function pad2(c: string): string {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Converts a decimal to a hex value\nexport function convertDecimalToHex(d: string) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h: string) {\n return parseIntFromHex(h) / 255;\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val: string) {\n return parseInt(val, 16);\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nexport function rgbToHex(r: number, g: number, b: number, allow3Char?: boolean) {\n const hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n ];\n\n // Return a 3 character hex if possible\n if (\n allow3Char &&\n hex[0].charAt(0) == hex[0].charAt(1) &&\n hex[1].charAt(0) == hex[1].charAt(1) &&\n hex[2].charAt(0) == hex[2].charAt(1)\n ) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join('');\n}\n\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening parent\nconst CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\nconst CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\nconst CSS_UNIT = '(?:' + CSS_NUMBER + ')|(?:' + CSS_INTEGER + ')';\nconst PERMISSIVE_MATCH3 =\n '[\\\\s|\\\\(]+(' + CSS_UNIT + ')[,|\\\\s]+(' + CSS_UNIT + ')[,|\\\\s]+(' + CSS_UNIT + ')\\\\s*\\\\)?';\nconst PERMISSIVE_MATCH4 =\n '[\\\\s|\\\\(]+(' +\n CSS_UNIT +\n ')[,|\\\\s]+(' +\n CSS_UNIT +\n ')[,|\\\\s]+(' +\n CSS_UNIT +\n ')[,|\\\\s]+(' +\n CSS_UNIT +\n ')\\\\s*\\\\)?';\n\nexport const matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nexport function stringInputToObject(color: string): {\n r: number;\n g: number;\n b: number;\n a: number;\n} | null {\n color = color.replace(trimLeft, '').replace(trimRight, '').toLowerCase();\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n let match;\n if ((match = matchers.rgb.exec(color))) {\n return {\n r: parseFloat(match[1]),\n g: parseFloat(match[2]),\n b: parseFloat(match[3]),\n a: 1\n };\n }\n if ((match = matchers.rgba.exec(color))) {\n return {\n r: parseFloat(match[1]),\n g: parseFloat(match[2]),\n b: parseFloat(match[3]),\n a: parseFloat(match[4])\n };\n }\n\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: 1,\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: 1,\n };\n }\n\n return null;\n}\n\nexport function createMissingDateImplError(provider: string) {\n return Error(\n `NgxMatColorPicker: No provider found for ${provider}. You must define MAT_COLOR_FORMATS in your module`,\n );\n}\n","import { MAX_RGB, rgbaToHex, rgbToHex } from '../helpers';\nimport { ColorInputFormat } from './color-input-format';\n\nexport class Color {\n public r: number;\n public g: number;\n public b: number;\n public a: number;\n public roundA: number;\n\n public hex: string;\n public rgba: string;\n\n constructor(_r: number, _g: number, _b: number, _a?: number) {\n this.r = _r > MAX_RGB ? MAX_RGB : _r;\n this.g = _g > MAX_RGB ? MAX_RGB : _g;\n this.b = _b > MAX_RGB ? MAX_RGB : _b;\n if (_a != null) {\n this.a = _a > 1 ? 1 : _a;\n } else {\n this.a = 1;\n }\n this.roundA = Math.round(this.a);\n this.hex = rgbToHex(this.r, this.g, this.b);\n this.rgba = this.toRgba();\n }\n\n public toHex(allow3Char?: boolean): string {\n return rgbToHex(this.r, this.g, this.b, allow3Char);\n }\n\n public toRgba(): string {\n return `rgba(${this.r},${this.g},${this.b},${this.a})`;\n }\n\n public toHexString(allow3Char?: boolean): string {\n return '#' + this.toHex(allow3Char);\n }\n\n public toRgbString(): string {\n return this.a === 1\n ? 'rgb(' + Math.round(this.r) + ', ' + Math.round(this.g) + ', ' + Math.round(this.b) + ')'\n : 'rgba(' +\n Math.round(this.r) +\n ', ' +\n Math.round(this.g) +\n ', ' +\n Math.round(this.b) +\n ', ' +\n this.roundA +\n ')';\n }\n\n public toHex8(allow4Char?: boolean): string {\n return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n }\n\n public toHex8String(allow4Char?: boolean): string {\n return '#' + this.toHex8(allow4Char);\n }\n\n public toString(format: ColorInputFormat): string {\n const formatSet = !!format;\n\n let formattedString;\n const hasAlpha = this.a < 1 && this.a >= 0;\n const needsAlphaFormat =\n !formatSet &&\n hasAlpha &&\n (format === 'hex' ||\n format === 'hex6' ||\n format === 'hex3' ||\n format === 'hex4' ||\n format === 'hex8');\n\n if (needsAlphaFormat) {\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex4') {\n formattedString = this.toHex8String(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n\n return formattedString || this.toHexString();\n }\n}\n","import {\n AfterViewInit,\n Directive,\n Input,\n input,\n NgZone,\n OnDestroy,\n output,\n signal,\n} from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { Subject } from 'rxjs';\nimport { Color } from '../../models';\n\n@Directive()\nexport abstract class NgxMatBaseColorCanvas implements OnDestroy, AfterViewInit {\n readonly colorChanged = output<Color>();\n readonly theme = input<ThemePalette>();\n readonly color = signal<Color | undefined | null>(null);\n\n @Input({\n alias: 'color',\n })\n set setColor(color: Color | undefined | null) {\n this.color.set(color);\n }\n\n canvas: HTMLCanvasElement | null = null;\n\n elementId: string;\n\n ctx: CanvasRenderingContext2D | null = null;\n width = 0;\n height = 0;\n\n x = 0;\n y = 0;\n\n drag = false;\n\n protected _destroyed: Subject<void> = new Subject<void>();\n\n protected zone: NgZone | null = null;\n\n constructor(\n elementId: string,\n ) {\n this.elementId = elementId;\n }\n\n ngOnDestroy(): void {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n ngAfterViewInit(): void {\n this.canvas = document.getElementById(this.elementId) as HTMLCanvasElement;\n this.ctx = this.canvas.getContext('2d');\n this.width = this.canvas.width;\n this.height = this.canvas.height;\n this.draw();\n }\n\n protected draw() {\n this.ctx?.clearRect(0, 0, this.width, this.height);\n this.ctx?.rect(0, 0, this.width, this.height);\n this.fillGradient();\n if (this.y != 0) {\n this.redrawIndicator(this.x, this.y);\n }\n }\n\n public onMousedown(e: MouseEvent) {\n this.drag = true;\n this.changeColor(e);\n\n this.zone?.runOutsideAngular(() => {\n this.canvas?.addEventListener('mousemove', this.onMousemove.bind(this));\n });\n }\n\n public onMousemove(e: MouseEvent) {\n if (this.drag) {\n this.zone?.run(() => {\n this.changeColor(e);\n });\n }\n }\n\n public onMouseup(_: MouseEvent) {\n this.drag = false;\n this.canvas?.removeEventListener('mousemove', this.onMousemove);\n }\n\n public emitChange(color: Color) {\n this.colorChanged.emit(color);\n }\n\n abstract changeColor(e: MouseEvent): void;\n abstract fillGradient(): void;\n abstract redrawIndicator(x: number, y: number): void;\n}\n","import { Component, inject, NgZone, ChangeDetectionStrategy } from '@angular/core';\nimport { getColorAtPosition } from '../../../helpers';\nimport { Color } from '../../../models';\nimport { NgxMatBaseColorCanvas } from '../base-color-canvas';\n\n@Component({\n selector: 'ngx-mat-color-slider',\n templateUrl: './color-slider.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n styleUrls: ['./color-slider.component.scss'],\n})\nexport class NgxMatColorSliderComponent extends NgxMatBaseColorCanvas {\n protected override zone = inject(NgZone);\n\n constructor() {\n super('color-strip');\n }\n\n override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n }\n\n public fillGradient() {\n const grd = this.ctx?.createLinearGradient(0, 0, 0, this.height);\n grd?.addColorStop(0, 'rgba(255, 0, 0, 1)');\n grd?.addColorStop(0.17, 'rgba(255, 255, 0, 1)');\n grd?.addColorStop(0.34, 'rgba(0, 255, 0, 1)');\n grd?.addColorStop(0.51, 'rgba(0, 255, 255, 1)');\n grd?.addColorStop(0.68, 'rgba(0, 0, 255, 1)');\n grd?.addColorStop(0.85, 'rgba(255, 0, 255, 1)');\n grd?.addColorStop(1, 'rgba(255, 0, 0, 1)');\n\n this.ctx!.fillStyle = grd!;\n this.ctx?.fill();\n }\n\n public redrawIndicator(x: number, y: number) {\n this.ctx?.beginPath();\n this.ctx!.strokeStyle = 'white';\n this.ctx!.lineWidth = 2;\n this.ctx?.arc(7.5, y, 7.5, 0, 2 * Math.PI, false);\n this.ctx?.stroke();\n this.ctx?.closePath();\n }\n\n public changeColor(e: MouseEvent) {\n this.x = e.offsetX;\n this.y = e.offsetY;\n this.draw();\n const { r, g, b } = getColorAtPosition(this.ctx!, e.offsetX, e.offsetY);\n this.emitChange(new Color(r, g, b));\n }\n}\n","<canvas\n id=\"color-strip\"\n class=\"zone-strip\"\n (mousedown)=\"onMousedown($event)\"\n (mouseup)=\"onMouseup($event)\"\n width=\"15\"\n height=\"234\"\n></canvas>\n","import {\n AfterViewInit,\n Component,\n inject,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n ViewEncapsulation,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport {\n AbstractControl,\n FormControl,\n FormGroup,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { merge } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { getColorAtPosition, matchers, stringInputToObject } from '../../helpers';\nimport { Color } from '../../models';\nimport { NgxMatBaseColorCanvas } from './base-color-canvas';\nimport { NgxMatColorSliderComponent } from './color-slider/color-slider.component';\n\nconst RADIUS_NOB = 5;\n\n@Component({\n selector: 'ngx-mat-color-canvas',\n templateUrl: './color-canvas.component.html',\n styleUrls: ['./color-canvas.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ngx-mat-color-canvas',\n },\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [MatFormFieldModule, MatInputModule, NgxMatColorSliderComponent, ReactiveFormsModule],\n})\nexport class NgxMatColorCanvasComponent\n extends NgxMatBaseColorCanvas\n implements OnInit, AfterViewInit, OnChanges, OnDestroy\n{\n private _baseColor: Color | null = null;\n\n get rCtrl(): AbstractControl | null {\n return this.formGroup.get('r');\n }\n\n get gCtrl(): AbstractControl | null {\n return this.formGroup.get('g');\n }\n\n get bCtrl(): AbstractControl | null {\n return this.formGroup.get('b');\n }\n\n get aCtrl(): AbstractControl | null {\n return this.formGroup.get('a');\n }\n\n get hexCtrl(): AbstractControl | null {\n return this.formGroup.get('hex');\n }\n\n _resetBaseColor = true;\n\n formGroup: FormGroup;\n\n rgba = \"\";\n\n protected override zone = inject(NgZone);\n\n constructor() {\n super('color-block');\n this.formGroup = new FormGroup({\n r: new FormControl(null, [Validators.required]),\n g: new FormControl(null, [Validators.required]),\n b: new FormControl(null, [Validators.required]),\n a: new FormControl(null, [Validators.required]),\n hex: new FormControl(null, [Validators.required, Validators.pattern(matchers.hex6)]),\n });\n }\n\n ngOnInit() {\n const rgbaCtrl$ = merge(\n this.rCtrl!.valueChanges,\n this.gCtrl!.valueChanges,\n this.bCtrl!.valueChanges,\n this.aCtrl!.valueChanges,\n );\n rgbaCtrl$.pipe(takeUntil(this._destroyed), debounceTime(400)).subscribe((_) => {\n const color = new Color(\n Number(this.rCtrl!.value),\n Number(this.gCtrl!.value),\n Number(this.bCtrl!.value),\n Number(this.aCtrl!.value),\n );\n this.emitChange(color);\n });\n\n const hexCtrl$ = this.hexCtrl!.valueChanges;\n hexCtrl$\n .pipe(takeUntil(this._destroyed), debounceTime(400), distinctUntilChanged())\n .subscribe((hex) => {\n const obj = stringInputToObject(hex);\n if (obj != null) {\n const color = new Color(obj.r, obj.g, obj.b, obj.a);\n this.emitChange(color);\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const key = \"setColor\";\n \n if (changes[key] && changes[key].currentValue) {\n this.updateForm(changes[key].currentValue);\n if (this._resetBaseColor) {\n this._baseColor = changes[key].currentValue;\n }\n\n this._resetBaseColor = true;\n\n if (!changes[key].firstChange) {\n this.draw();\n }\n }\n }\n\n private updateForm(val: Color): void {\n const config = { emitEvent: false };\n \n this.rCtrl?.setValue(val.r, config);\n this.gCtrl?.setValue(val.g, config);\n this.bCtrl?.setValue(val.b, config);\n this.aCtrl?.setValue(val.a, config);\n this.hexCtrl?.setValue(val.hex, config);\n }\n\n public redrawIndicator(x: number, y: number) {\n this.ctx?.beginPath();\n this.ctx!.strokeStyle = 'white';\n this.ctx?.arc(x, y, RADIUS_NOB, 0, 2 * Math.PI, false);\n this.ctx?.stroke();\n this.ctx?.closePath();\n }\n\n public fillGradient() {\n this.ctx!.fillStyle = this._baseColor ? this._baseColor.rgba : 'rgba(255,255,255,1)';\n this.ctx?.fillRect(0, 0, this.width, this.height);\n\n const grdWhite = this.ctx?.createLinearGradient(0, 0, this.width, 0);\n grdWhite?.addColorStop(0, 'rgba(255,255,255,1)');\n grdWhite?.addColorStop(1, 'rgba(255,255,255,0)');\n this.ctx!.fillStyle = grdWhite!;\n this.ctx?.fillRect(0, 0, this.width, this.height);\n\n const grdBlack = this.ctx?.createLinearGradient(0, 0, 0, this.height);\n grdBlack?.addColorStop(0, 'rgba(0,0,0,0)');\n grdBlack?.addColorStop(1, 'rgba(0,0,0,1)');\n this.ctx!.fillStyle = grdBlack!;\n this.ctx?.fillRect(0, 0, this.width, this.height);\n }\n\n public onSliderColorChanged(c: Color) {\n this._baseColor = c;\n this.color.set(c);\n this.fillGradient();\n this.emitChange(c);\n }\n\n public changeColor(e: MouseEvent): void {\n this.x = e.offsetX;\n this.y = e.offsetY;\n this._resetBaseColor = false;\n this.draw();\n const { r, g, b } = getColorAtPosition(this.ctx!, e.offsetX, e.offsetY);\n this.emitChange(new Color(r, g, b));\n }\n}\n","<form [formGroup]=\"formGroup\">\n <div class=\"color-canvas-row\">\n <div class=\"zone-canvas\">\n <canvas\n id=\"color-block\"\n class=\"zone-block\"\n (mousedown)=\"onMousedown($event)\"\n (mouseup)=\"onMouseup($event)\"\n width=\"200\"\n height=\"235\"\n ></canvas>\n <ngx-mat-color-slider (colorChanged)=\"onSliderColorChanged($event)\" />\n </div>\n\n <div class=\"zone-inputs\">\n <mat-form-field [color]=\"theme()\">\n <mat-label>R</mat-label>\n <input\n matInput\n formControlName=\"r\"\n ngxMatNumericColorInput\n autocomplete=\"off\"\n />\n </mat-form-field>\n\n <mat-form-field [color]=\"theme()\">\n <mat-label>G</mat-label>\n <input\n matInput\n formControlName=\"g\"\n ngxMatNumericColorInput\n autocomplete=\"off\"\n />\n </mat-form-field>\n\n <mat-form-field [color]=\"theme()\">\n <mat-label>B</mat-label>\n <input\n matInput\n formControlName=\"b\"\n ngxMatNumericColorInput\n autocomplete=\"off\"\n />\n </mat-form-field>\n </div>\n </div>\n\n <div class=\"color-canvas-row\">\n <button\n mat-mini-fab\n [style.background-color]=\"color()?.rgba || 'transparent'\"\n class=\"preview\"\n ></button>\n <mat-form-field [color]=\"theme()\">\n <mat-label>HEX6</mat-label>\n <mat-label matPrefix class=\"symbol\">#&nbsp;</mat-label>\n <input matInput formControlName=\"hex\" autocomplete=\"off\" />\n </mat-form-field>\n <mat-form-field class=\"input-opacity\" [color]=\"theme()\">\n <mat-label>A</mat-label>\n <input\n matInput\n formControlName=\"a\"\n type=\"number\"\n min=\"0\"\n max=\"1\"\n step=\"0.1\"\n autocomplete=\"off\"\n />\n </mat-form-field>\n </div>\n</form>\n","import { NgClass } from '@angular/common';\nimport { Component, Input, output, signal, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { BASIC_COLORS, stringInputToObject } from '../../helpers';\nimport { Color } from '../../models';\n\n@Component({\n selector: 'ngx-mat-color-collection',\n templateUrl: './color-collection.component.html',\n styleUrls: ['./color-collection.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ngx-mat-color-collection',\n },\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [MatButtonModule, NgClass],\n})\nexport class NgxMatColorCollectionComponent {\n readonly colorChanged = output<Color>();\n\n @Input()\n set color(c: Color | undefined | null) {\n if (c) {\n this.selectedColor.set(c.toHexString());\n }\n }\n\n readonly selectedColor = signal<string>('');\n\n colors1: string[] = BASIC_COLORS.slice(0, 8);\n colors2: string[] = BASIC_COLORS.slice(8, 16);\n\n select(hex: string) {\n this.selectedColor.set(hex);\n const rgba = stringInputToObject(hex);\n if (rgba != null) {\n this.colorChanged.emit(new Color(rgba.r, rgba.g, rgba.b, rgba.a));\n }\n }\n}\n","<div class=\"color-collection-row\">\n @for (c of colors1; track c) {\n <button\n mat-mini-fab\n [style.background-color]=\"c\"\n class=\"btn-color\"\n (click)=\"select(c)\"\n [ngClass]=\"{ active: selectedColor() === c }\"\n [disableRipple]=\"true\"></button>\n }\n</div>\n<div class=\"color-collection-row\">\n @for (c of colors2; track c) {\n <button\n mat-mini-fab\n [style.background-color]=\"c\"\n class=\"btn-color\"\n (click)=\"select(c)\"\n [ngClass]=\"{ active: selectedColor() === c }\"\n [disableRipple]=\"true\"></button>\n }\n</div>\n","import { Component, ViewEncapsulation, input, output, ChangeDetectionStrategy } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { Color } from '../../models';\nimport { NgxMatColorCanvasComponent } from '../color-canvas/color-canvas.component';\nimport { NgxMatColorCollectionComponent } from '../color-collection/color-collection.component';\n\n@Component({\n selector: 'ngx-mat-color-palette',\n templateUrl: 'color-palette.component.html',\n styleUrls: ['color-palette.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ngx-mat-color-palette',\n },\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [NgxMatColorCollectionComponent, NgxMatColorCanvasComponent],\n})\nexport class NgxMatColorPaletteComponent {\n readonly colorChanged = output<Color>();\n\n readonly color = input<Color | undefined | null>();\n readonly theme = input<ThemePalette>();\n\n public handleColorChanged(color: Color) {\n this.colorChanged.emit(color);\n }\n}\n","<ngx-mat-color-canvas\n (colorChanged)=\"handleColorChanged($event)\"\n [color]=\"color()\"\n [theme]=\"theme()\"\n/>\n\n<ngx-mat-color-collection\n (colorChanged)=\"handleColorChanged($event)\"\n [color]=\"color()\"\n/>\n","import { Injectable } from '@angular/core';\nimport { stringInputToObject } from '../helpers';\nimport { Color, ColorInputFormat } from '../models';\n\n@Injectable()\nexport class ColorAdapter {\n sameColor(a: Color, b: Color) {\n if (a == null && b == null) return true;\n if (a != null && b != null) return a.rgba === b.rgba;\n return false;\n }\n\n format(c: Color, format: ColorInputFormat): string {\n return c.toString(format);\n }\n\n parse(value: string): Color | null {\n const obj = stringInputToObject(value);\n if (obj) {\n return new Color(obj.r, obj.g, obj.b, obj.a);\n }\n return null;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ColorInputFormat } from '../models';\n\nexport interface MatColorFormats {\n display: {\n colorInput: ColorInputFormat\n };\n}\n\nexport const NGX_MAT_COLOR_FORMATS: MatColorFormats = {\n display: {\n colorInput: 'hex',\n },\n};\n\nexport const MAT_COLOR_FORMATS = new InjectionToken<MatColorFormats>('mat-color-formats');\n","import { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ESCAPE, UP_ARROW } from '@angular/cdk/keycodes';\nimport {\n Overlay,\n OverlayConfig,\n OverlayRef,\n PositionStrategy,\n ScrollStrategy,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n EventEmitter,\n HostBinding,\n InjectionToken,\n Input,\n NgZone,\n OnDestroy,\n Output,\n ViewContainerRef,\n ViewEncapsulation,\n viewChild,\n DOCUMENT,\n ChangeDetectorRef,\n inject,\n OnInit,\n} from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { Subject, Subscription, merge } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { Color } from '../../models';\nimport { ColorAdapter } from '../../services';\nimport { NgxMatColorPaletteComponent } from '../color-palette/color-palette.component';\nimport { NgxMatColorPickerInput } from './color-input.component';\n\n/** Injection token that determines the scroll handling while the calendar is open. */\nexport const NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>(\n 'ngx-mat-colorpicker-scroll-strategy',\n);\n\nexport function NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY_FACTORY(\n overlay: Overlay,\n): () => ScrollStrategy {\n return () => overlay.scrollStrategies.reposition();\n}\n\nexport const NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY_FACTORY,\n};\n\n@Component({\n selector: 'ngx-mat-color-picker-content',\n templateUrl: './color-picker-content.component.html',\n styleUrls: ['../../../../../shared/base-animations.scss', 'color-picker-content.component.scss'],\n host: {\n class: 'ngx-mat-colorpicker-content',\n '[class.ngx-mat-colorpicker-content-touch]': 'picker?.touchUi',\n '(animationend)': '_onAnimationEnd($event)',\n },\n exportAs: 'ngxMatColorPickerContent',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgxMatColorPaletteComponent],\n})\nexport class NgxMatColorPickerContentComponent implements OnInit {\n /** Reference to the internal calendar component. */\n _palette = viewChild(NgxMatColorPaletteComponent);\n\n picker: NgxMatColorPickerComponent | null = null;\n\n @Input() color: ThemePalette;\n\n _isLeaving = false;\n _panelEnterClass: 'enter-dropdown' | 'enter-dialog' | null = null;\n\n @Output() readonly _animationDone = new Subject<void>();\n\n private _cdr = inject(ChangeDetectorRef);\n\n @HostBinding('class.panel-enter-dropdown')\n get isEnterDropdown() {\n return !this._isLeaving && this._panelEnterClass === 'enter-dropdown';\n }\n\n @HostBinding('class.panel-enter-dialog')\n get isEnterDialog() {\n return !this._isLeaving && this._panelEnterClass === 'enter-dialog';\n }\n\n @HostBinding('class.panel-leave')\n get isLeaving() {\n return this._isLeaving;\n }\n\n ngOnInit(): void {\n this._panelEnterClass = this.picker?.touchUi ? 'enter-dialog' : 'enter-dropdown';\n this._cdr.markForCheck(); // ensure initial class is applied\n }\n\n _startExitAnimation() {\n this._isLeaving = true;\n this._cdr.markForCheck(); // trigger class update\n }\n\n _onAnimationEnd(event: AnimationEvent) {\n if (event.animationName === 'panelLeave') {\n this._animationDone.next();\n }\n }\n}\n\n@Component({\n selector: 'ngx-mat-color-picker',\n template: '',\n exportAs: 'ngxMatColorPicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [ColorAdapter, NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY_FACTORY_PROVIDER],\n})\nexport class NgxMatColorPickerComponent implements OnDestroy {\n @Input() id = `ngx-mat-color-picker-${Math.floor(Math.random() * 1000000)}`;\n\n /** Emits when the datepicker has been opened. */\n @Output('opened') openedStream: EventEmitter<void> = new EventEmitter<void>();\n\n /** Emits when the datepicker has been closed. */\n @Output('closed') closedStream: EventEmitter<void> = new EventEmitter<void>();\n\n @Input() get disabled() {\n return this._disabled === undefined && this._pickerInput\n ? this._pickerInput.disabled\n : !!this._disabled;\n }\n set disabled(value: boolean) {\n const newValue = coerceBooleanProperty(value);\n\n if (newValue !== this._disabled) {\n this._disabled = newValue;\n this._disabledChange.next(newValue);\n }\n }\n private _disabled = false;\n\n @Input()\n get touchUi(): boolean {\n return this._touchUi;\n }\n set touchUi(value: boolean) {\n this._touchUi = coerceBooleanProperty(value);\n }\n private _touchUi = false;\n\n /** Whether the calendar is open. */\n @Input()\n get opened(): boolean {\n return this._opened;\n }\n set opened(value: boolean) {\n if (value)\n this.open();\n else\n this.close();\n }\n private _opened = false;\n\n /** Default Color palette to use on the datepicker's calendar. */\n @Input()\n get defaultColor(): ThemePalette {\n return this._defaultColor;\n }\n set defaultColor(value: ThemePalette) {\n this._defaultColor = value;\n }\n _defaultColor: ThemePalette = 'primary';\n\n /** Color palette to use on the datepicker's calendar. */\n @Input()\n get color(): ThemePalette {\n return this._color || (this._pickerInput ? this._pickerInput.getThemePalette() : undefined);\n }\n set color(value: ThemePalette) {\n this._color = value;\n }\n _color: ThemePalette;\n\n @HostBinding('class.mat-primary') get isPrimary() {\n return this.color === 'primary';\n }\n @HostBinding('class.mat-accent') get isAccent() {\n return this.color === 'accent';\n }\n @HostBinding('class.mat-warn') get isWarn() {\n return this.color === 'warn';\n }\n\n /** The currently selected date. */\n get _selected(): Color | null {\n return this._validSelected;\n }\n set _selected(value: Color) {\n this._validSelected = value;\n }\n private _validSelected: Color | null = null;\n\n _pickerInput: NgxMatColorPickerInput | null = null;\n /** A reference to the overlay when the picker is opened as a popup. */\n _popupRef: OverlayRef | null = null;\n\n /** A reference to the dialog when the picker is opened as a dialog. */\n private _dialogRef: MatDialogRef<NgxMatColorPickerContentComponent> | null = null;\n /** Reference to the component instantiated in popup mode. */\n private _popupComponentRef: ComponentRef<NgxMatColorPickerContentComponent> | undefined | null = null;\n /** A portal containing the content for this picker. */\n private _portal: ComponentPortal<NgxMatColorPickerContentComponent> | null = null;\n\n /** Emits when the datepicker is disabled. */\n readonly _disabledChange = new EventEmitter<boolean>();\n\n /** The element that was focused before the datepicker was opened. */\n private _focusedElementBeforeOpen: HTMLElement | null = null;\n\n /** Subscription to value changes in the associated input element. */\n private _inputSubscription = Subscription.EMPTY;\n\n /** Emits new selected date when selected date changes. */\n readonly _selectedChanged = new Subject<Color>();\n\n /** Whether an animation is currently in progress. */\n private _isAnimating = false;\n\n private _dialog = inject(MatDialog);\n private _overlay = inject(Overlay);\n private _zone = inject(NgZone);\n private _adapter = inject(ColorAdapter);\n private _dir = inject(Directionality, { optional: true });\n private _scrollStrategy = inject(NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY);\n private _document = inject(DOCUMENT, { optional: true });\n private _viewContainerRef = inject(ViewContainerRef);\n\n ngOnDestroy() {\n this.close();\n this._inputSubscription.unsubscribe();\n this._disabledChange.complete();\n\n if (this._popupRef) {\n this._popupRef.dispose();\n this._popupComponentRef = null;\n }\n }\n\n /** Selects the given date */\n select(nextVal: Color): void {\n const oldValue = this._selected;\n this._selected = nextVal;\n if (!this._adapter.sameColor(oldValue!, this._selected)) {\n this._selectedChanged.next(nextVal);\n }\n }\n\n /**\n * Register an input with this datepicker.\n * @param input The datepicker input to register with this datepicker.\n */\n registerInput(input: NgxMatColorPickerInput): void {\n if (this._pickerInput) {\n throw Error('A ColorPicker can only be associated with a single input.');\n }\n this._pickerInput = input;\n this._inputSubscription = this._pickerInput._valueChange.subscribe(\n (value: Color) => (this._selected = value),\n );\n }\n\n public open(): void {\n if (this._opened || this.disabled || this._isAnimating) {\n return;\n }\n if (!this._pickerInput) {\n throw Error('Attempted to open an ColorPicker with no associated input.');\n }\n\n if (this._document) {\n this._focusedElementBeforeOpen = this._document.activeElement as HTMLElement | null;\n }\n\n if (this.touchUi)\n this._openAsDialog();\n else\n this._openAsPopup();\n\n this._opened = true;\n this.openedStream.emit();\n }\n\n /** Open the calendar as a dialog. */\n private _openAsDialog(): void {\n if (this._dialogRef) {\n this._dialogRef.close();\n }\n\n this._dialogRef = this._dialog.open<NgxMatColorPickerContentComponent>(\n NgxMatColorPickerContentComponent,\n {\n direction: this._dir ? this._dir.value : 'ltr',\n viewContainerRef: this._viewContainerRef,\n panelClass: 'ngx-mat-colorpicker-dialog',\n },\n );\n\n this._dialogRef.afterClosed().subscribe(() => this._handleDialogClosed());\n this._dialogRef.componentInstance.picker = this;\n this._setColor();\n }\n\n private _handleDialogClosed(): void {\n this._opened = false;\n this._isAnimating = false;\n this.closedStream.emit();\n if (this._focusedElementBeforeOpen) {\n this._focusedElementBeforeOpen.focus();\n this._focusedElementBeforeOpen = null;\n }\n this._dialogRef = null;\n }\n\n /** Open the calendar as a popup. */\n private _openAsPopup(): void {\n if (!this._portal) {\n this._portal = new ComponentPortal<NgxMatColorPickerContentComponent>(\n NgxMatColorPickerContentComponent,\n this._viewContainerRef,\n );\n }\n\n if (!this._popupRef) {\n this._createPopup();\n }\n\n if (!this._popupRef?.hasAttached()) {\n this._popupComponentRef = this._popupRef?.attach(this._portal);\n this._popupComponentRef!.instance.picker = this;\n this._setColor();\n\n // Update the position once the calendar has rendered.\n this._zone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this._popupRef?.updatePosition();\n });\n }\n }\n\n /** Create the popup. */\n private _createPopup(): void {\n const overlayConfig = new OverlayConfig({\n positionStrategy: this._createPopupPositionStrategy(),\n hasBackdrop: true,\n backdropClass: 'mat-overlay-transparent-backdrop',\n direction: this._dir ?? \"ltr\",\n scrollStrategy: this._scrollStrategy(),\n panelClass: 'mat-colorpicker-popup',\n });\n\n this._popupRef = this._overlay.create(overlayConfig);\n this._popupRef.overlayElement.setAttribute('role', 'dialog');\n\n merge(\n this._popupRef.backdropClick(),\n this._popupRef.detachments(),\n this._popupRef.keydownEvents().pipe(\n filter((event) => {\n // Closing on alt + up is only valid when there's an input associated with the datepicker.\n return (\n event.keyCode === ESCAPE ||\n (this._pickerInput! && event.altKey && event.keyCode === UP_ARROW)\n );\n }),\n ),\n ).subscribe((event) => {\n if (event) {\n event.preventDefault();\n }\n\n this.close();\n });\n }\n\n close(): void {\n if (!this._opened || this._isAnimating) {\n return;\n }\n\n if (this.touchUi) {\n // Dialog mode – close the dialog, state reset happens in afterClosed\n if (this._dialogRef) {\n this._dialogRef.close();\n }\n } else {\n // Popup mode – animate out then clean up\n let contentInstance: NgxMatColorPickerContentComponent | null = null;\n if (this._popupComponentRef) {\n contentInstance = this._popupComponentRef.instance;\n }\n\n const canRestoreFocus =\n this._focusedElementBeforeOpen &&\n typeof this._focusedElementBeforeOpen.focus === 'function';\n\n const completeClose = () => {\n if (this._popupRef && this._popupRef.hasAttached()) {\n this._popupRef.detach();\n }\n if (this._portal && this._portal.isAttached) {\n this._portal.detach();\n }\n this._opened = false;\n this._isAnimating = false;\n this.closedStream.emit();\n if (canRestoreFocus) {\n this._focusedElementBeforeOpen!.focus();\n }\n this._focusedElementBeforeOpen = null;\n };\n\n if (contentInstance) {\n this._isAnimating = true;\n contentInstance._startExitAnimation();\n\n contentInstance._animationDone.pipe(take(1)).subscribe(() => {\n // Restore focus before the timeout to ensure it happens even if the\n // overlay is removed synchronously.\n if (canRestoreFocus) {\n this._focusedElementBeforeOpen!.focus();\n }\n setTimeout(completeClose);\n });\n } else {\n // No content to animate – close immediately\n if (canRestoreFocus) {\n this._focusedElementBeforeOpen!.focus();\n setTimeout(completeClose);\n } else {\n completeClose();\n }\n }\n }\n }\n\n /** Passes the current theme color along to the calendar overlay. */\n private _setColor(): void {\n const color = this.color;\n if (this._popupComponentRef) {\n this._popupComponentRef.instance.color = color;\n }\n if (this._dialogRef) {\n this._dialogRef.componentInstance.color = color;\n }\n }\n\n /** Create the popup PositionStrategy. */\n private _createPopupPositionStrategy(): PositionStrategy {\n return this._overlay\n .position()\n .flexibleConnectedTo(this._pickerInput!.getConnectedOverlayOrigin())\n .withTransformOriginOn('.ngx-mat-colorpicker-content')\n .withFlexibleDimensions(false)\n .withViewportMargin(8)\n .withLockedPosition()\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n ]);\n }\n}\n","<ngx-mat-color-palette\n (colorChanged)=\"picker?.select($event)\"\n [color]=\"picker!._selected\"\n [theme]=\"color\"></ngx-mat-color-palette>\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { DOWN_ARROW } from '@angular/cdk/keycodes';\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n OnDestroy,\n output,\n Provider,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatFormField } from '@angular/material/form-field';\nimport { MAT_INPUT_VALUE_ACCESSOR } from '@angular/material/input';\nimport { Subscription } from 'rxjs';\nimport { createMissingDateImplError } from '../../helpers';\nimport { Color } from '../../models';\nimport { ColorAdapter, MAT_COLOR_FORMATS } from '../../services';\nimport { NgxMatColorPickerComponent } from './color-picker.component';\n\nexport class NgxMatColorPickerInputEvent {\n /** The new value for the target colorpicker input. */\n value: Color | null;\n\n constructor(\n /** Reference to the colorpicker input component that emitted the event. */\n public target: NgxMatColorPickerInput,\n /** Reference to the native input element associated with the colorpicker input. */\n public targetElement: HTMLElement,\n ) {\n this.value = this.target.value;\n }\n}\n\nexport const MAT_COLORPICKER_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgxMatColorPickerInput),\n multi: true,\n};\n\nexport const MAT_COLORPICKER_VALIDATORS: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NgxMatColorPickerInput),\n multi: true,\n};\n\n@Directive({\n selector: 'input[ngxMatColorPicker]',\n providers: [\n { provide: MAT_INPUT_VALUE_ACCESSOR, useExisting: NgxMatColorPickerInput },\n ColorAdapter,\n MAT_COLORPICKER_VALIDATORS,\n MAT_COLORPICKER_VALUE_ACCESSOR,\n ],\n host: {\n '[attr.aria-haspopup]': '_picker ? \"dialog\" : null',\n '[attr.aria-owns]': '(_picker?.opened && _picker?.id) || null',\n '[disabled]': 'disabled',\n '(input)': '_onInput($event)',\n '(change)': '_onChange()',\n '(blur)': '_onBlur()',\n '(keydown)': '_onKeydown($event)',\n },\n exportAs: 'ngxMatColorPickerInput',\n})\nexport class NgxMatColorPickerInput implements ControlValueAccessor, OnDestroy, Validator {\n @Input()\n set ngxMatColorPicker(value: NgxMatColorPickerComponent) {\n if (!value) {\n return;\n }\n\n this._picker = value;\n this._picker.registerInput(this);\n this._pickerSubscription.unsubscribe();\n\n this._pickerSubscription = this._picker._selectedChanged.subscribe((selected: Color) => {\n this.value = selected;\n this._cvaOnChange(selected);\n this._onTouched();\n this.colorInput.emit(new NgxMatColorPickerInputEvent(this, this._elementRef.nativeElement));\n this.colorChange.emit(new NgxMatColorPickerInputEvent(this, this._elementRef.nativeElement));\n });\n }\n _picker: NgxMatColorPickerComponent | null = null;\n\n /** Whether the colorpicker-input is disabled. */\n @Input()\n get disabled(): boolean {\n return !!this._disabled;\n }\n set disabled(value: boolean) {\n const newValue = coerceBooleanProperty(value);\n const element = this._elementRef.nativeElement;\n\n if (this._disabled !== newValue) {\n this._disabled = newValue;\n this._disabledChange.emit(newValue);\n }\n\n // We need to null check the `blur` method, because it's undefined during SSR.\n if (newValue && element.blur) {\n // Normally, native input elements automatically blur if they turn disabled. This behavior\n // is problematic, because it would mean that it triggers another change detection cycle,\n // which then causes a changed after checked error if the input element was focused before.\n element.blur();\n }\n }\n private _disabled = false;\n\n /** The value of the input. */\n @Input()\n get value(): Color | null {\n return this._value;\n }\n set value(value: Color | null) {\n const oldValue = this.value;\n this._value = value;\n this._formatValue(value);\n\n if (!this._adapter.sameColor(oldValue!, value!)) {\n this._valueChange.emit(value);\n }\n }\n private _value: Color | null = null;\n\n /** Emits when a `change` event is fired on this `<input>`. */\n readonly colorChange = output<NgxMatColorPickerInputEvent>();\n\n /** Emits when an `input` event is fired on this `<input>`. */\n readonly colorInput = output<NgxMatColorPickerInputEvent>();\n\n /** Emits when the disabled state has changed */\n _disabledChange = new EventEmitter<boolean>();\n\n /** Emits when the value changes (either due to user input or programmatic change). */\n _valueChange = new EventEmitter<Color | null>();\n\n _onTouched = () => {\n // Intentionally empty.\n };\n\n private _cvaOnChange: (value: any) => void = () => {\n // Intentionally empty.\n };\n\n private _validatorOnChange = () => {\n // Intentionally empty.\n };\n\n private _pickerSubscription = Subscription.EMPTY;\n\n /** The combined form control validator for this input. */\n private _validator: ValidatorFn | null = Validators.compose([]);\n\n /** Whether the last value set on the input was valid. */\n private _lastValueValid = false;\n\n private _elementRef = inject(ElementRef<HTMLInputElement>);\n private _formField = inject(MatFormField, { optional: true });\n private _colorFormats = inject(MAT_COLOR_FORMATS, { optional: true });\n private _adapter = inject(ColorAdapter);\n\n constructor() {\n if (!this._colorFormats) {\n throw createMissingDateImplError('MAT_COLOR_FORMATS');\n }\n }\n\n /** Returns the palette used by the input's form field, if any. */\n public getThemePalette(): ThemePalette {\n return this._formField ? this._formField.color : undefined;\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this._validatorOnChange = fn;\n }\n\n validate(c: AbstractControl): ValidationErrors | null {\n return this._validator ? this._validator(c) : null;\n }\n\n /**\n * @deprecated\n * @breaking-change 8.0.0 Use `getConnectedOverlayOrigin` instead\n */\n getPopupConnectionElementRef(): ElementRef {\n return this.getConnectedOverlayOrigin();\n }\n\n /**\n * Gets the element that the colorpicker popup should be connected to.\n * @return The element to connect the popup to.\n */\n getConnectedOverlayOrigin(): ElementRef {\n return this._formField ? this._formField.getConnectedOverlayOrigin() : this._elementRef;\n }\n\n ngOnDestroy(): void {\n this._pickerSubscription.unsubscribe();\n this._valueChange.complete();\n this._disabledChange.complete();\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(value: Color): void {\n this.value = value;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void): void {\n this._cvaOnChange = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n _onChange() {\n this.colorChange.emit(new NgxMatColorPickerInputEvent(this, this._elementRef.nativeElement));\n }\n\n _onKeydown(event: KeyboardEvent) {\n const isAltDownArrow = event.altKey && event.keyCode === DOWN_ARROW;\n\n if (this._picker && isAltDownArrow && !this._elementRef.nativeElement.readOnly) {\n this._picker.open();\n event.preventDefault();\n }\n }\n\n /** Handles blur events on the input. */\n _onBlur() {\n // Reformat the input only if we have a valid value.\n if (this.value) {\n this._formatValue(this.value);\n }\n\n this._onTouched();\n }\n\n /** Formats a value and sets it on the input element. */\n private _formatValue(value: Color | null) {\n this._elementRef.nativeElement.value = this._colorFormats && value\n ? this._adapter.format(value, this._colorFormats.display.colorInput)\n : '';\n }\n\n _onInput(event?: Event) {\n const lastValueWasValid = this._lastValueValid;\n const target = event?.target as HTMLInputElement;\n const nextValue = this._adapter.parse(target.value);\n\n if (!this._adapter.sameColor(nextValue!, this._value!)) {\n this._value = nextValue;\n this._cvaOnChange(nextValue);\n this._valueChange.emit(nextValue);\n this.colorInput.emit(new NgxMatColorPickerInputEvent(this, this._elementRef.nativeElement));\n } else if (lastValueWasValid !== this._lastValueValid) {\n this._validatorOnChange();\n }\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n Component,\n Directive,\n EventEmitter,\n Input,\n OnDestroy,\n ViewEncapsulation,\n effect,\n inject,\n input,\n untracked,\n viewChild,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { MatButton, MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Subscription, merge, of } from 'rxjs';\nimport { NgxMatColorPickerComponent } from '../color-picker/color-picker.component';\n\n@Directive({\n selector: '[ngxMatColorpickerToggleIcon]',\n})\nexport class NgxMatColorpickerToggleIcon {}\n\n@Component({\n selector: 'ngx-mat-color-toggle',\n templateUrl: './color-toggle.component.html',\n styleUrls: ['./color-toggle.component.scss'],\n host: {\n class: 'ngx-mat-color-toggle',\n // Always set the tabindex to -1 so that it doesn't overlap with any custom tabindex the\n // consumer may have provided, while still being able to receive focus.\n '[attr.tabindex]': '-1',\n '[class.ngx-mat-color-toggle-active]': 'picker()?.opened',\n '[class.mat-accent]': 'picker()?.color === \"accent\"',\n '[class.mat-warn]': 'picker()?.color === \"warn\"',\n '(focus)': '_button()?.focus()',\n },\n exportAs: 'ngxMatColorPickerToggle',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [MatButtonModule, MatIconModule],\n})\nexport class NgxMatColorToggleComponent implements AfterContentInit, OnDestroy {\n private _stateChanges = Subscription.EMPTY;\n\n picker = input<NgxMatColorPickerComponent>(undefined, { alias: 'for' });\n tabIndex = input<number>();\n\n @Input() get disabled(): boolean | undefined { \n if (this._disabled == null && this.picker()) {\n return this.picker()?.disabled;\n }\n return undefined;\n }\n set disabled(value: boolean) {\n this._disabled = value;\n }\n private _disabled = false;\n\n /** Whether ripples on the toggle should be disabled. */\n disableRipple = input<boolean>();\n\n _button = viewChild<MatButton>('button');\n\n private _cd = inject(ChangeDetectorRef);\n\n constructor() {\n effect(() => {\n this.picker();\n\n untracked(() => this._watchStateChanges());\n });\n }\n\n ngOnDestroy() {\n this._stateChanges.unsubscribe();\n }\n\n ngAfterContentInit() {\n this._watchStateChanges();\n }\n\n public open(event: Event): void {\n if (this.picker() && !this.disabled) {\n this.picker()?.open();\n event.stopPropagation();\n }\n }\n\n private _watchStateChanges() {\n const disabled$ = this.picker()?._disabledChange ?? new EventEmitter();\n const inputDisabled$ = this.picker()?._pickerInput?._disabledChange ?? new EventEmitter();\n\n const pickerToggled$ = this.picker()\n ? merge(this.picker()!.openedStream, this.picker()!.closedStream)\n : of();\n this._stateChanges.unsubscribe();\n\n this._stateChanges = merge(disabled$, inputDisabled$, pickerToggled$).subscribe(() =>\n this._cd.markForCheck(),\n );\n }\n}\n","<button\n #button\n mat-icon-button\n type=\"button\"\n [attr.aria-haspopup]=\"picker() ? 'dialog' : null\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex()\"\n [disabled]=\"disabled\"\n (click)=\"open($event)\"\n [disableRipple]=\"disableRipple()\"\n>\n <ng-content select=\"[ngxMatColorpickerToggleIcon]\">\n <mat-icon [style.color]=\"picker()?._selected?.rgba\">palette</mat-icon>\n </ng-content>\n</button>\n","import { Directive, HostListener } from '@angular/core';\nimport { NUMERIC_REGEX } from '../helpers';\n\n@Directive({\n selector: '[ngxMatNumericColorInput]',\n})\nexport class NumericColorInputDirective {\n @HostListener('input', ['$event'])\n onInput($event: any) {\n this._formatInput($event.target);\n }\n\n /**\n * Format input\n * @param input\n */\n private _formatInput(input: any) {\n let val = Number(input.value.replace(NUMERIC_REGEX, ''));\n val = isNaN(val) ? 0 : val;\n input.value = val;\n }\n}\n","/*\n * Public API Surface of color-picker\n */\nexport * from './lib/components';\nexport * from './lib/directives';\nexport * from './lib/helpers';\nexport * from './lib/models';\nexport * from './lib/services';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngx-mce/color-picker",
3
- "version": "21.3.3",
3
+ "version": "22.0.0-next.1",
4
4
  "description": "Angular Material Color Picker",
5
5
  "author": "Felipe B.",
6
6
  "repository": {
@@ -28,12 +28,12 @@
28
28
  "access": "public"
29
29
  },
30
30
  "peerDependencies": {
31
- "@angular/platform-browser": "^21",
32
- "@angular/common": "^21",
33
- "@angular/core": "^21",
34
- "@angular/forms": "^21",
35
- "@angular/material": "^21",
36
- "@angular/cdk": "^21"
31
+ "@angular/platform-browser": "^22",
32
+ "@angular/common": "^22",
33
+ "@angular/core": "^22",
34
+ "@angular/forms": "^22",
35
+ "@angular/material": "^22",
36
+ "@angular/cdk": "^22"
37
37
  },
38
38
  "dependencies": {
39
39
  "tslib": "^2.3.0"