q2-tecton-elements 1.45.1 → 1.45.3
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/dist/cjs/click-elsewhere_2.cjs.entry.js +36 -4
- package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-calendar.cjs.entry.js +2 -1
- package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +2 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-icon.cjs.entry.js +5 -3
- package/dist/cjs/q2-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-message.cjs.entry.js +1 -1
- package/dist/cjs/q2-message.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-select.cjs.entry.js +4 -3
- package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar.js +23 -1
- package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
- package/dist/collection/components/q2-dropdown/q2-dropdown.js +23 -1
- package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
- package/dist/collection/components/q2-icon/q2-icon.js +6 -4
- package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
- package/dist/collection/components/q2-message/q2-message.css +3 -3
- package/dist/collection/components/q2-popover/q2-popover.css +3 -0
- package/dist/collection/components/q2-popover/q2-popover.js +53 -3
- package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
- package/dist/collection/components/q2-select/q2-select.js +25 -3
- package/dist/collection/components/q2-select/q2-select.js.map +1 -1
- package/dist/collection/components/q2-stepper/q2-stepper.css +4 -2
- package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.css +5 -16
- package/dist/components/q2-calendar.js +3 -1
- package/dist/components/q2-calendar.js.map +1 -1
- package/dist/components/q2-dropdown.js +3 -1
- package/dist/components/q2-dropdown.js.map +1 -1
- package/dist/components/q2-icon2.js +6 -4
- package/dist/components/q2-icon2.js.map +1 -1
- package/dist/components/q2-message2.js +1 -1
- package/dist/components/q2-message2.js.map +1 -1
- package/dist/components/q2-popover2.js +37 -4
- package/dist/components/q2-popover2.js.map +1 -1
- package/dist/components/q2-select.js +5 -3
- package/dist/components/q2-select.js.map +1 -1
- package/dist/components/q2-stepper-vertical.js +1 -1
- package/dist/components/q2-stepper-vertical.js.map +1 -1
- package/dist/components/q2-stepper.js +1 -1
- package/dist/components/q2-stepper.js.map +1 -1
- package/dist/esm/click-elsewhere_2.entry.js +36 -4
- package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/q2-calendar.entry.js +2 -1
- package/dist/esm/q2-calendar.entry.js.map +1 -1
- package/dist/esm/q2-dropdown.entry.js +2 -1
- package/dist/esm/q2-dropdown.entry.js.map +1 -1
- package/dist/esm/q2-icon.entry.js +6 -4
- package/dist/esm/q2-icon.entry.js.map +1 -1
- package/dist/esm/q2-message.entry.js +1 -1
- package/dist/esm/q2-message.entry.js.map +1 -1
- package/dist/esm/q2-select.entry.js +4 -3
- package/dist/esm/q2-select.entry.js.map +1 -1
- package/dist/esm/q2-stepper-vertical.entry.js +1 -1
- package/dist/esm/q2-stepper-vertical.entry.js.map +1 -1
- package/dist/esm/q2-stepper.entry.js +1 -1
- package/dist/esm/q2-stepper.entry.js.map +1 -1
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/q2-tecton-elements/p-445990a8.entry.js +2 -0
- package/dist/q2-tecton-elements/p-445990a8.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-68556733.entry.js +2 -0
- package/dist/q2-tecton-elements/p-68556733.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-a977e723.entry.js +2 -0
- package/dist/q2-tecton-elements/p-a977e723.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-bfe9d688.entry.js +2 -0
- package/dist/q2-tecton-elements/p-bfe9d688.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-f1281e3f.entry.js → p-bffda54d.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-bffda54d.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-c016bd18.entry.js +2 -0
- package/dist/q2-tecton-elements/p-c016bd18.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-cadceb00.entry.js +2 -0
- package/dist/q2-tecton-elements/p-cadceb00.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-f0813fb4.entry.js +2 -0
- package/dist/q2-tecton-elements/p-f0813fb4.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
- package/dist/test/elements/q2-action-sheet-test.e2e.js +5 -1
- package/dist/test/elements/q2-action-sheet-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-avatar-test.e2e.js +2 -3
- package/dist/test/elements/q2-avatar-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-badge-test.e2e.js +5 -1
- package/dist/test/elements/q2-badge-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-btn-test.e2e.js +5 -1
- package/dist/test/elements/q2-btn-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-calendar-test.e2e.js +25 -1
- package/dist/test/elements/q2-calendar-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-card-test.e2e.js +5 -1
- package/dist/test/elements/q2-card-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-chart-area-test.e2e.js +5 -1
- package/dist/test/elements/q2-chart-area-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-chart-bar-test.e2e.js +5 -1
- package/dist/test/elements/q2-chart-bar-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-chart-donut-test.e2e.js +5 -1
- package/dist/test/elements/q2-chart-donut-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-checkbox-group-test.e2e.js +5 -1
- package/dist/test/elements/q2-checkbox-group-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-checkbox-test.e2e.js +5 -1
- package/dist/test/elements/q2-checkbox-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-currency-test.e2e.js +5 -1
- package/dist/test/elements/q2-currency-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-data-table-test.e2e.js +5 -1
- package/dist/test/elements/q2-data-table-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-dropdown-item-test.e2e.js +5 -1
- package/dist/test/elements/q2-dropdown-item-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-dropdown-test.e2e.js +35 -1
- package/dist/test/elements/q2-dropdown-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-editable-field-test.e2e.js +5 -1
- package/dist/test/elements/q2-editable-field-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-icon-test.e2e.js +22 -1
- package/dist/test/elements/q2-icon-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-input-test.e2e.js +5 -1
- package/dist/test/elements/q2-input-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-loading-test.e2e.js +5 -1
- package/dist/test/elements/q2-loading-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-loc-test.e2e.js +5 -1
- package/dist/test/elements/q2-loc-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-message-test.e2e.js +5 -1
- package/dist/test/elements/q2-message-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-optgroup-test.e2e.js +5 -1
- package/dist/test/elements/q2-optgroup-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-option-list-test.e2e.js +5 -1
- package/dist/test/elements/q2-option-list-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-option-test.e2e.js +5 -1
- package/dist/test/elements/q2-option-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-pagination-test.e2e.js +5 -1
- package/dist/test/elements/q2-pagination-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-pill-test.e2e.js +2 -3
- package/dist/test/elements/q2-pill-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-popover-test.e2e.js +6 -2
- package/dist/test/elements/q2-popover-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-popover-test.spec.js +99 -13
- package/dist/test/elements/q2-popover-test.spec.js.map +1 -1
- package/dist/test/elements/q2-radio-group-test.e2e.js +5 -1
- package/dist/test/elements/q2-radio-group-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-radio-test.e2e.js +5 -1
- package/dist/test/elements/q2-radio-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-relative-time-test.e2e.js +8 -4
- package/dist/test/elements/q2-relative-time-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-section-test.e2e.js +5 -1
- package/dist/test/elements/q2-section-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-select-test.e2e.js +29 -1
- package/dist/test/elements/q2-select-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-stepper-pane-test.e2e.js +5 -1
- package/dist/test/elements/q2-stepper-pane-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-stepper-test.e2e.js +5 -1
- package/dist/test/elements/q2-stepper-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-stepper-vertical-test.e2e.js +5 -1
- package/dist/test/elements/q2-stepper-vertical-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-tab-container-test.e2e.js +5 -1
- package/dist/test/elements/q2-tab-container-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-tab-pane-test.e2e.js +5 -1
- package/dist/test/elements/q2-tab-pane-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-tag-test.e2e.js +2 -3
- package/dist/test/elements/q2-tag-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-textarea-test.e2e.js +5 -1
- package/dist/test/elements/q2-textarea-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-tooltip-test.e2e.js +5 -1
- package/dist/test/elements/q2-tooltip-test.e2e.js.map +1 -1
- package/dist/test/elements/tecton-tab-pane-test.e2e.js +5 -1
- package/dist/test/elements/tecton-tab-pane-test.e2e.js.map +1 -1
- package/dist/test/helpers.js +1 -1
- package/dist/test/helpers.js.map +1 -1
- package/dist/types/components/q2-icon/q2-icon.d.ts +1 -0
- package/dist/types/components/q2-popover/q2-popover.d.ts +3 -1
- package/dist/types/components.d.ts +32 -0
- package/dist/types/workspace/workspace/tecton-production_release_1.45.x/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +1 -1
- package/package.json +3 -3
- package/dist/q2-tecton-elements/p-4a332c2a.entry.js +0 -2
- package/dist/q2-tecton-elements/p-4a332c2a.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-4f7e2c8a.entry.js +0 -2
- package/dist/q2-tecton-elements/p-4f7e2c8a.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-7f663376.entry.js +0 -2
- package/dist/q2-tecton-elements/p-7f663376.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-bf125cdf.entry.js +0 -2
- package/dist/q2-tecton-elements/p-bf125cdf.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-c4c458b7.entry.js +0 -2
- package/dist/q2-tecton-elements/p-c4c458b7.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-f1281e3f.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-f162c670.entry.js +0 -2
- package/dist/q2-tecton-elements/p-f162c670.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-f418967b.entry.js +0 -2
- package/dist/q2-tecton-elements/p-f418967b.entry.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { newSpecPage } from "@stencil/core/testing";
|
|
2
|
-
import { evaluateA11y, setup } from "../../../test/helpers";
|
|
2
|
+
import { evaluateA11y, getListOfStyleCompilationIssues, setup } from "../../../test/helpers";
|
|
3
3
|
import { Q2RelativeTime } from "../../src/components/q2-relative-time/q2-relative-time";
|
|
4
4
|
function createNewSpecPage(props) {
|
|
5
5
|
let htmlProps = '';
|
|
@@ -38,6 +38,10 @@ function createNewSpecPage(props) {
|
|
|
38
38
|
describe('q2-relative-time', () => {
|
|
39
39
|
let specPage;
|
|
40
40
|
let props;
|
|
41
|
+
it('properly compiles CSS vars and functions', async () => {
|
|
42
|
+
const page = await setup({ html: '<q2-relative-time></q2-relative-time>' });
|
|
43
|
+
expect(await getListOfStyleCompilationIssues(page, 'q2-relative-time')).toHaveLength(0);
|
|
44
|
+
});
|
|
41
45
|
describe('[A11y] guideline compliance', () => {
|
|
42
46
|
it('Does not have accessibility violations', async () => {
|
|
43
47
|
const page = await setup({ html: `<q2-relative-time date='2020-02-01' />` });
|
|
@@ -53,7 +57,7 @@ describe('q2-relative-time', () => {
|
|
|
53
57
|
};
|
|
54
58
|
specPage = await createNewSpecPage(props);
|
|
55
59
|
expect(specPage.root).toEqualHtml(`
|
|
56
|
-
<q2-relative-time
|
|
60
|
+
<q2-relative-time
|
|
57
61
|
date="2020-02-01"
|
|
58
62
|
base-date="2024-05-14"
|
|
59
63
|
locale="en-US"
|
|
@@ -79,10 +83,10 @@ describe('q2-relative-time', () => {
|
|
|
79
83
|
};
|
|
80
84
|
specPage = await createNewSpecPage(props);
|
|
81
85
|
expect(specPage.root).toEqualHtml(`
|
|
82
|
-
<q2-relative-time
|
|
86
|
+
<q2-relative-time
|
|
83
87
|
date="2020-02-01"
|
|
84
88
|
base-date="2024-05-14"
|
|
85
|
-
sync="false"
|
|
89
|
+
sync="false"
|
|
86
90
|
locale="en-US"
|
|
87
91
|
message-format="long"
|
|
88
92
|
numeric="always"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-relative-time-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-relative-time-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { SpecPage, newSpecPage } from '@stencil/core/testing';\nimport { evaluateA11y, setup } from 'test/helpers';\nimport { Q2RelativeTime } from '../../src/components/q2-relative-time/q2-relative-time';\n\nfunction createNewSpecPage(props: {\n date?: string;\n baseDate?: string;\n sync?: boolean;\n locale?: string;\n messageFormat?: string;\n numeric?: string;\n unit?: string;\n}) {\n let htmlProps: string = '';\n Object.entries(props).forEach(([key, value]) => {\n switch (key) {\n case 'date':\n htmlProps += ` date=${value}`;\n break;\n case 'baseDate':\n htmlProps += ` base-date=${value}`;\n break;\n case 'sync':\n htmlProps += ` sync=\"${value}\"`;\n break;\n case 'locale':\n htmlProps += ` locale=${value}`;\n break;\n case 'messageFormat':\n htmlProps += ` message-format=${value}`;\n break;\n case 'numeric':\n htmlProps += ` numeric=\"${value}\"`;\n break;\n case 'unit':\n htmlProps += ` unit=${value}`;\n break;\n default:\n break;\n }\n });\n\n return newSpecPage({\n components: [Q2RelativeTime],\n html: `<q2-relative-time ${htmlProps}></q2-relative-time>`,\n });\n}\n\ndescribe('q2-relative-time', () => {\n let specPage: SpecPage;\n let props: {\n date?: string;\n baseDate?: string;\n sync?: boolean;\n locale?: string;\n messageFormat?: string;\n numeric?: string;\n unit?: string;\n };\n describe('[A11y] guideline compliance', () => {\n it('Does not have accessibility violations', async () => {\n const page = await setup({ html: `<q2-relative-time date='2020-02-01' />` });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n\n describe('Configuration', () => {\n it('renders with minimal configuration', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root).toEqualHtml(`\n <q2-relative-time \n date=\"2020-02-01\"\n base-date=\"2024-05-14\"\n locale=\"en-US\"\n message-format=\"short\"\n numeric=\"auto\">\n <mock:shadow-root>\n <time datetime=\"4 yr.\">\n 4 yr.\n </time>\n </mock:shadow-root>\n </q2-relative-time>\n `);\n });\n\n it('renders with full configuration', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n sync: false,\n locale: 'en-US',\n messageFormat: 'long',\n numeric: 'always',\n unit: 'year',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root).toEqualHtml(`\n <q2-relative-time \n date=\"2020-02-01\"\n base-date=\"2024-05-14\"\n sync=\"false\" \n locale=\"en-US\"\n message-format=\"long\"\n numeric=\"always\"\n unit=\"year\">\n <mock:shadow-root>\n <time datetime=\"4 years\">\n 4 years\n </time>\n </mock:shadow-root>\n </q2-relative-time>\n `);\n });\n });\n\n describe('Props', () => {\n describe('baseDate', () => {\n describe('when date is NOT provided', () => {\n it('it renders with the default baseDate', async () => {\n props = { baseDate: '2020-02-01' };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toBe('Invalid Date Provided');\n });\n });\n describe('when valid baseDate AND date are provided', () => {\n it('renders with provided baseDate', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.baseDate).toBe('2024-05-14');\n expect(await specPage.root.displayedMessageValue()).toBe('4 yr.');\n });\n it('trims the suffixes from displayedMessage', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toBe('4 yr.');\n });\n it(\"does not use the provided baseDate if it's invalid\", async () => {\n props = {\n date: '2020-02-01T00:00:00Z',\n baseDate: '02-03-2020T00:00:00Z',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).not.toBe('2 days ago');\n });\n it('displays only numeric messages', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2020-02-02',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toBe('1 day');\n });\n });\n });\n\n describe('date', () => {\n it(\"does not use the provided date if it's invalid\", async () => {\n props = { date: '02-01-2020T00:00:00Z' };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.date).not.toBe('2020-02-01T00:00:00');\n expect(await specPage.root.displayedMessageValue()).toBe('Invalid Date Provided');\n });\n it('should render with valid date', async () => {\n props = { date: '2020-02-01T00:00:00Z' };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.date).toBe('2020-02-01T00:00:00Z');\n });\n });\n\n describe('locale', () => {\n it('should render with given locale', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n locale: 'fr',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.locale).toBe('fr');\n expect(await specPage.root.displayedMessageValue()).toBe('il y a 4 a');\n });\n });\n\n describe('messageFormat', () => {\n describe('long', () => {\n it('should display the message in long form', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n messageFormat: 'long',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.messageFormat).toBe('long');\n expect(await specPage.root.displayedMessageValue()).toBe('4 years');\n });\n });\n describe('short', () => {\n it('should display the message in short form', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n messageFormat: 'short',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.messageFormat).toBe('short');\n expect(await specPage.root.displayedMessageValue()).toBe('4 yr.');\n });\n });\n describe('narrow', () => {\n it('should display the message in narrow form', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n messageFormat: 'narrow',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.messageFormat).toBe('narrow');\n expect(await specPage.root.displayedMessageValue()).toBe('4y');\n });\n });\n });\n\n describe('numeric', () => {\n it('is auto by default', async () => {\n props = {\n date: '2020-02-01',\n numeric: 'auto',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.numeric).toBe('auto');\n });\n\n it('only displays numerical values when set to always', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2020-02-02',\n numeric: 'always',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.numeric).toBe('always');\n expect(await specPage.root.displayedMessageValue()).toBe('1 day');\n });\n });\n\n describe('sync', () => {\n it('is true by default', async () => {\n props = { date: '2020-02-01' };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.sync).toBe(true);\n });\n it('can be set to false', async () => {\n props = { sync: false };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.sync).toBe(false);\n });\n it('is automatically disabled if date prop is invalid', async () => {\n props = { date: '02-01-2020T00:00:00Z' };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toBe('Invalid Date Provided');\n expect(specPage.root.sync).toBe(false);\n });\n });\n\n describe('unit', () => {\n it('forces the message to only use the provided unit', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n unit: 'year',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.unit).toBe('year');\n expect(await specPage.root.displayedMessageValue()).toContain('yr');\n\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n unit: 'month',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.unit).toBe('month');\n expect(await specPage.root.displayedMessageValue()).toContain('mo');\n });\n });\n });\n\n describe('trimSuffix', () => {\n it('does NOT trim the suffix if baseDate is invalid or not provided', async () => {\n props = {\n date: '2020-02-02',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toContain('ago');\n });\n\n it('trims the in/ago suffix when valid baseDate is provided', async () => {\n props = {\n date: '2020-02-02',\n baseDate: '2020-02-05',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).not.toContain('ago');\n });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"q2-relative-time-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-relative-time-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { SpecPage, newSpecPage } from '@stencil/core/testing';\nimport { evaluateA11y, getListOfStyleCompilationIssues, setup } from 'test/helpers';\nimport { Q2RelativeTime } from '../../src/components/q2-relative-time/q2-relative-time';\n\nfunction createNewSpecPage(props: {\n date?: string;\n baseDate?: string;\n sync?: boolean;\n locale?: string;\n messageFormat?: string;\n numeric?: string;\n unit?: string;\n}) {\n let htmlProps: string = '';\n Object.entries(props).forEach(([key, value]) => {\n switch (key) {\n case 'date':\n htmlProps += ` date=${value}`;\n break;\n case 'baseDate':\n htmlProps += ` base-date=${value}`;\n break;\n case 'sync':\n htmlProps += ` sync=\"${value}\"`;\n break;\n case 'locale':\n htmlProps += ` locale=${value}`;\n break;\n case 'messageFormat':\n htmlProps += ` message-format=${value}`;\n break;\n case 'numeric':\n htmlProps += ` numeric=\"${value}\"`;\n break;\n case 'unit':\n htmlProps += ` unit=${value}`;\n break;\n default:\n break;\n }\n });\n\n return newSpecPage({\n components: [Q2RelativeTime],\n html: `<q2-relative-time ${htmlProps}></q2-relative-time>`,\n });\n}\n\ndescribe('q2-relative-time', () => {\n let specPage: SpecPage;\n let props: {\n date?: string;\n baseDate?: string;\n sync?: boolean;\n locale?: string;\n messageFormat?: string;\n numeric?: string;\n unit?: string;\n };\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-relative-time></q2-relative-time>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-relative-time')).toHaveLength(0);\n });\n describe('[A11y] guideline compliance', () => {\n it('Does not have accessibility violations', async () => {\n const page = await setup({ html: `<q2-relative-time date='2020-02-01' />` });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n\n describe('Configuration', () => {\n it('renders with minimal configuration', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root).toEqualHtml(`\n <q2-relative-time\n date=\"2020-02-01\"\n base-date=\"2024-05-14\"\n locale=\"en-US\"\n message-format=\"short\"\n numeric=\"auto\">\n <mock:shadow-root>\n <time datetime=\"4 yr.\">\n 4 yr.\n </time>\n </mock:shadow-root>\n </q2-relative-time>\n `);\n });\n\n it('renders with full configuration', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n sync: false,\n locale: 'en-US',\n messageFormat: 'long',\n numeric: 'always',\n unit: 'year',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root).toEqualHtml(`\n <q2-relative-time\n date=\"2020-02-01\"\n base-date=\"2024-05-14\"\n sync=\"false\"\n locale=\"en-US\"\n message-format=\"long\"\n numeric=\"always\"\n unit=\"year\">\n <mock:shadow-root>\n <time datetime=\"4 years\">\n 4 years\n </time>\n </mock:shadow-root>\n </q2-relative-time>\n `);\n });\n });\n\n describe('Props', () => {\n describe('baseDate', () => {\n describe('when date is NOT provided', () => {\n it('it renders with the default baseDate', async () => {\n props = { baseDate: '2020-02-01' };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toBe('Invalid Date Provided');\n });\n });\n describe('when valid baseDate AND date are provided', () => {\n it('renders with provided baseDate', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.baseDate).toBe('2024-05-14');\n expect(await specPage.root.displayedMessageValue()).toBe('4 yr.');\n });\n it('trims the suffixes from displayedMessage', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toBe('4 yr.');\n });\n it(\"does not use the provided baseDate if it's invalid\", async () => {\n props = {\n date: '2020-02-01T00:00:00Z',\n baseDate: '02-03-2020T00:00:00Z',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).not.toBe('2 days ago');\n });\n it('displays only numeric messages', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2020-02-02',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toBe('1 day');\n });\n });\n });\n\n describe('date', () => {\n it(\"does not use the provided date if it's invalid\", async () => {\n props = { date: '02-01-2020T00:00:00Z' };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.date).not.toBe('2020-02-01T00:00:00');\n expect(await specPage.root.displayedMessageValue()).toBe('Invalid Date Provided');\n });\n it('should render with valid date', async () => {\n props = { date: '2020-02-01T00:00:00Z' };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.date).toBe('2020-02-01T00:00:00Z');\n });\n });\n\n describe('locale', () => {\n it('should render with given locale', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n locale: 'fr',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.locale).toBe('fr');\n expect(await specPage.root.displayedMessageValue()).toBe('il y a 4 a');\n });\n });\n\n describe('messageFormat', () => {\n describe('long', () => {\n it('should display the message in long form', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n messageFormat: 'long',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.messageFormat).toBe('long');\n expect(await specPage.root.displayedMessageValue()).toBe('4 years');\n });\n });\n describe('short', () => {\n it('should display the message in short form', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n messageFormat: 'short',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.messageFormat).toBe('short');\n expect(await specPage.root.displayedMessageValue()).toBe('4 yr.');\n });\n });\n describe('narrow', () => {\n it('should display the message in narrow form', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n messageFormat: 'narrow',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.messageFormat).toBe('narrow');\n expect(await specPage.root.displayedMessageValue()).toBe('4y');\n });\n });\n });\n\n describe('numeric', () => {\n it('is auto by default', async () => {\n props = {\n date: '2020-02-01',\n numeric: 'auto',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.numeric).toBe('auto');\n });\n\n it('only displays numerical values when set to always', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2020-02-02',\n numeric: 'always',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.numeric).toBe('always');\n expect(await specPage.root.displayedMessageValue()).toBe('1 day');\n });\n });\n\n describe('sync', () => {\n it('is true by default', async () => {\n props = { date: '2020-02-01' };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.sync).toBe(true);\n });\n it('can be set to false', async () => {\n props = { sync: false };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.sync).toBe(false);\n });\n it('is automatically disabled if date prop is invalid', async () => {\n props = { date: '02-01-2020T00:00:00Z' };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toBe('Invalid Date Provided');\n expect(specPage.root.sync).toBe(false);\n });\n });\n\n describe('unit', () => {\n it('forces the message to only use the provided unit', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n unit: 'year',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.unit).toBe('year');\n expect(await specPage.root.displayedMessageValue()).toContain('yr');\n\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n unit: 'month',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.unit).toBe('month');\n expect(await specPage.root.displayedMessageValue()).toContain('mo');\n });\n });\n });\n\n describe('trimSuffix', () => {\n it('does NOT trim the suffix if baseDate is invalid or not provided', async () => {\n props = {\n date: '2020-02-02',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toContain('ago');\n });\n\n it('trims the in/ago suffix when valid baseDate is provided', async () => {\n props = {\n date: '2020-02-02',\n baseDate: '2020-02-05',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).not.toContain('ago');\n });\n });\n});\n"]}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
import { setTestStrings, setup, dispatchEvent } from "../helpers";
|
|
1
|
+
import { setTestStrings, setup, dispatchEvent, getListOfStyleCompilationIssues } from "../helpers";
|
|
2
2
|
describe('q2-section', () => {
|
|
3
|
+
it('properly compiles CSS vars and functions', async () => {
|
|
4
|
+
const page = await setup({ html: '<q2-section></q2-section>' });
|
|
5
|
+
expect(await getListOfStyleCompilationIssues(page, 'q2-section')).toHaveLength(0);
|
|
6
|
+
});
|
|
3
7
|
it('renders the header and content area', async function () {
|
|
4
8
|
const page = await setup({
|
|
5
9
|
html: `<q2-section>Some content to provide height.</q2-section>`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-section-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-section-test.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAElE,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,qCAAqC,EAAE,KAAK;QAC3C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;YACrB,IAAI,EAAE,0DAA0D;SACnE,CAAC,CAAC;QAEH,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC/E,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAEjF,MAAM,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC5C,MAAM,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7C,MAAM,CAAC,qBAAqB,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QAC/F,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,CAAC,qBAAqB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAErE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE;YAC3D,OAAQ,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,kBAAkB,CAAiB,CAAC,KAAK,CAAC,gBAAgB,CAC/F,QAAQ,CACX,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,uCAAuC;QACvC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAElC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9C,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACzC,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE;YAC5F,OAAO;gBACH,oBAAoB,EAAG,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,kBAAkB,CAAiB,CAAC,KAAK;qBAC5F,MAAM;gBACX,oBAAoB,EAAG,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAiB,CAAC,YAAY;aACnG,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,GAAG,oBAAoB,IAAI,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;YACrB,IAAI,EAAE,uEAAuE;SAChF,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC3D,IAAI,aAAa,GAAG,MAAM,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACrD,IAAI,YAAY,GAAG,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAC;QACnD,IAAI,aAAa,GAAG,MAAM,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAErD,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAEnD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,aAAa,GAAG,MAAM,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACjD,YAAY,GAAG,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC/C,aAAa,GAAG,MAAM,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAEjD,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACpB,EAAE,CAAC,uDAAuD,EAAE,KAAK;YAC7D,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC,CAAC;YAEhE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAChE,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAC/E,IAAI,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;YAExE,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YAErD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9C,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YACpD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5B,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;YAEpE,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAC1D,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK;YAC/D,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;gBACrB,IAAI,EAAE;;;;qBAID;aACR,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;YAC1E,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;YAEhC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE;gBAC5D,OACI,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,gCAAgC,CACpE,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YACxC,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YAExD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAChE,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YAEjD,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;YAC3F,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAEvE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9C,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACrC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,MAAM,CAAC,aAAa,CAAC,CAAC,mBAAmB,EAAE,CAAC;YAE5C,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE;gBAC9D,OAAO,CAEC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,gCAAgC,CACpE,CAAC,gBAAgB,EAAE,CAAC,MAAM,GAAG,CAAC,CAClC,CAAC;YACN,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACtC,KAAK,UAAU,2BAA2B,CAAC,IAAyB;YAChE,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;gBACrB,IAAI,EAAE;;;;;;;;iBAQL;aACJ,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9C,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC1D,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAC1E,IAAI,oBAAoB,GAAG,MAAM,cAAc,CAAC,gBAAgB,EAAE,CAAC;YACnE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,IAAI,CAClC,kBAAkB,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,EAAE,CACvE,CAAC;YAEF,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAChD,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;YAC3D,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACrD,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEnD,0BAA0B;YAC1B,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACpD,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;YACvD,oBAAoB,GAAG,MAAM,cAAc,CAAC,gBAAgB,EAAE,CAAC;YAC/D,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAEjE,MAAM,CAAC,cAAc,CAAC,CAAC,yBAAyB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAErE,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAC,EAAE,eAAe,CAAC,CAAC;YAE/E,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACpD,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;YAC3D,oBAAoB,GAAG,MAAM,cAAc,CAAC,gBAAgB,EAAE,CAAC;YAC/D,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzD,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAEjE,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACpD,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;YACvD,oBAAoB,GAAG,MAAM,cAAc,CAAC,gBAAgB,EAAE,CAAC;YAC/D,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAEjE,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAC,EAAE,eAAe,CAAC,CAAC;YAE/E,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAChD,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;YAC3D,oBAAoB,GAAG,MAAM,cAAc,CAAC,gBAAgB,EAAE,CAAC;YAC/D,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACrD,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEnD,MAAM,CAAC,cAAc,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC5C,MAAM,2BAA2B,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC5C,MAAM,2BAA2B,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;YACzB,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;gBACjD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;oBACrB,IAAI,EAAE,8DAA8D;iBACvE,CAAC,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC9C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBAC3D,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBAEjF,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC;gBAC/B,MAAM,CAAC,MAAM,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;gBACvE,MAAM,CAAC,MAAM,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACrE,MAAM,CAAC,MAAM,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;gBAEtF,MAAM,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBAC5C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,MAAM,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;gBACvE,MAAM,CAAC,MAAM,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;gBAClD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;oBACrB,IAAI,EAAE,kDAAkD;iBAC3D,CAAC,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBAE3D,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC;YAClC,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;gBAC3C,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;oBACzE,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;wBACrB,IAAI,EAAE;;;;qBAIT;qBACA,CAAC,CAAC;oBAEH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;oBAC1E,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAEhC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;oBAC/D,MAAM,CAAC,aAAa,CAAC,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC5F,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;oBACvE,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;wBACrB,IAAI,EAAE;;;;qBAIT;qBACA,CAAC,CAAC;oBAEH,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;oBAC/D,MAAM,CAAC,aAAa,CAAC,CAAC,iBAAiB,CAAC;wBACpC,KAAK,EAAE,2CAA2C;wBAClD,YAAY,EAAE,EAAE;qBACnB,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAC9B,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;gBACjD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;oBACrB,IAAI,EAAE,+EAA+E;iBACxF,CAAC,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBAE3D,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC;YAClC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;gBAClD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;oBACrB,IAAI,EAAE,8DAA8D;iBACvE,CAAC,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBAE3D,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC;YACnC,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;YACtB,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;gBAC1D,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;oBACrB,IAAI,EAAE,uEAAuE;iBAChF,CAAC,CAAC;gBACH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBAC1E,MAAM,oBAAoB,GAAG,MAAM,cAAc,CAAC,gBAAgB,EAAE,CAAC;gBACrE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;gBAC5D,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC,gBAAgB,EAAE,CAAC;gBAC3D,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;gBACpD,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;gBAC3D,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACtD,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACzD,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gBACjE,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;gBACnE,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;oBACrB,IAAI,EAAE,+EAA+E;iBACxF,CAAC,CAAC;gBACH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBAC1E,MAAM,oBAAoB,GAAG,MAAM,cAAc,CAAC,gBAAgB,EAAE,CAAC;gBACrE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;gBAC5D,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC,gBAAgB,EAAE,CAAC;gBAC3D,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;gBAChD,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;gBAC3D,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACrD,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACxD,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACnD,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;gBACnE,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;oBACrB,IAAI,EAAE,8DAA8D;iBACvE,CAAC,CAAC;gBACH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBAC1E,MAAM,oBAAoB,GAAG,MAAM,cAAc,CAAC,gBAAgB,EAAE,CAAC;gBACrE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;gBAC5D,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC,gBAAgB,EAAE,CAAC;gBAC3D,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;gBAChD,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;gBAC3D,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACrD,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACxD,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACnD,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK;QACtD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;YACrB,IAAI,EAAE,4DAA4D;SACrE,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAE/B,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QACtD,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QACxD,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;YACnC,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,YAAY,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9C,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACzC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;QAE7D,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/C,gEAAgE;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK;QAC1C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;YACrB,IAAI,EAAE,4DAA4D;SACrE,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAE/B,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACpD,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QACxD,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;YACnC,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,YAAY,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9C,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACzC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAC,EAAE,eAAe,CAAC,CAAC;QAE/E,MAAM,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEjD,4CAA4C;QAC5C,+DAA+D;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK;QACxC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC,CAAC;QAEhE,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAE/B,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QACxD,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,YAAY,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,uBAAuB,CAAC,EAAE,YAAY,CAAC,CAAC;QACjF,MAAM,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK;QAC9B,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC,CAAC;QAEhE,MAAM,cAAc,CAAC,IAAI,EAAE;YACvB,kBAAkB,EAAE,YAAY;SACnC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9C,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QACjD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QAE9E,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,KAAK;QAC5B,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;YACrB,IAAI,EAAE,uCAAuC;SAChD,CAAC,CAAC;QACH,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAE1D,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAElC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9C,OAAO,CAAC,YAAY,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAEtD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAChC,MAAM,IAAI,GAAG,yCAAyC,CAAC;QAEvD,EAAE,CAAC,sCAAsC,EAAE,KAAK;YAC5C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YACnC,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE;gBAClD,OAAO,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACrE,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,yCAAyC,EAAE,KAAK;YAC/C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9C,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACpC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE;gBAClD,OAAO,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACrE,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { setTestStrings, setup, dispatchEvent } from '../helpers';\n\ndescribe('q2-section', () => {\n it('renders the header and content area', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-section>Some content to provide height.</q2-section>`,\n });\n\n const sectionHeaderContent = await page.find('q2-section >>> .header-content');\n const sectionContentWrapper = await page.find('q2-section >>> .content-wrapper');\n\n expect(sectionHeaderContent).not.toBeNull();\n expect(sectionContentWrapper).not.toBeNull();\n expect(sectionContentWrapper.getAttribute('aria-labelledby')).toEqual(sectionHeaderContent.id);\n expect(sectionContentWrapper.id).toEqual('content');\n expect(sectionContentWrapper.getAttribute('role')).toEqual('region');\n\n const wrapperHeight = await page.$eval('q2-section', element => {\n return (element.shadowRoot.querySelector('.content-wrapper') as HTMLElement).style.getPropertyValue(\n 'height'\n );\n });\n\n // height not set since not collapsible\n expect(wrapperHeight).toEqual('');\n\n const section = await page.find('q2-section');\n section.setProperty('collapsible', true);\n section.setProperty('expanded', true);\n await page.waitForChanges();\n\n const { contentWrapperHeight, yieldedContentHeight } = await page.$eval('q2-section', element => {\n return {\n contentWrapperHeight: (element.shadowRoot.querySelector('.content-wrapper') as HTMLElement).style\n .height,\n yieldedContentHeight: (element.shadowRoot.querySelector('.content') as HTMLElement).offsetHeight,\n };\n });\n\n expect(contentWrapperHeight).toEqual(`${yieldedContentHeight}px`);\n });\n\n it('applies print styles', async () => {\n const page = await setup({\n html: `<q2-section collapsible expanded label=\"Section Header\"></q2-section>`,\n });\n const section = await page.find('q2-section');\n const header = await page.find('q2-section >>> header');\n const content = await page.find('q2-section >>> .content');\n let sectionStyles = await section.getComputedStyle();\n let headerStyles = await header.getComputedStyle();\n let contentStyles = await content.getComputedStyle();\n\n expect(sectionStyles.margin).toEqual('15px');\n expect(headerStyles.padding).toEqual('0px 15px');\n expect(contentStyles.padding).toEqual('10px 15px');\n\n page.emulateMediaType('print');\n await page.waitForChanges();\n\n sectionStyles = await section.getComputedStyle();\n headerStyles = await header.getComputedStyle();\n contentStyles = await content.getComputedStyle();\n\n expect(sectionStyles.margin).toEqual('15px 0px');\n expect(headerStyles.padding).toEqual('0px');\n expect(contentStyles.padding).toEqual('0px');\n });\n\n describe('Header', () => {\n it('renders the standard label prop as the section header', async function (): Promise<void> {\n const page = await setup({ html: `<q2-section></q2-section>` });\n\n const sectionWrapper = await page.find('q2-section >>> header');\n const sectionHeaderContent = await page.find('q2-section >>> .header-content');\n let sectionTitle = await page.find('q2-section >>> .header-content h2');\n\n expect(sectionTitle).toBeNull();\n expect(sectionWrapper).not.toHaveClass('has-header');\n\n const section = await page.find('q2-section');\n await section.setProperty('label', 'Section Title');\n await page.waitForChanges();\n sectionTitle = await page.find('q2-section >>> .header-content h2');\n\n expect(sectionTitle).not.toBeNull();\n expect(sectionTitle.textContent).toEqual('Section Title');\n expect(sectionHeaderContent.id).toEqual('title');\n expect(sectionWrapper).toHaveClass('has-header');\n });\n\n it('renders custom header content in place of section title', async function (): Promise<void> {\n const page = await setup({\n html: `\n <q2-section>\n <h3 slot=\"q2-section-header\">Custom Header Content</h3>\n </q2-section>\n `,\n });\n\n const sectionTitle = await page.find('q2-section >>> .header-content h2');\n expect(sectionTitle).toBeNull();\n\n const headerSlotText = await page.$eval('q2-section', element => {\n return (\n element.shadowRoot.querySelector('slot[name=\"q2-section-header\"]') as HTMLSlotElement\n ).assignedElements()[0].textContent;\n });\n\n expect(headerSlotText).toEqual('Custom Header Content');\n\n const sectionWrapper = await page.find('q2-section >>> header');\n expect(sectionWrapper).toHaveClass('has-header');\n\n const sectionHeaderSlot = await page.find('q2-section >>> slot[name=\"q2-section-header\"]');\n const slotChangeSpy = await sectionHeaderSlot.spyOnEvent('slotchange');\n\n const section = await page.find('q2-section');\n section.setProperty('innerHTML', '');\n await page.waitForChanges();\n\n expect(slotChangeSpy).toHaveReceivedEvent();\n\n const hasCustomContent = await page.$eval('q2-section', element => {\n return (\n (\n element.shadowRoot.querySelector('slot[name=\"q2-section-header\"]') as HTMLSlotElement\n ).assignedElements().length > 0\n );\n });\n\n expect(hasCustomContent).toBe(false);\n expect(sectionWrapper).not.toHaveClass('has-header');\n });\n });\n\n describe('Collapsing and Expanding', () => {\n async function checkCollapsingAndExpanding(type: 'header' | 'toggle') {\n const page = await setup({\n html: `\n <q2-section collapsible label=\"Section Header\">\n <ul>\n <li>Item 1</li>\n <li>Item 2</li>\n <li>Item 3</li>\n </ul>\n </q2-section>\n `,\n });\n const section = await page.find('q2-section');\n const changeEventSpy = await section.spyOnEvent('change');\n const contentWrapper = await page.find('q2-section >>> .content-wrapper');\n let contentWrapperStyles = await contentWrapper.getComputedStyle();\n const elementToClick = await page.find(\n `q2-section >>> ${type === 'toggle' ? 'q2-btn' : '.header-content'}`\n );\n\n expect(contentWrapper).toHaveClass('is-closed');\n expect(contentWrapper).not.toHaveClass('is-transitioning');\n expect(contentWrapperStyles.display).toEqual('none');\n expect(contentWrapperStyles.overflow).toEqual('hidden');\n expect(contentWrapperStyles.height).toEqual('0px');\n\n // trigger default handler\n await elementToClick.click();\n await page.waitForChanges();\n\n expect(contentWrapper).not.toHaveClass('is-closed');\n expect(contentWrapper).toHaveClass('is-transitioning');\n contentWrapperStyles = await contentWrapper.getComputedStyle();\n expect(contentWrapperStyles.display).toEqual('block');\n expect(contentWrapperStyles.overflow).toEqual('hidden');\n expect(parseInt(contentWrapperStyles.height)).toBeGreaterThan(0);\n\n expect(changeEventSpy).toHaveReceivedEventDetail({ expanded: true });\n\n await dispatchEvent(page, ['q2-section', '.content-wrapper'], 'transitionend');\n\n expect(contentWrapper).not.toHaveClass('is-closed');\n expect(contentWrapper).not.toHaveClass('is-transitioning');\n contentWrapperStyles = await contentWrapper.getComputedStyle();\n expect(contentWrapperStyles.display).toEqual('block');\n expect(contentWrapperStyles.overflow).toEqual('visible');\n expect(parseInt(contentWrapperStyles.height)).toBeGreaterThan(0);\n\n await elementToClick.click();\n await page.waitForChanges();\n\n expect(contentWrapper).not.toHaveClass('is-closed');\n expect(contentWrapper).toHaveClass('is-transitioning');\n contentWrapperStyles = await contentWrapper.getComputedStyle();\n expect(contentWrapperStyles.display).toEqual('block');\n expect(contentWrapperStyles.overflow).toEqual('hidden');\n expect(parseInt(contentWrapperStyles.height)).toBeGreaterThan(0);\n\n await dispatchEvent(page, ['q2-section', '.content-wrapper'], 'transitionend');\n\n expect(contentWrapper).toHaveClass('is-closed');\n expect(contentWrapper).not.toHaveClass('is-transitioning');\n contentWrapperStyles = await contentWrapper.getComputedStyle();\n expect(contentWrapperStyles.display).toEqual('none');\n expect(contentWrapperStyles.overflow).toEqual('hidden');\n expect(contentWrapperStyles.height).toEqual('0px');\n\n expect(changeEventSpy).toHaveReceivedEventTimes(2);\n }\n\n it('expands when header is clicked', async () => {\n await checkCollapsingAndExpanding('header');\n });\n\n it('expands when toggle is clicked', async () => {\n await checkCollapsingAndExpanding('toggle');\n });\n });\n\n describe('Props', () => {\n describe('collapsible', () => {\n it('renders the proper markup when true', async () => {\n const page = await setup({\n html: `<q2-section collapsible label=\"Section Header\"></q2-section>`,\n });\n const section = await page.find('q2-section');\n const toggleBtn = await page.find('q2-section >>> q2-btn');\n const sectionContentWrapper = await page.find('q2-section >>> .content-wrapper');\n\n expect(toggleBtn).toBeTruthy();\n expect(await toggleBtn.getProperty('label')).toEqual('Section Header');\n expect(await toggleBtn.getProperty('ariaExpanded')).toEqual('false');\n expect(await toggleBtn.getProperty('ariaControls')).toEqual(sectionContentWrapper.id);\n\n await section.setProperty('expanded', true);\n await page.waitForChanges();\n\n expect(await toggleBtn.getProperty('label')).toEqual('Section Header');\n expect(await toggleBtn.getProperty('ariaExpanded')).toEqual('true');\n });\n\n it('renders the proper markup when false', async () => {\n const page = await setup({\n html: `<q2-section label=\"Section Header\"></q2-section>`,\n });\n const toggleBtn = await page.find('q2-section >>> q2-btn');\n\n expect(toggleBtn).toBeFalsy();\n });\n\n describe('when custom header is defined', () => {\n it('uses the label attribute for the label of the toggle button', async () => {\n const page = await setup({\n html: `\n <q2-section label=\"My Custom Label\" collapsible>\n <h3 slot=\"q2-section-header\">Custom Header Content</h3>\n </q2-section>\n `,\n });\n\n const sectionTitle = await page.find('q2-section >>> .header-content h2');\n expect(sectionTitle).toBeNull();\n\n const sectionToggle = await page.find('q2-section >>> q2-btn');\n expect(sectionToggle).toEqualAttributes({ label: 'My Custom Label', 'hide-label': '' });\n });\n\n it('defaults the label of the toggle when one is not provided', async () => {\n const page = await setup({\n html: `\n <q2-section collapsible>\n <h3 slot=\"q2-section-header\">Custom Header Content</h3>\n </q2-section>\n `,\n });\n\n const sectionToggle = await page.find('q2-section >>> q2-btn');\n expect(sectionToggle).toEqualAttributes({\n label: 'tecton.element.section.defaultToggleLabel',\n 'hide-label': '',\n });\n });\n });\n });\n\n describe('no-collapse-icon', () => {\n it('renders the proper markup when true', async () => {\n const page = await setup({\n html: `<q2-section collapsible no-collapse-icon label=\"Section Header\"></q2-section>`,\n });\n const toggleBtn = await page.find('q2-section >>> q2-btn');\n\n expect(toggleBtn).toBeFalsy();\n });\n\n it('renders the proper markup when false', async () => {\n const page = await setup({\n html: `<q2-section collapsible label=\"Section Header\"></q2-section>`,\n });\n const toggleBtn = await page.find('q2-section >>> q2-btn');\n\n expect(toggleBtn).toBeTruthy();\n });\n });\n\n describe('expanded', () => {\n it(\"starts expanded when 'expanded' prop is true\", async () => {\n const page = await setup({\n html: `<q2-section collapsible expanded label=\"Section Header\"></q2-section>`,\n });\n const contentWrapper = await page.find('q2-section >>> .content-wrapper');\n const contentWrapperStyles = await contentWrapper.getComputedStyle();\n const caretIcon = await page.find('q2-section >>> q2-icon');\n const caretIconStyles = await caretIcon.getComputedStyle();\n expect(contentWrapper).not.toHaveClass('is-closed');\n expect(contentWrapper).not.toHaveClass('is-transitioning');\n expect(contentWrapperStyles.display).toEqual('block');\n expect(contentWrapperStyles.overflow).toEqual('visible');\n expect(parseInt(contentWrapperStyles.height)).toBeGreaterThan(0);\n expect(caretIconStyles.transform).toEqual('none');\n });\n\n it(\"starts collapsed when 'expanded' prop is set to false\", async () => {\n const page = await setup({\n html: `<q2-section collapsible expanded=\"false\" label=\"Section Header\"></q2-section>`,\n });\n const contentWrapper = await page.find('q2-section >>> .content-wrapper');\n const contentWrapperStyles = await contentWrapper.getComputedStyle();\n const caretIcon = await page.find('q2-section >>> q2-icon');\n const caretIconStyles = await caretIcon.getComputedStyle();\n expect(contentWrapper).toHaveClass('is-closed');\n expect(contentWrapper).not.toHaveClass('is-transitioning');\n expect(contentWrapperStyles.display).toEqual('none');\n expect(contentWrapperStyles.overflow).toEqual('hidden');\n expect(contentWrapperStyles.height).toEqual('0px');\n expect(caretIconStyles.transform).not.toEqual('none');\n });\n\n it(\"starts collapsed when 'expanded' prop is not provided\", async () => {\n const page = await setup({\n html: `<q2-section collapsible label=\"Section Header\"></q2-section>`,\n });\n const contentWrapper = await page.find('q2-section >>> .content-wrapper');\n const contentWrapperStyles = await contentWrapper.getComputedStyle();\n const caretIcon = await page.find('q2-section >>> q2-icon');\n const caretIconStyles = await caretIcon.getComputedStyle();\n expect(contentWrapper).toHaveClass('is-closed');\n expect(contentWrapper).not.toHaveClass('is-transitioning');\n expect(contentWrapperStyles.display).toEqual('none');\n expect(contentWrapperStyles.overflow).toEqual('hidden');\n expect(contentWrapperStyles.height).toEqual('0px');\n expect(caretIconStyles.transform).not.toEqual('none');\n });\n });\n });\n\n it('sets interval to resize iframe on toggle start', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-section expanded>Some content for height.</q2-section>`,\n });\n const setInterval = jest.fn();\n const clearInterval = jest.fn();\n const resizeIframe = jest.fn();\n\n await page.exposeFunction('setInterval', setInterval);\n await page.exposeFunction('clearInterval', clearInterval);\n await page.exposeFunction('resizeIframe', resizeIframe);\n await page.evaluate(() => {\n this.setInterval = setInterval;\n this.clearInterval = clearInterval;\n this.TectonElements.resizeIframe = resizeIframe;\n });\n\n const section = await page.find('q2-section');\n section.setProperty('collapsible', true);\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-section', 'q2-btn'], 'click');\n\n expect(clearInterval).not.toBeCalled();\n expect(setInterval).toBeCalledTimes(1);\n expect(setInterval.mock.calls[0]).toContain(5);\n // expect(setInterval.mock.calls[0]).toEqual([resizeIframe, 5]);\n });\n\n it('executes handler on transition end', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-section expanded>Some content for height.</q2-section>`,\n });\n const setTimeout = jest.fn();\n const clearInterval = jest.fn();\n const resizeIframe = jest.fn();\n\n await page.exposeFunction('setTimeout', setTimeout);\n await page.exposeFunction('clearInterval', clearInterval);\n await page.exposeFunction('resizeIframe', resizeIframe);\n await page.evaluate(() => {\n this.setTimeout = setTimeout;\n this.clearInterval = clearInterval;\n this.TectonElements.resizeIframe = resizeIframe;\n });\n\n const section = await page.find('q2-section');\n section.setProperty('collapsible', true);\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-section', '.content-wrapper'], 'transitionend');\n\n expect(setTimeout).toBeCalledTimes(1);\n expect(setTimeout.mock.calls[0]).toContain(1000);\n\n // expect(clearInterval).toBeCalledTimes(1);\n // expect(clearInterval.mock.calls[0]).toEqual([resizeIframe]);\n });\n\n it('calls resizeIframe on slotchange', async function (): Promise<void> {\n const page = await setup({ html: `<q2-section></q2-section>` });\n\n const resizeIframe = jest.fn();\n\n await page.exposeFunction('resizeIframe', resizeIframe);\n await page.evaluate(() => {\n this.TectonElements.resizeIframe = resizeIframe;\n });\n\n expect(resizeIframe).toHaveBeenCalledTimes(0);\n await dispatchEvent(page, ['q2-section', '.content-wrapper slot'], 'slotchange');\n expect(resizeIframe).toHaveBeenCalledTimes(1);\n });\n\n it('localizes label string', async function (): Promise<void> {\n const page = await setup({ html: `<q2-section></q2-section>` });\n\n await setTestStrings(page, {\n 'q2-section.label': 'Title Text',\n });\n\n const section = await page.find('q2-section');\n section.setProperty('label', 'q2-section.label');\n await page.waitForChanges();\n\n const sectionTitle = await page.find('q2-section >>> .header-content .title');\n\n expect(sectionTitle.innerText).toEqual('Title Text');\n });\n\n it('hides chevron button', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-section collapsible></q2-section>`,\n });\n let buttons = await page.findAll('q2-section >>> q2-btn');\n\n expect(buttons.length).toEqual(1);\n\n const section = await page.find('q2-section');\n section.setAttribute('no-collapse-icon', true);\n await page.waitForChanges();\n\n buttons = await page.findAll('q2-section >>> q2-btn');\n\n expect(buttons.length).toEqual(0);\n });\n\n describe('focus transferring', () => {\n const html = `<q2-section><h1>Hello</h1></q2-section>`;\n\n it('focuses when focus event dispatched ', async function (): Promise<void> {\n const page = await setup({ html });\n await dispatchEvent(page, ['q2-section'], 'focus');\n const contained = await page.$eval('q2-section', el => {\n return el.shadowRoot.activeElement.classList.contains('content');\n });\n expect(contained).toBe(true);\n });\n it('focuses when focus event method called ', async function (): Promise<void> {\n const page = await setup({ html });\n const section = await page.find('q2-section');\n await section.triggerEvent('focus');\n await page.waitForChanges();\n const contained = await page.$eval('q2-section', el => {\n return el.shadowRoot.activeElement.classList.contains('content');\n });\n expect(contained).toBe(true);\n });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"q2-section-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-section-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { setTestStrings, setup, dispatchEvent, getListOfStyleCompilationIssues } from '../helpers';\n\ndescribe('q2-section', () => {\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-section></q2-section>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-section')).toHaveLength(0);\n });\n\n it('renders the header and content area', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-section>Some content to provide height.</q2-section>`,\n });\n\n const sectionHeaderContent = await page.find('q2-section >>> .header-content');\n const sectionContentWrapper = await page.find('q2-section >>> .content-wrapper');\n\n expect(sectionHeaderContent).not.toBeNull();\n expect(sectionContentWrapper).not.toBeNull();\n expect(sectionContentWrapper.getAttribute('aria-labelledby')).toEqual(sectionHeaderContent.id);\n expect(sectionContentWrapper.id).toEqual('content');\n expect(sectionContentWrapper.getAttribute('role')).toEqual('region');\n\n const wrapperHeight = await page.$eval('q2-section', element => {\n return (element.shadowRoot.querySelector('.content-wrapper') as HTMLElement).style.getPropertyValue(\n 'height'\n );\n });\n\n // height not set since not collapsible\n expect(wrapperHeight).toEqual('');\n\n const section = await page.find('q2-section');\n section.setProperty('collapsible', true);\n section.setProperty('expanded', true);\n await page.waitForChanges();\n\n const { contentWrapperHeight, yieldedContentHeight } = await page.$eval('q2-section', element => {\n return {\n contentWrapperHeight: (element.shadowRoot.querySelector('.content-wrapper') as HTMLElement).style\n .height,\n yieldedContentHeight: (element.shadowRoot.querySelector('.content') as HTMLElement).offsetHeight,\n };\n });\n\n expect(contentWrapperHeight).toEqual(`${yieldedContentHeight}px`);\n });\n\n it('applies print styles', async () => {\n const page = await setup({\n html: `<q2-section collapsible expanded label=\"Section Header\"></q2-section>`,\n });\n const section = await page.find('q2-section');\n const header = await page.find('q2-section >>> header');\n const content = await page.find('q2-section >>> .content');\n let sectionStyles = await section.getComputedStyle();\n let headerStyles = await header.getComputedStyle();\n let contentStyles = await content.getComputedStyle();\n\n expect(sectionStyles.margin).toEqual('15px');\n expect(headerStyles.padding).toEqual('0px 15px');\n expect(contentStyles.padding).toEqual('10px 15px');\n\n page.emulateMediaType('print');\n await page.waitForChanges();\n\n sectionStyles = await section.getComputedStyle();\n headerStyles = await header.getComputedStyle();\n contentStyles = await content.getComputedStyle();\n\n expect(sectionStyles.margin).toEqual('15px 0px');\n expect(headerStyles.padding).toEqual('0px');\n expect(contentStyles.padding).toEqual('0px');\n });\n\n describe('Header', () => {\n it('renders the standard label prop as the section header', async function (): Promise<void> {\n const page = await setup({ html: `<q2-section></q2-section>` });\n\n const sectionWrapper = await page.find('q2-section >>> header');\n const sectionHeaderContent = await page.find('q2-section >>> .header-content');\n let sectionTitle = await page.find('q2-section >>> .header-content h2');\n\n expect(sectionTitle).toBeNull();\n expect(sectionWrapper).not.toHaveClass('has-header');\n\n const section = await page.find('q2-section');\n await section.setProperty('label', 'Section Title');\n await page.waitForChanges();\n sectionTitle = await page.find('q2-section >>> .header-content h2');\n\n expect(sectionTitle).not.toBeNull();\n expect(sectionTitle.textContent).toEqual('Section Title');\n expect(sectionHeaderContent.id).toEqual('title');\n expect(sectionWrapper).toHaveClass('has-header');\n });\n\n it('renders custom header content in place of section title', async function (): Promise<void> {\n const page = await setup({\n html: `\n <q2-section>\n <h3 slot=\"q2-section-header\">Custom Header Content</h3>\n </q2-section>\n `,\n });\n\n const sectionTitle = await page.find('q2-section >>> .header-content h2');\n expect(sectionTitle).toBeNull();\n\n const headerSlotText = await page.$eval('q2-section', element => {\n return (\n element.shadowRoot.querySelector('slot[name=\"q2-section-header\"]') as HTMLSlotElement\n ).assignedElements()[0].textContent;\n });\n\n expect(headerSlotText).toEqual('Custom Header Content');\n\n const sectionWrapper = await page.find('q2-section >>> header');\n expect(sectionWrapper).toHaveClass('has-header');\n\n const sectionHeaderSlot = await page.find('q2-section >>> slot[name=\"q2-section-header\"]');\n const slotChangeSpy = await sectionHeaderSlot.spyOnEvent('slotchange');\n\n const section = await page.find('q2-section');\n section.setProperty('innerHTML', '');\n await page.waitForChanges();\n\n expect(slotChangeSpy).toHaveReceivedEvent();\n\n const hasCustomContent = await page.$eval('q2-section', element => {\n return (\n (\n element.shadowRoot.querySelector('slot[name=\"q2-section-header\"]') as HTMLSlotElement\n ).assignedElements().length > 0\n );\n });\n\n expect(hasCustomContent).toBe(false);\n expect(sectionWrapper).not.toHaveClass('has-header');\n });\n });\n\n describe('Collapsing and Expanding', () => {\n async function checkCollapsingAndExpanding(type: 'header' | 'toggle') {\n const page = await setup({\n html: `\n <q2-section collapsible label=\"Section Header\">\n <ul>\n <li>Item 1</li>\n <li>Item 2</li>\n <li>Item 3</li>\n </ul>\n </q2-section>\n `,\n });\n const section = await page.find('q2-section');\n const changeEventSpy = await section.spyOnEvent('change');\n const contentWrapper = await page.find('q2-section >>> .content-wrapper');\n let contentWrapperStyles = await contentWrapper.getComputedStyle();\n const elementToClick = await page.find(\n `q2-section >>> ${type === 'toggle' ? 'q2-btn' : '.header-content'}`\n );\n\n expect(contentWrapper).toHaveClass('is-closed');\n expect(contentWrapper).not.toHaveClass('is-transitioning');\n expect(contentWrapperStyles.display).toEqual('none');\n expect(contentWrapperStyles.overflow).toEqual('hidden');\n expect(contentWrapperStyles.height).toEqual('0px');\n\n // trigger default handler\n await elementToClick.click();\n await page.waitForChanges();\n\n expect(contentWrapper).not.toHaveClass('is-closed');\n expect(contentWrapper).toHaveClass('is-transitioning');\n contentWrapperStyles = await contentWrapper.getComputedStyle();\n expect(contentWrapperStyles.display).toEqual('block');\n expect(contentWrapperStyles.overflow).toEqual('hidden');\n expect(parseInt(contentWrapperStyles.height)).toBeGreaterThan(0);\n\n expect(changeEventSpy).toHaveReceivedEventDetail({ expanded: true });\n\n await dispatchEvent(page, ['q2-section', '.content-wrapper'], 'transitionend');\n\n expect(contentWrapper).not.toHaveClass('is-closed');\n expect(contentWrapper).not.toHaveClass('is-transitioning');\n contentWrapperStyles = await contentWrapper.getComputedStyle();\n expect(contentWrapperStyles.display).toEqual('block');\n expect(contentWrapperStyles.overflow).toEqual('visible');\n expect(parseInt(contentWrapperStyles.height)).toBeGreaterThan(0);\n\n await elementToClick.click();\n await page.waitForChanges();\n\n expect(contentWrapper).not.toHaveClass('is-closed');\n expect(contentWrapper).toHaveClass('is-transitioning');\n contentWrapperStyles = await contentWrapper.getComputedStyle();\n expect(contentWrapperStyles.display).toEqual('block');\n expect(contentWrapperStyles.overflow).toEqual('hidden');\n expect(parseInt(contentWrapperStyles.height)).toBeGreaterThan(0);\n\n await dispatchEvent(page, ['q2-section', '.content-wrapper'], 'transitionend');\n\n expect(contentWrapper).toHaveClass('is-closed');\n expect(contentWrapper).not.toHaveClass('is-transitioning');\n contentWrapperStyles = await contentWrapper.getComputedStyle();\n expect(contentWrapperStyles.display).toEqual('none');\n expect(contentWrapperStyles.overflow).toEqual('hidden');\n expect(contentWrapperStyles.height).toEqual('0px');\n\n expect(changeEventSpy).toHaveReceivedEventTimes(2);\n }\n\n it('expands when header is clicked', async () => {\n await checkCollapsingAndExpanding('header');\n });\n\n it('expands when toggle is clicked', async () => {\n await checkCollapsingAndExpanding('toggle');\n });\n });\n\n describe('Props', () => {\n describe('collapsible', () => {\n it('renders the proper markup when true', async () => {\n const page = await setup({\n html: `<q2-section collapsible label=\"Section Header\"></q2-section>`,\n });\n const section = await page.find('q2-section');\n const toggleBtn = await page.find('q2-section >>> q2-btn');\n const sectionContentWrapper = await page.find('q2-section >>> .content-wrapper');\n\n expect(toggleBtn).toBeTruthy();\n expect(await toggleBtn.getProperty('label')).toEqual('Section Header');\n expect(await toggleBtn.getProperty('ariaExpanded')).toEqual('false');\n expect(await toggleBtn.getProperty('ariaControls')).toEqual(sectionContentWrapper.id);\n\n await section.setProperty('expanded', true);\n await page.waitForChanges();\n\n expect(await toggleBtn.getProperty('label')).toEqual('Section Header');\n expect(await toggleBtn.getProperty('ariaExpanded')).toEqual('true');\n });\n\n it('renders the proper markup when false', async () => {\n const page = await setup({\n html: `<q2-section label=\"Section Header\"></q2-section>`,\n });\n const toggleBtn = await page.find('q2-section >>> q2-btn');\n\n expect(toggleBtn).toBeFalsy();\n });\n\n describe('when custom header is defined', () => {\n it('uses the label attribute for the label of the toggle button', async () => {\n const page = await setup({\n html: `\n <q2-section label=\"My Custom Label\" collapsible>\n <h3 slot=\"q2-section-header\">Custom Header Content</h3>\n </q2-section>\n `,\n });\n\n const sectionTitle = await page.find('q2-section >>> .header-content h2');\n expect(sectionTitle).toBeNull();\n\n const sectionToggle = await page.find('q2-section >>> q2-btn');\n expect(sectionToggle).toEqualAttributes({ label: 'My Custom Label', 'hide-label': '' });\n });\n\n it('defaults the label of the toggle when one is not provided', async () => {\n const page = await setup({\n html: `\n <q2-section collapsible>\n <h3 slot=\"q2-section-header\">Custom Header Content</h3>\n </q2-section>\n `,\n });\n\n const sectionToggle = await page.find('q2-section >>> q2-btn');\n expect(sectionToggle).toEqualAttributes({\n label: 'tecton.element.section.defaultToggleLabel',\n 'hide-label': '',\n });\n });\n });\n });\n\n describe('no-collapse-icon', () => {\n it('renders the proper markup when true', async () => {\n const page = await setup({\n html: `<q2-section collapsible no-collapse-icon label=\"Section Header\"></q2-section>`,\n });\n const toggleBtn = await page.find('q2-section >>> q2-btn');\n\n expect(toggleBtn).toBeFalsy();\n });\n\n it('renders the proper markup when false', async () => {\n const page = await setup({\n html: `<q2-section collapsible label=\"Section Header\"></q2-section>`,\n });\n const toggleBtn = await page.find('q2-section >>> q2-btn');\n\n expect(toggleBtn).toBeTruthy();\n });\n });\n\n describe('expanded', () => {\n it(\"starts expanded when 'expanded' prop is true\", async () => {\n const page = await setup({\n html: `<q2-section collapsible expanded label=\"Section Header\"></q2-section>`,\n });\n const contentWrapper = await page.find('q2-section >>> .content-wrapper');\n const contentWrapperStyles = await contentWrapper.getComputedStyle();\n const caretIcon = await page.find('q2-section >>> q2-icon');\n const caretIconStyles = await caretIcon.getComputedStyle();\n expect(contentWrapper).not.toHaveClass('is-closed');\n expect(contentWrapper).not.toHaveClass('is-transitioning');\n expect(contentWrapperStyles.display).toEqual('block');\n expect(contentWrapperStyles.overflow).toEqual('visible');\n expect(parseInt(contentWrapperStyles.height)).toBeGreaterThan(0);\n expect(caretIconStyles.transform).toEqual('none');\n });\n\n it(\"starts collapsed when 'expanded' prop is set to false\", async () => {\n const page = await setup({\n html: `<q2-section collapsible expanded=\"false\" label=\"Section Header\"></q2-section>`,\n });\n const contentWrapper = await page.find('q2-section >>> .content-wrapper');\n const contentWrapperStyles = await contentWrapper.getComputedStyle();\n const caretIcon = await page.find('q2-section >>> q2-icon');\n const caretIconStyles = await caretIcon.getComputedStyle();\n expect(contentWrapper).toHaveClass('is-closed');\n expect(contentWrapper).not.toHaveClass('is-transitioning');\n expect(contentWrapperStyles.display).toEqual('none');\n expect(contentWrapperStyles.overflow).toEqual('hidden');\n expect(contentWrapperStyles.height).toEqual('0px');\n expect(caretIconStyles.transform).not.toEqual('none');\n });\n\n it(\"starts collapsed when 'expanded' prop is not provided\", async () => {\n const page = await setup({\n html: `<q2-section collapsible label=\"Section Header\"></q2-section>`,\n });\n const contentWrapper = await page.find('q2-section >>> .content-wrapper');\n const contentWrapperStyles = await contentWrapper.getComputedStyle();\n const caretIcon = await page.find('q2-section >>> q2-icon');\n const caretIconStyles = await caretIcon.getComputedStyle();\n expect(contentWrapper).toHaveClass('is-closed');\n expect(contentWrapper).not.toHaveClass('is-transitioning');\n expect(contentWrapperStyles.display).toEqual('none');\n expect(contentWrapperStyles.overflow).toEqual('hidden');\n expect(contentWrapperStyles.height).toEqual('0px');\n expect(caretIconStyles.transform).not.toEqual('none');\n });\n });\n });\n\n it('sets interval to resize iframe on toggle start', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-section expanded>Some content for height.</q2-section>`,\n });\n const setInterval = jest.fn();\n const clearInterval = jest.fn();\n const resizeIframe = jest.fn();\n\n await page.exposeFunction('setInterval', setInterval);\n await page.exposeFunction('clearInterval', clearInterval);\n await page.exposeFunction('resizeIframe', resizeIframe);\n await page.evaluate(() => {\n this.setInterval = setInterval;\n this.clearInterval = clearInterval;\n this.TectonElements.resizeIframe = resizeIframe;\n });\n\n const section = await page.find('q2-section');\n section.setProperty('collapsible', true);\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-section', 'q2-btn'], 'click');\n\n expect(clearInterval).not.toBeCalled();\n expect(setInterval).toBeCalledTimes(1);\n expect(setInterval.mock.calls[0]).toContain(5);\n // expect(setInterval.mock.calls[0]).toEqual([resizeIframe, 5]);\n });\n\n it('executes handler on transition end', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-section expanded>Some content for height.</q2-section>`,\n });\n const setTimeout = jest.fn();\n const clearInterval = jest.fn();\n const resizeIframe = jest.fn();\n\n await page.exposeFunction('setTimeout', setTimeout);\n await page.exposeFunction('clearInterval', clearInterval);\n await page.exposeFunction('resizeIframe', resizeIframe);\n await page.evaluate(() => {\n this.setTimeout = setTimeout;\n this.clearInterval = clearInterval;\n this.TectonElements.resizeIframe = resizeIframe;\n });\n\n const section = await page.find('q2-section');\n section.setProperty('collapsible', true);\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-section', '.content-wrapper'], 'transitionend');\n\n expect(setTimeout).toBeCalledTimes(1);\n expect(setTimeout.mock.calls[0]).toContain(1000);\n\n // expect(clearInterval).toBeCalledTimes(1);\n // expect(clearInterval.mock.calls[0]).toEqual([resizeIframe]);\n });\n\n it('calls resizeIframe on slotchange', async function (): Promise<void> {\n const page = await setup({ html: `<q2-section></q2-section>` });\n\n const resizeIframe = jest.fn();\n\n await page.exposeFunction('resizeIframe', resizeIframe);\n await page.evaluate(() => {\n this.TectonElements.resizeIframe = resizeIframe;\n });\n\n expect(resizeIframe).toHaveBeenCalledTimes(0);\n await dispatchEvent(page, ['q2-section', '.content-wrapper slot'], 'slotchange');\n expect(resizeIframe).toHaveBeenCalledTimes(1);\n });\n\n it('localizes label string', async function (): Promise<void> {\n const page = await setup({ html: `<q2-section></q2-section>` });\n\n await setTestStrings(page, {\n 'q2-section.label': 'Title Text',\n });\n\n const section = await page.find('q2-section');\n section.setProperty('label', 'q2-section.label');\n await page.waitForChanges();\n\n const sectionTitle = await page.find('q2-section >>> .header-content .title');\n\n expect(sectionTitle.innerText).toEqual('Title Text');\n });\n\n it('hides chevron button', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-section collapsible></q2-section>`,\n });\n let buttons = await page.findAll('q2-section >>> q2-btn');\n\n expect(buttons.length).toEqual(1);\n\n const section = await page.find('q2-section');\n section.setAttribute('no-collapse-icon', true);\n await page.waitForChanges();\n\n buttons = await page.findAll('q2-section >>> q2-btn');\n\n expect(buttons.length).toEqual(0);\n });\n\n describe('focus transferring', () => {\n const html = `<q2-section><h1>Hello</h1></q2-section>`;\n\n it('focuses when focus event dispatched ', async function (): Promise<void> {\n const page = await setup({ html });\n await dispatchEvent(page, ['q2-section'], 'focus');\n const contained = await page.$eval('q2-section', el => {\n return el.shadowRoot.activeElement.classList.contains('content');\n });\n expect(contained).toBe(true);\n });\n it('focuses when focus event method called ', async function (): Promise<void> {\n const page = await setup({ html });\n const section = await page.find('q2-section');\n await section.triggerEvent('focus');\n await page.waitForChanges();\n const contained = await page.$eval('q2-section', el => {\n return el.shadowRoot.activeElement.classList.contains('content');\n });\n expect(contained).toBe(true);\n });\n });\n});\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { setTestStrings, setup, dispatchEvent, getFocusedOptionValue, getActiveElementTestId, waitForTimeout, } from "../helpers";
|
|
1
|
+
import { setTestStrings, setup, dispatchEvent, getFocusedOptionValue, getActiveElementTestId, waitForTimeout, getListOfStyleCompilationIssues, } from "../helpers";
|
|
2
2
|
describe('q2-select', () => {
|
|
3
3
|
const isInvalidErrorString = 'tecton.element.select.invalid';
|
|
4
4
|
let page;
|
|
@@ -21,6 +21,10 @@ describe('q2-select', () => {
|
|
|
21
21
|
.querySelector('q2-popover')) === null || _a === void 0 ? void 0 : _a.style.getPropertyValue('--comp-popover-top-container-height');
|
|
22
22
|
});
|
|
23
23
|
};
|
|
24
|
+
it('properly compiles CSS vars and functions', async () => {
|
|
25
|
+
const page = await setup({ html: '<q2-select></q2-select>' });
|
|
26
|
+
expect(await getListOfStyleCompilationIssues(page, 'q2-select')).toHaveLength(0);
|
|
27
|
+
});
|
|
24
28
|
it('renders base state', async () => {
|
|
25
29
|
page = await setup({
|
|
26
30
|
html: `
|
|
@@ -1506,6 +1510,30 @@ describe('q2-select', () => {
|
|
|
1506
1510
|
});
|
|
1507
1511
|
});
|
|
1508
1512
|
});
|
|
1513
|
+
describe('popoverMode', () => {
|
|
1514
|
+
it('does not set any mode on the popover (default)', async () => {
|
|
1515
|
+
const page = await setup({
|
|
1516
|
+
html: `
|
|
1517
|
+
<q2-select>
|
|
1518
|
+
<q2-option value="1" display="One">One</q2-option>
|
|
1519
|
+
</q2-select>
|
|
1520
|
+
`,
|
|
1521
|
+
});
|
|
1522
|
+
popover = await page.find('q2-select >>> q2-popover');
|
|
1523
|
+
expect(await popover.getProperty('mode')).toBeNull();
|
|
1524
|
+
});
|
|
1525
|
+
it('sets the value of popoverMode as the mode on the popover', async () => {
|
|
1526
|
+
const page = await setup({
|
|
1527
|
+
html: `
|
|
1528
|
+
<q2-select popover-mode="legacy">
|
|
1529
|
+
<q2-option value="1" display="One">One</q2-option>
|
|
1530
|
+
</q2-select>
|
|
1531
|
+
`,
|
|
1532
|
+
});
|
|
1533
|
+
popover = await page.find('q2-select >>> q2-popover');
|
|
1534
|
+
expect(await popover.getProperty('mode')).toEqual('legacy');
|
|
1535
|
+
});
|
|
1536
|
+
});
|
|
1509
1537
|
});
|
|
1510
1538
|
describe('robust content', () => {
|
|
1511
1539
|
beforeEach(async () => {
|