@agnos-ui/core 0.10.0-next.2 → 0.10.0-next.3
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/{accordion-DqnKGmbS.js → accordion-47EpOD36.js} +2 -2
- package/{accordion-DRIm0xHf.cjs → accordion-nxveC0GZ.cjs} +2 -2
- package/{alert-B-jQDQcB.cjs → alert-AhaliJ17.cjs} +1 -1
- package/{alert-gGz2CDS9.js → alert-anMaigvi.js} +1 -1
- package/{collapse-BV4kD3j9.js → collapse-CrfvGo_T.js} +2 -2
- package/{collapse-gLiT080Y.cjs → collapse-Da_27YUU.cjs} +2 -2
- package/{common-D3QcdJ6S.cjs → common-B5jS-Ih_.cjs} +1 -1
- package/{common-DK0ADNTX.js → common-CCxNtFNM.js} +1 -1
- package/components/accordion/index.cjs +1 -1
- package/components/accordion/index.js +1 -1
- package/components/alert/index.cjs +1 -1
- package/components/alert/index.js +1 -1
- package/components/carousel/index.cjs +2 -2
- package/components/carousel/index.js +2 -2
- package/components/collapse/index.cjs +1 -1
- package/components/collapse/index.js +1 -1
- package/components/drawer/drawer.d.ts +32 -25
- package/components/drawer/index.cjs +1 -1
- package/components/drawer/index.js +1 -1
- package/components/modal/index.cjs +1 -1
- package/components/modal/index.js +1 -1
- package/components/pagination/index.cjs +1 -1
- package/components/pagination/index.js +1 -1
- package/components/progressbar/index.cjs +1 -1
- package/components/progressbar/index.js +1 -1
- package/components/rating/index.cjs +1 -1
- package/components/rating/index.js +1 -1
- package/components/select/index.cjs +1 -1
- package/components/select/index.js +1 -1
- package/components/slider/index.cjs +1 -1
- package/components/slider/index.js +1 -1
- package/components/toast/index.cjs +1 -1
- package/components/toast/index.js +1 -1
- package/components/tree/index.cjs +1 -1
- package/components/tree/index.js +1 -1
- package/{dom-C2gi9OCP.cjs → dom-Cm9_uROp.cjs} +76 -6
- package/{dom-Bcg9ORcA.js → dom-DD1hAVZy.js} +76 -6
- package/drawer-Caz4Uypu.js +291 -0
- package/{drawer-DP7UPojk.cjs → drawer-DOi0TqZC.cjs} +131 -91
- package/index.cjs +16 -14
- package/index.js +21 -19
- package/{modal-DiXZXYjR.cjs → modal-B_3Uxplo.cjs} +5 -5
- package/{modal-CAvQW-vo.js → modal-cKd3qUn1.js} +5 -5
- package/package.json +1 -1
- package/{pagination-DvZ2rLsz.cjs → pagination-2Vor6JPZ.cjs} +2 -2
- package/{pagination-BKbMROV6.js → pagination-DlOyP_2C.js} +2 -2
- package/{progressbar-D8zIcm9n.js → progressbar-B5g76eMV.js} +2 -2
- package/{progressbar-i9xfAxb7.cjs → progressbar-DyBRINco.cjs} +2 -2
- package/{rating-DmG4oUkr.cjs → rating-C0y1j4SC.cjs} +2 -2
- package/{rating-DEXTGWCU.js → rating-C7C4-p4B.js} +2 -2
- package/{select-MFjAnIt7.cjs → select-Dhsb9msC.cjs} +1 -1
- package/{select-Bw68Xdu5.js → select-nnl00UWY.js} +1 -1
- package/services/floatingUI.cjs +1 -1
- package/services/floatingUI.js +1 -1
- package/services/focusElement.cjs +1 -1
- package/services/focusElement.js +1 -1
- package/services/focustrack.cjs +1 -1
- package/services/focustrack.js +1 -1
- package/services/matchMedia.cjs +1 -1
- package/services/matchMedia.js +1 -1
- package/services/navManager.cjs +1 -1
- package/services/navManager.js +1 -1
- package/services/pointerdownPosition.cjs +60 -0
- package/services/pointerdownPosition.d.ts +42 -0
- package/services/pointerdownPosition.js +60 -0
- package/services/portal.cjs +1 -1
- package/services/portal.js +1 -1
- package/services/resizeObserver.cjs +40 -20
- package/services/resizeObserver.d.ts +10 -2
- package/services/resizeObserver.js +41 -21
- package/services/siblingsInert.cjs +1 -1
- package/services/siblingsInert.js +1 -1
- package/services/transitions/baseTransitions.cjs +2 -2
- package/services/transitions/baseTransitions.js +2 -2
- package/services/transitions/collapse.cjs +11 -15
- package/services/transitions/collapse.js +11 -15
- package/services/transitions/cssTransitions.cjs +1 -1
- package/services/transitions/cssTransitions.js +1 -1
- package/services/transitions/simpleClassTransition.cjs +1 -1
- package/services/transitions/simpleClassTransition.js +1 -1
- package/{slider-Cx50Eghd.js → slider-B4WrdTeE.js} +121 -170
- package/{slider-Dl4Trh32.cjs → slider-DTO58syz.cjs} +120 -169
- package/{toaster-_p1GTtHI.js → toaster-CRPErgI2.js} +3 -3
- package/{toaster-UDglac7x.cjs → toaster-CT148JSJ.cjs} +3 -3
- package/{tree-rGHtmCnS.cjs → tree-C4l2Wqny.cjs} +2 -2
- package/{tree-DV0tfPlZ.js → tree-CHpFqJPx.js} +2 -2
- package/types.cjs +2 -2
- package/types.d.ts +22 -3
- package/types.js +2 -2
- package/utils/directive.cjs +1 -1
- package/utils/directive.d.ts +2 -2
- package/utils/directive.js +1 -1
- package/utils/internal/ssrHTMLElement.d.ts +7 -1
- package/utils/stores.cjs +1 -1
- package/utils/stores.js +1 -1
- package/utils/writables.cjs +2 -1
- package/utils/writables.d.ts +7 -0
- package/utils/writables.js +6 -5
- package/{writables-DcGT98a7.cjs → writables-Dt68gADJ.cjs} +4 -0
- package/{writables-e0tyaQpe.js → writables-Is1bF1Vt.js} +10 -6
- package/drawer-D5SO73ew.js +0 -251
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
import { computed, asWritable, writable, untrack, readable } from "@amadeus-it-group/tansu";
|
|
2
|
+
import { focusElement } from "./services/focusElement.js";
|
|
3
|
+
import { createPointerdownPositionDirective } from "./services/pointerdownPosition.js";
|
|
4
|
+
import { portal } from "./services/portal.js";
|
|
5
|
+
import { siblingsInert } from "./services/siblingsInert.js";
|
|
6
|
+
import { createTransition } from "./services/transitions/baseTransitions.js";
|
|
7
|
+
import { a as bindDirective, l as createBrowserStoreDirective, n as mergeDirectives, p as createAttributesDirective, d as directiveSubscribe, i as isBrowserHTMLElement } from "./dom-DD1hAVZy.js";
|
|
8
|
+
import { noop } from "./utils/func.js";
|
|
9
|
+
import { r as removeScrollbars, a as revertScrollbars } from "./scrollbars-CcxSrnCx.js";
|
|
10
|
+
import { writablesForProps, bindableProp, stateStores, true$ } from "./utils/stores.js";
|
|
11
|
+
import { createWidgetFactory } from "./utils/widget.js";
|
|
12
|
+
import { g as typeNumberOrNull, c as typeBoolean, h as typeFunction, i as typeHTMLElementOrNull, e as typeString } from "./writables-Is1bF1Vt.js";
|
|
13
|
+
function getDrawerDefaultConfig() {
|
|
14
|
+
return {
|
|
15
|
+
...defaultDrawerConfig
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
const defaultDrawerConfig = {
|
|
19
|
+
animated: true,
|
|
20
|
+
ariaDescribedBy: "",
|
|
21
|
+
ariaLabelledBy: "",
|
|
22
|
+
backdropClass: "",
|
|
23
|
+
backdropTransition: noop,
|
|
24
|
+
className: "w-full",
|
|
25
|
+
visible: false,
|
|
26
|
+
container: typeof window !== "undefined" ? document.body : null,
|
|
27
|
+
transition: noop,
|
|
28
|
+
verticalTransition: noop,
|
|
29
|
+
onHidden: noop,
|
|
30
|
+
onShown: noop,
|
|
31
|
+
onSizeChange: noop,
|
|
32
|
+
onVisibleChange: noop,
|
|
33
|
+
onMinimizedChange: noop,
|
|
34
|
+
onMaximizedChange: noop,
|
|
35
|
+
onResizingChange: noop,
|
|
36
|
+
resizable: false,
|
|
37
|
+
backdrop: true,
|
|
38
|
+
bodyScroll: false,
|
|
39
|
+
size: null
|
|
40
|
+
};
|
|
41
|
+
const configValidator = {
|
|
42
|
+
animated: typeBoolean,
|
|
43
|
+
ariaDescribedBy: typeString,
|
|
44
|
+
ariaLabelledBy: typeString,
|
|
45
|
+
backdropClass: typeString,
|
|
46
|
+
backdropTransition: typeFunction,
|
|
47
|
+
className: typeString,
|
|
48
|
+
visible: typeBoolean,
|
|
49
|
+
transition: typeFunction,
|
|
50
|
+
verticalTransition: typeFunction,
|
|
51
|
+
container: typeHTMLElementOrNull,
|
|
52
|
+
onHidden: typeFunction,
|
|
53
|
+
onShown: typeFunction,
|
|
54
|
+
onSizeChange: typeFunction,
|
|
55
|
+
onVisibleChange: typeFunction,
|
|
56
|
+
onMinimizedChange: typeFunction,
|
|
57
|
+
onMaximizedChange: typeFunction,
|
|
58
|
+
onResizingChange: typeFunction,
|
|
59
|
+
resizable: typeBoolean,
|
|
60
|
+
backdrop: typeBoolean,
|
|
61
|
+
bodyScroll: typeBoolean,
|
|
62
|
+
size: typeNumberOrNull
|
|
63
|
+
};
|
|
64
|
+
const createDrawer = createWidgetFactory("drawer", (config) => {
|
|
65
|
+
const [
|
|
66
|
+
{
|
|
67
|
+
backdrop$,
|
|
68
|
+
backdropTransition$,
|
|
69
|
+
backdropClass$,
|
|
70
|
+
bodyScroll$,
|
|
71
|
+
transition$,
|
|
72
|
+
verticalTransition$,
|
|
73
|
+
visible$: requestedVisible$,
|
|
74
|
+
container$,
|
|
75
|
+
className$,
|
|
76
|
+
size$: _dirtySize$,
|
|
77
|
+
animated$,
|
|
78
|
+
ariaDescribedBy$,
|
|
79
|
+
ariaLabelledBy$,
|
|
80
|
+
onHidden$,
|
|
81
|
+
onShown$,
|
|
82
|
+
onSizeChange$,
|
|
83
|
+
onVisibleChange$,
|
|
84
|
+
onMinimizedChange$,
|
|
85
|
+
onMaximizedChange$,
|
|
86
|
+
onResizingChange$,
|
|
87
|
+
...stateProps
|
|
88
|
+
},
|
|
89
|
+
patch
|
|
90
|
+
] = writablesForProps(defaultDrawerConfig, config, configValidator);
|
|
91
|
+
const size$ = bindableProp(_dirtySize$, onSizeChange$, (value) => value ? Math.round(value) : value);
|
|
92
|
+
const isVertical$ = computed(() => {
|
|
93
|
+
const isVertical = ["block-start", "block-end"].some((placement) => className$().includes(placement));
|
|
94
|
+
return isVertical;
|
|
95
|
+
});
|
|
96
|
+
const transition = createTransition({
|
|
97
|
+
props: {
|
|
98
|
+
animated: animated$,
|
|
99
|
+
animatedOnInit: animated$,
|
|
100
|
+
transition: asWritable(computed(() => isVertical$() ? verticalTransition$() : transition$())),
|
|
101
|
+
visible: requestedVisible$,
|
|
102
|
+
onVisibleChange: onVisibleChange$,
|
|
103
|
+
onHidden: onHidden$,
|
|
104
|
+
onShown: onShown$
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
const drawerPortalDirective = bindDirective(
|
|
108
|
+
portal,
|
|
109
|
+
computed(() => ({ container: container$() }))
|
|
110
|
+
);
|
|
111
|
+
const { directive: drawerElementDirective, element$: drawerElement$ } = createBrowserStoreDirective();
|
|
112
|
+
const drawerAttributeDirective = mergeDirectives(
|
|
113
|
+
drawerElementDirective,
|
|
114
|
+
createAttributesDirective(() => ({
|
|
115
|
+
attributes: {
|
|
116
|
+
class: className$,
|
|
117
|
+
role: readable("dialog"),
|
|
118
|
+
"aria-describedby": ariaDescribedBy$,
|
|
119
|
+
"aria-labelledby": ariaLabelledBy$,
|
|
120
|
+
"aria-modal": readable("true"),
|
|
121
|
+
tabIndex: readable("-1")
|
|
122
|
+
},
|
|
123
|
+
styles: {
|
|
124
|
+
position: computed(() => {
|
|
125
|
+
const container = container$();
|
|
126
|
+
return container && isBrowserHTMLElement(container) && container !== document.body ? "relative" : "fixed";
|
|
127
|
+
}),
|
|
128
|
+
outline: readable("none")
|
|
129
|
+
},
|
|
130
|
+
events: {
|
|
131
|
+
keydown: async (e) => {
|
|
132
|
+
if (e.key === "Escape") {
|
|
133
|
+
await transition.api.hide();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}))
|
|
138
|
+
);
|
|
139
|
+
const backdropTransition = createTransition({
|
|
140
|
+
props: {
|
|
141
|
+
animated: animated$,
|
|
142
|
+
transition: backdropTransition$
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
const backdropPortalDirective = bindDirective(
|
|
146
|
+
portal,
|
|
147
|
+
computed(() => {
|
|
148
|
+
const container = container$();
|
|
149
|
+
const element = container ? transition.stores.element$() : void 0;
|
|
150
|
+
return {
|
|
151
|
+
container,
|
|
152
|
+
insertBefore: element?.parentElement === container ? element : void 0
|
|
153
|
+
};
|
|
154
|
+
})
|
|
155
|
+
);
|
|
156
|
+
const backdropHidden$ = computed(() => {
|
|
157
|
+
if (!bodyScroll$()) {
|
|
158
|
+
if (hidden$()) {
|
|
159
|
+
revertScrollbars();
|
|
160
|
+
} else {
|
|
161
|
+
removeScrollbars();
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return !backdrop$() || hidden$();
|
|
165
|
+
});
|
|
166
|
+
const backdropAttributeDirective = createAttributesDirective(() => ({
|
|
167
|
+
attributes: {
|
|
168
|
+
class: backdropClass$,
|
|
169
|
+
"data-agnos-ignore-inert": true$
|
|
170
|
+
},
|
|
171
|
+
events: {
|
|
172
|
+
click: async () => await transition.api.hide()
|
|
173
|
+
}
|
|
174
|
+
}));
|
|
175
|
+
const direction$ = computed(() => ["inline-start", "block-start"].some((placement) => className$().includes(placement)) ? 1 : -1);
|
|
176
|
+
const isMinimized$ = writable(void 0);
|
|
177
|
+
const isMaximized$ = writable(void 0);
|
|
178
|
+
function setSize(size) {
|
|
179
|
+
const drawerElement = drawerElement$();
|
|
180
|
+
const isVertical = isVertical$();
|
|
181
|
+
size = Math.round(Math.max(0, size));
|
|
182
|
+
drawerElement.style[isVertical ? "height" : "width"] = `${size}px`;
|
|
183
|
+
const elementSize = Math.round(drawerElement[isVertical ? "offsetHeight" : "offsetWidth"]);
|
|
184
|
+
size$.set(elementSize);
|
|
185
|
+
isMinimized$.set(size != null && (size < elementSize || size === 0));
|
|
186
|
+
isMaximized$.set(!!size && size > elementSize);
|
|
187
|
+
return elementSize;
|
|
188
|
+
}
|
|
189
|
+
const splitterDirective = mergeDirectives(
|
|
190
|
+
createPointerdownPositionDirective((event) => {
|
|
191
|
+
const drawerElement = drawerElement$();
|
|
192
|
+
const isVertical = isVertical$();
|
|
193
|
+
const startSize = drawerElement[isVertical ? "offsetHeight" : "offsetWidth"];
|
|
194
|
+
const clientXorY = isVertical ? "clientY" : "clientX";
|
|
195
|
+
const startPos = event[clientXorY];
|
|
196
|
+
const direction = direction$();
|
|
197
|
+
onResizingChange$()(true);
|
|
198
|
+
return {
|
|
199
|
+
onMove(event2) {
|
|
200
|
+
setSize(startSize + direction * (event2[clientXorY] - startPos));
|
|
201
|
+
},
|
|
202
|
+
onEnd() {
|
|
203
|
+
drawerElement.style[isVertical ? "height" : "width"] = "";
|
|
204
|
+
onResizingChange$()(false);
|
|
205
|
+
}
|
|
206
|
+
};
|
|
207
|
+
}),
|
|
208
|
+
createAttributesDirective(() => ({
|
|
209
|
+
events: {
|
|
210
|
+
keydown: (e) => {
|
|
211
|
+
const { key } = e;
|
|
212
|
+
const size = size$() || drawerElement$()?.[isVertical$() ? "offsetHeight" : "offsetWidth"];
|
|
213
|
+
if (size != null) {
|
|
214
|
+
switch (key) {
|
|
215
|
+
case "ArrowLeft":
|
|
216
|
+
case "ArrowDown":
|
|
217
|
+
onResizingChange$()(true);
|
|
218
|
+
setSize(size - 10);
|
|
219
|
+
onResizingChange$()(false);
|
|
220
|
+
break;
|
|
221
|
+
case "ArrowRight":
|
|
222
|
+
case "ArrowUp":
|
|
223
|
+
onResizingChange$()(true);
|
|
224
|
+
setSize(size + 10);
|
|
225
|
+
onResizingChange$()(false);
|
|
226
|
+
break;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}))
|
|
232
|
+
);
|
|
233
|
+
const visible$ = transition.stores.visible$;
|
|
234
|
+
const transitioning$ = computed(() => transition.stores.transitioning$() || backdropTransition.stores.transitioning$());
|
|
235
|
+
const hidden$ = computed(() => !transitioning$() && !visible$());
|
|
236
|
+
const minSizeAction$ = computed(() => {
|
|
237
|
+
const isMinimized = isMinimized$();
|
|
238
|
+
if (isMinimized != null) {
|
|
239
|
+
untrack(() => onMinimizedChange$()(isMinimized));
|
|
240
|
+
}
|
|
241
|
+
});
|
|
242
|
+
const maxSizeAction$ = computed(() => {
|
|
243
|
+
const isMaximized = isMaximized$();
|
|
244
|
+
if (isMaximized != null) {
|
|
245
|
+
untrack(() => onMaximizedChange$()(isMaximized));
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
const action$ = computed(() => {
|
|
249
|
+
minSizeAction$();
|
|
250
|
+
maxSizeAction$();
|
|
251
|
+
});
|
|
252
|
+
const widget = {
|
|
253
|
+
...stateStores({
|
|
254
|
+
...stateProps,
|
|
255
|
+
backdropClass$,
|
|
256
|
+
className$,
|
|
257
|
+
container$,
|
|
258
|
+
size$,
|
|
259
|
+
visible$,
|
|
260
|
+
backdropHidden$,
|
|
261
|
+
hidden$
|
|
262
|
+
}),
|
|
263
|
+
patch,
|
|
264
|
+
api: {
|
|
265
|
+
open: transition.api.show,
|
|
266
|
+
close: transition.api.hide
|
|
267
|
+
},
|
|
268
|
+
directives: {
|
|
269
|
+
drawerPortalDirective,
|
|
270
|
+
drawerDirective: mergeDirectives(
|
|
271
|
+
directiveSubscribe(action$),
|
|
272
|
+
drawerAttributeDirective,
|
|
273
|
+
bindDirective(
|
|
274
|
+
siblingsInert,
|
|
275
|
+
computed(() => !bodyScroll$())
|
|
276
|
+
),
|
|
277
|
+
// This directive must come after the attribute directive, to ensure that all the classes and attributes are applied for the transition
|
|
278
|
+
transition.directives.directive,
|
|
279
|
+
focusElement
|
|
280
|
+
),
|
|
281
|
+
backdropPortalDirective,
|
|
282
|
+
backdropDirective: mergeDirectives(backdropTransition.directives.directive, backdropAttributeDirective),
|
|
283
|
+
splitterDirective
|
|
284
|
+
}
|
|
285
|
+
};
|
|
286
|
+
return widget;
|
|
287
|
+
});
|
|
288
|
+
export {
|
|
289
|
+
createDrawer as c,
|
|
290
|
+
getDrawerDefaultConfig as g
|
|
291
|
+
};
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const tansu = require("@amadeus-it-group/tansu");
|
|
3
|
+
const services_focusElement = require("./services/focusElement.cjs");
|
|
4
|
+
const services_pointerdownPosition = require("./services/pointerdownPosition.cjs");
|
|
3
5
|
const services_portal = require("./services/portal.cjs");
|
|
4
6
|
const services_siblingsInert = require("./services/siblingsInert.cjs");
|
|
5
7
|
const services_transitions_baseTransitions = require("./services/transitions/baseTransitions.cjs");
|
|
6
|
-
const utils_directive = require("./dom-
|
|
8
|
+
const utils_directive = require("./dom-Cm9_uROp.cjs");
|
|
7
9
|
const utils_func = require("./utils/func.cjs");
|
|
8
10
|
const scrollbars = require("./scrollbars-CT87iv_6.cjs");
|
|
9
11
|
const utils_stores = require("./utils/stores.cjs");
|
|
10
12
|
const utils_widget = require("./utils/widget.cjs");
|
|
11
|
-
const utils_writables = require("./writables-
|
|
12
|
-
const services_focusElement = require("./services/focusElement.cjs");
|
|
13
|
+
const utils_writables = require("./writables-Dt68gADJ.cjs");
|
|
13
14
|
function getDrawerDefaultConfig() {
|
|
14
15
|
return {
|
|
15
16
|
...defaultDrawerConfig
|
|
@@ -28,14 +29,15 @@ const defaultDrawerConfig = {
|
|
|
28
29
|
verticalTransition: utils_func.noop,
|
|
29
30
|
onHidden: utils_func.noop,
|
|
30
31
|
onShown: utils_func.noop,
|
|
31
|
-
|
|
32
|
-
height: 200,
|
|
33
|
-
onWidthChange: utils_func.noop,
|
|
34
|
-
onHeightChange: utils_func.noop,
|
|
32
|
+
onSizeChange: utils_func.noop,
|
|
35
33
|
onVisibleChange: utils_func.noop,
|
|
34
|
+
onMinimizedChange: utils_func.noop,
|
|
35
|
+
onMaximizedChange: utils_func.noop,
|
|
36
|
+
onResizingChange: utils_func.noop,
|
|
36
37
|
resizable: false,
|
|
37
38
|
backdrop: true,
|
|
38
|
-
bodyScroll: false
|
|
39
|
+
bodyScroll: false,
|
|
40
|
+
size: null
|
|
39
41
|
};
|
|
40
42
|
const configValidator = {
|
|
41
43
|
animated: utils_writables.typeBoolean,
|
|
@@ -50,14 +52,15 @@ const configValidator = {
|
|
|
50
52
|
container: utils_writables.typeHTMLElementOrNull,
|
|
51
53
|
onHidden: utils_writables.typeFunction,
|
|
52
54
|
onShown: utils_writables.typeFunction,
|
|
53
|
-
|
|
54
|
-
height: utils_writables.typeNumberInRangeFactory(0, Infinity),
|
|
55
|
-
onWidthChange: utils_writables.typeFunction,
|
|
56
|
-
onHeightChange: utils_writables.typeFunction,
|
|
55
|
+
onSizeChange: utils_writables.typeFunction,
|
|
57
56
|
onVisibleChange: utils_writables.typeFunction,
|
|
57
|
+
onMinimizedChange: utils_writables.typeFunction,
|
|
58
|
+
onMaximizedChange: utils_writables.typeFunction,
|
|
59
|
+
onResizingChange: utils_writables.typeFunction,
|
|
58
60
|
resizable: utils_writables.typeBoolean,
|
|
59
61
|
backdrop: utils_writables.typeBoolean,
|
|
60
|
-
bodyScroll: utils_writables.typeBoolean
|
|
62
|
+
bodyScroll: utils_writables.typeBoolean,
|
|
63
|
+
size: utils_writables.typeNumberOrNull
|
|
61
64
|
};
|
|
62
65
|
const createDrawer = utils_widget.createWidgetFactory("drawer", (config) => {
|
|
63
66
|
const [
|
|
@@ -71,71 +74,69 @@ const createDrawer = utils_widget.createWidgetFactory("drawer", (config) => {
|
|
|
71
74
|
visible$: requestedVisible$,
|
|
72
75
|
container$,
|
|
73
76
|
className$,
|
|
77
|
+
size$: _dirtySize$,
|
|
74
78
|
animated$,
|
|
75
79
|
ariaDescribedBy$,
|
|
76
80
|
ariaLabelledBy$,
|
|
77
81
|
onHidden$,
|
|
78
82
|
onShown$,
|
|
79
|
-
|
|
80
|
-
height$: _dirtyHeight$,
|
|
81
|
-
onWidthChange$,
|
|
82
|
-
onHeightChange$,
|
|
83
|
+
onSizeChange$,
|
|
83
84
|
onVisibleChange$,
|
|
85
|
+
onMinimizedChange$,
|
|
86
|
+
onMaximizedChange$,
|
|
87
|
+
onResizingChange$,
|
|
84
88
|
...stateProps
|
|
85
89
|
},
|
|
86
90
|
patch
|
|
87
91
|
] = utils_stores.writablesForProps(defaultDrawerConfig, config, configValidator);
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
92
|
+
const size$ = utils_stores.bindableProp(_dirtySize$, onSizeChange$, (value) => value ? Math.round(value) : value);
|
|
93
|
+
const isVertical$ = tansu.computed(() => {
|
|
94
|
+
const isVertical = ["block-start", "block-end"].some((placement) => className$().includes(placement));
|
|
95
|
+
return isVertical;
|
|
91
96
|
});
|
|
92
97
|
const transition = services_transitions_baseTransitions.createTransition({
|
|
93
98
|
props: {
|
|
94
99
|
animated: animated$,
|
|
95
100
|
animatedOnInit: animated$,
|
|
96
|
-
transition: tansu.asWritable(tansu.computed(() => isVertical() ? verticalTransition$() : transition$())),
|
|
101
|
+
transition: tansu.asWritable(tansu.computed(() => isVertical$() ? verticalTransition$() : transition$())),
|
|
97
102
|
visible: requestedVisible$,
|
|
98
103
|
onVisibleChange: onVisibleChange$,
|
|
99
104
|
onHidden: onHidden$,
|
|
100
105
|
onShown: onShown$
|
|
101
106
|
}
|
|
102
107
|
});
|
|
103
|
-
const width$ = utils_stores.bindableProp(_dirtyWidth$, onWidthChange$);
|
|
104
|
-
const height$ = utils_stores.bindableProp(_dirtyHeight$, onHeightChange$);
|
|
105
108
|
const drawerPortalDirective = utils_directive.bindDirective(
|
|
106
109
|
services_portal.portal,
|
|
107
110
|
tansu.computed(() => ({ container: container$() }))
|
|
108
111
|
);
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
112
|
+
const { directive: drawerElementDirective, element$: drawerElement$ } = utils_directive.createBrowserStoreDirective();
|
|
113
|
+
const drawerAttributeDirective = utils_directive.mergeDirectives(
|
|
114
|
+
drawerElementDirective,
|
|
115
|
+
utils_directive.createAttributesDirective(() => ({
|
|
116
|
+
attributes: {
|
|
117
|
+
class: className$,
|
|
118
|
+
role: tansu.readable("dialog"),
|
|
119
|
+
"aria-describedby": ariaDescribedBy$,
|
|
120
|
+
"aria-labelledby": ariaLabelledBy$,
|
|
121
|
+
"aria-modal": tansu.readable("true"),
|
|
122
|
+
tabIndex: tansu.readable("-1")
|
|
123
|
+
},
|
|
124
|
+
styles: {
|
|
125
|
+
position: tansu.computed(() => {
|
|
126
|
+
const container = container$();
|
|
127
|
+
return container && utils_directive.isBrowserHTMLElement(container) && container !== document.body ? "relative" : "fixed";
|
|
128
|
+
}),
|
|
129
|
+
outline: tansu.readable("none")
|
|
130
|
+
},
|
|
131
|
+
events: {
|
|
132
|
+
keydown: async (e) => {
|
|
133
|
+
if (e.key === "Escape") {
|
|
134
|
+
await transition.api.hide();
|
|
135
|
+
}
|
|
129
136
|
}
|
|
130
137
|
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
const containerDirective = utils_directive.createAttributesDirective(() => ({
|
|
134
|
-
styles: {
|
|
135
|
-
width: tansu.computed(() => isVertical() ? "100%" : `${width$()}px`),
|
|
136
|
-
height: tansu.computed(() => isVertical() ? `${height$()}px` : "100%")
|
|
137
|
-
}
|
|
138
|
-
}));
|
|
138
|
+
}))
|
|
139
|
+
);
|
|
139
140
|
const backdropTransition = services_transitions_baseTransitions.createTransition({
|
|
140
141
|
props: {
|
|
141
142
|
animated: animated$,
|
|
@@ -169,55 +170,93 @@ const createDrawer = utils_widget.createWidgetFactory("drawer", (config) => {
|
|
|
169
170
|
"data-agnos-ignore-inert": utils_stores.true$
|
|
170
171
|
},
|
|
171
172
|
events: {
|
|
172
|
-
click: async () =>
|
|
173
|
-
await transition.api.hide();
|
|
174
|
-
}
|
|
173
|
+
click: async () => await transition.api.hide()
|
|
175
174
|
}
|
|
176
175
|
}));
|
|
177
|
-
const direction = tansu.computed(() => ["inline-start", "block-start"].some((placement) => className$().includes(placement)) ? 1 : -1);
|
|
178
|
-
const
|
|
179
|
-
const
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
176
|
+
const direction$ = tansu.computed(() => ["inline-start", "block-start"].some((placement) => className$().includes(placement)) ? 1 : -1);
|
|
177
|
+
const isMinimized$ = tansu.writable(void 0);
|
|
178
|
+
const isMaximized$ = tansu.writable(void 0);
|
|
179
|
+
function setSize(size) {
|
|
180
|
+
const drawerElement = drawerElement$();
|
|
181
|
+
const isVertical = isVertical$();
|
|
182
|
+
size = Math.round(Math.max(0, size));
|
|
183
|
+
drawerElement.style[isVertical ? "height" : "width"] = `${size}px`;
|
|
184
|
+
const elementSize = Math.round(drawerElement[isVertical ? "offsetHeight" : "offsetWidth"]);
|
|
185
|
+
size$.set(elementSize);
|
|
186
|
+
isMinimized$.set(size != null && (size < elementSize || size === 0));
|
|
187
|
+
isMaximized$.set(!!size && size > elementSize);
|
|
188
|
+
return elementSize;
|
|
189
|
+
}
|
|
190
|
+
const splitterDirective = utils_directive.mergeDirectives(
|
|
191
|
+
services_pointerdownPosition.createPointerdownPositionDirective((event) => {
|
|
192
|
+
const drawerElement = drawerElement$();
|
|
193
|
+
const isVertical = isVertical$();
|
|
194
|
+
const startSize = drawerElement[isVertical ? "offsetHeight" : "offsetWidth"];
|
|
195
|
+
const clientXorY = isVertical ? "clientY" : "clientX";
|
|
196
|
+
const startPos = event[clientXorY];
|
|
197
|
+
const direction = direction$();
|
|
198
|
+
onResizingChange$()(true);
|
|
199
|
+
return {
|
|
200
|
+
onMove(event2) {
|
|
201
|
+
setSize(startSize + direction * (event2[clientXorY] - startPos));
|
|
202
|
+
},
|
|
203
|
+
onEnd() {
|
|
204
|
+
drawerElement.style[isVertical ? "height" : "width"] = "";
|
|
205
|
+
onResizingChange$()(false);
|
|
206
|
+
}
|
|
207
|
+
};
|
|
208
|
+
}),
|
|
209
|
+
utils_directive.createAttributesDirective(() => ({
|
|
210
|
+
events: {
|
|
211
|
+
keydown: (e) => {
|
|
212
|
+
const { key } = e;
|
|
213
|
+
const size = size$() || drawerElement$()?.[isVertical$() ? "offsetHeight" : "offsetWidth"];
|
|
214
|
+
if (size != null) {
|
|
215
|
+
switch (key) {
|
|
216
|
+
case "ArrowLeft":
|
|
217
|
+
case "ArrowDown":
|
|
218
|
+
onResizingChange$()(true);
|
|
219
|
+
setSize(size - 10);
|
|
220
|
+
onResizingChange$()(false);
|
|
221
|
+
break;
|
|
222
|
+
case "ArrowRight":
|
|
223
|
+
case "ArrowUp":
|
|
224
|
+
onResizingChange$()(true);
|
|
225
|
+
setSize(size + 10);
|
|
226
|
+
onResizingChange$()(false);
|
|
227
|
+
break;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
200
231
|
}
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
const updateDimension = (e) => {
|
|
204
|
-
if (!isVertical() && e.clientX > 0) {
|
|
205
|
-
dimension.set(startDimension() + direction() * (e.clientX - startPos()));
|
|
206
|
-
width$.set(dimension());
|
|
207
|
-
} else if (isVertical() && e.clientY > 0) {
|
|
208
|
-
dimension.set(startDimension() + direction() * (e.clientY - startPos()));
|
|
209
|
-
height$.set(dimension());
|
|
210
|
-
}
|
|
211
|
-
};
|
|
232
|
+
}))
|
|
233
|
+
);
|
|
212
234
|
const visible$ = transition.stores.visible$;
|
|
213
235
|
const transitioning$ = tansu.computed(() => transition.stores.transitioning$() || backdropTransition.stores.transitioning$());
|
|
214
236
|
const hidden$ = tansu.computed(() => !transitioning$() && !visible$());
|
|
237
|
+
const minSizeAction$ = tansu.computed(() => {
|
|
238
|
+
const isMinimized = isMinimized$();
|
|
239
|
+
if (isMinimized != null) {
|
|
240
|
+
tansu.untrack(() => onMinimizedChange$()(isMinimized));
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
const maxSizeAction$ = tansu.computed(() => {
|
|
244
|
+
const isMaximized = isMaximized$();
|
|
245
|
+
if (isMaximized != null) {
|
|
246
|
+
tansu.untrack(() => onMaximizedChange$()(isMaximized));
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
const action$ = tansu.computed(() => {
|
|
250
|
+
minSizeAction$();
|
|
251
|
+
maxSizeAction$();
|
|
252
|
+
});
|
|
215
253
|
const widget = {
|
|
216
254
|
...utils_stores.stateStores({
|
|
217
255
|
...stateProps,
|
|
218
256
|
backdropClass$,
|
|
219
257
|
className$,
|
|
220
258
|
container$,
|
|
259
|
+
size$,
|
|
221
260
|
visible$,
|
|
222
261
|
backdropHidden$,
|
|
223
262
|
hidden$
|
|
@@ -228,15 +267,16 @@ const createDrawer = utils_widget.createWidgetFactory("drawer", (config) => {
|
|
|
228
267
|
close: transition.api.hide
|
|
229
268
|
},
|
|
230
269
|
directives: {
|
|
231
|
-
containerDirective,
|
|
232
270
|
drawerPortalDirective,
|
|
233
271
|
drawerDirective: utils_directive.mergeDirectives(
|
|
234
|
-
|
|
272
|
+
utils_directive.directiveSubscribe(action$),
|
|
273
|
+
drawerAttributeDirective,
|
|
235
274
|
utils_directive.bindDirective(
|
|
236
275
|
services_siblingsInert.siblingsInert,
|
|
237
276
|
tansu.computed(() => !bodyScroll$())
|
|
238
277
|
),
|
|
239
|
-
|
|
278
|
+
// This directive must come after the attribute directive, to ensure that all the classes and attributes are applied for the transition
|
|
279
|
+
transition.directives.directive,
|
|
240
280
|
services_focusElement.focusElement
|
|
241
281
|
),
|
|
242
282
|
backdropPortalDirective,
|
package/index.cjs
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const types = require("./types.cjs");
|
|
4
|
-
const accordion = require("./accordion-
|
|
5
|
-
const alert = require("./alert-
|
|
6
|
-
const collapse = require("./collapse-
|
|
7
|
-
const modal = require("./modal-
|
|
8
|
-
const pagination = require("./pagination-
|
|
9
|
-
const progressbar = require("./progressbar-
|
|
10
|
-
const rating = require("./rating-
|
|
11
|
-
const select = require("./select-
|
|
12
|
-
const slider = require("./slider-
|
|
13
|
-
const toaster = require("./toaster-
|
|
14
|
-
const tree = require("./tree-
|
|
15
|
-
const drawer = require("./drawer-
|
|
4
|
+
const accordion = require("./accordion-nxveC0GZ.cjs");
|
|
5
|
+
const alert = require("./alert-AhaliJ17.cjs");
|
|
6
|
+
const collapse = require("./collapse-Da_27YUU.cjs");
|
|
7
|
+
const modal = require("./modal-B_3Uxplo.cjs");
|
|
8
|
+
const pagination = require("./pagination-2Vor6JPZ.cjs");
|
|
9
|
+
const progressbar = require("./progressbar-DyBRINco.cjs");
|
|
10
|
+
const rating = require("./rating-C0y1j4SC.cjs");
|
|
11
|
+
const select = require("./select-Dhsb9msC.cjs");
|
|
12
|
+
const slider = require("./slider-DTO58syz.cjs");
|
|
13
|
+
const toaster = require("./toaster-CT148JSJ.cjs");
|
|
14
|
+
const tree = require("./tree-C4l2Wqny.cjs");
|
|
15
|
+
const drawer = require("./drawer-DOi0TqZC.cjs");
|
|
16
16
|
const config = require("./config.cjs");
|
|
17
17
|
const services_extendWidget = require("./services/extendWidget.cjs");
|
|
18
18
|
const services_floatingUI = require("./services/floatingUI.cjs");
|
|
@@ -27,9 +27,9 @@ const services_hash = require("./services/hash.cjs");
|
|
|
27
27
|
const services_transitions_baseTransitions = require("./services/transitions/baseTransitions.cjs");
|
|
28
28
|
const services_transitions_cssTransitions = require("./services/transitions/cssTransitions.cjs");
|
|
29
29
|
const services_transitions_simpleClassTransition = require("./services/transitions/simpleClassTransition.cjs");
|
|
30
|
-
const utils_directive = require("./dom-
|
|
30
|
+
const utils_directive = require("./dom-Cm9_uROp.cjs");
|
|
31
31
|
const utils_stores = require("./utils/stores.cjs");
|
|
32
|
-
const utils_writables = require("./writables-
|
|
32
|
+
const utils_writables = require("./writables-Dt68gADJ.cjs");
|
|
33
33
|
exports.FACTORY_WIDGET_NAME = types.FACTORY_WIDGET_NAME;
|
|
34
34
|
exports.INVALID_VALUE = types.INVALID_VALUE;
|
|
35
35
|
exports.createAccordion = accordion.createAccordion;
|
|
@@ -76,6 +76,7 @@ exports.getKeyName = services_navManager.getKeyName;
|
|
|
76
76
|
exports.isInternalInputNavigation = services_navManager.isInternalInputNavigation;
|
|
77
77
|
exports.portal = services_portal.portal;
|
|
78
78
|
exports.createResizeObserver = services_resizeObserver.createResizeObserver;
|
|
79
|
+
exports.createResizeObserverMap = services_resizeObserver.createResizeObserverMap;
|
|
79
80
|
exports.siblingsInert = services_siblingsInert.siblingsInert;
|
|
80
81
|
exports.hash$ = services_hash.hash$;
|
|
81
82
|
exports.createTransition = services_transitions_baseTransitions.createTransition;
|
|
@@ -130,5 +131,6 @@ exports.typeFunction = utils_writables.typeFunction;
|
|
|
130
131
|
exports.typeHTMLElementOrNull = utils_writables.typeHTMLElementOrNull;
|
|
131
132
|
exports.typeNumber = utils_writables.typeNumber;
|
|
132
133
|
exports.typeNumberInRangeFactory = utils_writables.typeNumberInRangeFactory;
|
|
134
|
+
exports.typeNumberOrNull = utils_writables.typeNumberOrNull;
|
|
133
135
|
exports.typeString = utils_writables.typeString;
|
|
134
136
|
exports.typeStringOrNull = utils_writables.typeStringOrNull;
|