@sbb-esta/lyne-elements-dev 5.0.0-next.2-dev.1777962297 → 5.0.0-next.2-dev.1777979422

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 (39) hide show
  1. package/core.css +1 -12
  2. package/custom-elements.json +228 -180
  3. package/development/optgroup-base-element-Cq8DMPk9.js +147 -0
  4. package/development/option/optgroup/optgroup-base-element.d.ts +2 -1
  5. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  6. package/development/option/optgroup/optgroup-base-element.js +1 -1
  7. package/development/option/optgroup/optgroup.component.js +1 -1
  8. package/development/option/option/option-base-element.d.ts +2 -1
  9. package/development/option/option/option-base-element.d.ts.map +1 -1
  10. package/development/option/option/option-base-element.js +9 -3
  11. package/development/option/option/option.component.d.ts.map +1 -1
  12. package/development/option/option/option.component.js +1 -1
  13. package/development/option/option-hint/option-hint.component.d.ts +2 -0
  14. package/development/option/option-hint/option-hint.component.d.ts.map +1 -1
  15. package/development/option/option-hint/option-hint.component.js +1 -1
  16. package/development/option-hint.component-B4PxB3BW.js +39 -0
  17. package/development/option.component-CV6cZnJe.js +131 -0
  18. package/development/option.js +3 -3
  19. package/development/option.pure.js +3 -3
  20. package/off-brand-theme.css +1 -12
  21. package/optgroup-base-element-CrO_ydA8.js +108 -0
  22. package/option/optgroup/optgroup-base-element.js +1 -1
  23. package/option/optgroup/optgroup.component.js +1 -1
  24. package/option/option/option-base-element.js +27 -25
  25. package/option/option/option.component.js +1 -1
  26. package/option/option-hint/option-hint.component.js +1 -1
  27. package/option-hint.component-BEXndgG-.js +26 -0
  28. package/option.component-BeorlZT0.js +100 -0
  29. package/option.js +3 -3
  30. package/option.pure.js +3 -3
  31. package/package.json +2 -2
  32. package/safety-theme.css +1 -12
  33. package/standard-theme.css +1 -12
  34. package/development/optgroup-base-element-BEG1P4gK.js +0 -140
  35. package/development/option-hint.component-CcSUSwjN.js +0 -31
  36. package/development/option.component-BEbIEh5o.js +0 -132
  37. package/optgroup-base-element-C6KwbQ0N.js +0 -106
  38. package/option-hint.component-Bayihbh1.js +0 -21
  39. package/option.component-C-GGTcqF.js +0 -100
@@ -1,4 +1,4 @@
1
- import { t as SbbOptgroupBaseElement } from "../../optgroup-base-element-BEG1P4gK.js";
1
+ import { t as SbbOptgroupBaseElement } from "../../optgroup-base-element-Cq8DMPk9.js";
2
2
  import { SbbPropertyWatcherController } from "../../core.js";
3
3
  //#region src/elements/option/optgroup/optgroup.component.ts
4
4
  /**
@@ -28,7 +28,8 @@ export declare abstract class SbbOptionBaseElement<T = string> extends SbbOption
28
28
  /** The portion of the highlighted label. */
29
29
  private accessor _highlightString;
30
30
  private accessor _inertAriaGroups;
31
- constructor();
31
+ private _previousSize;
32
+ protected constructor();
32
33
  attributeChangedCallback(name: string, old: string | null, value: string | null): void;
