@progressive-development/pd-wizard 0.9.1 → 1.0.0

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 (75) hide show
  1. package/LICENSE +21 -2
  2. package/README.md +33 -57
  3. package/dist/default-step-address/DefaultStepAddress.d.ts +26 -0
  4. package/dist/default-step-address/DefaultStepAddress.d.ts.map +1 -0
  5. package/dist/default-step-address/DefaultStepAddress.js +66 -0
  6. package/dist/default-step-address/default-step-address.d.ts +2 -0
  7. package/dist/default-step-address/default-step-address.d.ts.map +1 -0
  8. package/dist/default-step-address.d.ts +2 -0
  9. package/dist/default-step-address.js +1 -0
  10. package/dist/default-step-summary/DefaultStepSummary.d.ts +58 -0
  11. package/dist/default-step-summary/DefaultStepSummary.d.ts.map +1 -0
  12. package/dist/default-step-summary/DefaultStepSummary.js +77 -0
  13. package/dist/default-step-summary/default-step-summary.d.ts +3 -0
  14. package/dist/default-step-summary/default-step-summary.d.ts.map +1 -0
  15. package/dist/default-step-summary.d.ts +2 -0
  16. package/dist/default-step-summary.js +1 -0
  17. package/dist/default-wizard/DefaultWizard.d.ts +57 -0
  18. package/dist/default-wizard/DefaultWizard.d.ts.map +1 -0
  19. package/dist/default-wizard/DefaultWizard.js +270 -0
  20. package/dist/default-wizard/default-wizard.d.ts +3 -0
  21. package/dist/default-wizard/default-wizard.d.ts.map +1 -0
  22. package/dist/default-wizard.d.ts +2 -0
  23. package/dist/default-wizard.js +1 -0
  24. package/dist/generated/locales/be.d.ts +17 -0
  25. package/dist/generated/locales/be.d.ts.map +1 -1
  26. package/dist/generated/locales/de.d.ts +17 -0
  27. package/dist/generated/locales/de.d.ts.map +1 -1
  28. package/dist/generated/locales/en.d.ts +17 -0
  29. package/dist/generated/locales/en.d.ts.map +1 -1
  30. package/dist/index.d.ts +10 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +8 -0
  33. package/dist/locales/be.js +20 -1
  34. package/dist/locales/de.js +20 -1
  35. package/dist/locales/en.js +20 -1
  36. package/dist/pd-components/pd-content/dist/pd-notice-box/PdNoticeBox.js +224 -0
  37. package/dist/pd-components/pd-content/dist/pd-notice-box/pd-notice-box.js +8 -0
  38. package/dist/pd-default-wizard-step/PdDefaultWizardStep.d.ts +85 -0
  39. package/dist/pd-default-wizard-step/PdDefaultWizardStep.d.ts.map +1 -0
  40. package/dist/pd-default-wizard-step/PdDefaultWizardStep.js +167 -0
  41. package/dist/pd-default-wizard-step/pd-default-wizard-step.d.ts +2 -0
  42. package/dist/pd-default-wizard-step/pd-default-wizard-step.d.ts.map +1 -0
  43. package/dist/pd-default-wizard-step.d.ts +2 -0
  44. package/dist/pd-default-wizard-step.js +1 -0
  45. package/dist/pd-utils/dist/date-helper.js +35 -0
  46. package/dist/pd-utils/dist/locale-format.js +6 -0
  47. package/dist/pd-wizard/PdWizard.d.ts +36 -23
  48. package/dist/pd-wizard/PdWizard.d.ts.map +1 -1
  49. package/dist/pd-wizard/PdWizard.js +91 -145
  50. package/dist/pd-wizard/pd-steps/PdSteps.d.ts +26 -10
  51. package/dist/pd-wizard/pd-steps/PdSteps.d.ts.map +1 -1
  52. package/dist/pd-wizard/pd-steps/PdSteps.js +126 -62
  53. package/dist/pd-wizard/pd-steps/pd-steps.stories.d.ts +45 -37
  54. package/dist/pd-wizard/pd-steps/pd-steps.stories.d.ts.map +1 -1
  55. package/dist/pd-wizard/pd-wizard.stories.d.ts +46 -7
  56. package/dist/pd-wizard/pd-wizard.stories.d.ts.map +1 -1
  57. package/dist/wizard-close-popup/WizardClosePopup.d.ts +12 -0
  58. package/dist/wizard-close-popup/WizardClosePopup.d.ts.map +1 -0
  59. package/dist/wizard-close-popup/WizardClosePopup.js +56 -0
  60. package/dist/wizard-close-popup/wizard-close-popup.d.ts +2 -0
  61. package/dist/wizard-close-popup/wizard-close-popup.d.ts.map +1 -0
  62. package/dist/wizard-close-popup/wizard-close-popup.stories.d.ts +39 -0
  63. package/dist/wizard-close-popup/wizard-close-popup.stories.d.ts.map +1 -0
  64. package/dist/wizard-close-popup.d.ts +2 -0
  65. package/dist/wizard-close-popup.js +1 -0
  66. package/dist/wizard-reload-popup/WizardReloadPopup.d.ts +19 -0
  67. package/dist/wizard-reload-popup/WizardReloadPopup.d.ts.map +1 -0
  68. package/dist/wizard-reload-popup/WizardReloadPopup.js +88 -0
  69. package/dist/wizard-reload-popup/wizard-reload-popup.d.ts +3 -0
  70. package/dist/wizard-reload-popup/wizard-reload-popup.d.ts.map +1 -0
  71. package/dist/wizard-reload-popup/wizard-reload-popup.stories.d.ts +42 -0
  72. package/dist/wizard-reload-popup/wizard-reload-popup.stories.d.ts.map +1 -0
  73. package/dist/wizard-reload-popup.d.ts +2 -0
  74. package/dist/wizard-reload-popup.js +1 -0
  75. package/package.json +19 -6
