@star-insure/sdk 6.8.0 → 6.8.1

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 (267) hide show
  1. package/dist/sdk.es10.js +30 -30
  2. package/dist/sdk.es10.js.map +1 -1
  3. package/dist/sdk.es101.js.map +1 -1
  4. package/dist/sdk.es102.js.map +1 -1
  5. package/dist/sdk.es103.js +3 -3
  6. package/dist/sdk.es103.js.map +1 -1
  7. package/dist/sdk.es104.js +4 -4
  8. package/dist/sdk.es104.js.map +1 -1
  9. package/dist/sdk.es105.js +6 -6
  10. package/dist/sdk.es105.js.map +1 -1
  11. package/dist/sdk.es106.js +5 -5
  12. package/dist/sdk.es106.js.map +1 -1
  13. package/dist/sdk.es107.js +4 -4
  14. package/dist/sdk.es107.js.map +1 -1
  15. package/dist/sdk.es108.js +4 -4
  16. package/dist/sdk.es108.js.map +1 -1
  17. package/dist/sdk.es109.js +4 -4
  18. package/dist/sdk.es109.js.map +1 -1
  19. package/dist/sdk.es11.js.map +1 -1
  20. package/dist/sdk.es110.js +5 -5
  21. package/dist/sdk.es110.js.map +1 -1
  22. package/dist/sdk.es111.js +5 -5
  23. package/dist/sdk.es111.js.map +1 -1
  24. package/dist/sdk.es112.js +7 -7
  25. package/dist/sdk.es112.js.map +1 -1
  26. package/dist/sdk.es113.js +7 -7
  27. package/dist/sdk.es113.js.map +1 -1
  28. package/dist/sdk.es114.js +5 -5
  29. package/dist/sdk.es114.js.map +1 -1
  30. package/dist/sdk.es115.js +5 -5
  31. package/dist/sdk.es115.js.map +1 -1
  32. package/dist/sdk.es116.js +4 -4
  33. package/dist/sdk.es116.js.map +1 -1
  34. package/dist/sdk.es117.js +5 -5
  35. package/dist/sdk.es117.js.map +1 -1
  36. package/dist/sdk.es118.js +5 -5
  37. package/dist/sdk.es118.js.map +1 -1
  38. package/dist/sdk.es119.js +5 -5
  39. package/dist/sdk.es119.js.map +1 -1
  40. package/dist/sdk.es12.js.map +1 -1
  41. package/dist/sdk.es120.js +4 -4
  42. package/dist/sdk.es120.js.map +1 -1
  43. package/dist/sdk.es121.js +4 -4
  44. package/dist/sdk.es121.js.map +1 -1
  45. package/dist/sdk.es122.js +4 -4
  46. package/dist/sdk.es122.js.map +1 -1
  47. package/dist/sdk.es123.js +5 -5
  48. package/dist/sdk.es123.js.map +1 -1
  49. package/dist/sdk.es124.js +5 -5
  50. package/dist/sdk.es124.js.map +1 -1
  51. package/dist/sdk.es125.js +5 -5
  52. package/dist/sdk.es125.js.map +1 -1
  53. package/dist/sdk.es126.js +5 -5
  54. package/dist/sdk.es126.js.map +1 -1
  55. package/dist/sdk.es127.js +5 -5
  56. package/dist/sdk.es127.js.map +1 -1
  57. package/dist/sdk.es128.js +5 -5
  58. package/dist/sdk.es128.js.map +1 -1
  59. package/dist/sdk.es129.js +4 -4
  60. package/dist/sdk.es129.js.map +1 -1
  61. package/dist/sdk.es13.js.map +1 -1
  62. package/dist/sdk.es130.js +5 -5
  63. package/dist/sdk.es130.js.map +1 -1
  64. package/dist/sdk.es131.js +5 -5
  65. package/dist/sdk.es131.js.map +1 -1
  66. package/dist/sdk.es132.js +4 -4
  67. package/dist/sdk.es132.js.map +1 -1
  68. package/dist/sdk.es133.js +4 -4
  69. package/dist/sdk.es133.js.map +1 -1
  70. package/dist/sdk.es134.js.map +1 -1
  71. package/dist/sdk.es135.js.map +1 -1
  72. package/dist/sdk.es137.js.map +1 -1
  73. package/dist/sdk.es138.js.map +1 -1
  74. package/dist/sdk.es139.js +5 -7
  75. package/dist/sdk.es139.js.map +1 -1
  76. package/dist/sdk.es14.js.map +1 -1
  77. package/dist/sdk.es140.js +25 -11
  78. package/dist/sdk.es140.js.map +1 -1
  79. package/dist/sdk.es141.js +99 -13
  80. package/dist/sdk.es141.js.map +1 -1
  81. package/dist/sdk.es142.js +13 -13
  82. package/dist/sdk.es142.js.map +1 -1
  83. package/dist/sdk.es143.js +7 -5
  84. package/dist/sdk.es143.js.map +1 -1
  85. package/dist/sdk.es144.js +47 -25
  86. package/dist/sdk.es144.js.map +1 -1
  87. package/dist/sdk.es145.js +9 -99
  88. package/dist/sdk.es145.js.map +1 -1
  89. package/dist/sdk.es146.js +10 -47
  90. package/dist/sdk.es146.js.map +1 -1
  91. package/dist/sdk.es147.js +13 -9
  92. package/dist/sdk.es147.js.map +1 -1
  93. package/dist/sdk.es148.js +10 -9
  94. package/dist/sdk.es148.js.map +1 -1
  95. package/dist/sdk.es149.js +10 -13
  96. package/dist/sdk.es149.js.map +1 -1
  97. package/dist/sdk.es15.js.map +1 -1
  98. package/dist/sdk.es150.js +13 -10
  99. package/dist/sdk.es150.js.map +1 -1
  100. package/dist/sdk.es151.js.map +1 -1
  101. package/dist/sdk.es152.js.map +1 -1
  102. package/dist/sdk.es153.js.map +1 -1
  103. package/dist/sdk.es154.js +4 -4
  104. package/dist/sdk.es154.js.map +1 -1
  105. package/dist/sdk.es155.js +1 -1
  106. package/dist/sdk.es156.js.map +1 -1
  107. package/dist/sdk.es157.js +11 -11
  108. package/dist/sdk.es157.js.map +1 -1
  109. package/dist/sdk.es158.js.map +1 -1
  110. package/dist/sdk.es159.js.map +1 -1
  111. package/dist/sdk.es16.js +13 -13
  112. package/dist/sdk.es16.js.map +1 -1
  113. package/dist/sdk.es160.js +7 -7
  114. package/dist/sdk.es160.js.map +1 -1
  115. package/dist/sdk.es17.js.map +1 -1
  116. package/dist/sdk.es18.js.map +1 -1
  117. package/dist/sdk.es19.js.map +1 -1
  118. package/dist/sdk.es2.js +2 -2
  119. package/dist/sdk.es2.js.map +1 -1
  120. package/dist/sdk.es20.js.map +1 -1
  121. package/dist/sdk.es21.js.map +1 -1
  122. package/dist/sdk.es22.js.map +1 -1
  123. package/dist/sdk.es23.js.map +1 -1
  124. package/dist/sdk.es24.js.map +1 -1
  125. package/dist/sdk.es25.js.map +1 -1
  126. package/dist/sdk.es26.js +1 -1
  127. package/dist/sdk.es26.js.map +1 -1
  128. package/dist/sdk.es27.js +1 -1
  129. package/dist/sdk.es27.js.map +1 -1
  130. package/dist/sdk.es28.js +1 -1
  131. package/dist/sdk.es28.js.map +1 -1
  132. package/dist/sdk.es29.js +1 -1
  133. package/dist/sdk.es29.js.map +1 -1
  134. package/dist/sdk.es3.js +17 -17
  135. package/dist/sdk.es3.js.map +1 -1
  136. package/dist/sdk.es30.js +1 -1
  137. package/dist/sdk.es30.js.map +1 -1
  138. package/dist/sdk.es31.js +1 -1
  139. package/dist/sdk.es31.js.map +1 -1
  140. package/dist/sdk.es32.js.map +1 -1
  141. package/dist/sdk.es33.js +1 -1
  142. package/dist/sdk.es33.js.map +1 -1
  143. package/dist/sdk.es34.js.map +1 -1
  144. package/dist/sdk.es35.js.map +1 -1
  145. package/dist/sdk.es36.js +21 -21
  146. package/dist/sdk.es36.js.map +1 -1
  147. package/dist/sdk.es37.js +120 -55
  148. package/dist/sdk.es37.js.map +1 -1
  149. package/dist/sdk.es38.js +55 -120
  150. package/dist/sdk.es38.js.map +1 -1
  151. package/dist/sdk.es39.js +1 -1
  152. package/dist/sdk.es4.js.map +1 -1
  153. package/dist/sdk.es40.js +11 -9
  154. package/dist/sdk.es40.js.map +1 -1
  155. package/dist/sdk.es41.js.map +1 -1
  156. package/dist/sdk.es42.js +8 -3
  157. package/dist/sdk.es42.js.map +1 -1
  158. package/dist/sdk.es43.js +2 -5
  159. package/dist/sdk.es43.js.map +1 -1
  160. package/dist/sdk.es44.js +25 -7
  161. package/dist/sdk.es44.js.map +1 -1
  162. package/dist/sdk.es45.js +602 -2
  163. package/dist/sdk.es45.js.map +1 -1
  164. package/dist/sdk.es46.js +5 -26
  165. package/dist/sdk.es46.js.map +1 -1
  166. package/dist/sdk.es47.js +21 -601
  167. package/dist/sdk.es47.js.map +1 -1
  168. package/dist/sdk.es48.js +77 -19
  169. package/dist/sdk.es48.js.map +1 -1
  170. package/dist/sdk.es49.js +63 -66
  171. package/dist/sdk.es49.js.map +1 -1
  172. package/dist/sdk.es5.js.map +1 -1
  173. package/dist/sdk.es50.js +227 -72
  174. package/dist/sdk.es50.js.map +1 -1
  175. package/dist/sdk.es51.js +25 -231
  176. package/dist/sdk.es51.js.map +1 -1
  177. package/dist/sdk.es52.js +3 -26
  178. package/dist/sdk.es52.js.map +1 -1
  179. package/dist/sdk.es55.js +9 -4
  180. package/dist/sdk.es55.js.map +1 -1
  181. package/dist/sdk.es56.js +6 -7
  182. package/dist/sdk.es56.js.map +1 -1
  183. package/dist/sdk.es57.js +7 -6
  184. package/dist/sdk.es57.js.map +1 -1
  185. package/dist/sdk.es58.js +4 -8
  186. package/dist/sdk.es58.js.map +1 -1
  187. package/dist/sdk.es59.js +15 -6
  188. package/dist/sdk.es59.js.map +1 -1
  189. package/dist/sdk.es6.js.map +1 -1
  190. package/dist/sdk.es60.js +8 -7
  191. package/dist/sdk.es60.js.map +1 -1
  192. package/dist/sdk.es61.js +9 -4
  193. package/dist/sdk.es61.js.map +1 -1
  194. package/dist/sdk.es62.js +8 -15
  195. package/dist/sdk.es62.js.map +1 -1
  196. package/dist/sdk.es63.js +636 -8
  197. package/dist/sdk.es63.js.map +1 -1
  198. package/dist/sdk.es64.js +74 -10
  199. package/dist/sdk.es64.js.map +1 -1
  200. package/dist/sdk.es65.js +4 -8
  201. package/dist/sdk.es65.js.map +1 -1
  202. package/dist/sdk.es66.js +17 -636
  203. package/dist/sdk.es66.js.map +1 -1
  204. package/dist/sdk.es67.js +5 -74
  205. package/dist/sdk.es67.js.map +1 -1
  206. package/dist/sdk.es68.js +18 -5
  207. package/dist/sdk.es68.js.map +1 -1
  208. package/dist/sdk.es69.js +5 -19
  209. package/dist/sdk.es69.js.map +1 -1
  210. package/dist/sdk.es7.js.map +1 -1
  211. package/dist/sdk.es70.js +8 -4
  212. package/dist/sdk.es70.js.map +1 -1
  213. package/dist/sdk.es71.js +48 -17
  214. package/dist/sdk.es71.js.map +1 -1
  215. package/dist/sdk.es72.js +7 -5
  216. package/dist/sdk.es72.js.map +1 -1
  217. package/dist/sdk.es73.js +57 -9
  218. package/dist/sdk.es73.js.map +1 -1
  219. package/dist/sdk.es74.js +65 -49
  220. package/dist/sdk.es74.js.map +1 -1
  221. package/dist/sdk.es75.js +8 -7
  222. package/dist/sdk.es75.js.map +1 -1
  223. package/dist/sdk.es76.js +4 -57
  224. package/dist/sdk.es76.js.map +1 -1
  225. package/dist/sdk.es77.js +7 -65
  226. package/dist/sdk.es77.js.map +1 -1
  227. package/dist/sdk.es78.js +2 -9
  228. package/dist/sdk.es78.js.map +1 -1
  229. package/dist/sdk.es79.js +11 -4
  230. package/dist/sdk.es79.js.map +1 -1
  231. package/dist/sdk.es8.js.map +1 -1
  232. package/dist/sdk.es80.js +2 -2
  233. package/dist/sdk.es80.js.map +1 -1
  234. package/dist/sdk.es82.js +52 -3673
  235. package/dist/sdk.es82.js.map +1 -1
  236. package/dist/sdk.es83.js +10 -6
  237. package/dist/sdk.es83.js.map +1 -1
  238. package/dist/sdk.es84.js +21 -2
  239. package/dist/sdk.es84.js.map +1 -1
  240. package/dist/sdk.es85.js +3688 -52
  241. package/dist/sdk.es85.js.map +1 -1
  242. package/dist/sdk.es86.js +6 -10
  243. package/dist/sdk.es86.js.map +1 -1
  244. package/dist/sdk.es87.js +2 -21
  245. package/dist/sdk.es87.js.map +1 -1
  246. package/dist/sdk.es88.js +1 -1
  247. package/dist/sdk.es89.js +5 -10
  248. package/dist/sdk.es89.js.map +1 -1
  249. package/dist/sdk.es9.js.map +1 -1
  250. package/dist/sdk.es90.js +9 -9
  251. package/dist/sdk.es90.js.map +1 -1
  252. package/dist/sdk.es91.js +10 -12
  253. package/dist/sdk.es91.js.map +1 -1
  254. package/dist/sdk.es92.js +12 -10
  255. package/dist/sdk.es92.js.map +1 -1
  256. package/dist/sdk.es93.js +10 -18
  257. package/dist/sdk.es93.js.map +1 -1
  258. package/dist/sdk.es94.js +18 -5
  259. package/dist/sdk.es94.js.map +1 -1
  260. package/dist/sdk.es95.js +1 -1
  261. package/dist/sdk.es95.js.map +1 -1
  262. package/dist/sdk.es96.js +6 -6
  263. package/dist/sdk.es96.js.map +1 -1
  264. package/dist/sdk.es97.js +2 -2
  265. package/dist/sdk.es98.js.map +1 -1
  266. package/dist/sdk.es99.js.map +1 -1
  267. package/package.json +4 -5
