@sbb-esta/lyne-elements 2.7.0 → 2.8.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/breadcrumb/breadcrumb/breadcrumb.d.ts +0 -2
  2. package/breadcrumb/breadcrumb/breadcrumb.d.ts.map +1 -1
  3. package/breadcrumb/breadcrumb/breadcrumb.js +21 -44
  4. package/core/controllers/{id-observer-controller.d.ts → id-reference-controller.d.ts} +1 -1
  5. package/core/controllers/id-reference-controller.d.ts.map +1 -0
  6. package/core/controllers/slot-state-controller.d.ts +2 -0
  7. package/core/controllers/slot-state-controller.d.ts.map +1 -1
  8. package/core/controllers/slot-state-controller.js +30 -19
  9. package/core/controllers.d.ts +1 -1
  10. package/core/controllers.d.ts.map +1 -1
  11. package/core/controllers.js +1 -1
  12. package/core/styles/core.scss +21 -1
  13. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss +2 -0
  14. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +5 -1
  15. package/core.css +17 -2
  16. package/custom-elements.json +465 -64
  17. package/date-input/date-input.js +5 -5
  18. package/development/breadcrumb/breadcrumb/breadcrumb.d.ts +0 -2
  19. package/development/breadcrumb/breadcrumb/breadcrumb.d.ts.map +1 -1
  20. package/development/breadcrumb/breadcrumb/breadcrumb.js +11 -38
  21. package/development/core/controllers/{id-observer-controller.d.ts → id-reference-controller.d.ts} +1 -1
  22. package/development/core/controllers/id-reference-controller.d.ts.map +1 -0
  23. package/development/core/controllers/id-reference-controller.js +84 -0
  24. package/development/core/controllers/slot-state-controller.d.ts +2 -0
  25. package/development/core/controllers/slot-state-controller.d.ts.map +1 -1
  26. package/development/core/controllers/slot-state-controller.js +24 -4
  27. package/development/core/controllers.d.ts +1 -1
  28. package/development/core/controllers.d.ts.map +1 -1
  29. package/development/core/controllers.js +1 -1
  30. package/development/date-input/date-input.js +3 -2
  31. package/development/form-field/form-field/form-field.js +3 -2
  32. package/development/icon/icon-base.js +5 -1
  33. package/development/option/option/option-base-element.d.ts.map +1 -1
  34. package/development/option/option/option-base-element.js +8 -4
  35. package/development/paginator/common/paginator-common.d.ts +11 -1
  36. package/development/paginator/common/paginator-common.d.ts.map +1 -1
  37. package/development/paginator/common/paginator-common.js +37 -9
  38. package/development/paginator/paginator/paginator.js +2 -2
  39. package/development/sbb-tokens-CVLcOi-S.js +1 -1
  40. package/development/table/table-wrapper/table-wrapper.d.ts +7 -4
  41. package/development/table/table-wrapper/table-wrapper.d.ts.map +1 -1
  42. package/development/table/table-wrapper/table-wrapper.js +80 -69
  43. package/development/teaser-hero/teaser-hero.d.ts.map +1 -1
  44. package/development/teaser-hero/teaser-hero.js +15 -11
  45. package/development/toggle/toggle/toggle.d.ts +0 -1
  46. package/development/toggle/toggle/toggle.d.ts.map +1 -1
  47. package/development/toggle/toggle/toggle.js +51 -47
  48. package/development/toggle/toggle-option/toggle-option.d.ts +2 -1
  49. package/development/toggle/toggle-option/toggle-option.d.ts.map +1 -1
  50. package/development/toggle/toggle-option/toggle-option.js +15 -29
  51. package/form-field/form-field/form-field.js +1 -1
  52. package/icon/icon-base.js +21 -21
  53. package/option/option/option-base-element.d.ts.map +1 -1
  54. package/option/option/option-base-element.js +9 -14
  55. package/package.json +1 -1
  56. package/paginator/common/paginator-common.d.ts +11 -1
  57. package/paginator/common/paginator-common.d.ts.map +1 -1
  58. package/paginator/common/paginator-common.js +61 -31
  59. package/paginator/paginator/paginator.js +3 -3
  60. package/standard-theme.css +17 -2
  61. package/table/table-wrapper/table-wrapper.d.ts +7 -4
  62. package/table/table-wrapper/table-wrapper.d.ts.map +1 -1
  63. package/table/table-wrapper/table-wrapper.js +53 -31
  64. package/teaser-hero/teaser-hero.d.ts.map +1 -1
  65. package/teaser-hero/teaser-hero.js +25 -25
  66. package/toggle/toggle/toggle.d.ts +0 -1
  67. package/toggle/toggle/toggle.d.ts.map +1 -1
  68. package/toggle/toggle/toggle.js +43 -48
  69. package/toggle/toggle-option/toggle-option.d.ts +2 -1
  70. package/toggle/toggle-option/toggle-option.d.ts.map +1 -1
  71. package/toggle/toggle-option/toggle-option.js +40 -30
  72. package/core/controllers/id-observer-controller.d.ts.map +0 -1
  73. package/development/core/controllers/id-observer-controller.d.ts.map +0 -1
  74. package/development/core/controllers/id-observer-controller.js +0 -84
  75. /package/core/controllers/{id-observer-controller.js → id-reference-controller.js} +0 -0
@@ -11,7 +11,7 @@ import { defaultDateAdapter as R } from "../core/datetime.js";
11
11
  import { forceType as v, DateOnlyType as D, dateConverter as O } from "../core/decorators.js";
12
12
  import { i18nDatePickerPlaceholder as P, i18nDateInvalid as U, i18nDateMin as B, i18nDateMax as H } from "../core/i18n.js";
13
13
  import { SbbFormAssociatedInputMixin as J } from "../core/mixins.js";
