@sbb-esta/lyne-elements 2.5.0 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/autocomplete/autocomplete-base-element.d.ts +19 -21
  2. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  3. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
  4. package/autocomplete-grid/autocomplete-grid-button.js +7 -7
  5. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts +2 -2
  6. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts.map +1 -1
  7. package/autocomplete.js +145 -136
  8. package/chip/chip/chip.d.ts +32 -0
  9. package/chip/chip/chip.d.ts.map +1 -0
  10. package/chip/chip-group/chip-group.d.ts +100 -0
  11. package/chip/chip-group/chip-group.d.ts.map +1 -0
  12. package/chip/chip-group.d.ts +2 -0
  13. package/chip/chip-group.d.ts.map +1 -0
  14. package/chip/chip-group.js +225 -0
  15. package/chip/chip.d.ts +2 -0
  16. package/chip/chip.d.ts.map +1 -0
  17. package/chip/chip.js +85 -0
  18. package/chip.d.ts +3 -0
  19. package/chip.d.ts.map +1 -0
  20. package/chip.js +2 -0
  21. package/clock/clock.d.ts.map +1 -1
  22. package/clock.js +1 -1
  23. package/core/base-elements/button-base-element.d.ts +5 -0
  24. package/core/base-elements/button-base-element.d.ts.map +1 -1
  25. package/core/base-elements.js +94 -79
  26. package/core/controllers/id-observer-controller.d.ts +21 -0
  27. package/core/controllers/id-observer-controller.d.ts.map +1 -0
  28. package/core/controllers/media-matchers-controller.d.ts.map +1 -1
  29. package/core/controllers.d.ts +2 -1
  30. package/core/controllers.d.ts.map +1 -1
  31. package/core/controllers.js +135 -80
  32. package/core/datetime/native-date-adapter.d.ts.map +1 -1
  33. package/core/datetime.js +8 -3
  34. package/core/dom/find-referenced-element.d.ts +1 -0
  35. package/core/dom/find-referenced-element.d.ts.map +1 -1
  36. package/core/dom/input-element.d.ts +3 -1
  37. package/core/dom/input-element.d.ts.map +1 -1
  38. package/core/dom/platform.d.ts +5 -0
  39. package/core/dom/platform.d.ts.map +1 -1
  40. package/core/dom.js +10 -9
  41. package/core/i18n/i18n.d.ts +3 -0
  42. package/core/i18n/i18n.d.ts.map +1 -1
  43. package/core/i18n.js +135 -117
  44. package/core/mixins/form-associated-input-mixin.d.ts.map +1 -1
  45. package/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
  46. package/core/mixins.js +71 -63
  47. package/core/overlay/overlay-trigger-attributes.d.ts +1 -1
  48. package/core/overlay/overlay-trigger-attributes.d.ts.map +1 -1
  49. package/core/overlay/position.d.ts +1 -1
  50. package/core/overlay/position.d.ts.map +1 -1
  51. package/core/styles/core.scss +89 -24
  52. package/core/styles/image.scss +1 -1
  53. package/core/styles/mixins/table.scss +63 -26
  54. package/core/styles/table.scss +16 -0
  55. package/core/testing/scroll.d.ts +1 -0
  56. package/core/testing/scroll.d.ts.map +1 -1
  57. package/core/testing/wait-for-image-ready.d.ts.map +1 -1
  58. package/core/testing.js +8 -5
  59. package/core.css +90 -34
  60. package/custom-elements.json +2568 -740
  61. package/datepicker/datepicker/datepicker.d.ts +4 -4
  62. package/datepicker/datepicker/datepicker.d.ts.map +1 -1
  63. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +0 -3
  64. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  65. package/datepicker/datepicker-toggle.js +30 -34
  66. package/datepicker/datepicker.js +103 -105
  67. package/development/autocomplete/autocomplete-base-element.d.ts +19 -21
  68. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  69. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
  70. package/development/autocomplete-grid/autocomplete-grid-button.js +3 -3
  71. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts +2 -2
  72. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts.map +1 -1
  73. package/development/autocomplete-grid/autocomplete-grid-optgroup.js +1 -1
  74. package/development/autocomplete.js +104 -82
  75. package/development/chip/chip/chip.d.ts +32 -0
  76. package/development/chip/chip/chip.d.ts.map +1 -0
  77. package/development/chip/chip-group/chip-group.d.ts +100 -0
  78. package/development/chip/chip-group/chip-group.d.ts.map +1 -0
  79. package/development/chip/chip-group.d.ts +2 -0
  80. package/development/chip/chip-group.d.ts.map +1 -0
  81. package/development/chip/chip-group.js +349 -0
  82. package/development/chip/chip.d.ts +2 -0
  83. package/development/chip/chip.d.ts.map +1 -0
  84. package/development/chip/chip.js +212 -0
  85. package/development/chip.d.ts +3 -0
  86. package/development/chip.d.ts.map +1 -0
  87. package/development/chip.js +3 -0
  88. package/development/clock/clock.d.ts.map +1 -1
  89. package/development/clock.js +5 -2
  90. package/development/core/base-elements/button-base-element.d.ts +5 -0
  91. package/development/core/base-elements/button-base-element.d.ts.map +1 -1
  92. package/development/core/base-elements.js +38 -10
  93. package/development/core/controllers/id-observer-controller.d.ts +21 -0
  94. package/development/core/controllers/id-observer-controller.d.ts.map +1 -0
  95. package/development/core/controllers/media-matchers-controller.d.ts.map +1 -1
  96. package/development/core/controllers.d.ts +2 -1
  97. package/development/core/controllers.d.ts.map +1 -1
  98. package/development/core/controllers.js +116 -44
  99. package/development/core/datetime/native-date-adapter.d.ts.map +1 -1
  100. package/development/core/datetime.js +6 -2
  101. package/development/core/dom/find-referenced-element.d.ts +1 -0
  102. package/development/core/dom/find-referenced-element.d.ts.map +1 -1
  103. package/development/core/dom/input-element.d.ts +3 -1
  104. package/development/core/dom/input-element.d.ts.map +1 -1
  105. package/development/core/dom/platform.d.ts +5 -0
  106. package/development/core/dom/platform.d.ts.map +1 -1
  107. package/development/core/dom.js +3 -1
  108. package/development/core/i18n/i18n.d.ts +3 -0
  109. package/development/core/i18n/i18n.d.ts.map +1 -1
  110. package/development/core/i18n.js +23 -2
  111. package/development/core/mixins/form-associated-input-mixin.d.ts.map +1 -1
  112. package/development/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
  113. package/development/core/mixins.js +19 -6
  114. package/development/core/overlay/overlay-trigger-attributes.d.ts +1 -1
  115. package/development/core/overlay/overlay-trigger-attributes.d.ts.map +1 -1
  116. package/development/core/overlay/position.d.ts +1 -1
  117. package/development/core/overlay/position.d.ts.map +1 -1
  118. package/development/core/overlay.js +1 -1
  119. package/development/core/testing/scroll.d.ts +1 -0
  120. package/development/core/testing/scroll.d.ts.map +1 -1
  121. package/development/core/testing/wait-for-image-ready.d.ts.map +1 -1
  122. package/development/core/testing.js +6 -2
  123. package/development/datepicker/datepicker/datepicker.d.ts +4 -4
  124. package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
  125. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +0 -3
  126. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  127. package/development/datepicker/datepicker-toggle.js +4 -12
  128. package/development/datepicker/datepicker.js +46 -43
  129. package/development/dialog/dialog-title/dialog-title.d.ts +0 -1
  130. package/development/dialog/dialog-title/dialog-title.d.ts.map +1 -1
  131. package/development/dialog/dialog-title.js +2 -5
  132. package/development/expansion-panel/expansion-panel/expansion-panel.d.ts +0 -2
  133. package/development/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
  134. package/development/expansion-panel/expansion-panel.js +2 -7
  135. package/development/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
  136. package/development/flip-card/flip-card-details.js +3 -3
  137. package/development/form-field/form-field/form-field.d.ts.map +1 -1
  138. package/development/form-field/form-field.js +13 -146
  139. package/development/header/header/header.d.ts +6 -7
  140. package/development/header/header/header.d.ts.map +1 -1
  141. package/development/header/header.js +45 -34
  142. package/development/menu/menu/menu.d.ts +7 -8
  143. package/development/menu/menu/menu.d.ts.map +1 -1
  144. package/development/menu/menu.js +42 -41
  145. package/development/navigation/navigation/navigation.d.ts +7 -8
  146. package/development/navigation/navigation/navigation.d.ts.map +1 -1
  147. package/development/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
  148. package/development/navigation/navigation-marker.js +3 -3
  149. package/development/navigation/navigation-section/navigation-section.d.ts +8 -9
  150. package/development/navigation/navigation-section/navigation-section.d.ts.map +1 -1
  151. package/development/navigation/navigation-section.js +50 -47
  152. package/development/navigation/navigation.js +42 -40
  153. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  154. package/development/option/optgroup/optgroup.d.ts +2 -2
  155. package/development/option/optgroup/optgroup.d.ts.map +1 -1
  156. package/development/option/optgroup.js +3 -3
  157. package/development/option/option/option-base-element.d.ts.map +1 -1
  158. package/development/option/option.js +3 -3
  159. package/development/paginator/paginator.js +12 -1
  160. package/development/popover/popover/popover.d.ts +8 -7
  161. package/development/popover/popover/popover.d.ts.map +1 -1
  162. package/development/popover/popover.js +28 -35
  163. package/development/radio-button/radio-button-group/radio-button-group.d.ts +0 -1
  164. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  165. package/development/radio-button/radio-button-group.js +3 -5
  166. package/development/select/select.d.ts +6 -3
  167. package/development/select/select.d.ts.map +1 -1
  168. package/development/select.js +20 -18
  169. package/development/selection-expansion-panel/selection-expansion-panel.d.ts +0 -2
  170. package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  171. package/development/selection-expansion-panel.js +2 -7
  172. package/development/sidebar/sidebar/sidebar.d.ts.map +1 -1
  173. package/development/sidebar/sidebar.js +3 -3
  174. package/development/stepper/step/step.d.ts +13 -1
  175. package/development/stepper/step/step.d.ts.map +1 -1
  176. package/development/stepper/step-label.js +2 -2
  177. package/development/stepper/step.js +21 -6
  178. package/development/stepper/stepper/stepper.d.ts +1 -0
  179. package/development/stepper/stepper/stepper.d.ts.map +1 -1
  180. package/development/stepper/stepper.js +5 -1
  181. package/development/table/table-wrapper.js +2 -1
  182. package/development/time-input/time-input.d.ts +6 -8
  183. package/development/time-input/time-input.d.ts.map +1 -1
  184. package/development/time-input.js +42 -44
  185. package/dialog/dialog-title/dialog-title.d.ts +0 -1
  186. package/dialog/dialog-title/dialog-title.d.ts.map +1 -1
  187. package/dialog/dialog-title.js +18 -21
  188. package/expansion-panel/expansion-panel/expansion-panel.d.ts +0 -2
  189. package/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
  190. package/expansion-panel/expansion-panel.js +53 -56
  191. package/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
  192. package/flip-card/flip-card-details.js +8 -8
  193. package/form-field/form-field/form-field.d.ts.map +1 -1
  194. package/form-field/form-field.js +103 -98
  195. package/header/header/header.d.ts +6 -7
  196. package/header/header/header.d.ts.map +1 -1
  197. package/header/header.js +72 -70
  198. package/index.d.ts +4 -0
  199. package/index.js +4 -0
  200. package/menu/menu/menu.d.ts +7 -8
  201. package/menu/menu/menu.d.ts.map +1 -1
  202. package/menu/menu.js +73 -73
  203. package/navigation/navigation/navigation.d.ts +7 -8
  204. package/navigation/navigation/navigation.d.ts.map +1 -1
  205. package/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
  206. package/navigation/navigation-marker.js +4 -4
  207. package/navigation/navigation-section/navigation-section.d.ts +8 -9
  208. package/navigation/navigation-section/navigation-section.d.ts.map +1 -1
  209. package/navigation/navigation-section.js +75 -77
  210. package/navigation/navigation.js +70 -70
  211. package/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  212. package/option/optgroup/optgroup.d.ts +2 -2
  213. package/option/optgroup/optgroup.d.ts.map +1 -1
  214. package/option/optgroup.js +13 -13
  215. package/option/option/option-base-element.d.ts.map +1 -1
  216. package/option/option.js +2 -2
  217. package/package.json +16 -1
  218. package/paginator/paginator.js +44 -44
  219. package/popover/popover/popover.d.ts +8 -7
  220. package/popover/popover/popover.d.ts.map +1 -1
  221. package/popover/popover.js +73 -73
  222. package/radio-button/radio-button-group/radio-button-group.d.ts +0 -1
  223. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  224. package/radio-button/radio-button-group.js +8 -8
  225. package/select/select.d.ts +6 -3
  226. package/select/select.d.ts.map +1 -1
  227. package/select.js +73 -73
  228. package/selection-expansion-panel/selection-expansion-panel.d.ts +0 -2
  229. package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  230. package/selection-expansion-panel.js +10 -13
  231. package/sidebar/sidebar/sidebar.d.ts.map +1 -1
  232. package/sidebar/sidebar.js +2 -2
  233. package/standard-theme.css +166 -79
  234. package/stepper/step/step.d.ts +13 -1
  235. package/stepper/step/step.d.ts.map +1 -1
  236. package/stepper/step-label.js +1 -1
  237. package/stepper/step.js +34 -23
  238. package/stepper/stepper/stepper.d.ts +1 -0
  239. package/stepper/stepper/stepper.d.ts.map +1 -1
  240. package/stepper/stepper.js +19 -16
  241. package/table/table-wrapper.js +4 -4
  242. package/table.css +75 -44
  243. package/time-input/time-input.d.ts +6 -8
  244. package/time-input/time-input.d.ts.map +1 -1
  245. package/time-input.js +66 -73
