ngx-kit 6.2.0 → 7.0.0
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.
- package/README.md +3 -3
- package/angle-selector/README.md +34 -34
- package/box-shadow/README.md +33 -33
- package/color-picker/README.md +52 -49
- package/data-table/README.md +120 -113
- package/date-picker/README.md +74 -69
- package/dialog/README.md +92 -92
- package/drag-resize/README.md +55 -0
- package/drawer-menu/README.md +125 -77
- package/dropzone/README.md +422 -422
- package/fesm2022/ngx-kit-angle-selector.mjs +2 -2
- package/fesm2022/ngx-kit-angle-selector.mjs.map +1 -1
- package/fesm2022/ngx-kit-box-shadow.mjs +2 -2
- package/fesm2022/ngx-kit-box-shadow.mjs.map +1 -1
- package/fesm2022/ngx-kit-color-picker.mjs +265 -73
- package/fesm2022/ngx-kit-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-kit-data-table.mjs +2 -2
- package/fesm2022/ngx-kit-data-table.mjs.map +1 -1
- package/fesm2022/ngx-kit-date-picker.mjs +11 -11
- package/fesm2022/ngx-kit-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-kit-dialog.mjs +3 -3
- package/fesm2022/ngx-kit-dialog.mjs.map +1 -1
- package/fesm2022/ngx-kit-drag-resize.mjs +1664 -0
- package/fesm2022/ngx-kit-drag-resize.mjs.map +1 -0
- package/fesm2022/ngx-kit-drawer-menu.mjs +424 -158
- package/fesm2022/ngx-kit-drawer-menu.mjs.map +1 -1
- package/fesm2022/ngx-kit-dropzone.mjs +2 -2
- package/fesm2022/ngx-kit-dropzone.mjs.map +1 -1
- package/fesm2022/ngx-kit-form-field.mjs +3 -5
- package/fesm2022/ngx-kit-form-field.mjs.map +1 -1
- package/fesm2022/ngx-kit-gallery.mjs +2 -2
- package/fesm2022/ngx-kit-gallery.mjs.map +1 -1
- package/fesm2022/ngx-kit-gradient-picker.mjs.map +1 -1
- package/fesm2022/ngx-kit-grid-layout.mjs +927 -0
- package/fesm2022/ngx-kit-grid-layout.mjs.map +1 -0
- package/fesm2022/ngx-kit-image-editor.mjs +2 -2
- package/fesm2022/ngx-kit-image-editor.mjs.map +1 -1
- package/fesm2022/ngx-kit-menu.mjs +8 -8
- package/fesm2022/ngx-kit-menu.mjs.map +1 -1
- package/fesm2022/ngx-kit-message.mjs +2 -2
- package/fesm2022/ngx-kit-message.mjs.map +1 -1
- package/fesm2022/ngx-kit-notify.mjs +2 -2
- package/fesm2022/ngx-kit-notify.mjs.map +1 -1
- package/fesm2022/ngx-kit-shared.mjs +54 -3
- package/fesm2022/ngx-kit-shared.mjs.map +1 -1
- package/fesm2022/ngx-kit-time-picker.mjs +2 -2
- package/fesm2022/ngx-kit-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-kit-virtual-scroll.mjs +392 -0
- package/fesm2022/ngx-kit-virtual-scroll.mjs.map +1 -0
- package/fesm2022/ngx-kit-webflow.mjs +709 -0
- package/fesm2022/ngx-kit-webflow.mjs.map +1 -0
- package/gallery/README.md +71 -71
- package/gradient-picker/README.md +41 -41
- package/grid-layout/README.md +64 -0
- package/image-editor/README.md +12 -12
- package/menu/README.md +85 -85
- package/message/README.md +70 -70
- package/notify/README.md +56 -58
- package/package.json +17 -1
- package/shared/README.md +117 -117
- package/time-picker/README.md +89 -95
- package/types/ngx-kit-color-picker.d.ts +72 -16
- package/types/ngx-kit-date-picker.d.ts +2 -1
- package/types/ngx-kit-drag-resize.d.ts +368 -0
- package/types/ngx-kit-drawer-menu.d.ts +148 -88
- package/types/ngx-kit-grid-layout.d.ts +310 -0
- package/types/ngx-kit-image-editor.d.ts +1 -1
- package/types/ngx-kit-shared.d.ts +12 -1
- package/types/ngx-kit-virtual-scroll.d.ts +179 -0
- package/types/ngx-kit-webflow.d.ts +286 -0
- package/virtual-scroll/README.md +199 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-kit-color-picker.mjs","sources":["../../../projects/libs/color-picker/contracts/ColorFormats.enum.ts","../../../projects/libs/color-picker/utils/conversion.ts","../../../projects/libs/color-picker/utils/css-color-names.ts","../../../projects/libs/color-picker/utils/color-helper.ts","../../../projects/libs/color-picker/contracts/ColorInspector.enum.ts","../../../projects/libs/color-picker/pipes/enum-to-array.pipe.ts","../../../projects/libs/color-picker/inspectors/picker/picker.component.ts","../../../projects/libs/color-picker/inspectors/picker/picker.component.html","../../../projects/libs/color-picker/inspectors/cmyk/cmyk.component.ts","../../../projects/libs/color-picker/inspectors/cmyk/cmyk.component.html","../../../projects/libs/color-picker/inspectors/hsl/hsl.component.ts","../../../projects/libs/color-picker/inspectors/hsl/hsl.component.html","../../../projects/libs/color-picker/inspectors/rgb/rgb.component.ts","../../../projects/libs/color-picker/inspectors/rgb/rgb.component.html","../../../projects/libs/color-picker/components/input-color.component.ts","../../../projects/libs/color-picker/components/input-color.component.html","../../../projects/libs/color-picker/directives/ngx-input-color.directive.ts","../../../projects/libs/color-picker/ngx-kit-color-picker.ts"],"sourcesContent":["export enum ColorFormats {\r\n HEX,\r\n RGBA,\r\n HSLA,\r\n HSVA,\r\n CMYK,\r\n}\r\n","import { CMYK, HSL, HSLA, HSV, HSVA, RGB, RGBA } from '../contracts/color-interface';\r\n\r\nexport function hexToRgb(hex: string): RGBA {\r\n let h = hex.replace(/^#/, '');\r\n // #rgb یا #rgba (فرمت مخفف) — هر کاراکتر دوبار تکرار میشه تا به فرم کامل برسه.\r\n // قبلاً فقط طول ۳ (بدون آلفا) پشتیبانی میشد؛ #rgba (طول ۴) با اینکه یک\r\n // فرمت معتبر CSS هست، از اعتبارسنجی رد میشد ولی اینجا expand نمیشد و در\r\n // نهایت به خطای «Invalid hex color» میخورد.\r\n if (h.length === 3 || h.length === 4)\r\n h = h\r\n .split('')\r\n .map((x) => x + x)\r\n .join('');\r\n if (h.length === 6) h += 'ff';\r\n if (h.length === 8) {\r\n const r = parseInt(h.slice(0, 2), 16);\r\n const g = parseInt(h.slice(2, 4), 16);\r\n const b = parseInt(h.slice(4, 6), 16);\r\n const a = parseInt(h.slice(6, 8), 16) / 255;\r\n return { r, g, b, a: a };\r\n }\r\n throw new Error('Invalid hex color');\r\n}\r\nexport function parseRgbString(str: string): RGBA {\r\n const m = str.match(/rgba?\\(([^)]+)\\)/);\r\n if (!m) throw new Error('Invalid rgb string');\r\n const parts = m[1].split(',').map((x) => +x.trim());\r\n return {\r\n r: parts[0],\r\n g: parts[1],\r\n b: parts[2],\r\n a: parts[3] !== undefined ? parts[3] : 1,\r\n };\r\n}\r\nfunction clamp(value: number, min: number, max: number): number {\r\n return Math.max(min, Math.min(max, value));\r\n}\r\n\r\nexport function parseHslString(str: string): HSLA {\r\n const m = str.match(/hsla?\\(([^)]+)\\)/i);\r\n if (!m) throw new Error('Invalid hsl/hsla string');\r\n\r\n const parts = m[1].split(',').map((x) => x.trim());\r\n\r\n const h = clamp(parseFloat(parts[0]), 0, 360);\r\n const s = clamp(parseFloat(parts[1]), 0, 100);\r\n const l = clamp(parseFloat(parts[2]), 0, 100);\r\n const a = parts[3] !== undefined ? clamp(parseFloat(parts[3]), 0, 1) : 1;\r\n\r\n return { h, s, l, a };\r\n}\r\nexport function parseHsvString(str: string): HSVA {\r\n const m = str.match(/hsva?\\(([^)]+)\\)/i);\r\n if (!m) throw new Error('Invalid hsv(a) string');\r\n\r\n const parts = m[1].split(',').map((x) => x.trim());\r\n\r\n const h = clamp(parseFloat(parts[0]), 0, 360);\r\n const s = clamp(parseFloat(parts[1]), 0, 100);\r\n const v = clamp(parseFloat(parts[2]), 0, 100);\r\n const a = parts[3] !== undefined ? clamp(parseFloat(parts[3]), 0, 1) : 1;\r\n\r\n return { h, s, v, a };\r\n}\r\n\r\nexport function parseCmykString(str: string): CMYK {\r\n const m = str.match(/cmyk\\(([^)]+)\\)/i);\r\n if (!m) throw new Error('Invalid cmyk string');\r\n\r\n const parts = m[1].split(',').map((x) => x.trim());\r\n\r\n return {\r\n c: clamp(parseFloat(parts[0]), 0, 100),\r\n m: clamp(parseFloat(parts[1]), 0, 100),\r\n y: clamp(parseFloat(parts[2]), 0, 100),\r\n k: clamp(parseFloat(parts[3]), 0, 100),\r\n };\r\n}\r\n\r\n/**\r\n * Take input from [0, n] and return it as [0, 1]\r\n * @hidden\r\n */\r\nexport function bound01(n: any, max: number): number {\r\n if (isOnePointZero(n)) {\r\n n = '100%';\r\n }\r\n\r\n const isPercent = isPercentage(n);\r\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\r\n\r\n // Automatically convert percentage into number\r\n if (isPercent) {\r\n n = parseInt(String(n * max), 10) / 100;\r\n }\r\n\r\n // Handle floating point rounding errors\r\n if (Math.abs(n - max) < 0.000001) {\r\n return 1;\r\n }\r\n\r\n // Convert into [0, 1] range if it isn't already\r\n if (max === 360) {\r\n // If n is a hue given in degrees,\r\n // wrap around out-of-range values into [0, 360] range\r\n // then convert into [0, 1].\r\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\r\n } else {\r\n // If n not a hue given in degrees\r\n // Convert into [0, 1] range if it isn't already.\r\n n = (n % max) / parseFloat(String(max));\r\n }\r\n\r\n return n;\r\n}\r\n/**\r\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\r\n * <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\r\n * @hidden\r\n */\r\nexport function isOnePointZero(n: string | number): boolean {\r\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\r\n}\r\n\r\n/**\r\n * Check to see if string passed in is a percentage\r\n * @hidden\r\n */\r\nexport function isPercentage(n: string | number): boolean {\r\n return typeof n === 'string' && n.indexOf('%') !== -1;\r\n}\r\n/**\r\n * convert all properties in an interface to a number\r\n */\r\nexport type Numberify<T> = {\r\n [P in keyof T]: number;\r\n};\r\n\r\n/**\r\n * Replace a decimal with it's percentage value\r\n * @hidden\r\n */\r\nexport function convertToPercentage(n: number | string): number | string {\r\n if (Number(n) <= 1) {\r\n return `${Number(n) * 100}%`;\r\n }\r\n\r\n return n;\r\n}\r\n\r\n/**\r\n * Force a hex value to have 2 characters\r\n * @hidden\r\n */\r\nexport function pad2(c: string): string {\r\n return c.length === 1 ? '0' + c : String(c);\r\n}\r\n\r\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\r\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\r\n\r\n/**\r\n * Handle bounds / percentage checking to conform to CSS color spec\r\n * <http://www.w3.org/TR/css3-color/>\r\n * *Assumes:* r, g, b in [0, 255] or [0, 1]\r\n * *Returns:* { r, g, b } in [0, 255]\r\n */\r\nexport function rgbToRgb(\r\n r: number | string,\r\n g: number | string,\r\n b: number | string,\r\n): Numberify<RGB> {\r\n return {\r\n r: bound01(r, 255) * 255,\r\n g: bound01(g, 255) * 255,\r\n b: bound01(b, 255) * 255,\r\n };\r\n}\r\n\r\n/**\r\n * Converts an RGB color value to HSL.\r\n * *Assumes:* r, g, and b are contained in [0, 255]\r\n * *Returns:* { h: 0-360, s: 0-100, l: 0-100 }\r\n */\r\nexport function rgbToHsl(r: number, g: number, b: number): Numberify<HSL> {\r\n r = r / 255;\r\n g = g / 255;\r\n b = b / 255;\r\n const max = Math.max(r, g, b);\r\n const min = Math.min(r, g, b);\r\n let h = 0;\r\n let s = 0;\r\n const l = (max + min) / 2;\r\n if (max === min) {\r\n s = 0;\r\n h = 0;\r\n } else {\r\n const 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 h = (h * 360) % 360;\r\n if (h < 0) h += 360;\r\n return {\r\n h: max === min ? 0 : h,\r\n s: l === 0 || l === 1 ? 0 : s * 100,\r\n l: l * 100,\r\n };\r\n}\r\n\r\n/**\r\n * Converts an HSL color value to RGB.\r\n * *Assumes:* h in [0, 360], s and l in [0, 100]\r\n * *Returns:* { r, g, b } in [0, 255]\r\n */\r\nexport function hslToRgba(\r\n h: number | string,\r\n s: number | string,\r\n l: number | string,\r\n a: number = 1,\r\n): RGBA {\r\n h = +h;\r\n s = +s;\r\n l = +l;\r\n h = ((h % 360) + 360) % 360;\r\n s = Math.max(0, Math.min(100, s));\r\n l = Math.max(0, Math.min(100, l));\r\n h = h / 360;\r\n s = s / 100;\r\n l = l / 100;\r\n\r\n let r: number, g: number, b: number;\r\n\r\n if (s === 0) {\r\n r = g = b = l; // achromatic\r\n } else {\r\n const hue2rgb = (p: number, q: number, t: number): 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 const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n const p = 2 * l - q;\r\n r = hue2rgb(p, q, h + 1 / 3);\r\n g = hue2rgb(p, q, h);\r\n b = hue2rgb(p, q, h - 1 / 3);\r\n }\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: Math.max(0, Math.min(1, a)),\r\n };\r\n}\r\n\r\n/**\r\n * Converts an RGB color value to HSV\r\n * *Assumes:* r, g, and b are contained in [0, 255]\r\n * *Returns:* { h: 0-360, s: 0-100, v: 0-100 }\r\n */\r\nexport function rgbToHsv(r: number, g: number, b: number): Numberify<HSV> {\r\n r = r / 255;\r\n g = g / 255;\r\n b = b / 255;\r\n const max = Math.max(r, g, b);\r\n const min = Math.min(r, g, b);\r\n let h = 0;\r\n let s = 0;\r\n const v = max;\r\n const d = max - min;\r\n s = max === 0 ? 0 : d / max;\r\n if (max === min) {\r\n h = 0;\r\n } else {\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 h = (h * 360) % 360;\r\n if (h < 0) h += 360;\r\n return {\r\n h: max === min ? 0 : h,\r\n s: max === 0 ? 0 : s * 100,\r\n v: v * 100,\r\n };\r\n}\r\n\r\n/**\r\n * Converts an HSV color value to RGB.\r\n * *Assumes:* h in [0, 360], s and v in [0, 100]\r\n * *Returns:* { r, g, b } in [0, 255]\r\n */\r\nexport function hsvToRgb(\r\n h: number | string,\r\n s: number | string,\r\n v: number | string,\r\n): Numberify<RGB> {\r\n h = +h;\r\n s = +s;\r\n v = +v;\r\n h = ((h % 360) + 360) % 360;\r\n s = Math.max(0, Math.min(100, s));\r\n v = Math.max(0, Math.min(100, v));\r\n s = s / 100;\r\n v = v / 100;\r\n let r = 0,\r\n g = 0,\r\n b = 0;\r\n const hi = Math.floor(h / 60) % 6;\r\n const f = h / 60 - Math.floor(h / 60);\r\n const p = v * (1 - s);\r\n const q = v * (1 - f * s);\r\n const t = v * (1 - (1 - f) * s);\r\n switch (hi) {\r\n case 0:\r\n r = v;\r\n g = t;\r\n b = p;\r\n break;\r\n case 1:\r\n r = q;\r\n g = v;\r\n b = p;\r\n break;\r\n case 2:\r\n r = p;\r\n g = v;\r\n b = t;\r\n break;\r\n case 3:\r\n r = p;\r\n g = q;\r\n b = v;\r\n break;\r\n case 4:\r\n r = t;\r\n g = p;\r\n b = v;\r\n break;\r\n case 5:\r\n r = v;\r\n g = p;\r\n b = q;\r\n break;\r\n }\r\n return {\r\n r: Math.max(0, Math.min(255, Math.round(r * 255))),\r\n g: Math.max(0, Math.min(255, Math.round(g * 255))),\r\n b: Math.max(0, Math.min(255, Math.round(b * 255))),\r\n };\r\n}\r\n\r\n/**\r\n * Converts an RGB/RGBA color to hex\r\n */\r\nexport function rgbaToHex(\r\n r: number,\r\n g: number,\r\n b: number,\r\n a: number = 1,\r\n allowAlpha: boolean = true,\r\n allow3Char: boolean = false,\r\n): string {\r\n const toHex = (n: number) => n.toString(16).padStart(2, '0');\r\n\r\n const rHex = toHex(Math.round(r));\r\n const gHex = toHex(Math.round(g));\r\n const bHex = toHex(Math.round(b));\r\n const aHex = toHex(Math.round(a * 255));\r\n\r\n // Try compressing to #rgb or #rgba if allowed and all characters are duplicated\r\n if (allow3Char && (!allowAlpha || aHex === 'ff')) {\r\n const canShorten =\r\n rHex[0] === rHex[1] &&\r\n gHex[0] === gHex[1] &&\r\n bHex[0] === bHex[1] &&\r\n (!allowAlpha || aHex[0] === aHex[1]);\r\n\r\n if (canShorten) {\r\n return '#' + rHex[0] + gHex[0] + bHex[0] + (allowAlpha && aHex !== 'ff' ? aHex[0] : '');\r\n }\r\n }\r\n\r\n return '#' + rHex + gHex + bHex + (allowAlpha && aHex !== 'ff' ? aHex : '');\r\n}\r\n\r\n/**\r\n * Converts an RGBA color to an ARGB Hex8 string\r\n * Rarely used, but required for \"toFilter()\"\r\n *\r\n * *Assumes:* r, g, b are contained in the set [0, 255] and a in [0, 1]\r\n * *Returns:* a 8 character argb hex\r\n */\r\nexport function rgbaToArgbHex(r: number, g: number, b: number, a: number): string {\r\n const hex = [\r\n pad2(convertDecimalToHex(a)),\r\n pad2(Math.round(r).toString(16)),\r\n pad2(Math.round(g).toString(16)),\r\n pad2(Math.round(b).toString(16)),\r\n ];\r\n\r\n return hex.join('');\r\n}\r\n\r\n/**\r\n * Converts CMYK to RBG\r\n * Assumes c, m, y, k are in the set [0, 100]\r\n */\r\nexport function cmykToRgb(c: number, m: number, y: number, k: number) {\r\n const cConv = c / 100;\r\n const mConv = m / 100;\r\n const yConv = y / 100;\r\n const kConv = k / 100;\r\n\r\n const r = 255 * (1 - cConv) * (1 - kConv);\r\n const g = 255 * (1 - mConv) * (1 - kConv);\r\n const b = 255 * (1 - yConv) * (1 - kConv);\r\n\r\n return { r, g, b };\r\n}\r\n\r\nexport function rgbToCmyk(r: number, g: number, b: number) {\r\n let c = 1 - r / 255;\r\n let m = 1 - g / 255;\r\n let y = 1 - b / 255;\r\n let k = Math.min(c, m, y);\r\n\r\n if (k === 1) {\r\n c = 0;\r\n m = 0;\r\n y = 0;\r\n } else {\r\n c = ((c - k) / (1 - k)) * 100;\r\n m = ((m - k) / (1 - k)) * 100;\r\n y = ((y - k) / (1 - k)) * 100;\r\n }\r\n\r\n k *= 100;\r\n\r\n return {\r\n c: Math.round(c),\r\n m: Math.round(m),\r\n y: Math.round(y),\r\n k: Math.round(k),\r\n };\r\n}\r\n\r\n/** Converts a decimal to a hex value */\r\nexport function convertDecimalToHex(d: string | number): string {\r\n return Math.round(parseFloat(d as string) * 255).toString(16);\r\n}\r\n\r\n/** Converts a hex value to a decimal */\r\nexport function convertHexToDecimal(h: string): number {\r\n return parseIntFromHex(h) / 255;\r\n}\r\n\r\n/** Parse a base-16 hex value into a base-10 integer */\r\nexport function parseIntFromHex(val: string): number {\r\n return parseInt(val, 16);\r\n}\r\n\r\nexport function numberInputToObject(color: number): RGB {\r\n return {\r\n r: color >> 16,\r\n g: (color & 0xff00) >> 8,\r\n b: color & 0xff,\r\n };\r\n}\r\n\r\nexport function rgbToHslaString(r: number, g: number, b: number, a = 1): string {\r\n const { h, s, l } = rgbToHsl(r, g, b);\r\n return `hsla(${Math.round(h)}, ${Math.round(s)}%, ${Math.round(l)}%, ${+a.toFixed(2)})`;\r\n}\r\nexport function rgbToHsvString(r: number, g: number, b: number, a = 1): string {\r\n const { h, s, v } = rgbToHsv(r, g, b);\r\n return `hsva(${Math.round(h)}, ${Math.round(s)}%, ${Math.round(v)}%, ${+a.toFixed(2)})`;\r\n}\r\nexport function rgbToCmykString(r: number, g: number, b: number): string {\r\n const { c, m, y, k } = rgbToCmyk(r, g, b);\r\n return `cmyk(${Math.round(c)}%, ${Math.round(m)}%, ${Math.round(y)}%, ${Math.round(k)}%)`;\r\n}\r\n","// List of all CSS color names and their hex values (W3C + extended)\r\nexport const colorNames: Record<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 {\r\n cmykToRgb,\r\n hexToRgb,\r\n hslToRgba,\r\n hsvToRgb,\r\n parseCmykString,\r\n parseHslString,\r\n parseHsvString,\r\n parseRgbString,\r\n rgbaToHex,\r\n rgbToCmyk,\r\n rgbToCmykString,\r\n rgbToHsl,\r\n rgbToHslaString,\r\n rgbToHsv,\r\n rgbToHsvString,\r\n} from './conversion';\r\nimport { colorNames } from './css-color-names';\r\nimport { CMYK, HSLA, HSVA, RGBA } from '../contracts/color-interface';\r\nimport { OutputType } from '../contracts/OutputType';\r\nimport { ColorInput } from '../contracts/ColorInput';\r\nexport class NgxColor {\r\n private _rgb: RGBA = { r: 0, g: 0, b: 0, a: 1 };\r\n private _name: string = '';\r\n\r\n constructor(input?: ColorInput) {\r\n if (!input) return;\r\n if (input instanceof NgxColor) {\r\n this._rgb = { ...input._rgb };\r\n this._name = input._name;\r\n return;\r\n }\r\n if (typeof input === 'object') {\r\n if ('r' in input && 'g' in input && 'b' in input) {\r\n this._rgb = {\r\n r: +input.r,\r\n g: +input.g,\r\n b: +input.b,\r\n a: (input as any).a !== undefined ? +input.a : 1,\r\n };\r\n return;\r\n }\r\n if ('h' in input && 's' in input && 'l' in input) {\r\n this._rgb = NgxColor.hslaToRgba(input as HSLA);\r\n return;\r\n }\r\n if ('h' in input && 's' in input && 'v' in input) {\r\n this._rgb = NgxColor.hsvaToRgba(input as HSVA);\r\n return;\r\n }\r\n if ('c' in input && 'm' in input && 'y' in input && 'k' in input) {\r\n this._rgb = NgxColor.cmykToRgba(input as CMYK);\r\n return;\r\n }\r\n }\r\n if (typeof input === 'string') {\r\n const name = input.trim().toLowerCase();\r\n if (colorNames[name]) {\r\n this._rgb = hexToRgb(colorNames[name]);\r\n this._name = name;\r\n return;\r\n } else if (/^#?[0-9a-f]{3,8}$/i.test(name)) {\r\n this._rgb = hexToRgb(name);\r\n return;\r\n }\r\n if (name.includes('rgb')) {\r\n this._rgb = parseRgbString(name);\r\n return;\r\n }\r\n if (name.includes('hsl')) {\r\n this._rgb = NgxColor.hslaToRgba(parseHslString(name));\r\n return;\r\n }\r\n if (name.includes('hsv')) {\r\n this._rgb = NgxColor.hsvaToRgba(parseHsvString(name));\r\n return;\r\n }\r\n if (name.includes('cmyk')) {\r\n this._rgb = NgxColor.cmykToRgba(parseCmykString(name));\r\n return;\r\n }\r\n throw new Error('Unknown color string: ' + input);\r\n }\r\n }\r\n\r\n get isValid(): boolean {\r\n return (\r\n typeof this._rgb.r === 'number' &&\r\n typeof this._rgb.g === 'number' &&\r\n typeof this._rgb.b === 'number' &&\r\n !isNaN(this._rgb.r) &&\r\n !isNaN(this._rgb.g) &&\r\n !isNaN(this._rgb.b)\r\n );\r\n }\r\n\r\n async name() {\r\n if (this._name) return this._name;\r\n const hex = this.toHexString();\r\n for (const [n, h] of Object.entries(colorNames)) {\r\n if (h.toLowerCase() === hex.toLowerCase()) return n;\r\n }\r\n return '';\r\n }\r\n\r\n toRgb(): RGBA {\r\n return this._rgb;\r\n }\r\n\r\n toRgbString(): string {\r\n const { r, g, b, a } = this.toRgb();\r\n return a === 1\r\n ? `rgb(${Math.round(r)},${Math.round(g)},${Math.round(b)})`\r\n : `rgba(${Math.round(r)},${Math.round(g)},${Math.round(b)},${+a.toFixed(3)})`;\r\n }\r\n\r\n toHexString(allowAlpha = true): string {\r\n const { r, g, b, a } = this.toRgb();\r\n return rgbaToHex(r, g, b, a, allowAlpha && a < 1);\r\n }\r\n\r\n toHsl(): HSLA {\r\n return NgxColor.rgbToHsla(this.toRgb());\r\n }\r\n\r\n toHsv(): HSVA {\r\n return NgxColor.rgbToHsva(this.toRgb());\r\n }\r\n\r\n toCmyk(): CMYK {\r\n return NgxColor.rgbToCmyk(this.toRgb());\r\n }\r\n\r\n static cmykToRgba(cmyk: CMYK): RGBA {\r\n const { c, m, y, k } = cmyk;\r\n return { ...cmykToRgb(c, m, y, k), a: (cmyk as any).a !== undefined ? +(cmyk as any).a : 1 };\r\n }\r\n\r\n static rgbToCmyk(rgba: RGBA): CMYK {\r\n const { r, g, b } = rgba;\r\n return rgbToCmyk(r, g, b);\r\n }\r\n\r\n static rgbToHsla(rgba: RGBA): HSLA {\r\n const { r, g, b, a } = rgba;\r\n return { ...rgbToHsl(r, g, b), a };\r\n }\r\n\r\n static rgbToHsva(rgba: RGBA): HSVA {\r\n const { r, g, b, a } = rgba;\r\n return { ...rgbToHsv(r, g, b), a };\r\n }\r\n\r\n static hsvaToRgba(hsva: HSVA): RGBA {\r\n const { h, s, v, a } = hsva;\r\n return { ...hsvToRgb(h, s, v), a: a !== undefined ? a : 1 };\r\n }\r\n\r\n static hslaToRgba(hsla: HSLA): RGBA {\r\n const { h, s, l, a } = hsla;\r\n return { ...hslToRgba(h, s, l), a: a !== undefined ? a : 1 };\r\n }\r\n\r\n equals(other?: NgxColor): boolean {\r\n if (!other) return false;\r\n return this.toHexString().toLowerCase() === other.toHexString().toLowerCase();\r\n }\r\n\r\n isDark(): boolean {\r\n const { r, g, b, a } = this.toRgb();\r\n return a < 0.5 ? false : 0.299 * r + 0.587 * g + 0.114 * b < 128;\r\n }\r\n\r\n isLight(): boolean {\r\n return !this.isDark();\r\n }\r\n\r\n async getOutputResult(outputType: OutputType): Promise<string> {\r\n const { r, g, b, a } = this._rgb;\r\n\r\n switch (outputType) {\r\n case 'CMYK':\r\n return rgbToCmykString(r, g, b);\r\n\r\n case 'HSL':\r\n return rgbToHslaString(r, g, b, a);\r\n\r\n case 'HSV':\r\n return rgbToHsvString(r, g, b, a);\r\n\r\n case 'RGB':\r\n return a < 1 ? `rgba(${r}, ${g}, ${b}, ${+a.toFixed(2)})` : `rgb(${r}, ${g}, ${b})`;\r\n\r\n case 'HEX':\r\n return this.toHexString(true);\r\n\r\n default:\r\n let name = await this.name();\r\n return name ?? this.toHexString(true);\r\n }\r\n }\r\n\r\n removeAlphaChannel() {\r\n this._rgb.a = 1;\r\n }\r\n}\r\n","export enum ColorInspector {\n Picker,\n RGB,\n HSL,\n CMYK,\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ standalone: true, name: 'enumToArray' })\nexport class EnumToArrayPipe implements PipeTransform {\n /**\n * when data enum like:\n * A=1,\n * B=2,\n * C=3\n */\n transform(data: Object) {\n // The list should be sorted due to the existence of negative ENUMs\n const keys = Object.keys(data).sort();\n // return key of enum => men,women,...\n // return keys.slice(keys.length / 2);\n // return value of enum => 0,1,2,3\n return keys.slice(0, keys.length / 2);\n }\n}\n\n@Pipe({ standalone: true, name: 'enumToArrayStringValue' })\nexport class EnumToArrayStringValuePipe implements PipeTransform {\n /**\n * when data enum like:\n * A='A',\n * B='B',\n * C='C'\n */\n transform(data: Object, sort = true) {\n let keys = Object.keys(data);\n if (sort) keys = keys.sort();\n return keys;\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { NgxColor } from '../../utils/color-helper';\r\nimport { HSVA } from '../../contracts/color-interface';\r\nimport { SaturationComponent, SliderComponent, IPosition } from 'ngx-kit/shared';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-picker',\r\n templateUrl: './picker.component.html',\r\n styleUrls: ['./picker.component.scss'],\r\n imports: [FormsModule, SliderComponent, SaturationComponent],\r\n})\r\nexport class PickerComponent implements OnInit {\r\n hue = 300;\r\n baseColor = 'rgb(0,0,0)';\r\n alphaBgColor = '#000';\r\n\r\n board: IPosition = { x: 1, y: 0 };\r\n alpha = 1;\r\n private inputColor?: NgxColor;\r\n @Input() simpleMode = false;\r\n\r\n @Input() set color(c: NgxColor) {\r\n if (c.equals(this.inputColor)) return;\r\n this.inputColor = c;\r\n const shva = c.toHsv();\r\n this.hue = shva.h;\r\n this.board = { x: shva.s, y: 100 - shva.v };\r\n this.alpha = shva.a ?? 1;\r\n const pureColor = new NgxColor({ h: this.hue, s: 100, v: 100, a: 1 });\r\n this.baseColor = pureColor.toHexString(false);\r\n this.alphaBgColor = this.inputColor.toHexString(false);\r\n }\r\n\r\n @Input() useAlphaChannel: boolean = true;\r\n @Output() colorChange = new EventEmitter<NgxColor | undefined>();\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n generateColor() {\r\n try {\r\n const hsva: HSVA = { h: this.hue, s: this.board.x, v: 100 - this.board.y, a: this.alpha };\r\n const color = new NgxColor(hsva);\r\n const pureColor = new NgxColor({ h: this.hue, s: 100, v: 100, a: 1 });\r\n this.baseColor = pureColor.toHexString(false);\r\n this.alphaBgColor = color.toHexString(false);\r\n\r\n if (color.equals(this.inputColor) == false) {\r\n this.inputColor = color;\r\n this.colorChange.emit(color);\r\n }\r\n } catch (error) {\r\n this.colorChange.emit(undefined);\r\n }\r\n }\r\n}\r\n","<saturation\n [height]=\"simpleMode ? 150 : 160\"\n [(ngModel)]=\"board\"\n name=\"board\"\n [min]=\"{ x: 0, y: 0 }\"\n [max]=\"{ x: 100, y: 100 }\"\n [step]=\"1\"\n [color]=\"baseColor\"\n (change)=\"generateColor()\"></saturation>\n<slider\n [(ngModel)]=\"hue\"\n name=\"hue\"\n [min]=\"0\"\n [max]=\"360\"\n [step]=\"1\"\n (change)=\"generateColor()\"\n background=\"linear-gradient(to right,red 0%,#ff0 17%,lime 33%,cyan 50%,blue 66%,#f0f 83%,red 100%)\"></slider>\n@if (useAlphaChannel) {\n <slider\n [(ngModel)]=\"alpha\"\n name=\"alpha\"\n [min]=\"0\"\n [max]=\"1\"\n [step]=\"0.1\"\n (change)=\"generateColor()\"\n [isBgTransparent]=\"true\"\n [background]=\"'linear-gradient(to right,transparent,' + alphaBgColor + ')'\"></slider>\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NgxColor } from '../../utils/color-helper';\nimport { CMYK } from '../../contracts/color-interface';\n\nimport { FormsModule } from '@angular/forms';\nimport { SliderComponent } from 'ngx-kit/shared';\n\n@Component({\n selector: 'app-cmyk',\n templateUrl: './cmyk.component.html',\n styleUrls: ['./cmyk.component.scss'],\n imports: [FormsModule, SliderComponent],\n})\nexport class CmykComponent implements OnInit {\n cyanSliderBackground = '';\n magentaSliderBackground = '';\n yellowSliderBackground = '';\n keySliderBackground = '';\n\n cyan: number = 0;\n magenta: number = 0;\n yellow: number = 0;\n key: number = 0;\n private inputColor?: NgxColor;\n\n @Input() set color(c: NgxColor) {\n if (c.equals(this.inputColor)) return;\n this.inputColor = c;\n const cmyk = c.toCmyk();\n this.cyan = cmyk.c;\n this.magenta = cmyk.m;\n this.yellow = cmyk.y;\n this.key = cmyk.k;\n this.updateSliderBackgrounds(cmyk);\n }\n @Output() colorChange = new EventEmitter<NgxColor | undefined>();\n constructor() {}\n\n ngOnInit() {}\n generateColor() {\n try {\n const cmyk: CMYK = { c: this.cyan, m: this.magenta, y: this.yellow, k: this.key };\n const color = new NgxColor(cmyk);\n this.updateSliderBackgrounds(cmyk);\n if (color.equals(this.inputColor) == false) {\n this.inputColor = color;\n this.colorChange.emit(color);\n }\n } catch (error) {\n this.colorChange.emit(undefined);\n }\n }\n\n private updateSliderBackgrounds(cmyk: CMYK) {\n this.cyanSliderBackground = this.getChannelGradient('c', cmyk);\n this.magentaSliderBackground = this.getChannelGradient('m', cmyk);\n this.yellowSliderBackground = this.getChannelGradient('y', cmyk);\n this.keySliderBackground = this.getChannelGradient('k', cmyk);\n }\n\n private getChannelGradient(channel: keyof CMYK, cmyk: CMYK): string {\n let baseColor = this.cloneColor(cmyk);\n baseColor[channel] = channel == 'k' ? 1 : 0;\n let startColor = NgxColor.cmykToRgba(baseColor);\n let s = `rgb(${startColor.r}, ${startColor.g}, ${startColor.b})`;\n baseColor[channel] = 100;\n let endColor = NgxColor.cmykToRgba(baseColor);\n let e = `rgb(${endColor.r}, ${endColor.g}, ${endColor.b})`;\n\n return `linear-gradient(to right, ${s},${e})`;\n }\n private isCmykEqual(a?: CMYK, b?: CMYK): boolean {\n if (!a || !b) return false;\n return a.c === b.c && a.m === b.m && a.y === b.y && a.k === b.k;\n }\n\n private cloneColor(cmyk: CMYK): CMYK {\n return JSON.parse(JSON.stringify(cmyk));\n // return Object.assign({}, cmyk);\n }\n}\n","<slider\n [(ngModel)]=\"cyan\"\n name=\"cyan\"\n [min]=\"0\"\n [max]=\"100\"\n [step]=\"1\"\n (change)=\"generateColor()\"\n [background]=\"cyanSliderBackground\">\n <div class=\"slider-title\">\n <span>Cyan</span>\n <input type=\"number\" [(ngModel)]=\"cyan\" name=\"inputCyan\" min=\"0\" max=\"100\" step=\"1\" />\n </div>\n</slider>\n<slider\n [(ngModel)]=\"magenta\"\n name=\"magenta\"\n [min]=\"0\"\n [max]=\"100\"\n [step]=\"1\"\n (change)=\"generateColor()\"\n [background]=\"magentaSliderBackground\">\n <div class=\"slider-title\">\n <span>Magenta</span>\n <input type=\"number\" [(ngModel)]=\"magenta\" name=\"inputMagenta\" min=\"0\" max=\"100\" step=\"1\" />\n </div>\n</slider>\n<slider\n [(ngModel)]=\"yellow\"\n name=\"yellow\"\n [min]=\"0\"\n [max]=\"100\"\n [step]=\"1\"\n (change)=\"generateColor()\"\n [background]=\"yellowSliderBackground\">\n <div class=\"slider-title\">\n <span>Yellow</span>\n <input type=\"number\" [(ngModel)]=\"yellow\" name=\"inputYellow\" min=\"0\" max=\"100\" step=\"1\" />\n </div>\n</slider>\n<slider\n [(ngModel)]=\"key\"\n name=\"key\"\n [min]=\"0\"\n [max]=\"100\"\n [step]=\"1\"\n (change)=\"generateColor()\"\n [background]=\"keySliderBackground\">\n <div class=\"slider-title\">\n <span>Key</span>\n <input type=\"number\" [(ngModel)]=\"key\" name=\"inputKey\" min=\"0\" max=\"100\" step=\"1\" />\n </div>\n</slider>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { NgxColor } from '../../utils/color-helper';\r\nimport { HSLA } from '../../contracts/color-interface';\r\nimport { SliderComponent } from 'ngx-kit/shared';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-hsl',\r\n templateUrl: './hsl.component.html',\r\n styleUrls: ['./hsl.component.scss'],\r\n imports: [FormsModule, SliderComponent],\r\n})\r\nexport class HslComponent implements OnInit {\r\n hue: number = 0;\r\n saturation: number = 0;\r\n luminance: number = 0;\r\n alpha: number = 1;\r\n baseColor = 'rgb(0,0,0)';\r\n private inputColor?: NgxColor;\r\n\r\n @Input() set color(c: NgxColor) {\r\n if (c.equals(this.inputColor)) return;\r\n this.inputColor = c;\r\n const hsla = c.toHsl();\r\n this.hue = hsla.h;\r\n this.saturation = hsla.s;\r\n this.luminance = hsla.l;\r\n this.alpha = hsla.a ?? 1;\r\n this.baseColor = c.toHexString(false);\r\n }\r\n\r\n @Input() useAlphaChannel: boolean = true;\r\n @Output() colorChange = new EventEmitter<NgxColor | undefined>();\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n generateColor() {\r\n try {\r\n const hsla: HSLA = { h: this.hue, s: this.saturation, l: this.luminance, a: this.alpha };\r\n const color = new NgxColor(hsla);\r\n this.baseColor = color.toHexString(false);\r\n if (color.equals(this.inputColor) == false) {\r\n this.inputColor = color;\r\n this.colorChange.emit(color);\r\n }\r\n } catch (error) {\r\n this.colorChange.emit(undefined);\r\n }\r\n }\r\n}\r\n","<slider\r\n [(ngModel)]=\"hue\"\r\n name=\"hue\"\r\n [min]=\"0\"\r\n [max]=\"360\"\r\n [step]=\"1\"\r\n (change)=\"generateColor()\"\r\n background=\"linear-gradient(to right,red 0%,#ff0 17%,lime 33%,cyan 50%,blue 66%,#f0f 83%,red 100%)\">\r\n <div class=\"slider-title\">\r\n <span>Hue</span>\r\n <input type=\"number\" [(ngModel)]=\"hue\" name=\"inputHue\" min=\"0\" max=\"360\" step=\"1\" />\r\n </div>\r\n</slider>\r\n<slider\r\n [(ngModel)]=\"saturation\"\r\n name=\"saturation\"\r\n [min]=\"0\"\r\n [max]=\"100\"\r\n [step]=\"1\"\r\n (change)=\"generateColor()\"\r\n [background]=\"'linear-gradient(to right,#808080,' + baseColor + ')'\">\r\n <div class=\"slider-title\">\r\n <span>Saturation</span>\r\n <input\r\n type=\"number\"\r\n [(ngModel)]=\"saturation\"\r\n name=\"inputSaturation\"\r\n min=\"0\"\r\n max=\"100\"\r\n step=\"1\" />\r\n </div>\r\n</slider>\r\n<slider\r\n [(ngModel)]=\"luminance\"\r\n name=\"luminance\"\r\n [min]=\"0\"\r\n [max]=\"100\"\r\n [step]=\"1\"\r\n (change)=\"generateColor()\"\r\n [background]=\"'linear-gradient(to right,black,' + baseColor + ',white)'\">\r\n <div class=\"slider-title\">\r\n <span>Luminance</span>\r\n <input type=\"number\" [(ngModel)]=\"luminance\" name=\"inputLuminance\" min=\"0\" max=\"100\" step=\"1\" />\r\n </div>\r\n</slider>\r\n@if (useAlphaChannel) {\r\n <slider\r\n [(ngModel)]=\"alpha\"\r\n name=\"alpha\"\r\n [min]=\"0\"\r\n [max]=\"1\"\r\n [step]=\"0.1\"\r\n (change)=\"generateColor()\"\r\n [isBgTransparent]=\"true\"\r\n [background]=\"'linear-gradient(to right,transparent,' + baseColor + ')'\">\r\n <div class=\"slider-title\">\r\n <span>Alpha</span>\r\n <input type=\"number\" [(ngModel)]=\"alpha\" name=\"inputAlpha\" min=\"0\" max=\"1\" step=\"0.1\" />\r\n </div>\r\n </slider>\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { NgxColor } from '../../utils/color-helper';\r\nimport { RGBA } from '../../contracts/color-interface';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SliderComponent } from 'ngx-kit/shared';\r\n\r\n@Component({\r\n selector: 'app-rgb',\r\n templateUrl: './rgb.component.html',\r\n styleUrls: ['./rgb.component.scss'],\r\n imports: [FormsModule, SliderComponent],\r\n})\r\nexport class RgbComponent implements OnInit {\r\n redSliderBackground = '';\r\n greenSliderBackground = '';\r\n blueSliderBackground = '';\r\n\r\n baseColor = 'rgb(0,0,0)';\r\n red: number = 0;\r\n green: number = 0;\r\n blue: number = 0;\r\n alpha: number = 1;\r\n\r\n private inputColor?: NgxColor;\r\n @Input() set color(c: NgxColor) {\r\n if (c.equals(this.inputColor)) return;\r\n this.inputColor = c;\r\n const rgba = c.toRgb();\r\n this.red = rgba.r;\r\n this.green = rgba.g;\r\n this.blue = rgba.b;\r\n this.alpha = rgba.a ?? 1;\r\n this.updateRgbSliderColor(rgba as any);\r\n }\r\n\r\n @Input() useAlphaChannel: boolean = true;\r\n @Output() colorChange = new EventEmitter<NgxColor | undefined>();\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n generateColor() {\r\n try {\r\n const rgba: RGBA = { r: this.red, g: this.green, b: this.blue, a: this.alpha };\r\n const color = new NgxColor(rgba);\r\n this.updateRgbSliderColor(rgba);\r\n if (color.equals(this.inputColor) == false) {\r\n this.inputColor = color;\r\n this.colorChange.emit(color);\r\n }\r\n } catch (error) {\r\n this.colorChange.emit(undefined);\r\n }\r\n }\r\n\r\n private updateRgbSliderColor(rgba: RGBA) {\r\n const { r, g, b } = rgba;\r\n this.redSliderBackground = `linear-gradient(to right, rgb(0, ${g}, ${b}), rgb(255, ${g}, ${b}))`;\r\n this.greenSliderBackground = `linear-gradient(to right, rgb(${r}, 0, ${b}), rgb(${r}, 255, ${b}))`;\r\n this.blueSliderBackground = `linear-gradient(to right, rgb(${r}, ${g}, 0), rgb(${r}, ${g}, 255))`;\r\n this.baseColor = `rgb(${r}, ${g}, ${b})`;\r\n }\r\n}\r\n","<slider\n [(ngModel)]=\"red\"\n name=\"red\"\n [min]=\"0\"\n [max]=\"255\"\n [step]=\"1\"\n (change)=\"generateColor()\"\n [background]=\"redSliderBackground\">\n <div class=\"slider-title\">\n <span>Red</span>\n <input type=\"number\" [(ngModel)]=\"red\" name=\"inputRed\" min=\"0\" max=\"255\" step=\"1\" />\n </div>\n</slider>\n<slider\n [(ngModel)]=\"green\"\n name=\"green\"\n [min]=\"0\"\n [max]=\"255\"\n [step]=\"1\"\n (change)=\"generateColor()\"\n [background]=\"greenSliderBackground\">\n <div class=\"slider-title\">\n <span>Green</span>\n <input type=\"number\" [(ngModel)]=\"green\" name=\"inputGreen\" min=\"0\" max=\"255\" step=\"1\" />\n </div>\n</slider>\n<slider\n [(ngModel)]=\"blue\"\n name=\"blue\"\n [min]=\"0\"\n [max]=\"255\"\n [step]=\"1\"\n (change)=\"generateColor()\"\n [background]=\"blueSliderBackground\">\n <div class=\"slider-title\">\n <span>Blue</span>\n <input type=\"number\" [(ngModel)]=\"blue\" name=\"inputBlue\" min=\"0\" max=\"255\" step=\"1\" />\n </div>\n</slider>\n@if (useAlphaChannel) {\n <slider\n [(ngModel)]=\"alpha\"\n name=\"alpha\"\n [min]=\"0\"\n [max]=\"1\"\n [step]=\"0.1\"\n (change)=\"generateColor()\"\n [isBgTransparent]=\"true\"\n [background]=\"'linear-gradient(to right,transparent,' + baseColor + ')'\">\n <div class=\"slider-title\">\n <span>Alpha</span>\n <input type=\"number\" [(ngModel)]=\"alpha\" name=\"inputAlpha\" min=\"0\" max=\"1\" step=\"0.1\" />\n </div>\n </slider>\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { ColorFormats } from '../contracts/ColorFormats.enum';\nimport { NgxColor } from '../utils/color-helper';\nimport { OutputType } from '../contracts/OutputType';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormsModule,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { ColorInspector } from '../contracts/ColorInspector.enum';\nimport { CommonModule } from '@angular/common';\nimport { EnumToArrayPipe } from '../pipes/enum-to-array.pipe';\nimport { PickerComponent } from '../inspectors/picker/picker.component';\nimport { CmykComponent } from '../inspectors/cmyk/cmyk.component';\nimport { HslComponent } from '../inspectors/hsl/hsl.component';\nimport { RgbComponent } from '../inspectors/rgb/rgb.component';\nimport { BrowserService } from 'ngx-kit/shared';\ndeclare const EyeDropper: any;\n\n@Component({\n standalone: true,\n selector: 'ngx-input-color',\n templateUrl: './input-color.component.html',\n styleUrls: ['./input-color.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgxInputColorComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n multi: true,\n useExisting: NgxInputColorComponent,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.dark]': 'theme==\"dark\"',\n },\n imports: [\n CommonModule,\n FormsModule,\n EnumToArrayPipe,\n PickerComponent,\n CmykComponent,\n HslComponent,\n RgbComponent,\n ],\n})\nexport class NgxInputColorComponent implements OnInit, OnDestroy, ControlValueAccessor, Validator {\n browserService = inject(BrowserService);\n theme: 'light' | 'dark' = this.browserService.prefersDarkMode ? 'dark' : 'light';\n @Input('theme') set setTheme(val: 'light' | 'dark' | 'auto') {\n if (!val || val == 'auto') {\n this.theme = this.browserService.prefersDarkMode ? 'dark' : 'light';\n } else {\n this.theme = val;\n }\n }\n\n /** Minifi UI */\n @Input() simpleMode = false;\n\n @Input() outputType: OutputType = 'HEX';\n\n /**\n * default inspectors\n * - ColorInspector.Picker\n * - ColorInspector.RGB\n * - ColorInspector.HSL\n *\n * @alias defaultInspector\n */\n @Input() defaultInspector: ColorInspector = ColorInspector.Picker;\n\n useAlphaChannel: boolean = true;\n @Input('useAlphaChannel') set setUseAlphaChannel(val: boolean) {\n this.useAlphaChannel = val == true;\n if (!this.useAlphaChannel) {\n this.color.removeAlphaChannel();\n this.emitChange();\n }\n }\n\n /** Emitted when the color value changes */\n @Output() change = new EventEmitter<string>();\n\n /** @ignore */\n format: ColorFormats = ColorFormats.HSVA;\n /** @ignore */\n isDarkColor = true;\n\n /** @ignore */\n rgbaColor = 'rgba(0, 0, 0, 1)';\n /** @ignore */\n hexColor = '#000000';\n outputColor = '';\n\n /** @ignore */\n name = 'black';\n\n /** @ignore */\n isSupportedEyeDrop: boolean;\n\n /** @ignore */\n color: NgxColor = new NgxColor();\n\n /** @ignore */\n isDisabled = false;\n /**@ignore */\n protected _onChange = (value: string) => {};\n /**@ignore */\n protected _onTouched = () => {};\n /**@ignore */\n private _onValidateChange = () => {};\n\n constructor(private cd: ChangeDetectorRef) {\n this.isSupportedEyeDrop = 'EyeDropper' in window;\n }\n\n /** @ignore */\n ngOnInit(): void {}\n /** @ignore */\n ngOnDestroy(): void {}\n public get ColorFormats(): typeof ColorFormats {\n return ColorFormats;\n }\n public get ColorInspector(): typeof ColorInspector {\n return ColorInspector;\n }\n /** @ignore */\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n /** @ignore */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n /** @ignore */\n setDisabledState(disabled: boolean): void {\n this.isDisabled = disabled;\n }\n /** @ignore */\n registerOnValidatorChange(fn: () => void): void {\n this._onValidateChange = fn;\n }\n /** @ignore */\n validate(control: AbstractControl): ValidationErrors | null {\n if (this.color && this.color.isValid === false) {\n return { invalid: true };\n }\n return null;\n }\n\n /** @ignore */\n writeValue(value: any): void {\n try {\n const c = value ? new NgxColor(value) : new NgxColor('#000');\n this.initColor(c);\n this._onValidateChange();\n } catch (e) {\n const c = new NgxColor('#000'); // مقدار پیشفرض\n this.initColor(c);\n }\n }\n /** @ignore */\n openEyeDrop() {\n if (this.isSupportedEyeDrop) {\n let t = new EyeDropper().open();\n t.then(async (result: { sRGBHex: string }) => {\n this.hexColor = result.sRGBHex;\n this.initColor(new NgxColor(this.hexColor));\n this.cd.detectChanges();\n });\n }\n }\n\n /**\n * call from directive\n /* @ignore \n */\n async initColor(c?: NgxColor) {\n if (!c) return;\n this.color = c;\n this.rgbaColor = this.color.toRgbString();\n this.hexColor = this.color.toHexString();\n this.outputColor = await this.color.getOutputResult(this.outputType);\n this.isDarkColor = this.color.isDark();\n this.name = await this.color.name();\n this.emitChange();\n }\n\n /** @ignore */\n stopPropagation(ev: Event) {\n ev.stopPropagation();\n }\n\n /** @ignore */\n async emitChange() {\n this.outputColor = await this.color.getOutputResult(this.outputType);\n this._onChange(this.outputColor);\n this.change.emit(this.outputColor);\n }\n}\n","<div\r\n class=\"ngx-input-color-picker\"\r\n (click)=\"stopPropagation($event)\"\r\n [class.simple-mode]=\"simpleMode\">\r\n @if (!simpleMode) {\r\n <div\r\n class=\"ngx-color-preview\"\r\n [ngStyle]=\"{ '--ngx-selected-color': rgbaColor }\"\r\n [class.is-dark-color]=\"isDarkColor\">\r\n <div class=\"rgbacode\">{{ outputColor | uppercase }}</div>\r\n @if (outputType !== 'HEX') {\r\n <div class=\"hexacode\">{{ hexColor | uppercase }}</div>\r\n }\r\n <div class=\"colorname\">{{ name }}</div>\r\n <div class=\"color\"></div>\r\n </div>\r\n }\r\n <div class=\"ngx-c-inner\">\r\n <div class=\"top-actions\">\r\n <select [(ngModel)]=\"defaultInspector\" name=\"inspector\">\r\n @for (inspector of ColorInspector | enumToArray; track inspector) {\r\n <option [value]=\"inspector\">\r\n {{ ColorInspector[+inspector] }}\r\n </option>\r\n }\r\n </select>\r\n @if (isSupportedEyeDrop) {\r\n <button type=\"button\" (click)=\"openEyeDrop()\" class=\"ngx-btn-eyedroper\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\r\n <defs>\r\n <style>\r\n .fa-secondary {\r\n opacity: 0.4;\r\n }\r\n </style>\r\n </defs>\r\n <path\r\n class=\"fa-primary\"\r\n d=\"M482.8 29.23C521.7 68.21 521.7 131.4 482.8 170.4L381.2 271.9L390.6 281.4C403.1 293.9 403.1 314.1 390.6 326.6C378.1 339.1 357.9 339.1 345.4 326.6L185.4 166.6C172.9 154.1 172.9 133.9 185.4 121.4C197.9 108.9 218.1 108.9 230.6 121.4L240.1 130.8L341.6 29.23C380.6-9.744 443.8-9.744 482.8 29.23L482.8 29.23zM132.1 416H96V379.9C96 375.6 97.69 371.6 100.7 368.6L149.3 320H234.7L143.4 411.3C140.4 414.3 136.4 416 132.1 416H132.1z\" />\r\n <path\r\n class=\"fa-secondary\"\r\n d=\"M244 225.3L100.7 368.6C97.69 371.6 96 375.6 96 379.9V416H132.1C136.4 416 140.4 414.3 143.4 411.3L286.7 268L332 313.3L188.7 456.6C173.7 471.6 153.3 480 132.1 480H89.69L49.75 506.6C37.06 515.1 20.16 513.4 9.372 502.6C-1.414 491.8-3.087 474.9 5.374 462.2L32 422.3V379.9C32 358.7 40.43 338.3 55.43 323.3L198.7 180L244 225.3z\" />\r\n </svg>\r\n </button>\r\n }\r\n </div>\r\n\r\n @switch (+defaultInspector) {\r\n @case (ColorInspector.Picker) {\r\n <app-picker\r\n [color]=\"color\"\r\n (colorChange)=\"initColor($event)\"\r\n [simpleMode]=\"simpleMode\"\r\n [useAlphaChannel]=\"useAlphaChannel\"></app-picker>\r\n }\r\n @case (ColorInspector.HSL) {\r\n <app-hsl\r\n [color]=\"color\"\r\n (colorChange)=\"initColor($event)\"\r\n [useAlphaChannel]=\"useAlphaChannel\"></app-hsl>\r\n }\r\n @case (ColorInspector.RGB) {\r\n <app-rgb\r\n [color]=\"color\"\r\n (colorChange)=\"initColor($event)\"\r\n [useAlphaChannel]=\"useAlphaChannel\"></app-rgb>\r\n }\r\n @case (ColorInspector.CMYK) {\r\n <app-cmyk [color]=\"color\" (colorChange)=\"initColor($event)\"></app-cmyk>\r\n }\r\n }\r\n </div>\r\n</div>\r\n","import {\r\n Directive,\r\n forwardRef,\r\n OnDestroy,\r\n Input,\r\n ElementRef,\r\n Renderer2,\r\n ViewContainerRef,\r\n HostListener,\r\n AfterViewInit,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport {\r\n NG_VALUE_ACCESSOR,\r\n NG_VALIDATORS,\r\n ControlValueAccessor,\r\n Validator,\r\n AbstractControl,\r\n ValidationErrors,\r\n} from '@angular/forms';\r\nimport { ColorInspector } from '../contracts/ColorInspector.enum';\r\nimport { NgxInputColorComponent } from '../components/input-color.component';\r\nimport { NgxColor } from '../utils/color-helper';\r\nimport { OutputType } from '../contracts/OutputType';\r\nimport { OverlayRef, OverlayService } from 'ngx-kit/shared';\r\n\r\n@Directive({\r\n selector: '[ngxInputColor]',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NgxInputColor),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => NgxInputColor),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class NgxInputColor implements AfterViewInit, OnDestroy, ControlValueAccessor, Validator {\r\n @Input() setInputBackgroundColor = true;\r\n @Input() defaultInspector: ColorInspector = ColorInspector.Picker;\r\n @Input() simpleMode = false;\r\n @Input() outputType: OutputType = 'HEX';\r\n @Input() theme: 'light' | 'dark' | 'auto' = 'auto';\r\n private useAlphaChannel: boolean = true;\r\n @Input('useAlphaChannel') set setUseAlphaChannel(val: boolean) {\r\n this.useAlphaChannel = val == true;\r\n if (!this.useAlphaChannel && this.color) {\r\n this.color.removeAlphaChannel();\r\n this.color.getOutputResult(this.outputType).then((c) => {\r\n this.emitChange(c);\r\n });\r\n }\r\n }\r\n\r\n private boundInputHandler = (e: Event) => {\r\n this.writeValue((e.target as HTMLInputElement).value);\r\n };\r\n private _targetInput?: HTMLInputElement;\r\n\r\n @Input('ngxInputColor') set ngxInputColor(\r\n el: HTMLInputElement | ElementRef<HTMLInputElement> | null | undefined | '',\r\n ) {\r\n this.isHostInput = false;\r\n if (el instanceof ElementRef) {\r\n this._targetInput = el.nativeElement;\r\n } else if (el instanceof HTMLInputElement) {\r\n this.isHostInput = true;\r\n this._targetInput = el;\r\n } else {\r\n this._targetInput = undefined;\r\n }\r\n\r\n if (this._targetInput) {\r\n this._targetInput.removeEventListener('input', this.boundInputHandler);\r\n this._targetInput.addEventListener('input', this.boundInputHandler);\r\n }\r\n }\r\n @Output() change = new EventEmitter<string>();\r\n private color?: NgxColor;\r\n private pickerRef?: OverlayRef<NgxInputColorComponent>;\r\n private isHostInput = false;\r\n inValid: boolean = false;\r\n protected _onChange = (value: string) => {};\r\n protected _onTouched = () => {};\r\n _onValidateChange = () => {};\r\n\r\n constructor(\r\n private el: ElementRef,\r\n private renderer: Renderer2,\r\n private viewContainerRef: ViewContainerRef,\r\n private overlayService: OverlayService,\r\n ) {}\r\n\r\n ngAfterViewInit(): void {\r\n if (this._targetInput && this._targetInput.tagName.toLowerCase() === 'input') {\r\n this.writeValue(this._targetInput.value);\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n this.destroyColorPicker();\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClick(ev: Event) {\r\n ev.stopPropagation();\r\n ev.preventDefault();\r\n this.toggleColorPicker();\r\n }\r\n\r\n writeValue(value: any): void {\r\n try {\r\n this.color = value ? new NgxColor(value) : undefined;\r\n\r\n const colorStr = this.color?.toHexString() ?? '';\r\n\r\n // اگر دایرکتیو روی input باشه (ControlValueAccessor)\r\n if (this.isHostInput) {\r\n const input = this.el.nativeElement as HTMLInputElement;\r\n input.value = colorStr;\r\n }\r\n\r\n // اگر input خارجی مشخص شده\r\n if (this._targetInput instanceof HTMLInputElement) {\r\n this._targetInput.value = colorStr;\r\n }\r\n\r\n if (this.setInputBackgroundColor) {\r\n this.renderer.setStyle(this.el.nativeElement, 'backgroundColor', colorStr);\r\n }\r\n\r\n this.inValid = false;\r\n this._onValidateChange();\r\n } catch (e) {\r\n this.color = new NgxColor('#000'); // مقدار پیشفرض\r\n this.inValid = true;\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this._onTouched = fn;\r\n }\r\n\r\n setDisabledState(disabled: boolean): void {\r\n if (disabled) {\r\n this.renderer.setProperty(this.el.nativeElement, 'disabled', disabled);\r\n } else {\r\n this.renderer.removeAttribute(this.el.nativeElement, 'disabled');\r\n }\r\n }\r\n\r\n registerOnValidatorChange(fn: () => void): void {\r\n this._onValidateChange = fn;\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n if ((this.color && this.color.isValid === false) || this.inValid === true) {\r\n return { invalid: true };\r\n }\r\n return null;\r\n }\r\n\r\n private toggleColorPicker() {\r\n if (this.pickerRef) {\r\n this.destroyColorPicker();\r\n return;\r\n }\r\n\r\n this.pickerRef = this.overlayService.open({\r\n anchor: this.el.nativeElement,\r\n component: NgxInputColorComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n alignment: 'start',\r\n placement: 'auto',\r\n configure: (instance, ref) => {\r\n instance.defaultInspector = this.defaultInspector;\r\n instance.simpleMode = this.simpleMode;\r\n instance.outputType = this.outputType;\r\n instance.setTheme = this.theme;\r\n instance.setUseAlphaChannel = this.useAlphaChannel;\r\n if (this.color?.isValid) instance.writeValue(this.color);\r\n\r\n instance.change.subscribe((c: string) => {\r\n this.color = new NgxColor(c);\r\n this.emitChange(c);\r\n });\r\n\r\n // instance.closed.subscribe(() => ref.close());\r\n },\r\n onClosed: () => {\r\n this.pickerRef = undefined;\r\n },\r\n });\r\n }\r\n\r\n private destroyColorPicker() {\r\n this.pickerRef?.close();\r\n this.pickerRef = undefined;\r\n }\r\n\r\n private async emitChange(c: string) {\r\n if (this.setInputBackgroundColor) {\r\n this.renderer.setStyle(this.el.nativeElement, 'backgroundColor', c);\r\n }\r\n\r\n // اگر روی input باشیم، مقدار رو در input قرار بده\r\n if (this.isHostInput) {\r\n const input = this.el.nativeElement as HTMLInputElement;\r\n input.value = c;\r\n }\r\n\r\n // اگر targetInput وجود داره، در اونم مقدار ست کن\r\n if (this._targetInput instanceof HTMLInputElement) {\r\n this._targetInput.value = c;\r\n const event = new Event('input', { bubbles: true });\r\n this._targetInput.dispatchEvent(event);\r\n }\r\n\r\n this._onChange(c);\r\n this.change.emit(c);\r\n this._onTouched();\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-kit-color-picker.mjs","sources":["../../../projects/libs/color-picker/contracts/ColorFormats.enum.ts","../../../projects/libs/color-picker/utils/conversion.ts","../../../projects/libs/color-picker/utils/css-color-names.ts","../../../projects/libs/color-picker/utils/color-helper.ts","../../../projects/libs/color-picker/contracts/ColorInspector.enum.ts","../../../projects/libs/color-picker/pipes/enum-to-array.pipe.ts","../../../projects/libs/color-picker/inspectors/picker/picker.component.ts","../../../projects/libs/color-picker/inspectors/picker/picker.component.html","../../../projects/libs/color-picker/inspectors/cmyk/cmyk.component.ts","../../../projects/libs/color-picker/inspectors/cmyk/cmyk.component.html","../../../projects/libs/color-picker/inspectors/hsl/hsl.component.ts","../../../projects/libs/color-picker/inspectors/hsl/hsl.component.html","../../../projects/libs/color-picker/inspectors/rgb/rgb.component.ts","../../../projects/libs/color-picker/inspectors/rgb/rgb.component.html","../../../projects/libs/color-picker/components/input-color.component.ts","../../../projects/libs/color-picker/components/input-color.component.html","../../../projects/libs/color-picker/directives/ngx-input-color.directive.ts","../../../projects/libs/color-picker/ngx-kit-color-picker.ts"],"sourcesContent":["export enum ColorFormats {\n HEX,\n RGBA,\n HSLA,\n HSVA,\n CMYK,\n}\n","import { CMYK, HSL, HSLA, HSV, HSVA, RGB, RGBA } from '../contracts/color-interface';\n\nexport function hexToRgb(hex: string): RGBA {\n let h = hex.replace(/^#/, '');\n // #rgb یا #rgba (فرمت مخفف) — هر کاراکتر دوبار تکرار میشه تا به فرم کامل برسه.\n // قبلاً فقط طول ۳ (بدون آلفا) پشتیبانی میشد؛ #rgba (طول ۴) با اینکه یک\n // فرمت معتبر CSS هست، از اعتبارسنجی رد میشد ولی اینجا expand نمیشد و در\n // نهایت به خطای «Invalid hex color» میخورد.\n if (h.length === 3 || h.length === 4)\n h = h\n .split('')\n .map((x) => x + x)\n .join('');\n if (h.length === 6) h += 'ff';\n if (h.length === 8) {\n const r = parseInt(h.slice(0, 2), 16);\n const g = parseInt(h.slice(2, 4), 16);\n const b = parseInt(h.slice(4, 6), 16);\n const a = parseInt(h.slice(6, 8), 16) / 255;\n return { r, g, b, a: a };\n }\n throw new Error('Invalid hex color');\n}\nexport function parseRgbString(str: string): RGBA {\n const m = str.match(/rgba?\\(([^)]+)\\)/);\n if (!m) throw new Error('Invalid rgb string');\n const parts = m[1].split(',').map((x) => +x.trim());\n return {\n r: parts[0],\n g: parts[1],\n b: parts[2],\n a: parts[3] !== undefined ? parts[3] : 1,\n };\n}\nfunction clamp(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(max, value));\n}\n\nexport function parseHslString(str: string): HSLA {\n const m = str.match(/hsla?\\(([^)]+)\\)/i);\n if (!m) throw new Error('Invalid hsl/hsla string');\n\n const parts = m[1].split(',').map((x) => x.trim());\n\n const h = clamp(parseFloat(parts[0]), 0, 360);\n const s = clamp(parseFloat(parts[1]), 0, 100);\n const l = clamp(parseFloat(parts[2]), 0, 100);\n const a = parts[3] !== undefined ? clamp(parseFloat(parts[3]), 0, 1) : 1;\n\n return { h, s, l, a };\n}\nexport function parseHsvString(str: string): HSVA {\n const m = str.match(/hsva?\\(([^)]+)\\)/i);\n if (!m) throw new Error('Invalid hsv(a) string');\n\n const parts = m[1].split(',').map((x) => x.trim());\n\n const h = clamp(parseFloat(parts[0]), 0, 360);\n const s = clamp(parseFloat(parts[1]), 0, 100);\n const v = clamp(parseFloat(parts[2]), 0, 100);\n const a = parts[3] !== undefined ? clamp(parseFloat(parts[3]), 0, 1) : 1;\n\n return { h, s, v, a };\n}\n\nexport function parseCmykString(str: string): CMYK {\n const m = str.match(/cmyk\\(([^)]+)\\)/i);\n if (!m) throw new Error('Invalid cmyk string');\n\n const parts = m[1].split(',').map((x) => x.trim());\n\n return {\n c: clamp(parseFloat(parts[0]), 0, 100),\n m: clamp(parseFloat(parts[1]), 0, 100),\n y: clamp(parseFloat(parts[2]), 0, 100),\n k: clamp(parseFloat(parts[3]), 0, 100),\n };\n}\n\n/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n: any, max: number): number {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n\n const isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n } else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n\n return n;\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n * @hidden\n */\nexport function isOnePointZero(n: string | number): boolean {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n: string | number): boolean {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * convert all properties in an interface to a number\n */\nexport type Numberify<T> = {\n [P in keyof T]: number;\n};\n\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n: number | string): number | string {\n if (Number(n) <= 1) {\n return `${Number(n) * 100}%`;\n }\n\n return n;\n}\n\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c: string): string {\n return c.length === 1 ? '0' + c : String(c);\n}\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n\n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * <http://www.w3.org/TR/css3-color/>\n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(\n r: number | string,\n g: number | string,\n b: number | string,\n): Numberify<RGB> {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255]\n * *Returns:* { h: 0-360, s: 0-100, l: 0-100 }\n */\nexport function rgbToHsl(r: number, g: number, b: number): Numberify<HSL> {\n r = r / 255;\n g = g / 255;\n b = b / 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = 0;\n let s = 0;\n const l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0;\n } else {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n h = (h * 360) % 360;\n if (h < 0) h += 360;\n return {\n h: max === min ? 0 : h,\n s: l === 0 || l === 1 ? 0 : s * 100,\n l: l * 100,\n };\n}\n\n/**\n * Converts an HSL color value to RGB.\n * *Assumes:* h in [0, 360], s and l in [0, 100]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function hslToRgba(\n h: number | string,\n s: number | string,\n l: number | string,\n a: number = 1,\n): RGBA {\n h = +h;\n s = +s;\n l = +l;\n h = ((h % 360) + 360) % 360;\n s = Math.max(0, Math.min(100, s));\n l = Math.max(0, Math.min(100, l));\n h = h / 360;\n s = s / 100;\n l = l / 100;\n\n let r: number, g: number, b: number;\n\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n const hue2rgb = (p: number, q: number, t: number): number => {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n };\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return {\n r: Math.round(r * 255),\n g: Math.round(g * 255),\n b: Math.round(b * 255),\n a: Math.max(0, Math.min(1, a)),\n };\n}\n\n/**\n * Converts an RGB color value to HSV\n * *Assumes:* r, g, and b are contained in [0, 255]\n * *Returns:* { h: 0-360, s: 0-100, v: 0-100 }\n */\nexport function rgbToHsv(r: number, g: number, b: number): Numberify<HSV> {\n r = r / 255;\n g = g / 255;\n b = b / 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = 0;\n let s = 0;\n const v = max;\n const d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0;\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n h = (h * 360) % 360;\n if (h < 0) h += 360;\n return {\n h: max === min ? 0 : h,\n s: max === 0 ? 0 : s * 100,\n v: v * 100,\n };\n}\n\n/**\n * Converts an HSV color value to RGB.\n * *Assumes:* h in [0, 360], s and v in [0, 100]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function hsvToRgb(\n h: number | string,\n s: number | string,\n v: number | string,\n): Numberify<RGB> {\n h = +h;\n s = +s;\n v = +v;\n h = ((h % 360) + 360) % 360;\n s = Math.max(0, Math.min(100, s));\n v = Math.max(0, Math.min(100, v));\n s = s / 100;\n v = v / 100;\n let r = 0,\n g = 0,\n b = 0;\n const hi = Math.floor(h / 60) % 6;\n const f = h / 60 - Math.floor(h / 60);\n const p = v * (1 - s);\n const q = v * (1 - f * s);\n const t = v * (1 - (1 - f) * s);\n switch (hi) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n }\n return {\n r: Math.max(0, Math.min(255, Math.round(r * 255))),\n g: Math.max(0, Math.min(255, Math.round(g * 255))),\n b: Math.max(0, Math.min(255, Math.round(b * 255))),\n };\n}\n\n/**\n * Converts an RGB/RGBA color to hex\n */\nexport function rgbaToHex(\n r: number,\n g: number,\n b: number,\n a: number = 1,\n allowAlpha: boolean = true,\n allow3Char: boolean = false,\n): string {\n const toHex = (n: number) => n.toString(16).padStart(2, '0');\n\n const rHex = toHex(Math.round(r));\n const gHex = toHex(Math.round(g));\n const bHex = toHex(Math.round(b));\n const aHex = toHex(Math.round(a * 255));\n\n // Try compressing to #rgb or #rgba if allowed and all characters are duplicated\n if (allow3Char && (!allowAlpha || aHex === 'ff')) {\n const canShorten =\n rHex[0] === rHex[1] &&\n gHex[0] === gHex[1] &&\n bHex[0] === bHex[1] &&\n (!allowAlpha || aHex[0] === aHex[1]);\n\n if (canShorten) {\n return '#' + rHex[0] + gHex[0] + bHex[0] + (allowAlpha && aHex !== 'ff' ? aHex[0] : '');\n }\n }\n\n return '#' + rHex + gHex + bHex + (allowAlpha && aHex !== 'ff' ? aHex : '');\n}\n\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n *\n * *Assumes:* r, g, b are contained in the set [0, 255] and a in [0, 1]\n * *Returns:* a 8 character argb hex\n */\nexport function rgbaToArgbHex(r: number, g: number, b: number, a: number): string {\n const hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n\n return hex.join('');\n}\n\n/**\n * Converts CMYK to RBG\n * Assumes c, m, y, k are in the set [0, 100]\n */\nexport function cmykToRgb(c: number, m: number, y: number, k: number) {\n const cConv = c / 100;\n const mConv = m / 100;\n const yConv = y / 100;\n const kConv = k / 100;\n\n const r = 255 * (1 - cConv) * (1 - kConv);\n const g = 255 * (1 - mConv) * (1 - kConv);\n const b = 255 * (1 - yConv) * (1 - kConv);\n\n return { r, g, b };\n}\n\nexport function rgbToCmyk(r: number, g: number, b: number) {\n let c = 1 - r / 255;\n let m = 1 - g / 255;\n let y = 1 - b / 255;\n let k = Math.min(c, m, y);\n\n if (k === 1) {\n c = 0;\n m = 0;\n y = 0;\n } else {\n c = ((c - k) / (1 - k)) * 100;\n m = ((m - k) / (1 - k)) * 100;\n y = ((y - k) / (1 - k)) * 100;\n }\n\n k *= 100;\n\n return {\n c: Math.round(c),\n m: Math.round(m),\n y: Math.round(y),\n k: Math.round(k),\n };\n}\n\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d: string | number): string {\n return Math.round(parseFloat(d as string) * 255).toString(16);\n}\n\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h: string): number {\n return parseIntFromHex(h) / 255;\n}\n\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val: string): number {\n return parseInt(val, 16);\n}\n\nexport function numberInputToObject(color: number): RGB {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n\nexport function rgbToHslaString(r: number, g: number, b: number, a = 1): string {\n const { h, s, l } = rgbToHsl(r, g, b);\n return `hsla(${Math.round(h)}, ${Math.round(s)}%, ${Math.round(l)}%, ${+a.toFixed(2)})`;\n}\nexport function rgbToHsvString(r: number, g: number, b: number, a = 1): string {\n const { h, s, v } = rgbToHsv(r, g, b);\n return `hsva(${Math.round(h)}, ${Math.round(s)}%, ${Math.round(v)}%, ${+a.toFixed(2)})`;\n}\nexport function rgbToCmykString(r: number, g: number, b: number): string {\n const { c, m, y, k } = rgbToCmyk(r, g, b);\n return `cmyk(${Math.round(c)}%, ${Math.round(m)}%, ${Math.round(y)}%, ${Math.round(k)}%)`;\n}\n","// List of all CSS color names and their hex values (W3C + extended)\nexport const colorNames: Record<string, string> = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n gold: '#ffd700',\n goldenrod: '#daa520',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavender: '#e6e6fa',\n lavenderblush: '#fff0f5',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","import {\n cmykToRgb,\n hexToRgb,\n hslToRgba,\n hsvToRgb,\n parseCmykString,\n parseHslString,\n parseHsvString,\n parseRgbString,\n rgbaToHex,\n rgbToCmyk,\n rgbToCmykString,\n rgbToHsl,\n rgbToHslaString,\n rgbToHsv,\n rgbToHsvString,\n} from './conversion';\nimport { colorNames } from './css-color-names';\nimport { CMYK, HSLA, HSVA, RGBA } from '../contracts/color-interface';\nimport { OutputType } from '../contracts/OutputType';\nimport { ColorInput } from '../contracts/ColorInput';\nexport class NgxColor {\n private _rgb: RGBA = { r: 0, g: 0, b: 0, a: 1 };\n private _name: string = '';\n\n constructor(input?: ColorInput) {\n if (!input) return;\n if (input instanceof NgxColor) {\n this._rgb = { ...input._rgb };\n this._name = input._name;\n return;\n }\n if (typeof input === 'object') {\n if ('r' in input && 'g' in input && 'b' in input) {\n this._rgb = {\n r: +input.r,\n g: +input.g,\n b: +input.b,\n a: (input as any).a !== undefined ? +input.a : 1,\n };\n return;\n }\n if ('h' in input && 's' in input && 'l' in input) {\n this._rgb = NgxColor.hslaToRgba(input as HSLA);\n return;\n }\n if ('h' in input && 's' in input && 'v' in input) {\n this._rgb = NgxColor.hsvaToRgba(input as HSVA);\n return;\n }\n if ('c' in input && 'm' in input && 'y' in input && 'k' in input) {\n this._rgb = NgxColor.cmykToRgba(input as CMYK);\n return;\n }\n }\n if (typeof input === 'string') {\n const name = input.trim().toLowerCase();\n if (colorNames[name]) {\n this._rgb = hexToRgb(colorNames[name]);\n this._name = name;\n return;\n } else if (/^#?[0-9a-f]{3,8}$/i.test(name)) {\n this._rgb = hexToRgb(name);\n return;\n }\n if (name.includes('rgb')) {\n this._rgb = parseRgbString(name);\n return;\n }\n if (name.includes('hsl')) {\n this._rgb = NgxColor.hslaToRgba(parseHslString(name));\n return;\n }\n if (name.includes('hsv')) {\n this._rgb = NgxColor.hsvaToRgba(parseHsvString(name));\n return;\n }\n if (name.includes('cmyk')) {\n this._rgb = NgxColor.cmykToRgba(parseCmykString(name));\n return;\n }\n throw new Error('Unknown color string: ' + input);\n }\n }\n\n get isValid(): boolean {\n return (\n typeof this._rgb.r === 'number' &&\n typeof this._rgb.g === 'number' &&\n typeof this._rgb.b === 'number' &&\n !isNaN(this._rgb.r) &&\n !isNaN(this._rgb.g) &&\n !isNaN(this._rgb.b)\n );\n }\n\n async name() {\n if (this._name) return this._name;\n const hex = this.toHexString();\n for (const [n, h] of Object.entries(colorNames)) {\n if (h.toLowerCase() === hex.toLowerCase()) return n;\n }\n return '';\n }\n\n toRgb(): RGBA {\n return this._rgb;\n }\n\n toRgbString(): string {\n const { r, g, b, a } = this.toRgb();\n return a === 1\n ? `rgb(${Math.round(r)},${Math.round(g)},${Math.round(b)})`\n : `rgba(${Math.round(r)},${Math.round(g)},${Math.round(b)},${+a.toFixed(3)})`;\n }\n\n toHexString(allowAlpha = true): string {\n const { r, g, b, a } = this.toRgb();\n return rgbaToHex(r, g, b, a, allowAlpha && a < 1);\n }\n\n toHsl(): HSLA {\n return NgxColor.rgbToHsla(this.toRgb());\n }\n\n toHsv(): HSVA {\n return NgxColor.rgbToHsva(this.toRgb());\n }\n\n toCmyk(): CMYK {\n return NgxColor.rgbToCmyk(this.toRgb());\n }\n\n static cmykToRgba(cmyk: CMYK): RGBA {\n const { c, m, y, k } = cmyk;\n return { ...cmykToRgb(c, m, y, k), a: (cmyk as any).a !== undefined ? +(cmyk as any).a : 1 };\n }\n\n static rgbToCmyk(rgba: RGBA): CMYK {\n const { r, g, b } = rgba;\n return rgbToCmyk(r, g, b);\n }\n\n static rgbToHsla(rgba: RGBA): HSLA {\n const { r, g, b, a } = rgba;\n return { ...rgbToHsl(r, g, b), a };\n }\n\n static rgbToHsva(rgba: RGBA): HSVA {\n const { r, g, b, a } = rgba;\n return { ...rgbToHsv(r, g, b), a };\n }\n\n static hsvaToRgba(hsva: HSVA): RGBA {\n const { h, s, v, a } = hsva;\n return { ...hsvToRgb(h, s, v), a: a !== undefined ? a : 1 };\n }\n\n static hslaToRgba(hsla: HSLA): RGBA {\n const { h, s, l, a } = hsla;\n return { ...hslToRgba(h, s, l), a: a !== undefined ? a : 1 };\n }\n\n equals(other?: NgxColor): boolean {\n if (!other) return false;\n return this.toHexString().toLowerCase() === other.toHexString().toLowerCase();\n }\n\n isDark(): boolean {\n const { r, g, b, a } = this.toRgb();\n return a < 0.5 ? false : 0.299 * r + 0.587 * g + 0.114 * b < 128;\n }\n\n isLight(): boolean {\n return !this.isDark();\n }\n\n async getOutputResult(outputType: OutputType): Promise<string> {\n const { r, g, b, a } = this._rgb;\n\n switch (outputType) {\n case 'CMYK':\n return rgbToCmykString(r, g, b);\n\n case 'HSL':\n return rgbToHslaString(r, g, b, a);\n\n case 'HSV':\n return rgbToHsvString(r, g, b, a);\n\n case 'RGB':\n return a < 1 ? `rgba(${r}, ${g}, ${b}, ${+a.toFixed(2)})` : `rgb(${r}, ${g}, ${b})`;\n\n case 'HEX':\n return this.toHexString(true);\n\n default:\n let name = await this.name();\n return name ?? this.toHexString(true);\n }\n }\n\n removeAlphaChannel() {\n this._rgb.a = 1;\n }\n}\n","export enum ColorInspector {\n Picker,\n RGB,\n HSL,\n CMYK,\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ standalone: true, name: 'enumToArray' })\nexport class EnumToArrayPipe implements PipeTransform {\n /**\n * when data enum like:\n * A=1,\n * B=2,\n * C=3\n */\n transform(data: Object) {\n // The list should be sorted due to the existence of negative ENUMs\n const keys = Object.keys(data).sort();\n // return key of enum => men,women,...\n // return keys.slice(keys.length / 2);\n // return value of enum => 0,1,2,3\n return keys.slice(0, keys.length / 2);\n }\n}\n\n@Pipe({ standalone: true, name: 'enumToArrayStringValue' })\nexport class EnumToArrayStringValuePipe implements PipeTransform {\n /**\n * when data enum like:\n * A='A',\n * B='B',\n * C='C'\n */\n transform(data: Object, sort = true) {\n let keys = Object.keys(data);\n if (sort) keys = keys.sort();\n return keys;\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NgxColor } from '../../utils/color-helper';\nimport { HSVA } from '../../contracts/color-interface';\nimport { SaturationComponent, SliderComponent, IPosition } from 'ngx-kit/shared';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'app-picker',\n templateUrl: './picker.component.html',\n styleUrls: ['./picker.component.scss'],\n imports: [FormsModule, SliderComponent, SaturationComponent],\n})\nexport class PickerComponent implements OnInit {\n hue = 300;\n baseColor = 'rgb(0,0,0)';\n alphaBgColor = '#000';\n\n board: IPosition = { x: 1, y: 0 };\n alpha = 1;\n private inputColor?: NgxColor;\n @Input() simpleMode = false;\n\n @Input() set color(c: NgxColor) {\n if (c.equals(this.inputColor)) return;\n this.inputColor = c;\n const shva = c.toHsv();\n this.hue = shva.h;\n this.board = { x: shva.s, y: 100 - shva.v };\n this.alpha = shva.a ?? 1;\n const pureColor = new NgxColor({ h: this.hue, s: 100, v: 100, a: 1 });\n this.baseColor = pureColor.toHexString(false);\n this.alphaBgColor = this.inputColor.toHexString(false);\n }\n\n @Input() useAlphaChannel: boolean = true;\n @Output() colorChange = new EventEmitter<NgxColor | undefined>();\n\n constructor() {}\n\n ngOnInit() {}\n\n generateColor() {\n try {\n const hsva: HSVA = { h: this.hue, s: this.board.x, v: 100 - this.board.y, a: this.alpha };\n const color = new NgxColor(hsva);\n const pureColor = new NgxColor({ h: this.hue, s: 100, v: 100, a: 1 });\n this.baseColor = pureColor.toHexString(false);\n this.alphaBgColor = color.toHexString(false);\n\n if (color.equals(this.inputColor) == false) {\n this.inputColor = color;\n this.colorChange.emit(color);\n }\n } catch (error) {\n this.colorChange.emit(undefined);\n }\n }\n}\n","<saturation\n [height]=\"simpleMode ? 150 : 160\"\n [(ngModel)]=\"board\"\n name=\"board\"\n [min]=\"{ x: 0, y: 0 }\"\n [max]=\"{ x: 100, y: 100 }\"\n [step]=\"1\"\n [color]=\"baseColor\"\n (change)=\"generateColor()\"></saturation>\n<slider\n [(ngModel)]=\"hue\"\n name=\"hue\"\n [min]=\"0\"\n [max]=\"360\"\n [step]=\"1\"\n (change)=\"generateColor()\"\n background=\"linear-gradient(to right,red 0%,#ff0 17%,lime 33%,cyan 50%,blue 66%,#f0f 83%,red 100%)\"></slider>\n@if (useAlphaChannel) {\n <slider\n [(ngModel)]=\"alpha\"\n name=\"alpha\"\n [min]=\"0\"\n [max]=\"1\"\n [step]=\"0.1\"\n (change)=\"generateColor()\"\n [isBgTransparent]=\"true\"\n [background]=\"'linear-gradient(to right,transparent,' + alphaBgColor + ')'\"></slider>\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NgxColor } from '../../utils/color-helper';\nimport { CMYK } from '../../contracts/color-interface';\n\nimport { FormsModule } from '@angular/forms';\nimport { SliderComponent } from 'ngx-kit/shared';\n\n@Component({\n selector: 'app-cmyk',\n templateUrl: './cmyk.component.html',\n styleUrls: ['./cmyk.component.scss'],\n imports: [FormsModule, SliderComponent],\n})\nexport class CmykComponent implements OnInit {\n cyanSliderBackground = '';\n magentaSliderBackground = '';\n yellowSliderBackground = '';\n keySliderBackground = '';\n\n cyan: number = 0;\n magenta: number = 0;\n yellow: number = 0;\n key: number = 0;\n private inputColor?: NgxColor;\n\n @Input() set color(c: NgxColor) {\n if (c.equals(this.inputColor)) return;\n this.inputColor = c;\n const cmyk = c.toCmyk();\n this.cyan = cmyk.c;\n this.magenta = cmyk.m;\n this.yellow = cmyk.y;\n this.key = cmyk.k;\n this.updateSliderBackgrounds(cmyk);\n }\n @Output() colorChange = new EventEmitter<NgxColor | undefined>();\n constructor() {}\n\n ngOnInit() {}\n generateColor() {\n try {\n const cmyk: CMYK = { c: this.cyan, m: this.magenta, y: this.yellow, k: this.key };\n const color = new NgxColor(cmyk);\n this.updateSliderBackgrounds(cmyk);\n if (color.equals(this.inputColor) == false) {\n this.inputColor = color;\n this.colorChange.emit(color);\n }\n } catch (error) {\n this.colorChange.emit(undefined);\n }\n }\n\n private updateSliderBackgrounds(cmyk: CMYK) {\n this.cyanSliderBackground = this.getChannelGradient('c', cmyk);\n this.magentaSliderBackground = this.getChannelGradient('m', cmyk);\n this.yellowSliderBackground = this.getChannelGradient('y', cmyk);\n this.keySliderBackground = this.getChannelGradient('k', cmyk);\n }\n\n private getChannelGradient(channel: keyof CMYK, cmyk: CMYK): string {\n let baseColor = this.cloneColor(cmyk);\n baseColor[channel] = channel == 'k' ? 1 : 0;\n let startColor = NgxColor.cmykToRgba(baseColor);\n let s = `rgb(${startColor.r}, ${startColor.g}, ${startColor.b})`;\n baseColor[channel] = 100;\n let endColor = NgxColor.cmykToRgba(baseColor);\n let e = `rgb(${endColor.r}, ${endColor.g}, ${endColor.b})`;\n\n return `linear-gradient(to right, ${s},${e})`;\n }\n private isCmykEqual(a?: CMYK, b?: CMYK): boolean {\n if (!a || !b) return false;\n return a.c === b.c && a.m === b.m && a.y === b.y && a.k === b.k;\n }\n\n private cloneColor(cmyk: CMYK): CMYK {\n return JSON.parse(JSON.stringify(cmyk));\n // return Object.assign({}, cmyk);\n }\n}\n","<slider\n [(ngModel)]=\"cyan\"\n name=\"cyan\"\n [min]=\"0\"\n [max]=\"100\"\n [step]=\"1\"\n (change)=\"generateColor()\"\n [background]=\"cyanSliderBackground\">\n <div class=\"slider-title\">\n <span>Cyan</span>\n <input type=\"number\" [(ngModel)]=\"cyan\" name=\"inputCyan\" min=\"0\" max=\"100\" step=\"1\" />\n </div>\n</slider>\n<slider\n [(ngModel)]=\"magenta\"\n name=\"magenta\"\n [min]=\"0\"\n [max]=\"100\"\n [step]=\"1\"\n (change)=\"generateColor()\"\n [background]=\"magentaSliderBackground\">\n <div class=\"slider-title\">\n <span>Magenta</span>\n <input type=\"number\" [(ngModel)]=\"magenta\" name=\"inputMagenta\" min=\"0\" max=\"100\" step=\"1\" />\n </div>\n</slider>\n<slider\n [(ngModel)]=\"yellow\"\n name=\"yellow\"\n [min]=\"0\"\n [max]=\"100\"\n [step]=\"1\"\n (change)=\"generateColor()\"\n [background]=\"yellowSliderBackground\">\n <div class=\"slider-title\">\n <span>Yellow</span>\n <input type=\"number\" [(ngModel)]=\"yellow\" name=\"inputYellow\" min=\"0\" max=\"100\" step=\"1\" />\n </div>\n</slider>\n<slider\n [(ngModel)]=\"key\"\n name=\"key\"\n [min]=\"0\"\n [max]=\"100\"\n [step]=\"1\"\n (change)=\"generateColor()\"\n [background]=\"keySliderBackground\">\n <div class=\"slider-title\">\n <span>Key</span>\n <input type=\"number\" [(ngModel)]=\"key\" name=\"inputKey\" min=\"0\" max=\"100\" step=\"1\" />\n </div>\n</slider>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NgxColor } from '../../utils/color-helper';\nimport { HSLA } from '../../contracts/color-interface';\nimport { SliderComponent } from 'ngx-kit/shared';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'app-hsl',\n templateUrl: './hsl.component.html',\n styleUrls: ['./hsl.component.scss'],\n imports: [FormsModule, SliderComponent],\n})\nexport class HslComponent implements OnInit {\n hue: number = 0;\n saturation: number = 0;\n luminance: number = 0;\n alpha: number = 1;\n baseColor = 'rgb(0,0,0)';\n private inputColor?: NgxColor;\n\n @Input() set color(c: NgxColor) {\n if (c.equals(this.inputColor)) return;\n this.inputColor = c;\n const hsla = c.toHsl();\n this.hue = hsla.h;\n this.saturation = hsla.s;\n this.luminance = hsla.l;\n this.alpha = hsla.a ?? 1;\n this.baseColor = c.toHexString(false);\n }\n\n @Input() useAlphaChannel: boolean = true;\n @Output() colorChange = new EventEmitter<NgxColor | undefined>();\n constructor() {}\n\n ngOnInit() {}\n\n generateColor() {\n try {\n const hsla: HSLA = { h: this.hue, s: this.saturation, l: this.luminance, a: this.alpha };\n const color = new NgxColor(hsla);\n this.baseColor = color.toHexString(false);\n if (color.equals(this.inputColor) == false) {\n this.inputColor = color;\n this.colorChange.emit(color);\n }\n } catch (error) {\n this.colorChange.emit(undefined);\n }\n }\n}\n","<slider\n [(ngModel)]=\"hue\"\n name=\"hue\"\n [min]=\"0\"\n [max]=\"360\"\n [step]=\"1\"\n (change)=\"generateColor()\"\n background=\"linear-gradient(to right,red 0%,#ff0 17%,lime 33%,cyan 50%,blue 66%,#f0f 83%,red 100%)\">\n <div class=\"slider-title\">\n <span>Hue</span>\n <input type=\"number\" [(ngModel)]=\"hue\" name=\"inputHue\" min=\"0\" max=\"360\" step=\"1\" />\n </div>\n</slider>\n<slider\n [(ngModel)]=\"saturation\"\n name=\"saturation\"\n [min]=\"0\"\n [max]=\"100\"\n [step]=\"1\"\n (change)=\"generateColor()\"\n [background]=\"'linear-gradient(to right,#808080,' + baseColor + ')'\">\n <div class=\"slider-title\">\n <span>Saturation</span>\n <input\n type=\"number\"\n [(ngModel)]=\"saturation\"\n name=\"inputSaturation\"\n min=\"0\"\n max=\"100\"\n step=\"1\" />\n </div>\n</slider>\n<slider\n [(ngModel)]=\"luminance\"\n name=\"luminance\"\n [min]=\"0\"\n [max]=\"100\"\n [step]=\"1\"\n (change)=\"generateColor()\"\n [background]=\"'linear-gradient(to right,black,' + baseColor + ',white)'\">\n <div class=\"slider-title\">\n <span>Luminance</span>\n <input type=\"number\" [(ngModel)]=\"luminance\" name=\"inputLuminance\" min=\"0\" max=\"100\" step=\"1\" />\n </div>\n</slider>\n@if (useAlphaChannel) {\n <slider\n [(ngModel)]=\"alpha\"\n name=\"alpha\"\n [min]=\"0\"\n [max]=\"1\"\n [step]=\"0.1\"\n (change)=\"generateColor()\"\n [isBgTransparent]=\"true\"\n [background]=\"'linear-gradient(to right,transparent,' + baseColor + ')'\">\n <div class=\"slider-title\">\n <span>Alpha</span>\n <input type=\"number\" [(ngModel)]=\"alpha\" name=\"inputAlpha\" min=\"0\" max=\"1\" step=\"0.1\" />\n </div>\n </slider>\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NgxColor } from '../../utils/color-helper';\nimport { RGBA } from '../../contracts/color-interface';\nimport { FormsModule } from '@angular/forms';\nimport { SliderComponent } from 'ngx-kit/shared';\n\n@Component({\n selector: 'app-rgb',\n templateUrl: './rgb.component.html',\n styleUrls: ['./rgb.component.scss'],\n imports: [FormsModule, SliderComponent],\n})\nexport class RgbComponent implements OnInit {\n redSliderBackground = '';\n greenSliderBackground = '';\n blueSliderBackground = '';\n\n baseColor = 'rgb(0,0,0)';\n red: number = 0;\n green: number = 0;\n blue: number = 0;\n alpha: number = 1;\n\n private inputColor?: NgxColor;\n @Input() set color(c: NgxColor) {\n if (c.equals(this.inputColor)) return;\n this.inputColor = c;\n const rgba = c.toRgb();\n this.red = rgba.r;\n this.green = rgba.g;\n this.blue = rgba.b;\n this.alpha = rgba.a ?? 1;\n this.updateRgbSliderColor(rgba as any);\n }\n\n @Input() useAlphaChannel: boolean = true;\n @Output() colorChange = new EventEmitter<NgxColor | undefined>();\n constructor() {}\n\n ngOnInit() {}\n\n generateColor() {\n try {\n const rgba: RGBA = { r: this.red, g: this.green, b: this.blue, a: this.alpha };\n const color = new NgxColor(rgba);\n this.updateRgbSliderColor(rgba);\n if (color.equals(this.inputColor) == false) {\n this.inputColor = color;\n this.colorChange.emit(color);\n }\n } catch (error) {\n this.colorChange.emit(undefined);\n }\n }\n\n private updateRgbSliderColor(rgba: RGBA) {\n const { r, g, b } = rgba;\n this.redSliderBackground = `linear-gradient(to right, rgb(0, ${g}, ${b}), rgb(255, ${g}, ${b}))`;\n this.greenSliderBackground = `linear-gradient(to right, rgb(${r}, 0, ${b}), rgb(${r}, 255, ${b}))`;\n this.blueSliderBackground = `linear-gradient(to right, rgb(${r}, ${g}, 0), rgb(${r}, ${g}, 255))`;\n this.baseColor = `rgb(${r}, ${g}, ${b})`;\n }\n}\n","<slider\n [(ngModel)]=\"red\"\n name=\"red\"\n [min]=\"0\"\n [max]=\"255\"\n [step]=\"1\"\n (change)=\"generateColor()\"\n [background]=\"redSliderBackground\">\n <div class=\"slider-title\">\n <span>Red</span>\n <input type=\"number\" [(ngModel)]=\"red\" name=\"inputRed\" min=\"0\" max=\"255\" step=\"1\" />\n </div>\n</slider>\n<slider\n [(ngModel)]=\"green\"\n name=\"green\"\n [min]=\"0\"\n [max]=\"255\"\n [step]=\"1\"\n (change)=\"generateColor()\"\n [background]=\"greenSliderBackground\">\n <div class=\"slider-title\">\n <span>Green</span>\n <input type=\"number\" [(ngModel)]=\"green\" name=\"inputGreen\" min=\"0\" max=\"255\" step=\"1\" />\n </div>\n</slider>\n<slider\n [(ngModel)]=\"blue\"\n name=\"blue\"\n [min]=\"0\"\n [max]=\"255\"\n [step]=\"1\"\n (change)=\"generateColor()\"\n [background]=\"blueSliderBackground\">\n <div class=\"slider-title\">\n <span>Blue</span>\n <input type=\"number\" [(ngModel)]=\"blue\" name=\"inputBlue\" min=\"0\" max=\"255\" step=\"1\" />\n </div>\n</slider>\n@if (useAlphaChannel) {\n <slider\n [(ngModel)]=\"alpha\"\n name=\"alpha\"\n [min]=\"0\"\n [max]=\"1\"\n [step]=\"0.1\"\n (change)=\"generateColor()\"\n [isBgTransparent]=\"true\"\n [background]=\"'linear-gradient(to right,transparent,' + baseColor + ')'\">\n <div class=\"slider-title\">\n <span>Alpha</span>\n <input type=\"number\" [(ngModel)]=\"alpha\" name=\"inputAlpha\" min=\"0\" max=\"1\" step=\"0.1\" />\n </div>\n </slider>\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { ColorFormats } from '../contracts/ColorFormats.enum';\nimport { NgxColor } from '../utils/color-helper';\nimport { OutputType } from '../contracts/OutputType';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormsModule,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { ColorInspector } from '../contracts/ColorInspector.enum';\nimport { CommonModule } from '@angular/common';\nimport { EnumToArrayPipe } from '../pipes/enum-to-array.pipe';\nimport { PickerComponent } from '../inspectors/picker/picker.component';\nimport { CmykComponent } from '../inspectors/cmyk/cmyk.component';\nimport { HslComponent } from '../inspectors/hsl/hsl.component';\nimport { RgbComponent } from '../inspectors/rgb/rgb.component';\nimport { BrowserService } from 'ngx-kit/shared';\ndeclare const EyeDropper: any;\n\n@Component({\n standalone: true,\n selector: 'ngx-input-color',\n templateUrl: './input-color.component.html',\n styleUrls: ['./input-color.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgxInputColorComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n multi: true,\n useExisting: NgxInputColorComponent,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.dark]': 'theme==\"dark\"',\n },\n imports: [\n CommonModule,\n FormsModule,\n EnumToArrayPipe,\n PickerComponent,\n CmykComponent,\n HslComponent,\n RgbComponent,\n ],\n})\nexport class NgxInputColorComponent implements OnInit, OnDestroy, ControlValueAccessor, Validator {\n browserService = inject(BrowserService);\n theme: 'light' | 'dark' = this.browserService.prefersDarkMode ? 'dark' : 'light';\n @Input('theme') set setTheme(val: 'light' | 'dark' | 'auto') {\n if (!val || val == 'auto') {\n this.theme = this.browserService.prefersDarkMode ? 'dark' : 'light';\n } else {\n this.theme = val;\n }\n }\n\n /** Minifi UI */\n @Input() simpleMode = false;\n\n @Input() outputType: OutputType = 'HEX';\n\n /**\n * default inspectors\n * - ColorInspector.Picker\n * - ColorInspector.RGB\n * - ColorInspector.HSL\n *\n * @alias defaultInspector\n */\n @Input() defaultInspector: ColorInspector = ColorInspector.Picker;\n\n useAlphaChannel: boolean = true;\n @Input('useAlphaChannel') set setUseAlphaChannel(val: boolean) {\n this.useAlphaChannel = val == true;\n if (!this.useAlphaChannel) {\n this.color.removeAlphaChannel();\n this.emitChange();\n }\n }\n\n /** Emitted when the color value changes */\n @Output() change = new EventEmitter<string>();\n\n /** @ignore */\n format: ColorFormats = ColorFormats.HSVA;\n /** @ignore */\n isDarkColor = true;\n\n /** @ignore */\n rgbaColor = 'rgba(0, 0, 0, 1)';\n /** @ignore */\n hexColor = '#000000';\n outputColor = '';\n\n /** @ignore */\n name = 'black';\n\n /** @ignore */\n isSupportedEyeDrop: boolean;\n\n /** @ignore */\n color: NgxColor = new NgxColor();\n\n /** @ignore */\n isDisabled = false;\n /**@ignore */\n protected _onChange = (value: string) => {};\n /**@ignore */\n protected _onTouched = () => {};\n /**@ignore */\n private _onValidateChange = () => {};\n\n constructor(private cd: ChangeDetectorRef) {\n this.isSupportedEyeDrop = 'EyeDropper' in window;\n }\n\n /** @ignore */\n ngOnInit(): void {}\n /** @ignore */\n ngOnDestroy(): void {}\n public get ColorFormats(): typeof ColorFormats {\n return ColorFormats;\n }\n public get ColorInspector(): typeof ColorInspector {\n return ColorInspector;\n }\n /** @ignore */\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n /** @ignore */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n /** @ignore */\n setDisabledState(disabled: boolean): void {\n this.isDisabled = disabled;\n }\n /** @ignore */\n registerOnValidatorChange(fn: () => void): void {\n this._onValidateChange = fn;\n }\n /** @ignore */\n validate(control: AbstractControl): ValidationErrors | null {\n if (this.color && this.color.isValid === false) {\n return { invalid: true };\n }\n return null;\n }\n\n /** @ignore */\n writeValue(value: any): void {\n try {\n const c = value ? new NgxColor(value) : new NgxColor('#000');\n this.initColor(c);\n this._onValidateChange();\n } catch (e) {\n const c = new NgxColor('#000'); // مقدار پیشفرض\n this.initColor(c);\n }\n }\n /** @ignore */\n openEyeDrop() {\n if (this.isSupportedEyeDrop) {\n let t = new EyeDropper().open();\n t.then(async (result: { sRGBHex: string }) => {\n this.hexColor = result.sRGBHex;\n this.initColor(new NgxColor(this.hexColor));\n this.cd.detectChanges();\n });\n }\n }\n\n /**\n * call from directive\n /* @ignore \n */\n async initColor(c?: NgxColor) {\n if (!c) return;\n this.color = c;\n this.rgbaColor = this.color.toRgbString();\n this.hexColor = this.color.toHexString();\n this.outputColor = await this.color.getOutputResult(this.outputType);\n this.isDarkColor = this.color.isDark();\n this.name = await this.color.name();\n this.emitChange();\n }\n\n /** @ignore */\n stopPropagation(ev: Event) {\n ev.stopPropagation();\n }\n\n /** @ignore */\n async emitChange() {\n this.outputColor = await this.color.getOutputResult(this.outputType);\n this._onChange(this.outputColor);\n this.change.emit(this.outputColor);\n }\n}\n","<div\n class=\"ngx-input-color-picker\"\n (click)=\"stopPropagation($event)\"\n [class.simple-mode]=\"simpleMode\">\n @if (!simpleMode) {\n <div\n class=\"ngx-color-preview\"\n [ngStyle]=\"{ '--ngx-selected-color': rgbaColor }\"\n [class.is-dark-color]=\"isDarkColor\">\n <div class=\"rgbacode\">{{ outputColor | uppercase }}</div>\n @if (outputType !== 'HEX') {\n <div class=\"hexacode\">{{ hexColor | uppercase }}</div>\n }\n <div class=\"colorname\">{{ name }}</div>\n <div class=\"color\"></div>\n </div>\n }\n <div class=\"ngx-c-inner\">\n <div class=\"top-actions\">\n <select [(ngModel)]=\"defaultInspector\" name=\"inspector\">\n @for (inspector of ColorInspector | enumToArray; track inspector) {\n <option [value]=\"inspector\">\n {{ ColorInspector[+inspector] }}\n </option>\n }\n </select>\n @if (isSupportedEyeDrop) {\n <button type=\"button\" (click)=\"openEyeDrop()\" class=\"ngx-btn-eyedroper\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <defs>\n <style>\n .fa-secondary {\n opacity: 0.4;\n }\n </style>\n </defs>\n <path\n class=\"fa-primary\"\n d=\"M482.8 29.23C521.7 68.21 521.7 131.4 482.8 170.4L381.2 271.9L390.6 281.4C403.1 293.9 403.1 314.1 390.6 326.6C378.1 339.1 357.9 339.1 345.4 326.6L185.4 166.6C172.9 154.1 172.9 133.9 185.4 121.4C197.9 108.9 218.1 108.9 230.6 121.4L240.1 130.8L341.6 29.23C380.6-9.744 443.8-9.744 482.8 29.23L482.8 29.23zM132.1 416H96V379.9C96 375.6 97.69 371.6 100.7 368.6L149.3 320H234.7L143.4 411.3C140.4 414.3 136.4 416 132.1 416H132.1z\" />\n <path\n class=\"fa-secondary\"\n d=\"M244 225.3L100.7 368.6C97.69 371.6 96 375.6 96 379.9V416H132.1C136.4 416 140.4 414.3 143.4 411.3L286.7 268L332 313.3L188.7 456.6C173.7 471.6 153.3 480 132.1 480H89.69L49.75 506.6C37.06 515.1 20.16 513.4 9.372 502.6C-1.414 491.8-3.087 474.9 5.374 462.2L32 422.3V379.9C32 358.7 40.43 338.3 55.43 323.3L198.7 180L244 225.3z\" />\n </svg>\n </button>\n }\n </div>\n\n @switch (+defaultInspector) {\n @case (ColorInspector.Picker) {\n <app-picker\n [color]=\"color\"\n (colorChange)=\"initColor($event)\"\n [simpleMode]=\"simpleMode\"\n [useAlphaChannel]=\"useAlphaChannel\"></app-picker>\n }\n @case (ColorInspector.HSL) {\n <app-hsl\n [color]=\"color\"\n (colorChange)=\"initColor($event)\"\n [useAlphaChannel]=\"useAlphaChannel\"></app-hsl>\n }\n @case (ColorInspector.RGB) {\n <app-rgb\n [color]=\"color\"\n (colorChange)=\"initColor($event)\"\n [useAlphaChannel]=\"useAlphaChannel\"></app-rgb>\n }\n @case (ColorInspector.CMYK) {\n <app-cmyk [color]=\"color\" (colorChange)=\"initColor($event)\"></app-cmyk>\n }\n }\n </div>\n</div>\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\n\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport { ColorInspector } from '../contracts/ColorInspector.enum';\nimport { NgxInputColorComponent } from '../components/input-color.component';\nimport { NgxColor } from '../utils/color-helper';\nimport { OutputType } from '../contracts/OutputType';\nimport { OverlayRef, OverlayService } from 'ngx-kit/shared';\n\n@Directive({\n selector: '[ngxInputColor]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgxInputColor),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NgxInputColor),\n multi: true,\n },\n ],\n})\nexport class NgxInputColor implements AfterViewInit, OnDestroy, ControlValueAccessor, Validator {\n @Input() setInputBackgroundColor = true;\n @Input() defaultInspector: ColorInspector = ColorInspector.Picker;\n @Input() simpleMode = false;\n @Input() outputType: OutputType = 'HEX';\n @Input() theme: 'light' | 'dark' | 'auto' = 'auto';\n private useAlphaChannel = true;\n @Input('useAlphaChannel')\n set setUseAlphaChannel(value: boolean) {\n this.useAlphaChannel = value === true;\n if (!this.useAlphaChannel && this.color) {\n this.color.removeAlphaChannel();\n void this.color.getOutputResult(this.outputType).then((value) => this.emitChange(value));\n }\n }\n\n /**\n * Input target.\n *\n * Supported:\n *\n * <input ngxInputColor>\n *\n * or\n *\n * <div [ngxInputColor]=\"inputElement\"></div>\n *\n * or\n *\n * <div [ngxInputColor]=\"inputRef\"></div>\n */\n @Input('ngxInputColor')\n set ngxInputColor(\n element: HTMLInputElement | ElementRef<HTMLInputElement> | null | undefined | '',\n ) {\n this.removeTargetInputListener();\n\n this.isHostInput = false;\n this.explicitTargetInput = false;\n\n if (element instanceof ElementRef) {\n this._targetInput = element.nativeElement;\n this.explicitTargetInput = true;\n } else if (this.isInputElement(element)) {\n this._targetInput = element;\n this.explicitTargetInput = true;\n } else {\n /**\n * Bare directive:\n *\n * <input ngxInputColor>\n *\n * In this case the host itself is the target.\n */\n const host = this.el.nativeElement;\n\n if (host instanceof HTMLInputElement) {\n this._targetInput = host;\n this.isHostInput = true;\n } else {\n this._targetInput = undefined;\n }\n }\n\n this.bindTargetInput();\n }\n\n @Output() change = new EventEmitter<string>();\n\n private color?: NgxColor;\n private pickerRef?: OverlayRef<NgxInputColorComponent>;\n private _targetInput?: HTMLInputElement;\n private explicitTargetInput = false;\n private isHostInput = false;\n private removeInputListener?: () => void;\n private disabled = false;\n private invalid = false;\n protected _onChange: (value: string) => void = () => {};\n protected _onTouched: () => void = () => {};\n private _onValidateChange: () => void = () => {};\n\n constructor(\n private readonly el: ElementRef<HTMLElement>,\n private readonly renderer: Renderer2,\n private readonly viewContainerRef: ViewContainerRef,\n private readonly overlayService: OverlayService,\n ) {}\n\n ngAfterViewInit(): void {\n /**\n * The input binding may not have been processed in every\n * possible usage scenario. Make sure a host input is detected.\n */\n if (!this._targetInput && this.isInputElement(this.el.nativeElement)) {\n this._targetInput = this.el.nativeElement;\n this.isHostInput = true;\n\n this.bindTargetInput();\n }\n\n if (this._targetInput) {\n this.writeValue(this._targetInput.value);\n }\n }\n\n ngOnDestroy(): void {\n this.removeTargetInputListener();\n this.destroyColorPicker();\n }\n\n /**\n * Open the custom color picker.\n */\n @HostListener('click', ['$event'])\n onHostClick(event: Event): void {\n if (this.disabled) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n this.toggleColorPicker();\n }\n\n /**\n * Called by Angular Forms.\n *\n * IMPORTANT:\n * writeValue must NEVER call _onChange().\n */\n writeValue(value: unknown): void {\n if (value === null || value === undefined || value === '') {\n this.color = undefined;\n this.invalid = false;\n\n this.syncView('');\n this.notifyValidatorChange();\n\n return;\n }\n\n try {\n const color = value instanceof NgxColor ? value : new NgxColor(String(value));\n\n if (color.isValid === false) {\n throw new Error('Invalid color');\n }\n\n this.color = color;\n this.invalid = false;\n\n const colorValue = this.getViewColor();\n\n this.syncView(colorValue);\n } catch {\n this.color = undefined;\n this.invalid = true;\n\n /**\n * Do not replace an invalid value with black.\n *\n * Angular/form validation needs to know that the value\n * is invalid instead of silently turning it into #000.\n */\n this.syncView('');\n\n this.notifyValidatorChange();\n }\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n\n /**\n * Host element.\n */\n if (this.isInputElement(this.el.nativeElement)) {\n this.renderer.setProperty(this.el.nativeElement, 'disabled', disabled);\n }\n\n /**\n * External target input.\n */\n if (this._targetInput && this._targetInput !== this.el.nativeElement) {\n this.renderer.setProperty(this._targetInput, 'disabled', disabled);\n }\n\n if (disabled) {\n this.destroyColorPicker();\n }\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this._onValidateChange = fn;\n }\n\n validate(_control: AbstractControl): ValidationErrors | null {\n if (this.invalid) {\n return {\n invalid: true,\n };\n }\n if (this.color?.isValid === false) {\n return {\n invalid: true,\n };\n }\n return null;\n }\n\n private bindTargetInput(): void {\n if (!this._targetInput) {\n return;\n }\n this.removeInputListener?.();\n this.removeInputListener = this.renderer.listen(this._targetInput, 'input', (event: Event) => {\n this.handleInputEvent(event);\n });\n }\n\n private removeTargetInputListener(): void {\n this.removeInputListener?.();\n this.removeInputListener = undefined;\n }\n\n /**\n * Handles native input changes.\n *\n * This is deliberately NOT implemented using writeValue(),\n * because this is a user-originated value and therefore\n * must propagate through ControlValueAccessor.\n */\n private handleInputEvent(event: Event): void {\n const input = event.target as HTMLInputElement;\n const value = input.value;\n try {\n const color = value ? new NgxColor(value) : undefined;\n if (color && color.isValid === false) {\n this.color = undefined;\n this.invalid = true;\n this.notifyValidatorChange();\n return;\n }\n\n this.color = color;\n this.invalid = false;\n this.syncHostBackground(value);\n /**\n * User change → Angular Forms.\n */\n this._onChange(value);\n this.change.emit(value);\n this._onTouched();\n this.notifyValidatorChange();\n } catch {\n this.color = undefined;\n this.invalid = true;\n this.notifyValidatorChange();\n }\n }\n\n private toggleColorPicker(): void {\n if (this.disabled) {\n return;\n }\n if (this.pickerRef) {\n this.destroyColorPicker();\n return;\n }\n\n this.pickerRef = this.overlayService.open({\n anchor: this.el.nativeElement,\n component: NgxInputColorComponent,\n viewContainerRef: this.viewContainerRef,\n alignment: 'start',\n placement: 'auto',\n configure: (instance, ref) => {\n instance.defaultInspector = this.defaultInspector;\n instance.simpleMode = this.simpleMode;\n instance.outputType = this.outputType;\n instance.setTheme = this.theme;\n instance.setUseAlphaChannel = this.useAlphaChannel;\n if (this.color?.isValid) {\n instance.writeValue(this.color);\n }\n\n instance.change.subscribe((value: string) => {\n this.color = new NgxColor(value);\n void this.emitChange(value);\n });\n\n // instance.closed.subscribe(() => ref.close());\n },\n onClosed: () => {\n this.pickerRef = undefined;\n },\n });\n }\n\n private destroyColorPicker(): void {\n this.pickerRef?.close();\n this.pickerRef = undefined;\n }\n\n /**\n * User-originated/custom-picker value.\n *\n * This is the ONLY place where _onChange is called.\n */\n private async emitChange(value: string): Promise<void> {\n try {\n const color = new NgxColor(value);\n if (color.isValid === false) {\n this.invalid = true;\n this.notifyValidatorChange();\n\n return;\n }\n this.color = color;\n this.invalid = false;\n const viewValue = this.getViewColor();\n this.syncView(viewValue);\n /**\n * Do NOT dispatch another input event here.\n */\n this._onChange(viewValue);\n this.change.emit(viewValue);\n this._onTouched();\n this.notifyValidatorChange();\n } catch {\n this.invalid = true;\n this.notifyValidatorChange();\n }\n }\n\n /**\n * Synchronize all visual representations.\n */\n private syncView(value: string): void {\n /**\n * Host input value.\n */\n if (this.isHostInput) {\n const input = this.el.nativeElement as HTMLInputElement;\n input.value = this.getNativeInputColor(value);\n }\n\n /**\n * External target input.\n */\n if (this._targetInput && this._targetInput !== this.el.nativeElement) {\n this._targetInput.value = this.getNativeInputColor(value);\n }\n /**\n * Background of host element.\n */\n this.syncHostBackground(value);\n }\n\n /**\n * input[type=color] only accepts a 6-digit RGB hex value.\n *\n * Therefore even if the selected color contains alpha,\n * the native color input receives #RRGGBB.\n */\n private getNativeInputColor(value: string): string {\n if (!value) {\n return '';\n }\n try {\n const color = new NgxColor(value);\n\n return color.toHexString();\n } catch {\n return '';\n }\n }\n\n private getViewColor(): string {\n return this.color?.toHexString() ?? '';\n }\n\n private syncHostBackground(value: string): void {\n if (!this.setInputBackgroundColor) {\n return;\n }\n const element = this.el.nativeElement;\n this.renderer.setStyle(element, 'backgroundColor', value || null);\n }\n\n private notifyValidatorChange(): void {\n this._onValidateChange();\n }\n\n private isInputElement(value: unknown): value is HTMLInputElement {\n return value instanceof HTMLInputElement;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}
|