File manager - Edit - /home/web/vm-3fadc827.na4u.ru/www/bitrix/modules/landing/install/js/landing/ui/field/color/dist/color_field.bundle.js.map
Back
{"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/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\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: this.value.a,\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}","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 './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()\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\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 {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\";\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.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\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} 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';\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.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\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","import {Dom, Event, Tag, Text, Type} from 'main.core';\n\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 {Cache, Dom, Event, Tag, Type} from 'main.core';\nimport {BaseEvent, EventEmitter} from 'main.core.events';\n\nimport BaseControl from '../../control/base_control/base_control';\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()\n\t{\n\t\tsuper();\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\n\t{\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('LANDING_FIELD_COLOR-ZEROING_TITLE_2')}\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","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\tthis.zeroing = new Zeroing();\n\t\tthis.zeroing.subscribe('onChange', this.onZeroingChange.bind(this));\n\n\t\tthis.primary = new Primary();\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\tif (styleNode.hasOwnProperty('currentTarget'))\n\t\t\t{\n\t\t\t\titems.forEach((item) => {\n\t\t\t\t\tif (Dom.hasClass(styleNode.currentTarget, 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 './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.isNull(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 {BaseEvent} from 'main.core.events';\nimport {Dom, Tag, Type, Loc, Text} from 'main.core';\n\nimport {Backend} from 'landing.backend';\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\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\n\t\t// todo: set dimensions from block\n\t\tconst rootWindow = PageObject.getRootWindow();\n\t\tthis.imgField = new rootWindow.BX.Landing.UI.Field.Image({\n\t\t\tid: 'landing_ui_color_image_' + Text.getRandom().toLowerCase(),\n\t\t\tclassName: 'landing-ui-field-color-image-image',\n\t\t\tcompactMode: true,\n\t\t\tdisableLink: true,\n\t\t\t// selector: options.selector,\n\t\t\tdisableAltField: true,\n\t\t\tallowClear: true,\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\t// todo: need commented fields?\n\t\t\tid: 'landing_ui_color_image_size_' + Text.getRandom().toLowerCase(),\n\t\t\t// title: 'size field title',\n\t\t\t// description: 'ButtonGroup size description',\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\t// selector: this.options.selector,\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\t// todo: need commented fields?\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\t// title: 'attachement field title',\n\t\t\t// description: 'ButtonGroup size description',\n\t\t\tmultiple: false,\n\t\t\tcompact: true,\n\t\t\t// selector: options.selector,\n\t\t\titems: [\n\t\t\t\t{name: Loc.getMessage('LANDING_FIELD_COLOR-BG_FIXED'), value: true},\n\t\t\t],\n\t\t\tonChange: this.onAttachmentChange.bind(this),\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\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(value.getSize(), true);\n\t\t\t\tthis.attachmentField.setValue([value.getAttachment(true)]);\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","import {Tag, Type, Loc} 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 Preset from '../layout/preset/preset';\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\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Landing.UI.Field.Processor.Bg');\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];\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.onOverlayChange.bind(this));\n\t\tthis.overlayOpacity = new Opacity({defaultOpacity: 0.5});\n\t\tthis.overlayOpacity.subscribe('onChange', this.onOverlayOpacityChange.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.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.onChange();\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.onChange();\n\t}\n\n\tonOverlayOpacityChange()\n\t{\n\t\tthis.onChange();\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\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\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\tthis.imageTabs.showTab('Overlay');\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\tconst overlayValue = this.overlay.getValue();\n\t\t\t\tif (imageValue !== null && this.overlay.isActive() && overlayValue !== null)\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\t// let size = 'cover';\n\t\tlet size = null;\n\t\t// let attachment = 'scroll';\n\t\tlet attachment = null;\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,\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};\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';\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';\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};\n\n\t\tthis.changeHandler = (typeof options.onChange === \"function\") ? options.onChange : (() => {});\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\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\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.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\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\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","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","data","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","ColorSet","reset","blackAndWhitePreset","onPresetItemChange","colorpicker","setPreset","getPresetContainer","getTitleLayout","getPreset","getPresetsCollection","activePreset","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","Color","colorSet","onColorSetChange","onOpacityChange","zeroing","onZeroingChange","onPrimaryChange","valueObj","styleNode","isUndefined","oldClass","activeControl","hasOwnProperty","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","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","rootWindow","imgField","Landing","Field","compactMode","disableLink","disableAltField","allowClear","dimensions","uploadParams","block","onImageChange","sizeField","Dropdown","onSizeChange","attachmentField","Checkbox","compact","onAttachmentChange","src","src2x","id2x","saveNode","selector","makeAbsoluteSelector","isSelectGroup","Utils","join","getElementIndex","getNode","image","imgValue","imgFieldValue","Bg","parentVariableName","BG_URL_VAR","BG_URL_2X_VAR","BG_OVERLAY_VAR","BG_SIZE_VAR","BG_ATTACHMENT_VAR","parentClassName","onOverlayChange","overlayOpacity","imageTabs","bigTabs","overlayValue","imageValue","bgValue","image2x","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","resetHandler","subtype","processor","remove","input","classList","add","getInlineProperties","getComputedProperties","getPseudoElement","processorValue","prop","defaultValue","onFrameLoad"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.26 |
proxy
|
phpinfo
|
Settings