package/dist/sdk.es50.js CHANGED
@@ -1,80 +1,235 @@
1
- import { j as t } from "./sdk.es39.js";
2
- import x from "react";
3
- import { Tooltip as p } from "react-tooltip";
4
- import { Link as z, router as F } from "@inertiajs/react";
5
- import { useClickOutside as T } from "./sdk.es6.js";
1
+ import { j as s } from "./sdk.es39.js";
2
+ import { router as g } from "@inertiajs/react";
3
+ import m from "react";
4
+ import T from "react-select";
5
+ import { HiChevronDown as k } from "./sdk.es51.js";
6
+ import D from "./sdk.es84.js";
7
+ import E from "./sdk.es46.js";
8
+ import y from "./sdk.es17.js";
9
+ import "@headlessui/react";
6
10
  import "./sdk.es9.js";
7
- import "./sdk.es10.js";
8
- import "./sdk.es11.js";
9
- import "./sdk.es12.js";
10
- import $ from "./sdk.es43.js";
11
- function C({ title: r, href: i, as: l = "Link", target: h = "_self", type: v, onClick: d = () => {
12
- }, shortcutKey: a, backgroundColor: f, hoverBackgroundColor: u, textColor: g, actions: c }) {
13
- const m = $("rounded-full font-bold px-4 py-1.5 text-sm whitespace-nowrap hover:border-gray-400 transition-colors border border-gray-300", {
14
- "bg-white": !f,
15
- [`bg-${f}`]: !!f,
16
- [`text-${g}`]: !!g,
17
- "hover:bg-gray-100": !u,
18
- [`hover:bg-${u}`]: !!u
19
- }), o = `action-${r}`, s = a ? `Ctrl + ${a}` : void 0, j = x.useRef(null), L = c && c.length > 0, N = "relative cursor-pointer " + m, [w, b] = x.useState(!1), E = () => {
20
- b(!w);
11
+ import i from "./sdk.es38.js";
12
+ import F from "./sdk.es75.js";
13
+ function H({ filter: e }) {
14
+ const [d, u] = m.useState(!1), [c, l] = m.useState([]), [w, p] = m.useState([]), f = c.length > 0;
15
+ m.useEffect(() => {
16
+ if (typeof window < "u") {
17
+ const t = new URLSearchParams(window.location.search), a = [];
18
+ for (const [n, o] of t.entries()) {
19
+ const r = n.replaceAll(/\[\d+\]/g, "[]");
20
+ a.push([r, o]);
21
+ }
22
+ if (e.type === "date") {
23
+ const n = a.find(([r]) => r === `${e.name}[from]`)?.[1], o = a.find(([r]) => r === `${e.name}[to]`)?.[1];
24
+ n && o && l([n, o]);
25
+ } else if (e.type === "greaterThan") {
26
+ const n = a.filter(([o]) => o === `${e.name}-GTE`).map(([o, r]) => r);
27
+ n.length > 0 && l(n);
28
+ } else if (e.type === "scope") {
29
+ const n = a.filter(([o]) => o === `scope${e.name}`).map(([o, r]) => r);
30
+ n.length > 0 && l(n);
31
+ } else if (e.type === "select") {
32
+ const n = a.filter(([o]) => o === `${e.name}[]`).map(([o, r]) => r);
33
+ if (n.length > 0) {
34
+ l(n);
35
+ const o = e.options && e.options.filter(
36
+ (r) => n.includes(r.value.toString())
37
+ );
38
+ o && o.length > 0 && p(o);
39
+ }
40
+ } else {
41
+ const n = a.filter(([o]) => o === `${e.name}[]`).map(([o, r]) => r);
42
+ n.length > 0 && l(n);
43
+ }
44
+ }
45
+ }, [e]);
46
+ function b(t) {
47
+ const { value: a, checked: n } = t.currentTarget;
48
+ l(n ? (o) => [...o, a] : c.filter((o) => o !== a));
49
+ }
50
+ function h(t) {
51
+ const { name: a, value: n } = t.currentTarget;
52
+ return a.includes("from") ? l([n]) : a.includes("to") ? c.length === 0 ? l([i(F(/* @__PURE__ */ new Date(), 1), "yyyy-MM-dd"), n]) : l([c[0], n]) : l([]);
53
+ }
54
+ const v = (t) => {
55
+ p(t);
56
+ const a = t.map((n) => n.value.toString());
57
+ a.length > 0 ? l(a) : l([]);
21
58
  };
22
- T(j, () => b(!1));
23
- function I() {
24
- if (l === "Link" && i)
25
- return F.get(i);
26
- if (l === "a" && i)
27
- return window.location.href = i;
28
- d();
59
+ function j() {
60
+ return null;
61
+ }
62
+ function x(t) {
63
+ const { value: a } = t.currentTarget;
64
+ l(a ? [a] : []);
65
+ }
66
+ function $(t) {
67
+ const { value: a } = t.currentTarget;
68
+ l(a ? [a] : []);
29
69
  }
30
- return x.useEffect(() => {
31
- if (typeof window > "u" || !a) return;
32
- const n = (e) => {
33
- const k = e.ctrlKey || e.metaKey, y = e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLSelectElement, A = e.target instanceof Element && e.target.closest("form");
34
- k && !y && !A && e.key === a && (e.preventDefault(), I());
35
- };
36
- return window.addEventListener("keydown", n), () => {
37
- window.removeEventListener("keydown", n);
38
- };
39
- }, [a]), L ? /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
40
- s && /* @__PURE__ */ t.jsx(p, { id: o, className: "z-10" }),
41
- /* @__PURE__ */ t.jsxs(
42
- "div",
43
- {
44
- ref: j,
45
- "data-tooltip-id": o,
46
- "data-tooltip-content": s,
47
- className: N,
48
- onClick: E,
49
- children: [
50
- r,
51
- w && /* @__PURE__ */ t.jsx("div", { className: "absolute top-[120%] right-[-20%] z-10", children: /* @__PURE__ */ t.jsx("div", { className: "flex flex-col gap-2 bg-white rounded-lg shadow-xl p-3", children: c && c.map((n, e) => n.hidden ? null : /* @__PURE__ */ t.jsx(
52
- C,
70
+ function N(t) {
71
+ t.preventDefault();
72
+ const a = new URLSearchParams(window.location.search);
73
+ if (a.set("page", "1"), e.type === "date") {
74
+ const [n, o] = c;
75
+ a.set(`${e.name}[from]`, n ?? i(/* @__PURE__ */ new Date(), "yyyy-MM-dd")), a.set(`${e.name}[to]`, o ?? i(/* @__PURE__ */ new Date(), "yyyy-MM-dd"));
76
+ } else e.type === "greaterThan" ? (a.delete(`${e.name}-GTE`), c.length > 0 && a.set(`${e.name}-GTE`, c[0])) : e.type === "scope" ? (a.delete(`${e.name}`), c.length > 0 && a.set(`scope${e.name}`, c[0])) : (Array.from({ length: e.options?.length || 50 }).forEach((n, o) => {
77
+ a.delete(`${e.name}[${o}]`);
78
+ }), c.forEach((n) => {
79
+ a.append(`${e.name}[]`, n);
80
+ }));
81
+ g.get(`${window.location.pathname}?${a.toString()}`);
82
+ }
83
+ function S() {
84
+ const t = new URLSearchParams(window.location.search);
85
+ t.set("page", "1"), e.type === "date" ? (t.delete(`${e.name}[from]`), t.delete(`${e.name}[to]`)) : e.type === "greaterThan" ? t.delete(`${e.name}-GTE`) : e.type === "scope" ? t.delete(`scope${e.name}`) : c.forEach((a, n) => {
86
+ t.delete(`${e.name}[${n}]`);
87
+ }), l([]), p([]), g.get(`${window.location.pathname}?${t.toString()}`);
88
+ }
89
+ function C(t) {
90
+ u(!d);
91
+ }
92
+ return /* @__PURE__ */ s.jsx(D, { onClose: () => u(!open), active: d, title: /* @__PURE__ */ s.jsxs(
93
+ "div",
94
+ {
95
+ onClick: () => C(),
96
+ className: E(
97
+ "flex rounded-2xl border hover:cursor-pointer hover:border-accent bg-gray-600 px-2 py-1 items-center justify-between shrink-0 gap-2 text-xs text-white hover:bg-accent transition-colors",
98
+ {
99
+ "!bg-accent border-accent": f
100
+ }
101
+ ),
102
+ children: [
103
+ /* @__PURE__ */ s.jsx("p", { className: "whitespace-nowrap", children: e.label }),
104
+ /* @__PURE__ */ s.jsx(k, {})
105
+ ]
106
+ }
107
+ ), children: /* @__PURE__ */ s.jsxs(
108
+ "form",
109
+ {
110
+ className: `mt-2 flex max-h-[350px] min-w-[200px] max-w-[260px] flex-col gap-2 rounded-md border border-gray-300 bg-white shadow-lg ${e.type && e.type === "select" ? "" : "overflow-y-scroll"}`,
111
+ onSubmit: N,
112
+ children: [
113
+ /* @__PURE__ */ s.jsxs("div", { className: "flex flex-col items-start gap-1 p-4", children: [
114
+ (!e.type || e.type === "options") && e.options?.map((t, a) => /* @__PURE__ */ s.jsxs("div", { className: "checkbox text-sm ", children: [
115
+ /* @__PURE__ */ s.jsx(
116
+ "input",
117
+ {
118
+ type: "checkbox",
119
+ name: e.name,
120
+ id: t.label,
121
+ value: t.value.toString(),
122
+ checked: c.includes(t.value.toString()),
123
+ onChange: b
124
+ }
125
+ ),
126
+ /* @__PURE__ */ s.jsx("label", { className: "leading-tight", htmlFor: t.label, children: t.label })
127
+ ] }, `${t.label}-${a}`)),
128
+ e.type === "greaterThan" && e.options && /* @__PURE__ */ s.jsxs("label", { className: "mb-2 w-full", children: [
129
+ /* @__PURE__ */ s.jsx("div", { className: "text-sm", children: "Greater than or equal to" }),
130
+ /* @__PURE__ */ s.jsxs(
131
+ "select",
132
+ {
133
+ name: e.name,
134
+ id: e.label,
135
+ value: c[0],
136
+ onChange: x,
137
+ className: "!p-2 text-sm w-full",
138
+ children: [
139
+ /* @__PURE__ */ s.jsx("option", { value: "", children: "Select option" }),
140
+ e.options?.map((t) => /* @__PURE__ */ s.jsx("option", { value: t.value, children: t.label }, t.value))
141
+ ]
142
+ }
143
+ )
144
+ ] }),
145
+ e.type === "scope" && e.options && /* @__PURE__ */ s.jsx("label", { className: "mb-2 w-full", children: /* @__PURE__ */ s.jsxs(
146
+ "select",
53
147
  {
54
- title: n.title,
55
- as: n.as,
56
- href: n.href,
57
- target: n.target,
58
- onClick: n.onClick,
59
- type: "button"
60
- },
61
- e
62
- )) }) })
63
- ]
64
- }
65
- )
66
- ] }) : l === "Link" && i ? /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
67
- s && /* @__PURE__ */ t.jsx(p, { id: o, className: "z-10" }),
68
- /* @__PURE__ */ t.jsx(z, { "data-tooltip-id": o, "data-tooltip-content": s, className: m, href: i, onClick: () => d(), children: r })
69
- ] }) : l === "a" && i ? /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
70
- s && /* @__PURE__ */ t.jsx(p, { id: o, className: "z-10" }),
71
- /* @__PURE__ */ t.jsx("a", { "data-tooltip-id": o, "data-tooltip-content": s, className: m, target: h, href: i, onClick: () => d(), children: r })
72
- ] }) : /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
73
- s && /* @__PURE__ */ t.jsx(p, { id: o, className: "z-10" }),
74
- /* @__PURE__ */ t.jsx("button", { "data-tooltip-id": o, "data-tooltip-content": s, className: m, type: v, onClick: () => d(), children: r })
75
- ] });
148
+ name: e.name,
149
+ id: e.label,
150
+ value: c[0],
151
+ onChange: x,
152
+ className: "!p-2 text-sm w-full",
153
+ children: [
154
+ /* @__PURE__ */ s.jsx("option", { value: "", children: "Select option" }),
155
+ e.options?.map((t) => /* @__PURE__ */ s.jsx("option", { value: t.value, children: t.label }, t.value))
156
+ ]
157
+ }
158
+ ) }),
159
+ e.type === "date" && /* @__PURE__ */ s.jsxs("div", { className: "mb-2 flex flex-col gap-4 w-full", children: [
160
+ /* @__PURE__ */ s.jsxs("label", { className: "text-xs w-full", children: [
161
+ "From",
162
+ /* @__PURE__ */ s.jsx(
163
+ "input",
164
+ {
165
+ type: "date",
166
+ name: `${e.name}[from]`,
167
+ id: `${e.name}[from]`,
168
+ onChange: h,
169
+ value: c[0] ?? "",
170
+ className: "!p-2 text-sm w-full"
171
+ }
172
+ )
173
+ ] }),
174
+ /* @__PURE__ */ s.jsxs("label", { className: "text-xs w-full", children: [
175
+ "To",
176
+ /* @__PURE__ */ s.jsx(
177
+ "input",
178
+ {
179
+ type: "date",
180
+ name: `${e.name}[to]`,
181
+ id: `${e.name}[to]`,
182
+ onChange: h,
183
+ value: c[1] ?? "",
184
+ className: "!p-2 text-sm w-full"
185
+ }
186
+ )
187
+ ] })
188
+ ] }),
189
+ e.type === "select" && e.options && /* @__PURE__ */ s.jsx("div", { className: "w-full", children: /* @__PURE__ */ s.jsx(
190
+ T,
191
+ {
192
+ isMulti: !0,
193
+ options: e.options,
194
+ className: "basic-multi-select text-xs w-52 !transition-none",
195
+ classNamePrefix: "select",
196
+ onChange: v,
197
+ components: {
198
+ ClearIndicator: j
199
+ // Hide the ClearIndicator (X button) -> exits filter when clicked
200
+ },
201
+ value: w,
202
+ theme: (t) => ({
203
+ ...t,
204
+ colors: {
205
+ ...t.colors,
206
+ primary25: "rgb(111, 199, 182)",
207
+ primary: "rgb(111, 199, 182)"
208
+ }
209
+ })
210
+ }
211
+ ) }),
212
+ e.type === "text" && /* @__PURE__ */ s.jsx("div", { className: "w-full", children: /* @__PURE__ */ s.jsx(
213
+ "input",
214
+ {
215
+ type: "text",
216
+ name: e.name,
217
+ placeholder: e.label,
218
+ value: c[0] ?? "",
219
+ onChange: $,
220
+ className: "!p-2 text-sm w-full"
221
+ }
222
+ ) })
223
+ ] }),
224
+ /* @__PURE__ */ s.jsxs("div", { className: "bg-gray-100 border-t border-gray-200 flex items-center gap-2 p-4 bottom-0 sticky", children: [
225
+ /* @__PURE__ */ s.jsx(y, { type: "button", className: "!min-w-[0px] flex-grow !px-2 text-sm !transition-none", onClick: S, small: !0, children: "Clear" }),
226
+ /* @__PURE__ */ s.jsx(y, { type: "submit", status: "primary", className: "!min-w-[0px] flex-grow !px-2 text-sm !transition-none", small: !0, children: "Apply" })
227
+ ] })
228
+ ]
229
+ }
230
+ ) });
76
231
  }
