q2-tecton-elements 1.55.5 → 1.55.6
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/bundle-report.json +92 -46
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-action-group.cjs.entry.js +1 -1
- package/dist/cjs/q2-action-sheet.cjs.entry.js +1 -1
- package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
- package/dist/cjs/q2-badge_7.cjs.entry.js +3 -3
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +2 -2
- package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-donut.cjs.entry.js +1 -1
- package/dist/cjs/q2-currency.cjs.entry.js +1 -1
- package/dist/cjs/q2-detail.cjs.entry.js +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +24 -21
- package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-example.cjs.entry.js +1 -1
- package/dist/cjs/q2-form.cjs.entry.js +1 -1
- package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
- package/dist/cjs/q2-item_3.cjs.entry.js +2 -2
- package/dist/cjs/q2-legend.cjs.entry.js +1 -1
- package/dist/cjs/q2-message.cjs.entry.js +1 -1
- package/dist/cjs/q2-modal.cjs.entry.js +1 -1
- package/dist/cjs/q2-month-picker.cjs.entry.js +2 -2
- package/dist/cjs/q2-optgroup.cjs.entry.js +1 -1
- package/dist/cjs/q2-option-list_2.cjs.entry.js +58 -59
- package/dist/cjs/q2-option-list_2.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-pagination.cjs.entry.js +3 -3
- package/dist/cjs/q2-pill.cjs.entry.js +1 -1
- package/dist/cjs/q2-relative-time.cjs.entry.js +1 -1
- package/dist/cjs/q2-resize-observer.cjs.entry.js +1 -1
- package/dist/cjs/q2-section.cjs.entry.js +2 -2
- package/dist/cjs/q2-select.cjs.entry.js +80 -10
- 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.cjs.entry.js +1 -1
- package/dist/cjs/q2-tag.cjs.entry.js +1 -1
- package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
- package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
- package/dist/collection/components/q2-action-group/q2-action-group.js +1 -1
- package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
- package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
- package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
- package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js +2 -2
- package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
- package/dist/collection/components/q2-chart-area/q2-chart-area.js +1 -1
- package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +1 -1
- package/dist/collection/components/q2-currency/q2-currency.js +1 -1
- package/dist/collection/components/q2-detail/q2-detail.js +1 -1
- package/dist/collection/components/q2-dropdown/q2-dropdown.js +25 -21
- package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
- package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js +34 -32
- package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-example/q2-example.js +1 -1
- package/dist/collection/components/q2-form/q2-form.js +1 -1
- package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
- package/dist/collection/components/q2-input/q2-input.js +1 -1
- package/dist/collection/components/q2-item/q2-item.js +1 -1
- package/dist/collection/components/q2-legend/q2-legend.js +1 -1
- package/dist/collection/components/q2-list/q2-list.js +1 -1
- package/dist/collection/components/q2-message/q2-message.js +1 -1
- package/dist/collection/components/q2-modal/q2-modal.js +1 -1
- package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
- package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
- package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js +1 -0
- package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-pill/q2-pill.js +1 -1
- package/dist/collection/components/q2-popover/q2-popover.css +18 -10
- package/dist/collection/components/q2-popover/q2-popover.js +59 -59
- package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
- package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js +1 -34
- package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js +743 -435
- package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js.map +1 -1
- package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
- package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
- package/dist/collection/components/q2-section/q2-section.js +2 -2
- package/dist/collection/components/q2-select/q2-select.js +96 -14
- package/dist/collection/components/q2-select/q2-select.js.map +1 -1
- package/dist/collection/components/q2-select/test/q2-select-test.spec.js +327 -0
- package/dist/collection/components/q2-select/test/q2-select-test.spec.js.map +1 -1
- package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
- package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
- package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
- package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
- package/dist/collection/components/q2-tag/q2-tag.js +1 -1
- package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js +5 -0
- package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
- package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
- package/dist/components/q2-action-group2.js +1 -1
- package/dist/components/q2-action-sheet.js +1 -1
- package/dist/components/q2-avatar2.js +1 -1
- package/dist/components/q2-carousel-pane.js +2 -2
- package/dist/components/q2-chart-area.js +1 -1
- package/dist/components/q2-chart-bar.js +1 -1
- package/dist/components/q2-chart-donut.js +1 -1
- package/dist/components/q2-currency.js +1 -1
- package/dist/components/q2-detail.js +1 -1
- package/dist/components/q2-dropdown.js +24 -21
- package/dist/components/q2-dropdown.js.map +1 -1
- package/dist/components/q2-example.js +1 -1
- package/dist/components/q2-form.js +1 -1
- package/dist/components/q2-formatted-text.js +1 -1
- package/dist/components/q2-input2.js +1 -1
- package/dist/components/q2-item2.js +1 -1
- package/dist/components/q2-legend2.js +1 -1
- package/dist/components/q2-list2.js +1 -1
- package/dist/components/q2-message2.js +1 -1
- package/dist/components/q2-modal.js +1 -1
- package/dist/components/q2-month-picker.js +2 -2
- package/dist/components/q2-optgroup2.js +1 -1
- package/dist/components/q2-pagination.js +3 -3
- package/dist/components/q2-pill.js +1 -1
- package/dist/components/q2-popover2.js +58 -59
- package/dist/components/q2-popover2.js.map +1 -1
- package/dist/components/q2-relative-time.js +1 -1
- package/dist/components/q2-resize-observer2.js +1 -1
- package/dist/components/q2-section.js +2 -2
- package/dist/components/q2-select2.js +84 -14
- package/dist/components/q2-select2.js.map +1 -1
- package/dist/components/q2-stepper-vertical.js +1 -1
- package/dist/components/q2-stepper.js +1 -1
- package/dist/components/q2-tab-container.js +1 -1
- package/dist/components/q2-tab-pane.js +1 -1
- package/dist/components/q2-tag.js +1 -1
- package/dist/components/q2-textarea.js +1 -1
- package/dist/components/tecton-tab-pane.js +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/q2-action-group.entry.js +1 -1
- package/dist/esm/q2-action-sheet.entry.js +1 -1
- package/dist/esm/q2-avatar.entry.js +1 -1
- package/dist/esm/q2-badge_7.entry.js +3 -3
- package/dist/esm/q2-carousel-pane.entry.js +2 -2
- package/dist/esm/q2-chart-area.entry.js +1 -1
- package/dist/esm/q2-chart-bar.entry.js +1 -1
- package/dist/esm/q2-chart-donut.entry.js +1 -1
- package/dist/esm/q2-currency.entry.js +1 -1
- package/dist/esm/q2-detail.entry.js +1 -1
- package/dist/esm/q2-dropdown.entry.js +24 -21
- package/dist/esm/q2-dropdown.entry.js.map +1 -1
- package/dist/esm/q2-example.entry.js +1 -1
- package/dist/esm/q2-form.entry.js +1 -1
- package/dist/esm/q2-formatted-text.entry.js +1 -1
- package/dist/esm/q2-item_3.entry.js +2 -2
- package/dist/esm/q2-legend.entry.js +1 -1
- package/dist/esm/q2-message.entry.js +1 -1
- package/dist/esm/q2-modal.entry.js +1 -1
- package/dist/esm/q2-month-picker.entry.js +2 -2
- package/dist/esm/q2-optgroup.entry.js +1 -1
- package/dist/esm/q2-option-list_2.entry.js +58 -59
- package/dist/esm/q2-option-list_2.entry.js.map +1 -1
- package/dist/esm/q2-pagination.entry.js +3 -3
- package/dist/esm/q2-pill.entry.js +1 -1
- package/dist/esm/q2-relative-time.entry.js +1 -1
- package/dist/esm/q2-resize-observer.entry.js +1 -1
- package/dist/esm/q2-section.entry.js +2 -2
- package/dist/esm/q2-select.entry.js +82 -12
- 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.entry.js +1 -1
- package/dist/esm/q2-tag.entry.js +1 -1
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +1 -1
- package/dist/esm/tecton-tab-pane.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-action-group.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-action-sheet.entry.js +8 -8
- package/dist/q2-tecton-elements/q2-avatar.entry.js +6 -6
- package/dist/q2-tecton-elements/q2-badge_7.entry.js +16 -16
- package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-chart-area.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-chart-bar.entry.js +79 -79
- package/dist/q2-tecton-elements/q2-chart-donut.entry.js +100 -100
- package/dist/q2-tecton-elements/q2-currency.entry.js +6 -6
- package/dist/q2-tecton-elements/q2-detail.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-dropdown.entry.js +26 -22
- package/dist/q2-tecton-elements/q2-dropdown.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-form.entry.js +7 -7
- package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-item_3.entry.js +21 -21
- package/dist/q2-tecton-elements/q2-legend.entry.js +5 -5
- package/dist/q2-tecton-elements/q2-message.entry.js +20 -20
- package/dist/q2-tecton-elements/q2-modal.entry.js +17 -17
- package/dist/q2-tecton-elements/q2-month-picker.entry.js +13 -13
- package/dist/q2-tecton-elements/q2-optgroup.entry.js +4 -4
- package/dist/q2-tecton-elements/q2-option-list_2.entry.js +128 -123
- package/dist/q2-tecton-elements/q2-option-list_2.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-pagination.entry.js +37 -37
- package/dist/q2-tecton-elements/q2-pill.entry.js +13 -13
- package/dist/q2-tecton-elements/q2-relative-time.entry.js +4 -4
- package/dist/q2-tecton-elements/q2-resize-observer.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-section.entry.js +11 -11
- package/dist/q2-tecton-elements/q2-select.entry.js +146 -88
- package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +28 -28
- package/dist/q2-tecton-elements/q2-stepper.entry.js +20 -20
- package/dist/q2-tecton-elements/q2-tag.entry.js +5 -5
- 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/q2-tecton-elements/q2-textarea.entry.js +2 -2
- package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +9 -9
- package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +6 -4
- package/dist/types/components/q2-popover/q2-popover.d.ts +4 -4
- package/dist/types/components/q2-select/q2-select.d.ts +18 -0
- package/package.json +3 -3
|
@@ -148,7 +148,7 @@ export class Q2Modal {
|
|
|
148
148
|
render() {
|
|
149
149
|
const interiorClasses = `interior`;
|
|
150
150
|
const renderStatus = `${this.renderStatus || ''}`;
|
|
151
|
-
return (h("dialog", { key: '
|
|
151
|
+
return (h("dialog", { key: '14c7d74be95682be1c6523d495a2b35bcc247e4a', ref: el => (this.dialogElement = el), class: renderStatus, onClick: this.onClick }, h("div", { key: '64d3d8d9e01f4e8fee2ae452714e4eedd2570e68', class: interiorClasses }, this.title && (h("header", { key: 'd36f931c9f7ae0f14817abb9a6dedee6257a5664' }, this.title && h("h2", { key: '39097ca1ee788258b9e349b8bc374b190ecaa8a5', class: "title" }, this.title), !!this.closable && (h("q2-btn", { key: 'd1c9a7bd159e4c7fdfa557efca9204593f27803d', class: "btn-close", "test-id": "btnClose", onClick: this.onCancel, label: "tecton.element.modal.close", "hide-label": true }, h("q2-icon", { key: '6225815f507315357b545a3177727f9f3438bccf', type: "close" }))))), h("div", { key: '4988151b63997614a382f7241f60af147b120e88', class: "content", ref: el => (this.contentElement = el) }, this.icon && (h("div", { key: 'a54460f79a828bed7630108dd6f04ca1929dfbfb', class: "icon" }, h("q2-icon", { key: '3bd18a8787e40183f1d71ddd48e6ca207062588b', type: this.icon, style: this.iconStyle() }))), this.imageSrc && (h("div", { key: '074f8bda9529d16d06630b4107a51e478a07d156', class: "image" }, h("img", { key: '608a63353a935f44dfe3c2b809f4f28b89c38b31', src: this.imageSrc }))), hasSlotContent(this.hostElement, 'content') && h("slot", { key: '4f23c254881c6840e05ac24b0ff712fd6e1f90df', name: "content" }), this.description && h("p", { key: 'af66d8b53f300ff96b68d59a4e47bf5fe5a535ea', class: "description" }, this.description), this.customMarkup && (h("p", { key: 'bae1c644d7e41fd6389cf40689afe3c62dada367', class: "customMarkup", innerHTML: sanitizeHTMLString(this.customMarkup) }))), h("footer", { key: 'f5b4756a03b61a192074100ca8d0e2162a95ba58' }, h("q2-action-group", { key: '3586e0321e11e3a97ee2d640d55d71fc502ee50f', "full-width": true }, h("slot", { key: '3a66978962bfdafe16dc1948d3fd31f8088c0100', name: "action" }))))));
|
|
152
152
|
}
|
|
153
153
|
static get is() { return "q2-modal"; }
|
|
154
154
|
static get encapsulation() { return "shadow"; }
|
|
@@ -44,7 +44,7 @@ export class Q2Optgroup {
|
|
|
44
44
|
// #endregion
|
|
45
45
|
// #region Render Methods
|
|
46
46
|
render() {
|
|
47
|
-
return (h("div", { key: '
|
|
47
|
+
return (h("div", { key: '6b13767a72d67ef3493dcf8d0a4d61fef6255590', class: "q2-optgroup-container", hidden: this.hidden, "aria-labelledby": this.headerId, role: "group" }, h("div", { key: 'bb613f288978e7ea2e26dbd541bfd1d436df4325', class: "q2-optgroup-header", id: this.headerId }, (this.label && loc(this.label)) || ''), h("div", { key: '523029610ca35f25407ee95e8cb58d5c619c03b8', class: "q2-optgroup-options" }, h("slot", { key: 'd278b4bbd2ffe6de40f2259ae3164798ab9c2523' }))));
|
|
48
48
|
}
|
|
49
49
|
static get is() { return "q2-optgroup"; }
|
|
50
50
|
static get encapsulation() { return "shadow"; }
|
|
@@ -256,7 +256,7 @@ export class Q2Pagination {
|
|
|
256
256
|
total,
|
|
257
257
|
});
|
|
258
258
|
}
|
|
259
|
-
return (h("nav", { key: '
|
|
259
|
+
return (h("nav", { key: '522f7a6ca80da14c71ab8e4c16345f780bdfedb7', class: "container", ref: el => (this.containerElement = el), "aria-label": loc('tecton.element.pagination.title') }, h("div", { key: '7192232f0c101c7d91681d6aeb71d9816bc54ec9', class: "description", "test-id": "description" }, pagesOnly
|
|
260
260
|
? loc('tecton.element.pagination.pages', {
|
|
261
261
|
current: page,
|
|
262
262
|
total: totalPages,
|
|
@@ -265,10 +265,10 @@ export class Q2Pagination {
|
|
|
265
265
|
range: currentRange,
|
|
266
266
|
recordType: recordType.toLowerCase(),
|
|
267
267
|
total: total.toLocaleString(),
|
|
268
|
-
})), h("div", { key: '
|
|
268
|
+
})), h("div", { key: '82b75af4cd9e03338e9fe262d8881fbf36b7a591', class: "btn-group" }, h("q2-btn", { key: '6a5a7a66e845acf4d56cbd0cebe42568c399434e', ref: el => (this.firstPageBtn = el), label: loc('tecton.element.pagination.goToFirstPage'), disabled: onFirstPage, hidden: isFullViewHidden, onClick: () => this.handlePageChange(1), "test-id": "firstPageBtn", "hide-label": true }, h("q2-icon", { key: '2d601f453125c485ad742a6b0ef90724f390da32', type: "chevron-double-left" })), h("q2-btn", { key: '9b177b458d7d1b0a6408c51ad146308d8cef1123', ref: el => (this.prevPageBtn = el), label: prevButtonLabel, disabled: onFirstPage, onClick: () => this.handlePageChange(page - 1), "test-id": "prevPageBtn", "hide-label": true }, h("q2-icon", { key: 'c7c017d0542756c0d0b33fbca98b0b87f014e1f9', type: "chevron-left" }))), h("div", { key: 'afa7a54817a9d79cc2ca17749e5778b4cd2ded66', class: "controls", hidden: isFullViewHidden, "test-id": "controls" }, h("span", { key: '24549c54a21e204c50797738287010af4414d2a9', "aria-hidden": "true" }, loc('tecton.element.pagination.page')), h("div", { key: '3ee4e68f1528ad2a947e816e8b4aa3f70d25b7f7', class: "input-wrapper", onClick: () => this.inputField.dispatchEvent(new FocusEvent('focus')) }, h("q2-input", { key: 'd937bdb0510012fde31a06fbd781e9bfa5dc72f8', ref: el => (this.inputField = el), type: "number", value: `${page}`, min: 1, max: this.totalPages, hideLabel: true, optional: true, label: `${loc('tecton.element.pagination.page')} (${loc('tecton.element.pagination.ofPages', [totalPages.toLocaleString()])})`, onChange: event => {
|
|
269
269
|
event.stopPropagation();
|
|
270
270
|
this.handlePageChange(event.detail.value);
|
|
271
|
-
}, "test-id": "pageInput", current: "page" })), h("span", { key: '
|
|
271
|
+
}, "test-id": "pageInput", current: "page" })), h("span", { key: 'f334329061ef618c1db563ac01a763fb6416d1b1', "aria-hidden": "true" }, loc('tecton.element.pagination.ofPages', [totalPages.toLocaleString()]))), h("div", { key: '02b29f060edb638e8cf0c7bb7cda4d0485af2481', class: "btn-group" }, h("q2-btn", { key: '9a75c84ecc03f11dd852200966f2db2a28fd5bcf', ref: el => (this.nextPageBtn = el), label: nextButtonLabel, disabled: onLastPage, onClick: () => this.handlePageChange(page + 1), "test-id": "nextPageBtn", "hide-label": true }, h("q2-icon", { key: 'b6727d1d7f018d60e4f31c0099af29efc9abb8a0', type: "chevron-right" })), h("q2-btn", { key: '2b0ed22e5d397aa7affc12e7bee1c8d4dc284484', ref: el => (this.lastPageBtn = el), label: "tecton.element.pagination.goToLastPage", disabled: onLastPage, hidden: isFullViewHidden, onClick: () => this.handlePageChange(totalPages), "test-id": "lastPageBtn", "hide-label": true }, h("q2-icon", { key: '95c98ee4c4c1bcfb709e9a3a2c1648eca717f8b3', type: "chevron-double-right" }))), h("div", { key: '44e21a845dce96cc86b35df24bead60b4542b99f', class: "per-page", hidden: isFullViewHidden || !((_a = this.perPageIncrements) === null || _a === void 0 ? void 0 : _a.length) }, showPerPageSelect && this.renderPerPage())));
|
|
272
272
|
}
|
|
273
273
|
static get is() { return "q2-pagination"; }
|
|
274
274
|
static get encapsulation() { return "shadow"; }
|
|
@@ -482,6 +482,7 @@ describe('q2-pagination', () => {
|
|
|
482
482
|
await dispatchEvent(page, ['q2-pagination', 'q2-select', 'q2-input'], 'click');
|
|
483
483
|
const options = await page.findAll('q2-pagination >>> q2-select > q2-option');
|
|
484
484
|
// click 2nd option (perPage 20)
|
|
485
|
+
options[1].focus();
|
|
485
486
|
options[1].click();
|
|
486
487
|
await page.waitForChanges();
|
|
487
488
|
expect(await pagination.getProperty('perPage')).toBe(20);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-pagination-test.e2e.js","sourceRoot":"","sources":["../../../../../src/components/q2-pagination/test/q2-pagination-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { setup, setTestStrings, dispatchEvent, getListOfStyleCompilationIssues, evaluateA11y } from '@/utils/helpers';\n\ndescribe('q2-pagination', () => {\n let page: E2EPage;\n let pagination: E2EElement;\n let description: E2EElement;\n let controls: E2EElement;\n let input: E2EElement;\n let firstPageBtn: E2EElement;\n let prevPageBtn: E2EElement;\n let nextPageBtn: E2EElement;\n let lastPageBtn: E2EElement;\n let changeSpy: any;\n\n const isInputFocused = async (page: E2EPage) => {\n return page.$eval('body', () => document.activeElement.shadowRoot?.activeElement.tagName === 'Q2-INPUT');\n };\n const innerActiveTestId = async (page: E2EPage) => {\n return page.$eval(\n 'body',\n () => document.activeElement.shadowRoot?.activeElement.getAttribute('test-id') ?? null\n );\n };\n\n beforeEach(async () => {\n page = await setup({ html: '' });\n await setTestStrings(page, {\n 'tecton.element.pagination.title': 'Pagination',\n 'tecton.element.pagination.defaultRecordType': 'Records',\n 'tecton.element.pagination.description': '{range} of {total} {recordType}',\n 'tecton.element.pagination.pages': '{current} of {total} pages',\n 'tecton.element.pagination.page': 'Page',\n 'tecton.element.pagination.ofPages': 'of {0}',\n 'tecton.element.pagination.firstPage': 'First page',\n 'tecton.element.pagination.lastPage': 'Last page',\n 'tecton.element.pagination.nextPage': 'Next page',\n 'tecton.element.pagination.previousPage': 'Previous page',\n 'tecton.element.pagination.goToPages': 'Go to page {next} of {total} pages',\n 'tecton.element.pagination.goToRecords': 'Go to {range} of {total} {recordType}',\n });\n });\n\n it('properly compiles CSS vars and functions', async () => {\n page = await setup({ html: '<q2-pagination></q2-pagination>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-pagination')).toHaveLength(0);\n });\n\n describe('button groups', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"100\" per-page=\"10\"></q2-pagination>`);\n await page.waitForChanges();\n pagination = await page.find('q2-pagination');\n firstPageBtn = await page.find('q2-pagination >>> [test-id=firstPageBtn]');\n prevPageBtn = await page.find('q2-pagination >>> [test-id=prevPageBtn]');\n nextPageBtn = await page.find('q2-pagination >>> [test-id=nextPageBtn]');\n lastPageBtn = await page.find('q2-pagination >>> [test-id=lastPageBtn]');\n });\n\n describe('when on first page', () => {\n it('disables firstPageBtn and prevPageBtn', async () => {\n await pagination.setProperty('page', 1);\n await page.waitForChanges();\n\n expect(firstPageBtn).toHaveAttribute('disabled');\n expect(prevPageBtn).toHaveAttribute('disabled');\n expect(nextPageBtn).not.toHaveAttribute('disabled');\n expect(lastPageBtn).not.toHaveAttribute('disabled');\n });\n });\n\n describe('when on last page', () => {\n it('disables lastPageBtn and nextPageBtn', async () => {\n await pagination.setProperty('page', 10);\n await page.waitForChanges();\n\n expect(firstPageBtn).not.toHaveAttribute('disabled');\n expect(prevPageBtn).not.toHaveAttribute('disabled');\n expect(nextPageBtn).toHaveAttribute('disabled');\n expect(lastPageBtn).toHaveAttribute('disabled');\n });\n });\n });\n\n describe('controls', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"100\" per-page=\"10\"></q2-pagination>`);\n await page.waitForChanges();\n pagination = await page.find('q2-pagination');\n input = await page.find('q2-pagination >>> [test-id=pageInput]');\n });\n\n describe('when value is attempted to be set above max', () => {\n it('forces the value to the max value', async () => {\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"pageInput\"]'], 'change', {\n detail: {\n value: '11',\n },\n });\n expect(await input.getProperty('value')).toEqual('10');\n });\n });\n\n describe('when value is attempted to be set below min', () => {\n it('forces the value to the min value', async () => {\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"pageInput\"]'], 'change', {\n detail: {\n value: '-100',\n },\n });\n expect(await input.getProperty('value')).toEqual('1');\n });\n });\n });\n\n describe('when input wrapper is clicked', () => {\n it('focus is passed to the input', async () => {\n await page.setContent(`<q2-pagination total=\"100\" per-page=\"10\"></q2-pagination>`);\n await page.waitForChanges();\n\n expect(await isInputFocused(page)).toEqual(false);\n\n const inputWrapper = await page.find('q2-pagination >>> .input-wrapper');\n await inputWrapper.click();\n\n expect(await isInputFocused(page)).toEqual(true);\n });\n });\n\n describe('when total is 0', () => {\n it('page should be 0 and first/prev button should be disabled', async () => {\n await page.setContent(`<q2-pagination total=\"10\" per-page=\"10\" records-only=\"false\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n await pagination.setProperty('total', 0);\n await page.waitForChanges();\n\n input = await page.find('q2-pagination >>> [test-id=inputField]');\n description = await page.find('q2-pagination >>> [test-id=\"description\"]');\n firstPageBtn = await page.find('q2-pagination >>> [test-id=firstPageBtn]');\n prevPageBtn = await page.find('q2-pagination >>> [test-id=prevPageBtn]');\n\n await page.waitForChanges();\n expect(description.textContent.startsWith('0')).toBe(true);\n expect(await input.getProperty('value')).toEqual('0');\n expect(firstPageBtn).toHaveAttribute('disabled');\n expect(prevPageBtn).toHaveAttribute('disabled');\n });\n });\n\n describe('when on a mobile width device', () => {\n beforeEach(async () => {\n await page.setViewport({ width: 200, height: 800 });\n await page.setContent(`<q2-pagination total=\"500\"></q2-pagination>`);\n await page.waitForChanges();\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n firstPageBtn = await page.find('q2-pagination >>> [test-id=firstPageBtn]');\n prevPageBtn = await page.find('q2-pagination >>> [test-id=prevPageBtn]');\n nextPageBtn = await page.find('q2-pagination >>> [test-id=nextPageBtn]');\n lastPageBtn = await page.find('q2-pagination >>> [test-id=lastPageBtn]');\n });\n\n it('hides first and last buttons as well as content block on render', async () => {\n expect(controls).toHaveAttribute('hidden');\n expect(firstPageBtn).toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).toHaveAttribute('hidden');\n });\n\n it('automatically toggles on viewport resize', async () => {\n await page.setViewport({ width: 800, height: 800 });\n await page.waitForChanges();\n\n expect(controls).not.toHaveAttribute('hidden');\n expect(firstPageBtn).not.toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).not.toHaveAttribute('hidden');\n\n await page.setViewport({ width: 200, height: 800 });\n await page.waitForChanges();\n\n expect(controls).toHaveAttribute('hidden');\n expect(firstPageBtn).toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).toHaveAttribute('hidden');\n });\n });\n\n describe('@Events', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"100\"></q2-pagination>`);\n await page.waitForChanges();\n pagination = await page.find('q2-pagination');\n });\n\n describe('focus', () => {\n describe('when event is dispatched', () => {\n describe('when standard view is displayed', () => {\n it('focuses the input field', async () => {\n await dispatchEvent(page, 'q2-pagination', 'focus');\n expect(await innerActiveTestId(page)).toEqual('pageInput');\n });\n });\n\n describe('when simplified view is displayed', () => {\n it('focuses the first non-disabled button', async () => {\n await pagination.setProperty('pagesOnly', true);\n await page.waitForChanges();\n await dispatchEvent(page, 'q2-pagination', 'focus');\n expect(await innerActiveTestId(page)).toEqual('nextPageBtn');\n });\n });\n });\n\n describe('when when element.focus() is called', () => {\n describe('when standard view is displayed', () => {\n it('focuses the input field', async () => {\n await pagination.focus();\n expect(await innerActiveTestId(page)).toEqual('pageInput');\n });\n });\n\n describe('when simplified view is displayed', () => {\n it('focuses the first non-disabled button', async () => {\n await pagination.setProperty('pagesOnly', true);\n await page.waitForChanges();\n await pagination.focus();\n expect(await innerActiveTestId(page)).toEqual('nextPageBtn');\n });\n });\n });\n });\n\n describe('change', () => {\n describe('change event is emitted with page property in event detail', () => {\n beforeEach(async () => {\n await pagination.setProperty('page', 5);\n await page.waitForChanges();\n });\n\n it('when first page button is clicked', async () => {\n changeSpy = await pagination.spyOnEvent('change');\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"firstPageBtn\"]'], 'click');\n expect(changeSpy).toHaveReceivedEventDetail({\n page: 1,\n });\n });\n\n it('when previous page button is clicked', async () => {\n changeSpy = await pagination.spyOnEvent('change');\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"prevPageBtn\"]'], 'click');\n expect(changeSpy).toHaveReceivedEventDetail({\n page: 4,\n });\n });\n\n it('when user inputs page number', async () => {\n changeSpy = await pagination.spyOnEvent('change');\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"pageInput\"]'], 'change', {\n detail: {\n value: 4,\n },\n });\n expect(changeSpy).toHaveReceivedEventDetail({\n page: 4,\n });\n });\n\n it('when next page button is clicked', async () => {\n changeSpy = await pagination.spyOnEvent('change');\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"nextPageBtn\"]'], 'click');\n expect(changeSpy).toHaveReceivedEventDetail({\n page: 6,\n });\n });\n\n it('when last page button is clicked', async () => {\n changeSpy = await pagination.spyOnEvent('change');\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"lastPageBtn\"]'], 'click');\n expect(changeSpy).toHaveReceivedEventDetail({\n page: 10,\n });\n });\n });\n });\n });\n\n describe('@Props', () => {\n describe('recordType', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n });\n\n describe('when not provided', () => {\n it('defaults to \"records\"', async () => {\n await pagination.setProperty('recordType', undefined);\n await page.waitForChanges();\n\n description = await page.find('q2-pagination >>> [test-id=description]');\n expect(description.textContent).toContain('records');\n });\n });\n\n describe('when provided', () => {\n it('displays in the description', async () => {\n await pagination.setProperty('recordType', 'Accounts');\n await page.waitForChanges();\n\n description = await page.find('q2-pagination >>> [test-id=description]');\n expect(description.textContent).toContain('accounts');\n });\n });\n });\n\n describe('perPage', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"500\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n });\n\n describe('when not provided', () => {\n it('defaults to 10', async () => {\n await pagination.setProperty('perPage', undefined);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toContain('1 - 10');\n expect(controls.textContent).toContain('of 50');\n });\n });\n\n describe('when provided', () => {\n it('is used to determine description and controls text', async () => {\n await pagination.setProperty('perPage', '20');\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toContain('1 - 20');\n expect(controls.textContent).toContain('of 25');\n });\n });\n });\n\n describe('total', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n });\n\n describe('when not provided', () => {\n it('defaults to 10', async () => {\n await pagination.setProperty('total', undefined);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toContain('0 records');\n expect(controls.textContent).toContain('of 0');\n });\n });\n\n describe('when provided', () => {\n it('is used to determine description and controls text', async () => {\n await pagination.setProperty('total', '50000');\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toContain('50,000');\n expect(controls.textContent).toContain('of 5,000');\n });\n });\n });\n\n describe('page', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"500\" page=\"1\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n });\n\n describe('when not provided', () => {\n it('defaults to 1', async () => {\n await pagination.setProperty('page', undefined);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n input = await page.find('q2-pagination >>> [test-id=pageInput]');\n\n expect(description.textContent).toContain('1 - 10');\n expect(await input.getProperty('value')).toEqual('1');\n });\n });\n\n describe('when provided', () => {\n it('is used to determine description and controls text', async () => {\n await pagination.setProperty('page', 5);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n input = await page.find('q2-pagination >>> [test-id=pageInput]');\n\n expect(description.textContent).toContain('41 - 50');\n expect(await input.getProperty('value')).toEqual('5');\n });\n });\n });\n\n describe('pages', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination pages-only total=\"5000\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n });\n\n describe('when not provided', () => {\n it('auto calculates page count', async () => {\n await pagination.setProperty('pages', undefined);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n\n expect(description.textContent).toContain('1 of 500 pages');\n });\n });\n\n describe('when provided', () => {\n it('is used as the page count', async () => {\n await pagination.setProperty('pages', '20');\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n\n expect(description.textContent).toContain('1 of 20 pages');\n });\n });\n });\n\n describe('recordsOnly', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"500\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n await page.waitForChanges();\n firstPageBtn = await page.find('q2-pagination >>> [test-id=firstPageBtn]');\n prevPageBtn = await page.find('q2-pagination >>> [test-id=prevPageBtn]');\n nextPageBtn = await page.find('q2-pagination >>> [test-id=nextPageBtn]');\n lastPageBtn = await page.find('q2-pagination >>> [test-id=lastPageBtn]');\n });\n\n describe('when not provided', () => {\n it('displays standard layout', async () => {\n await pagination.setProperty('recordsOnly', undefined);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toEqual('1 - 10 of 500 records');\n expect(controls).not.toHaveAttribute('hidden');\n expect(firstPageBtn).not.toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).not.toHaveAttribute('hidden');\n });\n });\n\n describe('when provided', () => {\n it('hides first and last buttons as well as content block', async () => {\n await pagination.setProperty('recordsOnly', true);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toEqual('1 - 10 of 500 records');\n expect(controls).toHaveAttribute('hidden');\n expect(firstPageBtn).toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn.getAttribute('label')).toEqual('Go to 11 - 20 of 500 records');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).toHaveAttribute('hidden');\n });\n it('should provide label correctly for prev and next buttons', async () => {\n await pagination.setProperty('recordsOnly', true);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toEqual('1 - 10 of 500 records');\n expect(controls).toHaveAttribute('hidden');\n expect(firstPageBtn).toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).toHaveAttribute('hidden');\n\n expect(nextPageBtn.getAttribute('label')).toEqual('Go to 11 - 20 of 500 records');\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"nextPageBtn\"]'], 'click');\n await page.waitForChanges();\n expect(nextPageBtn.getAttribute('label')).toEqual('Go to 21 - 30 of 500 records');\n expect(prevPageBtn.getAttribute('label')).toEqual('Go to 1 - 10 of 500 records');\n });\n });\n });\n\n describe('pagesOnly', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"500\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n await page.waitForChanges();\n firstPageBtn = await page.find('q2-pagination >>> [test-id=firstPageBtn]');\n prevPageBtn = await page.find('q2-pagination >>> [test-id=prevPageBtn]');\n nextPageBtn = await page.find('q2-pagination >>> [test-id=nextPageBtn]');\n lastPageBtn = await page.find('q2-pagination >>> [test-id=lastPageBtn]');\n });\n\n describe('when not provided', () => {\n it('displays standard layout', async () => {\n await pagination.setProperty('pagesOnly', undefined);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toEqual('1 - 10 of 500 records');\n expect(controls).not.toHaveAttribute('hidden');\n expect(firstPageBtn).not.toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).not.toHaveAttribute('hidden');\n });\n });\n\n describe('when provided', () => {\n it('hides first and last buttons as well as content block and displays page count', async () => {\n await pagination.setProperty('pagesOnly', true);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toEqual('1 of 50 pages');\n expect(controls).toHaveAttribute('hidden');\n expect(firstPageBtn).toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).toHaveAttribute('hidden');\n });\n });\n });\n\n describe('perPageIncrements', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"500\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n pagination.setProperty('perPageIncrements', [10, 20, 30]);\n await page.waitForChanges();\n });\n\n it('show perPage dropdown', async () => {\n const select = await page.find('q2-pagination >>> q2-select');\n expect(select).toBeTruthy();\n const options = await page.findAll('q2-pagination >>> q2-select > q2-option');\n expect(options).toHaveLength(3);\n });\n\n it('set perPage properly using dropdown', async () => {\n await dispatchEvent(page, ['q2-pagination', 'q2-select', 'q2-input'], 'click');\n const options = await page.findAll('q2-pagination >>> q2-select > q2-option');\n // click 2nd option (perPage 20)\n options[1].click();\n await page.waitForChanges();\n expect(await pagination.getProperty('perPage')).toBe(20);\n });\n });\n });\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations', async () => {\n const page = await setup({\n html: `<q2-pagination total=\"100\" per-page=\"10\"></q2-pagination>`,\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {});\n describe('Other', () => {});\n });\n\n describe('Methods', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"100\" per-page=\"10\"></q2-pagination>`);\n await page.waitForChanges();\n pagination = await page.find('q2-pagination');\n });\n describe('clickNextPage', () => {\n it('clicks the next button and emits change event', async () => {\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('clickNextPage');\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(2);\n expect(changeSpy).toHaveReceivedEventDetail({ page: 2 });\n });\n it('does nothing if the button is disabled', async () => {\n pagination.setProperty('page', 10);\n await page.waitForChanges();\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('clickNextPage');\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(10);\n expect(changeSpy).not.toHaveReceivedEvent();\n });\n });\n\n describe('clickPreviousPage', () => {\n it('clicks the previous button and emits change event', async () => {\n pagination.setProperty('page', 2);\n await page.waitForChanges();\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('clickPreviousPage');\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(1);\n expect(changeSpy).toHaveReceivedEventDetail({ page: 1 });\n });\n it('does nothing if the button is disabled', async () => {\n pagination.setProperty('page', 1);\n await page.waitForChanges();\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('clickPreviousPage');\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(1);\n expect(changeSpy).not.toHaveReceivedEvent();\n });\n });\n\n describe('clickFirstPage', () => {\n it('clicks the first page button and emits change event', async () => {\n pagination.setProperty('page', 5);\n await page.waitForChanges();\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('clickFirstPage');\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(1);\n expect(changeSpy).toHaveReceivedEventDetail({ page: 1 });\n });\n it('does nothing if the button is disabled', async () => {\n pagination.setProperty('page', 1);\n await page.waitForChanges();\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('clickFirstPage');\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(1);\n expect(changeSpy).not.toHaveReceivedEvent();\n });\n });\n\n describe('clickLastPage', () => {\n it('clicks the last page button and emits change event', async () => {\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('clickLastPage');\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(10);\n expect(changeSpy).toHaveReceivedEventDetail({ page: 10 });\n });\n it('does nothing if the button is disabled', async () => {\n pagination.setProperty('page', 10);\n await page.waitForChanges();\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('clickLastPage');\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(10);\n expect(changeSpy).not.toHaveReceivedEvent();\n });\n });\n\n describe('setPageValue', () => {\n it('setPageValue inputs the value in the input field and emits change event', async () => {\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('setPageValue', 5);\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(5);\n expect(changeSpy).toHaveReceivedEventDetail({ page: 5 });\n });\n it('does nothing if the value is invalid', async () => {\n pagination.setProperty('page', 1);\n await page.waitForChanges();\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('setPageValue', -1);\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(1);\n expect(changeSpy).not.toHaveReceivedEvent();\n });\n });\n\n describe('selectPerPageIncrementValue', () => {\n it('selects the value provided from the increment dropdown', async () => {\n pagination.setProperty('perPageIncrements', [10, 20, 30]);\n await page.waitForChanges();\n await pagination.callMethod('selectPerPageIncrementValue', 20);\n await page.waitForChanges();\n expect(await pagination.getProperty('perPage')).toBe(20);\n });\n it('does nothing if the value is invalid', async () => {\n pagination.setProperty('perPageIncrements', [10, 20, 30]);\n await page.waitForChanges();\n await pagination.callMethod('selectPerPageIncrementValue', 25);\n await page.waitForChanges();\n expect(await pagination.getProperty('perPage')).toBe(10);\n });\n });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"q2-pagination-test.e2e.js","sourceRoot":"","sources":["../../../../../src/components/q2-pagination/test/q2-pagination-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { setup, setTestStrings, dispatchEvent, getListOfStyleCompilationIssues, evaluateA11y } from '@/utils/helpers';\n\ndescribe('q2-pagination', () => {\n let page: E2EPage;\n let pagination: E2EElement;\n let description: E2EElement;\n let controls: E2EElement;\n let input: E2EElement;\n let firstPageBtn: E2EElement;\n let prevPageBtn: E2EElement;\n let nextPageBtn: E2EElement;\n let lastPageBtn: E2EElement;\n let changeSpy: any;\n\n const isInputFocused = async (page: E2EPage) => {\n return page.$eval('body', () => document.activeElement.shadowRoot?.activeElement.tagName === 'Q2-INPUT');\n };\n const innerActiveTestId = async (page: E2EPage) => {\n return page.$eval(\n 'body',\n () => document.activeElement.shadowRoot?.activeElement.getAttribute('test-id') ?? null\n );\n };\n\n beforeEach(async () => {\n page = await setup({ html: '' });\n await setTestStrings(page, {\n 'tecton.element.pagination.title': 'Pagination',\n 'tecton.element.pagination.defaultRecordType': 'Records',\n 'tecton.element.pagination.description': '{range} of {total} {recordType}',\n 'tecton.element.pagination.pages': '{current} of {total} pages',\n 'tecton.element.pagination.page': 'Page',\n 'tecton.element.pagination.ofPages': 'of {0}',\n 'tecton.element.pagination.firstPage': 'First page',\n 'tecton.element.pagination.lastPage': 'Last page',\n 'tecton.element.pagination.nextPage': 'Next page',\n 'tecton.element.pagination.previousPage': 'Previous page',\n 'tecton.element.pagination.goToPages': 'Go to page {next} of {total} pages',\n 'tecton.element.pagination.goToRecords': 'Go to {range} of {total} {recordType}',\n });\n });\n\n it('properly compiles CSS vars and functions', async () => {\n page = await setup({ html: '<q2-pagination></q2-pagination>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-pagination')).toHaveLength(0);\n });\n\n describe('button groups', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"100\" per-page=\"10\"></q2-pagination>`);\n await page.waitForChanges();\n pagination = await page.find('q2-pagination');\n firstPageBtn = await page.find('q2-pagination >>> [test-id=firstPageBtn]');\n prevPageBtn = await page.find('q2-pagination >>> [test-id=prevPageBtn]');\n nextPageBtn = await page.find('q2-pagination >>> [test-id=nextPageBtn]');\n lastPageBtn = await page.find('q2-pagination >>> [test-id=lastPageBtn]');\n });\n\n describe('when on first page', () => {\n it('disables firstPageBtn and prevPageBtn', async () => {\n await pagination.setProperty('page', 1);\n await page.waitForChanges();\n\n expect(firstPageBtn).toHaveAttribute('disabled');\n expect(prevPageBtn).toHaveAttribute('disabled');\n expect(nextPageBtn).not.toHaveAttribute('disabled');\n expect(lastPageBtn).not.toHaveAttribute('disabled');\n });\n });\n\n describe('when on last page', () => {\n it('disables lastPageBtn and nextPageBtn', async () => {\n await pagination.setProperty('page', 10);\n await page.waitForChanges();\n\n expect(firstPageBtn).not.toHaveAttribute('disabled');\n expect(prevPageBtn).not.toHaveAttribute('disabled');\n expect(nextPageBtn).toHaveAttribute('disabled');\n expect(lastPageBtn).toHaveAttribute('disabled');\n });\n });\n });\n\n describe('controls', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"100\" per-page=\"10\"></q2-pagination>`);\n await page.waitForChanges();\n pagination = await page.find('q2-pagination');\n input = await page.find('q2-pagination >>> [test-id=pageInput]');\n });\n\n describe('when value is attempted to be set above max', () => {\n it('forces the value to the max value', async () => {\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"pageInput\"]'], 'change', {\n detail: {\n value: '11',\n },\n });\n expect(await input.getProperty('value')).toEqual('10');\n });\n });\n\n describe('when value is attempted to be set below min', () => {\n it('forces the value to the min value', async () => {\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"pageInput\"]'], 'change', {\n detail: {\n value: '-100',\n },\n });\n expect(await input.getProperty('value')).toEqual('1');\n });\n });\n });\n\n describe('when input wrapper is clicked', () => {\n it('focus is passed to the input', async () => {\n await page.setContent(`<q2-pagination total=\"100\" per-page=\"10\"></q2-pagination>`);\n await page.waitForChanges();\n\n expect(await isInputFocused(page)).toEqual(false);\n\n const inputWrapper = await page.find('q2-pagination >>> .input-wrapper');\n await inputWrapper.click();\n\n expect(await isInputFocused(page)).toEqual(true);\n });\n });\n\n describe('when total is 0', () => {\n it('page should be 0 and first/prev button should be disabled', async () => {\n await page.setContent(`<q2-pagination total=\"10\" per-page=\"10\" records-only=\"false\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n await pagination.setProperty('total', 0);\n await page.waitForChanges();\n\n input = await page.find('q2-pagination >>> [test-id=inputField]');\n description = await page.find('q2-pagination >>> [test-id=\"description\"]');\n firstPageBtn = await page.find('q2-pagination >>> [test-id=firstPageBtn]');\n prevPageBtn = await page.find('q2-pagination >>> [test-id=prevPageBtn]');\n\n await page.waitForChanges();\n expect(description.textContent.startsWith('0')).toBe(true);\n expect(await input.getProperty('value')).toEqual('0');\n expect(firstPageBtn).toHaveAttribute('disabled');\n expect(prevPageBtn).toHaveAttribute('disabled');\n });\n });\n\n describe('when on a mobile width device', () => {\n beforeEach(async () => {\n await page.setViewport({ width: 200, height: 800 });\n await page.setContent(`<q2-pagination total=\"500\"></q2-pagination>`);\n await page.waitForChanges();\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n firstPageBtn = await page.find('q2-pagination >>> [test-id=firstPageBtn]');\n prevPageBtn = await page.find('q2-pagination >>> [test-id=prevPageBtn]');\n nextPageBtn = await page.find('q2-pagination >>> [test-id=nextPageBtn]');\n lastPageBtn = await page.find('q2-pagination >>> [test-id=lastPageBtn]');\n });\n\n it('hides first and last buttons as well as content block on render', async () => {\n expect(controls).toHaveAttribute('hidden');\n expect(firstPageBtn).toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).toHaveAttribute('hidden');\n });\n\n it('automatically toggles on viewport resize', async () => {\n await page.setViewport({ width: 800, height: 800 });\n await page.waitForChanges();\n\n expect(controls).not.toHaveAttribute('hidden');\n expect(firstPageBtn).not.toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).not.toHaveAttribute('hidden');\n\n await page.setViewport({ width: 200, height: 800 });\n await page.waitForChanges();\n\n expect(controls).toHaveAttribute('hidden');\n expect(firstPageBtn).toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).toHaveAttribute('hidden');\n });\n });\n\n describe('@Events', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"100\"></q2-pagination>`);\n await page.waitForChanges();\n pagination = await page.find('q2-pagination');\n });\n\n describe('focus', () => {\n describe('when event is dispatched', () => {\n describe('when standard view is displayed', () => {\n it('focuses the input field', async () => {\n await dispatchEvent(page, 'q2-pagination', 'focus');\n expect(await innerActiveTestId(page)).toEqual('pageInput');\n });\n });\n\n describe('when simplified view is displayed', () => {\n it('focuses the first non-disabled button', async () => {\n await pagination.setProperty('pagesOnly', true);\n await page.waitForChanges();\n await dispatchEvent(page, 'q2-pagination', 'focus');\n expect(await innerActiveTestId(page)).toEqual('nextPageBtn');\n });\n });\n });\n\n describe('when when element.focus() is called', () => {\n describe('when standard view is displayed', () => {\n it('focuses the input field', async () => {\n await pagination.focus();\n expect(await innerActiveTestId(page)).toEqual('pageInput');\n });\n });\n\n describe('when simplified view is displayed', () => {\n it('focuses the first non-disabled button', async () => {\n await pagination.setProperty('pagesOnly', true);\n await page.waitForChanges();\n await pagination.focus();\n expect(await innerActiveTestId(page)).toEqual('nextPageBtn');\n });\n });\n });\n });\n\n describe('change', () => {\n describe('change event is emitted with page property in event detail', () => {\n beforeEach(async () => {\n await pagination.setProperty('page', 5);\n await page.waitForChanges();\n });\n\n it('when first page button is clicked', async () => {\n changeSpy = await pagination.spyOnEvent('change');\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"firstPageBtn\"]'], 'click');\n expect(changeSpy).toHaveReceivedEventDetail({\n page: 1,\n });\n });\n\n it('when previous page button is clicked', async () => {\n changeSpy = await pagination.spyOnEvent('change');\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"prevPageBtn\"]'], 'click');\n expect(changeSpy).toHaveReceivedEventDetail({\n page: 4,\n });\n });\n\n it('when user inputs page number', async () => {\n changeSpy = await pagination.spyOnEvent('change');\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"pageInput\"]'], 'change', {\n detail: {\n value: 4,\n },\n });\n expect(changeSpy).toHaveReceivedEventDetail({\n page: 4,\n });\n });\n\n it('when next page button is clicked', async () => {\n changeSpy = await pagination.spyOnEvent('change');\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"nextPageBtn\"]'], 'click');\n expect(changeSpy).toHaveReceivedEventDetail({\n page: 6,\n });\n });\n\n it('when last page button is clicked', async () => {\n changeSpy = await pagination.spyOnEvent('change');\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"lastPageBtn\"]'], 'click');\n expect(changeSpy).toHaveReceivedEventDetail({\n page: 10,\n });\n });\n });\n });\n });\n\n describe('@Props', () => {\n describe('recordType', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n });\n\n describe('when not provided', () => {\n it('defaults to \"records\"', async () => {\n await pagination.setProperty('recordType', undefined);\n await page.waitForChanges();\n\n description = await page.find('q2-pagination >>> [test-id=description]');\n expect(description.textContent).toContain('records');\n });\n });\n\n describe('when provided', () => {\n it('displays in the description', async () => {\n await pagination.setProperty('recordType', 'Accounts');\n await page.waitForChanges();\n\n description = await page.find('q2-pagination >>> [test-id=description]');\n expect(description.textContent).toContain('accounts');\n });\n });\n });\n\n describe('perPage', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"500\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n });\n\n describe('when not provided', () => {\n it('defaults to 10', async () => {\n await pagination.setProperty('perPage', undefined);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toContain('1 - 10');\n expect(controls.textContent).toContain('of 50');\n });\n });\n\n describe('when provided', () => {\n it('is used to determine description and controls text', async () => {\n await pagination.setProperty('perPage', '20');\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toContain('1 - 20');\n expect(controls.textContent).toContain('of 25');\n });\n });\n });\n\n describe('total', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n });\n\n describe('when not provided', () => {\n it('defaults to 10', async () => {\n await pagination.setProperty('total', undefined);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toContain('0 records');\n expect(controls.textContent).toContain('of 0');\n });\n });\n\n describe('when provided', () => {\n it('is used to determine description and controls text', async () => {\n await pagination.setProperty('total', '50000');\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toContain('50,000');\n expect(controls.textContent).toContain('of 5,000');\n });\n });\n });\n\n describe('page', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"500\" page=\"1\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n });\n\n describe('when not provided', () => {\n it('defaults to 1', async () => {\n await pagination.setProperty('page', undefined);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n input = await page.find('q2-pagination >>> [test-id=pageInput]');\n\n expect(description.textContent).toContain('1 - 10');\n expect(await input.getProperty('value')).toEqual('1');\n });\n });\n\n describe('when provided', () => {\n it('is used to determine description and controls text', async () => {\n await pagination.setProperty('page', 5);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n input = await page.find('q2-pagination >>> [test-id=pageInput]');\n\n expect(description.textContent).toContain('41 - 50');\n expect(await input.getProperty('value')).toEqual('5');\n });\n });\n });\n\n describe('pages', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination pages-only total=\"5000\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n });\n\n describe('when not provided', () => {\n it('auto calculates page count', async () => {\n await pagination.setProperty('pages', undefined);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n\n expect(description.textContent).toContain('1 of 500 pages');\n });\n });\n\n describe('when provided', () => {\n it('is used as the page count', async () => {\n await pagination.setProperty('pages', '20');\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n\n expect(description.textContent).toContain('1 of 20 pages');\n });\n });\n });\n\n describe('recordsOnly', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"500\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n await page.waitForChanges();\n firstPageBtn = await page.find('q2-pagination >>> [test-id=firstPageBtn]');\n prevPageBtn = await page.find('q2-pagination >>> [test-id=prevPageBtn]');\n nextPageBtn = await page.find('q2-pagination >>> [test-id=nextPageBtn]');\n lastPageBtn = await page.find('q2-pagination >>> [test-id=lastPageBtn]');\n });\n\n describe('when not provided', () => {\n it('displays standard layout', async () => {\n await pagination.setProperty('recordsOnly', undefined);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toEqual('1 - 10 of 500 records');\n expect(controls).not.toHaveAttribute('hidden');\n expect(firstPageBtn).not.toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).not.toHaveAttribute('hidden');\n });\n });\n\n describe('when provided', () => {\n it('hides first and last buttons as well as content block', async () => {\n await pagination.setProperty('recordsOnly', true);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toEqual('1 - 10 of 500 records');\n expect(controls).toHaveAttribute('hidden');\n expect(firstPageBtn).toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn.getAttribute('label')).toEqual('Go to 11 - 20 of 500 records');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).toHaveAttribute('hidden');\n });\n it('should provide label correctly for prev and next buttons', async () => {\n await pagination.setProperty('recordsOnly', true);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toEqual('1 - 10 of 500 records');\n expect(controls).toHaveAttribute('hidden');\n expect(firstPageBtn).toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).toHaveAttribute('hidden');\n\n expect(nextPageBtn.getAttribute('label')).toEqual('Go to 11 - 20 of 500 records');\n await dispatchEvent(page, ['q2-pagination', '[test-id=\"nextPageBtn\"]'], 'click');\n await page.waitForChanges();\n expect(nextPageBtn.getAttribute('label')).toEqual('Go to 21 - 30 of 500 records');\n expect(prevPageBtn.getAttribute('label')).toEqual('Go to 1 - 10 of 500 records');\n });\n });\n });\n\n describe('pagesOnly', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"500\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n await page.waitForChanges();\n firstPageBtn = await page.find('q2-pagination >>> [test-id=firstPageBtn]');\n prevPageBtn = await page.find('q2-pagination >>> [test-id=prevPageBtn]');\n nextPageBtn = await page.find('q2-pagination >>> [test-id=nextPageBtn]');\n lastPageBtn = await page.find('q2-pagination >>> [test-id=lastPageBtn]');\n });\n\n describe('when not provided', () => {\n it('displays standard layout', async () => {\n await pagination.setProperty('pagesOnly', undefined);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toEqual('1 - 10 of 500 records');\n expect(controls).not.toHaveAttribute('hidden');\n expect(firstPageBtn).not.toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).not.toHaveAttribute('hidden');\n });\n });\n\n describe('when provided', () => {\n it('hides first and last buttons as well as content block and displays page count', async () => {\n await pagination.setProperty('pagesOnly', true);\n await page.waitForChanges();\n description = await page.find('q2-pagination >>> [test-id=description]');\n controls = await page.find('q2-pagination >>> [test-id=controls]');\n\n expect(description.textContent).toEqual('1 of 50 pages');\n expect(controls).toHaveAttribute('hidden');\n expect(firstPageBtn).toHaveAttribute('hidden');\n expect(prevPageBtn).not.toHaveAttribute('hidden');\n expect(nextPageBtn).not.toHaveAttribute('hidden');\n expect(lastPageBtn).toHaveAttribute('hidden');\n });\n });\n });\n\n describe('perPageIncrements', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"500\"></q2-pagination>`);\n pagination = await page.find('q2-pagination');\n pagination.setProperty('perPageIncrements', [10, 20, 30]);\n await page.waitForChanges();\n });\n\n it('show perPage dropdown', async () => {\n const select = await page.find('q2-pagination >>> q2-select');\n expect(select).toBeTruthy();\n const options = await page.findAll('q2-pagination >>> q2-select > q2-option');\n expect(options).toHaveLength(3);\n });\n\n it('set perPage properly using dropdown', async () => {\n await dispatchEvent(page, ['q2-pagination', 'q2-select', 'q2-input'], 'click');\n const options = await page.findAll('q2-pagination >>> q2-select > q2-option');\n // click 2nd option (perPage 20)\n options[1].focus();\n options[1].click();\n await page.waitForChanges();\n expect(await pagination.getProperty('perPage')).toBe(20);\n });\n });\n });\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations', async () => {\n const page = await setup({\n html: `<q2-pagination total=\"100\" per-page=\"10\"></q2-pagination>`,\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {});\n describe('Other', () => {});\n });\n\n describe('Methods', () => {\n beforeEach(async () => {\n await page.setContent(`<q2-pagination total=\"100\" per-page=\"10\"></q2-pagination>`);\n await page.waitForChanges();\n pagination = await page.find('q2-pagination');\n });\n describe('clickNextPage', () => {\n it('clicks the next button and emits change event', async () => {\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('clickNextPage');\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(2);\n expect(changeSpy).toHaveReceivedEventDetail({ page: 2 });\n });\n it('does nothing if the button is disabled', async () => {\n pagination.setProperty('page', 10);\n await page.waitForChanges();\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('clickNextPage');\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(10);\n expect(changeSpy).not.toHaveReceivedEvent();\n });\n });\n\n describe('clickPreviousPage', () => {\n it('clicks the previous button and emits change event', async () => {\n pagination.setProperty('page', 2);\n await page.waitForChanges();\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('clickPreviousPage');\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(1);\n expect(changeSpy).toHaveReceivedEventDetail({ page: 1 });\n });\n it('does nothing if the button is disabled', async () => {\n pagination.setProperty('page', 1);\n await page.waitForChanges();\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('clickPreviousPage');\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(1);\n expect(changeSpy).not.toHaveReceivedEvent();\n });\n });\n\n describe('clickFirstPage', () => {\n it('clicks the first page button and emits change event', async () => {\n pagination.setProperty('page', 5);\n await page.waitForChanges();\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('clickFirstPage');\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(1);\n expect(changeSpy).toHaveReceivedEventDetail({ page: 1 });\n });\n it('does nothing if the button is disabled', async () => {\n pagination.setProperty('page', 1);\n await page.waitForChanges();\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('clickFirstPage');\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(1);\n expect(changeSpy).not.toHaveReceivedEvent();\n });\n });\n\n describe('clickLastPage', () => {\n it('clicks the last page button and emits change event', async () => {\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('clickLastPage');\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(10);\n expect(changeSpy).toHaveReceivedEventDetail({ page: 10 });\n });\n it('does nothing if the button is disabled', async () => {\n pagination.setProperty('page', 10);\n await page.waitForChanges();\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('clickLastPage');\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(10);\n expect(changeSpy).not.toHaveReceivedEvent();\n });\n });\n\n describe('setPageValue', () => {\n it('setPageValue inputs the value in the input field and emits change event', async () => {\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('setPageValue', 5);\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(5);\n expect(changeSpy).toHaveReceivedEventDetail({ page: 5 });\n });\n it('does nothing if the value is invalid', async () => {\n pagination.setProperty('page', 1);\n await page.waitForChanges();\n changeSpy = await pagination.spyOnEvent('change');\n await pagination.callMethod('setPageValue', -1);\n await page.waitForChanges();\n expect(await pagination.getProperty('page')).toBe(1);\n expect(changeSpy).not.toHaveReceivedEvent();\n });\n });\n\n describe('selectPerPageIncrementValue', () => {\n it('selects the value provided from the increment dropdown', async () => {\n pagination.setProperty('perPageIncrements', [10, 20, 30]);\n await page.waitForChanges();\n await pagination.callMethod('selectPerPageIncrementValue', 20);\n await page.waitForChanges();\n expect(await pagination.getProperty('perPage')).toBe(20);\n });\n it('does nothing if the value is invalid', async () => {\n pagination.setProperty('perPageIncrements', [10, 20, 30]);\n await page.waitForChanges();\n await pagination.callMethod('selectPerPageIncrementValue', 25);\n await page.waitForChanges();\n expect(await pagination.getProperty('perPage')).toBe(10);\n });\n });\n });\n});\n"]}
|
|
@@ -342,7 +342,7 @@ export class Q2Pill {
|
|
|
342
342
|
wrapperClassNames.push('has-icon');
|
|
343
343
|
if (optionCount)
|
|
344
344
|
wrapperClassNames.push('has-options');
|
|
345
|
-
return (h("click-elsewhere", { key: '
|
|
345
|
+
return (h("click-elsewhere", { key: 'c9b3e809fd37896292b160ae76cc0f5c6922ae6a', onChange: this.onClickElsewhere }, h("div", { key: '0827c66963b1823bb295bc3f3faa6ca42dddef0f', class: wrapperClassNames.join(' ') }, h("div", { key: '0433e16bc73d9e3f16779b6caf389cd93f72bb3e', class: "btn-height-wrapper", ref: el => (this.primaryBtnWrapper = el), onClick: this.handleWrapperClick, tabIndex: -1 }, h("button", { key: '8050576845cdb23971103766f2401064ce0cad88', class: "btn-primary", "test-id": "btn-control", type: "button", role: (optionCount && 'combobox') || undefined, ref: el => (this.primaryBtn = el), onClick: this.handleClick, onKeyDown: this.handleKeydown, onFocusout: this.handleFocusOut, disabled: this.disabled, "aria-roledescription": !optionCount && 'filter', "aria-controls": (optionCount && 'option-list') || undefined, "aria-expanded": (optionCount && `${!!open}`) || undefined, "aria-label": this.buttonContent, "aria-describedby": (optionCount && 'option-description') || undefined }, this.truncatedButtonContent, !optionCount && active && h("span", { key: '336ae9801e05bd79e9295500840888f13b1c8965', class: "sr" }, "(", loc('tecton.element.pill.active'), ")"))), this.renderIcon(), !!optionCount && this.renderHiddenElement()), this.optionCount > 0 && (h("q2-popover", { key: '8b5aaba68697d6697b0676b12e22dd5ae2bff171', ref: el => (this.popoverElement = el), controlElement: this.primaryBtn, open: this.open, "max-height": this.popoverMaxHeight, minHeight: this.popoverMinHeight, direction: this.popoverDirection, align: this.popoverAlignment, onFocusout: this.handleFocusOut }, h("div", { key: 'a549cebcd60061337dd5050a7c032b6a8fc17bda', class: "popover-content" }, h("div", { key: 'd2fa4b73da36e0e99ed757ff79ce267222212dd8', ref: el => (this.popoverTopContainer = el), class: "popover-top-container", tabindex: "-1", hidden: !this.hasPopoverTop, onKeyDown: this.handleKeydown }, h("slot", { key: '29853c6df6666b9f1140bec1f1f4228cc678d975', name: "popover-top" })), h("q2-option-list", { key: '6ec051510319b4754990db8116b59cf143dec6be', type: "listbox", ref: el => (this.optionList = el), id: "option-list", onChange: this.handleChange, multiple: this.multiple, selectedOptions: this.selectedOptions, onReady: () => this.updateSelectedOptionElements(), label: loc('tecton.element.optionList.label', [this.optionListLabel]) }, h("slot", { key: 'f05e10a03bab9955e957a347210e67fdd792ea7d' })), h("div", { key: 'c09db49ec7e48e707bc5f2757df5cfb980c29e35', ref: el => (this.popoverBottomContainer = el), class: "popover-bottom-container", tabindex: "-1", hidden: !this.hasPopoverBottom, onKeyDown: this.handleKeydown }, h("slot", { key: 'c6c2b55e80afaff64211777bf7c2994da15a3bc7', name: "popover-bottom" })))))));
|
|
346
346
|
}
|
|
347
347
|
static get is() { return "q2-pill"; }
|
|
348
348
|
static get encapsulation() { return "shadow"; }
|
|
@@ -65,14 +65,17 @@ button {
|
|
|
65
65
|
visibility: hidden;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
.container {
|
|
68
|
+
.legacy.container {
|
|
69
69
|
display: none;
|
|
70
70
|
}
|
|
71
|
-
|
|
72
|
-
.show {
|
|
71
|
+
.legacy.show {
|
|
73
72
|
display: block;
|
|
74
|
-
position: fixed;
|
|
75
73
|
z-index: var(--tct-popover-z-index, 50);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
:popover-open,
|
|
77
|
+
.show {
|
|
78
|
+
position: absolute;
|
|
76
79
|
margin: 0;
|
|
77
80
|
padding: 0;
|
|
78
81
|
overflow: auto;
|
|
@@ -94,39 +97,44 @@ button {
|
|
|
94
97
|
scrollbar-width: thin;
|
|
95
98
|
scrollbar-color: var(--comp-scrollbar-color) transparent;
|
|
96
99
|
}
|
|
97
|
-
:
|
|
100
|
+
:popover-open.block,
|
|
101
|
+
.show.block {
|
|
98
102
|
right: unset;
|
|
99
103
|
width: var(--comp-pop-width);
|
|
100
104
|
min-width: var(--tct-popover-min-width, unset);
|
|
101
105
|
}
|
|
102
|
-
:
|
|
106
|
+
:popover-open.left,
|
|
107
|
+
.show.left {
|
|
103
108
|
left: var(--comp-pop-left);
|
|
104
109
|
right: unset;
|
|
105
110
|
}
|
|
106
|
-
:
|
|
111
|
+
:popover-open.right,
|
|
112
|
+
.show.right {
|
|
107
113
|
right: var(--comp-pop-right);
|
|
108
114
|
left: unset;
|
|
109
115
|
}
|
|
116
|
+
:popover-open.down,
|
|
110
117
|
.show.down {
|
|
111
118
|
top: var(--tct-popover-top, var(--comp-pop-top));
|
|
112
119
|
bottom: unset;
|
|
113
120
|
}
|
|
121
|
+
:popover-open.up,
|
|
114
122
|
.show.up {
|
|
115
123
|
top: unset;
|
|
116
124
|
bottom: var(--comp-pop-bottom);
|
|
117
125
|
}
|
|
118
|
-
|
|
119
|
-
position: absolute;
|
|
120
|
-
}
|
|
126
|
+
:popover-open::-webkit-scrollbar,
|
|
121
127
|
.show::-webkit-scrollbar {
|
|
122
128
|
width: var(--comp-scrollbar-size);
|
|
123
129
|
height: var(--comp-scrollbar-size);
|
|
124
130
|
margin: 5px;
|
|
125
131
|
}
|
|
132
|
+
:popover-open::-webkit-scrollbar-thumb,
|
|
126
133
|
.show::-webkit-scrollbar-thumb {
|
|
127
134
|
background: var(--comp-scrollbar-color);
|
|
128
135
|
border-radius: var(--comp-scrollbar-border-radius);
|
|
129
136
|
}
|
|
137
|
+
:popover-open::-webkit-scrollbar-track,
|
|
130
138
|
.show::-webkit-scrollbar-track {
|
|
131
139
|
background: transparent;
|
|
132
140
|
border-radius: var(--comp-scrollbar-border-radius);
|