@libs-ui/components-color-picker 0.2.315-0 → 0.2.316-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9jb2xvci1waWNrZXIvc3JjL2ludGVyZmFjZXMvcGlja2VyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJUGlja2VyT3B0aW9ucyB7XG4gIHNsQmFyU2l6ZTogQXJyYXk8bnVtYmVyPjtcbiAgaHVlQmFyU2l6ZTogQXJyYXk8bnVtYmVyPjtcbiAgYWxwaGFCYXJTaXplOiBBcnJheTxudW1iZXI+O1xuICBzaG93SHNsOiBib29sZWFuO1xuICBzaG93UmdiOiBib29sZWFuO1xuICBzaG93SGV4OiBib29sZWFuO1xuICBzaG93QWxwaGE6IGJvb2xlYW47XG4gIGNvbG9yOiBzdHJpbmcgfCBBcnJheTxudW1iZXI+O1xuICBmb3JtYXQ6ICdyZ2InIHwgJ3JnYmEnIHwgJ2hzbCcgfCAnaHNsYScgfCAnaGV4JyB8ICdjb2xvcic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBpY2tlckN1c3RvbU9wdGlvbnMge1xuICBzbEJhclNpemU/OiBBcnJheTxudW1iZXI+O1xuICBodWVCYXJTaXplPzogQXJyYXk8bnVtYmVyPjtcbiAgYWxwaGFCYXJTaXplPzogQXJyYXk8bnVtYmVyPjtcbiAgc2hvd0hzbD86IGJvb2xlYW47XG4gIHNob3dSZ2I/OiBib29sZWFuO1xuICBzaG93SGV4PzogYm9vbGVhbjtcbiAgc2hvd0FscGhhPzogYm9vbGVhbjtcbiAgY29sb3I/OiBzdHJpbmcgfCBBcnJheTxudW1iZXI+O1xuICBmb3JtYXQ/OiAncmdiJyB8ICdyZ2JhJyB8ICdoc2wnIHwgJ2hzbGEnIHwgJ2hleCcgfCAnY29sb3InO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDYW52YXNIZWxwZXIge1xuICBzZXRIdWU6IChodWU6IG51bWJlcikgPT4gdm9pZDtcbiAgZ3JhYkNvbG9yOiAoeDogbnVtYmVyLCB5OiBudW1iZXIpID0+IEFycmF5PG51bWJlcj47XG4gIGZpbmRDb2xvcjogKHI6IG51bWJlciwgZzogbnVtYmVyLCBiOiBudW1iZXIpID0+IEFycmF5PG51bWJlcj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBpY2tlclZhbHVlIHtcbiAgdmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ29uZmlnVXBkYXRlIHtcbiAgaFBvaW50PzogYm9vbGVhbjtcbiAgc2xQb2ludD86IGJvb2xlYW47XG4gIGFQb2ludD86IGJvb2xlYW47XG4gIGhleD86IGJvb2xlYW47XG4gIHJnYj86IGJvb2xlYW47XG4gIGhzbD86IGJvb2xlYW47XG4gIGh1ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU91dHB1dENvbG9yQ2hhbmdlTXVsdGlwbGVUeXBlIHtcbiAgcmdiYTogc3RyaW5nO1xuICByZ2I6IHN0cmluZztcbiAgaGV4OiBzdHJpbmc7XG4gIGhzbDogc3RyaW5nO1xuICBoc2xhOiBzdHJpbmc7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9jb2xvci1waWNrZXIvc3JjL2ludGVyZmFjZXMvcGlja2VyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJUGlja2VyT3B0aW9ucyB7XG4gIHNsQmFyU2l6ZTogQXJyYXk8bnVtYmVyPjtcbiAgaHVlQmFyU2l6ZTogQXJyYXk8bnVtYmVyPjtcbiAgYWxwaGFCYXJTaXplOiBBcnJheTxudW1iZXI+O1xuICBzaG93SHNsOiBib29sZWFuO1xuICBzaG93UmdiOiBib29sZWFuO1xuICBzaG93SGV4OiBib29sZWFuO1xuICBzaG93QWxwaGE6IGJvb2xlYW47XG4gIGNvbG9yOiBzdHJpbmcgfCBBcnJheTxudW1iZXI+O1xuICBmb3JtYXQ6ICdyZ2InIHwgJ3JnYmEnIHwgJ2hzbCcgfCAnaHNsYScgfCAnaGV4JyB8ICdjb2xvcic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBpY2tlckN1c3RvbU9wdGlvbnMge1xuICBzbEJhclNpemU/OiBBcnJheTxudW1iZXI+O1xuICBodWVCYXJTaXplPzogQXJyYXk8bnVtYmVyPjtcbiAgYWxwaGFCYXJTaXplPzogQXJyYXk8bnVtYmVyPjtcbiAgc2hvd0hzbD86IGJvb2xlYW47XG4gIHNob3dSZ2I/OiBib29sZWFuO1xuICBzaG93SGV4PzogYm9vbGVhbjtcbiAgc2hvd0FscGhhPzogYm9vbGVhbjtcbiAgY29sb3I/OiBzdHJpbmcgfCBBcnJheTxudW1iZXI+O1xuICBmb3JtYXQ/OiAncmdiJyB8ICdyZ2JhJyB8ICdoc2wnIHwgJ2hzbGEnIHwgJ2hleCcgfCAnY29sb3InO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDYW52YXNIZWxwZXIge1xuICBzZXRIdWU6IChodWU6IG51bWJlcikgPT4gdm9pZDtcbiAgZ3JhYkNvbG9yOiAoeDogbnVtYmVyLCB5OiBudW1iZXIpID0+IEFycmF5PG51bWJlcj47XG4gIGZpbmRDb2xvcjogKHI6IG51bWJlciwgZzogbnVtYmVyLCBiOiBudW1iZXIpID0+IEFycmF5PG51bWJlcj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBpY2tlclZhbHVlIHtcbiAgdmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ29uZmlnVXBkYXRlIHtcbiAgaFBvaW50PzogYm9vbGVhbjtcbiAgc2xQb2ludD86IGJvb2xlYW47XG4gIGFQb2ludD86IGJvb2xlYW47XG4gIGhleD86IGJvb2xlYW47XG4gIHJnYj86IGJvb2xlYW47XG4gIGhzbD86IGJvb2xlYW47XG4gIGh1ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU91dHB1dENvbG9yQ2hhbmdlTXVsdGlwbGVUeXBlIHtcbiAgcmdiYTogc3RyaW5nO1xuICByZ2I6IHN0cmluZztcbiAgaGV4OiBzdHJpbmc7XG4gIGhzbDogc3RyaW5nO1xuICBoc2xhOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbG9yIHtcbiAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xufVxuIl19
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
1
2
  import { get, isNil, set } from '@libs-ui/utils';
