@spectrum-web-components/color-area 0.38.0 → 0.39.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spectrum-web-components/color-area",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.39.1",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -62,12 +62,12 @@
|
|
|
62
62
|
],
|
|
63
63
|
"dependencies": {
|
|
64
64
|
"@ctrl/tinycolor": "^3.3.3",
|
|
65
|
-
"@spectrum-web-components/base": "^0.
|
|
66
|
-
"@spectrum-web-components/color-handle": "^0.
|
|
67
|
-
"@spectrum-web-components/reactive-controllers": "^0.
|
|
65
|
+
"@spectrum-web-components/base": "^0.39.1",
|
|
66
|
+
"@spectrum-web-components/color-handle": "^0.39.1",
|
|
67
|
+
"@spectrum-web-components/reactive-controllers": "^0.39.1"
|
|
68
68
|
},
|
|
69
69
|
"devDependencies": {
|
|
70
|
-
"@spectrum-css/colorarea": "^4.0.
|
|
70
|
+
"@spectrum-css/colorarea": "^4.0.41"
|
|
71
71
|
},
|
|
72
72
|
"types": "./src/index.d.ts",
|
|
73
73
|
"customElements": "custom-elements.json",
|
|
@@ -75,5 +75,5 @@
|
|
|
75
75
|
"./sp-*.js",
|
|
76
76
|
"./**/*.dev.js"
|
|
77
77
|
],
|
|
78
|
-
"gitHead": "
|
|
78
|
+
"gitHead": "d374f8645b54b978d830c95ff777b5b1e9172ac7"
|
|
79
79
|
}
|
package/test/color-area.test.js
CHANGED
|
@@ -457,6 +457,8 @@ describe("ColorArea", () => {
|
|
|
457
457
|
`
|
|
458
458
|
);
|
|
459
459
|
await elementUpdated(el);
|
|
460
|
+
const Xvalue = Number(Number(el.inputX.value).toFixed(2));
|
|
461
|
+
const Yvalue = Number(Number(el.inputY.value).toFixed(2));
|
|
460
462
|
el.inputX.focus();
|
|
461
463
|
inputSpy.resetHistory();
|
|
462
464
|
changeSpy.resetHistory();
|
|
@@ -465,6 +467,9 @@ describe("ColorArea", () => {
|
|
|
465
467
|
await elementUpdated(el);
|
|
466
468
|
expect(inputSpy.callCount).to.equal(2);
|
|
467
469
|
expect(changeSpy.callCount).to.equal(2);
|
|
470
|
+
expect(parseFloat(el.inputX.value).toFixed(2)).to.equal(
|
|
471
|
+
(Xvalue + 0.02).toFixed(2)
|
|
472
|
+
);
|
|
468
473
|
el.inputY.focus();
|
|
469
474
|
inputSpy.resetHistory();
|
|
470
475
|
changeSpy.resetHistory();
|
|
@@ -473,6 +478,9 @@ describe("ColorArea", () => {
|
|
|
473
478
|
await elementUpdated(el);
|
|
474
479
|
expect(inputSpy.callCount).to.equal(2);
|
|
475
480
|
expect(changeSpy.callCount).to.equal(2);
|
|
481
|
+
expect(parseFloat(el.inputY.value).toFixed(2)).to.equal(
|
|
482
|
+
(Yvalue + 0.02).toFixed(2)
|
|
483
|
+
);
|
|
476
484
|
el.inputY.focus();
|
|
477
485
|
inputSpy.resetHistory();
|
|
478
486
|
changeSpy.resetHistory();
|
|
@@ -481,6 +489,9 @@ describe("ColorArea", () => {
|
|
|
481
489
|
await elementUpdated(el);
|
|
482
490
|
expect(inputSpy.callCount).to.equal(2);
|
|
483
491
|
expect(changeSpy.callCount).to.equal(2);
|
|
492
|
+
expect(parseFloat(el.inputY.value).toFixed(2)).to.equal(
|
|
493
|
+
Yvalue.toFixed(2)
|
|
494
|
+
);
|
|
484
495
|
el.inputX.focus();
|
|
485
496
|
inputSpy.resetHistory();
|
|
486
497
|
changeSpy.resetHistory();
|
|
@@ -489,6 +500,53 @@ describe("ColorArea", () => {
|
|
|
489
500
|
await elementUpdated(el);
|
|
490
501
|
expect(inputSpy.callCount).to.equal(2);
|
|
491
502
|
expect(changeSpy.callCount).to.equal(2);
|
|
503
|
+
expect(parseFloat(el.inputX.value).toFixed(2)).to.equal(
|
|
504
|
+
Xvalue.toFixed(2)
|
|
505
|
+
);
|
|
506
|
+
el.inputX.focus();
|
|
507
|
+
inputSpy.resetHistory();
|
|
508
|
+
changeSpy.resetHistory();
|
|
509
|
+
await sendKeys({ press: "End" });
|
|
510
|
+
await sendKeys({ press: "End" });
|
|
511
|
+
await elementUpdated(el);
|
|
512
|
+
expect(inputSpy.callCount).to.equal(2);
|
|
513
|
+
expect(changeSpy.callCount).to.equal(2);
|
|
514
|
+
expect(parseFloat(el.inputX.value).toFixed(2)).to.equal(
|
|
515
|
+
(Xvalue + 0.2).toFixed(2)
|
|
516
|
+
);
|
|
517
|
+
el.inputX.focus();
|
|
518
|
+
inputSpy.resetHistory();
|
|
519
|
+
changeSpy.resetHistory();
|
|
520
|
+
await sendKeys({ press: "Home" });
|
|
521
|
+
await sendKeys({ press: "Home" });
|
|
522
|
+
await elementUpdated(el);
|
|
523
|
+
expect(inputSpy.callCount).to.equal(2);
|
|
524
|
+
expect(changeSpy.callCount).to.equal(2);
|
|
525
|
+
expect(parseFloat(el.inputX.value).toFixed(2)).to.equal(
|
|
526
|
+
Xvalue.toFixed(2)
|
|
527
|
+
);
|
|
528
|
+
el.inputY.focus();
|
|
529
|
+
inputSpy.resetHistory();
|
|
530
|
+
changeSpy.resetHistory();
|
|
531
|
+
await sendKeys({ press: "PageUp" });
|
|
532
|
+
await sendKeys({ press: "PageUp" });
|
|
533
|
+
await elementUpdated(el);
|
|
534
|
+
expect(inputSpy.callCount).to.equal(2);
|
|
535
|
+
expect(changeSpy.callCount).to.equal(2);
|
|
536
|
+
expect(parseFloat(el.inputY.value).toFixed(2)).to.equal(
|
|
537
|
+
(Yvalue + 0.2).toFixed(2)
|
|
538
|
+
);
|
|
539
|
+
el.inputY.focus();
|
|
540
|
+
inputSpy.resetHistory();
|
|
541
|
+
changeSpy.resetHistory();
|
|
542
|
+
await sendKeys({ press: "PageDown" });
|
|
543
|
+
await sendKeys({ press: "PageDown" });
|
|
544
|
+
await elementUpdated(el);
|
|
545
|
+
expect(inputSpy.callCount).to.equal(2);
|
|
546
|
+
expect(changeSpy.callCount).to.equal(2);
|
|
547
|
+
expect(parseFloat(el.inputY.value).toFixed(2)).to.equal(
|
|
548
|
+
Yvalue.toFixed(2)
|
|
549
|
+
);
|
|
492
550
|
});
|
|
493
551
|
it("retains `hue` value when s = 0 in HSL string format", async () => {
|
|
494
552
|
const el = await fixture(
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["color-area.test.ts"],
|
|
4
|
-
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n elementUpdated,\n expect,\n fixture,\n html,\n nextFrame,\n oneEvent,\n} from '@open-wc/testing';\nimport { HSL, HSLA, HSV, HSVA, RGB, RGBA, TinyColor } from '@ctrl/tinycolor';\n\nimport '@spectrum-web-components/color-area/sp-color-area.js';\nimport { ColorArea } from '@spectrum-web-components/color-area';\nimport { sendKeys } from '@web/test-runner-commands';\nimport { spy } from 'sinon';\nimport { ColorHandle } from '@spectrum-web-components/color-handle';\nimport { testForLitDevWarnings } from '../../../test/testing-helpers.js';\n\ndescribe('ColorArea', () => {\n testForLitDevWarnings(\n async () =>\n await fixture<ColorArea>(\n html`\n <sp-color-area></sp-color-area>\n `\n )\n );\n it('loads default color-area accessibly', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n\n await expect(el).to.be.accessible();\n });\n it('manages a single tab stop', async () => {\n const test = await fixture<HTMLDivElement>(\n html`\n <div>\n <input type=\"text\" />\n <sp-color-area color=\"hsl(100, 50%, 50%)\"></sp-color-area>\n <input type=\"text\" />\n </div>\n `\n );\n const el = test.querySelector('sp-color-area') as ColorArea;\n const input1 = test.querySelector(\n 'input:nth-of-type(1)'\n ) as HTMLInputElement;\n const input2 = test.querySelector(\n 'input:nth-of-type(2)'\n ) as HTMLInputElement;\n\n await elementUpdated(el);\n\n input1.focus();\n\n expect(document.activeElement, 'before input').to.equal(input1);\n\n await sendKeys({\n press: 'Tab',\n });\n await elementUpdated(el);\n\n expect(document.activeElement, 'element').to.equal(el);\n let value = el.value;\n await sendKeys({\n press: 'ArrowRight',\n });\n await elementUpdated(el);\n expect(el.value).to.not.equal(value);\n await sendKeys({\n press: 'Tab',\n });\n await elementUpdated(el);\n\n expect(document.activeElement, 'after input').to.equal(input2);\n\n await sendKeys({\n press: 'Shift+Tab',\n });\n await elementUpdated(el);\n\n expect(document.activeElement, 'element again').to.equal(el);\n\n value = el.value;\n await sendKeys({\n press: 'ArrowDown',\n });\n expect(el.value).to.not.equal(value);\n await sendKeys({\n press: 'Shift+Tab',\n });\n expect(document.activeElement, 'before input again').to.equal(input1);\n });\n it('provides separate aria-labels for X and Y inputs', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area color=\"hsl(100, 50%, 50%)\"></sp-color-area>\n `\n );\n const inputX = el.shadowRoot.querySelector('input[name=\"x\"]');\n const inputY = el.shadowRoot.querySelector('input[name=\"y\"]');\n\n expect(inputX?.getAttribute('aria-label')).to.equal('Color Picker');\n expect(inputY?.getAttribute('aria-label')).to.equal('Color Picker');\n expect(inputX?.getAttribute('aria-roledescription')).to.equal(\n '2d slider'\n );\n expect(inputY?.getAttribute('aria-roledescription')).to.equal(\n '2d slider'\n );\n expect(inputX?.getAttribute('aria-valuetext')).to.equal(\n '67%, saturation, 75%, luminosity'\n );\n expect(inputY?.getAttribute('aria-valuetext')).to.equal(\n '75%, luminosity, 67%, saturation'\n );\n });\n it('overrides both X and Y labels with a provided \"label\" attribute', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area\n color=\"hsl(100, 50%, 50%)\"\n label=\"something custom\"\n ></sp-color-area>\n `\n );\n const inputX = el.shadowRoot.querySelector('input[name=\"x\"]');\n const inputY = el.shadowRoot.querySelector('input[name=\"y\"]');\n\n expect(inputX?.getAttribute('aria-label')).to.equal(\n 'something custom Color Picker'\n );\n expect(inputY?.getAttribute('aria-label')).to.equal(\n 'something custom Color Picker'\n );\n });\n it('accepts `hue` values', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n\n const { handle } = el as unknown as { handle: ColorHandle };\n\n expect(handle.color).to.equal('hsl(0, 100%, 50%)');\n\n el.hue = 125;\n\n await elementUpdated(el);\n\n expect(handle.color).to.equal('hsl(125, 100%, 50%)');\n });\n it('accepts \"color\" values as hsl', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area color=\"hsl(100, 50%, 50%)\"></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n\n expect(el.hue, 'hue').to.equal(100);\n expect(el.x, 'x').to.equal(0.67);\n expect(el.y, 'y').to.equal(0.75);\n });\n it('accepts \"color\" values as hsla', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area color=\"hsla(100, 50%, 50%, 1)\"></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n\n expect(el.hue, 'hugh').to.equal(100);\n expect(el.x, 'ex').to.equal(0.67);\n expect(el.y, 'why').to.equal(0.75);\n\n el.color = 'hsla(120, 100%, 0, 1)';\n await elementUpdated(el);\n\n expect(el.hue, 'hue 2').to.equal(120);\n expect(el.x, 'x 2').to.equal(0);\n expect(el.y, 'y 2').to.equal(0);\n });\n it('accepts \"color\" values as rgb', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area color=\"rgb(0,255,0)\"></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n\n expect(el.hue).to.equal(120);\n expect(el.x).to.equal(1);\n expect(el.y).to.equal(1);\n });\n it('accepts \"color\" values as hex', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area color=\"#00ff00\"></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n\n expect(el.hue).to.equal(120);\n expect(el.x).to.equal(1);\n expect(el.y).to.equal(1);\n });\n it('accepts \"Arrow*\" keypresses', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area color=\"hsla(100, 50%, 50%, 1)\"></sp-color-area>\n `\n );\n\n expect(el.hue, 'hue').to.equal(100);\n expect(el.x, 'x').to.equal(0.67);\n expect(el.y, 'y').to.equal(0.75);\n\n el.inputX.focus();\n await nextFrame();\n\n let changeEvent = oneEvent(el, 'change');\n await sendKeys({\n press: 'ArrowUp',\n });\n await changeEvent;\n changeEvent = oneEvent(el, 'change');\n await sendKeys({\n press: 'ArrowUp',\n });\n await changeEvent;\n\n expect(el.x).to.equal(0.67);\n expect(el.y).to.equal(0.77);\n\n changeEvent = oneEvent(el, 'change');\n await sendKeys({\n press: 'ArrowRight',\n });\n await changeEvent;\n changeEvent = oneEvent(el, 'change');\n await sendKeys({\n press: 'ArrowRight',\n });\n await changeEvent;\n\n expect(el.x).to.equal(0.69);\n expect(el.y).to.equal(0.77);\n\n changeEvent = oneEvent(el, 'change');\n await sendKeys({\n press: 'ArrowDown',\n });\n await changeEvent;\n changeEvent = oneEvent(el, 'change');\n await sendKeys({\n press: 'ArrowDown',\n });\n await changeEvent;\n\n expect(el.x).to.equal(0.69);\n expect(el.y).to.equal(0.75);\n\n changeEvent = oneEvent(el, 'change');\n await sendKeys({\n press: 'ArrowLeft',\n });\n await changeEvent;\n changeEvent = oneEvent(el, 'change');\n await sendKeys({\n press: 'ArrowLeft',\n });\n await changeEvent;\n\n expect(el.x).to.equal(0.67);\n expect(el.y).to.equal(0.75);\n });\n it('accepts \"Arrow*\" keypresses with alteration', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area color=\"hsla(100, 50%, 50%, 1)\"></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n el.focus();\n expect(el.hue, 'hue').to.equal(100);\n expect(el.x, 'x').to.equal(0.67);\n expect(el.y, 'y').to.equal(0.75);\n\n await sendKeys({\n down: 'Shift',\n });\n await elementUpdated(el);\n await sendKeys({\n press: 'ArrowUp',\n });\n // This ensures that all the keystrokes are processed seperately\n await elementUpdated(el);\n await sendKeys({\n press: 'ArrowUp',\n });\n\n await elementUpdated(el);\n\n expect(el.color).to.equal('hsl(100, 65%, 57%)');\n expect(el.x, 'first').to.equal(0.67);\n expect(el.y).to.equal(0.85);\n\n await sendKeys({\n press: 'ArrowRight',\n });\n await elementUpdated(el);\n await sendKeys({\n press: 'ArrowRight',\n });\n await elementUpdated(el);\n\n expect(el.color).to.equal('hsl(100, 66%, 56%)');\n expect(el.x).to.equal(0.69);\n expect(el.y).to.equal(0.85);\n\n await sendKeys({\n press: 'ArrowDown',\n });\n await elementUpdated(el);\n await sendKeys({\n press: 'ArrowDown',\n });\n\n await elementUpdated(el);\n\n expect(el.color).to.equal('hsl(100, 53%, 49%)');\n expect(el.x).to.equal(0.69);\n expect(el.y).to.equal(0.75);\n\n await sendKeys({\n press: 'ArrowLeft',\n });\n await elementUpdated(el);\n await sendKeys({\n press: 'ArrowLeft',\n });\n await elementUpdated(el);\n await sendKeys({\n up: 'Shift',\n });\n\n await elementUpdated(el);\n\n expect(el.color).to.equal('hsl(100, 50%, 50%)');\n expect(el.x, 'last').to.equal(0.67);\n expect(el.y).to.equal(0.75);\n });\n it('accepts pointer events', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area\n style=\"--mod-colorarea-height: 192px; --mod-colorarea-width: 192px;\"\n ></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n await elementUpdated(el);\n\n const { handle } = el as unknown as { handle: HTMLElement };\n\n handle.setPointerCapture = () => {\n return;\n };\n handle.releasePointerCapture = () => {\n return;\n };\n\n expect(el.hue).to.equal(0);\n expect(el.x).to.equal(1);\n expect(el.y).to.equal(1);\n\n handle.dispatchEvent(\n new PointerEvent('pointerdown', {\n button: 1,\n pointerId: 1,\n clientX: 100,\n clientY: 100,\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n\n await elementUpdated(el);\n\n expect(el.hue).to.equal(0);\n expect(el.x).to.equal(1);\n expect(el.y).to.equal(1);\n\n const root = el.shadowRoot ? el.shadowRoot : el;\n const gradient = root.querySelector('.gradient') as HTMLElement;\n gradient.dispatchEvent(\n new PointerEvent('pointerdown', {\n button: 1,\n pointerId: 1,\n clientX: 100,\n clientY: 100,\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n\n await elementUpdated(el);\n\n expect(el.hue).to.equal(0);\n expect(el.x).to.equal(1);\n expect(el.y).to.equal(1);\n\n gradient.dispatchEvent(\n new PointerEvent('pointerdown', {\n pointerId: 1,\n clientX: 100,\n clientY: 100,\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n\n await elementUpdated(el);\n\n expect(el.hue).to.equal(0);\n expect(el.x, 'pointerdown x').to.equal(0.48);\n expect(el.y, 'pointerdown y').to.equal(0.52);\n\n handle.dispatchEvent(\n new PointerEvent('pointermove', {\n pointerId: 1,\n clientX: 110,\n clientY: 110,\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n handle.dispatchEvent(\n new PointerEvent('pointerup', {\n pointerId: 1,\n clientX: 110,\n clientY: 110,\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n\n await elementUpdated(el);\n\n expect(el.hue).to.equal(0);\n expect(el.x).to.equal(0.53);\n expect(el.y).to.equal(0.47);\n });\n it('responds to events on the internal input element', async () => {\n const inputSpy = spy();\n const changeSpy = spy();\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area\n color=\"hsla(100, 50%, 50%, 1)\"\n @change=${() => changeSpy()}\n @input=${() => inputSpy()}\n ></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n\n el.inputX.focus();\n\n el.inputX.dispatchEvent(\n new Event('input', {\n bubbles: true,\n composed: true,\n })\n );\n el.inputX.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: false, // native change events do not compose themselves by default\n })\n );\n\n expect(inputSpy.callCount).to.equal(1);\n expect(changeSpy.callCount).to.equal(1);\n\n el.inputY.focus();\n\n el.inputY.dispatchEvent(\n new Event('input', {\n bubbles: true,\n composed: true,\n })\n );\n el.inputY.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: false, // native change events do not compose themselves by default\n })\n );\n\n expect(inputSpy.callCount).to.equal(2);\n expect(changeSpy.callCount).to.equal(2);\n });\n it('dispatches input and change events in response to \"Arrow*\" keypresses', async () => {\n const inputSpy = spy();\n const changeSpy = spy();\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area\n color=\"hsla(100, 50%, 50%, 1)\"\n @change=${() => changeSpy()}\n @input=${() => inputSpy()}\n ></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n\n el.inputX.focus();\n inputSpy.resetHistory();\n changeSpy.resetHistory();\n await sendKeys({ press: 'ArrowRight' });\n await sendKeys({ press: 'ArrowRight' });\n\n await elementUpdated(el);\n\n expect(inputSpy.callCount).to.equal(2);\n expect(changeSpy.callCount).to.equal(2);\n\n el.inputY.focus();\n inputSpy.resetHistory();\n changeSpy.resetHistory();\n await sendKeys({ press: 'ArrowUp' });\n await sendKeys({ press: 'ArrowUp' });\n\n await elementUpdated(el);\n\n expect(inputSpy.callCount).to.equal(2);\n expect(changeSpy.callCount).to.equal(2);\n\n el.inputY.focus();\n inputSpy.resetHistory();\n changeSpy.resetHistory();\n await sendKeys({ press: 'ArrowDown' });\n await sendKeys({ press: 'ArrowDown' });\n\n await elementUpdated(el);\n\n expect(inputSpy.callCount).to.equal(2);\n expect(changeSpy.callCount).to.equal(2);\n\n el.inputX.focus();\n inputSpy.resetHistory();\n changeSpy.resetHistory();\n await sendKeys({ press: 'ArrowLeft' });\n await sendKeys({ press: 'ArrowLeft' });\n\n await elementUpdated(el);\n expect(inputSpy.callCount).to.equal(2);\n expect(changeSpy.callCount).to.equal(2);\n });\n it('retains `hue` value when s = 0 in HSL string format', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area color=\"hsl(100, 50%, 50%)\"></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n\n expect(el.hue, 'hue').to.equal(100);\n expect(el.x, 'x').to.equal(0.67);\n expect(el.y, 'y').to.equal(0.75);\n expect(el.color).to.equal('hsl(100, 50%, 50%)');\n\n el.color = 'hsl(100, 0%, 50%)';\n await elementUpdated(el);\n\n expect(el.hue, 'new hue').to.equal(100);\n expect(el.x, 'new x').to.equal(0);\n expect(el.y, 'new y').to.equal(0.5);\n expect(el.color).to.equal('hsl(100, 0%, 50%)');\n });\n it('retains `hue` value when s = 0 in HSL object format', async () => {\n let inputColor = { h: 100, s: 0.5, l: 0.5 };\n\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area .color=${inputColor}></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n\n let outputColor = el.color as { h: number; s: number; l: number };\n const variance = 0.00005;\n\n expect(el.hue).to.equal(100);\n expect(el.x, 'x').to.equal(0.67);\n expect(el.y, 'y').to.equal(0.75);\n\n expect(Math.abs(outputColor.h - inputColor.h)).to.be.lessThan(variance);\n expect(Math.abs(outputColor.s - inputColor.s)).to.be.lessThan(variance);\n expect(Math.abs(outputColor.l - inputColor.l)).to.be.lessThan(variance);\n\n inputColor = { h: 100, s: 0, l: 0.5 };\n el.color = inputColor;\n\n await elementUpdated(el);\n outputColor = el.color as { h: number; s: number; l: number };\n\n expect(el.hue).to.equal(100);\n expect(el.x, 'x').to.equal(0);\n expect(el.y, 'y').to.equal(0.5);\n\n expect(Math.abs(outputColor.h - inputColor.h)).to.be.lessThan(variance);\n expect(Math.abs(outputColor.s - inputColor.s)).to.be.lessThan(variance);\n expect(Math.abs(outputColor.l - inputColor.l)).to.be.lessThan(variance);\n });\n it('retains `hue` value when s = 0 in HSV string format', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area color=\"hsv(100, 50%, 50%)\"></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n\n expect(el.hue, 'hue').to.equal(100);\n expect(el.x, 'x').to.equal(0.5);\n expect(el.y, 'y').to.equal(0.5);\n expect(el.color).to.equal('hsv(100, 50%, 50%)');\n\n el.color = 'hsv(100, 0%, 50%)';\n await elementUpdated(el);\n\n expect(el.hue, 'new hue').to.equal(100);\n expect(el.x, 'new x').to.equal(0);\n expect(el.y, 'new y').to.equal(0.5);\n expect(el.color).to.equal('hsv(100, 0%, 50%)');\n });\n it('retains `hue` value when s = 0 in HSV object format', async () => {\n let inputColor = { h: 100, s: 0.5, v: 0.5 };\n\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area .color=${inputColor}></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n\n let outputColor = el.color as { h: number; s: number; v: number };\n const variance = 0.00005;\n\n expect(el.hue).to.equal(100);\n expect(el.x, 'x').to.equal(0.5);\n expect(el.y, 'y').to.equal(0.5);\n\n expect(Math.abs(outputColor.h - inputColor.h)).to.be.lessThan(variance);\n expect(Math.abs(outputColor.s - inputColor.s)).to.be.lessThan(variance);\n expect(Math.abs(outputColor.v - inputColor.v)).to.be.lessThan(variance);\n\n inputColor = { h: 100, s: 0, v: 0.5 };\n el.color = inputColor;\n\n await elementUpdated(el);\n outputColor = el.color as { h: number; s: number; v: number };\n\n expect(el.hue).to.equal(100);\n expect(el.x, 'x').to.equal(0);\n expect(el.y, 'y').to.equal(0.5);\n\n expect(Math.abs(outputColor.h - inputColor.h)).to.be.lessThan(variance);\n expect(Math.abs(outputColor.s - inputColor.s)).to.be.lessThan(variance);\n expect(Math.abs(outputColor.v - inputColor.v)).to.be.lessThan(variance);\n });\n const colorFormats: {\n name: string;\n color:\n | string\n | number\n | TinyColor\n | HSVA\n | HSV\n | RGB\n | RGBA\n | HSL\n | HSLA;\n }[] = [\n //rgb\n { name: 'RGB String', color: 'rgb(204, 51, 204)' },\n { name: 'RGB', color: { r: 204, g: 51, b: 204, a: 1 } },\n //prgb\n { name: 'PRGB String', color: 'rgb(80%, 20%, 80%)' },\n { name: 'PRGB', color: { r: '80%', g: '20%', b: '80%', a: 1 } },\n // hex\n { name: 'Hex', color: 'cc33cc' },\n { name: 'Hex String', color: '#cc33cc' },\n // hex8\n { name: 'Hex8', color: 'cc33ccff' },\n { name: 'Hex8 String', color: '#cc33ccff' },\n // name\n { name: 'string', color: 'red' },\n // hsl\n { name: 'HSL String', color: 'hsl(300, 60%, 50%)' },\n { name: 'HSL', color: { h: 300, s: 0.6000000000000001, l: 0.5, a: 1 } },\n // hsv\n { name: 'HSV String', color: 'hsv(300, 75%, 100%)' },\n { name: 'HSV', color: { h: 300, s: 0.75, v: 1, a: 1 } },\n ];\n colorFormats.map((format) => {\n it(`maintains \\`color\\` format as ${format.name}`, async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area></sp-color-area>\n `\n );\n\n el.color = format.color;\n if (format.name.startsWith('Hex')) {\n expect(el.color).to.equal(format.color);\n } else expect(el.color).to.deep.equal(format.color);\n });\n });\n it(`maintains \\`color\\` format as TinyColor`, async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area></sp-color-area>\n `\n );\n const color = new TinyColor('rgb(204, 51, 204)');\n el.color = color;\n expect(color.equals(el.color));\n });\n it(`resolves Hex3 format to Hex6 format`, async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area></sp-color-area>\n `\n );\n el.color = '0f0';\n expect(el.color).to.equal('00ff00');\n\n el.color = '#1e0';\n expect(el.color).to.equal('#11ee00');\n });\n it(`resolves Hex4 format to Hex8 format`, async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area></sp-color-area>\n `\n );\n el.color = 'f3af';\n expect(el.color).to.equal('ff33aaff');\n\n el.color = '#f3af';\n expect(el.color).to.equal('#ff33aaff');\n });\n});\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n elementUpdated,\n expect,\n fixture,\n html,\n nextFrame,\n oneEvent,\n} from '@open-wc/testing';\nimport { HSL, HSLA, HSV, HSVA, RGB, RGBA, TinyColor } from '@ctrl/tinycolor';\n\nimport '@spectrum-web-components/color-area/sp-color-area.js';\nimport { ColorArea } from '@spectrum-web-components/color-area';\nimport { sendKeys } from '@web/test-runner-commands';\nimport { spy } from 'sinon';\nimport { ColorHandle } from '@spectrum-web-components/color-handle';\nimport { testForLitDevWarnings } from '../../../test/testing-helpers.js';\n\ndescribe('ColorArea', () => {\n testForLitDevWarnings(\n async () =>\n await fixture<ColorArea>(\n html`\n <sp-color-area></sp-color-area>\n `\n )\n );\n it('loads default color-area accessibly', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n\n await expect(el).to.be.accessible();\n });\n it('manages a single tab stop', async () => {\n const test = await fixture<HTMLDivElement>(\n html`\n <div>\n <input type=\"text\" />\n <sp-color-area color=\"hsl(100, 50%, 50%)\"></sp-color-area>\n <input type=\"text\" />\n </div>\n `\n );\n const el = test.querySelector('sp-color-area') as ColorArea;\n const input1 = test.querySelector(\n 'input:nth-of-type(1)'\n ) as HTMLInputElement;\n const input2 = test.querySelector(\n 'input:nth-of-type(2)'\n ) as HTMLInputElement;\n\n await elementUpdated(el);\n\n input1.focus();\n\n expect(document.activeElement, 'before input').to.equal(input1);\n\n await sendKeys({\n press: 'Tab',\n });\n await elementUpdated(el);\n\n expect(document.activeElement, 'element').to.equal(el);\n let value = el.value;\n await sendKeys({\n press: 'ArrowRight',\n });\n await elementUpdated(el);\n expect(el.value).to.not.equal(value);\n await sendKeys({\n press: 'Tab',\n });\n await elementUpdated(el);\n\n expect(document.activeElement, 'after input').to.equal(input2);\n\n await sendKeys({\n press: 'Shift+Tab',\n });\n await elementUpdated(el);\n\n expect(document.activeElement, 'element again').to.equal(el);\n\n value = el.value;\n await sendKeys({\n press: 'ArrowDown',\n });\n expect(el.value).to.not.equal(value);\n await sendKeys({\n press: 'Shift+Tab',\n });\n expect(document.activeElement, 'before input again').to.equal(input1);\n });\n it('provides separate aria-labels for X and Y inputs', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area color=\"hsl(100, 50%, 50%)\"></sp-color-area>\n `\n );\n const inputX = el.shadowRoot.querySelector('input[name=\"x\"]');\n const inputY = el.shadowRoot.querySelector('input[name=\"y\"]');\n\n expect(inputX?.getAttribute('aria-label')).to.equal('Color Picker');\n expect(inputY?.getAttribute('aria-label')).to.equal('Color Picker');\n expect(inputX?.getAttribute('aria-roledescription')).to.equal(\n '2d slider'\n );\n expect(inputY?.getAttribute('aria-roledescription')).to.equal(\n '2d slider'\n );\n expect(inputX?.getAttribute('aria-valuetext')).to.equal(\n '67%, saturation, 75%, luminosity'\n );\n expect(inputY?.getAttribute('aria-valuetext')).to.equal(\n '75%, luminosity, 67%, saturation'\n );\n });\n it('overrides both X and Y labels with a provided \"label\" attribute', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area\n color=\"hsl(100, 50%, 50%)\"\n label=\"something custom\"\n ></sp-color-area>\n `\n );\n const inputX = el.shadowRoot.querySelector('input[name=\"x\"]');\n const inputY = el.shadowRoot.querySelector('input[name=\"y\"]');\n\n expect(inputX?.getAttribute('aria-label')).to.equal(\n 'something custom Color Picker'\n );\n expect(inputY?.getAttribute('aria-label')).to.equal(\n 'something custom Color Picker'\n );\n });\n it('accepts `hue` values', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n\n const { handle } = el as unknown as { handle: ColorHandle };\n\n expect(handle.color).to.equal('hsl(0, 100%, 50%)');\n\n el.hue = 125;\n\n await elementUpdated(el);\n\n expect(handle.color).to.equal('hsl(125, 100%, 50%)');\n });\n it('accepts \"color\" values as hsl', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area color=\"hsl(100, 50%, 50%)\"></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n\n expect(el.hue, 'hue').to.equal(100);\n expect(el.x, 'x').to.equal(0.67);\n expect(el.y, 'y').to.equal(0.75);\n });\n it('accepts \"color\" values as hsla', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area color=\"hsla(100, 50%, 50%, 1)\"></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n\n expect(el.hue, 'hugh').to.equal(100);\n expect(el.x, 'ex').to.equal(0.67);\n expect(el.y, 'why').to.equal(0.75);\n\n el.color = 'hsla(120, 100%, 0, 1)';\n await elementUpdated(el);\n\n expect(el.hue, 'hue 2').to.equal(120);\n expect(el.x, 'x 2').to.equal(0);\n expect(el.y, 'y 2').to.equal(0);\n });\n it('accepts \"color\" values as rgb', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area color=\"rgb(0,255,0)\"></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n\n expect(el.hue).to.equal(120);\n expect(el.x).to.equal(1);\n expect(el.y).to.equal(1);\n });\n it('accepts \"color\" values as hex', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area color=\"#00ff00\"></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n\n expect(el.hue).to.equal(120);\n expect(el.x).to.equal(1);\n expect(el.y).to.equal(1);\n });\n it('accepts \"Arrow*\" keypresses', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area color=\"hsla(100, 50%, 50%, 1)\"></sp-color-area>\n `\n );\n\n expect(el.hue, 'hue').to.equal(100);\n expect(el.x, 'x').to.equal(0.67);\n expect(el.y, 'y').to.equal(0.75);\n\n el.inputX.focus();\n await nextFrame();\n\n let changeEvent = oneEvent(el, 'change');\n await sendKeys({\n press: 'ArrowUp',\n });\n await changeEvent;\n changeEvent = oneEvent(el, 'change');\n await sendKeys({\n press: 'ArrowUp',\n });\n await changeEvent;\n\n expect(el.x).to.equal(0.67);\n expect(el.y).to.equal(0.77);\n\n changeEvent = oneEvent(el, 'change');\n await sendKeys({\n press: 'ArrowRight',\n });\n await changeEvent;\n changeEvent = oneEvent(el, 'change');\n await sendKeys({\n press: 'ArrowRight',\n });\n await changeEvent;\n\n expect(el.x).to.equal(0.69);\n expect(el.y).to.equal(0.77);\n\n changeEvent = oneEvent(el, 'change');\n await sendKeys({\n press: 'ArrowDown',\n });\n await changeEvent;\n changeEvent = oneEvent(el, 'change');\n await sendKeys({\n press: 'ArrowDown',\n });\n await changeEvent;\n\n expect(el.x).to.equal(0.69);\n expect(el.y).to.equal(0.75);\n\n changeEvent = oneEvent(el, 'change');\n await sendKeys({\n press: 'ArrowLeft',\n });\n await changeEvent;\n changeEvent = oneEvent(el, 'change');\n await sendKeys({\n press: 'ArrowLeft',\n });\n await changeEvent;\n\n expect(el.x).to.equal(0.67);\n expect(el.y).to.equal(0.75);\n });\n it('accepts \"Arrow*\" keypresses with alteration', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area color=\"hsla(100, 50%, 50%, 1)\"></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n el.focus();\n expect(el.hue, 'hue').to.equal(100);\n expect(el.x, 'x').to.equal(0.67);\n expect(el.y, 'y').to.equal(0.75);\n\n await sendKeys({\n down: 'Shift',\n });\n await elementUpdated(el);\n await sendKeys({\n press: 'ArrowUp',\n });\n // This ensures that all the keystrokes are processed seperately\n await elementUpdated(el);\n await sendKeys({\n press: 'ArrowUp',\n });\n\n await elementUpdated(el);\n\n expect(el.color).to.equal('hsl(100, 65%, 57%)');\n expect(el.x, 'first').to.equal(0.67);\n expect(el.y).to.equal(0.85);\n\n await sendKeys({\n press: 'ArrowRight',\n });\n await elementUpdated(el);\n await sendKeys({\n press: 'ArrowRight',\n });\n await elementUpdated(el);\n\n expect(el.color).to.equal('hsl(100, 66%, 56%)');\n expect(el.x).to.equal(0.69);\n expect(el.y).to.equal(0.85);\n\n await sendKeys({\n press: 'ArrowDown',\n });\n await elementUpdated(el);\n await sendKeys({\n press: 'ArrowDown',\n });\n\n await elementUpdated(el);\n\n expect(el.color).to.equal('hsl(100, 53%, 49%)');\n expect(el.x).to.equal(0.69);\n expect(el.y).to.equal(0.75);\n\n await sendKeys({\n press: 'ArrowLeft',\n });\n await elementUpdated(el);\n await sendKeys({\n press: 'ArrowLeft',\n });\n await elementUpdated(el);\n await sendKeys({\n up: 'Shift',\n });\n\n await elementUpdated(el);\n\n expect(el.color).to.equal('hsl(100, 50%, 50%)');\n expect(el.x, 'last').to.equal(0.67);\n expect(el.y).to.equal(0.75);\n });\n it('accepts pointer events', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area\n style=\"--mod-colorarea-height: 192px; --mod-colorarea-width: 192px;\"\n ></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n await elementUpdated(el);\n\n const { handle } = el as unknown as { handle: HTMLElement };\n\n handle.setPointerCapture = () => {\n return;\n };\n handle.releasePointerCapture = () => {\n return;\n };\n\n expect(el.hue).to.equal(0);\n expect(el.x).to.equal(1);\n expect(el.y).to.equal(1);\n\n handle.dispatchEvent(\n new PointerEvent('pointerdown', {\n button: 1,\n pointerId: 1,\n clientX: 100,\n clientY: 100,\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n\n await elementUpdated(el);\n\n expect(el.hue).to.equal(0);\n expect(el.x).to.equal(1);\n expect(el.y).to.equal(1);\n\n const root = el.shadowRoot ? el.shadowRoot : el;\n const gradient = root.querySelector('.gradient') as HTMLElement;\n gradient.dispatchEvent(\n new PointerEvent('pointerdown', {\n button: 1,\n pointerId: 1,\n clientX: 100,\n clientY: 100,\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n\n await elementUpdated(el);\n\n expect(el.hue).to.equal(0);\n expect(el.x).to.equal(1);\n expect(el.y).to.equal(1);\n\n gradient.dispatchEvent(\n new PointerEvent('pointerdown', {\n pointerId: 1,\n clientX: 100,\n clientY: 100,\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n\n await elementUpdated(el);\n\n expect(el.hue).to.equal(0);\n expect(el.x, 'pointerdown x').to.equal(0.48);\n expect(el.y, 'pointerdown y').to.equal(0.52);\n\n handle.dispatchEvent(\n new PointerEvent('pointermove', {\n pointerId: 1,\n clientX: 110,\n clientY: 110,\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n handle.dispatchEvent(\n new PointerEvent('pointerup', {\n pointerId: 1,\n clientX: 110,\n clientY: 110,\n bubbles: true,\n composed: true,\n cancelable: true,\n })\n );\n\n await elementUpdated(el);\n\n expect(el.hue).to.equal(0);\n expect(el.x).to.equal(0.53);\n expect(el.y).to.equal(0.47);\n });\n it('responds to events on the internal input element', async () => {\n const inputSpy = spy();\n const changeSpy = spy();\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area\n color=\"hsla(100, 50%, 50%, 1)\"\n @change=${() => changeSpy()}\n @input=${() => inputSpy()}\n ></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n\n el.inputX.focus();\n\n el.inputX.dispatchEvent(\n new Event('input', {\n bubbles: true,\n composed: true,\n })\n );\n el.inputX.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: false, // native change events do not compose themselves by default\n })\n );\n\n expect(inputSpy.callCount).to.equal(1);\n expect(changeSpy.callCount).to.equal(1);\n\n el.inputY.focus();\n\n el.inputY.dispatchEvent(\n new Event('input', {\n bubbles: true,\n composed: true,\n })\n );\n el.inputY.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: false, // native change events do not compose themselves by default\n })\n );\n\n expect(inputSpy.callCount).to.equal(2);\n expect(changeSpy.callCount).to.equal(2);\n });\n it('dispatches input and change events in response to \"Arrow*\" keypresses', async () => {\n const inputSpy = spy();\n const changeSpy = spy();\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area\n color=\"hsla(100, 50%, 50%, 1)\"\n @change=${() => changeSpy()}\n @input=${() => inputSpy()}\n ></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n const Xvalue = Number(Number(el.inputX.value).toFixed(2));\n const Yvalue = Number(Number(el.inputY.value).toFixed(2));\n\n el.inputX.focus();\n inputSpy.resetHistory();\n changeSpy.resetHistory();\n await sendKeys({ press: 'ArrowRight' });\n await sendKeys({ press: 'ArrowRight' });\n\n await elementUpdated(el);\n\n expect(inputSpy.callCount).to.equal(2);\n expect(changeSpy.callCount).to.equal(2);\n expect(parseFloat(el.inputX.value).toFixed(2)).to.equal(\n (Xvalue + 0.02).toFixed(2)\n );\n\n el.inputY.focus();\n inputSpy.resetHistory();\n changeSpy.resetHistory();\n await sendKeys({ press: 'ArrowUp' });\n await sendKeys({ press: 'ArrowUp' });\n\n await elementUpdated(el);\n\n expect(inputSpy.callCount).to.equal(2);\n expect(changeSpy.callCount).to.equal(2);\n expect(parseFloat(el.inputY.value).toFixed(2)).to.equal(\n (Yvalue + 0.02).toFixed(2)\n );\n\n el.inputY.focus();\n inputSpy.resetHistory();\n changeSpy.resetHistory();\n await sendKeys({ press: 'ArrowDown' });\n await sendKeys({ press: 'ArrowDown' });\n\n await elementUpdated(el);\n\n expect(inputSpy.callCount).to.equal(2);\n expect(changeSpy.callCount).to.equal(2);\n expect(parseFloat(el.inputY.value).toFixed(2)).to.equal(\n Yvalue.toFixed(2)\n );\n\n el.inputX.focus();\n inputSpy.resetHistory();\n changeSpy.resetHistory();\n\n await sendKeys({ press: 'ArrowLeft' });\n await sendKeys({ press: 'ArrowLeft' });\n\n await elementUpdated(el);\n //expect(el.x).to.be.equal(0.98);\n expect(inputSpy.callCount).to.equal(2);\n expect(changeSpy.callCount).to.equal(2);\n expect(parseFloat(el.inputX.value).toFixed(2)).to.equal(\n Xvalue.toFixed(2)\n );\n\n el.inputX.focus();\n inputSpy.resetHistory();\n changeSpy.resetHistory();\n await sendKeys({ press: 'End' });\n await sendKeys({ press: 'End' });\n\n await elementUpdated(el);\n expect(inputSpy.callCount).to.equal(2);\n expect(changeSpy.callCount).to.equal(2);\n expect(parseFloat(el.inputX.value).toFixed(2)).to.equal(\n (Xvalue + 0.2).toFixed(2)\n );\n\n el.inputX.focus();\n inputSpy.resetHistory();\n changeSpy.resetHistory();\n await sendKeys({ press: 'Home' });\n await sendKeys({ press: 'Home' });\n\n await elementUpdated(el);\n expect(inputSpy.callCount).to.equal(2);\n expect(changeSpy.callCount).to.equal(2);\n expect(parseFloat(el.inputX.value).toFixed(2)).to.equal(\n Xvalue.toFixed(2)\n );\n\n el.inputY.focus();\n inputSpy.resetHistory();\n changeSpy.resetHistory();\n await sendKeys({ press: 'PageUp' });\n await sendKeys({ press: 'PageUp' });\n\n await elementUpdated(el);\n\n expect(inputSpy.callCount).to.equal(2);\n expect(changeSpy.callCount).to.equal(2);\n expect(parseFloat(el.inputY.value).toFixed(2)).to.equal(\n (Yvalue + 0.2).toFixed(2)\n );\n\n el.inputY.focus();\n inputSpy.resetHistory();\n changeSpy.resetHistory();\n await sendKeys({ press: 'PageDown' });\n await sendKeys({ press: 'PageDown' });\n\n await elementUpdated(el);\n\n expect(inputSpy.callCount).to.equal(2);\n expect(changeSpy.callCount).to.equal(2);\n expect(parseFloat(el.inputY.value).toFixed(2)).to.equal(\n Yvalue.toFixed(2)\n );\n });\n it('retains `hue` value when s = 0 in HSL string format', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area color=\"hsl(100, 50%, 50%)\"></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n\n expect(el.hue, 'hue').to.equal(100);\n expect(el.x, 'x').to.equal(0.67);\n expect(el.y, 'y').to.equal(0.75);\n expect(el.color).to.equal('hsl(100, 50%, 50%)');\n\n el.color = 'hsl(100, 0%, 50%)';\n await elementUpdated(el);\n\n expect(el.hue, 'new hue').to.equal(100);\n expect(el.x, 'new x').to.equal(0);\n expect(el.y, 'new y').to.equal(0.5);\n expect(el.color).to.equal('hsl(100, 0%, 50%)');\n });\n it('retains `hue` value when s = 0 in HSL object format', async () => {\n let inputColor = { h: 100, s: 0.5, l: 0.5 };\n\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area .color=${inputColor}></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n\n let outputColor = el.color as { h: number; s: number; l: number };\n const variance = 0.00005;\n\n expect(el.hue).to.equal(100);\n expect(el.x, 'x').to.equal(0.67);\n expect(el.y, 'y').to.equal(0.75);\n\n expect(Math.abs(outputColor.h - inputColor.h)).to.be.lessThan(variance);\n expect(Math.abs(outputColor.s - inputColor.s)).to.be.lessThan(variance);\n expect(Math.abs(outputColor.l - inputColor.l)).to.be.lessThan(variance);\n\n inputColor = { h: 100, s: 0, l: 0.5 };\n el.color = inputColor;\n\n await elementUpdated(el);\n outputColor = el.color as { h: number; s: number; l: number };\n\n expect(el.hue).to.equal(100);\n expect(el.x, 'x').to.equal(0);\n expect(el.y, 'y').to.equal(0.5);\n\n expect(Math.abs(outputColor.h - inputColor.h)).to.be.lessThan(variance);\n expect(Math.abs(outputColor.s - inputColor.s)).to.be.lessThan(variance);\n expect(Math.abs(outputColor.l - inputColor.l)).to.be.lessThan(variance);\n });\n it('retains `hue` value when s = 0 in HSV string format', async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area color=\"hsv(100, 50%, 50%)\"></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n\n expect(el.hue, 'hue').to.equal(100);\n expect(el.x, 'x').to.equal(0.5);\n expect(el.y, 'y').to.equal(0.5);\n expect(el.color).to.equal('hsv(100, 50%, 50%)');\n\n el.color = 'hsv(100, 0%, 50%)';\n await elementUpdated(el);\n\n expect(el.hue, 'new hue').to.equal(100);\n expect(el.x, 'new x').to.equal(0);\n expect(el.y, 'new y').to.equal(0.5);\n expect(el.color).to.equal('hsv(100, 0%, 50%)');\n });\n it('retains `hue` value when s = 0 in HSV object format', async () => {\n let inputColor = { h: 100, s: 0.5, v: 0.5 };\n\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area .color=${inputColor}></sp-color-area>\n `\n );\n\n await elementUpdated(el);\n\n let outputColor = el.color as { h: number; s: number; v: number };\n const variance = 0.00005;\n\n expect(el.hue).to.equal(100);\n expect(el.x, 'x').to.equal(0.5);\n expect(el.y, 'y').to.equal(0.5);\n\n expect(Math.abs(outputColor.h - inputColor.h)).to.be.lessThan(variance);\n expect(Math.abs(outputColor.s - inputColor.s)).to.be.lessThan(variance);\n expect(Math.abs(outputColor.v - inputColor.v)).to.be.lessThan(variance);\n\n inputColor = { h: 100, s: 0, v: 0.5 };\n el.color = inputColor;\n\n await elementUpdated(el);\n outputColor = el.color as { h: number; s: number; v: number };\n\n expect(el.hue).to.equal(100);\n expect(el.x, 'x').to.equal(0);\n expect(el.y, 'y').to.equal(0.5);\n\n expect(Math.abs(outputColor.h - inputColor.h)).to.be.lessThan(variance);\n expect(Math.abs(outputColor.s - inputColor.s)).to.be.lessThan(variance);\n expect(Math.abs(outputColor.v - inputColor.v)).to.be.lessThan(variance);\n });\n const colorFormats: {\n name: string;\n color:\n | string\n | number\n | TinyColor\n | HSVA\n | HSV\n | RGB\n | RGBA\n | HSL\n | HSLA;\n }[] = [\n //rgb\n { name: 'RGB String', color: 'rgb(204, 51, 204)' },\n { name: 'RGB', color: { r: 204, g: 51, b: 204, a: 1 } },\n //prgb\n { name: 'PRGB String', color: 'rgb(80%, 20%, 80%)' },\n { name: 'PRGB', color: { r: '80%', g: '20%', b: '80%', a: 1 } },\n // hex\n { name: 'Hex', color: 'cc33cc' },\n { name: 'Hex String', color: '#cc33cc' },\n // hex8\n { name: 'Hex8', color: 'cc33ccff' },\n { name: 'Hex8 String', color: '#cc33ccff' },\n // name\n { name: 'string', color: 'red' },\n // hsl\n { name: 'HSL String', color: 'hsl(300, 60%, 50%)' },\n { name: 'HSL', color: { h: 300, s: 0.6000000000000001, l: 0.5, a: 1 } },\n // hsv\n { name: 'HSV String', color: 'hsv(300, 75%, 100%)' },\n { name: 'HSV', color: { h: 300, s: 0.75, v: 1, a: 1 } },\n ];\n colorFormats.map((format) => {\n it(`maintains \\`color\\` format as ${format.name}`, async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area></sp-color-area>\n `\n );\n\n el.color = format.color;\n if (format.name.startsWith('Hex')) {\n expect(el.color).to.equal(format.color);\n } else expect(el.color).to.deep.equal(format.color);\n });\n });\n it(`maintains \\`color\\` format as TinyColor`, async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area></sp-color-area>\n `\n );\n const color = new TinyColor('rgb(204, 51, 204)');\n el.color = color;\n expect(color.equals(el.color));\n });\n it(`resolves Hex3 format to Hex6 format`, async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area></sp-color-area>\n `\n );\n el.color = '0f0';\n expect(el.color).to.equal('00ff00');\n\n el.color = '#1e0';\n expect(el.color).to.equal('#11ee00');\n });\n it(`resolves Hex4 format to Hex8 format`, async () => {\n const el = await fixture<ColorArea>(\n html`\n <sp-color-area></sp-color-area>\n `\n );\n el.color = 'f3af';\n expect(el.color).to.equal('ff33aaff');\n\n el.color = '#f3af';\n expect(el.color).to.equal('#ff33aaff');\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|