@sbb-esta/lyne-elements-dev 5.0.0-next.3-dev.1779268556 → 5.0.0-next.3-dev.1779280398

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 (142) hide show
  1. package/autocomplete/autocomplete-base-element.js +1 -1
  2. package/autocomplete/autocomplete.component.js +1 -1
  3. package/{autocomplete-base-element-jaXVQcA7.js → autocomplete-base-element-DjfmUS0W.js} +0 -1
  4. package/autocomplete.js +1 -1
  5. package/autocomplete.pure.js +1 -1
  6. package/calendar/calendar/calendar.component.js +1 -1
  7. package/{calendar.component-DKgkIocz.js → calendar.component-BhUyyFtR.js} +66 -66
  8. package/calendar.js +1 -1
  9. package/calendar.pure.js +1 -1
  10. package/core/base-elements/button-base-element.js +47 -68
  11. package/core/datetime/date-adapter.js +2 -2
  12. package/core/i18n/i18n.js +69 -74
  13. package/core/mixins/form-associated-checkbox-mixin.js +17 -26
  14. package/core.js +40 -42
  15. package/custom-elements.json +98 -446
  16. package/datepicker/common/datepicker-button.js +1 -1
  17. package/{datepicker-button-aYDFZ_3v.js → datepicker-button-CuoZoC6e.js} +0 -3
  18. package/datepicker.js +1 -1
  19. package/datepicker.pure.js +1 -1
  20. package/development/autocomplete/autocomplete-base-element.d.ts +0 -2
  21. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  22. package/development/autocomplete/autocomplete-base-element.js +1 -1
  23. package/development/autocomplete/autocomplete.component.js +1 -1
  24. package/development/{autocomplete-base-element-JxM7QbC4.js → autocomplete-base-element-CTZEg--s.js} +1 -3
  25. package/development/autocomplete.js +1 -1
  26. package/development/autocomplete.pure.js +1 -1
  27. package/development/calendar/calendar/calendar.component.d.ts +0 -6
  28. package/development/calendar/calendar/calendar.component.d.ts.map +1 -1
  29. package/development/calendar/calendar/calendar.component.js +1 -1
  30. package/development/calendar.component-DnC8Zkdk.js +1478 -0
  31. package/development/calendar.js +1 -1
  32. package/development/calendar.pure.js +1 -1
  33. package/development/core/base-elements/button-base-element.d.ts +1 -0
  34. package/development/core/base-elements/button-base-element.d.ts.map +1 -1
  35. package/development/core/base-elements/button-base-element.js +66 -92
  36. package/development/core/base-elements/element.d.ts.map +1 -1
  37. package/development/core/datetime/date-adapter.d.ts +0 -5
  38. package/development/core/datetime/date-adapter.d.ts.map +1 -1
  39. package/development/core/datetime/date-adapter.js +2 -7
  40. package/development/core/i18n/i18n.d.ts +0 -1
  41. package/development/core/i18n/i18n.d.ts.map +1 -1
  42. package/development/core/i18n/i18n.js +2 -8
  43. package/development/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  44. package/development/core/mixins/form-associated-checkbox-mixin.js +7 -21
  45. package/development/core/mixins/form-associated-mixin.d.ts +1 -1
  46. package/development/core/mixins/form-associated-mixin.d.ts.map +1 -1
  47. package/development/core/mixins/form-associated-mixin.js +1 -1
  48. package/development/core.d.ts +0 -2
  49. package/development/core.d.ts.map +1 -1
  50. package/development/core.js +3 -5
  51. package/development/datepicker/common/datepicker-button.d.ts +0 -2
  52. package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
  53. package/development/datepicker/common/datepicker-button.js +1 -1
  54. package/development/{datepicker-button-BAT1ebzJ.js → datepicker-button-Bb76EBYH.js} +1 -5
  55. package/development/datepicker.js +1 -1
  56. package/development/datepicker.pure.js +1 -1
  57. package/development/dialog/dialog/dialog.component.js +1 -1
  58. package/development/{dialog.component-D8B2dVck.js → dialog.component-cZ3SAujq.js} +5 -5
  59. package/development/dialog.js +1 -1
  60. package/development/dialog.pure.js +1 -1
  61. package/development/element-BAsBayf5.js +1 -1
  62. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts.map +1 -1
  63. package/development/expansion-panel-header.component-gg5A_7Pz.js +1 -1
  64. package/development/form-field/form-field/form-field.component.d.ts +0 -6
  65. package/development/form-field/form-field/form-field.component.d.ts.map +1 -1
  66. package/development/form-field/form-field/form-field.component.js +1 -1
  67. package/development/form-field.component-w4nlNsj2.js +670 -0
  68. package/development/form-field.js +1 -1
  69. package/development/form-field.pure.js +1 -1
  70. package/development/icon/icon.component.d.ts +1 -1
  71. package/development/icon/icon.component.d.ts.map +1 -1
  72. package/development/icon/icon.component.js +5 -7
  73. package/development/optgroup-base-element-BzfcJgxG.js +140 -0
  74. package/development/option/optgroup/optgroup-base-element.d.ts +1 -2
  75. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  76. package/development/option/optgroup/optgroup-base-element.js +1 -1
  77. package/development/option/optgroup/optgroup.component.js +1 -1
  78. package/development/option.js +1 -1
  79. package/development/option.pure.js +1 -1
  80. package/development/overlay/overlay-base-element.d.ts +2 -4
  81. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  82. package/development/overlay/overlay-base-element.js +6 -5
  83. package/development/overlay/overlay.component.js +1 -1
  84. package/development/{overlay.component-BH-aue7w.js → overlay.component-DywhKxO1.js} +5 -5
  85. package/development/overlay.js +1 -1
  86. package/development/overlay.pure.js +1 -1
  87. package/development/panel-mixin-DPybe45K.js +1 -1
  88. package/development/slider/slider.component.d.ts +1 -0
  89. package/development/slider/slider.component.d.ts.map +1 -1
  90. package/development/slider/slider.component.js +1 -1
  91. package/development/{slider.component-BLptxiZ4.js → slider.component-Dz4Nl2ZL.js} +8 -21
  92. package/development/slider.js +1 -1
  93. package/development/slider.pure.js +1 -1
  94. package/development/{step.component-DpSJEkrK.js → step.component-CfA-kmt1.js} +1 -11
  95. package/development/stepper/step/step.component.d.ts +4 -14
  96. package/development/stepper/step/step.component.d.ts.map +1 -1
  97. package/development/stepper/step/step.component.js +1 -1
  98. package/development/stepper/stepper/stepper.component.js +1 -1
  99. package/development/{stepper.component-Bv6LCFU0.js → stepper.component-2yRFnnju.js} +5 -5
  100. package/development/stepper.js +2 -2
  101. package/development/stepper.pure.js +2 -2
  102. package/dialog/dialog/dialog.component.js +1 -1
  103. package/{dialog.component-CsBryhM-.js → dialog.component-D3G0AX4Y.js} +4 -4
  104. package/dialog.js +1 -1
  105. package/dialog.pure.js +1 -1
  106. package/form-field/form-field/form-field.component.js +1 -1
  107. package/{form-field.component-BdfK6r2v.js → form-field.component-DkqZz7aZ.js} +62 -83
  108. package/form-field.js +1 -1
  109. package/form-field.pure.js +1 -1
  110. package/icon/icon.component.js +2 -5
  111. package/lean-off-brand-theme.css +1 -0
  112. package/lean-safety-theme.css +1 -0
  113. package/lean-theme.css +1 -0
  114. package/off-brand-theme.css +1 -0
  115. package/{optgroup-base-element-Cxe8SIQh.js → optgroup-base-element-CBxsRPUF.js} +10 -17
  116. package/option/optgroup/optgroup-base-element.js +1 -1
  117. package/option/optgroup/optgroup.component.js +1 -1
  118. package/option.js +1 -1
  119. package/option.pure.js +1 -1
  120. package/overlay/overlay-base-element.js +3 -3
  121. package/overlay/overlay.component.js +1 -1
  122. package/{overlay.component-D7Z_vx1A.js → overlay.component-OSLtja0_.js} +4 -4
  123. package/overlay.js +1 -1
  124. package/overlay.pure.js +1 -1
  125. package/package.json +2 -2
  126. package/safety-theme.css +1 -0
  127. package/slider/slider.component.js +1 -1
  128. package/{slider.component-C8LKcM11.js → slider.component-BMkoF1l1.js} +23 -31
  129. package/slider.js +1 -1
  130. package/slider.pure.js +1 -1
  131. package/standard-theme.css +1 -0
  132. package/core/decorators/host-attributes.js +0 -17
  133. package/core/eventing/throttle.js +0 -11
  134. package/development/calendar.component-CgEXjBeQ.js +0 -1473
  135. package/development/core/decorators/host-attributes.d.ts +0 -22
  136. package/development/core/decorators/host-attributes.d.ts.map +0 -1
  137. package/development/core/decorators/host-attributes.js +0 -41
  138. package/development/core/eventing/throttle.d.ts +0 -3
  139. package/development/core/eventing/throttle.d.ts.map +0 -1
  140. package/development/core/eventing/throttle.js +0 -18
  141. package/development/form-field.component-CPWBCHer.js +0 -702
  142. package/development/optgroup-base-element-CLfE6pmz.js +0 -147
