{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/color-picker/src/color-picker.props.ts","../../../../../projects/components/widgets/input/color-picker/src/color-picker.component.ts","../../../../../projects/components/widgets/input/color-picker/src/color-picker.component.html","../../../../../projects/components/widgets/input/color-picker/src/index.ts"],"sourcesContent":["import {PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget} from '@wm/components/base';\nimport {FormWidgetType} from '@wm/core';\n\nexport const colorPickerProps = new Map(\n    [\n        ['autoclose', {value: 'outsideClick', ...PROP_STRING}],\n        ['class', PROP_STRING],\n        ['datavalue', PROP_STRING],\n        ['disabled', PROP_BOOLEAN],\n        ['hint', PROP_STRING],\n        ['arialabel', PROP_STRING],\n        ['name', PROP_STRING],\n        ['placeholder', {value: 'Select Color', ...PROP_STRING}],\n        ['readonly', PROP_BOOLEAN],\n        ['required', PROP_BOOLEAN],\n        ['shortcutkey', PROP_STRING],\n        ['show', {value: true, ...PROP_BOOLEAN}],\n        ['tabindex', {value: 0, ...PROP_NUMBER}]\n    ]\n);\n\nexport const registerProps = () => {\n    register(\n        'wm-colorpicker',\n        colorPickerProps\n    );\n    registerFormWidget(\n        FormWidgetType.COLORPICKER,\n        new Map(colorPickerProps)\n    );\n};\n","import { FormsModule } from '@angular/forms';\nimport { ColorPickerService, ColorPickerDirective } from 'ngx-color-picker';\nimport { Component, ElementRef, Inject, Injector, OnDestroy, Optional, ViewChild } from '@angular/core';\nimport { CommonModule } from \"@angular/common\";\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR, NgModel } from '@angular/forms';\n\nimport { addClass, removeClass } from '@wm/core';\nimport { AUTOCLOSE_TYPE, IWidgetConfig, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\nimport { BaseFormCustomComponent } from '@wm/components/input/base-form-custom';\nimport { registerProps } from './color-picker.props';\n\nconst DEFAULT_CLS = 'input-group app-colorpicker';\nconst WIDGET_CONFIG: IWidgetConfig = {\n    widgetType: 'wm-colorpicker',\n    hostClass: DEFAULT_CLS,\n    displayType: 'inline-block'\n};\n\n@Component({\n    standalone: true,\n    imports: [CommonModule, FormsModule, ColorPickerDirective],\n    selector: '[wmColorPicker]',\n    templateUrl: './color-picker.component.html',\n    providers: [\n        provideAs(ColorPickerComponent, NG_VALUE_ACCESSOR, true),\n        provideAs(ColorPickerComponent, NG_VALIDATORS, true),\n        provideAsWidgetRef(ColorPickerComponent),\n        ColorPickerService\n    ]\n})\nexport class ColorPickerComponent extends BaseFormCustomComponent implements OnDestroy {\n    static initializeProps = registerProps();\n\n    public required: boolean;\n    public readonly: boolean;\n    public disabled: boolean;\n    public name: string;\n    public placeholder: any;\n    public tabindex: any;\n    public shortcutkey: string;\n    public outsideclick: boolean;\n    public autoclose: string;\n    public hint: string;\n    public arialabel: string;\n\n    @ViewChild(NgModel) ngModel: NgModel;\n    @ViewChild('input', { static: true, read: ElementRef }) inputEl: ElementRef;\n    @ViewChild(ColorPickerDirective) cpDirective: ColorPickerDirective;\n\n    constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n        super(inj, WIDGET_CONFIG, explicitContext);\n        styler(this.nativeElement, this);\n    }\n\n    public colorPickerToggleChange(isOpen: boolean) {\n        const colorPickerContainer = this.nativeElement.querySelector(`.color-picker`) as HTMLElement;\n        if (colorPickerContainer) {\n            (!isOpen) ? addClass(colorPickerContainer, 'hidden') : removeClass(colorPickerContainer, 'hidden');\n        }\n    }\n\n    colorPickerOpen(value: string) {\n        $('.hex-text input').attr('placeholder', 'Enter hex color code');\n        if (this.autoclose === AUTOCLOSE_TYPE.ALWAYS) {\n            const colorPickerContainer = this.nativeElement.querySelector(`.color-picker`) as HTMLElement;\n            colorPickerContainer.onclick = () => this.cpDirective.closeDialog();\n        }\n    }\n\n    open() {\n        this.cpDirective.openDialog();\n    }\n\n    close() {\n        this.cpDirective.closeDialog();\n    }\n\n    protected handleEvent(node: HTMLElement, eventName: string, callback: Function, locals: any) {\n        if (eventName !== 'change' && eventName !== 'blur') {\n            super.handleEvent(this.inputEl.nativeElement, eventName, callback, locals);\n        }\n    }\n\n    public handleChange(newVal: boolean) {\n        this.invokeOnChange(this.datavalue, { type: 'change' }, this.ngModel.valid);\n    }\n\n    protected onPropertyChange(key: string, nv: any, ov: any) {\n        if (key === 'tabindex') {\n            return;\n        }\n        if (key === 'required') {\n            this._onChange(this.datavalue);\n            return;\n        }\n        if (key === 'datavalue') {\n            this._onChange(nv);\n            return;\n        }\n        if (key === 'autoclose') {\n            this.outsideclick = (nv === AUTOCLOSE_TYPE.OUTSIDECLICK || nv === AUTOCLOSE_TYPE.ALWAYS) ? true : false;\n        }\n        super.onPropertyChange(key, nv, ov);\n    }\n\n    ngOnDestroy() {\n        // MEMORY LEAK FIX: Clear all ViewChild references\n        this.ngModel = null;\n        this.inputEl = null;\n        this.cpDirective = null;\n\n        // Call parent ngOnDestroy\n        super.ngOnDestroy();\n    }\n}\n","<input aria-haspopup=\"true\" class=\"form-control app-textbox\"\n       #input\n       focus-target\n       [attr.name]=\"name\"\n       [attr.aria-label]=\"arialabel\"\n       [(colorPicker)]=\"datavalue\"\n       (colorPickerChange)=\"handleChange($event);\"\n       (cpToggleChange)=\"colorPickerToggleChange($event)\"\n       [cpPosition]=\"'bottom'\"\n       [cpCloseClickOutside]=\"outsideclick\"\n       (colorPickerOpen)=\"colorPickerOpen($event)\"\n       [attr.placeholder]=\"placeholder\"\n       [disabled]=\"readonly || disabled\"\n       [required]=\"required\"\n       [tabindex]=\"tabindex\"\n       [(ngModel)]=\"datavalue\"\n       (ngModelChange)=\"handleChange($event);\"\n       [ngModelOptions]=\"{updateOn: 'change', standalone: true}\"\n       (blur)=\"invokeOnTouched($event)\"\n       [attr.accesskey]=\"shortcutkey\">\n<span class=\"input-group-addon colorpicker-container\">\n    <i class=\"colored-box\" [style.backgroundColor]=\"datavalue\">&nbsp;</i>\n</span>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;;AAGO,MAAM,gBAAgB,GAAG,IAAI,GAAG,CACnC;IACI,CAAC,WAAW,EAAE,EAAC,KAAK,EAAE,cAAc,EAAE,GAAG,WAAW,EAAC,CAAC;IACtD,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,aAAa,EAAE,EAAC,KAAK,EAAE,cAAc,EAAE,GAAG,WAAW,EAAC,CAAC;IACxD,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,aAAa,EAAE,WAAW,CAAC;IAC5B,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IACxC,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC;AAC1C,CAAA,CACJ;AAEM,MAAM,aAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,gBAAgB,EAChB,gBAAgB,CACnB;IACD,kBAAkB,CACd,cAAc,CAAC,WAAW,EAC1B,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAC5B;AACL,CAAC;;ACnBD,MAAM,WAAW,GAAG,6BAA6B;AACjD,MAAM,aAAa,GAAkB;AACjC,IAAA,UAAU,EAAE,gBAAgB;AAC5B,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,WAAW,EAAE;CAChB;AAcK,MAAO,oBAAqB,SAAQ,uBAAuB,CAAA;AACtD,IAAA,SAAA,IAAA,CAAA,eAAe,GAAG,aAAa,EAAhB,CAAmB;IAkBzC,WAAA,CAAY,GAAa,EAA0C,eAAoB,EAAA;AACnF,QAAA,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,eAAe,CAAC;AAC1C,QAAA,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;IACpC;AAEO,IAAA,uBAAuB,CAAC,MAAe,EAAA;QAC1C,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAA,aAAA,CAAe,CAAgB;QAC7F,IAAI,oBAAoB,EAAE;YACtB,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,GAAG,WAAW,CAAC,oBAAoB,EAAE,QAAQ,CAAC;QACtG;IACJ;AAEA,IAAA,eAAe,CAAC,KAAa,EAAA;QACzB,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC;QAChE,IAAI,IAAI,CAAC,SAAS,KAAK,cAAc,CAAC,MAAM,EAAE;YAC1C,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAA,aAAA,CAAe,CAAgB;AAC7F,YAAA,oBAAoB,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;QACvE;IACJ;IAEA,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;IACjC;IAEA,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;IAClC;AAEU,IAAA,WAAW,CAAC,IAAiB,EAAE,SAAiB,EAAE,QAAkB,EAAE,MAAW,EAAA;QACvF,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,MAAM,EAAE;AAChD,YAAA,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC;QAC9E;IACJ;AAEO,IAAA,YAAY,CAAC,MAAe,EAAA;AAC/B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/E;AAEU,IAAA,gBAAgB,CAAC,GAAW,EAAE,EAAO,EAAE,EAAO,EAAA;AACpD,QAAA,IAAI,GAAG,KAAK,UAAU,EAAE;YACpB;QACJ;AACA,QAAA,IAAI,GAAG,KAAK,UAAU,EAAE;AACpB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B;QACJ;AACA,QAAA,IAAI,GAAG,KAAK,WAAW,EAAE;AACrB,YAAA,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAClB;QACJ;AACA,QAAA,IAAI,GAAG,KAAK,WAAW,EAAE;YACrB,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,KAAK,cAAc,CAAC,YAAY,IAAI,EAAE,KAAK,cAAc,CAAC,MAAM,IAAI,IAAI,GAAG,KAAK;QAC3G;QACA,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;IACvC;IAEA,WAAW,GAAA;;AAEP,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;;QAGvB,KAAK,CAAC,WAAW,EAAE;IACvB;AAnFS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,0CAmBM,kBAAkB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAnB5C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,SAAA,EAPlB;AACP,YAAA,SAAS,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,IAAI,CAAC;AACxD,YAAA,SAAS,CAAC,oBAAoB,EAAE,aAAa,EAAE,IAAI,CAAC;YACpD,kBAAkB,CAAC,oBAAoB,CAAC;YACxC;AACH,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAiBU,OAAO,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACwB,UAAU,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACzC,oBAAoB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/CnC,m+BAuBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDHc,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,wBAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,2BAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,2BAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,0BAAA,EAAA,iBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAUhD,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAZhC,SAAS;iCACM,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,WAAW,EAAE,oBAAoB,CAAC,EAAA,QAAA,EAChD,iBAAiB,EAAA,SAAA,EAEhB;AACP,wBAAA,SAAS,CAAA,oBAAA,EAAuB,iBAAiB,EAAE,IAAI,CAAC;AACxD,wBAAA,SAAS,CAAA,oBAAA,EAAuB,aAAa,EAAE,IAAI,CAAC;AACpD,wBAAA,kBAAkB,CAAA,oBAAA,CAAsB;wBACxC;AACH,qBAAA,EAAA,QAAA,EAAA,m+BAAA,EAAA;;0BAqB2B,MAAM;2BAAC,kBAAkB;;0BAAG;yCAJpC,OAAO,EAAA,CAAA;sBAA1B,SAAS;uBAAC,OAAO;gBACsC,OAAO,EAAA,CAAA;sBAA9D,SAAS;uBAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;gBACrB,WAAW,EAAA,CAAA;sBAA3C,SAAS;uBAAC,oBAAoB;;;AE/CnC;;AAEG;;;;"}