{"version":3,"file":"deja-js-component-color-picker.mjs","sources":["../../../../projects/deja-js/component/color-picker/color-picker.component.ts","../../../../projects/deja-js/component/color-picker/color-picker.component.html","../../../../projects/deja-js/component/color-picker/index.ts","../../../../projects/deja-js/component/color-picker/deja-js-component-color-picker.ts"],"sourcesContent":["/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, Input, Optional, Output, Self, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { DejaConnectionPositionPair } from '@deja-js/component/core';\nimport { Color } from '@deja-js/component/core/graphics';\nimport { DejaOverlayComponent } from '@deja-js/component/overlay';\n\n@Component({\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    selector: 'deja-color-picker',\n    styleUrls: [\n        './color-picker.component.scss'\n    ],\n    templateUrl: './color-picker.component.html'\n})\nexport class DejaColorPickerComponent implements ControlValueAccessor {\n    @HostBinding('attr.disabled') public _disabled: boolean = null;\n\n    /** Retourne ou definit les couleurs selectionables affichées. */\n    @Input() public colors: Color[];\n\n    @Input() public resetcolor: string = null;\n\n    /** Déclenché lorsqu'une couleur est survolée par la souris. */\n    @Output() public readonly colorhover = new EventEmitter();\n\n    /** Overlay pane containing the options. */\n    @ViewChild(DejaOverlayComponent, { static: true }) private dejaOverlayCmp: DejaOverlayComponent;\n\n    /** Internal use */\n    public ownerElement: HTMLElement;\n\n    private _small = false;\n    private _value: Color;\n\n    private _isOpen = false;\n\n    /** Retourne ou definit si la partie déroulante est visible. */\n    @Input()\n    public set isOpen(value: BooleanInput) {\n        this._isOpen = coerceBooleanProperty(value) || null;\n    }\n\n    public get isOpen(): BooleanInput {\n        return this._isOpen;\n    }\n\n    private _positions = DejaConnectionPositionPair.default;\n\n    @Input()\n    public set positions(value: DejaConnectionPositionPair[] | string) {\n        this._positions = typeof value === 'string' ? DejaConnectionPositionPair.parse(value) : value;\n    }\n\n    public get positions(): DejaConnectionPositionPair[] | string {\n        return this._positions;\n    }\n\n    public constructor(elementRef: ElementRef<HTMLElement>, @Self() @Optional() public control: NgControl, private changeDetectorRef: ChangeDetectorRef) {\n        if (this.control) {\n            this.control.valueAccessor = this;\n        }\n        this.ownerElement = elementRef.nativeElement;\n    }\n\n    /** Retourne ou définit la taille du bouton. */\n    @Input()\n    public set small(value: BooleanInput) {\n        this._small = coerceBooleanProperty(value);\n    }\n\n    public get small(): BooleanInput {\n        return this._small;\n    }\n\n    /** Retourne ou definit si le selecteur est desactivé. */\n    @Input()\n    public set disabled(value: BooleanInput) {\n        this._disabled = coerceBooleanProperty(value);\n        this.changeDetectorRef.markForCheck();\n    }\n\n    public get disabled(): BooleanInput {\n        return this._disabled;\n    }\n\n    // ************* ControlValueAccessor Implementation **************\n    // set accessor including call the onchange callback\n    public set value(value: Color) {\n        if (!Color.equals(value, this._value)) {\n            this.writeValue(value);\n            this.onChangeCallback(value);\n        }\n    }\n\n    // get accessor\n    public get value(): Color {\n        return this._value;\n    }\n\n    // From ControlValueAccessor interface\n    public writeValue(value: Color): void {\n        this._value = value;\n        this.changeDetectorRef.markForCheck();\n    }\n\n    // From ControlValueAccessor interface\n    public registerOnChange(fn: (_a: unknown) => void): void {\n        this.onChangeCallback = fn;\n    }\n\n    // From ControlValueAccessor interface\n    public registerOnTouched(fn: () => void): void {\n        this.onTouchedCallback = fn;\n    }\n\n    public setDisabledState(isDisabled: boolean): void {\n        this.disabled = isDisabled;\n    }\n    // ************* End of ControlValueAccessor Implementation **************\n\n    /** Affiche le color picker. */\n    public show(event: MouseEvent): boolean {\n        if (!this.disabled) {\n            this.dejaOverlayCmp.show(event);\n            this.isOpen = true;\n            this.changeDetectorRef.markForCheck();\n        }\n        return false;\n    }\n\n    /** Ferme le color picker. */\n    public close(): void {\n        this.isOpen = false;\n    }\n\n    public onColorChange(color: Color): void {\n        this.isOpen = false;\n        this.value = color;\n    }\n\n    // eslint-disable-next-line @typescript-eslint/naming-convention\n    public getStyle(): { 'background-color': string } {\n        const backgroundColor = this.value?.toHex();\n        // eslint-disable-next-line @typescript-eslint/naming-convention\n        return backgroundColor ? { 'background-color': backgroundColor } : null;\n    }\n\n    protected onTouchedCallback = (): void => undefined;\n    protected onChangeCallback = (_a: unknown): void => undefined;\n\n}\n","<button type=\"button\" *ngIf=\"!small\" [disabled]=\"disabled\" id=\"colorbtn\" mat-fab (click)=\"show($event)\" [ngStyle]=\"getStyle()\"></button>\n<button type=\"button\" *ngIf=\"small\" [disabled]=\"disabled\" id=\"colorbtn\" mat-mini-fab (click)=\"show($event)\" [ngStyle]=\"getStyle()\"></button>\n<deja-overlay [ownerElement]=\"ownerElement\" overlayBackdropClass=\"cdk-overlay-dark-backdrop\" [isVisible]=\"isOpen\" (closed)=\"close()\" [positions]=\"positions\">\n    <deja-color-selector [resetcolor]=\"resetcolor\" [colors]=\"colors\" [ngModel]=\"value\" (colorhover)=\"colorhover.emit($event)\" (ngModelChange)=\"onColorChange($event)\"></deja-color-selector>\n</deja-overlay>\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DejaColorSelectorModule } from '@deja-js/component/color-selector';\nimport { DejaOverlayModule } from '@deja-js/component/overlay';\n\nimport { DejaColorPickerComponent } from './color-picker.component';\n\n@NgModule({\n    declarations: [DejaColorPickerComponent],\n    exports: [DejaColorPickerComponent],\n    imports: [\n        CommonModule,\n        DejaColorSelectorModule,\n        DejaOverlayModule,\n        FormsModule,\n        MatButtonModule\n    ]\n})\nexport class DejaColorPickerModule { }\n\nexport * from './color-picker.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}