@shoper/phoenix_design_system 1.18.9 → 1.18.10-1

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.
Files changed (43) hide show
  1. package/build/cjs/packages/phoenix/src/components/accordion/accordion.js +14 -5
  2. package/build/cjs/packages/phoenix/src/components/accordion/accordion.js.map +1 -1
  3. package/build/cjs/packages/phoenix/src/components/accordion/accordion_constants.js +9 -2
  4. package/build/cjs/packages/phoenix/src/components/accordion/accordion_constants.js.map +1 -1
  5. package/build/cjs/packages/phoenix/src/components/accordion/accordion_content.js +35 -17
  6. package/build/cjs/packages/phoenix/src/components/accordion/accordion_content.js.map +1 -1
  7. package/build/cjs/packages/phoenix/src/components/accordion/accordion_group.js +169 -28
  8. package/build/cjs/packages/phoenix/src/components/accordion/accordion_group.js.map +1 -1
  9. package/build/cjs/packages/phoenix/src/components/accordion/accordion_toggler.js +16 -7
  10. package/build/cjs/packages/phoenix/src/components/accordion/accordion_toggler.js.map +1 -1
  11. package/build/cjs/packages/phoenix/src/components/form/select/select.js +2 -1
  12. package/build/cjs/packages/phoenix/src/components/form/select/select.js.map +1 -1
  13. package/build/cjs/packages/phoenix/src/components/messages/base_message.js +1 -1
  14. package/build/cjs/packages/phoenix/src/index.js +2 -0
  15. package/build/cjs/packages/phoenix/src/index.js.map +1 -1
  16. package/build/cjs/packages/utilities/build/esm/packages/utilities/src/feature_flag_utils.js +26 -0
  17. package/build/cjs/packages/utilities/build/esm/packages/utilities/src/feature_flag_utils.js.map +1 -0
  18. package/build/cjs/packages/utilities/build/esm/packages/utilities/src/json_utils.js +25 -0
  19. package/build/cjs/packages/utilities/build/esm/packages/utilities/src/json_utils.js.map +1 -0
  20. package/build/esm/packages/phoenix/src/components/accordion/accordion.d.ts +1 -0
  21. package/build/esm/packages/phoenix/src/components/accordion/accordion.js +15 -6
  22. package/build/esm/packages/phoenix/src/components/accordion/accordion.js.map +1 -1
  23. package/build/esm/packages/phoenix/src/components/accordion/accordion_constants.d.ts +7 -2
  24. package/build/esm/packages/phoenix/src/components/accordion/accordion_constants.js +8 -3
  25. package/build/esm/packages/phoenix/src/components/accordion/accordion_constants.js.map +1 -1
  26. package/build/esm/packages/phoenix/src/components/accordion/accordion_content.d.ts +1 -0
  27. package/build/esm/packages/phoenix/src/components/accordion/accordion_content.js +35 -17
  28. package/build/esm/packages/phoenix/src/components/accordion/accordion_content.js.map +1 -1
  29. package/build/esm/packages/phoenix/src/components/accordion/accordion_group.d.ts +12 -0
  30. package/build/esm/packages/phoenix/src/components/accordion/accordion_group.js +170 -29
  31. package/build/esm/packages/phoenix/src/components/accordion/accordion_group.js.map +1 -1
  32. package/build/esm/packages/phoenix/src/components/accordion/accordion_toggler.d.ts +1 -0
  33. package/build/esm/packages/phoenix/src/components/accordion/accordion_toggler.js +16 -7
  34. package/build/esm/packages/phoenix/src/components/accordion/accordion_toggler.js.map +1 -1
  35. package/build/esm/packages/phoenix/src/components/form/select/select.js +2 -1
  36. package/build/esm/packages/phoenix/src/components/form/select/select.js.map +1 -1
  37. package/build/esm/packages/phoenix/src/components/messages/base_message.js +1 -1
  38. package/build/esm/packages/phoenix/src/index.js +1 -1
  39. package/build/esm/packages/utilities/build/esm/packages/utilities/src/feature_flag_utils.js +22 -0
  40. package/build/esm/packages/utilities/build/esm/packages/utilities/src/feature_flag_utils.js.map +1 -0
  41. package/build/esm/packages/utilities/build/esm/packages/utilities/src/json_utils.js +21 -0
  42. package/build/esm/packages/utilities/build/esm/packages/utilities/src/json_utils.js.map +1 -0
  43. package/package.json +2 -2
@@ -4,17 +4,21 @@ import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/pho
4
4
  import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
5
5
  import { BehaviorSubject } from '../../core/classes/behavior_subject/behavior_subject.js';
