@brytdesigns/web-component-core 1.1.7 → 3.1.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.
- package/dist/main/animation/awaitAllAnimations.js +28 -32
- package/dist/main/animation/awaitAllAnimations.js.map +1 -1
- package/dist/main/animation/content.js +156 -0
- package/dist/main/animation/content.js.map +1 -0
- package/dist/main/animation/controlsToPromise.js +6 -5
- package/dist/main/animation/controlsToPromise.js.map +1 -1
- package/dist/main/animation/getTransitionConfig.js +52 -51
- package/dist/main/animation/getTransitionConfig.js.map +1 -1
- package/dist/main/animation/index.d.ts +61 -1
- package/dist/main/animation/index.js +5 -5
- package/dist/main/focusTrap/index.d.ts +1 -1
- package/dist/main/focusTrap/index.js +10 -14
- package/dist/main/focusTrap/index.js.map +1 -1
- package/dist/main/hooks/index.d.ts +14 -9
- package/dist/main/hooks/index.js +5 -6
- package/dist/main/hooks/internal/getValueFromPath.js +9 -10
- package/dist/main/hooks/internal/getValueFromPath.js.map +1 -1
- package/dist/main/hooks/makePathContextHooks.js +58 -68
- package/dist/main/hooks/makePathContextHooks.js.map +1 -1
- package/dist/main/hooks/makePathDataArrayComponent.js +61 -67
- package/dist/main/hooks/makePathDataArrayComponent.js.map +1 -1
- package/dist/main/hooks/makePathDataArrayItemComponent.js +17 -21
- package/dist/main/hooks/makePathDataArrayItemComponent.js.map +1 -1
- package/dist/main/hooks/makePathDataComponent.js +31 -33
- package/dist/main/hooks/makePathDataComponent.js.map +1 -1
- package/dist/main/index.d.ts +304 -27
- package/dist/main/index.js +28 -7
- package/dist/main/promise/abortablePromise.js +10 -15
- package/dist/main/promise/abortablePromise.js.map +1 -1
- package/dist/main/promise/index.js +2 -3
- package/dist/main/utils/a11y.js +133 -0
- package/dist/main/utils/a11y.js.map +1 -0
- package/dist/main/utils/body-scroll-lock.js +40 -18
- package/dist/main/utils/body-scroll-lock.js.map +1 -1
- package/dist/main/utils/checkLoaded.js +4 -4
- package/dist/main/utils/checkLoaded.js.map +1 -1
- package/dist/main/utils/createRemoteContext.js +85 -0
- package/dist/main/utils/createRemoteContext.js.map +1 -0
- package/dist/main/utils/disclosure.js +52 -0
- package/dist/main/utils/disclosure.js.map +1 -0
- package/dist/main/utils/formatValue.js +14 -18
- package/dist/main/utils/formatValue.js.map +1 -1
- package/dist/main/utils/getContextFromProvider.js +15 -10
- package/dist/main/utils/getContextFromProvider.js.map +1 -1
- package/dist/main/utils/getTemplateContent.js +6 -7
- package/dist/main/utils/getTemplateContent.js.map +1 -1
- package/dist/main/utils/guarded-effect.js +72 -0
- package/dist/main/utils/guarded-effect.js.map +1 -0
- package/dist/main/utils/index.d.ts +237 -20
- package/dist/main/utils/index.js +15 -12
- package/dist/main/utils/invokeOnLoaded.js +13 -13
- package/dist/main/utils/invokeOnLoaded.js.map +1 -1
- package/dist/main/utils/isCustomElement.js +4 -3
- package/dist/main/utils/isCustomElement.js.map +1 -1
- package/dist/main/utils/nested-overlays.js +36 -0
- package/dist/main/utils/nested-overlays.js.map +1 -0
- package/dist/main/utils/solid-element.js +48 -88
- package/dist/main/utils/solid-element.js.map +1 -1
- package/dist/main/utils/toHyphenated.js +4 -3
- package/dist/main/utils/toHyphenated.js.map +1 -1
- package/package.json +16 -15
- package/dist/esm/animation/index.js +0 -97
- package/dist/esm/animation/index.js.map +0 -1
- package/dist/esm/focusTrap/index.js +0 -18
- package/dist/esm/focusTrap/index.js.map +0 -1
- package/dist/esm/hooks/index.js +0 -235
- package/dist/esm/hooks/index.js.map +0 -1
- package/dist/esm/index.js +0 -547
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/promise/index.js +0 -20
- package/dist/esm/promise/index.js.map +0 -1
- package/dist/esm/utils/index.js +0 -236
- package/dist/esm/utils/index.js.map +0 -1
- package/dist/main/animation/index.js.map +0 -1
- package/dist/main/hooks/index.js.map +0 -1
- package/dist/main/hooks/internal/index.js +0 -3
- package/dist/main/hooks/internal/index.js.map +0 -1
- package/dist/main/hooks/internal/types.js +0 -3
- package/dist/main/hooks/internal/types.js.map +0 -1
- package/dist/main/index.js.map +0 -1
- package/dist/main/promise/index.js.map +0 -1
- package/dist/main/utils/createWithElementContext.js +0 -64
- package/dist/main/utils/createWithElementContext.js.map +0 -1
- package/dist/main/utils/index.js.map +0 -1
package/dist/esm/index.js
DELETED
|
@@ -1,547 +0,0 @@
|
|
|
1
|
-
import { createFocusTrap as createFocusTrap$1 } from 'focus-trap';
|
|
2
|
-
import { createRoot, createEffect, createMemo, onCleanup, on, Show, For, createSignal } from 'solid-js';
|
|
3
|
-
import { compose, register, createContext, provide, consume, noShadowDOM } from 'component-register';
|
|
4
|
-
import { insert } from 'solid-js/web';
|
|
5
|
-
import { ReactiveSet } from '@solid-primitives/set';
|
|
6
|
-
import { clearAllBodyScrollLocks, disableBodyScroll as disableBodyScroll$1, enableBodyScroll as enableBodyScroll$1 } from 'body-scroll-lock-upgrade';
|
|
7
|
-
import html2 from 'solid-js/html';
|
|
8
|
-
|
|
9
|
-
// src/focusTrap/index.ts
|
|
10
|
-
var trapStack = [];
|
|
11
|
-
var createFocusTrap = (element, options) => createMemo(() => {
|
|
12
|
-
const o = options?.() || {
|
|
13
|
-
trapStack
|
|
14
|
-
};
|
|
15
|
-
if (!o.trapStack) {
|
|
16
|
-
o.trapStack = trapStack;
|
|
17
|
-
}
|
|
18
|
-
return createFocusTrap$1(element, o);
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
// src/promise/abortablePromise.ts
|
|
22
|
-
function abortablePromise(promise, signal) {
|
|
23
|
-
if (signal.aborted) {
|
|
24
|
-
return new Promise((_, rej) => rej(signal.reason));
|
|
25
|
-
}
|
|
26
|
-
return new Promise(async (res, rej) => {
|
|
27
|
-
signal.addEventListener(
|
|
28
|
-
"abort",
|
|
29
|
-
() => {
|
|
30
|
-
rej(signal.reason);
|
|
31
|
-
},
|
|
32
|
-
{ once: true }
|
|
33
|
-
);
|
|
34
|
-
promise.then(res);
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// src/animation/controlsToPromise.ts
|
|
39
|
-
async function controlsToPromise(controls) {
|
|
40
|
-
return new Promise((resolve) => {
|
|
41
|
-
controls.then(() => resolve(null));
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// src/animation/awaitAllAnimations.ts
|
|
46
|
-
function awaitAllAnimations(promises) {
|
|
47
|
-
return new Promise((resolve, _) => {
|
|
48
|
-
const results = [];
|
|
49
|
-
let remaining = promises.length;
|
|
50
|
-
if (remaining === 0) {
|
|
51
|
-
resolve([]);
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
function updateResults(value, index) {
|
|
55
|
-
results[index] = value;
|
|
56
|
-
remaining -= 1;
|
|
57
|
-
if (remaining === 0) {
|
|
58
|
-
resolve(results);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
promises.forEach((p, i) => {
|
|
62
|
-
try {
|
|
63
|
-
if (p?.state === "idle") {
|
|
64
|
-
updateResults(null, i);
|
|
65
|
-
} else {
|
|
66
|
-
p.then(() => {
|
|
67
|
-
updateResults(null, i);
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
} catch (e) {
|
|
71
|
-
p.then(() => {
|
|
72
|
-
updateResults(null, i);
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// src/animation/getTransitionConfig.ts
|
|
80
|
-
function getTransitionConfig(style) {
|
|
81
|
-
const properties = {
|
|
82
|
-
bounce: style.getPropertyValue("--motion--bounce"),
|
|
83
|
-
bounceDamping: style.getPropertyValue("--motion--bounce-damping"),
|
|
84
|
-
bounceStiffness: style.getPropertyValue("--motion--bounce-stiffness"),
|
|
85
|
-
duration: style.getPropertyValue("--motion--duration"),
|
|
86
|
-
damping: style.getPropertyValue("--motion--damping"),
|
|
87
|
-
delay: style.getPropertyValue("--motion--delay"),
|
|
88
|
-
ease: style.getPropertyValue("--motion--ease"),
|
|
89
|
-
elapsed: style.getPropertyValue("--motion--elapsed"),
|
|
90
|
-
mass: style.getPropertyValue("--motion--mass"),
|
|
91
|
-
max: style.getPropertyValue("--motion--max"),
|
|
92
|
-
min: style.getPropertyValue("--motion--min"),
|
|
93
|
-
power: style.getPropertyValue("--motion--power"),
|
|
94
|
-
repeat: style.getPropertyValue("--motion--repeat"),
|
|
95
|
-
repeatDelay: style.getPropertyValue("--motion--repeat-delay"),
|
|
96
|
-
repeatType: style.getPropertyValue("--motion--repeat-type"),
|
|
97
|
-
restDelta: style.getPropertyValue("--motion--rest-delta"),
|
|
98
|
-
restSpeed: style.getPropertyValue("--motion--rest-speed"),
|
|
99
|
-
startTime: style.getPropertyValue("--motion--start-time"),
|
|
100
|
-
timeConstant: style.getPropertyValue("--motion--time-constant"),
|
|
101
|
-
times: style.getPropertyValue("--motion--times"),
|
|
102
|
-
type: style.getPropertyValue("--motion--type"),
|
|
103
|
-
velocity: style.getPropertyValue("--motion--velocity"),
|
|
104
|
-
visualDuration: style.getPropertyValue("--motion--visual-duration")
|
|
105
|
-
};
|
|
106
|
-
return {
|
|
107
|
-
bounce: properties.bounce ? parseFloat(properties.bounce) : void 0,
|
|
108
|
-
bounceDamping: properties.bounceDamping ? parseFloat(properties.bounceDamping) : void 0,
|
|
109
|
-
bounceStiffness: properties.bounceStiffness ? parseFloat(properties.bounceStiffness) : void 0,
|
|
110
|
-
duration: properties.duration ? parseFloat(properties.duration) : void 0,
|
|
111
|
-
damping: properties.damping ? parseFloat(properties.damping) : void 0,
|
|
112
|
-
delay: properties.delay ? parseFloat(properties.delay) : void 0,
|
|
113
|
-
ease: properties.ease ? properties.ease : void 0,
|
|
114
|
-
elapsed: properties.elapsed ? parseFloat(properties.elapsed) : void 0,
|
|
115
|
-
mass: properties.mass ? parseFloat(properties.mass) : void 0,
|
|
116
|
-
max: properties.max ? parseFloat(properties.max) : void 0,
|
|
117
|
-
min: properties.min ? parseFloat(properties.min) : void 0,
|
|
118
|
-
power: properties.power ? parseFloat(properties.power) : void 0,
|
|
119
|
-
repeat: properties.repeat ? parseInt(properties.repeat) : void 0,
|
|
120
|
-
repeatDelay: properties.repeatDelay ? parseFloat(properties.repeatDelay) : void 0,
|
|
121
|
-
repeatType: properties.repeatType ? properties.repeatType : void 0,
|
|
122
|
-
restDelta: properties.restDelta ? parseFloat(properties.restDelta) : void 0,
|
|
123
|
-
restSpeed: properties.restSpeed ? parseFloat(properties.restSpeed) : void 0,
|
|
124
|
-
startTime: properties.startTime ? parseFloat(properties.startTime) : void 0,
|
|
125
|
-
timeConstant: properties.timeConstant ? parseFloat(properties.timeConstant) : void 0,
|
|
126
|
-
type: properties.type ? properties.type : void 0,
|
|
127
|
-
velocity: properties.velocity ? parseFloat(properties.velocity) : void 0,
|
|
128
|
-
visualDuration: properties.visualDuration ? parseFloat(properties.visualDuration) : void 0
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
// src/utils/toHyphenated.ts
|
|
133
|
-
function toHyphenated(str) {
|
|
134
|
-
return str.replace(/([A-Z])/g, "-$1").toLowerCase();
|
|
135
|
-
}
|
|
136
|
-
function createProps(raw) {
|
|
137
|
-
const keys = Object.keys(raw);
|
|
138
|
-
const props = {};
|
|
139
|
-
for (let i = 0; i < keys.length; i++) {
|
|
140
|
-
const key = keys[i];
|
|
141
|
-
if (typeof key === "undefined") continue;
|
|
142
|
-
const [get, set] = createSignal(Reflect.get(raw, key));
|
|
143
|
-
Object.defineProperty(props, key, {
|
|
144
|
-
get,
|
|
145
|
-
set(v) {
|
|
146
|
-
set(() => v);
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
return props;
|
|
151
|
-
}
|
|
152
|
-
function lookupContext(el) {
|
|
153
|
-
if (el.assignedSlot && el.assignedSlot._$owner)
|
|
154
|
-
return el.assignedSlot._$owner;
|
|
155
|
-
let next = el.parentNode;
|
|
156
|
-
while (next && !next._$owner && !(next.assignedSlot && next.assignedSlot._$owner))
|
|
157
|
-
next = next.parentNode;
|
|
158
|
-
return next && next.assignedSlot ? next.assignedSlot._$owner : el._$owner;
|
|
159
|
-
}
|
|
160
|
-
function withSolid(ComponentType) {
|
|
161
|
-
return (rawProps, options) => {
|
|
162
|
-
const { element } = options;
|
|
163
|
-
return createRoot((dispose) => {
|
|
164
|
-
const props = createProps(rawProps);
|
|
165
|
-
element.addPropertyChangedCallback(
|
|
166
|
-
(key, val) => props[key] = val
|
|
167
|
-
);
|
|
168
|
-
element.addReleaseCallback(() => {
|
|
169
|
-
element.renderRoot.textContent = "";
|
|
170
|
-
dispose();
|
|
171
|
-
});
|
|
172
|
-
const comp = ComponentType(props, options);
|
|
173
|
-
return insert(element.renderRoot, comp);
|
|
174
|
-
}, lookupContext(element));
|
|
175
|
-
};
|
|
176
|
-
}
|
|
177
|
-
function withNoShadowDOM(Component = () => {
|
|
178
|
-
}) {
|
|
179
|
-
return (props, options) => {
|
|
180
|
-
noShadowDOM();
|
|
181
|
-
const comp = Component(props, options);
|
|
182
|
-
return comp;
|
|
183
|
-
};
|
|
184
|
-
}
|
|
185
|
-
function customElement(tagName, props, Component = () => {
|
|
186
|
-
}, ...rest) {
|
|
187
|
-
return compose(register(tagName, props), withSolid, ...rest)(Component);
|
|
188
|
-
}
|
|
189
|
-
function isConstructable(fn) {
|
|
190
|
-
if (typeof fn !== "function") return false;
|
|
191
|
-
try {
|
|
192
|
-
Reflect.construct(String, [], fn);
|
|
193
|
-
return true;
|
|
194
|
-
} catch {
|
|
195
|
-
return false;
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
function customShadowlessElement(tagName, props, Component = () => {
|
|
199
|
-
}, ...rest) {
|
|
200
|
-
return compose(
|
|
201
|
-
register(tagName, props),
|
|
202
|
-
withNoShadowDOM,
|
|
203
|
-
withSolid,
|
|
204
|
-
...rest
|
|
205
|
-
)((...args) => {
|
|
206
|
-
onCleanup(() => {
|
|
207
|
-
const [_, { element }] = args;
|
|
208
|
-
element.dispatchEvent(new CustomEvent("bryt-designs:element-destroyed"));
|
|
209
|
-
});
|
|
210
|
-
if (isConstructable(Component)) {
|
|
211
|
-
return new Component(...args);
|
|
212
|
-
}
|
|
213
|
-
return Component(...args);
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
var correctElementType = (component) => {
|
|
217
|
-
return (props, options) => {
|
|
218
|
-
return component(props, options);
|
|
219
|
-
};
|
|
220
|
-
};
|
|
221
|
-
|
|
222
|
-
// src/utils/isCustomElement.ts
|
|
223
|
-
function isCustomElement(element) {
|
|
224
|
-
return Reflect.has(element, "__initialized");
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
// src/utils/getContextFromProvider.ts
|
|
228
|
-
function getContextFromProvider(context, element) {
|
|
229
|
-
const ctxSymbol = Object.getOwnPropertySymbols(element).find(
|
|
230
|
-
(s) => s.description === "element-context"
|
|
231
|
-
);
|
|
232
|
-
if (!ctxSymbol) {
|
|
233
|
-
throw new Error("No context provider found for the provided element");
|
|
234
|
-
}
|
|
235
|
-
const contexts = element[ctxSymbol];
|
|
236
|
-
return contexts[context.id];
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
// src/utils/checkLoaded.ts
|
|
240
|
-
function checkLoaded() {
|
|
241
|
-
return document.readyState === "complete" || //@ts-ignore
|
|
242
|
-
document.readyState === "loaded" || document.readyState === "interactive";
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
// src/utils/invokeOnLoaded.ts
|
|
246
|
-
function invokeOnLoaded(fn, { signal }) {
|
|
247
|
-
if (checkLoaded()) {
|
|
248
|
-
const id = setTimeout(() => fn());
|
|
249
|
-
signal?.addEventListener("abort", () => clearTimeout(id), {
|
|
250
|
-
once: true
|
|
251
|
-
});
|
|
252
|
-
return;
|
|
253
|
-
}
|
|
254
|
-
window.addEventListener("DOMContentLoaded", fn, { signal, once: true });
|
|
255
|
-
return;
|
|
256
|
-
}
|
|
257
|
-
function createWithElementContext(context) {
|
|
258
|
-
return function(target, dependencies = () => null, cb) {
|
|
259
|
-
createEffect(
|
|
260
|
-
on(
|
|
261
|
-
() => {
|
|
262
|
-
const t = typeof target === "string" ? target : target();
|
|
263
|
-
return {
|
|
264
|
-
target: t,
|
|
265
|
-
dependencies: dependencies()
|
|
266
|
-
};
|
|
267
|
-
},
|
|
268
|
-
({ target: _target, dependencies: dependencies2 }) => {
|
|
269
|
-
const controller = new AbortController();
|
|
270
|
-
invokeOnLoaded(
|
|
271
|
-
() => {
|
|
272
|
-
let target2 = _target instanceof Element ? _target : null;
|
|
273
|
-
try {
|
|
274
|
-
if (typeof _target === "string")
|
|
275
|
-
target2 = document.querySelector(_target);
|
|
276
|
-
else if (typeof _target === "function") target2 = _target();
|
|
277
|
-
} catch (e) {
|
|
278
|
-
}
|
|
279
|
-
if (!target2 && typeof _target === "string")
|
|
280
|
-
return console.warn(`Target element not found!`, {
|
|
281
|
-
target: _target
|
|
282
|
-
});
|
|
283
|
-
else if (!target2)
|
|
284
|
-
return console.warn(`Target element not found!`);
|
|
285
|
-
target2.addEventListener(
|
|
286
|
-
"bryt-designs:element-destroyed",
|
|
287
|
-
() => {
|
|
288
|
-
controller.abort("Context element destroyed");
|
|
289
|
-
},
|
|
290
|
-
{ once: true }
|
|
291
|
-
);
|
|
292
|
-
createRoot((dispose) => {
|
|
293
|
-
const c = getContextFromProvider(context, target2);
|
|
294
|
-
const unsub = cb(c, dependencies2);
|
|
295
|
-
onCleanup(() => {
|
|
296
|
-
if (typeof unsub === "function") unsub();
|
|
297
|
-
});
|
|
298
|
-
controller.signal.addEventListener("abort", dispose, {
|
|
299
|
-
once: true
|
|
300
|
-
});
|
|
301
|
-
});
|
|
302
|
-
},
|
|
303
|
-
{ signal: controller.signal }
|
|
304
|
-
);
|
|
305
|
-
onCleanup(() => {
|
|
306
|
-
controller.abort("Dependencies changed!");
|
|
307
|
-
});
|
|
308
|
-
}
|
|
309
|
-
)
|
|
310
|
-
);
|
|
311
|
-
};
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
// src/utils/formatValue.ts
|
|
315
|
-
function formatValue(format, value) {
|
|
316
|
-
switch (format) {
|
|
317
|
-
case "currency":
|
|
318
|
-
if (typeof value === "number") return window.Shopify.formatMoney(value);
|
|
319
|
-
if (typeof value === "string")
|
|
320
|
-
return window.Shopify.formatMoney(parseFloat(value));
|
|
321
|
-
console.warn("formatValue: Unsupported value type for currency format.");
|
|
322
|
-
return window.Shopify.formatMoney(0);
|
|
323
|
-
case "number":
|
|
324
|
-
return Number(value);
|
|
325
|
-
case "boolean":
|
|
326
|
-
return Boolean(value);
|
|
327
|
-
case "invert_boolean":
|
|
328
|
-
return !Boolean(value);
|
|
329
|
-
default:
|
|
330
|
-
return value;
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
// src/utils/getTemplateContent.ts
|
|
335
|
-
function getTemplateContent(element, state) {
|
|
336
|
-
const tmpl = element.querySelector(
|
|
337
|
-
`template[${state}]`
|
|
338
|
-
);
|
|
339
|
-
if (!tmpl) return null;
|
|
340
|
-
return tmpl.content;
|
|
341
|
-
}
|
|
342
|
-
var activeElements = new ReactiveSet();
|
|
343
|
-
createRoot(() => {
|
|
344
|
-
createEffect(() => {
|
|
345
|
-
if (activeElements.size === 0) {
|
|
346
|
-
clearAllBodyScrollLocks();
|
|
347
|
-
}
|
|
348
|
-
});
|
|
349
|
-
});
|
|
350
|
-
var disableBodyScroll = (element, options) => {
|
|
351
|
-
disableBodyScroll$1(element, options);
|
|
352
|
-
activeElements.add(element);
|
|
353
|
-
};
|
|
354
|
-
var enableBodyScroll = (element) => {
|
|
355
|
-
enableBodyScroll$1(element);
|
|
356
|
-
activeElements.delete(element);
|
|
357
|
-
};
|
|
358
|
-
|
|
359
|
-
// src/hooks/internal/getValueFromPath.ts
|
|
360
|
-
function getValueFromPath(obj, path) {
|
|
361
|
-
return path.split(".").reduce((acc, key) => {
|
|
362
|
-
if (acc === null || acc === void 0) return void 0;
|
|
363
|
-
const isArrayIndex = !isNaN(Number(key)) && key.trim() !== "";
|
|
364
|
-
if (Array.isArray(acc) && isArrayIndex) {
|
|
365
|
-
return acc[Number(key)];
|
|
366
|
-
}
|
|
367
|
-
return acc[key];
|
|
368
|
-
}, obj);
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
// src/hooks/makePathContextHooks.ts
|
|
372
|
-
var makeFullPropertyPathContext = () => {
|
|
373
|
-
function createFullPathPropertyContext(options) {
|
|
374
|
-
return options.path;
|
|
375
|
-
}
|
|
376
|
-
const Context = createContext(createFullPathPropertyContext);
|
|
377
|
-
function provide$1({
|
|
378
|
-
element,
|
|
379
|
-
path
|
|
380
|
-
}) {
|
|
381
|
-
return provide(Context, { path }, element);
|
|
382
|
-
}
|
|
383
|
-
function useFullPropertyPathContext(context) {
|
|
384
|
-
return context;
|
|
385
|
-
}
|
|
386
|
-
function usePath(props) {
|
|
387
|
-
const context = consume(Context, props.element);
|
|
388
|
-
const basePath = useFullPropertyPathContext(context);
|
|
389
|
-
return createMemo(() => {
|
|
390
|
-
if (typeof basePath !== "function" && typeof props.path === "function") {
|
|
391
|
-
return props.path();
|
|
392
|
-
} else if (typeof basePath === "function" && typeof props.path !== "function") {
|
|
393
|
-
return basePath();
|
|
394
|
-
} else if (typeof basePath === "function" && typeof props.path === "function") {
|
|
395
|
-
return `${basePath()}.${props.path()}`;
|
|
396
|
-
}
|
|
397
|
-
return "";
|
|
398
|
-
});
|
|
399
|
-
}
|
|
400
|
-
function usePathValue(options) {
|
|
401
|
-
return createMemo(() => {
|
|
402
|
-
const data = options.data();
|
|
403
|
-
if (typeof options.path !== "function") return data;
|
|
404
|
-
const path = options.path();
|
|
405
|
-
if (!path) return data;
|
|
406
|
-
const v = getValueFromPath(data, path);
|
|
407
|
-
if (v === void 0 || v === null) return null;
|
|
408
|
-
return v;
|
|
409
|
-
});
|
|
410
|
-
}
|
|
411
|
-
function useFormattedValue(options) {
|
|
412
|
-
const value = usePathValue({ path: options.path, data: options.data });
|
|
413
|
-
const formattedValue = createMemo(() => {
|
|
414
|
-
const v = value();
|
|
415
|
-
if (v === null) return null;
|
|
416
|
-
if (typeof v === "string" || typeof v === "number" || typeof v === "boolean") {
|
|
417
|
-
return formatValue(options.format || "", v);
|
|
418
|
-
}
|
|
419
|
-
console.warn(
|
|
420
|
-
`useFormattedValue: Unsupported value type. Expected string, number, or boolean. Received: ${typeof v}.`,
|
|
421
|
-
v
|
|
422
|
-
);
|
|
423
|
-
return null;
|
|
424
|
-
});
|
|
425
|
-
return formattedValue;
|
|
426
|
-
}
|
|
427
|
-
return {
|
|
428
|
-
provide: provide$1,
|
|
429
|
-
usePath,
|
|
430
|
-
usePathValue,
|
|
431
|
-
useFormattedValue
|
|
432
|
-
};
|
|
433
|
-
};
|
|
434
|
-
var makePathDataComponent = ({
|
|
435
|
-
useRootData,
|
|
436
|
-
hooks,
|
|
437
|
-
name
|
|
438
|
-
}) => {
|
|
439
|
-
const { usePath, useFormattedValue } = hooks;
|
|
440
|
-
return (props, { element }) => {
|
|
441
|
-
if (!props.propertyName)
|
|
442
|
-
return console.warn(
|
|
443
|
-
`${name}: No property-name attribute provided.`,
|
|
444
|
-
element
|
|
445
|
-
);
|
|
446
|
-
const data = useRootData(element);
|
|
447
|
-
const fullPath = usePath({
|
|
448
|
-
element,
|
|
449
|
-
path: () => props.propertyName
|
|
450
|
-
});
|
|
451
|
-
const formattedValue = useFormattedValue({
|
|
452
|
-
get format() {
|
|
453
|
-
return props.format;
|
|
454
|
-
},
|
|
455
|
-
path: fullPath,
|
|
456
|
-
data
|
|
457
|
-
});
|
|
458
|
-
return html2`
|
|
459
|
-
<${Show} when=${() => formattedValue() !== null}> ${formattedValue} <//>
|
|
460
|
-
`;
|
|
461
|
-
};
|
|
462
|
-
};
|
|
463
|
-
var makePathDataArrayComponent = ({
|
|
464
|
-
useRootData,
|
|
465
|
-
hooks,
|
|
466
|
-
name,
|
|
467
|
-
arrayItemName
|
|
468
|
-
}) => {
|
|
469
|
-
const { usePath, provide, usePathValue } = hooks;
|
|
470
|
-
return (props, { element }) => {
|
|
471
|
-
const itemTemplate = getTemplateContent(element, "item");
|
|
472
|
-
if (!itemTemplate)
|
|
473
|
-
return console.warn(
|
|
474
|
-
`${name}: No template found with a property of 'item'.`,
|
|
475
|
-
element
|
|
476
|
-
);
|
|
477
|
-
if (!props.arrayPath)
|
|
478
|
-
return console.warn(`${name}: No array path provided.`, element);
|
|
479
|
-
const data = useRootData(element);
|
|
480
|
-
const fullPath = usePath({
|
|
481
|
-
element,
|
|
482
|
-
path: () => props.arrayPath
|
|
483
|
-
});
|
|
484
|
-
provide({
|
|
485
|
-
element,
|
|
486
|
-
path: fullPath
|
|
487
|
-
});
|
|
488
|
-
const value = usePathValue({
|
|
489
|
-
path: fullPath,
|
|
490
|
-
data
|
|
491
|
-
});
|
|
492
|
-
const arrayValue = createMemo(() => {
|
|
493
|
-
const v = value();
|
|
494
|
-
if (!v) {
|
|
495
|
-
console.warn(
|
|
496
|
-
`${name}: value is null or undefined at path ${fullPath()}`,
|
|
497
|
-
element
|
|
498
|
-
);
|
|
499
|
-
return null;
|
|
500
|
-
}
|
|
501
|
-
if (!Array.isArray(v)) {
|
|
502
|
-
console.warn(
|
|
503
|
-
`${name}: value is not an array at path ${fullPath()}`,
|
|
504
|
-
element
|
|
505
|
-
);
|
|
506
|
-
return null;
|
|
507
|
-
}
|
|
508
|
-
return v;
|
|
509
|
-
});
|
|
510
|
-
element.replaceChildren(...[]);
|
|
511
|
-
return html2`
|
|
512
|
-
<${Show} when=${() => arrayValue() && arrayValue().length > 0}>
|
|
513
|
-
<${For} each=${arrayValue}>
|
|
514
|
-
${(_, idx) => html2`
|
|
515
|
-
<${arrayItemName} item-index=${() => `${idx()}`}>
|
|
516
|
-
${() => Array.from(itemTemplate.cloneNode(true).childNodes)}
|
|
517
|
-
</${arrayItemName}>
|
|
518
|
-
`}
|
|
519
|
-
<//>
|
|
520
|
-
<//>
|
|
521
|
-
`;
|
|
522
|
-
};
|
|
523
|
-
};
|
|
524
|
-
|
|
525
|
-
// src/hooks/makePathDataArrayItemComponent.ts
|
|
526
|
-
var makePathDataArrayItemComponent = ({
|
|
527
|
-
hooks,
|
|
528
|
-
name
|
|
529
|
-
}) => {
|
|
530
|
-
const { usePath, provide } = hooks;
|
|
531
|
-
return (props, { element }) => {
|
|
532
|
-
if (!props.itemIndex)
|
|
533
|
-
return console.warn(`${name}: No path attribute provided.`);
|
|
534
|
-
const fullPath = usePath({
|
|
535
|
-
path: () => props.itemIndex,
|
|
536
|
-
element
|
|
537
|
-
});
|
|
538
|
-
provide({
|
|
539
|
-
element,
|
|
540
|
-
path: fullPath
|
|
541
|
-
});
|
|
542
|
-
};
|
|
543
|
-
};
|
|
544
|
-
|
|
545
|
-
export { abortablePromise, awaitAllAnimations, checkLoaded, controlsToPromise, correctElementType, createFocusTrap, createWithElementContext, customElement, customShadowlessElement, disableBodyScroll, enableBodyScroll, formatValue, getContextFromProvider, getTemplateContent, getTransitionConfig, invokeOnLoaded, isCustomElement, makeFullPropertyPathContext, makePathDataArrayComponent, makePathDataArrayItemComponent, makePathDataComponent, toHyphenated };
|
|
546
|
-
//# sourceMappingURL=index.js.map
|
|
547
|
-
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/focusTrap/index.ts","../../src/promise/abortablePromise.ts","../../src/animation/controlsToPromise.ts","../../src/animation/awaitAllAnimations.ts","../../src/animation/getTransitionConfig.ts","../../src/utils/toHyphenated.ts","../../src/utils/solid-element.ts","../../src/utils/isCustomElement.ts","../../src/utils/getContextFromProvider.ts","../../src/utils/checkLoaded.ts","../../src/utils/invokeOnLoaded.ts","../../src/utils/createWithElementContext.ts","../../src/utils/formatValue.ts","../../src/utils/getTemplateContent.ts","../../src/utils/body-scroll-lock.ts","../../src/hooks/internal/getValueFromPath.ts","../../src/hooks/makePathContextHooks.ts","../../src/hooks/makePathDataComponent.ts","../../src/hooks/makePathDataArrayComponent.ts","../../src/hooks/makePathDataArrayItemComponent.ts"],"names":["_createFocusTrap","dependencies","target","createRoot","onCleanup","createEffect","_clearAllBodyScrollLocks","_disableBodyScroll","_enableBodyScroll","provide","_provide","_consume","createMemo","html","Show"],"mappings":";;;;;;;;;AAOA,IAAM,YAA8B,EAAC;AAE9B,IAAM,eAAkB,GAAA,CAC7B,OACA,EAAA,OAAA,KAEA,WAAW,MAAM;AACf,EAAM,MAAA,CAAA,GAAI,WAAe,IAAA;AAAA,IACvB;AAAA,GACF;AACA,EAAI,IAAA,CAAC,EAAE,SAAW,EAAA;AAChB,IAAA,CAAA,CAAE,SAAY,GAAA,SAAA;AAAA;AAEhB,EAAO,OAAAA,iBAAA,CAAiB,SAAS,CAAC,CAAA;AACpC,CAAC;;;ACrBI,SAAS,gBAAA,CAAiB,SAAuB,MAAqB,EAAA;AAC3E,EAAA,IAAI,OAAO,OAAS,EAAA;AAClB,IAAO,OAAA,IAAI,QAAQ,CAAC,CAAA,EAAG,QAAQ,GAAI,CAAA,MAAA,CAAO,MAAM,CAAC,CAAA;AAAA;AAGnD,EAAA,OAAO,IAAI,OAAA,CAAQ,OAAO,GAAA,EAAK,GAAQ,KAAA;AACrC,IAAO,MAAA,CAAA,gBAAA;AAAA,MACL,OAAA;AAAA,MACA,MAAM;AACJ,QAAA,GAAA,CAAI,OAAO,MAAM,CAAA;AAAA,OACnB;AAAA,MACA,EAAE,MAAM,IAAK;AAAA,KACf;AACA,IAAA,OAAA,CAAQ,KAAK,GAAG,CAAA;AAAA,GACjB,CAAA;AACH;;;ACbA,eAAsB,kBACpB,QACA,EAAA;AACA,EAAO,OAAA,IAAI,OAAQ,CAAA,CAAC,OAAY,KAAA;AAC9B,IAAA,QAAA,CAAS,IAAK,CAAA,MAAM,OAAQ,CAAA,IAAI,CAAC,CAAA;AAAA,GAClC,CAAA;AACH;;;ACNO,SAAS,mBACd,QACA,EAAA;AACA,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,CAAM,KAAA;AACjC,IAAA,MAAM,UAAiB,EAAC;AACxB,IAAA,IAAI,YAAY,QAAS,CAAA,MAAA;AACzB,IAAA,IAAI,cAAc,CAAG,EAAA;AACnB,MAAA,OAAA,CAAQ,EAAE,CAAA;AACV,MAAA;AAAA;AAGF,IAAS,SAAA,aAAA,CAAiB,OAAU,KAAe,EAAA;AACjD,MAAA,OAAA,CAAQ,KAAK,CAAI,GAAA,KAAA;AACjB,MAAa,SAAA,IAAA,CAAA;AACb,MAAA,IAAI,cAAc,CAAG,EAAA;AACnB,QAAA,OAAA,CAAQ,OAAO,CAAA;AAAA;AACjB;AAGF,IAAS,QAAA,CAAA,OAAA,CAAQ,CAAC,CAAA,EAAG,CAAM,KAAA;AACzB,MAAI,IAAA;AACF,QAAI,IAAA,CAAA,EAAG,UAAU,MAAQ,EAAA;AACvB,UAAA,aAAA,CAAc,MAAM,CAAC,CAAA;AAAA,SAChB,MAAA;AACL,UAAA,CAAA,CAAE,KAAK,MAAM;AACX,YAAA,aAAA,CAAc,MAAM,CAAC,CAAA;AAAA,WACtB,CAAA;AAAA;AACH,eACO,CAAG,EAAA;AACV,QAAA,CAAA,CAAE,KAAK,MAAM;AACX,UAAA,aAAA,CAAc,MAAM,CAAC,CAAA;AAAA,SACtB,CAAA;AAAA;AACH,KACD,CAAA;AAAA,GACF,CAAA;AACH;;;AC9BO,SAAS,oBAAoB,KAA4B,EAAA;AAC9D,EAAA,MAAM,UAAa,GAAA;AAAA,IACjB,MAAA,EAAQ,KAAM,CAAA,gBAAA,CAAiB,kBAAkB,CAAA;AAAA,IACjD,aAAA,EAAe,KAAM,CAAA,gBAAA,CAAiB,0BAA0B,CAAA;AAAA,IAChE,eAAA,EAAiB,KAAM,CAAA,gBAAA,CAAiB,4BAA4B,CAAA;AAAA,IACpE,QAAA,EAAU,KAAM,CAAA,gBAAA,CAAiB,oBAAoB,CAAA;AAAA,IACrD,OAAA,EAAS,KAAM,CAAA,gBAAA,CAAiB,mBAAmB,CAAA;AAAA,IACnD,KAAA,EAAO,KAAM,CAAA,gBAAA,CAAiB,iBAAiB,CAAA;AAAA,IAC/C,IAAA,EAAM,KAAM,CAAA,gBAAA,CAAiB,gBAAgB,CAAA;AAAA,IAC7C,OAAA,EAAS,KAAM,CAAA,gBAAA,CAAiB,mBAAmB,CAAA;AAAA,IACnD,IAAA,EAAM,KAAM,CAAA,gBAAA,CAAiB,gBAAgB,CAAA;AAAA,IAC7C,GAAA,EAAK,KAAM,CAAA,gBAAA,CAAiB,eAAe,CAAA;AAAA,IAC3C,GAAA,EAAK,KAAM,CAAA,gBAAA,CAAiB,eAAe,CAAA;AAAA,IAC3C,KAAA,EAAO,KAAM,CAAA,gBAAA,CAAiB,iBAAiB,CAAA;AAAA,IAC/C,MAAA,EAAQ,KAAM,CAAA,gBAAA,CAAiB,kBAAkB,CAAA;AAAA,IACjD,WAAA,EAAa,KAAM,CAAA,gBAAA,CAAiB,wBAAwB,CAAA;AAAA,IAC5D,UAAA,EAAY,KAAM,CAAA,gBAAA,CAAiB,uBAAuB,CAAA;AAAA,IAC1D,SAAA,EAAW,KAAM,CAAA,gBAAA,CAAiB,sBAAsB,CAAA;AAAA,IACxD,SAAA,EAAW,KAAM,CAAA,gBAAA,CAAiB,sBAAsB,CAAA;AAAA,IACxD,SAAA,EAAW,KAAM,CAAA,gBAAA,CAAiB,sBAAsB,CAAA;AAAA,IACxD,YAAA,EAAc,KAAM,CAAA,gBAAA,CAAiB,yBAAyB,CAAA;AAAA,IAC9D,KAAA,EAAO,KAAM,CAAA,gBAAA,CAAiB,iBAAiB,CAAA;AAAA,IAC/C,IAAA,EAAM,KAAM,CAAA,gBAAA,CAAiB,gBAAgB,CAAA;AAAA,IAC7C,QAAA,EAAU,KAAM,CAAA,gBAAA,CAAiB,oBAAoB,CAAA;AAAA,IACrD,cAAA,EAAgB,KAAM,CAAA,gBAAA,CAAiB,2BAA2B;AAAA,GACpE;AACA,EAAO,OAAA;AAAA,IACL,QAAQ,UAAW,CAAA,MAAA,GAAS,UAAW,CAAA,UAAA,CAAW,MAAM,CAAI,GAAA,MAAA;AAAA,IAC5D,eAAe,UAAW,CAAA,aAAA,GACtB,UAAW,CAAA,UAAA,CAAW,aAAa,CACnC,GAAA,MAAA;AAAA,IACJ,iBAAiB,UAAW,CAAA,eAAA,GACxB,UAAW,CAAA,UAAA,CAAW,eAAe,CACrC,GAAA,MAAA;AAAA,IACJ,UAAU,UAAW,CAAA,QAAA,GAAW,UAAW,CAAA,UAAA,CAAW,QAAQ,CAAI,GAAA,MAAA;AAAA,IAClE,SAAS,UAAW,CAAA,OAAA,GAAU,UAAW,CAAA,UAAA,CAAW,OAAO,CAAI,GAAA,MAAA;AAAA,IAC/D,OAAO,UAAW,CAAA,KAAA,GAAQ,UAAW,CAAA,UAAA,CAAW,KAAK,CAAI,GAAA,MAAA;AAAA,IACzD,IAAO,EAAA,UAAA,CAAW,IAAO,GAAA,UAAA,CAAW,IAAO,GAAA,MAAA;AAAA,IAC3C,SAAS,UAAW,CAAA,OAAA,GAAU,UAAW,CAAA,UAAA,CAAW,OAAO,CAAI,GAAA,MAAA;AAAA,IAC/D,MAAM,UAAW,CAAA,IAAA,GAAO,UAAW,CAAA,UAAA,CAAW,IAAI,CAAI,GAAA,MAAA;AAAA,IACtD,KAAK,UAAW,CAAA,GAAA,GAAM,UAAW,CAAA,UAAA,CAAW,GAAG,CAAI,GAAA,MAAA;AAAA,IACnD,KAAK,UAAW,CAAA,GAAA,GAAM,UAAW,CAAA,UAAA,CAAW,GAAG,CAAI,GAAA,MAAA;AAAA,IACnD,OAAO,UAAW,CAAA,KAAA,GAAQ,UAAW,CAAA,UAAA,CAAW,KAAK,CAAI,GAAA,MAAA;AAAA,IACzD,QAAQ,UAAW,CAAA,MAAA,GAAS,QAAS,CAAA,UAAA,CAAW,MAAM,CAAI,GAAA,MAAA;AAAA,IAC1D,aAAa,UAAW,CAAA,WAAA,GACpB,UAAW,CAAA,UAAA,CAAW,WAAW,CACjC,GAAA,MAAA;AAAA,IACJ,UAAa,EAAA,UAAA,CAAW,UACpB,GAAA,UAAA,CAAW,UACX,GAAA,MAAA;AAAA,IACJ,WAAW,UAAW,CAAA,SAAA,GAClB,UAAW,CAAA,UAAA,CAAW,SAAS,CAC/B,GAAA,MAAA;AAAA,IACJ,WAAW,UAAW,CAAA,SAAA,GAClB,UAAW,CAAA,UAAA,CAAW,SAAS,CAC/B,GAAA,MAAA;AAAA,IACJ,WAAW,UAAW,CAAA,SAAA,GAClB,UAAW,CAAA,UAAA,CAAW,SAAS,CAC/B,GAAA,MAAA;AAAA,IACJ,cAAc,UAAW,CAAA,YAAA,GACrB,UAAW,CAAA,UAAA,CAAW,YAAY,CAClC,GAAA,MAAA;AAAA,IACJ,IAAO,EAAA,UAAA,CAAW,IACd,GAAA,UAAA,CAAW,IACX,GAAA,MAAA;AAAA,IACJ,UAAU,UAAW,CAAA,QAAA,GAAW,UAAW,CAAA,UAAA,CAAW,QAAQ,CAAI,GAAA,MAAA;AAAA,IAClE,gBAAgB,UAAW,CAAA,cAAA,GACvB,UAAW,CAAA,UAAA,CAAW,cAAc,CACpC,GAAA;AAAA,GACN;AACF;;;AC7EO,SAAS,aAAa,GAAqB,EAAA;AAChD,EAAA,OAAO,GACJ,CAAA,OAAA,CAAQ,UAAY,EAAA,KAAK,EACzB,WAAY,EAAA;AACjB;ACiBA,SAAS,YAA8B,GAAQ,EAAA;AAC7C,EAAM,MAAA,IAAA,GAAO,MAAO,CAAA,IAAA,CAAK,GAAG,CAAA;AAC5B,EAAA,MAAM,QAAQ,EAAC;AACf,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,IAAA,CAAK,QAAQ,CAAK,EAAA,EAAA;AACpC,IAAM,MAAA,GAAA,GAAM,KAAK,CAAC,CAAA;AAClB,IAAI,IAAA,OAAO,QAAQ,WAAa,EAAA;AAChC,IAAM,MAAA,CAAC,KAAK,GAAG,CAAA,GAAI,aAAa,OAAQ,CAAA,GAAA,CAAI,GAAK,EAAA,GAAG,CAAC,CAAA;AACrD,IAAO,MAAA,CAAA,cAAA,CAAe,OAAO,GAAK,EAAA;AAAA,MAChC,GAAA;AAAA,MACA,IAAI,CAAG,EAAA;AACL,QAAA,GAAA,CAAI,MAAM,CAAC,CAAA;AAAA;AACb,KACD,CAAA;AAAA;AAEH,EAAO,OAAA,KAAA;AACT;AAEA,SAAS,cAAc,EAAwC,EAAA;AAC7D,EAAI,IAAA,EAAA,CAAG,YAAgB,IAAA,EAAA,CAAG,YAAa,CAAA,OAAA;AACrC,IAAA,OAAO,GAAG,YAAa,CAAA,OAAA;AACzB,EAAA,IAAI,OAAoC,EAAG,CAAA,UAAA;AAC3C,EACE,OAAA,IAAA,IACA,CAAC,IAAK,CAAA,OAAA,IACN,EACE,IAAK,CAAA,YAAA,IACJ,KAAK,YAA6C,CAAA,OAAA,CAAA;AAGrD,IAAA,IAAA,GAAO,IAAK,CAAA,UAAA;AACd,EAAA,OAAO,QAAQ,IAAK,CAAA,YAAA,GACf,IAAK,CAAA,YAAA,CAA6C,UACnD,EAAG,CAAA,OAAA;AACT;AAEA,SAAS,UACP,aACkB,EAAA;AAClB,EAAO,OAAA,CAAC,UAAa,OAA8B,KAAA;AACjD,IAAM,MAAA,EAAE,SAAY,GAAA,OAAA;AAGpB,IAAO,OAAA,UAAA,CAAW,CAAC,OAAsB,KAAA;AACvC,MAAM,MAAA,KAAA,GAAQ,YAAe,QAAQ,CAAA;AAErC,MAAQ,OAAA,CAAA,0BAAA;AAAA,QACN,CAAC,GAAA,EAAa,GAAc,KAAA,KAAA,CAAM,GAAc,CAAI,GAAA;AAAA,OACtD;AACA,MAAA,OAAA,CAAQ,mBAAmB,MAAM;AAC/B,QAAA,OAAA,CAAQ,WAAW,WAAc,GAAA,EAAA;AACjC,QAAQ,OAAA,EAAA;AAAA,OACT,CAAA;AAED,MAAM,MAAA,IAAA,GAAQ,aAAuC,CAAA,KAAA,EAAY,OAAO,CAAA;AACxE,MAAO,OAAA,MAAA,CAAO,OAAQ,CAAA,UAAA,EAAY,IAAI,CAAA;AAAA,KACxC,EAAG,aAAc,CAAA,OAAO,CAAC,CAAA;AAAA,GAC3B;AACF;AAEA,SAAS,eAAA,CACP,YAA8B,MAAM;AAAC,CACrC,EAAA;AACA,EAAO,OAAA,CAAC,OAAU,OAA8B,KAAA;AAC9C,IAAY,WAAA,EAAA;AACZ,IAAM,MAAA,IAAA,GAAQ,SAAmC,CAAA,KAAA,EAAO,OAAO,CAAA;AAC/D,IAAO,OAAA,IAAA;AAAA,GACT;AACF;AAEO,SAAS,aACd,CAAA,OAAA,EACA,KACA,EAAA,SAAA,GAA8B,MAAM;AAAC,CAAA,EAAA,GAClC,IACH,EAAA;AACA,EAAO,OAAA,OAAA,CAAQ,SAAS,OAAS,EAAA,KAAK,GAAG,SAAW,EAAA,GAAG,IAAI,CAAA,CAAE,SAAS,CAAA;AACxE;AAEA,SAAS,gBAAgB,EAAgD,EAAA;AACvE,EAAI,IAAA,OAAO,EAAO,KAAA,UAAA,EAAmB,OAAA,KAAA;AAErC,EAAI,IAAA;AACF,IAAA,OAAA,CAAQ,SAAU,CAAA,MAAA,EAAQ,EAAC,EAAG,EAAc,CAAA;AAC5C,IAAO,OAAA,IAAA;AAAA,GACD,CAAA,MAAA;AACN,IAAO,OAAA,KAAA;AAAA;AAEX;AAEO,SAAS,uBACd,CAAA,OAAA,EACA,KACA,EAAA,SAAA,GAA8B,MAAM;AAAC,CAAA,EAAA,GAClC,IACH,EAAA;AACA,EAAO,OAAA,OAAA;AAAA,IACL,QAAA,CAAS,SAAS,KAAK,CAAA;AAAA,IACvB,eAAA;AAAA,IACA,SAAA;AAAA,IACA,GAAG;AAAA,GACL,CAAE,IAAI,IAAS,KAAA;AACb,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,MAAM,CAAC,CAAA,EAAG,EAAE,OAAA,EAAS,CAAI,GAAA,IAAA;AACzB,MAAA,OAAA,CAAQ,aAAc,CAAA,IAAI,WAAY,CAAA,gCAAgC,CAAC,CAAA;AAAA,KACxE,CAAA;AACD,IAAI,IAAA,eAAA,CAAgB,SAAS,CAAG,EAAA;AAC9B,MAAO,OAAA,IAAI,SAAU,CAAA,GAAG,IAAI,CAAA;AAAA;AAE9B,IAAO,OAAA,SAAA,CAAU,GAAG,IAAI,CAAA;AAAA,GACzB,CAAA;AACH;AAEa,IAAA,kBAAA,GAAqB,CAChC,SACqB,KAAA;AACrB,EAAO,OAAA,CAAC,OAAU,OAAY,KAAA;AAC5B,IAAO,OAAA,SAAA,CAAU,OAAO,OAAkC,CAAA;AAAA,GAC5D;AACF;;;AC1IO,SAAS,gBACd,OACyC,EAAA;AACzC,EAAO,OAAA,OAAA,CAAQ,GAAI,CAAA,OAAA,EAAS,eAAe,CAAA;AAC7C;;;ACHO,SAAS,sBAAA,CACd,SACA,OACA,EAAA;AACA,EAAA,MAAM,SAAY,GAAA,MAAA,CAAO,qBAAsB,CAAA,OAAO,CAAE,CAAA,IAAA;AAAA,IACtD,CAAC,CAAM,KAAA,CAAA,CAAE,WAAgB,KAAA;AAAA,GAC3B;AACA,EAAA,IAAI,CAAC,SAAW,EAAA;AACd,IAAM,MAAA,IAAI,MAAM,oDAAoD,CAAA;AAAA;AAGtE,EAAM,MAAA,QAAA,GAAW,QAAQ,SAAS,CAAA;AAClC,EAAO,OAAA,QAAA,CAAS,QAAQ,EAAE,CAAA;AAC5B;;;ACfO,SAAS,WAAc,GAAA;AAC5B,EAAA,OACE,SAAS,UAAe,KAAA,UAAA;AAAA,EAExB,QAAS,CAAA,UAAA,KAAe,QACxB,IAAA,QAAA,CAAS,UAAe,KAAA,aAAA;AAE5B;;;ACLO,SAAS,cACd,CAAA,EAAA,EACA,EAAE,MAAA,EACF,EAAA;AACA,EAAA,IAAI,aAAe,EAAA;AACjB,IAAA,MAAM,EAAK,GAAA,UAAA,CAAW,MAAM,EAAA,EAAI,CAAA;AAChC,IAAA,MAAA,EAAQ,gBAAiB,CAAA,OAAA,EAAS,MAAM,YAAA,CAAa,EAAE,CAAG,EAAA;AAAA,MACxD,IAAM,EAAA;AAAA,KACP,CAAA;AACD,IAAA;AAAA;AAEF,EAAA,MAAA,CAAO,iBAAiB,kBAAoB,EAAA,EAAA,EAAI,EAAE,MAAQ,EAAA,IAAA,EAAM,MAAM,CAAA;AACtE,EAAA;AACF;ACAO,SAAS,yBAGd,OAAkB,EAAA;AAClB,EAAA,OAAO,SACL,MAAA,EACA,YAA4B,GAAA,MAAM,MAClC,EACA,EAAA;AACA,IAAA,YAAA;AAAA,MACE,EAAA;AAAA,QACE,MAAM;AACJ,UAAA,MAAM,CAAI,GAAA,OAAO,MAAW,KAAA,QAAA,GAAW,SAAS,MAAO,EAAA;AACvD,UAAO,OAAA;AAAA,YACL,MAAQ,EAAA,CAAA;AAAA,YACR,cAAc,YAAa;AAAA,WAC7B;AAAA,SACF;AAAA,QACA,CAAC,EAAE,MAAA,EAAQ,OAAS,EAAA,YAAA,EAAAC,eAAmB,KAAA;AACrC,UAAM,MAAA,UAAA,GAAa,IAAI,eAAgB,EAAA;AACvC,UAAA,cAAA;AAAA,YACE,MAAM;AACJ,cAAIC,IAAAA,OAAAA,GACF,OAAmB,YAAA,OAAA,GAAU,OAAU,GAAA,IAAA;AACzC,cAAI,IAAA;AACF,gBAAA,IAAI,OAAO,OAAY,KAAA,QAAA;AACrB,kBAAAA,OAAAA,GAAS,QAAS,CAAA,aAAA,CAAc,OAAO,CAAA;AAAA,qBAAA,IAChC,OAAO,OAAA,KAAY,UAAY,EAAAA,UAAS,OAAQ,EAAA;AAAA,uBAClD,CAAG,EAAA;AACV;AAEF,cAAI,IAAA,CAACA,OAAU,IAAA,OAAO,OAAY,KAAA,QAAA;AAChC,gBAAO,OAAA,OAAA,CAAQ,KAAK,CAA6B,yBAAA,CAAA,EAAA;AAAA,kBAC/C,MAAQ,EAAA;AAAA,iBACT,CAAA;AAAA,mBAAA,IACM,CAACA,OAAAA;AACR,gBAAO,OAAA,OAAA,CAAQ,KAAK,CAA2B,yBAAA,CAAA,CAAA;AAEjD,cAAAA,OAAO,CAAA,gBAAA;AAAA,gBACL,gCAAA;AAAA,gBACA,MAAM;AACJ,kBAAA,UAAA,CAAW,MAAM,2BAA2B,CAAA;AAAA,iBAC9C;AAAA,gBACA,EAAE,MAAM,IAAK;AAAA,eACf;AAEA,cAAAC,UAAAA,CAAW,CAAC,OAAY,KAAA;AACtB,gBAAM,MAAA,CAAA,GAAI,sBAAuB,CAAA,OAAA,EAASD,OAAM,CAAA;AAEhD,gBAAM,MAAA,KAAA,GAAQ,EAAG,CAAA,CAAA,EAAmBD,aAAY,CAAA;AAEhD,gBAAAG,UAAU,MAAM;AACd,kBAAI,IAAA,OAAO,KAAU,KAAA,UAAA,EAAkB,KAAA,EAAA;AAAA,iBACxC,CAAA;AAED,gBAAW,UAAA,CAAA,MAAA,CAAO,gBAAiB,CAAA,OAAA,EAAS,OAAS,EAAA;AAAA,kBACnD,IAAM,EAAA;AAAA,iBACP,CAAA;AAAA,eACF,CAAA;AAAA,aACH;AAAA,YACA,EAAE,MAAQ,EAAA,UAAA,CAAW,MAAO;AAAA,WAC9B;AAGA,UAAAA,UAAU,MAAM;AACd,YAAA,UAAA,CAAW,MAAM,uBAAuB,CAAA;AAAA,WACzC,CAAA;AAAA;AACH;AACF,KACF;AAAA,GACF;AACF;;;AC/EO,SAAS,WAAA,CAAY,QAAgB,KAAgB,EAAA;AAC1D,EAAA,QAAQ,MAAQ;AAAA,IACd,KAAK,UAAA;AACH,MAAA,IAAI,OAAO,KAAU,KAAA,QAAA,SAAiB,MAAO,CAAA,OAAA,CAAQ,YAAY,KAAK,CAAA;AACtE,MAAA,IAAI,OAAO,KAAU,KAAA,QAAA;AACnB,QAAA,OAAO,MAAO,CAAA,OAAA,CAAQ,WAAY,CAAA,UAAA,CAAW,KAAK,CAAC,CAAA;AACrD,MAAA,OAAA,CAAQ,KAAK,0DAA0D,CAAA;AACvE,MAAO,OAAA,MAAA,CAAO,OAAQ,CAAA,WAAA,CAAY,CAAC,CAAA;AAAA,IACrC,KAAK,QAAA;AACH,MAAA,OAAO,OAAO,KAAK,CAAA;AAAA,IACrB,KAAK,SAAA;AACH,MAAA,OAAO,QAAQ,KAAK,CAAA;AAAA,IACtB,KAAK,gBAAA;AACH,MAAO,OAAA,CAAC,QAAQ,KAAK,CAAA;AAAA,IACvB;AACE,MAAO,OAAA,KAAA;AAAA;AAEb;;;ACxBO,SAAS,kBAAA,CAAmB,SAAsB,KAAe,EAAA;AACtE,EAAA,MAAM,OAAO,OAAQ,CAAA,aAAA;AAAA,IACnB,YAAY,KAAK,CAAA,CAAA;AAAA,GACnB;AACA,EAAI,IAAA,CAAC,MAAa,OAAA,IAAA;AAClB,EAAA,OAAO,IAAK,CAAA,OAAA;AACd;ACIA,IAAM,cAAA,GAAiB,IAAI,WAA0C,EAAA;AAErED,UAAAA,CAAW,MAAM;AACf,EAAAE,aAAa,MAAM;AACjB,IAAI,IAAA,cAAA,CAAe,SAAS,CAAG,EAAA;AAC7B,MAAyBC,uBAAA,EAAA;AAAA;AAC3B,GACD,CAAA;AACH,CAAC,CAAA;AAEY,IAAA,iBAAA,GAAoB,CAC/B,OAAA,EACA,OACG,KAAA;AACH,EAAAC,mBAAA,CAAmB,SAAS,OAAO,CAAA;AACnC,EAAA,cAAA,CAAe,IAAI,OAAO,CAAA;AAC5B;AAEa,IAAA,gBAAA,GAAmB,CAAC,OAA0C,KAAA;AACzE,EAAAC,kBAAA,CAAkB,OAAO,CAAA;AACzB,EAAA,cAAA,CAAe,OAAO,OAAO,CAAA;AAC/B;;;ACFO,SAAS,gBAAA,CACd,KACA,IACiB,EAAA;AACjB,EAAA,OAAO,KAAK,KAAM,CAAA,GAAG,EAAE,MAAY,CAAA,CAAC,KAAK,GAAQ,KAAA;AAC/C,IAAA,IAAI,GAAQ,KAAA,IAAA,IAAQ,GAAQ,KAAA,MAAA,EAAkB,OAAA,MAAA;AAE9C,IAAM,MAAA,YAAA,GAAe,CAAC,KAAM,CAAA,MAAA,CAAO,GAAG,CAAC,CAAA,IAAK,GAAI,CAAA,IAAA,EAAW,KAAA,EAAA;AAC3D,IAAA,IAAI,KAAM,CAAA,OAAA,CAAQ,GAAG,CAAA,IAAK,YAAc,EAAA;AACtC,MAAO,OAAA,GAAA,CAAI,MAAO,CAAA,GAAG,CAAC,CAAA;AAAA;AAGxB,IAAA,OAAO,IAAI,GAAG,CAAA;AAAA,KACb,GAAG,CAAA;AACR;;;AC3BO,IAAM,8BAA8B,MAAsB;AAS/D,EAAA,SAAS,8BACP,OAC0B,EAAA;AAC1B,IAAA,OAAO,OAAQ,CAAA,IAAA;AAAA;AAGjB,EAAM,MAAA,OAAA,GAAU,cAAc,6BAA6B,CAAA;AAE3D,EAAA,SAASC,SAAQ,CAAA;AAAA,IACf,OAAA;AAAA,IACA;AAAA,GAI8B,EAAA;AAC9B,IAAA,OAAOC,OAAS,CAAA,OAAA,EAAS,EAAE,IAAA,IAAQ,OAAO,CAAA;AAAA;AAG5C,EAAA,SAAS,2BAA2B,OAAsC,EAAA;AACxE,IAAO,OAAA,OAAA;AAAA;AAGT,EAAA,SAAS,QAAQ,KAGY,EAAA;AAC3B,IAAA,MAAM,OAAU,GAAAC,OAAA,CAAS,OAAS,EAAA,KAAA,CAAM,OAAO,CAAA;AAC/C,IAAM,MAAA,QAAA,GAAW,2BAA2B,OAAO,CAAA;AACnD,IAAA,OAAOC,WAAW,MAAM;AACtB,MAAA,IAAI,OAAO,QAAa,KAAA,UAAA,IAAc,OAAO,KAAA,CAAM,SAAS,UAAY,EAAA;AACtE,QAAA,OAAO,MAAM,IAAK,EAAA;AAAA,iBAElB,OAAO,QAAA,KAAa,cACpB,OAAO,KAAA,CAAM,SAAS,UACtB,EAAA;AACA,QAAA,OAAO,QAAS,EAAA;AAAA,iBAEhB,OAAO,QAAA,KAAa,cACpB,OAAO,KAAA,CAAM,SAAS,UACtB,EAAA;AACA,QAAA,OAAO,GAAG,QAAS,EAAC,CAAI,CAAA,EAAA,KAAA,CAAM,MAAM,CAAA,CAAA;AAAA;AAEtC,MAAO,OAAA,EAAA;AAAA,KACR,CAAA;AAAA;AAQH,EAAA,SAAS,aACP,OACkC,EAAA;AAClC,IAAA,OAAOA,WAAW,MAAM;AACtB,MAAM,MAAA,IAAA,GAAO,QAAQ,IAAK,EAAA;AAC1B,MAAA,IAAI,OAAO,OAAA,CAAQ,IAAS,KAAA,UAAA,EAAmB,OAAA,IAAA;AAC/C,MAAM,MAAA,IAAA,GAAO,QAAQ,IAAK,EAAA;AAC1B,MAAI,IAAA,CAAC,MAAa,OAAA,IAAA;AAClB,MAAM,MAAA,CAAA,GAAI,gBAAiB,CAAA,IAAA,EAAM,IAAW,CAAA;AAC5C,MAAA,IAAI,CAAM,KAAA,MAAA,IAAa,CAAM,KAAA,IAAA,EAAa,OAAA,IAAA;AAC1C,MAAO,OAAA,CAAA;AAAA,KACR,CAAA;AAAA;AASH,EAAA,SAAS,kBACP,OACkC,EAAA;AAClC,IAAM,MAAA,KAAA,GAAQ,aAAa,EAAE,IAAA,EAAM,QAAQ,IAAM,EAAA,IAAA,EAAM,OAAQ,CAAA,IAAA,EAAM,CAAA;AAErE,IAAM,MAAA,cAAA,GAAiBA,WAAW,MAAM;AACtC,MAAA,MAAM,IAAI,KAAM,EAAA;AAChB,MAAI,IAAA,CAAA,KAAM,MAAa,OAAA,IAAA;AACvB,MACE,IAAA,OAAO,MAAM,QACb,IAAA,OAAO,MAAM,QACb,IAAA,OAAO,MAAM,SACb,EAAA;AACA,QAAA,OAAO,WAAY,CAAA,OAAA,CAAQ,MAAU,IAAA,EAAA,EAAI,CAAC,CAAA;AAAA;AAE5C,MAAQ,OAAA,CAAA,IAAA;AAAA,QACN,CAAA,0FAAA,EAA6F,OAAO,CAAC,CAAA,CAAA,CAAA;AAAA,QACrG;AAAA,OACF;AACA,MAAO,OAAA,IAAA;AAAA,KACR,CAAA;AAED,IAAO,OAAA,cAAA;AAAA;AAGT,EAAO,OAAA;AAAA,aACLH,SAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACF;AACF;ACxHO,IAAM,wBAAwB,CAA8B;AAAA,EACjE,WAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAEK,KAAA;AACH,EAAM,MAAA,EAAE,OAAS,EAAA,iBAAA,EAAsB,GAAA,KAAA;AACvC,EAAA,OAAO,CAAC,KAAA,EAAO,EAAE,OAAA,EAAc,KAAA;AAC7B,IAAA,IAAI,CAAC,KAAM,CAAA,YAAA;AACT,MAAA,OAAO,OAAQ,CAAA,IAAA;AAAA,QACb,GAAG,IAAI,CAAA,sCAAA,CAAA;AAAA,QACP;AAAA,OACF;AACF,IAAM,MAAA,IAAA,GAAO,YAAY,OAAO,CAAA;AAChC,IAAA,MAAM,WAAW,OAAQ,CAAA;AAAA,MACvB,OAAA;AAAA,MACA,IAAA,EAAM,MAAM,KAAM,CAAA;AAAA,KACnB,CAAA;AACD,IAAA,MAAM,iBAAiB,iBAAkB,CAAA;AAAA,MACvC,IAAI,MAAS,GAAA;AACX,QAAA,OAAO,KAAM,CAAA,MAAA;AAAA,OACf;AAAA,MACA,IAAM,EAAA,QAAA;AAAA,MACN;AAAA,KACD,CAAA;AACD,IAAO,OAAAI,KAAA;AAAA,OAAA,EACF,IAAI,CAAS,MAAA,EAAA,MAAM,gBAAqB,KAAA,IAAI,KAAK,cAAc,CAAA;AAAA,IAAA,CAAA;AAAA,GAEtE;AACF;AC7BO,IAAM,6BAA6B,CAA8B;AAAA,EACtE,WAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAKK,KAAA;AACH,EAAA,MAAM,EAAE,OAAA,EAAS,OAAS,EAAA,YAAA,EAAiB,GAAA,KAAA;AAC3C,EAAA,OAAO,CAAC,KAAA,EAAO,EAAE,OAAA,EAAc,KAAA;AAC7B,IAAM,MAAA,YAAA,GAAe,kBAAmB,CAAA,OAAA,EAAS,MAAM,CAAA;AACvD,IAAA,IAAI,CAAC,YAAA;AACH,MAAA,OAAO,OAAQ,CAAA,IAAA;AAAA,QACb,GAAG,IAAI,CAAA,8CAAA,CAAA;AAAA,QACP;AAAA,OACF;AACF,IAAA,IAAI,CAAC,KAAM,CAAA,SAAA;AACT,MAAA,OAAO,OAAQ,CAAA,IAAA,CAAK,CAAG,EAAA,IAAI,6BAA6B,OAAO,CAAA;AAEjE,IAAM,MAAA,IAAA,GAAO,YAAY,OAAO,CAAA;AAEhC,IAAA,MAAM,WAAW,OAAQ,CAAA;AAAA,MACvB,OAAA;AAAA,MACA,IAAA,EAAM,MAAM,KAAM,CAAA;AAAA,KACnB,CAAA;AAED,IAAQ,OAAA,CAAA;AAAA,MACN,OAAA;AAAA,MACA,IAAM,EAAA;AAAA,KACP,CAAA;AAED,IAAA,MAAM,QAAQ,YAAa,CAAA;AAAA,MACzB,IAAM,EAAA,QAAA;AAAA,MACN;AAAA,KACD,CAAA;AAED,IAAM,MAAA,UAAA,GAAaD,WAAW,MAAM;AAClC,MAAA,MAAM,IAAI,KAAM,EAAA;AAEhB,MAAA,IAAI,CAAC,CAAG,EAAA;AACN,QAAQ,OAAA,CAAA,IAAA;AAAA,UACN,CAAG,EAAA,IAAI,CAAwC,qCAAA,EAAA,QAAA,EAAU,CAAA,CAAA;AAAA,UACzD;AAAA,SACF;AACA,QAAO,OAAA,IAAA;AAAA;AAGT,MAAA,IAAI,CAAC,KAAA,CAAM,OAAQ,CAAA,CAAC,CAAG,EAAA;AACrB,QAAQ,OAAA,CAAA,IAAA;AAAA,UACN,CAAG,EAAA,IAAI,CAAmC,gCAAA,EAAA,QAAA,EAAU,CAAA,CAAA;AAAA,UACpD;AAAA,SACF;AACA,QAAO,OAAA,IAAA;AAAA;AAGT,MAAO,OAAA,CAAA;AAAA,KACR,CAAA;AACD,IAAQ,OAAA,CAAA,eAAA,CAAgB,GAAG,EAAE,CAAA;AAE7B,IAAOC,OAAAA,KAAAA;AAAA,OACFC,EAAAA,IAAI,SAAS,MAAM,UAAA,MAAgB,UAAW,EAAA,CAAG,SAAS,CAAC,CAAA;AAAA,SACzD,EAAA,GAAG,SAAS,UAAU,CAAA;AAAA,UACrB,EAAA,CAAC,GAAQ,GAA0BD,KAAAA,KAAAA;AAAA,aAAA,EAChC,aAAa,CAAe,YAAA,EAAA,MAAM,CAAG,EAAA,GAAA,EAAK,CAAE,CAAA,CAAA;AAAA,cAC3C,EAAA,MAAM,MAAM,IAAK,CAAA,YAAA,CAAa,UAAU,IAAI,CAAA,CAAE,UAAU,CAAC;AAAA,cAAA,EACzD,aAAa,CAAA;AAAA,UAClB,CAAA;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,GAIT;AACF;;;AC9EO,IAAM,iCAAiC,CAG5C;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAiE,KAAA;AAC/D,EAAM,MAAA,EAAE,OAAS,EAAA,OAAA,EAAY,GAAA,KAAA;AAC7B,EAAA,OAAO,CAAC,KAAA,EAAO,EAAE,OAAA,EAAc,KAAA;AAC7B,IAAA,IAAI,CAAC,KAAM,CAAA,SAAA;AACT,MAAA,OAAO,OAAQ,CAAA,IAAA,CAAK,CAAG,EAAA,IAAI,CAA+B,6BAAA,CAAA,CAAA;AAE5D,IAAA,MAAM,WAAW,OAAQ,CAAA;AAAA,MACvB,IAAA,EAAM,MAAM,KAAM,CAAA,SAAA;AAAA,MAClB;AAAA,KACD,CAAA;AAED,IAAQ,OAAA,CAAA;AAAA,MACN,OAAA;AAAA,MACA,IAAM,EAAA;AAAA,KACP,CAAA;AAAA,GACH;AACF","file":"index.js","sourcesContent":["import {\n createFocusTrap as _createFocusTrap,\n type Options,\n type FocusTrap,\n} from \"focus-trap\";\nimport { createMemo, type Accessor } from \"solid-js\";\n\nconst trapStack: Array<FocusTrap> = [];\n\nexport const createFocusTrap = (\n element: HTMLElement,\n options?: Accessor<Options>,\n) =>\n createMemo(() => {\n const o = options?.() || {\n trapStack,\n };\n if (!o.trapStack) {\n o.trapStack = trapStack;\n }\n return _createFocusTrap(element, o);\n });\n","export function abortablePromise(promise: Promise<any>, signal: AbortSignal) {\n if (signal.aborted) {\n return new Promise((_, rej) => rej(signal.reason));\n }\n\n return new Promise(async (res, rej) => {\n signal.addEventListener(\n \"abort\",\n () => {\n rej(signal.reason);\n },\n { once: true },\n );\n promise.then(res);\n });\n}\n","import type { AnimationPlaybackControlsWithThen } from \"motion\";\n\nexport async function controlsToPromise(\n controls: AnimationPlaybackControlsWithThen,\n) {\n return new Promise((resolve) => {\n controls.then(() => resolve(null));\n });\n}\n","import type { AnimationPlaybackControlsWithThen } from \"motion\";\n\nexport function awaitAllAnimations(\n promises: AnimationPlaybackControlsWithThen[],\n) {\n return new Promise((resolve, _) => {\n const results: any[] = [];\n let remaining = promises.length;\n if (remaining === 0) {\n resolve([]); // zero‐length edge case\n return;\n }\n\n function updateResults<T>(value: T, index: number) {\n results[index] = value;\n remaining -= 1;\n if (remaining === 0) {\n resolve(results);\n }\n }\n\n promises.forEach((p, i) => {\n try {\n if (p?.state === \"idle\") {\n updateResults(null, i);\n } else {\n p.then(() => {\n updateResults(null, i);\n });\n }\n } catch (e) {\n p.then(() => {\n updateResults(null, i);\n });\n }\n });\n });\n}\n","import type {\n Easing,\n Transition,\n AnimationGeneratorType,\n RepeatType,\n} from \"motion\";\n\nexport function getTransitionConfig(style: CSSStyleDeclaration) {\n const properties = {\n bounce: style.getPropertyValue(\"--motion--bounce\"),\n bounceDamping: style.getPropertyValue(\"--motion--bounce-damping\"),\n bounceStiffness: style.getPropertyValue(\"--motion--bounce-stiffness\"),\n duration: style.getPropertyValue(\"--motion--duration\"),\n damping: style.getPropertyValue(\"--motion--damping\"),\n delay: style.getPropertyValue(\"--motion--delay\"),\n ease: style.getPropertyValue(\"--motion--ease\"),\n elapsed: style.getPropertyValue(\"--motion--elapsed\"),\n mass: style.getPropertyValue(\"--motion--mass\"),\n max: style.getPropertyValue(\"--motion--max\"),\n min: style.getPropertyValue(\"--motion--min\"),\n power: style.getPropertyValue(\"--motion--power\"),\n repeat: style.getPropertyValue(\"--motion--repeat\"),\n repeatDelay: style.getPropertyValue(\"--motion--repeat-delay\"),\n repeatType: style.getPropertyValue(\"--motion--repeat-type\"),\n restDelta: style.getPropertyValue(\"--motion--rest-delta\"),\n restSpeed: style.getPropertyValue(\"--motion--rest-speed\"),\n startTime: style.getPropertyValue(\"--motion--start-time\"),\n timeConstant: style.getPropertyValue(\"--motion--time-constant\"),\n times: style.getPropertyValue(\"--motion--times\"),\n type: style.getPropertyValue(\"--motion--type\"),\n velocity: style.getPropertyValue(\"--motion--velocity\"),\n visualDuration: style.getPropertyValue(\"--motion--visual-duration\"),\n };\n return {\n bounce: properties.bounce ? parseFloat(properties.bounce) : undefined,\n bounceDamping: properties.bounceDamping\n ? parseFloat(properties.bounceDamping)\n : undefined,\n bounceStiffness: properties.bounceStiffness\n ? parseFloat(properties.bounceStiffness)\n : undefined,\n duration: properties.duration ? parseFloat(properties.duration) : undefined,\n damping: properties.damping ? parseFloat(properties.damping) : undefined,\n delay: properties.delay ? parseFloat(properties.delay) : undefined,\n ease: (properties.ease ? properties.ease : undefined) as Easing,\n elapsed: properties.elapsed ? parseFloat(properties.elapsed) : undefined,\n mass: properties.mass ? parseFloat(properties.mass) : undefined,\n max: properties.max ? parseFloat(properties.max) : undefined,\n min: properties.min ? parseFloat(properties.min) : undefined,\n power: properties.power ? parseFloat(properties.power) : undefined,\n repeat: properties.repeat ? parseInt(properties.repeat) : undefined,\n repeatDelay: properties.repeatDelay\n ? parseFloat(properties.repeatDelay)\n : undefined,\n repeatType: (properties.repeatType\n ? properties.repeatType\n : undefined) as RepeatType,\n restDelta: properties.restDelta\n ? parseFloat(properties.restDelta)\n : undefined,\n restSpeed: properties.restSpeed\n ? parseFloat(properties.restSpeed)\n : undefined,\n startTime: properties.startTime\n ? parseFloat(properties.startTime)\n : undefined,\n timeConstant: properties.timeConstant\n ? parseFloat(properties.timeConstant)\n : undefined,\n type: (properties.type\n ? properties.type\n : undefined) as AnimationGeneratorType,\n velocity: properties.velocity ? parseFloat(properties.velocity) : undefined,\n visualDuration: properties.visualDuration\n ? parseFloat(properties.visualDuration)\n : undefined,\n } satisfies Transition;\n}\n","export function toHyphenated(str: string): string {\n return str\n .replace(/([A-Z])/g, \"-$1\") // Insert hyphen before uppercase letters\n .toLowerCase(); // Convert the entire string to lowercase\n}\n","import {\n register,\n type ComponentType as mComponentType,\n type ICustomElement,\n type FunctionComponent,\n type ComponentOptions,\n noShadowDOM,\n compose,\n} from \"component-register\";\nimport { createRoot, createSignal, onCleanup } from \"solid-js\";\nimport { insert } from \"solid-js/web\";\n\nexport type ComponentType<T> = mComponentType<T>;\n\ntype CorrectComponentOptions = { element: HTMLElement & ICustomElement };\n\nexport type CorrectComponentType<T> = (\n props: T,\n options: CorrectComponentOptions,\n) => unknown;\n\nfunction createProps<T extends object>(raw: T) {\n const keys = Object.keys(raw) as (keyof T)[];\n const props = {};\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (typeof key === \"undefined\") continue;\n const [get, set] = createSignal(Reflect.get(raw, key));\n Object.defineProperty(props, key, {\n get,\n set(v) {\n set(() => v);\n },\n });\n }\n return props as T;\n}\n\nfunction lookupContext(el: ICustomElement & { _$owner?: any }) {\n if (el.assignedSlot && el.assignedSlot._$owner)\n return el.assignedSlot._$owner;\n let next: Element & { _$owner?: any } = el.parentNode;\n while (\n next &&\n !next._$owner &&\n !(\n next.assignedSlot &&\n (next.assignedSlot as Element & { _$owner?: any })._$owner\n )\n )\n next = next.parentNode as Element;\n return next && next.assignedSlot\n ? (next.assignedSlot as Element & { _$owner?: any })._$owner\n : el._$owner;\n}\n\nfunction withSolid<T extends object>(\n ComponentType: ComponentType<T>,\n): ComponentType<T> {\n return (rawProps: T, options: ComponentOptions) => {\n const { element } = options as {\n element: ICustomElement & { _$owner?: any };\n };\n return createRoot((dispose: Function) => {\n const props = createProps<T>(rawProps);\n\n element.addPropertyChangedCallback(\n (key: string, val: any) => (props[key as keyof T] = val),\n );\n element.addReleaseCallback(() => {\n element.renderRoot.textContent = \"\";\n dispose();\n });\n\n const comp = (ComponentType as FunctionComponent<T>)(props as T, options);\n return insert(element.renderRoot, comp);\n }, lookupContext(element));\n };\n}\n\nfunction withNoShadowDOM<T extends object>(\n Component: ComponentType<T> = () => {},\n) {\n return (props: T, options: ComponentOptions) => {\n noShadowDOM();\n const comp = (Component as FunctionComponent<T>)(props, options);\n return comp;\n };\n}\n\nexport function customElement<T extends object>(\n tagName: string,\n props: T,\n Component: ComponentType<T> = () => {},\n ...rest: ((C: ComponentType<T>) => ComponentType<T>)[]\n) {\n return compose(register(tagName, props), withSolid, ...rest)(Component);\n}\n\nfunction isConstructable(fn: unknown): fn is new (...args: any[]) => any {\n if (typeof fn !== \"function\") return false;\n\n try {\n Reflect.construct(String, [], fn as Function);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function customShadowlessElement<T extends object>(\n tagName: string,\n props: T,\n Component: ComponentType<T> = () => {},\n ...rest: ((C: ComponentType<T>) => ComponentType<T>)[]\n) {\n return compose(\n register(tagName, props),\n withNoShadowDOM,\n withSolid,\n ...rest,\n )((...args) => {\n onCleanup(() => {\n const [_, { element }] = args;\n element.dispatchEvent(new CustomEvent(\"bryt-designs:element-destroyed\"));\n });\n if (isConstructable(Component)) {\n return new Component(...args);\n }\n return Component(...args);\n });\n}\n\nexport const correctElementType = <T>(\n component: CorrectComponentType<T>,\n): ComponentType<T> => {\n return (props: T, options) => {\n return component(props, options as CorrectComponentOptions);\n };\n};\n","import type { ICustomElement } from \"component-register\";\nexport function isCustomElement(\n element: any,\n): element is ICustomElement & HTMLElement {\n return Reflect.has(element, \"__initialized\");\n}\n","import type { createContext } from \"component-register\";\n\nexport function getContextFromProvider<T>(\n context: ReturnType<typeof createContext>,\n element: Element,\n) {\n const ctxSymbol = Object.getOwnPropertySymbols(element).find(\n (s) => s.description === \"element-context\",\n );\n if (!ctxSymbol) {\n throw new Error(\"No context provider found for the provided element\");\n }\n // @ts-ignore\n const contexts = element[ctxSymbol];\n return contexts[context.id] as T;\n}\n","export function checkLoaded() {\n return (\n document.readyState === \"complete\" ||\n //@ts-ignore\n document.readyState === \"loaded\" ||\n document.readyState === \"interactive\"\n );\n}\n","import { checkLoaded } from \"./checkLoaded.js\";\n\nexport function invokeOnLoaded(\n fn: () => void,\n { signal }: { signal?: AbortSignal },\n) {\n if (checkLoaded()) {\n const id = setTimeout(() => fn());\n signal?.addEventListener(\"abort\", () => clearTimeout(id), {\n once: true,\n });\n return;\n }\n window.addEventListener(\"DOMContentLoaded\", fn, { signal, once: true });\n return;\n}\n","import type { createContext } from \"component-register\";\nimport { getContextFromProvider } from \"./getContextFromProvider.js\";\nimport { invokeOnLoaded } from \"./invokeOnLoaded.js\";\nimport {\n type Accessor,\n createEffect,\n createRoot,\n on,\n onCleanup,\n} from \"solid-js\";\n\n/**\n * Creates a HOF to ensure that a given callback is invoked only after the context for the element is ready.\n * */\n\nexport function createWithElementContext<\n Context extends ReturnType<typeof createContext>,\n ContextState = null,\n>(context: Context) {\n return function <D extends any>(\n target: string | Accessor<string> | Accessor<() => Element>,\n dependencies: Accessor<D> = () => null as D,\n cb: (context: ContextState, dependencies: D) => void | (() => void),\n ) {\n createEffect(\n on(\n () => {\n const t = typeof target === \"string\" ? target : target();\n return {\n target: t,\n dependencies: dependencies(),\n };\n },\n ({ target: _target, dependencies }) => {\n const controller = new AbortController();\n invokeOnLoaded(\n () => {\n let target: Element | null =\n _target instanceof Element ? _target : null;\n try {\n if (typeof _target === \"string\")\n target = document.querySelector(_target);\n else if (typeof _target === \"function\") target = _target();\n } catch (e) {\n e;\n }\n if (!target && typeof _target === \"string\")\n return console.warn(`Target element not found!`, {\n target: _target,\n });\n else if (!target)\n return console.warn(`Target element not found!`);\n\n target.addEventListener(\n \"bryt-designs:element-destroyed\",\n () => {\n controller.abort(\"Context element destroyed\");\n },\n { once: true },\n );\n\n createRoot((dispose) => {\n const c = getContextFromProvider(context, target);\n\n const unsub = cb(c as ContextState, dependencies);\n\n onCleanup(() => {\n if (typeof unsub === \"function\") unsub();\n });\n\n controller.signal.addEventListener(\"abort\", dispose, {\n once: true,\n });\n });\n },\n { signal: controller.signal },\n );\n\n // abort controller when dependencies change\n onCleanup(() => {\n controller.abort(\"Dependencies changed!\");\n });\n },\n ),\n );\n };\n}\n","export type Format =\n | \"currency\"\n | \"number\"\n | \"boolean\"\n | \"invert_boolean\"\n | string;\n\nexport function formatValue(format: Format, value: unknown) {\n switch (format) {\n case \"currency\":\n if (typeof value === \"number\") return window.Shopify.formatMoney(value);\n if (typeof value === \"string\")\n return window.Shopify.formatMoney(parseFloat(value));\n console.warn(\"formatValue: Unsupported value type for currency format.\");\n return window.Shopify.formatMoney(0);\n case \"number\":\n return Number(value);\n case \"boolean\":\n return Boolean(value);\n case \"invert_boolean\":\n return !Boolean(value);\n default:\n return value as any;\n }\n}\n\ndeclare global {\n interface Window {\n Shopify: {\n formatMoney(value: number, currency?: string): string;\n };\n }\n}\n","export function getTemplateContent(element: HTMLElement, state: string) {\n const tmpl = element.querySelector(\n `template[${state}]`,\n ) as HTMLTemplateElement;\n if (!tmpl) return null;\n return tmpl.content;\n}\n","import { ReactiveSet } from \"@solid-primitives/set\";\nimport type { ICustomElement } from \"component-register\";\nimport { createEffect, createRoot } from \"solid-js\";\nimport {\n enableBodyScroll as _enableBodyScroll,\n disableBodyScroll as _disableBodyScroll,\n clearAllBodyScrollLocks as _clearAllBodyScrollLocks,\n type BodyScrollOptions,\n} from \"body-scroll-lock-upgrade\";\n\nconst activeElements = new ReactiveSet<ICustomElement & HTMLElement>();\n\ncreateRoot(() => {\n createEffect(() => {\n if (activeElements.size === 0) {\n _clearAllBodyScrollLocks();\n }\n });\n});\n\nexport const disableBodyScroll = (\n element: ICustomElement & HTMLElement,\n options?: BodyScrollOptions,\n) => {\n _disableBodyScroll(element, options);\n activeElements.add(element);\n};\n\nexport const enableBodyScroll = (element: ICustomElement & HTMLElement) => {\n _enableBodyScroll(element);\n activeElements.delete(element);\n};\n","export type Path<T> = T extends readonly (infer U)[]\n ? `${number}` | `${number}.${Path<U>}` // Allows indexing into readonly arrays\n : T extends object\n ? {\n [K in keyof T & (string | number)]: T[K] extends object | any[]\n ? `${K}` | `${K}.${Path<T[K]>}`\n : `${K}`;\n }[keyof T & (string | number)]\n : never;\n\nexport type PathValue<\n T,\n P extends string,\n> = P extends `${infer Key}.${infer Rest}`\n ? Key extends keyof T\n ? PathValue<T[Key], Rest>\n : Key extends `${number}`\n ? T extends readonly (infer U)[]\n ? PathValue<U, Rest>\n : undefined\n : undefined\n : P extends keyof T\n ? T[P]\n : P extends `${number}`\n ? T extends readonly (infer U)[]\n ? U\n : undefined\n : undefined;\n\nexport function getValueFromPath<T, P extends Path<T>>(\n obj: T,\n path: P\n): PathValue<T, P> {\n return path.split(\".\").reduce<any>((acc, key) => {\n if (acc === null || acc === undefined) return undefined;\n\n const isArrayIndex = !isNaN(Number(key)) && key.trim() !== \"\";\n if (Array.isArray(acc) && isArrayIndex) {\n return acc[Number(key)];\n }\n\n return acc[key];\n }, obj) as PathValue<T, P>;\n}\n","import type { Path, PathValue } from \"./internal\";\nimport { createMemo, type Accessor } from \"solid-js\";\nimport {\n createContext,\n consume as _consume,\n provide as _provide,\n type ICustomElement,\n} from \"component-register\";\n\nimport { getValueFromPath } from \"./internal/index.js\";\nimport { formatValue, type Format } from \"../utils/index.js\";\n\ntype WalkableNode = Parameters<typeof _provide>[2];\n\nexport type { Path, PathValue };\n\nexport const makeFullPropertyPathContext = <RootData = any>() => {\n type FullPropertyPathContextType = ReturnType<\n typeof createFullPathPropertyContext\n >;\n\n type Options = {\n path: Accessor<Path<RootData>>;\n element: HTMLElement & ICustomElement;\n };\n function createFullPathPropertyContext(\n options: Options,\n ): Accessor<Path<RootData>> {\n return options.path;\n }\n\n const Context = createContext(createFullPathPropertyContext);\n\n function provide({\n element,\n path,\n }: {\n element: WalkableNode;\n path: Accessor<Path<RootData>>;\n }): FullPropertyPathContextType {\n return _provide(Context, { path }, element);\n }\n\n function useFullPropertyPathContext(context: FullPropertyPathContextType) {\n return context;\n }\n\n function usePath(props: {\n element: HTMLElement & ICustomElement;\n path?: Accessor<Path<RootData>>;\n }): Accessor<Path<RootData>> {\n const context = _consume(Context, props.element);\n const basePath = useFullPropertyPathContext(context);\n return createMemo(() => {\n if (typeof basePath !== \"function\" && typeof props.path === \"function\") {\n return props.path();\n } else if (\n typeof basePath === \"function\" &&\n typeof props.path !== \"function\"\n ) {\n return basePath();\n } else if (\n typeof basePath === \"function\" &&\n typeof props.path === \"function\"\n ) {\n return `${basePath()}.${props.path()}`;\n }\n return \"\";\n }) as Accessor<Path<RootData>>;\n }\n\n type PathValueOptions<P extends Path<RootData>> = {\n path: Accessor<P>;\n data: Accessor<PathValue<RootData, P>>;\n };\n\n function usePathValue<P extends Path<RootData>>(\n options: PathValueOptions<P>,\n ): Accessor<PathValue<RootData, P>> {\n return createMemo(() => {\n const data = options.data();\n if (typeof options.path !== \"function\") return data;\n const path = options.path();\n if (!path) return data;\n const v = getValueFromPath(data, path as any);\n if (v === undefined || v === null) return null;\n return v;\n }) as Accessor<PathValue<RootData, P>>;\n }\n\n type FormmatedValueOptions<P extends Path<RootData>> = {\n path: Accessor<P>;\n format?: Format;\n data: Accessor<PathValue<RootData, P>>;\n };\n\n function useFormattedValue<P extends Path<RootData>>(\n options: FormmatedValueOptions<P>,\n ): Accessor<PathValue<RootData, P>> {\n const value = usePathValue({ path: options.path, data: options.data });\n\n const formattedValue = createMemo(() => {\n const v = value();\n if (v === null) return null;\n if (\n typeof v === \"string\" ||\n typeof v === \"number\" ||\n typeof v === \"boolean\"\n ) {\n return formatValue(options.format || \"\", v);\n }\n console.warn(\n `useFormattedValue: Unsupported value type. Expected string, number, or boolean. Received: ${typeof v}.`,\n v,\n );\n return null;\n });\n\n return formattedValue as Accessor<PathValue<RootData, P>>;\n }\n\n return {\n provide,\n usePath,\n usePathValue,\n useFormattedValue,\n };\n};\n","import type { BaseOptions } from \"./internal/types\";\nimport type { CorrectComponentType, Format } from \"../utils/index\";\nimport type { Path } from \"./internal\";\n\nimport html from \"solid-js/html\";\nimport { Show } from \"solid-js\";\n\nexport const makePathDataComponent = <RootData = any, Props = any>({\n useRootData,\n hooks,\n name,\n}: BaseOptions<RootData>): CorrectComponentType<\n { propertyName: Path<RootData>; format?: Format } & Props\n> => {\n const { usePath, useFormattedValue } = hooks;\n return (props, { element }) => {\n if (!props.propertyName)\n return console.warn(\n `${name}: No property-name attribute provided.`,\n element,\n );\n const data = useRootData(element);\n const fullPath = usePath({\n element,\n path: () => props.propertyName,\n });\n const formattedValue = useFormattedValue({\n get format() {\n return props.format;\n },\n path: fullPath,\n data: data as any,\n });\n return html`\n <${Show} when=${() => formattedValue() !== null}> ${formattedValue} <//>\n `;\n };\n};\n","import type { CorrectComponentType, Format } from \"../utils/index\";\nimport { type Path } from \"./makePathContextHooks\";\nimport type { BaseOptions } from \"./internal/types\";\n\nimport html from \"solid-js/html\";\nimport { Show, For, createMemo, type Accessor } from \"solid-js\";\nimport { getTemplateContent } from \"../utils/index.js\";\n\nexport const makePathDataArrayComponent = <RootData = any, Props = any>({\n useRootData,\n hooks,\n name,\n arrayItemName,\n}: BaseOptions<RootData> & { arrayItemName: string }): CorrectComponentType<\n {\n arrayPath: Path<RootData>;\n format?: Format;\n } & Props\n> => {\n const { usePath, provide, usePathValue } = hooks;\n return (props, { element }) => {\n const itemTemplate = getTemplateContent(element, \"item\");\n if (!itemTemplate)\n return console.warn(\n `${name}: No template found with a property of 'item'.`,\n element,\n );\n if (!props.arrayPath)\n return console.warn(`${name}: No array path provided.`, element);\n\n const data = useRootData(element);\n\n const fullPath = usePath({\n element,\n path: () => props.arrayPath,\n });\n\n provide({\n element,\n path: fullPath,\n });\n\n const value = usePathValue({\n path: fullPath,\n data: data as any,\n });\n\n const arrayValue = createMemo(() => {\n const v = value();\n\n if (!v) {\n console.warn(\n `${name}: value is null or undefined at path ${fullPath()}`,\n element,\n );\n return null;\n }\n\n if (!Array.isArray(v)) {\n console.warn(\n `${name}: value is not an array at path ${fullPath()}`,\n element,\n );\n return null;\n }\n\n return v;\n });\n element.replaceChildren(...[]);\n\n return html`\n <${Show} when=${() => arrayValue() && arrayValue()!.length > 0}>\n <${For} each=${arrayValue}>\n ${(_: any, idx: Accessor<number>) => html`\n <${arrayItemName} item-index=${() => `${idx()}`}>\n ${() => Array.from(itemTemplate.cloneNode(true).childNodes)}\n </${arrayItemName}>\n `}\n <//>\n <//>\n `;\n };\n};\n","import type { CorrectComponentType } from \"../utils/index\";\nimport { type Path } from \"./makePathContextHooks\";\nimport type { BaseOptions } from \"./internal/types\";\n\nexport const makePathDataArrayItemComponent = <\n RootData = any,\n Props extends { itemIndex: Path<RootData> } = any,\n>({\n hooks,\n name,\n}: BaseOptions<RootData, Props>): CorrectComponentType<Props> => {\n const { usePath, provide } = hooks;\n return (props, { element }) => {\n if (!props.itemIndex)\n return console.warn(`${name}: No path attribute provided.`);\n\n const fullPath = usePath({\n path: () => props.itemIndex,\n element,\n });\n\n provide({\n element,\n path: fullPath,\n });\n };\n};\n"]}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
// src/promise/abortablePromise.ts
|
|
2
|
-
function abortablePromise(promise, signal) {
|
|
3
|
-
if (signal.aborted) {
|
|
4
|
-
return new Promise((_, rej) => rej(signal.reason));
|
|
5
|
-
}
|
|
6
|
-
return new Promise(async (res, rej) => {
|
|
7
|
-
signal.addEventListener(
|
|
8
|
-
"abort",
|
|
9
|
-
() => {
|
|
10
|
-
rej(signal.reason);
|
|
11
|
-
},
|
|
12
|
-
{ once: true }
|
|
13
|
-
);
|
|
14
|
-
promise.then(res);
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export { abortablePromise };
|
|
19
|
-
//# sourceMappingURL=index.js.map
|
|
20
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/promise/abortablePromise.ts"],"names":[],"mappings":";AAAO,SAAS,gBAAA,CAAiB,SAAuB,MAAqB,EAAA;AAC3E,EAAA,IAAI,OAAO,OAAS,EAAA;AAClB,IAAO,OAAA,IAAI,QAAQ,CAAC,CAAA,EAAG,QAAQ,GAAI,CAAA,MAAA,CAAO,MAAM,CAAC,CAAA;AAAA;AAGnD,EAAA,OAAO,IAAI,OAAA,CAAQ,OAAO,GAAA,EAAK,GAAQ,KAAA;AACrC,IAAO,MAAA,CAAA,gBAAA;AAAA,MACL,OAAA;AAAA,MACA,MAAM;AACJ,QAAA,GAAA,CAAI,OAAO,MAAM,CAAA;AAAA,OACnB;AAAA,MACA,EAAE,MAAM,IAAK;AAAA,KACf;AACA,IAAA,OAAA,CAAQ,KAAK,GAAG,CAAA;AAAA,GACjB,CAAA;AACH","file":"index.js","sourcesContent":["export function abortablePromise(promise: Promise<any>, signal: AbortSignal) {\n if (signal.aborted) {\n return new Promise((_, rej) => rej(signal.reason));\n }\n\n return new Promise(async (res, rej) => {\n signal.addEventListener(\n \"abort\",\n () => {\n rej(signal.reason);\n },\n { once: true },\n );\n promise.then(res);\n });\n}\n"]}
|