403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/landing/ui/field/color/dist/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/landing/ui/field/color/dist/color_field.bundle.js.map
{"version":3,"file":"color_field.bundle.js","sources":["../src/internal/is-rgb-string.js","../src/internal/is-hex.js","../src/internal/is-hsl-string.js","../src/internal/hex-to-rgb.js","../src/internal/rgb-to-hsl.js","../src/internal/hex-to-hsl.js","../src/internal/rgb-to-hex.js","../src/internal/hsl-to-rgb.js","../src/internal/hsl-to-hex.js","../src/internal/rgb-string-to-hsl.js","../src/internal/hsl-string-to-hsl.js","../src/internal/css-var.js","../src/types/color_value_options.js","../src/color_value.js","../src/processor/base_processor.js","../src/control/base_control/base_control.js","../src/control/hex/hex.js","../src/control/spectrum/spectrum.js","../src/layout/recent/recent.js","../src/control/colorpicker/colorpicker.js","../src/layout/primary/primary.js","../src/internal/regexp.js","../src/internal/is-gradient-string.js","../src/gradient_value.js","../src/layout/preset/types/preset-options.js","../src/layout/preset/generator.js","../src/layout/preset/preset.js","../src/layout/preset/preset_collection.js","../src/layout/reset/reset.js","../src/control/color_set/color_set.js","../src/control/opacity/opacity.js","../src/layout/tabs/tabs.js","../src/layout/zeroing/zeroing.js","../src/processor/color.js","../src/processor/color_hover.js","../src/control/gradient/gradient.js","../src/processor/bg_color.js","../src/internal/is-bg-image-string.js","../src/bg_image_value.js","../src/control/image/image.js","../src/internal/rgba-string-to-rgb-string.js","../src/processor/bg.js","../src/processor/border_color.js","../src/processor/border_color_hover.js","../src/processor/bg_color_hover.js","../src/processor/bg_color_after.js","../src/processor/bg_color_before.js","../src/processor/navbar_color.js","../src/processor/navbar_color_hover.js","../src/processor/navbar_color_fix_moment.js","../src/processor/navbar_color_fix_moment_hover.js","../src/processor/navbar_bg.js","../src/processor/navbar_bg_hover.js","../src/processor/border_color-top.js","../src/processor/fill_color.js","../src/processor/fill_color_second.js","../src/processor/button_color.js","../src/processor/navbar_collapse_bg.js","../src/color_field.js"],"sourcesContent":["export const matcher = /^rgba? ?\\((\\d{1,3})[, ]+(\\d{1,3})[, ]+(\\d{1,3})([, ]+([\\d\\.]{1,5}))?\\)$/i;\n\nexport default function isRgbString(rgbString: string): boolean\n{\n\treturn !!rgbString.match(matcher);\n}\n","export const matcherHex = /^#([\\da-f]{3}){1,2}$/i;\n\nexport default function isHex(hex: string)\n{\n\treturn !!hex.trim().match(matcherHex);\n}","export const matcherHsl = /^hsla?\\((\\d{1,3}), ?(\\d{1,3})%, ?(\\d{1,3})%(, ?([\\d .]+))?\\)/i;\n\nexport default function isHslString(hsla: string)\n{\n\treturn !!hsla.trim().match(matcherHsl);\n}","export default function hexToRgb(hex: string)\n{\n\tif (hex.length === 4)\n\t{\n\t\tconst r = parseInt(`0x${hex[1]}${hex[1]}`, 16);\n\t\tconst g = parseInt(`0x${hex[2]}${hex[2]}`, 16);\n\t\tconst b = parseInt(`0x${hex[3]}${hex[3]}`, 16);\n\n\t\treturn {r, g, b};\n\t}\n\n\tif (hex.length === 7)\n\t{\n\t\tconst r = parseInt(`0x${hex[1]}${hex[2]}`, 16);\n\t\tconst g = parseInt(`0x${hex[3]}${hex[4]}`, 16);\n\t\tconst b = parseInt(`0x${hex[5]}${hex[6]}`, 16);\n\n\t\treturn {r, g, b};\n\t}\n\n\treturn {r: 255, g: 255, b: 255};\n}","export default function rgbToHsla(\n\trgb: {r: number, g: number, b: number, a?: number}\n): {h: number, s: number, l: number, a: number}\n{\n\tconst r = rgb.r / 255;\n\tconst g = rgb.g / 255;\n\tconst b = rgb.b / 255;\n\n\tconst max = Math.max(r, g, b);\n\tconst min = Math.min(r, g, b);\n\tlet h, s, l = (max + min) / 2;\n\t// let l = h;\n\t// let s;\n\n\tif (max === min)\n\t{\n\t\th = s = 0;\n\t}\n\telse\n\t{\n\t\tconst d = max - min;\n\t\ts = l > 0.5\n\t\t\t? d / (2 - max - min)\n\t\t\t: d / (max + min);\n\n\t\tswitch (max)\n\t\t{\n\t\t\tcase r:\n\t\t\t\th = (g - b) / d + (g < b ? 6 : 0);\n\t\t\t\tbreak;\n\t\t\tcase g:\n\t\t\t\th = (b - r) / d + 2;\n\t\t\t\tbreak;\n\t\t\tcase b:\n\t\t\t\th = (r - g) / d + 4;\n\t\t\t\tbreak;\n\t\t}\n\n\t\th *= 0.6;\n\t}\n\n\treturn {\n\t\th: Math.round(h * 100),\n\t\ts: Math.round(s * 100),\n\t\tl: Math.round(l * 100),\n\t\ta: ('a' in rgb) ? rgb.a : 1,\n\t};\n}\n\n// \tconst v = Math.max(r, g, b);\n// \tconst diff = v - Math.min(r, g, b);\n// \tconst diffc = (c) => {\n// \t\treturn (v - c) / 6 / diff + 1 / 2;\n// \t};\n//\n// \tif (diff === 0)\n// \t{\n// \t\th = 0;\n// \t\ts = 0;\n// \t}\n// \telse\n// \t{\n// \t\ts = diff / v;\n// \t\trdif = diffc(r);\n// \t\tgdif = diffc(g);\n// \t\tbdif = diffc(b);\n//\n// \t\tif (r === v)\n// \t\t{\n// \t\t\th = bdif - gdif;\n// \t\t}\n// \t\telse if (g === v)\n// \t\t{\n// \t\t\th = (1 / 3) + rdif - bdif;\n// \t\t}\n// \t\telse if (b === v)\n// \t\t{\n// \t\t\th = (2 / 3) + gdif - rdif;\n// \t\t}\n//\n// \t\tif (h < 0)\n// \t\t{\n// \t\t\th += 1;\n// \t\t}\n// \t\telse if (h > 1)\n// \t\t{\n// \t\t\th -= 1;\n// \t\t}\n// \t}\n//\n// \treturn {\n// \t\th: h * 360,\n// \t\ts: s * 100,\n// \t\tl: v * 100,\n// \t\ta: rgb.a || 1,\n// \t};\n// }","import hexToRgb from './hex-to-rgb';\nimport rgbToHsla from './rgb-to-hsl';\n\nexport default function hexToHsl(hex: string): {h: number, s: number, l: number, a: number}\n{\n\tconst rgb = hexToRgb(hex.trim());\n\n\treturn rgbToHsla(rgb);\n}","export default function rgbToHex(rgb: {r: number, g: number, b: number}): string\n{\n\tlet r = rgb.r.toString(16);\n\tlet g = rgb.g.toString(16);\n\tlet b = rgb.b.toString(16);\n\n\tif (r.length === 1)\n\t{\n\t\tr = \"0\" + r;\n\t}\n\tif (g.length === 1)\n\t{\n\t\tg = \"0\" + g;\n\t}\n\tif (b.length === 1)\n\t{\n\t\tb = \"0\" + b;\n\t}\n\n\treturn \"#\" + r + g + b;\n}","export default function hslToRgb(hsl: {h: number, s: number, l: number}): {r: number, g: number, b: number}\n{\n\t// todo: a little not equal with reverce conversion :-/\n\t// todo: f.e. hsl(73.53.50) it 166,195,60 and #a5c33c,\n\t// todo: but in reverse #a5c33c => 165,195,60\n\t// todo: because we save ColorValue in hsl can be some differences\n\tconst h = hsl.h;\n\tconst s = hsl.s / 100;\n\tconst l = hsl.l / 100;\n\n\tlet c = (1 - Math.abs(2 * l - 1)) * s;\n\tlet x = c * (1 - Math.abs((h / 60) % 2 - 1));\n\tlet m = l - c / 2;\n\tlet r = 0;\n\tlet g = 0;\n\tlet b = 0;\n\n\tif (0 <= h && h < 60)\n\t{\n\t\tr = c;\n\t\tg = x;\n\t\tb = 0;\n\t}\n\telse if (60 <= h && h < 120)\n\t{\n\t\tr = x;\n\t\tg = c;\n\t\tb = 0;\n\t}\n\telse if (120 <= h && h < 180)\n\t{\n\t\tr = 0;\n\t\tg = c;\n\t\tb = x;\n\t}\n\telse if (180 <= h && h < 240)\n\t{\n\t\tr = 0;\n\t\tg = x;\n\t\tb = c;\n\t}\n\telse if (240 <= h && h < 300)\n\t{\n\t\tr = x;\n\t\tg = 0;\n\t\tb = c;\n\t}\n\telse if (300 <= h && h < 360)\n\t{\n\t\tr = c;\n\t\tg = 0;\n\t\tb = x;\n\t}\n\tr = Math.round((r + m) * 255);\n\tg = Math.round((g + m) * 255);\n\tb = Math.round((b + m) * 255);\n\n\treturn {r: r, g: g, b: b};\n}","import rgbToHex from './rgb-to-hex';\nimport hslToRgb from './hsl-to-rgb';\n\nexport default function hslToHex(hsl: {h: number, s: number, l: number}): string\n{\n\tconst rgb = hslToRgb(hsl);\n\n\treturn rgbToHex(rgb);\n}","import {Text} from 'main.core';\nimport rgbToHsla from '../internal/rgb-to-hsl';\nimport {matcher} from './is-rgb-string';\n\nexport default function rgbStringToHsla(rgbString: string): { h: number, s: number, l: number, a: number}\n{\n\tlet matches = rgbString.trim().match(matcher);\n\tif (matches.length > 0)\n\t{\n\t\treturn rgbToHsla({\n\t\t\tr: Text.toNumber(matches[1]),\n\t\t\tg: Text.toNumber(matches[2]),\n\t\t\tb: Text.toNumber(matches[3]),\n\t\t\ta: matches[5] ? Text.toNumber(matches[5]) : 1,\n\t\t});\n\t}\n}","import {Text} from 'main.core';\nimport {matcherHsl} from './is-hsl-string';\n\nexport default function hslStringToHsl(hslString: string): { h: number, s: number, l: number, a: number}\n{\n\tlet matches = hslString.trim().match(matcherHsl);\n\tif (matches && matches.length > 0)\n\t{\n\t\treturn {\n\t\t\th: Text.toNumber(matches[1]),\n\t\t\ts: Text.toNumber(matches[2]),\n\t\t\tl: Text.toNumber(matches[3]),\n\t\t\ta: matches[5] ? Text.toNumber(matches[5]) : 1,\n\t\t};\n\t}\n}","const matcher = /^(var\\()?((--[\\w\\d-]*?)(-opacity_([\\d_]+)?)?)\\)?$/i;\n\nexport function isCssVar(css: string): boolean\n{\n\treturn !!css.trim().match(matcher);\n}\n\ntype cssVar = {\n\tfull: string,\n\tname: string,\n\topacity: number,\n};\n\nexport function parseCssVar(css: string): ?cssVar\n{\n\tconst matches = css.trim().match(matcher);\n\tif (!!matches)\n\t{\n\t\tconst cssVar = {\n\t\t\tfull: matches[2],\n\t\t\tname: matches[3],\n\t\t};\n\n\t\tif (matches[3])\n\t\t{\n\t\t\tconst cssVarWithOpacity = '--primary-opacity-0_';\n\t\t\tconst cssVarWithOpacity0 = '--primary-opacity-0';\n\t\t\tif (matches[3].startsWith(cssVarWithOpacity0) && !matches[3].startsWith(cssVarWithOpacity))\n\t\t\t{\n\t\t\t\tcssVar.opacity = 0;\n\t\t\t}\n\t\t\tif (matches[3].startsWith(cssVarWithOpacity))\n\t\t\t{\n\t\t\t\tlet newOpacity = matches[3].substr(cssVarWithOpacity.length);\n\t\t\t\tif (newOpacity.length === 1 && newOpacity !== 0)\n\t\t\t\t{\n\t\t\t\t\tnewOpacity = newOpacity / 10;\n\t\t\t\t}\n\t\t\t\tif (newOpacity.length === 2)\n\t\t\t\t{\n\t\t\t\t\tnewOpacity = newOpacity / 100;\n\t\t\t\t}\n\t\t\t\tcssVar.opacity = newOpacity;\n\t\t\t}\n\t\t}\n\t\tif(matches[5])\n\t\t{\n\t\t\tcssVar.opacity = +parseFloat(matches[5].replace('_', '.')).toFixed(1);\n\t\t}\n\n\t\treturn cssVar;\n\t}\n\n\treturn null;\n}\n","import ColorValue from \"../color_value\";\n\nexport type ColorValueOptions = {\n\th?: number,\n\ts?: number,\n\tl?: number,\n\ta?: number,\n};\nexport const defaultColorValueOptions: ColorValueOptions = {\n\th: 205,\n\ts: 1,\n\tl: 50,\n\ta: 1,\n};\n\nexport type GradientValueOptions = {\n\tfrom: ColorValue,\n\tto: ColorValue,\n\tangle: number,\n\ttype: 'linear' | 'radial'\n};\n\nexport type BgImageValueOptions = {\n\turl: ?string,\n\turl2x: ?string,\n\tfileId: ?number,\n\tfileId2x: ?number,\n\tsize: 'cover' | 'auto',\n\tattachment: 'scroll' | 'fixed',\n\toverlay: ?ColorValue,\n};\nexport const defaultBgImageSize = 'cover';\nexport const defaultBgImageAttachment = 'scroll';\nexport const defaultOverlay = null;\nexport const defaultBgImageValueOptions: BgImageValueOptions = {\n\turl: null,\n\tsize: defaultBgImageSize,\n\tattachment: defaultBgImageAttachment,\n\toverlay: defaultOverlay,\n};\n","import {Dom, Type} from 'main.core';\n\nimport isRgbString from './internal/is-rgb-string';\nimport isHex from './internal/is-hex';\nimport isHslString from './internal/is-hsl-string';\nimport hexToHsl from './internal/hex-to-hsl';\nimport hslToHex from './internal/hsl-to-hex';\nimport rgbStringToHsla from './internal/rgb-string-to-hsl';\nimport hslStringToHsl from './internal/hsl-string-to-hsl';\nimport {isCssVar, parseCssVar} from \"./internal/css-var\";\nimport {ColorValueOptions, defaultColorValueOptions} from \"./types/color_value_options\";\nimport {IColorValue} from './types/i_color_value';\n\nexport default class ColorValue implements IColorValue\n{\n\tvalue: ColorValueOptions;\n\t/**\n\t * For preserve differences between hsl->rgb and rgb->hsl conversions we can save hex\n\t * @type {?string}\n\t */\n\thex: ?string;\n\t/**\n\t * if set css variable value - save them in '--var-name' format\n\t * @type {?string}\n\t */\n\tcssVar: ?string;\n\n\tconstructor(value: ColorValueOptions | ColorValue | string)\n\t{\n\t\tthis.value = defaultColorValueOptions;\n\t\tthis.hex = null;\n\t\tthis.cssVar = null;\n\t\tthis.setValue(value);\n\t}\n\n\tgetName(): string\n\t{\n\t\tif (this.hex)\n\t\t{\n\t\t\treturn this.getHex() + '_' + this.getOpacity();\n\t\t}\n\t\tconst {h, s, l} = this.getHsl();\n\t\treturn `${h}-${s}-${l}-${this.getOpacity()}`;\n\t}\n\n\tsetValue(value: ColorValueOptions | ColorValue | string): ColorValue\n\t{\n\t\tif (Type.isObject(value))\n\t\t{\n\t\t\tif (value instanceof ColorValue)\n\t\t\t{\n\t\t\t\tthis.value = value.getHsla();\n\t\t\t\tthis.cssVar = value.getCssVar();\n\t\t\t\tthis.hex = value.getHexOriginal();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.value = {...this.value, ...value};\n\t\t\t}\n\t\t}\n\n\t\tif (Type.isString(value))\n\t\t{\n\t\t\tif (isHslString(value))\n\t\t\t{\n\t\t\t\tthis.value = hslStringToHsl(value);\n\t\t\t}\n\t\t\telse if (isHex(value))\n\t\t\t{\n\t\t\t\tthis.value = {...hexToHsl(value), a: defaultColorValueOptions.a};\n\t\t\t\tthis.hex = value;\n\t\t\t}\n\t\t\telse if (isRgbString(value))\n\t\t\t{\n\t\t\t\tthis.value = rgbStringToHsla(value);\n\t\t\t}\n\t\t\telse if (isCssVar(value))\n\t\t\t{\n\t\t\t\tconst cssVar = parseCssVar(value);\n\t\t\t\tconst cssPrimaryVarName = '--primary';\n\t\t\t\tif (cssVar !== null)\n\t\t\t\t{\n\t\t\t\t\tthis.cssVar = cssVar.name;\n\t\t\t\t\tif ('opacity' in cssVar)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.cssVar = cssPrimaryVarName;\n\t\t\t\t\t\tthis.setValue(Dom.style(document.documentElement, this.cssVar));\n\t\t\t\t\t\tthis.setOpacity(cssVar.opacity);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.setValue(Dom.style(document.documentElement, this.cssVar));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.value.h = Math.round(this.value.h);\n\t\tthis.value.s = Math.round(this.value.s);\n\t\tthis.value.l = Math.round(this.value.l);\n\t\tthis.value.a = this.value.a.toFixed(2);\n\t\tconst offsetFromCorrectValue = Math.round((this.value.a * 100) % 5);\n\t\tif (offsetFromCorrectValue < 3)\n\t\t{\n\t\t\tthis.value.a = (this.value.a * 100 - offsetFromCorrectValue) / 100;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.value.a = (this.value.a * 100 - offsetFromCorrectValue + 5) / 100;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tsetOpacity(opacity: number): ColorValue\n\t{\n\t\tthis.setValue({a: opacity});\n\n\t\treturn this;\n\t}\n\n\tlighten(percent: number): ColorValue\n\t{\n\t\tthis.value.l = Math.min(this.value.l + percent, 100);\n\t\tthis.hex = null;\n\n\t\treturn this;\n\t}\n\n\tdarken(percent: number): ColorValue\n\t{\n\t\tthis.value.l = Math.max(this.value.l - percent, 0);\n\t\tthis.hex = null;\n\n\t\treturn this;\n\t}\n\n\tsaturate(percent: number): ColorValue\n\t{\n\t\tthis.value.s = Math.min(this.value.s + percent, 100);\n\t\tthis.hex = null;\n\n\t\treturn this;\n\t}\n\n\tdesaturate(percent: number): ColorValue\n\t{\n\t\tthis.value.s = Math.max(this.value.s - percent, 0);\n\t\tthis.hex = null;\n\n\t\treturn this;\n\t}\n\n\tadjustHue(degree: number): ColorValue\n\t{\n\t\tthis.value.h = (this.value.h + degree) % 360;\n\n\t\treturn this;\n\t}\n\n\tgetHsl(): {h: number, s: number, l: number}\n\t{\n\t\treturn {\n\t\t\th: this.value.h,\n\t\t\ts: this.value.s,\n\t\t\tl: this.value.l,\n\t\t};\n\t}\n\n\tgetHsla(): ColorValueOptions\n\t{\n\t\tconst a = this.value.a || 1;\n\t\treturn {\n\t\t\th: this.value.h,\n\t\t\ts: this.value.s,\n\t\t\tl: this.value.l,\n\t\t\ta,\n\t\t};\n\t}\n\n\t/**\n\t * Return original hex-string or convert value to hex (w.o. alpha)\n\t * @returns {string}\n\t */\n\tgetHex(): string\n\t{\n\t\treturn this.hex || hslToHex(this.value);\n\t}\n\n\t/**\n\t * Return hex only if value created from hex-string\n\t */\n\tgetHexOriginal(): string\n\t{\n\t\treturn this.hex;\n\t}\n\n\tgetOpacity(): number\n\t{\n\t\treturn this.value.a ?? defaultColorValueOptions.a;\n\t}\n\n\tgetCssVar(): ?string\n\t{\n\t\treturn this.cssVar;\n\t}\n\n\t/**\n\t * Get style string for set inline css var.\n\t * Set hsla value or primary css var with opacity in format --var-name-opacity_12_3\n\t * @returns {string}\n\t */\n\tgetStyleString(): string\n\t{\n\t\tif (this.cssVar === null)\n\t\t{\n\t\t\tif (this.hex && this.getOpacity() === defaultColorValueOptions.a)\n\t\t\t{\n\t\t\t\treturn this.hex\n\t\t\t}\n\n\t\t\tconst {h, s, l, a} = this.value;\n\n\t\t\treturn `hsla(${h}, ${s}%, ${l}%, ${a})`;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tlet fullCssVar = this.cssVar;\n\t\t\tif (this.value.a !== defaultColorValueOptions.a)\n\t\t\t{\n\t\t\t\tfullCssVar = fullCssVar + '-opacity-' + String(this.value.a).replace('.', '_');\n\t\t\t}\n\t\t\treturn `var(${fullCssVar})`;\n\t\t}\n\t}\n\n\tgetStyleStringForOpacity(): string\n\t{\n\t\tconst {h, s, l} = this.value;\n\n\t\treturn `linear-gradient(to right, hsla(${h}, ${s}%, ${l}%, 0) 0%, hsla(${h}, ${s}%, ${l}%, 1) 100%)`;\n\t}\n\n\tstatic compare(color1: ColorValue, color2: ColorValue): boolean\n\t{\n\t\treturn color1.getHsla().h === color2.getHsla().h\n\t\t\t&& color1.getHsla().s === color2.getHsla().s\n\t\t\t&& color1.getHsla().l === color2.getHsla().l\n\t\t\t&& color1.getHsla().a === color2.getHsla().a\n\t\t\t&& color1.cssVar === color2.cssVar;\n\t}\n\n\tstatic getMedian(color1: ColorValue, color2: ColorValue): ColorValue\n\t{\n\t\treturn new ColorValue({\n\t\t\th: (color1.getHsla().h + color2.getHsla().h) / 2,\n\t\t\ts: (color1.getHsla().s + color2.getHsla().s) / 2,\n\t\t\tl: (color1.getHsla().l + color2.getHsla().l) / 2,\n\t\t\ta: (color1.getHsla().a + color2.getHsla().a) / 2,\n\t\t});\n\t}\n\n\t/**\n\t * Special formula for contrast. Not only color invert!\n\t * @returns {string}\n\t */\n\tgetContrast(): ColorValue\n\t{\n\t\tlet k = 60;\n\t\t// math h range to 0-2pi radian and add modifier by sinus\n\t\tlet rad = this.getHsl().h * Math.PI / 180;\n\t\tk += (Math.sin(rad) * 10) + 5;\t// 10 & 5 is approximate coefficients\n\t\t// lighten by started light\n\t\tlet deltaL = k - (45 * this.getHsl().l / 100);\n\n\t\treturn new ColorValue(this.value).setValue({l: (this.getHsl().l + deltaL) % 100});\n\t}\n\n\t/**\n\t * Special formula for lighten, good for dark and light colors\n\t */\n\tgetLighten(): ColorValue\n\t{\n\t\tlet {h, s, l} = this.getHsl();\n\n\t\tif (s > 0)\n\t\t{\n\t\t\ts += (l - 50) / 100 * 60;\n\t\t\ts = Math.min(100, Math.max(0, l));\n\t\t}\n\n\t\tl += 10 + 20 * l / 100;\n\t\tl = Math.min(100, l);\n\n\t\treturn new ColorValue({h, s, l});\n\t}\n}\n","import {Tag, Cache, Type} from 'main.core';\nimport {EventEmitter} from 'main.core.events';\nimport ColorValue from '../color_value';\nimport {IColorValue} from '../types/i_color_value';\n\nexport default class BaseProcessor extends EventEmitter\n{\n\tvariableName: string | [string];\n\tclassName: string;\n\tproperty: string | [string];\n\toptions: [];\n\tpseudoClass: ?string;\n\n\tconstructor(options: {})\n\t{\n\t\tsuper();\n\t\tthis.cache = new Cache.MemoryCache();\n\t\tthis.property = 'color';\n\t\tthis.options = options;\n\t\tthis.pseudoClass = null;\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Processor.BaseProcessor');\n\t}\n\n\tgetProperty(): [string]\n\t{\n\t\treturn Type.isArray(this.property)\n\t\t\t? this.property\n\t\t\t: [this.property];\n\t}\n\n\tgetVariableName(): [string]\n\t{\n\t\treturn Type.isArray(this.variableName)\n\t\t\t? this.variableName\n\t\t\t: [this.variableName];\n\t}\n\n\tisNullValue(value: ?string): boolean\n\t{\n\t\treturn Type.isNull(value);\n\t}\n\n\tgetNullValue(): IColorValue\n\t{\n\t\treturn new ColorValue;\n\t}\n\n\tgetPseudoClass(): ?string\n\t{\n\t\treturn this.pseudoClass;\n\t}\n\n\tgetLayout(): HTMLElement\n\t{\n\t\treturn this.cache.remember('layout', () => {\n\t\t\treturn this.buildLayout();\n\t\t});\n\t}\n\n\tbuildLayout(): HTMLElement\n\t{\n\t\treturn Tag.render`<div>Base processor</div>`;\n\t}\n\n\tgetClassName(): [string]\n\t{\n\t\treturn [this.className];\n\t}\n\n\tgetValue(): ?IColorValue\n\t{\n\t}\n\n\tgetStyle(): {string: ?string}\n\t{\n\t\tif (Type.isNull(this.getValue()))\n\t\t{\n\t\t\treturn {[this.getVariableName()]: null};\n\t\t}\n\n\t\treturn {[this.getVariableName()]: this.getValue().getStyleString()};\n\t}\n\n\t/**\n\t * Set value by new format\n\t * @param value {string: string}\n\t */\n\tsetProcessorValue(value: {string: string})\n\t{\n\t\t// Just get last css variable\n\t\tconst processorProperty = this.getVariableName()[this.getVariableName().length - 1];\n\t\tthis.cache.delete('value');\n\t\tthis.setValue(value[processorProperty]);\n\t}\n\n\t/**\n\t * Set old-type value by computedStyle\n\t * @param value {string: string} | null\n\t */\n\tsetDefaultValue(value: {string: string} | null)\n\t{\n\t\tif (!Type.isNull(value))\n\t\t{\n\t\t\tconst inlineProperty = this.getProperty()[this.getProperty().length - 1];\n\t\t\tif (inlineProperty in value)\n\t\t\t{\n\t\t\t\tthis.setValue(value[inlineProperty]);\n\t\t\t\tthis.cache.delete('value');\n\t\t\t\tthis.unsetActive();\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tthis.setValue(null);\n\t\tthis.cache.set('value', null);\n\t}\n\n\tsetValue(value: string | {string: string} | null)\n\t{\n\t}\n\n\tonReset()\n\t{\n\t\tthis.emit('onReset');\n\t}\n\n\tunsetActive()\n\t{\n\t}\n\n\tonChange()\n\t{\n\t\tthis.cache.delete('value');\n\t\tthis.emit('onChange');\n\t}\n\n\tdefineActiveControl(items, currentNode)\n\t{\n\t}\n\n\tsetActiveControl(controlName)\n\t{\n\t}\n\n\tprepareProcessorValue(processorValue, defaultValue, data)\n\t{\n\t\treturn processorValue;\n\t}\n}","import {BaseEvent, EventEmitter} from 'main.core.events';\nimport {Cache, Dom, Tag} from 'main.core';\n\nimport ColorValue from \"../../color_value\";\nimport {IColorValue} from '../../types/i_color_value';\n\nimport './css/base_control.css';\n\nexport default class BaseControl extends EventEmitter\n{\n\tstatic ACTIVE_CLASS: string = 'active';\n\n\tconstructor(options: ?{})\n\t{\n\t\tsuper();\n\t\tthis.cache = new Cache.MemoryCache();\n\t}\n\n\tgetLayout(): HTMLElement\n\t{\n\t\treturn this.cache.remember('layout', () => {\n\t\t\treturn this.buildLayout();\n\t\t});\n\t}\n\n\tbuildLayout(): HTMLElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"landing-ui-field-base-control\">\n\t\t\t\tBase control\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetValue(): ?IColorValue\n\t{\n\t\treturn this.cache.remember('value', () => {\n\t\t\treturn new ColorValue();\n\t\t});\n\t}\n\n\tisNeedSetValue(value): boolean\n\t{\n\t\treturn value !== this.getValue();\n\t}\n\n\tsetValue(value)\n\t{\n\t\tthis.cache.set('value', value);\n\t}\n\n\tonChange(event: ?BaseEvent)\n\t{\n\t\tthis.cache.delete('value');\n\t\tthis.emit('onChange', {color: this.getValue()});\n\t}\n\n\tsetActive(): void\n\t{\n\t\tDom.addClass(this.getLayout(), BaseControl.ACTIVE_CLASS);\n\t}\n\n\tunsetActive(): void\n\t{\n\t\tDom.removeClass(this.getLayout(), BaseControl.ACTIVE_CLASS);\n\t}\n\n\tisActive(): boolean\n\t{\n\t\treturn Dom.hasClass(this.getLayout(), BaseControl.ACTIVE_CLASS);\n\t}\n}\n","import {Dom, Event, Runtime, Tag} from 'main.core';\nimport isHex from '../../internal/is-hex';\nimport ColorValue from \"../../color_value\";\n\nimport './css/hex.css';\nimport BaseControl from \"../base_control/base_control\";\nimport {BaseEvent} from 'main.core.events';\nimport {PageObject} from 'landing.pageobject';\n\nexport default class Hex extends BaseControl\n{\n\tstatic +DEFAULT_TEXT: string = '#HEX';\n\tstatic +DEFAULT_COLOR: string = '#000000';\n\tstatic +DEFAULT_BG: string = '#eeeeee';\n\n\tconstructor()\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Color.Hex');\n\t\tthis.previewMode = false;\n\n\t\tthis.onInput = Runtime.debounce(this.onInput.bind(this), 300);\n\t\tthis.onButtonClick = this.onButtonClick.bind(this);\n\t}\n\n\tsetPreviewMode(preview: boolean)\n\t{\n\t\tthis.previewMode = !!preview;\n\t}\n\n\tbuildLayout(): HTMLElement\n\t{\n\t\tif (!this.previewMode)\n\t\t{\n\t\t\t// todo: add Enter click handler\n\t\t\tEvent.bind(this.getInput(), 'input', this.onInput);\n\t\t\tEvent.bind(this.getButton(), 'click', this.onButtonClick);\n\t\t}\n\n\t\tthis.adjustColors(Hex.DEFAULT_COLOR, Hex.DEFAULT_BG);\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"landing-ui-field-color-hex\">\n\t\t\t\t${this.getInput()}\n\t\t\t\t${this.getButton()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetInput(): HTMLInputElement\n\t{\n\t\treturn this.cache.remember('input', () => {\n\t\t\treturn this.previewMode\n\t\t\t\t? Tag.render`<div class=\"landing-ui-field-color-hex-preview\">${Hex.DEFAULT_TEXT}</div>`\n\t\t\t\t: Tag.render`<input type=\"text\" name=\"hexInput\" value=\"${Hex.DEFAULT_TEXT}\" class=\"landing-ui-field-color-hex-input\">`;\n\t\t});\n\t}\n\n\tgetButton(): SVGElement\n\t{\n\t\treturn this.cache.remember('editButton', () => {\n\t\t\treturn this.previewMode\n\t\t\t\t? Tag.render`\n\t\t\t\t\t<svg class=\"landing-ui-field-color-hex-preview-btn\" width=\"9\" height=\"9\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t\t<path\n\t\t\t\t\t\t\td=\"M7.108 0l1.588 1.604L2.486 7.8.896 6.194 7.108 0zM.006 8.49a.166.166 0 00.041.158.161.161 0 00.16.042l1.774-.478L.484 6.715.006 8.49z\"\n\t\t\t\t\t\t\tfill=\"#525C69\"\n\t\t\t\t\t\t\tfill-rule=\"evenodd\"/>\n\t\t\t\t\t</svg>`\n\t\t\t\t: Tag.render`\n\t\t\t\t\t<svg class=\"landing-ui-field-color-hex-preview-btn\" width=\"12\" height=\"9\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t\t<path\n\t\t\t\t\t\t\td=\"M4.27 8.551L.763 5.304 2.2 3.902l2.07 1.846L9.836.533l1.439 1.402z\"\n\t\t\t\t\t\t\tfill=\"#525C69\"\n\t\t\t\t\t\t\tfill-rule=\"evenodd\"/>\n\t\t\t\t\t</svg>`;\n\t\t});\n\t}\n\n\tonInput(): void\n\t{\n\t\tlet value = this.getInput().value.replace(/[^\\da-f]/gi, '');\n\t\tvalue = value.substring(0, 6);\n\t\tthis.getInput().value = '#' + value.toLowerCase();\n\n\t\tthis.onChange();\n\t}\n\n\tonButtonClick(): void\n\t{\n\t\tthis.onChange();\n\t\tthis.emit('onButtonClick', {color: this.getValue()});\n\t}\n\n\tonChange(event: ?BaseEvent)\n\t{\n\t\tconst color = (this.getInput().value.length === 7 && isHex(this.getInput().value))\n\t\t\t? new ColorValue(this.getInput().value)\n\t\t\t: null;\n\t\tthis.setValue(color);\n\n\t\tthis.cache.delete('value');\n\t\tthis.emit('onChange', {color: color});\n\t}\n\n\tadjustColors(textColor: string, bgColor: string)\n\t{\n\t\tDom.style(this.getInput(), 'background-color', bgColor);\n\t\tDom.style(this.getInput(), 'color', textColor);\n\t\tDom.style(this.getButton().querySelector('path'), 'fill', textColor);\n\t}\n\n\tfocus(): void\n\t{\n\t\tif (!this.previewMode)\n\t\t{\n\t\t\tif (this.getValue() === null)\n\t\t\t{\n\t\t\t\tthis.getInput().value = '#';\n\t\t\t}\n\t\t\tthis.getInput().focus();\n\t\t}\n\t}\n\n\tunFocus(): void\n\t{\n\t\tif (!this.previewMode)\n\t\t{\n\t\t\tthis.getInput().blur();\n\t\t}\n\t}\n\n\tgetValue(): ?ColorValue\n\t{\n\t\treturn this.cache.remember('value', () => {\n\t\t\treturn (this.getInput().value === Hex.DEFAULT_TEXT)\n\t\t\t\t? null\n\t\t\t\t: new ColorValue(this.getInput().value);\n\t\t});\n\t}\n\n\tsetValue(value: ?ColorValue)\n\t{\n\t\t// todo: set checking in always controls?\n\t\tif (this.isNeedSetValue(value))\n\t\t{\n\t\t\tsuper.setValue(value);\n\n\t\t\tif (value !== null)\n\t\t\t{\n\t\t\t\tthis.adjustColors(value.getContrast().getHex(), value.getHex());\n\t\t\t\tthis.setActive();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.adjustColors(Hex.DEFAULT_COLOR, Hex.DEFAULT_BG);\n\t\t\t\tthis.unsetActive();\n\t\t\t}\n\n\t\t\tif (this.previewMode)\n\t\t\t{\n\t\t\t\tthis.getInput().innerText = (value !== null) ? value.getHex() : Hex.DEFAULT_TEXT;\n\t\t\t}\n\t\t\telse if (PageObject.getRootWindow().document.activeElement !== this.getInput())\n\t\t\t{\n\t\t\t\tthis.getInput().value = (value !== null) ? value.getHex() : Hex.DEFAULT_TEXT;\n\t\t\t}\n\t\t}\n\t}\n\n\tsetActive(): void\n\t{\n\t\tDom.addClass(this.getInput(), Hex.ACTIVE_CLASS);\n\t}\n\n\tunsetActive(): void\n\t{\n\t\tDom.removeClass(this.getInput(), Hex.ACTIVE_CLASS);\n\t}\n\n\tisActive(): boolean\n\t{\n\t\treturn Dom.hasClass(this.getInput(), Hex.ACTIVE_CLASS);\n\t}\n}\n","import {BaseEvent} from 'main.core.events';\nimport {Dom, Event, Tag, Text} from 'main.core';\n\nimport ColorValue from \"../../color_value\";\nimport './css/spectrum.css';\nimport BaseControl from \"../base_control/base_control\";\nimport {PageObject} from 'landing.pageobject';\n\nexport default class Spectrum extends BaseControl\n{\n\tstatic DEFAULT_SATURATION: number = 100;\n\tstatic HUE_RANGE: number = 375;\n\tstatic HUE_RANGE_GRAY_THRESHOLD: number = 360;\n\tstatic HUE_RANGE_GRAY_MIDDLE: number = 367;\n\tstatic HIDE_CLASS: string = 'hidden';\n\n\t// todo: debug, del method, change calls, change css\n\tstatic getDefaultSaturation()\n\t{\n\t\tconst global = window.top.document.location.saturation;\n\t\tconst urlParam = (new URL(window.top.document.location)).searchParams.get('saturation');\n\t\tconst saturation = global || urlParam || Spectrum.DEFAULT_SATURATION;\n\n\t\twindow.top.document.body.style.setProperty('--saturation', saturation + '%');\n\n\t\treturn parseInt(saturation);\n\t}\n\n\tconstructor(options)\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Color.Spectrum');\n\n\t\tthis.onPickerDragStart = this.onPickerDragStart.bind(this);\n\t\tthis.onPickerDragMove = this.onPickerDragMove.bind(this);\n\t\tthis.onPickerDragEnd = this.onPickerDragEnd.bind(this);\n\t\tthis.onScroll = this.onScroll.bind(this);\n\n\t\tthis.document = PageObject.getRootWindow().document;\n\t\tthis.scrollContext = options.contentRoot;\n\n\t\tEvent.bind(this.getLayout(), 'mousedown', this.onPickerDragStart);\n\t}\n\n\tbuildLayout(): HTMLDivElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"landing-ui-field-color-spectrum\">\n\t\t\t\t${this.getPicker()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetPicker(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('picker', () => {\n\t\t\treturn Tag.render`<div class=\"landing-ui-field-color-spectrum-picker\"></div>`;\n\t\t});\n\t}\n\n\tgetPickerPos(): {x: number, y: number}\n\t{\n\t\treturn {\n\t\t\tx: Text.toNumber(Dom.style(this.getPicker(), 'left')),\n\t\t\ty: Text.toNumber(Dom.style(this.getPicker(), 'top')),\n\t\t};\n\t}\n\n\tonPickerDragStart(event: MouseEvent)\n\t{\n\t\tif (event.ctrlKey || event.metaKey || event.button)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tEvent.bind(this.scrollContext, 'scroll', this.onScroll);\n\t\tEvent.bind(this.document, 'mousemove', this.onPickerDragMove);\n\t\tEvent.bind(this.document, 'mouseup', this.onPickerDragEnd);\n\n\t\tDom.addClass(this.document.body, 'landing-ui-field-color-draggable');\n\t\tthis.onScroll();\n\t\tthis.showPicker();\n\t\tthis.onPickerDragMove(event);\n\t}\n\n\tonPickerDragMove(event: MouseEvent)\n\t{\n\t\tif (event.target === this.getPicker())\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tthis.setPickerPos(event.pageX, event.pageY);\n\t\tthis.onChange();\n\t}\n\n\tonPickerDragEnd()\n\t{\n\t\tEvent.unbind(this.scrollContext, 'scroll', this.onScroll);\n\t\tEvent.unbind(this.document, 'mousemove', this.onPickerDragMove);\n\t\tEvent.unbind(this.document, 'mouseup', this.onPickerDragEnd);\n\n\t\tDom.removeClass(this.document.body, 'landing-ui-field-color-draggable');\n\t}\n\n\tonScroll()\n\t{\n\t\tthis.cache.delete('layoutSize');\n\t}\n\n\tgetLayoutRect(): {}\n\t{\n\t\treturn this.cache.remember('layoutSize', () => {\n\t\t\tconst layoutRect = this.getLayout().getBoundingClientRect();\n\t\t\treturn {\n\t\t\t\twidth: layoutRect.width,\n\t\t\t\theight: layoutRect.height,\n\t\t\t\ttop: layoutRect.top,\n\t\t\t\tleft: layoutRect.left,\n\t\t\t};\n\t\t});\n\t}\n\n\t/**\n\t * Set picker by absolut page coords\n\t * @param x\n\t * @param y\n\t */\n\tsetPickerPos(x: number, y: number)\n\t{\n\t\tconst {width, height, top, left} = this.getLayoutRect();\n\n\t\tlet leftToSet = Math.min(Math.max((x - left), 0), width);\n\t\tleftToSet = (leftToSet > width / Spectrum.HUE_RANGE * Spectrum.HUE_RANGE_GRAY_THRESHOLD)\n\t\t\t? width / Spectrum.HUE_RANGE * Spectrum.HUE_RANGE_GRAY_MIDDLE\n\t\t\t: leftToSet\n\t\t;\n\n\t\tDom.style(this.getPicker(), {\n\t\t\tleft: `${leftToSet}px`,\n\t\t\ttop: `${Math.min(Math.max((y - top), 0), height)}px`,\n\t\t});\n\t}\n\n\tgetValue(): ?ColorValue\n\t{\n\t\treturn this.cache.remember('value', () => {\n\t\t\tif (Dom.hasClass(this.getPicker(), Spectrum.HIDE_CLASS))\n\t\t\t{\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst layoutWidth = this.getLayout().getBoundingClientRect().width;\n\t\t\tconst h = (this.getPickerPos().x / layoutWidth) * Spectrum.HUE_RANGE;\n\t\t\tconst layoutHeight = this.getLayout().getBoundingClientRect().height;\n\t\t\tconst l = (1 - this.getPickerPos().y / layoutHeight) * 100;\n\n\t\t\tif (isNaN(h) || isNaN(l))\n\t\t\t{\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn new ColorValue({\n\t\t\t\th: Math.min(h, Spectrum.HUE_RANGE_GRAY_THRESHOLD),\n\t\t\t\ts: (h >= Spectrum.HUE_RANGE_GRAY_THRESHOLD) ? 0 : Spectrum.getDefaultSaturation(),\n\t\t\t\tl: l,\n\t\t\t});\n\t\t});\n\t}\n\n\tsetValue(value: ?ColorValue)\n\t{\n\t\tsuper.setValue(value);\n\n\t\tif ((value !== null) && Spectrum.isSpectrumValue(value))\n\t\t{\n\t\t\t// in first set value we can't match bounding client rect (layout not render). Then, use percents\n\t\t\tconst {h, s, l} = value.getHsl();\n\n\t\t\tconst left = (s === 0)\n\t\t\t\t? Spectrum.HUE_RANGE_GRAY_MIDDLE / Spectrum.HUE_RANGE * 100\n\t\t\t\t: h / Spectrum.HUE_RANGE * 100;\n\t\t\tDom.style(this.getPicker(), 'left', `${left}%`);\n\n\t\t\tconst top = 100 - l;\n\t\t\tDom.style(this.getPicker(), 'top', `${top}%`);\n\n\t\t\tthis.showPicker();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.hidePicker();\n\t\t}\n\t}\n\n\thidePicker()\n\t{\n\t\tDom.addClass(this.getPicker(), Spectrum.HIDE_CLASS);\n\t}\n\n\tshowPicker()\n\t{\n\t\tDom.removeClass(this.getPicker(), Spectrum.HIDE_CLASS);\n\t}\n\n\tisActive(): boolean\n\t{\n\t\treturn (this.getValue() !== null) && Spectrum.isSpectrumValue(this.getValue());\n\t}\n\n\tstatic isSpectrumValue(value: ColorValue): boolean\n\t{\n\t\treturn (value !== null)\n\t\t\t&& (\n\t\t\t\tvalue.getHsl().s === Spectrum.getDefaultSaturation()\n\t\t\t\t|| value.getHsl().s === 0\n\t\t\t);\n\t}\n}\n","import {Cache, Event, Tag, Dom, Type} from 'main.core';\nimport {EventEmitter} from 'main.core.events';\n\nimport {Backend} from 'landing.backend';\n\nimport isHex from '../../internal/is-hex';\nimport './css/recent.css';\n\nexport default class Recent extends EventEmitter\n{\n\tstatic +USER_OPTION_NAME = 'color_field_recent_colors';\n\tstatic +MAX_ITEMS = 6;\n\n\tstatic items: [] = [];\n\tstatic itemsLoaded: boolean = false;\n\n\tconstructor()\n\t{\n\t\tsuper();\n\t\tthis.cache = new Cache.MemoryCache();\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Color.Recent');\n\t}\n\n\tgetLayout(): HTMLDivElement\n\t{\n\t\tthis.initItems();\n\n\t\treturn this.getLayoutContainer();\n\t}\n\n\tgetLayoutContainer(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('layout', () => {\n\t\t\treturn Tag.render`<div class=\"landing-ui-field-color-recent\"></div>`;\n\t\t});\n\t}\n\n\tinitItems()\n\t{\n\t\tif (Recent.itemsLoaded)\n\t\t{\n\t\t\tthis.buildItemsLayout();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tBackend.getInstance()\n\t\t\t\t.action(\"Utils::getUserOption\", {name: Recent.USER_OPTION_NAME})\n\t\t\t\t.then(result => {\n\t\t\t\t\tif (result && Type.isString(result.items))\n\t\t\t\t\t{\n\t\t\t\t\t\tRecent.items = [];\n\t\t\t\t\t\tresult.items.split(',').forEach(item => {\n\t\t\t\t\t\t\tif (isHex((item)) && Recent.items.length < Recent.MAX_ITEMS)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tRecent.items.push(item);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tRecent.itemsLoaded = true;\n\n\t\t\t\t\t\tthis.buildItemsLayout();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t// todo: what if ajax error?\n\t\t}\n\t}\n\n\tbuildItemsLayout(): Recent\n\t{\n\t\tDom.clean(this.getLayoutContainer());\n\t\tRecent.items.forEach(item => {\n\t\t\tif (isHex(item))\n\t\t\t{\n\t\t\t\tlet itemLayout = Tag.render`<div \n\t\t\t\t\tclass=\"landing-ui-field-color-recent-item\" \n\t\t\t\t\tstyle=\"background:${item}\"\n\t\t\t\t\tdata-value=\"${item}\"\n\t\t\t\t></div>`;\n\t\t\t\tEvent.bind(itemLayout, 'click', () => this.onItemClick(event));\n\t\t\t\tDom.append(itemLayout, this.getLayoutContainer());\n\t\t\t}\n\t\t});\n\n\t\treturn this;\n\t}\n\n\tonItemClick(event: MouseEvent)\n\t{\n\t\tthis.emit('onChange', {hex: event.currentTarget.dataset.value});\n\t}\n\n\taddItem(hex: string): Recent\n\t{\n\t\tif (isHex(hex))\n\t\t{\n\t\t\tlet pos = Recent.items.indexOf(hex);\n\t\t\tif (pos !== -1)\n\t\t\t{\n\t\t\t\tRecent.items.splice(pos, 1);\n\t\t\t}\n\t\t\tRecent.items.unshift(hex);\n\t\t\tif (Recent.items.length > Recent.MAX_ITEMS)\n\t\t\t{\n\t\t\t\tRecent.items.splice(Recent.MAX_ITEMS);\n\t\t\t}\n\n\t\t\tthis.buildItemsLayout();\n\t\t\tthis.saveItems();\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tsaveItems(): Recent\n\t{\n\t\tif (Recent.items.length > 0)\n\t\t{\n\t\t\tBX.userOptions.save('landing', Recent.USER_OPTION_NAME, 'items', Recent.items);\n\t\t}\n\n\t\treturn this;\n\t}\n}","import {Event, Tag, Text, Loc} from 'main.core';\nimport {Popup, PopupManager} from 'main.popup';\nimport {BaseEvent} from \"main.core.events\";\n\nimport Hex from '../hex/hex';\nimport ColorValue from \"../../color_value\";\nimport BaseControl from \"../base_control/base_control\";\nimport Spectrum from \"../spectrum/spectrum\";\nimport Recent from '../../layout/recent/recent';\n\nimport './css/colorpicker.css';\n\nexport default class Colorpicker extends BaseControl\n{\n\tpopupId: string;\n\tpopupTargetContainer: ?HTMLElement;\n\n\tconstructor(options)\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Color.Colorpicker');\n\t\tthis.popupId = 'colorpicker_popup_' + Text.getRandom();\n\t\tthis.popupTargetContainer = options.contentRoot;\n\n\t\tthis.hexPreview = new Hex();\n\t\tthis.hexPreview.setPreviewMode(true);\n\t\tEvent.bind(this.hexPreview.getLayout(), 'click', this.onPopupOpenClick.bind(this));\n\n\t\t// popup\n\t\tthis.hex = new Hex();\n\t\tthis.hex.subscribe('onChange', this.onHexChange.bind(this));\n\t\tthis.hex.subscribe('onButtonClick', this.onSelectClick.bind(this));\n\n\t\tthis.spectrum = new Spectrum(options);\n\t\tthis.spectrum.subscribe('onChange', this.onSpectrumChange.bind(this));\n\n\t\tthis.recent = new Recent();\n\t\tthis.recent.subscribe('onChange', this.onRecentChange.bind(this));\n\n\t\tEvent.bind(this.getCancelButton(), 'click', this.onCancelClick.bind(this));\n\t\tEvent.bind(this.getSelectButton(), 'click', this.onSelectClick.bind(this));\n\t\t// end popup\n\n\t\tthis.previously = this.getValue();\n\t}\n\n\tonSelectClick(event: ?BaseEvent)\n\t{\n\t\tconst value = (event instanceof BaseEvent) ? event.getData().color : this.getValue();\n\t\tif (value !== null)\n\t\t{\n\t\t\tthis.recent.addItem(this.getValue().getHex());\n\t\t}\n\t\tthis.getPopup().close();\n\t}\n\n\tbuildLayout(): HTMLDivElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"landing-ui-field-color-colorpicker\">\n\t\t\t\t${this.hexPreview.getLayout()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetPopupContent(): HTMLDivElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"landing-ui-field-color-popup-container\">\n\t\t\t\t<div class=\"landing-ui-field-color-popup-head\">\n\t\t\t\t\t${this.recent.getLayout()}\n\t\t\t\t\t${this.hex.getLayout()}\n\t\t\t\t</div>\n\t\t\t\t${this.spectrum.getLayout()}\n\t\t\t\t<div class=\"landing-ui-field-color-popup-footer\">\n\t\t\t\t\t${this.getSelectButton()}\n\t\t\t\t\t${this.getCancelButton()}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetSelectButton(): HTMLButtonElement\n\t{\n\t\treturn this.cache.remember('selectButton', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<button class=\"ui-btn ui-btn-xs ui-btn-primary\">\n\t\t\t\t\t${Loc.getMessage('LANDING_FIELD_COLOR-BUTTON_SELECT')}\n\t\t\t\t</button>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetCancelButton(): HTMLButtonElement\n\t{\n\t\treturn this.cache.remember('cancelButton', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<button class=\"ui-btn ui-btn-xs ui-btn-light-border\">\n\t\t\t\t\t${Loc.getMessage('LANDING_FIELD_COLOR-BUTTON_CANCEL')}\n\t\t\t\t</button>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetHexPreviewObject(): Hex\n\t{\n\t\treturn this.hexPreview;\n\t}\n\n\tgetPopup(): Popup\n\t{\n\t\treturn this.cache.remember('popup', () => {\n\t\t\treturn PopupManager.create({\n\t\t\t\tid: this.popupId,\n\t\t\t\tclassName: 'landing-ui-field-color-spectrum-popup',\n\t\t\t\tautoHide: true,\n\t\t\t\tbindElement: this.hexPreview.getLayout(),\n\t\t\t\tbindOptions: {\n\t\t\t\t\tforceTop: true,\n\t\t\t\t\tforceLeft: true,\n\t\t\t\t},\n\t\t\t\tpadding: 0,\n\t\t\t\tcontentPadding: 14,\n\t\t\t\twidth: 260,\n\t\t\t\toffsetTop: -37,\n\t\t\t\toffsetLeft: -180,\n\t\t\t\tcontent: this.getPopupContent(),\n\t\t\t\tcloseByEsc: true,\n\t\t\t\ttargetContainer: this.popupTargetContainer,\n\t\t\t});\n\t\t});\n\t}\n\n\tgetValue(): ?ColorValue\n\t{\n\t\treturn this.cache.remember('value', () => {\n\t\t\treturn this.spectrum.getValue();\n\t\t});\n\t}\n\n\tonHexChange(event: BaseEvent)\n\t{\n\t\tthis.setValue(event.getData().color);\n\t\tthis.onChange(event);\n\t}\n\n\tonSpectrumChange(event: BaseEvent)\n\t{\n\t\tthis.hex.unFocus();\n\t\tthis.setValue(event.getData().color);\n\t\tthis.onChange(event);\n\t}\n\n\tonRecentChange(event: BaseEvent)\n\t{\n\t\tconst recentColor = new ColorValue(event.getData().hex);\n\t\tthis.setValue(recentColor);\n\t\tthis.onChange(new BaseEvent({data: {color: recentColor}}));\n\t}\n\n\tonCancelClick()\n\t{\n\t\tthis.setValue(this.previously);\n\t\tthis.getPopup().close();\n\t\tthis.onChange(new BaseEvent({data: {color: this.getValue()}}));\n\t}\n\n\tonPopupOpenClick()\n\t{\n\t\tthis.recent.buildItemsLayout();\n\t\tthis.previously = this.getValue();\n\t\tthis.getPopup().show();\n\t\tif (this.getPopup().isShown())\n\t\t{\n\t\t\tthis.hex.focus();\n\t\t}\n\t}\n\n\tsetValue(value: ?ColorValue)\n\t{\n\t\tif (this.isNeedSetValue(value))\n\t\t{\n\t\t\tsuper.setValue(value);\n\n\t\t\tthis.spectrum.setValue(value);\n\t\t\tthis.hex.setValue(value);\n\t\t\tthis.hexPreview.setValue(value);\n\t\t}\n\t\tthis.setActivity(value);\n\t}\n\n\tsetActivity(value: ?ColorValue)\n\t{\n\t\tif (value !== null)\n\t\t{\n\t\t\tif (this.spectrum.isActive())\n\t\t\t{\n\t\t\t\tthis.hex.unsetActive();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.hex.setActive();\n\t\t\t}\n\t\t\tthis.hexPreview.setActive();\n\t\t}\n\t}\n\n\tunsetActive(): void\n\t{\n\t\tthis.hex.unsetActive();\n\t\tthis.hexPreview.unsetActive();\n\t}\n\n\tisActive(): boolean\n\t{\n\t\treturn this.hex.isActive() || this.hexPreview.isActive();\n\t}\n}\n","import {EventEmitter} from 'main.core.events';\nimport {Cache, Tag, Event, Dom, Loc} from 'main.core';\n\nimport ColorValue from \"../../color_value\";\n\nimport 'ui.fonts.opensans';\nimport './css/primary.css';\n\nexport default class Primary extends EventEmitter\n{\n\tstatic ACTIVE_CLASS: string = 'active';\n\tstatic CSS_VAR: string = '--primary';\n\n\t// todo: layout or control?\n\tconstructor(options = {})\n\t{\n\t\tsuper();\n\t\tthis.cache = new Cache.MemoryCache();\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Color.Primary');\n\t\tEvent.bind(this.getLayout(), 'click', () => this.onClick());\n\n\t\tif (options.content && options.content === 'var(--primary)')\n\t\t{\n\t\t\tthis.setActive();\n\t\t}\n\t}\n\n\tgetLayout(): HTMLElement\n\t{\n\t\treturn this.cache.remember('layout', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"landing-ui-field-color-primary\">\n\t\t\t\t\t<i class=\"landing-ui-field-color-primary-preview\"></i>\n\t\t\t\t\t<span class=\"landing-ui-field-color-primary-text\">\n\t\t\t\t\t\t${Loc.getMessage('LANDING_FIELD_COLOR-PRIMARY_TITLE')}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetValue(): ColorValue\n\t{\n\t\treturn this.cache.remember('value', () => {\n\t\t\treturn new ColorValue(Primary.CSS_VAR);\n\t\t});\n\t}\n\n\tonClick()\n\t{\n\t\tthis.setActive();\n\t\tthis.emit('onChange', {color: this.getValue()});\n\t}\n\n\tsetActive()\n\t{\n\t\tDom.addClass(this.getLayout(), Primary.ACTIVE_CLASS);\n\t}\n\n\tunsetActive()\n\t{\n\t\tDom.removeClass(this.getLayout(), Primary.ACTIVE_CLASS);\n\t}\n\n\tisActive(): boolean\n\t{\n\t\treturn Dom.hasClass(this.getLayout(), Primary.ACTIVE_CLASS);\n\t}\n\n\tisPrimaryValue(value: ColorValue): boolean\n\t{\n\t\treturn (value !== null) && (this.getValue().getCssVar() === value.getCssVar());\n\t}\n}\n","export function regexpWoStartEnd(regexp: RegExp): RegExp\n{\n\treturn new RegExp(regexpToString(regexp));\n}\n\nexport function regexpToString(regexp: RegExp): string\n{\n\treturn regexp.source.replace(/(^\\^)|(\\$$)/g, '');\n}","import {matcherHex} from \"./is-hex\";\nimport {regexpToString} from \"./regexp\";\n\nexport const matcherGradient = /^(linear|radial)-gradient\\(.*\\)$/i;\nexport const matcherGradientAngle = /^(linear|radial)-gradient\\(.*?((\\d)+deg).*?\\)$/ig;\nconst hexMatcher = regexpToString(matcherHex);\nexport const matcherGradientColors = new RegExp(\n\t'((rgba|hsla)?\\\\([\\\\d% .,]+\\\\)|transparent|' + hexMatcher + ')+', 'ig'\n);\n// todo: whooooouuuu, is so not-good\n\n// todo: add hex greaident match\n\n// todo: for tests\n// \"linear-gradient(45deg, rgb(71, 155, 255) 0%, rgb(0, 207, 78) 100%)\"\n// \"linear-gradient(45deg, #123321 0%, #543asdbd 100%)\"\n// \"linear-gradient(rgb(71, 155, 255) 0%, rgb(0, 207, 78) 100%)\"\n// \"radial-gradient(circle farthest-side, rgb(34, 148, 215), rgb(39, 82, 150))\"\n\nexport default function isGradientString(rgbString: string): boolean\n{\n\treturn !!rgbString.trim().match(matcherGradient);\n}","import {Type, Text} from 'main.core';\n\nimport {GradientValueOptions, defaultColorValueOptions} from \"./types/color_value_options\";\nimport ColorValue from \"./color_value\";\nimport {IColorValue} from './types/i_color_value';\nimport Primary from './layout/primary/primary';\n\nimport isGradientString, {\n\tmatcherGradient,\n\tmatcherGradientAngle,\n\tmatcherGradientColors,\n} from './internal/is-gradient-string';\n\nexport default class GradientValue implements IColorValue\n{\n\tstatic TYPE_RADIAL = 'radial';\n\tstatic TYPE_LINEAR = 'linear';\n\tstatic DEFAULT_ANGLE = 180;\n\tstatic DEFAULT_TYPE = 'linear';\n\n\tvalue: GradientValueOptions;\n\n\tconstructor(value: GradientValueOptions | GradientValue | string)\n\t{\n\t\tthis.value = {\n\t\t\tfrom: new ColorValue('#ffffff'),\n\t\t\tto: new ColorValue(Primary.CSS_VAR),\n\t\t\tangle: GradientValue.DEFAULT_ANGLE,\n\t\t\ttype: GradientValue.DEFAULT_TYPE,\n\t\t};\n\t\tthis.setValue(value);\n\t}\n\n\tgetName(): string\n\t{\n\t\treturn this.value.from.getName() + '_' + this.value.to.getName() + '_' + this.getAngle() + '_' + this.getType();\n\t}\n\n\t// todo: parse grad string?\n\tsetValue(value: GradientValueOptions | GradientValue | string): GradientValue\n\t{\n\t\tif (Type.isObject(value))\n\t\t{\n\t\t\tif (value instanceof GradientValue)\n\t\t\t{\n\t\t\t\tthis.value.from = new ColorValue(value.getFrom());\n\t\t\t\tthis.value.to = new ColorValue(value.getTo());\n\t\t\t\tthis.value.angle = value.getAngle();\n\t\t\t\tthis.value.type = value.getType();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif ('from' in value)\n\t\t\t\t{\n\t\t\t\t\tthis.value.from = new ColorValue(value.from);\n\t\t\t\t}\n\t\t\t\tif ('to' in value)\n\t\t\t\t{\n\t\t\t\t\tthis.value.to = new ColorValue(value.to);\n\t\t\t\t}\n\t\t\t\tif ('angle' in value)\n\t\t\t\t{\n\t\t\t\t\tthis.value.angle = Text.toNumber(value.angle);\n\t\t\t\t}\n\t\t\t\tif ('type' in value)\n\t\t\t\t{\n\t\t\t\t\tthis.value.type = value.type;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\telse if (Type.isString(value) && isGradientString(value))\n\t\t{\n\t\t\tthis.parseGradientString(value);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tsetOpacity(opacity: number): GradientValue\n\t{\n\t\tthis.value.from.setOpacity(opacity);\n\t\tthis.value.to.setOpacity(opacity);\n\n\t\treturn this;\n\t}\n\n\tparseGradientString(value: string): viod\n\t{\n\t\tconst typeMatches = value.trim().match(matcherGradient);\n\t\tif (!!typeMatches)\n\t\t{\n\t\t\tthis.setValue({type: typeMatches[1]});\n\t\t}\n\n\t\tconst angleMatches = value.trim().match(matcherGradientAngle);\n\t\tif (!!angleMatches)\n\t\t{\n\t\t\tthis.setValue({angle: angleMatches[2]});\n\t\t}\n\n\n\t\tconst colorMatches = value.trim().match(matcherGradientColors);\n\t\tif (colorMatches && colorMatches.length > 0)\n\t\t{\n\t\t\tthis.setValue({from: new ColorValue(colorMatches[0])});\n\t\t\tthis.setValue({to: new ColorValue(colorMatches[colorMatches.length - 1])});\n\t\t}\n\t}\n\n\tgetFrom(): ColorValue\n\t{\n\t\treturn this.value.from;\n\t}\n\n\tgetTo(): ColorValue\n\t{\n\t\treturn this.value.to;\n\t}\n\n\tgetAngle(): number\n\t{\n\t\treturn this.value.angle;\n\t}\n\n\tsetAngle(angle: number)\n\t{\n\t\tif (Type.isNumber(angle))\n\t\t{\n\t\t\tthis.value.angle = Math.min(Math.max(angle, 0), 360);\n\t\t}\n\t\treturn this;\n\t}\n\n\tgetType(): string\n\t{\n\t\treturn this.value.type;\n\t}\n\n\tsetType(type: string)\n\t{\n\t\tif (type === GradientValue.TYPE_RADIAL || type === GradientValue.TYPE_LINEAR)\n\t\t{\n\t\t\tthis.value.type = type;\n\t\t}\n\t\treturn this;\n\t}\n\n\tgetOpacity(): number\n\t{\n\t\treturn (this.value.from.getOpacity() + this.value.to.getOpacity()) / 2 ?? defaultColorValueOptions.a;\n\t}\n\n\tgetStyleString(): string\n\t{\n\t\tconst angle = this.value.angle;\n\t\tconst type = this.value.type;\n\t\tconst fromString = this.value.from.getStyleString();\n\t\tconst toString = this.value.to.getStyleString();\n\n\t\treturn type === 'linear'\n\t\t\t? `linear-gradient(${angle}deg, ${fromString} 0%, ${toString} 100%)`\n\t\t\t: `radial-gradient(circle farthest-side at 50% 50%, ${fromString} 0%, ${toString} 100%)`;\n\t}\n\n\tgetStyleStringForOpacity(): string\n\t{\n\t\treturn `radial-gradient(at top left, ${this.value.from.getHex()}, transparent)`\n\t\t\t+ `, radial-gradient(at bottom left, ${this.value.to.getHex()}, transparent)`\n\t}\n\n\tstatic compare(value1: GradientValue, value2: GradientValue, full:boolean = true): boolean\n\t{\n\t\tconst base = (\n\t\t\t\tColorValue.compare(value1.getFrom(), value2.getFrom())\n\t\t\t\t&& ColorValue.compare(value1.getTo(), value2.getTo())\n\t\t\t) || (\n\t\t\t\tColorValue.compare(value1.getTo(), value2.getFrom())\n\t\t\t\t&& ColorValue.compare(value1.getFrom(), value2.getTo())\n\t\t\t);\n\t\tconst ext = full\n\t\t\t? (value1.getAngle() === value2.getAngle() && value1.getType() === value2.getType())\n\t\t\t: true;\n\n\t\treturn  base && ext;\n\t}\n}\n","import ColorValue from '../../../color_value';\nimport GradientValue from '../../../gradient_value';\n\nexport type PresetOptions = {\n\tid?: string,\n\ttype?: 'color' | 'gradient',\n\titems: [ColorValue | GradientValue],\n};\n\nexport const defaultType = 'color';\nexport const gradientType = 'gradient';","import {Cache, Dom} from 'main.core';\nimport ColorValue from '../../color_value';\nimport GradientValue from '../../gradient_value';\nimport {PresetOptions, gradientType} from './types/preset-options';\nimport hexToHsl from '../../internal/hex-to-hsl';\n\nexport default class Generator\n{\n\tstatic BITRIX_COLOR: string = '#2fc6f6';\n\n\tstatic cache = new Cache.MemoryCache();\n\tstatic defaultPresets: [] = [\n\t\t{\n\t\t\tid: 'agency',\n\t\t\titems: [\n\t\t\t\t'#ff6366', '#40191a', '#803233', '#bf4b4d', '#e65a5c', '#ffc1c2',\n\t\t\t\t'#363643', '#57dca3', '#ee76ba', '#ffa864', '#eaeaec', '#fadbdc',\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tid: 'accounting',\n\t\t\titems: [\n\t\t\t\t'#a5c33c', '#384215', '#6f8228', '#8fa834', '#b0cf40', '#dae6ae',\n\t\t\t\t'#4c4c4c', '#5d84e6', '#cd506b', '#fe6466', '#dfdfdf', '#e9f0cf',\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tid: 'app',\n\t\t\titems: [\n\t\t\t\t'#4fd2c2', '#1f524c', '#379187', '#46b8aa', '#54dece', '#c8f1ec',\n\t\t\t\t'#6639b6', '#e81c62', '#9a69ca', '#6279d8', '#ffc337', '#e9faf8',\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tid: 'architecture',\n\t\t\titems: [\n\t\t\t\t'#c94645', '#4a1919', '#8a2f2f', '#b03c3c', '#d64949', '#eec3c3',\n\t\t\t\t'#363643', '#446d90', '#a13773', '#c98145', '#eaeaec', '#f9e8e7',\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tid: 'business',\n\t\t\titems: [\n\t\t\t\t'#3949a0', '#232c61', '#313e87', '#3e4fad', '#556ced', '#d8d7dc',\n\t\t\t\t'#14122c', '#1d1937', '#a03949', '#2f295a', '#c87014', '#f4f4f5',\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tid: 'charity',\n\t\t\titems: [\n\t\t\t\t'#f5f219', '#f58419', '#f5cc19', '#a8e32a', '#f9f76a', '#fcfbb6',\n\t\t\t\t'#000000', '#262e37', '#74797f', '#e569b1', '#edeef0', '#fefedf',\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tid: 'construction',\n\t\t\titems: [\n\t\t\t\t'#f7b70b', '#382a02', '#785905', '#b88907', '#dea509', '#fdf1d1',\n\t\t\t\t'#111111', '#a3a3a3', '#f7410b', '#f70b4b', '#d6dde9', '#fef9ea',\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tid: 'consulting',\n\t\t\titems: [\n\t\t\t\t'#21a79b', '#38afa5', '#14665f', '#1c8c83', '#30f2e2', '#a9ddd9',\n\t\t\t\t'#ec4672', '#58d400', '#f0ac00', '#2d6faf', '#2da721', '#e6f5f4',\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tid: 'corporate',\n\t\t\titems: [\n\t\t\t\t'#6ab8ee', '#31556e', '#4e86ad', '#5fa3d4', '#70c1fa', '#d2e9f8',\n\t\t\t\t'#36e2c0', '#ffaa3c', '#ee6a76', '#ffa468', '#5feb99', '#ebf4fb',\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tid: 'courses',\n\t\t\titems: [\n\t\t\t\t'#6bda95', '#2c593d', '#4b9969', '#5ebf83', '#70e69d', '#c2f0d3',\n\t\t\t\t'#31556e', '#ff947d', '#738ed3', '#f791ab', '#ffb67d', '#e2f8eb',\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tid: 'event',\n\t\t\titems: [\n\t\t\t\t'#f73859', '#380d14', '#781c2b', '#b82a42', '#de334f', '#fdbbc6',\n\t\t\t\t'#151726', '#ffb553', '#30d59b', '#b265e0', '#edeef0', '#ffeaed',\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tid: 'gym',\n\t\t\titems: [\n\t\t\t\t'#6b7de0', '#2f3661', '#4d5aa1', '#5f6fc7', '#7284ed', '#e4e8fa',\n\t\t\t\t'#333333', '#ffd367', '#a37fe8', '#e06b7d', '#6dc1e0', '#f4f6fd',\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tid: 'lawyer',\n\t\t\titems: [\n\t\t\t\t'#e74c3c', '#69231b', '#a8382c', '#cf4536', '#f55240', '#f9d0cb',\n\t\t\t\t'#4e4353', '#5a505e', '#e7863c', '#38a27f', '#e2e1e3', '#fdeeec',\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tid: 'photography',\n\t\t\titems: [\n\t\t\t\t'#f7a700', '#382600', '#785200', '#b87d00', '#de9800', '#fde8ba',\n\t\t\t\t'#333333', '#0b5aa0', '#e93d18', '#06c4ed', '#3672a8', '#fff6e3',\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tid: 'restaurant',\n\t\t\titems: [\n\t\t\t\t'#e6125d', '#660829', '#a60d43', '#cc1052', '#f21361', '#facfde',\n\t\t\t\t'#0eb88e', '#00946f', '#e04292', '#9b12e6', '#bfde00', '#fef2f6',\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tid: 'shipping',\n\t\t\titems: [\n\t\t\t\t'#ff0000', '#400000', '#800000', '#bf0000', '#e60000', '#ffb4b4',\n\t\t\t\t'#333333', '#ff822a', '#d63986', '#00ac6b', '#ffb800', '#fff3f3',\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tid: 'spa',\n\t\t\titems: [\n\t\t\t\t'#9dba04', '#313b01', '#667a02', '#86a103', '#a6c704', '#e4ecb9',\n\t\t\t\t'#ba7c04', '#cf54bb', '#049dba', '#1d7094', '#eead2f', '#f2f6dd',\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tid: 'travel',\n\t\t\titems: [\n\t\t\t\t'#ee4136', '#6e1f19', '#ad3128', '#d43c31', '#fa4639', '#fef1f0',\n\t\t\t\t'#31353e', '#3e434d', '#ee8036', '#428abc', '#eaebec', '#c3c4c7',\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tid: 'wedding',\n\t\t\titems: [\n\t\t\t\t'#d65779', '#572431', '#963e55', '#bd4d6b', '#e35d81', '#f7dfe5',\n\t\t\t\t'#af58a7', '#6bc34b', '#ec8c60', '#50a098', '#57b9d6', '#fdf4f6',\n\t\t\t],\n\t\t},\n\t];\n\n\tstatic getDefaultPresets(): PresetOptions[]\n\t{\n\t\treturn Generator.cache.remember('default', () => {\n\t\t\tconst presets = [];\n\t\t\tGenerator.defaultPresets.forEach(preset => {\n\t\t\t\tpresets.push({\n\t\t\t\t\tid: preset.id,\n\t\t\t\t\ttype: 'color',\n\t\t\t\t\titems: preset.items.map(item => new ColorValue(hexToHsl(item))),\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn presets;\n\t\t});\n\t}\n\n\tstatic getPrimaryColorPreset(): PresetOptions\n\t{\n\t\treturn this.cache.remember('primary', () => {\n\t\t\tconst preset = {\n\t\t\t\tid: 'defaultPrimary',\n\t\t\t\titems: [],\n\t\t\t};\n\t\t\tconst primary = new ColorValue(Dom.style(document.documentElement, '--primary').trim());\n\t\t\tpreset.items.push(new ColorValue(primary));\n\n\t\t\tif (primary.getHsl().s <= 10)\n\t\t\t{\n\t\t\t\tconst lBeforeCount = (primary.getHsl().l > 50)\n\t\t\t\t\t? Math.ceil(primary.getHsl().l / 100 * 5)\n\t\t\t\t\t: Math.floor(primary.getHsl().l / 100 * 5);\n\t\t\t\tconst lAfterCount = 5 - lBeforeCount;\n\t\t\t\tconst deltaLBefore = primary.getHsl().l / (lBeforeCount + 1);\n\t\t\t\tconst deltaLAfter = (100 - primary.getHsl().l) / (lAfterCount + 1);\n\t\t\t\tfor (let i = 1; i <= lBeforeCount; i++)\n\t\t\t\t{\n\t\t\t\t\tpreset.items.push(new ColorValue(primary).darken(deltaLBefore * i));\n\t\t\t\t}\n\t\t\t\tfor (let ii = 1; ii <= lAfterCount; ii++)\n\t\t\t\t{\n\t\t\t\t\tpreset.items.push(new ColorValue(primary).lighten(deltaLAfter * ii));\n\t\t\t\t}\n\n\t\t\t\tconst deltaBitrixL = 15;\n\t\t\t\tconst deltaBitrixS = 15;\n\t\t\t\tconst bitrixColor = new ColorValue(Generator.BITRIX_COLOR);\n\t\t\t\tpreset.items[6] = new ColorValue(bitrixColor);\n\n\t\t\t\tpreset.items[7] = new ColorValue(bitrixColor.darken(deltaBitrixL).saturate(deltaBitrixS));\n\t\t\t\tpreset.items[8] = new ColorValue(bitrixColor.darken(deltaBitrixL).saturate(deltaBitrixS));\n\t\t\t\tbitrixColor.lighten(deltaBitrixL * 2).desaturate(deltaBitrixS * 2);\n\n\t\t\t\tpreset.items[9] = new ColorValue(bitrixColor.lighten(deltaBitrixL).desaturate(deltaBitrixS));\n\t\t\t\tpreset.items[10] = new ColorValue(bitrixColor.lighten(deltaBitrixL).desaturate(deltaBitrixS));\n\t\t\t\tbitrixColor.darken(deltaBitrixL * 2).saturate(deltaBitrixS * 2);\n\n\t\t\t\tpreset.items[11] = new ColorValue(bitrixColor).adjustHue(180);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tconst deltaL = (90 - primary.getHsl().l) / 3;\n\t\t\t\tconst deltaL2 = (primary.getHsl().l - 10) / 3;\n\t\t\t\tconst deltaS = (90 - primary.getHsl().s) / 3;\n\t\t\t\tconst deltaS2 = (primary.getHsl().s - 10) / 3;\n\n\t\t\t\tpreset.items[1] = new ColorValue(primary.darken(deltaL2).saturate(deltaS));\n\t\t\t\tpreset.items[2] = new ColorValue(primary.darken(deltaL2).saturate(deltaS));\n\t\t\t\tpreset.items[3] = new ColorValue(primary.darken(deltaL2).saturate(deltaS));\n\t\t\t\tprimary.lighten(deltaL2 * 3).desaturate(deltaS * 3);\n\n\t\t\t\tpreset.items[4] = new ColorValue(primary.desaturate(deltaS2).lighten(deltaL));\n\t\t\t\tpreset.items[5] = new ColorValue(primary.desaturate(deltaS2).lighten(deltaL));\n\t\t\t\tpreset.items[11] = new ColorValue(primary.desaturate(deltaS2).lighten(deltaL));\n\t\t\t\tprimary.saturate(deltaS2 * 3).darken(deltaL * 3);\n\n\t\t\t\tpreset.items[7] = new ColorValue(primary.adjustHue(40));\n\t\t\t\tpreset.items[8] = new ColorValue(primary.adjustHue(-80));\n\t\t\t\tpreset.items[9] = new ColorValue(primary.adjustHue(180));\n\t\t\t\tpreset.items[6] = new ColorValue(primary.adjustHue(40));\n\t\t\t\tpreset.items[10] = new ColorValue(primary.adjustHue(40));\n\t\t\t}\n\t\t\treturn preset;\n\t\t});\n\t}\n\n\tstatic getBlackAndWhitePreset(): PresetOptions\n\t{\n\t\treturn this.cache.remember('blackAndWhite', () => {\n\t\t\tconst preset = {\n\t\t\t\tid: 'blackAndWhite',\n\t\t\t\titems: [],\n\t\t\t};\n\t\t\tconst start = new ColorValue('#ffffff');\n\n\t\t\tpreset.items.push(new ColorValue(start));\n\t\t\tpreset.items.push(new ColorValue(start.darken(14.28)));\n\t\t\tpreset.items.push(new ColorValue(start.darken(14.28)));\n\t\t\tpreset.items.push(new ColorValue(start.darken(14.28)));\n\t\t\tpreset.items.push(new ColorValue(start.darken(14.28)));\n\t\t\tpreset.items.push(new ColorValue(start.darken(14.28)));\n\t\t\tpreset.items.push(new ColorValue(start.darken(14.28)));\n\t\t\tpreset.items.push(new ColorValue(start.darken(14.32)));\n\n\t\t\treturn preset;\n\t\t});\n\t}\n\n\tstatic getGradientByColorOptions(options: PresetOptions): PresetOptions\n\t{\n\t\tconst items = [];\n\t\tconst pairs = [\n\t\t\t[1, 2],\n\t\t\t[1, 4],\n\t\t\t[5, 12],\n\t\t\t[1, 8],\n\t\t\t[8, 9],\n\t\t\t[1, 9],\n\t\t\t[10, 7],\n\t\t\t[7, 11],\n\t\t];\n\t\tpairs.forEach(pair => {\n\t\t\titems.push(new GradientValue({\n\t\t\t\tfrom: new ColorValue(options.items[pair[0] - 1]),\n\t\t\t\tto: new ColorValue(options.items[pair[1] - 1]),\n\t\t\t\tangle: GradientValue.DEFAULT_ANGLE,\n\t\t\t\ttype: GradientValue.DEFAULT_TYPE,\n\t\t\t}));\n\t\t});\n\n\t\treturn {\n\t\t\ttype: gradientType,\n\t\t\titems: items,\n\t\t};\n\t}\n}\n","import {Tag, Dom, Event, Type, Cache} from 'main.core';\nimport {EventEmitter} from 'main.core.events';\n\nimport {IColorValue} from '../../types/i_color_value';\nimport ColorValue from '../../color_value';\nimport GradientValue from '../../gradient_value';\nimport {PresetOptions, defaultType, gradientType} from './types/preset-options';\nimport Generator from './generator';\n\nimport './css/preset.css';\n\nexport default class Preset extends EventEmitter\n{\n\tid: string;\n\ttype: 'color' | 'gradient';\n\titems: [ColorValue | GradientValue];\n\tactiveItem: string | IColorValue | null;\n\n\tstatic ACTIVE_CLASS: string = 'active';\n\n\tconstructor(options: PresetOptions)\n\t{\n\t\tsuper();\n\t\tthis.cache = new Cache.MemoryCache();\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Color.Preset');\n\n\t\tthis.id = options.id;\n\t\tthis.type = options.type || defaultType;\n\t\tthis.items = options.items;\n\t\tthis.activeItem = null;\n\t}\n\n\tgetId(): string\n\t{\n\t\treturn this.id;\n\t}\n\n\tgetGradientPreset(): Preset\n\t{\n\t\tconst options = (this.type === gradientType)\n\t\t\t? {type: gradientType, items: this.items}\n\t\t\t: Generator.getGradientByColorOptions({items: this.items});\n\n\t\treturn new Preset(options);\n\t}\n\n\tgetLayout(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('layout', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"landing-ui-field-color-preset\">\n\t\t\t\t\t${this.items.map((item) => {\n\t\t\t\t\t\treturn this.getItemLayout(item.getName());\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetItemLayout(name: string): HTMLDivElement\n\t{\n\t\treturn this.cache.remember(name, () => {\n\t\t\tconst color = this.getItemByName(name);\n\t\t\tconst style = Type.isString(color) ? color : color.getStyleString();\n\t\t\tconst item = Tag.render`\n\t\t\t\t<div\n\t\t\t\t\tclass=\"landing-ui-field-color-preset-item\"\n\t\t\t\t\tstyle=\"background: ${style}\"\n\t\t\t\t\tdata-name=\"${name}\"\n\t\t\t\t></div>\n\t\t\t`;\n\t\t\tEvent.bind(item, 'click', this.onItemClick.bind(this));\n\n\t\t\treturn item;\n\t\t});\n\t}\n\n\tgetItemByName(name: string): string | IColorValue | null\n\t{\n\t\treturn this.items.find(item => name === item.getName()) || null;\n\t}\n\n\tisPresetValue(value: ColorValue | GradientValue | null): boolean\n\t{\n\t\tif (value === null)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\t\treturn this.items.some(item => {\n\t\t\tif (item instanceof ColorValue && value instanceof ColorValue)\n\t\t\t{\n\t\t\t\treturn ColorValue.compare(item, new ColorValue(value).setOpacity(1));\n\t\t\t}\n\t\t\telse if (item instanceof GradientValue && value instanceof GradientValue)\n\t\t\t{\n\t\t\t\treturn GradientValue.compare(item, value, false);\n\t\t\t}\n\t\t\treturn false;\n\t\t});\n\t}\n\n\tonItemClick(event: MouseEvent)\n\t{\n\t\tthis.setActiveItem(event.currentTarget.dataset.name);\n\n\t\tlet value = null;\n\t\tif (this.activeItem !== null)\n\t\t{\n\t\t\tvalue = this.activeItem instanceof GradientValue\n\t\t\t\t? new GradientValue(this.activeItem)\n\t\t\t\t: new ColorValue(this.activeItem);\n\t\t}\n\n\t\tthis.emit('onChange', {color: value});\n\t}\n\n\tsetActiveItem(name: string)\n\t{\n\t\tthis.activeItem = this.getItemByName(name);\n\n\t\tthis.items.forEach((item) => {\n\t\t\tconst itemName = item.getName();\n\t\t\tif (name === itemName)\n\t\t\t{\n\t\t\t\tDom.addClass(this.getItemLayout(itemName), Preset.ACTIVE_CLASS);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tDom.removeClass(this.getItemLayout(itemName), Preset.ACTIVE_CLASS);\n\t\t\t}\n\t\t});\n\t}\n\n\tsetActiveValue(value: ColorValue | GradientValue | null)\n\t{\n\t\tif (value !== null)\n\t\t{\n\t\t\tif (value instanceof GradientValue)\n\t\t\t{\n\t\t\t\tthis.setActiveItem(\n\t\t\t\t\tnew GradientValue(value)\n\t\t\t\t\t\t.setAngle(GradientValue.DEFAULT_ANGLE)\n\t\t\t\t\t\t.setType(GradientValue.DEFAULT_TYPE)\n\t\t\t\t\t\t.getName()\n\t\t\t\t);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.setActiveItem(\n\t\t\t\t\tnew ColorValue(value)\n\t\t\t\t\t\t.setOpacity(1)\n\t\t\t\t\t\t.getName()\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tunsetActive()\n\t{\n\t\tthis.items.forEach(item => {\n\t\t\tDom.removeClass(this.getItemLayout(item.getName()), Preset.ACTIVE_CLASS);\n\t\t});\n\t}\n\n\tisActive(): boolean\n\t{\n\t\treturn this.items.some(item => {\n\t\t\treturn Dom.hasClass(this.getItemLayout(item.getName()), Preset.ACTIVE_CLASS);\n\t\t});\n\t}\n}","import 'ui.design-tokens';\nimport 'ui.fonts.opensans';\n\nimport {Tag, Text, Dom, Event, Type, Cache, Loc} from 'main.core';\nimport {BaseEvent, EventEmitter} from 'main.core.events';\nimport {Popup, PopupManager} from 'main.popup';\n\nimport ColorValue from '../../color_value';\nimport GradientValue from '../../gradient_value';\nimport Generator from \"./generator\";\n\nimport './css/preset_collection.css';\nimport {PresetOptions} from \"./types/preset-options\";\nimport Preset from \"./preset\";\n\nexport default class PresetCollection extends EventEmitter\n{\n\tstatic globalActiveId: number | string | null = null;\n\n\tpopupId: string;\n\tpopupTargetContainer: ?HTMLElement;\n\tpresets: {\n\t\t[id: string]: PresetOptions\n\t} = {};\n\tactiveId: number | string | null = null;\n\n\tstatic ACTIVE_CLASS: string = 'active';\n\n\tconstructor(options)\n\t{\n\t\tsuper();\n\t\tthis.cache = new Cache.MemoryCache();\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Color.PresetCollection');\n\t\tthis.popupId = 'presets-popup_' + Text.getRandom();\n\t\tthis.popupTargetContainer = options.contentRoot;\n\n\t\tthis.onPresetClick = this.onPresetClick.bind(this);\n\t\tEvent.bind(this.getOpenButton(), 'click', () => {\n\t\t\tthis.getPopup().toggle();\n\t\t});\n\t\tthis.onPresetChangeGlobal = this.onPresetChangeGlobal.bind(this);\n\t\tEventEmitter.subscribe('BX.Landing.UI.Field.Color.PresetCollection:onChange', this.onPresetChangeGlobal);\n\t}\n\n\taddDefaultPresets()\n\t{\n\t\tthis.addPreset(Generator.getPrimaryColorPreset());\n\t\tGenerator.getDefaultPresets().map((item) => {\n\t\t\tthis.addPreset(item);\n\t\t});\n\t}\n\n\taddPreset(options: PresetOptions)\n\t{\n\t\tthis.cache.delete('popupLayout');\n\t\tif (!Object.keys(this.presets).length || !(options.id in this.presets))\n\t\t{\n\t\t\tthis.presets[options.id] = options;\n\t\t}\n\t}\n\n\tgetGlobalActiveId(): number | string | null\n\t{\n\t\treturn PresetCollection.globalActiveId;\n\t}\n\n\tgetActiveId(): number | string\n\t{\n\t\treturn this.getGlobalActiveId() || this.getDefaultPreset().getId();\n\t}\n\n\tgetActivePreset(): Preset\n\t{\n\t\treturn this.getPresetById(this.getActiveId());\n\t}\n\n\tgetDefaultPreset(): ?Preset\n\t{\n\t\treturn Object.keys(this.presets).length\n\t\t\t? this.getPresetById(Object.keys(this.presets)[0])\n\t\t\t: null;\n\t}\n\n\tgetPresetById(id: number | string): ?Preset\n\t{\n\t\tif (id in this.presets)\n\t\t{\n\t\t\treturn this.cache.remember(id, () => new Preset(this.presets[id]));\n\t\t}\n\t\telse\n\t\t{\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tgetPresetByItemValue(value: ColorValue | GradientValue | null): ?Preset\n\t{\n\t\tif (value === null)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\tfor (let id in this.presets)\n\t\t{\n\t\t\tconst preset = this.getPresetById(id);\n\t\t\tif (preset && value instanceof ColorValue)\n\t\t\t{\n\t\t\t\tif (preset.isPresetValue(value))\n\t\t\t\t{\n\t\t\t\t\treturn preset;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (preset && value instanceof GradientValue)\n\t\t\t{\n\t\t\t\tif (preset.getGradientPreset().isPresetValue(value))\n\t\t\t\t{\n\t\t\t\t\treturn preset;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tgetLayout(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('value', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"landing-ui-field-color-presets\">\n\t\t\t\t\t<div class=\"landing-ui-field-color-presets-left\">\n\t\t\t\t\t\t<span class=\"landing-ui-field-color-presets-title\">\n\t\t\t\t\t\t\t${Loc.getMessage('LANDING_FIELD_COLOR-PRESETS_TITLE')}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"landing-ui-field-color-presets-right\">${this.getOpenButton()}</div>\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetOpenButton(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('openButton', () => {\n\t\t\treturn Tag.render`<span class=\"landing-ui-field-color-presets-open\">\n\t\t\t\t${Loc.getMessage('LANDING_FIELD_COLOR-PRESETS_MORE')}\n\t\t\t</span>`;\n\t\t});\n\t}\n\n\tgetTitleContainer(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('titleContainer', () => {\n\t\t\treturn this.getLayout().querySelector('.landing-ui-field-color-presets-left');\n\t\t});\n\t}\n\n\tgetPopup(): Popup\n\t{\n\t\t// todo: bind to event target? or need button\n\t\treturn this.cache.remember('popup', () => {\n\t\t\treturn PopupManager.create({\n\t\t\t\tid: this.popupId,\n\t\t\t\tclassName: 'presets-popup',\n\t\t\t\tautoHide: true,\n\t\t\t\tbindElement: this.getOpenButton(),\n\t\t\t\tbindOptions: {\n\t\t\t\t\tforceTop: true,\n\t\t\t\t\tforceLeft: true,\n\t\t\t\t},\n\t\t\t\twidth: 280,\n\t\t\t\toffsetLeft: -200,\n\t\t\t\tcontent: this.getPopupLayout(),\n\t\t\t\tcloseByEsc: true,\n\t\t\t\ttargetContainer: this.popupTargetContainer,\n\t\t\t});\n\t\t});\n\t}\n\n\tgetPopupLayout(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('popupLayout', () => {\n\t\t\tconst layouts = Tag.render`<div class=\"landing-ui-field-color-presets-popup\">\n\t\t\t\t<div class=\"landing-ui-field-color-presets-popup-title\">\n\t\t\t\t\t${Loc.getMessage('LANDING_FIELD_COLOR-PRESETS_MORE_COLORS')}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"landing-ui-field-color-presets-popup-inner\"></div>\n\t\t\t</div>`;\n\t\t\tconst innerLayouts = layouts.querySelector('.landing-ui-field-color-presets-popup-inner');\n\t\t\tfor (const presetId in this.presets)\n\t\t\t{\n\t\t\t\tconst layout = this.getPresetLayout(presetId);\n\t\t\t\tif (presetId === this.getActiveId())\n\t\t\t\t{\n\t\t\t\t\tDom.addClass(layout, PresetCollection.ACTIVE_CLASS);\n\t\t\t\t\tthis.activeId = presetId;\n\t\t\t\t}\n\t\t\t\tEvent.bind(layout, 'click', this.onPresetClick);\n\t\t\t\tDom.append(layout, innerLayouts);\n\t\t\t}\n\n\t\t\treturn layouts;\n\t\t});\n\t}\n\n\tgetPresetLayout(presetId: string | number): HTMLDivElement\n\t{\n\t\treturn this.cache.remember(presetId + 'layout', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"landing-ui-field-color-presets-preset\" data-id=\"${presetId}\">\n\t\t\t\t\t${\n\t\t\t\t\t\tthis.presets[presetId].items.map((item) => {\n\t\t\t\t\t\t\treturn Tag.render`<div\n\t\t\t\t\t\t\t\tclass=\"landing-ui-field-color-presets-preset-item\"\n\t\t\t\t\t\t\t\tstyle=\"background: ${Type.isString(item) ? item : item.getStyleString()}\"\n\t\t\t\t\t\t\t></div>`;\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n\n\tonPresetClick(event: MouseEvent)\n\t{\n\t\tthis.getPopup().close();\n\t\tthis.setActiveItem(event.currentTarget.dataset.id);\n\t\tthis.emit('onChange', {presetId: this.getActiveId()});\n\t}\n\n\tonPresetChangeGlobal(event: BaseEvent)\n\t{\n\t\tif (event.getData().presetId !== this.activeId)\n\t\t{\n\t\t\tthis.setActiveItem(event.getData().presetId);\n\t\t\tthis.emit('onChange', event);\n\t\t}\n\t}\n\n\tsetActiveItem(presetId: string)\n\n\t{\n\t\tif (\n\t\t\tpresetId !== null\n\t\t\t&& presetId !== this.activeId\n\t\t)\n\t\t{\n\t\t\tPresetCollection.globalActiveId = presetId;\n\t\t\tthis.activeId = presetId;\n\t\t\tfor (const id in this.presets)\n\t\t\t{\n\t\t\t\tDom.removeClass(this.getPresetLayout(id), PresetCollection.ACTIVE_CLASS);\n\t\t\t\tif (id === presetId)\n\t\t\t\t{\n\t\t\t\t\tDom.addClass(this.getPresetLayout(id), PresetCollection.ACTIVE_CLASS);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tunsetActive()\n\t{\n\t\tfor (const presetId in this.presets)\n\t\t{\n\t\t\tDom.removeClass(this.getPresetLayout(presetId), PresetCollection.ACTIVE_CLASS);\n\t\t}\n\t}\n}\n","import {EventEmitter} from 'main.core.events';\nimport {Cache, Tag, Event, Loc, Text} from 'main.core';\n\nimport './css/reset.css';\n\nexport default class Reset extends EventEmitter\n{\n\tconstructor(options)\n\t{\n\t\tsuper();\n\t\tthis.options = options;\n\t\tthis.cache = new Cache.MemoryCache();\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Color.Reset');\n\t\tEvent.bind(this.getLayout(), 'click', () => this.onClick());\n\n\t\tconst hint = BX.UI.Hint.createInstance({\n\t\t\tpopupParameters: {\n\t\t\t\ttargetContainer: options.contentRoot,\n\t\t\t\tpadding: 0,\n\t\t\t}\n\t\t});\n\t\thint.init(this.getLayout());\n\t}\n\n\tgetLayout(): HTMLElement\n\t{\n\t\tif (this.options && !this.options.styleNode)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this.cache.remember('layout', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"landing-ui-field-color-reset-container\">\n\t\t\t\t\t<div class=\"landing-ui-field-color-reset\"\n\t\t\t\t\t\tdata-hint=\"${Loc.getMessage('LANDING_FIELD_COLOR-RESET_HINT_2')}\"\n\t\t\t\t\t\tdata-hint-no-icon\n\t\t\t\t\t>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n\n\tonClick()\n\t{\n\t\tthis.emit('onReset');\n\t}\n}\n","import {Dom, Tag, Type} from 'main.core';\nimport {BaseEvent} from \"main.core.events\";\n\nimport BaseControl from '../base_control/base_control';\nimport ColorValue from \"../../color_value\";\nimport Colorpicker from \"../colorpicker/colorpicker\";\nimport Preset from '../../layout/preset/preset';\nimport PresetCollection from '../../layout/preset/preset_collection';\nimport Reset from '../../layout/reset/reset';\nimport hexToHsl from '../../internal/hex-to-hsl';\nimport hslStringToHsl from '../../internal/hsl-string-to-hsl';\n\nimport Generator from '../../layout/preset/generator';\nimport './css/color_set.css';\n\nexport default class ColorSet extends BaseControl\n{\n\tconstructor(options)\n\t{\n\t\tsuper();\n\t\tthis.options = options;\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Color.ColorSet');\n\n\t\tthis.reset = new Reset(options);\n\t\tthis.reset.subscribe('onReset', () => {\n\t\t\tthis.emit('onReset');\n\t\t});\n\n\t\tthis.blackAndWhitePreset = new Preset(Generator.getBlackAndWhitePreset());\n\t\tthis.blackAndWhitePreset.subscribe('onChange', (event) => {\n\t\t\tthis.preset.unsetActive();\n\t\t\tthis.onPresetItemChange(event);\n\t\t});\n\n\t\tthis.colorpicker = new Colorpicker(options);\n\t\tthis.colorpicker.subscribe('onChange', (event) => {\n\t\t\tthis.preset.unsetActive();\n\t\t\tthis.blackAndWhitePreset.unsetActive();\n\n\t\t\tconst color = event.getData().color;\n\t\t\tif (this.preset.isPresetValue(color))\n\t\t\t{\n\t\t\t\tthis.preset.setActiveValue(color);\n\t\t\t\tthis.colorpicker.unsetActive();\n\t\t\t}\n\t\t\telse if (this.blackAndWhitePreset.isPresetValue(color))\n\t\t\t{\n\t\t\t\tthis.blackAndWhitePreset.setActiveValue(color);\n\t\t\t\tthis.colorpicker.unsetActive();\n\t\t\t}\n\n\t\t\tthis.onChange(event);\n\t\t});\n\n\t\tthis.presets = new PresetCollection(options);\n\t\tthis.presets.subscribe('onChange', (event) => {\n\t\t\tthis.setPreset(this.presets.getPresetById(event.getData().presetId));\n\t\t});\n\t\tthis.presets.addDefaultPresets();\n\t\tconst preset = this.presets.getActivePreset();\n\t\tif (preset)\n\t\t{\n\t\t\tthis.setPreset(preset);\n\t\t}\n\t}\n\n\tbuildLayout(): HTMLDivElement\n\t{\n\t\tDom.append(this.reset.getLayout(), this.presets.getTitleContainer());\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"landing-ui-field-color-colorset\">\n\t\t\t\t<div class=\"landing-ui-field-color-colorset-top\">\n\t\t\t\t\t${this.presets.getLayout()}\n\t\t\t\t</div>\n\t\t\t\t${this.getPresetContainer()}\n\t\t\t\t<div class=\"landing-ui-field-color-colorset-bottom\">\n\t\t\t\t\t${this.blackAndWhitePreset.getLayout()}\n\t\t\t\t\t${this.colorpicker.getLayout()}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetTitleLayout(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('titleLayout', () => {\n\t\t\treturn this.getLayout().querySelector('.landing-ui-field-color-colorset-title');\n\t\t});\n\t}\n\n\tgetPresetContainer(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('presetContainer', () => {\n\t\t\treturn Tag.render`<div class=\"landing-ui-field-color-colorset-preset-container\"></div>`;\n\t\t});\n\t}\n\n\tsetPreset(preset: Preset)\n\t{\n\t\tthis.preset = preset;\n\t\tthis.preset.unsetActive();\n\t\tif (this.getValue() !== null && this.preset.isPresetValue(this.getValue()))\n\t\t{\n\t\t\tthis.unsetActive();\n\t\t\tthis.preset.setActiveValue(this.getValue());\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.unsetActive();\n\t\t\tthis.colorpicker.setValue(this.getValue());\n\t\t}\n\n\t\tif (this.getValue() === null && this.options.content)\n\t\t{\n\t\t\tthis.setColorFromContent();\n\t\t}\n\n\t\tthis.preset.subscribe('onChange', (event) => {\n\t\t\tthis.blackAndWhitePreset.unsetActive();\n\t\t\tthis.onPresetItemChange(event);\n\t\t});\n\n\t\tDom.clean(this.getPresetContainer());\n\t\tDom.append(preset.getLayout(), this.getPresetContainer());\n\n\t\tthis.emit('onPresetChange', {preset: preset});\n\t}\n\n\tgetPreset(): ?Preset\n\t{\n\t\treturn this.preset;\n\t}\n\n\tgetPresetsCollection(): ?PresetCollection\n\t{\n\t\treturn this.presets;\n\t}\n\n\tonPresetItemChange(event: BaseEvent)\n\t{\n\t\tthis.colorpicker.setValue(event.getData().color);\n\t\tthis.colorpicker.unsetActive();\n\t\tthis.onChange(event);\n\t}\n\n\tonChange(event: ?BaseEvent)\n\t{\n\t\tthis.cache.set('value', event.getData().color);\n\t\tthis.emit('onChange', event);\n\t}\n\n\tgetValue(): ?ColorValue\n\t{\n\t\treturn this.cache.remember('value', () => {\n\t\t\treturn this.colorpicker.getValue();\n\t\t});\n\t}\n\n\tsetValue(value: ?ColorValue)\n\t{\n\t\tif (this.isNeedSetValue(value))\n\t\t{\n\t\t\tsuper.setValue(value);\n\t\t\tthis.colorpicker.setValue(value);\n\n\t\t\tconst activePreset =\n\t\t\t\tthis.presets.getGlobalActiveId()\n\t\t\t\t\t? this.presets.getPresetById(this.presets.getGlobalActiveId())\n\t\t\t\t\t: this.presets.getPresetByItemValue(value);\n\t\t\tif (activePreset !== null)\n\t\t\t{\n\t\t\t\tthis.setPreset(activePreset);\n\t\t\t\tthis.presets.setActiveItem(activePreset.getId());\n\t\t\t}\n\n\t\t\tif (value !== null && this.blackAndWhitePreset.isPresetValue(value))\n\t\t\t{\n\t\t\t\tthis.unsetActive();\n\t\t\t\tthis.blackAndWhitePreset.setActiveValue(value);\n\t\t\t}\n\t\t}\n\t}\n\n\tunsetActive(): void\n\t{\n\t\tthis.preset.unsetActive();\n\t\tthis.blackAndWhitePreset.unsetActive();\n\t\tthis.colorpicker.unsetActive();\n\t}\n\n\tisActive(): boolean\n\t{\n\t\treturn this.preset.isActive() || this.blackAndWhitePreset.isActive() || this.colorpicker.isActive();\n\t}\n\n\tsetColorFromContent(): void\n\t{\n\t\tconst contentValue = this.options.content;\n\t\tlet contentHslColor = '';\n\t\tif (contentValue.startsWith('#'))\n\t\t{\n\t\t\tcontentHslColor = hexToHsl(contentValue);\n\t\t}\n\n\t\tif (contentValue.startsWith('hsl'))\n\t\t{\n\t\t\tcontentHslColor = hslStringToHsl(contentValue);\n\t\t}\n\n\t\tif (Type.isObject(contentHslColor))\n\t\t{\n\t\t\tconst contentColorValue = new ColorValue({\n\t\t\t\th: contentHslColor.h,\n\t\t\t\ts: contentHslColor.s,\n\t\t\t\tl: contentHslColor.l,\n\t\t\t\ta: contentHslColor.a,\n\t\t\t});\n\t\t\tthis.unsetActive();\n\t\t\tthis.colorpicker.setValue(contentColorValue);\n\t\t}\n\t}\n}\n","import 'ui.design-tokens';\n\nimport {Dom, Event, Tag, Text, Type} from 'main.core';\nimport {IColorValue} from '../../types/i_color_value';\nimport ColorValue from \"../../color_value\";\nimport './css/opacity.css';\nimport BaseControl from \"../base_control/base_control\";\nimport {PageObject} from 'landing.pageobject';\n\nexport default class Opacity extends BaseControl\n{\n\tstatic +DEFAULT_COLOR: string = '#cccccc';\n\tstatic +DEFAULT_OPACITY: string = 1;\n\n\tconstructor(options: {})\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Color.Opacity');\n\n\t\tthis.defaultOpacity = (Type.isObject(options) && Reflect.has(options, 'defaultOpacity'))\n\t\t\t? options.defaultOpacity\n\t\t\t: Opacity.DEFAULT_OPACITY;\n\n\t\tthis.document = PageObject.getRootWindow().document;\n\n\t\tthis.onPickerDragStart = this.onPickerDragStart.bind(this);\n\t\tthis.onPickerDragMove = this.onPickerDragMove.bind(this);\n\t\tthis.onPickerDragEnd = this.onPickerDragEnd.bind(this);\n\t\tthis.layout = this.getLayout();\n\t\tthis.pickerControl = this.layout .querySelector('.landing-ui-field-color-opacity');\n\t\tthis.rangeControl = this.layout .querySelector('.landing-ui-field-color-opacity-range-output');\n\t\tthis.arrowsUp = this.rangeControl.querySelector('.landing-ui-field-color-opacity-range-output-arrows-up');\n\t\tthis.arrowsDown = this.rangeControl.querySelector('.landing-ui-field-color-opacity-range-output-arrows-down');\n\t\tthis.rangeInput = this.rangeControl.querySelector('.landing-ui-field-color-opacity-range-output-input');\n\t\tEvent.bind(this.arrowsUp, 'click', this.onArrowClick.bind(this, 'up'));\n\t\tEvent.bind(this.arrowsDown, 'click', this.onArrowClick.bind(this, 'down'));\n\t\tEvent.bind(this.pickerControl, 'mousedown', this.onPickerDragStart);\n\t}\n\n\tbuildLayout(): HTMLDivElement\n\t{\n\t\tconst defaultOpacityValue = this.defaultOpacity * 100;\n\t\tconst layout = Tag.render`\n\t\t\t<div class=\"landing-ui-field-color-opacity-container\">\n\t\t\t\t<div class=\"landing-ui-field-color-opacity\">\n\t\t\t\t\t${this.getPicker()}\n\t\t\t\t\t${this.getColorLayout()}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"landing-ui-field-color-opacity-range-output\">\n\t\t\t\t\t<div \n\t\t\t\t\t\tclass=\"landing-ui-field-color-opacity-range-output-input\"\n\t\t\t\t\t\ttitle=\"${defaultOpacityValue}\">\n\t\t\t\t\t\t${defaultOpacityValue}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"landing-ui-field-color-opacity-range-output-arrows\">\n\t\t\t\t\t\t<div class=\"landing-ui-field-color-opacity-range-output-arrows-up\"></div>\n\t\t\t\t\t\t<div class=\"landing-ui-field-color-opacity-range-output-arrows-down\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t\tthis.setPickerPosByOpacity(this.defaultOpacity);\n\n\t\treturn layout;\n\t}\n\n\tonPickerDragStart(event: MouseEvent)\n\t{\n\t\tif (event.ctrlKey || event.metaKey || event.button)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tEvent.bind(this.document, 'mousemove', this.onPickerDragMove);\n\t\tEvent.bind(this.document, 'mouseup', this.onPickerDragEnd);\n\n\t\tDom.addClass(this.document.body, 'landing-ui-field-color-draggable');\n\n\t\tthis.onPickerDragMove(event);\n\t}\n\n\tonPickerDragMove(event: MouseEvent)\n\t{\n\t\tif (event.target === this.getPicker())\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tthis.setPickerPos(event.pageX);\n\t\tthis.onChange();\n\t\tthis.onRangeControlChange();\n\t}\n\n\tonPickerDragEnd()\n\t{\n\t\tEvent.unbind(this.document, 'mousemove', this.onPickerDragMove);\n\t\tEvent.unbind(this.document, 'mouseup', this.onPickerDragEnd);\n\n\t\tDom.removeClass(this.document.body, 'landing-ui-field-color-draggable');\n\t}\n\n\t/**\n\t * Set picker by absolute page coords\n\t * @param x\n\t */\n\tsetPickerPos(x: number)\n\t{\n\t\tconst leftPos = Math.max(Math.min((x - this.getLayoutRect().left), this.getLayoutRect().width), 0);\n\t\tDom.style(this.getPicker(), {\n\t\t\tleft: `${leftPos}px`,\n\t\t});\n\t}\n\n\tsetPickerPosByOpacity(opacity: number)\n\t{\n\t\topacity = Math.min(1, Math.max(0, opacity));\n\t\tDom.style(this.getPicker(), {\n\t\t\tleft: `${(opacity * 100)}%`,\n\t\t});\n\t}\n\n\tgetLayoutRect(): {}\n\t{\n\t\treturn this.cache.remember('layoutSize', () => {\n\t\t\tconst layoutRect = this.pickerControl.getBoundingClientRect();\n\t\t\treturn {\n\t\t\t\twidth: layoutRect.width,\n\t\t\t\tleft: layoutRect.left,\n\t\t\t};\n\t\t});\n\t}\n\n\tgetColorLayout(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('colorLayout', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"landing-ui-field-color-opacity-color\"></div>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetPicker(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('picker', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"landing-ui-field-color-opacity-picker\">\n\t\t\t\t\t<div class=\"landing-ui-field-color-opacity-picker-item\">\n\t\t\t\t\t\t<div class=\"landing-ui-field-color-opacity-picker-item-circle\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>`;\n\t\t});\n\t}\n\n\tgetDefaultValue(): ColorValue\n\t{\n\t\treturn this.cache.remember('default', () => {\n\t\t\treturn new ColorValue(Opacity.DEFAULT_COLOR).setOpacity(this.defaultOpacity);\n\t\t});\n\t}\n\n\tgetValue(): ColorValue\n\t{\n\t\treturn this.cache.remember('value', () => {\n\t\t\tconst pickerLeft = Text.toNumber(Dom.style(this.getPicker(), 'left'));\n\t\t\tconst layoutWidth = Text.toNumber(this.pickerControl.getBoundingClientRect().width);\n\t\t\treturn this.getDefaultValue().setOpacity(pickerLeft / layoutWidth);\n\t\t});\n\t}\n\n\tsetValue(value: ?IColorValue)\n\t{\n\t\tconst valueToSet = (!Type.isNull(value)) ? value : this.getDefaultValue();\n\t\tsuper.setValue(valueToSet);\n\n\t\tif (!Type.isNull(value))\n\t\t{\n\t\t\tDom.style(this.getColorLayout(), {background: valueToSet.getStyleStringForOpacity()});\n\t\t\tthis.setPickerPosByOpacity(valueToSet.getOpacity());\n\t\t\tthis.onRangeControlChange();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.style(this.getColorLayout(), {background: 'none'});\n\t\t}\n\t}\n\n\tonRangeControlChange()\n\t{\n\t\tconst opacity = parseInt((this.getValue().getOpacity()) * 100);\n\t\tthis.rangeInput.title = opacity;\n\t\tthis.rangeInput.innerHTML = opacity;\n\t}\n\n\tonArrowClick(arrowName)\n\t{\n\t\tlet newOpacityInputValue;\n\t\tconst opacity = this.getValue().getOpacity();\n\t\tconst opacityInputValue = parseInt(opacity * 100);\n\t\tif (arrowName === 'up')\n\t\t{\n\t\t\tif (opacityInputValue < 100)\n\t\t\t{\n\t\t\t\tnewOpacityInputValue = (opacityInputValue + 5) / 100;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tnewOpacityInputValue = opacityInputValue / 100;\n\t\t\t}\n\t\t}\n\t\tif (arrowName === 'down')\n\t\t{\n\t\t\tif (opacityInputValue > 0)\n\t\t\t{\n\t\t\t\tnewOpacityInputValue = (opacityInputValue - 5) / 100;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tnewOpacityInputValue = opacityInputValue / 100;\n\t\t\t}\n\t\t}\n\t\tthis.rangeInput.title = parseInt(newOpacityInputValue * 100);\n\t\tthis.rangeInput.innerHTML = parseInt(newOpacityInputValue * 100);\n\t\tconst width = this.pickerControl.getBoundingClientRect().width;\n\t\tconst leftPos = width - (width * (1 - newOpacityInputValue));\n\t\tDom.style(this.getPicker(), {\n\t\t\tleft: `${leftPos}px`,\n\t\t});\n\t\tthis.onChange();\n\t}\n}\n","import 'ui.design-tokens';\nimport 'ui.fonts.opensans';\n\nimport {Cache, Dom, Event, Tag, Type} from 'main.core';\nimport {BaseEvent, EventEmitter} from 'main.core.events';\n\nimport BaseControl from '../../control/base_control/base_control';\n\nimport './css/tabs.css';\n\nexport default class Tabs extends EventEmitter\n{\n\ttabs: Tab[];\n\tmultiple: boolean;\n\tisBig: boolean;\n\n\tconstructor()\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Color.Tabs');\n\n\t\tthis.tabs = [];\n\t\tthis.cache = new Cache.MemoryCache();\n\t\tthis.multiple = true;\n\t\tthis.isBig = false;\n\n\t\tthis.onToggle = this.onToggle.bind(this);\n\t}\n\n\tsetMultiple(multiple: boolean): Tabs\n\t{\n\t\tthis.multiple = multiple;\n\n\t\treturn this;\n\t}\n\n\tsetBig(big: boolean): Tabs\n\t{\n\t\tthis.isBig = big;\n\t\tthis.multiple = false;\n\n\t\treturn this;\n\t}\n\n\tappendTab(id: string, title: string, items: BaseControl | Tab | [BaseControl | Tab]): Tabs\n\t{\n\t\tconst tab = new Tab({\n\t\t\tid: id,\n\t\t\ttitle: title,\n\t\t\titems: Type.isArray(items) ? items : [items],\n\t\t});\n\t\tthis.tabs.push(tab);\n\t\tthis.bindEvents(tab);\n\t\tthis.cache.delete('layout');\n\n\t\treturn this;\n\t}\n\n\tprependTab(id: string, title: string, items: BaseControl | Tab | [BaseControl | Tab]): Tabs\n\t{\n\t\tconst tab = new Tab({\n\t\t\tid: id,\n\t\t\ttitle: title,\n\t\t\titems: Type.isArray(items) || [items],\n\t\t});\n\t\tthis.tabs.unshift(tab);\n\t\tthis.bindEvents(tab);\n\t\tthis.cache.delete('layout');\n\n\t\treturn this;\n\t}\n\n\tbindEvents(tab)\n\t{\n\t\ttab.subscribe('onToggle', this.onToggle);\n\t\ttab.subscribe('onShow', this.onToggle);\n\t\ttab.subscribe('onHide', this.onToggle);\n\t}\n\n\tonToggle(event: BaseEvent)\n\t{\n\t\tthis.emit('onToggle', event);\n\t}\n\n\tshowTab(id): Tabs\n\t{\n\t\tif (!this.multiple)\n\t\t{\n\t\t\tthis.tabs.forEach((tab) => {\n\t\t\t\ttab.hide();\n\t\t\t});\n\t\t}\n\n\t\tconst tab = this.getTabById(id);\n\t\tif (tab)\n\t\t{\n\t\t\ttab.show();\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tgetTabById(id: string): Tab\n\t{\n\t\treturn this.tabs.find((tab) => {\n\t\t\treturn tab.id === id;\n\t\t});\n\t}\n\n\tgetLayout(): HTMLElement\n\t{\n\t\treturn this.cache.remember('layout', () => {\n\t\t\tconst additional = this.isBig ? ' landing-ui-field-color-tabs--big' : '';\n\t\t\tconst layout = Tag.render`<div class=\"landing-ui-field-color-tabs${additional}\"></div>`;\n\n\t\t\tif (this.isBig)\n\t\t\t{\n\t\t\t\tconst head = Tag.render`\n\t\t\t\t\t<div class=\"landing-ui-field-color-tabs-head landing-ui-field-color-tabs-head--big\"></div>\n\t\t\t\t`;\n\t\t\t\tconst content = Tag.render`\n\t\t\t\t\t<div class=\"landing-ui-field-color-tabs-content landing-ui-field-color-tabs-content--big\"></div>\n\t\t\t\t`;\n\n\t\t\t\tthis.tabs.forEach(tab => {\n\t\t\t\t\tDom.append(tab.getTitle(), head);\n\t\t\t\t\tDom.append(tab.getLayout(), content);\n\t\t\t\t});\n\n\t\t\t\tDom.append(head, layout);\n\t\t\t\tDom.append(content, layout);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.tabs.forEach(tab => {\n\t\t\t\t\tconst tabLayout = Tag.render`<div class=\"landing-ui-field-color-tabs-tab\">\n\t\t\t\t\t\t${tab.getTitle()}${tab.getLayout()}\n\t\t\t\t\t</div>`;\n\t\t\t\t\tDom.append(tabLayout, layout);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// events\n\t\t\tthis.tabs.forEach(tab => {\n\t\t\t\tEvent.bind(tab.getTitle(), 'click', () => {\n\t\t\t\t\tif (!this.multiple)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.tabs.forEach((tab) => {\n\t\t\t\t\t\t\ttab.hide();\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\ttab.toggle();\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn layout;\n\t\t});\n\t}\n}\n\nexport type TabOptions = {\n\tid: string,\n\ttitle: string,\n\titems: BaseControl[]\n}\n\nexport class Tab extends EventEmitter\n{\n\tid: string;\n\ttitle: string;\n\titems: BaseControl[];\n\n\tstatic SHOW_CLASS: string = 'show';\n\n\tconstructor(options: TabOptions)\n\t{\n\t\tsuper();\n\n\t\tthis.id = options.id;\n\t\tthis.title = options.title;\n\t\tthis.items = options.items;\n\t\tthis.cache = new Cache.MemoryCache();\n\t}\n\n\tgetId(): string\n\t{\n\t\treturn this.id;\n\t}\n\n\tgetTitle(): string\n\t{\n\t\treturn this.cache.remember('title', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<span class=\"landing-ui-field-color-tabs-tab-toggler\">\n\t\t\t\t\t<span class=\"landing-ui-field-color-tabs-tab-toggler-icon\"></span>\n\t\t\t\t\t<span class=\"landing-ui-field-color-tabs-tab-toggler-name\">${this.title}</span>\n\t\t\t\t</span>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetLayout(): HTMLElement\n\t{\n\t\treturn this.cache.remember('layout', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"landing-ui-field-color-tabs-tab-content\">\n\t\t\t\t\t${this.items.map(item => item.getLayout())}\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n\n\ttoggle(): Tab\n\t{\n\t\tDom.toggleClass(this.getLayout(), Tab.SHOW_CLASS);\n\t\tDom.toggleClass(this.getTitle(), Tab.SHOW_CLASS);\n\t\tthis.emit('onToggle', {tab: this.title});\n\n\t\treturn this;\n\t}\n\n\tshow(): Tab\n\t{\n\t\tDom.addClass(this.getLayout(), Tab.SHOW_CLASS);\n\t\tDom.addClass(this.getTitle(), Tab.SHOW_CLASS);\n\t\tthis.emit('onShow', {tab: this.title});\n\n\t\treturn this;\n\t}\n\n\thide(): Tab\n\t{\n\t\tDom.removeClass(this.getLayout(), Tab.SHOW_CLASS);\n\t\tDom.removeClass(this.getTitle(), Tab.SHOW_CLASS);\n\t\tthis.emit('onHide', {tab: this.title});\n\n\t\treturn this;\n\t}\n}\n","import {EventEmitter} from 'main.core.events';\nimport {Cache, Tag, Event, Loc, Dom} from 'main.core';\n\nimport './css/zeroing.css';\n\nexport default class Zeroing extends EventEmitter\n{\n\tstatic ACTIVE_CLASS: string = 'active';\n\n\tconstructor(options)\n\t{\n\t\tsuper();\n\t\tthis.options = options;\n\t\tthis.cache = new Cache.MemoryCache();\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Color.Zeroing');\n\t\tEvent.bind(this.getLayout(), 'click', () => this.onClick());\n\t}\n\n\tgetLayout(): HTMLElement | null\n\t{\n\t\tlet textCode = 'LANDING_FIELD_COLOR-ZEROING_TITLE_2';\n\t\tif (this.options)\n\t\t{\n\t\t\tif (!this.options.styleNode)\n\t\t\t{\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif (this.options.textCode)\n\t\t\t{\n\t\t\t\ttextCode = this.options.textCode;\n\t\t\t}\n\t\t}\n\n\t\treturn this.cache.remember('layout', () => {\n\t\t\treturn Tag.render`<div class=\"landing-ui-field-color-zeroing\">\n\t\t\t\t<div class=\"landing-ui-field-color-zeroing-preview\">\n\t\t\t\t\t<div class=\"landing-ui-field-color-zeroing-state\"></div>\n\t\t\t\t</div>\n\t\t\t\t<span class=\"landing-ui-field-color-primary-text\">\n\t\t\t\t\t${Loc.getMessage(textCode)}\n\t\t\t\t</span>\n\t\t\t</div>`;\n\t\t});\n\t}\n\n\tonClick()\n\t{\n\t\tthis.emit('onChange', {color: null});\n\t}\n\n\tsetActive()\n\t{\n\t\tDom.addClass(this.getLayout(), Zeroing.ACTIVE_CLASS);\n\t}\n\n\tunsetActive()\n\t{\n\t\tDom.removeClass(this.getLayout(), Zeroing.ACTIVE_CLASS);\n\t}\n\n\tisActive(): boolean\n\t{\n\t\treturn Dom.hasClass(this.getLayout(), Zeroing.ACTIVE_CLASS);\n\t}\n}\n","import {Tag, Loc, Dom, Type} from 'main.core';\nimport {BaseEvent} from 'main.core.events';\n\nimport BaseProcessor from './base_processor';\nimport ColorSet from \"../control/color_set/color_set\";\nimport Opacity from \"../control/opacity/opacity\";\nimport Tabs from '../layout/tabs/tabs';\nimport Primary from '../layout/primary/primary';\n\nimport ColorValue from \"../color_value\";\nimport {IColorValue} from '../types/i_color_value';\nimport Zeroing from '../layout/zeroing/zeroing';\n\nexport default class Color extends BaseProcessor\n{\n\tstatic PRIMARY_VAR: string = 'var(--primary)';\n\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Processor.Color');\n\t\tthis.property = 'color';\n\t\tthis.variableName = '--color';\n\t\tthis.className = 'g-color';\n\n\t\tthis.colorSet = new ColorSet(options);\n\t\tthis.colorSet.subscribe('onChange', this.onColorSetChange.bind(this));\n\t\tthis.colorSet.subscribe('onReset', this.onReset.bind(this));\n\n\t\tthis.opacity = new Opacity();\n\t\tthis.opacity.subscribe('onChange', this.onOpacityChange.bind(this));\n\n\t\tconst zeroingOptions = {\n\t\t\tstyleNode: options.styleNode,\n\t\t};\n\t\tthis.zeroing = new Zeroing(zeroingOptions);\n\t\tthis.zeroing.subscribe('onChange', this.onZeroingChange.bind(this));\n\n\t\tthis.primary = new Primary(options);\n\t\tthis.primary.subscribe('onChange', this.onPrimaryChange.bind(this));\n\n\t\tthis.tabs = new Tabs().appendTab('Opacity', Loc.getMessage('LANDING_FIELD_COLOR-TAB_OPACITY'), this.opacity);\n\t}\n\n\tisNullValue(value: ?string): boolean\n\t{\n\t\treturn (\n\t\t\tvalue === null\n\t\t\t|| value === 'none'\n\t\t\t|| value === 'rgba(0, 0, 0, 0)'\n\t\t);\n\t}\n\n\tgetNullValue()\n\t{\n\t\treturn new ColorValue('rgba(0, 0, 0, 0)');\n\t}\n\n\tbuildLayout(): HTMLElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"landing-ui-field-color-color\">\n\t\t\t\t${this.colorSet.getLayout()}\n\t\t\t\t${this.primary.getLayout()}\n\t\t\t\t${this.zeroing.getLayout()}\n\t\t\t\t${this.tabs.getLayout()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tonColorSetChange(event: BaseEvent)\n\t{\n\t\tthis.primary.unsetActive();\n\t\tthis.zeroing.unsetActive();\n\n\t\tconst color = event.getData().color;\n\t\tif (color !== null)\n\t\t{\n\t\t\tcolor.setOpacity(this.opacity.getValue().getOpacity());\n\t\t}\n\t\tthis.opacity.setValue(color);\n\n\t\tthis.onChange();\n\t}\n\n\tonOpacityChange()\n\t{\n\t\tthis.onChange();\n\t}\n\n\tonPrimaryChange(event: BaseEvent)\n\t{\n\t\tthis.colorSet.setValue(event.getData().color);\n\t\tthis.onColorSetChange(event);\n\n\t\tthis.colorSet.unsetActive();\n\t\tthis.zeroing.unsetActive();\n\t\tthis.primary.setActive();\n\t}\n\n\tonZeroingChange(event: BaseEvent)\n\t{\n\t\tthis.colorSet.unsetActive();\n\t\tthis.primary.unsetActive();\n\t\tthis.zeroing.setActive();\n\t\tthis.setValue(event.getData().color);\n\t\t// todo: need reload computed props and reinit\n\t\tthis.onChange(event);\n\t}\n\n\tunsetActive()\n\t{\n\t\tthis.colorSet.unsetActive();\n\t\tthis.primary.unsetActive();\n\t}\n\n\tsetValue(value: ?string): void\n\t{\n\t\tconst valueObj = (value !== null) ? new ColorValue(value) : null;\n\n\t\tthis.colorSet.setValue(valueObj);\n\t\tthis.opacity.setValue(valueObj);\n\n\t\t// todo: what about opacity in primary?\n\t\tif (this.primary.isPrimaryValue(valueObj))\n\t\t{\n\t\t\tthis.primary.setActive();\n\t\t\tthis.colorSet.unsetActive();\n\t\t}\n\n\t\tif (value !== null && valueObj.getOpacity() < 1)\n\t\t{\n\t\t\tthis.tabs.showTab('Opacity');\n\t\t}\n\t}\n\n\tgetValue(): ?IColorValue\n\t{\n\t\treturn this.cache.remember('value', () => {\n\t\t\tconst value = this.primary.isActive() ? this.primary.getValue() : this.colorSet.getValue();\n\n\t\t\treturn (value === null)\n\t\t\t\t? null\n\t\t\t\t: value.setOpacity(this.opacity.getValue().getOpacity());\n\t\t});\n\t}\n\n\tsetDefaultValue(value: {string: string} | null)\n\t{\n\t\tthis.zeroing.setActive();\n\t\tif (!Type.isNull(value))\n\t\t{\n\t\t\tthis.colorSet.colorpicker.hex.setActive();\n\t\t}\n\t\tsuper.setDefaultValue(value);\n\t}\n\n\tonReset()\n\t{\n\t\tthis.zeroing.unsetActive();\n\t\tsuper.onReset();\n\t}\n\n\tsetActiveControl(controlName)\n\t{\n\t\tif (controlName === 'primary')\n\t\t{\n\t\t\tthis.primary.setActive();\n\t\t}\n\t\tif (controlName === 'hex')\n\t\t{\n\t\t\tthis.colorSet.colorpicker.hexPreview.setActive();\n\t\t}\n\t}\n\n\tdefineActiveControl(items, styleNode)\n\t{\n\t\tif (!Type.isUndefined(styleNode))\n\t\t{\n\t\t\tlet oldClass;\n\t\t\tlet activeControl;\n\t\t\tconst node = styleNode.getNode();\n\t\t\tif (node.length > 0)\n\t\t\t{\n\t\t\t\titems.forEach((item) => {\n\t\t\t\t\tif (Dom.hasClass(node[0], item.value))\n\t\t\t\t\t{\n\t\t\t\t\t\toldClass = item.value;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\tif (oldClass)\n\t\t\t\t{\n\t\t\t\t\tconst reg = /g-[a-z]+-[a-z0-9-]+/i;\n\t\t\t\t\tconst found = oldClass.match(reg);\n\t\t\t\t\tif (found)\n\t\t\t\t\t{\n\t\t\t\t\t\tconst reg = /primary/i;\n\t\t\t\t\t\tconst found = oldClass.match(reg);\n\t\t\t\t\t\tthis.zeroing.unsetActive();\n\t\t\t\t\t\tif (found)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tactiveControl = 'primary';\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tactiveControl = 'hex';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (activeControl)\n\t\t\t\t{\n\t\t\t\t\tthis.setActiveControl(activeControl);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","import Color from './color';\n\nexport default class ColorHover extends Color\n{\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Processor.ColorHover');\n\t\tthis.property = 'color';\n\t\tthis.variableName = '--color-hover';\n\t\tthis.className = 'g-color--hover';\n\t\tthis.pseudoClass = ':hover';\n\t}\n}","import {Event, Tag, Text, Dom, Loc} from 'main.core';\nimport {Popup, PopupManager} from 'main.popup';\nimport {BaseEvent} from \"main.core.events\";\nimport BaseControl from \"../base_control/base_control\";\nimport Colorpicker from \"../colorpicker/colorpicker\";\nimport Preset from '../../layout/preset/preset';\n\nimport 'ui.fonts.opensans';\nimport './css/gradient.css';\nimport GradientValue from \"../../gradient_value\";\nimport ColorValue from '../../color_value';\n\nexport default class Gradient extends BaseControl\n{\n\tstatic DISABLE_CLASS = 'disable';\n\n\tpopupId: string;\n\tpopupTargetContainer: ?HTMLElement;\n\n\tpreset: ?Preset;\n\tcolorpickerFrom: Colorpicker;\n\tcolorpickerTo: Colorpicker;\n\n\t+ROTATE_STEP = 45;\n\n\tconstructor(options)\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Color.Gradient');\n\t\tthis.popupId = 'gradient_popup_' + Text.getRandom();\n\t\tthis.popupTargetContainer = options.contentRoot;\n\n\t\tthis.colorpickerFrom = new Colorpicker(options);\n\t\tthis.colorpickerFrom.subscribe('onChange', (event) => {\n\t\t\tthis.onColorChange(event.getData().color, null);\n\t\t});\n\n\t\tthis.colorpickerTo = new Colorpicker(options);\n\t\tthis.colorpickerTo.subscribe('onChange', (event) => {\n\t\t\tthis.onColorChange(null, event.getData().color);\n\t\t});\n\n\t\tEvent.bind(this.getPopupButton(), 'click', this.onPopupOpen.bind(this));\n\t\tEvent.bind(this.getRotateButton(), 'click', this.onRotate.bind(this));\n\t\tEvent.bind(this.getSwitchTypeButton(), 'click', this.onSwitchType.bind(this));\n\t\tEvent.bind(this.getSwapButton(), 'click', this.onSwap.bind(this));\n\n\t\tthis.preset = null;\n\t}\n\n\tonColorChange(fromValue: ?ColorValue, toValue: ?ColorValue)\n\t{\n\t\tif (fromValue === null && toValue === null)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst valueToSet = this.getValue() || new GradientValue();\n\t\tconst fromValueToSet = fromValue || valueToSet.getFrom() || (new GradientValue()).getFrom();\n\t\tconst toValueToSet = toValue || valueToSet.getTo() || (new GradientValue()).getTo();\n\t\tvalueToSet.setValue({\n\t\t\tfrom: fromValueToSet,\n\t\t\tto: toValueToSet,\n\t\t});\n\n\t\tthis.setValue(valueToSet);\n\t\tthis.preset.unsetActive();\n\t\tthis.onChange();\n\t}\n\n\tonPopupOpen()\n\t{\n\t\tthis.getPopup().toggle();\n\t}\n\n\tonRotate(event: MouseEvent)\n\t{\n\t\t// todo: not set colorpicker active\n\t\tif (!Gradient.isButtonEnable(event.target))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst value = this.getValue();\n\t\tif (value !== null)\n\t\t{\n\t\t\tvalue.setValue({\n\t\t\t\tangle: ((value.getAngle() + this.ROTATE_STEP) % 360),\n\t\t\t});\n\t\t\tthis.setValue(value);\n\t\t\tthis.onChange();\n\t\t}\n\t\tthis.getPopup().close();\n\t}\n\n\tonSwitchType(event: MouseEvent)\n\t{\n\t\t// todo: not set colorpicker active\n\t\tif (!Gradient.isButtonEnable(event.target))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst value = this.getValue();\n\t\tif (value !== null)\n\t\t{\n\t\t\tif (value.getType() === GradientValue.TYPE_LINEAR)\n\t\t\t{\n\t\t\t\tvalue.setValue({type: GradientValue.TYPE_RADIAL});\n\t\t\t\tGradient.disableButton(this.getRotateButton());\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tvalue.setValue({type: GradientValue.TYPE_LINEAR});\n\t\t\t\tGradient.enableButton(this.getRotateButton());\n\t\t\t}\n\t\t\tthis.setValue(value);\n\t\t\tthis.onChange();\n\t\t}\n\t\tthis.getPopup().close();\n\t}\n\n\tonSwap(event: MouseEvent)\n\t{\n\t\t// todo: not set colorpicker active\n\t\tif (!Gradient.isButtonEnable(event.target))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst value = this.getValue();\n\t\tif (value !== null)\n\t\t{\n\t\t\tvalue.setValue({\n\t\t\t\tto: value.getFrom(),\n\t\t\t\tfrom: value.getTo(),\n\t\t\t});\n\t\t\tthis.setValue(value);\n\t\t\tthis.onChange();\n\t\t}\n\t\tthis.getPopup().close();\n\t}\n\n\tstatic disableButton(button: HTMLDivElement)\n\t{\n\t\tDom.addClass(button, Gradient.DISABLE_CLASS);\n\t}\n\n\tstatic enableButton(button: HTMLDivElement)\n\t{\n\t\tDom.removeClass(button, Gradient.DISABLE_CLASS);\n\t}\n\n\tstatic isButtonEnable(button: HTMLDivElement)\n\t{\n\t\treturn !Dom.hasClass(button, Gradient.DISABLE_CLASS);\n\t}\n\n\tcorrectColorpickerColors()\n\t{\n\t\tconst value = this.getValue();\n\t\tif (value !== null)\n\t\t{\n\t\t\tconst angle = value.getAngle();\n\t\t\tconst hexFrom = this.colorpickerFrom.getHexPreviewObject();\n\t\t\tconst hexTo = this.colorpickerTo.getHexPreviewObject();\n\t\t\tconst colorFrom = value.getFrom();\n\t\t\tconst colorTo = value.getTo();\n\t\t\tif (value.getType() === GradientValue.TYPE_LINEAR)\n\t\t\t{\n\t\t\t\tif (angle === 270 || angle === 90)\n\t\t\t\t{\n\t\t\t\t\tconst median = ColorValue.getMedian(colorFrom, colorTo).getContrast().getHex();\n\t\t\t\t\thexFrom.adjustColors(median, 'transparent');\n\t\t\t\t\thexTo.adjustColors(median, 'transparent');\n\t\t\t\t}\n\t\t\t\telse if (angle >= 135 && angle <= 225)\n\t\t\t\t{\n\t\t\t\t\thexFrom.adjustColors(colorFrom.getContrast().getHex(), 'transparent');\n\t\t\t\t\thexTo.adjustColors(colorTo.getContrast().getHex(), 'transparent');\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\thexFrom.adjustColors(colorTo.getContrast().getHex(), 'transparent');\n\t\t\t\t\thexTo.adjustColors(colorFrom.getContrast().getHex(), 'transparent');\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (value.getType() === GradientValue.TYPE_RADIAL)\n\t\t\t{\n\t\t\t\thexFrom.adjustColors(colorTo.getContrast().getHex(), 'transparent');\n\t\t\t\thexTo.adjustColors(colorTo.getContrast().getHex(), 'transparent');\n\t\t\t}\n\t\t}\n\t}\n\n\tgetPopup(): Popup\n\t{\n\t\treturn this.cache.remember('popup', () => {\n\t\t\treturn PopupManager.create({\n\t\t\t\tid: this.popupId,\n\t\t\t\tclassName: 'landing-ui-field-color-gradient-preset-popup',\n\t\t\t\tautoHide: true,\n\t\t\t\tbindElement: this.getPopupButton(),\n\t\t\t\tbindOptions: {\n\t\t\t\t\tforceTop: true,\n\t\t\t\t\tforceLeft: true,\n\t\t\t\t},\n\t\t\t\toffsetLeft: 15,\n\t\t\t\tangle: {offset: -5},\n\t\t\t\tpadding: 0,\n\t\t\t\tcontentPadding: 7,\n\t\t\t\tcontent: this.getPopupContent(),\n\t\t\t\tcloseByEsc: true,\n\t\t\t\ttargetContainer: this.popupTargetContainer,\n\t\t\t});\n\t\t});\n\t}\n\n\tgetPopupContent(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('popupContainer', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"landing-ui-field-color-gradient-preset-popup-container\">\n\t\t\t\t\t${this.getRotateButton()}\n\t\t\t\t\t${this.getSwapButton()}\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n\n\tbuildLayout(): HTMLDivElement\n\t{\n\t\tif (this.preset)\n\t\t{\n\t\t\tDom.clean(this.getPresetContainer());\n\t\t\tDom.append(this.preset.getLayout(), this.getPresetContainer());\n\t\t}\n\t\treturn Tag.render`\n\t\t\t<div class=\"landing-ui-field-color-gradient\">\n\t\t\t\t${this.getPresetContainer()}\n\t\t\t\t<div class=\"landing-ui-field-color-gradient-container\">\n\t\t\t\t\t<div class=\"landing-ui-field-color-gradient-from\">${this.colorpickerFrom.getLayout()}</div>\n\t\t\t\t\t${this.getPopupButton()}\n\t\t\t\t\t<div class=\"landing-ui-field-color-gradient-to\">${this.colorpickerTo.getLayout()}</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"landing-ui-field-color-gradient-switch-type-container\">\n\t\t\t\t\t${this.getSwitchTypeButton()}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetContainerLayout(): HTMLDivElement\n\t{\n\t\t// todo: do better after change vyorstka\n\t\treturn this.getLayout().querySelector('.landing-ui-field-color-gradient-container');\n\t}\n\n\tgetPresetContainer(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('presetContainer', () => {\n\t\t\treturn Tag.render`<div class=\"landing-ui-field-color-gradient-preset-container\"></div>`;\n\t\t});\n\t}\n\n\tgetPopupButton(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('popupButton', () => {\n\t\t\treturn Tag.render`<span class=\"landing-ui-field-color-gradient-open-popup\"></span>`;\n\t\t});\n\t}\n\n\tgetSwitchTypeButton(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('switchTypeButton', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<span\n\t\t\t\t\tclass=\"landing-ui-field-color-gradient-switch-type\"\n\t\t\t\t\ttitle=\"${Loc.getMessage('LANDING_FIELD_COLOR-GRADIENT_SWITCH_TYPE')}\"\n\t\t\t\t></span>`;\n\t\t});\n\t}\n\n\tgetRotateButton(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('rotateButton', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<span\n\t\t\t\t\tclass=\"landing-ui-field-color-gradient-rotate\"\n\t\t\t\t\ttitle=\"${Loc.getMessage('LANDING_FIELD_COLOR-GRADIENT_ROTATE')}\"\n\t\t\t\t></span>`;\n\t\t});\n\t}\n\n\tgetSwapButton(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('swapButton', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<span\n\t\t\t\t\tclass=\"landing-ui-field-color-gradient-swap\"\n\t\t\t\t\ttitle=\"${Loc.getMessage('LANDING_FIELD_COLOR-GRADIENT_SWAP')}\"\n\t\t\t\t></span>`;\n\t\t});\n\t}\n\n\tsetPreset(preset: Preset)\n\t{\n\t\tthis.preset = preset;\n\t\tthis.preset.unsetActive();\n\t\tthis.preset.subscribe('onChange', (event) => {\n\t\t\tthis.setValue(event.getData().color);\n\t\t\tthis.unsetColorpickerActive();\n\t\t\tthis.onChange(event);\n\t\t});\n\n\t\tDom.clean(this.getPresetContainer());\n\t\tDom.append(preset.getLayout(), this.getPresetContainer());\n\t}\n\n\tgetPreset(): ?Preset\n\t{\n\t\treturn this.preset;\n\t}\n\n\tgetValue(): ?GradientValue\n\t{\n\t\treturn this.cache.remember('value', () => {\n\t\t\tif (\n\t\t\t\tthis.colorpickerFrom.getValue() === null\n\t\t\t\t|| this.colorpickerTo.getValue() === null\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tlet rotate = this.getRotateButton().dataset.rotate;\n\t\t\trotate = rotate ? Text.toNumber(rotate) : 0;\n\t\t\tconst type = this.getSwitchTypeButton().dataset.type || GradientValue.TYPE_LINEAR;\n\n\t\t\treturn new GradientValue({\n\t\t\t\tfrom: this.colorpickerFrom.getValue(),\n\t\t\t\tto: this.colorpickerTo.getValue(),\n\t\t\t\tangle: rotate,\n\t\t\t\ttype: type,\n\t\t\t});\n\t\t});\n\t}\n\n\tsetValue(value: ?GradientValue)\n\t{\n\t\tsuper.setValue(value);\n\n\t\tif (value === null)\n\t\t{\n\t\t\tthis.colorpickerFrom.setValue(null);\n\t\t\tthis.colorpickerTo.setValue(null);\n\n\t\t\tthis.unsetActive();\n\n\t\t\tDom.style(this.getContainerLayout(), 'background', (new GradientValue).getStyleString());\n\n\t\t\tGradient.disableButton(this.getRotateButton());\n\t\t\tGradient.disableButton(this.getSwitchTypeButton());\n\t\t\tGradient.disableButton(this.getSwapButton());\n\t\t}\n\t\telse\n\t\t{\n\t\t\t// todo: how set default type and rotation?\n\t\t\tthis.colorpickerFrom.setValue(value.getFrom());\n\t\t\tthis.colorpickerTo.setValue(value.getTo());\n\t\t\tthis.correctColorpickerColors();\n\n\t\t\tthis.getRotateButton().dataset.rotate = value.getAngle();\n\t\t\tthis.getSwitchTypeButton().dataset.type = value.getType();\n\n\t\t\tDom.style(this.getRotateButton(), 'transform', `rotate(${value.getAngle()}deg)`);\n\t\t\tDom.style(this.getContainerLayout(), 'background', this.getValue().getStyleString());\n\n\t\t\tGradient.enableButton(this.getSwitchTypeButton());\n\t\t\tGradient.enableButton(this.getSwapButton());\n\t\t\tif (value.getType() === GradientValue.TYPE_RADIAL)\n\t\t\t{\n\t\t\t\tGradient.disableButton(this.getRotateButton())\n\t\t\t\tthis.getSwitchTypeButton().innerText = Loc.getMessage('LANDING_FIELD_COLOR-GRADIENT_DO_LINEAR');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tGradient.enableButton(this.getRotateButton());\n\t\t\t\tthis.getSwitchTypeButton().innerText = Loc.getMessage('LANDING_FIELD_COLOR-GRADIENT_DO_RADIAL');\n\t\t\t}\n\n\t\t\tthis.setActive();\n\t\t}\n\t}\n\n\tonChange(event: ?BaseEvent)\n\t{\n\t\tthis.cache.delete('value');\n\t\tthis.emit('onChange', {gradient: this.getValue()});\n\t}\n\n\tsetActive(): void\n\t{\n\t\tconst value = this.getValue();\n\t\tif (this.preset.isPresetValue(value))\n\t\t{\n\t\t\tthis.preset.setActiveValue(value);\n\t\t\tthis.unsetColorpickerActive();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.preset.unsetActive();\n\t\t\tthis.setColorpickerActive();\n\t\t}\n\t}\n\n\tunsetActive(): void\n\t{\n\t\tthis.preset.unsetActive();\n\t\tthis.unsetColorpickerActive();\n\t}\n\n\tsetColorpickerActive(): void\n\t{\n\t\tDom.addClass(this.getContainerLayout(), Gradient.ACTIVE_CLASS);\n\t}\n\n\tunsetColorpickerActive(): void\n\t{\n\t\tthis.colorpickerFrom.unsetActive();\n\t\tthis.colorpickerTo.unsetActive();\n\t\tDom.removeClass(this.getContainerLayout(), Gradient.ACTIVE_CLASS);\n\t}\n}\n","import {Type, Loc} from 'main.core';\nimport {BaseEvent} from \"main.core.events\";\n\nimport isHex from '../internal/is-hex';\nimport isRgbString from '../internal/is-rgb-string';\nimport isHslString from '../internal/is-hsl-string';\nimport isGradientString from '../internal/is-gradient-string';\nimport {isCssVar} from '../internal/css-var';\n\nimport Color from \"./color\";\nimport Gradient from \"../control/gradient/gradient\";\nimport Preset from '../layout/preset/preset';\n\nimport GradientValue from \"../gradient_value\";\nimport {IColorValue} from '../types/i_color_value';\nimport Opacity from '../control/opacity/opacity';\n\nexport default class BgColor extends Color\n{\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Processor.BgColor');\n\t\tthis.property = ['background-image', 'background-color'];\n\t\tthis.variableName = '--bg';\n\t\tthis.className = 'g-bg';\n\n\t\tthis.activeControl = null;\n\n\t\tthis.gradient = new Gradient(options);\n\t\tthis.gradient.subscribe('onChange', this.onGradientChange.bind(this));\n\t\tthis.tabs.prependTab('Gradient', Loc.getMessage('LANDING_FIELD_COLOR-TAB_GRADIENT'), this.gradient);\n\n\t\tthis.setGradientPreset(this.colorSet.getPreset());\n\t\tthis.colorSet.subscribe('onPresetChange', (event) => {\n\t\t\tthis.setGradientPreset(event.getData().preset);\n\t\t});\n\n\t\tthis.tabs.subscribe('onToggle', this.onTabsToggle.bind(this));\n\t}\n\n\tsetGradientPreset(preset: Preset)\n\t{\n\t\tconst gradientPreset = preset.getGradientPreset();\n\t\tthis.gradient.setPreset(gradientPreset);\n\t\tgradientPreset.subscribe('onChange', () => {\n\t\t\tthis.activeControl = this.gradient;\n\t\t\tthis.onChange();\n\t\t});\n\n\t\tconst value = this.getValue();\n\t\tif (value !== null && value instanceof GradientValue)\n\t\t{\n\t\t\tif (this.gradient.getPreset().isPresetValue(value))\n\t\t\t{\n\t\t\t\tthis.colorSet.getPreset().unsetActive();\n\t\t\t\tthis.gradient.getPreset().setActiveValue(value);\n\t\t\t\tthis.gradient.unsetColorpickerActive();\n\t\t\t}\n\t\t}\n\t}\n\n\tonColorSetChange(event: BaseEvent)\n\t{\n\t\tthis.activeControl = this.colorSet;\n\t\tthis.gradient.unsetActive();\n\n\t\tsuper.onColorSetChange(event);\n\t}\n\n\tonGradientChange(event: BaseEvent)\n\t{\n\t\tthis.activeControl = this.gradient;\n\t\tthis.colorSet.unsetActive();\n\n\t\tconst gradValue = event.getData().gradient;\n\t\tif (gradValue !== null)\n\t\t{\n\t\t\tthis.opacity.setValue(\n\t\t\t\tgradValue.setOpacity(this.opacity.getValue().getOpacity()),\n\t\t\t);\n\t\t}\n\n\t\tthis.onChange();\n\t}\n\n\tonOverlayOpacityChange()\n\t{\n\t\tthis.onChange();\n\t}\n\n\tonTabsToggle()\n\t{\n\t\tthis.gradient.getPopup().close();\n\t}\n\n\tunsetActive()\n\t{\n\t\tthis.colorSet.unsetActive();\n\t\tthis.gradient.unsetActive();\n\t\tthis.primary.unsetActive();\n\t}\n\n\tsetValue(value: ?string): void\n\t{\n\t\tthis.colorSet.setValue(null);\n\t\tthis.gradient.setValue(null);\n\t\tthis.unsetActive();\n\n\t\tthis.activeControl = null;\n\n\t\tif (Type.isNil(value))\n\t\t{\n\t\t\t// todo: set NULL for gradient or opacity?\n\t\t}\n\t\telse if (\n\t\t\tisRgbString(value)\n\t\t\t|| isHex(value)\n\t\t\t|| isHslString(value)\n\t\t\t|| isCssVar(value)\n\t\t)\n\t\t{\n\t\t\tsuper.setValue(value);\n\n\t\t\tthis.activeControl = this.colorSet;\n\t\t}\n\t\telse if (isGradientString(value))\n\t\t{\n\t\t\tthis.activeControl = this.gradient;\n\n\t\t\tconst gradientValue = new GradientValue(value);\n\t\t\tthis.gradient.setValue(gradientValue);\n\t\t\tthis.opacity.setValue(gradientValue);\n\n\t\t\tconst presets = this.colorSet.getPresetsCollection();\n\t\t\tconst activePreset = presets.getGlobalActiveId()\n\t\t\t\t? presets.getPresetById(presets.getGlobalActiveId())\n\t\t\t\t: presets.getPresetByItemValue(gradientValue);\n\t\t\tif (activePreset !== null && activePreset !== this.colorSet.getPreset())\n\t\t\t{\n\t\t\t\tthis.colorSet.setPreset(activePreset);\n\t\t\t\tthis.setGradientPreset(activePreset);\n\t\t\t}\n\n\t\t\tthis.tabs.showTab('Gradient');\n\t\t\tif (gradientValue.getOpacity() < 1)\n\t\t\t{\n\t\t\t\tthis.tabs.showTab('Opacity');\n\t\t\t}\n\t\t}\n\t}\n\n\tgetValue(): ?IColorValue\n\t{\n\t\treturn this.cache.remember('value', () => {\n\t\t\tif (this.activeControl === null)\n\t\t\t{\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\telse if (this.activeControl === this.gradient)\n\t\t\t{\n\t\t\t\tconst gradValue = this.gradient.getValue();\n\t\t\t\treturn (gradValue === null)\n\t\t\t\t\t? gradValue\n\t\t\t\t\t: gradValue.setOpacity(this.opacity.getValue().getOpacity());\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\treturn super.getValue();\n\t\t\t}\n\t\t});\n\t}\n}\n","import {matcherGradient} from './is-gradient-string';\nimport {regexpToString} from './regexp';\n\nexport const matcherBgImage = /url\\(['\"]?([^ '\"]*)['\"]?\\)([\\w \\/]*)/i;\n\nexport default function isBgImageString(bgImage: string)\n{\n\tif (!!bgImage.trim().match(matcherBgImage))\n\t{\n\t\treturn true;\n\t}\n\n\treturn !!bgImage.trim().match(getMatcherWithOverlay());\n}\n\nfunction getMatcherWithOverlay(): RegExp\n{\n\tconst matcherBgString = regexpToString(matcherBgImage);\n\tconst matcherGradientString = regexpToString(matcherGradient);\n\treturn new RegExp(`^${matcherGradientString},${matcherBgString}`);\n}\n\n","import {Type, Loc} from 'main.core';\n\nimport {\n\tBgImageValueOptions,\n\tdefaultBgImageValueOptions,\n\tdefaultBgImageSize,\n\tdefaultBgImageAttachment,\n} from \"./types/color_value_options\";\nimport {IColorValue} from './types/i_color_value';\n\nimport isBgImageString, {matcherBgImage} from './internal/is-bg-image-string';\nimport {matcherGradient, matcherGradientColors} from './internal/is-gradient-string';\nimport {regexpWoStartEnd} from './internal/regexp';\n\nimport ColorValue from './color_value';\n\nexport default class BgImageValue implements IColorValue\n{\n\tvalue: BgImageValueOptions;\n\n\tconstructor(value: BgImageValueOptions | BgImageValue | string)\n\t{\n\t\t// todo: add 2x, file ids\n\t\tthis.value = defaultBgImageValueOptions;\n\t\tthis.setValue(value);\n\t}\n\n\tgetName(): string\n\t{\n\t\treturn `\n\t\t\t${this.value.url.replace(/[^\\w\\d]/g, '')}_${this.value.size}_${this.value.attachment}\n\t\t`;\n\t}\n\n\tsetValue(value: BgImageValueOptions | BgImageValue | string): BgImageValue\n\t{\n\t\tif (Type.isObject(value))\n\t\t{\n\t\t\tif (value instanceof BgImageValue)\n\t\t\t{\n\t\t\t\t// todo: add 2x and file IDs\n\t\t\t\tthis.value.url = value.getUrl();\n\t\t\t\tthis.value.url2x = value.getUrl2x();\n\t\t\t\tthis.value.fileId = value.getFileId();\n\t\t\t\tthis.value.fileId2x = value.getFileId2x();\n\t\t\t\tthis.value.size = value.getSize();\n\t\t\t\tthis.value.attachment = value.getAttachment();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.value = {...this.value, ...value};\n\t\t\t}\n\t\t}\n\n\t\tif (Type.isString(value) && isBgImageString(value))\n\t\t{\n\t\t\tthis.parseBgString(value);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tparseBgString(string: string): void\n\t{\n\t\t// todo: check matcher for 2x\n\t\tconst options = defaultBgImageValueOptions;\n\n\t\tconst matchesBg = string.trim().match(regexpWoStartEnd(matcherBgImage));\n\t\tif (!!matchesBg)\n\t\t{\n\t\t\toptions.url = matchesBg[1];\n\n\t\t\toptions.size = matchesBg[2].indexOf('auto') === -1\n\t\t\t\t? defaultBgImageSize\n\t\t\t\t: 'auto'\n\t\t\t;\n\n\t\t\toptions.attachment = matchesBg[2].indexOf('fixed') === -1\n\t\t\t\t? defaultBgImageAttachment\n\t\t\t\t: 'fixed'\n\t\t\t;\n\t\t}\n\n\t\tconst matchesOverlay = string.trim().match(regexpWoStartEnd(matcherGradientColors));\n\t\tif(!!string.trim().match(regexpWoStartEnd(matcherGradient)) && !!matchesOverlay)\n\t\t{\n\t\t\toptions.overlay = new ColorValue(matchesOverlay[0]);\n\t\t}\n\n\t\tthis.setValue(options);\n\t}\n\n\tsetOpacity(opacity: number): BgImageValue\n\t{\n\t\t// todo: what for image?\n\n\t\treturn this;\n\t}\n\n\tsetUrl(value: string): BgImageValue\n\t{\n\t\tthis.setValue({url: value});\n\t\treturn this;\n\t}\n\n\tsetUrl2x(value: string): BgImageValue\n\t{\n\t\tthis.setValue({url2x: value});\n\t\treturn this;\n\t}\n\n\tsetFileId(value: number): BgImageValue\n\t{\n\t\tthis.setValue({fileId: value});\n\t\treturn this;\n\t}\n\n\tsetFileId2x(value: number): BgImageValue\n\t{\n\t\tthis.setValue({fileId2x: value});\n\t\treturn this;\n\t}\n\n\tsetSize(value: 'cover' | 'auto'): BgImageValue\n\t{\n\t\tthis.setValue({size: value});\n\t\treturn this;\n\t}\n\n\tsetAttachment(value: 'scroll' | 'fixed'): BgImageValue\n\t{\n\t\tthis.setValue({attachment: value});\n\t\treturn this;\n\t}\n\n\tsetOverlay(value: ColorValue)\n\t{\n\t\tthis.setValue({overlay: value});\n\t\treturn this;\n\t}\n\n\tgetUrl(): string\n\t{\n\t\treturn this.value.url;\n\t}\n\n\tgetUrl2x(): ?string\n\t{\n\t\treturn this.value.url2x;\n\t}\n\n\tgetFileId(): number\n\t{\n\t\treturn this.value.fileId;\n\t}\n\n\tgetFileId2x(): ?number\n\t{\n\t\treturn this.value.fileId2x;\n\t}\n\n\tgetSize(): 'cover' | 'auto'\n\t{\n\t\treturn this.value.size;\n\t}\n\n\tgetAttachment(needBool: boolean = false): string | boolean\n\t{\n\t\treturn needBool\n\t\t\t? this.value.attachment === 'fixed'\n\t\t\t: this.value.attachment;\n\t}\n\n\tgetOverlay(): ColorValue\n\t{\n\t\treturn this.value.overlay;\n\t}\n\n\tgetOpacity(): number\n\t{\n\t\t// todo: how image can have opacity?\n\t\treturn 1;\n\t}\n\n\tgetStyleString(): string\n\t{\n\t\tlet style = '';\n\t\tif (this.value.overlay !== null)\n\t\t{\n\t\t\tstyle = `linear-gradient(${this.value.overlay.getStyleString()},${this.value.overlay.getStyleString()})`;\n\t\t}\n\n\t\t// todo: what if url is null\n\t\tconst {url, url2x, size, attachment} = this.value;\n\t\tconst endString = `center / ${size} ${attachment}`;\n\t\tif (url !== null)\n\t\t{\n\t\t\tstyle = style.length ? (style + ',') : '';\n\t\t\tif(url2x !== null)\n\t\t\t{\n\t\t\t\tstyle += `-webkit-image-set(url('${url}') 1x, url('${url2x}') 2x) ${endString},`;\n\t\t\t\tstyle += `image-set(url('${url}') 1x, url('${url2x}') 2x) ${endString},`;\n\t\t\t}\n\t\t\tstyle += `url('${url}') ${endString}`;\n\t\t}\n\n\t\treturn style;\n\t}\n\n\tgetStyleStringForOpacity(): string\n\t{\n\t\t// todo: how image can have opacity?\n\t\treturn '';\n\t}\n\n\tstatic getSizeItemsForButtons(): []\n\t{\n\t\treturn [\n\t\t\t{name: Loc.getMessage('LANDING_FIELD_COLOR-BG_COVER'), value: 'cover'},\n\t\t\t{name: Loc.getMessage('LANDING_FIELD_COLOR-BG_MOSAIC'), value: 'auto'},\n\t\t];\n\t}\n\n\tstatic getAttachmentValueByBool(value: boolean): string\n\t{\n\t\treturn value ? 'fixed' : 'scroll';\n\t}\n}\n","import 'ui.design-tokens';\n\nimport {BaseEvent} from 'main.core.events';\nimport {Dom, Tag, Type, Loc, Text} from 'main.core';\nimport {Image as ImageField} from 'landing.ui.field.image';\nimport {Backend} from 'landing.backend';\nimport {Env} from 'landing.env';\nimport {PageObject} from 'landing.pageobject';\nimport BaseControl from \"../base_control/base_control\";\nimport BgImageValue from '../../bg_image_value';\nimport './css/image.css';\n\nexport default class Image extends BaseControl\n{\n\t// todo: move to type\n\toptions: {\n\t\tblock: BX.Landing.Block,\n\t\tstyleNode: BX.Landing.UI.Style,\n\t\tcontentRoot: ?HTMLDivElement,\n\t\tselector: string,\n\t};\n\n\tconstructor(options)\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Color.Image');\n\t\tthis.options = options;\n\t\tthis.imgField = new ImageField({\n\t\t\tid: 'landing_ui_color_image_' + Text.getRandom().toLowerCase(),\n\t\t\tclassName: 'landing-ui-field-color-image-image',\n\t\t\tcontextType: ImageField.CONTEXT_TYPE_STYLE,\n\t\t\tcompactMode: true,\n\t\t\tdisableLink: true,\n\t\t\tdisableAltField: true,\n\t\t\tallowClear: true,\n\t\t\tisAiImageAvailable: Env.getInstance().getOptions()['ai_image_available'],\n\t\t\tisAiImageActive: Env.getInstance().getOptions()['ai_image_active'],\n\t\t\taiUnactiveInfoCode: Env.getInstance().getOptions()['ai_unactive_info_code'],\n\t\t\tdimensions: {width: 1920},\n\t\t\tuploadParams: {\n\t\t\t\taction: \"Block::uploadFile\",\n\t\t\t\tblock: this.options.block.id,\n\t\t\t},\n\t\t\tcontentRoot: this.options.contentRoot,\n\t\t});\n\t\tthis.imgField.subscribe('change', this.onImageChange.bind(this));\n\n\t\tthis.sizeField = new BX.Landing.UI.Field.Dropdown({\n\t\t\tid: 'landing_ui_color_image_size_' + Text.getRandom().toLowerCase(),\n\t\t\ttitle: Loc.getMessage('LANDING_FIELD_COLOR-BG_SIZE_TITLE'),\n\t\t\tclassName: 'landing-ui-field-color-image-size',\n\t\t\titems: BgImageValue.getSizeItemsForButtons(),\n\t\t\tonChange: this.onSizeChange.bind(this),\n\t\t\tcontentRoot: this.options.contentRoot,\n\t\t});\n\n\t\tthis.attachmentField = new BX.Landing.UI.Field.Checkbox({\n\t\t\tid: 'landing_ui_color_image_attach_' + Text.getRandom().toLowerCase(),\n\t\t\tclassName: 'landing-ui-field-color-image-attachment',\n\t\t\tmultiple: false,\n\t\t\tcompact: true,\n\t\t\titems: [\n\t\t\t\t{ name: Loc.getMessage('LANDING_FIELD_COLOR-BG_FIXED'), value: 'fixed' },\n\t\t\t],\n\t\t\tonChange: this.onAttachmentChange.bind(this),\n\t\t\tvalue: [this.getAttachmentValue()],\n\t\t});\n\t}\n\n\tbuildLayout(): HTMLDivElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"landing-ui-field-color-image\">\n\t\t\t\t${this.imgField.getLayout()}\n\t\t\t\t${this.sizeField.getLayout()}\n\t\t\t\t${this.attachmentField.getLayout()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tonImageChange(event: BaseEvent)\n\t{\n\t\tconst value = this.getValue() || new BgImageValue();\n\t\tif (event.getData().value.src)\n\t\t{\n\t\t\tvalue.setUrl(event.getData().value.src);\n\t\t\tvalue.setFileId(event.getData().value.id);\n\t\t\tif (event.getData().value.src2x)\n\t\t\t{\n\t\t\t\tvalue.setUrl2x(event.getData().value.src2x);\n\t\t\t\tvalue.setFileId2x(event.getData().value.id2x);\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tvalue.setUrl(null);\n\t\t\tvalue.setFileId(null);\n\t\t\tvalue.setUrl2x(null);\n\t\t\tvalue.setFileId2x(null);\n\t\t}\n\n\t\tthis.setValue(value);\n\t\tthis.onChange();\n\n\t\tthis.saveNode(value);\n\t}\n\n\tsaveNode(value: BgImageValue)\n\t{\n\t\tconst style = this.options.styleNode;\n\t\tconst block = this.options.block;\n\n\t\tlet selector;\n\t\tif (\n\t\t\tstyle.selector === block.selector\n\t\t\t|| style.selector === block.makeAbsoluteSelector(block.selector)\n\t\t)\n\t\t{\n\t\t\tselector = '#wrapper';\n\t\t}\n\t\telse if (!style.isSelectGroup())\n\t\t{\n\t\t\tselector = BX.Landing.Utils.join(\n\t\t\t\tstyle.selector.split(\"@\")[0],\n\t\t\t\t\"@\",\n\t\t\t\tstyle.getElementIndex(style.getNode()[0])\n\t\t\t);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tselector = style.selector.split(\"@\")[0];\n\t\t}\n\n\t\tconst data = {[selector]: {}};\n\t\tdata[selector].id = value.getFileId() || -1;\n\t\tdata[selector].id2x = value.getFileId2x() || -1;\n\n\t\tBackend.getInstance()\n\t\t\t.action(\n\t\t\t\t\"Landing\\\\Block::updateNodes\",\n\t\t\t\t{\n\t\t\t\t\tlid: this.options.block.lid,\n\t\t\t\t\tblock: this.options.block.id,\n\t\t\t\t\tdata: data,\n\t\t\t\t},\n\t\t\t)\n\t}\n\n\tonSizeChange(size: string)\n\t{\n\t\tif (Type.isString(size))\n\t\t{\n\t\t\tconst value = this.getValue() || new BgImageValue();\n\t\t\tvalue.setSize(size);\n\t\t\tthis.setValue(value);\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tonAttachmentChange(event)\n\t{\n\t\tif (event instanceof BaseEvent)\n\t\t{\n\t\t\tconst value = this.getValue() || new BgImageValue();\n\t\t\tvalue.setAttachment(\n\t\t\t\tBgImageValue.getAttachmentValueByBool(this.attachmentField.getValue()),\n\t\t\t);\n\t\t\tthis.setValue(value);\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tonChange(event: ?BaseEvent)\n\t{\n\t\tthis.cache.delete('value');\n\t\tthis.emit('onChange', {data: {image: this.getValue()}});\n\t}\n\n\tgetValue(): ?BgImageValue\n\t{\n\t\t// todo: get size and attachement from controls\n\t\treturn this.cache.remember('value', () => {\n\t\t\tconst imgValue = this.imgField.getValue();\n\t\t\tconst url = imgValue.src;\n\t\t\tif (url === null)\n\t\t\t{\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tconst value = new BgImageValue({\n\t\t\t\t\turl: url,\n\t\t\t\t\tfileId: imgValue.id,\n\t\t\t\t});\n\t\t\t\tif (imgValue.src2x)\n\t\t\t\t{\n\t\t\t\t\tvalue.setUrl2x(imgValue.src2x);\n\t\t\t\t\tvalue.setFileId2x(imgValue.fileId2x);\n\t\t\t\t}\n\t\t\t\tconst size = this.sizeField.getValue();\n\t\t\t\tif (size !== null)\n\t\t\t\t{\n\t\t\t\t\tvalue.setSize(size);\n\t\t\t\t}\n\n\t\t\t\tvalue.setAttachment(BgImageValue.getAttachmentValueByBool(this.attachmentField.getValue()));\n\n\t\t\t\t// todo: set overlay\n\n\t\t\t\treturn value;\n\t\t\t}\n\t\t});\n\t}\n\n\tsetValue(value: ?BgImageValue)\n\t{\n\t\tif (this.isNeedSetValue(value))\n\t\t{\n\t\t\t// todo: can delete prev image\n\t\t\tsuper.setValue(value);\n\n\t\t\tif (value === null)\n\t\t\t{\n\t\t\t\tthis.imgField.setValue({src: ''}, true);\n\t\t\t\t// todo: what set size and attachement?\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif (value.getUrl() !== null)\n\t\t\t\t{\n\t\t\t\t\tthis.setActive();\n\t\t\t\t}\n\n\t\t\t\tconst imgFieldValue = {\n\t\t\t\t\ttype: 'image',\n\t\t\t\t\tsrc: value.getUrl(),\n\t\t\t\t\tid: value.getFileId(),\n\t\t\t\t};\n\t\t\t\tif (value.getUrl2x())\n\t\t\t\t{\n\t\t\t\t\timgFieldValue.src2x = value.getUrl2x();\n\t\t\t\t\timgFieldValue.id2x = value.getFileId2x();\n\t\t\t\t}\n\t\t\t\tthis.imgField.setValue(imgFieldValue, true);\n\t\t\t\tthis.sizeField.setValue(this.getSizeValue(), true);\n\t\t\t\tthis.attachmentField.setValue([this.getAttachmentValue()]);\n\t\t\t}\n\t\t}\n\t}\n\n\tsetActive(): void\n\t{\n\t\tDom.addClass(this.imgField.getLayout(), Image.ACTIVE_CLASS);\n\t}\n\n\tunsetActive(): void\n\t{\n\t\tDom.removeClass(this.imgField.getLayout(), Image.ACTIVE_CLASS);\n\t}\n\n\tgetAttachmentValue(): string\n\t{\n\t\tif (\n\t\t\tthis.options\n\t\t\t&& this.options.block\n\t\t\t&& this.options.block.content\n\t\t\t&& Dom.hasClass(this.options.block.content, 'g-bg-image')\n\t\t)\n\t\t{\n\t\t\tconst blockContentStyle = window.getComputedStyle(this.options.block.content);\n\t\t\tconst bgAttachmentValue = blockContentStyle.getPropertyValue('background-attachment');\n\n\t\t\treturn bgAttachmentValue.includes('fixed') ? 'fixed' : 'scroll';\n\t\t}\n\n\t\treturn 'scroll';\n\t}\n\n\tgetSizeValue(): string\n\t{\n\t\tif (\n\t\t\tthis.options\n\t\t\t&& this.options.block\n\t\t\t&& this.options.block.content\n\t\t\t&& Dom.hasClass(this.options.block.content, 'g-bg-image')\n\t\t)\n\t\t{\n\t\t\tconst blockContentStyle = window.getComputedStyle(this.options.block.content);\n\t\t\tconst bgSizeValue = blockContentStyle.getPropertyValue('background-size');\n\n\t\t\treturn bgSizeValue.includes('cover') ? 'cover' : 'auto';\n\t\t}\n\n\t\treturn 'cover';\n\t}\n}\n","export default function rgbaStringToRgbString(str: string): string | null\n{\n\tconst regRgba = /\\d{1,3}(\\.\\d+)?/g;\n\tconst rgba = str.match(regRgba);\n\tconst r = rgba[0] ? rgba[0] : null;\n\tconst g = rgba[1] ? rgba[1] : null;\n\tconst b = rgba[2] ? rgba[2] : null;\n\tif (r === null || g === null || b === null)\n\t{\n\t\treturn null;\n\t}\n\treturn createRgbString(r, g, b);\n}\n\nfunction createRgbString(r, g, b): string\n{\n\treturn 'rgb(' + r + ',' + g + ','+ b + ')';\n}","import {Tag, Type, Loc, Dom} from 'main.core';\nimport {BaseEvent} from \"main.core.events\";\n\nimport BgColor from './bg_color';\nimport Image from '../control/image/image';\nimport ColorSet from '../control/color_set/color_set';\n\nimport ColorValue from \"../color_value\";\nimport BgImageValue from '../bg_image_value';\nimport {IColorValue} from '../types/i_color_value';\nimport Opacity from '../control/opacity/opacity';\nimport Tabs from '../layout/tabs/tabs';\nimport GradientValue from '../gradient_value';\nimport Primary from '../layout/primary/primary';\nimport Zeroing from '../layout/zeroing/zeroing';\nimport {defaultBgImageSize, defaultBgImageAttachment} from \"../types/color_value_options\";\nimport rgbaStringToRgbString from '../internal/rgba-string-to-rgb-string';\n\nexport default class Bg extends BgColor\n{\n\tstatic BG_URL_VAR: string = '--bg-url';\n\tstatic BG_URL_2X_VAR: string = '--bg-url-2x';\n\tstatic BG_OVERLAY_VAR: string = '--bg-overlay';\n\tstatic BG_SIZE_VAR: string = '--bg-size';\n\tstatic BG_ATTACHMENT_VAR: string = '--bg-attachment';\n\tstatic BG_IMAGE: string = 'background-image';\n\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Processor.Bg');\n\t\tthis.styleNode = options.styleNode;\n\t\tthis.parentVariableName = this.variableName;\n\t\tthis.variableName = [\n\t\t\tthis.parentVariableName,\n\t\t\tBg.BG_URL_VAR,\n\t\t\tBg.BG_URL_2X_VAR,\n\t\t\tBg.BG_OVERLAY_VAR,\n\t\t\tBg.BG_SIZE_VAR,\n\t\t\tBg.BG_ATTACHMENT_VAR,\n\t\t\tBg.BG_IMAGE,\n\t\t];\n\t\tthis.parentClassName = this.className;\n\t\tthis.className = 'g-bg-image';\n\n\t\tthis.image = new Image(options);\n\t\tthis.image.subscribe('onChange', this.onImageChange.bind(this));\n\n\t\tthis.overlay = new ColorSet(options);\n\t\tthis.overlay.subscribe('onChange', this.onOverlayColorChange.bind(this));\n\t\tthis.overlayOpacity = new Opacity({defaultOpacity: 0.5});\n\t\tthis.overlayOpacity.subscribe('onChange', this.onOverlayOpacityChange.bind(this));\n\t\tthis.overlayPrimary = new Primary();\n\t\tthis.overlayPrimary.subscribe('onChange', this.onOverlayPrimaryChange.bind(this));\n\t\tconst overlayZeroingOptions = {\n\t\t\ttextCode: 'LANDING_FIELD_COLOR_OVERLAY_ZEROING_TITLE_2',\n\t\t\tstyleNode: options.styleNode,\n\t\t};\n\t\tthis.overlayZeroing = new Zeroing(overlayZeroingOptions);\n\t\tthis.overlayZeroing.subscribe('onChange', this.overlayZeroingChange.bind(this));\n\n\t\tthis.imageTabs = new Tabs().appendTab(\n\t\t\t'Overlay',\n\t\t\tLoc.getMessage('LANDING_FIELD_COLOR-BG_OVERLAY'),\n\t\t\t[this.overlay, this.overlayPrimary, this.overlayZeroing, this.overlayOpacity],\n\t\t);\n\n\t\tthis.bigTabs = new Tabs()\n\t\t\t.setBig(true)\n\t\t\t.appendTab(\n\t\t\t\t'Color',\n\t\t\t\tLoc.getMessage('LANDING_FIELD_COLOR-BG_COLOR'),\n\t\t\t\t[this.colorSet, this.primary, this.zeroing, this.tabs],\n\t\t\t)\n\t\t\t.appendTab(\n\t\t\t\t'Image',\n\t\t\t\tLoc.getMessage('LANDING_FIELD_COLOR-BG_IMAGE'),\n\t\t\t\t[this.image, this.imageTabs],\n\t\t\t);\n\t}\n\n\tbuildLayout(): HTMLElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"landing-ui-field-color-color\">\n\t\t\t\t${this.bigTabs.getLayout()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tonColorSetChange(event: BaseEvent)\n\t{\n\t\tthis.image.unsetActive();\n\t\tthis.overlay.unsetActive();\n\n\t\tsuper.onColorSetChange(event);\n\t}\n\n\tonGradientChange(event: BaseEvent)\n\t{\n\t\tthis.image.unsetActive();\n\t\tthis.overlay.unsetActive();\n\n\t\tsuper.onGradientChange(event);\n\t}\n\n\tonImageChange()\n\t{\n\t\t// todo: can drop image from b_landing_file after change\n\t\tthis.unsetActive();\n\n\t\tthis.activeControl = this.image;\n\t\tthis.image.setActive();\n\n\t\tthis.modifyStyleNode(this.styleNode);\n\t}\n\n\tonOverlayChange(event: BaseEvent)\n\t{\n\t\tconst overlayValue = event.getData().color;\n\t\tif (overlayValue !== null)\n\t\t{\n\t\t\toverlayValue.setOpacity(this.overlayOpacity.getValue().getOpacity());\n\t\t}\n\t\tthis.overlayOpacity.setValue(overlayValue);\n\n\t\tconst imageValue = this.image.getValue();\n\t\tif (imageValue !== null)\n\t\t{\n\t\t\tthis.image.setValue(imageValue.setOverlay(overlayValue));\n\t\t\tthis.activeControl = this.image;\n\t\t\tthis.image.setActive();\n\t\t\tthis.colorSet.unsetActive();\n\t\t\tthis.gradient.unsetActive();\n\t\t}\n\n\t\tthis.modifyStyleNode(this.styleNode);\n\t}\n\n\tonOverlayOpacityChange()\n\t{\n\t\tthis.modifyStyleNode(this.styleNode);\n\t}\n\n\tonOverlayColorChange(event: BaseEvent)\n\t{\n\t\tthis.overlayPrimary.unsetActive();\n\t\tthis.overlayZeroing.unsetActive();\n\t\tthis.onOverlayChange(event);\n\t}\n\n\tonOverlayPrimaryChange(event: BaseEvent)\n\t{\n\t\tthis.overlay.unsetActive();\n\t\tthis.overlayZeroing.unsetActive();\n\t\tthis.onOverlayChange(event);\n\t}\n\n\toverlayZeroingChange(event: BaseEvent)\n\t{\n\t\tthis.overlay.unsetActive();\n\t\tthis.overlayPrimary.unsetActive();\n\t\tthis.overlayZeroing.setActive();\n\t\tthis.onOverlayChange(event);\n\t}\n\n\tunsetActive()\n\t{\n\t\tsuper.unsetActive();\n\t\tthis.image.unsetActive();\n\t}\n\n\t/**\n\t * Set value by new format\n\t */\n\tsetProcessorValue(value: {string: string}): void\n\t{\n\t\tthis.cache.delete('value');\n\t\tthis.setValue(value);\n\t}\n\n\tsetValue(value: {string: string} | string | null): void\n\t{\n\t\tthis.image.setValue(null);\n\t\tthis.bigTabs.showTab('Color');\n\n\t\tif (Type.isNull(value))\n\t\t{\n\t\t\tsuper.setValue(value);\n\t\t}\n\t\telse if (Type.isString(value))\n\t\t{\n\t\t\tsuper.setValue(value);\n\t\t}\n\t\telse if (this.parentVariableName in value && Type.isString(value[this.parentVariableName]))\n\t\t{\n\t\t\tsuper.setValue(value[this.parentVariableName]);\n\t\t}\n\t\telse if (Type.isObject(value))\n\t\t{\n\t\t\t// todo: super.setValue null?\n\t\t\tconst bgValue = new BgImageValue();\n\t\t\tif (Bg.BG_URL_VAR in value)\n\t\t\t{\n\t\t\t\tbgValue.setUrl(value[Bg.BG_URL_VAR].replace(/url\\([\"']/i, '').replace(/['\"]\\)/i, ''));\n\t\t\t}\n\t\t\tif (Bg.BG_URL_2X_VAR in value)\n\t\t\t{\n\t\t\t\tbgValue.setUrl2x(value[Bg.BG_URL_2X_VAR].replace(/url\\([\"']/i, '').replace(/['\"]\\)/i, ''));\n\t\t\t}\n\t\t\tif (Bg.BG_SIZE_VAR in value)\n\t\t\t{\n\t\t\t\tbgValue.setSize(value[Bg.BG_SIZE_VAR]);\n\t\t\t}\n\t\t\tif (Bg.BG_ATTACHMENT_VAR in value)\n\t\t\t{\n\t\t\t\tbgValue.setAttachment(value[Bg.BG_ATTACHMENT_VAR]);\n\t\t\t}\n\t\t\tif (Bg.BG_OVERLAY_VAR in value)\n\t\t\t{\n\t\t\t\tbgValue.setOverlay(new ColorValue(value[Bg.BG_OVERLAY_VAR]));\n\t\t\t}\n\t\t\tthis.image.setValue(bgValue);\n\t\t\tthis.bigTabs.showTab('Image');\n\t\t\tthis.activeControl = this.image;\n\n\t\t\tthis.imageTabs.showTab('Overlay');\n\t\t\tif (Bg.BG_OVERLAY_VAR in value)\n\t\t\t{\n\t\t\t\tconst overlayValue = new ColorValue(value[Bg.BG_OVERLAY_VAR]);\n\t\t\t\tthis.overlay.setValue(overlayValue);\n\t\t\t\tthis.overlayOpacity.setValue(overlayValue);\n\t\t\t\tif (value[Bg.BG_OVERLAY_VAR].startsWith('var(--primary') || value['isPrimaryBasedColor'] === true)\n\t\t\t\t{\n\t\t\t\t\tthis.overlayPrimary.setActive();\n\t\t\t\t\tthis.overlay.unsetActive();\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.overlayZeroing.setActive();\n\t\t\t}\n\t\t}\n\t}\n\n\t// todo: create base value instead interface. In this case can return ALL types, color, grad, bg\n\tgetValue(): ?IColorValue\n\t{\n\t\treturn this.cache.remember('value', () => {\n\t\t\tif (this.activeControl === this.image)\n\t\t\t{\n\t\t\t\tconst imageValue = this.image.getValue();\n\t\t\t\tlet overlayValue;\n\t\t\t\tlet isActive = false;\n\t\t\t\tif (this.overlay.isActive())\n\t\t\t\t{\n\t\t\t\t\toverlayValue = this.overlay.getValue();\n\t\t\t\t\tisActive = true;\n\t\t\t\t}\n\t\t\t\tif (this.overlayPrimary.isActive())\n\t\t\t\t{\n\t\t\t\t\toverlayValue = this.overlayPrimary.getValue();\n\t\t\t\t\tisActive = true;\n\t\t\t\t}\n\t\t\t\tif (this.overlayZeroing.isActive())\n\t\t\t\t{\n\t\t\t\t\toverlayValue = null;\n\t\t\t\t}\n\t\t\t\tif (imageValue !== null && overlayValue !== null && isActive)\n\t\t\t\t{\n\t\t\t\t\toverlayValue.setOpacity(this.overlayOpacity.getValue().getOpacity());\n\t\t\t\t\timageValue.setOverlay(overlayValue);\n\t\t\t\t}\n\n\t\t\t\treturn imageValue;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\treturn super.getValue();\n\t\t\t}\n\t\t});\n\t}\n\n\tgetClassName(): [string]\n\t{\n\t\tconst value = this.getValue();\n\t\tif (value === null || value instanceof ColorValue || value instanceof GradientValue)\n\t\t{\n\t\t\treturn [this.parentClassName];\n\t\t}\n\n\t\treturn [this.className];\n\t}\n\n\t// todo: what about fileid?\n\tgetStyle(): {string: ?string}\n\t{\n\t\tif (this.getValue() === null)\n\t\t{\n\t\t\t// todo: not null, but what?\n\t\t\treturn {\n\t\t\t\t[this.parentVariableName]: null,\n\t\t\t\t[Bg.BG_URL_VAR]: null,\n\t\t\t\t[Bg.BG_URL_2X_VAR]: null,\n\t\t\t\t[Bg.BG_OVERLAY_VAR]: null,\n\t\t\t\t[Bg.BG_SIZE_VAR]: null,\n\t\t\t\t[Bg.BG_ATTACHMENT_VAR]: null,\n\t\t\t};\n\t\t}\n\n\t\tconst value = this.getValue();\n\t\tlet color = null;\n\t\tlet image = null;\n\t\tlet image2x = null;\n\t\tlet overlay = null;\n\t\tlet size = null;\n\t\tlet attachment = null;\n\t\tconst backgroundImage = '';\n\t\tif (value instanceof ColorValue || value instanceof GradientValue)\n\t\t{\n\t\t\t// todo: need change class if not a image?\n\t\t\tcolor = value.getStyleString();\n\t\t}\n\t\telse\n\t\t{\n\t\t\timage = value.getUrl() ? `url('${value.getUrl()}')` : '';\n\t\t\timage2x = value.getUrl2x() ? `url('${value.getUrl2x()}')` : '';\n\t\t\toverlay = value.getOverlay() ? value.getOverlay().getStyleString() : 'rgba(0, 0, 0, 0)';\n\t\t\tsize = value.getSize();\n\t\t\tattachment = value.getAttachment();\n\t\t}\n\n\t\treturn {\n\t\t\t[this.parentVariableName]: color,\n\t\t\t[Bg.BG_URL_VAR]: image,\n\t\t\t[Bg.BG_URL_2X_VAR]: image2x ? image2x : image,\n\t\t\t[Bg.BG_OVERLAY_VAR]: overlay,\n\t\t\t[Bg.BG_SIZE_VAR]: size,\n\t\t\t[Bg.BG_ATTACHMENT_VAR]: attachment,\n\t\t\t[Bg.BG_IMAGE]: backgroundImage,\n\t\t};\n\t}\n\n\tmodifyStyleNode(styleNode)\n\t{\n\t\tDom.style(styleNode.getNode()[0], Bg.BG_IMAGE, '');\n\t\tthis.onChange();\n\t}\n\n\tprepareProcessorValue(processorValue, defaultValue)\n\t{\n\t\tif (defaultValue && defaultValue.hasOwnProperty(Bg.BG_IMAGE))\n\t\t{\n\t\t\tconst regUrl = /url\\(/i;\n\t\t\tconst searchUrl = defaultValue[Bg.BG_IMAGE].match(regUrl);\n\t\t\tif (searchUrl !== null)\n\t\t\t{\n\t\t\t\tprocessorValue[Bg.BG_IMAGE] = '';\n\t\t\t\tprocessorValue[Bg.BG_SIZE_VAR] = defaultBgImageSize;\n\t\t\t\tprocessorValue[Bg.BG_ATTACHMENT_VAR] = defaultBgImageAttachment;\n\t\t\t\tconst regUrl = /image-set\\(url\\(/i;\n\t\t\t\tconst searchUrl = defaultValue[Bg.BG_IMAGE].match(regUrl);\n\t\t\t\tif (searchUrl !== null)\n\t\t\t\t{\n\t\t\t\t\tconst regSearchUrl = /[\"'](https?:\\/)?\\/[\\S]*[\"']/gi;\n\t\t\t\t\tconst search = defaultValue[Bg.BG_IMAGE].match(regSearchUrl);\n\t\t\t\t\tif (search)\n\t\t\t\t\t{\n\t\t\t\t\t\tconst regReplace = /[\"']/g;\n\t\t\t\t\t\tprocessorValue[Bg.BG_URL_VAR] = search[0].replaceAll(regReplace, '');\n\t\t\t\t\t\tif (search.length === 2)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tprocessorValue[Bg.BG_URL_2X_VAR] = search[1].replaceAll(regReplace, '');\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tprocessorValue[Bg.BG_URL_2X_VAR] = search[0].replaceAll(regReplace, '');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tprocessorValue[Bg.BG_URL_VAR] = defaultValue[Bg.BG_IMAGE];\n\t\t\t\t\tprocessorValue[Bg.BG_URL_2X_VAR] = defaultValue[Bg.BG_IMAGE];\n\t\t\t\t}\n\t\t\t\tconst computedStyleNode = getComputedStyle(this.styleNode.getNode()[0], ':after');\n\t\t\t\tif (!processorValue[Bg.BG_OVERLAY_VAR])\n\t\t\t\t{\n\t\t\t\t\tprocessorValue[Bg.BG_OVERLAY_VAR] = computedStyleNode.backgroundColor;\n\t\t\t\t}\n\t\t\t\tconst currentColorRgb = rgbaStringToRgbString(computedStyleNode.backgroundColor);\n\t\t\t\tconst primaryColorRgb = rgbaStringToRgbString(computedStyleNode.getPropertyValue('--primary-opacity-0'));\n\t\t\t\tif (\n\t\t\t\t\tcurrentColorRgb !== null\n\t\t\t\t\t&& primaryColorRgb !== null\n\t\t\t\t\t&& currentColorRgb === primaryColorRgb\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tprocessorValue['isPrimaryBasedColor'] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn processorValue;\n\t}\n}\n","import Color from \"./color\";\n\nexport default class BorderColor extends Color\n{\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Processor.BorderColor');\n\t\tthis.property = 'border-color';\n\t\tthis.variableName = '--border-color';\n\t\tthis.className = 'g-border-color';\n\t}\n}","import Color from \"./color\";\n\nexport default class BorderColorHover extends Color\n{\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Processor.BorderColorHover');\n\t\tthis.property = 'border-color';\n\t\tthis.variableName = '--border-color--hover';\n\t\tthis.className = 'g-border-color--hover';\n\t\tthis.pseudoClass = ':hover';\n\t}\n}","import BgColor from './bg_color';\n\nexport default class BgColorHover extends BgColor\n{\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Processor.BgColorHover');\n\t\tthis.property = ['background-image', 'background-color'];\n\t\tthis.variableName = '--bg-hover';\n\t\tthis.className = 'g-bg--hover';\n\t\tthis.pseudoClass = ':hover';\n\t}\n}","import BgColor from './bg_color';\n\nimport ColorValue from '../color_value';\n\nexport default class BgColorAfter extends BgColor\n{\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Processor.BgColorAfter');\n\t\tthis.property = ['background-image', 'background-color'];\n\t\tthis.variableName = '--bg--after';\n\t\tthis.className = 'g-bg--after';\n\t\tthis.pseudoClass = ':after';\n\n\t\tconst opacityValue = this.getValue() || new ColorValue();\n\t\tthis.opacity.setValue(opacityValue.setOpacity(0.5));\n\t\tthis.tabs.showTab('Opacity');\n\t}\n}\n","import BgColor from './bg_color';\nimport ColorValue from '../color_value';\n\nexport default class BgColorBefore extends BgColor\n{\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Processor.BgColorBefore');\n\t\tthis.property = ['background-image', 'background-color'];\n\t\tthis.variableName = '--bg--before';\n\t\tthis.className = 'g-bg--before';\n\t\tthis.pseudoClass = ':before';\n\n\t\tconst opacityValue = this.getValue() || new ColorValue();\n\t\tthis.opacity.setValue(opacityValue.setOpacity(0.5));\n\t\tthis.tabs.showTab('Opacity');\n\t}\n}\n","import Color from './color';\n\nexport default class NavbarColor extends Color\n{\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Processor.NavbarColor');\n\t\tthis.property = 'color';\n\t\tthis.variableName = '--navbar-color';\n\t\tthis.className = 'u-navbar-color';\n\t}\n}","import Color from './color';\n\nexport default class NavbarColorHover extends Color\n{\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Processor.NavbarColorHover');\n\t\tthis.property = 'color';\n\t\tthis.variableName = '--navbar-color--hover';\n\t\tthis.className = 'u-navbar-color--hover';\n\t\tthis.pseudoClass = ':hover';\n\t}\n}","import Color from './color';\n\nexport default class NavbarColorFixMoment extends Color\n{\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Processor.NavbarColorFixMoment');\n\t\tthis.property = 'color';\n\t\tthis.variableName = '--navbar-color--fix-moment';\n\t\tthis.className = 'u-navbar-color--fix-moment';\n\t}\n}","import Color from './color';\n\nexport default class NavbarColorFixMomentHover extends Color\n{\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Processor.NavbarColorFixMomentHover');\n\t\tthis.property = 'color';\n\t\tthis.variableName = '--navbar-color--fix-moment--hover';\n\t\tthis.className = 'u-navbar-color--fix-moment--hover';\n\t\tthis.pseudoClass = ':hover';\n\t}\n}","import Color from './color';\n\nexport default class NavbarBgColor extends Color\n{\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Processor.NavbarBgColor');\n\t\tthis.property = 'background-color';\n\t\tthis.variableName = '--navbar-bg-color';\n\t\tthis.className = 'u-navbar-bg';\n\t}\n}","import Color from './color';\n\nexport default class NavbarBgColorHover extends Color\n{\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Processor.NavbarBgColorHover');\n\t\tthis.property = 'background-color';\n\t\tthis.variableName = '--navbar-bg-color--hover';\n\t\tthis.className = 'u-navbar-bg--hover';\n\t\tthis.pseudoClass = ':hover';\n\t}\n}","import Color from \"./color\";\n\nexport default class BorderColorTop extends Color\n{\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Processor.BorderColorTop');\n\t\tthis.property = 'border-top-color';\n\t\tthis.variableName = '--border-color-top';\n\t\tthis.className = 'g-border-color-top';\n\t}\n}","import Color from \"./color\";\n\nexport default class FillColor extends Color\n{\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Processor.FillColor');\n\t\tthis.property = 'fill';\n\t\tthis.pseudoClass = ':before';\n\t\tthis.variableName = '--fill-first';\n\t\tthis.className = 'g-fill-first';\n\t}\n}","import Color from \"./color\";\n\nexport default class FillColorSecond extends Color\n{\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Processor.FillColorSecond');\n\t\tthis.property = 'fill';\n\t\tthis.pseudoClass = ':after';\n\t\tthis.variableName = '--fill-second';\n\t\tthis.className = 'g-fill-second';\n\t}\n}","import Color from \"./color\";\nimport ColorValue from '../color_value';\n\nexport default class ButtonColor extends Color\n{\n\tstatic COLOR_CONTRAST_VAR: string = '--button-color-contrast';\n\tstatic COLOR_HOVER_VAR: string = '--button-color-hover';\n\tstatic COLOR_LIGHT_VAR: string = '--button-color-light';\n\tstatic COLOR_VAR: string = '--button-color';\n\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Processor.ButtonColor');\n\t\tthis.property = 'background-color';\n\t\t// order is important! Base variable must be last. Hack :-/\n\t\tthis.variableName = [\n\t\t\tButtonColor.COLOR_CONTRAST_VAR,\n\t\t\tButtonColor.COLOR_HOVER_VAR,\n\t\t\tButtonColor.COLOR_LIGHT_VAR,\n\t\t\tButtonColor.COLOR_VAR,\n\t\t];\n\t\tthis.className = 'g-button-color';  //todo: ?\n\t}\n\n\tgetStyle(): {string: ?string}\n\t{\n\t\tif (this.getValue() === null)\n\t\t{\n\t\t\treturn {\n\t\t\t\t[ButtonColor.COLOR_CONTRAST_VAR]: null,\n\t\t\t\t[ButtonColor.COLOR_HOVER_VAR]: null,\n\t\t\t\t[ButtonColor.COLOR_LIGHT_VAR]: null,\n\t\t\t\t[ButtonColor.COLOR_VAR]: null,\n\t\t\t};\n\t\t}\n\n\t\tconst value = this.getValue();\n\t\tconst valueContrast = value.getContrast().lighten(10);\n\t\tconst valueHover = new ColorValue(value).lighten(10);\n\t\tconst valueLight = value.getLighten();\n\n\t\treturn {\n\t\t\t[ButtonColor.COLOR_CONTRAST_VAR]: valueContrast.getStyleString(),\n\t\t\t[ButtonColor.COLOR_HOVER_VAR]: valueHover.getStyleString(),\n\t\t\t[ButtonColor.COLOR_LIGHT_VAR]: valueLight.getStyleString(),\n\t\t\t[ButtonColor.COLOR_VAR]: value.getStyleString(),\n\t\t};\n\t}\n}","import Color from './color';\n\nexport default class NavbarCollapseBgColor extends Color\n{\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Processor.NavbarCollapseBgColor');\n\t\tthis.property = 'background-color';\n\t\tthis.variableName = '--navbar-collapse-bg-color';\n\t\tthis.className = 'u-navbar-collapse-bg';\n\t}\n}","import {Dom, Type} from 'main.core';\nimport {BaseField} from 'landing.ui.field.basefield';\nimport {TextField} from 'landing.ui.field.textfield';\n\nimport BaseProcessor from './processor/base_processor';\nimport Color from './processor/color';\nimport ColorHover from './processor/color_hover';\nimport Bg from './processor/bg';\nimport BorderColor from './processor/border_color';\nimport BorderColorHover from './processor/border_color_hover';\nimport BgColor from './processor/bg_color';\nimport BgColorHover from './processor/bg_color_hover';\nimport BgColorAfter from './processor/bg_color_after';\nimport BgColorBefore from './processor/bg_color_before';\nimport NavbarColor from './processor/navbar_color';\nimport NavbarColorHover from './processor/navbar_color_hover';\nimport NavbarColorFixMoment from './processor/navbar_color_fix_moment';\nimport NavbarColorFixMomentHover from './processor/navbar_color_fix_moment_hover';\nimport NavbarBgColor from './processor/navbar_bg';\nimport NavbarBgColorHover from './processor/navbar_bg_hover';\nimport BorderColorTop from './processor/border_color-top';\nimport FillColor from './processor/fill_color';\nimport FillColorSecond from './processor/fill_color_second';\nimport ButtonColor from './processor/button_color';\nimport {IColorValue} from './types/i_color_value';\nimport NavbarCollapseBgColor from './processor/navbar_collapse_bg';\nimport ColorValue from './color_value';\nimport BgImageValue from './bg_image_value';\nimport GradientValue from './gradient_value';\n\nexport class ColorField extends BaseField\n{\n\tprocessor: BaseProcessor;\n\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.items = ('items' in options && options.items) ? options.items : [];\n\t\tthis.postfix = (typeof options.postfix === 'string') ? options.postfix : '';\n\t\tthis.frame = (typeof options.frame === 'object') ? options.frame : null;\n\t\tconst processorOptions = {\n\t\t\tblock: options.block,\n\t\t\tstyleNode: options.styleNode,\n\t\t\tselector: options.selector,\n\t\t\tcontentRoot: this.contentRoot,\n\t\t\tcontent: options.content,\n\t\t};\n\n\t\tthis.changeHandler = (typeof options.onChange === \"function\") ? options.onChange : (() => {});\n\t\tthis.valueChangeHandler = (typeof options.onValueChange === \"function\") ? options.onValueChange : (() => {});\n\t\tthis.resetHandler = (typeof options.onReset === \"function\") ? options.onReset : (function () {});\n\n\t\t// todo: rename \"subtype\"\n\t\tswitch (options.subtype)\n\t\t{\n\t\t\tcase 'color':\n\t\t\t\tthis.processor = new Color(processorOptions);\n\t\t\t\tbreak;\n\n\t\t\tcase 'color-hover':\n\t\t\t\tthis.processor = new ColorHover(processorOptions);\n\t\t\t\tbreak;\n\n\t\t\tcase 'bg':\n\t\t\t\tthis.processor = new Bg(processorOptions);\n\t\t\t\tbreak;\n\n\t\t\tcase 'bg-color':\n\t\t\t\tthis.processor = new BgColor(processorOptions);\n\t\t\t\tbreak;\n\n\t\t\tcase 'bg-color-hover':\n\t\t\t\tthis.processor = new BgColorHover(processorOptions);\n\t\t\t\tbreak;\n\n\t\t\tcase 'bg-color-after':\n\t\t\t\tthis.processor = new BgColorAfter(processorOptions);\n\t\t\t\tbreak;\n\n\t\t\tcase 'bg-color-before':\n\t\t\t\tthis.processor = new BgColorBefore(processorOptions);\n\t\t\t\tbreak;\n\n\t\t\tcase 'border-color':\n\t\t\t\tthis.processor = new BorderColor(processorOptions);\n\t\t\t\tbreak;\n\n\t\t\tcase 'border-color-hover':\n\t\t\t\tthis.processor = new BorderColorHover(processorOptions);\n\t\t\t\tbreak;\n\n\t\t\tcase 'border-color-top':\n\t\t\t\tthis.processor = new BorderColorTop(processorOptions);\n\t\t\t\tbreak;\n\n\t\t\tcase 'navbar-color':\n\t\t\t\tthis.processor = new NavbarColor(processorOptions);\n\t\t\t\tbreak;\n\n\t\t\tcase 'navbar-color-hover':\n\t\t\t\tthis.processor = new NavbarColorHover(processorOptions);\n\t\t\t\tbreak;\n\n\t\t\tcase 'navbar-color-fix-moment':\n\t\t\t\tthis.processor = new NavbarColorFixMoment(processorOptions);\n\t\t\t\tbreak;\n\n\t\t\tcase 'navbar-color-fix-moment-hover':\n\t\t\t\tthis.processor = new NavbarColorFixMomentHover(processorOptions);\n\t\t\t\tbreak;\n\n\t\t\tcase 'navbar-bg-color':\n\t\t\t\tthis.processor = new NavbarBgColor(processorOptions);\n\t\t\t\tbreak;\n\n\t\t\tcase 'navbar-bg-color-hover':\n\t\t\t\tthis.processor = new NavbarBgColorHover(processorOptions);\n\t\t\t\tbreak;\n\n\t\t\tcase 'navbar-collapse-bg-color':\n\t\t\t\tthis.processor = new NavbarCollapseBgColor(processorOptions);\n\t\t\t\tbreak;\n\n\t\t\tcase 'fill-color':\n\t\t\t\tthis.processor = new FillColor(processorOptions);\n\t\t\t\tbreak;\n\n\t\t\tcase 'fill-color-second':\n\t\t\t\tthis.processor = new FillColorSecond(processorOptions);\n\t\t\t\tbreak;\n\n\t\t\tcase 'button-color':\n\t\t\t\tthis.processor = new ButtonColor(processorOptions);\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tthis.property = this.processor.getProperty()[this.processor.getProperty().length - 1];\n\t\tthis.processor.getClassName().forEach(\n\t\t\titem => this.items.push({name: item, value: item}),\n\t\t);\n\n\t\t// todo: what a input?\n\t\tDom.remove(this.input);\n\t\tthis.layout.classList.add(\"landing-ui-field-color\");\n\t\tDom.append(this.processor.getLayout(), this.layout);\n\n\t\tthis.processor.subscribe('onChange', this.onChange.bind(this));\n\t\tthis.processor.subscribe('onReset', this.onReset.bind(this));\n\t}\n\n\tgetInlineProperties(): [string]\n\t{\n\t\treturn this.processor.getVariableName();\n\t}\n\n\tprepareInlineProperties(props): [string]\n\t{\n\t\tprops.push('background-image');\n\t\treturn props;\n\t}\n\n\tgetComputedProperties(): [string]\n\t{\n\t\treturn this.processor.getProperty();\n\t}\n\n\tgetPseudoElement(): ?string\n\t{\n\t\treturn this.processor.getPseudoClass();\n\t}\n\n\tonChange()\n\t{\n\t\tthis.changeHandler(\n\t\t\t{\n\t\t\t\tclassName: this.processor.getClassName(),\n\t\t\t\tstyle: this.processor.getStyle(),\n\t\t\t},\n\t\t\tthis.items,\n\t\t\tthis.postfix,\n\t\t\tthis.property,\n\t\t);\n\n\t\t// add fake text field for correctly getValue() in handler\n\t\tconst value = this.getValue();\n\n\t\tlet content = '';\n\t\tif (value instanceof ColorValue)\n\t\t{\n\t\t\tcontent = value.getStyleString();\n\t\t}\n\t\telse if (value instanceof BgImageValue)\n\t\t{\n\t\t\tcontent = value.getUrl();\n\t\t}\n\t\telse if (value instanceof GradientValue)\n\t\t{\n\t\t\tcontent = value.getStyleString();\n\t\t}\n\n\t\tthis.valueChangeHandler(\n\t\t\tnew TextField({\n\t\t\t\tselector: this.selector,\n\t\t\t\tattribute: this.attribute,\n\t\t\t\tcontent: content,\n\t\t\t\ttextOnly: true,\n\t\t\t})\n\t\t);\n\n\t\tthis.emit('onChange');\n\t}\n\n\tonReset()\n\t{\n\t\tthis.resetHandler(this.items, this.postfix, this.property);\n\t}\n\n\tgetValue(): IColorValue\n\t{\n\t\treturn this.processor.getValue() || this.processor.getNullValue();\n\t}\n\n\tsetValue(value: {string: ?string})\n\t{\n\t\tlet processorValue = null;\n\t\t// now for multiple properties get just last value. Maybe, need object-like values\n\t\tthis.prepareInlineProperties(this.getInlineProperties()).forEach(prop => {\n\t\t\tif (prop in value && !this.processor.isNullValue(value[prop]))\n\t\t\t{\n\t\t\t\tif (!Type.isObject(processorValue))\n\t\t\t\t{\n\t\t\t\t\tprocessorValue = {};\n\t\t\t\t}\n\t\t\t\tprocessorValue[prop] = value[prop];\n\t\t\t}\n\t\t});\n\n\t\tlet defaultValue = null;\n\t\tthis.getComputedProperties().forEach(prop => {\n\t\t\tif (prop in value && !this.processor.isNullValue(value[prop]))\n\t\t\t{\n\t\t\t\tif (!Type.isObject(defaultValue))\n\t\t\t\t{\n\t\t\t\t\tdefaultValue = {};\n\t\t\t\t}\n\t\t\t\tdefaultValue[prop] = value[prop];\n\t\t\t}\n\t\t});\n\n\t\tprocessorValue = this.processor.prepareProcessorValue(processorValue, defaultValue);\n\t\tif (processorValue !== null)\n\t\t{\n\t\t\tthis.processor.setProcessorValue(processorValue);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.processor.setDefaultValue(defaultValue);\n\t\t\tthis.processor.defineActiveControl(this.items, this.data.styleNode);\n\t\t}\n\t}\n\n\tonFrameLoad()\n\t{\n\t\t// todo: now not work with \"group select\", can use just any node from elements. If group - need forEach\n\t\tconst value = this.data.styleNode.getValue(true);\n\t\tthis.setValue(value.style);\n\t}\n}"],"names":["matcher","isRgbString","rgbString","match","matcherHex","isHex","hex","trim","matcherHsl","isHslString","hsla","hexToRgb","length","r","parseInt","g","b","rgbToHsla","rgb","max","Math","min","h","s","l","d","round","a","hexToHsl","rgbToHex","toString","hslToRgb","hsl","c","abs","x","m","hslToHex","rgbStringToHsla","matches","Text","toNumber","hslStringToHsl","hslString","isCssVar","css","parseCssVar","cssVar","full","name","cssVarWithOpacity","cssVarWithOpacity0","startsWith","opacity","newOpacity","substr","parseFloat","replace","toFixed","defaultColorValueOptions","defaultBgImageSize","defaultBgImageAttachment","defaultOverlay","defaultBgImageValueOptions","url","size","attachment","overlay","ColorValue","constructor","value","setValue","getName","getHex","getOpacity","getHsl","Type","isObject","getHsla","getCssVar","getHexOriginal","isString","cssPrimaryVarName","Dom","style","document","documentElement","setOpacity","offsetFromCorrectValue","lighten","percent","darken","saturate","desaturate","adjustHue","degree","getStyleString","fullCssVar","String","getStyleStringForOpacity","compare","color1","color2","getMedian","getContrast","k","rad","PI","sin","deltaL","getLighten","BaseProcessor","EventEmitter","options","cache","Cache","MemoryCache","property","pseudoClass","setEventNamespace","getProperty","isArray","getVariableName","variableName","isNullValue","isNull","getNullValue","getPseudoClass","getLayout","remember","buildLayout","Tag","render","getClassName","className","getValue","getStyle","setProcessorValue","processorProperty","delete","setDefaultValue","inlineProperty","unsetActive","set","onReset","emit","onChange","defineActiveControl","items","currentNode","setActiveControl","controlName","prepareProcessorValue","processorValue","defaultValue","data","BaseControl","isNeedSetValue","event","color","setActive","addClass","ACTIVE_CLASS","removeClass","isActive","hasClass","Hex","previewMode","onInput","Runtime","debounce","bind","onButtonClick","setPreviewMode","preview","Event","getInput","getButton","adjustColors","DEFAULT_COLOR","DEFAULT_BG","DEFAULT_TEXT","substring","toLowerCase","textColor","bgColor","querySelector","focus","unFocus","blur","innerText","PageObject","getRootWindow","activeElement","Spectrum","getDefaultSaturation","global","window","top","location","saturation","urlParam","URL","searchParams","get","DEFAULT_SATURATION","body","setProperty","onPickerDragStart","onPickerDragMove","onPickerDragEnd","onScroll","scrollContext","contentRoot","getPicker","getPickerPos","y","ctrlKey","metaKey","button","showPicker","target","setPickerPos","pageX","pageY","unbind","getLayoutRect","layoutRect","getBoundingClientRect","width","height","left","leftToSet","HUE_RANGE","HUE_RANGE_GRAY_THRESHOLD","HUE_RANGE_GRAY_MIDDLE","HIDE_CLASS","layoutWidth","layoutHeight","isNaN","isSpectrumValue","hidePicker","Recent","initItems","getLayoutContainer","itemsLoaded","buildItemsLayout","Backend","getInstance","action","USER_OPTION_NAME","then","result","split","forEach","item","MAX_ITEMS","push","clean","itemLayout","onItemClick","append","currentTarget","dataset","addItem","pos","indexOf","splice","unshift","saveItems","BX","userOptions","save","Colorpicker","popupId","getRandom","popupTargetContainer","hexPreview","onPopupOpenClick","subscribe","onHexChange","onSelectClick","spectrum","onSpectrumChange","recent","onRecentChange","getCancelButton","onCancelClick","getSelectButton","previously","BaseEvent","getData","getPopup","close","getPopupContent","Loc","getMessage","getHexPreviewObject","PopupManager","create","id","autoHide","bindElement","bindOptions","forceTop","forceLeft","padding","contentPadding","offsetTop","offsetLeft","content","closeByEsc","targetContainer","recentColor","show","isShown","setActivity","Primary","onClick","CSS_VAR","isPrimaryValue","regexpWoStartEnd","regexp","RegExp","regexpToString","source","matcherGradient","matcherGradientAngle","hexMatcher","matcherGradientColors","isGradientString","GradientValue","from","to","angle","DEFAULT_ANGLE","type","DEFAULT_TYPE","getAngle","getType","getFrom","getTo","parseGradientString","typeMatches","angleMatches","colorMatches","setAngle","isNumber","setType","TYPE_RADIAL","TYPE_LINEAR","fromString","value1","value2","base","ext","defaultType","gradientType","Generator","getDefaultPresets","presets","defaultPresets","preset","map","getPrimaryColorPreset","primary","lBeforeCount","ceil","floor","lAfterCount","deltaLBefore","deltaLAfter","i","ii","deltaBitrixL","deltaBitrixS","bitrixColor","BITRIX_COLOR","deltaL2","deltaS","deltaS2","getBlackAndWhitePreset","start","getGradientByColorOptions","pairs","pair","Preset","activeItem","getId","getGradientPreset","getItemLayout","getItemByName","find","isPresetValue","some","setActiveItem","itemName","setActiveValue","PresetCollection","activeId","onPresetClick","getOpenButton","toggle","onPresetChangeGlobal","addDefaultPresets","addPreset","Object","keys","getGlobalActiveId","globalActiveId","getActiveId","getDefaultPreset","getActivePreset","getPresetById","getPresetByItemValue","getTitleContainer","getPopupLayout","layouts","innerLayouts","presetId","layout","getPresetLayout","Reset","hint","UI","Hint","createInstance","popupParameters","init","styleNode","ColorSet","reset","blackAndWhitePreset","onPresetItemChange","colorpicker","setPreset","getPresetContainer","getTitleLayout","setColorFromContent","getPreset","getPresetsCollection","activePreset","contentValue","contentHslColor","contentColorValue","Opacity","defaultOpacity","Reflect","has","DEFAULT_OPACITY","pickerControl","rangeControl","arrowsUp","arrowsDown","rangeInput","onArrowClick","defaultOpacityValue","getColorLayout","setPickerPosByOpacity","onRangeControlChange","leftPos","getDefaultValue","pickerLeft","valueToSet","background","title","innerHTML","arrowName","newOpacityInputValue","opacityInputValue","Tabs","tabs","multiple","isBig","onToggle","setMultiple","setBig","big","appendTab","tab","Tab","bindEvents","prependTab","showTab","hide","getTabById","additional","head","getTitle","tabLayout","toggleClass","SHOW_CLASS","Zeroing","textCode","Color","colorSet","onColorSetChange","onOpacityChange","zeroingOptions","zeroing","onZeroingChange","onPrimaryChange","valueObj","isUndefined","oldClass","activeControl","node","getNode","reg","found","PRIMARY_VAR","ColorHover","Gradient","ROTATE_STEP","colorpickerFrom","onColorChange","colorpickerTo","getPopupButton","onPopupOpen","getRotateButton","onRotate","getSwitchTypeButton","onSwitchType","getSwapButton","onSwap","fromValue","toValue","fromValueToSet","toValueToSet","isButtonEnable","disableButton","enableButton","DISABLE_CLASS","correctColorpickerColors","hexFrom","hexTo","colorFrom","colorTo","median","offset","getContainerLayout","unsetColorpickerActive","rotate","gradient","setColorpickerActive","BgColor","onGradientChange","setGradientPreset","onTabsToggle","gradientPreset","gradValue","onOverlayOpacityChange","isNil","gradientValue","matcherBgImage","isBgImageString","bgImage","getMatcherWithOverlay","matcherBgString","matcherGradientString","BgImageValue","getUrl","url2x","getUrl2x","fileId","getFileId","fileId2x","getFileId2x","getSize","getAttachment","parseBgString","string","matchesBg","matchesOverlay","setUrl","setUrl2x","setFileId","setFileId2x","setSize","setAttachment","setOverlay","needBool","getOverlay","endString","getSizeItemsForButtons","getAttachmentValueByBool","Image","imgField","ImageField","contextType","CONTEXT_TYPE_STYLE","compactMode","disableLink","disableAltField","allowClear","isAiImageAvailable","Env","getOptions","isAiImageActive","aiUnactiveInfoCode","dimensions","uploadParams","block","onImageChange","sizeField","Landing","Field","Dropdown","onSizeChange","attachmentField","Checkbox","compact","onAttachmentChange","getAttachmentValue","src","src2x","id2x","saveNode","selector","makeAbsoluteSelector","isSelectGroup","Utils","join","getElementIndex","lid","image","imgValue","imgFieldValue","getSizeValue","blockContentStyle","getComputedStyle","bgAttachmentValue","getPropertyValue","includes","bgSizeValue","rgbaStringToRgbString","str","regRgba","rgba","createRgbString","Bg","parentVariableName","BG_URL_VAR","BG_URL_2X_VAR","BG_OVERLAY_VAR","BG_SIZE_VAR","BG_ATTACHMENT_VAR","BG_IMAGE","parentClassName","onOverlayColorChange","overlayOpacity","overlayPrimary","onOverlayPrimaryChange","overlayZeroingOptions","overlayZeroing","overlayZeroingChange","imageTabs","bigTabs","modifyStyleNode","onOverlayChange","overlayValue","imageValue","bgValue","image2x","backgroundImage","hasOwnProperty","regUrl","searchUrl","regSearchUrl","search","regReplace","replaceAll","computedStyleNode","backgroundColor","currentColorRgb","primaryColorRgb","BorderColor","BorderColorHover","BgColorHover","BgColorAfter","opacityValue","BgColorBefore","NavbarColor","NavbarColorHover","NavbarColorFixMoment","NavbarColorFixMomentHover","NavbarBgColor","NavbarBgColorHover","BorderColorTop","FillColor","FillColorSecond","ButtonColor","COLOR_CONTRAST_VAR","COLOR_HOVER_VAR","COLOR_LIGHT_VAR","COLOR_VAR","valueContrast","valueHover","valueLight","NavbarCollapseBgColor","ColorField","BaseField","postfix","frame","processorOptions","changeHandler","valueChangeHandler","onValueChange","resetHandler","subtype","processor","remove","input","classList","add","getInlineProperties","prepareInlineProperties","props","getComputedProperties","getPseudoElement","TextField","attribute","textOnly","prop","onFrameLoad"],"mappings":"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"}

Youez - 2016 - github.com/yon3zu
LinuXploit