@sbb-esta/lyne-elements-dev 4.11.0-dev.1776752302 → 4.11.0-dev.1776924022

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 (130) hide show
  1. package/{block-link-common-DzGY49Xc.js → block-link-common-BwXob5QE.js} +1 -1
  2. package/core/styles/core.scss +37 -4
  3. package/core/styles/mixins/helpers.scss +3 -3
  4. package/core.css +70 -5
  5. package/custom-elements.json +20 -20
  6. package/development/{block-link-common-GckvjULA.js → block-link-common-Dh1NOKxB.js} +2 -2
  7. package/development/form-field/form-field/form-field.component.js +1 -1
  8. package/development/form-field/form-field.js +1 -1
  9. package/development/{form-field.component-D0NJclvI.js → form-field.component-CWVzymTX.js} +2 -2
  10. package/development/form-field.js +1 -1
  11. package/development/form-field.pure.js +1 -1
  12. package/development/link/common/block-link-common.js +1 -1
  13. package/development/link/common.js +1 -1
  14. package/development/link.js +1 -1
  15. package/development/link.pure.js +1 -1
  16. package/development/slider/slider.component.js +1 -1
  17. package/development/{slider.component-BjfLnUvP.js → slider.component-C3qZB6ar.js} +2 -2
  18. package/development/slider.js +1 -1
  19. package/development/slider.pure.js +1 -1
  20. package/development/step-label.component-DjA-3IGs.js +131 -0
  21. package/development/stepper/step-label/step-label.component.js +1 -1
  22. package/development/stepper/step-label.js +1 -1
  23. package/development/stepper.js +1 -1
  24. package/development/stepper.pure.js +1 -1
  25. package/development/teaser-hero/teaser-hero.component.js +1 -1
  26. package/development/{teaser-hero.component-DNlc8Tbl.js → teaser-hero.component-BIOpoGME.js} +2 -2
  27. package/development/teaser-hero.js +1 -1
  28. package/development/teaser-hero.pure.js +1 -1
  29. package/development/timetable-form/timetable-form/timetable-form.component.js +1 -1
  30. package/development/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  31. package/development/timetable-form/timetable-form-details.js +1 -1
  32. package/development/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  33. package/development/timetable-form/timetable-form-field.js +1 -1
  34. package/development/timetable-form/timetable-form.js +1 -1
  35. package/development/timetable-form-details.component-DJl5Qt9y.js +26 -0
  36. package/development/timetable-form-field.component-DQ_TzcF4.js +44 -0
  37. package/development/timetable-form.component-N8h4JBlH.js +27 -0
  38. package/development/timetable-form.js +3 -3
  39. package/development/timetable-form.pure.js +3 -3
  40. package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
  41. package/development/timetable-occupancy.component-dhpPJEaI.js +124 -0
  42. package/development/timetable-occupancy.js +1 -1
  43. package/development/timetable-occupancy.pure.js +1 -1
  44. package/development/toggle/toggle/toggle.component.d.ts.map +1 -1
  45. package/development/toggle/toggle/toggle.component.js +1 -1
  46. package/development/toggle/toggle-option/toggle-option.component.d.ts.map +1 -1
  47. package/development/toggle/toggle-option/toggle-option.component.js +1 -1
  48. package/development/toggle/toggle-option.js +1 -1
  49. package/development/toggle/toggle.js +1 -1
  50. package/development/toggle-check/toggle-check.component.js +1 -1
  51. package/development/toggle-check.component-_fDAuLob.js +159 -0
  52. package/development/toggle-check.js +1 -1
  53. package/development/toggle-check.pure.js +1 -1
  54. package/development/toggle-option.component-DTS3a603.js +167 -0
  55. package/development/toggle.component-CKug5pF7.js +249 -0
  56. package/development/toggle.js +2 -2
  57. package/development/toggle.pure.js +2 -2
  58. package/development/tooltip/tooltip.component.js +1 -1
  59. package/development/tooltip.component-epXOY5vO.js +378 -0
  60. package/development/tooltip.js +1 -1
  61. package/development/tooltip.pure.js +1 -1
  62. package/form-field/form-field/form-field.component.js +1 -1
  63. package/form-field/form-field.js +1 -1
  64. package/{form-field.component-Bqw-VgJF.js → form-field.component-Cc_siKrq.js} +1 -1
  65. package/form-field.js +1 -1
  66. package/form-field.pure.js +1 -1
  67. package/link/common/block-link-common.js +1 -1
  68. package/link/common.js +1 -1
  69. package/link.js +1 -1
  70. package/link.pure.js +1 -1
  71. package/off-brand-theme.css +70 -5
  72. package/package.json +2 -2
  73. package/safety-theme.css +70 -5
  74. package/slider/slider.component.js +1 -1
  75. package/{slider.component-CoqCppCq.js → slider.component-BlRVR6iU.js} +1 -1
  76. package/slider.js +1 -1
  77. package/slider.pure.js +1 -1
  78. package/standard-theme.css +70 -5
  79. package/{step-label.component-DnQBwnL8.js → step-label.component-dzcNc12A.js} +1 -1
  80. package/stepper/step-label/step-label.component.js +1 -1
  81. package/stepper/step-label.js +1 -1
  82. package/stepper.js +1 -1
  83. package/stepper.pure.js +1 -1
  84. package/teaser-hero/teaser-hero.component.js +1 -1
  85. package/{teaser-hero.component-CHy82SKQ.js → teaser-hero.component-D8yj-N5n.js} +1 -1
  86. package/teaser-hero.js +1 -1
  87. package/teaser-hero.pure.js +1 -1
  88. package/timetable-form/timetable-form/timetable-form.component.js +1 -1
  89. package/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  90. package/timetable-form/timetable-form-details.js +1 -1
  91. package/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  92. package/timetable-form/timetable-form-field.js +1 -1
  93. package/timetable-form/timetable-form.js +1 -1
  94. package/timetable-form-details.component-mWKaBW_9.js +16 -0
  95. package/timetable-form-field.component-Cv_lv8vf.js +32 -0
  96. package/{timetable-form.component-CU1FXAZH.js → timetable-form.component-YcvKAlfz.js} +1 -1
  97. package/timetable-form.js +3 -3
  98. package/timetable-form.pure.js +3 -3
  99. package/timetable-occupancy/timetable-occupancy.component.js +1 -1
  100. package/{timetable-occupancy.component-Db9SfiyD.js → timetable-occupancy.component-BDmxFVKK.js} +1 -1
  101. package/timetable-occupancy.js +1 -1
  102. package/timetable-occupancy.pure.js +1 -1
  103. package/toggle/toggle/toggle.component.js +1 -1
  104. package/toggle/toggle-option/toggle-option.component.js +1 -1
  105. package/toggle/toggle-option.js +1 -1
  106. package/toggle/toggle.js +1 -1
  107. package/toggle-check/toggle-check.component.js +1 -1
  108. package/toggle-check.component-DvoslSRr.js +119 -0
  109. package/toggle-check.js +1 -1
  110. package/toggle-check.pure.js +1 -1
  111. package/{toggle-option.component-Bw-GXUQK.js → toggle-option.component-pX3tNwjE.js} +5 -7
  112. package/{toggle.component-BPpsMMPG.js → toggle.component-Cwc-TJ-a.js} +6 -10
  113. package/toggle.js +2 -2
  114. package/toggle.pure.js +2 -2
  115. package/tooltip/tooltip.component.js +1 -1
  116. package/{tooltip.component-BY9mV5Sw.js → tooltip.component-B3XLLpLg.js} +1 -1
  117. package/tooltip.js +1 -1
  118. package/tooltip.pure.js +1 -1
  119. package/development/step-label.component-CJFPHIZa.js +0 -131
  120. package/development/timetable-form-details.component-C8awcdP5.js +0 -26
  121. package/development/timetable-form-field.component-BI24VjkC.js +0 -44
  122. package/development/timetable-form.component-CUG86CSN.js +0 -27
  123. package/development/timetable-occupancy.component-D_PXXvI9.js +0 -124
  124. package/development/toggle-check.component-BG4w_sE8.js +0 -159
  125. package/development/toggle-option.component-DRodFwFk.js +0 -169
  126. package/development/toggle.component-BFYLRN8o.js +0 -254
  127. package/development/tooltip.component-DzSd9VjW.js +0 -378
  128. package/timetable-form-details.component-CBZ7QSAx.js +0 -16
  129. package/timetable-form-field.component-BKxQQqt7.js +0 -32
  130. package/toggle-check.component-B6Ww5pLD.js +0 -119
