@ng-nest/ui 20.2.3 → 20.2.4

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.
Files changed (39) hide show
  1. package/bubble/index.d.ts +7 -5
  2. package/fesm2022/ng-nest-ui-auto-complete.mjs +3 -3
  3. package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
  4. package/fesm2022/ng-nest-ui-base-form.mjs +1 -1
  5. package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
  6. package/fesm2022/ng-nest-ui-bubble.mjs +27 -15
  7. package/fesm2022/ng-nest-ui-bubble.mjs.map +1 -1
  8. package/fesm2022/ng-nest-ui-cascade.mjs +3 -3
  9. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  10. package/fesm2022/ng-nest-ui-color-picker.mjs +5 -5
  11. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  12. package/fesm2022/ng-nest-ui-core.mjs +2 -1
  13. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  14. package/fesm2022/ng-nest-ui-date-picker.mjs +6 -6
  15. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  16. package/fesm2022/ng-nest-ui-dialog.mjs +4 -4
  17. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  18. package/fesm2022/ng-nest-ui-drawer.mjs +2 -2
  19. package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
  20. package/fesm2022/ng-nest-ui-dropdown.mjs +5 -7
  21. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  22. package/fesm2022/ng-nest-ui-input.mjs +2 -2
  23. package/fesm2022/ng-nest-ui-message-box.mjs +0 -1
  24. package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
  25. package/fesm2022/ng-nest-ui-select.mjs +3 -3
  26. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  27. package/fesm2022/ng-nest-ui-sender.mjs +2 -2
  28. package/fesm2022/ng-nest-ui-sender.mjs.map +1 -1
  29. package/fesm2022/ng-nest-ui-tag.mjs +3 -3
  30. package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
  31. package/fesm2022/ng-nest-ui-textarea.mjs +6 -3
  32. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  33. package/fesm2022/ng-nest-ui-time-picker.mjs +3 -3
  34. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  35. package/fesm2022/ng-nest-ui-tree-select.mjs +3 -3
  36. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  37. package/fesm2022/ng-nest-ui-tree.mjs +2 -2
  38. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  39. package/package.json +32 -32
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-color-picker.mjs","sources":["../../../../lib/ng-nest/ui/color-picker/color-picker.property.ts","../../../../lib/ng-nest/ui/color-picker/color-picker-portal.component.ts","../../../../lib/ng-nest/ui/color-picker/color-picker-portal.component.html","../../../../lib/ng-nest/ui/color-picker/color-map.data.ts","../../../../lib/ng-nest/ui/color-picker/color-picker.component.ts","../../../../lib/ng-nest/ui/color-picker/color-picker.component.html","../../../../lib/ng-nest/ui/color-picker/color-picker.directive.ts","../../../../lib/ng-nest/ui/color-picker/color-picker.module.ts","../../../../lib/ng-nest/ui/color-picker/ng-nest-ui-color-picker.ts"],"sourcesContent":["import { XToBoolean, XToCssPixelValue } from '@ng-nest/ui/core';\r\nimport { Component, TemplateRef, input, model } from '@angular/core';\r\nimport { XFormControlFunction, XFormOption } from '@ng-nest/ui/base-form';\r\nimport type {\r\n XAlign,\r\n XBoolean,\r\n XCorner,\r\n XDirection,\r\n XFloatLabel,\r\n XJustify,\r\n XNumber,\r\n XSize,\r\n XTemplate,\r\n XVariant\r\n} from '@ng-nest/ui/core';\r\n\r\n/**\r\n * ColorPicker\r\n * @selector x-color-picker\r\n * @decorator component\r\n */\r\nexport const XColorPickerPrefix = 'x-color-picker';\r\nconst X_COLOR_CONFIG_NAME = 'colorPicker';\r\n\r\n/**\r\n * ColorPicker Property\r\n */\r\n@Component({ selector: `${XColorPickerPrefix}-property`, template: '' })\r\nexport class XColorPickerProperty extends XFormControlFunction(X_COLOR_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 形态变体\r\n * @en_US Input variant\r\n */\r\n readonly variant = input<XColorPickerVariant>(this.config?.variant ?? 'outlined');\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n readonly placement = input<XCorner>(this.config?.placement ?? 'bottom-start');\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n readonly clearable = input<boolean, XBoolean>(this.config?.clearable ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n readonly bordered = input<boolean, XBoolean>(this.config?.bordered ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 输入框样式\r\n * @en_US Input Style\r\n */\r\n readonly inputStyle = input<{ [style: string]: any }>();\r\n /**\r\n * @zh_CN 浮动标签\r\n * @en_US Float label\r\n */\r\n readonly floatLabel = input<XColorPickerFloatLabel | null>(this.config?.floatLabel ?? null);\r\n /**\r\n * @zh_CN 固定浮动标签\r\n * @en_US Fixed float label\r\n */\r\n readonly floatFixed = input<boolean, XBoolean>(this.config?.floatFixed ?? false, { transform: XToBoolean });\r\n /**\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n override readonly size = input<XSize>(this.config?.size ?? 'medium');\r\n /**\r\n * @zh_CN 输入框点击样式\r\n * @en_US Input pointer\r\n */\r\n override readonly pointer = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 标签\r\n * @en_US Label\r\n */\r\n override readonly label = input<XTemplate>('');\r\n /**\r\n * @zh_CN 标签宽度\r\n * @en_US Label width\r\n */\r\n override readonly labelWidth = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 标签文字对齐方式\r\n * @en_US Label text alignment method\r\n */\r\n override readonly labelAlign = input<XAlign>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素水平排列方式\r\n * @en_US The level of sub-element level arrangement under flex layout\r\n */\r\n override readonly justify = input<XJustify>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素垂直排列方式\r\n * @en_US sub-element vertical arrangement method under flex layout\r\n */\r\n override readonly align = input<XAlign>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向\r\n * @en_US The direction of the sub-element arrangement under flex layout\r\n */\r\n override readonly direction = input<XDirection>('column');\r\n /**\r\n * @zh_CN 输入提示信息\r\n * @en_US Enter prompt information\r\n */\r\n override readonly placeholder = input<string | string[]>('');\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n override readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 必填\r\n * @en_US Required\r\n */\r\n override readonly required = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Readonly\r\n */\r\n override readonly readonly = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 值模板\r\n * @en_US Node template\r\n */\r\n override readonly valueTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 值模板参数\r\n * @en_US Node template\r\n */\r\n override readonly valueTplContext = input();\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n override readonly before = input<XTemplate>();\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n override readonly after = input<XTemplate>();\r\n /**\r\n * @zh_CN 正则验证规则\r\n * @en_US Regular verification rules\r\n */\r\n override readonly pattern = input<RegExp | RegExp[] | any>(null);\r\n /**\r\n * @zh_CN 验证不通过提示文字\r\n * @en_US Verify not pass the prompt text\r\n */\r\n override readonly message = input<string | string[]>([]);\r\n /**\r\n * @zh_CN 激活状态\r\n * @en_US Activation state\r\n */\r\n override readonly active = model<boolean>(false);\r\n /**\r\n * @zh_CN 输入验证函数\r\n * @en_US Enter the verification function\r\n */\r\n override readonly inputValidator = input<(value: any) => boolean>();\r\n}\r\n\r\n/**\r\n * ColorPicker Option\r\n */\r\nexport interface XColorPickerOption extends XFormOption {\r\n /**\r\n * @zh_CN 形态变体\r\n * @en_US Input variant\r\n */\r\n variant?: XColorPickerVariant;\r\n /**\r\n * @zh_CN 浮动标签\r\n * @en_US Float label\r\n */\r\n floatLabel?: XColorPickerFloatLabel;\r\n /**\r\n * @zh_CN 固定浮动标签\r\n * @en_US Fixed float label\r\n */\r\n floatFixed?: boolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n placement?: XCorner;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n bordered?: boolean;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n size?: XSize;\r\n /**\r\n * @zh_CN 输入框点击样式\r\n * @en_US Input pointer\r\n */\r\n pointer?: boolean;\r\n /**\r\n * @zh_CN 标签\r\n * @en_US Label\r\n */\r\n label?: string;\r\n /**\r\n * @zh_CN 标签宽度\r\n * @en_US Label width\r\n */\r\n labelWidth?: string;\r\n /**\r\n * @zh_CN 标签文字对齐方式\r\n * @en_US Label text alignment method\r\n */\r\n labelAlign?: XAlign;\r\n /**\r\n * @zh_CN flex 布局下的子元素水平排列方式\r\n * @en_US The level of sub-element level arrangement under flex layout\r\n */\r\n justify?: XJustify;\r\n /**\r\n * @zh_CN flex 布局下的子元素垂直排列方式\r\n * @en_US sub-element vertical arrangement method under flex layout\r\n */\r\n align?: XAlign;\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向\r\n * @en_US The direction of the sub-element arrangement under flex layout\r\n */\r\n direction?: XDirection;\r\n /**\r\n * @zh_CN 输入提示信息\r\n * @en_US Enter prompt information\r\n */\r\n placeholder?: string;\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n disabled?: boolean;\r\n /**\r\n * @zh_CN 必填\r\n * @en_US Required\r\n */\r\n required?: boolean;\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Readonly\r\n */\r\n readonly?: boolean;\r\n /**\r\n * @zh_CN 值模板\r\n * @en_US Node template\r\n */\r\n valueTpl?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 值模板参数\r\n * @en_US Node template\r\n */\r\n valueTplContext?: any;\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n before?: XTemplate;\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n after?: XTemplate;\r\n /**\r\n * @zh_CN 正则验证规则\r\n * @en_US Regular verification rules\r\n */\r\n pattern?: RegExp | RegExp[];\r\n /**\r\n * @zh_CN 验证不通过提示文字\r\n * @en_US Verify not pass the prompt text\r\n */\r\n message?: string | string[];\r\n /**\r\n * @zh_CN 激活状态\r\n * @en_US Activation state\r\n */\r\n active?: boolean;\r\n /**\r\n * @zh_CN 输入验证函数\r\n * @en_US Enter the verification function\r\n */\r\n inputValidator?: (value: any) => boolean;\r\n}\r\n\r\n/**\r\n * @zh_CN 颜色种类\r\n * @en_US Color type\r\n */\r\nexport type XColorType = 'hex' | 'rgba' | 'hsla';\r\n\r\n/**\r\n * @zh_CN 浮动标签类型\r\n * @en_US Float label type\r\n */\r\nexport type XColorPickerFloatLabel = XFloatLabel;\r\n\r\n/**\r\n * @zh_CN 输入框形态变体\r\n * @en_US Input box variant\r\n */\r\nexport type XColorPickerVariant = XVariant;\r\n\r\n/**\r\n * ColorPicker-Portal\r\n * @selector x-color-picker-portal\r\n * @decorator component\r\n */\r\nexport const XColorPickerPortalPrefix = 'x-color-picker-portal';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n OnInit,\r\n ElementRef,\r\n Renderer2,\r\n HostListener,\r\n HostBinding,\r\n inject,\r\n input,\r\n output,\r\n model,\r\n viewChild,\r\n signal,\r\n DestroyRef,\r\n SimpleChanges,\r\n OnChanges,\r\n AfterViewInit,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { XColorPickerPortalPrefix, XColorType } from './color-picker.property';\r\nimport { XIsChange, XPositionTopBottom } from '@ng-nest/ui/core';\r\nimport { XSliderSelectComponent } from '@ng-nest/ui/slider-select';\r\nimport { Subject } from 'rxjs';\r\nimport { CdkDragMove } from '@angular/cdk/drag-drop';\r\nimport { DecimalPipe, NgTemplateOutlet, PercentPipe } from '@angular/common';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { XTabsComponent, XTabComponent } from '@ng-nest/ui/tabs';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: `${XColorPickerPortalPrefix}`,\r\n imports: [\r\n FormsModule,\r\n DragDropModule,\r\n NgTemplateOutlet,\r\n XSliderSelectComponent,\r\n XTabsComponent,\r\n XTabComponent,\r\n XInputComponent\r\n ],\r\n templateUrl: './color-picker-portal.component.html',\r\n styleUrls: ['./color-picker-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DecimalPipe, PercentPipe]\r\n})\r\nexport class XColorPickerPortalComponent implements OnInit, OnChanges, AfterViewInit {\r\n @HostBinding('animate.enter') animateEnter = 'x-connect-enter';\r\n @HostBinding('animate.leave') animateLeave = 'x-connect-leave';\r\n\r\n @HostListener('animationend', ['$event']) done() {\r\n if (this.destroy()) return;\r\n this.animating.emit(false);\r\n }\r\n @HostListener('animationstart', ['$event']) start() {\r\n if (this.destroy()) return;\r\n this.animating.emit(true);\r\n }\r\n\r\n panelRef = viewChild.required('panelRef', { read: ElementRef<HTMLElement> });\r\n plateRef = viewChild.required('plateRef', { read: ElementRef<HTMLElement> });\r\n transparentCom = viewChild.required('transparentCom', { read: XSliderSelectComponent });\r\n value = model<string>('');\r\n inputCom = input<XInputComponent>();\r\n placement = input<XPositionTopBottom>();\r\n panelTemplate = input<TemplateRef<any>>();\r\n\r\n animating = output<boolean>();\r\n nodeClick = output<string>();\r\n\r\n transparentRail = signal<HTMLElement | null>(null);\r\n sliderColorNum = signal(0);\r\n type = signal<XColorType | null>(null);\r\n offset = signal(0);\r\n panel = signal<DOMRect | null>(null);\r\n plate = signal<DOMRect | null>(null);\r\n transformX = signal(0);\r\n transformY = signal(0);\r\n initTransformX = signal(0);\r\n initTransformY = signal(0);\r\n drag = signal(false);\r\n\r\n rgba = signal<{ r?: number; g?: number; b?: number; a?: number }>({ a: 1 });\r\n hsla = signal<{ h?: number; s?: number; l?: number; a?: number; sp?: string; lp?: string }>({\r\n h: 0,\r\n a: 1\r\n });\r\n hex = signal<string>('');\r\n\r\n destroy = signal(false);\r\n private unSubject = new Subject<void>();\r\n private destroyRef = inject(DestroyRef);\r\n\r\n private renderer = inject(Renderer2);\r\n private decimal = inject(DecimalPipe);\r\n private percent = inject(PercentPipe);\r\n\r\n ngOnInit(): void {\r\n this.colorConvert();\r\n this.destroyRef.onDestroy(() => {\r\n this.destroy.set(true);\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.panel.set(this.panelRef().nativeElement.getBoundingClientRect());\r\n this.plate.set(this.plateRef().nativeElement.getBoundingClientRect());\r\n this.offset.set((this.panel()!.width - this.plate()!.width) / 2);\r\n this.transparentRail.set(\r\n this.transparentCom().elementRef.nativeElement.querySelector('.x-slider-select-rail div')!\r\n );\r\n this.setPanelValue();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { value } = simples;\r\n if (XIsChange(value)) !this.drag() && this.colorConvert();\r\n }\r\n\r\n setPanelValue() {\r\n this.setTransform();\r\n this.setPlateBackground();\r\n this.setRailBackground();\r\n }\r\n\r\n hexChange() {\r\n if (this.drag() || !/(^#[0-9A-F]{6}$)/i.test(this.hex())) return;\r\n this.rgba.set(this.hexToRgba(this.hex()));\r\n this.hsla.set(this.rgbaToHsla(this.rgba()));\r\n this.setHslaPercent();\r\n this.setTransform();\r\n this.setPlateBackground();\r\n this.setValue();\r\n }\r\n\r\n stopPropagation(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n colorConvert() {\r\n const value = this.value()!;\r\n if (/^#/.test(value)) {\r\n this.hex.set(value);\r\n this.rgba.set(this.hexToRgba(this.hex()));\r\n this.hsla.set(this.rgbaToHsla(this.rgba()));\r\n this.setHslaPercent();\r\n this.type.set('hex');\r\n } else if (/rgb/.test(value)) {\r\n this.rgbaConvert(value);\r\n this.hex.set(this.rgbaToHex(this.rgba()));\r\n this.hsla.set(this.rgbaToHsla(this.rgba()));\r\n this.setHslaPercent();\r\n this.type.set('rgba');\r\n } else if (/hsl/.test(value)) {\r\n this.hslaConvert(value);\r\n this.rgba.set(this.hslaToRgba(this.hsla()));\r\n this.hex.set(this.rgbaToHex(this.rgba()));\r\n this.type.set('hsla');\r\n }\r\n this.setPanelValue();\r\n }\r\n\r\n rgbaConvert(str: string) {\r\n let rgba = str\r\n .replace(/rgba?\\(/, '')\r\n .replace(/rgb?\\(/, '')\r\n .replace(/\\)/, '')\r\n .replace(/[\\s+]/g, '')\r\n .split(',');\r\n if (rgba.length > 2) {\r\n this.rgba.set({\r\n r: Number(rgba[0]),\r\n g: Number(rgba[1]),\r\n b: Number(rgba[2]),\r\n a: Number(rgba.length > 3 ? rgba[3] : 1)\r\n });\r\n }\r\n }\r\n\r\n hslaConvert(str: string) {\r\n let hsla = str\r\n .replace(/hsla?\\(/, '')\r\n .replace(/hsl?\\(/, '')\r\n .replace(/\\)/, '')\r\n .replace(/[\\s+]/g, '')\r\n .split(',');\r\n if (hsla.length > 2) {\r\n this.hsla.set({\r\n h: Number(hsla[0]),\r\n s: Number(hsla[1].replace('%', '')) / 100,\r\n l: Number(hsla[2].replace('%', '')) / 100,\r\n a: Number(hsla.length > 3 ? hsla[3] : 1)\r\n });\r\n this.setHslaPercent();\r\n }\r\n }\r\n\r\n plateClick(event: MouseEvent) {\r\n if (this.drag()) return;\r\n const rect = this.plateRef().nativeElement.getBoundingClientRect();\r\n const left = event.clientX - rect.left;\r\n const top = event.clientY - rect.top;\r\n this.transformX.set(left - this.offset());\r\n this.transformY.set(top - this.offset());\r\n this.initTransformX.set(this.transformX());\r\n this.initTransformY.set(this.transformY());\r\n this.setLetfTop(left, top);\r\n }\r\n\r\n setTransform() {\r\n if (!this.plate()) return;\r\n let hsv = this.hslToHsv(this.hsla().h!, this.hsla().s!, this.hsla().l!);\r\n this.transformX.set(hsv.s * this.plate()!.width - this.offset());\r\n this.transformY.set((1 - hsv.v) * this.plate()!.height - this.offset());\r\n this.initTransformX.set(this.transformX());\r\n this.initTransformY.set(this.transformY());\r\n }\r\n\r\n started() {\r\n this.drag.set(true);\r\n }\r\n\r\n ended() {\r\n this.initTransformX.set(this.transformX());\r\n this.initTransformY.set(this.transformY());\r\n setTimeout(() => {\r\n this.drag.set(false);\r\n });\r\n }\r\n\r\n moved(drag: CdkDragMove) {\r\n const transform = drag.source.getFreeDragPosition();\r\n drag.source.reset();\r\n this.transformX.set(transform.x + this.initTransformX());\r\n this.transformY.set(transform.y + this.initTransformY());\r\n\r\n const left = this.transformX() + this.offset();\r\n const top = this.transformY() + this.offset();\r\n this.setLetfTop(left, top);\r\n }\r\n\r\n setLetfTop(left: number, top: number) {\r\n let s = left / this.plate()!.width;\r\n let v = 1 - top / this.plate()!.height;\r\n let l = ((2 - s) * v) / 2;\r\n if (l !== 0) {\r\n if (l === 1) {\r\n s = 0;\r\n } else if (l < 0.5) {\r\n s = (s * v) / (l * 2);\r\n } else {\r\n s = (s * v) / (2 - l * 2);\r\n }\r\n }\r\n this.hsla.update((x) => {\r\n x.s = Number(this.decimal.transform(s, '1.2-2'));\r\n x.l = Number(this.decimal.transform(l, '1.2-2'));\r\n return { ...x };\r\n });\r\n this.setHslaPercent();\r\n this.rgba.set(this.hslaToRgba(this.hsla()));\r\n this.hex.set(this.rgbaToHex(this.rgba()));\r\n this.setValue();\r\n }\r\n\r\n setHslaPercent() {\r\n this.hsla.update((x) => {\r\n x.sp = this.hsla().s === 0 ? '0%' : (this.percent.transform(this.hsla().s, '1.0-0') as string);\r\n return { ...x };\r\n });\r\n this.hsla.update((x) => {\r\n x.lp = this.hsla().l === 0 ? '0%' : (this.percent.transform(this.hsla().l, '1.0-0') as string);\r\n return { ...x };\r\n });\r\n }\r\n\r\n hueChange() {\r\n this.setPlateBackground();\r\n this.rgba.set(this.hslaToRgba(this.hsla()));\r\n this.hex.set(this.rgbaToHex(this.rgba()));\r\n this.setValue();\r\n }\r\n\r\n setPlateBackground() {\r\n if (!this.plateRef()) return;\r\n this.renderer.setStyle(this.plateRef().nativeElement, 'background-color', `hsl(${this.hsla().h}, 100%, 50%)`);\r\n }\r\n\r\n setRailBackground() {\r\n if (!this.transparentRail()) return;\r\n this.renderer.setStyle(\r\n this.transparentRail(),\r\n 'background',\r\n `linear-gradient(to right, rgba(${this.rgba().r}, ${this.rgba().g}, ${this.rgba().b}, 0) 0%, rgba(${this.rgba().r}, ${this.rgba().g}, ${this.rgba().b}, 1) 100%)`\r\n );\r\n }\r\n\r\n transparentChange() {\r\n this.rgba.set(this.hslaToRgba(this.hsla()));\r\n this.hex.set(this.rgbaToHex(this.rgba()));\r\n this.setValue();\r\n }\r\n\r\n setValue() {\r\n this.setValueByType();\r\n this.setRailBackground();\r\n this.nodeClick.emit(this.value());\r\n }\r\n\r\n setValueByType() {\r\n if (this.type() === 'hex') {\r\n this.value.set(`${this.hex()}`);\r\n } else if (this.type() === 'rgba') {\r\n this.value.set(`rgba(${this.rgba().r}, ${this.rgba().g}, ${this.rgba().b}, ${this.rgba().a})`);\r\n } else if (this.type() === 'hsla') {\r\n this.value.set(`hsla(${this.hsla().h}, ${this.hsla().sp}, ${this.hsla().lp}, ${this.hsla().a})`);\r\n }\r\n }\r\n\r\n hslaToRgba(hsla: { h?: number; s?: number; l?: number; a?: number }) {\r\n let r, g, b;\r\n let [h, s, l] = [hsla.h as number, hsla.s as number, hsla.l as number];\r\n if (s == 0) {\r\n r = g = b = l;\r\n } else {\r\n let hue2rgb = (p: number, q: number, t: number) => {\r\n if (t < 0) t += 1;\r\n if (t > 1) t -= 1;\r\n if (t < 1 / 6) return p + (q - p) * 6 * t;\r\n if (t < 1 / 2) return q;\r\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\r\n return p;\r\n };\r\n\r\n let q = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n let p = 2 * l - q;\r\n r = hue2rgb(p, q, h / 360 + 1 / 3);\r\n g = hue2rgb(p, q, h / 360);\r\n b = hue2rgb(p, q, h / 360 - 1 / 3);\r\n }\r\n return {\r\n r: Math.round(r * 255),\r\n g: Math.round(g * 255),\r\n b: Math.round(b * 255),\r\n a: Number(hsla.a)\r\n };\r\n }\r\n\r\n rgbaToHex(rgba: { r?: number; g?: number; b?: number; a?: number }) {\r\n let hex = [\r\n (rgba.r as number).toString(16),\r\n (rgba.g as number).toString(16),\r\n (rgba.b as number).toString(16),\r\n Math.round(255 * (rgba.a as number)).toString(16)\r\n ];\r\n hex.forEach((x, index) => {\r\n if (index === 3 && x === 'ff') {\r\n hex[index] = '';\r\n }\r\n if (x.length === 1) {\r\n hex[index] = '0' + x;\r\n }\r\n });\r\n return `#${hex.join('')}`;\r\n }\r\n\r\n rgbaToHsla(rgba: { r?: number; g?: number; b?: number; a?: number }) {\r\n let [r, g, b] = [(rgba.r as number) / 255, (rgba.g as number) / 255, (rgba.b as number) / 255];\r\n let [max, min] = [Math.max(r, g, b), Math.min(r, g, b)];\r\n let h = 0;\r\n let s = 0;\r\n let l = (max + min) / 2;\r\n\r\n if (max === min) {\r\n h = s = 0;\r\n } else {\r\n let d = max - min;\r\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\r\n switch (max) {\r\n case r:\r\n h = (g - b) / d + (g < b ? 6 : 0);\r\n break;\r\n case g:\r\n h = (b - r) / d + 2;\r\n break;\r\n case b:\r\n h = (r - g) / d + 4;\r\n break;\r\n }\r\n h /= 6;\r\n }\r\n\r\n return {\r\n h: Math.round(h * 360),\r\n s: Number(this.decimal.transform(s, '1.2-2')),\r\n l: Number(this.decimal.transform(l, '1.2-2')),\r\n a: Number(rgba.a)\r\n };\r\n }\r\n\r\n hexToRgba(hex: string) {\r\n let hexNum = hex.substring(1);\r\n let a = 1;\r\n if (hexNum.length === 8) {\r\n a = Number(this.decimal.transform(Number('0x' + hexNum.slice(-2)) / 255, '1.2-2'));\r\n hexNum = hexNum.substring(0, hexNum.length - 2);\r\n }\r\n let num = Number('0x' + (hexNum.length < 6 ? this.repeatLetter(hexNum, 2) : hexNum));\r\n return { r: num >> 16, g: (num >> 8) & 0xff, b: num & 0xff, a: a };\r\n }\r\n\r\n hslToHsv(h: number, s: number, l: number) {\r\n let hHsv, sHsv, v;\r\n\r\n hHsv = h;\r\n\r\n if (l == 0) {\r\n sHsv = 0;\r\n v = 0;\r\n } else if (l > 0 && l <= 0.5) {\r\n sHsv = (2 * s) / (1 + s);\r\n v = l * (1 + s);\r\n } else {\r\n sHsv = (2 * s - 2 * s * l) / (s - s * l + l);\r\n v = s - s * l + l;\r\n }\r\n\r\n return {\r\n h: hHsv,\r\n s: Number(this.decimal.transform(sHsv, '1.2-2')),\r\n v: Number(this.decimal.transform(v, '1.2-2'))\r\n };\r\n }\r\n\r\n repeatWord(word: string, num: number) {\r\n let result = '';\r\n for (let i = 0; i < num; i++) {\r\n result += word;\r\n }\r\n return result;\r\n }\r\n\r\n repeatLetter(word: string, num: number) {\r\n let result = '';\r\n for (let letter of word) {\r\n result += this.repeatWord(letter, num);\r\n }\r\n return result;\r\n }\r\n}\r\n","<div class=\"x-color-picker-portal\" tabindex=\"-1\" (click)=\"stopPropagation($event)\">\r\n <div #panelRef class=\"x-color-picker-portal-panel\">\r\n <div #plateRef class=\"x-color-picker-portal-plate\" (click)=\"plateClick($event)\">\r\n <div class=\"x-color-picker-portal-white\"></div>\r\n <div class=\"x-color-picker-portal-black\"></div>\r\n <div\r\n #dragCom\r\n class=\"x-color-picker-portal-cursor\"\r\n [style.left.px]=\"transformX()\"\r\n [style.top.px]=\"transformY()\"\r\n cdkDrag\r\n [cdkDragBoundary]=\"panelRef\"\r\n (cdkDragStarted)=\"started()\"\r\n (cdkDragEnded)=\"ended()\"\r\n (cdkDragMoved)=\"moved($event)\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-tool\">\r\n <div class=\"x-color-picker-portal-operations\">\r\n <!-- <x-button icon=\"fto-edit-2\" onlyIcon></x-button> -->\r\n <div class=\"x-color-picker-portal-selected\">\r\n <div [style.background-color]=\"value()\"></div>\r\n </div>\r\n <div class=\"x-color-picker-portal-area\">\r\n <div class=\"x-color-picker-portal-slider\">\r\n <x-slider-select\r\n [style.width.%]=\"100\"\r\n [(ngModel)]=\"hsla().h\"\r\n min=\"0\"\r\n max=\"360\"\r\n step=\"1\"\r\n (dragStartEmit)=\"started()\"\r\n (dragEndEmit)=\"ended()\"\r\n (ngModelChange)=\"hueChange()\"\r\n ></x-slider-select>\r\n </div>\r\n <div class=\"x-color-picker-portal-transparent\">\r\n <x-slider-select\r\n [style.width.%]=\"100\"\r\n #transparentCom\r\n [(ngModel)]=\"hsla().a\"\r\n min=\"0\"\r\n max=\"1\"\r\n step=\"0.01\"\r\n (dragStarted)=\"started()\"\r\n (dragEnded)=\"ended()\"\r\n (ngModelChange)=\"transparentChange()\"\r\n ></x-slider-select>\r\n <div class=\"x-color-picker-portal-alpha\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-type\">\r\n <x-tabs animated=\"false\" justify=\"center\">\r\n <x-tab label=\"HEX\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [style.width.%]=\"100\" [(ngModel)]=\"hex\" (ngModelChange)=\"hexChange()\"></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"RGBA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"rgba().r\" disabled></x-input>\r\n <x-input [(ngModel)]=\"rgba().g\" disabled></x-input>\r\n <x-input [(ngModel)]=\"rgba().b\" disabled></x-input>\r\n <x-input [(ngModel)]=\"rgba().a\" disabled></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"HSLA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"hsla().h\" disabled></x-input>\r\n <x-input [(ngModel)]=\"hsla().sp\" disabled></x-input>\r\n <x-input [(ngModel)]=\"hsla().lp\" disabled></x-input>\r\n <x-input [(ngModel)]=\"hsla().a\" disabled></x-input>\r\n </div>\r\n </x-tab>\r\n </x-tabs>\r\n </div>\r\n <div class=\"x-color-picker-panel\">\r\n <ng-container *ngTemplateOutlet=\"panelTemplate()!\"></ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n","export const XColorPickerColorMap: { [key: string]: string } = {\r\n aliceblue: '#f0f8ff',\r\n antiquewhite: '#faebd7',\r\n aqua: '#00ffff',\r\n aquamarine: '#7fffd4',\r\n azure: '#f0ffff',\r\n beige: '#f5f5dc',\r\n bisque: '#ffe4c4',\r\n black: '#000000',\r\n blanchedalmond: '#ffebcd',\r\n blue: '#0000ff',\r\n blueviolet: '#8a2be2',\r\n brown: '#a52a2a',\r\n burlywood: '#deb887',\r\n cadetblue: '#5f9ea0',\r\n chartreuse: '#7fff00',\r\n chocolate: '#d2691e',\r\n coral: '#ff7f50',\r\n cornflowerblue: '#6495ed',\r\n cornsilk: '#fff8dc',\r\n crimson: '#dc143c',\r\n cyan: '#00ffff',\r\n darkblue: '#00008b',\r\n darkcyan: '#008b8b',\r\n darkgoldenrod: '#b8860b',\r\n darkgray: '#a9a9a9',\r\n darkgreen: '#006400',\r\n darkgrey: '#a9a9a9',\r\n darkkhaki: '#bdb76b',\r\n darkmagenta: '#8b008b',\r\n darkolivegreen: '#556b2f',\r\n darkorange: '#ff8c00',\r\n darkorchid: '#9932cc',\r\n darkred: '#8b0000',\r\n darksalmon: '#e9967a',\r\n darkseagreen: '#8fbc8f',\r\n darkslateblue: '#483d8b',\r\n darkslategray: '#2f4f4f',\r\n darkslategrey: '#2f4f4f',\r\n darkturquoise: '#00ced1',\r\n darkviolet: '#9400d3',\r\n deeppink: '#ff1493',\r\n deepskyblue: '#00bfff',\r\n dimgray: '#696969',\r\n dimgrey: '#696969',\r\n dodgerblue: '#1e90ff',\r\n firebrick: '#b22222',\r\n floralwhite: '#fffaf0',\r\n forestgreen: '#228b22',\r\n fuchsia: '#ff00ff',\r\n gainsboro: '#dcdcdc',\r\n ghostwhite: '#f8f8ff',\r\n gold: '#ffd700',\r\n goldenrod: '#daa520',\r\n gray: '#808080',\r\n green: '#008000',\r\n greenyellow: '#adff2f',\r\n grey: '#808080',\r\n honeydew: '#f0fff0',\r\n hotpink: '#ff69b4',\r\n indianred: '#cd5c5c',\r\n indigo: '#4b0082',\r\n ivory: '#fffff0',\r\n khaki: '#f0e68c',\r\n lavender: '#e6e6fa',\r\n lavenderblush: '#fff0f5',\r\n lawngreen: '#7cfc00',\r\n lemonchiffon: '#fffacd',\r\n lightblue: '#add8e6',\r\n lightcoral: '#f08080',\r\n lightcyan: '#e0ffff',\r\n lightgoldenrodyellow: '#fafad2',\r\n lightgray: '#d3d3d3',\r\n lightgreen: '#90ee90',\r\n lightgrey: '#d3d3d3',\r\n lightpink: '#ffb6c1',\r\n lightsalmon: '#ffa07a',\r\n lightseagreen: '#20b2aa',\r\n lightskyblue: '#87cefa',\r\n lightslategray: '#778899',\r\n lightslategrey: '#778899',\r\n lightsteelblue: '#b0c4de',\r\n lightyellow: '#ffffe0',\r\n lime: '#00ff00',\r\n limegreen: '#32cd32',\r\n linen: '#faf0e6',\r\n magenta: '#ff00ff',\r\n maroon: '#800000',\r\n mediumaquamarine: '#66cdaa',\r\n mediumblue: '#0000cd',\r\n mediumorchid: '#ba55d3',\r\n mediumpurple: '#9370db',\r\n mediumseagreen: '#3cb371',\r\n mediumslateblue: '#7b68ee',\r\n mediumspringgreen: '#00fa9a',\r\n mediumturquoise: '#48d1cc',\r\n mediumvioletred: '#c71585',\r\n midnightblue: '#191970',\r\n mintcream: '#f5fffa',\r\n mistyrose: '#ffe4e1',\r\n moccasin: '#ffe4b5',\r\n navajowhite: '#ffdead',\r\n navy: '#000080',\r\n oldlace: '#fdf5e6',\r\n olive: '#808000',\r\n olivedrab: '#6b8e23',\r\n orange: '#ffa500',\r\n orangered: '#ff4500',\r\n orchid: '#da70d6',\r\n palegoldenrod: '#eee8aa',\r\n palegreen: '#98fb98',\r\n paleturquoise: '#afeeee',\r\n palevioletred: '#db7093',\r\n papayawhip: '#ffefd5',\r\n peachpuff: '#ffdab9',\r\n peru: '#cd853f',\r\n pink: '#ffc0cb',\r\n plum: '#dda0dd',\r\n powderblue: '#b0e0e6',\r\n purple: '#800080',\r\n rebeccapurple: '#663399',\r\n red: '#ff0000',\r\n rosybrown: '#bc8f8f',\r\n royalblue: '#4169e1',\r\n saddlebrown: '#8b4513',\r\n salmon: '#fa8072',\r\n sandybrown: '#f4a460',\r\n seagreen: '#2e8b57',\r\n seashell: '#fff5ee',\r\n sienna: '#a0522d',\r\n silver: '#c0c0c0',\r\n skyblue: '#87ceeb',\r\n slateblue: '#6a5acd',\r\n slategray: '#708090',\r\n slategrey: '#708090',\r\n snow: '#fffafa',\r\n springgreen: '#00ff7f',\r\n steelblue: '#4682b4',\r\n tan: '#d2b48c',\r\n teal: '#008080',\r\n thistle: '#d8bfd8',\r\n tomato: '#ff6347',\r\n turquoise: '#40e0d0',\r\n violet: '#ee82ee',\r\n wheat: '#f5deb3',\r\n white: '#ffffff',\r\n whitesmoke: '#f5f5f5',\r\n yellow: '#ffff00',\r\n yellowgreen: '#9acd32'\r\n};\r\n","import { XColorPickerPortalComponent } from './color-picker-portal.component';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { Subject, fromEvent, of } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ViewContainerRef,\r\n inject,\r\n AfterViewInit,\r\n OnDestroy,\r\n viewChild,\r\n signal,\r\n computed,\r\n ComponentRef,\r\n effect,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { XColorPickerProperty } from './color-picker.property';\r\nimport { XIsEmpty, XCorner, XParents, XPlacement, XComputed } from '@ng-nest/ui/core';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport {\r\n Overlay,\r\n OverlayConfig,\r\n FlexibleConnectedPositionStrategy,\r\n ConnectedOverlayPositionChange,\r\n OverlayRef\r\n} from '@angular/cdk/overlay';\r\nimport { delay, filter, takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XColorPickerColorMap } from './color-map.data';\r\n\r\n@Component({\r\n selector: 'x-color-picker',\r\n imports: [FormsModule, ReactiveFormsModule, XInputComponent],\r\n templateUrl: './color-picker.component.html',\r\n styleUrls: ['./color-picker.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XColorPickerComponent)]\r\n})\r\nexport class XColorPickerComponent extends XColorPickerProperty implements OnInit, AfterViewInit, OnDestroy {\r\n colorPicker = viewChild.required('colorPicker', { read: ElementRef<HTMLElement> });\r\n inputCom = viewChild.required('inputCom', { read: XInputComponent });\r\n panelTemplate = viewChild.required<TemplateRef<any>>('panelTemplate');\r\n private doc = inject(DOCUMENT);\r\n primaryColor = XComputed(this.doc.documentElement).getPropertyValue('--x-primary').trim();\r\n\r\n inputStyleComputed = computed(() => ({\r\n backgroundColor: this.value(),\r\n color: 'transparent',\r\n ...this.inputStyle()\r\n }));\r\n\r\n inputClearable = signal(false);\r\n enter = signal(false);\r\n animating = signal(false);\r\n allowAgian = signal(true);\r\n portal!: XPortalOverlayRef<XColorPickerPortalComponent>;\r\n icon = signal('fto-chevron-down');\r\n closeSubject: Subject<void> = new Subject();\r\n document = inject(DOCUMENT);\r\n private unSubject = new Subject<void>();\r\n private portalService = inject(XPortalService);\r\n private viewContainerRef = inject(ViewContainerRef);\r\n private overlay = inject(Overlay);\r\n private elementRef = inject(ElementRef);\r\n\r\n private realPlacement = signal<XPlacement | null>(null);\r\n portalComponent = signal<ComponentRef<XColorPickerPortalComponent> | null>(null);\r\n portalOverlayRef = signal<OverlayRef | null>(null);\r\n\r\n constructor() {\r\n super();\r\n effect(() => {\r\n this.portalComponent()?.setInput(\r\n 'value',\r\n XColorPickerColorMap[this.value()] || this.value() || this.primaryColor\r\n );\r\n });\r\n effect(() => {\r\n this.portalComponent()?.setInput('placement', this.realPlacement());\r\n });\r\n effect(() => {\r\n this.portalComponent()?.setInput('inputCom', this.inputCom());\r\n });\r\n effect(() => {\r\n this.portalComponent()?.setInput('panelTemplate', this.panelTemplate());\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.setSubject();\r\n this.setParantScroll();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this.unSubject)).subscribe(() => {\r\n this.closePortal();\r\n });\r\n }\r\n\r\n menter() {\r\n if (this.disabledComputed()) return;\r\n this.enter.set(true);\r\n if (!this.clearable()) return;\r\n if (!XIsEmpty(this.value())) {\r\n this.icon.set('');\r\n this.inputClearable.set(true);\r\n }\r\n }\r\n\r\n mleave() {\r\n if (this.disabledComputed()) return;\r\n this.enter.set(false);\r\n if (!this.clearable()) return;\r\n if (this.inputClearable()) {\r\n this.icon.set('fto-chevron-down');\r\n this.inputClearable.set(false);\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value.set('');\r\n this.mleave();\r\n if (this.onChange) this.onChange(this.value());\r\n }\r\n\r\n portalAttached() {\r\n return this.portalOverlayRef()?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portalOverlayRef()?.detach();\r\n this.active.set(false);\r\n this.allowAgian.set(false);\r\n of(true)\r\n .pipe(delay(200))\r\n .subscribe(() => this.allowAgian.set(true));\r\n }\r\n }\r\n\r\n showPortal() {\r\n if (this.disabledComputed() || !this.allowAgian() || this.animating()) return;\r\n this.active.set(true);\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XColorPickerPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this.unSubject))\r\n .subscribe(() => {\r\n this.closeSubject.next();\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this.unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XCorner;\r\n if (place !== this.realPlacement()) {\r\n this.realPlacement.set(place);\r\n this.portalOverlayRef()?.updatePosition();\r\n }\r\n });\r\n }\r\n\r\n setParantScroll() {\r\n if (!this.document) return;\r\n const parents = XParents(this.elementRef.nativeElement);\r\n let firstScroll: HTMLElement | null = null;\r\n for (let item of parents) {\r\n if (item.clientHeight < item.scrollHeight) {\r\n firstScroll = item;\r\n break;\r\n }\r\n }\r\n if (firstScroll && firstScroll.tagName !== 'BODY') {\r\n fromEvent(firstScroll, 'scroll')\r\n .pipe(\r\n filter(() => this.portalAttached()!),\r\n takeUntil(this.unSubject)\r\n )\r\n .subscribe(() => {\r\n this.portalOverlayRef()?.updatePosition();\r\n const eract = this.elementRef.nativeElement.getBoundingClientRect();\r\n const frect = firstScroll!.getBoundingClientRect();\r\n if (eract.top + eract.height - frect.top < 0 || eract.bottom > frect.bottom) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n }\r\n }\r\n\r\n setInstance() {\r\n let { componentRef, overlayRef } = this.portal;\r\n this.portalComponent.set(componentRef!);\r\n this.portalOverlayRef.set(overlayRef!);\r\n this.realPlacement.set(this.placement());\r\n const { nodeClick, animating } = componentRef!.instance;\r\n\r\n nodeClick.subscribe((color: string) => this.onNodeClick(color));\r\n animating.subscribe((ing: boolean) => this.animating.set(ing));\r\n }\r\n\r\n onNodeClick(color: string) {\r\n this.value.set(color);\r\n this.inputCom().inputFocus('focus');\r\n if (this.onChange) this.onChange(this.value());\r\n this.formControlValidator();\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputCom().inputRef(),\r\n placement: [this.placement() as XCorner, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\r\n transformOriginOn: 'x-color-picker-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n this.portalAttached() && this.portalOverlayRef()?.updatePositionStrategy(this.setPlacement());\r\n }\r\n}\r\n","<div #colorPicker class=\"x-color-picker\">\r\n <div class=\"x-color-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()\"\r\n [inputValidator]=\"inputValidator()\"\r\n [icon]=\"icon()\"\r\n [placeholder]=\"placeholder()\"\r\n [readonly]=\"readonly()\"\r\n [clearable]=\"clearable() && inputClearable()\"\r\n [(ngModel)]=\"value\"\r\n [valueTpl]=\"valueTpl() ? valueTpl() : valueTemplate\"\r\n [valueTplContext]=\"valueTplContext()\"\r\n [size]=\"size()\"\r\n [bordered]=\"bordered()\"\r\n [before]=\"before()\"\r\n [after]=\"after()\"\r\n [pattern]=\"patternComputed()\"\r\n [message]=\"messageComputed()\"\r\n [pointer]=\"pointer()\"\r\n [variant]=\"variant()\"\r\n [floatLabel]=\"floatLabel()\"\r\n [floatFixed]=\"floatFixed()\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n\r\n <ng-template #valueTemplate>\r\n <div class=\"x-color-picker-template-value\">\r\n <div\r\n class=\"x-color-picker-template-color\"\r\n [style]=\"inputStyleComputed()\"\r\n [attr.title]=\"inputStyleComputed().backgroundColor\"\r\n ></div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #panelTemplate>\r\n <ng-content select=\"[xColorPickerPanel]\"></ng-content>\r\n </ng-template>\r\n </div>\r\n</div>\r\n","import { Directive, HostListener, inject, input } from '@angular/core';\r\nimport { XColorPickerComponent } from './color-picker.component';\r\nimport { XColorPickerColorMap } from './color-map.data';\r\n\r\n@Directive({\r\n selector: `[x-color-picker-option], x-color-picker-option`\r\n})\r\nexport class XColorPickerOptionDirective {\r\n color = input.required<string>({ alias: 'x-color-picker-option' });\r\n\r\n @HostListener('click', ['$event']) onSelectClick() {\r\n if (!this.colorPicker) return;\r\n this.colorPicker.value.set(XColorPickerColorMap[this.color()] || this.color());\r\n if (this.colorPicker.onChange) this.colorPicker.onChange(this.colorPicker.value());\r\n }\r\n colorPicker = inject(XColorPickerComponent, { optional: true });\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { XColorPickerComponent } from './color-picker.component';\r\nimport { XColorPickerOptionDirective } from './color-picker.directive';\r\n\r\n@NgModule({\r\n imports: [XColorPickerComponent, XColorPickerOptionDirective],\r\n exports: [XColorPickerComponent, XColorPickerOptionDirective]\r\n})\r\nexport class XColorPickerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-color-picker.mjs","sources":["../../../../lib/ng-nest/ui/color-picker/color-picker.property.ts","../../../../lib/ng-nest/ui/color-picker/color-picker-portal.component.ts","../../../../lib/ng-nest/ui/color-picker/color-picker-portal.component.html","../../../../lib/ng-nest/ui/color-picker/color-map.data.ts","../../../../lib/ng-nest/ui/color-picker/color-picker.component.ts","../../../../lib/ng-nest/ui/color-picker/color-picker.component.html","../../../../lib/ng-nest/ui/color-picker/color-picker.directive.ts","../../../../lib/ng-nest/ui/color-picker/color-picker.module.ts","../../../../lib/ng-nest/ui/color-picker/ng-nest-ui-color-picker.ts"],"sourcesContent":["import { XToBoolean, XToCssPixelValue } from '@ng-nest/ui/core';\r\nimport { Component, TemplateRef, input, model } from '@angular/core';\r\nimport { XFormControlFunction, XFormOption } from '@ng-nest/ui/base-form';\r\nimport type {\r\n XAlign,\r\n XBoolean,\r\n XCorner,\r\n XDirection,\r\n XFloatLabel,\r\n XJustify,\r\n XNumber,\r\n XSize,\r\n XTemplate,\r\n XVariant\r\n} from '@ng-nest/ui/core';\r\n\r\n/**\r\n * ColorPicker\r\n * @selector x-color-picker\r\n * @decorator component\r\n */\r\nexport const XColorPickerPrefix = 'x-color-picker';\r\nconst X_COLOR_CONFIG_NAME = 'colorPicker';\r\n\r\n/**\r\n * ColorPicker Property\r\n */\r\n@Component({ selector: `${XColorPickerPrefix}-property`, template: '' })\r\nexport class XColorPickerProperty extends XFormControlFunction(X_COLOR_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 形态变体\r\n * @en_US Input variant\r\n */\r\n readonly variant = input<XColorPickerVariant>(this.config?.variant ?? 'outlined');\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n readonly placement = input<XCorner>(this.config?.placement ?? 'bottom-start');\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n readonly clearable = input<boolean, XBoolean>(this.config?.clearable ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n readonly bordered = input<boolean, XBoolean>(this.config?.bordered ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 输入框样式\r\n * @en_US Input Style\r\n */\r\n readonly inputStyle = input<{ [style: string]: any }>();\r\n /**\r\n * @zh_CN 浮动标签\r\n * @en_US Float label\r\n */\r\n readonly floatLabel = input<XColorPickerFloatLabel | null>(this.config?.floatLabel ?? null);\r\n /**\r\n * @zh_CN 固定浮动标签\r\n * @en_US Fixed float label\r\n */\r\n readonly floatFixed = input<boolean, XBoolean>(this.config?.floatFixed ?? false, { transform: XToBoolean });\r\n /**\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n override readonly size = input<XSize>(this.config?.size ?? 'medium');\r\n /**\r\n * @zh_CN 输入框点击样式\r\n * @en_US Input pointer\r\n */\r\n override readonly pointer = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 标签\r\n * @en_US Label\r\n */\r\n override readonly label = input<XTemplate>('');\r\n /**\r\n * @zh_CN 标签宽度\r\n * @en_US Label width\r\n */\r\n override readonly labelWidth = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 标签文字对齐方式\r\n * @en_US Label text alignment method\r\n */\r\n override readonly labelAlign = input<XAlign>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素水平排列方式\r\n * @en_US The level of sub-element level arrangement under flex layout\r\n */\r\n override readonly justify = input<XJustify>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素垂直排列方式\r\n * @en_US sub-element vertical arrangement method under flex layout\r\n */\r\n override readonly align = input<XAlign>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向\r\n * @en_US The direction of the sub-element arrangement under flex layout\r\n */\r\n override readonly direction = input<XDirection>('column');\r\n /**\r\n * @zh_CN 输入提示信息\r\n * @en_US Enter prompt information\r\n */\r\n override readonly placeholder = input<string | string[]>('');\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n override readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 必填\r\n * @en_US Required\r\n */\r\n override readonly required = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Readonly\r\n */\r\n override readonly readonly = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 值模板\r\n * @en_US Node template\r\n */\r\n override readonly valueTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 值模板参数\r\n * @en_US Node template\r\n */\r\n override readonly valueTplContext = input();\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n override readonly before = input<XTemplate>();\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n override readonly after = input<XTemplate>();\r\n /**\r\n * @zh_CN 正则验证规则\r\n * @en_US Regular verification rules\r\n */\r\n override readonly pattern = input<RegExp | RegExp[] | any>(null);\r\n /**\r\n * @zh_CN 验证不通过提示文字\r\n * @en_US Verify not pass the prompt text\r\n */\r\n override readonly message = input<string | string[]>([]);\r\n /**\r\n * @zh_CN 激活状态\r\n * @en_US Activation state\r\n */\r\n override readonly active = model<boolean>(false);\r\n /**\r\n * @zh_CN 输入验证函数\r\n * @en_US Enter the verification function\r\n */\r\n override readonly inputValidator = input<(value: any) => boolean>();\r\n}\r\n\r\n/**\r\n * ColorPicker Option\r\n */\r\nexport interface XColorPickerOption extends XFormOption {\r\n /**\r\n * @zh_CN 形态变体\r\n * @en_US Input variant\r\n */\r\n variant?: XColorPickerVariant;\r\n /**\r\n * @zh_CN 浮动标签\r\n * @en_US Float label\r\n */\r\n floatLabel?: XColorPickerFloatLabel;\r\n /**\r\n * @zh_CN 固定浮动标签\r\n * @en_US Fixed float label\r\n */\r\n floatFixed?: boolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n placement?: XCorner;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n bordered?: boolean;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n size?: XSize;\r\n /**\r\n * @zh_CN 输入框点击样式\r\n * @en_US Input pointer\r\n */\r\n pointer?: boolean;\r\n /**\r\n * @zh_CN 标签\r\n * @en_US Label\r\n */\r\n label?: string;\r\n /**\r\n * @zh_CN 标签宽度\r\n * @en_US Label width\r\n */\r\n labelWidth?: string;\r\n /**\r\n * @zh_CN 标签文字对齐方式\r\n * @en_US Label text alignment method\r\n */\r\n labelAlign?: XAlign;\r\n /**\r\n * @zh_CN flex 布局下的子元素水平排列方式\r\n * @en_US The level of sub-element level arrangement under flex layout\r\n */\r\n justify?: XJustify;\r\n /**\r\n * @zh_CN flex 布局下的子元素垂直排列方式\r\n * @en_US sub-element vertical arrangement method under flex layout\r\n */\r\n align?: XAlign;\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向\r\n * @en_US The direction of the sub-element arrangement under flex layout\r\n */\r\n direction?: XDirection;\r\n /**\r\n * @zh_CN 输入提示信息\r\n * @en_US Enter prompt information\r\n */\r\n placeholder?: string;\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n disabled?: boolean;\r\n /**\r\n * @zh_CN 必填\r\n * @en_US Required\r\n */\r\n required?: boolean;\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Readonly\r\n */\r\n readonly?: boolean;\r\n /**\r\n * @zh_CN 值模板\r\n * @en_US Node template\r\n */\r\n valueTpl?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 值模板参数\r\n * @en_US Node template\r\n */\r\n valueTplContext?: any;\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n before?: XTemplate;\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n after?: XTemplate;\r\n /**\r\n * @zh_CN 正则验证规则\r\n * @en_US Regular verification rules\r\n */\r\n pattern?: RegExp | RegExp[];\r\n /**\r\n * @zh_CN 验证不通过提示文字\r\n * @en_US Verify not pass the prompt text\r\n */\r\n message?: string | string[];\r\n /**\r\n * @zh_CN 激活状态\r\n * @en_US Activation state\r\n */\r\n active?: boolean;\r\n /**\r\n * @zh_CN 输入验证函数\r\n * @en_US Enter the verification function\r\n */\r\n inputValidator?: (value: any) => boolean;\r\n}\r\n\r\n/**\r\n * @zh_CN 颜色种类\r\n * @en_US Color type\r\n */\r\nexport type XColorType = 'hex' | 'rgba' | 'hsla';\r\n\r\n/**\r\n * @zh_CN 浮动标签类型\r\n * @en_US Float label type\r\n */\r\nexport type XColorPickerFloatLabel = XFloatLabel;\r\n\r\n/**\r\n * @zh_CN 输入框形态变体\r\n * @en_US Input box variant\r\n */\r\nexport type XColorPickerVariant = XVariant;\r\n\r\n/**\r\n * ColorPicker-Portal\r\n * @selector x-color-picker-portal\r\n * @decorator component\r\n */\r\nexport const XColorPickerPortalPrefix = 'x-color-picker-portal';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n OnInit,\r\n ElementRef,\r\n Renderer2,\r\n HostListener,\r\n HostBinding,\r\n inject,\r\n input,\r\n output,\r\n model,\r\n viewChild,\r\n signal,\r\n DestroyRef,\r\n SimpleChanges,\r\n OnChanges,\r\n AfterViewInit,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { XColorPickerPortalPrefix, XColorType } from './color-picker.property';\r\nimport { XIsChange, XPositionTopBottom } from '@ng-nest/ui/core';\r\nimport { XSliderSelectComponent } from '@ng-nest/ui/slider-select';\r\nimport { Subject } from 'rxjs';\r\nimport { CdkDragMove } from '@angular/cdk/drag-drop';\r\nimport { DecimalPipe, NgTemplateOutlet, PercentPipe } from '@angular/common';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { XTabsComponent, XTabComponent } from '@ng-nest/ui/tabs';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: `${XColorPickerPortalPrefix}`,\r\n imports: [\r\n FormsModule,\r\n DragDropModule,\r\n NgTemplateOutlet,\r\n XSliderSelectComponent,\r\n XTabsComponent,\r\n XTabComponent,\r\n XInputComponent\r\n ],\r\n templateUrl: './color-picker-portal.component.html',\r\n styleUrls: ['./color-picker-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DecimalPipe, PercentPipe]\r\n})\r\nexport class XColorPickerPortalComponent implements OnInit, OnChanges, AfterViewInit {\r\n @HostBinding('animate.enter') animateEnter = 'x-connect-enter';\r\n @HostBinding('animate.leave') animateLeave = 'x-connect-leave';\r\n\r\n @HostListener('animationend') done() {\r\n if (this.destroy()) return;\r\n this.animating.emit(false);\r\n }\r\n @HostListener('animationstart') start() {\r\n if (this.destroy()) return;\r\n this.animating.emit(true);\r\n }\r\n\r\n panelRef = viewChild.required('panelRef', { read: ElementRef<HTMLElement> });\r\n plateRef = viewChild.required('plateRef', { read: ElementRef<HTMLElement> });\r\n transparentCom = viewChild.required('transparentCom', { read: XSliderSelectComponent });\r\n value = model<string>('');\r\n inputCom = input<XInputComponent>();\r\n placement = input<XPositionTopBottom>();\r\n panelTemplate = input<TemplateRef<any>>();\r\n\r\n animating = output<boolean>();\r\n nodeClick = output<string>();\r\n\r\n transparentRail = signal<HTMLElement | null>(null);\r\n sliderColorNum = signal(0);\r\n type = signal<XColorType | null>(null);\r\n offset = signal(0);\r\n panel = signal<DOMRect | null>(null);\r\n plate = signal<DOMRect | null>(null);\r\n transformX = signal(0);\r\n transformY = signal(0);\r\n initTransformX = signal(0);\r\n initTransformY = signal(0);\r\n drag = signal(false);\r\n\r\n rgba = signal<{ r?: number; g?: number; b?: number; a?: number }>({ a: 1 });\r\n hsla = signal<{ h?: number; s?: number; l?: number; a?: number; sp?: string; lp?: string }>({\r\n h: 0,\r\n a: 1\r\n });\r\n hex = signal<string>('');\r\n\r\n destroy = signal(false);\r\n private unSubject = new Subject<void>();\r\n private destroyRef = inject(DestroyRef);\r\n\r\n private renderer = inject(Renderer2);\r\n private decimal = inject(DecimalPipe);\r\n private percent = inject(PercentPipe);\r\n\r\n ngOnInit(): void {\r\n this.colorConvert();\r\n this.destroyRef.onDestroy(() => {\r\n this.destroy.set(true);\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.panel.set(this.panelRef().nativeElement.getBoundingClientRect());\r\n this.plate.set(this.plateRef().nativeElement.getBoundingClientRect());\r\n this.offset.set((this.panel()!.width - this.plate()!.width) / 2);\r\n this.transparentRail.set(\r\n this.transparentCom().elementRef.nativeElement.querySelector('.x-slider-select-rail div')!\r\n );\r\n this.setPanelValue();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { value } = simples;\r\n if (XIsChange(value)) !this.drag() && this.colorConvert();\r\n }\r\n\r\n setPanelValue() {\r\n this.setTransform();\r\n this.setPlateBackground();\r\n this.setRailBackground();\r\n }\r\n\r\n hexChange() {\r\n if (this.drag() || !/(^#[0-9A-F]{6}$)/i.test(this.hex())) return;\r\n this.rgba.set(this.hexToRgba(this.hex()));\r\n this.hsla.set(this.rgbaToHsla(this.rgba()));\r\n this.setHslaPercent();\r\n this.setTransform();\r\n this.setPlateBackground();\r\n this.setValue();\r\n }\r\n\r\n stopPropagation(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n colorConvert() {\r\n const value = this.value()!;\r\n if (/^#/.test(value)) {\r\n this.hex.set(value);\r\n this.rgba.set(this.hexToRgba(this.hex()));\r\n this.hsla.set(this.rgbaToHsla(this.rgba()));\r\n this.setHslaPercent();\r\n this.type.set('hex');\r\n } else if (/rgb/.test(value)) {\r\n this.rgbaConvert(value);\r\n this.hex.set(this.rgbaToHex(this.rgba()));\r\n this.hsla.set(this.rgbaToHsla(this.rgba()));\r\n this.setHslaPercent();\r\n this.type.set('rgba');\r\n } else if (/hsl/.test(value)) {\r\n this.hslaConvert(value);\r\n this.rgba.set(this.hslaToRgba(this.hsla()));\r\n this.hex.set(this.rgbaToHex(this.rgba()));\r\n this.type.set('hsla');\r\n }\r\n this.setPanelValue();\r\n }\r\n\r\n rgbaConvert(str: string) {\r\n let rgba = str\r\n .replace(/rgba?\\(/, '')\r\n .replace(/rgb?\\(/, '')\r\n .replace(/\\)/, '')\r\n .replace(/[\\s+]/g, '')\r\n .split(',');\r\n if (rgba.length > 2) {\r\n this.rgba.set({\r\n r: Number(rgba[0]),\r\n g: Number(rgba[1]),\r\n b: Number(rgba[2]),\r\n a: Number(rgba.length > 3 ? rgba[3] : 1)\r\n });\r\n }\r\n }\r\n\r\n hslaConvert(str: string) {\r\n let hsla = str\r\n .replace(/hsla?\\(/, '')\r\n .replace(/hsl?\\(/, '')\r\n .replace(/\\)/, '')\r\n .replace(/[\\s+]/g, '')\r\n .split(',');\r\n if (hsla.length > 2) {\r\n this.hsla.set({\r\n h: Number(hsla[0]),\r\n s: Number(hsla[1].replace('%', '')) / 100,\r\n l: Number(hsla[2].replace('%', '')) / 100,\r\n a: Number(hsla.length > 3 ? hsla[3] : 1)\r\n });\r\n this.setHslaPercent();\r\n }\r\n }\r\n\r\n plateClick(event: MouseEvent) {\r\n if (this.drag()) return;\r\n const rect = this.plateRef().nativeElement.getBoundingClientRect();\r\n const left = event.clientX - rect.left;\r\n const top = event.clientY - rect.top;\r\n this.transformX.set(left - this.offset());\r\n this.transformY.set(top - this.offset());\r\n this.initTransformX.set(this.transformX());\r\n this.initTransformY.set(this.transformY());\r\n this.setLetfTop(left, top);\r\n }\r\n\r\n setTransform() {\r\n if (!this.plate()) return;\r\n let hsv = this.hslToHsv(this.hsla().h!, this.hsla().s!, this.hsla().l!);\r\n this.transformX.set(hsv.s * this.plate()!.width - this.offset());\r\n this.transformY.set((1 - hsv.v) * this.plate()!.height - this.offset());\r\n this.initTransformX.set(this.transformX());\r\n this.initTransformY.set(this.transformY());\r\n }\r\n\r\n started() {\r\n this.drag.set(true);\r\n }\r\n\r\n ended() {\r\n this.initTransformX.set(this.transformX());\r\n this.initTransformY.set(this.transformY());\r\n setTimeout(() => {\r\n this.drag.set(false);\r\n });\r\n }\r\n\r\n moved(drag: CdkDragMove) {\r\n const transform = drag.source.getFreeDragPosition();\r\n drag.source.reset();\r\n this.transformX.set(transform.x + this.initTransformX());\r\n this.transformY.set(transform.y + this.initTransformY());\r\n\r\n const left = this.transformX() + this.offset();\r\n const top = this.transformY() + this.offset();\r\n this.setLetfTop(left, top);\r\n }\r\n\r\n setLetfTop(left: number, top: number) {\r\n let s = left / this.plate()!.width;\r\n let v = 1 - top / this.plate()!.height;\r\n let l = ((2 - s) * v) / 2;\r\n if (l !== 0) {\r\n if (l === 1) {\r\n s = 0;\r\n } else if (l < 0.5) {\r\n s = (s * v) / (l * 2);\r\n } else {\r\n s = (s * v) / (2 - l * 2);\r\n }\r\n }\r\n this.hsla.update((x) => {\r\n x.s = Number(this.decimal.transform(s, '1.2-2'));\r\n x.l = Number(this.decimal.transform(l, '1.2-2'));\r\n return { ...x };\r\n });\r\n this.setHslaPercent();\r\n this.rgba.set(this.hslaToRgba(this.hsla()));\r\n this.hex.set(this.rgbaToHex(this.rgba()));\r\n this.setValue();\r\n }\r\n\r\n setHslaPercent() {\r\n this.hsla.update((x) => {\r\n x.sp = this.hsla().s === 0 ? '0%' : (this.percent.transform(this.hsla().s, '1.0-0') as string);\r\n return { ...x };\r\n });\r\n this.hsla.update((x) => {\r\n x.lp = this.hsla().l === 0 ? '0%' : (this.percent.transform(this.hsla().l, '1.0-0') as string);\r\n return { ...x };\r\n });\r\n }\r\n\r\n hueChange() {\r\n this.setPlateBackground();\r\n this.rgba.set(this.hslaToRgba(this.hsla()));\r\n this.hex.set(this.rgbaToHex(this.rgba()));\r\n this.setValue();\r\n }\r\n\r\n setPlateBackground() {\r\n if (!this.plateRef()) return;\r\n this.renderer.setStyle(this.plateRef().nativeElement, 'background-color', `hsl(${this.hsla().h}, 100%, 50%)`);\r\n }\r\n\r\n setRailBackground() {\r\n if (!this.transparentRail()) return;\r\n this.renderer.setStyle(\r\n this.transparentRail(),\r\n 'background',\r\n `linear-gradient(to right, rgba(${this.rgba().r}, ${this.rgba().g}, ${this.rgba().b}, 0) 0%, rgba(${this.rgba().r}, ${this.rgba().g}, ${this.rgba().b}, 1) 100%)`\r\n );\r\n }\r\n\r\n transparentChange() {\r\n this.rgba.set(this.hslaToRgba(this.hsla()));\r\n this.hex.set(this.rgbaToHex(this.rgba()));\r\n this.setValue();\r\n }\r\n\r\n setValue() {\r\n this.setValueByType();\r\n this.setRailBackground();\r\n this.nodeClick.emit(this.value());\r\n }\r\n\r\n setValueByType() {\r\n if (this.type() === 'hex') {\r\n this.value.set(`${this.hex()}`);\r\n } else if (this.type() === 'rgba') {\r\n this.value.set(`rgba(${this.rgba().r}, ${this.rgba().g}, ${this.rgba().b}, ${this.rgba().a})`);\r\n } else if (this.type() === 'hsla') {\r\n this.value.set(`hsla(${this.hsla().h}, ${this.hsla().sp}, ${this.hsla().lp}, ${this.hsla().a})`);\r\n }\r\n }\r\n\r\n hslaToRgba(hsla: { h?: number; s?: number; l?: number; a?: number }) {\r\n let r, g, b;\r\n let [h, s, l] = [hsla.h as number, hsla.s as number, hsla.l as number];\r\n if (s == 0) {\r\n r = g = b = l;\r\n } else {\r\n let hue2rgb = (p: number, q: number, t: number) => {\r\n if (t < 0) t += 1;\r\n if (t > 1) t -= 1;\r\n if (t < 1 / 6) return p + (q - p) * 6 * t;\r\n if (t < 1 / 2) return q;\r\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\r\n return p;\r\n };\r\n\r\n let q = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n let p = 2 * l - q;\r\n r = hue2rgb(p, q, h / 360 + 1 / 3);\r\n g = hue2rgb(p, q, h / 360);\r\n b = hue2rgb(p, q, h / 360 - 1 / 3);\r\n }\r\n return {\r\n r: Math.round(r * 255),\r\n g: Math.round(g * 255),\r\n b: Math.round(b * 255),\r\n a: Number(hsla.a)\r\n };\r\n }\r\n\r\n rgbaToHex(rgba: { r?: number; g?: number; b?: number; a?: number }) {\r\n let hex = [\r\n (rgba.r as number).toString(16),\r\n (rgba.g as number).toString(16),\r\n (rgba.b as number).toString(16),\r\n Math.round(255 * (rgba.a as number)).toString(16)\r\n ];\r\n hex.forEach((x, index) => {\r\n if (index === 3 && x === 'ff') {\r\n hex[index] = '';\r\n }\r\n if (x.length === 1) {\r\n hex[index] = '0' + x;\r\n }\r\n });\r\n return `#${hex.join('')}`;\r\n }\r\n\r\n rgbaToHsla(rgba: { r?: number; g?: number; b?: number; a?: number }) {\r\n let [r, g, b] = [(rgba.r as number) / 255, (rgba.g as number) / 255, (rgba.b as number) / 255];\r\n let [max, min] = [Math.max(r, g, b), Math.min(r, g, b)];\r\n let h = 0;\r\n let s = 0;\r\n let l = (max + min) / 2;\r\n\r\n if (max === min) {\r\n h = s = 0;\r\n } else {\r\n let d = max - min;\r\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\r\n switch (max) {\r\n case r:\r\n h = (g - b) / d + (g < b ? 6 : 0);\r\n break;\r\n case g:\r\n h = (b - r) / d + 2;\r\n break;\r\n case b:\r\n h = (r - g) / d + 4;\r\n break;\r\n }\r\n h /= 6;\r\n }\r\n\r\n return {\r\n h: Math.round(h * 360),\r\n s: Number(this.decimal.transform(s, '1.2-2')),\r\n l: Number(this.decimal.transform(l, '1.2-2')),\r\n a: Number(rgba.a)\r\n };\r\n }\r\n\r\n hexToRgba(hex: string) {\r\n let hexNum = hex.substring(1);\r\n let a = 1;\r\n if (hexNum.length === 8) {\r\n a = Number(this.decimal.transform(Number('0x' + hexNum.slice(-2)) / 255, '1.2-2'));\r\n hexNum = hexNum.substring(0, hexNum.length - 2);\r\n }\r\n let num = Number('0x' + (hexNum.length < 6 ? this.repeatLetter(hexNum, 2) : hexNum));\r\n return { r: num >> 16, g: (num >> 8) & 0xff, b: num & 0xff, a: a };\r\n }\r\n\r\n hslToHsv(h: number, s: number, l: number) {\r\n let hHsv, sHsv, v;\r\n\r\n hHsv = h;\r\n\r\n if (l == 0) {\r\n sHsv = 0;\r\n v = 0;\r\n } else if (l > 0 && l <= 0.5) {\r\n sHsv = (2 * s) / (1 + s);\r\n v = l * (1 + s);\r\n } else {\r\n sHsv = (2 * s - 2 * s * l) / (s - s * l + l);\r\n v = s - s * l + l;\r\n }\r\n\r\n return {\r\n h: hHsv,\r\n s: Number(this.decimal.transform(sHsv, '1.2-2')),\r\n v: Number(this.decimal.transform(v, '1.2-2'))\r\n };\r\n }\r\n\r\n repeatWord(word: string, num: number) {\r\n let result = '';\r\n for (let i = 0; i < num; i++) {\r\n result += word;\r\n }\r\n return result;\r\n }\r\n\r\n repeatLetter(word: string, num: number) {\r\n let result = '';\r\n for (let letter of word) {\r\n result += this.repeatWord(letter, num);\r\n }\r\n return result;\r\n }\r\n}\r\n","<div class=\"x-color-picker-portal\" tabindex=\"-1\" (click)=\"stopPropagation($event)\">\r\n <div #panelRef class=\"x-color-picker-portal-panel\">\r\n <div #plateRef class=\"x-color-picker-portal-plate\" (click)=\"plateClick($event)\">\r\n <div class=\"x-color-picker-portal-white\"></div>\r\n <div class=\"x-color-picker-portal-black\"></div>\r\n <div\r\n #dragCom\r\n class=\"x-color-picker-portal-cursor\"\r\n [style.left.px]=\"transformX()\"\r\n [style.top.px]=\"transformY()\"\r\n cdkDrag\r\n [cdkDragBoundary]=\"panelRef\"\r\n (cdkDragStarted)=\"started()\"\r\n (cdkDragEnded)=\"ended()\"\r\n (cdkDragMoved)=\"moved($event)\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-tool\">\r\n <div class=\"x-color-picker-portal-operations\">\r\n <!-- <x-button icon=\"fto-edit-2\" onlyIcon></x-button> -->\r\n <div class=\"x-color-picker-portal-selected\">\r\n <div [style.background-color]=\"value()\"></div>\r\n </div>\r\n <div class=\"x-color-picker-portal-area\">\r\n <div class=\"x-color-picker-portal-slider\">\r\n <x-slider-select\r\n [style.width.%]=\"100\"\r\n [(ngModel)]=\"hsla().h\"\r\n min=\"0\"\r\n max=\"360\"\r\n step=\"1\"\r\n (dragStartEmit)=\"started()\"\r\n (dragEndEmit)=\"ended()\"\r\n (ngModelChange)=\"hueChange()\"\r\n ></x-slider-select>\r\n </div>\r\n <div class=\"x-color-picker-portal-transparent\">\r\n <x-slider-select\r\n [style.width.%]=\"100\"\r\n #transparentCom\r\n [(ngModel)]=\"hsla().a\"\r\n min=\"0\"\r\n max=\"1\"\r\n step=\"0.01\"\r\n (dragStarted)=\"started()\"\r\n (dragEnded)=\"ended()\"\r\n (ngModelChange)=\"transparentChange()\"\r\n ></x-slider-select>\r\n <div class=\"x-color-picker-portal-alpha\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-type\">\r\n <x-tabs animated=\"false\" justify=\"center\">\r\n <x-tab label=\"HEX\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [style.width.%]=\"100\" [(ngModel)]=\"hex\" (ngModelChange)=\"hexChange()\"></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"RGBA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"rgba().r\" disabled></x-input>\r\n <x-input [(ngModel)]=\"rgba().g\" disabled></x-input>\r\n <x-input [(ngModel)]=\"rgba().b\" disabled></x-input>\r\n <x-input [(ngModel)]=\"rgba().a\" disabled></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"HSLA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"hsla().h\" disabled></x-input>\r\n <x-input [(ngModel)]=\"hsla().sp\" disabled></x-input>\r\n <x-input [(ngModel)]=\"hsla().lp\" disabled></x-input>\r\n <x-input [(ngModel)]=\"hsla().a\" disabled></x-input>\r\n </div>\r\n </x-tab>\r\n </x-tabs>\r\n </div>\r\n <div class=\"x-color-picker-panel\">\r\n <ng-container *ngTemplateOutlet=\"panelTemplate()!\"></ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n","export const XColorPickerColorMap: { [key: string]: string } = {\r\n aliceblue: '#f0f8ff',\r\n antiquewhite: '#faebd7',\r\n aqua: '#00ffff',\r\n aquamarine: '#7fffd4',\r\n azure: '#f0ffff',\r\n beige: '#f5f5dc',\r\n bisque: '#ffe4c4',\r\n black: '#000000',\r\n blanchedalmond: '#ffebcd',\r\n blue: '#0000ff',\r\n blueviolet: '#8a2be2',\r\n brown: '#a52a2a',\r\n burlywood: '#deb887',\r\n cadetblue: '#5f9ea0',\r\n chartreuse: '#7fff00',\r\n chocolate: '#d2691e',\r\n coral: '#ff7f50',\r\n cornflowerblue: '#6495ed',\r\n cornsilk: '#fff8dc',\r\n crimson: '#dc143c',\r\n cyan: '#00ffff',\r\n darkblue: '#00008b',\r\n darkcyan: '#008b8b',\r\n darkgoldenrod: '#b8860b',\r\n darkgray: '#a9a9a9',\r\n darkgreen: '#006400',\r\n darkgrey: '#a9a9a9',\r\n darkkhaki: '#bdb76b',\r\n darkmagenta: '#8b008b',\r\n darkolivegreen: '#556b2f',\r\n darkorange: '#ff8c00',\r\n darkorchid: '#9932cc',\r\n darkred: '#8b0000',\r\n darksalmon: '#e9967a',\r\n darkseagreen: '#8fbc8f',\r\n darkslateblue: '#483d8b',\r\n darkslategray: '#2f4f4f',\r\n darkslategrey: '#2f4f4f',\r\n darkturquoise: '#00ced1',\r\n darkviolet: '#9400d3',\r\n deeppink: '#ff1493',\r\n deepskyblue: '#00bfff',\r\n dimgray: '#696969',\r\n dimgrey: '#696969',\r\n dodgerblue: '#1e90ff',\r\n firebrick: '#b22222',\r\n floralwhite: '#fffaf0',\r\n forestgreen: '#228b22',\r\n fuchsia: '#ff00ff',\r\n gainsboro: '#dcdcdc',\r\n ghostwhite: '#f8f8ff',\r\n gold: '#ffd700',\r\n goldenrod: '#daa520',\r\n gray: '#808080',\r\n green: '#008000',\r\n greenyellow: '#adff2f',\r\n grey: '#808080',\r\n honeydew: '#f0fff0',\r\n hotpink: '#ff69b4',\r\n indianred: '#cd5c5c',\r\n indigo: '#4b0082',\r\n ivory: '#fffff0',\r\n khaki: '#f0e68c',\r\n lavender: '#e6e6fa',\r\n lavenderblush: '#fff0f5',\r\n lawngreen: '#7cfc00',\r\n lemonchiffon: '#fffacd',\r\n lightblue: '#add8e6',\r\n lightcoral: '#f08080',\r\n lightcyan: '#e0ffff',\r\n lightgoldenrodyellow: '#fafad2',\r\n lightgray: '#d3d3d3',\r\n lightgreen: '#90ee90',\r\n lightgrey: '#d3d3d3',\r\n lightpink: '#ffb6c1',\r\n lightsalmon: '#ffa07a',\r\n lightseagreen: '#20b2aa',\r\n lightskyblue: '#87cefa',\r\n lightslategray: '#778899',\r\n lightslategrey: '#778899',\r\n lightsteelblue: '#b0c4de',\r\n lightyellow: '#ffffe0',\r\n lime: '#00ff00',\r\n limegreen: '#32cd32',\r\n linen: '#faf0e6',\r\n magenta: '#ff00ff',\r\n maroon: '#800000',\r\n mediumaquamarine: '#66cdaa',\r\n mediumblue: '#0000cd',\r\n mediumorchid: '#ba55d3',\r\n mediumpurple: '#9370db',\r\n mediumseagreen: '#3cb371',\r\n mediumslateblue: '#7b68ee',\r\n mediumspringgreen: '#00fa9a',\r\n mediumturquoise: '#48d1cc',\r\n mediumvioletred: '#c71585',\r\n midnightblue: '#191970',\r\n mintcream: '#f5fffa',\r\n mistyrose: '#ffe4e1',\r\n moccasin: '#ffe4b5',\r\n navajowhite: '#ffdead',\r\n navy: '#000080',\r\n oldlace: '#fdf5e6',\r\n olive: '#808000',\r\n olivedrab: '#6b8e23',\r\n orange: '#ffa500',\r\n orangered: '#ff4500',\r\n orchid: '#da70d6',\r\n palegoldenrod: '#eee8aa',\r\n palegreen: '#98fb98',\r\n paleturquoise: '#afeeee',\r\n palevioletred: '#db7093',\r\n papayawhip: '#ffefd5',\r\n peachpuff: '#ffdab9',\r\n peru: '#cd853f',\r\n pink: '#ffc0cb',\r\n plum: '#dda0dd',\r\n powderblue: '#b0e0e6',\r\n purple: '#800080',\r\n rebeccapurple: '#663399',\r\n red: '#ff0000',\r\n rosybrown: '#bc8f8f',\r\n royalblue: '#4169e1',\r\n saddlebrown: '#8b4513',\r\n salmon: '#fa8072',\r\n sandybrown: '#f4a460',\r\n seagreen: '#2e8b57',\r\n seashell: '#fff5ee',\r\n sienna: '#a0522d',\r\n silver: '#c0c0c0',\r\n skyblue: '#87ceeb',\r\n slateblue: '#6a5acd',\r\n slategray: '#708090',\r\n slategrey: '#708090',\r\n snow: '#fffafa',\r\n springgreen: '#00ff7f',\r\n steelblue: '#4682b4',\r\n tan: '#d2b48c',\r\n teal: '#008080',\r\n thistle: '#d8bfd8',\r\n tomato: '#ff6347',\r\n turquoise: '#40e0d0',\r\n violet: '#ee82ee',\r\n wheat: '#f5deb3',\r\n white: '#ffffff',\r\n whitesmoke: '#f5f5f5',\r\n yellow: '#ffff00',\r\n yellowgreen: '#9acd32'\r\n};\r\n","import { XColorPickerPortalComponent } from './color-picker-portal.component';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { Subject, fromEvent, of } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ViewContainerRef,\r\n inject,\r\n AfterViewInit,\r\n OnDestroy,\r\n viewChild,\r\n signal,\r\n computed,\r\n ComponentRef,\r\n effect,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { XColorPickerProperty } from './color-picker.property';\r\nimport { XIsEmpty, XCorner, XParents, XPlacement, XComputed } from '@ng-nest/ui/core';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport {\r\n Overlay,\r\n OverlayConfig,\r\n FlexibleConnectedPositionStrategy,\r\n ConnectedOverlayPositionChange,\r\n OverlayRef\r\n} from '@angular/cdk/overlay';\r\nimport { delay, filter, takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XColorPickerColorMap } from './color-map.data';\r\n\r\n@Component({\r\n selector: 'x-color-picker',\r\n imports: [FormsModule, ReactiveFormsModule, XInputComponent],\r\n templateUrl: './color-picker.component.html',\r\n styleUrls: ['./color-picker.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XColorPickerComponent)]\r\n})\r\nexport class XColorPickerComponent extends XColorPickerProperty implements OnInit, AfterViewInit, OnDestroy {\r\n colorPicker = viewChild.required('colorPicker', { read: ElementRef<HTMLElement> });\r\n inputCom = viewChild.required('inputCom', { read: XInputComponent });\r\n panelTemplate = viewChild.required<TemplateRef<any>>('panelTemplate');\r\n private doc = inject(DOCUMENT);\r\n primaryColor = XComputed(this.doc.documentElement).getPropertyValue('--x-primary').trim();\r\n\r\n inputStyleComputed = computed(() => ({\r\n backgroundColor: this.value(),\r\n color: 'transparent',\r\n ...this.inputStyle()\r\n }));\r\n\r\n inputClearable = signal(false);\r\n enter = signal(false);\r\n animating = signal(false);\r\n allowAgian = signal(true);\r\n portal!: XPortalOverlayRef<XColorPickerPortalComponent>;\r\n icon = signal('fto-chevron-down');\r\n closeSubject: Subject<void> = new Subject();\r\n document = inject(DOCUMENT);\r\n private unSubject = new Subject<void>();\r\n private portalService = inject(XPortalService);\r\n private viewContainerRef = inject(ViewContainerRef);\r\n private overlay = inject(Overlay);\r\n private elementRef = inject(ElementRef);\r\n\r\n private realPlacement = signal<XPlacement | null>(null);\r\n portalComponent = signal<ComponentRef<XColorPickerPortalComponent> | null>(null);\r\n portalOverlayRef = signal<OverlayRef | null>(null);\r\n\r\n constructor() {\r\n super();\r\n effect(() => {\r\n this.portalComponent()?.setInput(\r\n 'value',\r\n XColorPickerColorMap[this.value()] || this.value() || this.primaryColor\r\n );\r\n });\r\n effect(() => {\r\n this.portalComponent()?.setInput('placement', this.realPlacement());\r\n });\r\n effect(() => {\r\n this.portalComponent()?.setInput('inputCom', this.inputCom());\r\n });\r\n effect(() => {\r\n this.portalComponent()?.setInput('panelTemplate', this.panelTemplate());\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.setSubject();\r\n this.setParantScroll();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this.unSubject)).subscribe(() => {\r\n this.closePortal();\r\n });\r\n }\r\n\r\n menter() {\r\n if (this.disabledComputed()) return;\r\n this.enter.set(true);\r\n if (!this.clearable()) return;\r\n if (!XIsEmpty(this.value())) {\r\n this.icon.set('');\r\n this.inputClearable.set(true);\r\n }\r\n }\r\n\r\n mleave() {\r\n if (this.disabledComputed()) return;\r\n this.enter.set(false);\r\n if (!this.clearable()) return;\r\n if (this.inputClearable()) {\r\n this.icon.set('fto-chevron-down');\r\n this.inputClearable.set(false);\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value.set('');\r\n this.mleave();\r\n if (this.onChange) this.onChange(this.value());\r\n }\r\n\r\n portalAttached() {\r\n return this.portalOverlayRef()?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portalOverlayRef()?.detach();\r\n this.active.set(false);\r\n this.allowAgian.set(false);\r\n of(true)\r\n .pipe(delay(200))\r\n .subscribe(() => this.allowAgian.set(true));\r\n }\r\n }\r\n\r\n showPortal() {\r\n if (this.disabledComputed() || !this.allowAgian() || this.animating()) return;\r\n this.active.set(true);\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XColorPickerPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this.unSubject))\r\n .subscribe(() => {\r\n this.closeSubject.next();\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this.unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XCorner;\r\n if (place !== this.realPlacement()) {\r\n this.realPlacement.set(place);\r\n this.portalOverlayRef()?.updatePosition();\r\n }\r\n });\r\n }\r\n\r\n setParantScroll() {\r\n if (!this.document) return;\r\n const parents = XParents(this.elementRef.nativeElement);\r\n let firstScroll: HTMLElement | null = null;\r\n for (let item of parents) {\r\n if (item.clientHeight < item.scrollHeight) {\r\n firstScroll = item;\r\n break;\r\n }\r\n }\r\n if (firstScroll && firstScroll.tagName !== 'BODY') {\r\n fromEvent(firstScroll, 'scroll')\r\n .pipe(\r\n filter(() => this.portalAttached()!),\r\n takeUntil(this.unSubject)\r\n )\r\n .subscribe(() => {\r\n this.portalOverlayRef()?.updatePosition();\r\n const eract = this.elementRef.nativeElement.getBoundingClientRect();\r\n const frect = firstScroll!.getBoundingClientRect();\r\n if (eract.top + eract.height - frect.top < 0 || eract.bottom > frect.bottom) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n }\r\n }\r\n\r\n setInstance() {\r\n let { componentRef, overlayRef } = this.portal;\r\n this.portalComponent.set(componentRef!);\r\n this.portalOverlayRef.set(overlayRef!);\r\n this.realPlacement.set(this.placement());\r\n const { nodeClick, animating } = componentRef!.instance;\r\n\r\n nodeClick.subscribe((color: string) => this.onNodeClick(color));\r\n animating.subscribe((ing: boolean) => this.animating.set(ing));\r\n }\r\n\r\n onNodeClick(color: string) {\r\n this.value.set(color);\r\n this.inputCom().inputFocus('focus');\r\n if (this.onChange) this.onChange(this.value());\r\n this.formControlValidator();\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputCom().inputRef(),\r\n placement: [this.placement() as XCorner, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\r\n transformOriginOn: 'x-color-picker-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n this.portalAttached() && this.portalOverlayRef()?.updatePositionStrategy(this.setPlacement());\r\n }\r\n}\r\n","<div #colorPicker class=\"x-color-picker\">\r\n <div class=\"x-color-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()\"\r\n [inputValidator]=\"inputValidator()\"\r\n [icon]=\"icon()\"\r\n [placeholder]=\"placeholder()\"\r\n [readonly]=\"readonly()\"\r\n [clearable]=\"clearable() && inputClearable()\"\r\n [(ngModel)]=\"value\"\r\n [valueTpl]=\"valueTpl() ? valueTpl() : valueTemplate\"\r\n [valueTplContext]=\"valueTplContext()\"\r\n [size]=\"size()\"\r\n [bordered]=\"bordered()\"\r\n [before]=\"before()\"\r\n [after]=\"after()\"\r\n [pattern]=\"patternComputed()\"\r\n [message]=\"messageComputed()\"\r\n [pointer]=\"pointer()\"\r\n [variant]=\"variant()\"\r\n [floatLabel]=\"floatLabel()\"\r\n [floatFixed]=\"floatFixed()\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n\r\n <ng-template #valueTemplate>\r\n <div class=\"x-color-picker-template-value\">\r\n <div\r\n class=\"x-color-picker-template-color\"\r\n [style]=\"inputStyleComputed()\"\r\n [attr.title]=\"inputStyleComputed().backgroundColor\"\r\n ></div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #panelTemplate>\r\n <ng-content select=\"[xColorPickerPanel]\"></ng-content>\r\n </ng-template>\r\n </div>\r\n</div>\r\n","import { Directive, HostListener, inject, input } from '@angular/core';\r\nimport { XColorPickerComponent } from './color-picker.component';\r\nimport { XColorPickerColorMap } from './color-map.data';\r\n\r\n@Directive({\r\n selector: `[x-color-picker-option], x-color-picker-option`\r\n})\r\nexport class XColorPickerOptionDirective {\r\n color = input.required<string>({ alias: 'x-color-picker-option' });\r\n\r\n @HostListener('click') onSelectClick() {\r\n if (!this.colorPicker) return;\r\n this.colorPicker.value.set(XColorPickerColorMap[this.color()] || this.color());\r\n if (this.colorPicker.onChange) this.colorPicker.onChange(this.colorPicker.value());\r\n }\r\n colorPicker = inject(XColorPickerComponent, { optional: true });\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { XColorPickerComponent } from './color-picker.component';\r\nimport { XColorPickerOptionDirective } from './color-picker.directive';\r\n\r\n@NgModule({\r\n imports: [XColorPickerComponent, XColorPickerOptionDirective],\r\n exports: [XColorPickerComponent, XColorPickerOptionDirective]\r\n})\r\nexport class XColorPickerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1190,7 +1190,8 @@ class XThemeService {
1190
1190
  let result = {};
1191
1191
  const keys = includes ? Object.keys(this.colorsProp) : X_THEME_COLOR_KEYS.map((x) => `${prefix}${x}`);
1192
1192
  keys.forEach((x) => {
1193
- result[x.replace(prefix, '')] = this.declaration.getPropertyValue(`${x}`).trim();
1193
+ const key = x.replace(prefix, '');
1194
+ result[x.replace(prefix, '')] = this.declaration.getPropertyValue(`${x}`).trim() ?? X_THEME_COLORS[key];
1194
1195
  });
1195
1196
  return result;
1196
1197
  }