novo-elements
Version:
1 lines • 24.2 kB
Source Map (JSON)
{"version":3,"file":"novo-elements-elements-color-picker.mjs","sources":["../../../projects/novo-elements/src/elements/color-picker/color-swatch.component.ts","../../../projects/novo-elements/src/elements/color-picker/color-picker.component.ts","../../../projects/novo-elements/src/elements/color-picker/color-input.component.ts","../../../projects/novo-elements/src/elements/color-picker/color-picker.module.ts","../../../projects/novo-elements/src/elements/color-picker/novo-elements-elements-color-picker.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'novo-color-swatch',\n template: `\n <div\n class=\"swatch\"\n [ngStyle]=\"currentStyles()\"\n [attr.title]=\"color\"\n (click)=\"handleClick(color, $event)\"\n (keydown.enter)=\"handleClick(color, $event)\"\n (focus)=\"handleFocus()\"\n (blur)=\"handleFocusOut()\"\n (mouseover)=\"handleHover(color, $event)\"\n tabindex=\"0\"\n >\n <ng-content></ng-content>\n </div>\n `,\n styles: [\n `\n .swatch {\n border-radius: 0.4rem;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class NovoColorSwatchComponent implements OnInit {\n @Input() color!: string;\n @Input() style: { [key: string]: string } = {};\n @Input() focusStyle: { [key: string]: string } = {};\n @Input() focus!: boolean;\n @Output() onClick = new EventEmitter<any>();\n @Output() onHover = new EventEmitter<any>();\n divStyles: { [key: string]: string } = {};\n focusStyles: { [key: string]: string } = {};\n inFocus = false;\n\n ngOnInit() {\n this.divStyles = {\n background: this.color as string,\n height: '100%',\n width: '100%',\n cursor: 'pointer',\n position: 'relative',\n outline: 'none',\n ...this.style,\n };\n }\n currentStyles() {\n this.focusStyles = {\n ...this.divStyles,\n ...this.focusStyle,\n };\n return this.focus || this.inFocus ? this.focusStyles : this.divStyles;\n }\n handleFocusOut() {\n this.inFocus = false;\n }\n handleFocus() {\n this.inFocus = true;\n }\n handleHover(hex: string, $event) {\n this.onHover.emit({ hex, $event });\n }\n handleClick(hex: string, $event) {\n this.onClick.emit({ hex, $event });\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { Color, HSL, HSLA, HSV, HSVA, RGB, RGBA } from 'novo-elements/utils';\n\n@Component({\n selector: 'novo-color-picker',\n template: `\n <div class=\"novo-color-preview\" [style.backgroundColor]=\"currentColor.hex\">\n <div class=\"novo-color-preview-text\">{{ hex }}</div>\n </div>\n <div class=\"novo-color-swatches\">\n <novo-color-swatch\n *ngFor=\"let color of colors\"\n [color]=\"color\"\n (onClick)=\"handleBlockChange($event)\"\n (onHover)=\"handleSwatchHover($event)\"\n ></novo-color-swatch>\n </div>\n <div class=\"novo-color-input\">\n <input [value]=\"hex.replace('#', '')\" (onChange)=\"handleValueChange($event)\" />\n </div>\n `,\n styleUrls: ['./color-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n standalone: false,\n})\nexport class NovoColorPickerComponent implements OnInit, OnChanges, OnDestroy {\n /** Pixel value for picker width */\n @Input() width: string | number = 276;\n /** Color squares to display */\n @Input() colors = ['#FF6900', '#FCB900', '#7BDCB5', '#00D084', '#8ED1FC', '#0693E3', '#ABB8C3', '#EB144C', '#F78DA7', '#9900EF'];\n @Input() color: HSLA | HSVA | RGBA | string = {\n h: 250,\n s: 0.5,\n l: 0.2,\n a: 1,\n };\n @Output() onChange = new EventEmitter<any>();\n @Output() onChangeComplete = new EventEmitter<any>();\n @Output() onSwatchHover = new EventEmitter<any>();\n hsl!: HSL;\n hsv!: HSV;\n rgb!: RGB;\n hex!: string;\n currentColor!: Color;\n changes!: Subscription;\n\n swatchStyle: { [key: string]: string } = {\n width: '30px',\n height: '30px',\n borderRadius: '4px',\n fontSize: '0',\n };\n input: { [key: string]: string } = {\n borderRadius: '4px',\n borderBottomLeftRadius: '0',\n borderTopLeftRadius: '0',\n border: '1px solid #e6ecf0',\n boxSizing: 'border-box',\n display: 'inline',\n fontSize: '14px',\n height: '30px',\n padding: '0',\n paddingLeft: '6px',\n width: '100%',\n color: '#657786',\n };\n\n focus(color: string) {\n return { boxShadow: `0 0 4px ${color}` };\n }\n\n handleBlockChange({ hex, $event }: any) {\n if (Color.isValidHex(hex)) {\n this.handleChange({ hex, source: 'hex' }, $event);\n }\n }\n\n handleValueChange({ data, $event }: any) {\n this.handleBlockChange({ hex: data, $event });\n }\n\n ngOnInit() {\n this.changes = this.onChange.pipe(debounceTime(100)).subscribe((x) => this.onChangeComplete.emit(x));\n this.setState(new Color(this.color));\n }\n\n ngOnChanges() {\n this.setState(new Color(this.color));\n }\n\n ngOnDestroy() {\n this.changes.unsubscribe();\n }\n\n setState(data: Color) {\n this.currentColor = data;\n this.hsl = data.hsl;\n this.hsv = data.hsv;\n this.rgb = data.rgb;\n this.hex = data.hex;\n this.afterValidChange();\n }\n\n handleChange(data, $event) {\n const color = new Color(data.hex);\n if (color.isValid) {\n this.setState(color);\n this.onChange.emit({ color, $event });\n this.afterValidChange();\n }\n }\n /** hook for components after a complete change */\n afterValidChange() {}\n\n handleSwatchHover($event) {\n const color = new Color($event.hex);\n if (color.isValid) {\n this.setState(color);\n this.onSwatchHover.emit({ color, $event });\n }\n }\n}\n","// NG\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { Helpers, Key } from 'novo-elements/utils';\n// App\nimport { NovoOverlayTemplateComponent } from 'novo-elements/elements/common';\n\n// Value accessor for the component (supports ngModel)\nconst COLOR_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoColorInputElement),\n multi: true,\n};\n\n@Component({\n selector: 'novo-color-input',\n providers: [COLOR_VALUE_ACCESSOR],\n template: `\n <novo-field>\n <input\n novoInput\n type=\"text\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [style.color]=\"value\"\n (focus)=\"_handleFocus($event)\"\n (keydown)=\"_handleKeydown($event)\"\n (input)=\"_handleInput($event)\"\n (blur)=\"_handleBlur($event)\"\n [(ngModel)]=\"value\"\n #input\n />\n <novo-icon *ngIf=\"!hasValue\" (click)=\"openPanel()\">complex</novo-icon>\n <novo-icon *ngIf=\"hasValue\" smaller (click)=\"clearValue()\">x</novo-icon>\n </novo-field>\n <novo-overlay-template [parent]=\"element\" position=\"above-below\">\n <novo-color-picker [(color)]=\"value\" (onChange)=\"setValueAndClose($event)\"></novo-color-picker>\n </novo-overlay-template>\n `,\n standalone: false,\n})\nexport class NovoColorInputElement implements OnInit, ControlValueAccessor {\n @Input()\n name: string;\n @Input()\n placeholder: string = '#ffffff';\n @Output()\n blurEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n @Output()\n focusEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n /** Element for the panel containing the autocomplete options. */\n @ViewChild(NovoOverlayTemplateComponent)\n overlay: NovoOverlayTemplateComponent;\n\n @Output() change = new EventEmitter();\n @Output() blur = new EventEmitter();\n @Output() focus = new EventEmitter();\n\n private _value: string = '';\n public lastValidValue: string = '';\n private _disabled: boolean = false;\n\n @Input() get value(): string {\n return this._value;\n }\n set value(value) {\n if (this.value !== value) {\n this._value = value;\n this._setFormValue(value);\n this.onChangeCallback(this._value);\n }\n }\n\n // Disabled State\n @Input()\n @HostBinding('class.disabled')\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = !!value;\n }\n\n constructor(public element: ElementRef, public labels: NovoLabelService, private cdr: ChangeDetectorRef) {}\n\n ngOnInit() {}\n\n /** BEGIN: Convenient Panel Methods. */\n openPanel(): void {\n if (!this.disabled) {\n this.panelOpen ? this.overlay.closePanel() : this.overlay.openPanel();\n }\n }\n closePanel(): void {\n this.overlay && this.overlay.closePanel();\n }\n get panelOpen(): boolean {\n return this.overlay && this.overlay.panelOpen;\n }\n /** END: Convenient Panel Methods. */\n\n _handleKeydown(event: KeyboardEvent): void {\n if ((event.key === Key.Escape || event.key === Key.Enter || event.key === Key.Tab) && this.panelOpen) {\n this.closePanel();\n event.stopPropagation();\n }\n }\n\n _handleInput(event: KeyboardEvent): void {\n }\n\n _handleBlur(event: FocusEvent): void {\n this.blurEvent.emit(event);\n }\n\n _handleFocus(event: FocusEvent): void {\n this.openPanel();\n this.focusEvent.emit(event);\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.cdr.markForCheck();\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n private onChangeCallback = (_: any) => {\n // placeholder\n };\n\n private onTouchedCallback = () => {\n // placeholder\n };\n\n private _setFormValue(value: string): void {\n if (this.value) {\n // hmm...\n }\n }\n\n /**\n * This method closes the panel, and if a value is specified, also sets the associated\n * control to that value. It will also mark the control as dirty if this interaction\n * stemmed from the user.\n */\n public setValueAndClose(event: any): void {\n if (event) {\n this.value = event.color.hex;\n this.change.emit(this.value);\n this.closePanel();\n }\n }\n\n /**\n * Clear any previous selected option and emit a selection change event for this option\n */\n public clearValue() {\n this.value = '';\n this.change.emit(this.value);\n }\n\n public get hasValue() {\n return !Helpers.isEmpty(this.value);\n }\n}\n","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n// APP\nimport { NovoPipesModule } from 'novo-elements/pipes';\nimport { NovoOverlayModule } from 'novo-elements/elements/common';\nimport { NovoFieldModule } from 'novo-elements/elements/field';\nimport { NovoIconModule } from 'novo-elements/elements/icon';\nimport { NovoColorInputElement } from './color-input.component';\nimport { NovoColorPickerComponent } from './color-picker.component';\nimport { NovoColorSwatchComponent } from './color-swatch.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, NovoPipesModule, NovoFieldModule, NovoOverlayModule, NovoIconModule],\n declarations: [NovoColorPickerComponent, NovoColorInputElement, NovoColorSwatchComponent],\n exports: [NovoColorPickerComponent, NovoColorInputElement, NovoColorSwatchComponent],\n})\nexport class NovoColorPickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.NovoColorSwatchComponent","i1","i2","i7.NovoColorPickerComponent"],"mappings":"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"}