@fiscozen/composables 0.1.16-beta.1 → 0.1.18

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.
@@ -1,15 +1,15 @@
1
- import { ref as f, reactive as q, onUnmounted as W, nextTick as I, onMounted as w, watch as B, onBeforeUnmount as C, defineComponent as U, useSlots as K, computed as O, toRef as Q, openBlock as x, createElementBlock as P, renderSlot as k, createElementVNode as S, unref as E, withDirectives as M, normalizeClass as A, vShow as N, createCommentVNode as D, createBlock as T, Teleport as X } from "vue";
2
- const y = (n, o, i, s, a) => {
3
- let t = a ? "bottom" : "right", p = a ? "bottom-start" : "right-start";
4
- const l = n.getBoundingClientRect(), e = o.getBoundingClientRect(), c = i.getBoundingClientRect(), r = (c.left - l.left - e.width) / l.width, g = (l.right - c.right - e.width) / l.width, R = (c.top - l.top - e.height) / l.height, h = (l.bottom - c.bottom - e.height) / l.height;
5
- let v = [
1
+ import { ref as v, reactive as W, onUnmounted as I, nextTick as q, onMounted as R, watch as k, onBeforeUnmount as $, getCurrentInstance as T, computed as C, defineComponent as U, useSlots as K, toRef as Q, openBlock as x, createElementBlock as z, renderSlot as w, createElementVNode as S, unref as E, withDirectives as M, normalizeClass as P, vShow as A, createCommentVNode as D, createBlock as X, Teleport as Y } from "vue";
2
+ const L = (o, t, i, s) => {
3
+ let r = "right", e = "right-start";
4
+ const p = o.getBoundingClientRect(), l = t.getBoundingClientRect(), n = i.getBoundingClientRect(), d = (n.left - p.left - l.width) / p.width, u = (p.right - n.right - l.width) / p.width, a = (n.top - p.top - l.height) / p.height, h = (p.bottom - n.bottom - l.height) / p.height;
5
+ if (r = [
6
6
  {
7
7
  key: "right",
8
- space: g
8
+ space: u
9
9
  },
10
10
  {
11
11
  key: "top",
12
- space: R
12
+ space: a
13
13
  },
14
14
  {
15
15
  key: "bottom",
@@ -17,224 +17,181 @@ const y = (n, o, i, s, a) => {
17
17
  },
18
18
  {
19
19
  key: "left",
20
- space: r
20
+ space: d
21
21
  }
22
- ].sort((u, m) => m.space - u.space);
23
- if (a && (v = v.filter((u) => u.key === "top" || u.key === "bottom")), t = v[0].key, !s)
24
- switch (t) {
22
+ ].sort((c, f) => f.space - c.space)[0].key, !s)
23
+ switch (r) {
25
24
  case "right":
26
25
  case "left":
27
- const u = (e.height - c.height) / 2;
28
- l.top > c.top - u && (s = "end"), l.bottom < c.top - u && (s = "start");
26
+ const c = (l.height - n.height) / 2;
27
+ p.top > n.top - c && (s = "end"), p.bottom < n.top - c && (s = "start");
29
28
  break;
30
29
  }
31
- return p = s ? `${t}-${s}` : t, p;
32
- }, Y = (n, o, i, s) => ({
33
- x: o.x + n.width * i / 100,
34
- y: o.y + n.height * s / 100
35
- }), G = (n) => {
36
- const o = f(null), i = f(null), s = f(null), a = f(), t = f(), p = f("auto"), l = f(), e = q({
30
+ return e = s ? `${r}-${s}` : r, e;
31
+ }, G = (o, t, i, s) => ({
32
+ x: t.x + o.width * i / 100,
33
+ y: t.y + o.height * s / 100
34
+ }), H = (o) => {
35
+ const t = v(null), i = v(null), s = v(null), r = v(null), e = W({
37
36
  position: { x: 0, y: 0 }
38
- }), c = {
37
+ }), p = {
39
38
  root: null,
40
39
  rootMargin: "0px",
41
40
  threshold: 1,
42
- ...n.element.intersectionOptions
43
- }, r = (h, v) => {
44
- }, g = f(new IntersectionObserver(r, c));
45
- p.value = n.position ? n.position.value : "auto";
46
- const R = () => I(() => {
47
- var L;
48
- if (o.value = typeof n.element.domRef.value == "string" ? document.querySelector(n.element.domRef.value) : n.element.domRef.value, n.container ? (i.value = typeof n.container.domRef.value == "string" ? document.querySelector(n.container.domRef.value) : n.container.domRef.value, i.value ?? (i.value = document.body)) : i.value = document.body, !o.value)
41
+ ...o.element.intersectionOptions
42
+ }, l = (u, a) => {
43
+ }, n = v(new IntersectionObserver(l, p)), d = () => q(() => {
44
+ var F;
45
+ if (t.value = typeof o.element.domRef.value == "string" ? document.querySelector(o.element.domRef.value) : o.element.domRef.value, o.container ? (i.value = typeof o.container.domRef.value == "string" ? document.querySelector(o.container.domRef.value) : o.container.domRef.value, i.value ?? (i.value = document.body)) : i.value = document.body, !t.value)
49
46
  throw new Error("missing reference element for floating behavior");
50
- n.opener && (s.value = typeof n.opener.domRef.value == "string" ? document.querySelector(n.opener.domRef.value) : n.opener.domRef.value), l.value = o.value.getBoundingClientRect(), a.value = (L = s.value) == null ? void 0 : L.getBoundingClientRect(), t.value = i.value.getBoundingClientRect();
51
- const h = window.getComputedStyle(o.value);
52
- g.value.observe(o.value), g.value.observe(i.value);
53
- let v = 0, u = 0;
54
- if (n.opener && s.value && a && a.value) {
55
- const d = a.value.left - parseFloat(h.marginLeft) - parseFloat(h.marginRight), z = a.value.left - parseFloat(h.marginLeft), b = a.value.top - parseFloat(h.marginTop) - parseFloat(h.marginBottom), F = a.value.top - parseFloat(h.marginTop);
56
- switch (p.value) {
47
+ o.opener && (s.value = typeof o.opener.domRef.value == "string" ? document.querySelector(o.opener.domRef.value) : o.opener.domRef.value), r.value = t.value.getBoundingClientRect();
48
+ const u = (F = s.value) == null ? void 0 : F.getBoundingClientRect(), a = i.value.getBoundingClientRect(), h = window.getComputedStyle(t.value);
49
+ n.value.observe(t.value), n.value.observe(i.value);
50
+ let m = o.position ? o.position.value : "auto", c = 0, f = 0;
51
+ if (o.opener && s.value && u) {
52
+ const y = u.left - parseFloat(h.marginLeft) - parseFloat(h.marginRight), N = u.left - parseFloat(h.marginLeft), b = u.top - parseFloat(h.marginTop) - parseFloat(h.marginBottom), O = u.top - parseFloat(h.marginTop);
53
+ switch (m) {
57
54
  case "auto":
58
- p.value = y(
55
+ m = L(
59
56
  i.value,
60
- o.value,
57
+ t.value,
61
58
  s.value
62
59
  );
63
60
  break;
64
- case "auto-vertical":
65
- p.value = y(
66
- i.value,
67
- o.value,
68
- s.value,
69
- void 0,
70
- !0
71
- );
72
- break;
73
61
  case "auto-start":
74
- p.value = y(
62
+ m = L(
75
63
  i.value,
76
- o.value,
64
+ t.value,
77
65
  s.value,
78
66
  "start"
79
67
  );
80
68
  break;
81
- case "auto-vertical-start":
82
- p.value = y(
83
- i.value,
84
- o.value,
85
- s.value,
86
- "start",
87
- !0
88
- );
89
- break;
90
69
  case "auto-end":
91
- p.value = y(
70
+ m = L(
92
71
  i.value,
93
- o.value,
72
+ t.value,
94
73
  s.value,
95
74
  "end"
96
75
  );
97
76
  break;
98
- case "auto-vertical-end":
99
- p.value = y(
100
- i.value,
101
- o.value,
102
- s.value,
103
- "end",
104
- !0
105
- );
106
- break;
107
77
  }
108
- switch (p.value) {
78
+ switch (m) {
109
79
  case "bottom":
110
- e.position.y = a.value.bottom, e.position.x = z + a.value.width / 2, u = -50, v = 0;
80
+ e.position.y = u.bottom, e.position.x = N + u.width / 2, f = -50, c = 0;
111
81
  break;
112
82
  case "bottom-start":
113
- e.position.y = a.value.bottom, e.position.x = d, u = 0, v = 0;
83
+ e.position.y = u.bottom, e.position.x = y, f = 0, c = 0;
114
84
  break;
115
85
  case "bottom-end":
116
- e.position.y = a.value.bottom, e.position.x = a.value.right, u = -100, v = 0;
86
+ e.position.y = u.bottom, e.position.x = u.right, f = -100, c = 0;
117
87
  break;
118
88
  case "left-start":
119
- e.position.y = b, e.position.x = d, u = -100, v = 0;
89
+ e.position.y = b, e.position.x = y, f = -100, c = 0;
120
90
  break;
121
91
  case "left":
122
- e.position.y = F + a.value.height / 2, e.position.x = d, v = -50, u = -100;
92
+ e.position.y = O + u.height / 2, e.position.x = y, c = -50, f = -100;
123
93
  break;
124
94
  case "left-end":
125
- e.position.y = a.value.bottom, e.position.x = d, v = -100, u = -100;
95
+ e.position.y = u.bottom, e.position.x = y, c = -100, f = -100;
126
96
  break;
127
97
  case "top-start":
128
- e.position.y = b, e.position.x = d, v = -100, u = 0;
98
+ e.position.y = b, e.position.x = y, c = -100, f = 0;
129
99
  break;
130
100
  case "top":
131
- e.position.y = b, e.position.x = z + a.value.width / 2, u = -50, v = -100;
101
+ e.position.y = b, e.position.x = N + u.width / 2, f = -50, c = -100;
132
102
  break;
133
103
  case "top-end":
134
- e.position.y = b, e.position.x = a.value.right, u = -100, v = -100;
104
+ e.position.y = b, e.position.x = u.right, f = -100, c = -100;
135
105
  break;
136
106
  case "right-start":
137
- e.position.y = b, e.position.x = a.value.right, u = 0, v = 0;
107
+ e.position.y = b, e.position.x = u.right, f = 0, c = 0;
138
108
  break;
139
109
  case "right":
140
- e.position.y = F + a.value.height / 2, e.position.x = a.value.right, v = -50, u = 0;
110
+ e.position.y = O + u.height / 2, e.position.x = u.right, c = -50, f = 0;
141
111
  break;
142
112
  case "right-end":
143
- e.position.y = a.value.bottom, e.position.x = a.value.right, v = -100, u = 0;
113
+ e.position.y = u.bottom, e.position.x = u.right, c = -100, f = 0;
144
114
  break;
145
115
  }
146
116
  } else
147
- switch (p.value) {
117
+ switch (m) {
148
118
  case "bottom":
149
- e.position.y = t.value.bottom - l.value.height, e.position.x = t.value.left + t.value.width / 2, u = -50;
119
+ e.position.y = a.bottom - r.value.height, e.position.x = a.left + a.width / 2, f = -50;
150
120
  break;
151
121
  case "left-end":
152
122
  case "bottom-start":
153
- e.position.y = t.value.bottom - l.value.height, e.position.x = t.value.left;
123
+ e.position.y = a.bottom - r.value.height, e.position.x = a.left;
154
124
  break;
155
125
  case "right-end":
156
126
  case "bottom-end":
157
- e.position.y = t.value.bottom - l.value.height, e.position.x = t.value.right - l.value.width;
127
+ e.position.y = a.bottom - r.value.height, e.position.x = a.right - r.value.width;
158
128
  break;
159
129
  case "left":
160
- e.position.y = t.value.top + (t.value.height - l.value.height) / 2, e.position.x = t.value.left;
130
+ e.position.y = a.top + (a.height - r.value.height) / 2, e.position.x = a.left;
161
131
  break;
162
132
  case "top-start":
163
133
  case "left-start":
164
- e.position.y = t.value.top, e.position.x = t.value.left;
134
+ e.position.y = a.top, e.position.x = a.left;
165
135
  break;
166
136
  case "top":
167
- e.position.y = t.value.top, e.position.x = t.value.left + (t.value.width - l.value.width) / 2;
137
+ e.position.y = a.top, e.position.x = a.left + (a.width - r.value.width) / 2;
168
138
  break;
169
139
  case "top-end":
170
140
  case "right-start":
171
- e.position.y = t.value.top, e.position.x = t.value.right - l.value.width;
141
+ e.position.y = a.top, e.position.x = a.right - r.value.width;
172
142
  case "right":
173
- e.position.y = t.value.top + (t.value.height - l.value.height) / 2, e.position.x = t.value.right - l.value.width;
143
+ e.position.y = a.top + (a.height - r.value.height) / 2, e.position.x = a.right - r.value.width;
174
144
  break;
175
145
  }
176
- const m = Y(l.value, e.position, u, v);
177
- if (e.position.x = m.x, e.position.y = m.y, m.x < t.value.left && (e.position.x = t.value.left, u = 0), m.x + l.value.width > t.value.right) {
178
- const d = t.value.right - l.value.width;
179
- d > 0 && (e.position.x = d), u = 0;
180
- }
181
- if (m.y < t.value.top && (e.position.y = t.value.top, v = 0), m.y + l.value.height > t.value.bottom) {
182
- const d = t.value.bottom - l.value.height;
183
- d > 0 && (e.position.y = d), v = 0;
184
- }
185
- o.value.style.top = `${e.position.y}px`, o.value.style.left = `${e.position.x}px`, o.value.style.display = "flex", l.value = o.value.getBoundingClientRect(), n.callback && n.callback(l, a, t, p);
146
+ const g = G(r.value, e.position, f, c);
147
+ e.position.x = g.x, e.position.y = g.y, g.x < a.left && (e.position.x = a.left, f = 0), g.x + r.value.width > a.right && (e.position.x = a.right - r.value.width, f = 0), g.y < a.top && (e.position.y = a.top, c = 0), g.y + r.value.height > a.bottom && (e.position.y = a.bottom - r.value.height, c = 0), t.value.style.top = `${e.position.y}px`, t.value.style.left = `${e.position.x}px`, t.value.style.display = "flex", r.value = t.value.getBoundingClientRect();
186
148
  });
187
- return W(() => {
188
- g.value.disconnect();
149
+ return I(() => {
150
+ n.value.disconnect();
189
151
  }), {
190
152
  float: e,
191
- rect: l,
192
- setPosition: R,
193
- position: p,
194
- openerRect: a,
195
- containerRect: t
153
+ rect: r,
154
+ floatObserver: n,
155
+ setPosition: d
196
156
  };
197
157
  };
198
- function $(n) {
199
- const o = window.matchMedia(n), i = f(o.matches);
200
- function s(a) {
201
- i.value = a.matches;
158
+ function B(o) {
159
+ const t = window.matchMedia(o), i = v(t.matches);
160
+ function s(r) {
161
+ i.value = r.matches;
202
162
  }
203
- return w(() => {
204
- o.addEventListener("change", s);
205
- }), W(() => {
206
- o.removeEventListener("change", s);
163
+ return R(() => {
164
+ t.addEventListener("change", s);
165
+ }), I(() => {
166
+ t.removeEventListener("change", s);
207
167
  }), i;
208
168
  }
209
- function J(n) {
169
+ function Z(o) {
210
170
  return {
211
- isGreater(o) {
212
- return $(`(min-width: ${n[o]})`);
171
+ isGreater(t) {
172
+ return B(`(min-width: ${o[t]})`);
213
173
  },
214
- isSmaller(o) {
215
- return $(`(max-width: ${n[o]})`);
174
+ isSmaller(t) {
175
+ return B(`(max-width: ${o[t]})`);
216
176
  },
217
- isInBetween(o, i) {
218
- return $(`(min-width: ${n[o]}) and (max-width: ${n[i]})`);
177
+ isInBetween(t, i) {
178
+ return B(`(min-width: ${o[t]}) and (max-width: ${o[i]})`);
219
179
  }
220
180
  };
221
181
  }
222
- function Z(n, o, i) {
223
- if (!n)
224
- throw new Error("A target component has to be provided.");
182
+ function _(o, t, i) {
225
183
  if (!o)
184
+ throw new Error("A target component has to be provided.");
185
+ if (!t)
226
186
  throw new Error("A callback has to be provided.");
227
- const s = (a) => {
228
- !n.value || a.target === n.value || a.composedPath().includes(n.value) || typeof o == "function" && o();
187
+ const s = (r) => {
188
+ !o.value || r.target === o.value || r.composedPath().includes(o.value) || typeof t == "function" && t();
229
189
  };
230
- i && B(
231
- i,
232
- (a, t) => {
233
- t && t.removeEventListener("click", s), a == null || a.addEventListener("click", s);
234
- }
235
- ), w(() => {
190
+ i && k(i, (r, e) => {
191
+ e && e.removeEventListener("click", s), r == null || r.addEventListener("click", s);
192
+ }), R(() => {
236
193
  i || document.addEventListener("click", s);
237
- }), C(() => {
194
+ }), $(() => {
238
195
  if (i) {
239
196
  i.value.removeEventListener("click", s);
240
197
  return;
@@ -242,41 +199,72 @@ function Z(n, o, i) {
242
199
  document.removeEventListener("click", s);
243
200
  });
244
201
  }
245
- function V(n, o) {
246
- if (!n)
202
+ function j(o, t) {
203
+ if (!o)
247
204
  throw new Error("A target component has to be provided.");
248
- if (!o || typeof o != "function")
205
+ if (!t || typeof t != "function")
249
206
  throw new Error("A callback has to be provided.");
250
207
  const i = (s) => {
251
- o(s);
208
+ t(s);
252
209
  };
253
- w(() => {
254
- n.value.addEventListener("keydown", i);
255
- }), C(() => {
256
- n.value.removeEventListener("keydown", i);
210
+ R(() => {
211
+ o.value.addEventListener("keydown", i);
212
+ }), $(() => {
213
+ o.value.removeEventListener("keydown", i);
257
214
  });
258
215
  }
259
- function _(n, o) {
260
- if (!n || typeof n != "function")
216
+ function V(o, t) {
217
+ if (!o || typeof o != "function")
261
218
  throw new Error("A callback has to be provided.");
262
219
  const i = (s) => {
263
- n(s);
220
+ o(s);
264
221
  };
265
- w(() => {
266
- if (!o) {
222
+ R(() => {
223
+ if (!t) {
267
224
  document.addEventListener("keyup", i);
268
225
  return;
269
226
  }
270
- o.value.addEventListener("keyup", i);
271
- }), C(() => {
272
- if (!o) {
227
+ t.value.addEventListener("keyup", i);
228
+ }), $(() => {
229
+ if (!t) {
273
230
  document.removeEventListener("keyup", i);
274
231
  return;
275
232
  }
276
- o.value.removeEventListener("keyup", i);
233
+ t.value.removeEventListener("keyup", i);
277
234
  });
278
235
  }
279
- const j = /* @__PURE__ */ U({
236
+ const ee = () => {
237
+ const o = v(null), t = T();
238
+ C(() => t == null ? void 0 : t.props.modelValue);
239
+ const i = (l) => l.toLocaleString("it-IT", {
240
+ minimumFractionDigits: 2,
241
+ maximumFractionDigits: 2
242
+ }), s = (l) => parseFloat(l), r = (l) => {
243
+ Number.isNaN(l) || t && t.emit("update:modelValue", l);
244
+ }, e = (l) => (n) => {
245
+ if (!o.value || !n.target)
246
+ return;
247
+ let { value: d } = l;
248
+ d = d.replace(/[^0-9,.]/g, ""), o.value.value = d;
249
+ const u = s(d);
250
+ r(Number.isNaN(u) ? 0 : u);
251
+ }, p = (l) => {
252
+ if (!o.value || !l.target)
253
+ return;
254
+ let n = s(l.target.value.replace(/,/g, "."));
255
+ Number.isNaN(n) && (n = 0);
256
+ const d = i(n);
257
+ o.value.value = d, r(n);
258
+ };
259
+ return k(o, (l, n) => {
260
+ l && (n && (n == null || n.removeEventListener("input", e(l)), n == null || n.removeEventListener("blur", p)), l.addEventListener("input", e(l)), l.addEventListener("blur", p));
261
+ }), {
262
+ inputRef: o,
263
+ parse: s,
264
+ format: i,
265
+ setValue: r
266
+ };
267
+ }, te = /* @__PURE__ */ U({
280
268
  __name: "FzFloating",
281
269
  props: {
282
270
  isOpen: { type: Boolean, default: !1 },
@@ -287,88 +275,83 @@ const j = /* @__PURE__ */ U({
287
275
  overrideContentClass: { type: Boolean },
288
276
  teleport: { type: Boolean, default: !1 }
289
277
  },
290
- emits: ["fzfloating:setPosition"],
291
- setup(n, { emit: o }) {
292
- const i = n, s = o, a = f(null), t = f(null), p = K(), l = {
293
- position: O(() => i.position),
278
+ setup(o) {
279
+ const t = o, i = v(null), s = v(null), r = K(), e = {
280
+ position: C(() => t.position),
294
281
  element: {
295
- // @ts-ignore
296
- domRef: t
282
+ domRef: s
297
283
  },
298
284
  container: {
299
- // @ts-ignore
300
- domRef: Q(i.container || document.body)
301
- },
302
- callback(...r) {
303
- s("fzfloating:setPosition", ...r);
285
+ domRef: Q(t.container || document.body)
304
286
  }
305
287
  };
306
- p.opener && (l.opener = {
307
- domRef: a
288
+ r.opener && (e.opener = {
289
+ domRef: i
308
290
  });
309
- const e = G(l);
310
- B(
311
- () => i.position,
312
- () => i.isOpen && e.setPosition()
313
- ), B(
314
- () => i.isOpen,
315
- (r) => {
316
- !r || !t.value || (t.value.style.top = "0px", t.value.style.left = "0px", t.value.style.transform = "none", e.setPosition());
291
+ const p = H(e);
292
+ k(
293
+ () => t.position,
294
+ () => t.isOpen && p.setPosition()
295
+ ), k(
296
+ () => t.isOpen,
297
+ (n) => {
298
+ !n || !s.value || (s.value.style.top = "0px", s.value.style.left = "0px", s.value.style.transform = "none", p.setPosition());
317
299
  }
318
300
  );
319
- const c = O(() => i.overrideContentClass ? i.contentClass : ["bg-core-white fixed p-4 z-10", i.contentClass]);
320
- return (r, g) => (x(), P("div", null, [
321
- k(r.$slots, "opener-start"),
301
+ const l = C(() => t.overrideContentClass ? t.contentClass : ["bg-core-white fixed p-4 z-10", t.contentClass]);
302
+ return (n, d) => (x(), z("div", null, [
303
+ w(n.$slots, "opener-start"),
322
304
  S("div", {
323
305
  ref_key: "opener",
324
- ref: a,
306
+ ref: i,
325
307
  class: "inline-flex"
326
308
  }, [
327
- k(r.$slots, "opener", {
328
- isOpen: r.isOpen,
329
- floating: E(e)
309
+ w(n.$slots, "opener", {
310
+ isOpen: n.isOpen,
311
+ floating: E(p)
330
312
  })
331
313
  ], 512),
332
- k(r.$slots, "opener-end"),
333
- r.teleport ? D("", !0) : M((x(), P("div", {
314
+ w(n.$slots, "opener-end"),
315
+ n.teleport ? D("", !0) : M((x(), z("div", {
334
316
  key: 0,
335
317
  ref_key: "content",
336
- ref: t,
337
- class: A(["fz__floating__content bg-core-white fixed p-4 z-10", c.value])
318
+ ref: s,
319
+ class: P(["fz__floating__content bg-core-white fixed p-4 z-10", l.value])
338
320
  }, [
339
- k(r.$slots, "default", {
340
- isOpen: r.isOpen,
341
- floating: E(e)
321
+ w(n.$slots, "default", {
322
+ isOpen: n.isOpen,
323
+ floating: E(p)
342
324
  })
343
325
  ], 2)), [
344
- [N, r.$slots.default && (!r.$slots.opener || r.$slots.opener && r.isOpen)]
326
+ [A, n.$slots.default && (!n.$slots.opener || n.$slots.opener && n.isOpen)]
345
327
  ]),
346
- r.teleport ? (x(), T(X, {
328
+ n.teleport ? (x(), X(Y, {
347
329
  key: 1,
348
330
  to: "body"
349
331
  }, [
350
332
  M(S("div", {
351
333
  ref_key: "content",
352
- ref: t,
353
- class: A(["fz__floating__content bg-core-white absolute p-4 z-10", c.value])
334
+ ref: s,
335
+ class: P(["fz__floating__content bg-core-white absolute p-4 z-10", l.value])
354
336
  }, [
355
- k(r.$slots, "default", {
356
- isOpen: r.isOpen,
357
- floating: E(e)
337
+ w(n.$slots, "default", {
338
+ isOpen: n.isOpen,
339
+ floating: E(p)
358
340
  })
359
341
  ], 2), [
360
- [N, r.$slots.default && (!r.$slots.opener || r.$slots.opener && r.isOpen)]
342
+ [A, n.$slots.default && (!n.$slots.opener || n.$slots.opener && n.isOpen)]
361
343
  ])
362
344
  ])) : D("", !0)
363
345
  ]));
364
346
  }
365
347
  });
366
348
  export {
367
- j as FzFloating,
368
- J as useBreakpoints,
369
- Z as useClickOutside,
370
- G as useFloating,
371
- V as useKeyDown,
372
- _ as useKeyUp,
373
- $ as useMediaQuery
349
+ te as FzFloating,
350
+ Z as useBreakpoints,
351
+ _ as useClickOutside,
352
+ ee as useCurrency,
353
+ H as useFloating,
354
+ j as useKeyDown,
355
+ V as useKeyUp,
356
+ B as useMediaQuery
374
357
  };
@@ -1 +1 @@
1
- (function(d,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],t):(d=typeof globalThis<"u"?globalThis:d||self,t(d.FzComposables={},d.Vue))})(this,function(d,t){"use strict";const y=(a,n,i,s,l)=>{let o=l?"bottom":"right",f=l?"bottom-start":"right-start";const r=a.getBoundingClientRect(),e=n.getBoundingClientRect(),v=i.getBoundingClientRect(),u=(v.left-r.left-e.width)/r.width,b=(r.right-v.right-e.width)/r.width,R=(v.top-r.top-e.height)/r.height,m=(r.bottom-v.bottom-e.height)/r.height;let p=[{key:"right",space:b},{key:"top",space:R},{key:"bottom",space:m},{key:"left",space:u}].sort((c,g)=>g.space-c.space);if(l&&(p=p.filter(c=>c.key==="top"||c.key==="bottom")),o=p[0].key,!s)switch(o){case"right":case"left":const c=(e.height-v.height)/2;r.top>v.top-c&&(s="end"),r.bottom<v.top-c&&(s="start");break}return f=s?`${o}-${s}`:o,f},$=(a,n,i,s)=>({x:n.x+a.width*i/100,y:n.y+a.height*s/100}),B=a=>{const n=t.ref(null),i=t.ref(null),s=t.ref(null),l=t.ref(),o=t.ref(),f=t.ref("auto"),r=t.ref(),e=t.reactive({position:{x:0,y:0}}),v={root:null,rootMargin:"0px",threshold:1,...a.element.intersectionOptions},u=(m,p)=>{},b=t.ref(new IntersectionObserver(u,v));f.value=a.position?a.position.value:"auto";const R=()=>t.nextTick(()=>{var E;if(n.value=typeof a.element.domRef.value=="string"?document.querySelector(a.element.domRef.value):a.element.domRef.value,a.container?(i.value=typeof a.container.domRef.value=="string"?document.querySelector(a.container.domRef.value):a.container.domRef.value,i.value??(i.value=document.body)):i.value=document.body,!n.value)throw new Error("missing reference element for floating behavior");a.opener&&(s.value=typeof a.opener.domRef.value=="string"?document.querySelector(a.opener.domRef.value):a.opener.domRef.value),r.value=n.value.getBoundingClientRect(),l.value=(E=s.value)==null?void 0:E.getBoundingClientRect(),o.value=i.value.getBoundingClientRect();const m=window.getComputedStyle(n.value);b.value.observe(n.value),b.value.observe(i.value);let p=0,c=0;if(a.opener&&s.value&&l&&l.value){const h=l.value.left-parseFloat(m.marginLeft)-parseFloat(m.marginRight),x=l.value.left-parseFloat(m.marginLeft),k=l.value.top-parseFloat(m.marginTop)-parseFloat(m.marginBottom),C=l.value.top-parseFloat(m.marginTop);switch(f.value){case"auto":f.value=y(i.value,n.value,s.value);break;case"auto-vertical":f.value=y(i.value,n.value,s.value,void 0,!0);break;case"auto-start":f.value=y(i.value,n.value,s.value,"start");break;case"auto-vertical-start":f.value=y(i.value,n.value,s.value,"start",!0);break;case"auto-end":f.value=y(i.value,n.value,s.value,"end");break;case"auto-vertical-end":f.value=y(i.value,n.value,s.value,"end",!0);break}switch(f.value){case"bottom":e.position.y=l.value.bottom,e.position.x=x+l.value.width/2,c=-50,p=0;break;case"bottom-start":e.position.y=l.value.bottom,e.position.x=h,c=0,p=0;break;case"bottom-end":e.position.y=l.value.bottom,e.position.x=l.value.right,c=-100,p=0;break;case"left-start":e.position.y=k,e.position.x=h,c=-100,p=0;break;case"left":e.position.y=C+l.value.height/2,e.position.x=h,p=-50,c=-100;break;case"left-end":e.position.y=l.value.bottom,e.position.x=h,p=-100,c=-100;break;case"top-start":e.position.y=k,e.position.x=h,p=-100,c=0;break;case"top":e.position.y=k,e.position.x=x+l.value.width/2,c=-50,p=-100;break;case"top-end":e.position.y=k,e.position.x=l.value.right,c=-100,p=-100;break;case"right-start":e.position.y=k,e.position.x=l.value.right,c=0,p=0;break;case"right":e.position.y=C+l.value.height/2,e.position.x=l.value.right,p=-50,c=0;break;case"right-end":e.position.y=l.value.bottom,e.position.x=l.value.right,p=-100,c=0;break}}else switch(f.value){case"bottom":e.position.y=o.value.bottom-r.value.height,e.position.x=o.value.left+o.value.width/2,c=-50;break;case"left-end":case"bottom-start":e.position.y=o.value.bottom-r.value.height,e.position.x=o.value.left;break;case"right-end":case"bottom-end":e.position.y=o.value.bottom-r.value.height,e.position.x=o.value.right-r.value.width;break;case"left":e.position.y=o.value.top+(o.value.height-r.value.height)/2,e.position.x=o.value.left;break;case"top-start":case"left-start":e.position.y=o.value.top,e.position.x=o.value.left;break;case"top":e.position.y=o.value.top,e.position.x=o.value.left+(o.value.width-r.value.width)/2;break;case"top-end":case"right-start":e.position.y=o.value.top,e.position.x=o.value.right-r.value.width;case"right":e.position.y=o.value.top+(o.value.height-r.value.height)/2,e.position.x=o.value.right-r.value.width;break}const g=$(r.value,e.position,c,p);if(e.position.x=g.x,e.position.y=g.y,g.x<o.value.left&&(e.position.x=o.value.left,c=0),g.x+r.value.width>o.value.right){const h=o.value.right-r.value.width;h>0&&(e.position.x=h),c=0}if(g.y<o.value.top&&(e.position.y=o.value.top,p=0),g.y+r.value.height>o.value.bottom){const h=o.value.bottom-r.value.height;h>0&&(e.position.y=h),p=0}n.value.style.top=`${e.position.y}px`,n.value.style.left=`${e.position.x}px`,n.value.style.display="flex",r.value=n.value.getBoundingClientRect(),a.callback&&a.callback(r,l,o,f)});return t.onUnmounted(()=>{b.value.disconnect()}),{float:e,rect:r,setPosition:R,position:f,openerRect:l,containerRect:o}};function w(a){const n=window.matchMedia(a),i=t.ref(n.matches);function s(l){i.value=l.matches}return t.onMounted(()=>{n.addEventListener("change",s)}),t.onUnmounted(()=>{n.removeEventListener("change",s)}),i}function S(a){return{isGreater(n){return w(`(min-width: ${a[n]})`)},isSmaller(n){return w(`(max-width: ${a[n]})`)},isInBetween(n,i){return w(`(min-width: ${a[n]}) and (max-width: ${a[i]})`)}}}function z(a,n,i){if(!a)throw new Error("A target component has to be provided.");if(!n)throw new Error("A callback has to be provided.");const s=l=>{!a.value||l.target===a.value||l.composedPath().includes(a.value)||typeof n=="function"&&n()};i&&t.watch(i,(l,o)=>{o&&o.removeEventListener("click",s),l==null||l.addEventListener("click",s)}),t.onMounted(()=>{i||document.addEventListener("click",s)}),t.onBeforeUnmount(()=>{if(i){i.value.removeEventListener("click",s);return}document.removeEventListener("click",s)})}function L(a,n){if(!a)throw new Error("A target component has to be provided.");if(!n||typeof n!="function")throw new Error("A callback has to be provided.");const i=s=>{n(s)};t.onMounted(()=>{a.value.addEventListener("keydown",i)}),t.onBeforeUnmount(()=>{a.value.removeEventListener("keydown",i)})}function F(a,n){if(!a||typeof a!="function")throw new Error("A callback has to be provided.");const i=s=>{a(s)};t.onMounted(()=>{if(!n){document.addEventListener("keyup",i);return}n.value.addEventListener("keyup",i)}),t.onBeforeUnmount(()=>{if(!n){document.removeEventListener("keyup",i);return}n.value.removeEventListener("keyup",i)})}const M=t.defineComponent({__name:"FzFloating",props:{isOpen:{type:Boolean,default:!1},position:{default:"auto"},container:{},contentClass:{},openerClass:{},overrideContentClass:{type:Boolean},teleport:{type:Boolean,default:!1}},emits:["fzfloating:setPosition"],setup(a,{emit:n}){const i=a,s=n,l=t.ref(null),o=t.ref(null),f=t.useSlots(),r={position:t.computed(()=>i.position),element:{domRef:o},container:{domRef:t.toRef(i.container||document.body)},callback(...u){s("fzfloating:setPosition",...u)}};f.opener&&(r.opener={domRef:l});const e=B(r);t.watch(()=>i.position,()=>i.isOpen&&e.setPosition()),t.watch(()=>i.isOpen,u=>{!u||!o.value||(o.value.style.top="0px",o.value.style.left="0px",o.value.style.transform="none",e.setPosition())});const v=t.computed(()=>i.overrideContentClass?i.contentClass:["bg-core-white fixed p-4 z-10",i.contentClass]);return(u,b)=>(t.openBlock(),t.createElementBlock("div",null,[t.renderSlot(u.$slots,"opener-start"),t.createElementVNode("div",{ref_key:"opener",ref:l,class:"inline-flex"},[t.renderSlot(u.$slots,"opener",{isOpen:u.isOpen,floating:t.unref(e)})],512),t.renderSlot(u.$slots,"opener-end"),u.teleport?t.createCommentVNode("",!0):t.withDirectives((t.openBlock(),t.createElementBlock("div",{key:0,ref_key:"content",ref:o,class:t.normalizeClass(["fz__floating__content bg-core-white fixed p-4 z-10",v.value])},[t.renderSlot(u.$slots,"default",{isOpen:u.isOpen,floating:t.unref(e)})],2)),[[t.vShow,u.$slots.default&&(!u.$slots.opener||u.$slots.opener&&u.isOpen)]]),u.teleport?(t.openBlock(),t.createBlock(t.Teleport,{key:1,to:"body"},[t.withDirectives(t.createElementVNode("div",{ref_key:"content",ref:o,class:t.normalizeClass(["fz__floating__content bg-core-white absolute p-4 z-10",v.value])},[t.renderSlot(u.$slots,"default",{isOpen:u.isOpen,floating:t.unref(e)})],2),[[t.vShow,u.$slots.default&&(!u.$slots.opener||u.$slots.opener&&u.isOpen)]])])):t.createCommentVNode("",!0)]))}});d.FzFloating=M,d.useBreakpoints=S,d.useClickOutside=z,d.useFloating=B,d.useKeyDown=L,d.useKeyUp=F,d.useMediaQuery=w,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})});
1
+ (function(h,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],t):(h=typeof globalThis<"u"?globalThis:h||self,t(h.FzComposables={},h.Vue))})(this,function(h,t){"use strict";const R=(n,o,s,r)=>{let a="right",e="right-start";const u=n.getBoundingClientRect(),p=o.getBoundingClientRect(),i=s.getBoundingClientRect(),m=(i.left-u.left-p.width)/u.width,c=(u.right-i.right-p.width)/u.width,l=(i.top-u.top-p.height)/u.height,g=(u.bottom-i.bottom-p.height)/u.height;if(a=[{key:"right",space:c},{key:"top",space:l},{key:"bottom",space:g},{key:"left",space:m}].sort((f,d)=>d.space-f.space)[0].key,!r)switch(a){case"right":case"left":const f=(p.height-i.height)/2;u.top>i.top-f&&(r="end"),u.bottom<i.top-f&&(r="start");break}return e=r?`${a}-${r}`:a,e},L=(n,o,s,r)=>({x:o.x+n.width*s/100,y:o.y+n.height*r/100}),E=n=>{const o=t.ref(null),s=t.ref(null),r=t.ref(null),a=t.ref(null),e=t.reactive({position:{x:0,y:0}}),u={root:null,rootMargin:"0px",threshold:1,...n.element.intersectionOptions},p=(c,l)=>{},i=t.ref(new IntersectionObserver(p,u)),m=()=>t.nextTick(()=>{var B;if(o.value=typeof n.element.domRef.value=="string"?document.querySelector(n.element.domRef.value):n.element.domRef.value,n.container?(s.value=typeof n.container.domRef.value=="string"?document.querySelector(n.container.domRef.value):n.container.domRef.value,s.value??(s.value=document.body)):s.value=document.body,!o.value)throw new Error("missing reference element for floating behavior");n.opener&&(r.value=typeof n.opener.domRef.value=="string"?document.querySelector(n.opener.domRef.value):n.opener.domRef.value),a.value=o.value.getBoundingClientRect();const c=(B=r.value)==null?void 0:B.getBoundingClientRect(),l=s.value.getBoundingClientRect(),g=window.getComputedStyle(o.value);i.value.observe(o.value),i.value.observe(s.value);let y=n.position?n.position.value:"auto",f=0,d=0;if(n.opener&&r.value&&c){const b=c.left-parseFloat(g.marginLeft)-parseFloat(g.marginRight),C=c.left-parseFloat(g.marginLeft),w=c.top-parseFloat(g.marginTop)-parseFloat(g.marginBottom),x=c.top-parseFloat(g.marginTop);switch(y){case"auto":y=R(s.value,o.value,r.value);break;case"auto-start":y=R(s.value,o.value,r.value,"start");break;case"auto-end":y=R(s.value,o.value,r.value,"end");break}switch(y){case"bottom":e.position.y=c.bottom,e.position.x=C+c.width/2,d=-50,f=0;break;case"bottom-start":e.position.y=c.bottom,e.position.x=b,d=0,f=0;break;case"bottom-end":e.position.y=c.bottom,e.position.x=c.right,d=-100,f=0;break;case"left-start":e.position.y=w,e.position.x=b,d=-100,f=0;break;case"left":e.position.y=x+c.height/2,e.position.x=b,f=-50,d=-100;break;case"left-end":e.position.y=c.bottom,e.position.x=b,f=-100,d=-100;break;case"top-start":e.position.y=w,e.position.x=b,f=-100,d=0;break;case"top":e.position.y=w,e.position.x=C+c.width/2,d=-50,f=-100;break;case"top-end":e.position.y=w,e.position.x=c.right,d=-100,f=-100;break;case"right-start":e.position.y=w,e.position.x=c.right,d=0,f=0;break;case"right":e.position.y=x+c.height/2,e.position.x=c.right,f=-50,d=0;break;case"right-end":e.position.y=c.bottom,e.position.x=c.right,f=-100,d=0;break}}else switch(y){case"bottom":e.position.y=l.bottom-a.value.height,e.position.x=l.left+l.width/2,d=-50;break;case"left-end":case"bottom-start":e.position.y=l.bottom-a.value.height,e.position.x=l.left;break;case"right-end":case"bottom-end":e.position.y=l.bottom-a.value.height,e.position.x=l.right-a.value.width;break;case"left":e.position.y=l.top+(l.height-a.value.height)/2,e.position.x=l.left;break;case"top-start":case"left-start":e.position.y=l.top,e.position.x=l.left;break;case"top":e.position.y=l.top,e.position.x=l.left+(l.width-a.value.width)/2;break;case"top-end":case"right-start":e.position.y=l.top,e.position.x=l.right-a.value.width;case"right":e.position.y=l.top+(l.height-a.value.height)/2,e.position.x=l.right-a.value.width;break}const v=L(a.value,e.position,d,f);e.position.x=v.x,e.position.y=v.y,v.x<l.left&&(e.position.x=l.left,d=0),v.x+a.value.width>l.right&&(e.position.x=l.right-a.value.width,d=0),v.y<l.top&&(e.position.y=l.top,f=0),v.y+a.value.height>l.bottom&&(e.position.y=l.bottom-a.value.height,f=0),o.value.style.top=`${e.position.y}px`,o.value.style.left=`${e.position.x}px`,o.value.style.display="flex",a.value=o.value.getBoundingClientRect()});return t.onUnmounted(()=>{i.value.disconnect()}),{float:e,rect:a,floatObserver:i,setPosition:m}};function k(n){const o=window.matchMedia(n),s=t.ref(o.matches);function r(a){s.value=a.matches}return t.onMounted(()=>{o.addEventListener("change",r)}),t.onUnmounted(()=>{o.removeEventListener("change",r)}),s}function $(n){return{isGreater(o){return k(`(min-width: ${n[o]})`)},isSmaller(o){return k(`(max-width: ${n[o]})`)},isInBetween(o,s){return k(`(min-width: ${n[o]}) and (max-width: ${n[s]})`)}}}function S(n,o,s){if(!n)throw new Error("A target component has to be provided.");if(!o)throw new Error("A callback has to be provided.");const r=a=>{!n.value||a.target===n.value||a.composedPath().includes(n.value)||typeof o=="function"&&o()};s&&t.watch(s,(a,e)=>{e&&e.removeEventListener("click",r),a==null||a.addEventListener("click",r)}),t.onMounted(()=>{s||document.addEventListener("click",r)}),t.onBeforeUnmount(()=>{if(s){s.value.removeEventListener("click",r);return}document.removeEventListener("click",r)})}function F(n,o){if(!n)throw new Error("A target component has to be provided.");if(!o||typeof o!="function")throw new Error("A callback has to be provided.");const s=r=>{o(r)};t.onMounted(()=>{n.value.addEventListener("keydown",s)}),t.onBeforeUnmount(()=>{n.value.removeEventListener("keydown",s)})}function N(n,o){if(!n||typeof n!="function")throw new Error("A callback has to be provided.");const s=r=>{n(r)};t.onMounted(()=>{if(!o){document.addEventListener("keyup",s);return}o.value.addEventListener("keyup",s)}),t.onBeforeUnmount(()=>{if(!o){document.removeEventListener("keyup",s);return}o.value.removeEventListener("keyup",s)})}const O=()=>{const n=t.ref(null),o=t.getCurrentInstance();t.computed(()=>o==null?void 0:o.props.modelValue);const s=p=>p.toLocaleString("it-IT",{minimumFractionDigits:2,maximumFractionDigits:2}),r=p=>parseFloat(p),a=p=>{Number.isNaN(p)||o&&o.emit("update:modelValue",p)},e=p=>i=>{if(!n.value||!i.target)return;let{value:m}=p;m=m.replace(/[^0-9,.]/g,""),n.value.value=m;const c=r(m);a(Number.isNaN(c)?0:c)},u=p=>{if(!n.value||!p.target)return;let i=r(p.target.value.replace(/,/g,"."));Number.isNaN(i)&&(i=0);const m=s(i);n.value.value=m,a(i)};return t.watch(n,(p,i)=>{p&&(i&&(i==null||i.removeEventListener("input",e(p)),i==null||i.removeEventListener("blur",u)),p.addEventListener("input",e(p)),p.addEventListener("blur",u))}),{inputRef:n,parse:r,format:s,setValue:a}},z=t.defineComponent({__name:"FzFloating",props:{isOpen:{type:Boolean,default:!1},position:{default:"auto"},container:{},contentClass:{},openerClass:{},overrideContentClass:{type:Boolean},teleport:{type:Boolean,default:!1}},setup(n){const o=n,s=t.ref(null),r=t.ref(null),a=t.useSlots(),e={position:t.computed(()=>o.position),element:{domRef:r},container:{domRef:t.toRef(o.container||document.body)}};a.opener&&(e.opener={domRef:s});const u=E(e);t.watch(()=>o.position,()=>o.isOpen&&u.setPosition()),t.watch(()=>o.isOpen,i=>{!i||!r.value||(r.value.style.top="0px",r.value.style.left="0px",r.value.style.transform="none",u.setPosition())});const p=t.computed(()=>o.overrideContentClass?o.contentClass:["bg-core-white fixed p-4 z-10",o.contentClass]);return(i,m)=>(t.openBlock(),t.createElementBlock("div",null,[t.renderSlot(i.$slots,"opener-start"),t.createElementVNode("div",{ref_key:"opener",ref:s,class:"inline-flex"},[t.renderSlot(i.$slots,"opener",{isOpen:i.isOpen,floating:t.unref(u)})],512),t.renderSlot(i.$slots,"opener-end"),i.teleport?t.createCommentVNode("",!0):t.withDirectives((t.openBlock(),t.createElementBlock("div",{key:0,ref_key:"content",ref:r,class:t.normalizeClass(["fz__floating__content bg-core-white fixed p-4 z-10",p.value])},[t.renderSlot(i.$slots,"default",{isOpen:i.isOpen,floating:t.unref(u)})],2)),[[t.vShow,i.$slots.default&&(!i.$slots.opener||i.$slots.opener&&i.isOpen)]]),i.teleport?(t.openBlock(),t.createBlock(t.Teleport,{key:1,to:"body"},[t.withDirectives(t.createElementVNode("div",{ref_key:"content",ref:r,class:t.normalizeClass(["fz__floating__content bg-core-white absolute p-4 z-10",p.value])},[t.renderSlot(i.$slots,"default",{isOpen:i.isOpen,floating:t.unref(u)})],2),[[t.vShow,i.$slots.default&&(!i.$slots.opener||i.$slots.opener&&i.isOpen)]])])):t.createCommentVNode("",!0)]))}});h.FzFloating=z,h.useBreakpoints=$,h.useClickOutside=S,h.useCurrency=O,h.useFloating=E,h.useKeyDown=F,h.useKeyUp=N,h.useMediaQuery=k,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});