@@ -1,124 +0,0 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { html, nothing, unsafeCSS } from "lit";
3
- import { property } from "lit/decorators.js";
4
- import { SbbElement } from "./core/base-elements.js";
5
- import { SbbNegativeMixin } from "./core/mixins.js";
6
- import { boxSizingStyles } from "./core/styles.js";
7
- import { SbbLanguageController } from "./core/controllers.js";
8
- import { i18nClass } from "./core/i18n.js";
9
- import "./screen-reader-only.js";
10
- import "./timetable-occupancy-icon.js";
11
- //#region src/elements/timetable-occupancy/timetable-occupancy.scss?inline
12
- var timetable_occupancy_default = ":host {\n display: inline-block;\n --sbb-timetable-occupancy-color: var(--sbb-color-2);\n --sbb-icon-svg-width: 0.890625rem;\n --sbb-icon-svg-height: v0.75rem;\n}\n@media (min-width: calc(64rem)) {\n :host {\n --sbb-icon-svg-width: 1.1875rem;\n --sbb-icon-svg-height: v1rem;\n }\n}\n\n:host([negative]) {\n --sbb-timetable-occupancy-color: var(--sbb-color-2-negative);\n}\n\n.sbb-timetable-occupancy__list {\n list-style: none;\n margin: 0;\n padding: 0;\n font-size: inherit;\n display: flex;\n align-items: center;\n flex-wrap: nowrap;\n gap: var(--sbb-spacing-fixed-2x);\n}\n\n.sbb-timetable-occupancy__list-item {\n display: flex;\n align-items: center;\n flex-wrap: nowrap;\n gap: var(--sbb-spacing-fixed-1x);\n}\n\n.sbb-timetable-occupancy__list-item-class {\n --sbb-text-font-size: var(--sbb-text-font-size-s);\n font-family: var(--sbb-typo-font-family);\n font-weight: normal;\n line-height: var(--sbb-typo-line-height-text);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n font-size: var(--sbb-text-font-size);\n line-height: 1;\n color: var(--sbb-timetable-occupancy-color);\n}\n\n.sbb-timetable-occupancy__list-item-icon {\n display: flex;\n}";
13
- //#endregion
14
- //#region src/elements/timetable-occupancy/timetable-occupancy.component.ts
15
- /**
16
- * Used in `sbb-timetable-row`, it displays information about wagon occupancy.
17
- */
18
- var SbbTimetableOccupancyElement = (() => {
19
- let _classSuper = SbbNegativeMixin(SbbElement);
20
- let _firstClassOccupancy_decorators;
21
- let _firstClassOccupancy_initializers = [];
22
- let _firstClassOccupancy_extraInitializers = [];
23
- let _secondClassOccupancy_decorators;
24
- let _secondClassOccupancy_initializers = [];
25
- let _secondClassOccupancy_extraInitializers = [];
26
- return class SbbTimetableOccupancyElement extends _classSuper {
27
- constructor() {
28
- super(...arguments);
29
- this.#firstClassOccupancy_accessor_storage = __runInitializers(this, _firstClassOccupancy_initializers, null);
30
- this.#secondClassOccupancy_accessor_storage = (__runInitializers(this, _firstClassOccupancy_extraInitializers), __runInitializers(this, _secondClassOccupancy_initializers, null));
31
- this._language = (__runInitializers(this, _secondClassOccupancy_extraInitializers), new SbbLanguageController(this));
32
- }
33
- static {
34
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
35
- _firstClassOccupancy_decorators = [property({ attribute: "first-class-occupancy" })];
36
- _secondClassOccupancy_decorators = [property({ attribute: "second-class-occupancy" })];
37
- __esDecorate(this, null, _firstClassOccupancy_decorators, {
38
- kind: "accessor",
39
- name: "firstClassOccupancy",
40
- static: false,
41
- private: false,
42
- access: {
43
- has: (obj) => "firstClassOccupancy" in obj,
44
- get: (obj) => obj.firstClassOccupancy,
45
- set: (obj, value) => {
46
- obj.firstClassOccupancy = value;
47
- }
48
- },
49
- metadata: _metadata
50
- }, _firstClassOccupancy_initializers, _firstClassOccupancy_extraInitializers);
51
- __esDecorate(this, null, _secondClassOccupancy_decorators, {
52
- kind: "accessor",
53
- name: "secondClassOccupancy",
54
- static: false,
55
- private: false,
56
- access: {
57
- has: (obj) => "secondClassOccupancy" in obj,
58
- get: (obj) => obj.secondClassOccupancy,
59
- set: (obj, value) => {
60
- obj.secondClassOccupancy = value;
61
- }
62
- },
63
- metadata: _metadata
64
- }, _secondClassOccupancy_initializers, _secondClassOccupancy_extraInitializers);
65
- if (_metadata) Object.defineProperty(this, Symbol.metadata, {
66
- enumerable: true,
67
- configurable: true,
68
- writable: true,
69
- value: _metadata
70
- });
71
- }
72
- static {
73
- this.elementName = "sbb-timetable-occupancy";
74
- }
75
- static {
76
- this.styles = [boxSizingStyles, unsafeCSS(timetable_occupancy_default)];
77
- }
78
- #firstClassOccupancy_accessor_storage;
79
- /** Occupancy for first class wagons. */
80
- get firstClassOccupancy() {
81
- return this.#firstClassOccupancy_accessor_storage;
82
- }
83
- set firstClassOccupancy(value) {
84
- this.#firstClassOccupancy_accessor_storage = value;
85
- }
86
- #secondClassOccupancy_accessor_storage;
87
- /** Occupancy for second class wagons. */
88
- get secondClassOccupancy() {
89
- return this.#secondClassOccupancy_accessor_storage;
90
- }
91
- set secondClassOccupancy(value) {
92
- this.#secondClassOccupancy_accessor_storage = value;
93
- }
94
- render() {
95
- return html` ${(this.firstClassOccupancy || this.secondClassOccupancy) && html`
96
- <ul
97
- class="sbb-timetable-occupancy__list"
98
- role=${!this.firstClassOccupancy || !this.secondClassOccupancy ? "presentation" : nothing}
99
- >
100
- ${[this.firstClassOccupancy, this.secondClassOccupancy].map((occupancy, index) => occupancy && html`
101
- <li class="sbb-timetable-occupancy__list-item">
102
- <span class="sbb-timetable-occupancy__list-item-class" aria-hidden="true">
103
- ${this.firstClassOccupancy && index === 0 ? "1" : "2"}.
104
- </span>
105
- <sbb-screen-reader-only>
106
- ${`${i18nClass[this.firstClassOccupancy && index === 0 ? "first" : "second"][this._language.current]}.`}
107
- </sbb-screen-reader-only>
108
- <sbb-timetable-occupancy-icon
109
- class="sbb-timetable-occupancy__list-item-icon"
110
- ?negative=${this.negative}
111
- .occupancy=${occupancy}
112
- >
113
- </sbb-timetable-occupancy-icon>
114
- </li>
115
- `)}
116
- </ul>
117
- `}`;
118
- }
119
- };
120
- })();
121
- //#endregion
122
- export { SbbTimetableOccupancyElement as t };
123
-
124
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXRhYmxlLW9jY3VwYW5jeS5jb21wb25lbnQtRF9QWFh2STkuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RpbWV0YWJsZS1vY2N1cGFuY3kvdGltZXRhYmxlLW9jY3VwYW5jeS5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90aW1ldGFibGUtb2NjdXBhbmN5L3RpbWV0YWJsZS1vY2N1cGFuY3kuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIC0tc2JiLXRpbWV0YWJsZS1vY2N1cGFuY3ktY29sb3I6IHZhcigtLXNiYi1jb2xvci0yKTtcbiAgLS1zYmItaWNvbi1zdmctd2lkdGg6ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgxNC4yNSl9O1xuICAtLXNiYi1pY29uLXN2Zy1oZWlnaHQ6IHYje3NiYi5weC10by1yZW0tYnVpbGQoMTIpfTtcblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IGxhcmdlKSB7XG4gICAgLS1zYmItaWNvbi1zdmctd2lkdGg6ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgxOSl9O1xuICAgIC0tc2JiLWljb24tc3ZnLWhlaWdodDogdiN7c2JiLnB4LXRvLXJlbS1idWlsZCgxNil9O1xuICB9XG59XG5cbjpob3N0KFtuZWdhdGl2ZV0pIHtcbiAgLS1zYmItdGltZXRhYmxlLW9jY3VwYW5jeS1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTItbmVnYXRpdmUpO1xufVxuXG4uc2JiLXRpbWV0YWJsZS1vY2N1cGFuY3lfX2xpc3Qge1xuICBAaW5jbHVkZSBzYmIubGlzdC1yZXNldDtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0yeCk7XG59XG5cbi5zYmItdGltZXRhYmxlLW9jY3VwYW5jeV9fbGlzdC1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGdhcDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpO1xufVxuXG4uc2JiLXRpbWV0YWJsZS1vY2N1cGFuY3lfX2xpc3QtaXRlbS1jbGFzcyB7XG4gIEBpbmNsdWRlIHNiYi50ZXh0LXMtLXJlZ3VsYXI7XG5cbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiB2YXIoLS1zYmItdGltZXRhYmxlLW9jY3VwYW5jeS1jb2xvcik7XG59XG5cbi5zYmItdGltZXRhYmxlLW9jY3VwYW5jeV9fbGlzdC1pdGVtLWljb24ge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuIiwiaW1wb3J0IHsgaHRtbCwgbm90aGluZywgdW5zYWZlQ1NTLCB0eXBlIENTU1Jlc3VsdEdyb3VwLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJFbGVtZW50IH0gZnJvbSAnLi4vY29yZS9iYXNlLWVsZW1lbnRzLnRzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvcmUvY29udHJvbGxlcnMudHMnO1xuaW1wb3J0IHsgaTE4bkNsYXNzIH0gZnJvbSAnLi4vY29yZS9pMThuLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiT2NjdXBhbmN5IH0gZnJvbSAnLi4vY29yZS9pbnRlcmZhY2VzLnRzJztcbmltcG9ydCB7IFNiYk5lZ2F0aXZlTWl4aW4gfSBmcm9tICcuLi9jb3JlL21peGlucy50cyc7XG5pbXBvcnQgeyBib3hTaXppbmdTdHlsZXMgfSBmcm9tICcuLi9jb3JlL3N0eWxlcy50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RpbWV0YWJsZS1vY2N1cGFuY3kuc2Nzcz9pbmxpbmUnO1xuXG5pbXBvcnQgJy4uL3NjcmVlbi1yZWFkZXItb25seS50cyc7XG5pbXBvcnQgJy4uL3RpbWV0YWJsZS1vY2N1cGFuY3ktaWNvbi50cyc7XG5cbi8qKlxuICogVXNlZCBpbiBgc2JiLXRpbWV0YWJsZS1yb3dgLCBpdCBkaXNwbGF5cyBpbmZvcm1hdGlvbiBhYm91dCB3YWdvbiBvY2N1cGFuY3kuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJUaW1ldGFibGVPY2N1cGFuY3lFbGVtZW50IGV4dGVuZHMgU2JiTmVnYXRpdmVNaXhpbihTYmJFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdGltZXRhYmxlLW9jY3VwYW5jeSc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuXG4gIC8qKiBPY2N1cGFuY3kgZm9yIGZpcnN0IGNsYXNzIHdhZ29ucy4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnZmlyc3QtY2xhc3Mtb2NjdXBhbmN5JyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZmlyc3RDbGFzc09jY3VwYW5jeTogU2JiT2NjdXBhbmN5IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIE9jY3VwYW5jeSBmb3Igc2Vjb25kIGNsYXNzIHdhZ29ucy4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnc2Vjb25kLWNsYXNzLW9jY3VwYW5jeScgfSlcbiAgcHVibGljIGFjY2Vzc29yIHNlY29uZENsYXNzT2NjdXBhbmN5OiBTYmJPY2N1cGFuY3kgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgICR7KHRoaXMuZmlyc3RDbGFzc09jY3VwYW5jeSB8fCB0aGlzLnNlY29uZENsYXNzT2NjdXBhbmN5KSAmJlxuICAgIGh0bWxgXG4gICAgICA8dWxcbiAgICAgICAgY2xhc3M9XCJzYmItdGltZXRhYmxlLW9jY3VwYW5jeV9fbGlzdFwiXG4gICAgICAgIHJvbGU9JHshdGhpcy5maXJzdENsYXNzT2NjdXBhbmN5IHx8ICF0aGlzLnNlY29uZENsYXNzT2NjdXBhbmN5ID8gJ3ByZXNlbnRhdGlvbicgOiBub3RoaW5nfVxuICAgICAgPlxuICAgICAgICAke1t0aGlzLmZpcnN0Q2xhc3NPY2N1cGFuY3ksIHRoaXMuc2Vjb25kQ2xhc3NPY2N1cGFuY3ldLm1hcChcbiAgICAgICAgICAob2NjdXBhbmN5OiBzdHJpbmcgfCBudWxsLCBpbmRleDogbnVtYmVyKSA9PlxuICAgICAgICAgICAgb2NjdXBhbmN5ICYmXG4gICAgICAgICAgICBodG1sYFxuICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJzYmItdGltZXRhYmxlLW9jY3VwYW5jeV9fbGlzdC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItdGltZXRhYmxlLW9jY3VwYW5jeV9fbGlzdC1pdGVtLWNsYXNzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAke3RoaXMuZmlyc3RDbGFzc09jY3VwYW5jeSAmJiBpbmRleCA9PT0gMCA/ICcxJyA6ICcyJ30uXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzYmItc2NyZWVuLXJlYWRlci1vbmx5PlxuICAgICAgICAgICAgICAgICAgJHtgJHtcbiAgICAgICAgICAgICAgICAgICAgaTE4bkNsYXNzW3RoaXMuZmlyc3RDbGFzc09jY3VwYW5jeSAmJiBpbmRleCA9PT0gMCA/ICdmaXJzdCcgOiAnc2Vjb25kJ11bXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudFxuICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICB9LmB9XG4gICAgICAgICAgICAgICAgPC9zYmItc2NyZWVuLXJlYWRlci1vbmx5PlxuICAgICAgICAgICAgICAgIDxzYmItdGltZXRhYmxlLW9jY3VwYW5jeS1pY29uXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNiYi10aW1ldGFibGUtb2NjdXBhbmN5X19saXN0LWl0ZW0taWNvblwiXG4gICAgICAgICAgICAgICAgICA/bmVnYXRpdmU9JHt0aGlzLm5lZ2F0aXZlfVxuICAgICAgICAgICAgICAgICAgLm9jY3VwYW5jeT0ke29jY3VwYW5jeX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9zYmItdGltZXRhYmxlLW9jY3VwYW5jeS1pY29uPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgYCxcbiAgICAgICAgKX1cbiAgICAgIDwvdWw+XG4gICAgYH1gO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItdGltZXRhYmxlLW9jY3VwYW5jeSc6IFNiYlRpbWV0YWJsZU9jY3VwYW5jeUVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNrQmEsc0NBQTRCO21CQUFTLGlCQUFpQixXQUFXOzs7Ozs7O2NBQWpFLHFDQUFxQyxZQUE0Qjs7O0FBTTVELFNBQUEsdUNBQUEsa0JBQUEsTUFBQSxtQ0FBMkMsS0FBSTtBQUkvQyxTQUFBLHlDQUFBLGtCQUFBLE1BQUEsdUNBQUEsRUFBQSxrQkFBQSxNQUFBLG9DQUE0QyxLQUFJO0FBRXhELFFBQUEsYUFBUyxrQkFBQSxNQUFBLHdDQUFBLEVBQUcsSUFBSSxzQkFBc0IsS0FBSzs7OztzQ0FQbEQsU0FBUyxFQUFFLFdBQVcseUJBQXlCLENBQUMsQ0FBQTt1Q0FJaEQsU0FBUyxFQUFFLFdBQVcsMEJBQTBCLENBQUMsQ0FBQTtBQUhsRCxnQkFBQSxNQUFBLE1BQUEsaUNBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSx5QkFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFtQixNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQW5CLHNCQUFtQjs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLG1DQUFBLHVDQUFBO0FBSW5DLGdCQUFBLE1BQUEsTUFBQSxrQ0FBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLDBCQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQW9CLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBcEIsdUJBQW9COztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsb0NBQUEsd0NBQUE7Ozs7Ozs7OztBQVRKLFFBQUEsY0FBc0I7OztBQUMvQixRQUFBLFNBQXlCLENBQUMsaUJBQWlCLFVBQVUsNEJBQU0sQ0FBQzs7RUFJbkY7O0VBQUEsSUFBZ0Isc0JBQW1CO0FBQUEsVUFBQSxNQUFBOztFQUFuQyxJQUFnQixvQkFBbUIsT0FBQTtBQUFBLFNBQUEsdUNBQUE7O0VBSW5DOztFQUFBLElBQWdCLHVCQUFvQjtBQUFBLFVBQUEsTUFBQTs7RUFBcEMsSUFBZ0IscUJBQW9CLE9BQUE7QUFBQSxTQUFBLHdDQUFBOztFQUlqQixTQUFNO0FBQ3ZCLFVBQU8sSUFBSSxLQUFLLEtBQUssdUJBQXVCLEtBQUsseUJBQ2pELElBQUk7OztlQUdPLENBQUMsS0FBSyx1QkFBdUIsQ0FBQyxLQUFLLHVCQUF1QixpQkFBaUIsUUFBQTs7VUFFaEYsQ0FBQyxLQUFLLHFCQUFxQixLQUFLLHFCQUFxQixDQUFDLEtBQ3JELFdBQTBCLFVBQ3pCLGFBQ0EsSUFBSTs7O29CQUdJLEtBQUssdUJBQXVCLFVBQVUsSUFBSSxNQUFNLElBQUc7OztvQkFHbkQsR0FDQSxVQUFVLEtBQUssdUJBQXVCLFVBQVUsSUFBSSxVQUFVLFVBQzVELEtBQUssVUFBVSxTQUVuQixHQUFBOzs7OzhCQUlZLEtBQUssU0FBQTsrQkFDSixVQUFBOzs7O2NBS3RCLENBQUEifQ==
@@ -1,159 +0,0 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { html, unsafeCSS } from "lit";
3
- import { property } from "lit/decorators.js";
4
- import { SbbElement } from "./core/base-elements.js";
5
- import { isLean } from "./core/dom.js";
6
- import { SbbFormAssociatedCheckboxMixin } from "./core/mixins.js";
7
- import { boxSizingStyles } from "./core/styles.js";
8
- import { SbbIconNameMixin } from "./icon.js";
9
- //#region src/elements/toggle-check/toggle-check.scss?inline
10
- var toggle_check_default = "@charset \"UTF-8\";\n:host {\n display: inline-block;\n outline: none !important;\n --sbb-toggle-check-color: var(--sbb-color-2);\n --sbb-toggle-check-checked-color: var(--sbb-color-primary);\n --sbb-toggle-check-background-color: var(--sbb-background-color-4);\n --sbb-toggle-check-icon-color: var(--sbb-toggle-check-checked-color);\n --sbb-toggle-check-icon-opacity: 0;\n --sbb-toggle-check-circle-background-color: var(--sbb-background-color-1);\n --sbb-toggle-check-circle-border-color: var(--sbb-border-color-5);\n --sbb-toggle-check-circle-border-style: solid;\n --sbb-toggle-check-circle-diameter: 1.75rem;\n --sbb-toggle-check-overall-height: var(--sbb-toggle-check-circle-diameter);\n --sbb-toggle-check-circle-transform: translate(0, -50%);\n --sbb-toggle-check-height: 1.5rem;\n --sbb-toggle-check-width: calc(2 * var(--sbb-toggle-check-height));\n --sbb-toggle-check-cursor: var(--sbb-cursor-pointer);\n --sbb-toggle-check-flex-direction: row-reverse;\n --sbb-toggle-check-gap: var(--sbb-spacing-fixed-3x);\n --sbb-toggle-check-animation-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-6x)\n );\n}\n@media (forced-colors: active) {\n :host {\n --sbb-toggle-check-background-color: CanvasText;\n --sbb-toggle-check-circle-background-color: Canvas;\n }\n}\n\n:host([size=m]) {\n --sbb-toggle-check-overall-height: calc(1em * var(--sbb-typo-line-height-text));\n}\n\n:host(:is(:state(checked),[state--checked])) {\n --sbb-toggle-check-background-color: var(--sbb-toggle-check-checked-color);\n --sbb-toggle-check-circle-background-color: var(--sbb-background-color-1-negative-inverted);\n --sbb-toggle-check-circle-border-color: var(--sbb-toggle-check-background-color);\n --sbb-toggle-check-icon-opacity: 1;\n --sbb-toggle-check-circle-transform: translate(\n calc(100% - 2 * (100% - 0.5 * var(--sbb-toggle-check-width))),\n -50%\n );\n}\n@media (forced-colors: active) {\n :host(:is(:state(checked),[state--checked])) {\n --sbb-toggle-check-icon-color: Highlight;\n --sbb-toggle-check-background-color: Highlight;\n }\n}\n\n:host(:disabled) {\n --sbb-toggle-check-background-color: var(--sbb-background-color-4);\n --sbb-toggle-check-circle-background-color: var(--sbb-background-color-3);\n --sbb-toggle-check-circle-border-color: var(--sbb-border-color-5);\n --sbb-toggle-check-circle-border-style: dashed;\n --sbb-toggle-check-icon-color: var(--sbb-color-granite);\n --sbb-toggle-check-icon-color: light-dark(var(--sbb-color-granite), var(--sbb-color-storm));\n --sbb-toggle-check-cursor: var(--sbb-cursor-default);\n}\n@media (forced-colors: active) {\n :host(:disabled) {\n --sbb-toggle-check-icon-color: GrayText;\n --sbb-toggle-check-background-color: GrayText;\n --sbb-toggle-check-circle-border-style: solid;\n }\n}\n\n:host([label-position=before]) {\n --sbb-toggle-check-flex-direction: row;\n}\n\n.sbb-toggle-check {\n position: relative;\n display: flex;\n color: var(--sbb-toggle-check-color);\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n cursor: var(--sbb-toggle-check-cursor);\n}\n.sbb-toggle-check::before {\n content: \"​\";\n user-select: none;\n width: 0;\n height: 0;\n}\n:host(:focus-visible) .sbb-toggle-check {\n outline-offset: var(--sbb-focus-outline-offset);\n outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);\n border-radius: calc(var(--sbb-border-radius-4x) - var(--sbb-focus-outline-offset));\n}\n\n.sbb-toggle-check__container {\n --sbb-text-font-size: var(--sbb-text-font-size-s);\n font-family: var(--sbb-typo-font-family);\n font-weight: normal;\n line-height: var(--sbb-typo-line-height-text);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n font-size: var(--sbb-text-font-size);\n display: flex;\n flex-direction: var(--sbb-toggle-check-flex-direction);\n gap: var(--sbb-toggle-check-gap);\n align-items: start;\n width: 100%;\n}\n:host([size=m]) .sbb-toggle-check__container {\n --sbb-text-font-size: var(--sbb-text-font-size-m);\n font-family: var(--sbb-typo-font-family);\n font-weight: normal;\n line-height: var(--sbb-typo-line-height-text);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n font-size: var(--sbb-text-font-size);\n}\n:host([size=xs]) .sbb-toggle-check__container {\n --sbb-text-font-size: var(--sbb-text-font-size-xs);\n font-family: var(--sbb-typo-font-family);\n font-weight: normal;\n line-height: var(--sbb-typo-line-height-text);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n font-size: var(--sbb-text-font-size);\n}\n\n.sbb-toggle-check__label {\n flex-grow: 1;\n padding-block-start: calc((var(--sbb-toggle-check-circle-diameter) - var(--sbb-typo-line-height-text) * 1em) / 2);\n}\n:host(:not(:is(:state(slotted),[state--slotted]))) .sbb-toggle-check__label {\n display: none;\n}\n\n.sbb-toggle-check__track {\n display: inline-block;\n position: relative;\n min-width: var(--sbb-toggle-check-width);\n height: var(--sbb-toggle-check-height);\n border-radius: var(--sbb-border-radius-infinity);\n background-color: var(--sbb-toggle-check-background-color);\n margin-block: calc((var(--sbb-toggle-check-overall-height) - var(--sbb-toggle-check-height)) / 2);\n}\n\n.sbb-toggle-check__circle {\n box-shadow: var(--sbb-box-shadow-level-5-hard);\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n width: var(--sbb-toggle-check-circle-diameter);\n height: var(--sbb-toggle-check-circle-diameter);\n border: var(--sbb-border-width-1x) var(--sbb-toggle-check-circle-border-style) var(--sbb-toggle-check-circle-border-color);\n border-radius: 50%;\n background-color: var(--sbb-toggle-check-circle-background-color);\n color: var(--sbb-toggle-check-icon-color);\n will-change: transform;\n transform: var(--sbb-toggle-check-circle-transform);\n transition: transform ease var(--sbb-toggle-check-animation-duration);\n}\n\n.sbb-toggle-check__icon {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: var(--sbb-size-icon-ui-small);\n height: var(--sbb-size-icon-ui-small);\n opacity: var(--sbb-toggle-check-icon-opacity);\n transition: opacity ease var(--sbb-toggle-check-animation-duration);\n}";
11
- //#endregion
12
- //#region src/elements/toggle-check/toggle-check.component.ts
13
- /**
14
- * It displays a toggle checkbox.
15
- *
16
- * @slot - Use the unnamed slot to add content to the toggle label.
17
- * @slot icon - Use this slot to provide an icon. If `icon-name` is set, a sbb-icon will be used.
18
- * @event {Event} change - The change event is fired when the user modifies the element's value. Unlike the input event, the change event is not necessarily fired for each alteration to an element's value.
19
- * @event {InputEvent} input - The input event fires when the value has been changed as a direct result of a user action.
20
- * @overrideType value - (T = string) | null
21
- */
22
- var SbbToggleCheckElement = (() => {
23
- let _classSuper = SbbIconNameMixin(SbbFormAssociatedCheckboxMixin(SbbElement));
24
- let _value_decorators;
25
- let _value_initializers = [];
26
- let _value_extraInitializers = [];
27
- let _size_decorators;
28
- let _size_initializers = [];
29
- let _size_extraInitializers = [];
30
- let _labelPosition_decorators;
31
- let _labelPosition_initializers = [];
32
- let _labelPosition_extraInitializers = [];
33
- return class SbbToggleCheckElement extends _classSuper {
34
- static {
35
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
36
- _value_decorators = [property()];
37
- _size_decorators = [property({ reflect: true })];
38
- _labelPosition_decorators = [property({
39
- attribute: "label-position",
40
- reflect: true
41
- })];
42
- __esDecorate(this, null, _value_decorators, {
43
- kind: "accessor",
44
- name: "value",
45
- static: false,
46
- private: false,
47
- access: {
48
- has: (obj) => "value" in obj,
49
- get: (obj) => obj.value,
50
- set: (obj, value) => {
51
- obj.value = value;
52
- }
53
- },
54
- metadata: _metadata
55
- }, _value_initializers, _value_extraInitializers);
56
- __esDecorate(this, null, _size_decorators, {
57
- kind: "accessor",
58
- name: "size",
59
- static: false,
60
- private: false,
61
- access: {
62
- has: (obj) => "size" in obj,
63
- get: (obj) => obj.size,
64
- set: (obj, value) => {
65
- obj.size = value;
66
- }
67
- },
68
- metadata: _metadata
69
- }, _size_initializers, _size_extraInitializers);
70
- __esDecorate(this, null, _labelPosition_decorators, {
71
- kind: "accessor",
72
- name: "labelPosition",
73
- static: false,
74
- private: false,
75
- access: {
76
- has: (obj) => "labelPosition" in obj,
77
- get: (obj) => obj.labelPosition,
78
- set: (obj, value) => {
79
- obj.labelPosition = value;
80
- }
81
- },
82
- metadata: _metadata
83
- }, _labelPosition_initializers, _labelPosition_extraInitializers);
84
- if (_metadata) Object.defineProperty(this, Symbol.metadata, {
85
- enumerable: true,
86
- configurable: true,
87
- writable: true,
88
- value: _metadata
89
- });
90
- }
91
- static {
92
- this.elementName = "sbb-toggle-check";
93
- }
94
- static {
95
- this.styles = [boxSizingStyles, unsafeCSS(toggle_check_default)];
96
- }
97
- #value_accessor_storage = __runInitializers(this, _value_initializers, null);
98
- /** Value of the form element. */
99
- get value() {
100
- return this.#value_accessor_storage;
101
- }
102
- set value(value) {
103
- this.#value_accessor_storage = value;
104
- }
105
- #size_accessor_storage = (__runInitializers(this, _value_extraInitializers), __runInitializers(this, _size_initializers, isLean() ? "xs" : "s"));
106
- /**
107
- * Size variant, either m, s or xs.
108
- * @default 's' / 'xs' (lean)
109
- */
110
- get size() {
111
- return this.#size_accessor_storage;
112
- }
113
- set size(value) {
114
- this.#size_accessor_storage = value;
115
- }
116
- #labelPosition_accessor_storage = (__runInitializers(this, _size_extraInitializers), __runInitializers(this, _labelPosition_initializers, "after"));
117
- /** The label position relative to the toggle. Defaults to 'after' */
118
- get labelPosition() {
119
- return this.#labelPosition_accessor_storage;
120
- }
121
- set labelPosition(value) {
122
- this.#labelPosition_accessor_storage = value;
123
- }
124
- requestUpdate(name, oldValue, options) {
125
- super.requestUpdate(name, oldValue, options);
126
- if (name === "checked") {
127
- this.internals.ariaChecked = `${this.checked}`;
128
- this.toggleState("checked", this.checked);
129
- }
130
- }
131
- renderIconName() {
132
- return super.renderIconName() || "tick-small";
133
- }
134
- render() {
135
- return html`
136
- <span class="sbb-toggle-check">
137
- <span class="sbb-toggle-check__container">
138
- <span class="sbb-toggle-check__label">
139
- <slot></slot>
140
- </span>
141
- <span class="sbb-toggle-check__track">
142
- <span class="sbb-toggle-check__circle">
143
- <span class="sbb-toggle-check__icon"> ${this.renderIconSlot()} </span>
144
- </span>
145
- </span>
146
- </span>
147
- </span>
148
- `;
149
- }
150
- constructor() {
151
- super(...arguments);
152
- __runInitializers(this, _labelPosition_extraInitializers);
153
- }
154
- };
155
- })();
156
- //#endregion
157
- export { SbbToggleCheckElement as t };
158
-
159
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWNoZWNrLmNvbXBvbmVudC1CRzR3X3NFOC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdG9nZ2xlLWNoZWNrL3RvZ2dsZS1jaGVjay5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90b2dnbGUtY2hlY2svdG9nZ2xlLWNoZWNrLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAvLyBVc2UgIWltcG9ydGFudCBoZXJlIHRvIG5vdCBpbnRlcmZlcmUgd2l0aCBGaXJlZm94IGZvY3VzIHJpbmcgZGVmaW5pdGlvblxuICAvLyB3aGljaCBhcHBlYXJzIGluIG5vcm1hbGl6ZSBDU1Mgb2Ygc2V2ZXJhbCBmcmFtZXdvcmtzLlxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG5cbiAgLS1zYmItdG9nZ2xlLWNoZWNrLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItMik7XG4gIC0tc2JiLXRvZ2dsZS1jaGVjay1jaGVja2VkLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItcHJpbWFyeSk7XG4gIC0tc2JiLXRvZ2dsZS1jaGVjay1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci00KTtcbiAgLS1zYmItdG9nZ2xlLWNoZWNrLWljb24tY29sb3I6IHZhcigtLXNiYi10b2dnbGUtY2hlY2stY2hlY2tlZC1jb2xvcik7XG4gIC0tc2JiLXRvZ2dsZS1jaGVjay1pY29uLW9wYWNpdHk6IDA7XG4gIC0tc2JiLXRvZ2dsZS1jaGVjay1jaXJjbGUtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMSk7XG4gIC0tc2JiLXRvZ2dsZS1jaGVjay1jaXJjbGUtYm9yZGVyLWNvbG9yOiB2YXIoLS1zYmItYm9yZGVyLWNvbG9yLTUpO1xuICAtLXNiYi10b2dnbGUtY2hlY2stY2lyY2xlLWJvcmRlci1zdHlsZTogc29saWQ7XG4gIC0tc2JiLXRvZ2dsZS1jaGVjay1jaXJjbGUtZGlhbWV0ZXI6ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgyOCl9O1xuICAtLXNiYi10b2dnbGUtY2hlY2stb3ZlcmFsbC1oZWlnaHQ6IHZhcigtLXNiYi10b2dnbGUtY2hlY2stY2lyY2xlLWRpYW1ldGVyKTtcbiAgLS1zYmItdG9nZ2xlLWNoZWNrLWNpcmNsZS10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbiAgLS1zYmItdG9nZ2xlLWNoZWNrLWhlaWdodDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDI0KX07XG4gIC0tc2JiLXRvZ2dsZS1jaGVjay13aWR0aDogY2FsYygyICogdmFyKC0tc2JiLXRvZ2dsZS1jaGVjay1oZWlnaHQpKTtcbiAgLS1zYmItdG9nZ2xlLWNoZWNrLWN1cnNvcjogdmFyKC0tc2JiLWN1cnNvci1wb2ludGVyKTtcbiAgLS1zYmItdG9nZ2xlLWNoZWNrLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgLS1zYmItdG9nZ2xlLWNoZWNrLWdhcDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtM3gpO1xuICAtLXNiYi10b2dnbGUtY2hlY2stYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi02eClcbiAgKTtcblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgLS1zYmItdG9nZ2xlLWNoZWNrLWJhY2tncm91bmQtY29sb3I6IENhbnZhc1RleHQ7XG4gICAgLS1zYmItdG9nZ2xlLWNoZWNrLWNpcmNsZS1iYWNrZ3JvdW5kLWNvbG9yOiBDYW52YXM7XG4gIH1cbn1cblxuOmhvc3QoW3NpemU9J20nXSkge1xuICAtLXNiYi10b2dnbGUtY2hlY2stb3ZlcmFsbC1oZWlnaHQ6IGNhbGMoMWVtICogdmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtdGV4dCkpO1xufVxuXG46aG9zdCg6c3RhdGUoY2hlY2tlZCkpIHtcbiAgLS1zYmItdG9nZ2xlLWNoZWNrLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi10b2dnbGUtY2hlY2stY2hlY2tlZC1jb2xvcik7XG4gIC0tc2JiLXRvZ2dsZS1jaGVjay1jaXJjbGUtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMS1uZWdhdGl2ZS1pbnZlcnRlZCk7XG4gIC0tc2JiLXRvZ2dsZS1jaGVjay1jaXJjbGUtYm9yZGVyLWNvbG9yOiB2YXIoLS1zYmItdG9nZ2xlLWNoZWNrLWJhY2tncm91bmQtY29sb3IpO1xuICAtLXNiYi10b2dnbGUtY2hlY2staWNvbi1vcGFjaXR5OiAxO1xuXG4gIC8vIEFzIHRoZSBjaXJjbGUgaXMgZ3JlYXRlciB0aGFuIHRoZSB0cmFjayBiZWxvdyxcbiAgLy8gd2UgaGF2ZSB0byBzdWJ0cmFjdCB0aGUgZGlmZmVyZW5jZSBpbiBvcmRlciB0byBub3Qgb3ZlcnNob290IGF0IHRoZSByaWdodCBzaWRlLlxuICAvLyAxMDAlIG9mIGNpcmNsZSAoMjhweCkgLSAyICogKDEwMCUgKDI4cHgpIC0gMC41ICogd2lkdGggKDQ4cHgpKSA9PiAyMHB4XG4gIC0tc2JiLXRvZ2dsZS1jaGVjay1jaXJjbGUtdHJhbnNmb3JtOiB0cmFuc2xhdGUoXG4gICAgY2FsYygxMDAlIC0gMiAqICgxMDAlIC0gMC41ICogdmFyKC0tc2JiLXRvZ2dsZS1jaGVjay13aWR0aCkpKSxcbiAgICAtNTAlXG4gICk7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIC0tc2JiLXRvZ2dsZS1jaGVjay1pY29uLWNvbG9yOiBIaWdobGlnaHQ7XG4gICAgLS1zYmItdG9nZ2xlLWNoZWNrLWJhY2tncm91bmQtY29sb3I6IEhpZ2hsaWdodDtcbiAgfVxufVxuXG46aG9zdCg6ZGlzYWJsZWQpIHtcbiAgLS1zYmItdG9nZ2xlLWNoZWNrLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTQpO1xuICAtLXNiYi10b2dnbGUtY2hlY2stY2lyY2xlLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTMpO1xuICAtLXNiYi10b2dnbGUtY2hlY2stY2lyY2xlLWJvcmRlci1jb2xvcjogdmFyKC0tc2JiLWJvcmRlci1jb2xvci01KTtcbiAgLS1zYmItdG9nZ2xlLWNoZWNrLWNpcmNsZS1ib3JkZXItc3R5bGU6IGRhc2hlZDtcbiAgLS1zYmItdG9nZ2xlLWNoZWNrLWljb24tY29sb3I6IGxpZ2h0LWRhcmsodmFyKC0tc2JiLWNvbG9yLWdyYW5pdGUpLCB2YXIoLS1zYmItY29sb3Itc3Rvcm0pKTtcbiAgLS1zYmItdG9nZ2xlLWNoZWNrLWN1cnNvcjogdmFyKC0tc2JiLWN1cnNvci1kZWZhdWx0KTtcblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgLS1zYmItdG9nZ2xlLWNoZWNrLWljb24tY29sb3I6IEdyYXlUZXh0O1xuICAgIC0tc2JiLXRvZ2dsZS1jaGVjay1iYWNrZ3JvdW5kLWNvbG9yOiBHcmF5VGV4dDtcbiAgICAtLXNiYi10b2dnbGUtY2hlY2stY2lyY2xlLWJvcmRlci1zdHlsZTogc29saWQ7XG4gIH1cbn1cblxuOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSdiZWZvcmUnXSkge1xuICAtLXNiYi10b2dnbGUtY2hlY2stZmxleC1kaXJlY3Rpb246IHJvdztcbn1cblxuLnNiYi10b2dnbGUtY2hlY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGNvbG9yOiB2YXIoLS1zYmItdG9nZ2xlLWNoZWNrLWNvbG9yKTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogdmFyKC0tc2JiLXRvZ2dsZS1jaGVjay1jdXJzb3IpO1xuXG4gIC8vIEF2b2lkcyB1bndhbnRlZCBzcGFjZSBkaXNwbGF5ZWQgaWYgbm8gbGFiZWwgdGV4dCBpcyBzZXQuXG4gIEBpbmNsdWRlIHNiYi56ZXJvLXdpZHRoLXNwYWNlO1xuXG4gIDpob3N0KDpmb2N1cy12aXNpYmxlKSAmIHtcbiAgICBAaW5jbHVkZSBzYmIuZm9jdXMtb3V0bGluZTtcblxuICAgIGJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tc2JiLWJvcmRlci1yYWRpdXMtNHgpIC0gdmFyKC0tc2JiLWZvY3VzLW91dGxpbmUtb2Zmc2V0KSk7XG4gIH1cbn1cblxuLnNiYi10b2dnbGUtY2hlY2tfX2NvbnRhaW5lciB7XG4gIEBpbmNsdWRlIHNiYi50ZXh0LXMtLXJlZ3VsYXI7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHZhcigtLXNiYi10b2dnbGUtY2hlY2stZmxleC1kaXJlY3Rpb24pO1xuICBnYXA6IHZhcigtLXNiYi10b2dnbGUtY2hlY2stZ2FwKTtcbiAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICB3aWR0aDogMTAwJTtcblxuICA6aG9zdChbc2l6ZT0nbSddKSAmIHtcbiAgICBAaW5jbHVkZSBzYmIudGV4dC1tLS1yZWd1bGFyO1xuICB9XG5cbiAgOmhvc3QoW3NpemU9J3hzJ10pICYge1xuICAgIEBpbmNsdWRlIHNiYi50ZXh0LXhzLS1yZWd1bGFyO1xuICB9XG59XG5cbi5zYmItdG9nZ2xlLWNoZWNrX19sYWJlbCB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgcGFkZGluZy1ibG9jay1zdGFydDogY2FsYyhcbiAgICAodmFyKC0tc2JiLXRvZ2dsZS1jaGVjay1jaXJjbGUtZGlhbWV0ZXIpIC0gKHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LXRleHQpICogMWVtKSkgLyAyXG4gICk7XG5cbiAgOmhvc3QoOm5vdCg6c3RhdGUoc2xvdHRlZCkpKSAmIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5zYmItdG9nZ2xlLWNoZWNrX190cmFjayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4td2lkdGg6IHZhcigtLXNiYi10b2dnbGUtY2hlY2std2lkdGgpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi10b2dnbGUtY2hlY2staGVpZ2h0KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLWJvcmRlci1yYWRpdXMtaW5maW5pdHkpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItdG9nZ2xlLWNoZWNrLWJhY2tncm91bmQtY29sb3IpO1xuXG4gIC8vIFJlc2VydmUgc3BhY2Ugb2Ygb3ZlcmxhcHBpbmcgY2lyY2xlXG4gIG1hcmdpbi1ibG9jazogY2FsYygodmFyKC0tc2JiLXRvZ2dsZS1jaGVjay1vdmVyYWxsLWhlaWdodCkgLSB2YXIoLS1zYmItdG9nZ2xlLWNoZWNrLWhlaWdodCkpIC8gMik7XG59XG5cbi5zYmItdG9nZ2xlLWNoZWNrX19jaXJjbGUge1xuICBib3gtc2hhZG93OiB2YXIoLS1zYmItYm94LXNoYWRvdy1sZXZlbC01LWhhcmQpO1xuICBAaW5jbHVkZSBzYmIuYWJzb2x1dGUtY2VudGVyLXk7XG5cbiAgd2lkdGg6IHZhcigtLXNiYi10b2dnbGUtY2hlY2stY2lyY2xlLWRpYW1ldGVyKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItdG9nZ2xlLWNoZWNrLWNpcmNsZS1kaWFtZXRlcik7XG4gIGJvcmRlcjogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0xeCkgdmFyKC0tc2JiLXRvZ2dsZS1jaGVjay1jaXJjbGUtYm9yZGVyLXN0eWxlKVxuICAgIHZhcigtLXNiYi10b2dnbGUtY2hlY2stY2lyY2xlLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXRvZ2dsZS1jaGVjay1jaXJjbGUtYmFja2dyb3VuZC1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1zYmItdG9nZ2xlLWNoZWNrLWljb24tY29sb3IpO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB0cmFuc2Zvcm06IHZhcigtLXNiYi10b2dnbGUtY2hlY2stY2lyY2xlLXRyYW5zZm9ybSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSBlYXNlIHZhcigtLXNiYi10b2dnbGUtY2hlY2stYW5pbWF0aW9uLWR1cmF0aW9uKTtcbn1cblxuLnNiYi10b2dnbGUtY2hlY2tfX2ljb24ge1xuICBAaW5jbHVkZSBzYmIuYWJzb2x1dGUtY2VudGVyLXgteTtcblxuICB3aWR0aDogdmFyKC0tc2JiLXNpemUtaWNvbi11aS1zbWFsbCk7XG4gIGhlaWdodDogdmFyKC0tc2JiLXNpemUtaWNvbi11aS1zbWFsbCk7XG4gIG9wYWNpdHk6IHZhcigtLXNiYi10b2dnbGUtY2hlY2staWNvbi1vcGFjaXR5KTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSBlYXNlIHZhcigtLXNiYi10b2dnbGUtY2hlY2stYW5pbWF0aW9uLWR1cmF0aW9uKTtcbn1cbiIsImltcG9ydCB7XG4gIGh0bWwsXG4gIHVuc2FmZUNTUyxcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgdHlwZSBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkVsZW1lbnQgfSBmcm9tICcuLi9jb3JlL2Jhc2UtZWxlbWVudHMudHMnO1xuaW1wb3J0IHsgaXNMZWFuIH0gZnJvbSAnLi4vY29yZS9kb20udHMnO1xuaW1wb3J0IHsgU2JiRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluIH0gZnJvbSAnLi4vY29yZS9taXhpbnMudHMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnLi4vY29yZS9zdHlsZXMudHMnO1xuaW1wb3J0IHsgU2JiSWNvbk5hbWVNaXhpbiB9IGZyb20gJy4uL2ljb24udHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi90b2dnbGUtY2hlY2suc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgdG9nZ2xlIGNoZWNrYm94LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIHRvZ2dsZSBsYWJlbC5cbiAqIEBzbG90IGljb24gLSBVc2UgdGhpcyBzbG90IHRvIHByb3ZpZGUgYW4gaWNvbi4gSWYgYGljb24tbmFtZWAgaXMgc2V0LCBhIHNiYi1pY29uIHdpbGwgYmUgdXNlZC5cbiAqIEBldmVudCB7RXZlbnR9IGNoYW5nZSAtIFRoZSBjaGFuZ2UgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBtb2RpZmllcyB0aGUgZWxlbWVudCdzIHZhbHVlLiBVbmxpa2UgdGhlIGlucHV0IGV2ZW50LCB0aGUgY2hhbmdlIGV2ZW50IGlzIG5vdCBuZWNlc3NhcmlseSBmaXJlZCBmb3IgZWFjaCBhbHRlcmF0aW9uIHRvIGFuIGVsZW1lbnQncyB2YWx1ZS5cbiAqIEBldmVudCB7SW5wdXRFdmVudH0gaW5wdXQgLSBUaGUgaW5wdXQgZXZlbnQgZmlyZXMgd2hlbiB0aGUgdmFsdWUgaGFzIGJlZW4gY2hhbmdlZCBhcyBhIGRpcmVjdCByZXN1bHQgb2YgYSB1c2VyIGFjdGlvbi5cbiAqIEBvdmVycmlkZVR5cGUgdmFsdWUgLSAoVCA9IHN0cmluZykgfCBudWxsXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJUb2dnbGVDaGVja0VsZW1lbnQ8VCA9IHN0cmluZz4gZXh0ZW5kcyBTYmJJY29uTmFtZU1peGluKFxuICBTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94TWl4aW4oU2JiRWxlbWVudCksXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi10b2dnbGUtY2hlY2snO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCB1bnNhZmVDU1Moc3R5bGUpXTtcblxuICAvKiogVmFsdWUgb2YgdGhlIGZvcm0gZWxlbWVudC4gKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHZhbHVlOiBUIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFNpemUgdmFyaWFudCwgZWl0aGVyIG0sIHMgb3IgeHMuXG4gICAqIEBkZWZhdWx0ICdzJyAvICd4cycgKGxlYW4pXG4gICAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBzaXplOiAneHMnIHwgJ3MnIHwgJ20nID0gaXNMZWFuKCkgPyAneHMnIDogJ3MnO1xuXG4gIC8qKiBUaGUgbGFiZWwgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHRvZ2dsZS4gRGVmYXVsdHMgdG8gJ2FmdGVyJyAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdsYWJlbC1wb3NpdGlvbicsIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIGxhYmVsUG9zaXRpb246ICdiZWZvcmUnIHwgJ2FmdGVyJyA9ICdhZnRlcic7XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZCB7XG4gICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG4gICAgaWYgKG5hbWUgPT09ICdjaGVja2VkJykge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYUNoZWNrZWQgPSBgJHt0aGlzLmNoZWNrZWR9YDtcbiAgICAgIC8vIEFzIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hNaXhpbiBkb2VzIG5vdCByZWZsZWN0IGNoZWNrZWQgcHJvcGVydHksIHdlIGFkZCBhIGNoZWNrZWQgc3RhdGUuXG4gICAgICB0aGlzLnRvZ2dsZVN0YXRlKCdjaGVja2VkJywgdGhpcy5jaGVja2VkKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVySWNvbk5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3VwZXIucmVuZGVySWNvbk5hbWUoKSB8fCAndGljay1zbWFsbCc7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXRvZ2dsZS1jaGVja1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi10b2dnbGUtY2hlY2tfX2NvbnRhaW5lclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXRvZ2dsZS1jaGVja19fbGFiZWxcIj5cbiAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItdG9nZ2xlLWNoZWNrX190cmFja1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItdG9nZ2xlLWNoZWNrX19jaXJjbGVcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItdG9nZ2xlLWNoZWNrX19pY29uXCI+ICR7dGhpcy5yZW5kZXJJY29uU2xvdCgpfSA8L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRvZ2dsZS1jaGVjayc6IFNiYlRvZ2dsZUNoZWNrRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUMwQmEsK0JBQXFCO21CQUFxQixpQkFDckQsK0JBQStCLFdBQVcsQ0FDM0M7Ozs7Ozs7Ozs7Y0FGWSw4QkFBMEMsWUFFdEQ7Ozt3QkFLRSxVQUFVLENBQUE7dUJBT1YsU0FBUyxFQUFFLFNBQVMsTUFBTSxDQUFDLENBQUE7Z0NBRzNCLFNBQVM7SUFBRSxXQUFXO0lBQWtCLFNBQVM7SUFBTSxDQUFDLENBQUE7QUFUekQsZ0JBQUEsTUFBQSxNQUFBLG1CQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsV0FBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFLLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBTCxRQUFLOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEscUJBQUEseUJBQUE7QUFNUSxnQkFBQSxNQUFBLE1BQUEsa0JBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxVQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQUksTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFKLE9BQUk7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSxvQkFBQSx3QkFBQTtBQUlqRCxnQkFBQSxNQUFBLE1BQUEsMkJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxtQkFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFhLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBYixnQkFBYTs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLDZCQUFBLGlDQUFBOzs7Ozs7Ozs7QUFmRyxRQUFBLGNBQXNCOzs7QUFDL0IsUUFBQSxTQUF5QixDQUFDLGlCQUFpQixVQUFVLHFCQUFNLENBQUM7O0VBSW5GLDBCQUFBLGtCQUFBLE1BQUEscUJBQWtDLEtBQUk7O0VBQXRDLElBQWdCLFFBQUs7QUFBQSxVQUFBLE1BQUE7O0VBQXJCLElBQWdCLE1BQUssT0FBQTtBQUFBLFNBQUEseUJBQUE7O0VBTVEsMEJBQUEsa0JBQUEsTUFBQSx5QkFBQSxFQUFBLGtCQUFBLE1BQUEsb0JBQXlDLFFBQVEsR0FBRyxPQUFPLElBQUc7Ozs7O0VBQTlELElBQWdCLE9BQUk7QUFBQSxVQUFBLE1BQUE7O0VBQXBCLElBQWdCLEtBQUksT0FBQTtBQUFBLFNBQUEsd0JBQUE7O0VBSWpELG1DQUFBLGtCQUFBLE1BQUEsd0JBQUEsRUFBQSxrQkFBQSxNQUFBLDZCQUFvRCxRQUFPOztFQUEzRCxJQUFnQixnQkFBYTtBQUFBLFVBQUEsTUFBQTs7RUFBN0IsSUFBZ0IsY0FBYSxPQUFBO0FBQUEsU0FBQSxpQ0FBQTs7RUFFYixjQUNkLE1BQ0EsVUFDQSxTQUE2QjtBQUU3QixTQUFNLGNBQWMsTUFBTSxVQUFVLFFBQVE7QUFDNUMsT0FBSSxTQUFTLFdBQVc7QUFDdEIsU0FBSyxVQUFVLGNBQWMsR0FBRyxLQUFLO0FBRXJDLFNBQUssWUFBWSxXQUFXLEtBQUssUUFBUTs7O0VBSTFCLGlCQUFjO0FBQy9CLFVBQU8sTUFBTSxnQkFBZ0IsSUFBSTs7RUFHaEIsU0FBTTtBQUN2QixVQUFPLElBQUk7Ozs7Ozs7O3NEQVF1QyxLQUFLLGdCQUFnQixDQUFBIn0=
@@ -1,169 +0,0 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { html, unsafeCSS } from "lit";
3
- import { property } from "lit/decorators.js";
4
- import { SbbElement } from "./core/base-elements.js";
5
- import { forceType } from "./core/decorators.js";
6
- import { SbbDisabledMixin } from "./core/mixins.js";
7
- import { boxSizingStyles } from "./core/styles.js";
8
- import { SbbIconNameMixin } from "./icon.js";
9
- import { ResizeController } from "@lit-labs/observers/resize-controller.js";
10
- //#region src/elements/toggle/toggle-option/toggle-option.scss?inline
11
- var toggle_option_default = ":host {\n --sbb-toggle-option-cursor: var(--sbb-cursor-pointer);\n --sbb-toggle-option-color: var(--sbb-color-anthracite);\n --sbb-toggle-option-color: light-dark(var(--sbb-color-anthracite), var(--sbb-color-cloud));\n --sbb-toggle-option-icon-min-size: var(--sbb-size-icon-ui-small);\n display: inline-block;\n overflow: hidden;\n outline: none !important;\n}\n\n:host([checked]) {\n --sbb-toggle-option-color: var(--sbb-color-2);\n}\n\n:host([disabled]) {\n --sbb-toggle-option-cursor: unset;\n --sbb-toggle-option-color: var(--sbb-color-anthracite);\n --sbb-toggle-option-color: light-dark(var(--sbb-color-anthracite), var(--sbb-color-cloud));\n}\n\n.sbb-toggle-option {\n --sbb-text-font-size: var(--sbb-text-font-size-xs);\n font-family: var(--sbb-typo-font-family);\n font-weight: normal;\n line-height: var(--sbb-typo-line-height-text);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n font-size: var(--sbb-text-font-size);\n font-weight: bold;\n display: flex;\n justify-content: center;\n align-items: center;\n gap: var(--sbb-spacing-fixed-1x);\n height: var(--sbb-toggle-height);\n padding-inline: var(--sbb-toggle-padding-inline);\n color: var(--sbb-toggle-option-color);\n cursor: var(--sbb-toggle-option-cursor);\n}\n\n.sbb-toggle-option__label {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\nsbb-icon,\n::slotted(sbb-icon) {\n min-width: var(--sbb-toggle-option-icon-min-size);\n min-height: var(--sbb-toggle-option-icon-min-size);\n}";
12
- //#endregion
13
- //#region src/elements/toggle/toggle-option/toggle-option.component.ts
14
- /**
15
- * It displays a toggle option within a `sbb-toggle`.
16
- *
17
- * @slot - Use the unnamed slot to add content to the label of the toggle option.
18
- * @slot icon - Slot used to render the `sbb-icon`.
19
- * @event {InputEvent} input - The input event fires when the value has been changed as a direct result of a user action.
20
- * @overrideType value - (T = string) | null
21
- */
22
- var SbbToggleOptionElement = (() => {
23
- let _classSuper = SbbDisabledMixin(SbbIconNameMixin(SbbElement));
24
- let _checked_decorators;
25
- let _checked_initializers = [];
26
- let _checked_extraInitializers = [];
27
- let _value_decorators;
28
- let _value_initializers = [];
29
- let _value_extraInitializers = [];
30
- return class SbbToggleOptionElement extends _classSuper {
31
- static {
32
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
33
- _checked_decorators = [forceType(), property({
34
- reflect: true,
35
- type: Boolean
36
- })];
37
- _value_decorators = [property()];
38
- __esDecorate(this, null, _checked_decorators, {
39
- kind: "accessor",
40
- name: "checked",
41
- static: false,
42
- private: false,
43
- access: {
44
- has: (obj) => "checked" in obj,
45
- get: (obj) => obj.checked,
46
- set: (obj, value) => {
47
- obj.checked = value;
48
- }
49
- },
50
- metadata: _metadata
51
- }, _checked_initializers, _checked_extraInitializers);
52
- __esDecorate(this, null, _value_decorators, {
53
- kind: "accessor",
54
- name: "value",
55
- static: false,
56
- private: false,
57
- access: {
58
- has: (obj) => "value" in obj,
59
- get: (obj) => obj.value,
60
- set: (obj, value) => {
61
- obj.value = value;
62
- }
63
- },
64
- metadata: _metadata
65
- }, _value_initializers, _value_extraInitializers);
66
- if (_metadata) Object.defineProperty(this, Symbol.metadata, {
67
- enumerable: true,
68
- configurable: true,
69
- writable: true,
70
- value: _metadata
71
- });
72
- }
73
- static {
74
- this.elementName = "sbb-toggle-option";
75
- }
76
- static {
77
- this.role = "radio";
78
- }
79
- static {
80
- this.styles = [boxSizingStyles, unsafeCSS(toggle_option_default)];
81
- }
82
- #checked_accessor_storage;
83
- /** Whether the toggle-option is checked. */
84
- get checked() {
85
- return this.#checked_accessor_storage;
86
- }
87
- set checked(value) {
88
- this.#checked_accessor_storage = value;
89
- }
90
- #value_accessor_storage;
91
- /** Value of toggle-option. */
92
- get value() {
93
- return this.#value_accessor_storage;
94
- }
95
- set value(value) {
96
- this.#value_accessor_storage = value;
97
- }
98
- constructor() {
99
- super();
100
- this.#checked_accessor_storage = __runInitializers(this, _checked_initializers, false);
101
- this.#value_accessor_storage = (__runInitializers(this, _checked_extraInitializers), __runInitializers(this, _value_initializers, null));
102
- this._toggle = (__runInitializers(this, _value_extraInitializers), null);
103
- this.addEventListener?.("input", () => this._handleInput());
104
- this.addEventListener?.("click", () => {
105
- if (!this.disabled && !this.checked) this.dispatchEvent(new InputEvent("input", {
106
- bubbles: true,
107
- composed: true
108
- }));
109
- });
110
- this.addController(new ResizeController(this, {
111
- skipInitial: true,
112
- callback: () => this._toggle?.updatePillPosition?.(true)
113
- }));
114
- }
115
- connectedCallback() {
116
- super.connectedCallback();
117
- this._toggle = this.closest?.("sbb-toggle") ?? null;
118
- this._verifyTabindex();
119
- this._toggle?.updatePillPosition?.(true);
120
- }
121
- disconnectedCallback() {
122
- super.disconnectedCallback();
123
- this._toggle = null;
124
- }
125
- firstUpdated(changedProperties) {
126
- super.firstUpdated(changedProperties);
127
- this._toggle?.updatePillPosition?.(true);
128
- }
129
- willUpdate(changedProperties) {
130
- super.willUpdate(changedProperties);
131
- if (changedProperties.has("checked")) {
132
- this.internals.ariaChecked = `${this.checked}`;
133
- this._verifyTabindex();
134
- if (this.checked) this._uncheckOtherOptions();
135
- }
136
- if (changedProperties.has("disabled")) this._handleDisabledChange();
137
- }
138
- _uncheckOtherOptions() {
139
- this._toggle?.options.filter((o) => o !== this).forEach((o) => o.checked = false);
140
- this._toggle?.statusChanged();
141
- }
142
- _handleDisabledChange() {
143
- this.internals.ariaDisabled = this.disabled ? "true" : null;
144
- this._verifyTabindex();
145
- }
146
- _handleInput() {
147
- if (this.disabled) return;
148
- this.checked = true;
149
- this._uncheckOtherOptions();
150
- }
151
- _verifyTabindex() {
152
- this.tabIndex = this.checked && !this.disabled ? 0 : -1;
153
- }
154
- render() {
155
- return html`
156
- <div class="sbb-toggle-option">
157
- ${this.renderIconSlot()}
158
- <span class="sbb-toggle-option__label">
159
- <slot></slot>
160
- </span>
161
- </div>
162
- `;
163
- }
164
- };
165
- })();
166
- //#endregion
167
- export { SbbToggleOptionElement as t };
168
-
169
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLW9wdGlvbi5jb21wb25lbnQtRFJvZEZ3RmsuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RvZ2dsZS90b2dnbGUtb3B0aW9uL3RvZ2dsZS1vcHRpb24uc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdG9nZ2xlL3RvZ2dsZS1vcHRpb24vdG9nZ2xlLW9wdGlvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi10b2dnbGUtb3B0aW9uLWN1cnNvcjogdmFyKC0tc2JiLWN1cnNvci1wb2ludGVyKTtcbiAgLS1zYmItdG9nZ2xlLW9wdGlvbi1jb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItYW50aHJhY2l0ZSksIHZhcigtLXNiYi1jb2xvci1jbG91ZCkpO1xuICAtLXNiYi10b2dnbGUtb3B0aW9uLWljb24tbWluLXNpemU6IHZhcigtLXNiYi1zaXplLWljb24tdWktc21hbGwpO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAvLyBVc2UgIWltcG9ydGFudCBoZXJlIHRvIG5vdCBpbnRlcmZlcmUgd2l0aCBGaXJlZm94IGZvY3VzIHJpbmcgZGVmaW5pdGlvblxuICAvLyB3aGljaCBhcHBlYXJzIGluIG5vcm1hbGl6ZSBDU1Mgb2Ygc2V2ZXJhbCBmcmFtZXdvcmtzLlxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbjpob3N0KFtjaGVja2VkXSkge1xuICAtLXNiYi10b2dnbGUtb3B0aW9uLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItMik7XG59XG5cbjpob3N0KFtkaXNhYmxlZF0pIHtcbiAgLS1zYmItdG9nZ2xlLW9wdGlvbi1jdXJzb3I6IHVuc2V0O1xuICAtLXNiYi10b2dnbGUtb3B0aW9uLWNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1hbnRocmFjaXRlKSwgdmFyKC0tc2JiLWNvbG9yLWNsb3VkKSk7XG59XG5cbi5zYmItdG9nZ2xlLW9wdGlvbiB7XG4gIEBpbmNsdWRlIHNiYi50ZXh0LXhzLS1ib2xkO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTF4KTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItdG9nZ2xlLWhlaWdodCk7XG4gIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItdG9nZ2xlLXBhZGRpbmctaW5saW5lKTtcbiAgY29sb3I6IHZhcigtLXNiYi10b2dnbGUtb3B0aW9uLWNvbG9yKTtcbiAgY3Vyc29yOiB2YXIoLS1zYmItdG9nZ2xlLW9wdGlvbi1jdXJzb3IpO1xufVxuXG4uc2JiLXRvZ2dsZS1vcHRpb25fX2xhYmVsIHtcbiAgQGluY2x1ZGUgc2JiLmVsbGlwc2lzO1xufVxuXG5zYmItaWNvbixcbjo6c2xvdHRlZChzYmItaWNvbikge1xuICBtaW4td2lkdGg6IHZhcigtLXNiYi10b2dnbGUtb3B0aW9uLWljb24tbWluLXNpemUpO1xuICBtaW4taGVpZ2h0OiB2YXIoLS1zYmItdG9nZ2xlLW9wdGlvbi1pY29uLW1pbi1zaXplKTtcbn1cbiIsImltcG9ydCB7IFJlc2l6ZUNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL3Jlc2l6ZS1jb250cm9sbGVyLmpzJztcbmltcG9ydCB7XG4gIGh0bWwsXG4gIHVuc2FmZUNTUyxcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlLWVsZW1lbnRzLnRzJztcbmltcG9ydCB7IGZvcmNlVHlwZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy50cyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZE1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMudHMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnLi4vLi4vY29yZS9zdHlsZXMudHMnO1xuaW1wb3J0IHsgU2JiSWNvbk5hbWVNaXhpbiB9IGZyb20gJy4uLy4uL2ljb24udHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJUb2dnbGVFbGVtZW50IH0gZnJvbSAnLi4vdG9nZ2xlL3RvZ2dsZS5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi90b2dnbGUtb3B0aW9uLnNjc3M/aW5saW5lJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIHRvZ2dsZSBvcHRpb24gd2l0aGluIGEgYHNiYi10b2dnbGVgLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIGxhYmVsIG9mIHRoZSB0b2dnbGUgb3B0aW9uLlxuICogQHNsb3QgaWNvbiAtIFNsb3QgdXNlZCB0byByZW5kZXIgdGhlIGBzYmItaWNvbmAuXG4gKiBAZXZlbnQge0lucHV0RXZlbnR9IGlucHV0IC0gVGhlIGlucHV0IGV2ZW50IGZpcmVzIHdoZW4gdGhlIHZhbHVlIGhhcyBiZWVuIGNoYW5nZWQgYXMgYSBkaXJlY3QgcmVzdWx0IG9mIGEgdXNlciBhY3Rpb24uXG4gKiBAb3ZlcnJpZGVUeXBlIHZhbHVlIC0gKFQgPSBzdHJpbmcpIHwgbnVsbFxuICovXG5leHBvcnQgY2xhc3MgU2JiVG9nZ2xlT3B0aW9uRWxlbWVudDxUID0gc3RyaW5nPiBleHRlbmRzIFNiYkRpc2FibGVkTWl4aW4oXG4gIFNiYkljb25OYW1lTWl4aW4oU2JiRWxlbWVudCksXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi10b2dnbGUtb3B0aW9uJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gJ3JhZGlvJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHRvZ2dsZS1vcHRpb24gaXMgY2hlY2tlZC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGNoZWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogVmFsdWUgb2YgdG9nZ2xlLW9wdGlvbi4gKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHZhbHVlOiBUIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfdG9nZ2xlOiBTYmJUb2dnbGVFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgLy8gV2UgbmVlZCB0byBsaXN0ZW4gaW5wdXQgZXZlbnQgb24gaG9zdCBhcyB3aXRoIGtleWJvYXJkIG5hdmlnYXRpb25cbiAgICAvLyB0aGUgSW5wdXQgRXZlbnQgaXMgdHJpZ2dlcmVkIGZyb20gc2JiLXRvZ2dsZS5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignaW5wdXQnLCAoKSA9PiB0aGlzLl9oYW5kbGVJbnB1dCgpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMuY2hlY2tlZCkge1xuICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZENvbnRyb2xsZXIoXG4gICAgICBuZXcgUmVzaXplQ29udHJvbGxlcih0aGlzLCB7XG4gICAgICAgIHNraXBJbml0aWFsOiB0cnVlLFxuICAgICAgICBjYWxsYmFjazogKCkgPT4gdGhpcy5fdG9nZ2xlPy51cGRhdGVQaWxsUG9zaXRpb24/Lih0cnVlKSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIC8vIFdlIGNhbiB1c2UgY2xvc2VzdCBoZXJlLCBhcyB3ZSBleHBlY3QgdGhlIHBhcmVudCBzYmItdG9nZ2xlIHRvIGJlIGluIGxpZ2h0IERPTS5cbiAgICB0aGlzLl90b2dnbGUgPSB0aGlzLmNsb3Nlc3Q/Lignc2JiLXRvZ2dsZScpID8/IG51bGw7XG4gICAgdGhpcy5fdmVyaWZ5VGFiaW5kZXgoKTtcbiAgICB0aGlzLl90b2dnbGU/LnVwZGF0ZVBpbGxQb3NpdGlvbj8uKHRydWUpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fdG9nZ2xlID0gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMuX3RvZ2dsZT8udXBkYXRlUGlsbFBvc2l0aW9uPy4odHJ1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2NoZWNrZWQnKSkge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYUNoZWNrZWQgPSBgJHt0aGlzLmNoZWNrZWR9YDtcbiAgICAgIHRoaXMuX3ZlcmlmeVRhYmluZGV4KCk7XG4gICAgICBpZiAodGhpcy5jaGVja2VkKSB7XG4gICAgICAgIHRoaXMuX3VuY2hlY2tPdGhlck9wdGlvbnMoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGlzYWJsZWQnKSkge1xuICAgICAgdGhpcy5faGFuZGxlRGlzYWJsZWRDaGFuZ2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91bmNoZWNrT3RoZXJPcHRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuX3RvZ2dsZT8ub3B0aW9ucy5maWx0ZXIoKG8pID0+IG8gIT09IHRoaXMpLmZvckVhY2goKG8pID0+IChvLmNoZWNrZWQgPSBmYWxzZSkpO1xuICAgIHRoaXMuX3RvZ2dsZT8uc3RhdHVzQ2hhbmdlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlRGlzYWJsZWRDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5pbnRlcm5hbHMuYXJpYURpc2FibGVkID0gdGhpcy5kaXNhYmxlZCA/ICd0cnVlJyA6IG51bGw7XG4gICAgdGhpcy5fdmVyaWZ5VGFiaW5kZXgoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUlucHV0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2hlY2tlZCA9IHRydWU7XG4gICAgdGhpcy5fdW5jaGVja090aGVyT3B0aW9ucygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmVyaWZ5VGFiaW5kZXgoKTogdm9pZCB7XG4gICAgdGhpcy50YWJJbmRleCA9IHRoaXMuY2hlY2tlZCAmJiAhdGhpcy5kaXNhYmxlZCA/IDAgOiAtMTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi10b2dnbGUtb3B0aW9uXCI+XG4gICAgICAgICR7dGhpcy5yZW5kZXJJY29uU2xvdCgpfVxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi10b2dnbGUtb3B0aW9uX19sYWJlbFwiPlxuICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRvZ2dsZS1vcHRpb24nOiBTYmJUb2dnbGVPcHRpb25FbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQzJCYSxnQ0FBc0I7bUJBQXFCLGlCQUN0RCxpQkFBaUIsV0FBVyxDQUM3Qjs7Ozs7OztjQUZZLCtCQUEyQyxZQUV2RDs7OzBCQU1FLFdBQVcsRUFDWCxTQUFTO0lBQUUsU0FBUztJQUFNLE1BQU07SUFBUyxDQUFDLENBQUE7d0JBSTFDLFVBQVUsQ0FBQTtBQUhYLGdCQUFBLE1BQUEsTUFBQSxxQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLGFBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBTyxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVAsVUFBTzs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLHVCQUFBLDJCQUFBO0FBSXZCLGdCQUFBLE1BQUEsTUFBQSxtQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLFdBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBSyxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUwsUUFBSzs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLHFCQUFBLHlCQUFBOzs7Ozs7Ozs7QUFYVyxRQUFBLGNBQXNCOzs7QUFDdEIsUUFBQSxPQUFPOzs7QUFDaEIsUUFBQSxTQUF5QixDQUFDLGlCQUFpQixVQUFVLHNCQUFNLENBQUM7O0VBS25GOztFQUFBLElBQWdCLFVBQU87QUFBQSxVQUFBLE1BQUE7O0VBQXZCLElBQWdCLFFBQU8sT0FBQTtBQUFBLFNBQUEsMkJBQUE7O0VBSXZCOztFQUFBLElBQWdCLFFBQUs7QUFBQSxVQUFBLE1BQUE7O0VBQXJCLElBQWdCLE1BQUssT0FBQTtBQUFBLFNBQUEseUJBQUE7O0VBSXJCLGNBQUE7QUFDRSxVQUFPO0FBVE8sU0FBQSwyQkFBQSxrQkFBQSxNQUFBLHVCQUFtQixNQUFLO0FBSXhCLFNBQUEsMEJBQUEsa0JBQUEsTUFBQSwyQkFBQSxFQUFBLGtCQUFBLE1BQUEscUJBQWtCLEtBQUk7QUFFOUIsUUFBQSxXQUFPLGtCQUFBLE1BQUEseUJBQUEsRUFBNEI7QUFNekMsUUFBSyxtQkFBbUIsZUFBZSxLQUFLLGNBQWMsQ0FBQztBQUMzRCxRQUFLLG1CQUFtQixlQUFjO0FBQ3BDLFFBQUksQ0FBQyxLQUFLLFlBQVksQ0FBQyxLQUFLLFFBQzFCLE1BQUssY0FBYyxJQUFJLFdBQVcsU0FBUztLQUFFLFNBQVM7S0FBTSxVQUFVO0tBQU0sQ0FBQyxDQUFDO0tBRWhGO0FBRUYsUUFBSyxjQUNILElBQUksaUJBQWlCLE1BQU07SUFDekIsYUFBYTtJQUNiLGdCQUFnQixLQUFLLFNBQVMscUJBQXFCLEtBQUE7SUFDcEQsQ0FBQyxDQUNIOztFQUdhLG9CQUFpQjtBQUMvQixTQUFNLG1CQUFtQjtBQUd6QixRQUFLLFVBQVUsS0FBSyxVQUFVLGFBQWEsSUFBSTtBQUMvQyxRQUFLLGlCQUFpQjtBQUN0QixRQUFLLFNBQVMscUJBQXFCLEtBQUs7O0VBRzFCLHVCQUFvQjtBQUNsQyxTQUFNLHNCQUFzQjtBQUM1QixRQUFLLFVBQVU7O0VBR0UsYUFBYSxtQkFBdUM7QUFDckUsU0FBTSxhQUFhLGtCQUFrQjtBQUVyQyxRQUFLLFNBQVMscUJBQXFCLEtBQUs7O0VBR3ZCLFdBQVcsbUJBQXVDO0FBQ25FLFNBQU0sV0FBVyxrQkFBa0I7QUFFbkMsT0FBSSxrQkFBa0IsSUFBSSxVQUFVLEVBQUU7QUFDcEMsU0FBSyxVQUFVLGNBQWMsR0FBRyxLQUFLO0FBQ3JDLFNBQUssaUJBQWlCO0FBQ3RCLFFBQUksS0FBSyxRQUNQLE1BQUssc0JBQXNCOztBQUcvQixPQUFJLGtCQUFrQixJQUFJLFdBQVcsQ0FDbkMsTUFBSyx1QkFBdUI7O0VBSXhCLHVCQUFvQjtBQUMxQixRQUFLLFNBQVMsUUFBUSxRQUFRLE1BQU0sTUFBTSxLQUFLLENBQUMsU0FBUyxNQUFPLEVBQUUsVUFBVSxNQUFPO0FBQ25GLFFBQUssU0FBUyxlQUFlOztFQUd2Qix3QkFBcUI7QUFDM0IsUUFBSyxVQUFVLGVBQWUsS0FBSyxXQUFXLFNBQVM7QUFDdkQsUUFBSyxpQkFBaUI7O0VBR2hCLGVBQVk7QUFDbEIsT0FBSSxLQUFLLFNBQ1A7QUFFRixRQUFLLFVBQVU7QUFDZixRQUFLLHNCQUFzQjs7RUFHckIsa0JBQWU7QUFDckIsUUFBSyxXQUFXLEtBQUssV0FBVyxDQUFDLEtBQUssV0FBVyxJQUFJOztFQUdwQyxTQUFNO0FBQ3ZCLFVBQU8sSUFBSTs7VUFFTCxLQUFLLGdCQUFnQixDQUFBIn0=