6
6
  import { ContextProviderController } from '../../core/context/context_provider_controller.js';
7
- import { ACCORDION_MODE, ACCORDION_CONTEXTS } from './accordion_constants.js';
7
+ import { ACCORDION_MODE, ACCORDION_CONTEXTS, ACCORDION_EVENTS } from './accordion_constants.js';
8
+ import { FeatureFlagUtils } from '../../../../utilities/build/esm/packages/utilities/src/feature_flag_utils.js';
8
9
 
9
10
  let HAccordion = class HAccordion extends PhoenixLightLitElement {
10
11
  constructor() {
11
12
  super();
12
13
  this.disabled = false;
13
14
  this.mode = ACCORDION_MODE.multi;
14
- this._accordionSubject = new BehaviorSubject(this._getProps());
15
- this._accordionContext = new ContextProviderController(this);
16
- this._accordionContext.provide(ACCORDION_CONTEXTS.accordionProps, this._accordionSubject);
17
- this.setAttribute('role', 'none');
15
+ this._isDevAccordionOptimizationFlagEnabled = FeatureFlagUtils.isEnabled('dev_accordion_optimization');
16
+ if (!this._isDevAccordionOptimizationFlagEnabled) {
17
+ this._accordionSubject = new BehaviorSubject(this._getProps());
18
+ this._accordionContext = new ContextProviderController(this);
19
+ this._accordionContext.provide(ACCORDION_CONTEXTS.accordionProps, this._accordionSubject);
20
+ this.setAttribute('role', 'none');
21
+ }
18
22
  }
19
23
  enable() {
20
24
  this.disabled = false;
@@ -26,7 +30,12 @@ let HAccordion = class HAccordion extends PhoenixLightLitElement {
26
30
  this.notify();
27
31
  }
28
32
  notify() {
29
- this._accordionSubject.notify(this._getProps());
33
+ if (this._isDevAccordionOptimizationFlagEnabled) {
34
+ this.dispatchEvent(new Event(ACCORDION_EVENTS.update));
35
+ }
36
+ else {
37
+ this._accordionSubject.notify(this._getProps());
38
+ }
30
39
  }
31
40
  _getProps() {
32
41
  return {
@@ -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;"}
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;"}
@@ -1,11 +1,16 @@
1
1
  export declare const ACCORDION_EVENTS: {
2
2
  readonly toggle: "toggle";
3
+ readonly update: "updateAccordion";
3
4
  };
4
5
  export declare const ACCORDION_CONTEXTS: {
5
- readonly accordionProps: "accordionPropsSubject";
6
- readonly accordionGroupProps: "accordionGroupPropsSubject";
6
+ accordionProps: string;
7
+ accordionGroupProps: string;
8
+ };
9
+ export declare const ACCORDION_CSS_CLASSES: {
10
+ readonly open: "accordion__details_open";
7
11
  };
8
12
  export declare const ACCORDION_MODE: {
9
13
  readonly single: "single";
10
14
  readonly multi: "multi";
11
15
  };
16
+ export declare const ACCORDION_ANIMATION_DURATION = 400;
@@ -1,14 +1,19 @@
1
1
  const ACCORDION_EVENTS = {
2
- toggle: 'toggle'
2
+ toggle: 'toggle',
3
+ update: 'updateAccordion'
3
4
  };
4
5
  const ACCORDION_CONTEXTS = {
5
6
  accordionProps: 'accordionPropsSubject',
6
7
  accordionGroupProps: 'accordionGroupPropsSubject'
7
8
  };
9
+ const ACCORDION_CSS_CLASSES = {
10
+ open: 'accordion__details_open'
11
+ };
8
12
  const ACCORDION_MODE = {
9
13
  single: 'single',
10
14
  multi: 'multi'
11
- };
15
+ };
16
+ const ACCORDION_ANIMATION_DURATION = 400;
12
17
 
13
- export { ACCORDION_CONTEXTS, ACCORDION_EVENTS, ACCORDION_MODE };
18
+ export { ACCORDION_ANIMATION_DURATION, ACCORDION_CONTEXTS, ACCORDION_CSS_CLASSES, ACCORDION_EVENTS, ACCORDION_MODE };
14
19
  //# sourceMappingURL=accordion_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;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -11,6 +11,7 @@ export declare class HAccordionContent extends PhoenixLightLitElement {
11
11
  private _mutationDebounceTimer;
12
12
  private _mutationObserver;
13
13
  private _boundHandleTransitionEnd;
14
+ private _isDevAccordionOptimizationFlagEnabled;
14
15
  constructor();
15
16
  connectedCallback(): void;
16
17
  firstUpdated(props: PropertyValues): void;
@@ -6,6 +6,7 @@ import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_eleme
6
6
  import { Observer } from '../../core/classes/observer/observer.js';
7
7
  import { ContextConsumerController } from '../../core/context/context_consumer_controller.js';
8
8
  import { ACCORDION_CONTEXTS } from './accordion_constants.js';
9
+ import { FeatureFlagUtils } from '../../../../utilities/build/esm/packages/utilities/src/feature_flag_utils.js';
9
10
  import { TransitionController } from '../../controllers/transition_controller/transition_controller.js';
10
11
 
11
12
  const RESIZE_DEBOUNCE_MS = 150;
@@ -68,6 +69,8 @@ let HAccordionContent = class HAccordionContent extends PhoenixLightLitElement {
68
69
  this._setHeight(this._originalHeight);
69
70
  };
70
71
  this._handleTransitionEnd = (e) => {
72
+ if (this._isDevAccordionOptimizationFlagEnabled)
73
+ return;
71
74
  if (e.propertyName !== 'height' || e.target !== this) {
72
75
  return;
73
76
  }
@@ -84,20 +87,33 @@ let HAccordionContent = class HAccordionContent extends PhoenixLightLitElement {
84
87
  });
85
88
  });
86
89
  };
