q2-tecton-elements 1.60.0 → 1.60.2
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 +911 -870
- package/dist/cjs/click-elsewhere.cjs.entry.js +1 -1
- package/dist/cjs/{index-JnAD7tEB.js → index-BYXz4owL.js} +5 -2
- package/dist/cjs/index-BYXz4owL.js.map +1 -0
- package/dist/cjs/{index-B6mUspT0.js → index-BuXzB2ML.js} +3 -3
- package/dist/cjs/{index-B6mUspT0.js.map → index-BuXzB2ML.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/q2-action-group_2.cjs.entry.js +2 -2
- package/dist/cjs/q2-action-sheet.cjs.entry.js +2 -2
- package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
- package/dist/cjs/q2-badge.q2-btn.q2-icon.q2-input.q2-loading.q2-tab-container.q2-tab-pane.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-badge_7.cjs.entry.js +171 -27
- package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-calendar.cjs.entry.js +2 -2
- package/dist/cjs/q2-card.cjs.entry.js +2 -2
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +2 -2
- package/dist/cjs/q2-carousel.cjs.entry.js +2 -2
- package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
- package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
- package/dist/cjs/q2-chart-donut.cjs.entry.js +2 -2
- package/dist/cjs/q2-checkbox-group.cjs.entry.js +2 -2
- package/dist/cjs/q2-checkbox.cjs.entry.js +3 -3
- package/dist/cjs/q2-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-checkbox.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-context.cjs.entry.js +2 -2
- package/dist/cjs/q2-currency.cjs.entry.js +1 -1
- package/dist/cjs/q2-data-table.cjs.entry.js +2 -2
- package/dist/cjs/q2-detail.cjs.entry.js +2 -2
- package/dist/cjs/q2-dropdown-item.cjs.entry.js +2 -2
- package/dist/cjs/q2-dropdown.cjs.entry.js +2 -2
- package/dist/cjs/q2-editable-field.cjs.entry.js +2 -2
- package/dist/cjs/q2-example.cjs.entry.js +1 -1
- package/dist/cjs/q2-file-picker.cjs.entry.js +2 -2
- 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-grid-area.cjs.entry.js +1 -1
- package/dist/cjs/q2-grid.cjs.entry.js +1 -1
- package/dist/cjs/q2-item.cjs.entry.js +2 -2
- package/dist/cjs/q2-legend.cjs.entry.js +1 -1
- package/dist/cjs/q2-link_2.cjs.entry.js +2 -2
- package/dist/cjs/q2-loading-element.cjs.entry.js +2 -2
- package/dist/cjs/q2-loc.cjs.entry.js +2 -2
- package/dist/cjs/q2-message.cjs.entry.js +2 -2
- package/dist/cjs/q2-modal.cjs.entry.js +2 -2
- package/dist/cjs/q2-month-picker.cjs.entry.js +2 -2
- package/dist/cjs/q2-optgroup.cjs.entry.js +2 -2
- package/dist/cjs/q2-option-list_2.cjs.entry.js +2 -2
- package/dist/cjs/q2-option.cjs.entry.js +2 -2
- package/dist/cjs/q2-pagination.cjs.entry.js +2 -2
- package/dist/cjs/q2-pill.cjs.entry.js +2 -2
- package/dist/cjs/q2-radio-group.cjs.entry.js +2 -2
- package/dist/cjs/q2-radio.cjs.entry.js +2 -2
- package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
- package/dist/cjs/q2-section.cjs.entry.js +2 -2
- package/dist/cjs/q2-select.cjs.entry.js +2 -2
- package/dist/cjs/q2-stepper-pane.cjs.entry.js +2 -2
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
- package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
- package/dist/cjs/q2-tag.cjs.entry.js +2 -2
- package/dist/cjs/q2-tecton-elements.cjs.js +2 -2
- package/dist/cjs/q2-textarea.cjs.entry.js +2 -2
- package/dist/cjs/q2-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/{shapes-CmBHp0YP.js → shapes-AGx9jMFH.js} +3 -3
- package/dist/cjs/{shapes-CmBHp0YP.js.map → shapes-AGx9jMFH.js.map} +1 -1
- package/dist/cjs/tecton-tab-pane.cjs.entry.js +1 -1
- package/dist/collection/components/q2-checkbox/q2-checkbox.css +1 -0
- package/dist/collection/components/q2-data-table/q2-data-table.js +7 -7
- package/dist/collection/components/q2-file-picker/q2-file-picker.js +3 -3
- package/dist/collection/components/q2-grid/q2-grid.js +30 -30
- package/dist/collection/components/q2-grid-area/q2-grid-area.js +42 -42
- package/dist/collection/components/q2-icon/q2-icon.js +5 -20
- package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
- package/dist/collection/components/q2-input/q2-input.js +1 -1
- package/dist/collection/components/q2-loading/q2-loading.css +8 -0
- package/dist/collection/components/q2-loading/q2-loading.js +168 -5
- package/dist/collection/components/q2-loading/q2-loading.js.map +1 -1
- package/dist/collection/components/q2-option-list/q2-option-list.js +4 -4
- package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +2 -2
- package/dist/collection/utils/sprites.js +16 -0
- package/dist/collection/utils/sprites.js.map +1 -0
- package/dist/components/q2-checkbox2.js +1 -1
- package/dist/components/q2-checkbox2.js.map +1 -1
- package/dist/components/q2-icon2.js +5 -20
- package/dist/components/q2-icon2.js.map +1 -1
- package/dist/components/q2-loading2.js +154 -5
- package/dist/components/q2-loading2.js.map +1 -1
- package/dist/components/sprites.js +20 -0
- package/dist/components/sprites.js.map +1 -0
- package/dist/esm/click-elsewhere.entry.js +1 -1
- package/dist/esm/{index-COzomxjJ.js → index-CGkHOjh1.js} +5 -2
- package/dist/esm/index-CGkHOjh1.js.map +1 -0
- package/dist/esm/{index-CkXFIBxL.js → index-xCuy-dFb.js} +3 -3
- package/dist/{q2-tecton-elements/index-CkXFIBxL.js.map → esm/index-xCuy-dFb.js.map} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/q2-action-group_2.entry.js +2 -2
- package/dist/esm/q2-action-sheet.entry.js +2 -2
- package/dist/esm/q2-avatar.entry.js +1 -1
- package/dist/esm/q2-badge.q2-btn.q2-icon.q2-input.q2-loading.q2-tab-container.q2-tab-pane.entry.js.map +1 -1
- package/dist/esm/q2-badge_7.entry.js +171 -27
- package/dist/esm/q2-badge_7.entry.js.map +1 -1
- package/dist/esm/q2-calendar.entry.js +2 -2
- package/dist/esm/q2-card.entry.js +2 -2
- package/dist/esm/q2-carousel-pane.entry.js +2 -2
- package/dist/esm/q2-carousel.entry.js +2 -2
- package/dist/esm/q2-chart-area.entry.js +2 -2
- package/dist/esm/q2-chart-bar.entry.js +2 -2
- package/dist/esm/q2-chart-donut.entry.js +2 -2
- package/dist/esm/q2-checkbox-group.entry.js +2 -2
- package/dist/esm/q2-checkbox.entry.js +3 -3
- package/dist/esm/q2-checkbox.entry.js.map +1 -1
- package/dist/esm/q2-context.entry.js +2 -2
- package/dist/esm/q2-currency.entry.js +1 -1
- package/dist/esm/q2-data-table.entry.js +2 -2
- package/dist/esm/q2-detail.entry.js +2 -2
- package/dist/esm/q2-dropdown-item.entry.js +2 -2
- package/dist/esm/q2-dropdown.entry.js +2 -2
- package/dist/esm/q2-editable-field.entry.js +2 -2
- package/dist/esm/q2-example.entry.js +1 -1
- package/dist/esm/q2-file-picker.entry.js +2 -2
- package/dist/esm/q2-form.entry.js +1 -1
- package/dist/esm/q2-formatted-text.entry.js +1 -1
- package/dist/esm/q2-grid-area.entry.js +1 -1
- package/dist/esm/q2-grid.entry.js +1 -1
- package/dist/esm/q2-item.entry.js +2 -2
- package/dist/esm/q2-legend.entry.js +1 -1
- package/dist/esm/q2-link_2.entry.js +2 -2
- package/dist/esm/q2-loading-element.entry.js +2 -2
- package/dist/esm/q2-loc.entry.js +2 -2
- package/dist/esm/q2-message.entry.js +2 -2
- package/dist/esm/q2-modal.entry.js +2 -2
- package/dist/esm/q2-month-picker.entry.js +2 -2
- package/dist/esm/q2-optgroup.entry.js +2 -2
- package/dist/esm/q2-option-list_2.entry.js +2 -2
- package/dist/esm/q2-option.entry.js +2 -2
- package/dist/esm/q2-pagination.entry.js +2 -2
- package/dist/esm/q2-pill.entry.js +2 -2
- package/dist/esm/q2-radio-group.entry.js +2 -2
- package/dist/esm/q2-radio.entry.js +2 -2
- package/dist/esm/q2-relative-time.entry.js +2 -2
- package/dist/esm/q2-section.entry.js +2 -2
- package/dist/esm/q2-select.entry.js +2 -2
- package/dist/esm/q2-stepper-pane.entry.js +2 -2
- package/dist/esm/q2-stepper-vertical.entry.js +2 -2
- package/dist/esm/q2-stepper.entry.js +2 -2
- package/dist/esm/q2-tag.entry.js +2 -2
- package/dist/esm/q2-tecton-elements.js +3 -3
- package/dist/esm/q2-textarea.entry.js +2 -2
- package/dist/esm/q2-tooltip.entry.js +2 -2
- package/dist/esm/{shapes-ElQYMSyu.js → shapes-B6iI6sMH.js} +3 -3
- package/dist/esm/{shapes-ElQYMSyu.js.map → shapes-B6iI6sMH.js.map} +1 -1
- package/dist/esm/tecton-tab-pane.entry.js +1 -1
- package/dist/q2-tecton-elements/click-elsewhere.entry.js +1 -1
- package/dist/q2-tecton-elements/{index-COzomxjJ.js → index-CGkHOjh1.js} +5 -2
- package/dist/q2-tecton-elements/index-CGkHOjh1.js.map +1 -0
- package/dist/q2-tecton-elements/{index-CkXFIBxL.js → index-xCuy-dFb.js} +3 -3
- package/dist/{esm/index-CkXFIBxL.js.map → q2-tecton-elements/index-xCuy-dFb.js.map} +1 -1
- package/dist/q2-tecton-elements/q2-action-group_2.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-action-sheet.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-avatar.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-badge.q2-btn.q2-icon.q2-input.q2-loading.q2-tab-container.q2-tab-pane.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-badge_7.entry.js +259 -121
- package/dist/q2-tecton-elements/q2-badge_7.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-calendar.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-card.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-carousel.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-chart-area.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-chart-bar.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-chart-donut.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-checkbox.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-checkbox.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-checkbox.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-context.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-currency.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-data-table.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-detail.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-dropdown.entry.js +9 -9
- package/dist/q2-tecton-elements/q2-editable-field.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-file-picker.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-form.entry.js +5 -5
- package/dist/q2-tecton-elements/q2-formatted-text.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-grid-area.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-grid.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-item.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-legend.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-link_2.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-loading-element.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-loc.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-message.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-modal.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-month-picker.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-optgroup.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-option-list_2.entry.js +16 -16
- package/dist/q2-tecton-elements/q2-option.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-pagination.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-pill.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-radio-group.entry.js +12 -12
- package/dist/q2-tecton-elements/q2-radio.entry.js +5 -5
- package/dist/q2-tecton-elements/q2-relative-time.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-section.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-select.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-stepper.entry.js +8 -8
- package/dist/q2-tecton-elements/q2-tag.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +3 -3
- package/dist/q2-tecton-elements/q2-textarea.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-tooltip.entry.js +2 -2
- package/dist/q2-tecton-elements/{shapes-ElQYMSyu.js → shapes-B6iI6sMH.js} +3 -3
- package/dist/q2-tecton-elements/{shapes-ElQYMSyu.js.map → shapes-B6iI6sMH.js.map} +1 -1
- package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +4 -4
- package/dist/types/components/q2-icon/q2-icon.d.ts +0 -5
- package/dist/types/components/q2-loading/q2-loading.d.ts +16 -2
- package/dist/types/components.d.ts +2 -2
- package/dist/types/utils/sprites.d.ts +5 -0
- package/package.json +3 -3
- package/dist/cjs/index-JnAD7tEB.js.map +0 -1
- package/dist/esm/index-COzomxjJ.js.map +0 -1
- package/dist/q2-tecton-elements/index-COzomxjJ.js.map +0 -1
- /package/dist/types/{home/gitlab-runner/builds → builds}/q2e/development/tecton/tecton/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
4
|
-
var index$1 = require('./index-
|
|
5
|
-
var shapes = require('./shapes-
|
|
3
|
+
var index = require('./index-BYXz4owL.js');
|
|
4
|
+
var index$1 = require('./index-BuXzB2ML.js');
|
|
5
|
+
var shapes = require('./shapes-AGx9jMFH.js');
|
|
6
6
|
|
|
7
7
|
const q2BadgeCss = "*{box-sizing:border-box}*:active{outline:none}*:focus-visible{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:inline-block;line-height:0;--comp-badge-font-size:var(--app-font-size-small, 12px);--comp-badge-large-font-size:var(--app-font-size-medium, 14px);--comp-badge-background:var(--tct-badge-background, var(--t-a11y-gray-color-AAA, #6c6c6c));--comp-badge-color:var(--tct-badge-color, var(--t-base, #ffffff))}:host:host([status=info]){--comp-badge-background:var(--tct-badge-info-background, var(--const-stoplight-info, #0079c1));--comp-badge-color:var(--tct-badge-info-color, var(--const-stoplight-info-text, #ffffff))}:host:host([status=alert]){--comp-badge-background:var(--tct-badge-alert-background, var(--const-stoplight-alert, #d20a0a));--comp-badge-color:var(--tct-badge-alert-color, var(--const-stoplight-alert-text, #ffffff))}:host:host([status=warning]){--comp-badge-background:var(--tct-badge-warning-background, var(--const-stoplight-warning, #c35500));--comp-badge-color:var(--tct-badge-warning-color, var(--const-stoplight-warning-text, #ffffff))}:host:host([status=success]){--comp-badge-background:var(--tct-badge-success-background, var(--const-stoplight-success, #0e8a00));--comp-badge-color:var(--tct-badge-success-color, var(--const-stoplight-success-text, #ffffff))}:host:host([theme=primary]){--comp-badge-background:var(--tct-badge-primary-background, var(--t-primary, #6a4a9e));--comp-badge-color:var(--tct-badge-primary-color, var(--t-primary-text, #ffffff))}:host:host([theme=secondary]){--comp-badge-background:var(--tct-badge-secondary-background, var(--t-secondary, #b3c2cc));--comp-badge-color:var(--tct-badge-secondary-color, var(--t-secondary-text, #141414))}:host:host([theme=tertiary]){--comp-badge-background:var(--tct-badge-tertiary-background, var(--t-tertiary, #e8f5fc));--comp-badge-color:var(--tct-badge-tertiary-color, var(--t-tertiary-text, #141414))}.badge-container{white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;height:var(--tct-badge-height, 16px);min-width:var(--tct-badge-min-width, 16px);text-align:center;padding:var(--tct-badge-padding, 0 5px);color:var(--comp-badge-color);background:var(--comp-badge-background);border-radius:var(--tct-badge-border-radius, var(--t-badge-border-radius, 8px));border:var(--tct-badge-border);backdrop-filter:var(--tct-badge-backdrop-filter)}.badge-container .badge-text{font-size:var(--comp-badge-font-size);line-height:var(--tct-badge-line-height, 14px)}.badge-container .badge-text ::slotted(p){margin:0 !important;font-size:var(--comp-badge-font-size) !important}.badge-container.size-large{height:var(--tct-badge-large-height, 22px);min-width:var(--tct-badge-large-min-width, 22px);border-radius:var(--tct-badge-large-border-radius, 11px);padding:var(--tct-badge-large-padding, 0 6px)}.badge-container.size-large .badge-text{font-size:var(--comp-badge-large-font-size);line-height:var(--tct-badge-large-line-height, 20px)}.badge-container.size-large .badge-text ::slotted(p){margin:0 !important;font-size:var(--comp-badge-large-font-size) !important}.empty-variant{min-width:unset;width:16px;height:16px;padding:0}.empty-variant.size-large{min-width:unset;width:22px;height:22px;padding:0}";
|
|
8
8
|
|
|
@@ -240,6 +240,22 @@ const Q2Btn = class {
|
|
|
240
240
|
};
|
|
241
241
|
Q2Btn.style = q2BtnCss;
|
|
242
242
|
|
|
243
|
+
/**
|
|
244
|
+
* Checks for the sprite container element in the global DOM
|
|
245
|
+
* If it does not exist, it creates and appends it to the body, and returns it
|
|
246
|
+
*/
|
|
247
|
+
function getOrCreateSpriteContainer() {
|
|
248
|
+
const spriteContainerId = 'tecton-sprites';
|
|
249
|
+
let spriteContainer = document.querySelector(`#${spriteContainerId}`);
|
|
250
|
+
if (spriteContainer)
|
|
251
|
+
return spriteContainer;
|
|
252
|
+
spriteContainer = document.createElement('div');
|
|
253
|
+
spriteContainer.id = spriteContainerId;
|
|
254
|
+
spriteContainer.style.display = 'none';
|
|
255
|
+
document.body.appendChild(spriteContainer);
|
|
256
|
+
return spriteContainer;
|
|
257
|
+
}
|
|
258
|
+
|
|
243
259
|
const a11y = "standard";
|
|
244
260
|
const add = "standard";
|
|
245
261
|
const airplane = "standard";
|
|
@@ -859,8 +875,8 @@ const Q2Icon = class {
|
|
|
859
875
|
checkForSprite() {
|
|
860
876
|
var _a;
|
|
861
877
|
const { spriteId, spriteEventName } = this;
|
|
862
|
-
const spriteContainer =
|
|
863
|
-
let spriteElement = document.
|
|
878
|
+
const spriteContainer = getOrCreateSpriteContainer();
|
|
879
|
+
let spriteElement = document.getElementById(spriteId);
|
|
864
880
|
// If the sprite element exists and has the `data-loaded` attribute, we know we have everything we need
|
|
865
881
|
if ((_a = spriteElement === null || spriteElement === void 0 ? void 0 : spriteElement.hasAttribute('data-loaded')) !== null && _a !== void 0 ? _a : false) {
|
|
866
882
|
this.cloneSpriteNode();
|
|
@@ -882,8 +898,7 @@ const Q2Icon = class {
|
|
|
882
898
|
return false;
|
|
883
899
|
}
|
|
884
900
|
cloneSpriteNode() {
|
|
885
|
-
const
|
|
886
|
-
const spriteNode = spriteContainer.querySelector(`#tct-${this.type}`);
|
|
901
|
+
const spriteNode = document.getElementById(`tct-${this.type}`);
|
|
887
902
|
this.iconClone = spriteNode ? spriteNode.cloneNode(true) : undefined;
|
|
888
903
|
}
|
|
889
904
|
async fetchSprite() {
|
|
@@ -910,24 +925,9 @@ const Q2Icon = class {
|
|
|
910
925
|
else {
|
|
911
926
|
spriteElement.parentNode.replaceChild(svg, spriteElement);
|
|
912
927
|
}
|
|
913
|
-
spriteElement = document.
|
|
928
|
+
spriteElement = document.getElementById(spriteId);
|
|
914
929
|
spriteElement.dispatchEvent(new CustomEvent(spriteEventName, { bubbles: true }));
|
|
915
930
|
}
|
|
916
|
-
/**
|
|
917
|
-
* Checks for the sprite container element in the global DOM
|
|
918
|
-
* If it does not exist, it creates and appends it to the body
|
|
919
|
-
*/
|
|
920
|
-
getOrCreateSpriteContainer() {
|
|
921
|
-
const spriteContainerId = 'tecton-sprites';
|
|
922
|
-
let spriteContainer = document.querySelector(`#${spriteContainerId}`);
|
|
923
|
-
if (spriteContainer)
|
|
924
|
-
return spriteContainer;
|
|
925
|
-
spriteContainer = document.createElement('div');
|
|
926
|
-
spriteContainer.id = spriteContainerId;
|
|
927
|
-
spriteContainer.style.display = 'none';
|
|
928
|
-
document.body.appendChild(spriteContainer);
|
|
929
|
-
return spriteContainer;
|
|
930
|
-
}
|
|
931
931
|
setCustomSVGAttrs() {
|
|
932
932
|
const innerSVG = this.hostElement.querySelector('svg');
|
|
933
933
|
if (!innerSVG)
|
|
@@ -4508,13 +4508,15 @@ const Q2Input = class {
|
|
|
4508
4508
|
};
|
|
4509
4509
|
Q2Input.style = q2InputCss;
|
|
4510
4510
|
|
|
4511
|
-
const q2LoadingCss = "*{box-sizing:border-box}*:active{outline:none}*:focus-visible{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}.flex{display:flex}.flex-center{justify-content:center}.flex-left{justify-content:flex-start}.flex-right{justify-content:flex-end}.flex-v-center{align-items:center}.no-margin{margin:0}:host{display:block}:host([inline]),:host([modifiers*=inline]){display:inline-block}:host([hidden]){display:none}:host(:not([inline]):not([modifiers*=inline])){font-size:var(--tct-loading-spinner-size, var(--t-loading-spinner-size, var(--app-scale-12x, 60px)))}.q2-loading-animation{height:1em;width:1em}.half-circle-spinner,.half-circle-spinner *{box-sizing:border-box}.half-circle-spinner{border-radius:100%;position:relative}.half-circle-spinner .circle{position:absolute;width:100%;height:100%;border-radius:100%;border:0.0833333333em solid transparent}.half-circle-spinner .circle.circle-1{border-top-color:var(--tct-loading-primary-color, var(--t-loading-primary-color, var(--t-primary, #0079c1)));animation:half-circle-spinner-animation 1s infinite}.half-circle-spinner .circle.circle-2{border-bottom-color:var(--tct-loading-secondary-color, var(--t-loading-secondary-color, #9ddd4f));animation:half-circle-spinner-animation 1s infinite alternate}@keyframes half-circle-spinner-animation{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}:host{--comp-loading-skeleton-opacity:var(--var-loading-skeleton-opacity, 0.25)}@media (prefers-contrast: more){:host{--comp-loading-skeleton-opacity:var(--var-loading-skeleton-opacity, 1)}}.q2-loading-skeleton{position:relative;width:100%;height:100%;overflow:hidden;--comp-loading-skeleton-shimmer-color:var(--tct-loading-skeleton-shimmer-color, var(--t-base, rgba(255, 255, 255, 0.5)));--comp-loading-skeleton-vertical-gap:var(--tct-loading-skeleton-vertical-gap, var(--tct-scale-2, 10px));--comp-loading-skeleton-horizontal-gap:var(--tct-loading-skeleton-horizontal-gap, var(--tct-scale-2, 10px))}.q2-loading-skeleton-shimmer{position:absolute;width:1rem;height:100%;top:0;left:-100px;animation:skeletonShimmer 3s ease-in-out infinite;background-color:var(--comp-loading-skeleton-shimmer-color);box-shadow:0 0 25px 20px var(--comp-loading-skeleton-shimmer-color);transform:rotate(10deg)}.skeleton-shape.rectangle:not(.no-margin){margin:var(--tct-loading-skeleton-vertical-gap, var(--tct-scale-2, 10px)) var(--tct-loading-skeleton-horizontal-gap, var(--tct-scale-2, 10px))}.skeleton-shape.circle,.skeleton-shape.rectangle{background:var(--tct-loading-skeleton-element-background, var(--tct-loading-skeleton-element-bg, var(--t-gray-8, #808080)));opacity:var(--comp-loading-skeleton-opacity)}.skeleton-shape.rectangle{min-height:var(--tct-loading-skeleton-rectangle-min-height, 20px)}.skeleton-shape.circle{border-radius:50%;padding-top:100%}.flex .rectangle{flex-grow:1}.skeleton-table-row .rectangle{margin:var(--comp-loading-skeleton-vertical-gap) var(--comp-loading-skeleton-horizontal-gap)}.skeleton-table-row .rectangle:not(:first-child):not(:last-child){flex-grow:2}.skeleton-table-row-border .skeleton-shape{margin:0 var(--comp-loading-skeleton-horizontal-gap)}.form{flex-wrap:wrap}.form .field{margin:var(--comp-loading-skeleton-vertical-gap) 0}.form.columns-1 .field{flex-basis:100%}.form.columns-2 .field{flex-basis:50%}.form.columns-3 .field{flex-basis:33.3333%}.form.columns-4 .field{flex-basis:25%}.form.columns-5 .field{flex-basis:20%}.text .rectangle{margin-bottom:0}.text .header.center{margin:0 auto}.text .header.right{margin-left:auto}.text .header{height:1.5rem}.text .header.smaller{height:1rem}.detailed-item{flex-wrap:wrap}.detailed-item.right{flex-flow:row-reverse}.detailed-item-image{flex:0 0 auto;display:inline-flex}.center .detailed-item-image{flex-basis:100%;display:flex}.detailed-item-image .rectangle{flex-grow:0}.detailed-item-text>div{width:100%}.detailed-item-text{flex:1 1 auto}.detailed-item-text .text{margin-top:0;margin-bottom:0}.label-value{flex-wrap:wrap}.label-value .rectangle{flex-basis:calc(50% - 2 * var(--comp-loading-skeleton-horizontal-gap))}@keyframes skeletonShimmer{0%{left:-100px;opacity:1}70%{opacity:1}100%{left:800px;opacity:0}}";
|
|
4511
|
+
const q2LoadingCss = "*{box-sizing:border-box}*:active{outline:none}*:focus-visible{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}.flex{display:flex}.flex-center{justify-content:center}.flex-left{justify-content:flex-start}.flex-right{justify-content:flex-end}.flex-v-center{align-items:center}.no-margin{margin:0}:host{display:block}:host([inline]),:host([modifiers*=inline]){display:inline-block}:host([hidden]){display:none}:host(:not([inline]):not([modifiers*=inline])){font-size:var(--tct-loading-spinner-size, var(--t-loading-spinner-size, var(--app-scale-12x, 60px)))}.q2-loading-animation{height:1em;width:1em}#custom-loader-container{min-height:1em;min-width:1em}#custom-loader-container svg{display:block}.half-circle-spinner,.half-circle-spinner *{box-sizing:border-box}.half-circle-spinner{border-radius:100%;position:relative}.half-circle-spinner .circle{position:absolute;width:100%;height:100%;border-radius:100%;border:0.0833333333em solid transparent}.half-circle-spinner .circle.circle-1{border-top-color:var(--tct-loading-primary-color, var(--t-loading-primary-color, var(--t-primary, #0079c1)));animation:half-circle-spinner-animation 1s infinite}.half-circle-spinner .circle.circle-2{border-bottom-color:var(--tct-loading-secondary-color, var(--t-loading-secondary-color, #9ddd4f));animation:half-circle-spinner-animation 1s infinite alternate}@keyframes half-circle-spinner-animation{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}:host{--comp-loading-skeleton-opacity:var(--var-loading-skeleton-opacity, 0.25)}@media (prefers-contrast: more){:host{--comp-loading-skeleton-opacity:var(--var-loading-skeleton-opacity, 1)}}.q2-loading-skeleton{position:relative;width:100%;height:100%;overflow:hidden;--comp-loading-skeleton-shimmer-color:var(--tct-loading-skeleton-shimmer-color, var(--t-base, rgba(255, 255, 255, 0.5)));--comp-loading-skeleton-vertical-gap:var(--tct-loading-skeleton-vertical-gap, var(--tct-scale-2, 10px));--comp-loading-skeleton-horizontal-gap:var(--tct-loading-skeleton-horizontal-gap, var(--tct-scale-2, 10px))}.q2-loading-skeleton-shimmer{position:absolute;width:1rem;height:100%;top:0;left:-100px;animation:skeletonShimmer 3s ease-in-out infinite;background-color:var(--comp-loading-skeleton-shimmer-color);box-shadow:0 0 25px 20px var(--comp-loading-skeleton-shimmer-color);transform:rotate(10deg)}.skeleton-shape.rectangle:not(.no-margin){margin:var(--tct-loading-skeleton-vertical-gap, var(--tct-scale-2, 10px)) var(--tct-loading-skeleton-horizontal-gap, var(--tct-scale-2, 10px))}.skeleton-shape.circle,.skeleton-shape.rectangle{background:var(--tct-loading-skeleton-element-background, var(--tct-loading-skeleton-element-bg, var(--t-gray-8, #808080)));opacity:var(--comp-loading-skeleton-opacity)}.skeleton-shape.rectangle{min-height:var(--tct-loading-skeleton-rectangle-min-height, 20px)}.skeleton-shape.circle{border-radius:50%;padding-top:100%}.flex .rectangle{flex-grow:1}.skeleton-table-row .rectangle{margin:var(--comp-loading-skeleton-vertical-gap) var(--comp-loading-skeleton-horizontal-gap)}.skeleton-table-row .rectangle:not(:first-child):not(:last-child){flex-grow:2}.skeleton-table-row-border .skeleton-shape{margin:0 var(--comp-loading-skeleton-horizontal-gap)}.form{flex-wrap:wrap}.form .field{margin:var(--comp-loading-skeleton-vertical-gap) 0}.form.columns-1 .field{flex-basis:100%}.form.columns-2 .field{flex-basis:50%}.form.columns-3 .field{flex-basis:33.3333%}.form.columns-4 .field{flex-basis:25%}.form.columns-5 .field{flex-basis:20%}.text .rectangle{margin-bottom:0}.text .header.center{margin:0 auto}.text .header.right{margin-left:auto}.text .header{height:1.5rem}.text .header.smaller{height:1rem}.detailed-item{flex-wrap:wrap}.detailed-item.right{flex-flow:row-reverse}.detailed-item-image{flex:0 0 auto;display:inline-flex}.center .detailed-item-image{flex-basis:100%;display:flex}.detailed-item-image .rectangle{flex-grow:0}.detailed-item-text>div{width:100%}.detailed-item-text{flex:1 1 auto}.detailed-item-text .text{margin-top:0;margin-bottom:0}.label-value{flex-wrap:wrap}.label-value .rectangle{flex-basis:calc(50% - 2 * var(--comp-loading-skeleton-horizontal-gap))}@keyframes skeletonShimmer{0%{left:-100px;opacity:1}70%{opacity:1}100%{left:800px;opacity:0}}";
|
|
4512
4512
|
|
|
4513
4513
|
const Q2Loading = class {
|
|
4514
4514
|
constructor(hostRef) {
|
|
4515
4515
|
index.registerInstance(this, hostRef);
|
|
4516
4516
|
this.dontUpdateScreenReaderLabel = false;
|
|
4517
4517
|
this.liveRegionChangeIndicatorToggle = false;
|
|
4518
|
+
this.customLoaderClass = 'tct-loading-custom-loader';
|
|
4519
|
+
this.hasCustomLoader = false;
|
|
4518
4520
|
/** Hides the loading element from screen readers. */
|
|
4519
4521
|
this.hideFromScreenReaders = false;
|
|
4520
4522
|
// #endregion
|
|
@@ -4522,6 +4524,9 @@ const Q2Loading = class {
|
|
|
4522
4524
|
this.renderHalfCircleSpinner = () => {
|
|
4523
4525
|
return (index.h("div", { class: "q2-loading-animation half-circle-spinner", "aria-hidden": this.hideFromScreenReaders ? 'true' : undefined, "aria-live": !this.hideFromScreenReaders ? 'polite' : undefined, role: !this.hideFromScreenReaders ? 'status' : undefined }, index.h("div", { class: "circle circle-1" }), index.h("div", { class: "circle circle-2" }), !this.hideFromScreenReaders && (index.h("div", { class: "sr", ref: el => (this.screenReaderElement = el) }))));
|
|
4524
4526
|
};
|
|
4527
|
+
this.renderCustomLoaderContainer = () => {
|
|
4528
|
+
return (index.h("div", { id: "custom-loader-container", "aria-hidden": this.hideFromScreenReaders ? 'true' : undefined, "aria-live": !this.hideFromScreenReaders ? 'polite' : undefined, role: !this.hideFromScreenReaders ? 'status' : undefined }, !this.hideFromScreenReaders && (index.h("div", { class: "sr", ref: el => (this.screenReaderElement = el) }))));
|
|
4529
|
+
};
|
|
4525
4530
|
this.renderSkeletonLoader = () => {
|
|
4526
4531
|
return (index.h("div", { class: "q2-loading-skeleton", "aria-hidden": this.hideFromScreenReaders ? 'true' : undefined, "aria-live": !this.hideFromScreenReaders ? 'polite' : undefined, role: !this.hideFromScreenReaders ? 'status' : undefined }, this.shape === 'custom' ? index.h("slot", null) : this.skeletonShape, index.h("div", { class: "q2-loading-skeleton-shimmer" }), !this.hideFromScreenReaders && (index.h("div", { class: "sr", ref: el => (this.screenReaderElement = el) }))));
|
|
4527
4532
|
};
|
|
@@ -4536,6 +4541,7 @@ const Q2Loading = class {
|
|
|
4536
4541
|
}
|
|
4537
4542
|
componentWillLoad() {
|
|
4538
4543
|
index$1.handleAriaLabel(this);
|
|
4544
|
+
this.handleType();
|
|
4539
4545
|
}
|
|
4540
4546
|
componentDidLoad() {
|
|
4541
4547
|
this.setupLiveRegionDelay();
|
|
@@ -4543,8 +4549,105 @@ const Q2Loading = class {
|
|
|
4543
4549
|
componentDidUpdate() {
|
|
4544
4550
|
this.updateScreenReaderLabel();
|
|
4545
4551
|
}
|
|
4552
|
+
componentDidRender() {
|
|
4553
|
+
var _a;
|
|
4554
|
+
if (!this.loaderClone)
|
|
4555
|
+
return;
|
|
4556
|
+
if (!this.hasCustomLoader)
|
|
4557
|
+
return;
|
|
4558
|
+
const customLoaderContainer = this.hostElement.shadowRoot.querySelector('#custom-loader-container');
|
|
4559
|
+
(_a = customLoaderContainer.querySelector(`svg.${this.customLoaderClass}`)) === null || _a === void 0 ? void 0 : _a.remove();
|
|
4560
|
+
customLoaderContainer.appendChild(this.loaderClone);
|
|
4561
|
+
}
|
|
4562
|
+
// #endregion
|
|
4563
|
+
// #region Listeners
|
|
4564
|
+
onUpdateLoaders() {
|
|
4565
|
+
const { customLoaderURL } = this;
|
|
4566
|
+
this.hasCustomLoader = !!customLoaderURL;
|
|
4567
|
+
this.fetchLoader();
|
|
4568
|
+
}
|
|
4569
|
+
// #endregion
|
|
4570
|
+
// #region Watchers
|
|
4571
|
+
handleType() {
|
|
4572
|
+
this.fetchLoader();
|
|
4573
|
+
}
|
|
4574
|
+
async fetchLoader() {
|
|
4575
|
+
const { isSkeletonType, customLoaderURL } = this;
|
|
4576
|
+
this.hasCustomLoader = false;
|
|
4577
|
+
if (isSkeletonType) {
|
|
4578
|
+
return;
|
|
4579
|
+
}
|
|
4580
|
+
if (!customLoaderURL)
|
|
4581
|
+
return;
|
|
4582
|
+
this.hasCustomLoader = true;
|
|
4583
|
+
let { customLoaderElement } = this;
|
|
4584
|
+
const loaderExists = this.checkForLoader();
|
|
4585
|
+
if (loaderExists)
|
|
4586
|
+
return;
|
|
4587
|
+
try {
|
|
4588
|
+
const response = await fetch(customLoaderURL);
|
|
4589
|
+
// Check for HTTP errors (including CORS issues that return error status)
|
|
4590
|
+
if (!response.ok) {
|
|
4591
|
+
throw new Error(`HTTP ${response.status}: Failed to fetch SVG. ` +
|
|
4592
|
+
`This may be due to incorrect URL, server error, or CORS restrictions.`);
|
|
4593
|
+
}
|
|
4594
|
+
const svgText = await response.text();
|
|
4595
|
+
const parser = new DOMParser();
|
|
4596
|
+
const svgDoc = parser.parseFromString(svgText, 'image/svg+xml');
|
|
4597
|
+
const svg = svgDoc.querySelector('svg');
|
|
4598
|
+
if (!svg)
|
|
4599
|
+
throw new Error('No SVG found in the loaded content');
|
|
4600
|
+
svg.dataset.loaded = '';
|
|
4601
|
+
svg.dataset.url = customLoaderURL;
|
|
4602
|
+
svg.classList.add(this.customLoaderClass);
|
|
4603
|
+
customLoaderElement = this.customLoaderElement;
|
|
4604
|
+
if (!customLoaderElement)
|
|
4605
|
+
return;
|
|
4606
|
+
if (typeof customLoaderElement.replaceWith === 'function') {
|
|
4607
|
+
customLoaderElement.replaceWith(svg);
|
|
4608
|
+
}
|
|
4609
|
+
else {
|
|
4610
|
+
customLoaderElement.parentNode.replaceChild(svg, customLoaderElement);
|
|
4611
|
+
}
|
|
4612
|
+
svg.dispatchEvent(new CustomEvent(this.loaderEventName, { bubbles: true }));
|
|
4613
|
+
}
|
|
4614
|
+
catch (error) {
|
|
4615
|
+
// Provide more specific error messaging for common issues
|
|
4616
|
+
if (error instanceof TypeError && error.message === 'Failed to fetch') {
|
|
4617
|
+
console.error(`Failed to load custom loader from ${customLoaderURL}. ` +
|
|
4618
|
+
`This is likely due to a CORS (Cross-Origin Resource Sharing) error. ` +
|
|
4619
|
+
`Ensure the server hosting the SVG includes proper CORS headers ` +
|
|
4620
|
+
`(Access-Control-Allow-Origin) or host the SVG on the same domain.`, error);
|
|
4621
|
+
}
|
|
4622
|
+
else {
|
|
4623
|
+
console.error(`Failed to load custom loader SVG from ${customLoaderURL}:`, error);
|
|
4624
|
+
}
|
|
4625
|
+
}
|
|
4626
|
+
}
|
|
4546
4627
|
// #endregion
|
|
4547
4628
|
// #region Local Methods
|
|
4629
|
+
get customLoaderURL() {
|
|
4630
|
+
const hostComputedStyles = window.getComputedStyle(this.hostElement);
|
|
4631
|
+
const loadingVariableURL = hostComputedStyles.getPropertyValue(`--tct-loading-custom-${this.type || 'spinner'}-url`);
|
|
4632
|
+
if (!loadingVariableURL)
|
|
4633
|
+
return;
|
|
4634
|
+
return loadingVariableURL.trim().replace(/^url\(['"]?|['"]?\)$/g, '');
|
|
4635
|
+
}
|
|
4636
|
+
get isSkeletonType() {
|
|
4637
|
+
return this.type === 'skeleton';
|
|
4638
|
+
}
|
|
4639
|
+
get loaderEventName() {
|
|
4640
|
+
const { type = 'spinner', isSkeletonType } = this;
|
|
4641
|
+
if (isSkeletonType)
|
|
4642
|
+
return;
|
|
4643
|
+
return `tct-loaded-${type}`;
|
|
4644
|
+
}
|
|
4645
|
+
get customLoaderElement() {
|
|
4646
|
+
const { customLoaderURL, customLoaderClass } = this;
|
|
4647
|
+
if (!customLoaderURL)
|
|
4648
|
+
return;
|
|
4649
|
+
return document.querySelector(`.${customLoaderClass}[data-url="${customLoaderURL}"]`);
|
|
4650
|
+
}
|
|
4548
4651
|
get countsArray() {
|
|
4549
4652
|
if (this.type !== 'skeleton' || !this.counts) {
|
|
4550
4653
|
return undefined;
|
|
@@ -4564,6 +4667,35 @@ const Q2Loading = class {
|
|
|
4564
4667
|
var _a, _b;
|
|
4565
4668
|
return (_b = (_a = shapes.shapes[this.shape]) === null || _a === void 0 ? void 0 : _a.call(shapes.shapes, this.countsArray, this.modifiersSet)) !== null && _b !== void 0 ? _b : '';
|
|
4566
4669
|
}
|
|
4670
|
+
checkForLoader() {
|
|
4671
|
+
const { loaderEventName, customLoaderClass } = this;
|
|
4672
|
+
const spriteContainer = getOrCreateSpriteContainer();
|
|
4673
|
+
let { customLoaderElement } = this;
|
|
4674
|
+
// If the loading element exists and has the `data-loaded` attribute, we know we have everything we need
|
|
4675
|
+
if (customLoaderElement === null || customLoaderElement === void 0 ? void 0 : customLoaderElement.hasAttribute('data-loaded')) {
|
|
4676
|
+
this.cloneLoaderNode();
|
|
4677
|
+
return true;
|
|
4678
|
+
}
|
|
4679
|
+
// If the loading element exists but does not have the `data-loaded` attribute, we know it's being loaded
|
|
4680
|
+
// We'll listen for the event that will be dispatched when the element is loaded
|
|
4681
|
+
spriteContainer.addEventListener(loaderEventName, () => {
|
|
4682
|
+
this.cloneLoaderNode();
|
|
4683
|
+
}, { once: true });
|
|
4684
|
+
// If the loading element exists, we know it's being loaded and will be handled by the event listener
|
|
4685
|
+
if (customLoaderElement)
|
|
4686
|
+
return true;
|
|
4687
|
+
// If loading element does not exist, create a placeholder
|
|
4688
|
+
// This will let other icons know the element is being loaded and prevent multiple fetches
|
|
4689
|
+
customLoaderElement = document.createElement('div');
|
|
4690
|
+
customLoaderElement.classList.add(customLoaderClass);
|
|
4691
|
+
customLoaderElement.dataset.url = this.customLoaderURL;
|
|
4692
|
+
spriteContainer.appendChild(customLoaderElement);
|
|
4693
|
+
return false;
|
|
4694
|
+
}
|
|
4695
|
+
cloneLoaderNode() {
|
|
4696
|
+
const { customLoaderElement } = this;
|
|
4697
|
+
this.loaderClone = customLoaderElement ? customLoaderElement.cloneNode(true) : undefined;
|
|
4698
|
+
}
|
|
4567
4699
|
cleanupLiveRegionDelay() {
|
|
4568
4700
|
if (this.hideFromScreenReaders)
|
|
4569
4701
|
return;
|
|
@@ -4587,14 +4719,18 @@ const Q2Loading = class {
|
|
|
4587
4719
|
if (entry.isIntersecting) {
|
|
4588
4720
|
clearTimeout(this.ariaLiveTimer);
|
|
4589
4721
|
this.ariaLiveTimer = setTimeout(() => {
|
|
4590
|
-
this.screenReaderElement
|
|
4722
|
+
if (this.screenReaderElement) {
|
|
4723
|
+
this.screenReaderElement.textContent = `${this.localizedLabel}${this.liveRegionChangeIndicatorToggle ? '.' : ''}`;
|
|
4724
|
+
}
|
|
4591
4725
|
this.liveRegionChangeIndicatorToggle = !this.liveRegionChangeIndicatorToggle;
|
|
4592
4726
|
this.dontUpdateScreenReaderLabel = false;
|
|
4593
4727
|
}, 2000);
|
|
4594
4728
|
}
|
|
4595
4729
|
else {
|
|
4596
4730
|
clearTimeout(this.ariaLiveTimer);
|
|
4597
|
-
this.screenReaderElement
|
|
4731
|
+
if (this.screenReaderElement) {
|
|
4732
|
+
this.screenReaderElement.textContent = '';
|
|
4733
|
+
}
|
|
4598
4734
|
this.dontUpdateScreenReaderLabel = true;
|
|
4599
4735
|
}
|
|
4600
4736
|
});
|
|
@@ -4604,6 +4740,8 @@ const Q2Loading = class {
|
|
|
4604
4740
|
updateScreenReaderLabel() {
|
|
4605
4741
|
if (this.dontUpdateScreenReaderLabel)
|
|
4606
4742
|
return;
|
|
4743
|
+
if (!this.screenReaderElement)
|
|
4744
|
+
return;
|
|
4607
4745
|
this.screenReaderElement.textContent = this.localizedLabel;
|
|
4608
4746
|
}
|
|
4609
4747
|
get renderLoader() {
|
|
@@ -4611,13 +4749,19 @@ const Q2Loading = class {
|
|
|
4611
4749
|
default: this.renderSpinner,
|
|
4612
4750
|
spinner: this.renderSpinner,
|
|
4613
4751
|
skeleton: this.renderSkeletonLoader,
|
|
4752
|
+
custom: this.renderCustomLoaderContainer,
|
|
4614
4753
|
};
|
|
4615
|
-
|
|
4754
|
+
const { type, hasCustomLoader } = this;
|
|
4755
|
+
const loaderMapKey = hasCustomLoader ? 'custom' : type;
|
|
4756
|
+
return loaderMap[loaderMapKey] || loaderMap.default;
|
|
4616
4757
|
}
|
|
4617
4758
|
render() {
|
|
4618
4759
|
return this.renderLoader();
|
|
4619
4760
|
}
|
|
4620
4761
|
get hostElement() { return index.getElement(this); }
|
|
4762
|
+
static get watchers() { return {
|
|
4763
|
+
"type": ["handleType"]
|
|
4764
|
+
}; }
|
|
4621
4765
|
};
|
|
4622
4766
|
Q2Loading.style = q2LoadingCss;
|
|
4623
4767
|
|