2
3
  export const ColorNames = {
3
4
  aliceblue: '#F0F8FF',
@@ -59,8 +60,8 @@ export const ColorNames = {
59
60
  greenyellow: '#ADFF2F',
60
61
  honeydew: '#F0FFF0',
61
62
  hotpink: '#FF69B4',
62
- 'indianred ': '#CD5C5C',
63
- 'indigo ': '#4B0082',
63
+ indianred: '#CD5C5C',
64
+ indigo: '#4B0082',
64
65
  ivory: '#FFFFF0',
65
66
  khaki: '#F0E68C',
66
67
  lavender: '#E6E6FA',
@@ -360,4 +361,4 @@ export const defaultHelper = () => {
360
361
  findColor: () => [],
361
362
  };
362
363
  };
363
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2NvbG9yLXBpY2tlci9zcmMvdXRpbHMvcGlja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2pELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixTQUFTLEVBQUUsU0FBUztJQUNwQixZQUFZLEVBQUUsU0FBUztJQUN2QixJQUFJLEVBQUUsU0FBUztJQUNmLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLElBQUksRUFBRSxTQUFTO0lBQ2YsVUFBVSxFQUFFLFNBQVM7SUFDckIsS0FBSyxFQUFFLFNBQVM7SUFDaEIsU0FBUyxFQUFFLFNBQVM7SUFDcEIsU0FBUyxFQUFFLFNBQVM7SUFDcEIsVUFBVSxFQUFFLFNBQVM7SUFDckIsU0FBUyxFQUFFLFNBQVM7SUFDcEIsS0FBSyxFQUFFLFNBQVM7SUFDaEIsY0FBYyxFQUFFLFNBQVM7SUFDekIsUUFBUSxFQUFFLFNBQVM7SUFDbkIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsSUFBSSxFQUFFLFNBQVM7SUFDZixRQUFRLEVBQUUsU0FBUztJQUNuQixRQUFRLEVBQUUsU0FBUztJQUNuQixhQUFhLEVBQUUsU0FBUztJQUN4QixRQUFRLEVBQUUsU0FBUztJQUNuQixRQUFRLEVBQUUsU0FBUztJQUNuQixTQUFTLEVBQUUsU0FBUztJQUNwQixTQUFTLEVBQUUsU0FBUztJQUNwQixXQUFXLEVBQUUsU0FBUztJQUN0QixjQUFjLEVBQUUsU0FBUztJQUN6QixVQUFVLEVBQUUsU0FBUztJQUNy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QztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO0lBQzVDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDVCxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEFBQUQsRUFBRyxDQUFDLENBQUMsR0FBRyw0RUFBNEUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXhILE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDckcsQ0FBQztJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO0lBQzVDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDVCxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEFBQUQsRUFBRyxDQUFDLENBQUMsR0FBRyw0RUFBNEUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXhILE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDckcsQ0FBQztJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBNkIsRUFBRSxFQUFFO0lBQ2hFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqSCxDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXBDLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbEMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsRUFBRTtJQUMxRCxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQ3JGLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUIsSUFBSSxDQUFDLEVBQ0gsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFMUIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWE7UUFFeEIsT0FBTyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBQ0QsTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUVwQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQ3BELFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDWixLQUFLLENBQUM7WUFDSixDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQyxNQUFNO1FBQ1IsS0FBSyxDQUFDO1lBQ0osQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEIsTUFBTTtRQUNSLEtBQUssQ0FBQztZQUNKLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BCLE1BQU07SUFDVixDQUFDO0lBQ0QsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVqQixPQUFPLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3JELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLEVBQUU7SUFDMUQsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUVuRSxPQUFPLEdBQUcsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQVMsRUFB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UUFDbkIsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7S0FDcEIsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldCwgaXNOaWwsIHNldCB9IGZyb20gJ0BsaWJzLXVpL3V0aWxzJztcbmltcG9ydCB7IElQaWNrZXJPcHRpb25zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBDb2xvck5hbWVzID0ge1xuICBhbGljZWJsdWU6ICcjRjBGOEZGJyxcbiAgYW50aXF1ZXdoaXRlOiAnI0ZBRUJENycsXG4gIGFxdWE6ICcjMDBGRkZGJyxcbiAgYXF1YW1hcmluZTogJyM3RkZGRDQnLFxuICBhenVyZTogJyNGMEZGRkYnLFxuICBiZWlnZTogJyNGNUY1REMnLFxuICBiaXNxdWU6ICcjRkZFNEM0JyxcbiAgYmxhY2s6ICcjMDAwMDAwJyxcbiAgYmxhbmNoZWRhbG1vbmQ6ICcjRkZFQkNEJyxcbiAgYmx1ZTogJyMwMDAwRkYnLFxuICBibHVldmlvbGV0OiAnIzhBMkJFMicsXG4gIGJyb3duOiAnI0E1MkEyQScsXG4gIGJ1cmx5d29vZDogJyNERUI4ODcnLFxuICBjYWRldGJsdWU6ICcjNUY5RUEwJyxcbiAgY2hhcnRyZXVzZTogJyM3RkZGMDAnLFxuICBjaG9jb2xhdGU6ICcjRDI2OTFFJyxcbiAgY29yYWw6ICcjRkY3RjUwJyxcbiAgY29ybmZsb3dlcmJsdWU6ICcjNjQ5NUVEJyxcbiAgY29ybnNpbGs6ICcjRkZGOERDJyxcbiAgY3JpbXNvbjogJyNEQzE0M0MnLFxuICBjeWFuOiAnIzAwRkZGRicsXG4gIGRhcmtibHVlOiAnIzAwMDA4QicsXG4gIGRhcmtjeWFuOiAnIzAwOEI4QicsXG4gIGRhcmtnb2xkZW5yb2Q6ICcjQjg4NjBCJyxcbiAgZGFya2dyYXk6ICcjQTlBOUE5JyxcbiAgZGFya2dyZXk6ICcjQTlBOUE5JyxcbiAgZGFya2dyZWVuOiAnIzAwNjQwMCcsXG4gIGRhcmtraGFraTogJyNCREI3NkInLFxuICBkYXJrbWFnZW50YTogJyM4QjAwOEInLFxuICBkYXJrb2xpdmVncmVlbjogJyM1NTZCMkYnLFxuICBkYXJrb3JhbmdlOiAnI0ZGOEMwMCcsXG4gIGRhcmtvcmNoaWQ6ICcjOTkzMkNDJyxcbiAgZGFya3JlZDogJyM4QjAwMDAnLFxuICBkYXJrc2FsbW9uOiAnI0U5OTY3QScsXG4gIGRhcmtzZWFncmVlbjogJyM4RkJDOEYnLFxuICBkYXJrc2xhdGVibHVlOiAnIzQ4M0Q4QicsXG4gIGRhcmtzbGF0ZWdyYXk6ICcjMkY0RjRGJyxcbiAgZGFya3NsYXRlZ3JleTogJyMyRjRGNEYnLFxuICBkYXJrdHVycXVvaXNlOiAnIzAwQ0VEMScsXG4gIGRhcmt2aW9sZXQ6ICcjOTQwMEQzJyxcbiAgZGVlcHBpbms6ICcjRkYxNDkzJyxcbiAgZGVlcHNreWJsdWU6ICcjMDBCRkZGJyxcbiAgZGltZ3JheTogJyM2OTY5NjknLFxuICBkaW1ncmV5OiAnIzY5Njk2OScsXG4gIGRvZGdlcmJsdWU6ICcjMUU5MEZGJyxcbiAgZmlyZWJyaWNrOiAnI0IyMjIyMicsXG4gIGZsb3JhbHdoaXRlOiAnI0ZGRkFGMCcsXG4gIGZvcmVzdGdyZWVuOiAnIzIyOEIyMicsXG4gIGZ1Y2hzaWE6ICcjRkYwMEZGJyxcbiAgZ2FpbnNib3JvOiAnI0RDRENEQycsXG4gIGdob3N0d2hpdGU6ICcjRjhGOEZGJyxcbiAgZ29sZDogJyNGRkQ3MDAnLFxuICBnb2xkZW5yb2Q6ICcjREFBNTIwJyxcbiAgZ3JheTogJyM4MDgwODAnLFxuICBncmV5OiAnIzgwODA4MCcsXG4gIGdyZWVuOiAnIzAwODAwMCcsXG4gIGdyZWVueWVsbG93OiAnI0FERkYyRicsXG4gIGhvbmV5ZGV3OiAnI0YwRkZGMCcsXG4gIGhvdHBpbms6ICcjRkY2OUI0JyxcbiAgJ2luZGlhbnJlZCAnOiAnI0NENUM1QycsXG4gICdpbmRpZ28gJzogJyM0QjAwODInLFxuICBpdm9yeTogJyNGRkZGRjAnLFxuICBraGFraTogJyNGMEU2OEMnLFxuICBsYXZlbmRlcjogJyNFNkU2RkEnLFxuICBsYXZlbmRlcmJsdXNoOiAnI0ZGRjBGNScsXG4gIGxhd25ncmVlbjogJyM3Q0ZDMDAnLFxuICBsZW1vbmNoaWZmb246ICcjRkZGQUNEJyxcbiAgbGlnaHRibHVlOiAnI0FERDhFNicsXG4gIGxpZ2h0Y29yYWw6ICcjRjA4MDgwJyxcbiAgbGlnaHRjeWFuOiAnI0UwRkZGRicsXG4gIGxpZ2h0Z29sZGVucm9keWVsbG93OiAnI0ZBRkFEMicsXG4gIGxpZ2h0Z3JheTogJyNEM0QzRDMnLFxuICBsaWdodGdyZXk6ICcjRDNEM0QzJyxcbiAgbGlnaHRncmVlbjogJyM5MEVFOTAnLFxuICBsaWdodHBpbms6ICcjRkZCNkMxJyxcbiAgbGlnaHRzYWxtb246ICcjRkZBMDdBJyxcbiAgbGlnaHRzZWFncmVlbjogJyMyMEIyQUEnLFxuICBsaWdodHNreWJsdWU6ICcjODdDRUZBJyxcbiAgbGlnaHRzbGF0ZWdyYXk6ICcjNzc4ODk5JyxcbiAgbGlnaHRzbGF0ZWdyZXk6ICcjNzc4ODk5JyxcbiAgbGlnaHRzdGVlbGJsdWU6ICcjQjBDNERFJyxcbiAgbGlnaHR5ZWxsb3c6ICcjRkZGRkUwJyxcbiAgbGltZTogJyMwMEZGMDAnLFxuICBsaW1lZ3JlZW46ICcjMzJDRDMyJyxcbiAgbGluZW46ICcjRkFGMEU2JyxcbiAgbWFnZW50YTogJyNGRjAwRkYnLFxuICBtYXJvb246ICcjODAwMDAwJyxcbiAgbWVkaXVtYXF1YW1hcmluZTogJyM2NkNEQUEnLFxuICBtZWRpdW1ibHVlOiAnIzAwMDBDRCcsXG4gIG1lZGl1bW9yY2hpZDogJyNCQTU1RDMnLFxuICBtZWRpdW1wdXJwbGU6ICcjOTM3MERCJyxcbiAgbWVkaXVtc2VhZ3JlZW46ICcjM0NCMzcxJyxcbiAgbWVkaXVtc2xhdGVibHVlOiAnIzdCNjhFRScsXG4gIG1lZGl1bXNwcmluZ2dyZWVuOiAnIzAwRkE5QScsXG4gIG1lZGl1bXR1cnF1b2lzZTogJyM0OEQxQ0MnLFxuICBtZWRpdW12aW9sZXRyZWQ6ICcjQzcxNTg1JyxcbiAgbWlkbmlnaHRibHVlOiAnIzE5MTk3MCcsXG4gIG1pbnRjcmVhbTogJyNGNUZGRkEnLFxuICBtaXN0eXJvc2U6ICcjRkZFNEUxJyxcbiAgbW9jY2FzaW46ICcjRkZFNEI1JyxcbiAgbmF2YWpvd2hpdGU6ICcjRkZERUFEJyxcbiAgbmF2eTogJyMwMDAwODAnLFxuICBvbGRsYWNlOiAnI0ZERjVFNicsXG4gIG9saXZlOiAnIzgwODAwMCcsXG4gIG9saXZlZHJhYjogJyM2QjhFMjMnLFxuICBvcmFuZ2U6ICcjRkZBNTAwJyxcbiAgb3JhbmdlcmVkOiAnI0ZGNDUwMCcsXG4gIG9yY2hpZDogJyNEQTcwRDYnLFxuICBwYWxlZ29sZGVucm9kOiAnI0VFRThBQScsXG4gIHBhbGVncmVlbjogJyM5OEZCOTgnLFxuICBwYWxldHVycXVvaXNlOiAnI0FGRUVFRScsXG4gIHBhbGV2aW9sZXRyZWQ6ICcjREI3MDkzJyxcbiAgcGFwYXlhd2hpcDogJyNGRkVGRDUnLFxuICBwZWFjaHB1ZmY6ICcjRkZEQUI5JyxcbiAgcGVydTogJyNDRDg1M0YnLFxuICBwaW5rOiAnI0ZGQzBDQicsXG4gIHBsdW06ICcjRERBMEREJyxcbiAgcG93ZGVyYmx1ZTogJyNCMEUwRTYnLFxuICBwdXJwbGU6ICcjODAwMDgwJyxcbiAgcmViZWNjYXB1cnBsZTogJyM2NjMzOTknLFxuICByZWQ6ICcjRkYwMDAwJyxcbiAgcm9zeWJyb3duOiAnI0JDOEY4RicsXG4gIHJveWFsYmx1ZTogJyM0MTY5RTEnLFxuICBzYWRkbGVicm93bjogJyM4QjQ1MTMnLFxuICBzYWxtb246ICcjRkE4MDcyJyxcbiAgc2FuZHlicm93bjogJyNGNEE0NjAnLFxuICBzZWFncmVlbjogJyMyRThCNTcnLFxuICBzZWFzaGVsbDogJyNGRkY1RUUnLFxuICBzaWVubmE6ICcjQTA1MjJEJyxcbiAgc2lsdmVyOiAnI0MwQzBDMCcsXG4gIHNreWJsdWU6ICcjODdDRUVCJyxcbiAgc2xhdGVibHVlOiAnIzZBNUFDRCcsXG4gIHNsYXRlZ3JheTogJyM3MDgwOTAnLFxuICBzbGF0ZWdyZXk6ICcjNzA4MDkwJyxcbiAgc25vdzogJyNGRkZBRkEnLFxuICBzcHJpbmdncmVlbjogJyMwMEZGN0YnLFxuICBzdGVlbGJsdWU6ICcjNDY4MkI0JyxcbiAgdGFuOiAnI0QyQjQ4QycsXG4gIHRlYWw6ICcjMDA4MDgwJyxcbiAgdGhpc3RsZTogJyNEOEJGRDgnLFxuICB0b21hdG86ICcjRkY2MzQ3JyxcbiAgdHVycXVvaXNlOiAnIzQwRTBEMCcsXG4gIHZpb2xldDogJyNFRTgyRUUnLFxuICB3aGVhdDogJyNGNURFQjMnLFxuICB3aGl0ZTogJyNGRkZGRkYnLFxuICB3aGl0ZXNtb2tlOiAnI0Y1RjVGNScsXG4gIHllbGxvdzogJyNGRkZGMDAnLFxuICB5ZWxsb3dncmVlbjogJyM5QUNEMzInLFxufTtcbmV4cG9ydCBjb25zdCBvcHRpb25zRGVmYXVsdCA9ICgpOiBJUGlja2VyT3B0aW9ucyA9PiB7XG4gIHJldHVybiB7XG4gICAgc2hvd0hzbDogZmFsc2UsXG4gICAgc2hvd1JnYjogdHJ1ZSxcbiAgICBzaG93SGV4OiB0cnVlLFxuICAgIHNob3dBbHBoYTogZmFsc2UsXG4gICAgY29sb3I6ICcjZmYwMDAwJyxcbiAgICBmb3JtYXQ6ICdjb2xvcicsXG4gICAgc2xCYXJTaXplOiBbNDIwLCAyMDBdLFxuICAgIGh1ZUJhclNpemU6IFs0MjAsIDIwXSxcbiAgICBhbHBoYUJhclNpemU6IFs0MjAsIDIwXSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBsaW1pdCA9ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIpID0+IHtcbiAgdmFsdWUgPSArdmFsdWU7XG4gIHJldHVybiBpc05hTih2YWx1ZSkgPyBtaW4gOiB2YWx1ZSA8IG1pbiA/IG1pbiA6IHZhbHVlID4gbWF4ID8gbWF4IDogdmFsdWU7XG59O1xuXG5leHBvcnQgY29uc3QgaHNsVG9SZ2IgPSAoaDogbnVtYmVyLCBzOiBudW1iZXIsIGw6IG51bWJlcikgPT4ge1xuICBsZXQgciwgZywgYjtcbiAgW2gsIHMsIGxdID0gW2xpbWl0KGgsIDAsIDM2MCkgLyAzNjAsIGxpbWl0KHMsIDAsIDEwMCkgLyAxMDAsIGxpbWl0KGwsIDAsIDEwMCkgLyAxMDBdO1xuXG4gIGlmIChzID09IDApIHtcbiAgICByID0gZyA9IGIgPSBsOyAvLyBhY2hyb21hdGljXG5cbiAgICByZXR1cm4gW3IgKiAyNTUsIGcgKiAyNTUsIGIgKiAyNTVdLm1hcChNYXRoLnJvdW5kKTtcbiAgfVxuICBjb25zdCBodWVUb1JnYiA9IChwOiBudW1iZXIsIHE6IG51bWJlciwgdDogbnVtYmVyKSA9PiB7XG4gICAgaWYgKHQgPCAwKSB0ICs9IDE7XG4gICAgaWYgKHQgPiAxKSB0IC09IDE7XG4gICAgaWYgKHQgPCAxIC8gNikgcmV0dXJuIHAgKyAocSAtIHApICogNiAqIHQ7XG4gICAgaWYgKHQgPCAxIC8gMikgcmV0dXJuIHE7XG4gICAgaWYgKHQgPCAyIC8gMykgcmV0dXJuIHAgKyAocSAtIHApICogKDIgLyAzIC0gdCkgKiA2O1xuXG4gICAgcmV0dXJuIHA7XG4gIH07XG4gIGNvbnN0IHEgPSBsIDwgMC41ID8gbCAqICgxICsgcykgOiBsICsgcyAtIGwgKiBzO1xuICBjb25zdCBwID0gMiAqIGwgLSBxO1xuXG4gIHIgPSBodWVUb1JnYihwLCBxLCBoICsgMSAvIDMpO1xuICBnID0gaHVlVG9SZ2IocCwgcSwgaCk7XG4gIGIgPSBodWVUb1JnYihwLCBxLCBoIC0gMSAvIDMpO1xuXG4gIHJldHVybiBbciAqIDI1NSwgZyAqIDI1NSwgYiAqIDI1NV0ubWFwKE1hdGgucm91bmQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGNzc0NvbG9yVG9SZ2JhID0gKGNvbG9yOiBzdHJpbmcpID0+IHtcbiAgaWYgKGNvbG9yKSB7XG4gICAgY29uc3QgY29sb3JCeU5hbWUgPSBnZXQoQ29sb3JOYW1lcywgY29sb3IudG9Mb3dlckNhc2UoKSk7XG4gICAgY29uc3QgWywgLCAsIHIsIGcsIGIsIGEsICwgcnIsIGdnLCBiYiwgYWFdID0gL15cXHMqIz8oKChbMC05QS1GXSkoWzAtOUEtRl0pKFswLTlBLUZdKShbMC05QS1GXSk/KXwoKFswLTlBLUZdezJ9KShbMC05QS1GXXsyfSkoWzAtOUEtRl17Mn0pKFswLTlBLUZdezJ9KT8pKVxccyokL2kuZXhlYyhjb2xvckJ5TmFtZSB8fCBjb2xvcikgfHwgW107XG4gICAgaWYgKCFpc05pbChyKSkge1xuICAgICAgcmV0dXJuIFtwYXJzZUludChyICsgciwgMTYpLCBwYXJzZUludChnICsgZywgMTYpLCBwYXJzZUludChiICsgYiwgMTYpLCBhID8gKyhwYXJzZUludChhICsgYSwgMTYpIC8gMjU1KS50b0ZpeGVkKDIpIDogMV07XG4gICAgfVxuICAgIGlmICghaXNOaWwocnIpKSB7XG4gICAgICByZXR1cm4gW3BhcnNlSW50KHJyLCAxNiksIHBhcnNlSW50KGdnLCAxNiksIHBhcnNlSW50KGJiLCAxNiksIGFhID8gKyhwYXJzZUludChhYSwgMTYpIC8gMjU1KS50b0ZpeGVkKDIpIDogMV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbG9yVG9SZ2JhID0gKGNvbG9yOiBzdHJpbmcgfCBBcnJheTxudW1iZXI+KSA9PiB7XG4gIGlmIChBcnJheS5pc0FycmF5KGNvbG9yKSkge1xuICAgIHJldHVybiBbbGltaXQoY29sb3JbMF0sIDAsIDI1NSksIGxpbWl0KGNvbG9yWzFdLCAwLCAyNTUpLCBsaW1pdChjb2xvclsyXSwgMCwgMjU1KSwgbGltaXQoY29sb3JbM10gPz8gMSwgMCwgMSldO1xuICB9XG4gIGNvbnN0IHBhcnNlZCA9IGNzc0NvbG9yVG9SZ2JhKGNvbG9yKSB8fCBjc3NSZ2JhVG9SZ2JhKGNvbG9yKTtcblxuICBpZiAocGFyc2VkICYmIHBhcnNlZC5sZW5ndGggPT09IDMpIHtcbiAgICBwYXJzZWQucHVzaCgxKTtcbiAgfVxuXG4gIHJldHVybiBwYXJzZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgY3NzUmdiYVRvUmdiYSA9IChyZ2JhOiBzdHJpbmcpID0+IHtcbiAgaWYgKHJnYmEpIHtcbiAgICBjb25zdCBbbSwgciwgZywgYiwgLCBhXSA9IC9ecmdiYT9cXCgoXFxkKylcXHMqW1xccyxdXFxzKihcXGQrKVxccypbXFxzLF1cXHMqKFxcZCspKFxccypbXFxzLF1cXHMqKFxcZCooLlxcZCspPykpP1xcKS9pLmV4ZWMocmdiYSkgfHwgW107XG5cbiAgICByZXR1cm4gbSA/IFtsaW1pdChyLCAwLCAyNTUpLCBsaW1pdChnLCAwLCAyNTUpLCBsaW1pdChiLCAwLCAyNTUpLCBsaW1pdChhID8/IDEsIDAsIDEpXSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgY3NzSHNsYVRvSHNsYSA9IChoc2xhOiBzdHJpbmcpID0+IHtcbiAgaWYgKGhzbGEpIHtcbiAgICBjb25zdCBbbSwgaCwgcywgbCwgLCBhXSA9IC9eaHNsYT9cXCgoXFxkKylcXHMqW1xccyxdXFxzKihcXGQrKVxccypbXFxzLF1cXHMqKFxcZCspKFxccypbXFxzLF1cXHMqKFxcZCooLlxcZCspPykpP1xcKS9pLmV4ZWMoaHNsYSkgfHwgW107XG5cbiAgICByZXR1cm4gbSA/IFtsaW1pdChoLCAwLCAyNTUpLCBsaW1pdChzLCAwLCAyNTUpLCBsaW1pdChsLCAwLCAyNTUpLCBsaW1pdChhID8/IDEsIDAsIDEpXSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VDb2xvclRvSHNsYSA9IChjb2xvcjogc3RyaW5nIHwgQXJyYXk8bnVtYmVyPikgPT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheShjb2xvcikpIHtcbiAgICByZXR1cm4gW2xpbWl0KGNvbG9yWzBdLCAwLCAzNjApLCBsaW1pdChjb2xvclsxXSwgMCwgMTAwKSwgbGltaXQoY29sb3JbMl0sIDAsIDEwMCksIGxpbWl0KGNvbG9yWzNdID8/IDEsIDAsIDEpXTtcbiAgfVxuICBjb25zdCBwYXJzZWQgPSBjc3NIc2xhVG9Ic2xhKGNvbG9yKTtcblxuICBpZiAocGFyc2VkICYmIHBhcnNlZC5sZW5ndGggPT09IDMpIHtcbiAgICBwYXJzZWQucHVzaCgxKTtcbiAgfVxuXG4gIHJldHVybiBwYXJzZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgcmdiVG9Ic2wgPSAocjogbnVtYmVyLCBnOiBudW1iZXIsIGI6IG51bWJlcikgPT4ge1xuICBbciwgZywgYl0gPSBbbGltaXQociwgMCwgMjU1KSAvIDI1NSwgbGltaXQoZywgMCwgMjU1KSAvIDI1NSwgbGltaXQoYiwgMCwgMjU1KSAvIDI1NV07XG4gIGNvbnN0IG1heCA9IE1hdGgubWF4KHIsIGcsIGIpO1xuICBjb25zdCBtaW4gPSBNYXRoLm1pbihyLCBnLCBiKTtcbiAgbGV0IGgsXG4gICAgcyA9IChtYXggKyBtaW4pIC8gMjtcbiAgY29uc3QgbCA9IChtYXggKyBtaW4pIC8gMjtcblxuICBpZiAobWF4ID09IG1pbikge1xuICAgIGggPSBzID0gMDsgLy8gYWNocm9tYXRpY1xuXG4gICAgcmV0dXJuIFtoICogMzYwLCBzICogMTAwLCBsICogMTAwXS5tYXAoTWF0aC5yb3VuZCk7XG4gIH1cbiAgY29uc3QgZCA9IG1heCAtIG1pbjtcblxuICBzID0gbCA+IDAuNSA/IGQgLyAoMiAtIG1heCAtIG1pbikgOiBkIC8gKG1heCArIG1pbik7XG4gIHN3aXRjaCAobWF4KSB7XG4gICAgY2FzZSByOlxuICAgICAgaCA9IChnIC0gYikgLyBkICsgKGcgPCBiID8gNiA6IDApO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBnOlxuICAgICAgaCA9IChiIC0gcikgLyBkICsgMjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgYjpcbiAgICAgIGggPSAociAtIGcpIC8gZCArIDQ7XG4gICAgICBicmVhaztcbiAgfVxuICBoID0gKGggfHwgMCkgLyA2O1xuXG4gIHJldHVybiBbaCAqIDM2MCwgcyAqIDEwMCwgbCAqIDEwMF0ubWFwKE1hdGgucm91bmQpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJnYlRvSGV4ID0gKHI6IG51bWJlciwgZzogbnVtYmVyLCBiOiBudW1iZXIpID0+IHtcbiAgW3IsIGcsIGJdID0gW2xpbWl0KHIsIDAsIDI1NSksIGxpbWl0KGcsIDAsIDI1NSksIGxpbWl0KGIsIDAsIDI1NSldO1xuXG4gIHJldHVybiAnIycgKyAoJzAwMDAwMCcgKyAoKHIgPDwgMTYpIHwgKGcgPDwgOCkgfCBiKS50b1N0cmluZygxNikpLnNsaWNlKC02KTtcbn07XG5cbmV4cG9ydCBjb25zdCByZ2JUb0ludCA9IChyOiBudW1iZXIsIGc6IG51bWJlciwgYjogbnVtYmVyKSA9PiB7XG4gIHJldHVybiAociA8PCAxNikgfCAoZyA8PCA4KSB8IGI7XG59O1xuXG5leHBvcnQgY29uc3QgcmdiVG9Ic3YgPSAocjogbnVtYmVyLCBnOiBudW1iZXIsIGI6IG51bWJlcikgPT4ge1xuICBbciwgZywgYl0gPSBbbGltaXQociwgMCwgMjU1KSAvIDI1NSwgbGltaXQoZywgMCwgMjU1KSAvIDI1NSwgbGltaXQoYiwgMCwgMjU1KSAvIDI1NV07XG4gIGNvbnN0IG1heCA9IE1hdGgubWF4KHIsIGcsIGIpO1xuICBjb25zdCBtaW4gPSBNYXRoLm1pbihyLCBnLCBiKTtcbiAgbGV0IGgsXG4gICAgcyA9IG1heDtcbiAgY29uc3QgdiA9IG1heDtcbiAgY29uc3QgZCA9IG1heCAtIG1pbjtcbiAgcyA9IG1heCA9PT0gMCA/IDAgOiBkIC8gbWF4O1xuXG4gIGlmIChtYXggPT0gbWluKSB7XG4gICAgaCA9IDA7XG5cbiAgICByZXR1cm4gW2gsIHMsIHZdO1xuICB9XG4gIHN3aXRjaCAobWF4KSB7XG4gICAgY2FzZSByOlxuICAgICAgaCA9IChnIC0gYikgLyBkICsgKGcgPCBiID8gNiA6IDApO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBnOlxuICAgICAgaCA9IChiIC0gcikgLyBkICsgMjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgYjpcbiAgICAgIGggPSAociAtIGcpIC8gZCArIDQ7XG4gICAgICBicmVhaztcbiAgfVxuICBoID0gKGggfHwgMCkgLyA2O1xuXG4gIHJldHVybiBbaCwgcywgdl07XG59O1xuXG5leHBvcnQgY29uc3QgZm9ybWF0Q29sb3IgPSAoZGF0YTogQXJyYXk8bnVtYmVyPiwgZm9ybWF0OiBzdHJpbmcpID0+IHtcbiAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICBjYXNlICdyZ2InOlxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZGF0YS5zbGljZSgwLCAzKTtcbiAgICBjYXNlICdyZ2Jjc3MnOlxuICAgICAgcmV0dXJuIGByZ2IoJHtkYXRhWzBdfSwgJHtkYXRhWzFdfSwgJHtkYXRhWzJdfSlgO1xuICAgIGNhc2UgJ3JnYmNzczQnOlxuICAgICAgcmV0dXJuIGByZ2IoJHtkYXRhWzBdfSwgJHtkYXRhWzFdfSwgJHtkYXRhWzJdfSwgJHtkYXRhWzNdfSlgO1xuICAgIGNhc2UgJ3JnYmEnOlxuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgY2FzZSAncmdiYWNzcyc6XG4gICAgICByZXR1cm4gYHJnYmEoJHtkYXRhWzBdfSwgJHtkYXRhWzFdfSwgJHtkYXRhWzJdfSwgJHtkYXRhWzNdfSlgO1xuICAgIGNhc2UgJ2hzbCc6XG4gICAgICByZXR1cm4gcmdiVG9Ic2woZGF0YVswXSwgZGF0YVsxXSwgZGF0YVsyXSk7XG4gICAgY2FzZSAnaHNsY3NzJzpcbiAgICAgIGRhdGEgPSByZ2JUb0hzbChkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdKTtcblxuICAgICAgcmV0dXJuIGBoc2woJHtkYXRhWzBdfSwgJHtkYXRhWzFdfSwgJHtkYXRhWzJdfSlgO1xuICAgIGNhc2UgJ2hzbGNzczQnOiB7XG4gICAgICBjb25zdCBoaCA9IHJnYlRvSHNsKGRhdGFbMF0sIGRhdGFbMV0sIGRhdGFbMl0pO1xuXG4gICAgICByZXR1cm4gYGhzbCgke2hoWzBdfSwgJHtoaFsxXX0sICR7aGhbMl19LCAke2RhdGFbM119KWA7XG4gICAgfVxuICAgIGNhc2UgJ2hzbGEnOlxuICAgICAgcmV0dXJuIFsuLi5yZ2JUb0hzbChkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdKSwgZGF0YVszXV07XG4gICAgY2FzZSAnaHNsYWNzcyc6IHtcbiAgICAgIGNvbnN0IGhhID0gcmdiVG9Ic2woZGF0YVswXSwgZGF0YVsxXSwgZGF0YVsyXSk7XG5cbiAgICAgIHJldHVybiBgaHNsYSgke2hhWzBdfSwgJHtoYVsxXX0sICR7aGFbMl19LCAke2RhdGFbM119KWA7XG4gICAgfVxuICAgIGNhc2UgJ2hleCc6XG4gICAgICByZXR1cm4gcmdiVG9IZXgoZGF0YVswXSwgZGF0YVsxXSwgZGF0YVsyXSk7XG4gICAgY2FzZSAnaGV4Y3NzNCc6XG4gICAgICByZXR1cm4gcmdiVG9IZXgoZGF0YVswXSwgZGF0YVsxXSwgZGF0YVsyXSkgKyAoJzAwJyArIHBhcnNlSW50KChkYXRhWzNdICogMjU1KS50b1N0cmluZygpKS50b1N0cmluZygxNikpLnNsaWNlKC0yKTtcbiAgICBjYXNlICdpbnQnOlxuICAgICAgcmV0dXJuIHJnYlRvSW50KGRhdGFbMF0sIGRhdGFbMV0sIGRhdGFbMl0pO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VDb2xvciA9IChjb2xvcjogc3RyaW5nIHwgQXJyYXk8bnVtYmVyPiwgZm9ybWF0OiBzdHJpbmcgfCBvYmplY3QpID0+IHtcbiAgaWYgKCFpc05pbChjb2xvcikpIHtcbiAgICBsZXQgZGF0YTogQXJyYXk8bnVtYmVyPiB8IHVuZGVmaW5lZCA9IFtdO1xuXG4gICAgZGF0YSA9IHBhcnNlQ29sb3JUb1JnYmEoY29sb3IpIHx8IChwYXJzZUNvbG9yVG9Ic2xhKGNvbG9yKSAmJiBbLi4uaHNsVG9SZ2IoZGF0YVswXSwgZGF0YVsxXSwgZGF0YVsyXSksIGRhdGFbM11dKTtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgaWYgKHR5cGVvZiBmb3JtYXQgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBbJ3JnYicsICdyZ2Jjc3MnLCAncmdiY3NzNCcsICdyZ2JhJywgJ3JnYmFjc3MnLCAnaHNsJywgJ2hzbGNzcycsICdoc2xjc3M0JywgJ2hzbGEnLCAnaHNsYWNzcycsICdoZXgnLCAnaGV4Y3NzNCcsICdpbnQnXS5yZWR1Y2UoKG0sIGYpID0+IHtcbiAgICAgICAgICBzZXQobSwgZiwgZm9ybWF0Q29sb3IoZGF0YSwgZikpO1xuXG4gICAgICAgICAgcmV0dXJuIG07XG4gICAgICAgIH0sIGZvcm1hdCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmb3JtYXRDb2xvcihkYXRhLCBmb3JtYXQgYXMgc3RyaW5nKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRIZWxwZXIgPSAoKSA9PiB7XG4gIHJldHVybiB7XG4gICAgc2V0SHVlOiAoKSA9PiB7XG4gICAgICByZXR1cm47XG4gICAgfSxcbiAgICBncmFiQ29sb3I6ICgpID0+IFtdLFxuICAgIGZpbmRDb2xvcjogKCkgPT4gW10sXG4gIH07XG59O1xuIl19
364
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2NvbG9yLXBpY2tlci9zcmMvdXRpbHMvcGlja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdqRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQVc7SUFDaEMsU0FBUyxFQUFFLFNBQVM7SUFDcEIsWUFBWSxFQUFFLFNBQVM7SUFDdkIsSUFBSSxFQUFFLFNBQVM7SUFDZixVQUFVLEVBQUUsU0FBUztJQUNyQixLQUFLLEVBQUUsU0FBUztJQUNoQixLQUFLLEVBQUUsU0FBUztJQUNoQixNQUFNLEVBQUUsU0FBUztJQUNqQixLQUFLLEVBQUUsU0FBUztJQUNoQixjQUFjLEVBQUUsU0FBUztJQUN6QixJQUFJLEVBQUUsU0FBUztJQUNmLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLElBQUksRUFBRSxTQUFTO0lBQ2YsUUFBUSxFQUFFLFNBQVM7SUFDbkIsUUFBUSxFQUFFLFNBQVM7SUFDbkIsYUFBYSxFQUFFLFNBQVM7SUFDeEIsUUFBUSxFQUFFLFNBQVM7SUFDbkIsUUFBUSxFQUFFLFNBQVM7SUFDbkIsU0FBUyxFQUFFLFNBQVM7SUFDcEIsU0FBUyxFQUFFLFNBQVM7SUFDcEIsV0FBVyxFQUFFLFNBQVM7SUFDdEIsY0FBYyxFQUFFLFNBQVM7SUFDekIsVUFBVSxF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QUNoQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRTtJQUM1QyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1QsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxBQUFELEVBQUcsQ0FBQyxDQUFDLEdBQUcsNEVBQTRFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV4SCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3JHLENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRTtJQUM1QyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1QsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxBQUFELEVBQUcsQ0FBQyxDQUFDLEdBQUcsNEVBQTRFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV4SCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3JHLENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQTZCLEVBQUUsRUFBRTtJQUNoRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN6QixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVwQyxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLEVBQUU7SUFDMUQsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNyRixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlCLElBQUksQ0FBQyxFQUNILENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRTFCLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2YsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxhQUFhO1FBRXhCLE9BQU8sQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUNELE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFFcEIsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNwRCxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ1osS0FBSyxDQUFDO1lBQ0osQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEMsTUFBTTtRQUNSLEtBQUssQ0FBQztZQUNKLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BCLE1BQU07UUFDUixLQUFLLENBQUM7WUFDSixDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwQixNQUFNO0lBQ1YsQ0FBQztJQUNELENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFakIsT0FBTyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNyRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxFQUFFO0lBQzFELENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFbkUsT0FBTyxHQUFHLEdBQUcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5RSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxFQUFFO0lBQzFELE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2xDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLEVBQUU7SUFDMUQsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNyRixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlCLElBQUksQ0FBQyxFQUNILENBQUMsR0FBRyxHQUFHLENBQUM7SUFDVixNQUFNLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDZCxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ3BCLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7SUFFNUIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRU4sT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJ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QUUsQ0FBQyxFQUFFO1FBQ25CLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO0tBQ3BCLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBnZXQsIGlzTmlsLCBzZXQgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgeyBJQ29sb3IsIElQaWNrZXJPcHRpb25zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBDb2xvck5hbWVzOiBJQ29sb3IgPSB7XG4gIGFsaWNlYmx1ZTogJyNGMEY4RkYnLFxuICBhbnRpcXVld2hpdGU6ICcjRkFFQkQ3JyxcbiAgYXF1YTogJyMwMEZGRkYnLFxuICBhcXVhbWFyaW5lOiAnIzdGRkZENCcsXG4gIGF6dXJlOiAnI0YwRkZGRicsXG4gIGJlaWdlOiAnI0Y1RjVEQycsXG4gIGJpc3F1ZTogJyNGRkU0QzQnLFxuICBibGFjazogJyMwMDAwMDAnLFxuICBibGFuY2hlZGFsbW9uZDogJyNGRkVCQ0QnLFxuICBibHVlOiAnIzAwMDBGRicsXG4gIGJsdWV2aW9sZXQ6ICcjOEEyQkUyJyxcbiAgYnJvd246ICcjQTUyQTJBJyxcbiAgYnVybHl3b29kOiAnI0RFQjg4NycsXG4gIGNhZGV0Ymx1ZTogJyM1RjlFQTAnLFxuICBjaGFydHJldXNlOiAnIzdGRkYwMCcsXG4gIGNob2NvbGF0ZTogJyNEMjY5MUUnLFxuICBjb3JhbDogJyNGRjdGNTAnLFxuICBjb3JuZmxvd2VyYmx1ZTogJyM2NDk1RUQnLFxuICBjb3Juc2lsazogJyNGRkY4REMnLFxuICBjcmltc29uOiAnI0RDMTQzQycsXG4gIGN5YW46ICcjMDBGRkZGJyxcbiAgZGFya2JsdWU6ICcjMDAwMDhCJyxcbiAgZGFya2N5YW46ICcjMDA4QjhCJyxcbiAgZGFya2dvbGRlbnJvZDogJyNCODg2MEInLFxuICBkYXJrZ3JheTogJyNBOUE5QTknLFxuICBkYXJrZ3JleTogJyNBOUE5QTknLFxuICBkYXJrZ3JlZW46ICcjMDA2NDAwJyxcbiAgZGFya2toYWtpOiAnI0JEQjc2QicsXG4gIGRhcmttYWdlbnRhOiAnIzhCMDA4QicsXG4gIGRhcmtvbGl2ZWdyZWVuOiAnIzU1NkIyRicsXG4gIGRhcmtvcmFuZ2U6ICcjRkY4QzAwJyxcbiAgZGFya29yY2hpZDogJyM5OTMyQ0MnLFxuICBkYXJrcmVkOiAnIzhCMDAwMCcsXG4gIGRhcmtzYWxtb246ICcjRTk5NjdBJyxcbiAgZGFya3NlYWdyZWVuOiAnIzhGQkM4RicsXG4gIGRhcmtzbGF0ZWJsdWU6ICcjNDgzRDhCJyxcbiAgZGFya3NsYXRlZ3JheTogJyMyRjRGNEYnLFxuICBkYXJrc2xhdGVncmV5OiAnIzJGNEY0RicsXG4gIGRhcmt0dXJxdW9pc2U6ICcjMDBDRUQxJyxcbiAgZGFya3Zpb2xldDogJyM5NDAwRDMnLFxuICBkZWVwcGluazogJyNGRjE0OTMnLFxuICBkZWVwc2t5Ymx1ZTogJyMwMEJGRkYnLFxuICBkaW1ncmF5OiAnIzY5Njk2OScsXG4gIGRpbWdyZXk6ICcjNjk2OTY5JyxcbiAgZG9kZ2VyYmx1ZTogJyMxRTkwRkYnLFxuICBmaXJlYnJpY2s6ICcjQjIyMjIyJyxcbiAgZmxvcmFsd2hpdGU6ICcjRkZGQUYwJyxcbiAgZm9yZXN0Z3JlZW46ICcjMjI4QjIyJyxcbiAgZnVjaHNpYTogJyNGRjAwRkYnLFxuICBnYWluc2Jvcm86ICcjRENEQ0RDJyxcbiAgZ2hvc3R3aGl0ZTogJyNGOEY4RkYnLFxuICBnb2xkOiAnI0ZGRDcwMCcsXG4gIGdvbGRlbnJvZDogJyNEQUE1MjAnLFxuICBncmF5OiAnIzgwODA4MCcsXG4gIGdyZXk6ICcjODA4MDgwJyxcbiAgZ3JlZW46ICcjMDA4MDAwJyxcbiAgZ3JlZW55ZWxsb3c6ICcjQURGRjJGJyxcbiAgaG9uZXlkZXc6ICcjRjBGRkYwJyxcbiAgaG90cGluazogJyNGRjY5QjQnLFxuICBpbmRpYW5yZWQ6ICcjQ0Q1QzVDJyxcbiAgaW5kaWdvOiAnIzRCMDA4MicsXG4gIGl2b3J5OiAnI0ZGRkZGMCcsXG4gIGtoYWtpOiAnI0YwRTY4QycsXG4gIGxhdmVuZGVyOiAnI0U2RTZGQScsXG4gIGxhdmVuZGVyYmx1c2g6ICcjRkZGMEY1JyxcbiAgbGF3bmdyZWVuOiAnIzdDRkMwMCcsXG4gIGxlbW9uY2hpZmZvbjogJyNGRkZBQ0QnLFxuICBsaWdodGJsdWU6ICcjQUREOEU2JyxcbiAgbGlnaHRjb3JhbDogJyNGMDgwODAnLFxuICBsaWdodGN5YW46ICcjRTBGRkZGJyxcbiAgbGlnaHRnb2xkZW5yb2R5ZWxsb3c6ICcjRkFGQUQyJyxcbiAgbGlnaHRncmF5OiAnI0QzRDNEMycsXG4gIGxpZ2h0Z3JleTogJyNEM0QzRDMnLFxuICBsaWdodGdyZWVuOiAnIzkwRUU5MCcsXG4gIGxpZ2h0cGluazogJyNGRkI2QzEnLFxuICBsaWdodHNhbG1vbjogJyNGRkEwN0EnLFxuICBsaWdodHNlYWdyZWVuOiAnIzIwQjJBQScsXG4gIGxpZ2h0c2t5Ymx1ZTogJyM4N0NFRkEnLFxuICBsaWdodHNsYXRlZ3JheTogJyM3Nzg4OTknLFxuICBsaWdodHNsYXRlZ3JleTogJyM3Nzg4OTknLFxuICBsaWdodHN0ZWVsYmx1ZTogJyNCMEM0REUnLFxuICBsaWdodHllbGxvdzogJyNGRkZGRTAnLFxuICBsaW1lOiAnIzAwRkYwMCcsXG4gIGxpbWVncmVlbjogJyMzMkNEMzInLFxuICBsaW5lbjogJyNGQUYwRTYnLFxuICBtYWdlbnRhOiAnI0ZGMDBGRicsXG4gIG1hcm9vbjogJyM4MDAwMDAnLFxuICBtZWRpdW1hcXVhbWFyaW5lOiAnIzY2Q0RBQScsXG4gIG1lZGl1bWJsdWU6ICcjMDAwMENEJyxcbiAgbWVkaXVtb3JjaGlkOiAnI0JBNTVEMycsXG4gIG1lZGl1bXB1cnBsZTogJyM5MzcwREInLFxuICBtZWRpdW1zZWFncmVlbjogJyMzQ0IzNzEnLFxuICBtZWRpdW1zbGF0ZWJsdWU6ICcjN0I2OEVFJyxcbiAgbWVkaXVtc3ByaW5nZ3JlZW46ICcjMDBGQTlBJyxcbiAgbWVkaXVtdHVycXVvaXNlOiAnIzQ4RDFDQycsXG4gIG1lZGl1bXZpb2xldHJlZDogJyNDNzE1ODUnLFxuICBtaWRuaWdodGJsdWU6ICcjMTkxOTcwJyxcbiAgbWludGNyZWFtOiAnI0Y1RkZGQScsXG4gIG1pc3R5cm9zZTogJyNGRkU0RTEnLFxuICBtb2NjYXNpbjogJyNGRkU0QjUnLFxuICBuYXZham93aGl0ZTogJyNGRkRFQUQnLFxuICBuYXZ5OiAnIzAwMDA4MCcsXG4gIG9sZGxhY2U6ICcjRkRGNUU2JyxcbiAgb2xpdmU6ICcjODA4MDAwJyxcbiAgb2xpdmVkcmFiOiAnIzZCOEUyMycsXG4gIG9yYW5nZTogJyNGRkE1MDAnLFxuICBvcmFuZ2VyZWQ6ICcjRkY0NTAwJyxcbiAgb3JjaGlkOiAnI0RBNzBENicsXG4gIHBhbGVnb2xkZW5yb2Q6ICcjRUVFOEFBJyxcbiAgcGFsZWdyZWVuOiAnIzk4RkI5OCcsXG4gIHBhbGV0dXJxdW9pc2U6ICcjQUZFRUVFJyxcbiAgcGFsZXZpb2xldHJlZDogJyNEQjcwOTMnLFxuICBwYXBheWF3aGlwOiAnI0ZGRUZENScsXG4gIHBlYWNocHVmZjogJyNGRkRBQjknLFxuICBwZXJ1OiAnI0NEODUzRicsXG4gIHBpbms6ICcjRkZDMENCJyxcbiAgcGx1bTogJyNEREEwREQnLFxuICBwb3dkZXJibHVlOiAnI0IwRTBFNicsXG4gIHB1cnBsZTogJyM4MDAwODAnLFxuICByZWJlY2NhcHVycGxlOiAnIzY2MzM5OScsXG4gIHJlZDogJyNGRjAwMDAnLFxuICByb3N5YnJvd246ICcjQkM4RjhGJyxcbiAgcm95YWxibHVlOiAnIzQxNjlFMScsXG4gIHNhZGRsZWJyb3duOiAnIzhCNDUxMycsXG4gIHNhbG1vbjogJyNGQTgwNzInLFxuICBzYW5keWJyb3duOiAnI0Y0QTQ2MCcsXG4gIHNlYWdyZWVuOiAnIzJFOEI1NycsXG4gIHNlYXNoZWxsOiAnI0ZGRjVFRScsXG4gIHNpZW5uYTogJyNBMDUyMkQnLFxuICBzaWx2ZXI6ICcjQzBDMEMwJyxcbiAgc2t5Ymx1ZTogJyM4N0NFRUInLFxuICBzbGF0ZWJsdWU6ICcjNkE1QUNEJyxcbiAgc2xhdGVncmF5OiAnIzcwODA5MCcsXG4gIHNsYXRlZ3JleTogJyM3MDgwOTAnLFxuICBzbm93OiAnI0ZGRkFGQScsXG4gIHNwcmluZ2dyZWVuOiAnIzAwRkY3RicsXG4gIHN0ZWVsYmx1ZTogJyM0NjgyQjQnLFxuICB0YW46ICcjRDJCNDhDJyxcbiAgdGVhbDogJyMwMDgwODAnLFxuICB0aGlzdGxlOiAnI0Q4QkZEOCcsXG4gIHRvbWF0bzogJyNGRjYzNDcnLFxuICB0dXJxdW9pc2U6ICcjNDBFMEQwJyxcbiAgdmlvbGV0OiAnI0VFODJFRScsXG4gIHdoZWF0OiAnI0Y1REVCMycsXG4gIHdoaXRlOiAnI0ZGRkZGRicsXG4gIHdoaXRlc21va2U6ICcjRjVGNUY1JyxcbiAgeWVsbG93OiAnI0ZGRkYwMCcsXG4gIHllbGxvd2dyZWVuOiAnIzlBQ0QzMicsXG59O1xuZXhwb3J0IGNvbnN0IG9wdGlvbnNEZWZhdWx0ID0gKCk6IElQaWNrZXJPcHRpb25zID0+IHtcbiAgcmV0dXJuIHtcbiAgICBzaG93SHNsOiBmYWxzZSxcbiAgICBzaG93UmdiOiB0cnVlLFxuICAgIHNob3dIZXg6IHRydWUsXG4gICAgc2hvd0FscGhhOiBmYWxzZSxcbiAgICBjb2xvcjogJyNmZjAwMDAnLFxuICAgIGZvcm1hdDogJ2NvbG9yJyxcbiAgICBzbEJhclNpemU6IFs0MjAsIDIwMF0sXG4gICAgaHVlQmFyU2l6ZTogWzQyMCwgMjBdLFxuICAgIGFscGhhQmFyU2l6ZTogWzQyMCwgMjBdLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGxpbWl0ID0gKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcikgPT4ge1xuICB2YWx1ZSA9ICt2YWx1ZTtcbiAgcmV0dXJuIGlzTmFOKHZhbHVlKSA/IG1pbiA6IHZhbHVlIDwgbWluID8gbWluIDogdmFsdWUgPiBtYXggPyBtYXggOiB2YWx1ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBoc2xUb1JnYiA9IChoOiBudW1iZXIsIHM6IG51bWJlciwgbDogbnVtYmVyKSA9PiB7XG4gIGxldCByLCBnLCBiO1xuICBbaCwgcywgbF0gPSBbbGltaXQoaCwgMCwgMzYwKSAvIDM2MCwgbGltaXQocywgMCwgMTAwKSAvIDEwMCwgbGltaXQobCwgMCwgMTAwKSAvIDEwMF07XG5cbiAgaWYgKHMgPT0gMCkge1xuICAgIHIgPSBnID0gYiA9IGw7IC8vIGFjaHJvbWF0aWNcblxuICAgIHJldHVybiBbciAqIDI1NSwgZyAqIDI1NSwgYiAqIDI1NV0ubWFwKE1hdGgucm91bmQpO1xuICB9XG4gIGNvbnN0IGh1ZVRvUmdiID0gKHA6IG51bWJlciwgcTogbnVtYmVyLCB0OiBudW1iZXIpID0+IHtcbiAgICBpZiAodCA8IDApIHQgKz0gMTtcbiAgICBpZiAodCA+IDEpIHQgLT0gMTtcbiAgICBpZiAodCA8IDEgLyA2KSByZXR1cm4gcCArIChxIC0gcCkgKiA2ICogdDtcbiAgICBpZiAodCA8IDEgLyAyKSByZXR1cm4gcTtcbiAgICBpZiAodCA8IDIgLyAzKSByZXR1cm4gcCArIChxIC0gcCkgKiAoMiAvIDMgLSB0KSAqIDY7XG5cbiAgICByZXR1cm4gcDtcbiAgfTtcbiAgY29uc3QgcSA9IGwgPCAwLjUgPyBsICogKDEgKyBzKSA6IGwgKyBzIC0gbCAqIHM7XG4gIGNvbnN0IHAgPSAyICogbCAtIHE7XG5cbiAgciA9IGh1ZVRvUmdiKHAsIHEsIGggKyAxIC8gMyk7XG4gIGcgPSBodWVUb1JnYihwLCBxLCBoKTtcbiAgYiA9IGh1ZVRvUmdiKHAsIHEsIGggLSAxIC8gMyk7XG5cbiAgcmV0dXJuIFtyICogMjU1LCBnICogMjU1LCBiICogMjU1XS5tYXAoTWF0aC5yb3VuZCk7XG59O1xuXG5leHBvcnQgY29uc3QgY3NzQ29sb3JUb1JnYmEgPSAoY29sb3I6IHN0cmluZykgPT4ge1xuICBpZiAoY29sb3IpIHtcbiAgICBjb25zdCBjb2xvckJ5TmFtZSA9IGdldChDb2xvck5hbWVzLCBjb2xvci50b0xvd2VyQ2FzZSgpKTtcbiAgICBjb25zdCBbLCAsICwgciwgZywgYiwgYSwgLCByciwgZ2csIGJiLCBhYV0gPSAvXlxccyojPygoKFswLTlBLUZdKShbMC05QS1GXSkoWzAtOUEtRl0pKFswLTlBLUZdKT8pfCgoWzAtOUEtRl17Mn0pKFswLTlBLUZdezJ9KShbMC05QS1GXXsyfSkoWzAtOUEtRl17Mn0pPykpXFxzKiQvaS5leGVjKGNvbG9yQnlOYW1lIHx8IGNvbG9yKSB8fCBbXTtcbiAgICBpZiAoIWlzTmlsKHIpKSB7XG4gICAgICByZXR1cm4gW3BhcnNlSW50KHIgKyByLCAxNiksIHBhcnNlSW50KGcgKyBnLCAxNiksIHBhcnNlSW50KGIgKyBiLCAxNiksIGEgPyArKHBhcnNlSW50KGEgKyBhLCAxNikgLyAyNTUpLnRvRml4ZWQoMikgOiAxXTtcbiAgICB9XG4gICAgaWYgKCFpc05pbChycikpIHtcbiAgICAgIHJldHVybiBbcGFyc2VJbnQocnIsIDE2KSwgcGFyc2VJbnQoZ2csIDE2KSwgcGFyc2VJbnQoYmIsIDE2KSwgYWEgPyArKHBhcnNlSW50KGFhLCAxNikgLyAyNTUpLnRvRml4ZWQoMikgOiAxXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlQ29sb3JUb1JnYmEgPSAoY29sb3I6IHN0cmluZyB8IEFycmF5PG51bWJlcj4pID0+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoY29sb3IpKSB7XG4gICAgcmV0dXJuIFtsaW1pdChjb2xvclswXSwgMCwgMjU1KSwgbGltaXQoY29sb3JbMV0sIDAsIDI1NSksIGxpbWl0KGNvbG9yWzJdLCAwLCAyNTUpLCBsaW1pdChjb2xvclszXSA/PyAxLCAwLCAxKV07XG4gIH1cbiAgY29uc3QgcGFyc2VkID0gY3NzQ29sb3JUb1JnYmEoY29sb3IpIHx8IGNzc1JnYmFUb1JnYmEoY29sb3IpO1xuXG4gIGlmIChwYXJzZWQgJiYgcGFyc2VkLmxlbmd0aCA9PT0gMykge1xuICAgIHBhcnNlZC5wdXNoKDEpO1xuICB9XG5cbiAgcmV0dXJuIHBhcnNlZDtcbn07XG5cbmV4cG9ydCBjb25zdCBjc3NSZ2JhVG9SZ2JhID0gKHJnYmE6IHN0cmluZykgPT4ge1xuICBpZiAocmdiYSkge1xuICAgIGNvbnN0IFttLCByLCBnLCBiLCAsIGFdID0gL15yZ2JhP1xcKChcXGQrKVxccypbXFxzLF1cXHMqKFxcZCspXFxzKltcXHMsXVxccyooXFxkKykoXFxzKltcXHMsXVxccyooXFxkKiguXFxkKyk/KSk/XFwpL2kuZXhlYyhyZ2JhKSB8fCBbXTtcblxuICAgIHJldHVybiBtID8gW2xpbWl0KHIsIDAsIDI1NSksIGxpbWl0KGcsIDAsIDI1NSksIGxpbWl0KGIsIDAsIDI1NSksIGxpbWl0KGEgPz8gMSwgMCwgMSldIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBjb25zdCBjc3NIc2xhVG9Ic2xhID0gKGhzbGE6IHN0cmluZykgPT4ge1xuICBpZiAoaHNsYSkge1xuICAgIGNvbnN0IFttLCBoLCBzLCBsLCAsIGFdID0gL15oc2xhP1xcKChcXGQrKVxccypbXFxzLF1cXHMqKFxcZCspXFxzKltcXHMsXVxccyooXFxkKykoXFxzKltcXHMsXVxccyooXFxkKiguXFxkKyk/KSk/XFwpL2kuZXhlYyhoc2xhKSB8fCBbXTtcblxuICAgIHJldHVybiBtID8gW2xpbWl0KGgsIDAsIDI1NSksIGxpbWl0KHMsIDAsIDI1NSksIGxpbWl0KGwsIDAsIDI1NSksIGxpbWl0KGEgPz8gMSwgMCwgMSldIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbG9yVG9Ic2xhID0gKGNvbG9yOiBzdHJpbmcgfCBBcnJheTxudW1iZXI+KSA9PiB7XG4gIGlmIChBcnJheS5pc0FycmF5KGNvbG9yKSkge1xuICAgIHJldHVybiBbbGltaXQoY29sb3JbMF0sIDAsIDM2MCksIGxpbWl0KGNvbG9yWzFdLCAwLCAxMDApLCBsaW1pdChjb2xvclsyXSwgMCwgMTAwKSwgbGltaXQoY29sb3JbM10gPz8gMSwgMCwgMSldO1xuICB9XG4gIGNvbnN0IHBhcnNlZCA9IGNzc0hzbGFUb0hzbGEoY29sb3IpO1xuXG4gIGlmIChwYXJzZWQgJiYgcGFyc2VkLmxlbmd0aCA9PT0gMykge1xuICAgIHBhcnNlZC5wdXNoKDEpO1xuICB9XG5cbiAgcmV0dXJuIHBhcnNlZDtcbn07XG5cbmV4cG9ydCBjb25zdCByZ2JUb0hzbCA9IChyOiBudW1iZXIsIGc6IG51bWJlciwgYjogbnVtYmVyKSA9PiB7XG4gIFtyLCBnLCBiXSA9IFtsaW1pdChyLCAwLCAyNTUpIC8gMjU1LCBsaW1pdChnLCAwLCAyNTUpIC8gMjU1LCBsaW1pdChiLCAwLCAyNTUpIC8gMjU1XTtcbiAgY29uc3QgbWF4ID0gTWF0aC5tYXgociwgZywgYik7XG4gIGNvbnN0IG1pbiA9IE1hdGgubWluKHIsIGcsIGIpO1xuICBsZXQgaCxcbiAgICBzID0gKG1heCArIG1pbikgLyAyO1xuICBjb25zdCBsID0gKG1heCArIG1pbikgLyAyO1xuXG4gIGlmIChtYXggPT0gbWluKSB7XG4gICAgaCA9IHMgPSAwOyAvLyBhY2hyb21hdGljXG5cbiAgICByZXR1cm4gW2ggKiAzNjAsIHMgKiAxMDAsIGwgKiAxMDBdLm1hcChNYXRoLnJvdW5kKTtcbiAgfVxuICBjb25zdCBkID0gbWF4IC0gbWluO1xuXG4gIHMgPSBsID4gMC41ID8gZCAvICgyIC0gbWF4IC0gbWluKSA6IGQgLyAobWF4ICsgbWluKTtcbiAgc3dpdGNoIChtYXgpIHtcbiAgICBjYXNlIHI6XG4gICAgICBoID0gKGcgLSBiKSAvIGQgKyAoZyA8IGIgPyA2IDogMCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIGc6XG4gICAgICBoID0gKGIgLSByKSAvIGQgKyAyO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBiOlxuICAgICAgaCA9IChyIC0gZykgLyBkICsgNDtcbiAgICAgIGJyZWFrO1xuICB9XG4gIGggPSAoaCB8fCAwKSAvIDY7XG5cbiAgcmV0dXJuIFtoICogMzYwLCBzICogMTAwLCBsICogMTAwXS5tYXAoTWF0aC5yb3VuZCk7XG59O1xuXG5leHBvcnQgY29uc3QgcmdiVG9IZXggPSAocjogbnVtYmVyLCBnOiBudW1iZXIsIGI6IG51bWJlcikgPT4ge1xuICBbciwgZywgYl0gPSBbbGltaXQociwgMCwgMjU1KSwgbGltaXQoZywgMCwgMjU1KSwgbGltaXQoYiwgMCwgMjU1KV07XG5cbiAgcmV0dXJuICcjJyArICgnMDAwMDAwJyArICgociA8PCAxNikgfCAoZyA8PCA4KSB8IGIpLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTYpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJnYlRvSW50ID0gKHI6IG51bWJlciwgZzogbnVtYmVyLCBiOiBudW1iZXIpID0+IHtcbiAgcmV0dXJuIChyIDw8IDE2KSB8IChnIDw8IDgpIHwgYjtcbn07XG5cbmV4cG9ydCBjb25zdCByZ2JUb0hzdiA9IChyOiBudW1iZXIsIGc6IG51bWJlciwgYjogbnVtYmVyKSA9PiB7XG4gIFtyLCBnLCBiXSA9IFtsaW1pdChyLCAwLCAyNTUpIC8gMjU1LCBsaW1pdChnLCAwLCAyNTUpIC8gMjU1LCBsaW1pdChiLCAwLCAyNTUpIC8gMjU1XTtcbiAgY29uc3QgbWF4ID0gTWF0aC5tYXgociwgZywgYik7XG4gIGNvbnN0IG1pbiA9IE1hdGgubWluKHIsIGcsIGIpO1xuICBsZXQgaCxcbiAgICBzID0gbWF4O1xuICBjb25zdCB2ID0gbWF4O1xuICBjb25zdCBkID0gbWF4IC0gbWluO1xuICBzID0gbWF4ID09PSAwID8gMCA6IGQgLyBtYXg7XG5cbiAgaWYgKG1heCA9PSBtaW4pIHtcbiAgICBoID0gMDtcblxuICAgIHJldHVybiBbaCwgcywgdl07XG4gIH1cbiAgc3dpdGNoIChtYXgpIHtcbiAgICBjYXNlIHI6XG4gICAgICBoID0gKGcgLSBiKSAvIGQgKyAoZyA8IGIgPyA2IDogMCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIGc6XG4gICAgICBoID0gKGIgLSByKSAvIGQgKyAyO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBiOlxuICAgICAgaCA9IChyIC0gZykgLyBkICsgNDtcbiAgICAgIGJyZWFrO1xuICB9XG4gIGggPSAoaCB8fCAwKSAvIDY7XG5cbiAgcmV0dXJuIFtoLCBzLCB2XTtcbn07XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRDb2xvciA9IChkYXRhOiBBcnJheTxudW1iZXI+LCBmb3JtYXQ6IHN0cmluZykgPT4ge1xuICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgIGNhc2UgJ3JnYic6XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBkYXRhLnNsaWNlKDAsIDMpO1xuICAgIGNhc2UgJ3JnYmNzcyc6XG4gICAgICByZXR1cm4gYHJnYigke2RhdGFbMF19LCAke2RhdGFbMV19LCAke2RhdGFbMl19KWA7XG4gICAgY2FzZSAncmdiY3NzNCc6XG4gICAgICByZXR1cm4gYHJnYigke2RhdGFbMF19LCAke2RhdGFbMV19LCAke2RhdGFbMl19LCAke2RhdGFbM119KWA7XG4gICAgY2FzZSAncmdiYSc6XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICBjYXNlICdyZ2JhY3NzJzpcbiAgICAgIHJldHVybiBgcmdiYSgke2RhdGFbMF19LCAke2RhdGFbMV19LCAke2RhdGFbMl19LCAke2RhdGFbM119KWA7XG4gICAgY2FzZSAnaHNsJzpcbiAgICAgIHJldHVybiByZ2JUb0hzbChkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdKTtcbiAgICBjYXNlICdoc2xjc3MnOlxuICAgICAgZGF0YSA9IHJnYlRvSHNsKGRhdGFbMF0sIGRhdGFbMV0sIGRhdGFbMl0pO1xuXG4gICAgICByZXR1cm4gYGhzbCgke2RhdGFbMF19LCAke2RhdGFbMV19LCAke2RhdGFbMl19KWA7XG4gICAgY2FzZSAnaHNsY3NzNCc6IHtcbiAgICAgIGNvbnN0IGhoID0gcmdiVG9Ic2woZGF0YVswXSwgZGF0YVsxXSwgZGF0YVsyXSk7XG5cbiAgICAgIHJldHVybiBgaHNsKCR7aGhbMF19LCAke2hoWzFdfSwgJHtoaFsyXX0sICR7ZGF0YVszXX0pYDtcbiAgICB9XG4gICAgY2FzZSAnaHNsYSc6XG4gICAgICByZXR1cm4gWy4uLnJnYlRvSHNsKGRhdGFbMF0sIGRhdGFbMV0sIGRhdGFbMl0pLCBkYXRhWzNdXTtcbiAgICBjYXNlICdoc2xhY3NzJzoge1xuICAgICAgY29uc3QgaGEgPSByZ2JUb0hzbChkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdKTtcblxuICAgICAgcmV0dXJuIGBoc2xhKCR7aGFbMF19LCAke2hhWzFdfSwgJHtoYVsyXX0sICR7ZGF0YVszXX0pYDtcbiAgICB9XG4gICAgY2FzZSAnaGV4JzpcbiAgICAgIHJldHVybiByZ2JUb0hleChkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdKTtcbiAgICBjYXNlICdoZXhjc3M0JzpcbiAgICAgIHJldHVybiByZ2JUb0hleChkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdKSArICgnMDAnICsgcGFyc2VJbnQoKGRhdGFbM10gKiAyNTUpLnRvU3RyaW5nKCkpLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpO1xuICAgIGNhc2UgJ2ludCc6XG4gICAgICByZXR1cm4gcmdiVG9JbnQoZGF0YVswXSwgZGF0YVsxXSwgZGF0YVsyXSk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbG9yID0gKGNvbG9yOiBzdHJpbmcgfCBBcnJheTxudW1iZXI+LCBmb3JtYXQ6IHN0cmluZyB8IG9iamVjdCkgPT4ge1xuICBpZiAoIWlzTmlsKGNvbG9yKSkge1xuICAgIGxldCBkYXRhOiBBcnJheTxudW1iZXI+IHwgdW5kZWZpbmVkID0gW107XG5cbiAgICBkYXRhID0gcGFyc2VDb2xvclRvUmdiYShjb2xvcikgfHwgKHBhcnNlQ29sb3JUb0hzbGEoY29sb3IpICYmIFsuLi5oc2xUb1JnYihkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdKSwgZGF0YVszXV0pO1xuICAgIGlmIChkYXRhKSB7XG4gICAgICBpZiAodHlwZW9mIGZvcm1hdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIFsncmdiJywgJ3JnYmNzcycsICdyZ2Jjc3M0JywgJ3JnYmEnLCAncmdiYWNzcycsICdoc2wnLCAnaHNsY3NzJywgJ2hzbGNzczQnLCAnaHNsYScsICdoc2xhY3NzJywgJ2hleCcsICdoZXhjc3M0JywgJ2ludCddLnJlZHVjZSgobSwgZikgPT4ge1xuICAgICAgICAgIHNldDxhbnk+KG0sIGYsIGZvcm1hdENvbG9yKGRhdGEsIGYpKTtcblxuICAgICAgICAgIHJldHVybiBtO1xuICAgICAgICB9LCBmb3JtYXQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm9ybWF0Q29sb3IoZGF0YSwgZm9ybWF0IGFzIHN0cmluZyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0SGVscGVyID0gKCkgPT4ge1xuICByZXR1cm4ge1xuICAgIHNldEh1ZTogKCkgPT4ge1xuICAgICAgcmV0dXJuO1xuICAgIH0sXG4gICAgZ3JhYkNvbG9yOiAoKSA9PiBbXSxcbiAgICBmaW5kQ29sb3I6ICgpID0+IFtdLFxuICB9O1xufTtcbiJdfQ==
@@ -6,6 +6,7 @@ import { LibsUiNotificationService } from '@libs-ui/services-notification';
6
6
  import { get, isNil, set, getDragEventByElement } from '@libs-ui/utils';
7
7
  import { Subject } from 'rxjs';
8
8
 
9
+ /* eslint-disable @typescript-eslint/no-explicit-any */
9
10
  const ColorNames = {
10
11
  aliceblue: '#F0F8FF',
11
12
  antiquewhite: '#FAEBD7',
@@ -66,8 +67,8 @@ const ColorNames = {
66
67
  greenyellow: '#ADFF2F',
67
68
  honeydew: '#F0FFF0',
68
69
  hotpink: '#FF69B4',
69
- 'indianred ': '#CD5C5C',
70
- 'indigo ': '#4B0082',
70
+ indianred: '#CD5C5C',
71
+ indigo: '#4B0082',
71
72
  ivory: '#FFFFF0',
72
73
  khaki: '#F0E68C',
73
74
  lavender: '#E6E6FA',
@@ -1 +1 @@
1
- {"version":3,"file":"libs-ui-components-color-picker.mjs","sources":["../../../../../libs-ui/components/color-picker/src/utils/picker.ts","../../../../../libs-ui/components/color-picker/src/color-picker.component.ts","../../../../../libs-ui/components/color-picker/src/color-picker.component.html","../../../../../libs-ui/components/color-picker/src/libs-ui-components-color-picker.ts"],"sourcesContent":["import { get, isNil, set } from '@libs-ui/utils';\nimport { IPickerOptions } from '../interfaces';\n\nexport const ColorNames = {\n aliceblue: '#F0F8FF',\n antiquewhite: '#FAEBD7',\n aqua: '#00FFFF',\n aquamarine: '#7FFFD4',\n azure: '#F0FFFF',\n beige: '#F5F5DC',\n bisque: '#FFE4C4',\n black: '#000000',\n blanchedalmond: '#FFEBCD',\n blue: '#0000FF',\n blueviolet: '#8A2BE2',\n brown: '#A52A2A',\n burlywood: '#DEB887',\n cadetblue: '#5F9EA0',\n chartreuse: '#7FFF00',\n chocolate: '#D2691E',\n coral: '#FF7F50',\n cornflowerblue: '#6495ED',\n cornsilk: '#FFF8DC',\n crimson: '#DC143C',\n cyan: '#00FFFF',\n darkblue: '#00008B',\n darkcyan: '#008B8B',\n darkgoldenrod: '#B8860B',\n darkgray: '#A9A9A9',\n darkgrey: '#A9A9A9',\n darkgreen: '#006400',\n darkkhaki: '#BDB76B',\n darkmagenta: '#8B008B',\n darkolivegreen: '#556B2F',\n darkorange: '#FF8C00',\n darkorchid: '#9932CC',\n darkred: '#8B0000',\n darksalmon: '#E9967A',\n darkseagreen: '#8FBC8F',\n darkslateblue: '#483D8B',\n darkslategray: '#2F4F4F',\n darkslategrey: '#2F4F4F',\n darkturquoise: '#00CED1',\n darkviolet: '#9400D3',\n deeppink: '#FF1493',\n deepskyblue: '#00BFFF',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1E90FF',\n firebrick: '#B22222',\n floralwhite: '#FFFAF0',\n forestgreen: '#228B22',\n fuchsia: '#FF00FF',\n gainsboro: '#DCDCDC',\n ghostwhite: '#F8F8FF',\n gold: '#FFD700',\n goldenrod: '#DAA520',\n gray: '#808080',\n grey: '#808080',\n green: '#008000',\n greenyellow: '#ADFF2F',\n honeydew: '#F0FFF0',\n hotpink: '#FF69B4',\n 'indianred ': '#CD5C5C',\n 'indigo ': '#4B0082',\n ivory: '#FFFFF0',\n khaki: '#F0E68C',\n lavender: '#E6E6FA',\n lavenderblush: '#FFF0F5',\n lawngreen: '#7CFC00',\n lemonchiffon: '#FFFACD',\n lightblue: '#ADD8E6',\n lightcoral: '#F08080',\n lightcyan: '#E0FFFF',\n lightgoldenrodyellow: '#FAFAD2',\n lightgray: '#D3D3D3',\n lightgrey: '#D3D3D3',\n lightgreen: '#90EE90',\n lightpink: '#FFB6C1',\n lightsalmon: '#FFA07A',\n lightseagreen: '#20B2AA',\n lightskyblue: '#87CEFA',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#B0C4DE',\n lightyellow: '#FFFFE0',\n lime: '#00FF00',\n limegreen: '#32CD32',\n linen: '#FAF0E6',\n magenta: '#FF00FF',\n maroon: '#800000',\n mediumaquamarine: '#66CDAA',\n mediumblue: '#0000CD',\n mediumorchid: '#BA55D3',\n mediumpurple: '#9370DB',\n mediumseagreen: '#3CB371',\n mediumslateblue: '#7B68EE',\n mediumspringgreen: '#00FA9A',\n mediumturquoise: '#48D1CC',\n mediumvioletred: '#C71585',\n midnightblue: '#191970',\n mintcream: '#F5FFFA',\n mistyrose: '#FFE4E1',\n moccasin: '#FFE4B5',\n navajowhite: '#FFDEAD',\n navy: '#000080',\n oldlace: '#FDF5E6',\n olive: '#808000',\n olivedrab: '#6B8E23',\n orange: '#FFA500',\n orangered: '#FF4500',\n orchid: '#DA70D6',\n palegoldenrod: '#EEE8AA',\n palegreen: '#98FB98',\n paleturquoise: '#AFEEEE',\n palevioletred: '#DB7093',\n papayawhip: '#FFEFD5',\n peachpuff: '#FFDAB9',\n peru: '#CD853F',\n pink: '#FFC0CB',\n plum: '#DDA0DD',\n powderblue: '#B0E0E6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#FF0000',\n rosybrown: '#BC8F8F',\n royalblue: '#4169E1',\n saddlebrown: '#8B4513',\n salmon: '#FA8072',\n sandybrown: '#F4A460',\n seagreen: '#2E8B57',\n seashell: '#FFF5EE',\n sienna: '#A0522D',\n silver: '#C0C0C0',\n skyblue: '#87CEEB',\n slateblue: '#6A5ACD',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#FFFAFA',\n springgreen: '#00FF7F',\n steelblue: '#4682B4',\n tan: '#D2B48C',\n teal: '#008080',\n thistle: '#D8BFD8',\n tomato: '#FF6347',\n turquoise: '#40E0D0',\n violet: '#EE82EE',\n wheat: '#F5DEB3',\n white: '#FFFFFF',\n whitesmoke: '#F5F5F5',\n yellow: '#FFFF00',\n yellowgreen: '#9ACD32',\n};\nexport const optionsDefault = (): IPickerOptions => {\n return {\n showHsl: false,\n showRgb: true,\n showHex: true,\n showAlpha: false,\n color: '#ff0000',\n format: 'color',\n slBarSize: [420, 200],\n hueBarSize: [420, 20],\n alphaBarSize: [420, 20],\n };\n};\n\nexport const limit = (value: number | string, min: number, max: number) => {\n value = +value;\n return isNaN(value) ? min : value < min ? min : value > max ? max : value;\n};\n\nexport const hslToRgb = (h: number, s: number, l: number) => {\n let r, g, b;\n [h, s, l] = [limit(h, 0, 360) / 360, limit(s, 0, 100) / 100, limit(l, 0, 100) / 100];\n\n if (s == 0) {\n r = g = b = l; // achromatic\n\n return [r * 255, g * 255, b * 255].map(Math.round);\n }\n const hueToRgb = (p: number, q: number, t: number) => {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n\n return p;\n };\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n\n r = hueToRgb(p, q, h + 1 / 3);\n g = hueToRgb(p, q, h);\n b = hueToRgb(p, q, h - 1 / 3);\n\n return [r * 255, g * 255, b * 255].map(Math.round);\n};\n\nexport const cssColorToRgba = (color: string) => {\n if (color) {\n const colorByName = get(ColorNames, color.toLowerCase());\n const [, , , r, g, b, a, , rr, gg, bb, aa] = /^\\s*#?((([0-9A-F])([0-9A-F])([0-9A-F])([0-9A-F])?)|(([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})?))\\s*$/i.exec(colorByName || color) || [];\n if (!isNil(r)) {\n return [parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), a ? +(parseInt(a + a, 16) / 255).toFixed(2) : 1];\n }\n if (!isNil(rr)) {\n return [parseInt(rr, 16), parseInt(gg, 16), parseInt(bb, 16), aa ? +(parseInt(aa, 16) / 255).toFixed(2) : 1];\n }\n }\n\n return undefined;\n};\n\nexport const parseColorToRgba = (color: string | Array<number>) => {\n if (Array.isArray(color)) {\n return [limit(color[0], 0, 255), limit(color[1], 0, 255), limit(color[2], 0, 255), limit(color[3] ?? 1, 0, 1)];\n }\n const parsed = cssColorToRgba(color) || cssRgbaToRgba(color);\n\n if (parsed && parsed.length === 3) {\n parsed.push(1);\n }\n\n return parsed;\n};\n\nexport const cssRgbaToRgba = (rgba: string) => {\n if (rgba) {\n const [m, r, g, b, , a] = /^rgba?\\((\\d+)\\s*[\\s,]\\s*(\\d+)\\s*[\\s,]\\s*(\\d+)(\\s*[\\s,]\\s*(\\d*(.\\d+)?))?\\)/i.exec(rgba) || [];\n\n return m ? [limit(r, 0, 255), limit(g, 0, 255), limit(b, 0, 255), limit(a ?? 1, 0, 1)] : undefined;\n }\n\n return undefined;\n};\n\nexport const cssHslaToHsla = (hsla: string) => {\n if (hsla) {\n const [m, h, s, l, , a] = /^hsla?\\((\\d+)\\s*[\\s,]\\s*(\\d+)\\s*[\\s,]\\s*(\\d+)(\\s*[\\s,]\\s*(\\d*(.\\d+)?))?\\)/i.exec(hsla) || [];\n\n return m ? [limit(h, 0, 255), limit(s, 0, 255), limit(l, 0, 255), limit(a ?? 1, 0, 1)] : undefined;\n }\n\n return undefined;\n};\n\nexport const parseColorToHsla = (color: string | Array<number>) => {\n if (Array.isArray(color)) {\n return [limit(color[0], 0, 360), limit(color[1], 0, 100), limit(color[2], 0, 100), limit(color[3] ?? 1, 0, 1)];\n }\n const parsed = cssHslaToHsla(color);\n\n if (parsed && parsed.length === 3) {\n parsed.push(1);\n }\n\n return parsed;\n};\n\nexport const rgbToHsl = (r: number, g: number, b: number) => {\n [r, g, b] = [limit(r, 0, 255) / 255, limit(g, 0, 255) / 255, limit(b, 0, 255) / 255];\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h,\n s = (max + min) / 2;\n const l = (max + min) / 2;\n\n if (max == min) {\n h = s = 0; // achromatic\n\n return [h * 360, s * 100, l * 100].map(Math.round);\n }\n const d = max - min;\n\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h = (h || 0) / 6;\n\n return [h * 360, s * 100, l * 100].map(Math.round);\n};\n\nexport const rgbToHex = (r: number, g: number, b: number) => {\n [r, g, b] = [limit(r, 0, 255), limit(g, 0, 255), limit(b, 0, 255)];\n\n return '#' + ('000000' + ((r << 16) | (g << 8) | b).toString(16)).slice(-6);\n};\n\nexport const rgbToInt = (r: number, g: number, b: number) => {\n return (r << 16) | (g << 8) | b;\n};\n\nexport const rgbToHsv = (r: number, g: number, b: number) => {\n [r, g, b] = [limit(r, 0, 255) / 255, limit(g, 0, 255) / 255, limit(b, 0, 255) / 255];\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h,\n s = max;\n const v = max;\n const d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if (max == min) {\n h = 0;\n\n return [h, s, v];\n }\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h = (h || 0) / 6;\n\n return [h, s, v];\n};\n\nexport const formatColor = (data: Array<number>, format: string) => {\n switch (format) {\n case 'rgb':\n default:\n return data.slice(0, 3);\n case 'rgbcss':\n return `rgb(${data[0]}, ${data[1]}, ${data[2]})`;\n case 'rgbcss4':\n return `rgb(${data[0]}, ${data[1]}, ${data[2]}, ${data[3]})`;\n case 'rgba':\n return data;\n case 'rgbacss':\n return `rgba(${data[0]}, ${data[1]}, ${data[2]}, ${data[3]})`;\n case 'hsl':\n return rgbToHsl(data[0], data[1], data[2]);\n case 'hslcss':\n data = rgbToHsl(data[0], data[1], data[2]);\n\n return `hsl(${data[0]}, ${data[1]}, ${data[2]})`;\n case 'hslcss4': {\n const hh = rgbToHsl(data[0], data[1], data[2]);\n\n return `hsl(${hh[0]}, ${hh[1]}, ${hh[2]}, ${data[3]})`;\n }\n case 'hsla':\n return [...rgbToHsl(data[0], data[1], data[2]), data[3]];\n case 'hslacss': {\n const ha = rgbToHsl(data[0], data[1], data[2]);\n\n return `hsla(${ha[0]}, ${ha[1]}, ${ha[2]}, ${data[3]})`;\n }\n case 'hex':\n return rgbToHex(data[0], data[1], data[2]);\n case 'hexcss4':\n return rgbToHex(data[0], data[1], data[2]) + ('00' + parseInt((data[3] * 255).toString()).toString(16)).slice(-2);\n case 'int':\n return rgbToInt(data[0], data[1], data[2]);\n }\n};\n\nexport const parseColor = (color: string | Array<number>, format: string | object) => {\n if (!isNil(color)) {\n let data: Array<number> | undefined = [];\n\n data = parseColorToRgba(color) || (parseColorToHsla(color) && [...hslToRgb(data[0], data[1], data[2]), data[3]]);\n if (data) {\n if (typeof format === 'object') {\n return ['rgb', 'rgbcss', 'rgbcss4', 'rgba', 'rgbacss', 'hsl', 'hslcss', 'hslcss4', 'hsla', 'hslacss', 'hex', 'hexcss4', 'int'].reduce((m, f) => {\n set(m, f, formatColor(data, f));\n\n return m;\n }, format);\n }\n\n return formatColor(data, format as string);\n }\n }\n\n return undefined;\n};\n\nexport const defaultHelper = () => {\n return {\n setHue: () => {\n return;\n },\n grabColor: () => [],\n findColor: () => [],\n };\n};\n","import { AfterViewInit, ChangeDetectionStrategy, Component, effect, ElementRef, inject, input, OnDestroy, OnInit, output, signal, viewChild } from '@angular/core';\nimport { IFocusAndBlurEvent, LibsUiComponentsInputsInputComponent } from '@libs-ui/components-inputs-input';\nimport { LibsUiComponentsInputsValidComponent } from '@libs-ui/components-inputs-valid';\nimport { LibsUiNotificationService } from '@libs-ui/services-notification';\nimport { getDragEventByElement, set } from '@libs-ui/utils';\nimport { Subject } from 'rxjs';\nimport { ICanvasHelper, IConfigUpdate, IOutputColorChangeMultipleType, IPickerCustomOptions, IPickerOptions } from './interfaces/picker.interface';\nimport { cssColorToRgba, defaultHelper, hslToRgb, limit, optionsDefault, parseColor, rgbToHex, rgbToHsl, rgbToHsv } from './utils/picker';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-color_picker',\n templateUrl: './color-picker.component.html',\n styleUrl: './color-picker.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LibsUiComponentsInputsInputComponent, LibsUiComponentsInputsValidComponent],\n})\nexport class LibsUiComponentsColorPickerComponent implements OnInit, AfterViewInit, OnDestroy {\n // #region PROPERTY\n protected options = signal<IPickerOptions>(optionsDefault());\n protected focus = signal<string | undefined>(undefined);\n protected hex = signal<string>('');\n protected s = signal<number>(0);\n protected h = signal<number>(0);\n protected l = signal<number>(0);\n protected r = signal<number>(0);\n protected g = signal<number>(0);\n protected b = signal<number>(0);\n protected a = signal<number>(1);\n\n private slBarHelper = signal<ICanvasHelper>(defaultHelper());\n private notificationService = inject(LibsUiNotificationService);\n private onDestroy = new Subject<void>();\n\n // #region INPUT\n readonly customOptions = input<IPickerCustomOptions>();\n readonly noEmitEventColorWhenInitComponent = input<boolean, boolean | undefined>(true, { transform: (value) => value ?? true });\n\n // #region OUTPUT\n readonly outColorChange = output<string>();\n readonly outColorChangeMultipleType = output<IOutputColorChangeMultipleType>();\n\n /* VIEW CHILD */\n private readonly hueEl = viewChild<ElementRef>('hueEl');\n private readonly huePointerEl = viewChild<ElementRef>('huePointerEl');\n private readonly slEl = viewChild<ElementRef>('slEl');\n private readonly slPointerEl = viewChild<ElementRef>('slPointerEl');\n private readonly alphaEl = viewChild<ElementRef>('alphaEl');\n private readonly alphaPointerEl = viewChild<ElementRef>('alphaPointerEl');\n private readonly previewEl = viewChild<ElementRef>('previewEl');\n\n constructor() {\n effect(() => {\n const ctx = this.alphaEl()?.nativeElement.getContext('2d');\n\n if (!ctx) {\n return;\n }\n ctx.clearRect(0, 0, this.options().alphaBarSize[0], this.options().alphaBarSize[1]);\n const gradient = ctx.createLinearGradient(0, 0, this.alphaEl()?.nativeElement.width - 1, 0);\n\n gradient.addColorStop(0, `hsla(${this.h()},${this.s()}%,${this.l()}%, 0)`);\n gradient.addColorStop(1, `hsla(${this.h()},${this.s()}%,${this.l()}%, 1)`);\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, this.options().alphaBarSize[0], this.options().alphaBarSize[1]);\n });\n }\n\n /* FUNCTIONS */\n ngOnInit(): void {\n if (this.customOptions()) {\n this.options.update((options) => ({ ...options, ...this.customOptions() }));\n }\n }\n\n ngAfterViewInit(): void {\n this.setupHueCanvas();\n this.setupSlCanvas();\n this.setupSlBarHelper();\n if (this.options().showAlpha) {\n this.setupAlphaCanvas();\n }\n this.handlerColorChange(this.options().format, this.options().color, this.noEmitEventColorWhenInitComponent());\n }\n\n private setupHueCanvas() {\n const canvas = this.hueEl()?.nativeElement;\n\n canvas.width = this.options().hueBarSize[0];\n canvas.height = this.options().hueBarSize[1];\n const ctx = canvas.getContext('2d');\n const gradient = ctx.createLinearGradient(0, 0, this.options().hueBarSize[0], 0);\n const step = 1 / 360;\n\n for (let ii = 0; ii <= 1; ii += step) {\n gradient.addColorStop(ii, `hsl(${360 * ii}, 100%, 50%)`);\n }\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, this.options().hueBarSize[0], this.options().hueBarSize[1]);\n\n getDragEventByElement({ elementMouseDown: canvas, isStartWithMouseDownEvent: true, onDestroy: this.onDestroy }).subscribe((event: MouseEvent) => {\n const x = limit(event.clientX - canvas.getBoundingClientRect().left, 0, this.options().hueBarSize[0]);\n const hue = Math.round((x * 360) / this.options().hueBarSize[0]);\n\n set(this.huePointerEl()?.nativeElement.style, 'left', `${x - 7}px`);\n this.h.set(hue);\n this.handlerColorChange('h', hue);\n });\n }\n\n private setupSlCanvas() {\n const canvas = this.slEl()?.nativeElement;\n\n canvas.width = this.options().slBarSize[0];\n canvas.height = this.options().slBarSize[1];\n\n getDragEventByElement({ elementMouseDown: canvas, isStartWithMouseDownEvent: true, onDestroy: this.onDestroy }).subscribe((event) => {\n const x = limit(event.clientX - canvas.getBoundingClientRect().left, 0, this.options().slBarSize[0] - 1);\n const y = limit(event.clientY - canvas.getBoundingClientRect().top, 0, this.options().slBarSize[1] - 1);\n const c = this.slBarHelper().grabColor(x, y);\n\n set(this.slPointerEl()?.nativeElement.style, 'left', `${x - 7}px`);\n set(this.slPointerEl()?.nativeElement.style, 'top', `${y - 7}px`);\n this.handlerColorChange('rgb', c);\n });\n }\n\n private setupSlBarHelper() {\n const canvas = this.slEl()?.nativeElement;\n const ctx = canvas.getContext('2d');\n const width = +canvas.width;\n const height = +canvas.height;\n const whiteBlackGradient = ctx.createLinearGradient(1, 1, 1, height - 1);\n\n whiteBlackGradient.addColorStop(0, 'white');\n whiteBlackGradient.addColorStop(1, 'black');\n\n this.slBarHelper.set({\n setHue: (hue: number) => {\n const colorGradient = ctx.createLinearGradient(1, 0, width - 1, 0);\n colorGradient.addColorStop(0, `hsla(${hue}, 100%, 50%, 0)`);\n colorGradient.addColorStop(1, `hsla(${hue}, 100%, 50%, 1)`);\n\n ctx.fillStyle = whiteBlackGradient;\n ctx.fillRect(0, 0, width, height);\n ctx.fillStyle = colorGradient;\n ctx.globalCompositeOperation = 'multiply';\n ctx.fillRect(0, 0, width, height);\n ctx.globalCompositeOperation = 'source-over';\n },\n grabColor: (x: number, y: number) => ctx.getImageData(x, y, 1, 1).data,\n findColor: (r: number, g: number, b: number) => {\n const [, s, v] = rgbToHsv(r, g, b);\n const x = s * width;\n const y = height - v * height;\n\n return [x, y];\n },\n });\n }\n\n private setupAlphaCanvas() {\n const canvas = this.alphaEl()?.nativeElement;\n\n canvas.width = this.options().alphaBarSize[0];\n canvas.height = this.options().alphaBarSize[1];\n const ctx = canvas.getContext('2d');\n const gradient = ctx.createLinearGradient(0, 0, canvas.width - 1, 0);\n\n gradient.addColorStop(0, `hsla(${this.h()},${this.s()}%,${this.l()}%, 0)`);\n gradient.addColorStop(1, `hsla(${this.h()},${this.s()}%,${this.l()}%, 1)`);\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, this.options().alphaBarSize[0], this.options().alphaBarSize[1]);\n\n getDragEventByElement({ elementMouseDown: canvas, isStartWithMouseDownEvent: true, onDestroy: this.onDestroy }).subscribe((event) => {\n const x = limit(event.clientX - canvas.getBoundingClientRect().left, 0, this.options().alphaBarSize[0]);\n const alpha = +(x / this.options().alphaBarSize[0]).toFixed(2);\n\n set(this.alphaPointerEl()?.nativeElement.style, 'left', `${x - 7}px`);\n this.handlerColorChange('alpha', alpha);\n });\n }\n\n protected handlerCopyColor(event: Event) {\n event.stopPropagation();\n window.navigator.clipboard.writeText(this.hex());\n // this.notificationService.showCompTypeTextSuccess('i18n_copy_successfully');\n }\n\n private updatePointerH(h: number) {\n const x = (this.options().hueBarSize[0] * h) / 360;\n\n set(this.huePointerEl()?.nativeElement.style, 'left', `${x - 7}px`);\n }\n\n private updatePointerSl(h: number, s: number, l: number) {\n const [r, g, b] = hslToRgb(h, s, l);\n const [x, y] = this.slBarHelper().findColor(r, g, b) as Array<number>;\n\n if (x >= 0) {\n set(this.slPointerEl()?.nativeElement.style, 'left', `${x - 7}px`);\n set(this.slPointerEl()?.nativeElement.style, 'top', `${y - 7}px`);\n }\n }\n\n private updatePointerA(a: number) {\n if (!this.options().showAlpha) {\n return;\n }\n const x = this.options().alphaBarSize[0] * a;\n\n set(this.alphaPointerEl()?.nativeElement.style, 'left', `${x - 7}px`);\n }\n\n private updateHex(r: number, g: number, b: number, a: number) {\n if (this.options().showAlpha) {\n this.hex.set(parseColor([r, g, b, a], 'hexcss4') as string);\n\n return;\n }\n this.hex.set(rgbToHex(r, g, b));\n }\n\n private updateRgb() {\n const rgb = hslToRgb(this.h(), this.s(), this.l());\n\n this.r.set(rgb[0]);\n this.g.set(rgb[1]);\n this.b.set(rgb[2]);\n }\n\n private updateHsl() {\n const hsl = rgbToHsl(this.r(), this.g(), this.b());\n\n this.h.set(hsl[0]);\n this.s.set(hsl[1]);\n this.l.set(hsl[2]);\n }\n\n private updateValuesAndPointer(config: IConfigUpdate) {\n if (config.rgb) {\n this.updateRgb();\n }\n if (config.hsl) {\n this.updateHsl();\n }\n if (config.hue) {\n this.slBarHelper().setHue(this.h());\n }\n if (config.hPoint) {\n this.updatePointerH(this.h());\n }\n if (config.slPoint) {\n this.updatePointerSl(this.h(), this.s(), this.l());\n }\n if (config.hex) {\n this.updateHex(this.r(), this.g(), this.b(), this.a());\n }\n if (config.aPoint) {\n this.updatePointerA(this.a());\n }\n }\n\n private handlerColorChange(key: string, value: string | number | Array<number>, isCallInitComponent = false) {\n let config: IConfigUpdate = {};\n\n switch (key) {\n case 'h':\n config = { hPoint: true, hex: true, rgb: true, hue: true };\n break;\n case 's':\n config = { slPoint: true, hex: true, rgb: true };\n break;\n case 'l':\n config = { slPoint: true, hex: true, rgb: true };\n break;\n case 'r':\n config = { hPoint: true, slPoint: true, hex: true, hsl: true, hue: true };\n break;\n case 'g':\n config = { hPoint: true, slPoint: true, hex: true, hsl: true, hue: true };\n break;\n case 'b':\n config = { hPoint: true, slPoint: true, hex: true, hsl: true, hue: true };\n break;\n case 'rgb':\n this.r.set((value as Array<number>)[0]);\n this.g.set((value as Array<number>)[1]);\n this.b.set((value as Array<number>)[2]);\n config = { hex: true, hsl: true };\n break;\n case 'rgba':\n this.r.set((value as Array<number>)[0]);\n this.g.set((value as Array<number>)[1]);\n this.b.set((value as Array<number>)[2]);\n this.a.set((value as Array<number>)[3]);\n config = { hPoint: true, slPoint: true, hex: true, aPoint: true, hsl: true, hue: true };\n break;\n case 'hsl':\n this.h.set((value as Array<number>)[0]);\n this.s.set((value as Array<number>)[1]);\n this.l.set((value as Array<number>)[2]);\n config = { hPoint: true, slPoint: true, hex: true, aPoint: true, rgb: true, hue: true };\n break;\n case 'hsla':\n this.h.set((value as Array<number>)[0]);\n this.s.set((value as Array<number>)[1]);\n this.l.set((value as Array<number>)[2]);\n this.a.set((value as Array<number>)[3]);\n config = { hPoint: true, slPoint: true, hex: true, aPoint: true, rgb: true, hue: true };\n break;\n case 'hex': {\n const rgba = cssColorToRgba(value as string) || [this.r(), this.g(), this.b(), this.a()];\n\n this.r.set(rgba[0]);\n this.g.set(rgba[1]);\n this.b.set(rgba[2]);\n this.a.set(rgba[3]);\n config = { hPoint: true, slPoint: true, aPoint: true, hsl: true, hue: true };\n break;\n }\n case 'color': {\n const rgba = (parseColor(value as string | Array<number>, 'rgba') || [0, 0, 0, 1]) as Array<number>;\n\n this.r.set(rgba[0]);\n this.g.set(rgba[1]);\n this.b.set(rgba[2]);\n this.a.set(rgba[3]);\n config = { hPoint: true, slPoint: true, hex: true, aPoint: true, hsl: true, hue: true };\n\n break;\n }\n case 'alpha':\n this.a.set(value as number);\n this.updateHex(this.r(), this.g(), this.b(), this.a());\n break;\n }\n this.updateValuesAndPointer(config);\n set(this.previewEl()?.nativeElement.style, 'backgroundColor', this.a() === 1 ? `rgb(${this.r()},${this.g()},${this.b()})` : `rgba(${this.r()},${this.g()},${this.b()},${this.a()})`);\n if (!isCallInitComponent) {\n this.outColorChange.emit(this.hex());\n this.outColorChangeMultipleType.emit({\n hex: this.hex(),\n rgba: `rgba(${this.r()},${this.g()},${this.b()},${this.a()})`,\n rgb: `rgb(${this.r()},${this.g()},${this.b()})`,\n hsl: `hsl(${this.h()},${this.s()},${this.l()})`,\n hsla: `hsla(${this.h()},${this.s()},${this.l()},${this.a()})`,\n });\n }\n }\n\n protected handlerFocusAndBlur(event: IFocusAndBlurEvent, key: string) {\n this.focus.set(event.name === 'blur' ? undefined : key);\n }\n\n protected handlerValueChange(event: string | number, key: string) {\n this.handlerColorChange(key, event);\n }\n\n protected handlerValueChangeAlphaInput(event: string | number) {\n this.handlerColorChange('alpha', ((event as number) || 0) / 100);\n this.updatePointerA(this.a());\n }\n\n protected handlerResetColor() {\n this.handlerColorChange('alpha', 0);\n this.updatePointerA(this.a());\n }\n\n ngOnDestroy(): void {\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n}\n","<div>\n <div\n class=\"relative\"\n [style.width.px]=\"options().slBarSize[0]\">\n <div>\n <canvas\n #slEl\n class=\"rounded-tl-[4px] rounded-tr-[4px] libs-ui-color-picker-background-transparent\"></canvas>\n <div\n #slPointerEl\n class=\"libs-ui-color-picker-dot\"></div>\n </div>\n <div class=\"relative\">\n <canvas\n #hueEl\n class=\"libs-ui-color-picker-background-transparent\"\n [class.rounded-bl-[4px]]=\"!options().showAlpha\"\n [class.rounded-br-[4px]]=\"!options().showAlpha\"></canvas>\n <div\n #huePointerEl\n class=\"libs-ui-color-picker-dot\"></div>\n </div>\n @if (options().showAlpha) {\n <div class=\"relative\">\n <canvas\n #alphaEl\n class=\"rounded-bl-[4px] rounded-br-[4px] libs-ui-color-picker-background-transparent\"></canvas>\n <div\n #alphaPointerEl\n class=\"libs-ui-color-picker-dot\"></div>\n </div>\n }\n <div class=\"flex items-end\">\n <div class=\"text-center mr-[16px]\">\n <div class=\"libs-ui-color-picker-background-transparent rounded-[4px]\">\n <div\n #previewEl\n class=\"w-[32px] h-[32px] rounded-[4px] cursor-pointer\"\n (click)=\"handlerCopyColor($event)\"></div>\n </div>\n </div>\n @if (options().showHex) {\n <div class=\"text-center mr-[12px]\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">HEX</span>\n <div class=\"w-[88px]\">\n <libs_ui-components-inputs-input\n [(value)]=\"hex\"\n [classInclude]=\"'text-center !p-0'\"\n (outChange)=\"handlerValueChange($event, 'hex')\" />\n </div>\n </div>\n }\n <div>\n @if (options().showHsl) {\n <div class=\"flex\">\n <div class=\"text-center\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">H</span>\n <div class=\"w-[56px]\">\n <libs_ui-components-inputs-input\n [(value)]=\"h\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"360\"\n [classInclude]=\"'text-center !p-0 !rounded-tr-none !rounded-br-none ' + (focus() === 's' ? '!border-r-transparent' : '')\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event, 'h')\"\n (outChange)=\"handlerValueChange($event, 'h')\" />\n </div>\n </div>\n <div class=\"text-center\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">S</span>\n <div class=\"w-[56px]\">\n <libs_ui-components-inputs-input\n [(value)]=\"s\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"100\"\n [classInclude]=\"'text-center !p-0 !rounded-none ' + (focus() === 's' ? '' : '!border-x-transparent')\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event, 's')\"\n (outChange)=\"handlerValueChange($event, 's')\" />\n </div>\n </div>\n <div class=\"text-center\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">L</span>\n <div class=\"w-[56px]\">\n <libs_ui-components-inputs-input\n [(value)]=\"l\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"100\"\n [classInclude]=\"'text-center !p-0 !rounded-tl-none !rounded-bl-none ' + (focus() === 's' ? '!border-l-transparent' : '')\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event, 'l')\"\n (outChange)=\"handlerValueChange($event, 'l')\" />\n </div>\n </div>\n </div>\n }\n @if (options().showRgb) {\n <div class=\"flex\">\n <div class=\"text-center\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">R</span>\n <div class=\"w-[56px]\">\n <libs_ui-components-inputs-input\n [(value)]=\"r\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"255\"\n [classInclude]=\"'text-center !p-0 !rounded-tr-none !rounded-br-none ' + (focus() === 'g' ? '!border-r-transparent' : '')\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event, 'r')\"\n (outChange)=\"handlerValueChange($event, 'r')\" />\n </div>\n </div>\n <div class=\"text-center\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">G</span>\n <div class=\"w-[56px]\">\n <libs_ui-components-inputs-input\n [(value)]=\"g\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"255\"\n [classInclude]=\"'text-center !p-0 !rounded-none ' + (focus() === 'g' ? '' : '!border-x-transparent')\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event, 'g')\"\n (outChange)=\"handlerValueChange($event, 'g')\" />\n </div>\n </div>\n <div class=\"text-center\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">B</span>\n <div class=\"w-[56px]\">\n <libs_ui-components-inputs-input\n [(value)]=\"b\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"255\"\n [classInclude]=\"'text-center !p-0 !rounded-tl-none !rounded-bl-none ' + (focus() === 'g' ? '!border-l-transparent' : '')\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event, 'b')\"\n (outChange)=\"handlerValueChange($event, 'b')\" />\n </div>\n </div>\n <div class=\"text-center ml-[8px]\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">A</span>\n <div class=\"w-[78px]\">\n <libs_ui-components-inputs-valid\n [item]=\"{ aValue: a() * 100 }\"\n [fieldNameBind]=\"'aValue'\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"100\"\n [unitsRight]=\"[{ label: '%' }]\"\n [emitEmptyInDataTypeNumber]=\"true\"\n (outValueChange)=\"handlerValueChangeAlphaInput($event)\" />\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libs-ui-components-color-picker.mjs","sources":["../../../../../libs-ui/components/color-picker/src/utils/picker.ts","../../../../../libs-ui/components/color-picker/src/color-picker.component.ts","../../../../../libs-ui/components/color-picker/src/color-picker.component.html","../../../../../libs-ui/components/color-picker/src/libs-ui-components-color-picker.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { get, isNil, set } from '@libs-ui/utils';\nimport { IColor, IPickerOptions } from '../interfaces';\n\nexport const ColorNames: IColor = {\n aliceblue: '#F0F8FF',\n antiquewhite: '#FAEBD7',\n aqua: '#00FFFF',\n aquamarine: '#7FFFD4',\n azure: '#F0FFFF',\n beige: '#F5F5DC',\n bisque: '#FFE4C4',\n black: '#000000',\n blanchedalmond: '#FFEBCD',\n blue: '#0000FF',\n blueviolet: '#8A2BE2',\n brown: '#A52A2A',\n burlywood: '#DEB887',\n cadetblue: '#5F9EA0',\n chartreuse: '#7FFF00',\n chocolate: '#D2691E',\n coral: '#FF7F50',\n cornflowerblue: '#6495ED',\n cornsilk: '#FFF8DC',\n crimson: '#DC143C',\n cyan: '#00FFFF',\n darkblue: '#00008B',\n darkcyan: '#008B8B',\n darkgoldenrod: '#B8860B',\n darkgray: '#A9A9A9',\n darkgrey: '#A9A9A9',\n darkgreen: '#006400',\n darkkhaki: '#BDB76B',\n darkmagenta: '#8B008B',\n darkolivegreen: '#556B2F',\n darkorange: '#FF8C00',\n darkorchid: '#9932CC',\n darkred: '#8B0000',\n darksalmon: '#E9967A',\n darkseagreen: '#8FBC8F',\n darkslateblue: '#483D8B',\n darkslategray: '#2F4F4F',\n darkslategrey: '#2F4F4F',\n darkturquoise: '#00CED1',\n darkviolet: '#9400D3',\n deeppink: '#FF1493',\n deepskyblue: '#00BFFF',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1E90FF',\n firebrick: '#B22222',\n floralwhite: '#FFFAF0',\n forestgreen: '#228B22',\n fuchsia: '#FF00FF',\n gainsboro: '#DCDCDC',\n ghostwhite: '#F8F8FF',\n gold: '#FFD700',\n goldenrod: '#DAA520',\n gray: '#808080',\n grey: '#808080',\n green: '#008000',\n greenyellow: '#ADFF2F',\n honeydew: '#F0FFF0',\n hotpink: '#FF69B4',\n indianred: '#CD5C5C',\n indigo: '#4B0082',\n ivory: '#FFFFF0',\n khaki: '#F0E68C',\n lavender: '#E6E6FA',\n lavenderblush: '#FFF0F5',\n lawngreen: '#7CFC00',\n lemonchiffon: '#FFFACD',\n lightblue: '#ADD8E6',\n lightcoral: '#F08080',\n lightcyan: '#E0FFFF',\n lightgoldenrodyellow: '#FAFAD2',\n lightgray: '#D3D3D3',\n lightgrey: '#D3D3D3',\n lightgreen: '#90EE90',\n lightpink: '#FFB6C1',\n lightsalmon: '#FFA07A',\n lightseagreen: '#20B2AA',\n lightskyblue: '#87CEFA',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#B0C4DE',\n lightyellow: '#FFFFE0',\n lime: '#00FF00',\n limegreen: '#32CD32',\n linen: '#FAF0E6',\n magenta: '#FF00FF',\n maroon: '#800000',\n mediumaquamarine: '#66CDAA',\n mediumblue: '#0000CD',\n mediumorchid: '#BA55D3',\n mediumpurple: '#9370DB',\n mediumseagreen: '#3CB371',\n mediumslateblue: '#7B68EE',\n mediumspringgreen: '#00FA9A',\n mediumturquoise: '#48D1CC',\n mediumvioletred: '#C71585',\n midnightblue: '#191970',\n mintcream: '#F5FFFA',\n mistyrose: '#FFE4E1',\n moccasin: '#FFE4B5',\n navajowhite: '#FFDEAD',\n navy: '#000080',\n oldlace: '#FDF5E6',\n olive: '#808000',\n olivedrab: '#6B8E23',\n orange: '#FFA500',\n orangered: '#FF4500',\n orchid: '#DA70D6',\n palegoldenrod: '#EEE8AA',\n palegreen: '#98FB98',\n paleturquoise: '#AFEEEE',\n palevioletred: '#DB7093',\n papayawhip: '#FFEFD5',\n peachpuff: '#FFDAB9',\n peru: '#CD853F',\n pink: '#FFC0CB',\n plum: '#DDA0DD',\n powderblue: '#B0E0E6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#FF0000',\n rosybrown: '#BC8F8F',\n royalblue: '#4169E1',\n saddlebrown: '#8B4513',\n salmon: '#FA8072',\n sandybrown: '#F4A460',\n seagreen: '#2E8B57',\n seashell: '#FFF5EE',\n sienna: '#A0522D',\n silver: '#C0C0C0',\n skyblue: '#87CEEB',\n slateblue: '#6A5ACD',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#FFFAFA',\n springgreen: '#00FF7F',\n steelblue: '#4682B4',\n tan: '#D2B48C',\n teal: '#008080',\n thistle: '#D8BFD8',\n tomato: '#FF6347',\n turquoise: '#40E0D0',\n violet: '#EE82EE',\n wheat: '#F5DEB3',\n white: '#FFFFFF',\n whitesmoke: '#F5F5F5',\n yellow: '#FFFF00',\n yellowgreen: '#9ACD32',\n};\nexport const optionsDefault = (): IPickerOptions => {\n return {\n showHsl: false,\n showRgb: true,\n showHex: true,\n showAlpha: false,\n color: '#ff0000',\n format: 'color',\n slBarSize: [420, 200],\n hueBarSize: [420, 20],\n alphaBarSize: [420, 20],\n };\n};\n\nexport const limit = (value: number | string, min: number, max: number) => {\n value = +value;\n return isNaN(value) ? min : value < min ? min : value > max ? max : value;\n};\n\nexport const hslToRgb = (h: number, s: number, l: number) => {\n let r, g, b;\n [h, s, l] = [limit(h, 0, 360) / 360, limit(s, 0, 100) / 100, limit(l, 0, 100) / 100];\n\n if (s == 0) {\n r = g = b = l; // achromatic\n\n return [r * 255, g * 255, b * 255].map(Math.round);\n }\n const hueToRgb = (p: number, q: number, t: number) => {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n\n return p;\n };\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n\n r = hueToRgb(p, q, h + 1 / 3);\n g = hueToRgb(p, q, h);\n b = hueToRgb(p, q, h - 1 / 3);\n\n return [r * 255, g * 255, b * 255].map(Math.round);\n};\n\nexport const cssColorToRgba = (color: string) => {\n if (color) {\n const colorByName = get(ColorNames, color.toLowerCase());\n const [, , , r, g, b, a, , rr, gg, bb, aa] = /^\\s*#?((([0-9A-F])([0-9A-F])([0-9A-F])([0-9A-F])?)|(([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})?))\\s*$/i.exec(colorByName || color) || [];\n if (!isNil(r)) {\n return [parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), a ? +(parseInt(a + a, 16) / 255).toFixed(2) : 1];\n }\n if (!isNil(rr)) {\n return [parseInt(rr, 16), parseInt(gg, 16), parseInt(bb, 16), aa ? +(parseInt(aa, 16) / 255).toFixed(2) : 1];\n }\n }\n\n return undefined;\n};\n\nexport const parseColorToRgba = (color: string | Array<number>) => {\n if (Array.isArray(color)) {\n return [limit(color[0], 0, 255), limit(color[1], 0, 255), limit(color[2], 0, 255), limit(color[3] ?? 1, 0, 1)];\n }\n const parsed = cssColorToRgba(color) || cssRgbaToRgba(color);\n\n if (parsed && parsed.length === 3) {\n parsed.push(1);\n }\n\n return parsed;\n};\n\nexport const cssRgbaToRgba = (rgba: string) => {\n if (rgba) {\n const [m, r, g, b, , a] = /^rgba?\\((\\d+)\\s*[\\s,]\\s*(\\d+)\\s*[\\s,]\\s*(\\d+)(\\s*[\\s,]\\s*(\\d*(.\\d+)?))?\\)/i.exec(rgba) || [];\n\n return m ? [limit(r, 0, 255), limit(g, 0, 255), limit(b, 0, 255), limit(a ?? 1, 0, 1)] : undefined;\n }\n\n return undefined;\n};\n\nexport const cssHslaToHsla = (hsla: string) => {\n if (hsla) {\n const [m, h, s, l, , a] = /^hsla?\\((\\d+)\\s*[\\s,]\\s*(\\d+)\\s*[\\s,]\\s*(\\d+)(\\s*[\\s,]\\s*(\\d*(.\\d+)?))?\\)/i.exec(hsla) || [];\n\n return m ? [limit(h, 0, 255), limit(s, 0, 255), limit(l, 0, 255), limit(a ?? 1, 0, 1)] : undefined;\n }\n\n return undefined;\n};\n\nexport const parseColorToHsla = (color: string | Array<number>) => {\n if (Array.isArray(color)) {\n return [limit(color[0], 0, 360), limit(color[1], 0, 100), limit(color[2], 0, 100), limit(color[3] ?? 1, 0, 1)];\n }\n const parsed = cssHslaToHsla(color);\n\n if (parsed && parsed.length === 3) {\n parsed.push(1);\n }\n\n return parsed;\n};\n\nexport const rgbToHsl = (r: number, g: number, b: number) => {\n [r, g, b] = [limit(r, 0, 255) / 255, limit(g, 0, 255) / 255, limit(b, 0, 255) / 255];\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h,\n s = (max + min) / 2;\n const l = (max + min) / 2;\n\n if (max == min) {\n h = s = 0; // achromatic\n\n return [h * 360, s * 100, l * 100].map(Math.round);\n }\n const d = max - min;\n\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h = (h || 0) / 6;\n\n return [h * 360, s * 100, l * 100].map(Math.round);\n};\n\nexport const rgbToHex = (r: number, g: number, b: number) => {\n [r, g, b] = [limit(r, 0, 255), limit(g, 0, 255), limit(b, 0, 255)];\n\n return '#' + ('000000' + ((r << 16) | (g << 8) | b).toString(16)).slice(-6);\n};\n\nexport const rgbToInt = (r: number, g: number, b: number) => {\n return (r << 16) | (g << 8) | b;\n};\n\nexport const rgbToHsv = (r: number, g: number, b: number) => {\n [r, g, b] = [limit(r, 0, 255) / 255, limit(g, 0, 255) / 255, limit(b, 0, 255) / 255];\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h,\n s = max;\n const v = max;\n const d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if (max == min) {\n h = 0;\n\n return [h, s, v];\n }\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h = (h || 0) / 6;\n\n return [h, s, v];\n};\n\nexport const formatColor = (data: Array<number>, format: string) => {\n switch (format) {\n case 'rgb':\n default:\n return data.slice(0, 3);\n case 'rgbcss':\n return `rgb(${data[0]}, ${data[1]}, ${data[2]})`;\n case 'rgbcss4':\n return `rgb(${data[0]}, ${data[1]}, ${data[2]}, ${data[3]})`;\n case 'rgba':\n return data;\n case 'rgbacss':\n return `rgba(${data[0]}, ${data[1]}, ${data[2]}, ${data[3]})`;\n case 'hsl':\n return rgbToHsl(data[0], data[1], data[2]);\n case 'hslcss':\n data = rgbToHsl(data[0], data[1], data[2]);\n\n return `hsl(${data[0]}, ${data[1]}, ${data[2]})`;\n case 'hslcss4': {\n const hh = rgbToHsl(data[0], data[1], data[2]);\n\n return `hsl(${hh[0]}, ${hh[1]}, ${hh[2]}, ${data[3]})`;\n }\n case 'hsla':\n return [...rgbToHsl(data[0], data[1], data[2]), data[3]];\n case 'hslacss': {\n const ha = rgbToHsl(data[0], data[1], data[2]);\n\n return `hsla(${ha[0]}, ${ha[1]}, ${ha[2]}, ${data[3]})`;\n }\n case 'hex':\n return rgbToHex(data[0], data[1], data[2]);\n case 'hexcss4':\n return rgbToHex(data[0], data[1], data[2]) + ('00' + parseInt((data[3] * 255).toString()).toString(16)).slice(-2);\n case 'int':\n return rgbToInt(data[0], data[1], data[2]);\n }\n};\n\nexport const parseColor = (color: string | Array<number>, format: string | object) => {\n if (!isNil(color)) {\n let data: Array<number> | undefined = [];\n\n data = parseColorToRgba(color) || (parseColorToHsla(color) && [...hslToRgb(data[0], data[1], data[2]), data[3]]);\n if (data) {\n if (typeof format === 'object') {\n return ['rgb', 'rgbcss', 'rgbcss4', 'rgba', 'rgbacss', 'hsl', 'hslcss', 'hslcss4', 'hsla', 'hslacss', 'hex', 'hexcss4', 'int'].reduce((m, f) => {\n set<any>(m, f, formatColor(data, f));\n\n return m;\n }, format);\n }\n\n return formatColor(data, format as string);\n }\n }\n\n return undefined;\n};\n\nexport const defaultHelper = () => {\n return {\n setHue: () => {\n return;\n },\n grabColor: () => [],\n findColor: () => [],\n };\n};\n","import { AfterViewInit, ChangeDetectionStrategy, Component, effect, ElementRef, inject, input, OnDestroy, OnInit, output, signal, viewChild } from '@angular/core';\nimport { IFocusAndBlurEvent, LibsUiComponentsInputsInputComponent } from '@libs-ui/components-inputs-input';\nimport { LibsUiComponentsInputsValidComponent } from '@libs-ui/components-inputs-valid';\nimport { LibsUiNotificationService } from '@libs-ui/services-notification';\nimport { getDragEventByElement, set } from '@libs-ui/utils';\nimport { Subject } from 'rxjs';\nimport { ICanvasHelper, IConfigUpdate, IOutputColorChangeMultipleType, IPickerCustomOptions, IPickerOptions } from './interfaces/picker.interface';\nimport { cssColorToRgba, defaultHelper, hslToRgb, limit, optionsDefault, parseColor, rgbToHex, rgbToHsl, rgbToHsv } from './utils/picker';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-color_picker',\n templateUrl: './color-picker.component.html',\n styleUrl: './color-picker.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LibsUiComponentsInputsInputComponent, LibsUiComponentsInputsValidComponent],\n})\nexport class LibsUiComponentsColorPickerComponent implements OnInit, AfterViewInit, OnDestroy {\n // #region PROPERTY\n protected options = signal<IPickerOptions>(optionsDefault());\n protected focus = signal<string | undefined>(undefined);\n protected hex = signal<string>('');\n protected s = signal<number>(0);\n protected h = signal<number>(0);\n protected l = signal<number>(0);\n protected r = signal<number>(0);\n protected g = signal<number>(0);\n protected b = signal<number>(0);\n protected a = signal<number>(1);\n\n private slBarHelper = signal<ICanvasHelper>(defaultHelper());\n private notificationService = inject(LibsUiNotificationService);\n private onDestroy = new Subject<void>();\n\n // #region INPUT\n readonly customOptions = input<IPickerCustomOptions>();\n readonly noEmitEventColorWhenInitComponent = input<boolean, boolean | undefined>(true, { transform: (value) => value ?? true });\n\n // #region OUTPUT\n readonly outColorChange = output<string>();\n readonly outColorChangeMultipleType = output<IOutputColorChangeMultipleType>();\n\n /* VIEW CHILD */\n private readonly hueEl = viewChild<ElementRef>('hueEl');\n private readonly huePointerEl = viewChild<ElementRef>('huePointerEl');\n private readonly slEl = viewChild<ElementRef>('slEl');\n private readonly slPointerEl = viewChild<ElementRef>('slPointerEl');\n private readonly alphaEl = viewChild<ElementRef>('alphaEl');\n private readonly alphaPointerEl = viewChild<ElementRef>('alphaPointerEl');\n private readonly previewEl = viewChild<ElementRef>('previewEl');\n\n constructor() {\n effect(() => {\n const ctx = this.alphaEl()?.nativeElement.getContext('2d');\n\n if (!ctx) {\n return;\n }\n ctx.clearRect(0, 0, this.options().alphaBarSize[0], this.options().alphaBarSize[1]);\n const gradient = ctx.createLinearGradient(0, 0, this.alphaEl()?.nativeElement.width - 1, 0);\n\n gradient.addColorStop(0, `hsla(${this.h()},${this.s()}%,${this.l()}%, 0)`);\n gradient.addColorStop(1, `hsla(${this.h()},${this.s()}%,${this.l()}%, 1)`);\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, this.options().alphaBarSize[0], this.options().alphaBarSize[1]);\n });\n }\n\n /* FUNCTIONS */\n ngOnInit(): void {\n if (this.customOptions()) {\n this.options.update((options) => ({ ...options, ...this.customOptions() }));\n }\n }\n\n ngAfterViewInit(): void {\n this.setupHueCanvas();\n this.setupSlCanvas();\n this.setupSlBarHelper();\n if (this.options().showAlpha) {\n this.setupAlphaCanvas();\n }\n this.handlerColorChange(this.options().format, this.options().color, this.noEmitEventColorWhenInitComponent());\n }\n\n private setupHueCanvas() {\n const canvas = this.hueEl()?.nativeElement;\n\n canvas.width = this.options().hueBarSize[0];\n canvas.height = this.options().hueBarSize[1];\n const ctx = canvas.getContext('2d');\n const gradient = ctx.createLinearGradient(0, 0, this.options().hueBarSize[0], 0);\n const step = 1 / 360;\n\n for (let ii = 0; ii <= 1; ii += step) {\n gradient.addColorStop(ii, `hsl(${360 * ii}, 100%, 50%)`);\n }\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, this.options().hueBarSize[0], this.options().hueBarSize[1]);\n\n getDragEventByElement({ elementMouseDown: canvas, isStartWithMouseDownEvent: true, onDestroy: this.onDestroy }).subscribe((event: MouseEvent) => {\n const x = limit(event.clientX - canvas.getBoundingClientRect().left, 0, this.options().hueBarSize[0]);\n const hue = Math.round((x * 360) / this.options().hueBarSize[0]);\n\n set(this.huePointerEl()?.nativeElement.style, 'left', `${x - 7}px`);\n this.h.set(hue);\n this.handlerColorChange('h', hue);\n });\n }\n\n private setupSlCanvas() {\n const canvas = this.slEl()?.nativeElement;\n\n canvas.width = this.options().slBarSize[0];\n canvas.height = this.options().slBarSize[1];\n\n getDragEventByElement({ elementMouseDown: canvas, isStartWithMouseDownEvent: true, onDestroy: this.onDestroy }).subscribe((event) => {\n const x = limit(event.clientX - canvas.getBoundingClientRect().left, 0, this.options().slBarSize[0] - 1);\n const y = limit(event.clientY - canvas.getBoundingClientRect().top, 0, this.options().slBarSize[1] - 1);\n const c = this.slBarHelper().grabColor(x, y);\n\n set(this.slPointerEl()?.nativeElement.style, 'left', `${x - 7}px`);\n set(this.slPointerEl()?.nativeElement.style, 'top', `${y - 7}px`);\n this.handlerColorChange('rgb', c);\n });\n }\n\n private setupSlBarHelper() {\n const canvas = this.slEl()?.nativeElement;\n const ctx = canvas.getContext('2d');\n const width = +canvas.width;\n const height = +canvas.height;\n const whiteBlackGradient = ctx.createLinearGradient(1, 1, 1, height - 1);\n\n whiteBlackGradient.addColorStop(0, 'white');\n whiteBlackGradient.addColorStop(1, 'black');\n\n this.slBarHelper.set({\n setHue: (hue: number) => {\n const colorGradient = ctx.createLinearGradient(1, 0, width - 1, 0);\n colorGradient.addColorStop(0, `hsla(${hue}, 100%, 50%, 0)`);\n colorGradient.addColorStop(1, `hsla(${hue}, 100%, 50%, 1)`);\n\n ctx.fillStyle = whiteBlackGradient;\n ctx.fillRect(0, 0, width, height);\n ctx.fillStyle = colorGradient;\n ctx.globalCompositeOperation = 'multiply';\n ctx.fillRect(0, 0, width, height);\n ctx.globalCompositeOperation = 'source-over';\n },\n grabColor: (x: number, y: number) => ctx.getImageData(x, y, 1, 1).data,\n findColor: (r: number, g: number, b: number) => {\n const [, s, v] = rgbToHsv(r, g, b);\n const x = s * width;\n const y = height - v * height;\n\n return [x, y];\n },\n });\n }\n\n private setupAlphaCanvas() {\n const canvas = this.alphaEl()?.nativeElement;\n\n canvas.width = this.options().alphaBarSize[0];\n canvas.height = this.options().alphaBarSize[1];\n const ctx = canvas.getContext('2d');\n const gradient = ctx.createLinearGradient(0, 0, canvas.width - 1, 0);\n\n gradient.addColorStop(0, `hsla(${this.h()},${this.s()}%,${this.l()}%, 0)`);\n gradient.addColorStop(1, `hsla(${this.h()},${this.s()}%,${this.l()}%, 1)`);\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, this.options().alphaBarSize[0], this.options().alphaBarSize[1]);\n\n getDragEventByElement({ elementMouseDown: canvas, isStartWithMouseDownEvent: true, onDestroy: this.onDestroy }).subscribe((event) => {\n const x = limit(event.clientX - canvas.getBoundingClientRect().left, 0, this.options().alphaBarSize[0]);\n const alpha = +(x / this.options().alphaBarSize[0]).toFixed(2);\n\n set(this.alphaPointerEl()?.nativeElement.style, 'left', `${x - 7}px`);\n this.handlerColorChange('alpha', alpha);\n });\n }\n\n protected handlerCopyColor(event: Event) {\n event.stopPropagation();\n window.navigator.clipboard.writeText(this.hex());\n // this.notificationService.showCompTypeTextSuccess('i18n_copy_successfully');\n }\n\n private updatePointerH(h: number) {\n const x = (this.options().hueBarSize[0] * h) / 360;\n\n set(this.huePointerEl()?.nativeElement.style, 'left', `${x - 7}px`);\n }\n\n private updatePointerSl(h: number, s: number, l: number) {\n const [r, g, b] = hslToRgb(h, s, l);\n const [x, y] = this.slBarHelper().findColor(r, g, b) as Array<number>;\n\n if (x >= 0) {\n set(this.slPointerEl()?.nativeElement.style, 'left', `${x - 7}px`);\n set(this.slPointerEl()?.nativeElement.style, 'top', `${y - 7}px`);\n }\n }\n\n private updatePointerA(a: number) {\n if (!this.options().showAlpha) {\n return;\n }\n const x = this.options().alphaBarSize[0] * a;\n\n set(this.alphaPointerEl()?.nativeElement.style, 'left', `${x - 7}px`);\n }\n\n private updateHex(r: number, g: number, b: number, a: number) {\n if (this.options().showAlpha) {\n this.hex.set(parseColor([r, g, b, a], 'hexcss4') as string);\n\n return;\n }\n this.hex.set(rgbToHex(r, g, b));\n }\n\n private updateRgb() {\n const rgb = hslToRgb(this.h(), this.s(), this.l());\n\n this.r.set(rgb[0]);\n this.g.set(rgb[1]);\n this.b.set(rgb[2]);\n }\n\n private updateHsl() {\n const hsl = rgbToHsl(this.r(), this.g(), this.b());\n\n this.h.set(hsl[0]);\n this.s.set(hsl[1]);\n this.l.set(hsl[2]);\n }\n\n private updateValuesAndPointer(config: IConfigUpdate) {\n if (config.rgb) {\n this.updateRgb();\n }\n if (config.hsl) {\n this.updateHsl();\n }\n if (config.hue) {\n this.slBarHelper().setHue(this.h());\n }\n if (config.hPoint) {\n this.updatePointerH(this.h());\n }\n if (config.slPoint) {\n this.updatePointerSl(this.h(), this.s(), this.l());\n }\n if (config.hex) {\n this.updateHex(this.r(), this.g(), this.b(), this.a());\n }\n if (config.aPoint) {\n this.updatePointerA(this.a());\n }\n }\n\n private handlerColorChange(key: string, value: string | number | Array<number>, isCallInitComponent = false) {\n let config: IConfigUpdate = {};\n\n switch (key) {\n case 'h':\n config = { hPoint: true, hex: true, rgb: true, hue: true };\n break;\n case 's':\n config = { slPoint: true, hex: true, rgb: true };\n break;\n case 'l':\n config = { slPoint: true, hex: true, rgb: true };\n break;\n case 'r':\n config = { hPoint: true, slPoint: true, hex: true, hsl: true, hue: true };\n break;\n case 'g':\n config = { hPoint: true, slPoint: true, hex: true, hsl: true, hue: true };\n break;\n case 'b':\n config = { hPoint: true, slPoint: true, hex: true, hsl: true, hue: true };\n break;\n case 'rgb':\n this.r.set((value as Array<number>)[0]);\n this.g.set((value as Array<number>)[1]);\n this.b.set((value as Array<number>)[2]);\n config = { hex: true, hsl: true };\n break;\n case 'rgba':\n this.r.set((value as Array<number>)[0]);\n this.g.set((value as Array<number>)[1]);\n this.b.set((value as Array<number>)[2]);\n this.a.set((value as Array<number>)[3]);\n config = { hPoint: true, slPoint: true, hex: true, aPoint: true, hsl: true, hue: true };\n break;\n case 'hsl':\n this.h.set((value as Array<number>)[0]);\n this.s.set((value as Array<number>)[1]);\n this.l.set((value as Array<number>)[2]);\n config = { hPoint: true, slPoint: true, hex: true, aPoint: true, rgb: true, hue: true };\n break;\n case 'hsla':\n this.h.set((value as Array<number>)[0]);\n this.s.set((value as Array<number>)[1]);\n this.l.set((value as Array<number>)[2]);\n this.a.set((value as Array<number>)[3]);\n config = { hPoint: true, slPoint: true, hex: true, aPoint: true, rgb: true, hue: true };\n break;\n case 'hex': {\n const rgba = cssColorToRgba(value as string) || [this.r(), this.g(), this.b(), this.a()];\n\n this.r.set(rgba[0]);\n this.g.set(rgba[1]);\n this.b.set(rgba[2]);\n this.a.set(rgba[3]);\n config = { hPoint: true, slPoint: true, aPoint: true, hsl: true, hue: true };\n break;\n }\n case 'color': {\n const rgba = (parseColor(value as string | Array<number>, 'rgba') || [0, 0, 0, 1]) as Array<number>;\n\n this.r.set(rgba[0]);\n this.g.set(rgba[1]);\n this.b.set(rgba[2]);\n this.a.set(rgba[3]);\n config = { hPoint: true, slPoint: true, hex: true, aPoint: true, hsl: true, hue: true };\n\n break;\n }\n case 'alpha':\n this.a.set(value as number);\n this.updateHex(this.r(), this.g(), this.b(), this.a());\n break;\n }\n this.updateValuesAndPointer(config);\n set(this.previewEl()?.nativeElement.style, 'backgroundColor', this.a() === 1 ? `rgb(${this.r()},${this.g()},${this.b()})` : `rgba(${this.r()},${this.g()},${this.b()},${this.a()})`);\n if (!isCallInitComponent) {\n this.outColorChange.emit(this.hex());\n this.outColorChangeMultipleType.emit({\n hex: this.hex(),\n rgba: `rgba(${this.r()},${this.g()},${this.b()},${this.a()})`,\n rgb: `rgb(${this.r()},${this.g()},${this.b()})`,\n hsl: `hsl(${this.h()},${this.s()},${this.l()})`,\n hsla: `hsla(${this.h()},${this.s()},${this.l()},${this.a()})`,\n });\n }\n }\n\n protected handlerFocusAndBlur(event: IFocusAndBlurEvent, key: string) {\n this.focus.set(event.name === 'blur' ? undefined : key);\n }\n\n protected handlerValueChange(event: string | number, key: string) {\n this.handlerColorChange(key, event);\n }\n\n protected handlerValueChangeAlphaInput(event: string | number) {\n this.handlerColorChange('alpha', ((event as number) || 0) / 100);\n this.updatePointerA(this.a());\n }\n\n protected handlerResetColor() {\n this.handlerColorChange('alpha', 0);\n this.updatePointerA(this.a());\n }\n\n ngOnDestroy(): void {\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n}\n","<div>\n <div\n class=\"relative\"\n [style.width.px]=\"options().slBarSize[0]\">\n <div>\n <canvas\n #slEl\n class=\"rounded-tl-[4px] rounded-tr-[4px] libs-ui-color-picker-background-transparent\"></canvas>\n <div\n #slPointerEl\n class=\"libs-ui-color-picker-dot\"></div>\n </div>\n <div class=\"relative\">\n <canvas\n #hueEl\n class=\"libs-ui-color-picker-background-transparent\"\n [class.rounded-bl-[4px]]=\"!options().showAlpha\"\n [class.rounded-br-[4px]]=\"!options().showAlpha\"></canvas>\n <div\n #huePointerEl\n class=\"libs-ui-color-picker-dot\"></div>\n </div>\n @if (options().showAlpha) {\n <div class=\"relative\">\n <canvas\n #alphaEl\n class=\"rounded-bl-[4px] rounded-br-[4px] libs-ui-color-picker-background-transparent\"></canvas>\n <div\n #alphaPointerEl\n class=\"libs-ui-color-picker-dot\"></div>\n </div>\n }\n <div class=\"flex items-end\">\n <div class=\"text-center mr-[16px]\">\n <div class=\"libs-ui-color-picker-background-transparent rounded-[4px]\">\n <div\n #previewEl\n class=\"w-[32px] h-[32px] rounded-[4px] cursor-pointer\"\n (click)=\"handlerCopyColor($event)\"></div>\n </div>\n </div>\n @if (options().showHex) {\n <div class=\"text-center mr-[12px]\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">HEX</span>\n <div class=\"w-[88px]\">\n <libs_ui-components-inputs-input\n [(value)]=\"hex\"\n [classInclude]=\"'text-center !p-0'\"\n (outChange)=\"handlerValueChange($event, 'hex')\" />\n </div>\n </div>\n }\n <div>\n @if (options().showHsl) {\n <div class=\"flex\">\n <div class=\"text-center\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">H</span>\n <div class=\"w-[56px]\">\n <libs_ui-components-inputs-input\n [(value)]=\"h\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"360\"\n [classInclude]=\"'text-center !p-0 !rounded-tr-none !rounded-br-none ' + (focus() === 's' ? '!border-r-transparent' : '')\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event, 'h')\"\n (outChange)=\"handlerValueChange($event, 'h')\" />\n </div>\n </div>\n <div class=\"text-center\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">S</span>\n <div class=\"w-[56px]\">\n <libs_ui-components-inputs-input\n [(value)]=\"s\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"100\"\n [classInclude]=\"'text-center !p-0 !rounded-none ' + (focus() === 's' ? '' : '!border-x-transparent')\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event, 's')\"\n (outChange)=\"handlerValueChange($event, 's')\" />\n </div>\n </div>\n <div class=\"text-center\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">L</span>\n <div class=\"w-[56px]\">\n <libs_ui-components-inputs-input\n [(value)]=\"l\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"100\"\n [classInclude]=\"'text-center !p-0 !rounded-tl-none !rounded-bl-none ' + (focus() === 's' ? '!border-l-transparent' : '')\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event, 'l')\"\n (outChange)=\"handlerValueChange($event, 'l')\" />\n </div>\n </div>\n </div>\n }\n @if (options().showRgb) {\n <div class=\"flex\">\n <div class=\"text-center\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">R</span>\n <div class=\"w-[56px]\">\n <libs_ui-components-inputs-input\n [(value)]=\"r\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"255\"\n [classInclude]=\"'text-center !p-0 !rounded-tr-none !rounded-br-none ' + (focus() === 'g' ? '!border-r-transparent' : '')\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event, 'r')\"\n (outChange)=\"handlerValueChange($event, 'r')\" />\n </div>\n </div>\n <div class=\"text-center\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">G</span>\n <div class=\"w-[56px]\">\n <libs_ui-components-inputs-input\n [(value)]=\"g\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"255\"\n [classInclude]=\"'text-center !p-0 !rounded-none ' + (focus() === 'g' ? '' : '!border-x-transparent')\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event, 'g')\"\n (outChange)=\"handlerValueChange($event, 'g')\" />\n </div>\n </div>\n <div class=\"text-center\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">B</span>\n <div class=\"w-[56px]\">\n <libs_ui-components-inputs-input\n [(value)]=\"b\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"255\"\n [classInclude]=\"'text-center !p-0 !rounded-tl-none !rounded-bl-none ' + (focus() === 'g' ? '!border-l-transparent' : '')\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event, 'b')\"\n (outChange)=\"handlerValueChange($event, 'b')\" />\n </div>\n </div>\n <div class=\"text-center ml-[8px]\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">A</span>\n <div class=\"w-[78px]\">\n <libs_ui-components-inputs-valid\n [item]=\"{ aValue: a() * 100 }\"\n [fieldNameBind]=\"'aValue'\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"100\"\n [unitsRight]=\"[{ label: '%' }]\"\n [emitEmptyInDataTypeNumber]=\"true\"\n (outValueChange)=\"handlerValueChangeAlphaInput($event)\" />\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -44,3 +44,6 @@ export interface IOutputColorChangeMultipleType {
44
44
  hsl: string;
45
45
  hsla: string;
46
46
  }
47
+ export interface IColor {
48
+ [key: string]: string;
49
+ }
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@libs-ui/components-color-picker",
3
- "version": "0.2.315-0",
3
+ "version": "0.2.316-0",
4
4
  "peerDependencies": {
5
5
  "@angular/core": ">=18.0.0",
6
- "@libs-ui/components-inputs-input": "0.2.315-0",
7
- "@libs-ui/services-notification": "0.2.315-0",
8
- "@libs-ui/utils": "0.2.315-0",
6
+ "@libs-ui/components-inputs-input": "0.2.316-0",
7
+ "@libs-ui/services-notification": "0.2.316-0",
8
+ "@libs-ui/utils": "0.2.316-0",
9
9
  "rxjs": "~7.8.0"
10
10
  },
11
11
  "sideEffects": false,
package/utils/picker.d.ts CHANGED
@@ -1,154 +1,5 @@
1
- import { IPickerOptions } from '../interfaces';
2
- export declare const ColorNames: {
3
- aliceblue: string;
4
- antiquewhite: string;
5
- aqua: string;
6
- aquamarine: string;
7
- azure: string;
8
- beige: string;
9
- bisque: string;
10
- black: string;
11
- blanchedalmond: string;
12
- blue: string;
13
- blueviolet: string;
14
- brown: string;
15
- burlywood: string;
16
- cadetblue: string;
17
- chartreuse: string;
18
- chocolate: string;
19
- coral: string;
20
- cornflowerblue: string;
21
- cornsilk: string;
22
- crimson: string;
23
- cyan: string;
24
- darkblue: string;
25
- darkcyan: string;
26
- darkgoldenrod: string;
27
- darkgray: string;
28
- darkgrey: string;
29
- darkgreen: string;
30
- darkkhaki: string;
31
- darkmagenta: string;
32
- darkolivegreen: string;
33
- darkorange: string;
34
- darkorchid: string;
35
- darkred: string;
36
- darksalmon: string;
37
- darkseagreen: string;
38
- darkslateblue: string;
39
- darkslategray: string;
40
- darkslategrey: string;
41
- darkturquoise: string;
42
- darkviolet: string;
43
- deeppink: string;
44
- deepskyblue: string;
45
- dimgray: string;
46
- dimgrey: string;
47
- dodgerblue: string;
48
- firebrick: string;
49
- floralwhite: string;
50
- forestgreen: string;
51
- fuchsia: string;
52
- gainsboro: string;
53
- ghostwhite: string;
54
- gold: string;
55
- goldenrod: string;
56
- gray: string;
57
- grey: string;
58
- green: string;
59
- greenyellow: string;
60
- honeydew: string;
61
- hotpink: string;
62
- 'indianred ': string;
63
- 'indigo ': string;
64
- ivory: string;
65
- khaki: string;
66
- lavender: string;
67
- lavenderblush: string;
68
- lawngreen: string;
69
- lemonchiffon: string;
70
- lightblue: string;
71
- lightcoral: string;
72
- lightcyan: string;
73
- lightgoldenrodyellow: string;
74
- lightgray: string;
75
- lightgrey: string;
76
- lightgreen: string;
77
- lightpink: string;
78
- lightsalmon: string;
79
- lightseagreen: string;
80
- lightskyblue: string;
81
- lightslategray: string;
82
- lightslategrey: string;
83
- lightsteelblue: string;
84
- lightyellow: string;
85
- lime: string;
86
- limegreen: string;
87
- linen: string;
88
- magenta: string;
89
- maroon: string;
90
- mediumaquamarine: string;
91
- mediumblue: string;
92
- mediumorchid: string;
93
- mediumpurple: string;
94
- mediumseagreen: string;
95
- mediumslateblue: string;
96
- mediumspringgreen: string;
97
- mediumturquoise: string;
98
- mediumvioletred: string;
99
- midnightblue: string;
100
- mintcream: string;
101
- mistyrose: string;
102
- moccasin: string;
103
- navajowhite: string;
104
- navy: string;
105
- oldlace: string;
106
- olive: string;
107
- olivedrab: string;
108
- orange: string;
109
- orangered: string;
110
- orchid: string;
111
- palegoldenrod: string;
112
- palegreen: string;
113
- paleturquoise: string;
114
- palevioletred: string;
115
- papayawhip: string;
116
- peachpuff: string;
117
- peru: string;
118
- pink: string;
119
- plum: string;
120
- powderblue: string;
121
- purple: string;
122
- rebeccapurple: string;
123
- red: string;
124
- rosybrown: string;
125
- royalblue: string;
126
- saddlebrown: string;
127
- salmon: string;
128
- sandybrown: string;
129
- seagreen: string;
130
- seashell: string;
131
- sienna: string;
132
- silver: string;
133
- skyblue: string;
134
- slateblue: string;
135
- slategray: string;
136
- slategrey: string;
137
- snow: string;
138
- springgreen: string;
139
- steelblue: string;
140
- tan: string;
141
- teal: string;
142
- thistle: string;
143
- tomato: string;
144
- turquoise: string;
145
- violet: string;
146
- wheat: string;
147
- white: string;
148
- whitesmoke: string;
149
- yellow: string;
150
- yellowgreen: string;
151
- };
1
+ import { IColor, IPickerOptions } from '../interfaces';
2
+ export declare const ColorNames: IColor;
152
3
  export declare const optionsDefault: () => IPickerOptions;
153
4
  export declare const limit: (value: number | string, min: number, max: number) => number;
154
5
  export declare const hslToRgb: (h: number, s: number, l: number) => number[];