33
34
  /**
34
35
  * Highlight the label of the option
@@ -1 +1 @@
1
- {"version":3,"file":"option-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/option/option/option-base-element.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EAEnB,OAAO,EACP,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAGb,OAAO,EAKL,UAAU,EAGX,MAAM,eAAe,CAAC;;AAmBvB,8BAAsB,oBAAoB,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,yBAE9D;IACC,gBAAuB,MAAM;;MAElB;IACX,OAAuB,MAAM,EAAE,cAAc,CAA4B;IAEzE,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAEpC;;;;;OAKG;IACH,IACW,KAAK,CAAC,KAAK,EAAE,CAAC,EAUxB;IACD,IAAW,KAAK,IAAI,CAAC,CAEpB;IACD,OAAO,CAAC,MAAM,CAAkB;IAEhC,sCAAsC;IACtC,IACW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAGjC;IACD,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,yFAAyF;IAChF,SAAS,CAAC,QAAQ,CAAC,iBAAiB,UAAS;IAE7C,SAAS,CAAC,QAAQ,CAAC,UAAU,SAAM;IAEnC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAG,MAAM,CAAC;IAE3C,0CAA0C;IACjC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAS;IAEnE,4CAA4C;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuB;IAExD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;;IA4BnC,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,IAAI;IAMP;;;;OAIG;IACI,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIrC,SAAS,CAAC,wBAAwB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAQ3C,iBAAiB,IAAI,IAAI;IAKzB,aAAa,CAC3B,IAAI,CAAC,EAAE,WAAW,EAClB,QAAQ,CAAC,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI;cAaY,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAO9E,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAEzD,SAAS,CAAC,sBAAsB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAKzD;;;OAGG;IACI,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAItC,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAQpC,OAAO,CAAC,mBAAmB;IAI3B,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAuBtC,SAAS,CAAC,mBAAmB,IAAI,cAAc;IAwB/C,SAAS,CAAC,UAAU,IAAI,cAAc;IAItC,SAAS,CAAC,WAAW,IAAI,cAAc,GAAG,OAAO,OAAO;IAIxD,SAAS,CAAC,UAAU,IAAI,cAAc,GAAG,OAAO,OAAO;cAIpC,MAAM,IAAI,cAAc;CA2B5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,2BAA2B;QACnC,cAAc,EAAE,KAAK,CAAC;KACvB;CACF"}
1
+ {"version":3,"file":"option-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/option/option/option-base-element.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EAEnB,OAAO,EACP,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAIb,OAAO,EAKL,UAAU,EAIX,MAAM,eAAe,CAAC;;AAoBvB,8BAAsB,oBAAoB,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,yBAE9D;IACC,gBAAuB,MAAM;;MAElB;IACX,OAAuB,MAAM,EAAE,cAAc,CAA4B;IAEzE,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAEpC;;;;;OAKG;IACH,IACW,KAAK,CAAC,KAAK,EAAE,CAAC,EAUxB;IACD,IAAW,KAAK,IAAI,CAAC,CAEpB;IACD,OAAO,CAAC,MAAM,CAAkB;IAEhC,sCAAsC;IACtC,IACW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAGjC;IACD,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,yFAAyF;IAChF,SAAS,CAAC,QAAQ,CAAC,iBAAiB,UAAS;IAE7C,SAAS,CAAC,QAAQ,CAAC,UAAU,SAAM;IAEnC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAG,MAAM,CAAC;IAE3C,0CAA0C;IACjC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAS;IAEnE,4CAA4C;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuB;IAExD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAEnD,OAAO,CAAC,aAAa,CAAqB;IAE1C,SAAS;IAsDO,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,IAAI;IAMP;;;;OAIG;IACI,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIrC,SAAS,CAAC,wBAAwB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAQ3C,iBAAiB,IAAI,IAAI;IAKzB,aAAa,CAC3B,IAAI,CAAC,EAAE,WAAW,EAClB,QAAQ,CAAC,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI;cAaY,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAO9E,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAEzD,SAAS,CAAC,sBAAsB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAKzD;;;OAGG;IACI,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAItC,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAQpC,OAAO,CAAC,mBAAmB;IAI3B,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAuBtC,SAAS,CAAC,mBAAmB,IAAI,cAAc;IAwB/C,SAAS,CAAC,UAAU,IAAI,cAAc;IAItC,SAAS,CAAC,WAAW,IAAI,cAAc,GAAG,OAAO,OAAO;IAIxD,SAAS,CAAC,UAAU,IAAI,cAAc,GAAG,OAAO,OAAO;cAIpC,MAAM,IAAI,cAAc;CA2B5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,2BAA2B;QACnC,cAAc,EAAE,KAAK,CAAC;KACvB;CACF"}
@@ -1,7 +1,7 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
2
  import { html, nothing } from "lit";
3
3
  import { property, state } from "lit/decorators.js";
4
- import { SbbDisabledMixin, SbbElement, isAndroid, isBlink, isSafari, screenReaderOnlyStyles, setOrRemoveAttribute } from "../../core.js";
4
+ import { SbbDisabledMixin, SbbElement, SbbPropertyWatcherController, isAndroid, isBlink, isSafari, screenReaderOnlyStyles, setOrRemoveAttribute } from "../../core.js";
5
5
  import { SbbIconNameMixin } from "../../icon.pure.js";
6
6
  import { MutationController } from "@lit-labs/observers/mutation-controller.js";
7
7
  //#region src/elements/option/option/option-base-element.ts
@@ -254,7 +254,7 @@ var SbbOptionBaseElement = (() => {
254
254
  this.#disableLabelHighlight_accessor_storage = (__runInitializers(this, _label_extraInitializers), __runInitializers(this, _disableLabelHighlight_initializers, false));
255
255
  this.#_highlightString_accessor_storage = (__runInitializers(this, _disableLabelHighlight_extraInitializers), __runInitializers(this, __highlightString_initializers, null));
256
256
  this.#_inertAriaGroups_accessor_storage = (__runInitializers(this, __highlightString_extraInitializers), __runInitializers(this, __inertAriaGroups_initializers, false));
257
- __runInitializers(this, __inertAriaGroups_extraInitializers);
257
+ this._previousSize = __runInitializers(this, __inertAriaGroups_extraInitializers);
258
258
  this.addEventListener?.("click", (e) => this.selectByClick(e), { passive: true });
259
259
  this.addController(new MutationController(this, {
260
260
  config: optionObserverConfig,
@@ -264,6 +264,12 @@ var SbbOptionBaseElement = (() => {
264
264
  this.dispatchEvent(new Event("optionLabelChanged", { bubbles: true }));
265
265
  }
266
266
  }));
267
+ this.addController(new SbbPropertyWatcherController(this, () => this.closest("sbb-autocomplete, sbb-autocomplete-grid"), { negative: (e) => this.toggleState("negative", e.negative) }));
268
+ this.addController(new SbbPropertyWatcherController(this, () => this.closest("sbb-autocomplete, sbb-autocomplete-grid, sbb-select"), { size: (e) => {
269
+ if (this._previousSize) this.internals.states.delete(`size-${this._previousSize}`);
270
+ this._previousSize = e.size;
271
+ if (this._previousSize) this.internals.states.add(`size-${this._previousSize}`);
272
+ } }));
267
273
  if (inertAriaGroups) if (this.hydrationRequired) this.hydrationComplete.then(() => this._inertAriaGroups = inertAriaGroups);
268
274
  else this._inertAriaGroups = inertAriaGroups;
269
275
  }
@@ -371,4 +377,4 @@ var SbbOptionBaseElement = (() => {
371
377
  //#endregion
372
378
  export { SbbOptionBaseElement };
373
379
 
374
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLWJhc2UtZWxlbWVudC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvb3B0aW9uL29wdGlvbi9vcHRpb24tYmFzZS1lbGVtZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE11dGF0aW9uQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvbXV0YXRpb24tY29udHJvbGxlci5qcyc7XG5pbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5RGVjbGFyYXRpb24sXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7XG4gIGlzQW5kcm9pZCxcbiAgaXNCbGluayxcbiAgaXNTYWZhcmksXG4gIFNiYkRpc2FibGVkTWl4aW4sXG4gIFNiYkVsZW1lbnQsXG4gIHNjcmVlblJlYWRlck9ubHlTdHlsZXMsXG4gIHNldE9yUmVtb3ZlQXR0cmlidXRlLFxufSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi8uLi9pY29uLnB1cmUudHMnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBPbiBTYWZhcmksIHRoZSBncm91cHMgbGFiZWxzIGFyZSBub3QgcmVhZCBieSBWb2ljZU92ZXIuXG4gKiBUbyBzb2x2ZSB0aGUgcHJvYmxlbSwgd2UgcmVtb3ZlIHRoZSByb2xlPVwiZ3JvdXBcIiBhbmQgYWRkIGFuIGhpZGRlbiBzcGFuIGNvbnRhaW5pbmcgdGhlIGdyb3VwIG5hbWVcbiAqIFRPRE86IFdlIHNob3VsZCBwZXJpb2RpY2FsbHkgY2hlY2sgaWYgaXQgaGFzIGJlZW4gc29sdmVkIGFuZCwgaWYgc28sIHJlbW92ZSB0aGUgcHJvcGVydHkuXG4gKi9cbmNvbnN0IGluZXJ0QXJpYUdyb3VwcyA9IGlzU2FmYXJpO1xuXG4vKiogQ29uZmlndXJhdGlvbiBmb3IgdGhlIGF0dHJpYnV0ZSB0byBsb29rIGF0IGlmIGNvbXBvbmVudCBpcyBuZXN0ZWQgaW4gYW4gb3B0aW9uIGdyb3VwICovXG5jb25zdCBvcHRpb25PYnNlcnZlckNvbmZpZzogTXV0YXRpb25PYnNlcnZlckluaXQgPSB7XG4gIGNoaWxkTGlzdDogdHJ1ZSxcbiAgc3VidHJlZTogdHJ1ZSxcbiAgY2hhcmFjdGVyRGF0YTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYmJPcHRpb25CYXNlRWxlbWVudDxUID0gc3RyaW5nPiBleHRlbmRzIFNiYkRpc2FibGVkTWl4aW4oXG4gIFNiYkljb25OYW1lTWl4aW4oU2JiRWxlbWVudCksXG4pIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgb3B0aW9uc2VsZWN0ZWQ6ICdvcHRpb25zZWxlY3RlZCcsXG4gIH0gYXMgY29uc3Q7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtzY3JlZW5SZWFkZXJPbmx5U3R5bGVzXTtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgb3B0aW9uSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVmFsdWUgb2YgdGhlIG9wdGlvbi5cbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIERldmVsb3BlciBub3RlOiBJbiB0aGlzIGNhc2UgdXBkYXRpbmcgdGhlIGF0dHJpYnV0ZSBtdXN0IGJlIHN5bmNocm9ub3VzLlxuICAgKiBEdWUgdG8gdGhpcywgaXQgaXMgaW1wbGVtZW50ZWQgYXMgYSBnZXR0ZXIvc2V0dGVyIGFuZCB0aGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKCkgaGFuZGxlcyB0aGUgZGlmZiBjaGVjay5cbiAgICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IFQpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgYCR7dmFsdWV9YCk7XG4gICAgICB0aGlzLl92YWx1ZSA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIC8vIE5vdGlmeSB0aGUgc2JiLXNlbGVjdCB0byByZS1jaGVjayBpdHMgdmFsdWUgYWdhaW5zdCB0aGUgb3B0aW9uJ3Mgb25lLlxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCfJtW9wdGlvbnZhbHVlY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFQge1xuICAgIHJldHVybiAodGhpcy5fdmFsdWUgPz8gdGhpcy5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJykpIGFzIFQ7XG4gIH1cbiAgcHJpdmF0ZSBfdmFsdWU6IFQgfCBudWxsID0gbnVsbDtcblxuICAvKiogV2hldGhlciB0aGUgb3B0aW9uIGlzIHNlbGVjdGVkLiAqL1xuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnc2VsZWN0ZWQnLCB2YWx1ZSk7XG4gICAgdGhpcy5fdXBkYXRlQXJpYVNlbGVjdGVkKCk7XG4gIH1cbiAgcHVibGljIGdldCBzZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXNBdHRyaWJ1dGUoJ3NlbGVjdGVkJyk7XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgY29tcG9uZW50IG11c3QgYmUgc2V0IGRpc2FibGVkIGR1ZSBkaXNhYmxlZCBhdHRyaWJ1dGUgb24gc2JiLW9wdGdyb3VwLiAqL1xuICBAc3RhdGUoKSBwcm90ZWN0ZWQgYWNjZXNzb3IgZGlzYWJsZWRGcm9tR3JvdXAgPSBmYWxzZTtcblxuICBAc3RhdGUoKSBwcm90ZWN0ZWQgYWNjZXNzb3IgZ3JvdXBMYWJlbCA9ICcnO1xuXG4gIEBzdGF0ZSgpIHByb3RlY3RlZCBhY2Nlc3NvciBsYWJlbCE6IHN0cmluZztcblxuICAvKiogRGlzYWJsZSB0aGUgaGlnaGxpZ2h0IG9mIHRoZSBsYWJlbC4gKi9cbiAgQHN0YXRlKCkgcHJvdGVjdGVkIGFjY2Vzc29yIGRpc2FibGVMYWJlbEhpZ2hsaWdodDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBUaGUgcG9ydGlvbiBvZiB0aGUgaGlnaGxpZ2h0ZWQgbGFiZWwuICovXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2hpZ2hsaWdodFN0cmluZzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfaW5lcnRBcmlhR3JvdXBzID0gZmFsc2U7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgKGU6IE1vdXNlRXZlbnQpID0+IHRoaXMuc2VsZWN0QnlDbGljayhlKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkQ29udHJvbGxlcihcbiAgICAgIG5ldyBNdXRhdGlvbkNvbnRyb2xsZXIodGhpcywge1xuICAgICAgICBjb25maWc6IG9wdGlvbk9ic2VydmVyQ29uZmlnLFxuICAgICAgICBjYWxsYmFjazogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlSGlnaGxpZ2h0U3RhdGUoKTtcbiAgICAgICAgICAvKiogQGludGVybmFsICovXG4gICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnb3B0aW9uTGFiZWxDaGFuZ2VkJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICBpZiAoaW5lcnRBcmlhR3JvdXBzKSB7XG4gICAgICBpZiAodGhpcy5oeWRyYXRpb25SZXF1aXJlZCkge1xuICAgICAgICB0aGlzLmh5ZHJhdGlvbkNvbXBsZXRlLnRoZW4oKCkgPT4gKHRoaXMuX2luZXJ0QXJpYUdyb3VwcyA9IGluZXJ0QXJpYUdyb3VwcykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5faW5lcnRBcmlhR3JvdXBzID0gaW5lcnRBcmlhR3JvdXBzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIG9sZDogc3RyaW5nIHwgbnVsbCxcbiAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbCxcbiAgKTogdm9pZCB7XG4gICAgaWYgKG5hbWUgIT09ICd2YWx1ZScgfHwgb2xkICE9PSB2YWx1ZSkge1xuICAgICAgc3VwZXIuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKG5hbWUsIG9sZCwgdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIaWdobGlnaHQgdGhlIGxhYmVsIG9mIHRoZSBvcHRpb25cbiAgICogQHBhcmFtIHZhbHVlIHRoZSBoaWdobGlnaHRlZCBwb3J0aW9uIG9mIHRoZSBsYWJlbFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBoaWdobGlnaHQodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2hpZ2hsaWdodFN0cmluZyA9IHZhbHVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdFZpYVVzZXJJbnRlcmFjdGlvbihzZWxlY3RlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICBpZiAodGhpcy5zZWxlY3RlZCkge1xuICAgICAgLyoqIEVtaXRzIHdoZW4gYW4gb3B0aW9uIHdhcyBzZWxlY3RlZCBieSB1c2VyLiAqL1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnb3B0aW9uc2VsZWN0ZWQnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLmlkIHx8PSBgJHt0aGlzLm9wdGlvbklkfS0ke25leHRJZCsrfWA7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcbiAgICBpZiAobmFtZSA9PT0gJ2Rpc2FibGVkJyB8fCBuYW1lID09PSAnZGlzYWJsZWRGcm9tR3JvdXAnKSB7XG4gICAgICB0aGlzLnRvZ2dsZVN0YXRlKCdkaXNhYmxlZCcsIHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZEZyb21Hcm91cCk7XG4gICAgICBzZXRPclJlbW92ZUF0dHJpYnV0ZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgJ3RhYmluZGV4JyxcbiAgICAgICAgaXNBbmRyb2lkICYmICF0aGlzLmRpc2FibGVkICYmICF0aGlzLmRpc2FibGVkRnJvbUdyb3VwID8gMCA6IG51bGwsXG4gICAgICApO1xuICAgICAgdGhpcy51cGRhdGVBcmlhRGlzYWJsZWQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICAvLyBJbml0IGZpcnN0IHNlbGVjdCBzdGF0ZSBiZWNhdXNlIGZhbHNlIHdvdWxkIG5vdCBjYWxsIHNldHRlciBvZiBzZWxlY3RlZCBwcm9wZXJ0eS5cbiAgICB0aGlzLl91cGRhdGVBcmlhU2VsZWN0ZWQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzZWxlY3RCeUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZDtcblxuICBwcm90ZWN0ZWQgdXBkYXRlRGlzYWJsZUhpZ2hsaWdodChkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZUxhYmVsSGlnaGxpZ2h0ID0gZGlzYWJsZWQ7XG4gICAgdGhpcy50b2dnbGVTdGF0ZSgnZGlzYWJsZS1oaWdobGlnaHQnLCBkaXNhYmxlZCk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgb3B0aW9uIGlzIGN1cnJlbnRseSBhY3RpdmUuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHNldEFjdGl2ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ2FjdGl2ZScsIHZhbHVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVBcmlhRGlzYWJsZWQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnRlcm5hbHMuYXJpYURpc2FibGVkID0gdGhpcy5kaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkRnJvbUdyb3VwID8gJ3RydWUnIDogbnVsbDtcblxuICAgIC8vIExpc3RlbmVkIGJ5IGF1dG9jb21wbGV0ZVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCfJtWRpc2FibGVkY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUFyaWFTZWxlY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmludGVybmFscy5hcmlhU2VsZWN0ZWQgPSBgJHt0aGlzLnNlbGVjdGVkfWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlSGlnaGxpZ2h0U3RhdGUoKTogdm9pZCB7XG4gICAgY29uc3Qgc2xvdE5vZGVzID0gQXJyYXkuZnJvbSh0aGlzLmNoaWxkTm9kZXMgPz8gW10pLmZpbHRlcihcbiAgICAgIChuKSA9PiBuLm5vZGVUeXBlICE9PSBOb2RlLkNPTU1FTlRfTk9ERSAmJiAoIShuIGluc3RhbmNlb2YgRWxlbWVudCkgfHwgbi5zbG90ICE9PSAnaWNvbicpLFxuICAgICk7XG4gICAgY29uc3QgbGFiZWxOb2RlcyA9IHNsb3ROb2Rlcy5maWx0ZXIoKGVsKSA9PiBlbC5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIGFzIFRleHRbXTtcblxuICAgIC8vIERpc2FibGUgdGhlIGhpZ2hsaWdodCBpZiB0aGUgc2xvdCBjb250YWluIG1vcmUgdGhhbiBqdXN0IHRleHQgbm9kZXMuXG4gICAgLy8gV2UgbmVlZCB0byBpZ25vcmUgdGVtcGxhdGUgZWxlbWVudHMsIGFzIFNTUiBhZGRzIGEgZGVjbGFyYXRpdmUgc2hhZG93IERPTVxuICAgIC8vIGluIHRoZSBmb3JtIG9mIGEgdGVtcGxhdGUgZWxlbWVudC5cbiAgICBpZiAoXG4gICAgICBsYWJlbE5vZGVzLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgc2xvdE5vZGVzLmZpbHRlcigobikgPT4gIShuIGluc3RhbmNlb2YgRWxlbWVudCkgfHwgbi5sb2NhbE5hbWUgIT09ICd0ZW1wbGF0ZScpLmxlbmd0aCAhPT1cbiAgICAgICAgbGFiZWxOb2Rlcy5sZW5ndGhcbiAgICApIHtcbiAgICAgIHRoaXMudXBkYXRlRGlzYWJsZUhpZ2hsaWdodCh0cnVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5sYWJlbCA9IGxhYmVsTm9kZXNcbiAgICAgIC5tYXAoKGwpID0+IGwud2hvbGVUZXh0KVxuICAgICAgLmZpbHRlcigobCkgPT4gbC50cmltKCkpXG4gICAgICAuam9pbignJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0SGlnaGxpZ2h0ZWRMYWJlbCgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgaWYgKCF0aGlzLl9oaWdobGlnaHRTdHJpbmcgfHwgIXRoaXMuX2hpZ2hsaWdodFN0cmluZy50cmltKCkpIHtcbiAgICAgIHJldHVybiBodG1sYCR7dGhpcy5sYWJlbH1gO1xuICAgIH1cblxuICAgIGNvbnN0IG1hdGNoSW5kZXggPSB0aGlzLmxhYmVsIS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodGhpcy5faGlnaGxpZ2h0U3RyaW5nLnRvTG93ZXJDYXNlKCkpO1xuXG4gICAgaWYgKG1hdGNoSW5kZXggPT09IC0xKSB7XG4gICAgICByZXR1cm4gaHRtbGAke3RoaXMubGFiZWx9YDtcbiAgICB9XG5cbiAgICBjb25zdCBwcmVmaXggPSB0aGlzLmxhYmVsIS5zdWJzdHJpbmcoMCwgbWF0Y2hJbmRleCk7XG4gICAgY29uc3QgaGlnaGxpZ2h0ZWQgPSB0aGlzLmxhYmVsIS5zdWJzdHJpbmcoXG4gICAgICBtYXRjaEluZGV4LFxuICAgICAgbWF0Y2hJbmRleCArIHRoaXMuX2hpZ2hsaWdodFN0cmluZy5sZW5ndGgsXG4gICAgKTtcbiAgICBjb25zdCBwb3N0Zml4ID0gdGhpcy5sYWJlbCEuc3Vic3RyaW5nKG1hdGNoSW5kZXggKyB0aGlzLl9oaWdobGlnaHRTdHJpbmcubGVuZ3RoKTtcblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItb3B0aW9uX19sYWJlbC0taGlnaGxpZ2h0XCI+JHtwcmVmaXh9PC9zcGFuPjxzcGFuPiR7aGlnaGxpZ2h0ZWR9PC9zcGFuXG4gICAgICA+PHNwYW4gY2xhc3M9XCJzYmItb3B0aW9uX19sYWJlbC0taGlnaGxpZ2h0XCI+JHtwb3N0Zml4fTwvc3Bhbj5cbiAgICBgO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbmRlckljb24oKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYDxzcGFuIGNsYXNzPVwic2JiLW9wdGlvbl9faWNvblwiPiAke3RoaXMucmVuZGVySWNvblNsb3QoKX0gPC9zcGFuPmA7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVuZGVyTGFiZWwoKTogVGVtcGxhdGVSZXN1bHQgfCB0eXBlb2Ygbm90aGluZyB7XG4gICAgcmV0dXJuIHRoaXMubGFiZWwgJiYgIXRoaXMuZGlzYWJsZUxhYmVsSGlnaGxpZ2h0ID8gdGhpcy5nZXRIaWdobGlnaHRlZExhYmVsKCkgOiBub3RoaW5nO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbmRlclRpY2soKTogVGVtcGxhdGVSZXN1bHQgfCB0eXBlb2Ygbm90aGluZyB7XG4gICAgcmV0dXJuIG5vdGhpbmc7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItb3B0aW9uXCI+XG4gICAgICAgICR7dGhpcy5yZW5kZXJJY29uKCl9XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLW9wdGlvbl9fbGFiZWxcIj5cbiAgICAgICAgICA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuaGFuZGxlSGlnaGxpZ2h0U3RhdGV9Pjwvc2xvdD5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgYXJpYS1oaWRkZW49JHtcbiAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAqIFNjcmVlbiByZWFkZXJzIHdpdGggQ2hyb21pdW0gcmVhZCB0aGUgb3B0aW9uIHR3aWNlLlxuICAgICAgICAgICAgICAgKiBXZSB0aGVyZWZvcmUgaGF2ZSB0byBoaWRlIHRoZSBvcHRpb24gZm9yIHRoZSBzY3JlZW4gcmVhZGVycy5cbiAgICAgICAgICAgICAgICogVE9ETzogUmVjaGVjayBwZXJpb2RpY2FsbHkgaWYgdGhpcyBpcyBzdGlsbCBuZWNlc3NhcnkuXG4gICAgICAgICAgICAgICAqIGh0dHBzOi8vaXNzdWVzLmNocm9taXVtLm9yZy9pc3N1ZXMvNDYwMTY1NzQxXG4gICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICBpc0JsaW5rID8gJ3RydWUnIDogbm90aGluZ1xuICAgICAgICAgICAgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJMYWJlbCgpfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAke3RoaXMuX2luZXJ0QXJpYUdyb3VwcyAmJiB0aGlzLmdyb3VwTGFiZWxcbiAgICAgICAgICAgID8gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj4gKCR7dGhpcy5ncm91cExhYmVsfSk8L3NwYW4+YFxuICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgICR7dGhpcy5yZW5kZXJUaWNrKCl9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEdsb2JhbEV2ZW50SGFuZGxlcnNFdmVudE1hcCB7XG4gICAgb3B0aW9uc2VsZWN0ZWQ6IEV2ZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFzQkEsSUFBSSxTQUFTOzs7Ozs7QUFPYixJQUFNLGtCQUFrQjs7QUFHeEIsSUFBTSx1QkFBNkM7Q0FDakQsV0FBVztDQUNYLFNBQVM7Q0FDVCxlQUFlO0NBQ2hCO0lBRXFCLDhCQUFvQjttQkFBcUIsaUJBQzdELGlCQUFpQixXQUFXLENBQzdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2NBRnFCLDZCQUF5QyxZQUU5RDs7OzRCQWNFLFVBQVUsQ0FBQTsrQkFrQlYsU0FBUyxFQUFFLE1BQU0sU0FBUyxDQUFDLENBQUE7b0NBVTNCLE9BQU8sQ0FBQTs2QkFFUCxPQUFPLENBQUE7d0JBRVAsT0FBTyxDQUFBO3dDQUdQLE9BQU8sQ0FBQTttQ0FHUCxPQUFPLENBQUE7bUNBRVAsT0FBTyxDQUFBO0FBdkNSLGdCQUFBLE1BQUEsTUFBQSx1QkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLFdBQUE7S0FBQSxNQUFBLEtBQUEsVUFBQTtB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
380
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLWJhc2UtZWxlbWVudC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvb3B0aW9uL29wdGlvbi9vcHRpb24tYmFzZS1lbGVtZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE11dGF0aW9uQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvbXV0YXRpb24tY29udHJvbGxlci5qcyc7XG5pbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5RGVjbGFyYXRpb24sXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiQXV0b2NvbXBsZXRlQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9hdXRvY29tcGxldGUucHVyZS50cyc7XG5pbXBvcnQge1xuICBpc0FuZHJvaWQsXG4gIGlzQmxpbmssXG4gIGlzU2FmYXJpLFxuICBTYmJEaXNhYmxlZE1peGluLFxuICBTYmJFbGVtZW50LFxuICBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyLFxuICBzY3JlZW5SZWFkZXJPbmx5U3R5bGVzLFxuICBzZXRPclJlbW92ZUF0dHJpYnV0ZSxcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJJY29uTmFtZU1peGluIH0gZnJvbSAnLi4vLi4vaWNvbi5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiU2VsZWN0RWxlbWVudCB9IGZyb20gJy4uLy4uL3NlbGVjdC5wdXJlLnRzJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogT24gU2FmYXJpLCB0aGUgZ3JvdXBzIGxhYmVscyBhcmUgbm90IHJlYWQgYnkgVm9pY2VPdmVyLlxuICogVG8gc29sdmUgdGhlIHByb2JsZW0sIHdlIHJlbW92ZSB0aGUgcm9sZT1cImdyb3VwXCIgYW5kIGFkZCBhbiBoaWRkZW4gc3BhbiBjb250YWluaW5nIHRoZSBncm91cCBuYW1lXG4gKiBUT0RPOiBXZSBzaG91bGQgcGVyaW9kaWNhbGx5IGNoZWNrIGlmIGl0IGhhcyBiZWVuIHNvbHZlZCBhbmQsIGlmIHNvLCByZW1vdmUgdGhlIHByb3BlcnR5LlxuICovXG5jb25zdCBpbmVydEFyaWFHcm91cHMgPSBpc1NhZmFyaTtcblxuLyoqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBhdHRyaWJ1dGUgdG8gbG9vayBhdCBpZiBjb21wb25lbnQgaXMgbmVzdGVkIGluIGFuIG9wdGlvbiBncm91cCAqL1xuY29uc3Qgb3B0aW9uT2JzZXJ2ZXJDb25maWc6IE11dGF0aW9uT2JzZXJ2ZXJJbml0ID0ge1xuICBjaGlsZExpc3Q6IHRydWUsXG4gIHN1YnRyZWU6IHRydWUsXG4gIGNoYXJhY3RlckRhdGE6IHRydWUsXG59O1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiT3B0aW9uQmFzZUVsZW1lbnQ8VCA9IHN0cmluZz4gZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFxuICBTYmJJY29uTmFtZU1peGluKFNiYkVsZW1lbnQpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIG9wdGlvbnNlbGVjdGVkOiAnb3B0aW9uc2VsZWN0ZWQnLFxuICB9IGFzIGNvbnN0O1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbc2NyZWVuUmVhZGVyT25seVN0eWxlc107XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IG9wdGlvbklkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZhbHVlIG9mIHRoZSBvcHRpb24uXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBEZXZlbG9wZXIgbm90ZTogSW4gdGhpcyBjYXNlIHVwZGF0aW5nIHRoZSBhdHRyaWJ1dGUgbXVzdCBiZSBzeW5jaHJvbm91cy5cbiAgICogRHVlIHRvIHRoaXMsIGl0IGlzIGltcGxlbWVudGVkIGFzIGEgZ2V0dGVyL3NldHRlciBhbmQgdGhlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjaygpIGhhbmRsZXMgdGhlIGRpZmYgY2hlY2suXG4gICAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBUKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCd2YWx1ZScsIGAke3ZhbHVlfWApO1xuICAgICAgdGhpcy5fdmFsdWUgPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgICAvLyBOb3RpZnkgdGhlIHNiYi1zZWxlY3QgdG8gcmUtY2hlY2sgaXRzIHZhbHVlIGFnYWluc3QgdGhlIG9wdGlvbidzIG9uZS5cbiAgICAvKiogQGludGVybmFsICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnybVvcHRpb252YWx1ZWNoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gIH1cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBUIHtcbiAgICByZXR1cm4gKHRoaXMuX3ZhbHVlID8/IHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpKSBhcyBUO1xuICB9XG4gIHByaXZhdGUgX3ZhbHVlOiBUIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZC4gKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ3NlbGVjdGVkJywgdmFsdWUpO1xuICAgIHRoaXMuX3VwZGF0ZUFyaWFTZWxlY3RlZCgpO1xuICB9XG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBtdXN0IGJlIHNldCBkaXNhYmxlZCBkdWUgZGlzYWJsZWQgYXR0cmlidXRlIG9uIHNiYi1vcHRncm91cC4gKi9cbiAgQHN0YXRlKCkgcHJvdGVjdGVkIGFjY2Vzc29yIGRpc2FibGVkRnJvbUdyb3VwID0gZmFsc2U7XG5cbiAgQHN0YXRlKCkgcHJvdGVjdGVkIGFjY2Vzc29yIGdyb3VwTGFiZWwgPSAnJztcblxuICBAc3RhdGUoKSBwcm90ZWN0ZWQgYWNjZXNzb3IgbGFiZWwhOiBzdHJpbmc7XG5cbiAgLyoqIERpc2FibGUgdGhlIGhpZ2hsaWdodCBvZiB0aGUgbGFiZWwuICovXG4gIEBzdGF0ZSgpIHByb3RlY3RlZCBhY2Nlc3NvciBkaXNhYmxlTGFiZWxIaWdobGlnaHQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogVGhlIHBvcnRpb24gb2YgdGhlIGhpZ2hsaWdodGVkIGxhYmVsLiAqL1xuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9oaWdobGlnaHRTdHJpbmc6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2luZXJ0QXJpYUdyb3VwcyA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX3ByZXZpb3VzU2l6ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjbGljaycsIChlOiBNb3VzZUV2ZW50KSA9PiB0aGlzLnNlbGVjdEJ5Q2xpY2soZSksIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZENvbnRyb2xsZXIoXG4gICAgICBuZXcgTXV0YXRpb25Db250cm9sbGVyKHRoaXMsIHtcbiAgICAgICAgY29uZmlnOiBvcHRpb25PYnNlcnZlckNvbmZpZyxcbiAgICAgICAgY2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLmhhbmRsZUhpZ2hsaWdodFN0YXRlKCk7XG4gICAgICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ29wdGlvbkxhYmVsQ2hhbmdlZCcsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgbmV3IFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXIoXG4gICAgICAgIHRoaXMsXG4gICAgICAgICgpID0+IHRoaXMuY2xvc2VzdCgnc2JiLWF1dG9jb21wbGV0ZSwgc2JiLWF1dG9jb21wbGV0ZS1ncmlkJykgYXMgU2JiQXV0b2NvbXBsZXRlQmFzZUVsZW1lbnQsXG4gICAgICAgIHtcbiAgICAgICAgICBuZWdhdGl2ZTogKGUpID0+IHRoaXMudG9nZ2xlU3RhdGUoJ25lZ2F0aXZlJywgZS5uZWdhdGl2ZSksXG4gICAgICAgIH0sXG4gICAgICApLFxuICAgICk7XG5cbiAgICB0aGlzLmFkZENvbnRyb2xsZXIoXG4gICAgICBuZXcgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcjxTYmJBdXRvY29tcGxldGVCYXNlRWxlbWVudCB8IFNiYlNlbGVjdEVsZW1lbnQ+KFxuICAgICAgICB0aGlzLFxuICAgICAgICAoKSA9PiB0aGlzLmNsb3Nlc3QoJ3NiYi1hdXRvY29tcGxldGUsIHNiYi1hdXRvY29tcGxldGUtZ3JpZCwgc2JiLXNlbGVjdCcpLFxuICAgICAgICB7XG4gICAgICAgICAgc2l6ZTogKGUpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9wcmV2aW91c1NpemUpIHtcbiAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShgc2l6ZS0ke3RoaXMuX3ByZXZpb3VzU2l6ZX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3ByZXZpb3VzU2l6ZSA9IGUuc2l6ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9wcmV2aW91c1NpemUpIHtcbiAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChgc2l6ZS0ke3RoaXMuX3ByZXZpb3VzU2l6ZX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgaWYgKGluZXJ0QXJpYUdyb3Vwcykge1xuICAgICAgaWYgKHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgICAgdGhpcy5oeWRyYXRpb25Db21wbGV0ZS50aGVuKCgpID0+ICh0aGlzLl9pbmVydEFyaWFHcm91cHMgPSBpbmVydEFyaWFHcm91cHMpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2luZXJ0QXJpYUdyb3VwcyA9IGluZXJ0QXJpYUdyb3VwcztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBvbGQ6IHN0cmluZyB8IG51bGwsXG4gICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICk6IHZvaWQge1xuICAgIGlmIChuYW1lICE9PSAndmFsdWUnIHx8IG9sZCAhPT0gdmFsdWUpIHtcbiAgICAgIHN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhuYW1lLCBvbGQsIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGlnaGxpZ2h0IHRoZSBsYWJlbCBvZiB0aGUgb3B0aW9uXG4gICAqIEBwYXJhbSB2YWx1ZSB0aGUgaGlnaGxpZ2h0ZWQgcG9ydGlvbiBvZiB0aGUgbGFiZWxcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgaGlnaGxpZ2h0KHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9oaWdobGlnaHRTdHJpbmcgPSB2YWx1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RWaWFVc2VySW50ZXJhY3Rpb24oc2VsZWN0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgIC8qKiBFbWl0cyB3aGVuIGFuIG9wdGlvbiB3YXMgc2VsZWN0ZWQgYnkgdXNlci4gKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ29wdGlvbnNlbGVjdGVkJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5pZCB8fD0gYCR7dGhpcy5vcHRpb25JZH0tJHtuZXh0SWQrK31gO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZCB7XG4gICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG4gICAgaWYgKG5hbWUgPT09ICdkaXNhYmxlZCcgfHwgbmFtZSA9PT0gJ2Rpc2FibGVkRnJvbUdyb3VwJykge1xuICAgICAgdGhpcy50b2dnbGVTdGF0ZSgnZGlzYWJsZWQnLCB0aGlzLmRpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWRGcm9tR3JvdXApO1xuICAgICAgc2V0T3JSZW1vdmVBdHRyaWJ1dGUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgICd0YWJpbmRleCcsXG4gICAgICAgIGlzQW5kcm9pZCAmJiAhdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5kaXNhYmxlZEZyb21Hcm91cCA/IDAgOiBudWxsLFxuICAgICAgKTtcbiAgICAgIHRoaXMudXBkYXRlQXJpYURpc2FibGVkKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgLy8gSW5pdCBmaXJzdCBzZWxlY3Qgc3RhdGUgYmVjYXVzZSBmYWxzZSB3b3VsZCBub3QgY2FsbCBzZXR0ZXIgb2Ygc2VsZWN0ZWQgcHJvcGVydHkuXG4gICAgdGhpcy5fdXBkYXRlQXJpYVNlbGVjdGVkKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2VsZWN0QnlDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZURpc2FibGVIaWdobGlnaHQoZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVMYWJlbEhpZ2hsaWdodCA9IGRpc2FibGVkO1xuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ2Rpc2FibGUtaGlnaGxpZ2h0JywgZGlzYWJsZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIG9wdGlvbiBpcyBjdXJyZW50bHkgYWN0aXZlLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzZXRBY3RpdmUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdhY3RpdmUnLCB2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlQXJpYURpc2FibGVkKCk6IHZvaWQge1xuICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFEaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZEZyb21Hcm91cCA/ICd0cnVlJyA6IG51bGw7XG5cbiAgICAvLyBMaXN0ZW5lZCBieSBhdXRvY29tcGxldGVcbiAgICAvKiogQGludGVybmFsICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnybVkaXNhYmxlZGNoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVBcmlhU2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnRlcm5hbHMuYXJpYVNlbGVjdGVkID0gYCR7dGhpcy5zZWxlY3RlZH1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUhpZ2hsaWdodFN0YXRlKCk6IHZvaWQge1xuICAgIGNvbnN0IHNsb3ROb2RlcyA9IEFycmF5LmZyb20odGhpcy5jaGlsZE5vZGVzID8/IFtdKS5maWx0ZXIoXG4gICAgICAobikgPT4gbi5ub2RlVHlwZSAhPT0gTm9kZS5DT01NRU5UX05PREUgJiYgKCEobiBpbnN0YW5jZW9mIEVsZW1lbnQpIHx8IG4uc2xvdCAhPT0gJ2ljb24nKSxcbiAgICApO1xuICAgIGNvbnN0IGxhYmVsTm9kZXMgPSBzbG90Tm9kZXMuZmlsdGVyKChlbCkgPT4gZWwubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSBhcyBUZXh0W107XG5cbiAgICAvLyBEaXNhYmxlIHRoZSBoaWdobGlnaHQgaWYgdGhlIHNsb3QgY29udGFpbiBtb3JlIHRoYW4ganVzdCB0ZXh0IG5vZGVzLlxuICAgIC8vIFdlIG5lZWQgdG8gaWdub3JlIHRlbXBsYXRlIGVsZW1lbnRzLCBhcyBTU1IgYWRkcyBhIGRlY2xhcmF0aXZlIHNoYWRvdyBET01cbiAgICAvLyBpbiB0aGUgZm9ybSBvZiBhIHRlbXBsYXRlIGVsZW1lbnQuXG4gICAgaWYgKFxuICAgICAgbGFiZWxOb2Rlcy5sZW5ndGggPT09IDAgfHxcbiAgICAgIHNsb3ROb2Rlcy5maWx0ZXIoKG4pID0+ICEobiBpbnN0YW5jZW9mIEVsZW1lbnQpIHx8IG4ubG9jYWxOYW1lICE9PSAndGVtcGxhdGUnKS5sZW5ndGggIT09XG4gICAgICAgIGxhYmVsTm9kZXMubGVuZ3RoXG4gICAgKSB7XG4gICAgICB0aGlzLnVwZGF0ZURpc2FibGVIaWdobGlnaHQodHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubGFiZWwgPSBsYWJlbE5vZGVzXG4gICAgICAubWFwKChsKSA9PiBsLndob2xlVGV4dClcbiAgICAgIC5maWx0ZXIoKGwpID0+IGwudHJpbSgpKVxuICAgICAgLmpvaW4oJycpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEhpZ2hsaWdodGVkTGFiZWwoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGlmICghdGhpcy5faGlnaGxpZ2h0U3RyaW5nIHx8ICF0aGlzLl9oaWdobGlnaHRTdHJpbmcudHJpbSgpKSB7XG4gICAgICByZXR1cm4gaHRtbGAke3RoaXMubGFiZWx9YDtcbiAgICB9XG5cbiAgICBjb25zdCBtYXRjaEluZGV4ID0gdGhpcy5sYWJlbCEudG9Mb3dlckNhc2UoKS5pbmRleE9mKHRoaXMuX2hpZ2hsaWdodFN0cmluZy50b0xvd2VyQ2FzZSgpKTtcblxuICAgIGlmIChtYXRjaEluZGV4ID09PSAtMSkge1xuICAgICAgcmV0dXJuIGh0bWxgJHt0aGlzLmxhYmVsfWA7XG4gICAgfVxuXG4gICAgY29uc3QgcHJlZml4ID0gdGhpcy5sYWJlbCEuc3Vic3RyaW5nKDAsIG1hdGNoSW5kZXgpO1xuICAgIGNvbnN0IGhpZ2hsaWdodGVkID0gdGhpcy5sYWJlbCEuc3Vic3RyaW5nKFxuICAgICAgbWF0Y2hJbmRleCxcbiAgICAgIG1hdGNoSW5kZXggKyB0aGlzLl9oaWdobGlnaHRTdHJpbmcubGVuZ3RoLFxuICAgICk7XG4gICAgY29uc3QgcG9zdGZpeCA9IHRoaXMubGFiZWwhLnN1YnN0cmluZyhtYXRjaEluZGV4ICsgdGhpcy5faGlnaGxpZ2h0U3RyaW5nLmxlbmd0aCk7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLW9wdGlvbl9fbGFiZWwtLWhpZ2hsaWdodFwiPiR7cHJlZml4fTwvc3Bhbj48c3Bhbj4ke2hpZ2hsaWdodGVkfTwvc3BhblxuICAgICAgPjxzcGFuIGNsYXNzPVwic2JiLW9wdGlvbl9fbGFiZWwtLWhpZ2hsaWdodFwiPiR7cG9zdGZpeH08L3NwYW4+XG4gICAgYDtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJJY29uKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1vcHRpb25fX2ljb25cIj4gJHt0aGlzLnJlbmRlckljb25TbG90KCl9IDwvc3Bhbj5gO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbmRlckxhYmVsKCk6IFRlbXBsYXRlUmVzdWx0IHwgdHlwZW9mIG5vdGhpbmcge1xuICAgIHJldHVybiB0aGlzLmxhYmVsICYmICF0aGlzLmRpc2FibGVMYWJlbEhpZ2hsaWdodCA/IHRoaXMuZ2V0SGlnaGxpZ2h0ZWRMYWJlbCgpIDogbm90aGluZztcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJUaWNrKCk6IFRlbXBsYXRlUmVzdWx0IHwgdHlwZW9mIG5vdGhpbmcge1xuICAgIHJldHVybiBub3RoaW5nO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLW9wdGlvblwiPlxuICAgICAgICAke3RoaXMucmVuZGVySWNvbigpfVxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1vcHRpb25fX2xhYmVsXCI+XG4gICAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLmhhbmRsZUhpZ2hsaWdodFN0YXRlfT48L3Nsb3Q+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPSR7XG4gICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgKiBTY3JlZW4gcmVhZGVycyB3aXRoIENocm9taXVtIHJlYWQgdGhlIG9wdGlvbiB0d2ljZS5cbiAgICAgICAgICAgICAgICogV2UgdGhlcmVmb3JlIGhhdmUgdG8gaGlkZSB0aGUgb3B0aW9uIGZvciB0aGUgc2NyZWVuIHJlYWRlcnMuXG4gICAgICAgICAgICAgICAqIFRPRE86IFJlY2hlY2sgcGVyaW9kaWNhbGx5IGlmIHRoaXMgaXMgc3RpbGwgbmVjZXNzYXJ5LlxuICAgICAgICAgICAgICAgKiBodHRwczovL2lzc3Vlcy5jaHJvbWl1bS5vcmcvaXNzdWVzLzQ2MDE2NTc0MVxuICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgaXNCbGluayA/ICd0cnVlJyA6IG5vdGhpbmdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICAke3RoaXMucmVuZGVyTGFiZWwoKX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgJHt0aGlzLl9pbmVydEFyaWFHcm91cHMgJiYgdGhpcy5ncm91cExhYmVsXG4gICAgICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+ICgke3RoaXMuZ3JvdXBMYWJlbH0pPC9zcGFuPmBcbiAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICAke3RoaXMucmVuZGVyVGljaygpfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBHbG9iYWxFdmVudEhhbmRsZXJzRXZlbnRNYXAge1xuICAgIG9wdGlvbnNlbGVjdGVkOiBFdmVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBeUJBLElBQUksU0FBUzs7Ozs7O0FBT2IsSUFBTSxrQkFBa0I7O0FBR3hCLElBQU0sdUJBQTZDO0NBQ2pELFdBQVc7Q0FDWCxTQUFTO0NBQ1QsZUFBZTtDQUNoQjtJQUVxQiw4QkFBb0I7bUJBQXFCLGlCQUM3RCxpQkFBaUIsV0FBVyxDQUM3Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztjQUZxQiw2QkFBeUMsWUFFOUQ7Ozs0QkFjRSxVQUFVLENBQUE7K0JBa0JWLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQyxDQUFBO29D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
@@ -1 +1 @@
1
- {"version":3,"file":"option.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/option/option/option.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAQ,OAAO,EAAE,KAAK,cAAc,EAAa,MAAM,KAAK,CAAC;AAGzF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAKpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,QAAQ,GAAG,IAAI,CAAC;AAEhE;;;;;;;;GAQG;AACH,qBAAa,gBAAgB,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,oBAAoB,CAAC,CAAC,CAAC;IACvE,gBAAgC,WAAW,EAAE,MAAM,CAAgB;IACnE,OAAuB,mBAAmB,EAAE,cAAc,EAAE,CAA8B;IAC1F,gBAAgC,IAAI,YAAY;IAChD,OAAuB,MAAM,EAAE,cAAc,CAAsB;IACnE,gBAAgC,MAAM;;;MAG3B;IAEX,SAAS,CAAC,QAAQ,SAAgB;IAElC,OAAO,KAAK,QAAQ,QAQnB;IACD,OAAO,KAAK,QAAQ,GAEnB;IACD,OAAO,CAAC,gBAAgB,CAAC,CAAmB;;IA8B5C,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,qBAAqB;IAOb,iBAAiB,IAAI,IAAI;IAazC,OAAO,CAAC,KAAK;IAKb,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;cAc7B,wBAAwB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAMpE,OAAO,CAAC,oBAAoB;cAQT,oBAAoB,IAAI,IAAI;cAS5B,UAAU,IAAI,cAAc;cAoB5B,WAAW,IAAI,cAAc,GAAG,OAAO,OAAO;cAO9C,UAAU,IAAI,cAAc,GAAG,OAAO,OAAO;CAKjE;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,YAAY,EAAE,gBAAgB,CAAC;KAChC;IAED,UAAU,2BAA2B;QACnC,qBAAqB,EAAE,KAAK,CAAC;KAC9B;CACF"}
1
+ {"version":3,"file":"option.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/option/option/option.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAQ,OAAO,EAAE,KAAK,cAAc,EAAa,MAAM,KAAK,CAAC;AAGzF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAKpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,QAAQ,GAAG,IAAI,CAAC;AAEhE;;;;;;;;GAQG;AACH,qBAAa,gBAAgB,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,oBAAoB,CAAC,CAAC,CAAC;IACvE,gBAAgC,WAAW,EAAE,MAAM,CAAgB;IACnE,OAAuB,mBAAmB,EAAE,cAAc,EAAE,CAA8B;IAC1F,gBAAgC,IAAI,YAAY;IAChD,OAAuB,MAAM,EAAE,cAAc,CAAsB;IACnE,gBAAgC,MAAM;;;MAG3B;IAEX,SAAS,CAAC,QAAQ,SAAgB;IAElC,OAAO,KAAK,QAAQ,QAQnB;IACD,OAAO,KAAK,QAAQ,GAEnB;IACD,OAAO,CAAC,gBAAgB,CAAC,CAAmB;;IAwB5C,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,qBAAqB;IAOb,iBAAiB,IAAI,IAAI;IAazC,OAAO,CAAC,KAAK;IAKb,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;cAc7B,wBAAwB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAMpE,OAAO,CAAC,oBAAoB;cAQT,oBAAoB,IAAI,IAAI;cAS5B,UAAU,IAAI,cAAc;cAoB5B,WAAW,IAAI,cAAc,GAAG,OAAO,OAAO;cAO9C,UAAU,IAAI,cAAc,GAAG,OAAO,OAAO;CAKjE;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,YAAY,EAAE,gBAAgB,CAAC;KAChC;IAED,UAAU,2BAA2B;QACnC,qBAAqB,EAAE,KAAK,CAAC;KAC9B;CACF"}
@@ -1,2 +1,2 @@
1
- import { t as SbbOptionElement } from "../../option.component-BEbIEh5o.js";
1
+ import { t as SbbOptionElement } from "../../option.component-CV6cZnJe.js";
2
2
  export { SbbOptionElement };
@@ -9,6 +9,8 @@ declare const SbbOptionHintElement_base: import('../../core.ts').AbstractConstru
9
9
  export declare class SbbOptionHintElement extends SbbOptionHintElement_base {
10
10
  static readonly elementName: string;
11
11
  static styles: CSSResultGroup;
12
+ private _previousSize;
13
+ constructor();
12
14
  protected render(): TemplateResult;
13
15
  }
14
16
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"option-hint.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/option/option-hint/option-hint.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAQ,KAAK,cAAc,EAAa,MAAM,KAAK,CAAC;AAEhF,OAAO,EAAE,UAAU,EAAoB,MAAM,eAAe,CAAC;;AAI7D;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,yBAA4B;IACpE,gBAAgC,WAAW,EAAE,MAAM,CAAqB;IACxE,OAAuB,MAAM,EAAE,cAAc,CAAsB;cAEhD,MAAM,IAAI,cAAc;CAQ5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,iBAAiB,EAAE,oBAAoB,CAAC;KACzC;CACF"}
1
+ {"version":3,"file":"option-hint.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/option/option-hint/option-hint.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAQ,KAAK,cAAc,EAAa,MAAM,KAAK,CAAC;AAGhF,OAAO,EAAE,UAAU,EAAkD,MAAM,eAAe,CAAC;;AAK3F;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,yBAA4B;IACpE,gBAAgC,WAAW,EAAE,MAAM,CAAqB;IACxE,OAAuB,MAAM,EAAE,cAAc,CAAsB;IAEnE,OAAO,CAAC,aAAa,CAAqB;;cAwBvB,MAAM,IAAI,cAAc;CAQ5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,iBAAiB,EAAE,oBAAoB,CAAC;KACzC;CACF"}
@@ -1,2 +1,2 @@
1
- import { t as SbbOptionHintElement } from "../../option-hint.component-CcSUSwjN.js";
1
+ import { t as SbbOptionHintElement } from "../../option-hint.component-B4PxB3BW.js";
2
2
  export { SbbOptionHintElement };
@@ -0,0 +1,39 @@
1
+ import { html, unsafeCSS } from "lit";
2
+ import { SbbElement, SbbNegativeMixin, SbbPropertyWatcherController } from "./core.js";
3
+ //#region src/elements/option/option-hint/option-hint.scss?inline
4
+ var option_hint_default = ":host {\n display: flex;\n column-gap: var(--sbb-option-hint-column-gap);\n padding-inline: var(--sbb-option-hint-padding-inline);\n padding-block-end: var(--sbb-option-hint-padding-block-end);\n font-size: var(--sbb-option-hint-font-size);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n}\n\n:host([negative]) {\n --sbb-option-hint-color: var(--sbb-color-5);\n}\n\n:host(:is(:state(size-s),[state--size-s])) {\n --sbb-option-hint-padding-block-end: var(--sbb-spacing-fixed-1x);\n}\n\n:host(:is(:state(size-m),[state--size-m])) {\n --sbb-option-hint-padding-block-end: var(--sbb-spacing-fixed-2x);\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.sbb-option-hint {\n color: var(--sbb-option-hint-color);\n -webkit-text-fill-color: var(--sbb-option-hint-color);\n flex-grow: 1;\n}";
5
+ //#endregion
6
+ //#region src/elements/option/option-hint/option-hint.component.ts
7
+ /**
8
+ * Display a textual hint inside a `sbb-autocomplete` or a `sbb-select`.
9
+ *
10
+ * @slot - Use the unnamed slot to display the hint message.
11
+ */
12
+ var SbbOptionHintElement = class extends SbbNegativeMixin(SbbElement) {
13
+ static {
14
+ this.elementName = "sbb-option-hint";
15
+ }
16
+ static {
17
+ this.styles = [unsafeCSS(option_hint_default)];
18
+ }
19
+ constructor() {
20
+ super();
21
+ this.addController(new SbbPropertyWatcherController(this, () => this.closest("sbb-autocomplete, sbb-autocomplete-grid, sbb-select"), { size: (e) => {
22
+ if (this._previousSize) this.internals.states.delete(`size-${this._previousSize}`);
23
+ this._previousSize = e.size;
24
+ if (this._previousSize) this.internals.states.add(`size-${this._previousSize}`);
25
+ } }));
26
+ }
27
+ render() {
28
+ return html`
29
+ <div class="sbb-optgroup__icon-space"></div>
30
+ <span class="sbb-option-hint">
31
+ <slot></slot>
32
+ </span>
33
+ `;
34
+ }
35
+ };
36
+ //#endregion
37
+ export { SbbOptionHintElement as t };
38
+
39
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLWhpbnQuY29tcG9uZW50LUI0UHhCM0JXLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9vcHRpb24vb3B0aW9uLWhpbnQvb3B0aW9uLWhpbnQuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvb3B0aW9uL29wdGlvbi1oaW50L29wdGlvbi1oaW50LmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGNvbHVtbi1nYXA6IHZhcigtLXNiYi1vcHRpb24taGludC1jb2x1bW4tZ2FwKTtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1vcHRpb24taGludC1wYWRkaW5nLWlubGluZSk7XG4gIHBhZGRpbmctYmxvY2stZW5kOiB2YXIoLS1zYmItb3B0aW9uLWhpbnQtcGFkZGluZy1ibG9jay1lbmQpO1xuICBmb250LXNpemU6IHZhcigtLXNiYi1vcHRpb24taGludC1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG59XG5cbjpob3N0KFtuZWdhdGl2ZV0pIHtcbiAgLS1zYmItb3B0aW9uLWhpbnQtY29sb3I6IHZhcigtLXNiYi1jb2xvci01KTtcbn1cblxuOmhvc3QoOnN0YXRlKHNpemUtcykpIHtcbiAgLS1zYmItb3B0aW9uLWhpbnQtcGFkZGluZy1ibG9jay1lbmQ6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTF4KTtcbn1cblxuOmhvc3QoOnN0YXRlKHNpemUtbSkpIHtcbiAgLS1zYmItb3B0aW9uLWhpbnQtcGFkZGluZy1ibG9jay1lbmQ6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KTtcbn1cblxuLnNiYi1vcHRncm91cF9faWNvbi1zcGFjZSB7XG4gIC8vIENhbiBiZSBvdmVycmlkZGVuIGJ5IHRoZSAncHJlc2VydmUtaWNvbi1zcGFjZScgb24gdGhlIGF1dG9jb21wbGV0ZVxuICBkaXNwbGF5OiB2YXIoLS1zYmItb3B0aW9uLWljb24tY29udGFpbmVyLWRpc3BsYXksIG5vbmUpO1xuICBtaW4td2lkdGg6IHZhcigtLXNiYi1zaXplLWljb24tdWktc21hbGwpO1xufVxuXG4uc2JiLW9wdGlvbi1oaW50IHtcbiAgY29sb3I6IHZhcigtLXNiYi1vcHRpb24taGludC1jb2xvcik7XG4gIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB2YXIoLS1zYmItb3B0aW9uLWhpbnQtY29sb3IpO1xuICBmbGV4LWdyb3c6IDE7XG59XG4iLCJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBodG1sLCB0eXBlIFRlbXBsYXRlUmVzdWx0LCB1bnNhZmVDU1MgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYkF1dG9jb21wbGV0ZUJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vYXV0b2NvbXBsZXRlLnB1cmUudHMnO1xuaW1wb3J0IHsgU2JiRWxlbWVudCwgU2JiTmVnYXRpdmVNaXhpbiwgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJTZWxlY3RFbGVtZW50IH0gZnJvbSAnLi4vLi4vc2VsZWN0LnB1cmUudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9vcHRpb24taGludC5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogRGlzcGxheSBhIHRleHR1YWwgaGludCBpbnNpZGUgYSBgc2JiLWF1dG9jb21wbGV0ZWAgb3IgYSBgc2JiLXNlbGVjdGAuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBkaXNwbGF5IHRoZSBoaW50IG1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJPcHRpb25IaW50RWxlbWVudCBleHRlbmRzIFNiYk5lZ2F0aXZlTWl4aW4oU2JiRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLW9wdGlvbi1oaW50JztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xuXG4gIHByaXZhdGUgX3ByZXZpb3VzU2l6ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgbmV3IFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXI8U2JiQXV0b2NvbXBsZXRlQmFzZUVsZW1lbnQgfCBTYmJTZWxlY3RFbGVtZW50PihcbiAgICAgICAgdGhpcyxcbiAgICAgICAgKCkgPT4gdGhpcy5jbG9zZXN0KCdzYmItYXV0b2NvbXBsZXRlLCBzYmItYXV0b2NvbXBsZXRlLWdyaWQsIHNiYi1zZWxlY3QnKSxcbiAgICAgICAge1xuICAgICAgICAgIHNpemU6IChlKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5fcHJldmlvdXNTaXplKSB7XG4gICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoYHNpemUtJHt0aGlzLl9wcmV2aW91c1NpemV9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9wcmV2aW91c1NpemUgPSBlLnNpemU7XG4gICAgICAgICAgICBpZiAodGhpcy5fcHJldmlvdXNTaXplKSB7XG4gICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoYHNpemUtJHt0aGlzLl9wcmV2aW91c1NpemV9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1vcHRncm91cF9faWNvbi1zcGFjZVwiPjwvZGl2PlxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItb3B0aW9uLWhpbnRcIj5cbiAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgPC9zcGFuPlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1vcHRpb24taGludCc6IFNiYk9wdGlvbkhpbnRFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FDYUEsSUFBYSx1QkFBYixjQUEwQyxpQkFBaUIsV0FBVyxDQUFBOztBQUNwQyxPQUFBLGNBQXNCOzs7QUFDL0IsT0FBQSxTQUF5QixDQUFDLFVBQVUsb0JBQU0sQ0FBQzs7Q0FJbEUsY0FBQTtBQUNFLFNBQU87QUFFUCxPQUFLLGNBQ0gsSUFBSSw2QkFDRixZQUNNLEtBQUssUUFBUSxzREFBc0QsRUFDekUsRUFDRSxPQUFPLE1BQUs7QUFDVixPQUFJLEtBQUssY0FDUCxNQUFLLFVBQVUsT0FBTyxPQUFPLFFBQVEsS0FBSyxnQkFBZ0I7QUFFNUQsUUFBSyxnQkFBZ0IsRUFBRTtBQUN2QixPQUFJLEtBQUssY0FDUCxNQUFLLFVBQVUsT0FBTyxJQUFJLFFBQVEsS0FBSyxnQkFBZ0I7S0FHNUQsQ0FDRixDQUNGOztDQUdnQixTQUFNO0FBQ3ZCLFNBQU8sSUFBSSJ9
@@ -0,0 +1,131 @@
1
+ import { SbbOptionBaseElement } from "./option/option/option-base-element.js";
2
+ import { html, nothing, unsafeCSS } from "lit";
3
+ import { SbbPropertyWatcherController } from "./core.js";
4
+ import { SbbVisualCheckboxElement } from "./visual-checkbox.pure.js";
5
+ //#region src/elements/option/option/option.scss?inline
6
+ var option_default = ":host {\n --sbb-focus-outline-offset: var(--sbb-option-focus-outline-offset);\n display: block;\n background-color: var(--sbb-option-background-color);\n font-size: var(--sbb-option-font-size);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n}\n\n:host(:is(:state(negative),[state--negative])) {\n --sbb-option-color: var(--sbb-color-3-negative);\n --sbb-option-icon-color: var(--sbb-color-5);\n --sbb-option-background-color-hover: var(--sbb-color-midnight);\n --sbb-option-background-color-active: var(--sbb-background-color-4-negative);\n --sbb-option-disabled-border-color: var(--sbb-border-color-5);\n --sbb-option-disabled-background-color: var(--sbb-background-color-3-negative);\n --sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);\n}\n\n:host(:is(:state(size-s),[state--size-s])) {\n --sbb-option-min-height: var(--sbb-size-element-xxs);\n --sbb-option-focus-outline-offset: calc(-1 * var(--sbb-spacing-fixed-1x));\n --sbb-option-focus-outline-inset: 0 var(--sbb-spacing-fixed-1x);\n}\n\n:host(:is(:state(size-m),[state--size-m])) {\n --sbb-option-min-height: var(--sbb-size-element-s);\n --sbb-option-focus-outline-offset: inherit;\n --sbb-option-focus-outline-inset: var(--sbb-spacing-fixed-1x);\n}\n\n@media (any-hover: hover) {\n :host(:hover:not(:is(:state(disabled),[state--disabled]))) {\n --sbb-option-background-color: var(--sbb-option-background-color-hover);\n }\n}\n\n:host(:active:not(:is(:state(disabled),[state--disabled]))) {\n --sbb-option-background-color: var(--sbb-option-background-color-active);\n}\n\n:host(:not(:is(:state(disable-highlight),[state--disable-highlight]))) .sbb-option__label slot {\n display: none;\n}\n\n:host(:is(:state(disabled),[state--disabled])) {\n --sbb-option-cursor: var(--sbb-cursor-default);\n}\n@media (forced-colors: active) {\n :host(:is(:state(disabled),[state--disabled])) {\n --sbb-option-color: GrayText;\n }\n}\n\n:host(:is(:state(variant-select),[state--variant-select])) {\n --sbb-option-column-gap: var(--sbb-spacing-fixed-2x);\n --sbb-option-justify-content: space-between;\n}\n\n:host(:is(:state(variant-select),[state--variant-select]):is(:state(multiple),[state--multiple])) {\n --sbb-option-justify-content: start;\n}\n\n:host(:is(:state(active),[state--active])) {\n --sbb-option-focus-outline-color: var(--sbb-focus-outline-color);\n}\n\n:host(:not(:is(:is(:state(disabled),[state--disabled])))) .sbb-option__label--highlight {\n font-weight: bold;\n}\n@media (forced-colors: active) {\n :host(:not(:is(:is(:state(disabled),[state--disabled])))) .sbb-option__label--highlight {\n color: Highlight;\n }\n}\n\n.sbb-option {\n position: relative;\n display: flex;\n min-height: var(--sbb-option-min-height);\n align-items: center;\n column-gap: var(--sbb-option-column-gap);\n padding-inline: var(--sbb-option-padding-inline);\n justify-content: var(--sbb-option-justify-content);\n color: var(--sbb-option-color);\n cursor: var(--sbb-option-cursor);\n -webkit-tap-highlight-color: transparent;\n -webkit-text-fill-color: var(--sbb-option-color);\n}\n.sbb-option::after {\n content: \"\";\n display: block;\n position: absolute;\n inset: var(--sbb-option-focus-outline-inset);\n pointer-events: none;\n border: var(--sbb-focus-outline-width) solid var(--sbb-option-focus-outline-color);\n border-radius: var(--sbb-option-border-radius);\n}\n:host(:is(:state(disabled),[state--disabled]):not(:is(:state(multiple),[state--multiple]))) .sbb-option {\n position: relative;\n z-index: 0;\n}\n:host(:is(:state(disabled),[state--disabled]):not(:is(:state(multiple),[state--multiple]))) .sbb-option::before {\n content: \"\";\n display: block;\n position: absolute;\n inset: 0.375rem;\n border: var(--sbb-border-width-1x) dashed var(--sbb-option-disabled-border-color);\n border-radius: var(--sbb-border-radius-2x);\n background-color: var(--sbb-option-disabled-background-color);\n z-index: -1;\n}\n@media (forced-colors: active) {\n :host(:is(:state(disabled),[state--disabled]):not(:is(:state(multiple),[state--multiple]))) .sbb-option::before {\n border-color: GrayText;\n }\n}\n\n.sbb-option__icon {\n display: flex;\n min-width: var(--sbb-size-icon-ui-small);\n min-height: var(--sbb-size-icon-ui-small);\n color: var(--sbb-option-icon-color);\n}\n:host(:not(:is(:state(slotted-icon),[state--slotted-icon]), :is(:state(has-icon-name),[state--has-icon-name]))) .sbb-option__icon {\n display: var(--sbb-option-icon-container-display, none);\n}\n\n.sbb-option__label {\n text-overflow: var(--sbb-option-text-overflow);\n overflow: var(--sbb-option-overflow);\n white-space: var(--sbb-option-white-space, initial);\n}";
7
+ //#endregion
8
+ //#region src/elements/option/option/option.component.ts
9
+ /**
10
+ * It displays on option item which can be used in `sbb-select` or `sbb-autocomplete`.
11
+ *
12
+ * @slot - Use the unnamed slot to add content to the option label.
13
+ * @slot icon - Use this slot to provide an icon. If `icon-name` is set, a sbb-icon will be used.
14
+ * @cssprop [--sbb-option-icon-container-display=none] - Can be used to reserve space even
15
+ * when preserve-icon-space on autocomplete is not set or iconName is not set.
16
+ * @overrideType value - (T = string) | null
17
+ */
18
+ var SbbOptionElement = class extends SbbOptionBaseElement {
19
+ static {
20
+ this.elementName = "sbb-option";
21
+ }
22
+ static {
23
+ this.elementDependencies = [SbbVisualCheckboxElement];
24
+ }
25
+ static {
26
+ this.role = "option";
27
+ }
28
+ static {
29
+ this.styles = [unsafeCSS(option_default)];
30
+ }
31
+ static {
32
+ this.events = {
33
+ optionselectionchange: "optionselectionchange",
34
+ optionselected: "optionselected"
35
+ };
36
+ }
37
+ set _variant(variant) {
38
+ if (this._variantInternal) this.internals.states.delete(`variant-${this._variantInternal}`);
39
+ this._variantInternal = variant;
40
+ if (this._variantInternal) this.internals.states.add(`variant-${this._variantInternal}`);
41
+ }
42
+ get _variant() {
43
+ return this._variantInternal ?? null;
44
+ }
45
+ constructor() {
46
+ super();
47
+ this.optionId = `sbb-option`;
48
+ this.addController(new SbbPropertyWatcherController(this, () => this.closest("sbb-optgroup"), {
49
+ disabled: (p) => this.disabledFromGroup = p.disabled,
50
+ label: (p) => this.groupLabel = p.label
51
+ }));
52
+ this.addController(new SbbPropertyWatcherController(this, () => this.closest("sbb-select"), {
53
+ multiple: (ancestor) => {
54
+ this.toggleState("multiple", ancestor.multiple);
55
+ this.requestUpdate();
56
+ },
57
+ negative: (e) => this._handleNegativeChange(e)
58
+ }));
59
+ }
60
+ _isMultiple() {
61
+ return !this.hydrationRequired && this.matches?.(":is(:state(multiple),[state--multiple])");
62
+ }
63
+ _handleNegativeChange(ancestor) {
64
+ this.toggleState("negative", ancestor.negative);
65
+ this.requestUpdate();
66
+ }
67
+ connectedCallback() {
68
+ super.connectedCallback();
69
+ if (this.hydrationRequired) this.hydrationComplete.then(() => this._init());
70
+ else this._init();
71
+ }
72
+ _init() {
73
+ this._setVariantByContext();
74
+ this.handleHighlightState();
75
+ }
76
+ selectByClick(event) {
77
+ if (this.disabled || this.disabledFromGroup) {
78
+ event.stopPropagation();
79
+ return;
80
+ }
81
+ if (this._isMultiple()) {
82
+ event.stopPropagation();
83
+ this.selectViaUserInteraction(!this.selected);
84
+ } else this.selectViaUserInteraction(true);
85
+ }
86
+ selectViaUserInteraction(selected) {
87
+ super.selectViaUserInteraction(selected);
88
+ /** The optionselectionchange event is dispatched when the option selection status changes. */
89
+ this.dispatchEvent(new Event("optionselectionchange", {
90
+ bubbles: true,
91
+ composed: true
92
+ }));
93
+ }
94
+ _setVariantByContext() {
95
+ if (this.closest?.("sbb-autocomplete")) this._variant = "autocomplete";
96
+ else if (this.closest?.("sbb-select")) this._variant = "select";
97
+ }
98
+ handleHighlightState() {
99
+ if (this._variant !== "autocomplete") {
100
+ this.updateDisableHighlight(true);
101
+ return;
102
+ }
103
+ super.handleHighlightState();
104
+ }
105
+ renderIcon() {
106
+ return html`
107
+ <!-- Icon -->
108
+ ${!this._isMultiple() ? html` <span class="sbb-option__icon"> ${this.renderIconSlot()} </span>` : nothing}
109
+
110
+ <!-- Checkbox -->
111
+ ${this._isMultiple() ? html`
112
+ <sbb-visual-checkbox
113
+ ?checked=${this.selected}
114
+ ?disabled=${this.disabled || this.disabledFromGroup}
115
+ ?negative=${this.matches?.(":is(:state(negative),[state--negative])")}
116
+ ></sbb-visual-checkbox>
117
+ ` : nothing}
118
+ `;
119
+ }
120
+ renderLabel() {
121
+ if (this._variant !== "autocomplete") return nothing;
122
+ return super.renderLabel();
123
+ }
124
+ renderTick() {
125
+ return this._variant === "select" && !this._isMultiple() && this.selected ? html`<sbb-icon name="tick-small"></sbb-icon>` : nothing;
126
+ }
127
+ };
128
+ //#endregion
129
+ export { SbbOptionElement as t };
130
+
131
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmNvbXBvbmVudC1DVjZjWm5KZS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvb3B0aW9uL29wdGlvbi9vcHRpb24uc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvb3B0aW9uL29wdGlvbi9vcHRpb24uY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uLy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1zYmItZm9jdXMtb3V0bGluZS1vZmZzZXQ6IHZhcigtLXNiYi1vcHRpb24tZm9jdXMtb3V0bGluZS1vZmZzZXQpO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItb3B0aW9uLWJhY2tncm91bmQtY29sb3IpO1xuICBmb250LXNpemU6IHZhcigtLXNiYi1vcHRpb24tZm9udC1zaXplKTtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXNiYi10eXBvLWxldHRlci1zcGFjaW5nLXRleHQpO1xufVxuXG46aG9zdCg6c3RhdGUobmVnYXRpdmUpKSB7XG4gIC0tc2JiLW9wdGlvbi1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTMtbmVnYXRpdmUpO1xuICAtLXNiYi1vcHRpb24taWNvbi1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTUpO1xuICAtLXNiYi1vcHRpb24tYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogdmFyKC0tc2JiLWNvbG9yLW1pZG5pZ2h0KTtcbiAgLS1zYmItb3B0aW9uLWJhY2tncm91bmQtY29sb3ItYWN0aXZlOiB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci00LW5lZ2F0aXZlKTtcbiAgLS1zYmItb3B0aW9uLWRpc2FibGVkLWJvcmRlci1jb2xvcjogdmFyKC0tc2JiLWJvcmRlci1jb2xvci01KTtcbiAgLS1zYmItb3B0aW9uLWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTMtbmVnYXRpdmUpO1xuICAtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yOiB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvci1kYXJrKTtcbn1cblxuOmhvc3QoOnN0YXRlKHNpemUtcykpIHtcbiAgLS1zYmItb3B0aW9uLW1pbi1oZWlnaHQ6IHZhcigtLXNiYi1zaXplLWVsZW1lbnQteHhzKTtcbiAgLS1zYmItb3B0aW9uLWZvY3VzLW91dGxpbmUtb2Zmc2V0OiBjYWxjKC0xICogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpKTtcbiAgLS1zYmItb3B0aW9uLWZvY3VzLW91dGxpbmUtaW5zZXQ6IDAgdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpO1xufVxuXG46aG9zdCg6c3RhdGUoc2l6ZS1tKSkge1xuICAtLXNiYi1vcHRpb24tbWluLWhlaWdodDogdmFyKC0tc2JiLXNpemUtZWxlbWVudC1zKTtcbiAgLS1zYmItb3B0aW9uLWZvY3VzLW91dGxpbmUtb2Zmc2V0OiBpbmhlcml0O1xuICAtLXNiYi1vcHRpb24tZm9jdXMtb3V0bGluZS1pbnNldDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpO1xufVxuXG46aG9zdCg6aG92ZXI6bm90KDpzdGF0ZShkaXNhYmxlZCkpKSB7XG4gIEBpbmNsdWRlIHNiYi5ob3Zlci1tcSgkaG92ZXI6IHRydWUpIHtcbiAgICAtLXNiYi1vcHRpb24tYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLW9wdGlvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyKTtcbiAgfVxufVxuXG46aG9zdCg6YWN0aXZlOm5vdCg6c3RhdGUoZGlzYWJsZWQpKSkge1xuICAtLXNiYi1vcHRpb24tYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLW9wdGlvbi1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZSk7XG59XG5cbi8vIElmIGhpZ2hsaWdodGluZyBpcyBlbmFibGVkLCBoaWRlIHRoZSBvcmlnaW5hbCBzbG90IGNvbnRlbnRcbjpob3N0KDpub3QoOnN0YXRlKGRpc2FibGUtaGlnaGxpZ2h0KSkpIHtcbiAgLnNiYi1vcHRpb25fX2xhYmVsIHNsb3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuOmhvc3QoOnN0YXRlKGRpc2FibGVkKSkge1xuICAtLXNiYi1vcHRpb24tY3Vyc29yOiB2YXIoLS1zYmItY3Vyc29yLWRlZmF1bHQpO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAtLXNiYi1vcHRpb24tY29sb3I6IEdyYXlUZXh0O1xuICB9XG59XG5cbjpob3N0KDpzdGF0ZSh2YXJpYW50LXNlbGVjdCkpIHtcbiAgLS1zYmItb3B0aW9uLWNvbHVtbi1nYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KTtcbiAgLS1zYmItb3B0aW9uLWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuOmhvc3QoOnN0YXRlKHZhcmlhbnQtc2VsZWN0KTpzdGF0ZShtdWx0aXBsZSkpIHtcbiAgLS1zYmItb3B0aW9uLWp1c3RpZnktY29udGVudDogc3RhcnQ7XG59XG5cbjpob3N0KDpzdGF0ZShhY3RpdmUpKSB7XG4gIC0tc2JiLW9wdGlvbi1mb2N1cy1vdXRsaW5lLWNvbG9yOiB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvcik7XG59XG5cbi5zYmItb3B0aW9uX19sYWJlbC0taGlnaGxpZ2h0IHtcbiAgOmhvc3QoOm5vdCg6aXMoOnN0YXRlKGRpc2FibGVkKSkpKSAmIHtcbiAgICBAaW5jbHVkZSBzYmIudGV4dC0tYm9sZDtcbiAgICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgICBjb2xvcjogSGlnaGxpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG4uc2JiLW9wdGlvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLWhlaWdodDogdmFyKC0tc2JiLW9wdGlvbi1taW4taGVpZ2h0KTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY29sdW1uLWdhcDogdmFyKC0tc2JiLW9wdGlvbi1jb2x1bW4tZ2FwKTtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1vcHRpb24tcGFkZGluZy1pbmxpbmUpO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHZhcigtLXNiYi1vcHRpb24tanVzdGlmeS1jb250ZW50KTtcbiAgY29sb3I6IHZhcigtLXNiYi1vcHRpb24tY29sb3IpO1xuICBjdXJzb3I6IHZhcigtLXNiYi1vcHRpb24tY3Vyc29yKTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHZhcigtLXNiYi1vcHRpb24tY29sb3IpO1xuXG4gIC8vIFdlIHVzZSB0aGUgcHNldWRvIGVsZW1lbnQgdG8gZGlzcGxheSB0aGUgZm9jdXMgb3V0bGluZSAoaW5saW5lIGluIHRoaXMgY2FzZSlcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogdmFyKC0tc2JiLW9wdGlvbi1mb2N1cy1vdXRsaW5lLWluc2V0KTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBib3JkZXI6IHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLXdpZHRoKSBzb2xpZCB2YXIoLS1zYmItb3B0aW9uLWZvY3VzLW91dGxpbmUtY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1vcHRpb24tYm9yZGVyLXJhZGl1cyk7XG4gIH1cblxuICAvLyBBZGQgaW5uZXIgYm9yZGVyIGFuZCBiYWNrZ3JvdW5kIGZvciBkaXNhYmxlZCBvcHRpb24gd2hlbiBpdCdzIG5vdCBtdWx0aXBsZVxuICA6aG9zdCg6c3RhdGUoZGlzYWJsZWQpOm5vdCg6c3RhdGUobXVsdGlwbGUpKSkgJiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDA7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGluc2V0OiAje3NiYi5weC10by1yZW0tYnVpbGQoNil9O1xuICAgICAgYm9yZGVyOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KSBkYXNoZWQgdmFyKC0tc2JiLW9wdGlvbi1kaXNhYmxlZC1ib3JkZXItY29sb3IpO1xuICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLWJvcmRlci1yYWRpdXMtMngpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLW9wdGlvbi1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICAgIHotaW5kZXg6IC0xO1xuXG4gICAgICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogR3JheVRleHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5zYmItb3B0aW9uX19pY29uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLXdpZHRoOiB2YXIoLS1zYmItc2l6ZS1pY29uLXVpLXNtYWxsKTtcbiAgbWluLWhlaWdodDogdmFyKC0tc2JiLXNpemUtaWNvbi11aS1zbWFsbCk7XG4gIGNvbG9yOiB2YXIoLS1zYmItb3B0aW9uLWljb24tY29sb3IpO1xuXG4gIDpob3N0KDpub3QoOnN0YXRlKHNsb3R0ZWQtaWNvbiksIDpzdGF0ZShoYXMtaWNvbi1uYW1lKSkpICYge1xuICAgIC8vIENhbiBiZSBvdmVycmlkZGVuIGJ5IHRoZSAncHJlc2VydmUtaWNvbi1zcGFjZScgb24gdGhlIGF1dG9jb21wbGV0ZVxuICAgIGRpc3BsYXk6IHZhcigtLXNiYi1vcHRpb24taWNvbi1jb250YWluZXItZGlzcGxheSwgbm9uZSk7XG4gIH1cbn1cblxuLnNiYi1vcHRpb25fX2xhYmVsIHtcbiAgdGV4dC1vdmVyZmxvdzogdmFyKC0tc2JiLW9wdGlvbi10ZXh0LW92ZXJmbG93KTtcbiAgb3ZlcmZsb3c6IHZhcigtLXNiYi1vcHRpb24tb3ZlcmZsb3cpO1xuICB3aGl0ZS1zcGFjZTogdmFyKC0tc2JiLW9wdGlvbi13aGl0ZS1zcGFjZSwgaW5pdGlhbCk7XG59XG4iLCJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBodG1sLCBub3RoaW5nLCB0eXBlIFRlbXBsYXRlUmVzdWx0LCB1bnNhZmVDU1MgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYkF1dG9jb21wbGV0ZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9hdXRvY29tcGxldGUucHVyZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkVsZW1lbnRUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlNlbGVjdEVsZW1lbnQgfSBmcm9tICcuLi8uLi9zZWxlY3QucHVyZS50cyc7XG5pbXBvcnQgeyBTYmJWaXN1YWxDaGVja2JveEVsZW1lbnQgfSBmcm9tICcuLi8uLi92aXN1YWwtY2hlY2tib3gucHVyZS50cyc7XG5cbmltcG9ydCB7IFNiYk9wdGlvbkJhc2VFbGVtZW50IH0gZnJvbSAnLi9vcHRpb24tYmFzZS1lbGVtZW50LnRzJztcbmltcG9ydCBzdHlsZSBmcm9tICcuL29wdGlvbi5zY3NzP2lubGluZSc7XG5cbmV4cG9ydCB0eXBlIFNiYk9wdGlvblZhcmlhbnQgPSAnYXV0b2NvbXBsZXRlJyB8ICdzZWxlY3QnIHwgbnVsbDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBvbiBvcHRpb24gaXRlbSB3aGljaCBjYW4gYmUgdXNlZCBpbiBgc2JiLXNlbGVjdGAgb3IgYHNiYi1hdXRvY29tcGxldGVgLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIG9wdGlvbiBsYWJlbC5cbiAqIEBzbG90IGljb24gLSBVc2UgdGhpcyBzbG90IHRvIHByb3ZpZGUgYW4gaWNvbi4gSWYgYGljb24tbmFtZWAgaXMgc2V0LCBhIHNiYi1pY29uIHdpbGwgYmUgdXNlZC5cbiAqIEBjc3Nwcm9wIFstLXNiYi1vcHRpb24taWNvbi1jb250YWluZXItZGlzcGxheT1ub25lXSAtIENhbiBiZSB1c2VkIHRvIHJlc2VydmUgc3BhY2UgZXZlblxuICogd2hlbiBwcmVzZXJ2ZS1pY29uLXNwYWNlIG9uIGF1dG9jb21wbGV0ZSBpcyBub3Qgc2V0IG9yIGljb25OYW1lIGlzIG5vdCBzZXQuXG4gKiBAb3ZlcnJpZGVUeXBlIHZhbHVlIC0gKFQgPSBzdHJpbmcpIHwgbnVsbFxuICovXG5leHBvcnQgY2xhc3MgU2JiT3B0aW9uRWxlbWVudDxUID0gc3RyaW5nPiBleHRlbmRzIFNiYk9wdGlvbkJhc2VFbGVtZW50PFQ+IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1vcHRpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIGVsZW1lbnREZXBlbmRlbmNpZXM6IFNiYkVsZW1lbnRUeXBlW10gPSBbU2JiVmlzdWFsQ2hlY2tib3hFbGVtZW50XTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gJ29wdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFt1bnNhZmVDU1Moc3R5bGUpXTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBldmVudHMgPSB7XG4gICAgb3B0aW9uc2VsZWN0aW9uY2hhbmdlOiAnb3B0aW9uc2VsZWN0aW9uY2hhbmdlJyxcbiAgICBvcHRpb25zZWxlY3RlZDogJ29wdGlvbnNlbGVjdGVkJyxcbiAgfSBhcyBjb25zdDtcblxuICBwcm90ZWN0ZWQgb3B0aW9uSWQgPSBgc2JiLW9wdGlvbmA7XG5cbiAgcHJpdmF0ZSBzZXQgX3ZhcmlhbnQodmFyaWFudDogU2JiT3B0aW9uVmFyaWFudCkge1xuICAgIGlmICh0aGlzLl92YXJpYW50SW50ZXJuYWwpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoYHZhcmlhbnQtJHt0aGlzLl92YXJpYW50SW50ZXJuYWx9YCk7XG4gICAgfVxuICAgIHRoaXMuX3ZhcmlhbnRJbnRlcm5hbCA9IHZhcmlhbnQ7XG4gICAgaWYgKHRoaXMuX3ZhcmlhbnRJbnRlcm5hbCkge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChgdmFyaWFudC0ke3RoaXMuX3ZhcmlhbnRJbnRlcm5hbH1gKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXQgX3ZhcmlhbnQoKTogU2JiT3B0aW9uVmFyaWFudCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhcmlhbnRJbnRlcm5hbCA/PyBudWxsO1xuICB9XG4gIHByaXZhdGUgX3ZhcmlhbnRJbnRlcm5hbD86IFNiYk9wdGlvblZhcmlhbnQ7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgbmV3IFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXIodGhpcywgKCkgPT4gdGhpcy5jbG9zZXN0KCdzYmItb3B0Z3JvdXAnKSwge1xuICAgICAgICBkaXNhYmxlZDogKHApID0+ICh0aGlzLmRpc2FibGVkRnJvbUdyb3VwID0gcC5kaXNhYmxlZCksXG4gICAgICAgIGxhYmVsOiAocCkgPT4gKHRoaXMuZ3JvdXBMYWJlbCA9IHAubGFiZWwpLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIHRoaXMuYWRkQ29udHJvbGxlcihcbiAgICAgIG5ldyBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyKHRoaXMsICgpID0+IHRoaXMuY2xvc2VzdCgnc2JiLXNlbGVjdCcpLCB7XG4gICAgICAgIG11bHRpcGxlOiAoYW5jZXN0b3IpID0+IHtcbiAgICAgICAgICB0aGlzLnRvZ2dsZVN0YXRlKCdtdWx0aXBsZScsIGFuY2VzdG9yLm11bHRpcGxlKTtcblxuICAgICAgICAgIC8vIE11bHRpcGxlIGhhcyB0byBiZSBwcm9wYWdhdGVkIHRvIHNiYi12aXN1YWwtY2hlY2tib3ggaW5zaWRlIHRoZSBvcHRpb24uXG4gICAgICAgICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCk7XG4gICAgICAgIH0sXG4gICAgICAgIG5lZ2F0aXZlOiAoZSkgPT4gdGhpcy5faGFuZGxlTmVnYXRpdmVDaGFuZ2UoZSksXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNNdWx0aXBsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaHlkcmF0aW9uUmVxdWlyZWQgJiYgdGhpcy5tYXRjaGVzPy4oJzpzdGF0ZShtdWx0aXBsZSknKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU5lZ2F0aXZlQ2hhbmdlKGFuY2VzdG9yOiBTYmJBdXRvY29tcGxldGVFbGVtZW50IHwgU2JiU2VsZWN0RWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ25lZ2F0aXZlJywgYW5jZXN0b3IubmVnYXRpdmUpO1xuXG4gICAgLy8gTmVnYXRpdmUgaGFzIHRvIGJlIHByb3BhZ2F0ZWQgdG8gc2JiLXZpc3VhbC1jaGVja2JveCBpbnNpZGUgdGhlIG9wdGlvbi5cbiAgICB0aGlzLnJlcXVlc3RVcGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgLy8gV2UgbmVlZCB0byBjaGVjayBoaWdobGlnaHQgc3RhdGUgYm90aCBvbiBzbG90IGNoYW5nZSwgYnV0IGFsc28gd2hlbiBjb25uZWN0aW5nXG4gICAgLy8gdGhlIGVsZW1lbnQgdG8gdGhlIERPTS4gVGhlIHNsb3QgY2hhbmdlIGV2ZW50cyBtaWdodCBiZSBzd2FsbG93ZWQgd2hlbiB1c2luZyBkZWNsYXJhdGl2ZVxuICAgIC8vIHNoYWRvdyBET00gd2l0aCBTU1Igb3IgaWYgdGhlIERPTSBpcyBjaGFuZ2VkIHdoZW4gZGlzY29ubmVjdGVkLlxuICAgIGlmICh0aGlzLmh5ZHJhdGlvblJlcXVpcmVkKSB7XG4gICAgICB0aGlzLmh5ZHJhdGlvbkNvbXBsZXRlLnRoZW4oKCkgPT4gdGhpcy5faW5pdCgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5faW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fc2V0VmFyaWFudEJ5Q29udGV4dCgpO1xuICAgIHRoaXMuaGFuZGxlSGlnaGxpZ2h0U3RhdGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RCeUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZEZyb21Hcm91cCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2lzTXVsdGlwbGUoKSkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB0aGlzLnNlbGVjdFZpYVVzZXJJbnRlcmFjdGlvbighdGhpcy5zZWxlY3RlZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0VmlhVXNlckludGVyYWN0aW9uKHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBzZWxlY3RWaWFVc2VySW50ZXJhY3Rpb24oc2VsZWN0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBzdXBlci5zZWxlY3RWaWFVc2VySW50ZXJhY3Rpb24oc2VsZWN0ZWQpO1xuICAgIC8qKiBUaGUgb3B0aW9uc2VsZWN0aW9uY2hhbmdlIGV2ZW50IGlzIGRpc3BhdGNoZWQgd2hlbiB0aGUgb3B0aW9uIHNlbGVjdGlvbiBzdGF0dXMgY2hhbmdlcy4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdvcHRpb25zZWxlY3Rpb25jaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldFZhcmlhbnRCeUNvbnRleHQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2xvc2VzdD8uKCdzYmItYXV0b2NvbXBsZXRlJykpIHtcbiAgICAgIHRoaXMuX3ZhcmlhbnQgPSAnYXV0b2NvbXBsZXRlJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2xvc2VzdD8uKCdzYmItc2VsZWN0JykpIHtcbiAgICAgIHRoaXMuX3ZhcmlhbnQgPSAnc2VsZWN0JztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaGFuZGxlSGlnaGxpZ2h0U3RhdGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3ZhcmlhbnQgIT09ICdhdXRvY29tcGxldGUnKSB7XG4gICAgICB0aGlzLnVwZGF0ZURpc2FibGVIaWdobGlnaHQodHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3VwZXIuaGFuZGxlSGlnaGxpZ2h0U3RhdGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJJY29uKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDwhLS0gSWNvbiAtLT5cbiAgICAgICR7IXRoaXMuX2lzTXVsdGlwbGUoKVxuICAgICAgICA/IGh0bWxgIDxzcGFuIGNsYXNzPVwic2JiLW9wdGlvbl9faWNvblwiPiAke3RoaXMucmVuZGVySWNvblNsb3QoKX0gPC9zcGFuPmBcbiAgICAgICAgOiBub3RoaW5nfVxuXG4gICAgICA8IS0tIENoZWNrYm94IC0tPlxuICAgICAgJHt0aGlzLl9pc011bHRpcGxlKClcbiAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgPHNiYi12aXN1YWwtY2hlY2tib3hcbiAgICAgICAgICAgICAgP2NoZWNrZWQ9JHt0aGlzLnNlbGVjdGVkfVxuICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWRGcm9tR3JvdXB9XG4gICAgICAgICAgICAgID9uZWdhdGl2ZT0ke3RoaXMubWF0Y2hlcz8uKCc6c3RhdGUobmVnYXRpdmUpJyl9XG4gICAgICAgICAgICA+PC9zYmItdmlzdWFsLWNoZWNrYm94PlxuICAgICAgICAgIGBcbiAgICAgICAgOiBub3RoaW5nfVxuICAgIGA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyTGFiZWwoKTogVGVtcGxhdGVSZXN1bHQgfCB0eXBlb2Ygbm90aGluZyB7XG4gICAgaWYgKHRoaXMuX3ZhcmlhbnQgIT09ICdhdXRvY29tcGxldGUnKSB7XG4gICAgICByZXR1cm4gbm90aGluZztcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLnJlbmRlckxhYmVsKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyVGljaygpOiBUZW1wbGF0ZVJlc3VsdCB8IHR5cGVvZiBub3RoaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdmFyaWFudCA9PT0gJ3NlbGVjdCcgJiYgIXRoaXMuX2lzTXVsdGlwbGUoKSAmJiB0aGlzLnNlbGVjdGVkXG4gICAgICA/IGh0bWxgPHNiYi1pY29uIG5hbWU9XCJ0aWNrLXNtYWxsXCI+PC9zYmItaWNvbj5gXG4gICAgICA6IG5vdGhpbmc7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1vcHRpb24nOiBTYmJPcHRpb25FbGVtZW50O1xuICB9XG5cbiAgaW50ZXJmYWNlIEdsb2JhbEV2ZW50SGFuZGxlcnNFdmVudE1hcCB7XG4gICAgb3B0aW9uc2VsZWN0aW9uY2hhbmdlOiBFdmVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQ3NCQSxJQUFhLG1CQUFi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
@@ -1,8 +1,8 @@
1
- import { t as SbbOptgroupBaseElement } from "./optgroup-base-element-BEG1P4gK.js";
1
+ import { t as SbbOptgroupBaseElement } from "./optgroup-base-element-Cq8DMPk9.js";
2
2
  import { SbbOptGroupElement } from "./option/optgroup/optgroup.component.js";
