@sbb-esta/lyne-elements-dev 4.11.0-dev.1776752302 → 4.11.0-dev.1776867495
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.
- package/{block-link-common-DzGY49Xc.js → block-link-common-BwXob5QE.js} +1 -1
- package/core/styles/core.scss +37 -4
- package/core/styles/mixins/helpers.scss +3 -3
- package/core.css +70 -5
- package/custom-elements.json +1576 -1576
- package/development/{block-link-common-GckvjULA.js → block-link-common-Dh1NOKxB.js} +2 -2
- package/development/form-field/form-field/form-field.component.js +1 -1
- package/development/form-field/form-field.js +1 -1
- package/development/{form-field.component-D0NJclvI.js → form-field.component-CWVzymTX.js} +2 -2
- package/development/form-field.js +1 -1
- package/development/form-field.pure.js +1 -1
- package/development/link/common/block-link-common.js +1 -1
- package/development/link/common.js +1 -1
- package/development/link.js +1 -1
- package/development/link.pure.js +1 -1
- package/development/slider/slider.component.js +1 -1
- package/development/{slider.component-BjfLnUvP.js → slider.component-C3qZB6ar.js} +2 -2
- package/development/slider.js +1 -1
- package/development/slider.pure.js +1 -1
- package/development/step-label.component-DjA-3IGs.js +131 -0
- package/development/stepper/step-label/step-label.component.js +1 -1
- package/development/stepper/step-label.js +1 -1
- package/development/stepper.js +1 -1
- package/development/stepper.pure.js +1 -1
- package/development/teaser-hero/teaser-hero.component.js +1 -1
- package/development/{teaser-hero.component-DNlc8Tbl.js → teaser-hero.component-BIOpoGME.js} +2 -2
- package/development/teaser-hero.js +1 -1
- package/development/teaser-hero.pure.js +1 -1
- package/development/timetable-form/timetable-form/timetable-form.component.js +1 -1
- package/development/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
- package/development/timetable-form/timetable-form-details.js +1 -1
- package/development/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
- package/development/timetable-form/timetable-form-field.js +1 -1
- package/development/timetable-form/timetable-form.js +1 -1
- package/development/timetable-form-details.component-DJl5Qt9y.js +26 -0
- package/development/timetable-form-field.component-DQ_TzcF4.js +44 -0
- package/development/timetable-form.component-N8h4JBlH.js +27 -0
- package/development/timetable-form.js +3 -3
- package/development/timetable-form.pure.js +3 -3
- package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
- package/development/timetable-occupancy.component-dhpPJEaI.js +124 -0
- package/development/timetable-occupancy.js +1 -1
- package/development/timetable-occupancy.pure.js +1 -1
- package/development/toggle/toggle/toggle.component.d.ts.map +1 -1
- package/development/toggle/toggle/toggle.component.js +1 -1
- package/development/toggle/toggle-option/toggle-option.component.d.ts.map +1 -1
- package/development/toggle/toggle-option/toggle-option.component.js +1 -1
- package/development/toggle/toggle-option.js +1 -1
- package/development/toggle/toggle.js +1 -1
- package/development/toggle-check/toggle-check.component.js +1 -1
- package/development/toggle-check.component-_fDAuLob.js +159 -0
- package/development/toggle-check.js +1 -1
- package/development/toggle-check.pure.js +1 -1
- package/development/toggle-option.component-DTS3a603.js +167 -0
- package/development/toggle.component-CKug5pF7.js +249 -0
- package/development/toggle.js +2 -2
- package/development/toggle.pure.js +2 -2
- package/development/tooltip/tooltip.component.js +1 -1
- package/development/tooltip.component-epXOY5vO.js +378 -0
- package/development/tooltip.js +1 -1
- package/development/tooltip.pure.js +1 -1
- package/form-field/form-field/form-field.component.js +1 -1
- package/form-field/form-field.js +1 -1
- package/{form-field.component-Bqw-VgJF.js → form-field.component-Cc_siKrq.js} +1 -1
- package/form-field.js +1 -1
- package/form-field.pure.js +1 -1
- package/link/common/block-link-common.js +1 -1
- package/link/common.js +1 -1
- package/link.js +1 -1
- package/link.pure.js +1 -1
- package/off-brand-theme.css +70 -5
- package/package.json +2 -2
- package/safety-theme.css +70 -5
- package/slider/slider.component.js +1 -1
- package/{slider.component-CoqCppCq.js → slider.component-BlRVR6iU.js} +1 -1
- package/slider.js +1 -1
- package/slider.pure.js +1 -1
- package/standard-theme.css +70 -5
- package/{step-label.component-DnQBwnL8.js → step-label.component-dzcNc12A.js} +1 -1
- package/stepper/step-label/step-label.component.js +1 -1
- package/stepper/step-label.js +1 -1
- package/stepper.js +1 -1
- package/stepper.pure.js +1 -1
- package/teaser-hero/teaser-hero.component.js +1 -1
- package/{teaser-hero.component-CHy82SKQ.js → teaser-hero.component-D8yj-N5n.js} +1 -1
- package/teaser-hero.js +1 -1
- package/teaser-hero.pure.js +1 -1
- package/timetable-form/timetable-form/timetable-form.component.js +1 -1
- package/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
- package/timetable-form/timetable-form-details.js +1 -1
- package/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
- package/timetable-form/timetable-form-field.js +1 -1
- package/timetable-form/timetable-form.js +1 -1
- package/timetable-form-details.component-mWKaBW_9.js +16 -0
- package/timetable-form-field.component-Cv_lv8vf.js +32 -0
- package/{timetable-form.component-CU1FXAZH.js → timetable-form.component-YcvKAlfz.js} +1 -1
- package/timetable-form.js +3 -3
- package/timetable-form.pure.js +3 -3
- package/timetable-occupancy/timetable-occupancy.component.js +1 -1
- package/{timetable-occupancy.component-Db9SfiyD.js → timetable-occupancy.component-BDmxFVKK.js} +1 -1
- package/timetable-occupancy.js +1 -1
- package/timetable-occupancy.pure.js +1 -1
- package/toggle/toggle/toggle.component.js +1 -1
- package/toggle/toggle-option/toggle-option.component.js +1 -1
- package/toggle/toggle-option.js +1 -1
- package/toggle/toggle.js +1 -1
- package/toggle-check/toggle-check.component.js +1 -1
- package/toggle-check.component-DvoslSRr.js +119 -0
- package/toggle-check.js +1 -1
- package/toggle-check.pure.js +1 -1
- package/{toggle-option.component-Bw-GXUQK.js → toggle-option.component-pX3tNwjE.js} +5 -7
- package/{toggle.component-BPpsMMPG.js → toggle.component-Cwc-TJ-a.js} +6 -10
- package/toggle.js +2 -2
- package/toggle.pure.js +2 -2
- package/tooltip/tooltip.component.js +1 -1
- package/{tooltip.component-BY9mV5Sw.js → tooltip.component-B3XLLpLg.js} +1 -1
- package/tooltip.js +1 -1
- package/tooltip.pure.js +1 -1
- package/development/step-label.component-CJFPHIZa.js +0 -131
- package/development/timetable-form-details.component-C8awcdP5.js +0 -26
- package/development/timetable-form-field.component-BI24VjkC.js +0 -44
- package/development/timetable-form.component-CUG86CSN.js +0 -27
- package/development/timetable-occupancy.component-D_PXXvI9.js +0 -124
- package/development/toggle-check.component-BG4w_sE8.js +0 -159
- package/development/toggle-option.component-DRodFwFk.js +0 -169
- package/development/toggle.component-BFYLRN8o.js +0 -254
- package/development/tooltip.component-DzSd9VjW.js +0 -378
- package/timetable-form-details.component-CBZ7QSAx.js +0 -16
- package/timetable-form-field.component-BKxQQqt7.js +0 -32
- package/toggle-check.component-B6Ww5pLD.js +0 -119
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
+
import { html, isServer, unsafeCSS } from "lit";
|
|
3
|
+
import { property } from "lit/decorators.js";
|
|
4
|
+
import { SbbOpenCloseBaseElement } from "./core/base-elements.js";
|
|
5
|
+
import { idReference } from "./core/decorators.js";
|
|
6
|
+
import { isAndroid, isIOS, isZeroAnimationDuration, queueDomContentLoaded } from "./core/dom.js";
|
|
7
|
+
import { SbbDisabledMixin, appendAriaElements, removeAriaElements } from "./core/mixins.js";
|
|
8
|
+
import { boxSizingStyles } from "./core/styles.js";
|
|
9
|
+
import { SbbEscapableOverlayController, SbbOverlayPositionController } from "./core/controllers.js";
|
|
10
|
+
import { sbbOverlayOutsidePointerEventListener } from "./core/overlay.js";
|
|
11
|
+
import { readConfig } from "./core/config.js";
|
|
12
|
+
//#region src/elements/tooltip/tooltip.scss?inline
|
|
13
|
+
var tooltip_default = ":host {\n --sbb-tooltip-max-width: min(\n 25rem,\n calc(100vw - var(--sbb-spacing-fixed-2x))\n );\n --sbb-tooltip-animation-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-4x)\n );\n position-area: var(--sbb-overlay-position-area);\n position-try-fallbacks: var(--sbb-overlay-position-try-fallbacks);\n display: none;\n position: fixed;\n background-color: transparent;\n pointer-events: var(--sbb-tooltip-pointer-events, all);\n z-index: var(--sbb-tooltip-z-index, var(--sbb-overlay-default-z-index));\n animation-name: var(--sbb-tooltip-animation-name);\n animation-duration: var(--sbb-tooltip-animation-duration);\n animation-timing-function: var(--sbb-tooltip-animation-easing);\n font-size: var(--sbb-tooltip-font-size);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n border: none;\n inset: initial;\n padding: 0;\n margin: 0;\n}\n\n:host(:is(:is(:state(state-opening),[state--state-opening]), :is(:state(state-opened),[state--state-opened]), :is(:state(state-closing),[state--state-closing]))) {\n --sbb-tooltip-animation-name: open;\n display: block;\n}\n\n:host(:is(:state(state-closing),[state--state-closing])) {\n --sbb-tooltip-animation-name: close;\n --sbb-tooltip-pointer-events: none;\n}\n\n:host(:is([data-position~=block-end], [data-position~=bottom], [data-position^=end])) {\n padding-block-start: var(--sbb-tooltip-gap);\n}\n\n:host(:is([data-position~=block-start], [data-position~=top], [data-position^=start])) {\n padding-block-end: var(--sbb-tooltip-gap);\n}\n\n:host(:is([data-position~=inline-start],\n[data-position~=inline-end],\n[data-position~=left],\n[data-position~=right],\n[data-position$=\" start\"],\n[data-position$=\" end\"])) {\n padding-inline: var(--sbb-tooltip-gap);\n}\n\n.sbb-tooltip {\n box-shadow: var(--sbb-box-shadow-level-5-soft);\n border: var(--sbb-border-width-1x) solid var(--sbb-tooltip-border-color);\n border-radius: var(--sbb-tooltip-border-radius);\n padding: var(--sbb-tooltip-padding);\n color: var(--sbb-tooltip-color);\n background-color: var(--sbb-tooltip-background-color);\n min-width: var(--sbb-tooltip-min-width);\n max-width: var(--sbb-tooltip-max-width);\n}\n\n@keyframes open {\n from {\n opacity: 0;\n translate: var(--sbb-tooltip-animation-translate);\n }\n to {\n opacity: 1;\n translate: 0;\n }\n}\n@keyframes close {\n from {\n opacity: 1;\n translate: 0;\n }\n to {\n opacity: 0;\n translate: var(--sbb-tooltip-animation-translate);\n }\n}";
|
|
14
|
+
//#endregion
|
|
15
|
+
//#region src/elements/tooltip/tooltip.component.ts
|
|
16
|
+
/**
|
|
17
|
+
* Time between the user putting the pointer on a tooltip
|
|
18
|
+
* trigger and the long press event being fired.
|
|
19
|
+
*/
|
|
20
|
+
var LONGPRESS_DELAY = 500;
|
|
21
|
+
var isMobile = isAndroid || isIOS;
|
|
22
|
+
var tooltipTriggers = /* @__PURE__ */ new WeakMap();
|
|
23
|
+
var nextId = 0;
|
|
24
|
+
/**
|
|
25
|
+
* It displays text content within a tooltip.
|
|
26
|
+
*
|
|
27
|
+
* @slot - Use the unnamed slot to add the text into the tooltip.
|
|
28
|
+
* @cssprop [--sbb-overlay-position-area=block-end] - The primary position for the tooltip.
|
|
29
|
+
* @cssprop [--sbb-overlay-position-try-fallbacks=block-end span-inline-end, block-end span-inline-start, block-start, block-start span-inline-end, block-start span-inline-start] -
|
|
30
|
+
* The list of fallback positions, separated by ',', for the tooltip
|
|
31
|
+
* @cssprop [--sbb-tooltip-z-index=var(--sbb-overlay-default-z-index)] - To specify a custom stack order,
|
|
32
|
+
* the `z-index` can be overridden by defining this CSS variable. The default `z-index` of the
|
|
33
|
+
* component is set to `var(--sbb-overlay-default-z-index)` with a value of `1000`.
|
|
34
|
+
*/
|
|
35
|
+
var SbbTooltipElement = (() => {
|
|
36
|
+
let _classSuper = SbbDisabledMixin(SbbOpenCloseBaseElement);
|
|
37
|
+
let _instanceExtraInitializers = [];
|
|
38
|
+
let _trigger_decorators;
|
|
39
|
+
let _trigger_initializers = [];
|
|
40
|
+
let _trigger_extraInitializers = [];
|
|
41
|
+
let _set_openDelay_decorators;
|
|
42
|
+
let _set_closeDelay_decorators;
|
|
43
|
+
let _set_longPressCloseDelay_decorators;
|
|
44
|
+
return class SbbTooltipElement extends _classSuper {
|
|
45
|
+
static {
|
|
46
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
47
|
+
_trigger_decorators = [idReference(), property()];
|
|
48
|
+
_set_openDelay_decorators = [property({
|
|
49
|
+
attribute: "open-delay",
|
|
50
|
+
type: Number
|
|
51
|
+
})];
|
|
52
|
+
_set_closeDelay_decorators = [property({
|
|
53
|
+
attribute: "close-delay",
|
|
54
|
+
type: Number
|
|
55
|
+
})];
|
|
56
|
+
_set_longPressCloseDelay_decorators = [property({
|
|
57
|
+
attribute: "long-press-close-delay",
|
|
58
|
+
type: Number
|
|
59
|
+
})];
|
|
60
|
+
__esDecorate(this, null, _trigger_decorators, {
|
|
61
|
+
kind: "accessor",
|
|
62
|
+
name: "trigger",
|
|
63
|
+
static: false,
|
|
64
|
+
private: false,
|
|
65
|
+
access: {
|
|
66
|
+
has: (obj) => "trigger" in obj,
|
|
67
|
+
get: (obj) => obj.trigger,
|
|
68
|
+
set: (obj, value) => {
|
|
69
|
+
obj.trigger = value;
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
metadata: _metadata
|
|
73
|
+
}, _trigger_initializers, _trigger_extraInitializers);
|
|
74
|
+
__esDecorate(this, null, _set_openDelay_decorators, {
|
|
75
|
+
kind: "setter",
|
|
76
|
+
name: "openDelay",
|
|
77
|
+
static: false,
|
|
78
|
+
private: false,
|
|
79
|
+
access: {
|
|
80
|
+
has: (obj) => "openDelay" in obj,
|
|
81
|
+
set: (obj, value) => {
|
|
82
|
+
obj.openDelay = value;
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
metadata: _metadata
|
|
86
|
+
}, null, _instanceExtraInitializers);
|
|
87
|
+
__esDecorate(this, null, _set_closeDelay_decorators, {
|
|
88
|
+
kind: "setter",
|
|
89
|
+
name: "closeDelay",
|
|
90
|
+
static: false,
|
|
91
|
+
private: false,
|
|
92
|
+
access: {
|
|
93
|
+
has: (obj) => "closeDelay" in obj,
|
|
94
|
+
set: (obj, value) => {
|
|
95
|
+
obj.closeDelay = value;
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
metadata: _metadata
|
|
99
|
+
}, null, _instanceExtraInitializers);
|
|
100
|
+
__esDecorate(this, null, _set_longPressCloseDelay_decorators, {
|
|
101
|
+
kind: "setter",
|
|
102
|
+
name: "longPressCloseDelay",
|
|
103
|
+
static: false,
|
|
104
|
+
private: false,
|
|
105
|
+
access: {
|
|
106
|
+
has: (obj) => "longPressCloseDelay" in obj,
|
|
107
|
+
set: (obj, value) => {
|
|
108
|
+
obj.longPressCloseDelay = value;
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
metadata: _metadata
|
|
112
|
+
}, null, _instanceExtraInitializers);
|
|
113
|
+
if (_metadata) Object.defineProperty(this, Symbol.metadata, {
|
|
114
|
+
enumerable: true,
|
|
115
|
+
configurable: true,
|
|
116
|
+
writable: true,
|
|
117
|
+
value: _metadata
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
static {
|
|
121
|
+
this.elementName = "sbb-tooltip";
|
|
122
|
+
}
|
|
123
|
+
static {
|
|
124
|
+
this.role = "tooltip";
|
|
125
|
+
}
|
|
126
|
+
static {
|
|
127
|
+
this.styles = [boxSizingStyles, unsafeCSS(tooltip_default)];
|
|
128
|
+
}
|
|
129
|
+
static {
|
|
130
|
+
if (!isServer) queueDomContentLoaded(() => this._initializeTooltipOutlet());
|
|
131
|
+
}
|
|
132
|
+
#trigger_accessor_storage;
|
|
133
|
+
/**
|
|
134
|
+
* The element that will trigger the tooltip overlay.
|
|
135
|
+
*
|
|
136
|
+
* For attribute usage, provide an id reference.
|
|
137
|
+
*/
|
|
138
|
+
get trigger() {
|
|
139
|
+
return this.#trigger_accessor_storage;
|
|
140
|
+
}
|
|
141
|
+
set trigger(value) {
|
|
142
|
+
this.#trigger_accessor_storage = value;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Open the tooltip after a given delay in milliseconds.
|
|
146
|
+
* Global configuration is used as default, if not set.
|
|
147
|
+
*
|
|
148
|
+
* @default null
|
|
149
|
+
*/
|
|
150
|
+
set openDelay(value) {
|
|
151
|
+
this._openDelay = value;
|
|
152
|
+
}
|
|
153
|
+
get openDelay() {
|
|
154
|
+
return this._openDelay ?? readConfig().tooltip?.openDelay ?? 0;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Close the tooltip after a given delay in milliseconds.
|
|
158
|
+
* Global configuration is used as default, if not set.
|
|
159
|
+
*
|
|
160
|
+
* @default null
|
|
161
|
+
*/
|
|
162
|
+
set closeDelay(value) {
|
|
163
|
+
this._closeDelay = value;
|
|
164
|
+
}
|
|
165
|
+
get closeDelay() {
|
|
166
|
+
return this._closeDelay ?? readConfig().tooltip?.closeDelay ?? 0;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Automatically close the tooltip after it has been open by long press.
|
|
170
|
+
* Global configuration is used as default, if not set.
|
|
171
|
+
*
|
|
172
|
+
* @default 1500
|
|
173
|
+
*/
|
|
174
|
+
set longPressCloseDelay(value) {
|
|
175
|
+
this._longPressCloseDelay = +value;
|
|
176
|
+
}
|
|
177
|
+
get longPressCloseDelay() {
|
|
178
|
+
return this._longPressCloseDelay ?? readConfig().tooltip?.longPressCloseDelay ?? 1500;
|
|
179
|
+
}
|
|
180
|
+
constructor() {
|
|
181
|
+
super();
|
|
182
|
+
this.#trigger_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _trigger_initializers, null));
|
|
183
|
+
this._openDelay = (__runInitializers(this, _trigger_extraInitializers), null);
|
|
184
|
+
this._closeDelay = null;
|
|
185
|
+
this._triggerElement = null;
|
|
186
|
+
this._escapableOverlayController = new SbbEscapableOverlayController(this);
|
|
187
|
+
this._overlayController = new SbbOverlayPositionController(this);
|
|
188
|
+
this.addEventListener("mouseleave", (event) => {
|
|
189
|
+
if ((this.state === "opened" || this.state === "opening") && (!event.relatedTarget || !this._triggerElement?.contains(event.relatedTarget))) this._delayedClose();
|
|
190
|
+
}, { passive: true });
|
|
191
|
+
this.addEventListener("overlayOutsidePointer", () => this.close(), { passive: true });
|
|
192
|
+
this.addEventListener("animationend", (e) => this._onTooltipAnimationEnd(e), { passive: true });
|
|
193
|
+
}
|
|
194
|
+
static _initializeTooltipOutlet() {
|
|
195
|
+
this._tooltipOutlet = document.createElement("div");
|
|
196
|
+
this._tooltipOutlet.classList.add("sbb-overlay-outlet");
|
|
197
|
+
document.body.appendChild(this._tooltipOutlet);
|
|
198
|
+
new MutationObserver((mutations) => {
|
|
199
|
+
for (const mutation of mutations) if (mutation.type === "attributes") this._handleTooltipTrigger(mutation.target);
|
|
200
|
+
else if (mutation.type === "childList") for (const node of [...mutation.addedNodes, ...mutation.removedNodes].filter((n) => n.nodeType === n.ELEMENT_NODE)) {
|
|
201
|
+
this._handleTooltipTrigger(node);
|
|
202
|
+
this._findAndHandleTooltipTriggers(node);
|
|
203
|
+
}
|
|
204
|
+
}).observe(document.documentElement, {
|
|
205
|
+
attributeFilter: [
|
|
206
|
+
"sbb-tooltip",
|
|
207
|
+
"sbb-tooltip-open-delay",
|
|
208
|
+
"sbb-tooltip-close-delay",
|
|
209
|
+
"sbb-tooltip-position"
|
|
210
|
+
],
|
|
211
|
+
childList: true,
|
|
212
|
+
subtree: true
|
|
213
|
+
});
|
|
214
|
+
this._findAndHandleTooltipTriggers(document.body);
|
|
215
|
+
}
|
|
216
|
+
static _findAndHandleTooltipTriggers(root) {
|
|
217
|
+
root.querySelectorAll("[sbb-tooltip]").forEach((e) => this._handleTooltipTrigger(e));
|
|
218
|
+
}
|
|
219
|
+
static _handleTooltipTrigger(triggerElement) {
|
|
220
|
+
const tooltipMessage = triggerElement.getAttribute("sbb-tooltip");
|
|
221
|
+
let tooltip = tooltipTriggers.get(triggerElement);
|
|
222
|
+
if (tooltipMessage && triggerElement.isConnected) {
|
|
223
|
+
if (!tooltip) {
|
|
224
|
+
tooltip = document.createElement("sbb-tooltip");
|
|
225
|
+
tooltipTriggers.set(triggerElement, tooltip);
|
|
226
|
+
this._tooltipOutlet.appendChild(tooltip);
|
|
227
|
+
tooltip.trigger = triggerElement;
|
|
228
|
+
}
|
|
229
|
+
tooltip.textContent = tooltipMessage;
|
|
230
|
+
tooltip.openDelay = triggerElement.hasAttribute("sbb-tooltip-open-delay") ? +triggerElement.getAttribute("sbb-tooltip-open-delay") : null;
|
|
231
|
+
tooltip.closeDelay = triggerElement.hasAttribute("sbb-tooltip-close-delay") ? +triggerElement.getAttribute("sbb-tooltip-close-delay") : null;
|
|
232
|
+
const positions = triggerElement.hasAttribute("sbb-tooltip-position") ? triggerElement.getAttribute("sbb-tooltip-position").split(",").map((p) => p.trim()) : triggerElement.tooltipPositions;
|
|
233
|
+
if (positions && positions.length > 0) {
|
|
234
|
+
tooltip.style.setProperty("--sbb-overlay-position-area", positions[0]);
|
|
235
|
+
tooltip.style.setProperty("--sbb-overlay-position-try-fallbacks", positions.slice(1).join(", "));
|
|
236
|
+
} else {
|
|
237
|
+
tooltip.style.removeProperty("--sbb-overlay-position-area");
|
|
238
|
+
tooltip.style.removeProperty("--sbb-overlay-position-try-fallbacks");
|
|
239
|
+
}
|
|
240
|
+
} else if (tooltip) {
|
|
241
|
+
tooltipTriggers.delete(triggerElement);
|
|
242
|
+
tooltip._destroy?.();
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
connectedCallback() {
|
|
246
|
+
super.connectedCallback();
|
|
247
|
+
this.popover = "manual";
|
|
248
|
+
this.id ||= `sbb-tooltip-${++nextId}`;
|
|
249
|
+
this.state = "closed";
|
|
250
|
+
sbbOverlayOutsidePointerEventListener.connect(this);
|
|
251
|
+
if (this.hasUpdated && this.trigger) this._attach(this.trigger);
|
|
252
|
+
}
|
|
253
|
+
disconnectedCallback() {
|
|
254
|
+
super.disconnectedCallback();
|
|
255
|
+
sbbOverlayOutsidePointerEventListener.disconnect(this);
|
|
256
|
+
this._detach();
|
|
257
|
+
}
|
|
258
|
+
requestUpdate(name, oldValue, options) {
|
|
259
|
+
super.requestUpdate(name, oldValue, options);
|
|
260
|
+
if (isServer) return;
|
|
261
|
+
if ((!name || name === "trigger") && this.hasUpdated) this._attach(this.trigger);
|
|
262
|
+
}
|
|
263
|
+
firstUpdated(changedProperties) {
|
|
264
|
+
super.firstUpdated(changedProperties);
|
|
265
|
+
this._attach(this.trigger);
|
|
266
|
+
}
|
|
267
|
+
open() {
|
|
268
|
+
this._resetOpenCloseTimeout();
|
|
269
|
+
if (this.state !== "closed" && this.state !== "closing" || this.disabled || !this.trigger || !this.dispatchBeforeOpenEvent()) return;
|
|
270
|
+
this.showPopover?.();
|
|
271
|
+
this.state = "opening";
|
|
272
|
+
this._overlayController.connect(this.trigger);
|
|
273
|
+
if (this._isZeroAnimationDuration()) this._handleOpening();
|
|
274
|
+
}
|
|
275
|
+
close() {
|
|
276
|
+
this._resetOpenCloseTimeout();
|
|
277
|
+
if (this.state !== "opened" && this.state !== "opening") return;
|
|
278
|
+
this.dispatchBeforeCloseEvent();
|
|
279
|
+
this.state = "closing";
|
|
280
|
+
if (this._isZeroAnimationDuration()) this._handleClosing();
|
|
281
|
+
}
|
|
282
|
+
_delayedOpen() {
|
|
283
|
+
this._resetOpenCloseTimeout();
|
|
284
|
+
this._openTimeout = setTimeout(() => this.open(), this.openDelay);
|
|
285
|
+
}
|
|
286
|
+
_handleOpening() {
|
|
287
|
+
this.state = "opened";
|
|
288
|
+
this._escapableOverlayController.connect();
|
|
289
|
+
this.dispatchOpenEvent();
|
|
290
|
+
}
|
|
291
|
+
_delayedClose() {
|
|
292
|
+
this._resetOpenCloseTimeout();
|
|
293
|
+
this._closeTimeout = setTimeout(() => this.close(), this.closeDelay);
|
|
294
|
+
}
|
|
295
|
+
_handleClosing() {
|
|
296
|
+
this.state = "closed";
|
|
297
|
+
this.hidePopover?.();
|
|
298
|
+
this._overlayController.disconnect();
|
|
299
|
+
this._escapableOverlayController.disconnect();
|
|
300
|
+
this.dispatchCloseEvent();
|
|
301
|
+
this._openStateController?.abort();
|
|
302
|
+
}
|
|
303
|
+
_onTooltipAnimationEnd(event) {
|
|
304
|
+
if (event.animationName === "open" && this.state === "opening") this._handleOpening();
|
|
305
|
+
else if (event.animationName === "close" && this.state === "closing") this._handleClosing();
|
|
306
|
+
}
|
|
307
|
+
_attach(trigger) {
|
|
308
|
+
if (this._triggerElement) this._detach();
|
|
309
|
+
this._triggerElement = trigger;
|
|
310
|
+
if (!this._triggerElement) return;
|
|
311
|
+
this._triggerElement.ariaDescribedByElements = appendAriaElements(this._triggerElement.ariaDescribedByElements, this);
|
|
312
|
+
this._addTriggerEventHandlers();
|
|
313
|
+
}
|
|
314
|
+
_detach() {
|
|
315
|
+
this._triggerAbortController?.abort();
|
|
316
|
+
this._openStateController?.abort();
|
|
317
|
+
this._resetOpenCloseTimeout();
|
|
318
|
+
clearTimeout(this._longPressOpenTimeout);
|
|
319
|
+
clearTimeout(this._longPressCloseTimeout);
|
|
320
|
+
if (!this._triggerElement) return;
|
|
321
|
+
this._triggerElement.ariaDescribedByElements = removeAriaElements(this._triggerElement.ariaDescribedByElements, this);
|
|
322
|
+
this._triggerElement = null;
|
|
323
|
+
}
|
|
324
|
+
_destroy() {
|
|
325
|
+
this._detach();
|
|
326
|
+
this.remove();
|
|
327
|
+
}
|
|
328
|
+
_addTriggerEventHandlers() {
|
|
329
|
+
const trigger = this._triggerElement;
|
|
330
|
+
if (!trigger) return;
|
|
331
|
+
this._triggerAbortController?.abort();
|
|
332
|
+
this._triggerAbortController = new AbortController();
|
|
333
|
+
const options = {
|
|
334
|
+
signal: this._triggerAbortController.signal,
|
|
335
|
+
passive: true
|
|
336
|
+
};
|
|
337
|
+
if (!isMobile) {
|
|
338
|
+
trigger.addEventListener("mouseenter", () => this._delayedOpen(), options);
|
|
339
|
+
trigger.addEventListener("mouseleave", (event) => {
|
|
340
|
+
const newTarget = event.relatedTarget;
|
|
341
|
+
if (!newTarget || newTarget !== this) this._delayedClose();
|
|
342
|
+
}, options);
|
|
343
|
+
trigger.addEventListener("blur", () => this.close(), options);
|
|
344
|
+
trigger.addEventListener("focus", () => this._delayedOpen(), options);
|
|
345
|
+
}
|
|
346
|
+
trigger.addEventListener("touchstart", () => {
|
|
347
|
+
clearTimeout(this._longPressOpenTimeout);
|
|
348
|
+
clearTimeout(this._longPressCloseTimeout);
|
|
349
|
+
this._longPressOpenTimeout = setTimeout(() => this.open(), LONGPRESS_DELAY);
|
|
350
|
+
}, options);
|
|
351
|
+
trigger.addEventListener("touchend", () => {
|
|
352
|
+
clearTimeout(this._longPressOpenTimeout);
|
|
353
|
+
this._longPressCloseTimeout = setTimeout(() => this.close(), this.longPressCloseDelay);
|
|
354
|
+
}, options);
|
|
355
|
+
trigger.addEventListener("touchcancel", () => {
|
|
356
|
+
clearTimeout(this._longPressOpenTimeout);
|
|
357
|
+
}, options);
|
|
358
|
+
}
|
|
359
|
+
_isZeroAnimationDuration() {
|
|
360
|
+
return isZeroAnimationDuration(this, "--sbb-tooltip-animation-duration");
|
|
361
|
+
}
|
|
362
|
+
_resetOpenCloseTimeout() {
|
|
363
|
+
clearTimeout(this._openTimeout);
|
|
364
|
+
clearTimeout(this._closeTimeout);
|
|
365
|
+
}
|
|
366
|
+
render() {
|
|
367
|
+
return html`
|
|
368
|
+
<div class="sbb-tooltip">
|
|
369
|
+
<slot></slot>
|
|
370
|
+
</div>
|
|
371
|
+
`;
|
|
372
|
+
}
|
|
373
|
+
};
|
|
374
|
+
})();
|
|
375
|
+
//#endregion
|
|
376
|
+
export { SbbTooltipElement as t };
|
|
377
|
+
|
|
378
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQtZXBYT1k1dk8uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3Rvb2x0aXAvdG9vbHRpcC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1zYmItdG9vbHRpcC1tYXgtd2lkdGg6IG1pbihcbiAgICAje3NiYi5weC10by1yZW0tYnVpbGQoNDAwKX0sXG4gICAgY2FsYygxMDB2dyAtIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KSlcbiAgKTtcbiAgLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KVxuICApO1xuXG4gIHBvc2l0aW9uLWFyZWE6IHZhcigtLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEpO1xuICBwb3NpdGlvbi10cnktZmFsbGJhY2tzOiB2YXIoLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzKTtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcG9pbnRlci1ldmVudHM6IHZhcigtLXNiYi10b29sdGlwLXBvaW50ZXItZXZlbnRzLCBhbGwpO1xuICB6LWluZGV4OiB2YXIoLS1zYmItdG9vbHRpcC16LWluZGV4LCB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpKTtcbiAgYW5pbWF0aW9uLW5hbWU6IHZhcigtLXNiYi10b29sdGlwLWFuaW1hdGlvbi1uYW1lKTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZHVyYXRpb24pO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZWFzaW5nKTtcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItdG9vbHRpcC1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG5cbiAgLy8gUmVzZXQgW3BvcG92ZXJdIHN0eWxlc1xuICBib3JkZXI6IG5vbmU7XG4gIGluc2V0OiBpbml0aWFsO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG59XG5cbjpob3N0KDppcyg6c3RhdGUoc3RhdGUtb3BlbmluZyksIDpzdGF0ZShzdGF0ZS1vcGVuZWQpLCA6c3RhdGUoc3RhdGUtY2xvc2luZykpKSB7XG4gIC0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLW5hbWU6IG9wZW47XG5cbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbjpob3N0KDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkge1xuICAtLXNiYi10b29sdGlwLWFuaW1hdGlvbi1uYW1lOiBjbG9zZTtcbiAgLS1zYmItdG9vbHRpcC1wb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuOmhvc3QoOmlzKFtkYXRhLXBvc2l0aW9ufj0nYmxvY2stZW5kJ10sIFtkYXRhLXBvc2l0aW9ufj0nYm90dG9tJ10sIFtkYXRhLXBvc2l0aW9uXj0nZW5kJ10pKSB7XG4gIHBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLXNiYi10b29sdGlwLWdhcCk7XG59XG5cbjpob3N0KDppcyhbZGF0YS1wb3NpdGlvbn49J2Jsb2NrLXN0YXJ0J10sIFtkYXRhLXBvc2l0aW9ufj0ndG9wJ10sIFtkYXRhLXBvc2l0aW9uXj0nc3RhcnQnXSkpIHtcbiAgcGFkZGluZy1ibG9jay1lbmQ6IHZhcigtLXNiYi10b29sdGlwLWdhcCk7XG59XG5cbjpob3N0KFxuICA6aXMoXG4gICAgW2RhdGEtcG9zaXRpb25+PSdpbmxpbmUtc3RhcnQnXSxcbiAgICBbZGF0YS1wb3NpdGlvbn49J2lubGluZS1lbmQnXSxcbiAgICBbZGF0YS1wb3NpdGlvbn49J2xlZnQnXSxcbiAgICBbZGF0YS1wb3NpdGlvbn49J3JpZ2h0J10sXG4gICAgW2RhdGEtcG9zaXRpb24kPScgc3RhcnQnXSxcbiAgICBbZGF0YS1wb3NpdGlvbiQ9JyBlbmQnXVxuICApXG4pIHtcbiAgLy8gQWRkIGEgZ2FwIG9uIGJvdGggc2lkZXMgdG8gZGlzdGFuY2UgdGhlIHRvb2x0aXAgZnJvbSB0aGUgdHJpZ2dlciBhbmQgdGhlIGVkZ2Ugb2YgdGhlIHZpZXdwb3J0LlxuICBwYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLXRvb2x0aXAtZ2FwKTtcbn1cblxuLnNiYi10b29sdGlwIHtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2JiLWJveC1zaGFkb3ctbGV2ZWwtNS1zb2Z0KTtcbiAgYm9yZGVyOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KSBzb2xpZCB2YXIoLS1zYmItdG9vbHRpcC1ib3JkZXItY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItdG9vbHRpcC1ib3JkZXItcmFkaXVzKTtcbiAgcGFkZGluZzogdmFyKC0tc2JiLXRvb2x0aXAtcGFkZGluZyk7XG4gIGNvbG9yOiB2YXIoLS1zYmItdG9vbHRpcC1jb2xvcik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi10b29sdGlwLWJhY2tncm91bmQtY29sb3IpO1xuICBtaW4td2lkdGg6IHZhcigtLXNiYi10b29sdGlwLW1pbi13aWR0aCk7XG4gIG1heC13aWR0aDogdmFyKC0tc2JiLXRvb2x0aXAtbWF4LXdpZHRoKTtcbn1cblxuQGtleWZyYW1lcyBvcGVuIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2xhdGU6IHZhcigtLXNiYi10b29sdGlwLWFuaW1hdGlvbi10cmFuc2xhdGUpO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNsYXRlOiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgY2xvc2Uge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zbGF0ZTogMDtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zbGF0ZTogdmFyKC0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLXRyYW5zbGF0ZSk7XG4gIH1cbn1cbiIsImltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIGlzU2VydmVyLFxuICB0eXBlIFByb3BlcnR5RGVjbGFyYXRpb24sXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCB9IGZyb20gJy4uL2NvcmUvYmFzZS1lbGVtZW50cy50cyc7XG5pbXBvcnQgeyByZWFkQ29uZmlnIH0gZnJvbSAnLi4vY29yZS9jb25maWcudHMnO1xuaW1wb3J0IHtcbiAgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIsXG4gIFNiYk92ZXJsYXlQb3NpdGlvbkNvbnRyb2xsZXIsXG59IGZyb20gJy4uL2NvcmUvY29udHJvbGxlcnMudHMnO1xuaW1wb3J0IHsgaWRSZWZlcmVuY2UgfSBmcm9tICcuLi9jb3JlL2RlY29yYXRvcnMudHMnO1xuaW1wb3J0IHsgaXNBbmRyb2lkLCBpc0lPUywgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24sIHF1ZXVlRG9tQ29udGVudExvYWRlZCB9IGZyb20gJy4uL2NvcmUvZG9tLnRzJztcbmltcG9ydCB7IGFwcGVuZEFyaWFFbGVtZW50cywgcmVtb3ZlQXJpYUVsZW1lbnRzLCBTYmJEaXNhYmxlZE1peGluIH0gZnJvbSAnLi4vY29yZS9taXhpbnMudHMnO1xuaW1wb3J0IHsgc2JiT3ZlcmxheU91dHNpZGVQb2ludGVyRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uL2NvcmUvb3ZlcmxheS50cyc7XG5pbXBvcnQgeyBib3hTaXppbmdTdHlsZXMgfSBmcm9tICcuLi9jb3JlL3N0eWxlcy50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3Rvb2x0aXAuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIERlZmluZXMgdGhlIGRlZmF1bHQgcG9zaXRpb24gZm9yIHRoZSB0b29sdGlwIGlmIHRoaXMgZWxlbWVudCBpcyB1c2VkIGFzIGEgdHJpZ2dlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYmJUb29sdGlwRGVmYXVsdFBvc2l0aW9ucyB7XG4gIHJlYWRvbmx5IHRvb2x0aXBQb3NpdGlvbnM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFRpbWUgYmV0d2VlbiB0aGUgdXNlciBwdXR0aW5nIHRoZSBwb2ludGVyIG9uIGEgdG9vbHRpcFxuICogdHJpZ2dlciBhbmQgdGhlIGxvbmcgcHJlc3MgZXZlbnQgYmVpbmcgZmlyZWQuXG4gKi9cbmNvbnN0IExPTkdQUkVTU19ERUxBWSA9IDUwMDtcblxuY29uc3QgaXNNb2JpbGUgPSBpc0FuZHJvaWQgfHwgaXNJT1M7XG5jb25zdCB0b29sdGlwVHJpZ2dlcnMgPSBuZXcgV2Vha01hcDxIVE1MRWxlbWVudCwgU2JiVG9vbHRpcEVsZW1lbnQ+KCk7XG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyB0ZXh0IGNvbnRlbnQgd2l0aGluIGEgdG9vbHRpcC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCB0aGUgdGV4dCBpbnRvIHRoZSB0b29sdGlwLlxuICogQGNzc3Byb3AgWy0tc2JiLW92ZXJsYXktcG9zaXRpb24tYXJlYT1ibG9jay1lbmRdIC0gVGhlIHByaW1hcnkgcG9zaXRpb24gZm9yIHRoZSB0b29sdGlwLlxuICogQGNzc3Byb3AgWy0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcz1ibG9jay1lbmQgc3Bhbi1pbmxpbmUtZW5kLCBibG9jay1lbmQgc3Bhbi1pbmxpbmUtc3RhcnQsIGJsb2NrLXN0YXJ0LCBibG9jay1zdGFydCBzcGFuLWlubGluZS1lbmQsIGJsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0XSAtXG4gKiBUaGUgbGlzdCBvZiBmYWxsYmFjayBwb3NpdGlvbnMsIHNlcGFyYXRlZCBieSAnLCcsIGZvciB0aGUgdG9vbHRpcFxuICogQGNzc3Byb3AgWy0tc2JiLXRvb2x0aXAtei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5leHBvcnQgY2xhc3MgU2JiVG9vbHRpcEVsZW1lbnQgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdG9vbHRpcCc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICd0b29sdGlwJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX3Rvb2x0aXBPdXRsZXQ6IEVsZW1lbnQ7XG5cbiAgc3RhdGljIHtcbiAgICBpZiAoIWlzU2VydmVyKSB7XG4gICAgICAvLyBXZSBkb24ndCB3YW50IHRvIGJsb2NrIGV4ZWN1dGlvbiBmb3IgaW5pdGlhbGl6YXRpb24sXG4gICAgICAvLyBzbyB3ZSBkZWZlciBpdCB1bnRpbCB0aGUgRE9NIGNvbnRlbnQgaXMgbG9hZGVkLlxuICAgICAgcXVldWVEb21Db250ZW50TG9hZGVkKCgpID0+IHRoaXMuX2luaXRpYWxpemVUb29sdGlwT3V0bGV0KCkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgdG9vbHRpcCBvdmVybGF5LlxuICAgKlxuICAgKiBGb3IgYXR0cmlidXRlIHVzYWdlLCBwcm92aWRlIGFuIGlkIHJlZmVyZW5jZS5cbiAgICovXG4gIEBpZFJlZmVyZW5jZSgpXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBhY2Nlc3NvciB0cmlnZ2VyOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBPcGVuIHRoZSB0b29sdGlwIGFmdGVyIGEgZ2l2ZW4gZGVsYXkgaW4gbWlsbGlzZWNvbmRzLlxuICAgKiBHbG9iYWwgY29uZmlndXJhdGlvbiBpcyB1c2VkIGFzIGRlZmF1bHQsIGlmIG5vdCBzZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ29wZW4tZGVsYXknLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIHNldCBvcGVuRGVsYXkodmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICB0aGlzLl9vcGVuRGVsYXkgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IG9wZW5EZWxheSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9vcGVuRGVsYXkgPz8gcmVhZENvbmZpZygpLnRvb2x0aXA/Lm9wZW5EZWxheSA/PyAwO1xuICB9XG4gIHByaXZhdGUgX29wZW5EZWxheTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIENsb3NlIHRoZSB0b29sdGlwIGFmdGVyIGEgZ2l2ZW4gZGVsYXkgaW4gbWlsbGlzZWNvbmRzLlxuICAgKiBHbG9iYWwgY29uZmlndXJhdGlvbiBpcyB1c2VkIGFzIGRlZmF1bHQsIGlmIG5vdCBzZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Nsb3NlLWRlbGF5JywgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBzZXQgY2xvc2VEZWxheSh2YWx1ZTogbnVtYmVyIHwgbnVsbCkge1xuICAgIHRoaXMuX2Nsb3NlRGVsYXkgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IGNsb3NlRGVsYXkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fY2xvc2VEZWxheSA/PyByZWFkQ29uZmlnKCkudG9vbHRpcD8uY2xvc2VEZWxheSA/PyAwO1xuICB9XG4gIHByaXZhdGUgX2Nsb3NlRGVsYXk6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IGNsb3NlIHRoZSB0b29sdGlwIGFmdGVyIGl0IGhhcyBiZWVuIG9wZW4gYnkgbG9uZyBwcmVzcy5cbiAgICogR2xvYmFsIGNvbmZpZ3VyYXRpb24gaXMgdXNlZCBhcyBkZWZhdWx0LCBpZiBub3Qgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAxNTAwXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdsb25nLXByZXNzLWNsb3NlLWRlbGF5JywgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBzZXQgbG9uZ1ByZXNzQ2xvc2VEZWxheSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fbG9uZ1ByZXNzQ2xvc2VEZWxheSA9ICt2YWx1ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IGxvbmdQcmVzc0Nsb3NlRGVsYXkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbG9uZ1ByZXNzQ2xvc2VEZWxheSA/PyByZWFkQ29uZmlnKCkudG9vbHRpcD8ubG9uZ1ByZXNzQ2xvc2VEZWxheSA/PyAxNTAwO1xuICB9XG4gIHByaXZhdGUgX2xvbmdQcmVzc0Nsb3NlRGVsYXk/OiBudW1iZXI7XG5cbiAgcHJpdmF0ZSBfdHJpZ2dlckVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX3RyaWdnZXJBYm9ydENvbnRyb2xsZXI/OiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX29wZW5TdGF0ZUNvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyID0gbmV3IFNiYkVzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9vdmVybGF5Q29udHJvbGxlciA9IG5ldyBTYmJPdmVybGF5UG9zaXRpb25Db250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9vcGVuVGltZW91dD86IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuICBwcml2YXRlIF9jbG9zZVRpbWVvdXQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgcHJpdmF0ZSBfbG9uZ1ByZXNzT3BlblRpbWVvdXQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgcHJpdmF0ZSBfbG9uZ1ByZXNzQ2xvc2VUaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICAvLyBVbnRpbCB0aGUgbW91c2UgaG92ZXJzIHRoZSB0b29sdGlwLCBpdCBzdGF5cyBvcGVuLlxuICAgIC8vIE9uICdtb3VzZWxlYXZlJyAoaWYgdGhlIG1vdXNlIGlzIG5vdCBtb3ZlZCBvbnRvIHRoZSB0cmlnZ2VyIGFnYWluKSwgY2xvc2UgaXQuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ21vdXNlbGVhdmUnLFxuICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAodGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCcgfHwgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSAmJlxuICAgICAgICAgICghZXZlbnQucmVsYXRlZFRhcmdldCB8fCAhdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LmNvbnRhaW5zKGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkpXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuX2RlbGF5ZWRDbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBwYXNzaXZlOiB0cnVlIH0sXG4gICAgKTtcblxuICAgIC8vIEFueSB1c2VyIGludGVyYWN0aW9uIG91dHNpZGUgdGhlIHRvb2x0aXAgY2xvc2VzIGl0IGltbWVkaWF0ZWx5XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdvdmVybGF5T3V0c2lkZVBvaW50ZXInLCAoKSA9PiB0aGlzLmNsb3NlKCksIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uZW5kJywgKGUpID0+IHRoaXMuX29uVG9vbHRpcEFuaW1hdGlvbkVuZChlKSwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2luaXRpYWxpemVUb29sdGlwT3V0bGV0KCk6IHZvaWQge1xuICAgIHRoaXMuX3Rvb2x0aXBPdXRsZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB0aGlzLl90b29sdGlwT3V0bGV0LmNsYXNzTGlzdC5hZGQoJ3NiYi1vdmVybGF5LW91dGxldCcpO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5fdG9vbHRpcE91dGxldCk7XG5cbiAgICAvLyBXZSBhcmUgdXNpbmcgTXV0YXRpb25PYnNlcnZlciBkaXJlY3RseSBoZXJlLCBhcyBpdCB3aWxsIG9ubHkgYmUgY2FsbGVkIG9uIGNsaWVudCBzaWRlLFxuICAgIC8vIGFuZCB3ZSBkbyBub3QgbmVlZCB0byBkaXNjb25uZWN0IGl0LCBhcyB3ZSB3YW50IGl0IHRvIHdvcmsgZHVyaW5nIHRoZSBmdWxsIGxpZmV0aW1lXG4gICAgLy8gb2YgdGhlIHBhZ2UuXG4gICAgbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xuICAgICAgZm9yIChjb25zdCBtdXRhdGlvbiBvZiBtdXRhdGlvbnMpIHtcbiAgICAgICAgaWYgKG11dGF0aW9uLnR5cGUgPT09ICdhdHRyaWJ1dGVzJykge1xuICAgICAgICAgIHRoaXMuX2hhbmRsZVRvb2x0aXBUcmlnZ2VyKG11dGF0aW9uLnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSBpZiAobXV0YXRpb24udHlwZSA9PT0gJ2NoaWxkTGlzdCcpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IG5vZGUgb2YgWy4uLm11dGF0aW9uLmFkZGVkTm9kZXMsIC4uLm11dGF0aW9uLnJlbW92ZWROb2Rlc10uZmlsdGVyKFxuICAgICAgICAgICAgKG4pOiBuIGlzIEhUTUxFbGVtZW50ID0+IG4ubm9kZVR5cGUgPT09IG4uRUxFTUVOVF9OT0RFLFxuICAgICAgICAgICkpIHtcbiAgICAgICAgICAgIHRoaXMuX2hhbmRsZVRvb2x0aXBUcmlnZ2VyKG5vZGUpO1xuICAgICAgICAgICAgdGhpcy5fZmluZEFuZEhhbmRsZVRvb2x0aXBUcmlnZ2Vycyhub2RlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KS5vYnNlcnZlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwge1xuICAgICAgYXR0cmlidXRlRmlsdGVyOiBbXG4gICAgICAgICdzYmItdG9vbHRpcCcsXG4gICAgICAgICdzYmItdG9vbHRpcC1vcGVuLWRlbGF5JyxcbiAgICAgICAgJ3NiYi10b29sdGlwLWNsb3NlLWRlbGF5JyxcbiAgICAgICAgJ3NiYi10b29sdGlwLXBvc2l0aW9uJyxcbiAgICAgIF0sXG4gICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMuX2ZpbmRBbmRIYW5kbGVUb29sdGlwVHJpZ2dlcnMoZG9jdW1lbnQuYm9keSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBfZmluZEFuZEhhbmRsZVRvb2x0aXBUcmlnZ2Vycyhyb290OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIHJvb3RcbiAgICAgIC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PignW3NiYi10b29sdGlwXScpXG4gICAgICAuZm9yRWFjaCgoZSkgPT4gdGhpcy5faGFuZGxlVG9vbHRpcFRyaWdnZXIoZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2hhbmRsZVRvb2x0aXBUcmlnZ2VyKHRyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRvb2x0aXBNZXNzYWdlID0gdHJpZ2dlckVsZW1lbnQuZ2V0QXR0cmlidXRlKCdzYmItdG9vbHRpcCcpO1xuICAgIGxldCB0b29sdGlwID0gdG9vbHRpcFRyaWdnZXJzLmdldCh0cmlnZ2VyRWxlbWVudCk7XG5cbiAgICBpZiAodG9vbHRpcE1lc3NhZ2UgJiYgdHJpZ2dlckVsZW1lbnQuaXNDb25uZWN0ZWQpIHtcbiAgICAgIGlmICghdG9vbHRpcCkge1xuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgc2JiLXRvb2x0aXAgaW4gdGhlIG91dGxldCBhbmQgYXR0YWNoIGl0IHRvIHRoZSB0cmlnZ2VyXG4gICAgICAgIHRvb2x0aXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzYmItdG9vbHRpcCcpO1xuICAgICAgICB0b29sdGlwVHJpZ2dlcnMuc2V0KHRyaWdnZXJFbGVtZW50LCB0b29sdGlwKTtcbiAgICAgICAgdGhpcy5fdG9vbHRpcE91dGxldC5hcHBlbmRDaGlsZCh0b29sdGlwKTtcbiAgICAgICAgdG9vbHRpcC50cmlnZ2VyID0gdHJpZ2dlckVsZW1lbnQ7XG4gICAgICB9XG5cbiAgICAgIHRvb2x0aXAudGV4dENvbnRlbnQgPSB0b29sdGlwTWVzc2FnZTtcbiAgICAgIHRvb2x0aXAub3BlbkRlbGF5ID0gdHJpZ2dlckVsZW1lbnQuaGFzQXR0cmlidXRlKCdzYmItdG9vbHRpcC1vcGVuLWRlbGF5JylcbiAgICAgICAgPyArdHJpZ2dlckVsZW1lbnQuZ2V0QXR0cmlidXRlKCdzYmItdG9vbHRpcC1vcGVuLWRlbGF5JykhXG4gICAgICAgIDogbnVsbDtcbiAgICAgIHRvb2x0aXAuY2xvc2VEZWxheSA9IHRyaWdnZXJFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtY2xvc2UtZGVsYXknKVxuICAgICAgICA/ICt0cmlnZ2VyRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3NiYi10b29sdGlwLWNsb3NlLWRlbGF5JykhXG4gICAgICAgIDogbnVsbDtcblxuICAgICAgLy8gUmVhZCB0aGUgcG9zaXRpb25zIGZyb20gdGhlIHRyaWdnZXIgKGVpdGhlciBmcm9tIHRoZSBhdHRyaWJ1dGUgb3IgdGhlIHByb3BlcnR5KVxuICAgICAgY29uc3QgcG9zaXRpb25zID0gdHJpZ2dlckVsZW1lbnQuaGFzQXR0cmlidXRlKCdzYmItdG9vbHRpcC1wb3NpdGlvbicpXG4gICAgICAgID8gdHJpZ2dlckVsZW1lbnRcbiAgICAgICAgICAgIC5nZXRBdHRyaWJ1dGUoJ3NiYi10b29sdGlwLXBvc2l0aW9uJykhXG4gICAgICAgICAgICAuc3BsaXQoJywnKVxuICAgICAgICAgICAgLm1hcCgocCkgPT4gcC50cmltKCkpXG4gICAgICAgIDogKHRyaWdnZXJFbGVtZW50IGFzIHVua25vd24gYXMgU2JiVG9vbHRpcERlZmF1bHRQb3NpdGlvbnMpLnRvb2x0aXBQb3NpdGlvbnM7XG5cbiAgICAgIGlmIChwb3NpdGlvbnMgJiYgcG9zaXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdG9vbHRpcC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItb3ZlcmxheS1wb3NpdGlvbi1hcmVhJywgcG9zaXRpb25zWzBdKTtcbiAgICAgICAgdG9vbHRpcC5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgICAnLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzJyxcbiAgICAgICAgICBwb3NpdGlvbnMuc2xpY2UoMSkuam9pbignLCAnKSxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRvb2x0aXAuc3R5bGUucmVtb3ZlUHJvcGVydHkoJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tYXJlYScpO1xuICAgICAgICB0b29sdGlwLnN0eWxlLnJlbW92ZVByb3BlcnR5KCctLXNiYi1vdmVybGF5LXBvc2l0aW9uLXRyeS1mYWxsYmFja3MnKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRvb2x0aXApIHtcbiAgICAgIC8vIFRoZSB0cmlnZ2VyIG9yIHRoZSBhdHRyaWJ1dGUgaGFzIGJlZW4gZGVsZXRlZCA9PiBkZWxldGUgdGhlIGNvbm5lY3RlZCB0b29sdGlwXG4gICAgICB0b29sdGlwVHJpZ2dlcnMuZGVsZXRlKHRyaWdnZXJFbGVtZW50KTtcbiAgICAgIC8vIElmIGEgY29uc3VtZXIgb3ZlcnJpZGVzIHRoZSBgc2JiLXRvb2x0aXBgLCB0aGUgZm9sbG93aW5nIGNvZGUgc2hvdWxkIG5vdCBiZVxuICAgICAgLy8gZXhlY3V0ZWQgYXMgd2UgY2FuJ3QgZXhwZWN0IHRoYXQgcHJpdmF0ZSBtZXRob2RzIGFyZSBtb2NrZWQuXG4gICAgICB0b29sdGlwLl9kZXN0cm95Py4oKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLnBvcG92ZXIgPSAnbWFudWFsJztcbiAgICB0aGlzLmlkIHx8PSBgc2JiLXRvb2x0aXAtJHsrK25leHRJZH1gO1xuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2VkJztcbiAgICBzYmJPdmVybGF5T3V0c2lkZVBvaW50ZXJFdmVudExpc3RlbmVyLmNvbm5lY3QodGhpcyk7XG5cbiAgICBpZiAodGhpcy5oYXNVcGRhdGVkICYmIHRoaXMudHJpZ2dlcikge1xuICAgICAgdGhpcy5fYXR0YWNoKHRoaXMudHJpZ2dlcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgc2JiT3ZlcmxheU91dHNpZGVQb2ludGVyRXZlbnRMaXN0ZW5lci5kaXNjb25uZWN0KHRoaXMpO1xuICAgIHRoaXMuX2RldGFjaCgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZCB7XG4gICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG4gICAgaWYgKGlzU2VydmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCghbmFtZSB8fCBuYW1lID09PSAndHJpZ2dlcicpICYmIHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fYXR0YWNoKHRoaXMudHJpZ2dlcik7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXMpOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIHRoaXMuX2F0dGFjaCh0aGlzLnRyaWdnZXIpO1xuICB9XG5cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgaWYgKFxuICAgICAgKHRoaXMuc3RhdGUgIT09ICdjbG9zZWQnICYmIHRoaXMuc3RhdGUgIT09ICdjbG9zaW5nJykgfHxcbiAgICAgIHRoaXMuZGlzYWJsZWQgfHxcbiAgICAgICF0aGlzLnRyaWdnZXIgfHxcbiAgICAgICF0aGlzLmRpc3BhdGNoQmVmb3JlT3BlbkV2ZW50KClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNob3dQb3BvdmVyPy4oKTtcbiAgICB0aGlzLnN0YXRlID0gJ29wZW5pbmcnO1xuICAgIHRoaXMuX292ZXJsYXlDb250cm9sbGVyLmNvbm5lY3QodGhpcy50cmlnZ2VyKTtcblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBvcGVuZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuX3Jlc2V0T3BlbkNsb3NlVGltZW91dCgpO1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmVkJyAmJiB0aGlzLnN0YXRlICE9PSAnb3BlbmluZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRpc3BhdGNoQmVmb3JlQ2xvc2VFdmVudCgpO1xuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2luZyc7XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgY2xvc2VkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2RlbGF5ZWRPcGVuKCk6IHZvaWQge1xuICAgIHRoaXMuX3Jlc2V0T3BlbkNsb3NlVGltZW91dCgpO1xuICAgIHRoaXMuX29wZW5UaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLm9wZW4oKSwgdGhpcy5vcGVuRGVsYXkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlT3BlbmluZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ29wZW5lZCc7XG4gICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuY29ubmVjdCgpO1xuICAgIHRoaXMuZGlzcGF0Y2hPcGVuRXZlbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RlbGF5ZWRDbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9yZXNldE9wZW5DbG9zZVRpbWVvdXQoKTtcbiAgICB0aGlzLl9jbG9zZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xvc2UoKSwgdGhpcy5jbG9zZURlbGF5KTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuaGlkZVBvcG92ZXI/LigpO1xuICAgIHRoaXMuX292ZXJsYXlDb250cm9sbGVyLmRpc2Nvbm5lY3QoKTtcblxuICAgIHRoaXMuX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLmRpc3BhdGNoQ2xvc2VFdmVudCgpO1xuICAgIHRoaXMuX29wZW5TdGF0ZUNvbnRyb2xsZXI/LmFib3J0KCk7XG4gIH1cblxuICBwcml2YXRlIF9vblRvb2x0aXBBbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuJyAmJiB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZScgJiYgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfYXR0YWNoKHRyaWdnZXI6IEhUTUxFbGVtZW50IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgLy8gRXZlbnR1YWxseSBkZXRhY2ggZnJvbSB0aGUgb2xkIHRyaWdnZXJcbiAgICAgIHRoaXMuX2RldGFjaCgpO1xuICAgIH1cblxuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gdHJpZ2dlcjtcbiAgICBpZiAoIXRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmFyaWFEZXNjcmliZWRCeUVsZW1lbnRzID0gYXBwZW5kQXJpYUVsZW1lbnRzKFxuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMsXG4gICAgICB0aGlzLFxuICAgICk7XG4gICAgdGhpcy5fYWRkVHJpZ2dlckV2ZW50SGFuZGxlcnMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RldGFjaCgpOiB2b2lkIHtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX29wZW5TdGF0ZUNvbnRyb2xsZXI/LmFib3J0KCk7XG5cbiAgICAvLyBjbGVhciB0aW1lb3V0c1xuICAgIHRoaXMuX3Jlc2V0T3BlbkNsb3NlVGltZW91dCgpO1xuICAgIGNsZWFyVGltZW91dCh0aGlzLl9sb25nUHJlc3NPcGVuVGltZW91dCk7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdQcmVzc0Nsb3NlVGltZW91dCk7XG5cbiAgICBpZiAoIXRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmFyaWFEZXNjcmliZWRCeUVsZW1lbnRzID0gcmVtb3ZlQXJpYUVsZW1lbnRzKFxuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMsXG4gICAgICB0aGlzLFxuICAgICk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXRhY2goKTtcbiAgICB0aGlzLnJlbW92ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWRkVHJpZ2dlckV2ZW50SGFuZGxlcnMoKTogdm9pZCB7XG4gICAgY29uc3QgdHJpZ2dlciA9IHRoaXMuX3RyaWdnZXJFbGVtZW50O1xuICAgIGlmICghdHJpZ2dlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICBjb25zdCBvcHRpb25zOiBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyA9IHtcbiAgICAgIHNpZ25hbDogdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgIH07XG5cbiAgICBpZiAoIWlzTW9iaWxlKSB7XG4gICAgICB0cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoKSA9PiB0aGlzLl9kZWxheWVkT3BlbigpLCBvcHRpb25zKTtcbiAgICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgJ21vdXNlbGVhdmUnLFxuICAgICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdUYXJnZXQgPSBldmVudC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUgfCBudWxsO1xuICAgICAgICAgIGlmICghbmV3VGFyZ2V0IHx8IG5ld1RhcmdldCAhPT0gdGhpcykge1xuICAgICAgICAgICAgdGhpcy5fZGVsYXllZENsb3NlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKTtcblxuICAgICAgLy8gJ2JsdXJzJyBpbW1lZGlhdGVseSBjbG9zZSB0aGUgdG9vbHRpcCBiZWNhdXNlIGl0IGlzIGNvbnNpZGVyZWQgYW4gJ2ludGVyYWN0aW9uIHdpdGggb3RoZXIgZWxlbWVudHMnXG4gICAgICB0cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCAoKSA9PiB0aGlzLmNsb3NlKCksIG9wdGlvbnMpO1xuICAgICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsICgpID0+IHRoaXMuX2RlbGF5ZWRPcGVuKCksIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8vIExvbmctcHJlc3MgZXZlbnQgaGFuZGxpbmcgKG1haW5seSBmb3IgbW9iaWxlIHVzZXJzKVxuICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICd0b3VjaHN0YXJ0JyxcbiAgICAgICgpID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdQcmVzc09wZW5UaW1lb3V0KTtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdQcmVzc0Nsb3NlVGltZW91dCk7XG4gICAgICAgIHRoaXMuX2xvbmdQcmVzc09wZW5UaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLm9wZW4oKSwgTE9OR1BSRVNTX0RFTEFZKTtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ3RvdWNoZW5kJyxcbiAgICAgICgpID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdQcmVzc09wZW5UaW1lb3V0KTtcbiAgICAgICAgdGhpcy5fbG9uZ1ByZXNzQ2xvc2VUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLmNsb3NlKCksIHRoaXMubG9uZ1ByZXNzQ2xvc2VEZWxheSk7XG4gICAgICB9LFxuICAgICAgb3B0aW9ucyxcbiAgICApO1xuICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICd0b3VjaGNhbmNlbCcsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9sb25nUHJlc3NPcGVuVGltZW91dCk7XG4gICAgICB9LFxuICAgICAgb3B0aW9ucyxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKHRoaXMsICctLXNiYi10b29sdGlwLWFuaW1hdGlvbi1kdXJhdGlvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk6IHZvaWQge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLl9vcGVuVGltZW91dCk7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX2Nsb3NlVGltZW91dCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItdG9vbHRpcFwiPlxuICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItdG9vbHRpcCc6IFNiYlRvb2x0aXBFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNvQ0EsSUFBTSxrQkFBa0I7QUFFeEIsSUFBTSxXQUFXLGFBQWE7QUFDOUIsSUFBTSxrQ0FBa0IsSUFBSSxT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
|
package/development/tooltip.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as SbbTooltipElement } from "./tooltip.component-
|
|
1
|
+
import { t as SbbTooltipElement } from "./tooltip.component-epXOY5vO.js";
|
|
2
2
|
export { SbbTooltipElement };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, t } from "../../form-field.component-
|
|
1
|
+
import { n as e, t } from "../../form-field.component-Cc_siKrq.js";
|
|
2
2
|
export { t as SbbFormFieldControlEvent, e as SbbFormFieldElement };
|
package/form-field/form-field.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as e, t } from "../form-field.component-
|
|
1
|
+
import { n as e, t } from "../form-field.component-Cc_siKrq.js";
|
|
2
2
|
e.define(), console.warn("The entrypoint '@sbb-esta/elements/form-field/form-field.js' has been deprecated.\nUse either '@sbb-esta/elements/form-field.js' or '@sbb-esta/elements/form-field.pure.js' instead.");
|
|
3
3
|
//#endregion
|
|
4
4
|
export { t as SbbFormFieldControlEvent, e as SbbFormFieldElement };
|
|
@@ -11,7 +11,7 @@ import { i18nOptional as te } from "./core/i18n.js";
|
|
|
11
11
|
import "./icon.js";
|
|
12
12
|
import { sbbInputModalityDetector as h } from "./core/a11y.js";
|
|
13
13
|
//#region src/elements/form-field/form-field/form-field.scss?inline
|
|
14
|
-
var g = "@charset \"UTF-8\";:host{--sbb-form-field-hint-divider-width: var(--sbb-spacing-fixed-1x);--sbb-form-field-hint-padding-block-start: var(--sbb-form-field-hint-divider-width);--sbb-form-field-select-inline-padding-end: calc( var(--sbb-icon-svg-width) + var(--sbb-form-field-gap) );--sbb-form-field-label-size: calc( var(--sbb-form-field-label-text-size) * var(--sbb-typo-line-height-text) );--sbb-form-field-text-line-height: calc( var(--sbb-form-field-input-text-size) * var(--sbb-typo-line-height-text) );--sbb-form-field-margin-block-start: calc( ( var(--sbb-form-field-min-height) - var(--sbb-form-field-label-size) - var( --sbb-form-field-text-line-height ) + var(--_sbb-form-field-label-to-input-overlapping) ) / 2 );--sbb-icon-svg-width: var(--sbb-form-field-icon-size);--sbb-icon-svg-height: var(--sbb-form-field-icon-size);--sbb-focus-outline-color: var(--sbb-focus-outline-color-default);--sbb-focus-outline-color: light-dark( var(--sbb-focus-outline-color-default), var(--sbb-focus-outline-color-dark) );display:inline-block;color:var(--sbb-form-field-color);font-weight:400}:host(:where(:not([width=collapse]))){min-width:9.375rem;width:min(18.75rem,100%)}:host([negative]){color:var(--sbb-color-3-negative);--sbb-form-field-background-color: var(--sbb-background-color-1-negative);--sbb-form-field-border-color: var(--sbb-border-color-5);--sbb-form-field-label-color: var(--sbb-color-5);--sbb-form-field-prefix-color: var(--sbb-color-5);--sbb-form-field-text-color: var(--sbb-color-3-negative);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);--sbb-form-field-arrow-color: var(--sbb-color-3-negative)}@media(forced-colors:active){:host([negative]){--sbb-form-field-border-color: ButtonBorder}}:host([size=s]){--sbb-form-field-min-height: var(--sbb-size-element-xs);--sbb-form-field-padding-inline: var(--sbb-spacing-fixed-2x);--sbb-form-field-input-text-size: var(--sbb-text-font-size-s);--sbb-form-field-label-text-size: var(--sbb-text-font-size-xxs);--_sbb-form-field-label-to-input-overlapping: .625rem;--_sbb-form-field-floating-label-transform: .34375rem;--_sbb-form-field-spacer-margin-block-end: -.53125rem}@media(min-width:64rem){:host([size=s]){--_sbb-form-field-label-to-input-overlapping: .6875rem;--_sbb-form-field-floating-label-transform: .3125rem;--_sbb-form-field-spacer-margin-block-end: -.5rem}}:host([size=m]){--sbb-form-field-min-height: var(--sbb-size-element-m);--sbb-form-field-padding-inline: var(--sbb-spacing-fixed-3x);--sbb-form-field-input-text-size: var(--sbb-text-font-size-m);--sbb-form-field-label-text-size: var(--sbb-text-font-size-xs);--_sbb-form-field-label-to-input-overlapping: var(--sbb-spacing-fixed-1x);--_sbb-form-field-floating-label-transform: .53125rem;--_sbb-form-field-spacer-margin-block-end: calc( -1 * var(--_sbb-form-field-label-to-input-overlapping) )}@media(min-width:64rem){:host([size=m]){--_sbb-form-field-floating-label-transform: .65625rem}}:host([size=l]){--sbb-form-field-min-height: var(--sbb-size-element-l);--sbb-form-field-padding-inline: var(--sbb-spacing-responsive-xxxs)}:host([error-space=reserve]){--sbb-form-field-hint-min-height: calc( var(--sbb-typo-line-height-text) * var(--sbb-text-font-size-xs) );--sbb-form-field-hint-padding-block-start-override: var(--sbb-form-field-hint-divider-width)}:host(:where(:is(:state(readonly),[state--readonly]),:is(:state(disabled),[state--disabled]))){--sbb-form-field-background-color: var(--sbb-background-color-3);--sbb-form-field-border-color: var(--sbb-color-graphite);--sbb-form-field-border-color: light-dark(var(--sbb-color-graphite), var(--sbb-color-smoke));--sbb-form-field-arrow-color: var(--sbb-color-granite);--sbb-form-field-arrow-color: light-dark(var(--sbb-color-granite), var(--sbb-color-storm))}@media(forced-colors:active){:host(:where(:is(:state(readonly),[state--readonly]),:is(:state(disabled),[state--disabled]))){--sbb-form-field-border-color: ButtonBorder}}:host(:where(:is(:state(readonly),[state--readonly]),:is(:state(disabled),[state--disabled]))[negative]){--sbb-form-field-background-color: var(--sbb-background-color-3-negative);--sbb-form-field-border-color: var(--sbb-border-color-5);--sbb-form-field-arrow-color: var(--sbb-border-color-5)}:host(:where(:is(:state(disabled),[state--disabled]))){--sbb-form-field-label-color: var(--sbb-color-granite);--sbb-form-field-label-color: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));--sbb-form-field-prefix-color: var(--sbb-color-granite);--sbb-form-field-prefix-color: light-dark(var(--sbb-color-granite), var(--sbb-color-storm));--sbb-form-field-border-style: dashed}@media(forced-colors:active){:host(:where(:is(:state(disabled),[state--disabled]))){--sbb-form-field-label-color: GrayText !important;--sbb-form-field-prefix-color: GrayText !important;--sbb-form-field-text-color: GrayText !important;--sbb-form-field-border-color: GrayText !important}}:host(:where(:is(:state(disabled),[state--disabled]))[negative]){--sbb-form-field-text-color: var(--sbb-color-5);--sbb-form-field-label-color: var(--sbb-color-5);--sbb-form-field-prefix-color: var(--sbb-color-5)}:host(:where(:is(:state(readonly),[state--readonly])):not([negative])){--sbb-form-field-label-color: var(--sbb-color-granite);--sbb-form-field-label-color: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));--sbb-form-field-prefix-color: var(--sbb-color-granite);--sbb-form-field-prefix-color: light-dark(var(--sbb-color-granite), var(--sbb-color-storm))}:host(:where(:is(:state(focus),[state--focus]))){--sbb-form-field-border-color: var(--sbb-border-color-3);--sbb-form-field-prefix-color: var(--sbb-color-3);--sbb-form-field-border-width: var(--sbb-border-width-2x)}:host(:where(:is(:state(focus),[state--focus]))[negative]){--sbb-form-field-border-color: var(--sbb-border-color-3-negative);--sbb-form-field-prefix-color: var(--sbb-color-3-negative)}@media(forced-colors:active){:host(:is(:state(focus),[state--focus])){--sbb-form-field-border-color: Highlight;--sbb-form-field-prefix-color: Highlight}}:host(:not(:where(:is(:state(has-error),[state--has-error]),:is(:state(has-hint),[state--has-hint])))){--sbb-form-field-hint-padding-block-start: 0}:host([floating-label]){--sbb-select-placeholder-color: transparent}@media(forced-colors:active){:host([floating-label]){--sbb-select-placeholder-color: Canvas}}:host(:is(:not(:is(:state(slotted-label),[state--slotted-label])),[hidden-label])){--sbb-form-field-label-size: 0rem;--_sbb-form-field-label-to-input-overlapping: 0rem}:host(:where(:is(:state(input-type-sbb-slider),[state--input-type-sbb-slider]))){--sbb-form-field-overflow: visible}.sbb-form-field__space-wrapper{display:flex;flex-direction:column;height:100%}.sbb-form-field__space-wrapper:before{content:\"\";-webkit-user-select:none;user-select:none;width:0;height:0}.sbb-form-field__wrapper{display:flex;flex:1;gap:var(--sbb-form-field-gap);padding-inline:var(--sbb-form-field-padding-inline);border-radius:var(--sbb-form-field-border-radius);min-height:var(--sbb-form-field-min-height);max-height:var(--sbb-form-field-max-height);background-color:var(--sbb-form-field-background-color);position:relative}.sbb-form-field__wrapper:before{content:\"\";display:block;position:absolute;inset:0;border:var(--sbb-form-field-border-width) var(--sbb-form-field-border-style) var(--sbb-form-field-border-color);border-radius:var(--sbb-form-field-border-radius);pointer-events:none}:host(:where(:is(:state(focus),[state--focus]):is(:state(focus-origin-keyboard),[state--focus-origin-keyboard]))) .sbb-form-field__wrapper{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);outline-offset:var(--sbb-form-field-outline-offset, var(--sbb-focus-outline-offset))}@media(forced-colors:none){:host(:is([borderless],:is(:state(input-type-sbb-slider),[state--input-type-sbb-slider]))) .sbb-form-field__wrapper:before{border-color:transparent}:host(:where(:is(:state(focus),[state--focus]),:is(:state(disabled),[state--disabled]))[borderless]) .sbb-form-field__wrapper:after{content:\"\";position:absolute;border-block-end:var(--sbb-border-width-1x) var(--sbb-form-field-border-style) var(--sbb-form-field-border-color);inset-inline:var(--sbb-form-field-padding-inline);inset-block-end:0;z-index:var(--sbb-form-field-focus-underline-z-index, initial)}}::slotted(*[slot=prefix]){color:var(--sbb-form-field-prefix-color)}::slotted(*[slot=prefix]),::slotted(*[slot=suffix]){display:flex;min-width:var(--sbb-icon-svg-width);margin-block-start:calc((var(--sbb-form-field-min-height) - var(--sbb-size-icon-ui-small)) / 2)}:host(:where(:is(:state(empty),[state--empty]),:is(:state(disabled),[state--disabled]),:is(:state(readonly),[state--readonly]))) ::slotted(sbb-form-field-clear){display:none}:host(:is(:state(has-error),[state--has-error])) slot[name=hint]{display:none}:host(:where(:is(:state(disabled),[state--disabled]),:is(:state(readonly),[state--readonly]))) ::slotted(sbb-form-field-text-counter){display:none}::slotted(sbb-datepicker-toggle){padding-block-end:calc((var(--sbb-form-field-min-height) - var(--sbb-size-icon-ui-small)) / 2)}@media(forced-colors:active){::slotted(*[slot=suffix]){color:var(--sbb-form-field-prefix-color)}}.sbb-form-field__select-input-icon{top:50%;transform:translateY(-50%);display:none;position:absolute;inset-inline-end:0;margin-block-start:calc(-1 * var(--sbb-form-field-margin-block-start) / 2);pointer-events:none;color:var(--sbb-form-field-arrow-color)}:host(:is(:is(:state(input-type-select),[state--input-type-select]),:is(:state(input-type-sbb-select),[state--input-type-sbb-select]),:is(:state(explicit-input-type-select),[state--explicit-input-type-select]))) .sbb-form-field__select-input-icon{display:inline-block}.sbb-form-field__input-container{display:flex;flex-direction:column;flex:1 1 auto;position:relative;margin-block-start:var(--sbb-form-field-margin-block-start);min-width:0}.sbb-form-field__label-spacer{display:flex;height:calc(var(--sbb-form-field-label-text-size) * var(--sbb-typo-line-height-text));margin-block-end:var(--_sbb-form-field-spacer-margin-block-end)}:host(:not(:is(:state(slotted-label),[state--slotted-label]))) :is(.sbb-form-field__label,.sbb-form-field__label-spacer){display:none}:host([hidden-label]) :is(.sbb-form-field__label,.sbb-form-field__label-spacer){border:0;clip-path:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.sbb-form-field__label{display:flex;max-width:100%;cursor:var(--sbb-cursor-default);position:absolute;inset-block-start:0;color:var(--sbb-form-field-label-color);font-size:var(--sbb-form-field-label-text-size);letter-spacing:var(--sbb-typo-letter-spacing-text)}:host(:where(:is(:state(input-type-select),[state--input-type-select]),:is(:state(input-type-sbb-select),[state--input-type-sbb-select]))) .sbb-form-field__label{padding-inline-end:var(--sbb-form-field-select-inline-padding-end)}:host([floating-label]) .sbb-form-field__label{transform-origin:0 0;pointer-events:none;backface-visibility:hidden;will-change:transform,font-size;transition-duration:var(--sbb-disable-animation-duration, var(--sbb-animation-duration-2x));transition-timing-function:var(--sbb-animation-easing);transition-property:transform,font-size}:host([floating-label]:is(:not(:where(:is(:state(focus),[state--focus])):not(:where(:is(:state(input-type-sbb-select),[state--input-type-sbb-select]))),:where(:is(:state(has-popup-open),[state--has-popup-open]))),:where(:is(:state(readonly),[state--readonly]))):where(:is(:state(empty),[state--empty]))) .sbb-form-field__label{font-size:var(--sbb-form-field-input-text-size);transform:translateY(var(--_sbb-form-field-floating-label-transform))}@media(forced-colors:active){:host(:where(:is(:state(input-type-textarea),[state--input-type-textarea]))) .sbb-form-field__label{z-index:1}}.sbb-form-field__label-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sbb-form-field__input{display:flex;flex:1;align-items:start}:host([size=s]:is(:is(:state(input-type-input),[state--input-type-input]),:is(:state(input-type-select),[state--input-type-select]),:is(:state(input-type-sbb-select),[state--input-type-sbb-select]),:is(:state(input-type-sbb-date-input),[state--input-type-sbb-date-input]),:is(:state(input-type-sbb-time-input),[state--input-type-sbb-time-input]))) .sbb-form-field__input{margin-block-end:-.125rem}.sbb-form-field__hint{display:flex;min-height:var(--sbb-form-field-hint-min-height);flex-direction:column;margin-block-start:var(--sbb-form-field-hint-padding-block-start-override, var(--sbb-form-field-hint-padding-block-start))}", _ = 0, v = /* @__PURE__ */ new WeakMap(), y = [
|
|
14
|
+
var g = "@charset \"UTF-8\";:host{--sbb-form-field-hint-divider-width: var(--sbb-spacing-fixed-1x);--sbb-form-field-hint-padding-block-start: var(--sbb-form-field-hint-divider-width);--sbb-form-field-select-inline-padding-end: calc( var(--sbb-icon-svg-width) + var(--sbb-form-field-gap) );--sbb-form-field-label-size: calc( var(--sbb-form-field-label-text-size) * var(--sbb-typo-line-height-text) );--sbb-form-field-text-line-height: calc( var(--sbb-form-field-input-text-size) * var(--sbb-typo-line-height-text) );--sbb-form-field-margin-block-start: calc( ( var(--sbb-form-field-min-height) - var(--sbb-form-field-label-size) - var( --sbb-form-field-text-line-height ) + var(--_sbb-form-field-label-to-input-overlapping) ) / 2 );--sbb-icon-svg-width: var(--sbb-form-field-icon-size);--sbb-icon-svg-height: var(--sbb-form-field-icon-size);--sbb-focus-outline-color: var(--sbb-focus-outline-color-default);--sbb-focus-outline-color: light-dark( var(--sbb-focus-outline-color-default), var(--sbb-focus-outline-color-dark) );display:inline-block;color:var(--sbb-form-field-color);font-weight:400}:host(:where(:not([width=collapse]))){min-width:9.375rem;width:min(18.75rem,100%)}:host([negative]){color:var(--sbb-color-3-negative);--sbb-form-field-background-color: var(--sbb-background-color-1-negative);--sbb-form-field-border-color: var(--sbb-border-color-5);--sbb-form-field-label-color: var(--sbb-color-5);--sbb-form-field-prefix-color: var(--sbb-color-5);--sbb-form-field-text-color: var(--sbb-color-3-negative);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);--sbb-form-field-arrow-color: var(--sbb-color-3-negative)}@media(forced-colors:active){:host([negative]){--sbb-form-field-border-color: ButtonBorder}}:host([size=s]){--sbb-form-field-min-height: var(--sbb-size-element-xs);--sbb-form-field-padding-inline: var(--sbb-spacing-fixed-2x);--sbb-form-field-input-text-size: var(--sbb-text-font-size-s);--sbb-form-field-label-text-size: var(--sbb-text-font-size-xxs);--_sbb-form-field-label-to-input-overlapping: .625rem;--_sbb-form-field-floating-label-transform: .34375rem;--_sbb-form-field-spacer-margin-block-end: -.53125rem}@media(min-width:64rem){:host([size=s]){--_sbb-form-field-label-to-input-overlapping: .6875rem;--_sbb-form-field-floating-label-transform: .3125rem;--_sbb-form-field-spacer-margin-block-end: -.5rem}}:host([size=m]){--sbb-form-field-min-height: var(--sbb-size-element-m);--sbb-form-field-padding-inline: var(--sbb-spacing-fixed-3x);--sbb-form-field-input-text-size: var(--sbb-text-font-size-m);--sbb-form-field-label-text-size: var(--sbb-text-font-size-xs);--_sbb-form-field-label-to-input-overlapping: var(--sbb-spacing-fixed-1x);--_sbb-form-field-floating-label-transform: .53125rem;--_sbb-form-field-spacer-margin-block-end: calc( -1 * var(--_sbb-form-field-label-to-input-overlapping) )}@media(min-width:64rem){:host([size=m]){--_sbb-form-field-floating-label-transform: .65625rem}}:host([size=l]){--sbb-form-field-min-height: var(--sbb-size-element-l);--sbb-form-field-padding-inline: var(--sbb-spacing-responsive-xxxs)}:host([error-space=reserve]){--sbb-form-field-hint-min-height: calc( var(--sbb-typo-line-height-text) * var(--sbb-text-font-size-xs) );--sbb-form-field-hint-padding-block-start-override: var(--sbb-form-field-hint-divider-width)}:host(:where(:is(:state(readonly),[state--readonly]),:is(:state(disabled),[state--disabled]))){--sbb-form-field-background-color: var(--sbb-background-color-3);--sbb-form-field-border-color: var(--sbb-color-graphite);--sbb-form-field-border-color: light-dark(var(--sbb-color-graphite), var(--sbb-color-smoke));--sbb-form-field-arrow-color: var(--sbb-color-granite);--sbb-form-field-arrow-color: light-dark(var(--sbb-color-granite), var(--sbb-color-storm))}@media(forced-colors:active){:host(:where(:is(:state(readonly),[state--readonly]),:is(:state(disabled),[state--disabled]))){--sbb-form-field-border-color: ButtonBorder}}:host(:where(:is(:state(readonly),[state--readonly]),:is(:state(disabled),[state--disabled]))[negative]){--sbb-form-field-background-color: var(--sbb-background-color-3-negative);--sbb-form-field-border-color: var(--sbb-border-color-5);--sbb-form-field-arrow-color: var(--sbb-border-color-5)}:host(:where(:is(:state(disabled),[state--disabled]))){--sbb-form-field-label-color: var(--sbb-color-granite);--sbb-form-field-label-color: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));--sbb-form-field-prefix-color: var(--sbb-color-granite);--sbb-form-field-prefix-color: light-dark(var(--sbb-color-granite), var(--sbb-color-storm));--sbb-form-field-border-style: dashed}@media(forced-colors:active){:host(:where(:is(:state(disabled),[state--disabled]))){--sbb-form-field-label-color: GrayText !important;--sbb-form-field-prefix-color: GrayText !important;--sbb-form-field-text-color: GrayText !important;--sbb-form-field-border-color: GrayText !important}}:host(:where(:is(:state(disabled),[state--disabled]))[negative]){--sbb-form-field-text-color: var(--sbb-color-5);--sbb-form-field-label-color: var(--sbb-color-5);--sbb-form-field-prefix-color: var(--sbb-color-5)}:host(:where(:is(:state(readonly),[state--readonly])):not([negative])){--sbb-form-field-label-color: var(--sbb-color-granite);--sbb-form-field-label-color: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));--sbb-form-field-prefix-color: var(--sbb-color-granite);--sbb-form-field-prefix-color: light-dark(var(--sbb-color-granite), var(--sbb-color-storm))}:host(:where(:is(:state(focus),[state--focus]))){--sbb-form-field-border-color: var(--sbb-border-color-3);--sbb-form-field-prefix-color: var(--sbb-color-3);--sbb-form-field-border-width: var(--sbb-border-width-2x)}:host(:where(:is(:state(focus),[state--focus]))[negative]){--sbb-form-field-border-color: var(--sbb-border-color-3-negative);--sbb-form-field-prefix-color: var(--sbb-color-3-negative)}@media(forced-colors:active){:host(:is(:state(focus),[state--focus])){--sbb-form-field-border-color: Highlight;--sbb-form-field-prefix-color: Highlight}}:host(:not(:where(:is(:state(has-error),[state--has-error]),:is(:state(has-hint),[state--has-hint])))){--sbb-form-field-hint-padding-block-start: 0}:host([floating-label]){--sbb-select-placeholder-color: transparent}@media(forced-colors:active){:host([floating-label]){--sbb-select-placeholder-color: Canvas}}:host(:is(:not(:is(:state(slotted-label),[state--slotted-label])),[hidden-label])){--sbb-form-field-label-size: 0rem;--_sbb-form-field-label-to-input-overlapping: 0rem}:host(:where(:is(:state(input-type-sbb-slider),[state--input-type-sbb-slider]))){--sbb-form-field-overflow: visible}.sbb-form-field__space-wrapper{display:flex;flex-direction:column;height:100%}.sbb-form-field__space-wrapper:before{content:\"\";-webkit-user-select:none;user-select:none;width:0;height:0}.sbb-form-field__wrapper{display:flex;flex:1;gap:var(--sbb-form-field-gap);padding-inline:var(--sbb-form-field-padding-inline);border-radius:var(--sbb-form-field-border-radius);min-height:var(--sbb-form-field-min-height);max-height:var(--sbb-form-field-max-height);background-color:var(--sbb-form-field-background-color);position:relative}.sbb-form-field__wrapper:before{content:\"\";display:block;position:absolute;inset:0;border:var(--sbb-form-field-border-width) var(--sbb-form-field-border-style) var(--sbb-form-field-border-color);border-radius:var(--sbb-form-field-border-radius);pointer-events:none}:host(:where(:is(:state(focus),[state--focus]):is(:state(focus-origin-keyboard),[state--focus-origin-keyboard]))) .sbb-form-field__wrapper{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);outline-offset:var(--sbb-form-field-outline-offset, var(--sbb-focus-outline-offset))}@media(forced-colors:none){:host(:is([borderless],:is(:state(input-type-sbb-slider),[state--input-type-sbb-slider]))) .sbb-form-field__wrapper:before{border-color:transparent}:host(:where(:is(:state(focus),[state--focus]),:is(:state(disabled),[state--disabled]))[borderless]) .sbb-form-field__wrapper:after{content:\"\";position:absolute;border-block-end:var(--sbb-border-width-1x) var(--sbb-form-field-border-style) var(--sbb-form-field-border-color);inset-inline:var(--sbb-form-field-padding-inline);inset-block-end:0;z-index:var(--sbb-form-field-focus-underline-z-index, initial)}}::slotted(*[slot=prefix]){color:var(--sbb-form-field-prefix-color)}::slotted(*[slot=prefix]),::slotted(*[slot=suffix]){display:flex;min-width:var(--sbb-icon-svg-width);margin-block-start:calc((var(--sbb-form-field-min-height) - var(--sbb-size-icon-ui-small)) / 2)}:host(:where(:is(:state(empty),[state--empty]),:is(:state(disabled),[state--disabled]),:is(:state(readonly),[state--readonly]))) ::slotted(sbb-form-field-clear){display:none}:host(:is(:state(has-error),[state--has-error])) slot[name=hint]{display:none}:host(:where(:is(:state(disabled),[state--disabled]),:is(:state(readonly),[state--readonly]))) ::slotted(sbb-form-field-text-counter){display:none}::slotted(sbb-datepicker-toggle){padding-block-end:calc((var(--sbb-form-field-min-height) - var(--sbb-size-icon-ui-small)) / 2)}@media(forced-colors:active){::slotted(*[slot=suffix]){color:var(--sbb-form-field-prefix-color)}}.sbb-form-field__select-input-icon{top:50%;translate:0 -50%;display:none;position:absolute;inset-inline-end:0;margin-block-start:calc(-1 * var(--sbb-form-field-margin-block-start) / 2);pointer-events:none;color:var(--sbb-form-field-arrow-color)}:host(:is(:is(:state(input-type-select),[state--input-type-select]),:is(:state(input-type-sbb-select),[state--input-type-sbb-select]),:is(:state(explicit-input-type-select),[state--explicit-input-type-select]))) .sbb-form-field__select-input-icon{display:inline-block}.sbb-form-field__input-container{display:flex;flex-direction:column;flex:1 1 auto;position:relative;margin-block-start:var(--sbb-form-field-margin-block-start);min-width:0}.sbb-form-field__label-spacer{display:flex;height:calc(var(--sbb-form-field-label-text-size) * var(--sbb-typo-line-height-text));margin-block-end:var(--_sbb-form-field-spacer-margin-block-end)}:host(:not(:is(:state(slotted-label),[state--slotted-label]))) :is(.sbb-form-field__label,.sbb-form-field__label-spacer){display:none}:host([hidden-label]) :is(.sbb-form-field__label,.sbb-form-field__label-spacer){border:0;clip-path:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.sbb-form-field__label{display:flex;max-width:100%;cursor:var(--sbb-cursor-default);position:absolute;inset-block-start:0;color:var(--sbb-form-field-label-color);font-size:var(--sbb-form-field-label-text-size);letter-spacing:var(--sbb-typo-letter-spacing-text)}:host(:where(:is(:state(input-type-select),[state--input-type-select]),:is(:state(input-type-sbb-select),[state--input-type-sbb-select]))) .sbb-form-field__label{padding-inline-end:var(--sbb-form-field-select-inline-padding-end)}:host([floating-label]) .sbb-form-field__label{transform-origin:0 0;pointer-events:none;backface-visibility:hidden;will-change:transform,font-size;transition-duration:var(--sbb-disable-animation-duration, var(--sbb-animation-duration-2x));transition-timing-function:var(--sbb-animation-easing);transition-property:transform,font-size}:host([floating-label]:is(:not(:where(:is(:state(focus),[state--focus])):not(:where(:is(:state(input-type-sbb-select),[state--input-type-sbb-select]))),:where(:is(:state(has-popup-open),[state--has-popup-open]))),:where(:is(:state(readonly),[state--readonly]))):where(:is(:state(empty),[state--empty]))) .sbb-form-field__label{font-size:var(--sbb-form-field-input-text-size);transform:translateY(var(--_sbb-form-field-floating-label-transform))}@media(forced-colors:active){:host(:where(:is(:state(input-type-textarea),[state--input-type-textarea]))) .sbb-form-field__label{z-index:1}}.sbb-form-field__label-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sbb-form-field__input{display:flex;flex:1;align-items:start}:host([size=s]:is(:is(:state(input-type-input),[state--input-type-input]),:is(:state(input-type-select),[state--input-type-select]),:is(:state(input-type-sbb-select),[state--input-type-sbb-select]),:is(:state(input-type-sbb-date-input),[state--input-type-sbb-date-input]),:is(:state(input-type-sbb-time-input),[state--input-type-sbb-time-input]))) .sbb-form-field__input{margin-block-end:-.125rem}.sbb-form-field__hint{display:flex;min-height:var(--sbb-form-field-hint-min-height);flex-direction:column;margin-block-start:var(--sbb-form-field-hint-padding-block-start-override, var(--sbb-form-field-hint-padding-block-start))}", _ = 0, v = /* @__PURE__ */ new WeakMap(), y = [
|
|
15
15
|
"input",
|
|
16
16
|
"textarea",
|
|
17
17
|
"select"
|
package/form-field.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as e } from "./error.component-B_D8WUP5.js";
|
|
2
|
-
import { n as t, t as n } from "./form-field.component-
|
|
2
|
+
import { n as t, t as n } from "./form-field.component-Cc_siKrq.js";
|
|
3
3
|
import { SbbFormFieldClearElement as r } from "./form-field/form-field-clear/form-field-clear.component.js";
|
|
4
4
|
import { SbbFormFieldTextCounterElement as i } from "./form-field/form-field-text-counter/form-field-text-counter.component.js";
|
|
5
5
|
import { t as a } from "./hint.component-BVUUrSSu.js";
|
package/form-field.pure.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as e } from "./error.component-B_D8WUP5.js";
|
|
2
|
-
import { n as t, t as n } from "./form-field.component-
|
|
2
|
+
import { n as t, t as n } from "./form-field.component-Cc_siKrq.js";
|
|
3
3
|
import { SbbFormFieldClearElement as r } from "./form-field/form-field-clear/form-field-clear.component.js";
|
|
4
4
|
import { SbbFormFieldTextCounterElement as i } from "./form-field/form-field-text-counter/form-field-text-counter.component.js";
|
|
5
5
|
import { t as a } from "./hint.component-BVUUrSSu.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as e } from "../../block-link-common-
|
|
1
|
+
import { t as e } from "../../block-link-common-BwXob5QE.js";
|
|
2
2
|
export { e as SbbBlockLinkCommonElementMixin };
|
package/link/common.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as e } from "../link-common-C-LzCFHg.js";
|
|
2
|
-
import { t } from "../block-link-common-
|
|
2
|
+
import { t } from "../block-link-common-BwXob5QE.js";
|
|
3
3
|
import { t as n } from "../inline-link-common-B5AHg8oa.js";
|
|
4
4
|
//#region src/elements/link/common.ts
|
|
5
5
|
console.warn("The entrypoint '@sbb-esta/elements/link/common.js' has been deprecated.\nUse either '@sbb-esta/elements/link.js' or '@sbb-esta/elements/link.pure.js' instead.");
|
package/link.js
CHANGED
|
@@ -5,7 +5,7 @@ import { SbbLinkElement as r } from "./link/link/link.component.js";
|
|
|
5
5
|
import { SbbLinkButtonElement as i } from "./link/link-button/link-button.component.js";
|
|
6
6
|
import { SbbLinkStaticElement as a } from "./link/link-static/link-static.component.js";
|
|
7
7
|
import { t as o } from "./link-common-C-LzCFHg.js";
|
|
8
|
-
import { t as s } from "./block-link-common-
|
|
8
|
+
import { t as s } from "./block-link-common-BwXob5QE.js";
|
|
9
9
|
import { t as c } from "./inline-link-common-B5AHg8oa.js";
|
|
10
10
|
import "./link.pure.js";
|
|
11
11
|
t.define(), e.define(), n.define(), i.define(), r.define(), a.define();
|
package/link.pure.js
CHANGED
|
@@ -5,6 +5,6 @@ import { SbbLinkElement as r } from "./link/link/link.component.js";
|
|
|
5
5
|
import { SbbLinkButtonElement as i } from "./link/link-button/link-button.component.js";
|
|
6
6
|
import { SbbLinkStaticElement as a } from "./link/link-static/link-static.component.js";
|
|
7
7
|
import { t as o } from "./link-common-C-LzCFHg.js";
|
|
8
|
-
import { t as s } from "./block-link-common-
|
|
8
|
+
import { t as s } from "./block-link-common-BwXob5QE.js";
|
|
9
9
|
import { t as c } from "./inline-link-common-B5AHg8oa.js";
|
|
10
10
|
export { t as SbbBlockLinkButtonElement, s as SbbBlockLinkCommonElementMixin, e as SbbBlockLinkElement, n as SbbBlockLinkStaticElement, c as SbbInlineLinkCommonElementMixin, i as SbbLinkButtonElement, o as SbbLinkCommonElementMixin, r as SbbLinkElement, a as SbbLinkStaticElement };
|