@@ -3,8 +3,7 @@ import { property, state } from 'lit/decorators.js';
3
3
  import { localized, msg } from '@lit/localize';
4
4
  import { pdIcons } from '@progressive-development/pd-icon';
5
5
  import '@progressive-development/pd-icon/pd-icon';
6
- import '@progressive-development/pd-forms/pd-panel-button';
7
- import { PdColorStyles, PdFontStyles } from '@progressive-development/pd-shared-styles';
6
+ import '@progressive-development/pd-forms/pd-button';
8
7
  import './pd-steps/pd-steps.js';
9
8
 
10
9
  var __defProp = Object.defineProperty;
@@ -22,36 +21,29 @@ let PdWizard = class extends LitElement {
22
21
  super(...arguments);
23
22
  this.currentNumber = -99;
24
23
  this.wizardSteps = [];
25
- this.panelWizard = false;
26
- this._submited = false;
24
+ this._submitted = false;
27
25
  }
28
26
  render() {
29
27
  if (!this.wizardSteps.length) return html``;
30
28
  const currentStep = this.wizardSteps[this.currentNumber - 1];
31
29
  return html`
32
- <div class="wiz-header">
33
- ${this.panelWizard ? html`
34
- <div class="wiz-panel-h">
35
- <h1>${currentStep?.title ?? "No-Title"}</h1>
36
- <pd-icon
37
- class="panel-close-icon"
38
- title="Close"
39
- activeIcon
40
- icon="${pdIcons.ICON_XCLOSE}"
41
- @click="${this._closeWizard}"
42
- ></pd-icon>
43
- </div>
44
- ` : html`
45
- <div class="wiz-title">
46
- <slot name="slotLogo"></slot>
47
- <span class="title">${currentStep?.title ?? "No-Title"}</span>
48
- <pd-icon
49
- class="close"
50
- icon="${pdIcons.ICON_CLOSE}"
51
- @click="${this._closeWizard}"
52
- ></pd-icon>
53
- </div>
54
- `}
30
+ <div class="wiz-header" part="header">
31
+ <pd-icon
32
+ class="close"
33
+ activeIcon
34
+ tabindex="0"
35
+ role="button"
36
+ aria-label="${msg("Wizard schließen", {
37
+ id: "pd.wizard.close.aria"
38
+ })}"
39
+ icon="${pdIcons.ICON_XCLOSE}"
40
+ @click="${this._closeWizard}"
41
+ @keydown="${this._handleCloseKeydown}"
42
+ ></pd-icon>
43
+
44
+ <div class="wiz-title">
45
+ <span class="title">${currentStep?.title ?? "No-Title"}</span>
46
+ </div>
55
47
 
56
48
  <div class="wiz-breadcrumbs">
57
49
  <pd-steps
@@ -61,7 +53,7 @@ let PdWizard = class extends LitElement {
61
53
  </div>
62
54
  </div>
63
55
 
64
- <div class="wiz-content">
56
+ <div class="wiz-content" part="content">
65
57
  <div class="wiz-content-inner">
66
58
  ${this.wizardSteps.map(
67
59
  (step, i) => html`
@@ -75,34 +67,34 @@ let PdWizard = class extends LitElement {
75
67
  </div>
76
68
  </div>
77
69
 
78
- <div class="wiz-buttons">
70
+ <div class="wiz-buttons" part="buttons">
79
71
  ${this.currentNumber >= 1 && this.wizardSteps.length ? html`
80
- <pd-panel-button
72
+ <pd-button
81
73
  @button-clicked="${this._previousStep}"
82
- pdButtonIcon="${pdIcons.ICON_ARROW_BACK}"
83
- buttonText="${msg("Zurück", { id: "pd.wizard.button.back" })}"
74
+ icon="${pdIcons.ICON_ARROW_BACK}"
75
+ text="${msg("Zurück", { id: "pd.wizard.button.back" })}"
84
76
  style="visibility: ${this.currentNumber === 1 ? "hidden" : "visible"}"
85
- ></pd-panel-button>
77
+ ></pd-button>
86
78
 
87
79
  ${this.currentNumber !== this.wizardSteps.length && currentStep?.next !== false ? html`
88
- <pd-panel-button
80
+ <pd-button
89
81
  @button-clicked="${this._nextStep}"
90
- pdButtonIcon="${pdIcons.ICON_ARROW_NEXT}"
91
- buttonText="${msg("Weiter", {
82
+ icon="${pdIcons.ICON_ARROW_NEXT}"
83
+ text="${msg("Weiter", {
92
84
  id: "pd.wizard.button.next"
93
85
  })}"