77
232
  export {
78
- C as default
233
+ H as FilterItem
79
234
  };
80
235
  //# sourceMappingURL=sdk.es50.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.es50.js","sources":["../src/components/filter/Action.tsx"],"sourcesContent":["import React from \"react\";\nimport { Tooltip } from 'react-tooltip';\nimport { Link, router } from \"@inertiajs/react\";\nimport { TPageHeaderAction } from \"../../types\";\nimport {useClickOutside} from \"../../lib\";\nimport { default as cn } from 'classnames';\n\nexport default function Action({ title, href, as = 'Link', target = '_self', type, onClick = () => {}, shortcutKey, backgroundColor, hoverBackgroundColor, textColor, actions }: TPageHeaderAction) {\n const className = cn('rounded-full font-bold px-4 py-1.5 text-sm whitespace-nowrap hover:border-gray-400 transition-colors border border-gray-300', {\n 'bg-white': !backgroundColor,\n [`bg-${backgroundColor}`]: !!backgroundColor,\n [`text-${textColor}`]: !!textColor,\n 'hover:bg-gray-100': !hoverBackgroundColor,\n [`hover:bg-${hoverBackgroundColor}`]: !!hoverBackgroundColor,\n });\n\n const tooltipId = `action-${title}`;\n const tooltipContent = shortcutKey ? `Ctrl + ${shortcutKey}` : undefined;\n\n const actionButtonRef = React.useRef(null);\n const isActionsButton = actions && actions.length > 0;\n const actionsButtonClassName = 'relative cursor-pointer ' + className;\n const [isInnerActionVisible, setIsInnerActionVisible] = React.useState(false);\n\n const toggleActionsMenu = () => {\n setIsInnerActionVisible(!isInnerActionVisible);\n };\n\n useClickOutside(actionButtonRef, () => setIsInnerActionVisible(false));\n\n function runAction() {\n if (as === 'Link' && href) {\n return router.get(href);\n }\n\n if (as === 'a' && href) {\n return window.location.href = href;\n }\n\n onClick();\n };\n\n React.useEffect(() => {\n if (typeof window === 'undefined') return;\n if (!shortcutKey) return;\n\n const listener = (e: KeyboardEvent) => {\n // Check if Ctrl (Windows) or Cmd (Mac) key is pressed\n const isCtrlOrCmdPressed = (e.ctrlKey || e.metaKey);\n\n // Check if the focus is on an input element or inside a form\n const isInInput = e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLSelectElement;\n const isInForm = (e.target instanceof Element && e.target.closest('form'));\n\n if (isCtrlOrCmdPressed && !isInInput && !isInForm && e.key === shortcutKey) {\n e.preventDefault();\n runAction();\n }\n };\n\n window.addEventListener('keydown', listener);\n\n return () => {\n window.removeEventListener('keydown', listener);\n };\n }, [shortcutKey]);\n\n if (isActionsButton) {\n return (\n <>\n {tooltipContent && <Tooltip id={tooltipId} className=\"z-10\" />}\n <div\n ref={actionButtonRef}\n data-tooltip-id={tooltipId}\n data-tooltip-content={tooltipContent}\n className={actionsButtonClassName}\n onClick={toggleActionsMenu}>\n {title}\n {isInnerActionVisible && (\n <div className=\"absolute top-[120%] right-[-20%] z-10\">\n <div className=\"flex flex-col gap-2 bg-white rounded-lg shadow-xl p-3\">\n {actions && actions.map((action, index) => {\n if (action.hidden) return null;\n\n return (\n <Action\n key={index}\n title={action.title}\n as={action.as}\n href={action.href}\n target={action.target}\n onClick={action.onClick}\n type={'button'}\n />\n );\n })}\n </div>\n </div>\n )}\n </div>\n </>\n );\n }\n\n if (as === 'Link' && href) {\n return (\n <>\n {tooltipContent && <Tooltip id={tooltipId} className=\"z-10\" />}\n <Link data-tooltip-id={tooltipId} data-tooltip-content={tooltipContent} className={className} href={href} onClick={() => onClick()}>\n {title}\n </Link>\n </>\n );\n }\n\n if (as === 'a' && href) {\n return (\n <>\n {tooltipContent && <Tooltip id={tooltipId} className=\"z-10\" />}\n <a data-tooltip-id={tooltipId} data-tooltip-content={tooltipContent} className={className} target={target} href={href} onClick={() => onClick()}>\n {title}\n </a>\n </>\n );\n }\n\n return (\n <>\n {tooltipContent && <Tooltip id={tooltipId} className=\"z-10\" />}\n <button data-tooltip-id={tooltipId} data-tooltip-content={tooltipContent} className={className} type={type} onClick={() => onClick()}>\n {title}\n </button>\n </>\n );\n}\n"],"names":["Action","title","href","as","target","type","onClick","shortcutKey","backgroundColor","hoverBackgroundColor","textColor","actions","className","cn","tooltipId","tooltipContent","actionButtonRef","React","isActionsButton","actionsButtonClassName","isInnerActionVisible","setIsInnerActionVisible","toggleActionsMenu","useClickOutside","runAction","router","listener","isCtrlOrCmdPressed","isInInput","isInForm","jsxs","Fragment","jsx","Tooltip","action","index","Link"],"mappings":"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"}