87
- this.setAttribute('role', 'region');
88
- this._boundHandleTransitionEnd = this._handleTransitionEnd.bind(this);
90
+ this._isDevAccordionOptimizationFlagEnabled = FeatureFlagUtils.isEnabled('dev_accordion_optimization');
91
+ if (this._isDevAccordionOptimizationFlagEnabled) {
92
+ this.slot = this.hasAttribute('slot') ? this.slot : 'content';
93
+ }
94
+ else {
95
+ this.setAttribute('role', 'region');
96
+ this._boundHandleTransitionEnd = this._handleTransitionEnd.bind(this);
97
+ }
89
98
  }
90
99
  connectedCallback() {
91
100
  super.connectedCallback();
92
- this._contextConsumer = new ContextConsumerController(this);
93
- this._transitionController = new TransitionController(this, this.transitionName);
94
- this._subscribeObserver();
95
- window.addEventListener('resize', this._handleResize, { passive: true });
96
- this.addEventListener('transitionend', this._boundHandleTransitionEnd);
101
+ if (!this._isDevAccordionOptimizationFlagEnabled) {
102
+ this._contextConsumer = new ContextConsumerController(this);
103
+ this._transitionController = new TransitionController(this, this.transitionName);
104
+ this._subscribeObserver();
105
+ window.addEventListener('resize', this._handleResize, { passive: true });
106
+ this.addEventListener('transitionend', this._boundHandleTransitionEnd);
107
+ }
108
+ if (this._isDevAccordionOptimizationFlagEnabled) {
109
+ this.classList.add('accordion-content');
110
+ }
97
111
  }
98
112
  firstUpdated(props) {
99
113
  super.firstUpdated(props);
100
- this._setStylingOptions();
114
+ if (!this._isDevAccordionOptimizationFlagEnabled) {
115
+ this._setStylingOptions();
116
+ }
101
117
  }