3
- import { t as SbbOptionHintElement } from "./option-hint.component-CcSUSwjN.js";
3
+ import { t as SbbOptionHintElement } from "./option-hint.component-B4PxB3BW.js";
4
4
  import { SbbOptionBaseElement } from "./option/option/option-base-element.js";
5
- import { t as SbbOptionElement } from "./option.component-BEbIEh5o.js";
5
+ import { t as SbbOptionElement } from "./option.component-CV6cZnJe.js";
6
6
  import "./option.pure.js";
7
7
  //#region src/elements/option.ts
8
8
  /** @entrypoint */
@@ -1,6 +1,6 @@
1
- import { t as SbbOptgroupBaseElement } from "./optgroup-base-element-BEG1P4gK.js";
1
+ import { t as SbbOptgroupBaseElement } from "./optgroup-base-element-Cq8DMPk9.js";
2
2
  import { SbbOptGroupElement } from "./option/optgroup/optgroup.component.js";
3
- import { t as SbbOptionHintElement } from "./option-hint.component-CcSUSwjN.js";
3
+ import { t as SbbOptionHintElement } from "./option-hint.component-B4PxB3BW.js";
4
4
  import { SbbOptionBaseElement } from "./option/option/option-base-element.js";
5
- import { t as SbbOptionElement } from "./option.component-BEbIEh5o.js";
5
+ import { t as SbbOptionElement } from "./option.component-CV6cZnJe.js";
6
6
  export { SbbOptGroupElement, SbbOptgroupBaseElement, SbbOptionBaseElement, SbbOptionElement, SbbOptionHintElement };
