UNPKG

@igo2/common

Version:
1 lines 9.53 kB
{"version":3,"file":"igo2-common-color.mjs","sources":["../../../packages/common/color/src/color-picker-form-field/color-picker-form-field.component.ts","../../../packages/common/color/src/color-picker-form-field/color-picker-form-field.component.html","../../../packages/common/color/src/color-picker-form-field/color-picker-form-field.module.ts","../../../packages/common/color/src/igo2-common-color.ts"],"sourcesContent":["import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport {\n Component,\n EventEmitter,\n Input,\n Output,\n forwardRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { IgoLanguageModule } from '@igo2/core/language';\n\nimport { ColorEvent } from 'ngx-color';\nimport { ColorChromeModule } from 'ngx-color/chrome';\nimport tinycolor, { ColorInput } from 'tinycolor2';\n\ntype ColorFormat = 'hex' | 'rgba' | 'hsla';\n\n@Component({\n selector: 'igo-color-picker-form-field',\n templateUrl: './color-picker-form-field.component.html',\n styleUrls: ['./color-picker-form-field.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorPickerFormFieldComponent),\n multi: true\n }\n ],\n imports: [\n MatFormFieldModule,\n CdkOverlayOrigin,\n MatInputModule,\n CdkConnectedOverlay,\n ColorChromeModule,\n MatButtonModule,\n IgoLanguageModule\n ]\n})\nexport class ColorPickerFormFieldComponent implements ControlValueAccessor {\n isOpen = false;\n\n set value(value: string) {\n this._value = this.formatColor(value ?? '#000');\n this.colorPicker = this._value;\n\n this.onChange(this.value);\n this.onTouch(this.value);\n }\n get value(): string {\n return this._value;\n }\n private _value: string;\n\n @Input() outputFormat: ColorFormat = 'rgba';\n\n /**\n * The emitted value represent the current chosen color in the picker\n * The value is emitted by default in RGBA, or based on the input 'outputFormat' value.\n */\n @Output() colorChange: EventEmitter<string> = new EventEmitter<string>();\n\n colorPicker: string;\n\n onChange: any = () => void 1;\n onTouch: any = () => void 1;\n\n writeValue(value: string) {\n this.value = value;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n handleClick(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isOpen = false;\n this.value = this.colorPicker;\n }\n\n handleChange($event: ColorEvent) {\n this.colorPicker = this.formatColor($event.color.rgb, 'rgba');\n this.colorChange.emit(this.formatColor(this.colorPicker));\n }\n\n private formatColor(\n color: ColorInput,\n format: ColorFormat = this.outputFormat\n ): string {\n switch (format) {\n case 'hex':\n color = tinycolor(color).toHexString();\n break;\n case 'rgba':\n color = tinycolor(color).toRgbString();\n break;\n case 'hsla':\n color = tinycolor(color).toHsvString();\n break;\n default:\n color = tinycolor(color).toRgbString();\n break;\n }\n return color;\n }\n}\n","<mat-form-field\n class=\"fill-field\"\n floatLabel=\"always\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n subscriptSizing=\"dynamic\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n (click)=\"isOpen = !isOpen\"\n>\n <mat-label>{{ colorPicker }}</mat-label>\n <input\n type=\"text\"\n matInput\n [readonly]=\"true\"\n [style.background]=\"colorPicker\"\n />\n</mat-form-field>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n (backdropClick)=\"isOpen = false\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n>\n <div class=\"picker\">\n <color-chrome (onChange)=\"handleChange($event)\" [color]=\"colorPicker\">\n </color-chrome>\n <div class=\"buttons\">\n <button mat-flat-button color=\"primary\" (click)=\"handleClick($event)\">\n {{ 'igo.common.confirmDialog.applyBtn' | translate }}\n </button>\n </div>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { ColorPickerFormFieldComponent } from './color-picker-form-field.component';\n\n/**\n * @deprecated import the ColorPickerFormFieldComponent directly\n */\n@NgModule({\n imports: [ColorPickerFormFieldComponent],\n exports: [ColorPickerFormFieldComponent]\n})\nexport class ColorPickerFormFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}