14
- const K = T`:host{display:inline-block;min-width:9.375rem;max-width:100%;cursor:text}@media (forced-colors: active){:host{color:FieldText}}:host(:disabled){cursor:default}:host(:focus){text-overflow:initial!important}:host(:empty):after{content:attr(placeholder);color:var(--sbb-color-metal);-webkit-text-fill-color:var(--sbb-color-metal);opacity:1}@media (forced-colors: active){:host(:empty):after{color:GrayText}}`;
14
+ const K = T`:host{display:inline-flex;min-width:9.375rem;max-width:100%;cursor:text;align-items:center}@media (forced-colors: active){:host{color:FieldText}}:host(:disabled){cursor:default}:host(:focus){text-overflow:initial!important}:host(:empty):after{content:attr(placeholder);color:var(--sbb-color-metal);-webkit-text-fill-color:var(--sbb-color-metal);opacity:1}@media (forced-colors: active){:host(:empty):after{color:GrayText}}`;
15
15
  Object.assign(ValidityState.prototype, {
16
16
  get sbbDateFilter() {
17
17
  return !1;
@@ -19,8 +19,8 @@ Object.assign(ValidityState.prototype, {
19
19
  });
20
20
  let se = (() => {
21
21
  var h, u, c, l;
22
- let a = [L("sbb-date-input")], s, i = [], n, b = J(j), y = [], g, A, k = [], x = [], F, w = [], S = [], V, E, I = [], C = [];
23
- return l = class extends b {
22
+ let a = [L("sbb-date-input")], s, i = [], n, g = J(j), y = [], b, A, k = [], x = [], F, w = [], S = [], V, E, I = [], C = [];
23
+ return l = class extends g {
24
24
  constructor() {
25
25
  var e, t;
26
26
  super();
@@ -136,8 +136,8 @@ let se = (() => {
136
136
  ["badInput", "rangeUnderflow", "rangeOverflow", "sbbDateFilter"].forEach((e) => this.removeValidityFlag(e));
137
137
  }
138
138
  }, h = new WeakMap(), u = new WeakMap(), c = new WeakMap(), n = l, (() => {
139
- const e = typeof Symbol == "function" && Symbol.metadata ? Object.create(b[Symbol.metadata] ?? null) : void 0;
140
- g = [v(), _({ attribute: !1, type: D })], A = [v(), _({ converter: O, reflect: !0, type: D })], F = [v(), _({ converter: O, reflect: !0, type: D })], V = [_({ attribute: !1 })], E = [_({ attribute: "weekday-style" })], m(l, null, g, { kind: "setter", name: "valueAsDate", static: !1, private: !1, access: { has: (t) => "valueAsDate" in t, set: (t, r) => {
139
+ const e = typeof Symbol == "function" && Symbol.metadata ? Object.create(g[Symbol.metadata] ?? null) : void 0;
140
+ b = [v(), _({ attribute: !1, type: D })], A = [v(), _({ converter: O, reflect: !0, type: D })], F = [v(), _({ converter: O, reflect: !0, type: D })], V = [_({ attribute: !1 })], E = [_({ attribute: "weekday-style" })], m(l, null, b, { kind: "setter", name: "valueAsDate", static: !1, private: !1, access: { has: (t) => "valueAsDate" in t, set: (t, r) => {
141
141
  t.valueAsDate = r;
142
142
  } }, metadata: e }, null, y), m(l, null, A, { kind: "accessor", name: "min", static: !1, private: !1, access: { has: (t) => "min" in t, get: (t) => t.min, set: (t, r) => {
143
143
  t.min = r;
@@ -9,8 +9,6 @@ declare const SbbBreadcrumbElement_base: import('../../core/mixins.js').Abstract
9
9
  */
10
10
  export declare class SbbBreadcrumbElement extends SbbBreadcrumbElement_base {
11
11
  static styles: CSSResultGroup;
12
- private accessor _hasText;
13
- private _handleSlotchange;
14
12
  protected renderTemplate(): TemplateResult;
15
13
  }
16
14
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumb.d.ts","sourceRoot":"","sources":["../../../../../src/elements/breadcrumb/breadcrumb/breadcrumb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAI1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;;AAMjE;;;;;GAKG;AACH,qBAEM,oBAAqB,SAAQ,yBAAuD;IACxF,OAAuB,MAAM,EAAE,cAAc,CAAS;IAE7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAE3C,OAAO,CAAC,iBAAiB;cAMN,cAAc,IAAI,cAAc;CAQpD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,gBAAgB,EAAE,oBAAoB,CAAC;KACxC;CACF"}
1
+ {"version":3,"file":"breadcrumb.d.ts","sourceRoot":"","sources":["../../../../../src/elements/breadcrumb/breadcrumb/breadcrumb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAI1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;;AAOjE;;;;;GAKG;AACH,qBAGM,oBAAqB,SAAQ,yBAAuD;IACxF,OAAuB,MAAM,EAAE,cAAc,CAAS;cAEnC,cAAc,IAAI,cAAc;CAQpD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,gBAAgB,EAAE,oBAAoB,CAAC;KACxC;CACF"}
@@ -1,14 +1,8 @@
1
- var __typeError = (msg) => {
2
- throw TypeError(msg);
3
- };
4
- var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
5
- var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
6
- var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
- var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
1
  import { __esDecorate, __runInitializers } from "tslib";
9
- import { customElement, state } from "lit/decorators.js";
2
+ import { customElement } from "lit/decorators.js";
10
3
  import { html } from "lit/static-html.js";
11
4
  import { SbbLinkBaseElement } from "../../core/base-elements.js";
5
+ import { slotState } from "../../core/decorators.js";
12
6
  import { SbbHydrationMixin } from "../../core/mixins.js";
13
7
  import { SbbIconNameMixin } from "../../icon.js";
14
8
  import { css } from "lit";
@@ -77,53 +71,32 @@ const style = css`*,
77
71
  white-space: nowrap;
78
72
  text-overflow: ellipsis;
79
73
  }
74
+ :host(:not([data-slot-names~=unnamed])) .sbb-breadcrumb__label {
75
+ display: none;
76
+ }
80
77
 
81
78
  slot[name=icon] .sbb-breadcrumb__icon,
82
79
  slot[name=icon] ::slotted(*) {
83
80
  flex-shrink: 0;
84
81
  }`;
85
82
  let SbbBreadcrumbElement = (() => {
86
- var __hasText_accessor_storage, _a;
87
- let _classDecorators = [customElement("sbb-breadcrumb")];
83
+ var _a;
84
+ let _classDecorators = [customElement("sbb-breadcrumb"), slotState()];
88
85
  let _classDescriptor;
89
86
  let _classExtraInitializers = [];
90
87
  let _classThis;
91
88
  let _classSuper = SbbIconNameMixin(SbbHydrationMixin(SbbLinkBaseElement));
92
- let __hasText_decorators;
93
- let __hasText_initializers = [];
94
- let __hasText_extraInitializers = [];
95
89
  _a = class extends _classSuper {
96
- constructor() {
97
- super(...arguments);
98
- __privateAdd(this, __hasText_accessor_storage, __runInitializers(this, __hasText_initializers, false));
99
- __runInitializers(this, __hasText_extraInitializers);
100
- }
101
- get _hasText() {
102
- return __privateGet(this, __hasText_accessor_storage);
103
- }
104
- set _hasText(value) {
105
- __privateSet(this, __hasText_accessor_storage, value);
106
- }
107
- _handleSlotchange() {
108
- this._hasText = Array.from(this.childNodes ?? []).some((n) => {
109
- var _a2;
110
- return !n.slot && ((_a2 = n.textContent) == null ? void 0 : _a2.trim());
111
- });
112
- }
113
90
  renderTemplate() {
114
91
  return html`
115
92
  ${this.renderIconSlot("sbb-breadcrumb__icon")}
116
- <span class="sbb-breadcrumb__label" ?hidden=${!this._hasText}>
117
- <slot @slotchange=${this._handleSlotchange}></slot>
93
+ <span class="sbb-breadcrumb__label">
94
+ <slot></slot>
118
95
  </span>
119
96
  `;
120
97
  }
121
- }, __hasText_accessor_storage = new WeakMap(), _classThis = _a, (() => {
98
+ }, _classThis = _a, (() => {
122
99
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
123
- __hasText_decorators = [state()];
124
- __esDecorate(_a, null, __hasText_decorators, { kind: "accessor", name: "_hasText", static: false, private: false, access: { has: (obj) => "_hasText" in obj, get: (obj) => obj._hasText, set: (obj, value) => {
125
- obj._hasText = value;
126
- } }, metadata: _metadata }, __hasText_initializers, __hasText_extraInitializers);
127
100
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
128
101
  _classThis = _classDescriptor.value;
129
102
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
@@ -133,4 +106,4 @@ let SbbBreadcrumbElement = (() => {
133
106
  export {
134
107
  SbbBreadcrumbElement
135
108
  };
136
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi9icmVhZGNydW1iLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB7IFNiYkxpbmtCYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJIeWRyYXRpb25NaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi8uLi9pY29uLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vYnJlYWRjcnVtYi5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgbGluayB0byBhIHBhZ2U7IHVzZWQgd2l0aGluIGEgYHNiYi1icmVhZGNydW1iLWdyb3VwYCBpdCBjYW4gZGlzcGxheSB0aGUgcGF0aCB0byB0aGUgY3VycmVudCBwYWdlLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIGJyZWFkY3J1bWIuXG4gKiBAc2xvdCBpY29uIC0gVXNlIHRoaXMgdG8gZGlzcGxheSBhbiBpY29uIGFzIGJyZWFkY3J1bWIuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1icmVhZGNydW1iJylcbmNsYXNzIFNiYkJyZWFkY3J1bWJFbGVtZW50IGV4dGVuZHMgU2JiSWNvbk5hbWVNaXhpbihTYmJIeWRyYXRpb25NaXhpbihTYmJMaW5rQmFzZUVsZW1lbnQpKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2hhc1RleHQgPSBmYWxzZTtcblxuICBwcml2YXRlIF9oYW5kbGVTbG90Y2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuX2hhc1RleHQgPSBBcnJheS5mcm9tKHRoaXMuY2hpbGROb2RlcyA/PyBbXSkuc29tZShcbiAgICAgIChuKSA9PiAhKG4gYXMgRWxlbWVudCkuc2xvdCAmJiBuLnRleHRDb250ZW50Py50cmltKCksXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICAke3RoaXMucmVuZGVySWNvblNsb3QoJ3NiYi1icmVhZGNydW1iX19pY29uJyl9XG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi1icmVhZGNydW1iX19sYWJlbFwiID9oaWRkZW49JHshdGhpcy5faGFzVGV4dH0+XG4gICAgICAgIDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5faGFuZGxlU2xvdGNoYW5nZX0+PC9zbG90PlxuICAgICAgPC9zcGFuPlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1icmVhZGNydW1iJzogU2JiQnJlYWRjcnVtYkVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBa0JNLHdCQUFvQixNQUFBOzswQkFEekIsY0FBYyxnQkFBZ0IsQ0FBQzs7OztBQUNHLE1BQUEsY0FBQSxpQkFBaUIsa0JBQWtCLGtCQUFrQixDQUFDOzs7O0FBQTlELEVBQUEsbUJBQVEsWUFBdUQ7QUFBQTs7QUFHL0UscURBQUEsa0JBQUEsTUFBQSx3QkFBNEIsS0FBSzs7O0lBQWpDLElBQWlCLFdBQWlCO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUFsQyxJQUFpQixTQUFpQixPQUFBO0FBQUEseUJBQUEsNEJBQUE7QUFBQSxJQUFBO0FBQUEsSUFFbkMsb0JBQWlCO0FBQ3ZCLFdBQUssV0FBVyxNQUFNLEtBQUssS0FBSyxjQUFjLEVBQUUsRUFBRSxLQUNoRCxDQUFDLE1BQU07O0FBQUEsZ0JBQUUsRUFBYyxVQUFRQSxNQUFBLEVBQUUsZ0JBQUYsZ0JBQUFBLElBQWU7QUFBQSxPQUFNO0FBQUEsSUFBQTtBQUFBLElBSXJDLGlCQUFjO0FBQ3hCLGFBQUE7QUFBQSxRQUNILEtBQUssZUFBZSxzQkFBc0IsQ0FBQztBQUFBLG9EQUNDLENBQUMsS0FBSyxRQUFRO0FBQUEsNEJBQ3RDLEtBQUssaUJBQWlCO0FBQUE7QUFBQTtBQUFBLElBQUE7QUFBQSxLQVp2Qzs7QUFBUiwyQkFBQSxDQUFBLE9BQU87QUFBa0IsaUJBQUEsSUFBQSxNQUFBLHNCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsWUFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxjQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBQSxVQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFBLFdBQWlCO0FBQUEsU0FBQSxVQUFBLGFBQUEsd0JBQUEsMkJBQUE7QUFIN0MsaUJBbUJDLE1BQUEsbUJBQUEsRUFBQSxPQUFBLFdBQUEsR0FBQSxrQkFBQSxFQUFBLE1BQUEsU0FBQSxNQUFBLFdBQUEsTUFBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLHVCQUFBOzs7UUFsQndCLEdBQU0sU0FBbUIsT0FENUMsa0JBQW9CLFlBQUEsdUJBQUEsR0FBQzs7OyJ9
109
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi9icmVhZGNydW1iLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnbGl0L3N0YXRpYy1odG1sLmpzJztcblxuaW1wb3J0IHsgU2JiTGlua0Jhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlLWVsZW1lbnRzLmpzJztcbmltcG9ydCB7IHNsb3RTdGF0ZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBTYmJIeWRyYXRpb25NaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi8uLi9pY29uLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vYnJlYWRjcnVtYi5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgbGluayB0byBhIHBhZ2U7IHVzZWQgd2l0aGluIGEgYHNiYi1icmVhZGNydW1iLWdyb3VwYCBpdCBjYW4gZGlzcGxheSB0aGUgcGF0aCB0byB0aGUgY3VycmVudCBwYWdlLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIGJyZWFkY3J1bWIuXG4gKiBAc2xvdCBpY29uIC0gVXNlIHRoaXMgdG8gZGlzcGxheSBhbiBpY29uIGFzIGJyZWFkY3J1bWIuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1icmVhZGNydW1iJylcbkBzbG90U3RhdGUoKVxuY2xhc3MgU2JiQnJlYWRjcnVtYkVsZW1lbnQgZXh0ZW5kcyBTYmJJY29uTmFtZU1peGluKFNiYkh5ZHJhdGlvbk1peGluKFNiYkxpbmtCYXNlRWxlbWVudCkpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgICR7dGhpcy5yZW5kZXJJY29uU2xvdCgnc2JiLWJyZWFkY3J1bWJfX2ljb24nKX1cbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWJyZWFkY3J1bWJfX2xhYmVsXCI+XG4gICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgIDwvc3Bhbj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItYnJlYWRjcnVtYic6IFNiYkJyZWFkY3J1bWJFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBb0JNLHdCQUFvQixNQUFBOztBQUZ6QixNQUFBLG1CQUFBLENBQUEsY0FBYyxnQkFBZ0IsR0FDOUIsV0FBVzs7OztBQUN1QixNQUFBLGNBQUEsaUJBQWlCLGtCQUFrQixrQkFBa0IsQ0FBQztBQUE5RCxFQUFBLG1CQUFRLFlBQXVEO0FBQUEsSUFHckUsaUJBQWM7QUFDeEIsYUFBQTtBQUFBLFFBQ0gsS0FBSyxlQUFlLHNCQUFzQixDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQUFBO0FBQUE7O0FBTG5ELGlCQVdDLE1BQUEsbUJBQUEsRUFBQSxPQUFBLFdBQUEsR0FBQSxrQkFBQSxFQUFBLE1BQUEsU0FBQSxNQUFBLFdBQUEsTUFBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLHVCQUFBOzs7UUFWd0IsR0FBTSxTQUFtQixPQUQ1QyxrQkFBb0IsWUFBQSx1QkFBQSxHQUFDOzs7In0=
@@ -18,4 +18,4 @@ export declare class SbbIdReferenceController<T extends LitElement> implements R
18
18
  */
19
19
  find(): HTMLElement | null;
20
20
  }
21
- //# sourceMappingURL=id-observer-controller.d.ts.map
21
+ //# sourceMappingURL=id-reference-controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id-reference-controller.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/controllers/id-reference-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAE,MAAM,KAAK,CAAC;AAOzE;;GAEG;AACH,qBAAa,wBAAwB,CAAC,CAAC,SAAS,UAAU,CAAE,YAAW,kBAAkB;IAIrF,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IALpB,OAAO,CAAC,SAAS,CAAsC;gBAG7C,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,MAAM,CAAC,EACf,UAAU;kBAZR,gBAAgB;qBAAe,GAAG,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;MAY7C;IAKzB,aAAa,IAAI,IAAI;IAgDrB,gBAAgB,IAAI,IAAI;IAoB/B;;OAEG;IACI,IAAI,IAAI,WAAW,GAAG,IAAI;CAQlC"}
@@ -0,0 +1,84 @@
1
+ import { isServer } from "lit";
2
+ const observers = /* @__PURE__ */ new WeakMap();
3
+ class SbbIdReferenceController {
4
+ constructor(_host, _idRef, _observers = observers) {
5
+ this._host = _host;
6
+ this._idRef = _idRef;
7
+ this._observers = _observers;
8
+ this._rootNode = null;
9
+ this._host.addController(this);
10
+ }
11
+ hostConnected() {
12
+ if (isServer) {
13
+ return;
14
+ }
15
+ this._rootNode = this._host.getRootNode();
16
+ const observerContext = this._observers.get(this._rootNode);
17
+ if (observerContext) {
18
+ observerContext.controllers.add(this);
19
+ } else {
20
+ const controllers = /* @__PURE__ */ new Set([this]);
21
+ const observer = new MutationObserver((mutations) => {
22
+ const mutatedIds = /* @__PURE__ */ new Set();
23
+ for (const mutation of mutations) {
24
+ if (mutation.type === "attributes") {
25
+ mutatedIds.add(mutation.oldValue);
26
+ mutatedIds.add(mutation.target.id);
27
+ } else if (mutation.type === "childList") {
28
+ for (const node of [...mutation.addedNodes, ...mutation.removedNodes]) {
29
+ if (node instanceof HTMLElement) {
30
+ mutatedIds.add(node.id);
31
+ node.querySelectorAll("[id]").forEach((e) => mutatedIds.add(e.id));
32
+ }
33
+ }
34
+ }
35
+ }
36
+ for (const controller of controllers) {
37
+ const id = controller._host[controller._idRef];
38
+ if (id && typeof id === "string" && mutatedIds.has(id)) {
39
+ controller._host.requestUpdate();
40
+ }
41
+ }
42
+ });
43
+ observer.observe(this._rootNode, {
44
+ attributeFilter: ["id"],
45
+ childList: true,
46
+ subtree: true,
47
+ attributeOldValue: true
48
+ });
49
+ this._observers.set(this._rootNode, { observer, controllers });
50
+ }
51
+ }
52
+ hostDisconnected() {
53
+ if (isServer || !this._rootNode) {
54
+ return;
55
+ }
56
+ const observerContext = this._observers.get(this._rootNode);
57
+ if (!observerContext) {
58
+ this._rootNode = null;
59
+ return;
60
+ }
61
+ observerContext.controllers.delete(this);
62
+ if (observerContext.controllers.size === 0) {
63
+ observerContext.observer.disconnect();
64
+ this._observers.delete(this._rootNode);
65
+ }
66
+ this._rootNode = null;
67
+ }
68
+ /**
69
+ * Find the element by id in the current document fragment
70
+ */
71
+ find() {
72
+ var _a;
73
+ if (isServer || !this._rootNode) {
74
+ return null;
75
+ } else {
76
+ const id = this._host[this._idRef];
77
+ return typeof id == "string" ? (_a = this._rootNode) == null ? void 0 : _a.querySelector(`#${id}`) : null;
78
+ }
79
+ }
80
+ }
81
+ export {
82
+ SbbIdReferenceController
83
+ };
84
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQtcmVmZXJlbmNlLWNvbnRyb2xsZXIuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL2lkLXJlZmVyZW5jZS1jb250cm9sbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzU2VydmVyLCB0eXBlIExpdEVsZW1lbnQsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVyIH0gZnJvbSAnbGl0JztcblxuY29uc3Qgb2JzZXJ2ZXJzID0gbmV3IFdlYWtNYXA8XG4gIE5vZGUsXG4gIHsgb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXI7IGNvbnRyb2xsZXJzOiBTZXQ8U2JiSWRSZWZlcmVuY2VDb250cm9sbGVyPGFueT4+IH1cbj4oKTtcblxuLyoqXG4gKiBUcmFja3MgaWQgY2hhbmdlcyBpbiB0aGUgRE9NIGFuZCBjYWxscyBjb21wb25lbnQgd2hlbiBtYXRjaGluZyB3aXRoIHJlcXVlc3RVcGRhdGUoKS5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYklkUmVmZXJlbmNlQ29udHJvbGxlcjxUIGV4dGVuZHMgTGl0RWxlbWVudD4gaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwcml2YXRlIF9yb290Tm9kZTogRG9jdW1lbnQgfCBTaGFkb3dSb290IHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2hvc3Q6IFQsXG4gICAgcHJpdmF0ZSBfaWRSZWY6IGtleW9mIFQsXG4gICAgcHJpdmF0ZSBfb2JzZXJ2ZXJzID0gb2JzZXJ2ZXJzLFxuICApIHtcbiAgICB0aGlzLl9ob3N0LmFkZENvbnRyb2xsZXIodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgaG9zdENvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9yb290Tm9kZSA9IHRoaXMuX2hvc3QuZ2V0Um9vdE5vZGUoKSBhcyBEb2N1bWVudCB8IFNoYWRvd1Jvb3Q7XG4gICAgY29uc3Qgb2JzZXJ2ZXJDb250ZXh0ID0gdGhpcy5fb2JzZXJ2ZXJzLmdldCh0aGlzLl9yb290Tm9kZSk7XG5cbiAgICBpZiAob2JzZXJ2ZXJDb250ZXh0KSB7XG4gICAgICBvYnNlcnZlckNvbnRleHQuY29udHJvbGxlcnMuYWRkKHRoaXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjb250cm9sbGVycyA9IG5ldyBTZXQoW3RoaXNdKTtcbiAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xuICAgICAgICBjb25zdCBtdXRhdGVkSWRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICAgICAgZm9yIChjb25zdCBtdXRhdGlvbiBvZiBtdXRhdGlvbnMpIHtcbiAgICAgICAgICBpZiAobXV0YXRpb24udHlwZSA9PT0gJ2F0dHJpYnV0ZXMnKSB7XG4gICAgICAgICAgICBtdXRhdGVkSWRzLmFkZChtdXRhdGlvbi5vbGRWYWx1ZSEpO1xuICAgICAgICAgICAgbXV0YXRlZElkcy5hZGQoKG11dGF0aW9uLnRhcmdldCBhcyBIVE1MRWxlbWVudCkuaWQpO1xuICAgICAgICAgIH0gZWxzZSBpZiAobXV0YXRpb24udHlwZSA9PT0gJ2NoaWxkTGlzdCcpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiBbLi4ubXV0YXRpb24uYWRkZWROb2RlcywgLi4ubXV0YXRpb24ucmVtb3ZlZE5vZGVzXSkge1xuICAgICAgICAgICAgICBpZiAobm9kZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgbXV0YXRlZElkcy5hZGQobm9kZS5pZCk7XG4gICAgICAgICAgICAgICAgbm9kZS5xdWVyeVNlbGVjdG9yQWxsKCdbaWRdJykuZm9yRWFjaCgoZSkgPT4gbXV0YXRlZElkcy5hZGQoZS5pZCkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBjb250cm9sbGVyIG9mIGNvbnRyb2xsZXJzKSB7XG4gICAgICAgICAgY29uc3QgaWQgPSBjb250cm9sbGVyLl9ob3N0W2NvbnRyb2xsZXIuX2lkUmVmXTtcbiAgICAgICAgICBpZiAoaWQgJiYgdHlwZW9mIGlkID09PSAnc3RyaW5nJyAmJiBtdXRhdGVkSWRzLmhhcyhpZCkpIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuX2hvc3QucmVxdWVzdFVwZGF0ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIG9ic2VydmVyLm9ic2VydmUodGhpcy5fcm9vdE5vZGUsIHtcbiAgICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2lkJ10sXG4gICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICAgICAgYXR0cmlidXRlT2xkVmFsdWU6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5fb2JzZXJ2ZXJzLnNldCh0aGlzLl9yb290Tm9kZSwgeyBvYnNlcnZlciwgY29udHJvbGxlcnMgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhvc3REaXNjb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKGlzU2VydmVyIHx8ICF0aGlzLl9yb290Tm9kZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG9ic2VydmVyQ29udGV4dCA9IHRoaXMuX29ic2VydmVycy5nZXQodGhpcy5fcm9vdE5vZGUpO1xuICAgIGlmICghb2JzZXJ2ZXJDb250ZXh0KSB7XG4gICAgICB0aGlzLl9yb290Tm9kZSA9IG51bGw7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgb2JzZXJ2ZXJDb250ZXh0LmNvbnRyb2xsZXJzLmRlbGV0ZSh0aGlzKTtcbiAgICBpZiAob2JzZXJ2ZXJDb250ZXh0LmNvbnRyb2xsZXJzLnNpemUgPT09IDApIHtcbiAgICAgIG9ic2VydmVyQ29udGV4dC5vYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB0aGlzLl9vYnNlcnZlcnMuZGVsZXRlKHRoaXMuX3Jvb3ROb2RlKTtcbiAgICB9XG5cbiAgICB0aGlzLl9yb290Tm9kZSA9IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogRmluZCB0aGUgZWxlbWVudCBieSBpZCBpbiB0aGUgY3VycmVudCBkb2N1bWVudCBmcmFnbWVudFxuICAgKi9cbiAgcHVibGljIGZpbmQoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICBpZiAoaXNTZXJ2ZXIgfHwgIXRoaXMuX3Jvb3ROb2RlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaWQgPSB0aGlzLl9ob3N0W3RoaXMuX2lkUmVmXTtcbiAgICAgIHJldHVybiB0eXBlb2YgaWQgPT0gJ3N0cmluZycgPyB0aGlzLl9yb290Tm9kZT8ucXVlcnlTZWxlY3RvcihgIyR7aWR9YCkgOiBudWxsO1xuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxNQUFNLGdDQUFnQjtNQVFULHlCQUF3QjtBQUFBLEVBR25DLFlBQ1UsT0FDQSxRQUNBLGFBQWEsV0FBUztBQUZ0QixTQUFLLFFBQUw7QUFDQSxTQUFNLFNBQU47QUFDQSxTQUFVLGFBQVY7QUFMRixTQUFTLFlBQWlDO0FBTzNDLFNBQUEsTUFBTSxjQUFjLElBQUk7QUFBQSxFQUFBO0FBQUEsRUFHeEIsZ0JBQWE7QUFDbEIsUUFBSSxVQUFVO0FBQ1o7QUFBQSxJQUFBO0FBR0csU0FBQSxZQUFZLEtBQUssTUFBTSxZQUFXO0FBQ3ZDLFVBQU0sa0JBQWtCLEtBQUssV0FBVyxJQUFJLEtBQUssU0FBUztBQUUxRCxRQUFJLGlCQUFpQjtBQUNILHNCQUFBLFlBQVksSUFBSSxJQUFJO0FBQUEsSUFBQSxPQUMvQjtBQUNMLFlBQU0sY0FBYyxvQkFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQ2xDLFlBQU0sV0FBVyxJQUFJLGlCQUFpQixDQUFDLGNBQWE7QUFDNUMsY0FBQSxpQ0FBaUI7QUFFdkIsbUJBQVcsWUFBWSxXQUFXO0FBQzVCLGNBQUEsU0FBUyxTQUFTLGNBQWM7QUFDdkIsdUJBQUEsSUFBSSxTQUFTLFFBQVM7QUFDdEIsdUJBQUEsSUFBSyxTQUFTLE9BQXVCLEVBQUU7QUFBQSxVQUFBLFdBQ3pDLFNBQVMsU0FBUyxhQUFhO0FBQzdCLHVCQUFBLFFBQVEsQ0FBQyxHQUFHLFNBQVMsWUFBWSxHQUFHLFNBQVMsWUFBWSxHQUFHO0FBQ3JFLGtCQUFJLGdCQUFnQixhQUFhO0FBQ3BCLDJCQUFBLElBQUksS0FBSyxFQUFFO0FBQ2pCLHFCQUFBLGlCQUFpQixNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU0sV0FBVyxJQUFJLEVBQUUsRUFBRSxDQUFDO0FBQUEsY0FBQTtBQUFBLFlBQ25FO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFHRixtQkFBVyxjQUFjLGFBQWE7QUFDcEMsZ0JBQU0sS0FBSyxXQUFXLE1BQU0sV0FBVyxNQUFNO0FBQzdDLGNBQUksTUFBTSxPQUFPLE9BQU8sWUFBWSxXQUFXLElBQUksRUFBRSxHQUFHO0FBQ3RELHVCQUFXLE1BQU07O1FBQ25CO0FBQUEsTUFDRixDQUNEO0FBRVEsZUFBQSxRQUFRLEtBQUssV0FBVztBQUFBLFFBQy9CLGlCQUFpQixDQUFDLElBQUk7QUFBQSxRQUN0QixXQUFXO0FBQUEsUUFDWCxTQUFTO0FBQUEsUUFDVCxtQkFBbUI7QUFBQSxNQUFBLENBQ3BCO0FBRUQsV0FBSyxXQUFXLElBQUksS0FBSyxXQUFXLEVBQUUsVUFBVSxhQUFhO0FBQUEsSUFBQTtBQUFBLEVBQy9EO0FBQUEsRUFHSyxtQkFBZ0I7QUFDakIsUUFBQSxZQUFZLENBQUMsS0FBSyxXQUFXO0FBQy9CO0FBQUEsSUFBQTtBQUdGLFVBQU0sa0JBQWtCLEtBQUssV0FBVyxJQUFJLEtBQUssU0FBUztBQUMxRCxRQUFJLENBQUMsaUJBQWlCO0FBQ3BCLFdBQUssWUFBWTtBQUNqQjtBQUFBLElBQUE7QUFHYyxvQkFBQSxZQUFZLE9BQU8sSUFBSTtBQUNuQyxRQUFBLGdCQUFnQixZQUFZLFNBQVMsR0FBRztBQUMxQyxzQkFBZ0IsU0FBUztBQUNwQixXQUFBLFdBQVcsT0FBTyxLQUFLLFNBQVM7QUFBQSxJQUFBO0FBR3ZDLFNBQUssWUFBWTtBQUFBLEVBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1aLE9BQUk7O0FBQ0wsUUFBQSxZQUFZLENBQUMsS0FBSyxXQUFXO0FBQ3hCLGFBQUE7QUFBQSxJQUFBLE9BQ0Y7QUFDTCxZQUFNLEtBQUssS0FBSyxNQUFNLEtBQUssTUFBTTtBQUMxQixhQUFBLE9BQU8sTUFBTSxZQUFXLFVBQUssY0FBTCxtQkFBZ0IsY0FBYyxJQUFJLEVBQUUsTUFBTTtBQUFBLElBQUE7QUFBQSxFQUMzRTtBQUVIOyJ9
@@ -22,10 +22,12 @@ export declare class SbbSlotStateController implements ReactiveController {
22
22
  private _host;
23
23
  private _onChangeCallback;
24
24
  readonly slots: Set<string>;
25
+ private _textObserver;
25
26
  constructor(_host: ReactiveControllerHost & HTMLElement, _onChangeCallback?: (() => void) | null);
26
27
  hostConnected(): void;
27
28
  hostDisconnected(): void;
28
29
  private _slotchangeHandler;
29
30
  private _syncSlots;
31
+ private _updateSlotNameAttribute;
30
32
  }
31
33
  //# sourceMappingURL=slot-state-controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"slot-state-controller.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/controllers/slot-state-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,KAAK,CAAC;AAEtE;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,sBAAuB,YAAW,kBAAkB;IAI7D,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,iBAAiB;IAJ3B,SAAgB,KAAK,cAAqB;gBAGhC,KAAK,EAAE,sBAAsB,GAAG,WAAW,EAC3C,iBAAiB,GAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAW;IAKhD,aAAa,IAAI,IAAI;IAMrB,gBAAgB,IAAI,IAAI;IAM/B,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,UAAU;CAuBnB"}
1
+ {"version":3,"file":"slot-state-controller.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/controllers/slot-state-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,kBAAkB,EAAE,KAAK,sBAAsB,EAAE,MAAM,KAAK,CAAC;AAErF;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,sBAAuB,YAAW,kBAAkB;IAmB7D,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,iBAAiB;IAnB3B,SAAgB,KAAK,cAAqB;IAE1C,OAAO,CAAC,aAAa,CAahB;gBAGK,KAAK,EAAE,sBAAsB,GAAG,WAAW,EAC3C,iBAAiB,GAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAW;IAKhD,aAAa,IAAI,IAAI;IAKrB,gBAAgB,IAAI,IAAI;IAO/B,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,UAAU;IA2BlB,OAAO,CAAC,wBAAwB;CAajC"}
@@ -1,24 +1,39 @@
1
+ import { isServer } from "lit";
1
2
  class SbbSlotStateController {
2
3
  constructor(_host, _onChangeCallback = null) {
3
4
  this._host = _host;
4
5
  this._onChangeCallback = _onChangeCallback;
5
6
  this.slots = /* @__PURE__ */ new Set();
7
+ this._textObserver = !isServer && new MutationObserver(() => {
8
+ const hasTextNodeContent = Array.from(this._host.childNodes).filter((n) => n.nodeType === n.TEXT_NODE).some((n) => {
9
+ var _a;
10
+ return (_a = n.textContent) == null ? void 0 : _a.trim();
11
+ });
12
+ if (hasTextNodeContent) {
13
+ this.slots.add("unnamed");
14
+ } else if (Array.from(this._host.children).every((e) => e.slot)) {
15
+ this.slots.delete("unnamed");
16
+ }
17
+ this._updateSlotNameAttribute();
18
+ });
6
19
  this._slotchangeHandler = (event) => {
7
20
  this._syncSlots(event.target);
8
21
  };
9
22
  this._host.addController(this);
10
23
  }
11
24
  hostConnected() {
12
- var _a;
13
- this._syncSlots(...this._host.querySelectorAll("slot"));
14
- (_a = this._host.shadowRoot) == null ? void 0 : _a.addEventListener("slotchange", this._slotchangeHandler);
25
+ var _a, _b, _c;
26
+ this._syncSlots(...((_b = (_a = this._host.shadowRoot) == null ? void 0 : _a.querySelectorAll) == null ? void 0 : _b.call(_a, "slot")) ?? []);
27
+ (_c = this._host.shadowRoot) == null ? void 0 : _c.addEventListener("slotchange", this._slotchangeHandler);
15
28
  }
16
29
  hostDisconnected() {
17
30
  var _a;
18
31
  (_a = this._host.shadowRoot) == null ? void 0 : _a.removeEventListener("slotchange", this._slotchangeHandler);
32
+ this._textObserver.disconnect();
19
33
  }
20
34
  _syncSlots(...slots) {
21
35
  var _a;
36
+ this._textObserver.disconnect();
22
37
  for (const slot of slots) {
23
38
  const slotName = slot.name || "unnamed";
24
39
  if (slot.assignedNodes().some((n) => {
@@ -29,7 +44,12 @@ class SbbSlotStateController {
29
44
  } else {
30
45
  this.slots.delete(slotName);
31
46
  }
47
+ this._updateSlotNameAttribute();
32
48
  }
49
+ (_a = slots.find((s) => !s.name)) == null ? void 0 : _a.assignedNodes().filter((n) => n.nodeType === n.TEXT_NODE).forEach((node) => this._textObserver.observe(node, { characterData: true }));
50
+ }
51
+ _updateSlotNameAttribute() {
52
+ var _a;
33
53
  const oldValue = this._host.getAttribute("data-slot-names");
34
54
  const joinedSlotNames = [...this.slots].sort().join(" ");
35
55
  if (!joinedSlotNames) {
@@ -45,4 +65,4 @@ class SbbSlotStateController {
45
65
  export {
46
66
  SbbSlotStateController
47
67
  };
48
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xvdC1zdGF0ZS1jb250cm9sbGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9jb250cm9sbGVycy9zbG90LXN0YXRlLWNvbnRyb2xsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZWFjdGl2ZUNvbnRyb2xsZXIsIFJlYWN0aXZlQ29udHJvbGxlckhvc3QgfSBmcm9tICdsaXQnO1xuXG4vKipcbiAqIFRoaXMgY29udHJvbGxlciBjaGVja3MgZm9yIHNsb3R0ZWQgY2hpbGRyZW4uIEZyb20gdGhlc2UgaXQgZ2VuZXJhdGVzXG4gKiBhIGxpc3Qgb2YgdXNlZCBzbG90IG5hbWVzIChgdW5uYW1lZGAgZm9yIGNoaWxkcmVuIHdpdGhvdXQgYSBzbG90IGF0dHJpYnV0ZSlcbiAqIGFuZCBhZGRzIHRoaXMgdG8gdGhlIGBkYXRhLXNsb3QtbmFtZXNgIGF0dHJpYnV0ZSwgYXMgYSBzcGFjZSBzZXBhcmF0ZWQgbGlzdC5cbiAqXG4gKiBUaGlzIGFsbG93cyBDU1MgYXR0cmlidXRlIHNlbGVjdG9yIHRvIGRpc3BsYXkvaGlkZS9jb25maWd1cmUgYSBzZWN0aW9uXG4gKiBvZiB0aGUgY29tcG9uZW50IGFzIHJlcXVpcmVkIChzZWUgW2F0dHJ+PXZhbHVlXSBzZWxlY3RvciBzcGVjaWZpY2FsbHkpLlxuICpcbiAqIEBleGFtcGxlXG4gKiAuZXhhbXBsZSB7XG4gKiAgIGRpc3BsYXk6IG5vbmU7XG4gKlxuICogICA6aG9zdChbZGF0YS1zbG90LW5hbWVzfj1cImljb25cIl0pICYge1xuICogICAgIGRpc3BsYXk6IGlubGluZTtcbiAqICAgfVxuICogfVxuICpcbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9BdHRyaWJ1dGVfc2VsZWN0b3JzXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTbG90U3RhdGVDb250cm9sbGVyIGltcGxlbWVudHMgUmVhY3RpdmVDb250cm9sbGVyIHtcbiAgcHVibGljIHJlYWRvbmx5IHNsb3RzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2hvc3Q6IFJlYWN0aXZlQ29udHJvbGxlckhvc3QgJiBIVE1MRWxlbWVudCxcbiAgICBwcml2YXRlIF9vbkNoYW5nZUNhbGxiYWNrOiAoKCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbCxcbiAgKSB7XG4gICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgLy8gVE9ETzogQ2hlY2sgaWYgdGhpcyBpcyByZWFsbHkgbmVlZGVkIHdpdGggU1NSLlxuICAgIHRoaXMuX3N5bmNTbG90cyguLi50aGlzLl9ob3N0LnF1ZXJ5U2VsZWN0b3JBbGwhKCdzbG90JykpO1xuICAgIHRoaXMuX2hvc3Quc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIHRoaXMuX3Nsb3RjaGFuZ2VIYW5kbGVyKTtcbiAgfVxuXG4gIHB1YmxpYyBob3N0RGlzY29ubmVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuX2hvc3Quc2hhZG93Um9vdD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIHRoaXMuX3Nsb3RjaGFuZ2VIYW5kbGVyKTtcbiAgfVxuXG4gIC8vIFdlIGF2b2lkIHVzaW5nIEFib3J0Q29udHJvbGxlciBoZXJlLCBhcyBpdCB3b3VsZCBtZWFuIGNyZWF0aW5nXG4gIC8vIGEgbmV3IGluc3RhbmNlIGZvciBldmVyeSBTYmJTbG90U3RhdGVDb250cm9sbGVyIGluc3RhbmNlLlxuICBwcml2YXRlIF9zbG90Y2hhbmdlSGFuZGxlciA9IChldmVudDogRXZlbnQpOiB2b2lkID0+IHtcbiAgICB0aGlzLl9zeW5jU2xvdHMoZXZlbnQudGFyZ2V0IGFzIEhUTUxTbG90RWxlbWVudCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBfc3luY1Nsb3RzKC4uLnNsb3RzOiBIVE1MU2xvdEVsZW1lbnRbXSk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qgc2xvdCBvZiBzbG90cykge1xuICAgICAgY29uc3Qgc2xvdE5hbWUgPSBzbG90Lm5hbWUgfHwgJ3VubmFtZWQnO1xuICAgICAgLy8gV2Ugd2FudCB0byBjaGVjaywgd2hldGhlciBhbiBlbGVtZW50IGlzIHNsb3R0ZWQgb3IgYSB0ZXh0IG5vZGUgd2l0aCBhY3R1YWwgY29udGVudC5cbiAgICAgIGlmIChzbG90LmFzc2lnbmVkTm9kZXMoKS5zb21lKChuKSA9PiAndGFnTmFtZScgaW4gbiB8fCBuLnRleHRDb250ZW50Py50cmltKCkpKSB7XG4gICAgICAgIHRoaXMuc2xvdHMuYWRkKHNsb3ROYW1lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2xvdHMuZGVsZXRlKHNsb3ROYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuX2hvc3QuZ2V0QXR0cmlidXRlKCdkYXRhLXNsb3QtbmFtZXMnKTtcbiAgICBjb25zdCBqb2luZWRTbG90TmFtZXMgPSBbLi4udGhpcy5zbG90c10uc29ydCgpLmpvaW4oJyAnKTtcbiAgICBpZiAoIWpvaW5lZFNsb3ROYW1lcykge1xuICAgICAgdGhpcy5faG9zdC5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtc2xvdC1uYW1lcycpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5faG9zdC5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2xvdC1uYW1lcycpICE9PSBqb2luZWRTbG90TmFtZXMpIHtcbiAgICAgIHRoaXMuX2hvc3Quc2V0QXR0cmlidXRlKCdkYXRhLXNsb3QtbmFtZXMnLCBqb2luZWRTbG90TmFtZXMpO1xuICAgIH1cblxuICAgIGlmIChqb2luZWRTbG90TmFtZXMgIT09IG9sZFZhbHVlKSB7XG4gICAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrPy4oKTtcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfYSJdLCJtYXBwaW5ncyI6Ik1BcUJhLHVCQUFzQjtBQUFBLEVBR2pDLFlBQ1UsT0FDQSxvQkFBeUMsTUFBSTtBQUQ3QyxTQUFLLFFBQUw7QUFDQSxTQUFpQixvQkFBakI7QUFKTSxTQUFBLDRCQUFZLElBQUc7QUFxQnZCLFNBQUEscUJBQXFCLENBQUMsVUFBc0I7QUFDN0MsV0FBQSxXQUFXLE1BQU0sTUFBeUI7QUFBQSxJQUNqRDtBQWpCTyxTQUFBLE1BQU0sY0FBYyxJQUFJO0FBQUEsRUFBQTtBQUFBLEVBR3hCLGdCQUFhOztBQUVsQixTQUFLLFdBQVcsR0FBRyxLQUFLLE1BQU0saUJBQWtCLE1BQU0sQ0FBQztBQUN2RCxlQUFLLE1BQU0sZUFBWCxtQkFBdUIsaUJBQWlCLGNBQWMsS0FBSztBQUFBLEVBQWtCO0FBQUEsRUFHeEUsbUJBQWdCOztBQUNyQixlQUFLLE1BQU0sZUFBWCxtQkFBdUIsb0JBQW9CLGNBQWMsS0FBSztBQUFBLEVBQWtCO0FBQUEsRUFTMUUsY0FBYyxPQUF3Qjs7QUFDNUMsZUFBVyxRQUFRLE9BQU87QUFDbEIsWUFBQSxXQUFXLEtBQUssUUFBUTtBQUU5QixVQUFJLEtBQUssZ0JBQWdCLEtBQUssQ0FBQyxNQUFBOztBQUFNLDRCQUFhLE9BQUtBLE1BQUEsRUFBRSxnQkFBRixnQkFBQUEsSUFBZTtBQUFBLE9BQU0sR0FBRztBQUN4RSxhQUFBLE1BQU0sSUFBSSxRQUFRO0FBQUEsTUFBQSxPQUNsQjtBQUNBLGFBQUEsTUFBTSxPQUFPLFFBQVE7QUFBQSxNQUFBO0FBQUEsSUFDNUI7QUFHRixVQUFNLFdBQVcsS0FBSyxNQUFNLGFBQWEsaUJBQWlCO0FBQ3BELFVBQUEsa0JBQWtCLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxLQUFPLEVBQUEsS0FBSyxHQUFHO0FBQ3ZELFFBQUksQ0FBQyxpQkFBaUI7QUFDZixXQUFBLE1BQU0sZ0JBQWdCLGlCQUFpQjtBQUFBLElBQUEsV0FDbkMsS0FBSyxNQUFNLGFBQWEsaUJBQWlCLE1BQU0saUJBQWlCO0FBQ3BFLFdBQUEsTUFBTSxhQUFhLG1CQUFtQixlQUFlO0FBQUEsSUFBQTtBQUc1RCxRQUFJLG9CQUFvQixVQUFVO0FBQ2hDLGlCQUFLLHNCQUFMO0FBQUEsSUFBd0I7QUFBQSxFQUMxQjtBQUVIOyJ9
68
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xvdC1zdGF0ZS1jb250cm9sbGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9jb250cm9sbGVycy9zbG90LXN0YXRlLWNvbnRyb2xsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNTZXJ2ZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVyLCB0eXBlIFJlYWN0aXZlQ29udHJvbGxlckhvc3QgfSBmcm9tICdsaXQnO1xuXG4vKipcbiAqIFRoaXMgY29udHJvbGxlciBjaGVja3MgZm9yIHNsb3R0ZWQgY2hpbGRyZW4uIEZyb20gdGhlc2UgaXQgZ2VuZXJhdGVzXG4gKiBhIGxpc3Qgb2YgdXNlZCBzbG90IG5hbWVzIChgdW5uYW1lZGAgZm9yIGNoaWxkcmVuIHdpdGhvdXQgYSBzbG90IGF0dHJpYnV0ZSlcbiAqIGFuZCBhZGRzIHRoaXMgdG8gdGhlIGBkYXRhLXNsb3QtbmFtZXNgIGF0dHJpYnV0ZSwgYXMgYSBzcGFjZSBzZXBhcmF0ZWQgbGlzdC5cbiAqXG4gKiBUaGlzIGFsbG93cyBDU1MgYXR0cmlidXRlIHNlbGVjdG9yIHRvIGRpc3BsYXkvaGlkZS9jb25maWd1cmUgYSBzZWN0aW9uXG4gKiBvZiB0aGUgY29tcG9uZW50IGFzIHJlcXVpcmVkIChzZWUgW2F0dHJ+PXZhbHVlXSBzZWxlY3RvciBzcGVjaWZpY2FsbHkpLlxuICpcbiAqIEBleGFtcGxlXG4gKiAuZXhhbXBsZSB7XG4gKiAgIGRpc3BsYXk6IG5vbmU7XG4gKlxuICogICA6aG9zdChbZGF0YS1zbG90LW5hbWVzfj1cImljb25cIl0pICYge1xuICogICAgIGRpc3BsYXk6IGlubGluZTtcbiAqICAgfVxuICogfVxuICpcbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9BdHRyaWJ1dGVfc2VsZWN0b3JzXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTbG90U3RhdGVDb250cm9sbGVyIGltcGxlbWVudHMgUmVhY3RpdmVDb250cm9sbGVyIHtcbiAgcHVibGljIHJlYWRvbmx5IHNsb3RzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgcHJpdmF0ZSBfdGV4dE9ic2VydmVyID1cbiAgICAhaXNTZXJ2ZXIgJiZcbiAgICBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB7XG4gICAgICBjb25zdCBoYXNUZXh0Tm9kZUNvbnRlbnQgPSBBcnJheS5mcm9tKHRoaXMuX2hvc3QuY2hpbGROb2RlcylcbiAgICAgICAgLmZpbHRlcigobikgPT4gbi5ub2RlVHlwZSA9PT0gbi5URVhUX05PREUpXG4gICAgICAgIC5zb21lKChuKSA9PiBuLnRleHRDb250ZW50Py50cmltKCkpO1xuXG4gICAgICBpZiAoaGFzVGV4dE5vZGVDb250ZW50KSB7XG4gICAgICAgIHRoaXMuc2xvdHMuYWRkKCd1bm5hbWVkJyk7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmZyb20odGhpcy5faG9zdC5jaGlsZHJlbikuZXZlcnkoKGUpID0+IGUuc2xvdCkpIHtcbiAgICAgICAgdGhpcy5zbG90cy5kZWxldGUoJ3VubmFtZWQnKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3VwZGF0ZVNsb3ROYW1lQXR0cmlidXRlKCk7XG4gICAgfSk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2hvc3Q6IFJlYWN0aXZlQ29udHJvbGxlckhvc3QgJiBIVE1MRWxlbWVudCxcbiAgICBwcml2YXRlIF9vbkNoYW5nZUNhbGxiYWNrOiAoKCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbCxcbiAgKSB7XG4gICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5fc3luY1Nsb3RzKC4uLih0aGlzLl9ob3N0LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2xvdCcpID8/IFtdKSk7XG4gICAgdGhpcy5faG9zdC5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgdGhpcy5fc2xvdGNoYW5nZUhhbmRsZXIpO1xuICB9XG5cbiAgcHVibGljIGhvc3REaXNjb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5faG9zdC5zaGFkb3dSb290Py5yZW1vdmVFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgdGhpcy5fc2xvdGNoYW5nZUhhbmRsZXIpO1xuICAgIHRoaXMuX3RleHRPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gIH1cblxuICAvLyBXZSBhdm9pZCB1c2luZyBBYm9ydENvbnRyb2xsZXIgaGVyZSwgYXMgaXQgd291bGQgbWVhbiBjcmVhdGluZ1xuICAvLyBhIG5ldyBpbnN0YW5jZSBmb3IgZXZlcnkgU2JiU2xvdFN0YXRlQ29udHJvbGxlciBpbnN0YW5jZS5cbiAgcHJpdmF0ZSBfc2xvdGNoYW5nZUhhbmRsZXIgPSAoZXZlbnQ6IEV2ZW50KTogdm9pZCA9PiB7XG4gICAgdGhpcy5fc3luY1Nsb3RzKGV2ZW50LnRhcmdldCBhcyBIVE1MU2xvdEVsZW1lbnQpO1xuICB9O1xuXG4gIHByaXZhdGUgX3N5bmNTbG90cyguLi5zbG90czogSFRNTFNsb3RFbGVtZW50W10pOiB2b2lkIHtcbiAgICB0aGlzLl90ZXh0T2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuXG4gICAgZm9yIChjb25zdCBzbG90IG9mIHNsb3RzKSB7XG4gICAgICBjb25zdCBzbG90TmFtZSA9IHNsb3QubmFtZSB8fCAndW5uYW1lZCc7XG4gICAgICAvLyBXZSB3YW50IHRvIGNoZWNrLCB3aGV0aGVyIGFuIGVsZW1lbnQgaXMgc2xvdHRlZCBvciBhIHRleHQgbm9kZSB3aXRoIGFjdHVhbCBjb250ZW50LlxuICAgICAgaWYgKHNsb3QuYXNzaWduZWROb2RlcygpLnNvbWUoKG4pID0+ICd0YWdOYW1lJyBpbiBuIHx8IG4udGV4dENvbnRlbnQ/LnRyaW0oKSkpIHtcbiAgICAgICAgdGhpcy5zbG90cy5hZGQoc2xvdE5hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zbG90cy5kZWxldGUoc2xvdE5hbWUpO1xuICAgICAgfVxuICAgICAgdGhpcy5fdXBkYXRlU2xvdE5hbWVBdHRyaWJ1dGUoKTtcbiAgICB9XG5cbiAgICAvLyBUZXh0IG5vZGVzIGNhbiBiZSBlbXB0eSBhbmQgZmlsbGVkIGxhdGVyIChvciB2aWNlIHZlcnNhKS5cbiAgICAvLyBGaWxsaW5nIGFuIGV4aXN0aW5nIG5vZGUgbGF0ZXIgd291bGQgbm90IHRyaWdnZXIgYW5vdGhlciBzbG90Y2hhbmdlIGV2ZW50LlxuICAgIC8vIFRoZXJlZm9yZSwgd2UgbmVlZCB0byBvYnNlcnZlIHRleHQgbm9kZXMgYW5kIGNoZWNrIGlmIHRoZXkgYmVjb21lIGZpbGxlZCBvciBlbXB0eS5cbiAgICAvLyBUaGlzIGlzIG9ubHkgbmVlZGVkIGZvciB0aGUgdW5uYW1lZCBzbG90IGFzIGZvciBldmVyeSBvdGhlciB0aGVyZSB3b3VsZFxuICAgIC8vIGJlIGEgdGFnIHdoaWNoIHRyaWdnZXJzIHRoZSBzbG90IGNoYW5nZSBldmVudC5cbiAgICAvLyBUaGUgbWFpbiByZWFzb24gaXMgdGhhdCBBbmd1bGFyIGNyZWF0ZXMgZW1wdHkgdGV4dCBub2RlcyBhbmQgZmlsbHMgdGhlbSBsYXRlci5cbiAgICBzbG90c1xuICAgICAgLmZpbmQoKHMpID0+ICFzLm5hbWUpXG4gICAgICA/LmFzc2lnbmVkTm9kZXMoKVxuICAgICAgLmZpbHRlcigobikgPT4gbi5ub2RlVHlwZSA9PT0gbi5URVhUX05PREUpXG4gICAgICAuZm9yRWFjaCgobm9kZSkgPT4gdGhpcy5fdGV4dE9ic2VydmVyLm9ic2VydmUobm9kZSwgeyBjaGFyYWN0ZXJEYXRhOiB0cnVlIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVNsb3ROYW1lQXR0cmlidXRlKCk6IHZvaWQge1xuICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5faG9zdC5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2xvdC1uYW1lcycpO1xuICAgIGNvbnN0IGpvaW5lZFNsb3ROYW1lcyA9IFsuLi50aGlzLnNsb3RzXS5zb3J0KCkuam9pbignICcpO1xuICAgIGlmICgham9pbmVkU2xvdE5hbWVzKSB7XG4gICAgICB0aGlzLl9ob3N0LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1zbG90LW5hbWVzJyk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9ob3N0LmdldEF0dHJpYnV0ZSgnZGF0YS1zbG90LW5hbWVzJykgIT09IGpvaW5lZFNsb3ROYW1lcykge1xuICAgICAgdGhpcy5faG9zdC5zZXRBdHRyaWJ1dGUoJ2RhdGEtc2xvdC1uYW1lcycsIGpvaW5lZFNsb3ROYW1lcyk7XG4gICAgfVxuXG4gICAgaWYgKGpvaW5lZFNsb3ROYW1lcyAhPT0gb2xkVmFsdWUpIHtcbiAgICAgIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2s/LigpO1xuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbIl9hIl0sIm1hcHBpbmdzIjoiO01BcUJhLHVCQUFzQjtBQUFBLEVBa0JqQyxZQUNVLE9BQ0Esb0JBQXlDLE1BQUk7QUFEN0MsU0FBSyxRQUFMO0FBQ0EsU0FBaUIsb0JBQWpCO0FBbkJNLFNBQUEsNEJBQVksSUFBRztBQUV2QixTQUFhLGdCQUNuQixDQUFDLFlBQ0QsSUFBSSxpQkFBaUIsTUFBSztBQUNsQixZQUFBLHFCQUFxQixNQUFNLEtBQUssS0FBSyxNQUFNLFVBQVUsRUFDeEQsT0FBTyxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUN4QyxLQUFLLENBQUM7O0FBQU0sdUJBQUUsZ0JBQUYsbUJBQWU7QUFBQSxPQUFNO0FBRXBDLFVBQUksb0JBQW9CO0FBQ2pCLGFBQUEsTUFBTSxJQUFJLFNBQVM7QUFBQSxNQUNmLFdBQUEsTUFBTSxLQUFLLEtBQUssTUFBTSxRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLEdBQUc7QUFDMUQsYUFBQSxNQUFNLE9BQU8sU0FBUztBQUFBLE1BQUE7QUFFN0IsV0FBSyx5QkFBd0I7QUFBQSxJQUFBLENBQzlCO0FBcUJLLFNBQUEscUJBQXFCLENBQUMsVUFBc0I7QUFDN0MsV0FBQSxXQUFXLE1BQU0sTUFBeUI7QUFBQSxJQUNqRDtBQWpCTyxTQUFBLE1BQU0sY0FBYyxJQUFJO0FBQUEsRUFBQTtBQUFBLEVBR3hCLGdCQUFhOztBQUNiLFNBQUEsV0FBVyxLQUFJLGdCQUFLLE1BQU0sZUFBWCxtQkFBdUIscUJBQXZCLDRCQUEwQyxZQUFXLEVBQUc7QUFDNUUsZUFBSyxNQUFNLGVBQVgsbUJBQXVCLGlCQUFpQixjQUFjLEtBQUs7QUFBQSxFQUFrQjtBQUFBLEVBR3hFLG1CQUFnQjs7QUFDckIsZUFBSyxNQUFNLGVBQVgsbUJBQXVCLG9CQUFvQixjQUFjLEtBQUs7QUFDOUQsU0FBSyxjQUFjOztFQVNiLGNBQWMsT0FBd0I7O0FBQzVDLFNBQUssY0FBYztBQUVuQixlQUFXLFFBQVEsT0FBTztBQUNsQixZQUFBLFdBQVcsS0FBSyxRQUFRO0FBRTlCLFVBQUksS0FBSyxnQkFBZ0IsS0FBSyxDQUFDLE1BQUE7O0FBQU0sNEJBQWEsT0FBS0EsTUFBQSxFQUFFLGdCQUFGLGdCQUFBQSxJQUFlO0FBQUEsT0FBTSxHQUFHO0FBQ3hFLGFBQUEsTUFBTSxJQUFJLFFBQVE7QUFBQSxNQUFBLE9BQ2xCO0FBQ0EsYUFBQSxNQUFNLE9BQU8sUUFBUTtBQUFBLE1BQUE7QUFFNUIsV0FBSyx5QkFBd0I7QUFBQSxJQUFBO0FBUy9CLGdCQUNHLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLE1BRHRCLG1CQUVJLGdCQUNELE9BQU8sQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFdBQy9CLFFBQVEsQ0FBQyxTQUFTLEtBQUssY0FBYyxRQUFRLE1BQU0sRUFBRSxlQUFlLEtBQU0sQ0FBQTtBQUFBLEVBQUM7QUFBQSxFQUd4RSwyQkFBd0I7O0FBQzlCLFVBQU0sV0FBVyxLQUFLLE1BQU0sYUFBYSxpQkFBaUI7QUFDcEQsVUFBQSxrQkFBa0IsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLEtBQU8sRUFBQSxLQUFLLEdBQUc7QUFDdkQsUUFBSSxDQUFDLGlCQUFpQjtBQUNmLFdBQUEsTUFBTSxnQkFBZ0IsaUJBQWlCO0FBQUEsSUFBQSxXQUNuQyxLQUFLLE1BQU0sYUFBYSxpQkFBaUIsTUFBTSxpQkFBaUI7QUFDcEUsV0FBQSxNQUFNLGFBQWEsbUJBQW1CLGVBQWU7QUFBQSxJQUFBO0FBRzVELFFBQUksb0JBQW9CLFVBQVU7QUFDaEMsaUJBQUssc0JBQUw7QUFBQSxJQUF3QjtBQUFBLEVBQzFCO0FBRUg7In0=
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export * from './controllers/connected-abort-controller.js';
5
5
  export * from './controllers/escapable-overlay-controller.js';
6
- export * from './controllers/id-observer-controller.js';
6
+ export * from './controllers/id-reference-controller.js';
7
7
  export * from './controllers/inert-controller.js';
8
8
  export * from './controllers/language-controller.js';
9
9
  export * from './controllers/media-matchers-controller.js';
@@ -1 +1 @@
1
- {"version":3,"file":"controllers.d.ts","sourceRoot":"","sources":["../../../../src/elements/core/controllers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,yCAAyC,CAAC;AACxD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,wCAAwC,CAAC"}
1
+ {"version":3,"file":"controllers.d.ts","sourceRoot":"","sources":["../../../../src/elements/core/controllers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,wCAAwC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { SbbConnectedAbortController } from "./controllers/connected-abort-controller.js";
2
2
  import { SbbEscapableOverlayController } from "./controllers/escapable-overlay-controller.js";
3
- import { SbbIdReferenceController } from "./controllers/id-observer-controller.js";
3
+ import { SbbIdReferenceController } from "./controllers/id-reference-controller.js";
4
4
  import { SbbInertController } from "./controllers/inert-controller.js";
5
5
  import { SbbLanguageController } from "./controllers/language-controller.js";
6
6
  import { SbbMediaMatcherController, SbbMediaQueryBreakpointMediumAndAbove, SbbMediaQueryBreakpointMediumAndBelow, SbbMediaQueryBreakpointSmallAndBelow, SbbMediaQueryForcedColors, SbbMediaQueryHover, SbbMediaQueryPointerCoarse } from "./controllers/media-matchers-controller.js";
@@ -14,10 +14,11 @@ import { forceType, DateOnlyType, dateConverter } from "../core/decorators.js";
14
14
  import { i18nDatePickerPlaceholder, i18nDateInvalid, i18nDateMin, i18nDateMax } from "../core/i18n.js";
15
15
  import { SbbFormAssociatedInputMixin } from "../core/mixins.js";
16
16
  const style = css`:host {
17
- display: inline-block;
17
+ display: inline-flex;
18
18
  min-width: 9.375rem;
19
19
  max-width: 100%;
20
20
  cursor: text;
21
+ align-items: center;
21
22
  }
22
23
  @media (forced-colors: active) {
23
24
  :host {
@@ -267,4 +268,4 @@ let SbbDateInputElement = (() => {
267
268
  export {
268
269
  SbbDateInputElement
269
270
  };
270
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgTGl0RWxlbWVudCwgdHlwZSBDU1NSZXN1bHRHcm91cCwgdHlwZSBQcm9wZXJ0eURlY2xhcmF0aW9uIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyByZWFkQ29uZmlnIH0gZnJvbSAnLi4vY29yZS9jb25maWcuanMnO1xuaW1wb3J0IHsgdHlwZSBEYXRlQWRhcHRlciwgZGVmYXVsdERhdGVBZGFwdGVyIH0gZnJvbSAnLi4vY29yZS9kYXRldGltZS5qcyc7XG5pbXBvcnQgeyBkYXRlQ29udmVydGVyLCBEYXRlT25seVR5cGUsIGZvcmNlVHlwZSB9IGZyb20gJy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQge1xuICBpMThuRGF0ZU1heCxcbiAgaTE4bkRhdGVNaW4sXG4gIGkxOG5EYXRlSW52YWxpZCxcbiAgaTE4bkRhdGVQaWNrZXJQbGFjZWhvbGRlcixcbn0gZnJvbSAnLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB7XG4gIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbixcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxufSBmcm9tICcuLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRhdGVwaWNrZXJFbGVtZW50IH0gZnJvbSAnLi4vZGF0ZXBpY2tlci5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2RhdGUtaW5wdXQuc2Nzcz9saXQmaW5saW5lJztcblxuLy8gQXMgZG9jdW1lbnRlZCBpbiBmb3JtLWFzc29jaWF0ZWQtbWl4aW4udHMsIHdlIGV4dGVuZCB0aGUgcHJvdG90eXBlIG9mXG4vLyBWYWxpZGl0eVN0YXRlIHdpdGggY3VzdG9tIGVycm9yIHN0YXRlcyBmb3IgdGhlIGRhdGUgaW5wdXQuXG5PYmplY3QuYXNzaWduKFZhbGlkaXR5U3RhdGUucHJvdG90eXBlLCB7XG4gIGdldCBzYmJEYXRlRmlsdGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSxcbn0pO1xuXG4vKipcbiAqIEN1c3RvbSBpbnB1dCBmb3IgYSBkYXRlLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItZGF0ZS1pbnB1dCcpXG5jbGFzcyBTYmJEYXRlSW5wdXRFbGVtZW50PFQgPSBEYXRlPiBleHRlbmRzIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIGRhdGUgaW5wdXQuIFJlZmxlY3RzIHRoZSBjdXJyZW50IHRleHQgdmFsdWVcbiAgICogb2YgdGhpcyBpbnB1dC5cbiAgICogQGF0dHIgQWNjZXB0cyBJU084NjAxIGZvcm1hdHRlZCB2YWx1ZXMsIHdoaWNoIHdpbGwgYmVcbiAgICogZm9ybWF0dGVkIGFjY29yZGluZyB0byB0aGUgY3VycmVudCBsb2NhbGUuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl90cnlQYXJzZVZhbHVlKHZhbHVlKTtcbiAgICAvLyBBcyBsb25nIGFzIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgd2UgZGVsYXkgYXV0b21hdGljYWxseSB1cGRhdGluZ1xuICAgIC8vIHRoZSB2YWx1ZSB3aXRoIHRoZSBmb3JtYXR0ZWQgc3RyaW5nIG9mIHRoZSBwYXJzZWQgZGF0ZS5cbiAgICBpZiAoIWlzU2VydmVyICYmICF0aGlzLm1hdGNoZXMoJzpmb2N1cycpICYmIHRoaXMudmFsdWVBc0RhdGUgIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy5fZm9ybWF0RGF0ZSgpO1xuICAgIH1cbiAgICBzdXBlci52YWx1ZSA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3VwZXIudmFsdWUgPz8gJyc7XG4gIH1cblxuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSwgdHlwZTogRGF0ZU9ubHlUeXBlIH0pXG4gIHB1YmxpYyBzZXQgdmFsdWVBc0RhdGUodmFsdWU6IFQgfCBudWxsKSB7XG4gICAgLy8gRHVlIHRvIGZvcmNlVHlwZSBhbmQgRGF0ZU9ubHlUeXBlLCB0aGUgZ2l2ZW4gdmFsdWVcbiAgICAvLyBpcyBlaXRoZXIgbnVsbCBvciBhIGRhdGUgb25seSBjb3B5IG9mIHRoZSBvcmlnaW5hbFxuICAgIC8vIHZhbHVlIHBhc3NlZCB0byB2YWx1ZUFzRGF0ZS5cbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZUFzRGF0ZSA9IG51bGw7XG4gICAgICB0aGlzLl92YWx1ZUNhY2hlID0gWycnLCBudWxsXTtcbiAgICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgIXRoaXMuX2RhdGVBZGFwdGVyLmlzRGF0ZUluc3RhbmNlKHRoaXMuX3ZhbHVlQXNEYXRlKSB8fFxuICAgICAgdGhpcy5fZGF0ZUFkYXB0ZXIuY29tcGFyZURhdGUodGhpcy5fdmFsdWVBc0RhdGUhLCB2YWx1ZSEpICE9PSAwXG4gICAgKSB7XG4gICAgICAvLyBBbGlnbiB3aXRoIHRoZSBuYXRpdmUgZGF0ZSBpbnB1dCwgYXMgaXQgY29waWVzIHRoZSB2YWx1ZSBvZlxuICAgICAgLy8gdGhlIGdpdmVuIGRhdGUgYW5kIGRvZXMgbm90IHJldGFpbiB0aGUgb3JpZ2luYWwgaW5zdGFuY2UuXG4gICAgICB0aGlzLl92YWx1ZUFzRGF0ZSA9IHZhbHVlO1xuICAgICAgY29uc3Qgc3RyaW5nVmFsdWUgPSB0aGlzLl9mb3JtYXREYXRlKCk7XG4gICAgICB0aGlzLl92YWx1ZUNhY2hlID0gW3N0cmluZ1ZhbHVlLCB0aGlzLl92YWx1ZUFzRGF0ZV07XG4gICAgICB0aGlzLnZhbHVlID0gc3RyaW5nVmFsdWU7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgdmFsdWVBc0RhdGUoKTogVCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZUFzRGF0ZSA/PyBudWxsO1xuICB9XG4gIHByaXZhdGUgX3ZhbHVlQXNEYXRlPzogVCB8IG51bGw7XG5cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGNvbnZlcnRlcjogZGF0ZUNvbnZlcnRlciwgcmVmbGVjdDogdHJ1ZSwgdHlwZTogRGF0ZU9ubHlUeXBlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBtaW46IFQgfCBudWxsID0gbnVsbDtcblxuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgY29udmVydGVyOiBkYXRlQ29udmVydGVyLCByZWZsZWN0OiB0cnVlLCB0eXBlOiBEYXRlT25seVR5cGUgfSlcbiAgcHVibGljIGFjY2Vzc29yIG1heDogVCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBBIGZ1bmN0aW9uIHVzZWQgdG8gZmlsdGVyIG91dCBkYXRlcy4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICBwdWJsaWMgc2V0IGRhdGVGaWx0ZXIodmFsdWU6IChkYXRlOiBUIHwgbnVsbCkgPT4gYm9vbGVhbikge1xuICAgIHRoaXMuX2RhdGVGaWx0ZXIgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5kYXRlcGlja2VyKSB7XG4gICAgICB0aGlzLmRhdGVwaWNrZXIuZGF0ZUZpbHRlciA9IHZhbHVlO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IGRhdGVGaWx0ZXIoKTogKGRhdGU6IFQgfCBudWxsKSA9PiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0ZUZpbHRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBIb3cgdG8gZm9ybWF0IHRoZSBkaXNwbGF5ZWQgZGF0ZS5cbiAgICogYHNob3J0YDogVHdvIGxldHRlciBhYmJyZXZpYXRpb24gb2YgdGhlIHdlZWsgZGF5IChlLmcuIEZyKS5cbiAgICogYG5vbmVgOiBUaGUgd2Vla2RheSBpcyBub3QgZGlzcGxheWVkLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnd2Vla2RheS1zdHlsZScgfSlcbiAgcHVibGljIGFjY2Vzc29yIHdlZWtkYXlTdHlsZTogJ3Nob3J0JyB8ICdub25lJyA9ICdzaG9ydCc7XG5cbiAgLyoqXG4gICAqIFN0b3JlcyB0aGUgbGFzdCBzdHJpbmcgYW5kIHBhcnNlZCBkYXRlIG9iamVjdCB2YWx1ZSB0byBwcmV2ZW50IHJlcGVhdGVkXG4gICAqIHBhcnNpbmcgb2YgdGhlIHN0cmluZyB2YWx1ZS5cbiAgICovXG4gIHByaXZhdGUgX3ZhbHVlQ2FjaGU/OiBbc3RyaW5nLCBUIHwgbnVsbF07XG4gIHByaXZhdGUgX2RhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxUPiA9IHJlYWRDb25maWcoKS5kYXRldGltZT8uZGF0ZUFkYXB0ZXIgPz8gZGVmYXVsdERhdGVBZGFwdGVyO1xuICBwcml2YXRlIF9wbGFjZWhvbGRlck11dGFibGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogR2V0cyB0aGUgYXNzb2NpYXRlZCBkYXRlcGlja2VyLCBpZiBhbnkuXG4gICAqIFRoZSBzYmItZGF0ZS1pbnB1dCBhbmQgdGhlIHNiYi1kYXRlcGlja2VyIGFyZSBhc3N1bWVkIHRvIGJlIGluIHRoZSBzYW1lIHBhcmVudCBjb250YWluZXIuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGRhdGVwaWNrZXIoKTogU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD4gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnRFbGVtZW50IS5xdWVyeVNlbGVjdG9yPFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+Pignc2JiLWRhdGVwaWNrZXInKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjaGFuZ2UnLCAoKSA9PiB0aGlzLl91cGRhdGVWYWx1ZURhdGVGb3JtYXQoKSwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGF0ZUZpbHRlcjogKGRhdGU6IFQgfCBudWxsKSA9PiBib29sZWFuID0gKCkgPT4gdHJ1ZTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBpZiAoIXRoaXMucGxhY2Vob2xkZXIpIHtcbiAgICAgIHRoaXMuX3BsYWNlaG9sZGVyTXV0YWJsZSA9IHRydWU7XG4gICAgICB0aGlzLnBsYWNlaG9sZGVyID0gaTE4bkRhdGVQaWNrZXJQbGFjZWhvbGRlclt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZXF1ZXN0VXBkYXRlKFxuICAgIG5hbWU/OiBQcm9wZXJ0eUtleSxcbiAgICBvbGRWYWx1ZT86IHVua25vd24sXG4gICAgb3B0aW9ucz86IFByb3BlcnR5RGVjbGFyYXRpb24sXG4gICk6IHZvaWQge1xuICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMpO1xuICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQgJiYgIW5hbWUpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlRGF0ZUZvcm1hdCgpO1xuICAgICAgaWYgKHRoaXMuX3BsYWNlaG9sZGVyTXV0YWJsZSkge1xuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gaTE4bkRhdGVQaWNrZXJQbGFjZWhvbGRlclt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobmFtZSA9PT0gJ3dlZWtkYXlTdHlsZScpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlRGF0ZUZvcm1hdCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICAvLyBVc2VkIHRvIG5vdGlmeSB0aGUgZGF0ZXBpY2tlciB0byB1cGRhdGUgaXRzIHN0YXRlXG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCfJtWNoYW5nZScpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIENhbGxlZCB3aGVuIHRoZSBicm93c2VyIGlzIHRyeWluZyB0byByZXN0b3JlIGVsZW1lbnTigJlzIHN0YXRlIHRvIHN0YXRlIGluIHdoaWNoIGNhc2VcbiAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICogIHVzZXIgaW4gd2hpY2ggY2FzZSByZWFzb24gaXMgXCJhdXRvY29tcGxldGVcIi5cbiAgICogIEluIHRoZSBjYXNlIG9mIFwicmVzdG9yZVwiLCBzdGF0ZSBpcyBhIHN0cmluZywgRmlsZSwgb3IgRm9ybURhdGEgb2JqZWN0XG4gICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKFxuICAgIHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCxcbiAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgKTogdm9pZCB7XG4gICAgaWYgKHN0YXRlICYmIHR5cGVvZiBzdGF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBzdGF0ZTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlRm9ybVZhbHVlKCk6IHZvaWQge1xuICAgIHRoaXMuX3RyeVBhcnNlVmFsdWUoKTtcbiAgICBjb25zdCBmb3JtVmFsdWUgPVxuICAgICAgdGhpcy52YWx1ZUFzRGF0ZSAhPT0gbnVsbCA/IHRoaXMuX2RhdGVBZGFwdGVyLnRvSXNvODYwMSh0aGlzLnZhbHVlQXNEYXRlKSA6IG51bGw7XG4gICAgdGhpcy5pbnRlcm5hbHMuc2V0Rm9ybVZhbHVlKGZvcm1WYWx1ZSwgdGhpcy52YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF90cnlQYXJzZVZhbHVlKHZhbHVlID0gdGhpcy52YWx1ZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLl92YWx1ZUNhY2hlPy5bMF0gIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZUFzRGF0ZSA9IHRoaXMuX2RhdGVBZGFwdGVyLnBhcnNlKHZhbHVlKTtcbiAgICAgIHRoaXMuX3ZhbHVlQ2FjaGUgPSBbdmFsdWUsIHRoaXMuX3ZhbHVlQXNEYXRlXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVWYWx1ZURhdGVGb3JtYXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0RhdGUpIHtcbiAgICAgIGNvbnN0IGZvcm1hdHRlZERhdGUgPSB0aGlzLl9mb3JtYXREYXRlKCk7XG4gICAgICBpZiAodGhpcy52YWx1ZSAhPT0gZm9ybWF0dGVkRGF0ZSkge1xuICAgICAgICBzdXBlci52YWx1ZSA9IGZvcm1hdHRlZERhdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZm9ybWF0RGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9kYXRlQWRhcHRlci5mb3JtYXQodGhpcy52YWx1ZUFzRGF0ZSwgeyB3ZWVrZGF5U3R5bGU6IHRoaXMud2Vla2RheVN0eWxlIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHNob3VsZFZhbGlkYXRlKG5hbWU6IFByb3BlcnR5S2V5IHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN1cGVyLnNob3VsZFZhbGlkYXRlKG5hbWUpIHx8IFsndmFsdWVBc0RhdGUnLCAnbWluJywgJ21heCddLmluY2x1ZGVzKG5hbWUgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB2YWxpZGF0ZSgpOiB2b2lkIHtcbiAgICBzdXBlci52YWxpZGF0ZSgpO1xuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5fcmVtb3ZlVmFsaWRpdHlFcnJvcnMoKTtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLl9kYXRlQWRhcHRlci5pc1ZhbGlkKHRoaXMudmFsdWVBc0RhdGUpKSB7XG4gICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZygnYmFkSW5wdXQnLCBpMThuRGF0ZUludmFsaWRbdGhpcy5sYW5ndWFnZS5jdXJyZW50XSk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRoaXMuX2RhdGVBZGFwdGVyLmlzVmFsaWQodGhpcy5taW4pICYmXG4gICAgICB0aGlzLl9kYXRlQWRhcHRlci5jb21wYXJlRGF0ZSh0aGlzLm1pbiwgdGhpcy52YWx1ZUFzRGF0ZSkgPiAwXG4gICAgKSB7XG4gICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZyhcbiAgICAgICAgJ3JhbmdlVW5kZXJmbG93JyxcbiAgICAgICAgaTE4bkRhdGVNaW4odGhpcy5fZGF0ZUFkYXB0ZXIuZm9ybWF0KHRoaXMubWluLCB7IHdlZWtkYXlTdHlsZTogJ25vbmUnIH0pKVtcbiAgICAgICAgICB0aGlzLmxhbmd1YWdlLmN1cnJlbnRcbiAgICAgICAgXSxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRoaXMuX2RhdGVBZGFwdGVyLmlzVmFsaWQodGhpcy5tYXgpICYmXG4gICAgICB0aGlzLl9kYXRlQWRhcHRlci5jb21wYXJlRGF0ZSh0aGlzLnZhbHVlQXNEYXRlLCB0aGlzLm1heCkgPiAwXG4gICAgKSB7XG4gICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZyhcbiAgICAgICAgJ3JhbmdlT3ZlcmZsb3cnLFxuICAgICAgICBpMThuRGF0ZU1heCh0aGlzLl9kYXRlQWRhcHRlci5mb3JtYXQodGhpcy5tYXgsIHsgd2Vla2RheVN0eWxlOiAnbm9uZScgfSkpW1xuICAgICAgICAgIHRoaXMubGFuZ3VhZ2UuY3VycmVudFxuICAgICAgICBdLFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGF0ZUZpbHRlciAmJiAhdGhpcy5kYXRlRmlsdGVyKHRoaXMudmFsdWVBc0RhdGUpKSB7XG4gICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZygnc2JiRGF0ZUZpbHRlcicsIGkxOG5EYXRlSW52YWxpZFt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fcmVtb3ZlVmFsaWRpdHlFcnJvcnMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZW1vdmVWYWxpZGl0eUVycm9ycygpOiB2b2lkIHtcbiAgICAoWydiYWRJbnB1dCcsICdyYW5nZVVuZGVyZmxvdycsICdyYW5nZU92ZXJmbG93JywgJ3NiYkRhdGVGaWx0ZXInXSBhcyBjb25zdCkuZm9yRWFjaCgoZikgPT5cbiAgICAgIHRoaXMucmVtb3ZlVmFsaWRpdHlGbGFnKGYpLFxuICAgICk7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1kYXRlLWlucHV0JzogU2JiRGF0ZUlucHV0RWxlbWVudDtcbiAgfVxuXG4gIGludGVyZmFjZSBDdXN0b21WYWxpZGl0eVN0YXRlIHtcbiAgICBzYmJEYXRlRmlsdGVyOiBib29sZWFuO1xuICB9XG59XG4iXSwibmFtZXMiOlsiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1QkEsT0FBTyxPQUFPLGNBQWMsV0FBVztBQUFBLEVBQ3JDLElBQUksZ0JBQWE7QUFDUixXQUFBO0FBQUEsRUFBQTtBQUVW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
271
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgTGl0RWxlbWVudCwgdHlwZSBDU1NSZXN1bHRHcm91cCwgdHlwZSBQcm9wZXJ0eURlY2xhcmF0aW9uIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyByZWFkQ29uZmlnIH0gZnJvbSAnLi4vY29yZS9jb25maWcuanMnO1xuaW1wb3J0IHsgdHlwZSBEYXRlQWRhcHRlciwgZGVmYXVsdERhdGVBZGFwdGVyIH0gZnJvbSAnLi4vY29yZS9kYXRldGltZS5qcyc7XG5pbXBvcnQgeyBkYXRlQ29udmVydGVyLCBEYXRlT25seVR5cGUsIGZvcmNlVHlwZSB9IGZyb20gJy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQge1xuICBpMThuRGF0ZU1heCxcbiAgaTE4bkRhdGVNaW4sXG4gIGkxOG5EYXRlSW52YWxpZCxcbiAgaTE4bkRhdGVQaWNrZXJQbGFjZWhvbGRlcixcbn0gZnJvbSAnLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB7XG4gIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbixcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxufSBmcm9tICcuLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRhdGVwaWNrZXJFbGVtZW50IH0gZnJvbSAnLi4vZGF0ZXBpY2tlci5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2RhdGUtaW5wdXQuc2Nzcz9saXQmaW5saW5lJztcblxuLy8gQXMgZG9jdW1lbnRlZCBpbiBmb3JtLWFzc29jaWF0ZWQtbWl4aW4udHMsIHdlIGV4dGVuZCB0aGUgcHJvdG90eXBlIG9mXG4vLyBWYWxpZGl0eVN0YXRlIHdpdGggY3VzdG9tIGVycm9yIHN0YXRlcyBmb3IgdGhlIGRhdGUgaW5wdXQuXG5PYmplY3QuYXNzaWduKFZhbGlkaXR5U3RhdGUucHJvdG90eXBlLCB7XG4gIGdldCBzYmJEYXRlRmlsdGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSxcbn0pO1xuXG4vKipcbiAqIEN1c3RvbSBpbnB1dCBmb3IgYSBkYXRlLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItZGF0ZS1pbnB1dCcpXG5jbGFzcyBTYmJEYXRlSW5wdXRFbGVtZW50PFQgPSBEYXRlPiBleHRlbmRzIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIGRhdGUgaW5wdXQuIFJlZmxlY3RzIHRoZSBjdXJyZW50IHRleHQgdmFsdWVcbiAgICogb2YgdGhpcyBpbnB1dC5cbiAgICogQGF0dHIgQWNjZXB0cyBJU084NjAxIGZvcm1hdHRlZCB2YWx1ZXMsIHdoaWNoIHdpbGwgYmVcbiAgICogZm9ybWF0dGVkIGFjY29yZGluZyB0byB0aGUgY3VycmVudCBsb2NhbGUuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl90cnlQYXJzZVZhbHVlKHZhbHVlKTtcbiAgICAvLyBBcyBsb25nIGFzIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgd2UgZGVsYXkgYXV0b21hdGljYWxseSB1cGRhdGluZ1xuICAgIC8vIHRoZSB2YWx1ZSB3aXRoIHRoZSBmb3JtYXR0ZWQgc3RyaW5nIG9mIHRoZSBwYXJzZWQgZGF0ZS5cbiAgICBpZiAoIWlzU2VydmVyICYmICF0aGlzLm1hdGNoZXMoJzpmb2N1cycpICYmIHRoaXMudmFsdWVBc0RhdGUgIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy5fZm9ybWF0RGF0ZSgpO1xuICAgIH1cbiAgICBzdXBlci52YWx1ZSA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3VwZXIudmFsdWUgPz8gJyc7XG4gIH1cblxuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSwgdHlwZTogRGF0ZU9ubHlUeXBlIH0pXG4gIHB1YmxpYyBzZXQgdmFsdWVBc0RhdGUodmFsdWU6IFQgfCBudWxsKSB7XG4gICAgLy8gRHVlIHRvIGZvcmNlVHlwZSBhbmQgRGF0ZU9ubHlUeXBlLCB0aGUgZ2l2ZW4gdmFsdWVcbiAgICAvLyBpcyBlaXRoZXIgbnVsbCBvciBhIGRhdGUgb25seSBjb3B5IG9mIHRoZSBvcmlnaW5hbFxuICAgIC8vIHZhbHVlIHBhc3NlZCB0byB2YWx1ZUFzRGF0ZS5cbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZUFzRGF0ZSA9IG51bGw7XG4gICAgICB0aGlzLl92YWx1ZUNhY2hlID0gWycnLCBudWxsXTtcbiAgICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgIXRoaXMuX2RhdGVBZGFwdGVyLmlzRGF0ZUluc3RhbmNlKHRoaXMuX3ZhbHVlQXNEYXRlKSB8fFxuICAgICAgdGhpcy5fZGF0ZUFkYXB0ZXIuY29tcGFyZURhdGUodGhpcy5fdmFsdWVBc0RhdGUhLCB2YWx1ZSEpICE9PSAwXG4gICAgKSB7XG4gICAgICAvLyBBbGlnbiB3aXRoIHRoZSBuYXRpdmUgZGF0ZSBpbnB1dCwgYXMgaXQgY29waWVzIHRoZSB2YWx1ZSBvZlxuICAgICAgLy8gdGhlIGdpdmVuIGRhdGUgYW5kIGRvZXMgbm90IHJldGFpbiB0aGUgb3JpZ2luYWwgaW5zdGFuY2UuXG4gICAgICB0aGlzLl92YWx1ZUFzRGF0ZSA9IHZhbHVlO1xuICAgICAgY29uc3Qgc3RyaW5nVmFsdWUgPSB0aGlzLl9mb3JtYXREYXRlKCk7XG4gICAgICB0aGlzLl92YWx1ZUNhY2hlID0gW3N0cmluZ1ZhbHVlLCB0aGlzLl92YWx1ZUFzRGF0ZV07XG4gICAgICB0aGlzLnZhbHVlID0gc3RyaW5nVmFsdWU7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgdmFsdWVBc0RhdGUoKTogVCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZUFzRGF0ZSA/PyBudWxsO1xuICB9XG4gIHByaXZhdGUgX3ZhbHVlQXNEYXRlPzogVCB8IG51bGw7XG5cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGNvbnZlcnRlcjogZGF0ZUNvbnZlcnRlciwgcmVmbGVjdDogdHJ1ZSwgdHlwZTogRGF0ZU9ubHlUeXBlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBtaW46IFQgfCBudWxsID0gbnVsbDtcblxuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgY29udmVydGVyOiBkYXRlQ29udmVydGVyLCByZWZsZWN0OiB0cnVlLCB0eXBlOiBEYXRlT25seVR5cGUgfSlcbiAgcHVibGljIGFjY2Vzc29yIG1heDogVCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBBIGZ1bmN0aW9uIHVzZWQgdG8gZmlsdGVyIG91dCBkYXRlcy4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICBwdWJsaWMgc2V0IGRhdGVGaWx0ZXIodmFsdWU6IChkYXRlOiBUIHwgbnVsbCkgPT4gYm9vbGVhbikge1xuICAgIHRoaXMuX2RhdGVGaWx0ZXIgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5kYXRlcGlja2VyKSB7XG4gICAgICB0aGlzLmRhdGVwaWNrZXIuZGF0ZUZpbHRlciA9IHZhbHVlO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IGRhdGVGaWx0ZXIoKTogKGRhdGU6IFQgfCBudWxsKSA9PiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0ZUZpbHRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBIb3cgdG8gZm9ybWF0IHRoZSBkaXNwbGF5ZWQgZGF0ZS5cbiAgICogYHNob3J0YDogVHdvIGxldHRlciBhYmJyZXZpYXRpb24gb2YgdGhlIHdlZWsgZGF5IChlLmcuIEZyKS5cbiAgICogYG5vbmVgOiBUaGUgd2Vla2RheSBpcyBub3QgZGlzcGxheWVkLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnd2Vla2RheS1zdHlsZScgfSlcbiAgcHVibGljIGFjY2Vzc29yIHdlZWtkYXlTdHlsZTogJ3Nob3J0JyB8ICdub25lJyA9ICdzaG9ydCc7XG5cbiAgLyoqXG4gICAqIFN0b3JlcyB0aGUgbGFzdCBzdHJpbmcgYW5kIHBhcnNlZCBkYXRlIG9iamVjdCB2YWx1ZSB0byBwcmV2ZW50IHJlcGVhdGVkXG4gICAqIHBhcnNpbmcgb2YgdGhlIHN0cmluZyB2YWx1ZS5cbiAgICovXG4gIHByaXZhdGUgX3ZhbHVlQ2FjaGU/OiBbc3RyaW5nLCBUIHwgbnVsbF07XG4gIHByaXZhdGUgX2RhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxUPiA9IHJlYWRDb25maWcoKS5kYXRldGltZT8uZGF0ZUFkYXB0ZXIgPz8gZGVmYXVsdERhdGVBZGFwdGVyO1xuICBwcml2YXRlIF9wbGFjZWhvbGRlck11dGFibGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogR2V0cyB0aGUgYXNzb2NpYXRlZCBkYXRlcGlja2VyLCBpZiBhbnkuXG4gICAqIFRoZSBzYmItZGF0ZS1pbnB1dCBhbmQgdGhlIHNiYi1kYXRlcGlja2VyIGFyZSBhc3N1bWVkIHRvIGJlIGluIHRoZSBzYW1lIHBhcmVudCBjb250YWluZXIuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGRhdGVwaWNrZXIoKTogU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD4gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnRFbGVtZW50IS5xdWVyeVNlbGVjdG9yPFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+Pignc2JiLWRhdGVwaWNrZXInKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjaGFuZ2UnLCAoKSA9PiB0aGlzLl91cGRhdGVWYWx1ZURhdGVGb3JtYXQoKSwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGF0ZUZpbHRlcjogKGRhdGU6IFQgfCBudWxsKSA9PiBib29sZWFuID0gKCkgPT4gdHJ1ZTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBpZiAoIXRoaXMucGxhY2Vob2xkZXIpIHtcbiAgICAgIHRoaXMuX3BsYWNlaG9sZGVyTXV0YWJsZSA9IHRydWU7XG4gICAgICB0aGlzLnBsYWNlaG9sZGVyID0gaTE4bkRhdGVQaWNrZXJQbGFjZWhvbGRlclt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZXF1ZXN0VXBkYXRlKFxuICAgIG5hbWU/OiBQcm9wZXJ0eUtleSxcbiAgICBvbGRWYWx1ZT86IHVua25vd24sXG4gICAgb3B0aW9ucz86IFByb3BlcnR5RGVjbGFyYXRpb24sXG4gICk6IHZvaWQge1xuICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMpO1xuICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQgJiYgIW5hbWUpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlRGF0ZUZvcm1hdCgpO1xuICAgICAgaWYgKHRoaXMuX3BsYWNlaG9sZGVyTXV0YWJsZSkge1xuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gaTE4bkRhdGVQaWNrZXJQbGFjZWhvbGRlclt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobmFtZSA9PT0gJ3dlZWtkYXlTdHlsZScpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlRGF0ZUZvcm1hdCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICAvLyBVc2VkIHRvIG5vdGlmeSB0aGUgZGF0ZXBpY2tlciB0byB1cGRhdGUgaXRzIHN0YXRlXG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCfJtWNoYW5nZScpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIENhbGxlZCB3aGVuIHRoZSBicm93c2VyIGlzIHRyeWluZyB0byByZXN0b3JlIGVsZW1lbnTigJlzIHN0YXRlIHRvIHN0YXRlIGluIHdoaWNoIGNhc2VcbiAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICogIHVzZXIgaW4gd2hpY2ggY2FzZSByZWFzb24gaXMgXCJhdXRvY29tcGxldGVcIi5cbiAgICogIEluIHRoZSBjYXNlIG9mIFwicmVzdG9yZVwiLCBzdGF0ZSBpcyBhIHN0cmluZywgRmlsZSwgb3IgRm9ybURhdGEgb2JqZWN0XG4gICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKFxuICAgIHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCxcbiAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgKTogdm9pZCB7XG4gICAgaWYgKHN0YXRlICYmIHR5cGVvZiBzdGF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBzdGF0ZTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlRm9ybVZhbHVlKCk6IHZvaWQge1xuICAgIHRoaXMuX3RyeVBhcnNlVmFsdWUoKTtcbiAgICBjb25zdCBmb3JtVmFsdWUgPVxuICAgICAgdGhpcy52YWx1ZUFzRGF0ZSAhPT0gbnVsbCA/IHRoaXMuX2RhdGVBZGFwdGVyLnRvSXNvODYwMSh0aGlzLnZhbHVlQXNEYXRlKSA6IG51bGw7XG4gICAgdGhpcy5pbnRlcm5hbHMuc2V0Rm9ybVZhbHVlKGZvcm1WYWx1ZSwgdGhpcy52YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF90cnlQYXJzZVZhbHVlKHZhbHVlID0gdGhpcy52YWx1ZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLl92YWx1ZUNhY2hlPy5bMF0gIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZUFzRGF0ZSA9IHRoaXMuX2RhdGVBZGFwdGVyLnBhcnNlKHZhbHVlKTtcbiAgICAgIHRoaXMuX3ZhbHVlQ2FjaGUgPSBbdmFsdWUsIHRoaXMuX3ZhbHVlQXNEYXRlXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVWYWx1ZURhdGVGb3JtYXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0RhdGUpIHtcbiAgICAgIGNvbnN0IGZvcm1hdHRlZERhdGUgPSB0aGlzLl9mb3JtYXREYXRlKCk7XG4gICAgICBpZiAodGhpcy52YWx1ZSAhPT0gZm9ybWF0dGVkRGF0ZSkge1xuICAgICAgICBzdXBlci52YWx1ZSA9IGZvcm1hdHRlZERhdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZm9ybWF0RGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9kYXRlQWRhcHRlci5mb3JtYXQodGhpcy52YWx1ZUFzRGF0ZSwgeyB3ZWVrZGF5U3R5bGU6IHRoaXMud2Vla2RheVN0eWxlIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHNob3VsZFZhbGlkYXRlKG5hbWU6IFByb3BlcnR5S2V5IHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN1cGVyLnNob3VsZFZhbGlkYXRlKG5hbWUpIHx8IFsndmFsdWVBc0RhdGUnLCAnbWluJywgJ21heCddLmluY2x1ZGVzKG5hbWUgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB2YWxpZGF0ZSgpOiB2b2lkIHtcbiAgICBzdXBlci52YWxpZGF0ZSgpO1xuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5fcmVtb3ZlVmFsaWRpdHlFcnJvcnMoKTtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLl9kYXRlQWRhcHRlci5pc1ZhbGlkKHRoaXMudmFsdWVBc0RhdGUpKSB7XG4gICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZygnYmFkSW5wdXQnLCBpMThuRGF0ZUludmFsaWRbdGhpcy5sYW5ndWFnZS5jdXJyZW50XSk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRoaXMuX2RhdGVBZGFwdGVyLmlzVmFsaWQodGhpcy5taW4pICYmXG4gICAgICB0aGlzLl9kYXRlQWRhcHRlci5jb21wYXJlRGF0ZSh0aGlzLm1pbiwgdGhpcy52YWx1ZUFzRGF0ZSkgPiAwXG4gICAgKSB7XG4gICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZyhcbiAgICAgICAgJ3JhbmdlVW5kZXJmbG93JyxcbiAgICAgICAgaTE4bkRhdGVNaW4odGhpcy5fZGF0ZUFkYXB0ZXIuZm9ybWF0KHRoaXMubWluLCB7IHdlZWtkYXlTdHlsZTogJ25vbmUnIH0pKVtcbiAgICAgICAgICB0aGlzLmxhbmd1YWdlLmN1cnJlbnRcbiAgICAgICAgXSxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRoaXMuX2RhdGVBZGFwdGVyLmlzVmFsaWQodGhpcy5tYXgpICYmXG4gICAgICB0aGlzLl9kYXRlQWRhcHRlci5jb21wYXJlRGF0ZSh0aGlzLnZhbHVlQXNEYXRlLCB0aGlzLm1heCkgPiAwXG4gICAgKSB7XG4gICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZyhcbiAgICAgICAgJ3JhbmdlT3ZlcmZsb3cnLFxuICAgICAgICBpMThuRGF0ZU1heCh0aGlzLl9kYXRlQWRhcHRlci5mb3JtYXQodGhpcy5tYXgsIHsgd2Vla2RheVN0eWxlOiAnbm9uZScgfSkpW1xuICAgICAgICAgIHRoaXMubGFuZ3VhZ2UuY3VycmVudFxuICAgICAgICBdLFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGF0ZUZpbHRlciAmJiAhdGhpcy5kYXRlRmlsdGVyKHRoaXMudmFsdWVBc0RhdGUpKSB7XG4gICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZygnc2JiRGF0ZUZpbHRlcicsIGkxOG5EYXRlSW52YWxpZFt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fcmVtb3ZlVmFsaWRpdHlFcnJvcnMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZW1vdmVWYWxpZGl0eUVycm9ycygpOiB2b2lkIHtcbiAgICAoWydiYWRJbnB1dCcsICdyYW5nZVVuZGVyZmxvdycsICdyYW5nZU92ZXJmbG93JywgJ3NiYkRhdGVGaWx0ZXInXSBhcyBjb25zdCkuZm9yRWFjaCgoZikgPT5cbiAgICAgIHRoaXMucmVtb3ZlVmFsaWRpdHlGbGFnKGYpLFxuICAgICk7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1kYXRlLWlucHV0JzogU2JiRGF0ZUlucHV0RWxlbWVudDtcbiAgfVxuXG4gIGludGVyZmFjZSBDdXN0b21WYWxpZGl0eVN0YXRlIHtcbiAgICBzYmJEYXRlRmlsdGVyOiBib29sZWFuO1xuICB9XG59XG4iXSwibmFtZXMiOlsiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBdUJBLE9BQU8sT0FBTyxjQUFjLFdBQVc7QUFBQSxFQUNyQyxJQUFJLGdCQUFhO0FBQ1IsV0FBQTtBQUFBLEVBQUE7QUFF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