@fiscozen/composables 0.1.21 → 0.1.22

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