@@ -1757,6 +1757,7 @@ slot[name=error]::slotted(*) {
1757
1757
  --sbb-option-border-radius: var(--sbb-border-radius-4x);
1758
1758
  --sbb-option-icon-color: var(--sbb-color-metal);
1759
1759
  --sbb-option-icon-color: light-dark(var(--sbb-color-metal), var(--sbb-color-smoke));
1760
+ --sbb-option-focus-outline-offset: inherit;
1760
1761
  --sbb-option-focus-outline-color: transparent;
1761
1762
  --sbb-option-focus-outline-inset: var(--sbb-spacing-fixed-1x);
1762
1763
  --sbb-option-font-size: var(--sbb-text-font-size-s);
@@ -2595,18 +2596,6 @@ sbb-message > [slot=image] :is(sbb-image, img):not(.sbb-figure-overlap-image) {
2595
2596
  border-radius: var(--sbb-message-image-border-radius);
2596
2597
  }
2597
2598
 
2598
- :where(sbb-select, sbb-autocomplete, sbb-autocomplete-grid)[size=s] :where(sbb-option, sbb-autocomplete-grid-option) {
2599
- --sbb-option-min-height: var(--sbb-size-element-xxs);
2600
- --sbb-focus-outline-offset: calc(-1 * var(--sbb-spacing-fixed-1x));
2601
- --sbb-option-focus-outline-inset: 0 var(--sbb-spacing-fixed-1x);
2602
- }
2603
- :where(sbb-select, sbb-autocomplete, sbb-autocomplete-grid)[size=s] sbb-optgroup {
2604
- --sbb-optgroup-label-padding-end: var(--sbb-spacing-fixed-1x);
2605
- }
2606
- :where(sbb-select, sbb-autocomplete, sbb-autocomplete-grid)[size=s] sbb-option-hint {
2607
- --sbb-option-hint-padding-block-end: var(--sbb-spacing-fixed-1x);
2608
- }
2609
-
2610
2599
  .sbb-options-nowrap {
2611
2600
  --sbb-option-text-overflow: ellipsis;
2612
2601
  --sbb-option-overflow: hidden;
@@ -0,0 +1,108 @@
1
+ import { __esDecorate as e, __runInitializers as t } from "tslib";
2
+ import { html as n, nothing as r, unsafeCSS as i } from "lit";
3
+ import { property as a, state as o } from "lit/decorators.js";
4
+ import { SbbDisabledMixin as s, SbbElement as c, SbbPropertyWatcherController as l, forceType as u, isSafari as d } from "./core.js";
5
+ import { SbbDividerElement as f } from "./divider.pure.js";
6
+ //#region src/elements/option/optgroup/optgroup-base-element.scss?inline
7
+ var p = ":host{display:block}:host(:first-child){--sbb-optgroup-divider-display: none}:host(:is(:state(size-s),[state--size-s])){--sbb-optgroup-label-padding-end: var(--sbb-spacing-fixed-1x)}:host(:is(:state(size-m),[state--size-m])){--sbb-optgroup-label-padding-end: var(--sbb-spacing-fixed-2x)}:host(:is(:state(negative),[state--negative])){--sbb-optgroup-label-color: var(--sbb-color-5)}.sbb-optgroup{margin-block:var(--sbb-spacing-fixed-4x);margin-inline:var(--sbb-spacing-fixed-4x)}.sbb-optgroup__label{display:flex;column-gap:var(--sbb-spacing-responsive-xxxs);font-size:var(--sbb-optgroup-label-font-size);letter-spacing:var(--sbb-typo-letter-spacing-text);color:var(--sbb-optgroup-label-color);-webkit-text-fill-color:var(--sbb-optgroup-label-color);padding-inline:var(--sbb-optgroup-label-padding-inline);padding-block-end:var(--sbb-optgroup-label-padding-end)}.sbb-optgroup__divider{display:var(--sbb-optgroup-divider-display, block);padding-block:var(--sbb-options-panel-divider-margin-block)}.sbb-optgroup__icon-space{display:var(--sbb-option-icon-container-display, none);min-width:var(--sbb-size-icon-ui-small)}::slotted(sbb-divider){margin-block:var(--sbb-options-panel-divider-margin-block)}", m = d, h = (() => {
8
+ let d = s(c), h, g = [], _ = [], v, y = [], b = [];
9
+ return class extends d {
10
+ static {
11
+ let t = typeof Symbol == "function" && Symbol.metadata ? Object.create(d[Symbol.metadata] ?? null) : void 0;
12
+ h = [u(), a()], v = [o()], e(this, null, h, {
13
+ kind: "accessor",
14
+ name: "label",
15
+ static: !1,
16
+ private: !1,
17
+ access: {
18
+ has: (e) => "label" in e,
19
+ get: (e) => e.label,
20
+ set: (e, t) => {
21
+ e.label = t;
22
+ }
23
+ },
24
+ metadata: t
25
+ }, g, _), e(this, null, v, {
26
+ kind: "accessor",
27
+ name: "_inertAriaGroups",
28
+ static: !1,
29
+ private: !1,
30
+ access: {
31
+ has: (e) => "_inertAriaGroups" in e,
32
+ get: (e) => e._inertAriaGroups,
33
+ set: (e, t) => {
34
+ e._inertAriaGroups = t;
35
+ }
36
+ },
37
+ metadata: t
38
+ }, y, b), t && Object.defineProperty(this, Symbol.metadata, {
39
+ enumerable: !0,
40
+ configurable: !0,
41
+ writable: !0,
42
+ value: t
43
+ });
44
+ }
45
+ static {
46
+ this.role = m ? null : "group";
47
+ }
48
+ static {
49
+ this.elementDependencies = [f];
50
+ }
51
+ static {
52
+ this.styles = [i(p)];
53
+ }
54
+ #e;
55
+ get label() {
56
+ return this.#e;
57
+ }
58
+ set label(e) {
59
+ this.#e = e;
60
+ }
61
+ #t;
62
+ get _inertAriaGroups() {
63
+ return this.#t;
64
+ }
65
+ set _inertAriaGroups(e) {
66
+ this.#t = e;
67
+ }
68
+ constructor() {
69
+ super(), this.#e = t(this, g, ""), this.#t = (t(this, _), t(this, y, !1)), this._previousSize = t(this, b), this.addController(new l(this, () => this.closest("sbb-autocomplete, sbb-autocomplete-grid, sbb-select"), { size: (e) => {
70
+ this._previousSize && this.internals.states.delete(`size-${this._previousSize}`), this._previousSize = e.size, this._previousSize && this.internals.states.add(`size-${this._previousSize}`);
71
+ } })), m && (this.hydrationRequired ? this.hydrationComplete.then(() => this._inertAriaGroups = m) : this._inertAriaGroups = m);
72
+ }
73
+ connectedCallback() {
74
+ super.connectedCallback(), this._updateAriaLabel();
75
+ }
76
+ willUpdate(e) {
77
+ super.willUpdate(e), e.has("disabled") && (this._inertAriaGroups || (this.internals.ariaDisabled = this.disabled ? "true" : null)), e.has("label") && this._updateAriaLabel();
78
+ }
79
+ _handleSlotchange() {
80
+ this._updateAriaLabel(), this._highlightOptions(), this.dispatchEvent(new Event("ɵoptgroupslotchange"));
81
+ }
82
+ _updateAriaLabel() {
83
+ this.internals.ariaLabel = this._inertAriaGroups ? null : this.label;
84
+ }
85
+ _highlightOptions() {
86
+ let e = this.getAutocompleteParent();
87
+ if (!e) return;
88
+ let t = e.triggerElement?.value;
89
+ t && this.options.forEach((e) => e.highlight(t));
90
+ }
91
+ render() {
92
+ return n`
93
+ <div class="sbb-optgroup__divider">
94
+ <sbb-divider ?negative=${this.matches?.(":is(:state(negative),[state--negative])")}></sbb-divider>
95
+ </div>
96
+ ${this.label ? n`
97
+ <div class="sbb-optgroup__label" aria-hidden="true">
98
+ <div class="sbb-optgroup__icon-space"></div>
99
+ <span>${this.label}</span>
100
+ </div>
101
+ ` : r}
102
+ <slot @slotchange=${this._handleSlotchange}></slot>
103
+ `;
104
+ }
105
+ };
106
+ })();
107
+ //#endregion
108
+ export { h as t };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../optgroup-base-element-C6KwbQ0N.js";
1
+ import { t as e } from "../../optgroup-base-element-CrO_ydA8.js";
2
2
  export { e as SbbOptgroupBaseElement };
@@ -1,4 +1,4 @@
1
- import { t as e } from "../../optgroup-base-element-C6KwbQ0N.js";
1
+ import { t as e } from "../../optgroup-base-element-CrO_ydA8.js";
2
2
  import { SbbPropertyWatcherController as t } from "../../core.js";
3
3
  //#region src/elements/option/optgroup/optgroup.component.ts
4
4
  var n = class extends e {