@pequity/squirrel 1.0.19 → 1.0.20-beta.2

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.
Files changed (146) hide show
  1. package/dist/cjs/chunks/_plugin-vue_export-helper.js +1 -0
  2. package/dist/cjs/chunks/p-action-bar.js +1 -0
  3. package/dist/cjs/chunks/p-card.js +1 -0
  4. package/dist/cjs/chunks/p-checkbox.js +1 -0
  5. package/dist/cjs/chunks/p-dropdown-select.js +1 -0
  6. package/dist/cjs/chunks/p-input-percent.js +1 -0
  7. package/dist/cjs/chunks/p-pagination-info.js +1 -0
  8. package/dist/cjs/chunks/p-pagination.js +1 -0
  9. package/dist/cjs/chunks/p-ring-loader.js +1 -0
  10. package/dist/cjs/chunks/p-select-btn.js +1 -0
  11. package/dist/cjs/chunks/p-select.js +1 -0
  12. package/dist/cjs/chunks/p-table-loader.js +1 -0
  13. package/dist/cjs/chunks/p-tabs.js +1 -0
  14. package/dist/cjs/config.js +1 -0
  15. package/dist/cjs/currency.js +1 -0
  16. package/dist/cjs/dom.js +1 -0
  17. package/dist/cjs/index.js +1 -0
  18. package/dist/cjs/inputClassesMixin.js +1 -0
  19. package/dist/cjs/inputClassesShared.js +1 -0
  20. package/dist/cjs/listKeyboardNavigation.js +1 -0
  21. package/dist/cjs/number.js +1 -0
  22. package/dist/cjs/object.js +1 -0
  23. package/dist/cjs/p-action-bar.js +1 -0
  24. package/dist/cjs/p-alert.js +1 -0
  25. package/dist/cjs/p-avatar.js +1 -0
  26. package/dist/cjs/p-btn.js +5 -0
  27. package/dist/cjs/p-card.js +1 -0
  28. package/dist/cjs/p-checkbox.js +1 -0
  29. package/dist/cjs/p-chips.js +1 -0
  30. package/dist/cjs/p-close-btn.js +1 -0
  31. package/dist/cjs/p-date-picker.js +1 -0
  32. package/dist/cjs/p-drawer.js +1 -0
  33. package/dist/cjs/p-dropdown-select.js +1 -0
  34. package/dist/cjs/p-dropdown.js +1 -0
  35. package/dist/cjs/p-file-upload.js +1 -0
  36. package/dist/cjs/p-info-icon.js +1 -0
  37. package/dist/cjs/p-inline-date-picker.js +1 -0
  38. package/dist/cjs/p-input-number.js +1 -0
  39. package/dist/cjs/p-input-percent.js +1 -0
  40. package/dist/cjs/p-input-search.js +1 -0
  41. package/dist/cjs/p-input.js +1 -0
  42. package/dist/cjs/p-loading.js +1 -0
  43. package/dist/cjs/p-modal.js +1 -0
  44. package/dist/cjs/p-pagination-info.js +1 -0
  45. package/dist/cjs/p-pagination.js +1 -0
  46. package/dist/cjs/p-progress-bar.js +1 -0
  47. package/dist/cjs/p-ring-loader.js +1 -0
  48. package/dist/cjs/p-select-btn.js +1 -0
  49. package/dist/cjs/p-select-list.js +1 -0
  50. package/dist/cjs/p-select-pill.js +1 -0
  51. package/dist/cjs/p-select.js +1 -0
  52. package/dist/cjs/p-skeleton-loader.js +1 -0
  53. package/dist/cjs/p-table-filter-icon.js +1 -0
  54. package/dist/cjs/p-table-header-cell.js +1 -0
  55. package/dist/cjs/p-table-loader.js +1 -0
  56. package/dist/cjs/p-table-sort.js +1 -0
  57. package/dist/cjs/p-table-td.js +1 -0
  58. package/dist/cjs/p-table.js +1 -0
  59. package/dist/cjs/p-tabs.js +1 -0
  60. package/dist/cjs/p-textarea.js +1 -0
  61. package/dist/cjs/p-toggle.js +1 -0
  62. package/dist/cjs/pagination.js +1 -0
  63. package/dist/cjs/string.js +1 -0
  64. package/dist/cjs/tailwind.js +1 -0
  65. package/dist/cjs/text.js +1 -0
  66. package/dist/cjs/useInputClasses.js +1 -0
  67. package/dist/cjs/usePLoading.js +1 -0
  68. package/dist/cjs/usePModal.js +1 -0
  69. package/dist/cjs/usePTableColResize.js +1 -0
  70. package/dist/cjs/usePTableRowVirtualizer.js +1 -0
  71. package/dist/cjs/useSelectList.js +1 -0
  72. package/dist/es/chunks/_plugin-vue_export-helper.js +9 -0
  73. package/dist/es/chunks/p-action-bar.js +52 -0
  74. package/dist/es/chunks/p-card.js +25 -0
  75. package/dist/es/chunks/p-checkbox.js +22 -0
  76. package/dist/es/chunks/p-dropdown-select.js +366 -0
  77. package/dist/es/chunks/p-input-percent.js +45 -0
  78. package/dist/es/chunks/p-pagination-info.js +61 -0
  79. package/dist/es/chunks/p-pagination.js +93 -0
  80. package/dist/es/chunks/p-ring-loader.js +59 -0
  81. package/dist/es/chunks/p-select-btn.js +77 -0
  82. package/dist/es/chunks/p-select.js +97 -0
  83. package/dist/es/chunks/p-table-loader.js +57 -0
  84. package/dist/es/chunks/p-tabs.js +47 -0
  85. package/dist/es/config.js +105 -0
  86. package/dist/es/currency.js +9 -0
  87. package/dist/es/dom.js +15 -0
  88. package/dist/es/index.js +836 -0
  89. package/dist/es/inputClassesMixin.js +45 -0
  90. package/dist/es/inputClassesShared.js +61 -0
  91. package/dist/es/listKeyboardNavigation.js +60 -0
  92. package/dist/es/number.js +4 -0
  93. package/dist/es/object.js +4 -0
  94. package/dist/es/p-action-bar.js +4 -0
  95. package/dist/es/p-alert.js +61 -0
  96. package/dist/es/p-avatar.js +69 -0
  97. package/dist/es/p-btn.js +317 -0
  98. package/dist/es/p-card.js +4 -0
  99. package/dist/es/p-checkbox.js +4 -0
  100. package/dist/es/p-chips.js +91 -0
  101. package/dist/es/p-close-btn.js +33 -0
  102. package/dist/es/p-date-picker.js +132 -0
  103. package/dist/es/p-drawer.js +235 -0
  104. package/dist/es/p-dropdown-select.js +4 -0
  105. package/dist/es/p-dropdown.js +120 -0
  106. package/dist/es/p-file-upload.js +13 -0
  107. package/dist/es/p-info-icon.js +31 -0
  108. package/dist/es/p-inline-date-picker.js +132 -0
  109. package/dist/es/p-input-number.js +129 -0
  110. package/dist/es/p-input-percent.js +4 -0
  111. package/dist/es/p-input-search.js +109 -0
  112. package/dist/es/p-input.js +84 -0
  113. package/dist/es/p-loading.js +30 -0
  114. package/dist/es/p-modal.js +283 -0
  115. package/dist/es/p-pagination-info.js +4 -0
  116. package/dist/es/p-pagination.js +4 -0
  117. package/dist/es/p-progress-bar.js +39 -0
  118. package/dist/es/p-ring-loader.js +4 -0
  119. package/dist/es/p-select-btn.js +4 -0
  120. package/dist/es/p-select-list.js +4 -0
  121. package/dist/es/p-select-pill.js +95 -0
  122. package/dist/es/p-select.js +4 -0
  123. package/dist/es/p-skeleton-loader.js +69 -0
  124. package/dist/es/p-table-filter-icon.js +21 -0
  125. package/dist/es/p-table-header-cell.js +71 -0
  126. package/dist/es/p-table-loader.js +4 -0
  127. package/dist/es/p-table-sort.js +8 -0
  128. package/dist/es/p-table-td.js +42 -0
  129. package/dist/es/p-table.js +8 -0
  130. package/dist/es/p-tabs.js +4 -0
  131. package/dist/es/p-textarea.js +72 -0
  132. package/dist/es/p-toggle.js +110 -0
  133. package/dist/es/pagination.js +12 -0
  134. package/dist/es/string.js +4 -0
  135. package/dist/es/tailwind.js +3794 -0
  136. package/dist/es/text.js +11 -0
  137. package/dist/es/useInputClasses.js +28 -0
  138. package/dist/es/usePLoading.js +19 -0
  139. package/dist/es/usePModal.js +18 -0
  140. package/dist/es/usePTableColResize.js +49 -0
  141. package/dist/es/usePTableRowVirtualizer.js +22 -0
  142. package/dist/es/useSelectList.js +143 -0
  143. package/dist/style.css +1 -1
  144. package/package.json +22 -20
  145. package/dist/squirrel.cjs.js +0 -5
  146. package/dist/squirrel.es.js +0 -8220