102
118
  async _subscribeObserver() {
103
119
  this._accordionGroupProps = await this._contextConsumer.consumeAsync(ACCORDION_CONTEXTS.accordionGroupProps);
@@ -119,15 +135,17 @@ let HAccordionContent = class HAccordionContent extends PhoenixLightLitElement {
119
135
  disconnectedCallback() {
120
136
  var _a, _b;
121
137
  super.disconnectedCallback();
122
- (_a = this._accordionGroupProps) === null || _a === void 0 ? void 0 : _a.unsubscribe(this._accordionGroupPropsObserver);
123
- (_b = this._mutationObserver) === null || _b === void 0 ? void 0 : _b.disconnect();
124
- window.removeEventListener('resize', this._handleResize);
125
- this.removeEventListener('transitionend', this._boundHandleTransitionEnd);
126
- if (this._resizeDebounceTimer !== null) {
127
- window.cancelAnimationFrame(this._resizeDebounceTimer);
128
- }
129
- if (this._mutationDebounceTimer !== null) {
130
- window.clearTimeout(this._mutationDebounceTimer);
138
+ if (!this._isDevAccordionOptimizationFlagEnabled) {
139
+ (_a = this._accordionGroupProps) === null || _a === void 0 ? void 0 : _a.unsubscribe(this._accordionGroupPropsObserver);
140
+ (_b = this._mutationObserver) === null || _b === void 0 ? void 0 : _b.disconnect();
141
+ window.removeEventListener('resize', this._handleResize);
142
+ this.removeEventListener('transitionend', this._boundHandleTransitionEnd);
143
+ if (this._resizeDebounceTimer !== null) {
144
+ window.cancelAnimationFrame(this._resizeDebounceTimer);
145
+ }
146
+ if (this._mutationDebounceTimer !== null) {
147
+ window.clearTimeout(this._mutationDebounceTimer);
148
+ }
131
149
  }
132
150
  }
133
151
  };
@@ -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;"}
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;"}
@@ -1,5 +1,6 @@
1
1
  import type { IAccordion, IAccordionGroup } from './accordion_types';
2
2
  import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element/phoenix_light_lit_element";
3
+ import { PropertyValues } from 'lit';
3
4
  export declare class HAccordionGroup extends PhoenixLightLitElement implements IAccordionGroup, IAccordion {
4
5
  opened: boolean;
5
6
  private _isDisabled;
@@ -11,13 +12,22 @@ export declare class HAccordionGroup extends PhoenixLightLitElement implements I
11
12
  private _accordionContextConsumer;
12
13
  private _accordionProps;
13
14
  private _accordionPropsObserver;
15
+ private _$parentAccordion;
16
+ private _detailsRef;
17
+ private _togglerId;
18
+ private _isDevAccordionOptimizationFlagEnabled;
14
19
  constructor();
15
20
  connectedCallback(): void;
21
+ firstUpdated(props: PropertyValues): void;
16
22
  private _subscribeObserver;
17
23
  disconnectedCallback(): void;
24
+ private _syncWithParentAccordion;
18
25
  show(): void;
19
26
  hide(): void;
27
+ private _dispatchToggleEvent;
20
28
  toggle(): void;
29
+ private _handleSingleModeConstraint;
30
+ private _hideOtherDetailsGroups;
21
31
  enable(): void;
22
32
  disable(): void;
23
33
  private _accordionToggle;
@@ -25,4 +35,6 @@ export declare class HAccordionGroup extends PhoenixLightLitElement implements I
25
35
  notify(): void;
26
36
  protected updated(_changedProperties: Map<string, unknown>): void;
27
37
  private _getProps;
38
+ private _summaryClickHandler;
39
+ protected render(): unknown;
28
40
  }
@@ -1,4 +1,5 @@
1
1
  import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
2
+ import { html } from 'lit';
2
3
  import { property, state } from 'lit/decorators';
3
4
  import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
4
5
  import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
@@ -6,7 +7,11 @@ import { Observer } from '../../core/classes/observer/observer.js';
6
7
  import { ContextConsumerController } from '../../core/context/context_consumer_controller.js';
7
8
  import { BehaviorSubject } from '../../core/classes/behavior_subject/behavior_subject.js';
8
9
  import { ContextProviderController } from '../../core/context/context_provider_controller.js';
9
- import { ACCORDION_MODE, ACCORDION_CONTEXTS, ACCORDION_EVENTS } from './accordion_constants.js';
10
+ import v4 from '../../../../../external/uuid/dist/esm-browser/v4.js';
11
+ import { ACCORDION_MODE, ACCORDION_CONTEXTS, ACCORDION_EVENTS, ACCORDION_CSS_CLASSES, ACCORDION_ANIMATION_DURATION } from './accordion_constants.js';
12
+ import { FeatureFlagUtils } from '../../../../utilities/build/esm/packages/utilities/src/feature_flag_utils.js';
13
+ import { createRef, ref } from 'lit/directives/ref';
14
+ import { when } from 'lit/directives/when';
10
15
 
11
16
  let HAccordionGroup = class HAccordionGroup extends PhoenixLightLitElement {
12
17
  constructor() {
@@ -16,19 +21,63 @@ let HAccordionGroup = class HAccordionGroup extends PhoenixLightLitElement {
16
21
  this._regionId = typeof self.crypto.randomUUID === 'function' ? self.crypto.randomUUID() : (Math.random() + 1).toString(36).substring(3);
17
22
  this._controlsId = typeof self.crypto.randomUUID === 'function' ? self.crypto.randomUUID() : (Math.random() + 1).toString(36).substring(3);
18
23
  this._mode = ACCORDION_MODE.multi;
24
+ this._$parentAccordion = null;
25
+ this._detailsRef = createRef();
26
+ this._togglerId = v4();
27
+ this._syncWithParentAccordion = () => {
28
+ if (!this._$parentAccordion)
29
+ return;
30
+ this._mode = this._$parentAccordion.mode;
31
+ const shouldBeDisabled = this._$parentAccordion.disabled;
32
+ const hasDisabledStateChanged = shouldBeDisabled !== this._isDisabled;
33
+ if (hasDisabledStateChanged) {
34
+ shouldBeDisabled ? this.disable() : this.enable();
35
+ }
36
+ };
37
+ this._hideOtherDetailsGroups = () => {
38
+ var _a;
39
+ if (this._isDisabled)
40
+ return;
41
+ (_a = this._$parentAccordion) === null || _a === void 0 ? void 0 : _a.querySelectorAll('h-accordion-group').forEach(($accordionGroup) => {
42
+ if ($accordionGroup === this)
43
+ return;
44
+ $accordionGroup.hide();
45
+ });
46
+ };
19
47
  this._accordionToggle = () => {
20
48
  this.toggle();
21
49
  };
22
- this._accordionGroupPropsSubject = new BehaviorSubject(this._getProps());
23
- this._accordionGroupContext = new ContextProviderController(this);
24
- this._accordionGroupContext.provide(ACCORDION_CONTEXTS.accordionGroupProps, this._accordionGroupPropsSubject);
25
- this.setAttribute('role', 'none');
50
+ this._summaryClickHandler = (ev) => {
51
+ ev.preventDefault();
52
+ if (!this._isDisabled)
53
+ this.toggle();
54
+ };
55
+ this._isDevAccordionOptimizationFlagEnabled = FeatureFlagUtils.isEnabled('dev_accordion_optimization');
56
+ if (!this._isDevAccordionOptimizationFlagEnabled) {
57
+ this._accordionGroupPropsSubject = new BehaviorSubject(this._getProps());
58
+ this._accordionGroupContext = new ContextProviderController(this);
59
+ this._accordionGroupContext.provide(ACCORDION_CONTEXTS.accordionGroupProps, this._accordionGroupPropsSubject);
60
+ this.setAttribute('role', 'none');
61
+ }
26
62
  }
27
63
  connectedCallback() {
64
+ var _a;
28
65
  super.connectedCallback();
29
- this._accordionContextConsumer = new ContextConsumerController(this);
30
- this._subscribeObserver();
31
- this.addEventListener(ACCORDION_EVENTS.toggle, this._accordionToggle);
66
+ if (this._isDevAccordionOptimizationFlagEnabled) {
67
+ this._$parentAccordion = this.closest('h-accordion');
68
+ (_a = this._$parentAccordion) === null || _a === void 0 ? void 0 : _a.addEventListener(ACCORDION_EVENTS.update, this._syncWithParentAccordion);
69
+ this._syncWithParentAccordion();
70
+ }
71
+ else {
72
+ this._accordionContextConsumer = new ContextConsumerController(this);
73
+ this._subscribeObserver();
74
+ this.addEventListener(ACCORDION_EVENTS.toggle, this._accordionToggle);
75
+ }
76
+ }
77
+ firstUpdated(props) {
78
+ super.firstUpdated(props);
79
+ if (this.opened && this._isDevAccordionOptimizationFlagEnabled)
80
+ this.show();
32
81
  }
33
82
  async _subscribeObserver() {
34
83
  this._accordionProps = await this._accordionContextConsumer.consumeAsync(ACCORDION_CONTEXTS.accordionProps);
@@ -48,34 +97,102 @@ let HAccordionGroup = class HAccordionGroup extends PhoenixLightLitElement {
48
97
  this._accordionProps.subscribe(this._accordionPropsObserver);
49
98
  }
50
99
  disconnectedCallback() {
51
- this._accordionProps.unsubscribe(this._accordionPropsObserver);
52
- this.removeEventListener(ACCORDION_EVENTS.toggle, this._accordionToggle);
100
+ var _a;
101
+ super.disconnectedCallback();
102
+ if (this._isDevAccordionOptimizationFlagEnabled) {
103
+ (_a = this._$parentAccordion) === null || _a === void 0 ? void 0 : _a.removeEventListener(ACCORDION_EVENTS.update, this._syncWithParentAccordion);
104
+ }
105
+ else {
106
+ this._accordionProps.unsubscribe(this._accordionPropsObserver);
107
+ this.removeEventListener(ACCORDION_EVENTS.toggle, this._accordionToggle);
108
+ }
53
109
  }
54
110
  show() {
55
- if (this._mode === ACCORDION_MODE.single)
56
- this._closeOtherAccordionGroups();
57
- this.opened = true;
111
+ if (this._isDevAccordionOptimizationFlagEnabled) {
112
+ this._handleSingleModeConstraint();
113
+ const $details = this._detailsRef.value;
114
+ if (!$details)
115
+ return;
116
+ $details.setAttribute('open', '');
117
+ requestAnimationFrame(() => {
118
+ $details.classList.add(ACCORDION_CSS_CLASSES.open);
119
+ });
120
+ this._dispatchToggleEvent($details, true);
121
+ }
122
+ else {
123
+ if (this._mode === ACCORDION_MODE.single)
124
+ this._closeOtherAccordionGroups();
125
+ this.opened = true;
126
+ }
58
127
  }
59
128
  hide() {
60
- this.opened = false;
129
+ if (this._isDevAccordionOptimizationFlagEnabled) {
130
+ const $details = this._detailsRef.value;
131
+ if (!$details)
132
+ return;
133
+ $details.classList.remove(ACCORDION_CSS_CLASSES.open);
134
+ setTimeout(() => {
135
+ $details.removeAttribute('open');
136
+ }, ACCORDION_ANIMATION_DURATION);
137
+ this._dispatchToggleEvent($details, false);
138
+ }
139
+ else {
140
+ this.opened = false;
141
+ }
142
+ }
143
+ _dispatchToggleEvent($details, open) {
144
+ this.emitCustomEvent(ACCORDION_EVENTS.toggle, {
145
+ detail: { open, target: $details }
146
+ });
61
147
  }
62
148
  toggle() {
63
- if (this._mode === ACCORDION_MODE.single)
64
- this._closeOtherAccordionGroups();
65
- this.opened = !this.opened;
149
+ if (this._isDevAccordionOptimizationFlagEnabled) {
150
+ this._handleSingleModeConstraint();
151
+ const $details = this._detailsRef.value;
152
+ if (!$details)
153
+ return;
154
+ const isOpen = $details.hasAttribute('open');
155
+ isOpen ? this.hide() : this.show();
156
+ }
157
+ else {
158
+ if (this._mode === ACCORDION_MODE.single)
159
+ this._closeOtherAccordionGroups();
160
+ this.opened = !this.opened;
161
+ }
162
+ }
163
+ _handleSingleModeConstraint() {
164
+ if (this._mode === ACCORDION_MODE.single) {
165
+ this._hideOtherDetailsGroups();
166
+ }
66
167
  }
67
168
  enable() {
68
- if (this._isDisabled) {
69
- this.addEventListener(ACCORDION_EVENTS.toggle, this._accordionToggle);
70
- this.hide();
169
+ if (this._isDevAccordionOptimizationFlagEnabled) {
170
+ if (!this._isDisabled)
171
+ return;
71
172
  this._isDisabled = false;
173
+ this.hide();
174
+ }
175
+ else {
176
+ if (this._isDisabled) {
177
+ this.addEventListener(ACCORDION_EVENTS.toggle, this._accordionToggle);
178
+ this.hide();
179
+ this._isDisabled = false;
180
+ }
72
181
  }
73
182
  }
74
183
  disable() {
75
- if (!this._isDisabled) {
76
- this.removeEventListener(ACCORDION_EVENTS.toggle, this._accordionToggle);
77
- this.show();
184
+ if (this._isDevAccordionOptimizationFlagEnabled) {
185
+ if (this._isDisabled)
186
+ return;
78
187
  this._isDisabled = true;
188
+ this.show();
189
+ }
190
+ else {
191
+ if (!this._isDisabled) {
192
+ this.removeEventListener(ACCORDION_EVENTS.toggle, this._accordionToggle);
193
+ this.show();
194
+ this._isDisabled = true;
195
+ }
79
196
  }
80
197
  }
81
198
  _closeOtherAccordionGroups() {
@@ -87,14 +204,18 @@ let HAccordionGroup = class HAccordionGroup extends PhoenixLightLitElement {
87
204
  }
88
205
  }
89
206
  notify() {
90
- this._accordionGroupPropsSubject.notify(this._getProps());
207
+ if (!this._isDevAccordionOptimizationFlagEnabled) {
208
+ this._accordionGroupPropsSubject.notify(this._getProps());
209
+ }
91
210
  }
92
211
  updated(_changedProperties) {
93
- if (_changedProperties.has('opened') ||
94
- _changedProperties.has('_isDisabled') ||
95
- _changedProperties.has('_regionId') ||
96
- _changedProperties.has('_controlsId')) {
97
- this.notify();
212
+ if (!this._isDevAccordionOptimizationFlagEnabled) {
213
+ if (_changedProperties.has('opened') ||
214
+ _changedProperties.has('_isDisabled') ||
215
+ _changedProperties.has('_regionId') ||
216
+ _changedProperties.has('_controlsId')) {
217
+ this.notify();
218
+ }
98
219
  }
99
220
  }
100
221
  _getProps() {
@@ -105,6 +226,26 @@ let HAccordionGroup = class HAccordionGroup extends PhoenixLightLitElement {
105
226
  controlsId: this._controlsId
106
227
  };
107
228
  }
229
+ render() {
230
+ return when(this._isDevAccordionOptimizationFlagEnabled, () => html `
231
+ <details
232
+ ${ref(this._detailsRef)}
233
+ class="accordion__details ${this._isDisabled ? 'accordion__details_disabled' : ''}"
234
+ aria-disabled="${this._isDisabled ? 'true' : 'false'}"
235
+ aria-labelledby="${this._togglerId}"
236
+ >
237
+ <summary
238
+ class="accordion__summary"
239
+ id="${this._togglerId}"
240
+ @click=${this._summaryClickHandler}
241
+ >
242
+ ${this.getSlot('toggler')}
243
+ </summary>
244
+
245
+ ${this.getSlot('content')}
246
+ </details>
247
+ `);
248
+ }
108
249
  };
109
250
  __decorate([
110
251
  property({ type: Boolean, reflect: true }),
@@ -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;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,4CAAgD;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qDAAyD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -3,6 +3,7 @@ export declare class HAccordionToggler extends PhoenixLightLitElement {
3
3
  private _contextConsumer;
4
4
  private _accordionGroupProps;
5
5
  private _accordionGroupPropsObserver;
6
+ private _isDevAccordionOptimizationFlagEnabled;
6
7
  constructor();
7
8
  connectedCallback(): Promise<void>;
8
9
  private _setAttributes;
@@ -1,4 +1,5 @@
1
1
  import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
2
+ import { FeatureFlagUtils } from '@dreamcommerce/utilities';
2
3
  import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
3
4
  import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
4
5
  import { Observer } from '../../core/classes/observer/observer.js';
@@ -18,15 +19,23 @@ let HAccordionToggler = class HAccordionToggler extends PhoenixLightLitElement {
18
19
  this._emitTogglerClicked = () => {
19
20
  this.emitCustomEvent(ACCORDION_EVENTS.toggle);
20
21
  };
21
- this._contextConsumer = new ContextConsumerController(this);
22
+ this._isDevAccordionOptimizationFlagEnabled = FeatureFlagUtils.isEnabled('dev_accordion_optimization');
23
+ if (this._isDevAccordionOptimizationFlagEnabled) {
24
+ this.slot = this.hasAttribute('slot') ? this.slot : 'toggler';
25
+ }
26
+ else {
27
+ this._contextConsumer = new ContextConsumerController(this);
28
+ }
22
29
  }
23
30
  async connectedCallback() {
24
31
  super.connectedCallback();
25
- this._accordionGroupProps = await this._contextConsumer.consumeAsync(ACCORDION_CONTEXTS.accordionGroupProps);
26
- this._accordionGroupPropsObserver = new Observer((accordionProps) => this._setAttributes(accordionProps));
27
- this._accordionGroupProps.subscribe(this._accordionGroupPropsObserver);
28
- this.addEventListener('click', this._emitTogglerClicked);
29
- this.addEventListener('keydown', this._emitTogglerClickedWithKeyboard);
32
+ if (!this._isDevAccordionOptimizationFlagEnabled) {
33
+ this._accordionGroupProps = await this._contextConsumer.consumeAsync(ACCORDION_CONTEXTS.accordionGroupProps);
34
+ this._accordionGroupPropsObserver = new Observer((accordionProps) => this._setAttributes(accordionProps));
35
+ this._accordionGroupProps.subscribe(this._accordionGroupPropsObserver);
36
+ this.addEventListener('click', this._emitTogglerClicked);
37
+ this.addEventListener('keydown', this._emitTogglerClickedWithKeyboard);
38
+ }
30
39
  }
31
40
  _setAttributes({ regionId, opened, controlsId, disabled }) {
32
41
  this.setAttribute('id', regionId);
@@ -43,7 +52,7 @@ let HAccordionToggler = class HAccordionToggler extends PhoenixLightLitElement {
43
52
  }
44
53
  }
45
54
  disconnectedCallback() {
46
- if (this._accordionGroupProps) {
55
+ if (this._accordionGroupProps && !this._isDevAccordionOptimizationFlagEnabled) {
47
56
  this._accordionGroupProps.unsubscribe(this._accordionGroupPropsObserver);
48
57
  }
49
58
  }
@@ -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;"}
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;"}
@@ -180,7 +180,8 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
180
180
  };
181
181
  const $options = Array.from(this.querySelectorAll(SELECT_RELATED_COMPONENTS_NAMES.option));
182
182
  $options.forEach(($option) => $option.setAttribute('slot', SELECT_SLOT_NAMES.content));
183
- this.$placeholder = (_a = this.querySelector(`[slot="${SELECT_INPUT_PLACEHOLDER_SLOT_NAME}"]`)) !== null && _a !== void 0 ? _a : 'Select';
183
+ const $placeholderEl = this.querySelector(`[slot="${SELECT_INPUT_PLACEHOLDER_SLOT_NAME}"]`);
184
+ this.$placeholder = ($placeholderEl && ((_a = $placeholderEl.textContent) === null || _a === void 0 ? void 0 : _a.trim())) ? $placeholderEl : 'Select';
184
185
  if (this.multiple)
185
186
  this.type = SELECT_TYPES.multiple;
186
187
  }
@@ -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;"}
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;"}
@@ -7,8 +7,8 @@ import v4 from '../../../../../external/uuid/dist/esm-browser/v4.js';
7
7
  import { PORTAL_TARGET_COMPONENT_NAME, PORTAL_TARGET_NAME_PROP, PORTAL_TARGET_ATTRIBUTE_NAME } from '../portal/portal_constants.js';
8
8
  import { ClickOutsideController } from '../../controllers/click_outside_controller/click_outside_controller.js';
9
9
  import { RelativePositionController } from '../../controllers/relative_position_controller/relative_position_controller.js';
10
- import { DEFAULT_MESSAGE_PORTAL_NAME, DEFAULT_MESSAGE_OFFSET, LIST_OF_MESSAGE_CHILDREN, MESSAGE_SHOW_DELAY_IN_MS, MESSAGE_TIME_TO_DELAY_CLOSING_IN_MS, MESSAGE_REMOVED_CLASS_NAME, MESSAGE_CLOSE_DELAY_IN_MS, MESSAGE_CONTENT_ELEMENTS, SCREEN_READER_ONLY_CLASS_NAME, MESSAGE_CONTENT_SLOT_NAME } from './base_message_constants.js';
11
10
  import { createRef, ref } from 'lit/directives/ref';
11
+ import { DEFAULT_MESSAGE_PORTAL_NAME, DEFAULT_MESSAGE_OFFSET, LIST_OF_MESSAGE_CHILDREN, MESSAGE_SHOW_DELAY_IN_MS, MESSAGE_TIME_TO_DELAY_CLOSING_IN_MS, MESSAGE_REMOVED_CLASS_NAME, MESSAGE_CLOSE_DELAY_IN_MS, MESSAGE_CONTENT_ELEMENTS, SCREEN_READER_ONLY_CLASS_NAME, MESSAGE_CONTENT_SLOT_NAME } from './base_message_constants.js';
12
12
 
13
13
  class BaseMessage extends PhoenixLightLitElement {
14
14
  constructor() {
@@ -71,7 +71,7 @@ export { HRadioControl } from './components/form/radio/radio_control.js';
71
71
  export { TEXTAREA_CONTROL_CSS_CLASSES, TEXTAREA_CONTROL_EVENTS, TEXTAREA_PROPS_TO_SYNC, TEXTAREA_SLOTS } from './components/form/textarea/textarea_constants.js';
72
72
  export { HTextarea } from './components/form/textarea/textarea.js';
73
73
  export { HTextareaControl } from './components/form/textarea/textarea_control.js';
74
- export { ACCORDION_CONTEXTS, ACCORDION_EVENTS, ACCORDION_MODE } from './components/accordion/accordion_constants.js';
74
+ export { ACCORDION_ANIMATION_DURATION, ACCORDION_CONTEXTS, ACCORDION_CSS_CLASSES, ACCORDION_EVENTS, ACCORDION_MODE } from './components/accordion/accordion_constants.js';
75
75
  export { HAccordion } from './components/accordion/accordion.js';
76
76
  export { HAccordionGroup } from './components/accordion/accordion_group.js';
77
77
  export { HAccordionContent } from './components/accordion/accordion_content.js';
@@ -0,0 +1,22 @@
1
+ import { JsonUtils } from './json_utils.js';
2
+
3
+ class FeatureFlagUtils {
4
+ static _initialize() {
5
+ if (this._flags !== null)
6
+ return;
7
+ const $script = document.getElementById('featureFlags');
8
+ this._flags = $script ? this._toObjectFromJsonScriptTag($script) : null;
9
+ }
10
+ static _toObjectFromJsonScriptTag(scriptTag) {
11
+ const scriptContent = scriptTag.textContent;
12
+ return JsonUtils.fromJson(scriptContent) || {};
13
+ }
14
+ static isEnabled(flagName) {
15
+ this._initialize();
16
+ return !!this._flags[flagName];
17
+ }
18
+ }
19
+ FeatureFlagUtils._flags = null;
20
+
21
+ export { FeatureFlagUtils };
22
+ //# sourceMappingURL=feature_flag_utils.js.map