94
- ></pd-panel-button>
86
+ ></pd-button>
95
87
  ` : ""}
96
88
  ${this.currentNumber === this.wizardSteps.length ? html`
97
- <pd-panel-button
98
- pdButtonIcon="${pdIcons.ICON_SYNC}"
89
+ <pd-button
90
+ icon="${pdIcons.ICON_SYNC}"
99
91
  primary
100
- ?disabled="${this._submited}"
92
+ ?disabled="${this._submitted}"
101
93
  @button-clicked="${this._submit}"
102
- buttonText="${msg("Absenden", {
94
+ text="${msg("Absenden", {
103
95
  id: "pd.wizard.button.send"
104
96
  })}"
105
- ></pd-panel-button>
97
+ ></pd-button>
106
98
  ` : ""}
107
99
  ` : ""}
108
100
  </div>
@@ -115,58 +107,51 @@ let PdWizard = class extends LitElement {
115
107
  this.dispatchEvent(new CustomEvent("next-step"));
116
108
  }
117
109
  _submit() {
118
- const detail = { submited: false };
110
+ const detail = { submitted: false };
119
111
  this.dispatchEvent(new CustomEvent("submit-wizard", { detail }));
120
- this._submited = detail.submited;
112
+ this._submitted = detail.submitted;
121
113
  }
122
114
  _closeWizard() {
123
115
  this.dispatchEvent(new CustomEvent("close-wizard"));
124
116
  }
117
+ /**
118
+ * Handles keyboard events on the close icon.
119
+ * Activates on Enter or Space key.
120
+ */
121
+ _handleCloseKeydown(e) {
122
+ if (e.key === "Enter" || e.key === " ") {
123
+ e.preventDefault();
124
+ this._closeWizard();
125
+ }
126
+ }
125
127
  };
