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,6 +1,6 @@
|
|
|
1
|
-
import { r as registerInstance, h, g as getElement, F as Fragment, a as getAssetPath, c as createEvent, H as Host } from './index-
|
|
2
|
-
import { l as loc, u as handleDeprecationWarning, e as handleAriaLabel, x as handleColor, o as overrideFocus, a as isEventFromElement, y as getAriaValueFromProp, c as createGuid, j as isMobile, s as setMessageHeight, h as hasSlotContent, n as nextPaint, r as renderLabel, g as renderMessages } from './index-
|
|
3
|
-
import { s as shapes } from './shapes-
|
|
1
|
+
import { r as registerInstance, h, g as getElement, F as Fragment, a as getAssetPath, c as createEvent, H as Host } from './index-CGkHOjh1.js';
|
|
2
|
+
import { l as loc, u as handleDeprecationWarning, e as handleAriaLabel, x as handleColor, o as overrideFocus, a as isEventFromElement, y as getAriaValueFromProp, c as createGuid, j as isMobile, s as setMessageHeight, h as hasSlotContent, n as nextPaint, r as renderLabel, g as renderMessages } from './index-xCuy-dFb.js';
|
|
3
|
+
import { s as shapes } from './shapes-B6iI6sMH.js';
|
|
4
4
|
|
|
5
5
|
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}";
|
|
6
6
|
|
|
@@ -238,6 +238,22 @@ const Q2Btn = class {
|
|
|
238
238
|
};
|
|
239
239
|
Q2Btn.style = q2BtnCss;
|
|
240
240
|
|
|
241
|
+
/**
|
|
242
|
+
* Checks for the sprite container element in the global DOM
|
|
243
|
+
* If it does not exist, it creates and appends it to the body, and returns it
|
|
244
|
+
*/
|
|
245
|
+
function getOrCreateSpriteContainer() {
|
|
246
|
+
const spriteContainerId = 'tecton-sprites';
|
|
247
|
+
let spriteContainer = document.querySelector(`#${spriteContainerId}`);
|
|
248
|
+
if (spriteContainer)
|
|
249
|
+
return spriteContainer;
|
|
250
|
+
spriteContainer = document.createElement('div');
|
|
251
|
+
spriteContainer.id = spriteContainerId;
|
|
252
|
+
spriteContainer.style.display = 'none';
|
|
253
|
+
document.body.appendChild(spriteContainer);
|
|
254
|
+
return spriteContainer;
|
|
255
|
+
}
|
|
256
|
+
|
|
241
257
|
const a11y = "standard";
|
|
242
258
|
const add = "standard";
|
|
243
259
|
const airplane = "standard";
|
|
@@ -857,8 +873,8 @@ const Q2Icon = class {
|
|
|
857
873
|
checkForSprite() {
|
|
858
874
|
var _a;
|
|
859
875
|
const { spriteId, spriteEventName } = this;
|
|
860
|
-
const spriteContainer =
|
|
861
|
-
let spriteElement = document.
|
|
876
|
+
const spriteContainer = getOrCreateSpriteContainer();
|
|
877
|
+
let spriteElement = document.getElementById(spriteId);
|
|
862
878
|
// If the sprite element exists and has the `data-loaded` attribute, we know we have everything we need
|
|
863
879
|
if ((_a = spriteElement === null || spriteElement === void 0 ? void 0 : spriteElement.hasAttribute('data-loaded')) !== null && _a !== void 0 ? _a : false) {
|
|
864
880
|
this.cloneSpriteNode();
|
|
@@ -880,8 +896,7 @@ const Q2Icon = class {
|
|
|
880
896
|
return false;
|
|
881
897
|
}
|
|
882
898
|
cloneSpriteNode() {
|
|
883
|
-
const
|
|
884
|
-
const spriteNode = spriteContainer.querySelector(`#tct-${this.type}`);
|
|
899
|
+
const spriteNode = document.getElementById(`tct-${this.type}`);
|
|
885
900
|
this.iconClone = spriteNode ? spriteNode.cloneNode(true) : undefined;
|
|
886
901
|
}
|
|
887
902
|
async fetchSprite() {
|
|
@@ -908,24 +923,9 @@ const Q2Icon = class {
|
|
|
908
923
|
else {
|
|
909
924
|
spriteElement.parentNode.replaceChild(svg, spriteElement);
|
|
910
925
|
}
|
|
911
|
-
spriteElement = document.
|
|
926
|
+
spriteElement = document.getElementById(spriteId);
|
|
912
927
|
spriteElement.dispatchEvent(new CustomEvent(spriteEventName, { bubbles: true }));
|
|
913
928
|
}
|
|
914
|
-
/**
|
|
915
|
-
* Checks for the sprite container element in the global DOM
|
|
916
|
-
* If it does not exist, it creates and appends it to the body
|
|
917
|
-
*/
|
|
918
|
-
getOrCreateSpriteContainer() {
|
|
919
|
-
const spriteContainerId = 'tecton-sprites';
|
|
920
|
-
let spriteContainer = document.querySelector(`#${spriteContainerId}`);
|
|
921
|
-
if (spriteContainer)
|
|
922
|
-
return spriteContainer;
|
|
923
|
-
spriteContainer = document.createElement('div');
|
|
924
|
-
spriteContainer.id = spriteContainerId;
|
|
925
|
-
spriteContainer.style.display = 'none';
|
|
926
|
-
document.body.appendChild(spriteContainer);
|
|
927
|
-
return spriteContainer;
|
|
928
|
-
}
|
|
929
929
|
setCustomSVGAttrs() {
|
|
930
930
|
const innerSVG = this.hostElement.querySelector('svg');
|
|
931
931
|
if (!innerSVG)
|
|
@@ -4506,13 +4506,15 @@ const Q2Input = class {
|
|
|
4506
4506
|
};
|
|
4507
4507
|
Q2Input.style = q2InputCss;
|
|
4508
4508
|
|
|
4509
|
-
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}}";
|
|
4509
|
+
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}}";
|
|
4510
4510
|
|
|
4511
4511
|
const Q2Loading = class {
|
|
4512
4512
|
constructor(hostRef) {
|
|
4513
4513
|
registerInstance(this, hostRef);
|
|
4514
4514
|
this.dontUpdateScreenReaderLabel = false;
|
|
4515
4515
|
this.liveRegionChangeIndicatorToggle = false;
|
|
4516
|
+
this.customLoaderClass = 'tct-loading-custom-loader';
|
|
4517
|
+
this.hasCustomLoader = false;
|
|
4516
4518
|
/** Hides the loading element from screen readers. */
|
|
4517
4519
|
this.hideFromScreenReaders = false;
|
|
4518
4520
|
// #endregion
|
|
@@ -4520,6 +4522,9 @@ const Q2Loading = class {
|
|
|
4520
4522
|
this.renderHalfCircleSpinner = () => {
|
|
4521
4523
|
return (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 }, h("div", { class: "circle circle-1" }), h("div", { class: "circle circle-2" }), !this.hideFromScreenReaders && (h("div", { class: "sr", ref: el => (this.screenReaderElement = el) }))));
|
|
4522
4524
|
};
|
|
4525
|
+
this.renderCustomLoaderContainer = () => {
|
|
4526
|
+
return (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 && (h("div", { class: "sr", ref: el => (this.screenReaderElement = el) }))));
|
|
4527
|
+
};
|
|
4523
4528
|
this.renderSkeletonLoader = () => {
|
|
4524
4529
|
return (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' ? h("slot", null) : this.skeletonShape, h("div", { class: "q2-loading-skeleton-shimmer" }), !this.hideFromScreenReaders && (h("div", { class: "sr", ref: el => (this.screenReaderElement = el) }))));
|
|
4525
4530
|
};
|
|
@@ -4534,6 +4539,7 @@ const Q2Loading = class {
|
|
|
4534
4539
|
}
|
|
4535
4540
|
componentWillLoad() {
|
|
4536
4541
|
handleAriaLabel(this);
|
|
4542
|
+
this.handleType();
|
|
4537
4543
|
}
|
|
4538
4544
|
componentDidLoad() {
|
|
4539
4545
|
this.setupLiveRegionDelay();
|
|
@@ -4541,8 +4547,105 @@ const Q2Loading = class {
|
|
|
4541
4547
|
componentDidUpdate() {
|
|
4542
4548
|
this.updateScreenReaderLabel();
|
|
4543
4549
|
}
|
|
4550
|
+
componentDidRender() {
|
|
4551
|
+
var _a;
|
|
4552
|
+
if (!this.loaderClone)
|
|
4553
|
+
return;
|
|
4554
|
+
if (!this.hasCustomLoader)
|
|
4555
|
+
return;
|
|
4556
|
+
const customLoaderContainer = this.hostElement.shadowRoot.querySelector('#custom-loader-container');
|
|
4557
|
+
(_a = customLoaderContainer.querySelector(`svg.${this.customLoaderClass}`)) === null || _a === void 0 ? void 0 : _a.remove();
|
|
4558
|
+
customLoaderContainer.appendChild(this.loaderClone);
|
|
4559
|
+
}
|
|
4560
|
+
// #endregion
|
|
4561
|
+
// #region Listeners
|
|
4562
|
+
onUpdateLoaders() {
|
|
4563
|
+
const { customLoaderURL } = this;
|
|
4564
|
+
this.hasCustomLoader = !!customLoaderURL;
|
|
4565
|
+
this.fetchLoader();
|
|
4566
|
+
}
|
|
4567
|
+
// #endregion
|
|
4568
|
+
// #region Watchers
|
|
4569
|
+
handleType() {
|
|
4570
|
+
this.fetchLoader();
|
|
4571
|
+
}
|
|
4572
|
+
async fetchLoader() {
|
|
4573
|
+
const { isSkeletonType, customLoaderURL } = this;
|
|
4574
|
+
this.hasCustomLoader = false;
|
|
4575
|
+
if (isSkeletonType) {
|
|
4576
|
+
return;
|
|
4577
|
+
}
|
|
4578
|
+
if (!customLoaderURL)
|
|
4579
|
+
return;
|
|
4580
|
+
this.hasCustomLoader = true;
|
|
4581
|
+
let { customLoaderElement } = this;
|
|
4582
|
+
const loaderExists = this.checkForLoader();
|
|
4583
|
+
if (loaderExists)
|
|
4584
|
+
return;
|
|
4585
|
+
try {
|
|
4586
|
+
const response = await fetch(customLoaderURL);
|
|
4587
|
+
// Check for HTTP errors (including CORS issues that return error status)
|
|
4588
|
+
if (!response.ok) {
|
|
4589
|
+
throw new Error(`HTTP ${response.status}: Failed to fetch SVG. ` +
|
|
4590
|
+
`This may be due to incorrect URL, server error, or CORS restrictions.`);
|
|
4591
|
+
}
|
|
4592
|
+
const svgText = await response.text();
|
|
4593
|
+
const parser = new DOMParser();
|
|
4594
|
+
const svgDoc = parser.parseFromString(svgText, 'image/svg+xml');
|
|
4595
|
+
const svg = svgDoc.querySelector('svg');
|
|
4596
|
+
if (!svg)
|
|
4597
|
+
throw new Error('No SVG found in the loaded content');
|
|
4598
|
+
svg.dataset.loaded = '';
|
|
4599
|
+
svg.dataset.url = customLoaderURL;
|
|
4600
|
+
svg.classList.add(this.customLoaderClass);
|
|
4601
|
+
customLoaderElement = this.customLoaderElement;
|
|
4602
|
+
if (!customLoaderElement)
|
|
4603
|
+
return;
|
|
4604
|
+
if (typeof customLoaderElement.replaceWith === 'function') {
|
|
4605
|
+
customLoaderElement.replaceWith(svg);
|
|
4606
|
+
}
|
|
4607
|
+
else {
|
|
4608
|
+
customLoaderElement.parentNode.replaceChild(svg, customLoaderElement);
|
|
4609
|
+
}
|
|
4610
|
+
svg.dispatchEvent(new CustomEvent(this.loaderEventName, { bubbles: true }));
|
|
4611
|
+
}
|
|
4612
|
+
catch (error) {
|
|
4613
|
+
// Provide more specific error messaging for common issues
|
|
4614
|
+
if (error instanceof TypeError && error.message === 'Failed to fetch') {
|
|
4615
|
+
console.error(`Failed to load custom loader from ${customLoaderURL}. ` +
|
|
4616
|
+
`This is likely due to a CORS (Cross-Origin Resource Sharing) error. ` +
|
|
4617
|
+
`Ensure the server hosting the SVG includes proper CORS headers ` +
|
|
4618
|
+
`(Access-Control-Allow-Origin) or host the SVG on the same domain.`, error);
|
|
4619
|
+
}
|
|
4620
|
+
else {
|
|
4621
|
+
console.error(`Failed to load custom loader SVG from ${customLoaderURL}:`, error);
|
|
4622
|
+
}
|
|
4623
|
+
}
|
|
4624
|
+
}
|
|
4544
4625
|
// #endregion
|
|
4545
4626
|
// #region Local Methods
|
|
4627
|
+
get customLoaderURL() {
|
|
4628
|
+
const hostComputedStyles = window.getComputedStyle(this.hostElement);
|
|
4629
|
+
const loadingVariableURL = hostComputedStyles.getPropertyValue(`--tct-loading-custom-${this.type || 'spinner'}-url`);
|
|
4630
|
+
if (!loadingVariableURL)
|
|
4631
|
+
return;
|
|
4632
|
+
return loadingVariableURL.trim().replace(/^url\(['"]?|['"]?\)$/g, '');
|
|
4633
|
+
}
|
|
4634
|
+
get isSkeletonType() {
|
|
4635
|
+
return this.type === 'skeleton';
|
|
4636
|
+
}
|
|
4637
|
+
get loaderEventName() {
|
|
4638
|
+
const { type = 'spinner', isSkeletonType } = this;
|
|
4639
|
+
if (isSkeletonType)
|
|
4640
|
+
return;
|
|
4641
|
+
return `tct-loaded-${type}`;
|
|
4642
|
+
}
|
|
4643
|
+
get customLoaderElement() {
|
|
4644
|
+
const { customLoaderURL, customLoaderClass } = this;
|
|
4645
|
+
if (!customLoaderURL)
|
|
4646
|
+
return;
|
|
4647
|
+
return document.querySelector(`.${customLoaderClass}[data-url="${customLoaderURL}"]`);
|
|
4648
|
+
}
|
|
4546
4649
|
get countsArray() {
|
|
4547
4650
|
if (this.type !== 'skeleton' || !this.counts) {
|
|
4548
4651
|
return undefined;
|
|
@@ -4562,6 +4665,35 @@ const Q2Loading = class {
|
|
|
4562
4665
|
var _a, _b;
|
|
4563
4666
|
return (_b = (_a = shapes[this.shape]) === null || _a === void 0 ? void 0 : _a.call(shapes, this.countsArray, this.modifiersSet)) !== null && _b !== void 0 ? _b : '';
|
|
4564
4667
|
}
|
|
4668
|
+
checkForLoader() {
|
|
4669
|
+
const { loaderEventName, customLoaderClass } = this;
|
|
4670
|
+
const spriteContainer = getOrCreateSpriteContainer();
|
|
4671
|
+
let { customLoaderElement } = this;
|
|
4672
|
+
// If the loading element exists and has the `data-loaded` attribute, we know we have everything we need
|
|
4673
|
+
if (customLoaderElement === null || customLoaderElement === void 0 ? void 0 : customLoaderElement.hasAttribute('data-loaded')) {
|
|
4674
|
+
this.cloneLoaderNode();
|
|
4675
|
+
return true;
|
|
4676
|
+
}
|
|
4677
|
+
// If the loading element exists but does not have the `data-loaded` attribute, we know it's being loaded
|
|
4678
|
+
// We'll listen for the event that will be dispatched when the element is loaded
|
|
4679
|
+
spriteContainer.addEventListener(loaderEventName, () => {
|
|
4680
|
+
this.cloneLoaderNode();
|
|
4681
|
+
}, { once: true });
|
|
4682
|
+
// If the loading element exists, we know it's being loaded and will be handled by the event listener
|
|
4683
|
+
if (customLoaderElement)
|
|
4684
|
+
return true;
|
|
4685
|
+
// If loading element does not exist, create a placeholder
|
|
4686
|
+
// This will let other icons know the element is being loaded and prevent multiple fetches
|
|
4687
|
+
customLoaderElement = document.createElement('div');
|
|
4688
|
+
customLoaderElement.classList.add(customLoaderClass);
|
|
4689
|
+
customLoaderElement.dataset.url = this.customLoaderURL;
|
|
4690
|
+
spriteContainer.appendChild(customLoaderElement);
|
|
4691
|
+
return false;
|
|
4692
|
+
}
|
|
4693
|
+
cloneLoaderNode() {
|
|
4694
|
+
const { customLoaderElement } = this;
|
|
4695
|
+
this.loaderClone = customLoaderElement ? customLoaderElement.cloneNode(true) : undefined;
|
|
4696
|
+
}
|
|
4565
4697
|
cleanupLiveRegionDelay() {
|
|
4566
4698
|
if (this.hideFromScreenReaders)
|
|
4567
4699
|
return;
|
|
@@ -4585,14 +4717,18 @@ const Q2Loading = class {
|
|
|
4585
4717
|
if (entry.isIntersecting) {
|
|
4586
4718
|
clearTimeout(this.ariaLiveTimer);
|
|
4587
4719
|
this.ariaLiveTimer = setTimeout(() => {
|
|
4588
|
-
this.screenReaderElement
|
|
4720
|
+
if (this.screenReaderElement) {
|
|
4721
|
+
this.screenReaderElement.textContent = `${this.localizedLabel}${this.liveRegionChangeIndicatorToggle ? '.' : ''}`;
|
|
4722
|
+
}
|
|
4589
4723
|
this.liveRegionChangeIndicatorToggle = !this.liveRegionChangeIndicatorToggle;
|
|
4590
4724
|
this.dontUpdateScreenReaderLabel = false;
|
|
4591
4725
|
}, 2000);
|
|
4592
4726
|
}
|
|
4593
4727
|
else {
|
|
4594
4728
|
clearTimeout(this.ariaLiveTimer);
|
|
4595
|
-
this.screenReaderElement
|
|
4729
|
+
if (this.screenReaderElement) {
|
|
4730
|
+
this.screenReaderElement.textContent = '';
|
|
4731
|
+
}
|
|
4596
4732
|
this.dontUpdateScreenReaderLabel = true;
|
|
4597
4733
|
}
|
|
4598
4734
|
});
|
|
@@ -4602,6 +4738,8 @@ const Q2Loading = class {
|
|
|
4602
4738
|
updateScreenReaderLabel() {
|
|
4603
4739
|
if (this.dontUpdateScreenReaderLabel)
|
|
4604
4740
|
return;
|
|
4741
|
+
if (!this.screenReaderElement)
|
|
4742
|
+
return;
|
|
4605
4743
|
this.screenReaderElement.textContent = this.localizedLabel;
|
|
4606
4744
|
}
|
|
4607
4745
|
get renderLoader() {
|
|
@@ -4609,13 +4747,19 @@ const Q2Loading = class {
|
|
|
4609
4747
|
default: this.renderSpinner,
|
|
4610
4748
|
spinner: this.renderSpinner,
|
|
4611
4749
|
skeleton: this.renderSkeletonLoader,
|
|
4750
|
+
custom: this.renderCustomLoaderContainer,
|
|
4612
4751
|
};
|
|
4613
|
-
|
|
4752
|
+
const { type, hasCustomLoader } = this;
|
|
4753
|
+
const loaderMapKey = hasCustomLoader ? 'custom' : type;
|
|
4754
|
+
return loaderMap[loaderMapKey] || loaderMap.default;
|
|
4614
4755
|
}
|
|
4615
4756
|
render() {
|
|
4616
4757
|
return this.renderLoader();
|
|
4617
4758
|
}
|
|
4618
4759
|
get hostElement() { return getElement(this); }
|
|
4760
|
+
static get watchers() { return {
|
|
4761
|
+
"type": ["handleType"]
|
|
4762
|
+
}; }
|
|
4619
4763
|
};
|
|
4620
4764
|
Q2Loading.style = q2LoadingCss;
|
|
4621
4765
|
|