@shoper/phoenix_design_system 1.18.23-1 → 1.18.23-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/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js +14 -77
- package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/form/search/search.js +27 -0
- package/build/cjs/packages/phoenix/src/components/form/search/search.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/form/select/select.js +37 -18
- package/build/cjs/packages/phoenix/src/components/form/select/select.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/modal/modal.js +13 -59
- package/build/cjs/packages/phoenix/src/components/modal/modal.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/modal/modal_constants.js +1 -3
- package/build/cjs/packages/phoenix/src/components/modal/modal_constants.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/sheet/sheet.js +9 -55
- package/build/cjs/packages/phoenix/src/components/sheet/sheet.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/sheet/sheet_constants.js +1 -3
- package/build/cjs/packages/phoenix/src/components/sheet/sheet_constants.js.map +1 -1
- package/build/cjs/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller.js +200 -0
- package/build/cjs/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller.js.map +1 -0
- package/build/esm/packages/phoenix/src/components/dropdown/dropdown.d.ts +1 -6
- package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js +14 -77
- package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/form/search/search.d.ts +4 -0
- package/build/esm/packages/phoenix/src/components/form/search/search.js +27 -0
- package/build/esm/packages/phoenix/src/components/form/search/search.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/form/select/select.d.ts +1 -0
- package/build/esm/packages/phoenix/src/components/form/select/select.js +37 -18
- package/build/esm/packages/phoenix/src/components/form/select/select.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/modal/modal.d.ts +1 -5
- package/build/esm/packages/phoenix/src/components/modal/modal.js +15 -61
- package/build/esm/packages/phoenix/src/components/modal/modal.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/modal/modal_constants.js +2 -3
- package/build/esm/packages/phoenix/src/components/modal/modal_constants.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/sheet/sheet.d.ts +1 -5
- package/build/esm/packages/phoenix/src/components/sheet/sheet.js +11 -57
- package/build/esm/packages/phoenix/src/components/sheet/sheet.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/sheet/sheet_constants.js +2 -3
- package/build/esm/packages/phoenix/src/components/sheet/sheet_constants.js.map +1 -1
- package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller.d.ts +24 -0
- package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller.js +196 -0
- package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller.js.map +1 -0
- package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller_types.d.ts +14 -0
- package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller_types.js +2 -0
- package/build/esm/packages/phoenix/src/controllers/focus_trap_controller/focus_trap_controller_types.js.map +1 -0
- package/package.json +1 -1
|
@@ -12,6 +12,7 @@ import { createRef, ref } from 'lit-html/directives/ref.js';
|
|
|
12
12
|
import { ContextProviderController } from '../../../core/context/context_provider_controller.js';
|
|
13
13
|
import { BREAKPOINTS } from '../../../global_constants.js';
|
|
14
14
|
import v4 from '../../../../../../external/uuid/dist/esm-browser/v4.js';
|
|
15
|
+
import { FocusTrapController } from '../../../controllers/focus_trap_controller/focus_trap_controller.js';
|
|
15
16
|
import { MODAL_EVENTS } from '../../modal/modal_constants.js';
|
|
16
17
|
import { SHEET_EVENTS } from '../../sheet/sheet_constants.js';
|
|
17
18
|
import { when as n } from '../../../../../../external/lit-html/directives/when.js';
|
|
@@ -27,7 +28,14 @@ let HSearch = class HSearch extends PhoenixLightLitElement {
|
|
|
27
28
|
this._togglerElement = null;
|
|
28
29
|
this._id = v4();
|
|
29
30
|
this._openSearchButtonAriaLabelId = `${this._id}-open-search-button-aria-label`;
|
|
31
|
+
this._searchIconId = `${this._id}-search-icon`;
|
|
30
32
|
this._searchContentContainerId = v4();
|
|
33
|
+
this._mobileFocusTrapController = new FocusTrapController({
|
|
34
|
+
host: this,
|
|
35
|
+
getContainer: () => this,
|
|
36
|
+
noAutofocus: true,
|
|
37
|
+
cyclicKeydown: true
|
|
38
|
+
});
|
|
31
39
|
this._searchResultsRef = createRef();
|
|
32
40
|
this._searchHistoryRef = createRef();
|
|
33
41
|
this._searchMessageRef = createRef();
|
|
@@ -323,6 +331,7 @@ let HSearch = class HSearch extends PhoenixLightLitElement {
|
|
|
323
331
|
if (window.innerWidth > BREAKPOINTS.sm) {
|
|
324
332
|
const hasBeenOpened = this.classList.contains(SEARCH_CLASS_NAMES.mobileOpened);
|
|
325
333
|
this.classList.remove(SEARCH_CLASS_NAMES.mobileOpened);
|
|
334
|
+
this._deactivateMobileDialog();
|
|
326
335
|
if (hasBeenOpened && this.displayMode !== 'dropdown') {
|
|
327
336
|
const $storefrontSearch = document.querySelector(`h-storefront-search[module-instance-id="${this.moduleInstanceId}"]`);
|
|
328
337
|
const searchOverlayTriggerName = (_a = $storefrontSearch === null || $storefrontSearch === void 0 ? void 0 : $storefrontSearch.querySelector('[aria-haspopup="dialog"]')) === null || _a === void 0 ? void 0 : _a.getAttribute('name');
|
|
@@ -338,6 +347,7 @@ let HSearch = class HSearch extends PhoenixLightLitElement {
|
|
|
338
347
|
};
|
|
339
348
|
this._openMobileView = () => {
|
|
340
349
|
this.classList.add(SEARCH_CLASS_NAMES.mobileOpened);
|
|
350
|
+
this._activateMobileDialog();
|
|
341
351
|
};
|
|
342
352
|
this._isSuggesterLayerVisible = () => {
|
|
343
353
|
var _a;
|
|
@@ -358,6 +368,20 @@ let HSearch = class HSearch extends PhoenixLightLitElement {
|
|
|
358
368
|
document.removeEventListener('focusin', this._resetSearchOnFocusOutside);
|
|
359
369
|
}
|
|
360
370
|
};
|
|
371
|
+
this._activateMobileDialog = () => {
|
|
372
|
+
if (this.displayMode !== 'dropdown')
|
|
373
|
+
return;
|
|
374
|
+
this.setAttribute('role', 'dialog');
|
|
375
|
+
this.setAttribute('aria-modal', 'true');
|
|
376
|
+
this.setAttribute('aria-labelledby', this._searchIconId);
|
|
377
|
+
this._mobileFocusTrapController.activate();
|
|
378
|
+
};
|
|
379
|
+
this._deactivateMobileDialog = () => {
|
|
380
|
+
this.removeAttribute('role');
|
|
381
|
+
this.removeAttribute('aria-modal');
|
|
382
|
+
this.removeAttribute('aria-labelledby');
|
|
383
|
+
this._mobileFocusTrapController.deactivate();
|
|
384
|
+
};
|
|
361
385
|
this._setupAriaAttributes = () => {
|
|
362
386
|
var _a;
|
|
363
387
|
if (this._translations.openSearchButtonAriaLabel) {
|
|
@@ -366,6 +390,7 @@ let HSearch = class HSearch extends PhoenixLightLitElement {
|
|
|
366
390
|
};
|
|
367
391
|
this._handleOpenSearch = () => {
|
|
368
392
|
this.classList.add(SEARCH_CLASS_NAMES.mobileOpened);
|
|
393
|
+
this._activateMobileDialog();
|
|
369
394
|
const shouldShowMessage = this._searchPhrase !== '';
|
|
370
395
|
this._updateSearchView(this._searchPhrase, shouldShowMessage, false);
|
|
371
396
|
const $searchInput = this.querySelector(`
|
|
@@ -486,6 +511,7 @@ let HSearch = class HSearch extends PhoenixLightLitElement {
|
|
|
486
511
|
this.addEventListener(SEARCH_CUSTOM_EVENT_NAMES.submit, this._handleSubmitForm);
|
|
487
512
|
this.addEventListener(SEARCH_CUSTOM_EVENT_NAMES.close, () => {
|
|
488
513
|
this.classList.remove(SEARCH_CLASS_NAMES.mobileOpened);
|
|
514
|
+
this._deactivateMobileDialog();
|
|
489
515
|
this._resetSearchView();
|
|
490
516
|
this.isSearchUxFixesFlagEnabled && this._removeSearchKeyboardNavigation();
|
|
491
517
|
});
|
|
@@ -618,6 +644,7 @@ let HSearch = class HSearch extends PhoenixLightLitElement {
|
|
|
618
644
|
super.render();
|
|
619
645
|
return html `
|
|
620
646
|
${n(!this.isSearchIconFixEnabled, () => html ` <div
|
|
647
|
+
id="${this._searchIconId}"
|
|
621
648
|
class="${SEARCH_CLASS_NAMES.icon} labeled-icon hidden-md-only hidden-lg-only hidden-xl-only hidden-xxl-only hidden-xxxl-only"
|
|
622
649
|
tabindex="0"
|
|
623
650
|
aria-haspopup="dialog"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,+CAAmD;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wDAA4D;AAC3E;AACA;AACA,0BAA0B,wDAA4D;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,+CAAmD;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wDAA4D;AAC3E;AACA;AACA;AACA,0BAA0B,wDAA4D;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -23,6 +23,7 @@ export declare class HSelect extends PhoenixLightLitElement {
|
|
|
23
23
|
optionsList?: TSelectOption[];
|
|
24
24
|
noDeselect: boolean;
|
|
25
25
|
assistiveTitleId: string;
|
|
26
|
+
isDevSelectPlaceholderFlagEnabled: boolean;
|
|
26
27
|
isReactiveSelectionFlagEnabled: boolean;
|
|
27
28
|
translations: Record<string, string>;
|
|
28
29
|
private _selectOptionsId;
|
|
@@ -30,6 +30,7 @@ import { SelectTogglerKeyboardController } from './controllers/select_toggler_ke
|
|
|
30
30
|
|
|
31
31
|
let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
32
32
|
constructor() {
|
|
33
|
+
var _a;
|
|
33
34
|
super();
|
|
34
35
|
this.multiple = false;
|
|
35
36
|
this.opened = false;
|
|
@@ -38,6 +39,7 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
38
39
|
this.type = SELECT_TYPES.select;
|
|
39
40
|
this.noDeselect = false;
|
|
40
41
|
this.assistiveTitleId = '';
|
|
42
|
+
this.isDevSelectPlaceholderFlagEnabled = false;
|
|
41
43
|
this.isReactiveSelectionFlagEnabled = false;
|
|
42
44
|
this.translations = {};
|
|
43
45
|
this._selectOptionsId = v4();
|
|
@@ -49,7 +51,6 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
49
51
|
this._$dropdownContent = createRef();
|
|
50
52
|
this.$dropdownToggler = createRef();
|
|
51
53
|
this._selectContext = new ContextProviderController(this);
|
|
52
|
-
this.$placeholder = 'Select';
|
|
53
54
|
this._updateOptions = () => {
|
|
54
55
|
const $options = this._getOptions();
|
|
55
56
|
this._$options = $options.reduce((acc, $option) => {
|
|
@@ -107,18 +108,28 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
107
108
|
});
|
|
108
109
|
};
|
|
109
110
|
this._updateLabelAria = (options) => {
|
|
110
|
-
var _a;
|
|
111
|
+
var _a, _b;
|
|
111
112
|
if (!this.$searchLabel)
|
|
112
113
|
return;
|
|
113
114
|
(_a = this.$searchLabel.querySelector(`[id="value-label"]`)) === null || _a === void 0 ? void 0 : _a.remove();
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
115
|
+
if (this.isDevSelectPlaceholderFlagEnabled) {
|
|
116
|
+
const hasValidOptions = options.some((option) => !option.isPlaceholder);
|
|
117
|
+
if (!hasValidOptions)
|
|
118
|
+
return;
|
|
119
|
+
const valueLabelSpan = document.createElement('span');
|
|
120
|
+
valueLabelSpan.id = 'value-label';
|
|
121
|
+
valueLabelSpan.className = 'sr-only';
|
|
122
|
+
valueLabelSpan.textContent = options.reduce((totalSelectedContent, currentOption) => totalSelectedContent + currentOption.content, '');
|
|
123
|
+
this.$searchLabel.appendChild(valueLabelSpan);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
this.$searchLabel.innerHTML = `
|
|
127
|
+
${(_b = this.$searchLabel) === null || _b === void 0 ? void 0 : _b.innerHTML}
|
|
128
|
+
<span id="value-label" class="sr-only">
|
|
129
|
+
${options.reduce((totalSelectedContent, currentOption) => (totalSelectedContent += currentOption.content), '')}
|
|
130
|
+
</span>
|
|
131
|
+
`;
|
|
132
|
+
}
|
|
122
133
|
};
|
|
123
134
|
this._handleOptionClicked = ({ detail }) => {
|
|
124
135
|
if (!(detail === null || detail === void 0 ? void 0 : detail.$option))
|
|
@@ -170,6 +181,8 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
170
181
|
};
|
|
171
182
|
const $options = Array.from(this.querySelectorAll(SELECT_RELATED_COMPONENTS_NAMES.option));
|
|
172
183
|
$options.forEach(($option) => $option.setAttribute('slot', SELECT_SLOT_NAMES.content));
|
|
184
|
+
const $placeholderEl = this.querySelector(`[slot="${SELECT_INPUT_PLACEHOLDER_SLOT_NAME}"]`);
|
|
185
|
+
this.$placeholder = $placeholderEl && ((_a = $placeholderEl.textContent) === null || _a === void 0 ? void 0 : _a.trim()) ? $placeholderEl : 'Select';
|
|
173
186
|
if (this.multiple)
|
|
174
187
|
this.type = SELECT_TYPES.multiple;
|
|
175
188
|
}
|
|
@@ -215,7 +228,9 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
215
228
|
}
|
|
216
229
|
if (changedProperties.has('optionsList')) {
|
|
217
230
|
this._updateOptions();
|
|
218
|
-
this.
|
|
231
|
+
if (this.isDevSelectPlaceholderFlagEnabled) {
|
|
232
|
+
this._addPlaceholderOptionIfNeeded();
|
|
233
|
+
}
|
|
219
234
|
}
|
|
220
235
|
if (this._$optionsList.value) {
|
|
221
236
|
(_a = this.listBoxController) === null || _a === void 0 ? void 0 : _a.hostDisconnected();
|
|
@@ -248,7 +263,7 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
248
263
|
$searchInput ? $searchInput.focus() : $optionToFocus === null || $optionToFocus === void 0 ? void 0 : $optionToFocus.focus();
|
|
249
264
|
}
|
|
250
265
|
connectedCallback() {
|
|
251
|
-
var _a
|
|
266
|
+
var _a;
|
|
252
267
|
super.connectedCallback();
|
|
253
268
|
this.classList.add(SELECT_CSS_CLASSES.select);
|
|
254
269
|
if (!this.searchDisabled) {
|
|
@@ -263,12 +278,10 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
263
278
|
this._selectController.options$.subscribe(this._optionsObserver);
|
|
264
279
|
this._selectedOptionsAriaObserver = new Observer((selectedOptions) => this._updateLabelAria(selectedOptions));
|
|
265
280
|
this._selectController.selectedOptions$.subscribe(this._selectedOptionsAriaObserver);
|
|
266
|
-
const $placeholderEl = this.querySelector(`[slot="${SELECT_INPUT_PLACEHOLDER_SLOT_NAME}"]`);
|
|
267
|
-
if ($placeholderEl && ((_b = $placeholderEl.textContent) === null || _b === void 0 ? void 0 : _b.trim())) {
|
|
268
|
-
this.$placeholder = $placeholderEl;
|
|
269
|
-
}
|
|
270
281
|
this._updateOptions();
|
|
271
|
-
this.
|
|
282
|
+
if (this.isDevSelectPlaceholderFlagEnabled) {
|
|
283
|
+
this._addPlaceholderOptionIfNeeded();
|
|
284
|
+
}
|
|
272
285
|
this._setupEvents();
|
|
273
286
|
}
|
|
274
287
|
firstUpdated(changedProperties) {
|
|
@@ -498,7 +511,9 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
498
511
|
<h-select-close-btn class="${SELECT_CSS_CLASSES.selectCloseMobileButton}" @close=${this._closeSelect}></h-select-close-btn>
|
|
499
512
|
|
|
500
513
|
<div class=${SELECT_CSS_CLASSES.selectLabel}>
|
|
501
|
-
${
|
|
514
|
+
${this.isDevSelectPlaceholderFlagEnabled
|
|
515
|
+
? (_b = this.$searchLabel) === null || _b === void 0 ? void 0 : _b.cloneNode(true)
|
|
516
|
+
: html `${this._getClonedPlaceholderElement()}`}
|
|
502
517
|
</div>
|
|
503
518
|
|
|
504
519
|
${isSearchEnabled
|
|
@@ -614,6 +629,10 @@ __decorate([
|
|
|
614
629
|
property({ type: String, attribute: 'assistive-title-id' }),
|
|
615
630
|
__metadata("design:type", String)
|
|
616
631
|
], HSelect.prototype, "assistiveTitleId", void 0);
|
|
632
|
+
__decorate([
|
|
633
|
+
property({ type: Boolean, attribute: 'is-dev-select-placeholder-flag-enabled' }),
|
|
634
|
+
__metadata("design:type", Boolean)
|
|
635
|
+
], HSelect.prototype, "isDevSelectPlaceholderFlagEnabled", void 0);
|
|
617
636
|
__decorate([
|
|
618
637
|
property({ type: Boolean, attribute: 'is-reactive-selection-flag-enabled' }),
|
|
619
638
|
__metadata("design:type", Boolean)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,+CAAmD;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wDAA4D;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,+CAAmD;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wDAA4D;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -7,9 +7,6 @@ export declare class HModal extends PhoenixLightLitElement {
|
|
|
7
7
|
transition: string;
|
|
8
8
|
modalLabel: string;
|
|
9
9
|
noAutofocus: boolean;
|
|
10
|
-
_firstFocusableElement: HTMLElement | undefined;
|
|
11
|
-
_focusableElements: HTMLElement[] | null;
|
|
12
|
-
_lastFocusableElement: HTMLElement | undefined;
|
|
13
10
|
private _focusedToggler;
|
|
14
11
|
private _contentRef;
|
|
15
12
|
private _focusSentinelStart;
|
|
@@ -17,6 +14,7 @@ export declare class HModal extends PhoenixLightLitElement {
|
|
|
17
14
|
private _propsChangeStrategies;
|
|
18
15
|
private static openModals;
|
|
19
16
|
private _backdropController;
|
|
17
|
+
private _focusTrapController;
|
|
20
18
|
private static _appendModalsPortal;
|
|
21
19
|
static isSomeModalOpen(): boolean;
|
|
22
20
|
constructor();
|
|
@@ -24,8 +22,6 @@ export declare class HModal extends PhoenixLightLitElement {
|
|
|
24
22
|
disconnectedCallback(): void;
|
|
25
23
|
firstUpdated(props: PropertyValues): void;
|
|
26
24
|
updated(changedProps: Map<string, any>): void;
|
|
27
|
-
private _setFocusToFirstFocusableElementInModalOrCloseBtn;
|
|
28
|
-
private _keepFocusWithinModal;
|
|
29
25
|
private _handleCloseFromCloseComponent;
|
|
30
26
|
private _bindCloseOnEsc;
|
|
31
27
|
open(): Promise<void>;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
|
|
2
|
-
import { UiDomUtils } from '@dreamcommerce/utilities';
|
|
3
2
|
import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
|
|
4
3
|
import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
|
|
5
|
-
import { property
|
|
4
|
+
import { property } from '@lit/reactive-element/decorators.js';
|
|
6
5
|
import '@lit/reactive-element';
|
|
7
6
|
import { html } from 'lit-html';
|
|
8
7
|
import { createRef, ref } from 'lit-html/directives/ref.js';
|
|
9
8
|
import { PORTAL_TARGET_COMPONENT_NAME, PORTAL_TARGET_NAME_PROP } from '../portal/portal_constants.js';
|
|
10
9
|
import { BACKDROP_EVENTS } from '../backdrop/backdrop_constants.js';
|
|
11
10
|
import { BackdropController } from '../backdrop/controller/backdrop_controller.js';
|
|
12
|
-
import {
|
|
11
|
+
import { FocusTrapController } from '../../controllers/focus_trap_controller/focus_trap_controller.js';
|
|
12
|
+
import { MODAL_OPENED_PROP, MODALS_PORTAL_NAME, MODAL_EVENTS } from './modal_constants.js';
|
|
13
13
|
import { HModalClose } from './modal_close.js';
|
|
14
14
|
|
|
15
15
|
var HModal_1;
|
|
@@ -21,9 +21,6 @@ let HModal = HModal_1 = class HModal extends PhoenixLightLitElement {
|
|
|
21
21
|
this.transition = 'scale';
|
|
22
22
|
this.modalLabel = '';
|
|
23
23
|
this.noAutofocus = false;
|
|
24
|
-
this._firstFocusableElement = undefined;
|
|
25
|
-
this._focusableElements = null;
|
|
26
|
-
this._lastFocusableElement = undefined;
|
|
27
24
|
this._focusedToggler = null;
|
|
28
25
|
this._contentRef = createRef();
|
|
29
26
|
this._focusSentinelStart = createRef();
|
|
@@ -31,44 +28,26 @@ let HModal = HModal_1 = class HModal extends PhoenixLightLitElement {
|
|
|
31
28
|
this._propsChangeStrategies = {
|
|
32
29
|
[MODAL_OPENED_PROP]: {
|
|
33
30
|
true: () => {
|
|
34
|
-
const scrollY = window.scrollY;
|
|
35
31
|
HModal_1.openModals = [...HModal_1.openModals, this];
|
|
36
32
|
document.addEventListener('keydown', this._bindCloseOnEsc);
|
|
37
33
|
document.addEventListener(BACKDROP_EVENTS.clicked, this.close);
|
|
38
34
|
this._dispatchModalOpenedEvent();
|
|
39
|
-
|
|
40
|
-
setTimeout(() => {
|
|
41
|
-
var _a;
|
|
42
|
-
(_a = this._firstFocusableElement) === null || _a === void 0 ? void 0 : _a.focus();
|
|
43
|
-
window.scrollTo(0, scrollY);
|
|
44
|
-
}, 0);
|
|
45
|
-
}
|
|
35
|
+
this._focusTrapController.activate();
|
|
46
36
|
},
|
|
47
37
|
false: () => {
|
|
48
38
|
HModal_1.openModals = HModal_1.openModals.filter((modal) => modal !== this);
|
|
49
39
|
document.removeEventListener('keydown', this._bindCloseOnEsc);
|
|
50
40
|
document.removeEventListener(BACKDROP_EVENTS.clicked, this.close);
|
|
41
|
+
this._focusTrapController.deactivate();
|
|
51
42
|
}
|
|
52
43
|
}
|
|
53
44
|
};
|
|
54
45
|
this._backdropController = new BackdropController();
|
|
55
|
-
this.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
if (document.activeElement === this._firstFocusableElement) {
|
|
61
|
-
const focusableElements = UiDomUtils.getFocusableElements(this._contentRef.value);
|
|
62
|
-
(_a = focusableElements[focusableElements.length - 1]) === null || _a === void 0 ? void 0 : _a.focus();
|
|
63
|
-
ev.preventDefault();
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
else if (document.activeElement === this._lastFocusableElement) {
|
|
67
|
-
UiDomUtils.setFocusToFirstFocusableElementInContainer(this._contentRef.value);
|
|
68
|
-
ev.preventDefault();
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
};
|
|
46
|
+
this._focusTrapController = new FocusTrapController({
|
|
47
|
+
host: this,
|
|
48
|
+
getContainer: () => this._contentRef.value,
|
|
49
|
+
noAutofocus: this.noAutofocus
|
|
50
|
+
});
|
|
72
51
|
this._handleCloseFromCloseComponent = async (ev) => {
|
|
73
52
|
var _a;
|
|
74
53
|
ev.stopPropagation();
|
|
@@ -129,7 +108,6 @@ let HModal = HModal_1 = class HModal extends PhoenixLightLitElement {
|
|
|
129
108
|
});
|
|
130
109
|
};
|
|
131
110
|
this.hidden = true;
|
|
132
|
-
this._focusableElements = [...this.querySelectorAll(FOCUSABLE_ELEMENTS_WITHIN_MODAL)];
|
|
133
111
|
}
|
|
134
112
|
static _appendModalsPortal() {
|
|
135
113
|
const $modalsPortalTarget = document.querySelector(`h-portal-target[name="${MODALS_PORTAL_NAME}"]`);
|
|
@@ -145,7 +123,6 @@ let HModal = HModal_1 = class HModal extends PhoenixLightLitElement {
|
|
|
145
123
|
connectedCallback() {
|
|
146
124
|
super.connectedCallback();
|
|
147
125
|
HModal_1._appendModalsPortal();
|
|
148
|
-
document.addEventListener('keyup', this._keepFocusWithinModal);
|
|
149
126
|
document.addEventListener(MODAL_EVENTS.close, this._handleCloseFromCloseComponent);
|
|
150
127
|
}
|
|
151
128
|
disconnectedCallback() {
|
|
@@ -154,29 +131,18 @@ let HModal = HModal_1 = class HModal extends PhoenixLightLitElement {
|
|
|
154
131
|
this.close();
|
|
155
132
|
document.removeEventListener(MODAL_EVENTS.close, this._handleCloseFromCloseComponent);
|
|
156
133
|
document.removeEventListener('keydown', this._bindCloseOnEsc);
|
|
157
|
-
document.removeEventListener('keyup', this._keepFocusWithinModal);
|
|
158
134
|
}
|
|
159
135
|
firstUpdated(props) {
|
|
160
136
|
super.firstUpdated(props);
|
|
161
|
-
this.
|
|
162
|
-
this._lastFocusableElement = this._focusSentinelEnd.value;
|
|
137
|
+
this._focusTrapController.setSentinels(this._focusSentinelStart.value, this._focusSentinelEnd.value);
|
|
163
138
|
}
|
|
164
139
|
updated(changedProps) {
|
|
165
140
|
if (changedProps.has(MODAL_OPENED_PROP)) {
|
|
166
141
|
this._propsChangeStrategies[MODAL_OPENED_PROP][String(this[MODAL_OPENED_PROP])]();
|
|
167
142
|
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
return;
|
|
172
|
-
requestAnimationFrame(() => {
|
|
173
|
-
if (this._contentRef.value) {
|
|
174
|
-
const focusableElements = UiDomUtils.getFocusableElements(this._contentRef.value);
|
|
175
|
-
if (focusableElements.length > 0) {
|
|
176
|
-
focusableElements.length > 1 ? focusableElements[1].focus() : focusableElements[0].focus();
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
});
|
|
143
|
+
if (changedProps.has('noAutofocus')) {
|
|
144
|
+
this._focusTrapController.noAutofocus = this.noAutofocus;
|
|
145
|
+
}
|
|
180
146
|
}
|
|
181
147
|
async open() {
|
|
182
148
|
this._focusedToggler = document.activeElement;
|
|
@@ -193,7 +159,7 @@ let HModal = HModal_1 = class HModal extends PhoenixLightLitElement {
|
|
|
193
159
|
setTimeout(() => {
|
|
194
160
|
var _a;
|
|
195
161
|
(_a = this._contentRef.value) === null || _a === void 0 ? void 0 : _a.classList.remove(`modal_show-${this.transition}-start`, `modal_show-${this.transition}-end`);
|
|
196
|
-
this.
|
|
162
|
+
this._focusTrapController.focusFirst();
|
|
197
163
|
resolve();
|
|
198
164
|
}, transitionDuration);
|
|
199
165
|
});
|
|
@@ -252,18 +218,6 @@ __decorate([
|
|
|
252
218
|
property({ type: Boolean, attribute: 'no-autofocus' }),
|
|
253
219
|
__metadata("design:type", Object)
|
|
254
220
|
], HModal.prototype, "noAutofocus", void 0);
|
|
255
|
-
__decorate([
|
|
256
|
-
state(),
|
|
257
|
-
__metadata("design:type", Object)
|
|
258
|
-
], HModal.prototype, "_firstFocusableElement", void 0);
|
|
259
|
-
__decorate([
|
|
260
|
-
state(),
|
|
261
|
-
__metadata("design:type", Object)
|
|
262
|
-
], HModal.prototype, "_focusableElements", void 0);
|
|
263
|
-
__decorate([
|
|
264
|
-
state(),
|
|
265
|
-
__metadata("design:type", Object)
|
|
266
|
-
], HModal.prototype, "_lastFocusableElement", void 0);
|
|
267
221
|
HModal = HModal_1 = __decorate([
|
|
268
222
|
phoenixCustomElement('h-modal'),
|
|
269
223
|
__metadata("design:paramtypes", [])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,4CAAgD;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,4CAAgD;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -5,8 +5,7 @@ const MODAL_EVENTS = {
|
|
|
5
5
|
opened: 'opened',
|
|
6
6
|
closed: 'closed'
|
|
7
7
|
};
|
|
8
|
-
const MODAL_OPENED_PROP = 'opened';
|
|
9
|
-
const FOCUSABLE_ELEMENTS_WITHIN_MODAL = 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])';
|
|
8
|
+
const MODAL_OPENED_PROP = 'opened';
|
|
10
9
|
|
|
11
|
-
export {
|
|
10
|
+
export { MODALS_PORTAL_NAME, MODAL_EVENTS, MODAL_OPENED_PROP };
|
|
12
11
|
//# sourceMappingURL=modal_constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -6,9 +6,6 @@ export declare class HSheet extends PhoenixLightLitElement {
|
|
|
6
6
|
class: string;
|
|
7
7
|
transition: string;
|
|
8
8
|
sheetLabel: string;
|
|
9
|
-
_firstFocusableElement: HTMLElement | undefined;
|
|
10
|
-
_focusableElements: HTMLElement[] | null;
|
|
11
|
-
_lastFocusableElement: HTMLElement | undefined;
|
|
12
9
|
private _focusedToggler;
|
|
13
10
|
private _contentRef;
|
|
14
11
|
private _focusSentinelStart;
|
|
@@ -16,6 +13,7 @@ export declare class HSheet extends PhoenixLightLitElement {
|
|
|
16
13
|
private _propsChangeStrategies;
|
|
17
14
|
private static openSheets;
|
|
18
15
|
private _backdropController;
|
|
16
|
+
private _focusTrapController;
|
|
19
17
|
private static _appendSheetPortal;
|
|
20
18
|
static isSomeSheetOpen(): boolean;
|
|
21
19
|
constructor();
|
|
@@ -23,8 +21,6 @@ export declare class HSheet extends PhoenixLightLitElement {
|
|
|
23
21
|
disconnectedCallback(): void;
|
|
24
22
|
firstUpdated(props: PropertyValues): void;
|
|
25
23
|
updated(changedProps: Map<string, any>): void;
|
|
26
|
-
private _setFocusToFirstFocusableElementInSheetOrCloseBtn;
|
|
27
|
-
private _keepFocusWithinSheet;
|
|
28
24
|
private _handleCloseFromCloseComponent;
|
|
29
25
|
private _bindCloseOnEsc;
|
|
30
26
|
open(): Promise<void>;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
|
|
2
|
-
import { UiDomUtils } from '@dreamcommerce/utilities';
|
|
3
2
|
import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
|
|
4
3
|
import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
|
|
5
|
-
import { property
|
|
4
|
+
import { property } from '@lit/reactive-element/decorators.js';
|
|
6
5
|
import '@lit/reactive-element';
|
|
7
6
|
import { html } from 'lit-html';
|
|
8
7
|
import { createRef, ref } from 'lit-html/directives/ref.js';
|
|
9
8
|
import { PORTAL_TARGET_COMPONENT_NAME, PORTAL_TARGET_NAME_PROP } from '../portal/portal_constants.js';
|
|
10
9
|
import { BACKDROP_EVENTS } from '../backdrop/backdrop_constants.js';
|
|
11
10
|
import { BackdropController } from '../backdrop/controller/backdrop_controller.js';
|
|
12
|
-
import {
|
|
11
|
+
import { FocusTrapController } from '../../controllers/focus_trap_controller/focus_trap_controller.js';
|
|
12
|
+
import { SHEET_OPENED_PROP, SHEETS_PORTAL_NAME, SHEET_EVENTS } from './sheet_constants.js';
|
|
13
13
|
import { HSheetClose } from './sheet_close.js';
|
|
14
14
|
|
|
15
15
|
var HSheet_1;
|
|
@@ -20,9 +20,6 @@ let HSheet = HSheet_1 = class HSheet extends PhoenixLightLitElement {
|
|
|
20
20
|
this.class = '';
|
|
21
21
|
this.transition = 'scale';
|
|
22
22
|
this.sheetLabel = '';
|
|
23
|
-
this._firstFocusableElement = undefined;
|
|
24
|
-
this._focusableElements = null;
|
|
25
|
-
this._lastFocusableElement = undefined;
|
|
26
23
|
this._focusedToggler = null;
|
|
27
24
|
this._contentRef = createRef();
|
|
28
25
|
this._focusSentinelStart = createRef();
|
|
@@ -30,42 +27,25 @@ let HSheet = HSheet_1 = class HSheet extends PhoenixLightLitElement {
|
|
|
30
27
|
this._propsChangeStrategies = {
|
|
31
28
|
[SHEET_OPENED_PROP]: {
|
|
32
29
|
true: () => {
|
|
33
|
-
const scrollY = window.scrollY;
|
|
34
30
|
HSheet_1.openSheets = [...HSheet_1.openSheets, this];
|
|
35
31
|
document.addEventListener('keydown', this._bindCloseOnEsc);
|
|
36
32
|
document.addEventListener(BACKDROP_EVENTS.clicked, this.close);
|
|
37
33
|
this._dispatchSheetOpenedEvent();
|
|
38
|
-
|
|
39
|
-
var _a;
|
|
40
|
-
(_a = this._firstFocusableElement) === null || _a === void 0 ? void 0 : _a.focus();
|
|
41
|
-
window.scrollTo(0, scrollY);
|
|
42
|
-
}, 0);
|
|
34
|
+
this._focusTrapController.activate();
|
|
43
35
|
},
|
|
44
36
|
false: () => {
|
|
45
37
|
HSheet_1.openSheets = HSheet_1.openSheets.filter((sheet) => sheet !== this);
|
|
46
38
|
document.removeEventListener('keydown', this._bindCloseOnEsc);
|
|
47
39
|
document.removeEventListener(BACKDROP_EVENTS.clicked, this.close);
|
|
40
|
+
this._focusTrapController.deactivate();
|
|
48
41
|
}
|
|
49
42
|
}
|
|
50
43
|
};
|
|
51
44
|
this._backdropController = new BackdropController();
|
|
52
|
-
this.
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
if (ev.shiftKey) {
|
|
57
|
-
if (document.activeElement === this._firstFocusableElement) {
|
|
58
|
-
const focusableElements = UiDomUtils.getFocusableElements(this._contentRef.value);
|
|
59
|
-
(_a = focusableElements[focusableElements.length - 1]) === null || _a === void 0 ? void 0 : _a.focus();
|
|
60
|
-
ev.preventDefault();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
else if (document.activeElement === this._lastFocusableElement) {
|
|
64
|
-
UiDomUtils.setFocusToFirstFocusableElementInContainer(this._contentRef.value);
|
|
65
|
-
ev.preventDefault();
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
};
|
|
45
|
+
this._focusTrapController = new FocusTrapController({
|
|
46
|
+
host: this,
|
|
47
|
+
getContainer: () => this._contentRef.value
|
|
48
|
+
});
|
|
69
49
|
this._handleCloseFromCloseComponent = async (ev) => {
|
|
70
50
|
var _a;
|
|
71
51
|
ev.stopPropagation();
|
|
@@ -126,7 +106,6 @@ let HSheet = HSheet_1 = class HSheet extends PhoenixLightLitElement {
|
|
|
126
106
|
});
|
|
127
107
|
};
|
|
128
108
|
this.hidden = true;
|
|
129
|
-
this._focusableElements = [...this.querySelectorAll(FOCUSABLE_ELEMENTS_WITHIN_SHEET)];
|
|
130
109
|
}
|
|
131
110
|
static _appendSheetPortal() {
|
|
132
111
|
const $modalsPortalTarget = document.querySelector(`h-portal-target[name="${SHEETS_PORTAL_NAME}"]`);
|
|
@@ -142,7 +121,6 @@ let HSheet = HSheet_1 = class HSheet extends PhoenixLightLitElement {
|
|
|
142
121
|
connectedCallback() {
|
|
143
122
|
super.connectedCallback();
|
|
144
123
|
HSheet_1._appendSheetPortal();
|
|
145
|
-
document.addEventListener('keyup', this._keepFocusWithinSheet);
|
|
146
124
|
document.addEventListener(SHEET_EVENTS.close, this._handleCloseFromCloseComponent);
|
|
147
125
|
}
|
|
148
126
|
disconnectedCallback() {
|
|
@@ -151,28 +129,16 @@ let HSheet = HSheet_1 = class HSheet extends PhoenixLightLitElement {
|
|
|
151
129
|
this.close();
|
|
152
130
|
document.removeEventListener(SHEET_EVENTS.close, this._handleCloseFromCloseComponent);
|
|
153
131
|
document.removeEventListener('keydown', this._bindCloseOnEsc);
|
|
154
|
-
document.removeEventListener('keyup', this._keepFocusWithinSheet);
|
|
155
132
|
}
|
|
156
133
|
firstUpdated(props) {
|
|
157
134
|
super.firstUpdated(props);
|
|
158
|
-
this.
|
|
159
|
-
this._lastFocusableElement = this._focusSentinelEnd.value;
|
|
135
|
+
this._focusTrapController.setSentinels(this._focusSentinelStart.value, this._focusSentinelEnd.value);
|
|
160
136
|
}
|
|
161
137
|
updated(changedProps) {
|
|
162
138
|
if (changedProps.has(SHEET_OPENED_PROP)) {
|
|
163
139
|
this._propsChangeStrategies[SHEET_OPENED_PROP][String(this[SHEET_OPENED_PROP])]();
|
|
164
140
|
}
|
|
165
141
|
}
|
|
166
|
-
_setFocusToFirstFocusableElementInSheetOrCloseBtn() {
|
|
167
|
-
requestAnimationFrame(() => {
|
|
168
|
-
if (this._contentRef.value) {
|
|
169
|
-
const focusableElements = UiDomUtils.getFocusableElements(this._contentRef.value);
|
|
170
|
-
if (focusableElements.length > 0) {
|
|
171
|
-
focusableElements.length > 1 ? focusableElements[1].focus() : focusableElements[0].focus();
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
142
|
async open() {
|
|
177
143
|
this._focusedToggler = document.activeElement;
|
|
178
144
|
return new Promise((resolve) => {
|
|
@@ -188,7 +154,7 @@ let HSheet = HSheet_1 = class HSheet extends PhoenixLightLitElement {
|
|
|
188
154
|
setTimeout(() => {
|
|
189
155
|
var _a;
|
|
190
156
|
(_a = this._contentRef.value) === null || _a === void 0 ? void 0 : _a.classList.remove(`sheet_show-${this.transition}-start`, `sheet_show-${this.transition}-end`);
|
|
191
|
-
this.
|
|
157
|
+
this._focusTrapController.focusFirst();
|
|
192
158
|
resolve();
|
|
193
159
|
}, transitionDuration);
|
|
194
160
|
});
|
|
@@ -241,18 +207,6 @@ __decorate([
|
|
|
241
207
|
property({ type: String, attribute: 'sheet-label' }),
|
|
242
208
|
__metadata("design:type", Object)
|
|
243
209
|
], HSheet.prototype, "sheetLabel", void 0);
|
|
244
|
-
__decorate([
|
|
245
|
-
state(),
|
|
246
|
-
__metadata("design:type", Object)
|
|
247
|
-
], HSheet.prototype, "_firstFocusableElement", void 0);
|
|
248
|
-
__decorate([
|
|
249
|
-
state(),
|
|
250
|
-
__metadata("design:type", Object)
|
|
251
|
-
], HSheet.prototype, "_focusableElements", void 0);
|
|
252
|
-
__decorate([
|
|
253
|
-
state(),
|
|
254
|
-
__metadata("design:type", Object)
|
|
255
|
-
], HSheet.prototype, "_lastFocusableElement", void 0);
|
|
256
210
|
HSheet = HSheet_1 = __decorate([
|
|
257
211
|
phoenixCustomElement('h-sheet'),
|
|
258
212
|
__metadata("design:paramtypes", [])
|