126
128
  PdWizard.styles = [
127
- PdColorStyles,
128
- PdFontStyles,
129
129
  css`
130
130
  :host {
131
- /* These values are used more than onnce and dfined here for short access */
132
- --my-height: var(--pd-wizard-title-height, 110px);
133
- --my-header-font-color: var(
134
- --pd-wizard-header-font-col,
135
- var(--pd-default-bg-col)
136
- );
137
- --my-header-bg-col: var(
138
- --pd-wizard-header-bg-col,
139
- var(--pd-default-col)
140
- );
141
-
142
131
  display: flex;
143
132
  flex-direction: column;
144
133
  height: 100%;
134
+
135
+ --_border-radius: var(--pd-wizard-border-radius, 0);
145
136
  }
146
137
 
147
138
  .wiz-header {
148
- flex-grow: 0;
139
+ position: relative;
140
+ flex-shrink: 0;
141
+ background: var(--pd-wizard-header-bg, var(--pd-default-col));
142
+ color: var(--pd-wizard-header-color, var(--pd-on-primary-col));
143
+ border-radius: var(--_border-radius) var(--_border-radius) 0 0;
149
144
  }
150
145
 
151
146
  .wiz-title {
152
- position: relative;
153
147
  text-align: center;
154
- background-color: var(--my-header-bg-col);
155
- height: var(---my-height);
156
- padding-left: var(--pd-wizard-title-padding-left, 0);
157
- color: var(--my-header-font-color);
158
- }
159
-
160
- :host(.top-rounded) .wiz-title {
161
- border-top-left-radius: var(--pd-wizard-top-borderradius, 5px);
162
- border-top-right-radius: var(--pd-wizard-top-borderradius, 5px);
148
+ padding-top: var(--pd-spacing-md);
163
149
  }
164
150
 
165
151
  .title {
166
152
  font-family: var(--pd-default-font-title-family);
167
153
  font-size: var(--pd-wizard-header-font-size, 2em);
168
154
  font-weight: bolder;
169
- line-height: var(--my-height);
170
155
  }
171
156
 
172
157
  /* The Close Icon */
@@ -174,101 +159,65 @@ PdWizard.styles = [
174
159
  position: absolute;
175
160
  top: 6px;
176
161
  right: 6px;
177
-
178
162
  cursor: pointer;
179
-
180
163
  --pd-icon-size: 2em;
181
- --pd-icon-col-active: white;
164
+ --pd-icon-col-active: var(
165
+ --pd-wizard-close-icon-col,
166
+ var(--pd-on-primary-col)
167
+ );
182
168
  }
183
169
 
184
170
  .close:hover,
185
- .close:focus {
186
- color: var(--pd-default-hover-col);
171
+ .close:focus-visible {
172
+ --pd-icon-col-active: var(
173
+ --pd-wizard-close-icon-hover-col,
174
+ var(--pd-default-hover-col)
175
+ );
176
+ }
177
+
178
+ .close:focus-visible {
179
+ outline: 2px solid var(--pd-focus-ring-col, currentColor);
180
+ outline-offset: 2px;
181
+ border-radius: var(--pd-radius-sm);
187
182
  }
188
183
 
189
184
  .wiz-content {
190
- display: flex;
191
- justify-content: var(--pd-wizard-justify-content, center);
192
185
  flex-grow: 1;
193
-
194
- background-color: var(
195
- --pd-wizard-content-bg-col,
196
- var(--pd-default-bg-col)
197
- );
198
- padding: var(--pd-wizard-content-padding, 1em);
199
- overflow-y: var(--pd-wizard-content-scroll, auto);
186
+ overflow-y: var(--pd-wizard-content-overflow, auto);
187
+ background: var(--pd-wizard-content-bg, var(--pd-default-bg-col));
188
+ padding: var(--pd-wizard-content-padding, 2rem 3.5rem 0.5rem 3.5rem);
200
189
  }
201
190
 
202
191
  .wiz-content-inner {
203
- background-color: var(
204
- --pd-wizard-content-inner-bg-col,
205
- var(--pd-default-bg-col)
192
+ max-width: var(
193
+ --pd-wizard-content-max-width,
194
+ var(--pd-content-max-width)
206
195
  );
207
- max-width: var(--pd-wizard-content-max-width, 1024px);
208
- width: var(--pd-wizard-content-width, 75%);
196
+ margin: 0 auto;
209
197
  }
210
198
 
211
199
  .wiz-buttons {
200
+ flex-shrink: 0;
212
201
  display: flex;
213
- justify-content: var(--pd-wizard-justify-buttons, space-around);
214
- flex-grow: 0;
215
- padding: 1em;
216
-
217
- background: linear-gradient(
218
- to top,
219
- var(--pd-wizard-buttons-bg-col1, var(--pd-default-light-col)) 0%,
220
- var(--pd-wizard-buttons-bg-col2, var(--pd-default-disabled-light-col))
221
- 100%
222
- );
223
- }
224
-
225
- :host(.bottom-rounded) .wiz-buttons {
226
- border-bottom-left-radius: var(--pd-wizard-bottom-borderradius, 5px);
227
- border-bottom-right-radius: var(--pd-wizard-bottom-borderradius, 5px);
228
- }
229
-
230
- /*
231
- * CSS for panel wizard
232
- */
233
- .wiz-panel-h {
234
- padding: var(--pd-wizard-header-panel-padding, 0);
235
- display: flex;
236
- align-items: center;
237
- justify-content: center;
238
- background-color: var(
239
- --pd-wizard-header-panel-bg-col,
240
- var(--pd-default-col)
241
- );
242
- position: relative;
243
- }
202
+ justify-content: var(--pd-wizard-buttons-justify, space-around);
203
+ background: var(--pd-wizard-buttons-bg, var(--pd-default-light-col));
204
+ padding: var(--pd-wizard-buttons-padding, var(--pd-spacing-md));
244
205
 
245
- .wiz-panel-h h1 {
246
- color: var(--pd-wizard-header-panel-title-col, white);
247
- padding: 0;
248
- margin: 0.8em 0 0.5em 0;
249
- font-size: var(--pd-wizard-header-font-size, 1.2em);
250
- font-family: var(--pd-default-font-title-family);
206
+ border-radius: 0 0 var(--_border-radius) var(--_border-radius);
251
207
  }
252
208
 
253
- .panel-close-icon {
254
- --pd-icon-size: 2em;
255
- --pd-icon-col-active: white;
256
- cursor: pointer;
257
- position: absolute;
258
- right: 0px;
259
- top: 0px;
209
+ @media (max-width: 768px) {
210
+ .wiz-content {
211
+ padding: var(--pd-wizard-content-padding, 2rem 2.5rem 0.5rem 2.5rem);
212
+ }
260
213
  }
261
214
 
262
- /* Size Elements for small width */
263
- @media (max-width: 700px) {
264
- .close {
265
- font-size: 0.7rem;
266
- --pd-icon-size: 1.2rem;
267
- top: 3px;
268
- right: 3px;
215
+ @media (max-width: 440px) {
216
+ .wiz-content {
217
+ padding: var(--pd-wizard-content-padding, 1rem 1rem 0.5rem 1rem);
269
218
  }
270
- .title {
271
- margin-left: 50px;
219
+ .close {
220
+ --pd-icon-size: 1em;
272
221
  }
273
222
  }
274
223
  `
@@ -279,12 +228,9 @@ __decorateClass([
279
228
  __decorateClass([
280
229
  property({ type: Array })
281
230
  ], PdWizard.prototype, "wizardSteps", 2);
282
- __decorateClass([
283
- property({ type: Boolean })
284
- ], PdWizard.prototype, "panelWizard", 2);
285
231
  __decorateClass([
286
232
  state()
287
- ], PdWizard.prototype, "_submited", 2);
233
+ ], PdWizard.prototype, "_submitted", 2);
288
234
  PdWizard = __decorateClass([
289
235
  localized()
290
236
  ], PdWizard);
@@ -1,28 +1,44 @@
1
1
  import { LitElement, CSSResultGroup } from 'lit';
2
2
  import { PdWizardStep } from '../../types';
3
3
  /**
4
- * @tag pd-steps
5
- * @summary Fortschrittsanzeige in Kreis- oder Tab-Optik
4
+ * Progress indicator component with circle or tab style.
5
+ *
6
+ * @summary Step progress indicator with current, passed, and future states.
6
7
  *
7
- * @fires go-to - wenn ein abgeschlossener Schritt erneut geklickt wird
8
8
  * @tagname pd-steps
9
+ *
10
+ * @event go-to - Fired when a passed step is clicked with `{step}` detail.
11
+ *
12
+ * @cssprop --pd-step-circle-size - Circle diameter. Default: `40px`.
13
+ * @cssprop --pd-step-bg - Background color. Default: `var(--pd-default-col)`.
14
+ * @cssprop --pd-step-color - Foreground color (border, line, text). Default: `var(--pd-on-primary-col)`.
15
+ * @cssprop --pd-step-name-font-size - Step name font size. Default: `1em`.
16
+ * @cssprop --pd-step-current-color - Current step accent color. Default: `var(--pd-default-hover-col)`.
17
+ * @cssprop --pd-step-passed-bg - Passed circle background. Default: `var(--pd-default-success-light-col)`.
18
+ * @cssprop --pd-step-passed-nr-color - Passed number color (dark on light bg). Default: `var(--pd-default-col)`.
9
19
  */
10
20
  export declare class PdSteps extends LitElement {
11
- /**
12
- * Schritte mit Namen
13
- */
21
+ /** Step definitions with names. */
14
22
  steps: PdWizardStep[];
15
- /**
16
- * Der aktuell sichtbare Schritt (1-basiert)
17
- */
23
+ /** Current visible step (1-based). */
18
24
  currentStepNr: number;
19
25
  /**
20
- * Darstellungsmodus: `circle` oder `tab` (aktuell beide gleich)
26
+ * Display mode: circle or tab.
27
+ * @remarks Currently only "circle" is implemented. "tab" is reserved for future use.
21
28
  */
22
29
  styleTyp: "circle" | "tab";
23
30
  static styles: CSSResultGroup;
24
31
  render(): import('lit').TemplateResult<1>;
25
32
  private _renderCircle;
26
33
  private _stepClicked;
34
+ /**
35
+ * Handles keyboard events on step circles.
36
+ * Activates on Enter or Space key.
37
+ */
38
+ private _handleStepKeydown;
39
+ /**
40
+ * Navigates to a specific step if it's a passed step.
41
+ */
42
+ private _navigateToStep;
27
43
  }
28
44
  //# sourceMappingURL=PdSteps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PdSteps.d.ts","sourceRoot":"","sources":["../../../src/pd-wizard/pd-steps/PdSteps.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAa,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAO5D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;;GAMG;AACH,qBAAa,OAAQ,SAAQ,UAAU;IACrC;;OAEG;IAEH,KAAK,EAAE,YAAY,EAAE,CAAM;IAE3B;;OAEG;IAEH,aAAa,SAAO;IAEpB;;OAEG;IAEH,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAAY;IAEtC,OAAgB,MAAM,EAAE,cAAc,CA2GpC;IAEO,MAAM;IAIf,OAAO,CAAC,aAAa;IAyCrB,OAAO,CAAC,YAAY;CAcrB"}
1
+ {"version":3,"file":"PdSteps.d.ts","sourceRoot":"","sources":["../../../src/pd-wizard/pd-steps/PdSteps.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAa,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAM5D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,OAAQ,SAAQ,UAAU;IACrC,mCAAmC;IAEnC,KAAK,EAAE,YAAY,EAAE,CAAM;IAE3B,sCAAsC;IAEtC,aAAa,SAAO;IAEpB;;;OAGG;IAEH,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAAY;IAEtC,OAAgB,MAAM,EAAE,cAAc,CA8IpC;IAEO,MAAM;IAIf,OAAO,CAAC,aAAa;IAuDrB,OAAO,CAAC,YAAY;IAKpB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAQ1B;;OAEG;IACH,OAAO,CAAC,eAAe;CAaxB"}