@@ -6,11 +6,10 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
6
6
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
7
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
8
  import { __runInitializers, __esDecorate } from "tslib";
9
- import { css, LitElement, html } from "lit";
9
+ import { css, LitElement, isServer, html } from "lit";
10
10
  import { customElement, property, state } from "lit/decorators.js";
11
11
  import { ref } from "lit/directives/ref.js";
12
- import { SbbLanguageController } from "./core/controllers.js";
13
- import { findInput } from "./core/dom.js";
12
+ import { SbbIdReferenceController, SbbLanguageController } from "./core/controllers.js";
14
13
  import { EventEmitter, forwardEvent } from "./core/eventing.js";
15
14
  import { i18nTimeInputChange } from "./core/i18n.js";
16
15
  const style = css`:host {
@@ -29,14 +28,16 @@ const REGEX_ALLOWED_CHARACTERS = /[0-9.:,\-;_hH]/;
29
28
  const REGEX_GROUPS_WITHOUT_COLON = /^([0-9]{1,2})([0-9]{2})$/;
30
29
  const REGEX_GROUPS_WITH_COLON = /^([0-9]{1,2})?[.:,\-;_hH]?([0-9]{1,2})?$/;
31
30
  let SbbTimeInputElement = (() => {
32
- var __inputElement_accessor_storage, _a;
31
+ var _input_accessor_storage, __inputElement_accessor_storage, _a;
33
32
  let _classDecorators = [customElement("sbb-time-input")];
34
33
  let _classDescriptor;
35
34
  let _classExtraInitializers = [];
36
35
  let _classThis;
37
36
  let _classSuper = LitElement;
38
37
  let _instanceExtraInitializers = [];
39
- let _set_input_decorators;
38
+ let _input_decorators;
39
+ let _input_initializers = [];
40
+ let _input_extraInitializers = [];
40
41
  let __inputElement_decorators;
41
42
  let __inputElement_initializers = [];
42
43
  let __inputElement_extraInitializers = [];
@@ -44,9 +45,10 @@ let SbbTimeInputElement = (() => {
44
45
  var SbbTimeInputElement2 = (_a = class extends _classSuper {
45
46
  constructor() {
46
47
  super(...arguments);
48
+ __privateAdd(this, _input_accessor_storage);
47
49
  __privateAdd(this, __inputElement_accessor_storage);
48
- this._input = (__runInitializers(this, _instanceExtraInitializers), null);
49
- __privateSet(this, __inputElement_accessor_storage, __runInitializers(this, __inputElement_initializers, null));
50
+ __privateSet(this, _input_accessor_storage, (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _input_initializers, null)));
51
+ __privateSet(this, __inputElement_accessor_storage, (__runInitializers(this, _input_extraInitializers), __runInitializers(this, __inputElement_initializers, null)));
50
52
  this._didChange = (__runInitializers(this, __inputElement_extraInitializers), new EventEmitter(this, SbbTimeInputElement2.events.didChange, {
51
53
  bubbles: true,
52
54
  cancelable: true
@@ -55,16 +57,17 @@ let SbbTimeInputElement = (() => {
55
57
  bubbles: true,
56
58
  composed: false
57
59
  });
58
- this._abortController = new AbortController();
60
+ this._inputAbortController = new AbortController();
61
+ this._inputIdReferenceController = new SbbIdReferenceController(this, "input");
59
62
  this._language = new SbbLanguageController(this);
60
63
  }
64
+ // TODO: Replace HTMLElement by HTMLInputElement
61
65
  /** Reference of the native input connected to the datepicker. */
62
- set input(value) {
63
- this._input = value;
64
- this._setupInputElement();
65
- }
66
66
  get input() {
67
- return this._input;
67
+ return __privateGet(this, _input_accessor_storage);
68
+ }
69
+ set input(value) {
70
+ __privateSet(this, _input_accessor_storage, value);
68
71
  }
69
72
  get _inputElement() {
70
73
  return __privateGet(this, __inputElement_accessor_storage);
@@ -90,39 +93,34 @@ let SbbTimeInputElement = (() => {
90
93
  }
91
94
  connectedCallback() {
92
95
  super.connectedCallback();
93
- this._setupInputElement();
96
+ this._configureInputElement();
94
97
  }
95
98
  disconnectedCallback() {
96
99
  var _a2;
97
100
  super.disconnectedCallback();
98
- (_a2 = this._abortController) == null ? void 0 : _a2.abort();
101
+ (_a2 = this._inputAbortController) == null ? void 0 : _a2.abort();
102
+ this._inputElement = null;
99
103
  }
100
- firstUpdated(_changedProperties) {
101
- super.firstUpdated(_changedProperties);
102
- this._setupInputElement();
103
- }
104
- _setupInputElement() {
105
- var _a2;
106
- const newInput = findInput(this, this.input);
107
- if (!newInput) {
108
- (_a2 = this._abortController) == null ? void 0 : _a2.abort();
109
- return;
104
+ requestUpdate(name, oldValue, options) {
105
+ super.requestUpdate(name, oldValue, options);
106
+ if (!isServer && (!name || name === "input") && this.hasUpdated) {
107
+ this._configureInputElement();
110
108
  }
111
- const oldInput = this._inputElement;
112
- if (oldInput === newInput) {
109
+ }
110
+ _configureInputElement() {
111
+ var _a2, _b, _c, _d;
112
+ const inputElement = this.input instanceof HTMLInputElement ? this.input : this._inputIdReferenceController.find() ?? ((_b = (_a2 = this.closest) == null ? void 0 : _a2.call(this, "sbb-form-field")) == null ? void 0 : _b.querySelector("input")) ?? null;
113
+ if (inputElement === this._inputElement) {
113
114
  return;
114
115
  }
115
- this._inputElement = newInput;
116
- this._registerInputElement();
117
- this._updateValue(this._inputElement.value);
118
- }
119
- _registerInputElement() {
120
- var _a2;
121
- (_a2 = this._abortController) == null ? void 0 : _a2.abort();
116
+ (_c = this._inputAbortController) == null ? void 0 : _c.abort();
117
+ (_d = this._inputElement) == null ? void 0 : _d.removeAttribute("data-sbb-time-input");
118
+ this._inputElement = inputElement;
122
119
  if (!this._inputElement) {
123
120
  return;
124
121
  }
125
- this._abortController = new AbortController();
122
+ this._updateValue(this._inputElement.value);
123
+ this._inputAbortController = new AbortController();
126
124
  this._inputElement.toggleAttribute("data-sbb-time-input", true);
127
125
  this._inputElement.type = "text";
128
126
  this._inputElement.inputMode = "numeric";
@@ -131,18 +129,18 @@ let SbbTimeInputElement = (() => {
131
129
  this._inputElement.placeholder = "HH:MM";
132
130
  }
133
131
  this._inputElement.addEventListener("input", (event) => forwardEvent(event, this), {
134
- signal: this._abortController.signal
132
+ signal: this._inputAbortController.signal
135
133
  });
136
- this._inputElement.addEventListener("keydown", (event) => this._preventCharInsert(event), { signal: this._abortController.signal });
134
+ this._inputElement.addEventListener("keydown", (event) => this._preventCharInsert(event), { signal: this._inputAbortController.signal });
137
135
  this._inputElement.addEventListener("change", (event) => this._updateValue(event.target.value), {
138
- signal: this._abortController.signal,
136
+ signal: this._inputAbortController.signal,
139
137
  capture: true
140
138
  });
141
139
  this._inputElement.addEventListener("change", (event) => {
142
140
  this._emitChange(event);
143
141
  this._updateAccessibilityMessage();
144
142
  }, {
145
- signal: this._abortController.signal
143
+ signal: this._inputAbortController.signal
146
144
  });
147
145
  }
148
146
  /**
@@ -249,14 +247,14 @@ let SbbTimeInputElement = (() => {
249
247
  ></p>
250
248
  `;
251
249
  }