1
+ {"version":3,"file":"sdk.es50.js","sources":["../src/components/filter/FilterItem.tsx"],"sourcesContent":["import { router } from \"@inertiajs/react\";\nimport { format, subYears } from \"date-fns\";\nimport React from \"react\";\nimport { FilterOption, FilterValue } from \"../../types\";\nimport Select from 'react-select';\nimport { HiChevronDown } from \"react-icons/hi2\";\nimport Dropdown from \"./Dropdown\";\nimport cn from 'classnames';\nimport { Button } from \"../common\";\n\nexport function FilterItem({ filter }: { filter: FilterOption, path?: string }) {\n const [isOpen, setOpen] = React.useState<boolean>(false);\n const [selected, setSelected] = React.useState<string[]>([]);\n\n const [selectedOptions, setSelectedOptions] = React.useState<FilterValue[]>([]); // Filter type: select\n const hasFilters = selected.length > 0;\n\n // Populate values on load\n React.useEffect(() => {\n if (typeof window !== 'undefined') {\n const search = new URLSearchParams(window.location.search);\n\n // Strip all index keys from the square brackets\n const filtersFromUrl = [];\n for (const [key, value] of search.entries()) {\n const updatedKey = key.replaceAll(/\\[\\d+\\]/g, '[]');\n filtersFromUrl.push([updatedKey, value]);\n }\n\n // Conditional logic dependent on the filter type\n if (filter.type === 'date') {\n const fromDate = filtersFromUrl.find(([key]) => key === `${filter.name}[from]`)?.[1];\n const toDate = filtersFromUrl.find(([key]) => key === `${filter.name}[to]`)?.[1];\n if (fromDate && toDate) {\n setSelected([fromDate, toDate]);\n }\n } else if (filter.type === 'greaterThan') {\n const selectedFromUrl = filtersFromUrl\n .filter(([key]) => key === `${filter.name}-GTE`)\n .map(([_, value]) => value);\n if (selectedFromUrl.length > 0) {\n setSelected(selectedFromUrl);\n }\n } else if (filter.type === 'scope') {\n const selectedFromUrl = filtersFromUrl\n .filter(([key]) => key === `scope${filter.name}`)\n .map(([_, value]) => value);\n if (selectedFromUrl.length > 0) {\n setSelected(selectedFromUrl);\n }\n } else if (filter.type === 'select') {\n const selectedFromUrl = filtersFromUrl\n .filter(([key]) => key === `${filter.name}[]`)\n .map(([_, value]) => value);\n if (selectedFromUrl.length > 0) {\n setSelected(selectedFromUrl);\n const selectedOptions = filter.options && filter.options.filter(item =>\n selectedFromUrl.includes(item.value.toString())\n );\n if (selectedOptions && selectedOptions.length > 0) {\n setSelectedOptions(selectedOptions);\n }\n }\n } else {\n // Default case for 'options' type and others\n const selectedFromUrl = filtersFromUrl\n .filter(([key]) => key === `${filter.name}[]`)\n .map(([_, value]) => value);\n if (selectedFromUrl.length > 0) {\n setSelected(selectedFromUrl);\n }\n }\n }\n }, [filter]);\n\n function handleInput(e: React.SyntheticEvent<HTMLInputElement>) {\n const { value, checked } = e.currentTarget;\n\n if (checked) {\n setSelected((curr) => [...curr, value]);\n } else {\n setSelected(selected.filter((f) => f !== value));\n }\n }\n\n function handleDateSelect(e: React.SyntheticEvent<HTMLInputElement>) {\n const { name, value } = e.currentTarget;\n\n // First value in \"selected\" will be the \"from\", second will be the \"to\"\n if (name.includes('from')) {\n return setSelected([value]);\n }\n\n if (name.includes('to')) {\n // Make sure we have a \"from\" value first\n if (selected.length === 0) {\n // We'll default to a year ago if nothing entered\n return setSelected([format(subYears(new Date(), 1), 'yyyy-MM-dd'), value]);\n }\n return setSelected([selected[0], value]);\n }\n\n return setSelected([]);\n }\n\n /**\n * Handle Select for FilterType: Select\n */\n const handleSelectedOptions = (options: FilterValue[] | any) => {\n setSelectedOptions(options);\n const selectedValues = options.map((option : FilterValue) => option.value.toString());\n\n if (selectedValues.length > 0) {\n setSelected(selectedValues);\n } else {\n setSelected([]);\n }\n };\n\n /**\n * For Filter Select\n * Removes the Clear Button\n */\n function NullComponent() {\n return null;\n }\n\n function handleSelect(e: React.SyntheticEvent<HTMLSelectElement>) {\n const { value } = e.currentTarget;\n\n if (value) {\n setSelected([value]);\n } else {\n setSelected([]);\n }\n }\n\n function handleText(e: React.SyntheticEvent<HTMLInputElement>) {\n const { value } = e.currentTarget;\n\n if (value) {\n setSelected([value]);\n } else {\n setSelected([]);\n }\n }\n\n function handleApply(e: React.FormEvent) {\n e.preventDefault();\n\n const search = new URLSearchParams(window.location.search);\n\n // Reset the page in the query\n search.set('page', '1');\n\n if (filter.type === 'date') {\n const [from, to] = selected;\n\n search.set(`${filter.name}[from]`, from ?? format(new Date(), 'yyyy-MM-dd'));\n search.set(`${filter.name}[to]`, to ?? format(new Date(), 'yyyy-MM-dd'));\n } else if (filter.type === 'greaterThan') {\n search.delete(`${filter.name}-GTE`);\n\n if (selected.length > 0) {\n search.set(`${filter.name}-GTE`, selected[0]);\n }\n } else if (filter.type === 'scope') {\n search.delete(`${filter.name}`);\n if (selected.length > 0) {\n search.set(`scope${filter.name}`, selected[0]);\n }\n } else {\n // Funny way to clear all selected options by index\n Array.from({length: filter.options?.length || 50}).forEach((_v, i) => {\n // Clear this filter first\n search.delete(`${filter.name}[${i}]`);\n })\n\n // Apply the filters to the query string\n selected.forEach((selectedValue) => {\n // Fall back to option equality filters\n search.append(`${filter.name}[]`, selectedValue);\n });\n }\n\n // Fetch new data\n router.get(`${window.location.pathname}?${search.toString()}`);\n }\n\n function handleClear() {\n const search = new URLSearchParams(window.location.search);\n\n // Reset the page in the query\n search.set('page', '1');\n\n // Clear this filter\n if (filter.type === 'date') {\n search.delete(`${filter.name}[from]`);\n search.delete(`${filter.name}[to]`);\n } else if (filter.type === 'greaterThan') {\n search.delete(`${filter.name}-GTE`);\n } else if (filter.type === 'scope') {\n search.delete(`scope${filter.name}`);\n } else {\n selected.forEach((_v, i) => {\n search.delete(`${filter.name}[${i}]`);\n });\n }\n\n // Reset the local state\n setSelected([]);\n setSelectedOptions([]);\n\n // Fetch new data\n router.get(`${window.location.pathname}?${search.toString()}`);\n }\n\n function handleClick(force?: boolean) {\n if (typeof force === 'boolean') {\n return setOpen(force);\n }\n\n setOpen(!isOpen);\n }\n\n return (\n <Dropdown onClose={() => setOpen(!open)} active={isOpen} title={\n <div\n onClick={() => handleClick()}\n className={cn(\n 'flex rounded-2xl border hover:cursor-pointer hover:border-accent bg-gray-600 px-2 py-1 items-center justify-between shrink-0 gap-2 text-xs text-white hover:bg-accent transition-colors',\n {\n '!bg-accent border-accent': hasFilters,\n }\n )}>\n <p className=\"whitespace-nowrap\">{filter.label}</p>\n <HiChevronDown />\n </div>\n }>\n <form\n className={`mt-2 flex max-h-[350px] min-w-[200px] max-w-[260px] flex-col gap-2 rounded-md border border-gray-300 bg-white shadow-lg ${ filter.type && filter.type === 'select' ? '' : 'overflow-y-scroll'}`}\n onSubmit={handleApply}\n >\n <div className=\"flex flex-col items-start gap-1 p-4\">\n {(!filter.type || filter.type === 'options') &&\n filter.options?.map((option, i) => (\n <div className=\"checkbox text-sm \" key={`${option.label}-${i}`}>\n <input\n type=\"checkbox\"\n name={filter.name}\n id={option.label}\n value={option.value.toString()}\n checked={selected.includes(option.value.toString())}\n onChange={handleInput}\n />\n <label className=\"leading-tight\" htmlFor={option.label}>\n {option.label}\n </label>\n </div>\n ))}\n {filter.type === 'greaterThan' && filter.options && (\n <label className=\"mb-2 w-full\">\n <div className=\"text-sm\">Greater than or equal to</div>\n <select\n name={filter.name}\n id={filter.label}\n value={selected[0]}\n onChange={handleSelect}\n className=\"!p-2 text-sm w-full\"\n >\n <option value=\"\">Select option</option>\n {filter.options?.map((option) => (\n <option key={option.value} value={option.value}>\n {option.label}\n </option>\n ))}\n </select>\n </label>\n )}\n {filter.type === 'scope' && filter.options && (\n <label className=\"mb-2 w-full\">\n <select\n name={filter.name}\n id={filter.label}\n value={selected[0]}\n onChange={handleSelect}\n className=\"!p-2 text-sm w-full\"\n >\n <option value=\"\">Select option</option>\n {filter.options?.map((option) => (\n <option key={option.value} value={option.value}>\n {option.label}\n </option>\n ))}\n </select>\n </label>\n )}\n {filter.type === 'date' && (\n <div className=\"mb-2 flex flex-col gap-4 w-full\">\n <label className=\"text-xs w-full\">\n From\n <input\n type=\"date\"\n name={`${filter.name}[from]`}\n id={`${filter.name}[from]`}\n onChange={handleDateSelect}\n value={selected[0] ?? ''}\n className=\"!p-2 text-sm w-full\"\n />\n </label>\n <label className=\"text-xs w-full\">\n To\n <input\n type=\"date\"\n name={`${filter.name}[to]`}\n id={`${filter.name}[to]`}\n onChange={handleDateSelect}\n value={selected[1] ?? ''}\n className=\"!p-2 text-sm w-full\"\n />\n </label>\n </div>\n )}\n {filter.type === 'select' && filter.options && (\n <div className=\"w-full\">\n <Select\n isMulti\n options={filter.options}\n className=\"basic-multi-select text-xs w-52 !transition-none\"\n classNamePrefix=\"select\"\n onChange={handleSelectedOptions}\n components={{\n ClearIndicator: NullComponent, // Hide the ClearIndicator (X button) -> exits filter when clicked\n }}\n value={selectedOptions}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n primary25: 'rgb(111, 199, 182)',\n primary: 'rgb(111, 199, 182)',\n },\n })}\n />\n </div>\n )}\n {filter.type === 'text' && (\n <div className={'w-full'}>\n <input\n type=\"text\"\n name={filter.name}\n placeholder={filter.label}\n value={selected[0] ?? ''}\n onChange={handleText}\n className=\"!p-2 text-sm w-full\"\n />\n </div>\n )}\n </div>\n <div className=\"bg-gray-100 border-t border-gray-200 flex items-center gap-2 p-4 bottom-0 sticky\">\n <Button type=\"button\" className=\"!min-w-[0px] flex-grow !px-2 text-sm !transition-none\" onClick={handleClear} small>\n Clear\n </Button>\n <Button type=\"submit\" status=\"primary\" className=\"!min-w-[0px] flex-grow !px-2 text-sm !transition-none\" small>\n Apply\n </Button>\n </div>\n </form>\n </Dropdown>\n );\n}\n"],"names":["FilterItem","filter","isOpen","setOpen","React","selected","setSelected","selectedOptions","setSelectedOptions","hasFilters","search","filtersFromUrl","key","value","updatedKey","fromDate","toDate","selectedFromUrl","_","item","handleInput","e","checked","curr","f","handleDateSelect","name","format","subYears","handleSelectedOptions","options","selectedValues","option","NullComponent","handleSelect","handleText","handleApply","from","to","_v","i","selectedValue","router","handleClear","handleClick","force","jsx","Dropdown","jsxs","cn","HiChevronDown","Select","theme","Button"],"mappings":"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"}