@@ -0,0 +1,11 @@
1
+ const c = (s, i) => {
2
+ const r = String(i).trim(), t = String(s).trim(), n = t.indexOf(r);
3
+ if (n >= 0) {
4
+ const e = t.substring(0, n), g = t.substring(n, n + r.length), o = t.substring(n + r.length);
5
+ return [e, g, o];
6
+ } else
7
+ return [t];
8
+ };
9
+ export {
10
+ c as splitStringForHighlight
11
+ };
@@ -0,0 +1,28 @@
1
+ import { INPUT_BASE as A, INPUT_SIZES as v, SPACING_PREFIX as C, SPACING_LEFT as p, SPACING_SUFFIX as L, SPACING_RIGHT as l, INPUT_ERROR as T, INPUT_NORMAL as N, LABEL_BASE as P, LABEL_SIZES as B, LABEL_REQUIRED as g, SELECT_BASE as m, SELECT_ARROW as x, SELECT_SIZES as G, TEXTAREA_BASE as U, ERROR_MSG as d } from "./inputClassesShared.js";
2
+ import { ref as r, toRefs as M, computed as t } from "vue";
3
+ const F = {
4
+ size: r("md"),
5
+ errorMsg: r(""),
6
+ required: r(!1),
7
+ prefix: r(!1),
8
+ suffix: r(!1)
9
+ };
10
+ function Z(o) {
11
+ const n = { ...F, ...M(o) }, { size: e, errorMsg: E, required: c, prefix: S, suffix: $ } = n, a = t(() => {
12
+ const s = `${A} ${v[e.value]}`, u = S.value ? C[e.value] : p[e.value], i = $.value ? L[e.value] : l[e.value];
13
+ return `${s} ${u} ${i} ${E.value ? T : N}`;
14
+ }), f = t(() => {
15
+ const s = `${P} ${B[e.value]}`;
16
+ return c.value ? `${s} ${g}` : s;
17
+ }), I = t(() => `${a.value.replace(` ${l[e.value]}`, "")} ${m} ${x} ${G[e.value]}`), R = t(() => `${a.value} ${U}`), _ = r(d);
18
+ return {
19
+ inputClasses: a,
20
+ labelClasses: f,
21
+ selectClasses: I,
22
+ textareaClasses: R,
23
+ errorMsgClasses: _
24
+ };
25
+ }
26
+ export {
27
+ Z as useInputClasses
28
+ };
@@ -0,0 +1,19 @@
1
+ import { ref as u, getCurrentScope as a, onScopeDispose as c } from "vue";
2
+ import { uniqueId as p } from "lodash-es";
3
+ const e = u(!1), o = [];
4
+ let n;
5
+ const g = (i) => {
6
+ const { delay: t } = { delay: 200, ...i }, l = a(), r = () => {
7
+ o.length === 0 && t > 0 ? n = setTimeout(() => {
8
+ e.value = !0;
9
+ }, t) : e.value = !0, o.push(p());
10
+ }, s = () => {
11
+ o.length === 1 && (e.value = !1), clearTimeout(n), o.pop();
12
+ };
13
+ return l && c(() => {
14
+ s();
15
+ }), { show: e, loadingShow: r, loadingHide: s };
16
+ };
17
+ export {
18
+ g as usePLoading
19
+ };
@@ -0,0 +1,18 @@
1
+ import { reactive as l } from "vue";
2
+ const o = l({
3
+ modals: {}
4
+ }), c = () => {
5
+ const s = (e) => {
6
+ o.modals[e] = !0;
7
+ }, t = (e) => {
8
+ delete o.modals[e];
9
+ };
10
+ return { state: o, show: s, hide: t, hideAll: () => {
11
+ Object.keys(o.modals).forEach((e) => {
12
+ t(e);
13
+ });
14
+ } };
15
+ };
16
+ export {
17
+ c as usePModal
18
+ };
@@ -0,0 +1,49 @@
1
+ import { MIN_WIDTH_COL_RESIZE as h } from "./p-table.js";
2
+ import { ref as c, onMounted as x, onBeforeUnmount as W, watch as b, nextTick as C } from "vue";
3
+ const T = (p) => {
4
+ const { enabled: u, ths: a } = p, o = c(!1), r = c("0px"), d = c(0), v = c(-1), R = (e) => {
5
+ if (r.value = `${e.clientX}px`, o.value) {
6
+ document.body.classList.add("cursor-col-resize");
7
+ const t = a.value[v.value], s = t.getBoundingClientRect(), l = e.clientX - s.left - t.offsetWidth, i = t.offsetWidth + l;
8
+ f(i), r.value = e.clientX < s.left ? "0px" : `${e.clientX}px`;
9
+ }
10
+ }, z = (e, t) => {
11
+ e.detail === 1 && (e.preventDefault(), o.value = !0, d.value = a.value[t].offsetWidth, v.value = t);
12
+ }, n = () => {
13
+ o.value && (o.value = !1, document.body.classList.remove("cursor-col-resize"));
14
+ }, g = (e) => {
15
+ var l;
16
+ o.value = !0;
17
+ const t = (l = a.value[e].closest("table")) == null ? void 0 : l.querySelectorAll("tbody tr td:nth-child(" + (e + 1) + ") div.w-max");
18
+ if (!t)
19
+ return;
20
+ const s = [...t].reduce((i, L) => {
21
+ const m = L.getBoundingClientRect().width;
22
+ return m > i ? m : i;
23
+ }, 0);
24
+ f(s), C(() => {
25
+ o.value = !1;
26
+ });
27
+ }, f = (e) => {
28
+ d.value = e > h ? Math.ceil(e) : h;
29
+ };
30
+ return x(() => {
31
+ u.value && document.addEventListener("mouseup", n);
32
+ }), W(() => {
33
+ u.value && document.removeEventListener("mouseup", n);
34
+ }), b(u, (e) => {
35
+ e ? document.addEventListener("mouseup", n) : document.removeEventListener("mouseup", n);
36
+ }), {
37
+ isColResizing: o,
38
+ colResizeHandleLeft: r,
39
+ colResizingIndex: v,
40
+ colResizingWidth: d,
41
+ colResize: R,
42
+ colResizeStart: z,
43
+ colResizeStop: n,
44
+ colResizeFitToData: g
45
+ };
46
+ };
47
+ export {
48
+ T as usePTableColResize
49
+ };
@@ -0,0 +1,22 @@
1
+ import { ref as r, computed as u, isRef as s, unref as d } from "vue";
2
+ import { useVirtualizer as v } from "@tanstack/vue-virtual";
3
+ const E = (a) => {
4
+ if (!a.value)
5
+ return {
6
+ virtualizer: null,
7
+ virtualRows: r([{ key: 0, index: 0 }]),
8
+ paddingTop: r(0),
9
+ paddingBottom: r(0),
10
+ measureElement: () => r(void 0)
11
+ };
12
+ const e = v(a), t = u(() => e.value.getVirtualItems()), o = u(() => t.value.length > 0 ? t.value[0].start : 0), i = u(
13
+ () => t.value.length > 0 ? (e == null ? void 0 : e.value.getTotalSize()) - t.value[t.value.length - 1].end : 0
14
+ );
15
+ return { virtualizer: e, virtualRows: t, paddingTop: o, paddingBottom: i, measureElement: (l) => {
16
+ const n = s(l) ? d(l) : l == null ? void 0 : l.$el;
17
+ n && e.value.measureElement(n);
18
+ } };
19
+ };
20
+ export {
21
+ E as usePTableRowVirtualizer
22
+ };
@@ -0,0 +1,143 @@
1
+ import { ref as S, computed as f, watch as y, onUnmounted as U, nextTick as Y } from "vue";
2
+ import { setupListKeyboardNavigation as Z } from "./listKeyboardNavigation.js";
3
+ import { cloneDeep as G, uniqBy as H } from "lodash-es";
4
+ import { isObject as C } from "./object.js";
5
+ import { toString as J } from "./string.js";
6
+ import { useVirtualizer as Q } from "@tanstack/vue-virtual";
7
+ const W = (e) => {
8
+ let i = Array.isArray(e) ? e.slice() : [];
9
+ return i.length && !C(i[0]) && (i = i.filter((o, c, u) => u.indexOf(o) === c).map((o) => ({ value: o, text: o }))), i;
10
+ }, X = (e, i, o, c, u) => {
11
+ let n = e;
12
+ return i && C(e) && (o ? n = e.map((d) => d[c]) : n = e && e[c]), Array.isArray(n) ? n : [n];
13
+ }, T = () => new Promise((e) => requestAnimationFrame(() => requestAnimationFrame(e))), L = (e) => new Promise((i) => setTimeout(i, e || 0)), w = { sm: 32, md: 40, lg: 48 }, R = "clear-both block w-full cursor-pointer whitespace-nowrap py-1 px-3 text-left text-sm font-medium hover:bg-p-blue-10", O = "selected", ae = (e, i, o, c) => {
14
+ let u = null;
15
+ const n = S([]), s = S([]), d = S(""), x = f(() => n.value.filter((l) => s.value.includes(l[e.itemValue]))), m = f(() => G(n.value).filter((l) => String(l[e.itemText]).toLocaleLowerCase().includes(String(d.value).toLocaleLowerCase()))), E = f(() => e.itemSize ? e.itemSize : w[e.size]), z = f(() => m.value.map((t) => t[e.itemValue]).every((t) => s.value.includes(t))), I = Q(
16
+ f(() => ({
17
+ count: m.value.length,
18
+ getScrollElement: () => o.value,
19
+ getItemKey: (l) => J(m.value[l][e.itemValue]),
20
+ estimateSize: () => e.itemSize ? e.itemSize : w[e.size],
21
+ overscan: 10
22
+ }))
23
+ ), _ = (l) => {
24
+ var t;
25
+ return (t = m.value[l]) == null ? void 0 : t[e.itemValue];
26
+ }, q = (l) => {
27
+ var t;
28
+ return (t = m.value[l]) == null ? void 0 : t[e.itemText];
29
+ };
30
+ y(
31
+ () => e.modelValue,
32
+ (l) => {
33
+ s.value = X(
34
+ l,
35
+ e.valueIsObject,
36
+ e.multiple,
37
+ e.itemValue,
38
+ n.value
39
+ );
40
+ },
41
+ {
42
+ immediate: !0,
43
+ deep: !0
44
+ }
45
+ ), y(d, async (l) => {
46
+ if (await B(), await T(), !u)
47
+ return;
48
+ const t = u.getItems().filter((a) => a.style.transform.includes("translateY(0px)"))[0];
49
+ l || e.multiple ? u.setFocusedItem(t) : A() > -1 ? b() : u.clearFocusedState();
50
+ }), U(() => {
51
+ u == null || u.destroy(), u = null;
52
+ });
53
+ const j = () => {
54
+ if (e.selectedTopShown) {
55
+ const l = n.value.reduce(
56
+ (t, a) => (s.value.includes(a[e.itemValue]) ? t[0].push(a) : t[1].push(a), t),
57
+ [[], []]
58
+ );
59
+ n.value = l[0].sort(
60
+ (t, a) => String(t[e.itemText]).localeCompare(String(a[e.itemText]), void 0, {
61
+ numeric: !0,
62
+ sensitivity: "base"
63
+ })
64
+ ).concat(l[1]);
65
+ }
66
+ }, N = async (l, t) => {
67
+ var r, F;
68
+ const a = l.currentTarget;
69
+ e.multiple && e.searchable && document.activeElement !== ((r = i.value) == null ? void 0 : r.$el.querySelector("input")) && ((F = i.value) == null || F.$el.querySelector("input").focus()), e.multiple ? g(t) ? c("update:modelValue", v(s.value.filter((D) => D !== t))) : c("update:modelValue", v([...s.value, t])) : c("update:modelValue", e.valueIsObject ? V(t) : t), await Y(), u == null || u.setFocusedItem(a.parentElement), c("select", t);
70
+ }, v = (l) => e.valueIsObject ? l.map((t) => V(t)) : l, V = (l) => n.value.find((t) => t[e.itemValue] === l), g = (l) => s.value.includes(l), h = () => {
71
+ u ? u.init() : u = Z({
72
+ itemContainer: o.value,
73
+ itemSelector: "[p-select-list-option]",
74
+ itemSelectSelector: "[p-select-list-option-item]",
75
+ itemFocusClass: "bg-p-blue-10"
76
+ });
77
+ }, M = () => {
78
+ u == null || u.destroy(), u = null;
79
+ }, $ = async () => {
80
+ h();
81
+ }, k = () => {
82
+ u == null || u.clearFocusedState();
83
+ }, B = async () => {
84
+ I.value.scrollToOffset(0), await T();
85
+ }, b = async (l) => {
86
+ var a;
87
+ l != null && l.wait && await L(l.wait);
88
+ const t = A();
89
+ if (o.value && I.value && t > -1) {
90
+ I.value.scrollToIndex(t, {
91
+ align: "center"
92
+ }), await L(), await T();
93
+ const r = (a = o.value) == null ? void 0 : a.querySelector(`.${O}`);
94
+ u == null || u.setFocusedItem(r == null ? void 0 : r.parentNode);
95
+ }
96
+ }, A = () => n.value.indexOf(x.value[0]), K = () => {
97
+ if (!e.multiple)
98
+ return;
99
+ const l = s.value, t = m.value.map((r) => r[e.itemValue]), a = H([...l, ...t], (r) => r);
100
+ c("update:modelValue", v(a));
101
+ }, P = () => {
102
+ d.value = "", c("update:modelValue", []);
103
+ };
104
+ return y(
105
+ () => e.items,
106
+ (l) => {
107
+ if (n.value = W(l), e.multiple && e.items.length && s.value.length) {
108
+ const t = s.value.filter((a) => n.value.some((r) => r[e.itemValue] === a));
109
+ t.length !== s.value.length && (console.warn("[p-select-list] Some values in the modelValue are not in the items list."), c("update:modelValue", v(t)));
110
+ }
111
+ },
112
+ {
113
+ immediate: !0
114
+ }
115
+ ), {
116
+ LIST_ITEM_SIZES: w,
117
+ LIST_ITEM_CLASS: R,
118
+ LIST_ITEM_ACTIVE_CLASS: O,
119
+ selectedItems: x,
120
+ computedItems: m,
121
+ computedItemSize: E,
122
+ computedInsideSelected: z,
123
+ internalItems: n,
124
+ internalValue: s,
125
+ search: d,
126
+ rowVirtualizer: I,
127
+ getValue: _,
128
+ getText: q,
129
+ isSelected: g,
130
+ setupNavigationSvc: h,
131
+ destroyNavigationSvc: M,
132
+ select: N,
133
+ onFocus: $,
134
+ onMousemove: k,
135
+ scrollToActiveItem: b,
136
+ putSelectedItemsOnTop: j,
137
+ selectAll: K,
138
+ clearAll: P
139
+ };
140
+ };
141
+ export {
142
+ ae as useSelectList
143
+ };