252
- }, __inputElement_accessor_storage = new WeakMap(), _classThis = _a, (() => {
250
+ }, _input_accessor_storage = new WeakMap(), __inputElement_accessor_storage = new WeakMap(), _classThis = _a, (() => {
253
251
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
254
- _set_input_decorators = [property()];
252
+ _input_decorators = [property()];
255
253
  __inputElement_decorators = [state()];
256
254
  _set_valueAsDate_decorators = [property({ attribute: false })];
257
- __esDecorate(_a, null, _set_input_decorators, { kind: "setter", name: "input", static: false, private: false, access: { has: (obj) => "input" in obj, set: (obj, value) => {
255
+ __esDecorate(_a, null, _input_decorators, { kind: "accessor", name: "input", static: false, private: false, access: { has: (obj) => "input" in obj, get: (obj) => obj.input, set: (obj, value) => {
258
256
  obj.input = value;
259
- } }, metadata: _metadata }, null, _instanceExtraInitializers);
257
+ } }, metadata: _metadata }, _input_initializers, _input_extraInitializers);
260
258
  __esDecorate(_a, null, __inputElement_decorators, { kind: "accessor", name: "_inputElement", static: false, private: false, access: { has: (obj) => "_inputElement" in obj, get: (obj) => obj._inputElement, set: (obj, value) => {
261
259
  obj._inputElement = value;
262
260
  } }, metadata: _metadata }, __inputElement_initializers, __inputElement_extraInitializers);
@@ -275,4 +273,4 @@ let SbbTimeInputElement = (() => {
275
273
  export {
276
274
  SbbTimeInputElement
277
275
  };
278
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1pbnB1dC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RpbWUtaW5wdXQvdGltZS1pbnB1dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGZpbmRJbnB1dCB9IGZyb20gJy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgZm9yd2FyZEV2ZW50IH0gZnJvbSAnLi4vY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBpMThuVGltZUlucHV0Q2hhbmdlIH0gZnJvbSAnLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRGF0ZUxpa2UsIFNiYlZhbGlkYXRpb25DaGFuZ2VFdmVudCB9IGZyb20gJy4uL2NvcmUvaW50ZXJmYWNlcy5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RpbWUtaW5wdXQuc2Nzcz9saXQmaW5saW5lJztcblxuY29uc3QgUkVHRVhfQUxMT1dFRF9DSEFSQUNURVJTID0gL1swLTkuOixcXC07X2hIXS87XG5jb25zdCBSRUdFWF9HUk9VUFNfV0lUSE9VVF9DT0xPTiA9IC9eKFswLTldezEsMn0pKFswLTldezJ9KSQvO1xuY29uc3QgUkVHRVhfR1JPVVBTX1dJVEhfQ09MT04gPSAvXihbMC05XXsxLDJ9KT9bLjosXFwtO19oSF0/KFswLTldezEsMn0pPyQvO1xuXG5pbnRlcmZhY2UgVGltZSB7XG4gIGhvdXJzOiBudW1iZXI7XG4gIG1pbnV0ZXM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiAqIENvbWJpbmVkIHdpdGggYSBuYXRpdmUgaW5wdXQsIGl0IGRpc3BsYXlzIHRoZSBpbnB1dCdzIHZhbHVlIGFzIGEgZm9ybWF0dGVkIHRpbWUuXG4gKlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkQ2hhbmdlIC0gRGVwcmVjYXRlZC4gdXNlZCBmb3IgUmVhY3QuIFdpbGwgcHJvYmFibHkgYmUgcmVtb3ZlZCBvbmNlIFJlYWN0IDE5IGlzIGF2YWlsYWJsZS5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8U2JiVmFsaWRhdGlvbkNoYW5nZUV2ZW50Pn0gdmFsaWRhdGlvbkNoYW5nZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBpbnRlcm5hbCB2YWxpZGF0aW9uIHN0YXRlIGNoYW5nZXMuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi10aW1lLWlucHV0JylcbmNsYXNzIFNiYlRpbWVJbnB1dEVsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIGRpZENoYW5nZTogJ2RpZENoYW5nZScsXG4gICAgdmFsaWRhdGlvbkNoYW5nZTogJ3ZhbGlkYXRpb25DaGFuZ2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBSZWZlcmVuY2Ugb2YgdGhlIG5hdGl2ZSBpbnB1dCBjb25uZWN0ZWQgdG8gdGhlIGRhdGVwaWNrZXIuICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgaW5wdXQodmFsdWU6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCkge1xuICAgIHRoaXMuX2lucHV0ID0gdmFsdWU7XG4gICAgdGhpcy5fc2V0dXBJbnB1dEVsZW1lbnQoKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlucHV0KCk6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0O1xuICB9XG4gIHByaXZhdGUgX2lucHV0OiBzdHJpbmcgfCBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2lucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBGb3JtYXRzIHRoZSBjdXJyZW50IGlucHV0J3MgdmFsdWUgYXMgZGF0ZS4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICBwdWJsaWMgc2V0IHZhbHVlQXNEYXRlKGRhdGU6IFNiYkRhdGVMaWtlIHwgbnVsbCkge1xuICAgIGlmICghZGF0ZSB8fCAhdGhpcy5faW5wdXRFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGRhdGVPYmogPSBkYXRlIGluc3RhbmNlb2YgRGF0ZSA/IGRhdGUgOiBuZXcgRGF0ZShkYXRlKTtcblxuICAgIHRoaXMuX2lucHV0RWxlbWVudC52YWx1ZSA9IHRoaXMuX2Zvcm1hdFZhbHVlKHtcbiAgICAgIGhvdXJzOiBkYXRlT2JqLmdldEhvdXJzKCksXG4gICAgICBtaW51dGVzOiBkYXRlT2JqLmdldE1pbnV0ZXMoKSxcbiAgICB9KTtcblxuICAgIC8vIEVtaXQgYmx1ciBldmVudCB3aGVuIHZhbHVlIGlzIGNoYW5nZWQgcHJvZ3JhbW1hdGljYWxseSB0byBub3RpZnlcbiAgICAvLyBmcmFtZXdvcmtzIHRoYXQgcmVseSBvbiB0aGF0IGV2ZW50IHRvIHVwZGF0ZSBmb3JtIHN0YXR1cy5cbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRm9jdXNFdmVudCgnYmx1cicsIHsgY29tcG9zZWQ6IHRydWUgfSkpO1xuICB9XG4gIHB1YmxpYyBnZXQgdmFsdWVBc0RhdGUoKTogRGF0ZSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9mb3JtYXRWYWx1ZUFzRGF0ZSh0aGlzLl9wYXJzZUlucHV0KHRoaXMuX2lucHV0RWxlbWVudD8udmFsdWUpKSA/PyBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIG9ubHkgdXNlZCBmb3IgUmVhY3QuIFdpbGwgcHJvYmFibHkgYmUgcmVtb3ZlZCBvbmNlIFJlYWN0IDE5IGlzIGF2YWlsYWJsZS5cbiAgICovXG4gIHByaXZhdGUgX2RpZENoYW5nZTogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcih0aGlzLCBTYmJUaW1lSW5wdXRFbGVtZW50LmV2ZW50cy5kaWRDaGFuZ2UsIHtcbiAgICBidWJibGVzOiB0cnVlLFxuICAgIGNhbmNlbGFibGU6IHRydWUsXG4gIH0pO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgaW50ZXJuYWwgdmFsaWRhdGlvbiBzdGF0ZSBjaGFuZ2VzLiAqL1xuICBwcml2YXRlIF92YWxpZGF0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8U2JiVmFsaWRhdGlvbkNoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJUaW1lSW5wdXRFbGVtZW50LmV2ZW50cy52YWxpZGF0aW9uQ2hhbmdlLFxuICAgIHtcbiAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICBjb21wb3NlZDogZmFsc2UsXG4gICAgfSxcbiAgKTtcblxuICBwcml2YXRlIF9zdGF0dXNDb250YWluZXIhOiBIVE1MUGFyYWdyYXBoRWxlbWVudDtcbiAgcHJpdmF0ZSBfYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICB0aGlzLl9zZXR1cElucHV0RWxlbWVudCgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fYWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChfY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzKTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKF9jaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICB0aGlzLl9zZXR1cElucHV0RWxlbWVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0dXBJbnB1dEVsZW1lbnQoKTogdm9pZCB7XG4gICAgY29uc3QgbmV3SW5wdXQgPSBmaW5kSW5wdXQodGhpcywgdGhpcy5pbnB1dCk7XG4gICAgaWYgKCFuZXdJbnB1dCkge1xuICAgICAgdGhpcy5fYWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG9sZElucHV0ID0gdGhpcy5faW5wdXRFbGVtZW50O1xuICAgIGlmIChvbGRJbnB1dCA9PT0gbmV3SW5wdXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5faW5wdXRFbGVtZW50ID0gbmV3SW5wdXQ7XG4gICAgdGhpcy5fcmVnaXN0ZXJJbnB1dEVsZW1lbnQoKTtcbiAgICB0aGlzLl91cGRhdGVWYWx1ZSh0aGlzLl9pbnB1dEVsZW1lbnQudmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVnaXN0ZXJJbnB1dEVsZW1lbnQoKTogdm9pZCB7XG4gICAgdGhpcy5fYWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuXG4gICAgaWYgKCF0aGlzLl9pbnB1dEVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9hYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgICAvLyBDb25maWd1cmUgaW5wdXRcbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKCdkYXRhLXNiYi10aW1lLWlucHV0JywgdHJ1ZSk7XG4gICAgdGhpcy5faW5wdXRFbGVtZW50LnR5cGUgPSAndGV4dCc7XG4gICAgdGhpcy5faW5wdXRFbGVtZW50LmlucHV0TW9kZSA9ICdudW1lcmljJztcbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQubWF4TGVuZ3RoID0gNTtcbiAgICBpZiAoIXRoaXMuX2lucHV0RWxlbWVudC5wbGFjZWhvbGRlcikge1xuICAgICAgdGhpcy5faW5wdXRFbGVtZW50LnBsYWNlaG9sZGVyID0gJ0hIOk1NJztcbiAgICB9XG5cbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCAoZXZlbnQ6IEV2ZW50KSA9PiBmb3J3YXJkRXZlbnQoZXZlbnQsIHRoaXMpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX2Fib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgdGhpcy5faW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAna2V5ZG93bicsXG4gICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMuX3ByZXZlbnRDaGFySW5zZXJ0KGV2ZW50KSxcbiAgICAgIHsgc2lnbmFsOiB0aGlzLl9hYm9ydENvbnRyb2xsZXIuc2lnbmFsIH0sXG4gICAgKTtcbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdjaGFuZ2UnLFxuICAgICAgKGV2ZW50OiBFdmVudCkgPT4gdGhpcy5fdXBkYXRlVmFsdWUoKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSksXG4gICAgICB7XG4gICAgICAgIHNpZ25hbDogdGhpcy5fYWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdjaGFuZ2UnLFxuICAgICAgKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlKGV2ZW50KTtcbiAgICAgICAgdGhpcy5fdXBkYXRlQWNjZXNzaWJpbGl0eU1lc3NhZ2UoKTtcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNpZ25hbDogdGhpcy5fYWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIGB2YWx1ZWAgYW5kIGB2YWx1ZUFzRGF0ZWAuIFRoZSBkaXJlY3QgdXBkYXRlIG9uIHRoZSBgX2lucHV0RWxlbWVudGAgaXMgcmVxdWlyZWRcbiAgICogdG8gZm9yY2UgdGhlIGlucHV0IGNoYW5nZSB3aGVuIHRoZSB0eXBlZCB2YWx1ZSBpcyB0aGUgc2FtZSBvZiB0aGUgY3VycmVudCBvbmUuXG4gICAqL1xuICBwcml2YXRlIF91cGRhdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gUmVzZXQgYWNjZXNzaWJpbGl0eSBtZXNzYWdlXG4gICAgaWYgKHRoaXMuX3N0YXR1c0NvbnRhaW5lcikge1xuICAgICAgdGhpcy5fc3RhdHVzQ29udGFpbmVyLmlubmVyVGV4dCA9ICcnO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX2lucHV0RWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRpbWUgPSB0aGlzLl9wYXJzZUlucHV0KHZhbHVlKTtcbiAgICBjb25zdCBpc1RpbWVWYWxpZCA9ICEhdGltZSAmJiB0aGlzLl9pc1RpbWVWYWxpZCh0aW1lKTtcbiAgICBjb25zdCBpc0VtcHR5T3JWYWxpZCA9ICF2YWx1ZSB8fCB2YWx1ZS50cmltKCkgPT09ICcnIHx8IGlzVGltZVZhbGlkO1xuICAgIGlmIChpc0VtcHR5T3JWYWxpZCAmJiB0aW1lKSB7XG4gICAgICAvLyBJbiBvcmRlciB0byBzdXBwb3J0IFJlYWN0IG9uQ2hhbmdlIGV2ZW50LCB3ZSBoYXZlIHRvIGdldCB0aGUgc2V0dGVyIGFuZCBjYWxsIGl0LlxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMTYwMCNpc3N1ZWNvbW1lbnQtMzQ1ODEzMTMwXG4gICAgICBjb25zdCBzZXRWYWx1ZSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSFRNTElucHV0RWxlbWVudC5wcm90b3R5cGUsICd2YWx1ZScpIS5zZXQhO1xuICAgICAgc2V0VmFsdWUuY2FsbCh0aGlzLl9pbnB1dEVsZW1lbnQsIHRoaXMuX2Zvcm1hdFZhbHVlKHRpbWUpKTtcblxuICAgICAgdGhpcy5faW5wdXRFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuXG4gICAgY29uc3Qgd2FzVmFsaWQgPSAhdGhpcy5faW5wdXRFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGF0YS1zYmItaW52YWxpZCcpO1xuICAgIHRoaXMuX2lucHV0RWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtc2JiLWludmFsaWQnLCAhaXNFbXB0eU9yVmFsaWQpO1xuICAgIGlmICh3YXNWYWxpZCAhPT0gaXNFbXB0eU9yVmFsaWQpIHtcbiAgICAgIHRoaXMuX3ZhbGlkYXRpb25DaGFuZ2UuZW1pdCh7IHZhbGlkOiBpc0VtcHR5T3JWYWxpZCB9KTtcbiAgICB9XG4gIH1cblxuICAvKiogRW1pdHMgdGhlIGNoYW5nZSBldmVudC4gKi9cbiAgcHJpdmF0ZSBfZW1pdENoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBmb3J3YXJkRXZlbnQoZXZlbnQsIHRoaXMpO1xuICAgIHRoaXMuX2RpZENoYW5nZS5lbWl0KCk7XG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgcmlnaHQgZm9ybWF0IGZvciB0aGUgYHZhbHVlYCBwcm9wZXJ0eS4gKi9cbiAgcHJpdmF0ZSBfZm9ybWF0VmFsdWUodGltZTogVGltZSk6IHN0cmluZyB7XG4gICAgY29uc3QgaG91cnMgPSBTdHJpbmcodGltZS5ob3VycykucGFkU3RhcnQoMiwgJzAnKTtcbiAgICBjb25zdCBtaW51dGVzID0gU3RyaW5nKHRpbWUubWludXRlcykucGFkU3RhcnQoMiwgJzAnKTtcbiAgICByZXR1cm4gYCR7aG91cnN9OiR7bWludXRlc31gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHJpZ2h0IGZvcm1hdCBmb3IgdGhlIGB2YWx1ZUFzRGF0ZWAgcHJvcGVydHk6XG4gICAqIHNldHMgdGhlIHN0YXJ0IGRhdGUgYXQgMDEuMDEuMTk3MCwgdGhlbiBhZGRzIHRoZSB0eXBlZCBob3Vycy9taW51dGVzLlxuICAgKi9cbiAgcHJpdmF0ZSBfZm9ybWF0VmFsdWVBc0RhdGUodGltZTogVGltZSB8IG51bGwgfCB1bmRlZmluZWQpOiBEYXRlIHwgbnVsbCB7XG4gICAgaWYgKCF0aW1lIHx8ICF0aGlzLl9pc1RpbWVWYWxpZCh0aW1lKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBEYXRlKG5ldyBEYXRlKDApLnNldEhvdXJzKHRpbWUuaG91cnMsIHRpbWUubWludXRlcywgMCwgMCkpO1xuICB9XG5cbiAgLyoqIENoZWNrcyBpZiB2YWx1ZXMgb2YgaG91cnMgYW5kIG1pbnV0ZXMgYXJlIHBvc3NpYmxlLCB0byBhdm9pZCBub24tZXhpc3RlbnQgdGltZXMuICovXG4gIHByaXZhdGUgX2lzVGltZVZhbGlkKHRpbWU6IFRpbWUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGltZS5ob3VycyA8IDI0ICYmIHRpbWUubWludXRlcyA8IDYwO1xuICB9XG5cbiAgLyoqIFZhbGlkYXRlIGlucHV0IGFnYWluc3QgdGhlIGRlZmluZWQgUmVnRXhwcy4gKi9cbiAgcHJpdmF0ZSBfcGFyc2VJbnB1dCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogVGltZSB8IG51bGwge1xuICAgIGNvbnN0IHRyaW1tZWRWYWx1ZSA9IHZhbHVlPy50cmltKCk7XG4gICAgaWYgKCF0cmltbWVkVmFsdWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIFNwZWNpYWwgY2FzZTogdGhlIGlucHV0IGlzIDMgb3IgNCBkaWdpdHM7IHNwbGl0IGxpa2U6IEFCPzpDRFxuICAgIGNvbnN0IG1hdGNoID0gdHJpbW1lZFZhbHVlLm1hdGNoKFJFR0VYX0dST1VQU19XSVRIT1VUX0NPTE9OKTtcbiAgICBpZiAobWF0Y2gpIHtcbiAgICAgIHJldHVybiB7IGhvdXJzOiArbWF0Y2hbMV0gfHwgMCwgbWludXRlczogK21hdGNoWzJdIHx8IDAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXRjaENvbG9uID0gdHJpbW1lZFZhbHVlLm1hdGNoKFJFR0VYX0dST1VQU19XSVRIX0NPTE9OKTtcbiAgICBpZiAobWF0Y2hDb2xvbikge1xuICAgICAgcmV0dXJuIHsgaG91cnM6ICttYXRjaENvbG9uWzFdIHx8IDAsIG1pbnV0ZXM6ICttYXRjaENvbG9uWzJdIHx8IDAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKiAgT25seSBhbGxvdyB0eXBpbmcgbnVtYmVycyBhbmQgc2VwYXJhdG9yIGtleXMuICovXG4gIHByaXZhdGUgX3ByZXZlbnRDaGFySW5zZXJ0KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgYWx3YXlzQWxsb3dlZCA9IFtcbiAgICAgICdCYWNrc3BhY2UnLFxuICAgICAgJ1RhYicsXG4gICAgICAnRW50ZXInLFxuICAgICAgJ0Fycm93VXAnLFxuICAgICAgJ0Fycm93RG93bicsXG4gICAgICAnQXJyb3dMZWZ0JyxcbiAgICAgICdBcnJvd1JpZ2h0JyxcbiAgICAgICdIb21lJyxcbiAgICAgICdFbmQnLFxuICAgICAgJ1BhZ2VVcCcsXG4gICAgICAnUGFnZURvd24nLFxuICAgICAgJ0RlbGV0ZScsXG4gICAgXTtcblxuICAgIGlmIChcbiAgICAgICFldmVudC5jdHJsS2V5ICYmXG4gICAgICAhZXZlbnQuYWx0S2V5ICYmXG4gICAgICAhZXZlbnQubWV0YUtleSAmJlxuICAgICAgIWFsd2F5c0FsbG93ZWQuaW5jbHVkZXMoZXZlbnQua2V5KSAmJlxuICAgICAgIVJFR0VYX0FMTE9XRURfQ0hBUkFDVEVSUy50ZXN0KGV2ZW50LmtleSlcbiAgICApIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgLy8gV2UgdXNlIGEgcHJvZ3JhbW1hdGljIGFwcHJvYWNoIHRvIGF2b2lkIGluaXRpYWwgc2V0dGluZyB0aGUgbWVzc2FnZVxuICAvLyBhbmQgdG8gbm90IGltbWVkaWF0ZWx5IGNoYW5nZSBvdXRwdXQgaWYgbGFuZ3VhZ2Ugc2hvdWxkIGNoYW5nZSAobm8gcmVhc29uIHRvIHJlYWQgb3V0IG1lc3NhZ2UpLlxuICBwcml2YXRlIF91cGRhdGVBY2Nlc3NpYmlsaXR5TWVzc2FnZSgpOiB2b2lkIHtcbiAgICBjb25zdCB2YWxpZCA9ICF0aGlzLl9pbnB1dEVsZW1lbnQhLmhhc0F0dHJpYnV0ZSgnZGF0YS1zYmItaW52YWxpZCcpO1xuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0dXNDb250YWluZXIuaW5uZXJUZXh0ID0gYCR7aTE4blRpbWVJbnB1dENoYW5nZVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0gJHtcbiAgICAgIHRoaXMuX2lucHV0RWxlbWVudD8udmFsdWVcbiAgICB9LmA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxwXG4gICAgICAgIHJvbGU9XCJzdGF0dXNcIlxuICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KSA9PiAodGhpcy5fc3RhdHVzQ29udGFpbmVyID0gZWwgYXMgSFRNTFBhcmFncmFwaEVsZW1lbnQpKX1cbiAgICAgID48L3A+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRpbWUtaW5wdXQnOiBTYmJUaW1lSW5wdXRFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsiU2JiVGltZUlucHV0RWxlbWVudCIsIl9hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFhQSxNQUFNLDJCQUEyQjtBQUNqQyxNQUFNLDZCQUE2QjtBQUNuQyxNQUFNLDBCQUEwQjtJQWUxQix1QkFBbUIsTUFBQTs7MEJBRHhCLGNBQWMsZ0JBQWdCLENBQUM7Ozs7b0JBQ0U7Ozs7Ozs7QUFBUkEsTUFBQUEsd0JBQUEsbUJBQVEsWUFBVTtBQUFBOztBQWtCakM7QUFGRCxXQUFBLFVBaEJKLGtCQUFBLE1BQUEsMEJBQUEsR0FnQjBDO0FBRXBCLHlCQUFBLGlDQUFBLGtCQUFBLE1BQUEsNkJBQXlDLElBQUk7QUEwQnJELFdBQUEsY0FBQSxrQkFBQSxNQUFBLGdDQUFBLEdBQWlCLElBQUksYUFBYSxNQUFNQSxxQkFBb0IsT0FBTyxXQUFXO0FBQUEsUUFDOUYsU0FBUztBQUFBLFFBQ1QsWUFBWTtBQUFBLE1BQUEsQ0FDYjtBQUdPLFdBQWlCLG9CQUEyQyxJQUFJLGFBQ3RFLE1BQ0FBLHFCQUFvQixPQUFPLGtCQUMzQjtBQUFBLFFBQ0UsU0FBUztBQUFBLFFBQ1QsVUFBVTtBQUFBLE1BQUEsQ0FDWDtBQUlLLFdBQUEsbUJBQW1CLElBQUksZ0JBQWU7QUFDdEMsV0FBQSxZQUFZLElBQUksc0JBQXNCLElBQUk7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQXBEbEQsSUFBVyxNQUFNLE9BQWtDO0FBQ2pELFdBQUssU0FBUztBQUNkLFdBQUssbUJB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
276
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1pbnB1dC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RpbWUtaW5wdXQvdGltZS1pbnB1dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBpc1NlcnZlcixcbiAgTGl0RWxlbWVudCxcbiAgdHlwZSBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHksIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcblxuaW1wb3J0IHsgU2JiSWRSZWZlcmVuY2VDb250cm9sbGVyLCBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgZm9yd2FyZEV2ZW50IH0gZnJvbSAnLi4vY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBpMThuVGltZUlucHV0Q2hhbmdlIH0gZnJvbSAnLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRGF0ZUxpa2UsIFNiYlZhbGlkYXRpb25DaGFuZ2VFdmVudCB9IGZyb20gJy4uL2NvcmUvaW50ZXJmYWNlcy5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RpbWUtaW5wdXQuc2Nzcz9saXQmaW5saW5lJztcblxuY29uc3QgUkVHRVhfQUxMT1dFRF9DSEFSQUNURVJTID0gL1swLTkuOixcXC07X2hIXS87XG5jb25zdCBSRUdFWF9HUk9VUFNfV0lUSE9VVF9DT0xPTiA9IC9eKFswLTldezEsMn0pKFswLTldezJ9KSQvO1xuY29uc3QgUkVHRVhfR1JPVVBTX1dJVEhfQ09MT04gPSAvXihbMC05XXsxLDJ9KT9bLjosXFwtO19oSF0/KFswLTldezEsMn0pPyQvO1xuXG5pbnRlcmZhY2UgVGltZSB7XG4gIGhvdXJzOiBudW1iZXI7XG4gIG1pbnV0ZXM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiAqIENvbWJpbmVkIHdpdGggYSBuYXRpdmUgaW5wdXQsIGl0IGRpc3BsYXlzIHRoZSBpbnB1dCdzIHZhbHVlIGFzIGEgZm9ybWF0dGVkIHRpbWUuXG4gKlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkQ2hhbmdlIC0gRGVwcmVjYXRlZC4gdXNlZCBmb3IgUmVhY3QuIFdpbGwgcHJvYmFibHkgYmUgcmVtb3ZlZCBvbmNlIFJlYWN0IDE5IGlzIGF2YWlsYWJsZS5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8U2JiVmFsaWRhdGlvbkNoYW5nZUV2ZW50Pn0gdmFsaWRhdGlvbkNoYW5nZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBpbnRlcm5hbCB2YWxpZGF0aW9uIHN0YXRlIGNoYW5nZXMuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi10aW1lLWlucHV0JylcbmNsYXNzIFNiYlRpbWVJbnB1dEVsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIGRpZENoYW5nZTogJ2RpZENoYW5nZScsXG4gICAgdmFsaWRhdGlvbkNoYW5nZTogJ3ZhbGlkYXRpb25DaGFuZ2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8vIFRPRE86IFJlcGxhY2UgSFRNTEVsZW1lbnQgYnkgSFRNTElucHV0RWxlbWVudFxuICAvKiogUmVmZXJlbmNlIG9mIHRoZSBuYXRpdmUgaW5wdXQgY29ubmVjdGVkIHRvIHRoZSBkYXRlcGlja2VyLiAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgaW5wdXQ6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIEZvcm1hdHMgdGhlIGN1cnJlbnQgaW5wdXQncyB2YWx1ZSBhcyBkYXRlLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIHB1YmxpYyBzZXQgdmFsdWVBc0RhdGUoZGF0ZTogU2JiRGF0ZUxpa2UgfCBudWxsKSB7XG4gICAgaWYgKCFkYXRlIHx8ICF0aGlzLl9pbnB1dEVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZGF0ZU9iaiA9IGRhdGUgaW5zdGFuY2VvZiBEYXRlID8gZGF0ZSA6IG5ldyBEYXRlKGRhdGUpO1xuXG4gICAgdGhpcy5faW5wdXRFbGVtZW50LnZhbHVlID0gdGhpcy5fZm9ybWF0VmFsdWUoe1xuICAgICAgaG91cnM6IGRhdGVPYmouZ2V0SG91cnMoKSxcbiAgICAgIG1pbnV0ZXM6IGRhdGVPYmouZ2V0TWludXRlcygpLFxuICAgIH0pO1xuXG4gICAgLy8gRW1pdCBibHVyIGV2ZW50IHdoZW4gdmFsdWUgaXMgY2hhbmdlZCBwcm9ncmFtbWF0aWNhbGx5IHRvIG5vdGlmeVxuICAgIC8vIGZyYW1ld29ya3MgdGhhdCByZWx5IG9uIHRoYXQgZXZlbnQgdG8gdXBkYXRlIGZvcm0gc3RhdHVzLlxuICAgIHRoaXMuX2lucHV0RWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBGb2N1c0V2ZW50KCdibHVyJywgeyBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gIH1cbiAgcHVibGljIGdldCB2YWx1ZUFzRGF0ZSgpOiBEYXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1hdFZhbHVlQXNEYXRlKHRoaXMuX3BhcnNlSW5wdXQodGhpcy5faW5wdXRFbGVtZW50Py52YWx1ZSkpID8/IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgb25seSB1c2VkIGZvciBSZWFjdC4gV2lsbCBwcm9iYWJseSBiZSByZW1vdmVkIG9uY2UgUmVhY3QgMTkgaXMgYXZhaWxhYmxlLlxuICAgKi9cbiAgcHJpdmF0ZSBfZGlkQ2hhbmdlOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKHRoaXMsIFNiYlRpbWVJbnB1dEVsZW1lbnQuZXZlbnRzLmRpZENoYW5nZSwge1xuICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgfSk7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBpbnRlcm5hbCB2YWxpZGF0aW9uIHN0YXRlIGNoYW5nZXMuICovXG4gIHByaXZhdGUgX3ZhbGlkYXRpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxTYmJWYWxpZGF0aW9uQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYlRpbWVJbnB1dEVsZW1lbnQuZXZlbnRzLnZhbGlkYXRpb25DaGFuZ2UsXG4gICAge1xuICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIGNvbXBvc2VkOiBmYWxzZSxcbiAgICB9LFxuICApO1xuXG4gIHByaXZhdGUgX3N0YXR1c0NvbnRhaW5lciE6IEhUTUxQYXJhZ3JhcGhFbGVtZW50O1xuICBwcml2YXRlIF9pbnB1dEFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgcHJpdmF0ZSBfaW5wdXRJZFJlZmVyZW5jZUNvbnRyb2xsZXIgPSBuZXcgU2JiSWRSZWZlcmVuY2VDb250cm9sbGVyKHRoaXMsICdpbnB1dCcpO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICB0aGlzLl9jb25maWd1cmVJbnB1dEVsZW1lbnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX2lucHV0RWxlbWVudCA9IG51bGw7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcblxuICAgIGlmICghaXNTZXJ2ZXIgJiYgKCFuYW1lIHx8IG5hbWUgPT09ICdpbnB1dCcpICYmIHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fY29uZmlndXJlSW5wdXRFbGVtZW50KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY29uZmlndXJlSW5wdXRFbGVtZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9XG4gICAgICB0aGlzLmlucHV0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudFxuICAgICAgICA/IHRoaXMuaW5wdXRcbiAgICAgICAgOiAoKHRoaXMuX2lucHV0SWRSZWZlcmVuY2VDb250cm9sbGVyLmZpbmQoKSBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCkgPz9cbiAgICAgICAgICB0aGlzLmNsb3Nlc3Q/Lignc2JiLWZvcm0tZmllbGQnKT8ucXVlcnlTZWxlY3RvcjxIVE1MSW5wdXRFbGVtZW50PignaW5wdXQnKSA/P1xuICAgICAgICAgIG51bGwpO1xuXG4gICAgaWYgKGlucHV0RWxlbWVudCA9PT0gdGhpcy5faW5wdXRFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5faW5wdXRFbGVtZW50Py5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtc2JiLXRpbWUtaW5wdXQnKTtcbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQgPSBpbnB1dEVsZW1lbnQ7XG5cbiAgICBpZiAoIXRoaXMuX2lucHV0RWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3VwZGF0ZVZhbHVlKHRoaXMuX2lucHV0RWxlbWVudC52YWx1ZSk7XG4gICAgdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgICAvLyBDb25maWd1cmUgaW5wdXRcbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKCdkYXRhLXNiYi10aW1lLWlucHV0JywgdHJ1ZSk7XG4gICAgdGhpcy5faW5wdXRFbGVtZW50LnR5cGUgPSAndGV4dCc7XG4gICAgdGhpcy5faW5wdXRFbGVtZW50LmlucHV0TW9kZSA9ICdudW1lcmljJztcbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQubWF4TGVuZ3RoID0gNTtcbiAgICBpZiAoIXRoaXMuX2lucHV0RWxlbWVudC5wbGFjZWhvbGRlcikge1xuICAgICAgdGhpcy5faW5wdXRFbGVtZW50LnBsYWNlaG9sZGVyID0gJ0hIOk1NJztcbiAgICB9XG5cbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCAoZXZlbnQ6IEV2ZW50KSA9PiBmb3J3YXJkRXZlbnQoZXZlbnQsIHRoaXMpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdrZXlkb3duJyxcbiAgICAgIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdGhpcy5fcHJldmVudENoYXJJbnNlcnQoZXZlbnQpLFxuICAgICAgeyBzaWduYWw6IHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyLnNpZ25hbCB9LFxuICAgICk7XG4gICAgdGhpcy5faW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnY2hhbmdlJyxcbiAgICAgIChldmVudDogRXZlbnQpID0+IHRoaXMuX3VwZGF0ZVZhbHVlKChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUpLFxuICAgICAge1xuICAgICAgICBzaWduYWw6IHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdjaGFuZ2UnLFxuICAgICAgKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlKGV2ZW50KTtcbiAgICAgICAgdGhpcy5fdXBkYXRlQWNjZXNzaWJpbGl0eU1lc3NhZ2UoKTtcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNpZ25hbDogdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgYHZhbHVlYCBhbmQgYHZhbHVlQXNEYXRlYC4gVGhlIGRpcmVjdCB1cGRhdGUgb24gdGhlIGBfaW5wdXRFbGVtZW50YCBpcyByZXF1aXJlZFxuICAgKiB0byBmb3JjZSB0aGUgaW5wdXQgY2hhbmdlIHdoZW4gdGhlIHR5cGVkIHZhbHVlIGlzIHRoZSBzYW1lIG9mIHRoZSBjdXJyZW50IG9uZS5cbiAgICovXG4gIHByaXZhdGUgX3VwZGF0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBSZXNldCBhY2Nlc3NpYmlsaXR5IG1lc3NhZ2VcbiAgICBpZiAodGhpcy5fc3RhdHVzQ29udGFpbmVyKSB7XG4gICAgICB0aGlzLl9zdGF0dXNDb250YWluZXIuaW5uZXJUZXh0ID0gJyc7XG4gICAgfVxuICAgIGlmICghdGhpcy5faW5wdXRFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGltZSA9IHRoaXMuX3BhcnNlSW5wdXQodmFsdWUpO1xuICAgIGNvbnN0IGlzVGltZVZhbGlkID0gISF0aW1lICYmIHRoaXMuX2lzVGltZVZhbGlkKHRpbWUpO1xuICAgIGNvbnN0IGlzRW1wdHlPclZhbGlkID0gIXZhbHVlIHx8IHZhbHVlLnRyaW0oKSA9PT0gJycgfHwgaXNUaW1lVmFsaWQ7XG4gICAgaWYgKGlzRW1wdHlPclZhbGlkICYmIHRpbWUpIHtcbiAgICAgIC8vIEluIG9yZGVyIHRvIHN1cHBvcnQgUmVhY3Qgb25DaGFuZ2UgZXZlbnQsIHdlIGhhdmUgdG8gZ2V0IHRoZSBzZXR0ZXIgYW5kIGNhbGwgaXQuXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzExNjAwI2lzc3VlY29tbWVudC0zNDU4MTMxMzBcbiAgICAgIGNvbnN0IHNldFZhbHVlID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihIVE1MSW5wdXRFbGVtZW50LnByb3RvdHlwZSwgJ3ZhbHVlJykhLnNldCE7XG4gICAgICBzZXRWYWx1ZS5jYWxsKHRoaXMuX2lucHV0RWxlbWVudCwgdGhpcy5fZm9ybWF0VmFsdWUodGltZSkpO1xuXG4gICAgICB0aGlzLl9pbnB1dEVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICB9XG5cbiAgICBjb25zdCB3YXNWYWxpZCA9ICF0aGlzLl9pbnB1dEVsZW1lbnQuaGFzQXR0cmlidXRlKCdkYXRhLXNiYi1pbnZhbGlkJyk7XG4gICAgdGhpcy5faW5wdXRFbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1zYmItaW52YWxpZCcsICFpc0VtcHR5T3JWYWxpZCk7XG4gICAgaWYgKHdhc1ZhbGlkICE9PSBpc0VtcHR5T3JWYWxpZCkge1xuICAgICAgdGhpcy5fdmFsaWRhdGlvbkNoYW5nZS5lbWl0KHsgdmFsaWQ6IGlzRW1wdHlPclZhbGlkIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBFbWl0cyB0aGUgY2hhbmdlIGV2ZW50LiAqL1xuICBwcml2YXRlIF9lbWl0Q2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGZvcndhcmRFdmVudChldmVudCwgdGhpcyk7XG4gICAgdGhpcy5fZGlkQ2hhbmdlLmVtaXQoKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSByaWdodCBmb3JtYXQgZm9yIHRoZSBgdmFsdWVgIHByb3BlcnR5LiAqL1xuICBwcml2YXRlIF9mb3JtYXRWYWx1ZSh0aW1lOiBUaW1lKTogc3RyaW5nIHtcbiAgICBjb25zdCBob3VycyA9IFN0cmluZyh0aW1lLmhvdXJzKS5wYWRTdGFydCgyLCAnMCcpO1xuICAgIGNvbnN0IG1pbnV0ZXMgPSBTdHJpbmcodGltZS5taW51dGVzKS5wYWRTdGFydCgyLCAnMCcpO1xuICAgIHJldHVybiBgJHtob3Vyc306JHttaW51dGVzfWA7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcmlnaHQgZm9ybWF0IGZvciB0aGUgYHZhbHVlQXNEYXRlYCBwcm9wZXJ0eTpcbiAgICogc2V0cyB0aGUgc3RhcnQgZGF0ZSBhdCAwMS4wMS4xOTcwLCB0aGVuIGFkZHMgdGhlIHR5cGVkIGhvdXJzL21pbnV0ZXMuXG4gICAqL1xuICBwcml2YXRlIF9mb3JtYXRWYWx1ZUFzRGF0ZSh0aW1lOiBUaW1lIHwgbnVsbCB8IHVuZGVmaW5lZCk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAoIXRpbWUgfHwgIXRoaXMuX2lzVGltZVZhbGlkKHRpbWUpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERhdGUobmV3IERhdGUoMCkuc2V0SG91cnModGltZS5ob3VycywgdGltZS5taW51dGVzLCAwLCAwKSk7XG4gIH1cblxuICAvKiogQ2hlY2tzIGlmIHZhbHVlcyBvZiBob3VycyBhbmQgbWludXRlcyBhcmUgcG9zc2libGUsIHRvIGF2b2lkIG5vbi1leGlzdGVudCB0aW1lcy4gKi9cbiAgcHJpdmF0ZSBfaXNUaW1lVmFsaWQodGltZTogVGltZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aW1lLmhvdXJzIDwgMjQgJiYgdGltZS5taW51dGVzIDwgNjA7XG4gIH1cblxuICAvKiogVmFsaWRhdGUgaW5wdXQgYWdhaW5zdCB0aGUgZGVmaW5lZCBSZWdFeHBzLiAqL1xuICBwcml2YXRlIF9wYXJzZUlucHV0KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBUaW1lIHwgbnVsbCB7XG4gICAgY29uc3QgdHJpbW1lZFZhbHVlID0gdmFsdWU/LnRyaW0oKTtcbiAgICBpZiAoIXRyaW1tZWRWYWx1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gU3BlY2lhbCBjYXNlOiB0aGUgaW5wdXQgaXMgMyBvciA0IGRpZ2l0czsgc3BsaXQgbGlrZTogQUI/OkNEXG4gICAgY29uc3QgbWF0Y2ggPSB0cmltbWVkVmFsdWUubWF0Y2goUkVHRVhfR1JPVVBTX1dJVEhPVVRfQ09MT04pO1xuICAgIGlmIChtYXRjaCkge1xuICAgICAgcmV0dXJuIHsgaG91cnM6ICttYXRjaFsxXSB8fCAwLCBtaW51dGVzOiArbWF0Y2hbMl0gfHwgMCB9O1xuICAgIH1cblxuICAgIGNvbnN0IG1hdGNoQ29sb24gPSB0cmltbWVkVmFsdWUubWF0Y2goUkVHRVhfR1JPVVBTX1dJVEhfQ09MT04pO1xuICAgIGlmIChtYXRjaENvbG9uKSB7XG4gICAgICByZXR1cm4geyBob3VyczogK21hdGNoQ29sb25bMV0gfHwgMCwgbWludXRlczogK21hdGNoQ29sb25bMl0gfHwgMCB9O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqICBPbmx5IGFsbG93IHR5cGluZyBudW1iZXJzIGFuZCBzZXBhcmF0b3Iga2V5cy4gKi9cbiAgcHJpdmF0ZSBfcHJldmVudENoYXJJbnNlcnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBhbHdheXNBbGxvd2VkID0gW1xuICAgICAgJ0JhY2tzcGFjZScsXG4gICAgICAnVGFiJyxcbiAgICAgICdFbnRlcicsXG4gICAgICAnQXJyb3dVcCcsXG4gICAgICAnQXJyb3dEb3duJyxcbiAgICAgICdBcnJvd0xlZnQnLFxuICAgICAgJ0Fycm93UmlnaHQnLFxuICAgICAgJ0hvbWUnLFxuICAgICAgJ0VuZCcsXG4gICAgICAnUGFnZVVwJyxcbiAgICAgICdQYWdlRG93bicsXG4gICAgICAnRGVsZXRlJyxcbiAgICBdO1xuXG4gICAgaWYgKFxuICAgICAgIWV2ZW50LmN0cmxLZXkgJiZcbiAgICAgICFldmVudC5hbHRLZXkgJiZcbiAgICAgICFldmVudC5tZXRhS2V5ICYmXG4gICAgICAhYWx3YXlzQWxsb3dlZC5pbmNsdWRlcyhldmVudC5rZXkpICYmXG4gICAgICAhUkVHRVhfQUxMT1dFRF9DSEFSQUNURVJTLnRlc3QoZXZlbnQua2V5KVxuICAgICkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICAvLyBXZSB1c2UgYSBwcm9ncmFtbWF0aWMgYXBwcm9hY2ggdG8gYXZvaWQgaW5pdGlhbCBzZXR0aW5nIHRoZSBtZXNzYWdlXG4gIC8vIGFuZCB0byBub3QgaW1tZWRpYXRlbHkgY2hhbmdlIG91dHB1dCBpZiBsYW5ndWFnZSBzaG91bGQgY2hhbmdlIChubyByZWFzb24gdG8gcmVhZCBvdXQgbWVzc2FnZSkuXG4gIHByaXZhdGUgX3VwZGF0ZUFjY2Vzc2liaWxpdHlNZXNzYWdlKCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbGlkID0gIXRoaXMuX2lucHV0RWxlbWVudCEuaGFzQXR0cmlidXRlKCdkYXRhLXNiYi1pbnZhbGlkJyk7XG4gICAgaWYgKCF2YWxpZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3N0YXR1c0NvbnRhaW5lci5pbm5lclRleHQgPSBgJHtpMThuVGltZUlucHV0Q2hhbmdlW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAke1xuICAgICAgdGhpcy5faW5wdXRFbGVtZW50Py52YWx1ZVxuICAgIH0uYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHBcbiAgICAgICAgcm9sZT1cInN0YXR1c1wiXG4gICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpID0+ICh0aGlzLl9zdGF0dXNDb250YWluZXIgPSBlbCBhcyBIVE1MUGFyYWdyYXBoRWxlbWVudCkpfVxuICAgICAgPjwvcD5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItdGltZS1pbnB1dCc6IFNiYlRpbWVJbnB1dEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJTYmJUaW1lSW5wdXRFbGVtZW50IiwiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0JBLE1BQU0sMkJBQTJCO0FBQ2pDLE1BQU0sNkJBQTZCO0FBQ25DLE1BQU0sMEJBQTBCO0lBZTFCLHVCQUFtQixNQUFBOzswQkFEeEIsY0FBYyxnQkFBZ0IsQ0FBQzs7OztvQkFDRTs7Ozs7Ozs7O0FBQVJBLE1BQUFBLHdCQUFBLG1CQUFRLFlBQVU7QUFBQTs7QUFVMUM7QUFFUztBQVpMLHlCQUFBLDBCQUFBLGtCQUFBLE1BQUEsMEJBQUEsR0FVaUQsa0JBQUEsTUFBQSxxQkFBQSxJQUFJO0FBRS9CLHlCQUFBLGtDQUFBLGtCQUFBLE1BQUEsd0JBQUEsR0FBQSxrQkFBQSxNQUFBLDZCQUF5QyxJQUFJO0FBMEJyRCxXQUFBLGNBQUEsa0JB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
@@ -31,7 +31,6 @@ export declare class SbbDialogTitleElement extends SbbDialogTitleElement_base {
31
31
  private _backClick;
32
32
  private _language;
33
33
  constructor();
34
- connectedCallback(): void;
35
34
  protected willUpdate(changedProperties: PropertyValues<this>): void;
36
35
  protected render(): TemplateResult;
37
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dialog-title.d.ts","sourceRoot":"","sources":["../../../../src/elements/dialog/dialog-title/dialog-title.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAQ1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAI9C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,oCAAoC,CAAC;;AAE5C;;;;GAIG;AACH,qBAEM,qBAAsB,SAAQ,0BAA8B;IAChE,OAAuB,MAAM,EAAE,cAAc,CAAgC;IAC7E,gBAAuB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE1C;IAEX;;OAEG;IACH,SAEgB,UAAU,EAAE,OAAO,CAAS;IAE5C;;OAEG;IACH,SAEgB,uBAAuB,EAAE,MAAM,CAAM;IAErD;;OAEG;IACH,SAEgB,sBAAsB,EAAE,MAAM,CAAM;IAEpD;;OAEG;IACH,IACW,YAAY,CAAC,KAAK,EAAE,EAAE,GAAG,UAAU,GAAG,OAAO,EAEvD;IACD,IAAW,YAAY,IAAI,UAAU,GAAG,OAAO,CAE9C;IACD,OAAO,CAAC,aAAa,CAA+B;IAEpD,OAAO,CAAC,UAAU,CAGhB;IACF,OAAO,CAAC,SAAS,CAAmC;;IAQpC,iBAAiB,IAAI,IAAI;cAKtB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAQzD,MAAM,IAAI,cAAc;CAmC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,kBAAkB,EAAE,qBAAqB,CAAC;KAC3C;CACF"}
1
+ {"version":3,"file":"dialog-title.d.ts","sourceRoot":"","sources":["../../../../src/elements/dialog/dialog-title/dialog-title.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAQ1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAI9C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,oCAAoC,CAAC;;AAE5C;;;;GAIG;AACH,qBAEM,qBAAsB,SAAQ,0BAA8B;IAChE,OAAuB,MAAM,EAAE,cAAc,CAAgC;IAC7E,gBAAuB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE1C;IAEX;;OAEG;IACH,SAEgB,UAAU,EAAE,OAAO,CAAS;IAE5C;;OAEG;IACH,SAEgB,uBAAuB,EAAE,MAAM,CAAM;IAErD;;OAEG;IACH,SAEgB,sBAAsB,EAAE,MAAM,CAAM;IAEpD;;OAEG;IACH,IACW,YAAY,CAAC,KAAK,EAAE,EAAE,GAAG,UAAU,GAAG,OAAO,EAEvD;IACD,IAAW,YAAY,IAAI,UAAU,GAAG,OAAO,CAE9C;IACD,OAAO,CAAC,aAAa,CAA+B;IAEpD,OAAO,CAAC,UAAU,CAGhB;IACF,OAAO,CAAC,SAAS,CAAmC;;cASjC,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAQzD,MAAM,IAAI,cAAc;CAmC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,kBAAkB,EAAE,qBAAqB,CAAC;KAC3C;CACF"}
@@ -2,11 +2,11 @@ var D = (t) => {
2
2
  throw TypeError(t);
3
3
  };
4
4
  var I = (t, s, i) => s.has(t) || D("Cannot " + i);
5
- var v = (t, s, i) => (I(t, s, "read from private field"), i ? i.call(t) : s.get(t)), g = (t, s, i) => s.has(t) ? D("Cannot add the same private member more than once") : s instanceof WeakSet ? s.add(t) : s.set(t, i), c = (t, s, i, o) => (I(t, s, "write to private field"), o ? o.call(t, i) : s.set(t, i), i);
6
- import { __esDecorate as u, __runInitializers as b } from "tslib";
5
+ var u = (t, s, i) => (I(t, s, "read from private field"), i ? i.call(t) : s.get(t)), g = (t, s, i) => s.has(t) ? D("Cannot add the same private member more than once") : s instanceof WeakSet ? s.add(t) : s.set(t, i), c = (t, s, i, o) => (I(t, s, "write to private field"), o ? o.call(t, i) : s.set(t, i), i);
6
+ import { __esDecorate as v, __runInitializers as b } from "tslib";
7
7
  import { css as A, nothing as G } from "lit";
8
8
  import { customElement as M, property as m } from "lit/decorators.js";
9
- import { unsafeStatic as _, html as f } from "lit/static-html.js";
9
+ import { unsafeStatic as _, html as k } from "lit/static-html.js";
10
10
  import { SbbFocusVisibleWithinController as N } from "../core/a11y.js";
11
11
  import { SbbLanguageController as U } from "../core/controllers.js";
12
12
  import { forceType as p } from "../core/decorators.js";
@@ -19,20 +19,20 @@ import "../button/transparent-button.js";
19
19
  const Y = A`:host{--sbb-dialog-title-padding-block: var(--sbb-spacing-responsive-s) 0;display:contents}:host([negative]){--sbb-title-text-color-normal: var(--sbb-color-milk)}:host([data-overflows]){--sbb-dialog-title-padding-block: var(--sbb-spacing-responsive-s)}.sbb-title{flex:1;overflow:hidden;align-self:center;-webkit-hyphens:auto;hyphens:auto;margin:0}.sbb-dialog__header{display:flex;gap:var(--sbb-spacing-fixed-6x);align-items:start;justify-content:space-between;padding-inline:var(--sbb-dialog-padding-inline);padding-block:var(--sbb-dialog-title-padding-block);background-color:var(--sbb-dialog-background-color);border-block-end:var(--sbb-dialog-title-border);z-index:var(--sbb-dialog-z-index, var(--sbb-overlay-default-z-index))}:host(:not([data-has-visible-focus-within])) .sbb-dialog__header{transform:translateY(var(--sbb-dialog-header-margin-block-start));transition-property:box-shadow,transform;transition-duration:var(--sbb-dialog-animation-duration);transition-timing-function:var(--sbb-dialog-animation-easing)}:host([data-overflows][data-has-visible-focus-within]) .sbb-dialog__header,:host([data-overflows]:not([negative],[data-hide-header])) .sbb-dialog__header{box-shadow:var(--sbb-shadow-elevation-level-9-shadow-2-offset-x) var(--sbb-shadow-elevation-level-9-shadow-2-offset-y) var(--sbb-shadow-elevation-level-9-shadow-2-blur) var(--sbb-shadow-elevation-level-9-shadow-2-spread) var(--sbb-shadow-elevation-level-9-soft-2-color),var(--sbb-shadow-elevation-level-9-shadow-1-offset-x) var(--sbb-shadow-elevation-level-9-shadow-1-offset-y) var(--sbb-shadow-elevation-level-9-shadow-1-blur) var(--sbb-shadow-elevation-level-9-shadow-1-spread) var(--sbb-shadow-elevation-level-9-soft-1-color)}@media (forced-colors: active){:host([data-overflows][data-has-visible-focus-within]) .sbb-dialog__header,:host([data-overflows]:not([negative],[data-hide-header])) .sbb-dialog__header{--sbb-dialog-title-border: var(--sbb-border-width-1x) solid CanvasText}}@media (min-width: 52.5rem){.sbb-dialog__header{border-radius:var(--sbb-dialog-border-radius) var(--sbb-dialog-border-radius) 0 0}}.sbb-dialog__close{margin-inline-start:auto}`;
20
20
  let re = (() => {
21
21
  var n, d, h, l;
22
- let t = [M("sbb-dialog-title")], s, i = [], o, y = W(j), w = [], B, L = [], x = [], C, S = [], z = [], $, O = [], E = [], T;
23
- var k = (l = class extends y {
22
+ let t = [M("sbb-dialog-title")], s, i = [], o, y = W(j), w = [], B, L = [], x = [], S, C = [], z = [], $, O = [], E = [], T;
23
+ var f = (l = class extends y {
24
24
  constructor() {
25
25
  super();
26
26
  g(this, n);
27
27
  g(this, d);
28
28
  g(this, h);
29
- c(this, n, (b(this, w), b(this, L, !1))), c(this, d, (b(this, x), b(this, S, ""))), c(this, h, (b(this, z), b(this, O, ""))), this._hideOnScroll = (b(this, E), !1), this._backClick = new q(this, k.events.backClick), this._language = new U(this), this.level = "2", this.visualLevel = "3";
29
+ c(this, n, (b(this, w), b(this, L, !1))), c(this, d, (b(this, x), b(this, C, ""))), c(this, h, (b(this, z), b(this, O, ""))), this._hideOnScroll = (b(this, E), !1), this._backClick = new q(this, f.events.backClick), this._language = new U(this), this.level = "2", this.visualLevel = "3", this.addController(new N(this));
30
30
  }
31
31
  /**
32
32
  * Whether a back button is displayed next to the title.
33
33
  */
34
34
  get backButton() {
35
- return v(this, n);
35
+ return u(this, n);
36
36
  }
37
37
  set backButton(e) {
38
38
  c(this, n, e);
@@ -41,7 +41,7 @@ let re = (() => {
41
41
  * This will be forwarded as aria-label to the close button element.
42
42
  */
43
43
  get accessibilityCloseLabel() {
44
- return v(this, d);
44
+ return u(this, d);
45
45
  }
46
46
  set accessibilityCloseLabel(e) {
47
47
  c(this, d, e);
@@ -50,7 +50,7 @@ let re = (() => {
50
50
  * This will be forwarded as aria-label to the back button element.
51
51
  */
52
52
  get accessibilityBackLabel() {
53
- return v(this, h);
53
+ return u(this, h);
54
54
  }
55
55
  set accessibilityBackLabel(e) {
56
56
  c(this, h, e);
@@ -64,14 +64,11 @@ let re = (() => {
64
64
  get hideOnScroll() {
65
65
  return this._hideOnScroll;
66
66
  }
67
- connectedCallback() {
68
- super.connectedCallback(), new N(this);
69
- }
70
67
  willUpdate(e) {
71
68
  super.willUpdate(e), (e.has("backButton") || e.has("accessibilityBackLabel")) && (this.backButton = !this.backButton && this.accessibilityBackLabel ? !0 : this.backButton);
72
69
  }
73
70
  render() {
74
- const e = this.negative ? "sbb-transparent-button" : "sbb-secondary-button", a = f`
71
+ const e = this.negative ? "sbb-transparent-button" : "sbb-secondary-button", a = k`
75
72
  <${_(e)}
76
73
  class="sbb-dialog__close"
77
74
  aria-label=${this.accessibilityCloseLabel || F[this._language.current]}
@@ -81,7 +78,7 @@ let re = (() => {
81
78
  icon-name="cross-small"
82
79
  sbb-dialog-close
83
80
  ></${_(e)}>
84
- `, r = f`
81
+ `, r = k`
85
82
  <${_(e)}
86
83
  class="sbb-dialog__back"
87
84
  aria-label=${this.accessibilityBackLabel || V[this._language.current]}
@@ -92,7 +89,7 @@ let re = (() => {
92
89
  @click=${() => this._backClick.emit()}
93
90
  ></${_(e)}>
94
91
  `;
95
- return f`
92
+ return k`
96
93
  <div class="sbb-dialog__header">
97
94
  ${this.backButton ? r : G} ${super.render()} ${a}
98
95
  </div>
@@ -100,19 +97,19 @@ let re = (() => {
100
97
  }
101
98
  }, n = new WeakMap(), d = new WeakMap(), h = new WeakMap(), o = l, (() => {
102
99
  const e = typeof Symbol == "function" && Symbol.metadata ? Object.create(y[Symbol.metadata] ?? null) : void 0;
103
- B = [p(), m({ attribute: "back-button", type: Boolean })], C = [p(), m({ attribute: "accessibility-close-label" })], $ = [p(), m({ attribute: "accessibility-back-label" })], T = [m({ attribute: "hide-on-scroll" })], u(l, null, B, { kind: "accessor", name: "backButton", static: !1, private: !1, access: { has: (a) => "backButton" in a, get: (a) => a.backButton, set: (a, r) => {
100
+ B = [p(), m({ attribute: "back-button", type: Boolean })], S = [p(), m({ attribute: "accessibility-close-label" })], $ = [p(), m({ attribute: "accessibility-back-label" })], T = [m({ attribute: "hide-on-scroll" })], v(l, null, B, { kind: "accessor", name: "backButton", static: !1, private: !1, access: { has: (a) => "backButton" in a, get: (a) => a.backButton, set: (a, r) => {
104
101
  a.backButton = r;
105
- } }, metadata: e }, L, x), u(l, null, C, { kind: "accessor", name: "accessibilityCloseLabel", static: !1, private: !1, access: { has: (a) => "accessibilityCloseLabel" in a, get: (a) => a.accessibilityCloseLabel, set: (a, r) => {
102
+ } }, metadata: e }, L, x), v(l, null, S, { kind: "accessor", name: "accessibilityCloseLabel", static: !1, private: !1, access: { has: (a) => "accessibilityCloseLabel" in a, get: (a) => a.accessibilityCloseLabel, set: (a, r) => {
106
103
  a.accessibilityCloseLabel = r;
107
- } }, metadata: e }, S, z), u(l, null, $, { kind: "accessor", name: "accessibilityBackLabel", static: !1, private: !1, access: { has: (a) => "accessibilityBackLabel" in a, get: (a) => a.accessibilityBackLabel, set: (a, r) => {
104
+ } }, metadata: e }, C, z), v(l, null, $, { kind: "accessor", name: "accessibilityBackLabel", static: !1, private: !1, access: { has: (a) => "accessibilityBackLabel" in a, get: (a) => a.accessibilityBackLabel, set: (a, r) => {
108
105
  a.accessibilityBackLabel = r;
109
- } }, metadata: e }, O, E), u(l, null, T, { kind: "setter", name: "hideOnScroll", static: !1, private: !1, access: { has: (a) => "hideOnScroll" in a, set: (a, r) => {
106
+ } }, metadata: e }, O, E), v(l, null, T, { kind: "setter", name: "hideOnScroll", static: !1, private: !1, access: { has: (a) => "hideOnScroll" in a, set: (a, r) => {
110
107
  a.hideOnScroll = r;
111
- } }, metadata: e }, null, w), u(null, s = { value: o }, t, { kind: "class", name: o.name, metadata: e }, null, i), k = o = s.value, e && Object.defineProperty(o, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: e });
108
+ } }, metadata: e }, null, w), v(null, s = { value: o }, t, { kind: "class", name: o.name, metadata: e }, null, i), f = o = s.value, e && Object.defineProperty(o, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: e });
112
109
  })(), l.styles = [j.styles, Y], l.events = {
113
110
  backClick: "requestBackAction"
114
111
  }, b(o, i), l);
115
- return k = o;
112
+ return f = o;
116
113
  })();
117
114
  export {
118
115
  re as SbbDialogTitleElement
@@ -53,12 +53,10 @@ export declare class SbbExpansionPanelElement extends SbbExpansionPanelElement_b
53
53
  private _progressiveId;
54
54
  private _headerRef?;
55
55
  private _contentRef?;
56
- private _initialized;
57
56
  constructor();
58
57
  connectedCallback(): void;
59
58
  protected willUpdate(changedProperties: PropertyValues<this>): void;
60
59
  disconnectedCallback(): void;
61
- protected firstUpdated(changedProperties: PropertyValues<this>): void;
62
60
  private _toggleExpanded;
63
61
  private _onExpandedChange;
64
62
  private _open;
@@ -1 +1 @@
1
- {"version":3,"file":"expansion-panel.d.ts","sourceRoot":"","sources":["../../../../src/elements/expansion-panel/expansion-panel/expansion-panel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AASjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;;AAQpD;;;;;;;;GAQG;AACH,qBAEM,wBAAyB,SAAQ,6BAA6B;IAClE,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;;;;MAKlB;IAEX,yDAAyD;IACzD,SAAwD,UAAU,EAAE,aAAa,GAAG,IAAI,CAAQ;IAEhG,yCAAyC;IACzC,SAA6C,KAAK,EAAE,OAAO,GAAG,MAAM,CAAW;IAE/E,qCAAqC;IACrC,IACW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAGjC;IACD,IAAW,QAAQ,IAAI,OAAO,CAE7B;IACD,OAAO,CAAC,SAAS,CAAkB;IAEnC,6EAA6E;IAC7E,IACW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAGjC;IACD,IAAW,QAAQ,IAAI,OAAO,CAE7B;IACD,OAAO,CAAC,SAAS,CAAkB;IAEnC,uCAAuC;IACvC,SAEgB,UAAU,EAAE,OAAO,CAAS;IAE5C;;;OAGG;IACH,SAA6C,IAAI,EAAE,GAAG,GAAG,GAAG,CAAwB;IAEpF;;OAEG;IACH,OAAO,KAAK,MAAM,QAEjB;IACD,OAAO,KAAK,MAAM,GAEjB;IAED,8EAA8E;IAC9E,OAAO,CAAC,SAAS,CAIf;IAEF,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAId;IAEF,8EAA8E;IAC9E,OAAO,CAAC,UAAU,CAIhB;IAEF,0DAA0D;IAC1D,OAAO,CAAC,SAAS,CAIf;IAEF,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,UAAU,CAAC,CAAiC;IACpD,OAAO,CAAC,WAAW,CAAC,CAAkC;IACtD,OAAO,CAAC,YAAY,CAAkB;;IAOtB,iBAAiB,IAAI,IAAI;cAKtB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAS5D,oBAAoB,IAAI,IAAI;cAKzB,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAM9E,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,KAAK;IAWb,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,iBAAiB;IAmCzB,OAAO,CAAC,eAAe;cAQJ,MAAM,IAAI,cAAc;CAkB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,qBAAqB,EAAE,wBAAwB,CAAC;KACjD;CACF"}
1
+ {"version":3,"file":"expansion-panel.d.ts","sourceRoot":"","sources":["../../../../src/elements/expansion-panel/expansion-panel/expansion-panel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AASjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;;AAQpD;;;;;;;;GAQG;AACH,qBAEM,wBAAyB,SAAQ,6BAA6B;IAClE,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;;;;MAKlB;IAEX,yDAAyD;IACzD,SAAwD,UAAU,EAAE,aAAa,GAAG,IAAI,CAAQ;IAEhG,yCAAyC;IACzC,SAA6C,KAAK,EAAE,OAAO,GAAG,MAAM,CAAW;IAE/E,qCAAqC;IACrC,IACW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAGjC;IACD,IAAW,QAAQ,IAAI,OAAO,CAE7B;IACD,OAAO,CAAC,SAAS,CAAkB;IAEnC,6EAA6E;IAC7E,IACW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAGjC;IACD,IAAW,QAAQ,IAAI,OAAO,CAE7B;IACD,OAAO,CAAC,SAAS,CAAkB;IAEnC,uCAAuC;IACvC,SAEgB,UAAU,EAAE,OAAO,CAAS;IAE5C;;;OAGG;IACH,SAA6C,IAAI,EAAE,GAAG,GAAG,GAAG,CAAwB;IAEpF;;OAEG;IACH,OAAO,KAAK,MAAM,QAEjB;IACD,OAAO,KAAK,MAAM,GAEjB;IAED,8EAA8E;IAC9E,OAAO,CAAC,SAAS,CAIf;IAEF,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAId;IAEF,8EAA8E;IAC9E,OAAO,CAAC,UAAU,CAIhB;IAEF,0DAA0D;IAC1D,OAAO,CAAC,SAAS,CAIf;IAEF,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,UAAU,CAAC,CAAiC;IACpD,OAAO,CAAC,WAAW,CAAC,CAAkC;;IAOtC,iBAAiB,IAAI,IAAI;cAKtB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAS5D,oBAAoB,IAAI,IAAI;IAK5C,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,KAAK;IAWb,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,iBAAiB;IAmCzB,OAAO,CAAC,eAAe;cAQJ,MAAM,IAAI,cAAc;CAkB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,qBAAqB,EAAE,wBAAwB,CAAC;KACjD;CACF"}