@@ -1,147 +0,0 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { html, nothing, unsafeCSS } from "lit";
3
- import { property, state } from "lit/decorators.js";
4
- import { SbbDisabledMixin, SbbElement, SbbPropertyWatcherController, forceType, isSafari } from "./core.js";
5
- import { SbbDividerElement } from "./divider.pure.js";
6
- //#region src/elements/option/optgroup/optgroup-base-element.scss?inline
7
- var optgroup_base_element_default = ":host {\n display: block;\n}\n\n:host(:first-child) {\n --sbb-optgroup-divider-display: none;\n}\n\n:host(:is(:state(size-s),[state--size-s])) {\n --sbb-optgroup-label-padding-end: var(--sbb-spacing-fixed-1x);\n}\n\n:host(:is(:state(size-m),[state--size-m])) {\n --sbb-optgroup-label-padding-end: var(--sbb-spacing-fixed-2x);\n}\n\n:host(:is(:state(negative),[state--negative])) {\n --sbb-optgroup-label-color: var(--sbb-color-5);\n}\n\n.sbb-optgroup {\n margin-block: var(--sbb-spacing-fixed-4x);\n margin-inline: var(--sbb-spacing-fixed-4x);\n}\n\n.sbb-optgroup__label {\n display: flex;\n column-gap: var(--sbb-spacing-responsive-xxxs);\n font-size: var(--sbb-optgroup-label-font-size);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n color: var(--sbb-optgroup-label-color);\n -webkit-text-fill-color: var(--sbb-optgroup-label-color);\n padding-inline: var(--sbb-optgroup-label-padding-inline);\n padding-block-end: var(--sbb-optgroup-label-padding-end);\n}\n\n.sbb-optgroup__divider {\n display: var(--sbb-optgroup-divider-display, block);\n padding-block: var(--sbb-options-panel-divider-margin-block);\n}\n\n.sbb-optgroup__icon-space {\n display: var(--sbb-option-icon-container-display, none);\n min-width: var(--sbb-size-icon-ui-small);\n}\n\n::slotted(sbb-divider) {\n margin-block: var(--sbb-options-panel-divider-margin-block);\n}";
8
- //#endregion
9
- //#region src/elements/option/optgroup/optgroup-base-element.ts
10
- /**
11
- * On Safari, the groups labels are not read by VoiceOver.
12
- * To solve the problem, we remove the role="group" and add a hidden span containing the group name
13
- * TODO: We should periodically check if it has been solved and, if so, remove the property.
14
- */
15
- var inertAriaGroups = isSafari;
16
- var SbbOptgroupBaseElement = (() => {
17
- let _classSuper = SbbDisabledMixin(SbbElement);
18
- let _label_decorators;
19
- let _label_initializers = [];
20
- let _label_extraInitializers = [];
21
- let __inertAriaGroups_decorators;
22
- let __inertAriaGroups_initializers = [];
23
- let __inertAriaGroups_extraInitializers = [];
24
- return class SbbOptgroupBaseElement extends _classSuper {
25
- static {
26
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
27
- _label_decorators = [forceType(), property()];
28
- __inertAriaGroups_decorators = [state()];
29
- __esDecorate(this, null, _label_decorators, {
30
- kind: "accessor",
31
- name: "label",
32
- static: false,
33
- private: false,
34
- access: {
35
- has: (obj) => "label" in obj,
36
- get: (obj) => obj.label,
37
- set: (obj, value) => {
38
- obj.label = value;
39
- }
40
- },
41
- metadata: _metadata
42
- }, _label_initializers, _label_extraInitializers);
43
- __esDecorate(this, null, __inertAriaGroups_decorators, {
44
- kind: "accessor",
45
- name: "_inertAriaGroups",
46
- static: false,
47
- private: false,
48
- access: {
49
- has: (obj) => "_inertAriaGroups" in obj,
50
- get: (obj) => obj._inertAriaGroups,
51
- set: (obj, value) => {
52
- obj._inertAriaGroups = value;
53
- }
54
- },
55
- metadata: _metadata
56
- }, __inertAriaGroups_initializers, __inertAriaGroups_extraInitializers);
57
- if (_metadata) Object.defineProperty(this, Symbol.metadata, {
58
- enumerable: true,
59
- configurable: true,
60
- writable: true,
61
- value: _metadata
62
- });
63
- }
64
- static {
65
- this.role = !inertAriaGroups ? "group" : null;
66
- }
67
- static {
68
- this.elementDependencies = [SbbDividerElement];
69
- }
70
- static {
71
- this.styles = [unsafeCSS(optgroup_base_element_default)];
72
- }
73
- #label_accessor_storage;
74
- /** Option group label. */
75
- get label() {
76
- return this.#label_accessor_storage;
77
- }
78
- set label(value) {
79
- this.#label_accessor_storage = value;
80
- }
81
- #_inertAriaGroups_accessor_storage;
82
- get _inertAriaGroups() {
83
- return this.#_inertAriaGroups_accessor_storage;
84
- }
85
- set _inertAriaGroups(value) {
86
- this.#_inertAriaGroups_accessor_storage = value;
87
- }
88
- constructor() {
89
- super();
90
- this.#label_accessor_storage = __runInitializers(this, _label_initializers, "");
91
- this.#_inertAriaGroups_accessor_storage = (__runInitializers(this, _label_extraInitializers), __runInitializers(this, __inertAriaGroups_initializers, false));
92
- this._previousSize = (__runInitializers(this, __inertAriaGroups_extraInitializers), null);
93
- this.addController(new SbbPropertyWatcherController(this, () => this.closest("sbb-autocomplete, sbb-autocomplete-grid, sbb-select"), { size: (e) => {
94
- if (this._previousSize) this.internals.states.delete(`size-${this._previousSize}`);
95
- this._previousSize = e.size;
96
- if (this._previousSize) this.internals.states.add(`size-${this._previousSize}`);
97
- } }));
98
- if (inertAriaGroups) if (this.hydrationRequired) this.hydrationComplete.then(() => this._inertAriaGroups = inertAriaGroups);
99
- else this._inertAriaGroups = inertAriaGroups;
100
- }
101
- connectedCallback() {
102
- super.connectedCallback();
103
- this._updateAriaLabel();
104
- }
105
- willUpdate(changedProperties) {
106
- super.willUpdate(changedProperties);
107
- if (changedProperties.has("disabled")) {
108
- if (!this._inertAriaGroups) this.internals.ariaDisabled = this.disabled ? "true" : null;
109
- }
110
- if (changedProperties.has("label")) this._updateAriaLabel();
111
- }
112
- _handleSlotchange() {
113
- this._updateAriaLabel();
114
- this._highlightOptions();
115
- /** @internal */
116
- this.dispatchEvent(new Event("ɵoptgroupslotchange"));
117
- }
118
- _updateAriaLabel() {
119
- this.internals.ariaLabel = !this._inertAriaGroups ? this.label : null;
120
- }
121
- _highlightOptions() {
122
- const autocomplete = this.getAutocompleteParent();
123
- if (!autocomplete) return;
124
- const value = autocomplete.triggerElement?.value;
125
- if (!value) return;
126
- this.options.forEach((opt) => opt.highlight(value));
127
- }
128
- render() {
129
- return html`
130
- <div class="sbb-optgroup__divider">
131
- <sbb-divider ?negative=${this.matches?.(":is(:state(negative),[state--negative])")}></sbb-divider>
132
- </div>
133
- ${this.label ? html`
134
- <div class="sbb-optgroup__label" aria-hidden="true">
135
- <div class="sbb-optgroup__icon-space"></div>
136
- <span>${this.label}</span>
137
- </div>
138
- ` : nothing}
139
- <slot @slotchange=${this._handleSlotchange}></slot>
140
- `;
141
- }
142
- };
143
- })();
144
- //#endregion
145
- export { SbbOptgroupBaseElement as t };
146
-
147
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0Z3JvdXAtYmFzZS1lbGVtZW50LUNMZkU2cG16LmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9vcHRpb24vb3B0Z3JvdXAvb3B0Z3JvdXAtYmFzZS1lbGVtZW50LnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL29wdGlvbi9vcHRncm91cC9vcHRncm91cC1iYXNlLWVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOmZpcnN0LWNoaWxkKSB7XG4gIC0tc2JiLW9wdGdyb3VwLWRpdmlkZXItZGlzcGxheTogbm9uZTtcbn1cblxuOmhvc3QoOnN0YXRlKHNpemUtcykpIHtcbiAgLS1zYmItb3B0Z3JvdXAtbGFiZWwtcGFkZGluZy1lbmQ6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTF4KTtcbn1cblxuOmhvc3QoOnN0YXRlKHNpemUtbSkpIHtcbiAgLS1zYmItb3B0Z3JvdXAtbGFiZWwtcGFkZGluZy1lbmQ6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KTtcbn1cblxuOmhvc3QoOnN0YXRlKG5lZ2F0aXZlKSkge1xuICAtLXNiYi1vcHRncm91cC1sYWJlbC1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTUpO1xufVxuXG4uc2JiLW9wdGdyb3VwIHtcbiAgbWFyZ2luLWJsb2NrOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC00eCk7XG4gIG1hcmdpbi1pbmxpbmU6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTR4KTtcbn1cblxuLnNiYi1vcHRncm91cF9fbGFiZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBjb2x1bW4tZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXh4eHMpO1xuICBmb250LXNpemU6IHZhcigtLXNiYi1vcHRncm91cC1sYWJlbC1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIGNvbG9yOiB2YXIoLS1zYmItb3B0Z3JvdXAtbGFiZWwtY29sb3IpO1xuICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdmFyKC0tc2JiLW9wdGdyb3VwLWxhYmVsLWNvbG9yKTtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1vcHRncm91cC1sYWJlbC1wYWRkaW5nLWlubGluZSk7XG4gIHBhZGRpbmctYmxvY2stZW5kOiB2YXIoLS1zYmItb3B0Z3JvdXAtbGFiZWwtcGFkZGluZy1lbmQpO1xufVxuXG4uc2JiLW9wdGdyb3VwX19kaXZpZGVyIHtcbiAgZGlzcGxheTogdmFyKC0tc2JiLW9wdGdyb3VwLWRpdmlkZXItZGlzcGxheSwgYmxvY2spO1xuICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItb3B0aW9ucy1wYW5lbC1kaXZpZGVyLW1hcmdpbi1ibG9jayk7XG59XG5cbi8vIEFsaWduIHRoZSBncm91cCBsYWJlbCB0byB0aGUgb3B0aW9uIGxhYmVsXG4uc2JiLW9wdGdyb3VwX19pY29uLXNwYWNlIHtcbiAgLy8gQ2FuIGJlIG92ZXJyaWRkZW4gYnkgdGhlICdwcmVzZXJ2ZS1pY29uLXNwYWNlJyBvbiB0aGUgYXV0b2NvbXBsZXRlXG4gIGRpc3BsYXk6IHZhcigtLXNiYi1vcHRpb24taWNvbi1jb250YWluZXItZGlzcGxheSwgbm9uZSk7XG4gIG1pbi13aWR0aDogdmFyKC0tc2JiLXNpemUtaWNvbi11aS1zbWFsbCk7XG59XG5cbjo6c2xvdHRlZChzYmItZGl2aWRlcikge1xuICBtYXJnaW4tYmxvY2s6IHZhcigtLXNiYi1vcHRpb25zLXBhbmVsLWRpdmlkZXItbWFyZ2luLWJsb2NrKTtcbn1cbiIsImltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIG5vdGhpbmcsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJBdXRvY29tcGxldGVCYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2F1dG9jb21wbGV0ZS5wdXJlLnRzJztcbmltcG9ydCB7XG4gIGZvcmNlVHlwZSxcbiAgaXNTYWZhcmksXG4gIFNiYkRpc2FibGVkTWl4aW4sXG4gIFNiYkVsZW1lbnQsXG4gIHR5cGUgU2JiRWxlbWVudFR5cGUsXG4gIFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXIsXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHsgU2JiRGl2aWRlckVsZW1lbnQgfSBmcm9tICcuLi8uLi9kaXZpZGVyLnB1cmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJTZWxlY3RFbGVtZW50IH0gZnJvbSAnLi4vLi4vc2VsZWN0LnB1cmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPcHRpb25CYXNlRWxlbWVudCB9IGZyb20gJy4uL29wdGlvbi9vcHRpb24tYmFzZS1lbGVtZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vb3B0Z3JvdXAtYmFzZS1lbGVtZW50LnNjc3M/aW5saW5lJztcblxuLyoqXG4gKiBPbiBTYWZhcmksIHRoZSBncm91cHMgbGFiZWxzIGFyZSBub3QgcmVhZCBieSBWb2ljZU92ZXIuXG4gKiBUbyBzb2x2ZSB0aGUgcHJvYmxlbSwgd2UgcmVtb3ZlIHRoZSByb2xlPVwiZ3JvdXBcIiBhbmQgYWRkIGEgaGlkZGVuIHNwYW4gY29udGFpbmluZyB0aGUgZ3JvdXAgbmFtZVxuICogVE9ETzogV2Ugc2hvdWxkIHBlcmlvZGljYWxseSBjaGVjayBpZiBpdCBoYXMgYmVlbiBzb2x2ZWQgYW5kLCBpZiBzbywgcmVtb3ZlIHRoZSBwcm9wZXJ0eS5cbiAqL1xuY29uc3QgaW5lcnRBcmlhR3JvdXBzID0gaXNTYWZhcmk7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYmJPcHRncm91cEJhc2VFbGVtZW50IGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihTYmJFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICFpbmVydEFyaWFHcm91cHMgPyAnZ3JvdXAnIDogbnVsbDtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBlbGVtZW50RGVwZW5kZW5jaWVzOiBTYmJFbGVtZW50VHlwZVtdID0gW1NiYkRpdmlkZXJFbGVtZW50XTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xuXG4gIC8qKiBPcHRpb24gZ3JvdXAgbGFiZWwuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgbGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2luZXJ0QXJpYUdyb3VwcyA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgb3B0aW9ucygpOiBTYmJPcHRpb25CYXNlRWxlbWVudFtdO1xuXG4gIHByaXZhdGUgX3ByZXZpb3VzU2l6ZTogJ3MnIHwgJ20nIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmFkZENvbnRyb2xsZXIoXG4gICAgICBuZXcgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcjxTYmJBdXRvY29tcGxldGVCYXNlRWxlbWVudCB8IFNiYlNlbGVjdEVsZW1lbnQ+KFxuICAgICAgICB0aGlzLFxuICAgICAgICAoKSA9PiB0aGlzLmNsb3Nlc3QoJ3NiYi1hdXRvY29tcGxldGUsIHNiYi1hdXRvY29tcGxldGUtZ3JpZCwgc2JiLXNlbGVjdCcpLFxuICAgICAgICB7XG4gICAgICAgICAgc2l6ZTogKGUpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9wcmV2aW91c1NpemUpIHtcbiAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShgc2l6ZS0ke3RoaXMuX3ByZXZpb3VzU2l6ZX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3ByZXZpb3VzU2l6ZSA9IGUuc2l6ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9wcmV2aW91c1NpemUpIHtcbiAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChgc2l6ZS0ke3RoaXMuX3ByZXZpb3VzU2l6ZX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgaWYgKGluZXJ0QXJpYUdyb3Vwcykge1xuICAgICAgaWYgKHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgICAgdGhpcy5oeWRyYXRpb25Db21wbGV0ZS50aGVuKCgpID0+ICh0aGlzLl9pbmVydEFyaWFHcm91cHMgPSBpbmVydEFyaWFHcm91cHMpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2luZXJ0QXJpYUdyb3VwcyA9IGluZXJ0QXJpYUdyb3VwcztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl91cGRhdGVBcmlhTGFiZWwoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGlzYWJsZWQnKSkge1xuICAgICAgaWYgKCF0aGlzLl9pbmVydEFyaWFHcm91cHMpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYURpc2FibGVkID0gdGhpcy5kaXNhYmxlZCA/ICd0cnVlJyA6IG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xhYmVsJykpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZUFyaWFMYWJlbCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRBdXRvY29tcGxldGVQYXJlbnQoKTogU2JiQXV0b2NvbXBsZXRlQmFzZUVsZW1lbnQgfCBudWxsO1xuXG4gIHByaXZhdGUgX2hhbmRsZVNsb3RjaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5fdXBkYXRlQXJpYUxhYmVsKCk7XG4gICAgdGhpcy5faGlnaGxpZ2h0T3B0aW9ucygpO1xuICAgIC8vIFVzZWQgdG8gbm90aWZ5IGFzc29jaWF0ZWQgY29tcG9uZW50cyBsaWtlIHRoZSBzYmItc2VsZWN0IHRvIHVwZGF0ZSBzdGF0ZVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCfJtW9wdGdyb3Vwc2xvdGNoYW5nZScpKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUFyaWFMYWJlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmludGVybmFscy5hcmlhTGFiZWwgPSAhdGhpcy5faW5lcnRBcmlhR3JvdXBzID8gdGhpcy5sYWJlbCA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9oaWdobGlnaHRPcHRpb25zKCk6IHZvaWQge1xuICAgIGNvbnN0IGF1dG9jb21wbGV0ZSA9IHRoaXMuZ2V0QXV0b2NvbXBsZXRlUGFyZW50KCk7XG4gICAgaWYgKCFhdXRvY29tcGxldGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdmFsdWUgPSBhdXRvY29tcGxldGUudHJpZ2dlckVsZW1lbnQ/LnZhbHVlO1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5vcHRpb25zLmZvckVhY2goKG9wdCkgPT4gb3B0LmhpZ2hsaWdodCh2YWx1ZSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgLy8gVE9ETzogcmVwbGFjZSBkaXZpZGVyIHdpdGggQ1NTXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLW9wdGdyb3VwX19kaXZpZGVyXCI+XG4gICAgICAgIDxzYmItZGl2aWRlciA/bmVnYXRpdmU9JHt0aGlzLm1hdGNoZXM/LignOnN0YXRlKG5lZ2F0aXZlKScpfT48L3NiYi1kaXZpZGVyPlxuICAgICAgPC9kaXY+XG4gICAgICAke3RoaXMubGFiZWxcbiAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1vcHRncm91cF9fbGFiZWxcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1vcHRncm91cF9faWNvbi1zcGFjZVwiPjwvZGl2PlxuICAgICAgICAgICAgICA8c3Bhbj4ke3RoaXMubGFiZWx9PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgYFxuICAgICAgICA6IG5vdGhpbmd9XG4gICAgICA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX2hhbmRsZVNsb3RjaGFuZ2V9Pjwvc2xvdD5cbiAgICBgO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FDOEJBLElBQU0sa0JBQWtCO0lBRUYsZ0NBQXNCO21CQUFTLGlCQUFpQixVQUFVOzs7Ozs7O2NBQTFELCtCQUErQixZQUE0Qjs7O3dCQU05RSxVQUFTLEdBQ1QsU0FBUSxDQUFFO21DQUdWLE1BQUssQ0FBRTtHQUZSLGFBQUEsTUFBQSxNQUFBLG1CQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsV0FBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtL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