@anoki/fse-ui 1.0.0-beta1.48.17 → 1.0.0-beta1.48.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. package/dist/index.cjs247.js +1 -1
  2. package/dist/index.cjs254.js +1 -1
  3. package/dist/index.cjs292.js +1 -1
  4. package/dist/index.cjs297.js +1 -1
  5. package/dist/index.cjs305.js +1 -1
  6. package/dist/index.cjs32.js +1 -1
  7. package/dist/index.cjs323.js +1 -1
  8. package/dist/index.cjs33.js +1 -1
  9. package/dist/index.cjs354.js +1 -1
  10. package/dist/index.cjs395.js +1 -1
  11. package/dist/index.cjs401.js +1 -1
  12. package/dist/index.cjs443.js +1 -1
  13. package/dist/index.cjs453.js +1 -1
  14. package/dist/index.cjs454.js +1 -1
  15. package/dist/index.cjs455.js +27 -1
  16. package/dist/index.cjs455.js.map +1 -1
  17. package/dist/index.cjs456.js +1 -2
  18. package/dist/index.cjs456.js.map +1 -1
  19. package/dist/index.cjs457.js +1 -27
  20. package/dist/index.cjs457.js.map +1 -1
  21. package/dist/index.cjs458.js +1 -1
  22. package/dist/index.cjs458.js.map +1 -1
  23. package/dist/index.cjs459.js +2 -1
  24. package/dist/index.cjs459.js.map +1 -1
  25. package/dist/index.cjs464.js +1 -1
  26. package/dist/index.cjs464.js.map +1 -1
  27. package/dist/index.cjs465.js +2 -0
  28. package/dist/index.cjs465.js.map +1 -0
  29. package/dist/index.cjs466.js +2 -0
  30. package/dist/index.cjs466.js.map +1 -0
  31. package/dist/index.cjs467.js +1 -1
  32. package/dist/index.cjs467.js.map +1 -1
  33. package/dist/index.cjs468.js +1 -1
  34. package/dist/index.cjs468.js.map +1 -1
  35. package/dist/index.cjs469.js +1 -1
  36. package/dist/index.cjs469.js.map +1 -1
  37. package/dist/index.cjs470.js +1 -1
  38. package/dist/index.cjs470.js.map +1 -1
  39. package/dist/index.cjs471.js +1 -1
  40. package/dist/index.cjs472.js +1 -1
  41. package/dist/index.cjs472.js.map +1 -1
  42. package/dist/index.cjs475.js +1 -1
  43. package/dist/index.cjs475.js.map +1 -1
  44. package/dist/index.cjs476.js +1 -1
  45. package/dist/index.cjs476.js.map +1 -1
  46. package/dist/index.cjs487.js +1 -1
  47. package/dist/index.cjs487.js.map +1 -1
  48. package/dist/index.cjs488.js +1 -1
  49. package/dist/index.cjs488.js.map +1 -1
  50. package/dist/index.cjs489.js +1 -1
  51. package/dist/index.cjs489.js.map +1 -1
  52. package/dist/{index.cjs486.js → index.cjs490.js} +1 -1
  53. package/dist/{index.cjs486.js.map → index.cjs490.js.map} +1 -1
  54. package/dist/index.cjs491.js +2 -0
  55. package/dist/index.cjs491.js.map +1 -0
  56. package/dist/index.cjs492.js +2 -0
  57. package/dist/index.cjs492.js.map +1 -0
  58. package/dist/index.cjs493.js +2 -0
  59. package/dist/index.cjs493.js.map +1 -0
  60. package/dist/index.cjs507.js +2 -0
  61. package/dist/index.cjs507.js.map +1 -0
  62. package/dist/index.cjs508.js +1 -1
  63. package/dist/index.cjs508.js.map +1 -1
  64. package/dist/index.cjs514.js +2 -0
  65. package/dist/index.cjs514.js.map +1 -0
  66. package/dist/{index.cjs512.js → index.cjs515.js} +1 -1
  67. package/dist/index.cjs515.js.map +1 -0
  68. package/dist/index.cjs516.js +1 -1
  69. package/dist/index.cjs516.js.map +1 -1
  70. package/dist/index.cjs522.js +1 -1
  71. package/dist/index.cjs522.js.map +1 -1
  72. package/dist/index.cjs523.js +1 -1
  73. package/dist/index.cjs523.js.map +1 -1
  74. package/dist/index.cjs524.js +1 -1
  75. package/dist/index.cjs524.js.map +1 -1
  76. package/dist/index.cjs525.js +1 -1
  77. package/dist/index.cjs525.js.map +1 -1
  78. package/dist/index.cjs526.js +1 -1
  79. package/dist/index.cjs526.js.map +1 -1
  80. package/dist/index.cjs529.js +1 -1
  81. package/dist/index.cjs529.js.map +1 -1
  82. package/dist/index.cjs530.js +1 -1
  83. package/dist/index.cjs530.js.map +1 -1
  84. package/dist/index.cjs531.js +1 -1
  85. package/dist/index.cjs531.js.map +1 -1
  86. package/dist/index.cjs532.js +1 -1
  87. package/dist/index.cjs532.js.map +1 -1
  88. package/dist/index.cjs533.js +1 -1
  89. package/dist/index.cjs533.js.map +1 -1
  90. package/dist/index.cjs534.js +1 -1
  91. package/dist/index.cjs534.js.map +1 -1
  92. package/dist/index.cjs535.js +1 -1
  93. package/dist/index.cjs536.js +1 -1
  94. package/dist/index.cjs537.js +1 -1
  95. package/dist/index.cjs540.js +1 -1
  96. package/dist/index.cjs542.js +1 -1
  97. package/dist/index.cjs545.js +1 -1
  98. package/dist/index.cjs546.js +1 -1
  99. package/dist/index.cjs547.js +1 -1
  100. package/dist/index.cjs554.js +1 -1
  101. package/dist/index.cjs559.js +1 -1
  102. package/dist/index.cjs565.js +1 -1
  103. package/dist/index.cjs566.js +1 -1
  104. package/dist/index.cjs570.js +1 -1
  105. package/dist/index.cjs570.js.map +1 -1
  106. package/dist/index.cjs571.js +1 -1
  107. package/dist/index.cjs571.js.map +1 -1
  108. package/dist/index.cjs572.js +1 -1
  109. package/dist/index.cjs572.js.map +1 -1
  110. package/dist/index.cjs573.js +1 -1
  111. package/dist/index.cjs573.js.map +1 -1
  112. package/dist/index.cjs574.js +1 -1
  113. package/dist/index.cjs574.js.map +1 -1
  114. package/dist/index.cjs580.js +1 -1
  115. package/dist/index.cjs581.js +1 -1
  116. package/dist/index.cjs584.js +1 -1
  117. package/dist/index.cjs585.js +1 -1
  118. package/dist/index.cjs585.js.map +1 -1
  119. package/dist/index.cjs586.js +1 -1
  120. package/dist/index.cjs586.js.map +1 -1
  121. package/dist/index.cjs587.js +1 -1
  122. package/dist/index.cjs587.js.map +1 -1
  123. package/dist/index.cjs588.js +1 -1
  124. package/dist/index.cjs588.js.map +1 -1
  125. package/dist/index.cjs593.js +1 -1
  126. package/dist/index.cjs593.js.map +1 -1
  127. package/dist/index.cjs594.js +1 -1
  128. package/dist/index.cjs594.js.map +1 -1
  129. package/dist/index.cjs595.js +1 -1
  130. package/dist/index.cjs595.js.map +1 -1
  131. package/dist/index.cjs596.js +1 -1
  132. package/dist/index.cjs596.js.map +1 -1
  133. package/dist/index.cjs73.js +1 -1
  134. package/dist/index.cjs73.js.map +1 -1
  135. package/dist/index.cjs74.js +1 -1
  136. package/dist/index.cjs74.js.map +1 -1
  137. package/dist/index.es247.js +1 -1
  138. package/dist/index.es254.js +2 -2
  139. package/dist/index.es292.js +6 -6
  140. package/dist/index.es297.js +1 -1
  141. package/dist/index.es305.js +7 -7
  142. package/dist/index.es32.js +1 -1
  143. package/dist/index.es323.js +13 -13
  144. package/dist/index.es33.js +1 -1
  145. package/dist/index.es354.js +6 -6
  146. package/dist/index.es395.js +4 -4
  147. package/dist/index.es401.js +1 -1
  148. package/dist/index.es443.js +1 -1
  149. package/dist/index.es453.js +1 -1
  150. package/dist/index.es454.js +1 -1
  151. package/dist/index.es455.js +3674 -5
  152. package/dist/index.es455.js.map +1 -1
  153. package/dist/index.es456.js +5 -520
  154. package/dist/index.es456.js.map +1 -1
  155. package/dist/index.es457.js +2 -3675
  156. package/dist/index.es457.js.map +1 -1
  157. package/dist/index.es458.js +5 -5
  158. package/dist/index.es458.js.map +1 -1
  159. package/dist/index.es459.js +521 -2
  160. package/dist/index.es459.js.map +1 -1
  161. package/dist/index.es464.js +27 -15
  162. package/dist/index.es464.js.map +1 -1
  163. package/dist/index.es465.js +71 -0
  164. package/dist/index.es465.js.map +1 -0
  165. package/dist/index.es466.js +10 -0
  166. package/dist/index.es466.js.map +1 -0
  167. package/dist/index.es467.js +29 -6
  168. package/dist/index.es467.js.map +1 -1
  169. package/dist/index.es468.js +5 -26
  170. package/dist/index.es468.js.map +1 -1
  171. package/dist/index.es469.js +24 -67
  172. package/dist/index.es469.js.map +1 -1
  173. package/dist/index.es470.js +66 -27
  174. package/dist/index.es470.js.map +1 -1
  175. package/dist/index.es471.js +1 -1
  176. package/dist/index.es472.js +13 -620
  177. package/dist/index.es472.js.map +1 -1
  178. package/dist/index.es475.js +621 -24
  179. package/dist/index.es475.js.map +1 -1
  180. package/dist/index.es476.js +10 -68
  181. package/dist/index.es476.js.map +1 -1
  182. package/dist/index.es487.js +124 -8
  183. package/dist/index.es487.js.map +1 -1
  184. package/dist/index.es488.js +133 -48
  185. package/dist/index.es488.js.map +1 -1
  186. package/dist/index.es489.js +14 -56
  187. package/dist/index.es489.js.map +1 -1
  188. package/dist/{index.es486.js → index.es490.js} +1 -1
  189. package/dist/{index.es486.js.map → index.es490.js.map} +1 -1
  190. package/dist/index.es491.js +12 -0
  191. package/dist/index.es491.js.map +1 -0
  192. package/dist/index.es492.js +53 -0
  193. package/dist/index.es492.js.map +1 -0
  194. package/dist/index.es493.js +59 -0
  195. package/dist/index.es493.js.map +1 -0
  196. package/dist/index.es507.js +77 -0
  197. package/dist/index.es507.js.map +1 -0
  198. package/dist/index.es508.js +2 -74
  199. package/dist/index.es508.js.map +1 -1
  200. package/dist/index.es514.js +8 -0
  201. package/dist/index.es514.js.map +1 -0
  202. package/dist/{index.es512.js → index.es515.js} +1 -1
  203. package/dist/index.es515.js.map +1 -0
  204. package/dist/index.es516.js +2 -5
  205. package/dist/index.es516.js.map +1 -1
  206. package/dist/index.es522.js +4 -46
  207. package/dist/index.es522.js.map +1 -1
  208. package/dist/index.es523.js +45 -13
  209. package/dist/index.es523.js.map +1 -1
  210. package/dist/index.es524.js +12 -216
  211. package/dist/index.es524.js.map +1 -1
  212. package/dist/index.es525.js +203 -163
  213. package/dist/index.es525.js.map +1 -1
  214. package/dist/index.es526.js +177 -3
  215. package/dist/index.es526.js.map +1 -1
  216. package/dist/index.es529.js +202 -22
  217. package/dist/index.es529.js.map +1 -1
  218. package/dist/index.es530.js +20 -27
  219. package/dist/index.es530.js.map +1 -1
  220. package/dist/index.es531.js +393 -5
  221. package/dist/index.es531.js.map +1 -1
  222. package/dist/index.es532.js +22 -202
  223. package/dist/index.es532.js.map +1 -1
  224. package/dist/index.es533.js +27 -20
  225. package/dist/index.es533.js.map +1 -1
  226. package/dist/index.es534.js +5 -393
  227. package/dist/index.es534.js.map +1 -1
  228. package/dist/index.es535.js +1 -1
  229. package/dist/index.es536.js +1 -1
  230. package/dist/index.es537.js +3 -3
  231. package/dist/index.es540.js +3 -3
  232. package/dist/index.es542.js +1 -1
  233. package/dist/index.es545.js +2 -2
  234. package/dist/index.es546.js +2 -2
  235. package/dist/index.es547.js +14 -14
  236. package/dist/index.es554.js +7 -7
  237. package/dist/index.es559.js +7 -7
  238. package/dist/index.es565.js +1 -1
  239. package/dist/index.es566.js +1 -1
  240. package/dist/index.es570.js +2 -6
  241. package/dist/index.es570.js.map +1 -1
  242. package/dist/index.es571.js +2 -16
  243. package/dist/index.es571.js.map +1 -1
  244. package/dist/index.es572.js +2 -2
  245. package/dist/index.es572.js.map +1 -1
  246. package/dist/index.es573.js +6 -2
  247. package/dist/index.es573.js.map +1 -1
  248. package/dist/index.es574.js +16 -2
  249. package/dist/index.es574.js.map +1 -1
  250. package/dist/index.es580.js +1 -1
  251. package/dist/index.es581.js +1 -1
  252. package/dist/index.es584.js +1 -1
  253. package/dist/index.es585.js +3 -522
  254. package/dist/index.es585.js.map +1 -1
  255. package/dist/index.es586.js +509 -113
  256. package/dist/index.es586.js.map +1 -1
  257. package/dist/index.es587.js +121 -123
  258. package/dist/index.es587.js.map +1 -1
  259. package/dist/index.es588.js +128 -3
  260. package/dist/index.es588.js.map +1 -1
  261. package/dist/index.es593.js +11 -21
  262. package/dist/index.es593.js.map +1 -1
  263. package/dist/index.es594.js +26 -11
  264. package/dist/index.es594.js.map +1 -1
  265. package/dist/index.es595.js +4 -27
  266. package/dist/index.es595.js.map +1 -1
  267. package/dist/index.es596.js +22 -4
  268. package/dist/index.es596.js.map +1 -1
  269. package/dist/index.es73.js +20 -2
  270. package/dist/index.es73.js.map +1 -1
  271. package/dist/index.es74.js +20 -2
  272. package/dist/index.es74.js.map +1 -1
  273. package/package.json +1 -1
  274. package/dist/index.cjs473.js +0 -2
  275. package/dist/index.cjs473.js.map +0 -1
  276. package/dist/index.cjs474.js +0 -2
  277. package/dist/index.cjs474.js.map +0 -1
  278. package/dist/index.cjs483.js +0 -2
  279. package/dist/index.cjs483.js.map +0 -1
  280. package/dist/index.cjs484.js +0 -2
  281. package/dist/index.cjs484.js.map +0 -1
  282. package/dist/index.cjs485.js +0 -2
  283. package/dist/index.cjs485.js.map +0 -1
  284. package/dist/index.cjs509.js +0 -2
  285. package/dist/index.cjs509.js.map +0 -1
  286. package/dist/index.cjs512.js.map +0 -1
  287. package/dist/index.cjs513.js +0 -2
  288. package/dist/index.cjs513.js.map +0 -1
  289. package/dist/index.es473.js +0 -14
  290. package/dist/index.es473.js.map +0 -1
  291. package/dist/index.es474.js +0 -9
  292. package/dist/index.es474.js.map +0 -1
  293. package/dist/index.es483.js +0 -128
  294. package/dist/index.es483.js.map +0 -1
  295. package/dist/index.es484.js +0 -138
  296. package/dist/index.es484.js.map +0 -1
  297. package/dist/index.es485.js +0 -17
  298. package/dist/index.es485.js.map +0 -1
  299. package/dist/index.es509.js +0 -5
  300. package/dist/index.es509.js.map +0 -1
  301. package/dist/index.es512.js.map +0 -1
  302. package/dist/index.es513.js +0 -5
  303. package/dist/index.es513.js.map +0 -1
  304. /package/dist/components/ui/{CardMapDoctorV2/CardMapDoctorV2.css → CardMapDoctor/CardMapDoctor.css} +0 -0
@@ -1,26 +1,16 @@
1
- var a = {
2
- left: 0,
3
- top: 0,
4
- right: 0,
5
- gap: 0
6
- }, e = function(t) {
7
- return parseInt(t || "", 10) || 0;
8
- }, o = function(t) {
9
- var n = window.getComputedStyle(document.body), i = n[t === "padding" ? "paddingLeft" : "marginLeft"], r = n[t === "padding" ? "paddingTop" : "marginTop"], d = n[t === "padding" ? "paddingRight" : "marginRight"];
10
- return [e(i), e(r), e(d)];
11
- }, f = function(t) {
12
- if (t === void 0 && (t = "margin"), typeof window > "u")
13
- return a;
14
- var n = o(t), i = document.documentElement.clientWidth, r = window.innerWidth;
15
- return {
16
- left: n[0],
17
- top: n[1],
18
- right: n[2],
19
- gap: Math.max(0, r - i + n[2] - n[0])
1
+ import * as o from "react";
2
+ import { stylesheetSingleton as r } from "./index.es594.js";
3
+ var i = function() {
4
+ var t = r();
5
+ return function(e, n) {
6
+ o.useEffect(function() {
7
+ return t.add(e), function() {
8
+ t.remove();
9
+ };
10
+ }, [e && n]);
20
11
  };
21
12
  };
22
13
  export {
23
- f as getGapWidth,
24
- a as zeroGap
14
+ i as styleHookSingleton
25
15
  };
26
16
  //# sourceMappingURL=index.es593.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es593.js","sources":["../node_modules/react-remove-scroll-bar/dist/es2015/utils.js"],"sourcesContent":["export var zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nexport var getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n"],"names":["zeroGap","parse","x","getOffset","gapMode","cs","left","top","right","getGapWidth","offsets","documentWidth","windowWidth"],"mappings":"AAAU,IAACA,IAAU;AAAA,EACjB,MAAM;AAAA,EACN,KAAK;AAAA,EACL,OAAO;AAAA,EACP,KAAK;AACT,GACIC,IAAQ,SAAUC,GAAG;AAAE,SAAO,SAASA,KAAK,IAAI,EAAE,KAAK;AAAI,GAC3DC,IAAY,SAAUC,GAAS;AAC/B,MAAIC,IAAK,OAAO,iBAAiB,SAAS,IAAI,GAC1CC,IAAOD,EAAGD,MAAY,YAAY,gBAAgB,YAAY,GAC9DG,IAAMF,EAAGD,MAAY,YAAY,eAAe,WAAW,GAC3DI,IAAQH,EAAGD,MAAY,YAAY,iBAAiB,aAAa;AACrE,SAAO,CAACH,EAAMK,CAAI,GAAGL,EAAMM,CAAG,GAAGN,EAAMO,CAAK,CAAC;AACjD,GACWC,IAAc,SAAUL,GAAS;AAExC,MADIA,MAAY,WAAUA,IAAU,WAChC,OAAO,SAAW;AAClB,WAAOJ;AAEX,MAAIU,IAAUP,EAAUC,CAAO,GAC3BO,IAAgB,SAAS,gBAAgB,aACzCC,IAAc,OAAO;AACzB,SAAO;AAAA,IACH,MAAMF,EAAQ,CAAC;AAAA,IACf,KAAKA,EAAQ,CAAC;AAAA,IACd,OAAOA,EAAQ,CAAC;AAAA,IAChB,KAAK,KAAK,IAAI,GAAGE,IAAcD,IAAgBD,EAAQ,CAAC,IAAIA,EAAQ,CAAC,CAAC;AAAA,EACzE;AACL;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es593.js","sources":["../node_modules/react-style-singleton/dist/es2015/hook.js"],"sourcesContent":["import * as React from 'react';\nimport { stylesheetSingleton } from './singleton';\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nexport var styleHookSingleton = function () {\n var sheet = stylesheetSingleton();\n return function (styles, isDynamic) {\n React.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n"],"names":["styleHookSingleton","sheet","stylesheetSingleton","styles","isDynamic","React"],"mappings":";;AAWU,IAACA,IAAqB,WAAY;AACxC,MAAIC,IAAQC,EAAqB;AACjC,SAAO,SAAUC,GAAQC,GAAW;AAChC,IAAAC,EAAM,UAAU,WAAY;AACxB,aAAAJ,EAAM,IAAIE,CAAM,GACT,WAAY;AACf,QAAAF,EAAM,OAAQ;AAAA,MACjB;AAAA,IACb,GAAW,CAACE,KAAUC,CAAS,CAAC;AAAA,EAC3B;AACL;","x_google_ignoreList":[0]}
@@ -1,16 +1,31 @@
1
- import * as o from "react";
2
- import { stylesheetSingleton as r } from "./index.es595.js";
3
- var i = function() {
4
- var t = r();
5
- return function(e, n) {
6
- o.useEffect(function() {
7
- return t.add(e), function() {
8
- t.remove();
9
- };
10
- }, [e && n]);
1
+ import { getNonce as o } from "./index.es595.js";
2
+ function r() {
3
+ if (!document)
4
+ return null;
5
+ var t = document.createElement("style");
6
+ t.type = "text/css";
7
+ var e = o();
8
+ return e && t.setAttribute("nonce", e), t;
9
+ }
10
+ function l(t, e) {
11
+ t.styleSheet ? t.styleSheet.cssText = e : t.appendChild(document.createTextNode(e));
12
+ }
13
+ function a(t) {
14
+ var e = document.head || document.getElementsByTagName("head")[0];
15
+ e.appendChild(t);
16
+ }
17
+ var c = function() {
18
+ var t = 0, e = null;
19
+ return {
20
+ add: function(n) {
21
+ t == 0 && (e = r()) && (l(e, n), a(e)), t++;
22
+ },
23
+ remove: function() {
24
+ t--, !t && e && (e.parentNode && e.parentNode.removeChild(e), e = null);
25
+ }
11
26
  };
12
27
  };
13
28
  export {
14
- i as styleHookSingleton
29
+ c as stylesheetSingleton
15
30
  };
16
31
  //# sourceMappingURL=index.es594.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es594.js","sources":["../node_modules/react-style-singleton/dist/es2015/hook.js"],"sourcesContent":["import * as React from 'react';\nimport { stylesheetSingleton } from './singleton';\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nexport var styleHookSingleton = function () {\n var sheet = stylesheetSingleton();\n return function (styles, isDynamic) {\n React.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n"],"names":["styleHookSingleton","sheet","stylesheetSingleton","styles","isDynamic","React"],"mappings":";;AAWU,IAACA,IAAqB,WAAY;AACxC,MAAIC,IAAQC,EAAqB;AACjC,SAAO,SAAUC,GAAQC,GAAW;AAChC,IAAAC,EAAM,UAAU,WAAY;AACxB,aAAAJ,EAAM,IAAIE,CAAM,GACT,WAAY;AACf,QAAAF,EAAM,OAAQ;AAAA,MACjB;AAAA,IACb,GAAW,CAACE,KAAUC,CAAS,CAAC;AAAA,EAC3B;AACL;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es594.js","sources":["../node_modules/react-style-singleton/dist/es2015/singleton.js"],"sourcesContent":["import { getNonce } from 'get-nonce';\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nexport var stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n"],"names":["makeStyleTag","tag","nonce","getNonce","injectStyles","css","insertStyleTag","head","stylesheetSingleton","counter","stylesheet","style"],"mappings":";AACA,SAASA,IAAe;AACpB,MAAI,CAAC;AACD,WAAO;AACX,MAAIC,IAAM,SAAS,cAAc,OAAO;AACxC,EAAAA,EAAI,OAAO;AACX,MAAIC,IAAQC,EAAU;AACtB,SAAID,KACAD,EAAI,aAAa,SAASC,CAAK,GAE5BD;AACX;AACA,SAASG,EAAaH,GAAKI,GAAK;AAE5B,EAAIJ,EAAI,aAEJA,EAAI,WAAW,UAAUI,IAGzBJ,EAAI,YAAY,SAAS,eAAeI,CAAG,CAAC;AAEpD;AACA,SAASC,EAAeL,GAAK;AACzB,MAAIM,IAAO,SAAS,QAAQ,SAAS,qBAAqB,MAAM,EAAE,CAAC;AACnE,EAAAA,EAAK,YAAYN,CAAG;AACxB;AACU,IAACO,IAAsB,WAAY;AACzC,MAAIC,IAAU,GACVC,IAAa;AACjB,SAAO;AAAA,IACH,KAAK,SAAUC,GAAO;AAClB,MAAIF,KAAW,MACNC,IAAaV,SACdI,EAAaM,GAAYC,CAAK,GAC9BL,EAAeI,CAAU,IAGjCD;AAAA,IACH;AAAA,IACD,QAAQ,WAAY;AAChB,MAAAA,KACI,CAACA,KAAWC,MACZA,EAAW,cAAcA,EAAW,WAAW,YAAYA,CAAU,GACrEA,IAAa;AAAA,IAEpB;AAAA,EACJ;AACL;","x_google_ignoreList":[0]}
@@ -1,31 +1,8 @@
1
- import { getNonce as o } from "./index.es596.js";
2
- function r() {
3
- if (!document)
4
- return null;
5
- var t = document.createElement("style");
6
- t.type = "text/css";
7
- var e = o();
8
- return e && t.setAttribute("nonce", e), t;
9
- }
10
- function l(t, e) {
11
- t.styleSheet ? t.styleSheet.cssText = e : t.appendChild(document.createTextNode(e));
12
- }
13
- function a(t) {
14
- var e = document.head || document.getElementsByTagName("head")[0];
15
- e.appendChild(t);
16
- }
17
- var c = function() {
18
- var t = 0, e = null;
19
- return {
20
- add: function(n) {
21
- t == 0 && (e = r()) && (l(e, n), a(e)), t++;
22
- },
23
- remove: function() {
24
- t--, !t && e && (e.parentNode && e.parentNode.removeChild(e), e = null);
25
- }
26
- };
1
+ var e = function() {
2
+ if (typeof __webpack_nonce__ < "u")
3
+ return __webpack_nonce__;
27
4
  };
28
5
  export {
29
- c as stylesheetSingleton
6
+ e as getNonce
30
7
  };
31
8
  //# sourceMappingURL=index.es595.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es595.js","sources":["../node_modules/react-style-singleton/dist/es2015/singleton.js"],"sourcesContent":["import { getNonce } from 'get-nonce';\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nexport var stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n"],"names":["makeStyleTag","tag","nonce","getNonce","injectStyles","css","insertStyleTag","head","stylesheetSingleton","counter","stylesheet","style"],"mappings":";AACA,SAASA,IAAe;AACpB,MAAI,CAAC;AACD,WAAO;AACX,MAAIC,IAAM,SAAS,cAAc,OAAO;AACxC,EAAAA,EAAI,OAAO;AACX,MAAIC,IAAQC,EAAU;AACtB,SAAID,KACAD,EAAI,aAAa,SAASC,CAAK,GAE5BD;AACX;AACA,SAASG,EAAaH,GAAKI,GAAK;AAE5B,EAAIJ,EAAI,aAEJA,EAAI,WAAW,UAAUI,IAGzBJ,EAAI,YAAY,SAAS,eAAeI,CAAG,CAAC;AAEpD;AACA,SAASC,EAAeL,GAAK;AACzB,MAAIM,IAAO,SAAS,QAAQ,SAAS,qBAAqB,MAAM,EAAE,CAAC;AACnE,EAAAA,EAAK,YAAYN,CAAG;AACxB;AACU,IAACO,IAAsB,WAAY;AACzC,MAAIC,IAAU,GACVC,IAAa;AACjB,SAAO;AAAA,IACH,KAAK,SAAUC,GAAO;AAClB,MAAIF,KAAW,MACNC,IAAaV,SACdI,EAAaM,GAAYC,CAAK,GAC9BL,EAAeI,CAAU,IAGjCD;AAAA,IACH;AAAA,IACD,QAAQ,WAAY;AAChB,MAAAA,KACI,CAACA,KAAWC,MACZA,EAAW,cAAcA,EAAW,WAAW,YAAYA,CAAU,GACrEA,IAAa;AAAA,IAEpB;AAAA,EACJ;AACL;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es595.js","sources":["../node_modules/get-nonce/dist/es2015/index.js"],"sourcesContent":["var currentNonce;\nexport var setNonce = function (nonce) {\n currentNonce = nonce;\n};\nexport var getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (typeof __webpack_nonce__ !== 'undefined') {\n return __webpack_nonce__;\n }\n return undefined;\n};\n"],"names":["getNonce"],"mappings":"AAIU,IAACA,IAAW,WAAY;AAI9B,MAAI,OAAO,oBAAsB;AAC7B,WAAO;AAGf;","x_google_ignoreList":[0]}
@@ -1,8 +1,26 @@
1
- var e = function() {
2
- if (typeof __webpack_nonce__ < "u")
3
- return __webpack_nonce__;
1
+ var a = {
2
+ left: 0,
3
+ top: 0,
4
+ right: 0,
5
+ gap: 0
6
+ }, e = function(t) {
7
+ return parseInt(t || "", 10) || 0;
8
+ }, o = function(t) {
9
+ var n = window.getComputedStyle(document.body), i = n[t === "padding" ? "paddingLeft" : "marginLeft"], r = n[t === "padding" ? "paddingTop" : "marginTop"], d = n[t === "padding" ? "paddingRight" : "marginRight"];
10
+ return [e(i), e(r), e(d)];
11
+ }, f = function(t) {
12
+ if (t === void 0 && (t = "margin"), typeof window > "u")
13
+ return a;
14
+ var n = o(t), i = document.documentElement.clientWidth, r = window.innerWidth;
15
+ return {
16
+ left: n[0],
17
+ top: n[1],
18
+ right: n[2],
19
+ gap: Math.max(0, r - i + n[2] - n[0])
20
+ };
4
21
  };
5
22
  export {
6
- e as getNonce
23
+ f as getGapWidth,
24
+ a as zeroGap
7
25
  };
8
26
  //# sourceMappingURL=index.es596.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es596.js","sources":["../node_modules/get-nonce/dist/es2015/index.js"],"sourcesContent":["var currentNonce;\nexport var setNonce = function (nonce) {\n currentNonce = nonce;\n};\nexport var getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (typeof __webpack_nonce__ !== 'undefined') {\n return __webpack_nonce__;\n }\n return undefined;\n};\n"],"names":["getNonce"],"mappings":"AAIU,IAACA,IAAW,WAAY;AAI9B,MAAI,OAAO,oBAAsB;AAC7B,WAAO;AAGf;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es596.js","sources":["../node_modules/react-remove-scroll-bar/dist/es2015/utils.js"],"sourcesContent":["export var zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nexport var getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n"],"names":["zeroGap","parse","x","getOffset","gapMode","cs","left","top","right","getGapWidth","offsets","documentWidth","windowWidth"],"mappings":"AAAU,IAACA,IAAU;AAAA,EACjB,MAAM;AAAA,EACN,KAAK;AAAA,EACL,OAAO;AAAA,EACP,KAAK;AACT,GACIC,IAAQ,SAAUC,GAAG;AAAE,SAAO,SAASA,KAAK,IAAI,EAAE,KAAK;AAAI,GAC3DC,IAAY,SAAUC,GAAS;AAC/B,MAAIC,IAAK,OAAO,iBAAiB,SAAS,IAAI,GAC1CC,IAAOD,EAAGD,MAAY,YAAY,gBAAgB,YAAY,GAC9DG,IAAMF,EAAGD,MAAY,YAAY,eAAe,WAAW,GAC3DI,IAAQH,EAAGD,MAAY,YAAY,iBAAiB,aAAa;AACrE,SAAO,CAACH,EAAMK,CAAI,GAAGL,EAAMM,CAAG,GAAGN,EAAMO,CAAK,CAAC;AACjD,GACWC,IAAc,SAAUL,GAAS;AAExC,MADIA,MAAY,WAAUA,IAAU,WAChC,OAAO,SAAW;AAClB,WAAOJ;AAEX,MAAIU,IAAUP,EAAUC,CAAO,GAC3BO,IAAgB,SAAS,gBAAgB,aACzCC,IAAc,OAAO;AACzB,SAAO;AAAA,IACH,MAAMF,EAAQ,CAAC;AAAA,IACf,KAAKA,EAAQ,CAAC;AAAA,IACd,OAAOA,EAAQ,CAAC;AAAA,IAChB,KAAK,KAAK,IAAI,GAAGE,IAAcD,IAAgBD,EAAQ,CAAC,IAAIA,EAAQ,CAAC,CAAC;AAAA,EACzE;AACL;","x_google_ignoreList":[0]}
@@ -308,7 +308,16 @@ const ce = ({
308
308
  onClick: A,
309
309
  disabled: o,
310
310
  "aria-label": "Previous page",
311
- children: /* @__PURE__ */ a.jsx("svg", { className: "pagination__button-arrow", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ a.jsx("path", { d: "M15 18l-6-6 6-6" }) })
311
+ children: /* @__PURE__ */ a.jsx(
312
+ "svg",
313
+ {
314
+ className: "pagination__button-arrow",
315
+ viewBox: "0 0 24 24",
316
+ "aria-hidden": "true",
317
+ role: "presentation",
318
+ children: /* @__PURE__ */ a.jsx("path", { d: "M15 18l-6-6 6-6" })
319
+ }
320
+ )
312
321
  }
313
322
  ),
314
323
  M().map(
@@ -336,7 +345,16 @@ const ce = ({
336
345
  onClick: V,
337
346
  disabled: I,
338
347
  "aria-label": "Next page",
339
- children: /* @__PURE__ */ a.jsx("svg", { className: "pagination__button-arrow", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ a.jsx("path", { d: "M9 6l6 6-6 6" }) })
348
+ children: /* @__PURE__ */ a.jsx(
349
+ "svg",
350
+ {
351
+ className: "pagination__button-arrow",
352
+ viewBox: "0 0 24 24",
353
+ "aria-hidden": "true",
354
+ role: "presentation",
355
+ children: /* @__PURE__ */ a.jsx("path", { d: "M9 6l6 6-6 6" })
356
+ }
357
+ )
340
358
  }
341
359
  )
342
360
  ] })
@@ -1 +1 @@
1
- {"version":3,"file":"index.es73.js","sources":["../src/components/ui/Table/index.tsx"],"sourcesContent":["import * as React from \"react\";\nimport clsx from \"clsx\";\nimport \"./Table.scss\";\nimport { Download, Info, TriangleDown, TriangleUp } from \"@/icons\";\nimport { ActionIconText } from \"@/components\";\nimport { CommonIconsType } from \"@/types/icons\";\nimport { InfoPopupProps } from \"../InfoPopup\";\nimport { useEffect } from \"react\";\n\n// per le celle che vanno renderizzate su due righe\nexport interface DoubleLineData {\n firstLine: string;\n secondLine: string;\n}\n\n//per le celle che renderizzano un link o un bottone\nexport interface ActionData {\n label: string | React.ReactNode;\n ariaLabel: string;\n type: \"link\" | \"button\";\n link?: string;\n action?: () => void;\n}\n\nexport interface ColumnConfig {\n label: string;\n ariaLabel: string;\n sortable: boolean;\n action?: () => void;\n iconAction?: () => void;\n popupInfo?: InfoPopupProps;\n icon?: React.ReactNode | CommonIconsType;\n iconPosition?: \"left\" | \"right\";\n key?: string;\n type?: \"string\" | \"date\" | \"number\";\n}\n\nexport interface TableRowData {\n [key: string]: string | DoubleLineData | ActionData;\n}\n\nexport interface TableHeaderProps\n extends React.HTMLAttributes<HTMLTableSectionElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface TableBodyProps\n extends React.HTMLAttributes<HTMLTableSectionElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface TableRowProps\n extends React.HTMLAttributes<HTMLTableRowElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface TableHeadProps\n extends React.ThHTMLAttributes<HTMLTableCellElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface TableCellBaseProps\n extends Omit<React.TdHTMLAttributes<HTMLTableCellElement>, \"content\"> {\n type?: \"double-line\" | \"action\";\n}\n\nexport interface TableCellProps extends TableCellBaseProps {\n content: string | DoubleLineData | ActionData;\n}\n\nexport interface PaginationProps {\n currentPage: number;\n totalResults: number;\n currentResultsPerPage?: number; // used to display 8 di 188 if user is in the last page\n resultsPerPage: number;\n setCurrentPage: (page: number) => void;\n onPageChange?: (page: number) => void;\n className?: string;\n serverSide?: boolean;\n totalItems?: number;\n hasNextPage?: boolean;\n hasPreviousPage?: boolean;\n onNextPage?: () => void;\n onPreviousPage?: () => void;\n}\n\nexport interface TableProps\n extends React.TableHTMLAttributes<HTMLTableElement> {\n className?: string;\n columns: ColumnConfig[];\n data: TableRowData[];\n pagination?: boolean;\n initialCurrentPage?: number;\n resultsPerPage?: number;\n defaultSortDirection?: \"asc\" | \"desc\";\n setSelectedSort?: (sortConfig: {\n key: string;\n direction: \"asc\" | \"desc\";\n }) => void;\n initialSortConfig?: { key: string; direction: \"asc\" | \"desc\" };\n serverSidePagination?: boolean;\n totalItems?: number;\n hasNextPage?: boolean;\n hasPreviousPage?: boolean;\n onNextPage?: () => void;\n onPreviousPage?: () => void;\n onPageChange?: (page: number) => void;\n variant?: \"default\" | \"exemptions\";\n}\n\nconst Table = React.forwardRef<HTMLTableElement, TableProps>(\n (\n {\n className,\n columns,\n data,\n pagination,\n initialCurrentPage = 1,\n resultsPerPage = 10,\n defaultSortDirection = \"desc\",\n setSelectedSort,\n initialSortConfig,\n serverSidePagination = false,\n totalItems,\n hasNextPage,\n hasPreviousPage,\n onNextPage,\n onPreviousPage,\n onPageChange,\n ...props\n },\n ref,\n ) => {\n const [sortConfig, setSortConfig] = React.useState<{\n key: string;\n direction: \"asc\" | \"desc\";\n }>(\n initialSortConfig || {\n key: columns[0].key || columns[0].label,\n direction: defaultSortDirection,\n },\n );\n const [currentPage, setCurrentPage] = React.useState(initialCurrentPage);\n\n useEffect(() => {\n if (initialSortConfig) {\n setSortConfig(initialSortConfig);\n }\n }, [initialSortConfig]);\n\n const sortedData = React.useMemo(() => {\n return [...data].sort((a, b) => {\n const aValue = a[sortConfig.key];\n const bValue = b[sortConfig.key];\n const column = columns.find(\n (col) => (col.key || col.label) === sortConfig.key,\n );\n\n if (typeof aValue === \"string\" && typeof bValue === \"string\") {\n if (column?.type === \"date\") {\n // Convert Italian date format (DD/MM/YYYY - HH:mm) to Date object\n const parseDate = (dateStr: string) => {\n const [datePart, timePart] = dateStr.split(\" - \");\n const [day, month, year] = datePart.split(\"/\").map(Number);\n const [hours, minutes] = timePart.split(\":\").map(Number);\n return new Date(year, month - 1, day, hours, minutes);\n };\n\n const dateA = parseDate(aValue);\n const dateB = parseDate(bValue);\n return sortConfig.direction === \"asc\"\n ? dateA.getTime() - dateB.getTime()\n : dateB.getTime() - dateA.getTime();\n }\n\n if (column?.type === \"number\") {\n const numA = parseFloat(aValue);\n const numB = parseFloat(bValue);\n return sortConfig.direction === \"asc\" ? numA - numB : numB - numA;\n }\n\n return sortConfig.direction === \"asc\"\n ? aValue.localeCompare(bValue)\n : bValue.localeCompare(aValue);\n }\n\n if (isDoubleLineData(aValue) && isDoubleLineData(bValue)) {\n return sortConfig.direction === \"asc\"\n ? aValue.firstLine.localeCompare(bValue.firstLine)\n : bValue.firstLine.localeCompare(aValue.firstLine);\n }\n\n return 0;\n });\n }, [data, sortConfig, columns]);\n\n const handleSort = (columnKey: string) => {\n const newSortConfig = {\n key: columnKey,\n direction:\n sortConfig.key === columnKey && sortConfig.direction === \"asc\"\n ? \"desc\"\n : \"asc\",\n } as { key: string; direction: \"asc\" | \"desc\" };\n\n setSortConfig(newSortConfig);\n if (setSelectedSort) {\n setSelectedSort(newSortConfig);\n }\n };\n\n const startIndex =\n pagination && !serverSidePagination\n ? (currentPage - 1) * resultsPerPage\n : 0;\n const endIndex =\n pagination && !serverSidePagination\n ? Math.min(startIndex + resultsPerPage, sortedData.length)\n : sortedData.length;\n const currentPageData = serverSidePagination\n ? sortedData\n : sortedData.slice(startIndex, endIndex);\n\n return (\n <div className=\"position-relative w-full\">\n <table\n ref={ref}\n className={clsx(\"table\", className)}\n role=\"table\"\n {...props}\n >\n <TableHeader className=\"table__header\">\n <TableRow>\n {columns.map((column, index) => (\n <TableHead\n key={`${column.label}-${index}`}\n config={column}\n sortConfig={sortConfig}\n onSort={() =>\n column.sortable && handleSort(column.key || column.label)\n }\n variant={props.variant}\n />\n ))}\n </TableRow>\n </TableHeader>\n <TableBody className=\"table__body\">\n {currentPageData.map((row, rowIndex) => (\n <TableRow key={rowIndex} className=\"table__row\">\n {columns.map((column, cellIndex) => {\n const key = column.key || column.label;\n const value = row[key];\n return (\n <TableCell\n key={`${key}-${cellIndex}`}\n content={value || \"\"}\n type={\n value && isDoubleLineData(value)\n ? \"double-line\"\n : value && isActionData(value)\n ? \"action\"\n : undefined\n }\n />\n );\n })}\n </TableRow>\n ))}\n </TableBody>\n </table>\n {pagination && (\n <Pagination\n currentPage={currentPage}\n totalResults={\n serverSidePagination ? totalItems || 0 : sortedData.length\n }\n currentResultsPerPage={data.length}\n resultsPerPage={resultsPerPage}\n setCurrentPage={setCurrentPage}\n onPageChange={onPageChange}\n serverSide={serverSidePagination}\n totalItems={totalItems}\n hasNextPage={hasNextPage}\n hasPreviousPage={hasPreviousPage}\n onNextPage={onNextPage}\n onPreviousPage={onPreviousPage}\n />\n )}\n </div>\n );\n },\n);\nTable.displayName = \"Table\";\n\nconst TableHeader = React.forwardRef<HTMLTableSectionElement, TableHeaderProps>(\n ({ className, children, ...props }, ref) => (\n <thead\n ref={ref}\n className={clsx(\"[&_tr]:border-b-0\", className)}\n {...props}\n >\n {children}\n </thead>\n ),\n);\nTableHeader.displayName = \"TableHeader\";\n\nconst TableBody = React.forwardRef<HTMLTableSectionElement, TableBodyProps>(\n ({ className, children, ...props }, ref) => (\n <tbody\n ref={ref}\n className={clsx(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n >\n {children}\n </tbody>\n ),\n);\nTableBody.displayName = \"TableBody\";\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, TableRowProps>(\n ({ className, children, ...props }, ref) => (\n <tr\n ref={ref}\n className={clsx(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className,\n )}\n {...props}\n >\n {children}\n </tr>\n ),\n);\nTableRow.displayName = \"TableRow\";\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n TableHeadProps & {\n config: ColumnConfig;\n sortConfig: { key: string; direction: \"asc\" | \"desc\" };\n onSort?: () => void;\n variant?: \"default\" | \"exemptions\";\n }\n>(({ className, config, sortConfig, onSort, ...props }, ref) => {\n const isSorted = sortConfig.key === (config.key || config.label);\n const sortDirection = isSorted ? sortConfig.direction : null;\n\n const getAriaSortValue = (): \"ascending\" | \"descending\" => {\n return sortDirection === \"asc\" ? \"ascending\" : \"descending\";\n };\n\n const renderIcon = (icon: React.ReactNode | CommonIconsType) => {\n switch (icon) {\n case \"info\":\n return <Info />;\n case \"download\":\n return <Download />;\n default:\n return icon;\n }\n };\n\n return (\n <th\n ref={ref}\n className={clsx(\n \"table__cell table__cell--header\",\n {\n \"table__cell--sortable\": config.sortable,\n \"table__cell--action\": config.action,\n },\n className,\n )}\n onClick={config.sortable ? onSort : config.action}\n aria-label={config.ariaLabel}\n aria-sort={isSorted ? getAriaSortValue() : undefined}\n {...props}\n >\n <div className=\"table__cell--header--content\">\n <div>\n <ActionIconText\n icon={renderIcon(config.icon)}\n noIcon={!renderIcon(config.icon)}\n textLabel={config.label}\n iconPosition={config.iconPosition}\n handleIconAction={() => {\n if (config.iconAction) {\n config.iconAction();\n }\n }}\n popupInfo={config.popupInfo}\n positionPopUp={config.popupInfo?.positionPopUp}\n classNameText={\n props.variant && \"fw-bold text-slate-28 fs-custom md-fs-6\"\n }\n />\n </div>\n {config.sortable && (\n <span className=\"sort-indicator\">\n <TriangleUp\n filled={isSorted && sortDirection === \"desc\"}\n className={clsx(\"sort-indicator__triangle\", {\n active: isSorted && sortDirection === \"desc\",\n })}\n />\n <TriangleDown\n filled={isSorted && sortDirection === \"asc\"}\n className={clsx(\"sort-indicator__triangle\", {\n active: isSorted && sortDirection === \"asc\",\n })}\n />\n </span>\n )}\n </div>\n </th>\n );\n});\nTableHead.displayName = \"TableHead\";\n\nconst DoubleLineContent: React.FC<{ data: DoubleLineData }> = ({ data }) => (\n <>\n <div className=\"table__cell--firstLine\">{data.firstLine}</div>\n <div className=\"table__cell--secondLine\">{data.secondLine}</div>\n </>\n);\n\nconst ActionContent: React.FC<{ data: ActionData }> = ({ data }) => {\n if (data.type === \"link\" && data.link) {\n return (\n <a href={data.link} aria-label={data.ariaLabel}>\n {data.label}\n </a>\n );\n }\n return (\n <button onClick={data.action} aria-label={data.ariaLabel}>\n {data.label}\n </button>\n );\n};\n\n// check if we are rendering a double line data\nconst isDoubleLineData = (\n content: TableCellProps[\"content\"],\n): content is DoubleLineData => {\n return (\n typeof content === \"object\" &&\n content !== null &&\n \"firstLine\" in content &&\n \"secondLine\" in content\n );\n};\n\n// check if we are rendering an action data\nconst isActionData = (\n content: TableCellProps[\"content\"],\n): content is ActionData => {\n return (\n typeof content === \"object\" &&\n content !== null &&\n \"label\" in content &&\n \"type\" in content\n );\n};\n\nconst TableCellContent: React.FC<{ content: TableCellProps[\"content\"] }> = ({\n content,\n}) => {\n if (typeof content === \"string\") {\n return <>{content}</>;\n }\n if (isDoubleLineData(content)) {\n return <DoubleLineContent data={content} />;\n }\n if (isActionData(content)) {\n return <ActionContent data={content} />;\n }\n return null;\n};\n\nconst TableCell = React.forwardRef<HTMLTableCellElement, TableCellProps>(\n ({ className, content, type, ...props }, ref) => (\n <td\n ref={ref}\n className={clsx(\n \"table__cell\",\n {\n \"table__cell--double-line\": type === \"double-line\",\n \"table__cell--action\": type === \"action\",\n },\n className,\n )}\n {...props}\n >\n <TableCellContent content={content} />\n </td>\n ),\n);\nTableCell.displayName = \"TableCell\";\n\nconst Pagination: React.FC<PaginationProps> = ({\n currentPage = 1,\n totalResults,\n resultsPerPage,\n currentResultsPerPage,\n setCurrentPage,\n onPageChange,\n className,\n serverSide = false,\n totalItems,\n hasNextPage,\n hasPreviousPage,\n onNextPage,\n onPreviousPage,\n}) => {\n const totalPages = serverSide\n ? Math.ceil((totalItems || totalResults) / resultsPerPage)\n : Math.ceil(totalResults / resultsPerPage);\n\n const handlePageChange = (page: number) => {\n setCurrentPage(page);\n if (onPageChange) {\n onPageChange(page);\n }\n };\n\n const handleNextPage = () => {\n const nextPage = currentPage + 1;\n if (serverSide && onNextPage) {\n onNextPage();\n }\n handlePageChange(nextPage);\n };\n\n const handlePreviousPage = () => {\n const prevPage = currentPage - 1;\n if (serverSide && onPreviousPage) {\n onPreviousPage();\n }\n handlePageChange(prevPage);\n };\n\n const isNextDisabled = serverSide ? !hasNextPage : currentPage === totalPages;\n const isPrevDisabled = serverSide ? !hasPreviousPage : currentPage === 1;\n\n const getPageNumbers = () => {\n const pages = [];\n const maxVisiblePages = 5;\n\n if (totalPages <= maxVisiblePages) {\n for (let i = 1; i <= totalPages; i++) {\n pages.push(i);\n }\n } else {\n pages.push(1);\n\n let start = Math.max(2, currentPage - 1);\n let end = Math.min(totalPages - 1, currentPage + 1);\n\n if (currentPage <= 3) {\n end = 4;\n } else if (currentPage >= totalPages - 2) {\n start = totalPages - 3;\n }\n\n if (start > 2) {\n pages.push(\"...\");\n }\n\n for (let i = start; i <= end; i++) {\n pages.push(i);\n }\n\n if (end < totalPages - 1) {\n pages.push(\"...\");\n }\n\n pages.push(totalPages);\n }\n\n return pages;\n };\n\n return (\n <div className={clsx(\"pagination\", className)}>\n <div className=\"pagination__info\">\n Stai visualizzando{\" \"}\n <span className=\"pagination__info__resultsPerPage\">\n {serverSide\n ? currentResultsPerPage\n : currentPage === totalPages && totalResults % resultsPerPage !== 0\n ? totalResults % resultsPerPage\n : resultsPerPage}\n </span>{\" \"}\n di {serverSide ? totalItems || totalResults : totalResults} risultati\n </div>\n <div className=\"pagination__nav\">\n <button\n className={clsx(\n \"pagination__button\",\n isPrevDisabled && \"pagination__button--disabled\",\n )}\n onClick={handlePreviousPage}\n disabled={isPrevDisabled}\n aria-label=\"Previous page\"\n >\n <svg className=\"pagination__button-arrow\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M15 18l-6-6 6-6\" />\n </svg>\n </button>\n\n {getPageNumbers().map((page, index) =>\n page === \"...\" ? (\n <span key={`ellipsis-${index}`} className=\"pagination__ellipsis\">\n ...\n </span>\n ) : (\n <button\n key={page}\n className={clsx(\n \"pagination__button\",\n currentPage === page && \"pagination__button--active\",\n )}\n onClick={() => handlePageChange(page as number)}\n disabled={page === currentPage}\n >\n {page}\n </button>\n ),\n )}\n\n <button\n className={clsx(\n \"pagination__button\",\n isNextDisabled && \"pagination__button--disabled\",\n )}\n onClick={handleNextPage}\n disabled={isNextDisabled}\n aria-label=\"Next page\"\n >\n <svg className=\"pagination__button-arrow\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M9 6l6 6-6 6\" />\n </svg>\n </button>\n </div>\n </div>\n );\n};\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableHead,\n TableRow,\n TableCell,\n Pagination,\n};\n"],"names":["Table","React","className","columns","data","pagination","initialCurrentPage","resultsPerPage","defaultSortDirection","setSelectedSort","initialSortConfig","serverSidePagination","totalItems","hasNextPage","hasPreviousPage","onNextPage","onPreviousPage","onPageChange","props","ref","sortConfig","setSortConfig","currentPage","setCurrentPage","useEffect","sortedData","a","b","aValue","bValue","column","col","parseDate","dateStr","datePart","timePart","day","month","year","hours","minutes","dateA","dateB","numA","numB","isDoubleLineData","handleSort","columnKey","newSortConfig","startIndex","endIndex","currentPageData","jsxs","clsx","jsx","TableHeader","TableRow","index","TableHead","TableBody","row","rowIndex","cellIndex","key","value","TableCell","isActionData","Pagination","children","config","onSort","isSorted","sortDirection","getAriaSortValue","renderIcon","icon","Info","Download","ActionIconText","_a","TriangleUp","TriangleDown","DoubleLineContent","Fragment","ActionContent","content","TableCellContent","type","totalResults","currentResultsPerPage","serverSide","totalPages","handlePageChange","page","handleNextPage","nextPage","handlePreviousPage","prevPage","isNextDisabled","isPrevDisabled","getPageNumbers","pages","i","start","end"],"mappings":"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"}
1
+ {"version":3,"file":"index.es73.js","sources":["../src/components/ui/Table/index.tsx"],"sourcesContent":["import * as React from \"react\";\nimport clsx from \"clsx\";\nimport \"./Table.scss\";\nimport { Download, Info, TriangleDown, TriangleUp } from \"@/icons\";\nimport { ActionIconText } from \"@/components\";\nimport { CommonIconsType } from \"@/types/icons\";\nimport { InfoPopupProps } from \"../InfoPopup\";\nimport { useEffect } from \"react\";\n\n// per le celle che vanno renderizzate su due righe\nexport interface DoubleLineData {\n firstLine: string;\n secondLine: string;\n}\n\n//per le celle che renderizzano un link o un bottone\nexport interface ActionData {\n label: string | React.ReactNode;\n ariaLabel: string;\n type: \"link\" | \"button\";\n link?: string;\n action?: () => void;\n}\n\nexport interface ColumnConfig {\n label: string;\n ariaLabel: string;\n sortable: boolean;\n action?: () => void;\n iconAction?: () => void;\n popupInfo?: InfoPopupProps;\n icon?: React.ReactNode | CommonIconsType;\n iconPosition?: \"left\" | \"right\";\n key?: string;\n type?: \"string\" | \"date\" | \"number\";\n}\n\nexport interface TableRowData {\n [key: string]: string | DoubleLineData | ActionData;\n}\n\nexport interface TableHeaderProps\n extends React.HTMLAttributes<HTMLTableSectionElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface TableBodyProps\n extends React.HTMLAttributes<HTMLTableSectionElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface TableRowProps\n extends React.HTMLAttributes<HTMLTableRowElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface TableHeadProps\n extends React.ThHTMLAttributes<HTMLTableCellElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface TableCellBaseProps\n extends Omit<React.TdHTMLAttributes<HTMLTableCellElement>, \"content\"> {\n type?: \"double-line\" | \"action\";\n}\n\nexport interface TableCellProps extends TableCellBaseProps {\n content: string | DoubleLineData | ActionData;\n}\n\nexport interface PaginationProps {\n currentPage: number;\n totalResults: number;\n currentResultsPerPage?: number; // used to display 8 di 188 if user is in the last page\n resultsPerPage: number;\n setCurrentPage: (page: number) => void;\n onPageChange?: (page: number) => void;\n className?: string;\n serverSide?: boolean;\n totalItems?: number;\n hasNextPage?: boolean;\n hasPreviousPage?: boolean;\n onNextPage?: () => void;\n onPreviousPage?: () => void;\n}\n\nexport interface TableProps\n extends React.TableHTMLAttributes<HTMLTableElement> {\n className?: string;\n columns: ColumnConfig[];\n data: TableRowData[];\n pagination?: boolean;\n initialCurrentPage?: number;\n resultsPerPage?: number;\n defaultSortDirection?: \"asc\" | \"desc\";\n setSelectedSort?: (sortConfig: {\n key: string;\n direction: \"asc\" | \"desc\";\n }) => void;\n initialSortConfig?: { key: string; direction: \"asc\" | \"desc\" };\n serverSidePagination?: boolean;\n totalItems?: number;\n hasNextPage?: boolean;\n hasPreviousPage?: boolean;\n onNextPage?: () => void;\n onPreviousPage?: () => void;\n onPageChange?: (page: number) => void;\n variant?: \"default\" | \"exemptions\";\n}\n\nconst Table = React.forwardRef<HTMLTableElement, TableProps>(\n (\n {\n className,\n columns,\n data,\n pagination,\n initialCurrentPage = 1,\n resultsPerPage = 10,\n defaultSortDirection = \"desc\",\n setSelectedSort,\n initialSortConfig,\n serverSidePagination = false,\n totalItems,\n hasNextPage,\n hasPreviousPage,\n onNextPage,\n onPreviousPage,\n onPageChange,\n ...props\n },\n ref,\n ) => {\n const [sortConfig, setSortConfig] = React.useState<{\n key: string;\n direction: \"asc\" | \"desc\";\n }>(\n initialSortConfig || {\n key: columns[0].key || columns[0].label,\n direction: defaultSortDirection,\n },\n );\n const [currentPage, setCurrentPage] = React.useState(initialCurrentPage);\n\n useEffect(() => {\n if (initialSortConfig) {\n setSortConfig(initialSortConfig);\n }\n }, [initialSortConfig]);\n\n const sortedData = React.useMemo(() => {\n return [...data].sort((a, b) => {\n const aValue = a[sortConfig.key];\n const bValue = b[sortConfig.key];\n const column = columns.find(\n (col) => (col.key || col.label) === sortConfig.key,\n );\n\n if (typeof aValue === \"string\" && typeof bValue === \"string\") {\n if (column?.type === \"date\") {\n // Convert Italian date format (DD/MM/YYYY - HH:mm) to Date object\n const parseDate = (dateStr: string) => {\n const [datePart, timePart] = dateStr.split(\" - \");\n const [day, month, year] = datePart.split(\"/\").map(Number);\n const [hours, minutes] = timePart.split(\":\").map(Number);\n return new Date(year, month - 1, day, hours, minutes);\n };\n\n const dateA = parseDate(aValue);\n const dateB = parseDate(bValue);\n return sortConfig.direction === \"asc\"\n ? dateA.getTime() - dateB.getTime()\n : dateB.getTime() - dateA.getTime();\n }\n\n if (column?.type === \"number\") {\n const numA = parseFloat(aValue);\n const numB = parseFloat(bValue);\n return sortConfig.direction === \"asc\" ? numA - numB : numB - numA;\n }\n\n return sortConfig.direction === \"asc\"\n ? aValue.localeCompare(bValue)\n : bValue.localeCompare(aValue);\n }\n\n if (isDoubleLineData(aValue) && isDoubleLineData(bValue)) {\n return sortConfig.direction === \"asc\"\n ? aValue.firstLine.localeCompare(bValue.firstLine)\n : bValue.firstLine.localeCompare(aValue.firstLine);\n }\n\n return 0;\n });\n }, [data, sortConfig, columns]);\n\n const handleSort = (columnKey: string) => {\n const newSortConfig = {\n key: columnKey,\n direction:\n sortConfig.key === columnKey && sortConfig.direction === \"asc\"\n ? \"desc\"\n : \"asc\",\n } as { key: string; direction: \"asc\" | \"desc\" };\n\n setSortConfig(newSortConfig);\n if (setSelectedSort) {\n setSelectedSort(newSortConfig);\n }\n };\n\n const startIndex =\n pagination && !serverSidePagination\n ? (currentPage - 1) * resultsPerPage\n : 0;\n const endIndex =\n pagination && !serverSidePagination\n ? Math.min(startIndex + resultsPerPage, sortedData.length)\n : sortedData.length;\n const currentPageData = serverSidePagination\n ? sortedData\n : sortedData.slice(startIndex, endIndex);\n\n return (\n <div className=\"position-relative w-full\">\n <table\n ref={ref}\n className={clsx(\"table\", className)}\n role=\"table\"\n {...props}\n >\n <TableHeader className=\"table__header\">\n <TableRow>\n {columns.map((column, index) => (\n <TableHead\n key={`${column.label}-${index}`}\n config={column}\n sortConfig={sortConfig}\n onSort={() =>\n column.sortable && handleSort(column.key || column.label)\n }\n variant={props.variant}\n />\n ))}\n </TableRow>\n </TableHeader>\n <TableBody className=\"table__body\">\n {currentPageData.map((row, rowIndex) => (\n <TableRow key={rowIndex} className=\"table__row\">\n {columns.map((column, cellIndex) => {\n const key = column.key || column.label;\n const value = row[key];\n return (\n <TableCell\n key={`${key}-${cellIndex}`}\n content={value || \"\"}\n type={\n value && isDoubleLineData(value)\n ? \"double-line\"\n : value && isActionData(value)\n ? \"action\"\n : undefined\n }\n />\n );\n })}\n </TableRow>\n ))}\n </TableBody>\n </table>\n {pagination && (\n <Pagination\n currentPage={currentPage}\n totalResults={\n serverSidePagination ? totalItems || 0 : sortedData.length\n }\n currentResultsPerPage={data.length}\n resultsPerPage={resultsPerPage}\n setCurrentPage={setCurrentPage}\n onPageChange={onPageChange}\n serverSide={serverSidePagination}\n totalItems={totalItems}\n hasNextPage={hasNextPage}\n hasPreviousPage={hasPreviousPage}\n onNextPage={onNextPage}\n onPreviousPage={onPreviousPage}\n />\n )}\n </div>\n );\n },\n);\nTable.displayName = \"Table\";\n\nconst TableHeader = React.forwardRef<HTMLTableSectionElement, TableHeaderProps>(\n ({ className, children, ...props }, ref) => (\n <thead\n ref={ref}\n className={clsx(\"[&_tr]:border-b-0\", className)}\n {...props}\n >\n {children}\n </thead>\n ),\n);\nTableHeader.displayName = \"TableHeader\";\n\nconst TableBody = React.forwardRef<HTMLTableSectionElement, TableBodyProps>(\n ({ className, children, ...props }, ref) => (\n <tbody\n ref={ref}\n className={clsx(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n >\n {children}\n </tbody>\n ),\n);\nTableBody.displayName = \"TableBody\";\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, TableRowProps>(\n ({ className, children, ...props }, ref) => (\n <tr\n ref={ref}\n className={clsx(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className,\n )}\n {...props}\n >\n {children}\n </tr>\n ),\n);\nTableRow.displayName = \"TableRow\";\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n TableHeadProps & {\n config: ColumnConfig;\n sortConfig: { key: string; direction: \"asc\" | \"desc\" };\n onSort?: () => void;\n variant?: \"default\" | \"exemptions\";\n }\n>(({ className, config, sortConfig, onSort, ...props }, ref) => {\n const isSorted = sortConfig.key === (config.key || config.label);\n const sortDirection = isSorted ? sortConfig.direction : null;\n\n const getAriaSortValue = (): \"ascending\" | \"descending\" => {\n return sortDirection === \"asc\" ? \"ascending\" : \"descending\";\n };\n\n const renderIcon = (icon: React.ReactNode | CommonIconsType) => {\n switch (icon) {\n case \"info\":\n return <Info />;\n case \"download\":\n return <Download />;\n default:\n return icon;\n }\n };\n\n return (\n <th\n ref={ref}\n className={clsx(\n \"table__cell table__cell--header\",\n {\n \"table__cell--sortable\": config.sortable,\n \"table__cell--action\": config.action,\n },\n className,\n )}\n onClick={config.sortable ? onSort : config.action}\n aria-label={config.ariaLabel}\n aria-sort={isSorted ? getAriaSortValue() : undefined}\n {...props}\n >\n <div className=\"table__cell--header--content\">\n <div>\n <ActionIconText\n icon={renderIcon(config.icon)}\n noIcon={!renderIcon(config.icon)}\n textLabel={config.label}\n iconPosition={config.iconPosition}\n handleIconAction={() => {\n if (config.iconAction) {\n config.iconAction();\n }\n }}\n popupInfo={config.popupInfo}\n positionPopUp={config.popupInfo?.positionPopUp}\n classNameText={\n props.variant && \"fw-bold text-slate-28 fs-custom md-fs-6\"\n }\n />\n </div>\n {config.sortable && (\n <span className=\"sort-indicator\">\n <TriangleUp\n filled={isSorted && sortDirection === \"desc\"}\n className={clsx(\"sort-indicator__triangle\", {\n active: isSorted && sortDirection === \"desc\",\n })}\n />\n <TriangleDown\n filled={isSorted && sortDirection === \"asc\"}\n className={clsx(\"sort-indicator__triangle\", {\n active: isSorted && sortDirection === \"asc\",\n })}\n />\n </span>\n )}\n </div>\n </th>\n );\n});\nTableHead.displayName = \"TableHead\";\n\nconst DoubleLineContent: React.FC<{ data: DoubleLineData }> = ({ data }) => (\n <>\n <div className=\"table__cell--firstLine\">{data.firstLine}</div>\n <div className=\"table__cell--secondLine\">{data.secondLine}</div>\n </>\n);\n\nconst ActionContent: React.FC<{ data: ActionData }> = ({ data }) => {\n if (data.type === \"link\" && data.link) {\n return (\n <a href={data.link} aria-label={data.ariaLabel}>\n {data.label}\n </a>\n );\n }\n return (\n <button onClick={data.action} aria-label={data.ariaLabel}>\n {data.label}\n </button>\n );\n};\n\n// check if we are rendering a double line data\nconst isDoubleLineData = (\n content: TableCellProps[\"content\"],\n): content is DoubleLineData => {\n return (\n typeof content === \"object\" &&\n content !== null &&\n \"firstLine\" in content &&\n \"secondLine\" in content\n );\n};\n\n// check if we are rendering an action data\nconst isActionData = (\n content: TableCellProps[\"content\"],\n): content is ActionData => {\n return (\n typeof content === \"object\" &&\n content !== null &&\n \"label\" in content &&\n \"type\" in content\n );\n};\n\nconst TableCellContent: React.FC<{ content: TableCellProps[\"content\"] }> = ({\n content,\n}) => {\n if (typeof content === \"string\") {\n return <>{content}</>;\n }\n if (isDoubleLineData(content)) {\n return <DoubleLineContent data={content} />;\n }\n if (isActionData(content)) {\n return <ActionContent data={content} />;\n }\n return null;\n};\n\nconst TableCell = React.forwardRef<HTMLTableCellElement, TableCellProps>(\n ({ className, content, type, ...props }, ref) => (\n <td\n ref={ref}\n className={clsx(\n \"table__cell\",\n {\n \"table__cell--double-line\": type === \"double-line\",\n \"table__cell--action\": type === \"action\",\n },\n className,\n )}\n {...props}\n >\n <TableCellContent content={content} />\n </td>\n ),\n);\nTableCell.displayName = \"TableCell\";\n\nconst Pagination: React.FC<PaginationProps> = ({\n currentPage = 1,\n totalResults,\n resultsPerPage,\n currentResultsPerPage,\n setCurrentPage,\n onPageChange,\n className,\n serverSide = false,\n totalItems,\n hasNextPage,\n hasPreviousPage,\n onNextPage,\n onPreviousPage,\n}) => {\n const totalPages = serverSide\n ? Math.ceil((totalItems || totalResults) / resultsPerPage)\n : Math.ceil(totalResults / resultsPerPage);\n\n const handlePageChange = (page: number) => {\n setCurrentPage(page);\n if (onPageChange) {\n onPageChange(page);\n }\n };\n\n const handleNextPage = () => {\n const nextPage = currentPage + 1;\n if (serverSide && onNextPage) {\n onNextPage();\n }\n handlePageChange(nextPage);\n };\n\n const handlePreviousPage = () => {\n const prevPage = currentPage - 1;\n if (serverSide && onPreviousPage) {\n onPreviousPage();\n }\n handlePageChange(prevPage);\n };\n\n const isNextDisabled = serverSide ? !hasNextPage : currentPage === totalPages;\n const isPrevDisabled = serverSide ? !hasPreviousPage : currentPage === 1;\n\n const getPageNumbers = () => {\n const pages = [];\n const maxVisiblePages = 5;\n\n if (totalPages <= maxVisiblePages) {\n for (let i = 1; i <= totalPages; i++) {\n pages.push(i);\n }\n } else {\n pages.push(1);\n\n let start = Math.max(2, currentPage - 1);\n let end = Math.min(totalPages - 1, currentPage + 1);\n\n if (currentPage <= 3) {\n end = 4;\n } else if (currentPage >= totalPages - 2) {\n start = totalPages - 3;\n }\n\n if (start > 2) {\n pages.push(\"...\");\n }\n\n for (let i = start; i <= end; i++) {\n pages.push(i);\n }\n\n if (end < totalPages - 1) {\n pages.push(\"...\");\n }\n\n pages.push(totalPages);\n }\n\n return pages;\n };\n\n return (\n <div className={clsx(\"pagination\", className)}>\n <div className=\"pagination__info\">\n Stai visualizzando{\" \"}\n <span className=\"pagination__info__resultsPerPage\">\n {serverSide\n ? currentResultsPerPage\n : currentPage === totalPages && totalResults % resultsPerPage !== 0\n ? totalResults % resultsPerPage\n : resultsPerPage}\n </span>{\" \"}\n di {serverSide ? totalItems || totalResults : totalResults} risultati\n </div>\n <div className=\"pagination__nav\">\n <button\n className={clsx(\n \"pagination__button\",\n isPrevDisabled && \"pagination__button--disabled\",\n )}\n onClick={handlePreviousPage}\n disabled={isPrevDisabled}\n aria-label=\"Previous page\"\n >\n <svg\n className=\"pagination__button-arrow\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n role=\"presentation\"\n >\n <path d=\"M15 18l-6-6 6-6\" />\n </svg>\n </button>\n\n {getPageNumbers().map((page, index) =>\n page === \"...\" ? (\n <span key={`ellipsis-${index}`} className=\"pagination__ellipsis\">\n ...\n </span>\n ) : (\n <button\n key={page}\n className={clsx(\n \"pagination__button\",\n currentPage === page && \"pagination__button--active\",\n )}\n onClick={() => handlePageChange(page as number)}\n disabled={page === currentPage}\n >\n {page}\n </button>\n ),\n )}\n\n <button\n className={clsx(\n \"pagination__button\",\n isNextDisabled && \"pagination__button--disabled\",\n )}\n onClick={handleNextPage}\n disabled={isNextDisabled}\n aria-label=\"Next page\"\n >\n <svg\n className=\"pagination__button-arrow\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n role=\"presentation\"\n >\n <path d=\"M9 6l6 6-6 6\" />\n </svg>\n </button>\n </div>\n </div>\n );\n};\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableHead,\n TableRow,\n TableCell,\n Pagination,\n};\n"],"names":["Table","React","className","columns","data","pagination","initialCurrentPage","resultsPerPage","defaultSortDirection","setSelectedSort","initialSortConfig","serverSidePagination","totalItems","hasNextPage","hasPreviousPage","onNextPage","onPreviousPage","onPageChange","props","ref","sortConfig","setSortConfig","currentPage","setCurrentPage","useEffect","sortedData","a","b","aValue","bValue","column","col","parseDate","dateStr","datePart","timePart","day","month","year","hours","minutes","dateA","dateB","numA","numB","isDoubleLineData","handleSort","columnKey","newSortConfig","startIndex","endIndex","currentPageData","jsxs","clsx","jsx","TableHeader","TableRow","index","TableHead","TableBody","row","rowIndex","cellIndex","key","value","TableCell","isActionData","Pagination","children","config","onSort","isSorted","sortDirection","getAriaSortValue","renderIcon","icon","Info","Download","ActionIconText","_a","TriangleUp","TriangleDown","DoubleLineContent","Fragment","ActionContent","content","TableCellContent","type","totalResults","currentResultsPerPage","serverSide","totalPages","handlePageChange","page","handleNextPage","nextPage","handlePreviousPage","prevPage","isNextDisabled","isPrevDisabled","getPageNumbers","pages","i","start","end"],"mappings":"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"}
@@ -225,7 +225,16 @@ const ii = ({
225
225
  onClick: w,
226
226
  disabled: L,
227
227
  "aria-label": "Previous page",
228
- children: /* @__PURE__ */ i.jsx("svg", { className: "pagination-mobile__button-arrow", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ i.jsx("path", { d: "M15 18l-6-6 6-6" }) })
228
+ children: /* @__PURE__ */ i.jsx(
229
+ "svg",
230
+ {
231
+ className: "pagination-mobile__button-arrow",
232
+ viewBox: "0 0 24 24",
233
+ "aria-hidden": "true",
234
+ role: "presentation",
235
+ children: /* @__PURE__ */ i.jsx("path", { d: "M15 18l-6-6 6-6" })
236
+ }
237
+ )
229
238
  }
230
239
  ),
231
240
  j().map(
@@ -260,7 +269,16 @@ const ii = ({
260
269
  onClick: V,
261
270
  disabled: k,
262
271
  "aria-label": "Next page",
263
- children: /* @__PURE__ */ i.jsx("svg", { className: "pagination-mobile__button-arrow", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ i.jsx("path", { d: "M9 6l6 6-6 6" }) })
272
+ children: /* @__PURE__ */ i.jsx(
273
+ "svg",
274
+ {
275
+ className: "pagination-mobile__button-arrow",
276
+ viewBox: "0 0 24 24",
277
+ "aria-hidden": "true",
278
+ role: "presentation",
279
+ children: /* @__PURE__ */ i.jsx("path", { d: "M9 6l6 6-6 6" })
280
+ }
281
+ )
264
282
  }
265
283
  )
266
284
  ] })
@@ -1 +1 @@
1
- {"version":3,"file":"index.es74.js","sources":["../src/components/ui/TableMobile/index.tsx"],"sourcesContent":["import {\r\n ActionData,\r\n ActionIconText,\r\n Col,\r\n ColumnConfig,\r\n DoubleLineData,\r\n Row,\r\n TableRowData,\r\n} from \"@/components\";\r\nimport clsx from \"clsx\";\r\nimport \"./TableMobile.scss\";\r\nimport { Download, Info, TriangleDown, TriangleUp } from \"@/icons\";\r\nimport { ReactNode } from \"react\";\r\nimport * as React from \"react\";\r\nimport { CommonIconsType } from \"@/types/icons.ts\";\r\nimport { useState } from \"react\";\r\n\r\nexport type TableMobileProps = {\r\n data: TableRowData[];\r\n columns: ColumnConfig[];\r\n pagination?: boolean;\r\n resultsPerPage?: number;\r\n totalResults?: number;\r\n initialCurrentPage?: number;\r\n serverSidePagination?: boolean;\r\n totalItems?: number;\r\n hasNextPage?: boolean;\r\n hasPreviousPage?: boolean;\r\n onNextPage?: () => void;\r\n onPreviousPage?: () => void;\r\n onPageChange?: (page: number) => void;\r\n setCurrentPage?: (page: number) => void;\r\n sortConfig?: { key: string; direction: \"asc\" | \"desc\" } | null;\r\n onSortChange?: (key: string, direction: \"asc\" | \"desc\") => void;\r\n};\r\n\r\nexport const TableMobile = ({\r\n data,\r\n columns,\r\n pagination = true,\r\n resultsPerPage = 5,\r\n totalResults,\r\n initialCurrentPage = 1,\r\n serverSidePagination = false,\r\n totalItems,\r\n hasNextPage,\r\n hasPreviousPage,\r\n onNextPage,\r\n onPreviousPage,\r\n onPageChange,\r\n setCurrentPage: externalSetCurrentPage,\r\n sortConfig = null,\r\n onSortChange,\r\n}: TableMobileProps) => {\r\n const [currentPage, setInternalCurrentPage] = useState(initialCurrentPage);\r\n const handleSetCurrentPage = (page: number) => {\r\n setInternalCurrentPage(page);\r\n externalSetCurrentPage?.(page);\r\n };\r\n\r\n const sortedData = React.useMemo(() => {\r\n if (!sortConfig) return data;\r\n\r\n return [...data].sort((a, b) => {\r\n const aValue = a[sortConfig.key];\r\n const bValue = b[sortConfig.key];\r\n\r\n const aText =\r\n typeof aValue === \"object\" && \"firstLine\" in aValue\r\n ? aValue.firstLine\r\n : aValue;\r\n const bText =\r\n typeof bValue === \"object\" && \"firstLine\" in bValue\r\n ? bValue.firstLine\r\n : bValue;\r\n\r\n if (aText < bText) {\r\n return sortConfig.direction === \"asc\" ? -1 : 1;\r\n }\r\n if (aText > bText) {\r\n return sortConfig.direction === \"asc\" ? 1 : -1;\r\n }\r\n return 0;\r\n });\r\n }, [data, sortConfig]);\r\n\r\n const startIndex = serverSidePagination\r\n ? 0\r\n : (currentPage - 1) * resultsPerPage;\r\n const endIndex = serverSidePagination\r\n ? sortedData.length\r\n : Math.min(startIndex + resultsPerPage, sortedData.length);\r\n const currentPageData = sortedData.slice(startIndex, endIndex);\r\n\r\n return (\r\n <Col className={\"w-full h-full\"} gap={\"x16\"}>\r\n {currentPageData.map((data, index) => (\r\n <CardTable\r\n columns={columns}\r\n key={index}\r\n data={data}\r\n sortConfig={sortConfig}\r\n onSortChange={onSortChange}\r\n />\r\n ))}\r\n\r\n {pagination && (\r\n <TableMobilePagination\r\n currentPage={currentPage}\r\n totalResults={totalResults || sortedData.length}\r\n resultsPerPage={resultsPerPage}\r\n setCurrentPage={handleSetCurrentPage}\r\n onPageChange={onPageChange}\r\n serverSide={serverSidePagination}\r\n totalItems={totalItems}\r\n hasNextPage={hasNextPage}\r\n hasPreviousPage={hasPreviousPage}\r\n onNextPage={onNextPage}\r\n onPreviousPage={onPreviousPage}\r\n currentResultsPerPage={\r\n serverSidePagination ? sortedData.length : resultsPerPage\r\n }\r\n className=\"mt-x16\"\r\n />\r\n )}\r\n </Col>\r\n );\r\n};\r\n\r\nexport type CardTableProps = {\r\n columns: ColumnConfig[];\r\n data: TableRowData;\r\n sortConfig: { key: string; direction: \"asc\" | \"desc\" } | null;\r\n onSortChange?: (key: string, direction: \"asc\" | \"desc\") => void;\r\n};\r\n\r\nconst ActionContent: React.FC<{ data: ActionData }> = ({ data }) => {\r\n if (data.type === \"link\" && data.link) {\r\n return (\r\n <a href={data.link} aria-label={data.ariaLabel}>\r\n {data.label}\r\n </a>\r\n );\r\n }\r\n return (\r\n <button onClick={data.action} aria-label={data.ariaLabel}>\r\n {data.label}\r\n </button>\r\n );\r\n};\r\n\r\nexport const CardTable = ({\r\n columns,\r\n sortConfig,\r\n data,\r\n onSortChange,\r\n}: CardTableProps) => {\r\n const renderColumnValue = (value: any): ReactNode => {\r\n if (!value) return \"\";\r\n\r\n if (typeof value === \"object\" && \"firstLine\" in value) {\r\n const doubleLineValue = value as DoubleLineData;\r\n return `${doubleLineValue.firstLine}${doubleLineValue.secondLine ? ` ${doubleLineValue.secondLine}` : \"\"}`;\r\n }\r\n\r\n if (typeof value === \"object\" && \"label\" in value && \"type\" in value) {\r\n return <ActionContent data={value} />;\r\n }\r\n\r\n return value;\r\n };\r\n\r\n const renderIcon = (icon: React.ReactNode | CommonIconsType) => {\r\n switch (icon) {\r\n case \"info\":\r\n return <Info />;\r\n case \"download\":\r\n return <Download />;\r\n default:\r\n return icon;\r\n }\r\n };\r\n\r\n const handleSortClick = (key: string) => {\r\n if (!onSortChange || !sortConfig) return;\r\n\r\n const newDirection =\r\n sortConfig.key === key\r\n ? sortConfig.direction === \"asc\"\r\n ? \"desc\"\r\n : \"asc\"\r\n : \"asc\";\r\n\r\n onSortChange(key, newDirection);\r\n };\r\n\r\n return (\r\n <div\r\n className={clsx(\"ui-card-table shadow br-x4 text-slate-28 fs-custom \")}\r\n >\r\n {columns.map((column, index) => {\r\n if (!column.key || column.key === \"actionData\") {\r\n return (\r\n <Row\r\n key={index}\r\n p={\"x16\"}\r\n className={\"ui-table-header\"}\r\n justifyContent={\"space-between\"}\r\n >\r\n <Col justifyContent={\"end\"} gap={\"x4\"} className={\"w-full\"}>\r\n <Row justifyContent={\"end\"} className=\"table-mobile-actions\">\r\n {renderColumnValue(data.actionData)}\r\n </Row>\r\n </Col>\r\n </Row>\r\n );\r\n }\r\n\r\n const columnValue = data[column.key];\r\n const config = column;\r\n const isSorted = sortConfig?.key === column.key;\r\n const sortDirection = isSorted ? sortConfig.direction : null;\r\n\r\n return (\r\n <Row\r\n key={index}\r\n p={\"x16\"}\r\n className={\"ui-table-header\"}\r\n justifyContent={\"space-between\"}\r\n >\r\n <Col justifyContent={\"center\"} gap={\"x4\"} className={\"w-full\"}>\r\n <ActionIconText\r\n justifyContent={\"space-between\"}\r\n alignItems={\"center\"}\r\n icon={renderIcon(config.icon)}\r\n noIcon={!renderIcon(config.icon)}\r\n textLabel={config.label}\r\n iconPosition={config.iconPosition}\r\n popupInfo={config.popupInfo}\r\n positionPopUp={\"left\"}\r\n classNameText={\"fw-bold text-slate-28 fs-custom md-fs-6\"}\r\n >\r\n {config.sortable && (\r\n <span\r\n className=\"sort-indicator\"\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n handleSortClick(column.key!);\r\n }}\r\n >\r\n <TriangleUp\r\n filled={isSorted && sortDirection === \"desc\"}\r\n className={clsx(\"sort-indicator__triangle\", {\r\n active: isSorted && sortDirection === \"desc\",\r\n })}\r\n />\r\n <TriangleDown\r\n filled={isSorted && sortDirection === \"asc\"}\r\n className={clsx(\"sort-indicator__triangle\", {\r\n active: isSorted && sortDirection === \"asc\",\r\n })}\r\n />\r\n </span>\r\n )}\r\n </ActionIconText>\r\n <Row>{renderColumnValue(columnValue)}</Row>\r\n </Col>\r\n </Row>\r\n );\r\n })}\r\n </div>\r\n );\r\n};\r\n\r\nexport type TableMobilePaginationProps = {\r\n currentPage?: number;\r\n totalResults?: number;\r\n resultsPerPage: number;\r\n setCurrentPage?: (page: number) => void;\r\n onPageChange?: (page: number) => void;\r\n className?: string;\r\n serverSide?: boolean;\r\n totalItems?: number;\r\n hasNextPage?: boolean;\r\n hasPreviousPage?: boolean;\r\n onNextPage?: () => void;\r\n onPreviousPage?: () => void;\r\n currentResultsPerPage?: number;\r\n};\r\n\r\nexport const TableMobilePagination: React.FC<TableMobilePaginationProps> = ({\r\n currentPage = 1,\r\n totalResults = 0,\r\n resultsPerPage,\r\n setCurrentPage,\r\n onPageChange,\r\n className,\r\n serverSide = false,\r\n totalItems,\r\n hasNextPage,\r\n hasPreviousPage,\r\n onNextPage,\r\n onPreviousPage,\r\n currentResultsPerPage = resultsPerPage,\r\n}) => {\r\n const totalPages = serverSide\r\n ? Math.ceil((totalItems || totalResults) / resultsPerPage)\r\n : Math.ceil(totalResults / resultsPerPage);\r\n\r\n const handlePageChange = (page: number) => {\r\n setCurrentPage?.(page);\r\n if (onPageChange) {\r\n onPageChange(page);\r\n }\r\n };\r\n\r\n const handleNextPage = () => {\r\n const nextPage = currentPage + 1;\r\n if (serverSide && onNextPage) {\r\n onNextPage();\r\n }\r\n handlePageChange(nextPage);\r\n };\r\n\r\n const handlePreviousPage = () => {\r\n const prevPage = currentPage - 1;\r\n if (serverSide && onPreviousPage) {\r\n onPreviousPage();\r\n }\r\n handlePageChange(prevPage);\r\n };\r\n\r\n const isNextDisabled = serverSide ? !hasNextPage : currentPage === totalPages;\r\n const isPrevDisabled = serverSide ? !hasPreviousPage : currentPage === 1;\r\n\r\n const getPageNumbers = () => {\r\n const pages = [];\r\n const maxVisiblePages = 5;\r\n\r\n if (totalPages <= maxVisiblePages) {\r\n for (let i = 1; i <= totalPages; i++) {\r\n pages.push(i);\r\n }\r\n } else {\r\n pages.push(1);\r\n\r\n let start = Math.max(2, currentPage - 1);\r\n let end = Math.min(totalPages - 1, currentPage + 1);\r\n\r\n if (currentPage <= 3) {\r\n end = 4;\r\n } else if (currentPage >= totalPages - 2) {\r\n start = totalPages - 3;\r\n }\r\n\r\n if (start > 2) {\r\n pages.push(\"...\");\r\n }\r\n\r\n for (let i = start; i <= end; i++) {\r\n pages.push(i);\r\n }\r\n\r\n if (end < totalPages - 1) {\r\n pages.push(\"...\");\r\n }\r\n\r\n pages.push(totalPages);\r\n }\r\n\r\n return pages;\r\n };\r\n\r\n return (\r\n <div className={clsx(\"pagination-mobile\", className)}>\r\n <div className=\"pagination-mobile__info\">\r\n Stai visualizzando{\" \"}\r\n <span className=\"pagination-mobile__info__resultsPerPage\">\r\n {serverSide\r\n ? currentResultsPerPage\r\n : currentPage === totalPages && totalResults % resultsPerPage !== 0\r\n ? totalResults % resultsPerPage\r\n : resultsPerPage}\r\n </span>{\" \"}\r\n di {serverSide ? totalItems || totalResults : totalResults} risultati\r\n </div>\r\n <div className=\"pagination-mobile__nav\">\r\n <button\r\n className={clsx(\r\n \"pagination-mobile__button\",\r\n isPrevDisabled && \"pagination-mobile__button--disabled\",\r\n )}\r\n onClick={handlePreviousPage}\r\n disabled={isPrevDisabled}\r\n aria-label=\"Previous page\"\r\n >\r\n <svg className=\"pagination-mobile__button-arrow\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\r\n <path d=\"M15 18l-6-6 6-6\" />\r\n </svg>\r\n </button>\r\n\r\n {getPageNumbers().map((page, index) =>\r\n page === \"...\" ? (\r\n <span\r\n key={`ellipsis-${index}`}\r\n className=\"pagination-mobile__ellipsis\"\r\n >\r\n ...\r\n </span>\r\n ) : (\r\n <button\r\n key={page}\r\n className={clsx(\r\n \"pagination-mobile__button\",\r\n currentPage === page && \"pagination-mobile__button--active\",\r\n )}\r\n onClick={() => handlePageChange(page as number)}\r\n disabled={page === currentPage}\r\n >\r\n {page}\r\n </button>\r\n ),\r\n )}\r\n\r\n <button\r\n className={clsx(\r\n \"pagination-mobile__button\",\r\n isNextDisabled && \"pagination-mobile__button--disabled\",\r\n )}\r\n onClick={handleNextPage}\r\n disabled={isNextDisabled}\r\n aria-label=\"Next page\"\r\n >\r\n <svg className=\"pagination-mobile__button-arrow\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\r\n <path d=\"M9 6l6 6-6 6\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n};\r\n"],"names":["TableMobile","data","columns","pagination","resultsPerPage","totalResults","initialCurrentPage","serverSidePagination","totalItems","hasNextPage","hasPreviousPage","onNextPage","onPreviousPage","onPageChange","externalSetCurrentPage","sortConfig","onSortChange","currentPage","setInternalCurrentPage","useState","handleSetCurrentPage","page","sortedData","React","a","b","aValue","bValue","aText","bText","startIndex","endIndex","currentPageData","jsxs","Col","index","jsx","CardTable","TableMobilePagination","ActionContent","renderColumnValue","value","doubleLineValue","renderIcon","icon","Info","Download","handleSortClick","key","newDirection","clsx","column","Row","columnValue","config","isSorted","sortDirection","ActionIconText","e","TriangleUp","TriangleDown","setCurrentPage","className","serverSide","currentResultsPerPage","totalPages","handlePageChange","handleNextPage","nextPage","handlePreviousPage","prevPage","isNextDisabled","isPrevDisabled","getPageNumbers","pages","i","start","end"],"mappings":"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"}
1
+ {"version":3,"file":"index.es74.js","sources":["../src/components/ui/TableMobile/index.tsx"],"sourcesContent":["import {\r\n ActionData,\r\n ActionIconText,\r\n Col,\r\n ColumnConfig,\r\n DoubleLineData,\r\n Row,\r\n TableRowData,\r\n} from \"@/components\";\r\nimport clsx from \"clsx\";\r\nimport \"./TableMobile.scss\";\r\nimport { Download, Info, TriangleDown, TriangleUp } from \"@/icons\";\r\nimport { ReactNode } from \"react\";\r\nimport * as React from \"react\";\r\nimport { CommonIconsType } from \"@/types/icons.ts\";\r\nimport { useState } from \"react\";\r\n\r\nexport type TableMobileProps = {\r\n data: TableRowData[];\r\n columns: ColumnConfig[];\r\n pagination?: boolean;\r\n resultsPerPage?: number;\r\n totalResults?: number;\r\n initialCurrentPage?: number;\r\n serverSidePagination?: boolean;\r\n totalItems?: number;\r\n hasNextPage?: boolean;\r\n hasPreviousPage?: boolean;\r\n onNextPage?: () => void;\r\n onPreviousPage?: () => void;\r\n onPageChange?: (page: number) => void;\r\n setCurrentPage?: (page: number) => void;\r\n sortConfig?: { key: string; direction: \"asc\" | \"desc\" } | null;\r\n onSortChange?: (key: string, direction: \"asc\" | \"desc\") => void;\r\n};\r\n\r\nexport const TableMobile = ({\r\n data,\r\n columns,\r\n pagination = true,\r\n resultsPerPage = 5,\r\n totalResults,\r\n initialCurrentPage = 1,\r\n serverSidePagination = false,\r\n totalItems,\r\n hasNextPage,\r\n hasPreviousPage,\r\n onNextPage,\r\n onPreviousPage,\r\n onPageChange,\r\n setCurrentPage: externalSetCurrentPage,\r\n sortConfig = null,\r\n onSortChange,\r\n}: TableMobileProps) => {\r\n const [currentPage, setInternalCurrentPage] = useState(initialCurrentPage);\r\n const handleSetCurrentPage = (page: number) => {\r\n setInternalCurrentPage(page);\r\n externalSetCurrentPage?.(page);\r\n };\r\n\r\n const sortedData = React.useMemo(() => {\r\n if (!sortConfig) return data;\r\n\r\n return [...data].sort((a, b) => {\r\n const aValue = a[sortConfig.key];\r\n const bValue = b[sortConfig.key];\r\n\r\n const aText =\r\n typeof aValue === \"object\" && \"firstLine\" in aValue\r\n ? aValue.firstLine\r\n : aValue;\r\n const bText =\r\n typeof bValue === \"object\" && \"firstLine\" in bValue\r\n ? bValue.firstLine\r\n : bValue;\r\n\r\n if (aText < bText) {\r\n return sortConfig.direction === \"asc\" ? -1 : 1;\r\n }\r\n if (aText > bText) {\r\n return sortConfig.direction === \"asc\" ? 1 : -1;\r\n }\r\n return 0;\r\n });\r\n }, [data, sortConfig]);\r\n\r\n const startIndex = serverSidePagination\r\n ? 0\r\n : (currentPage - 1) * resultsPerPage;\r\n const endIndex = serverSidePagination\r\n ? sortedData.length\r\n : Math.min(startIndex + resultsPerPage, sortedData.length);\r\n const currentPageData = sortedData.slice(startIndex, endIndex);\r\n\r\n return (\r\n <Col className={\"w-full h-full\"} gap={\"x16\"}>\r\n {currentPageData.map((data, index) => (\r\n <CardTable\r\n columns={columns}\r\n key={index}\r\n data={data}\r\n sortConfig={sortConfig}\r\n onSortChange={onSortChange}\r\n />\r\n ))}\r\n\r\n {pagination && (\r\n <TableMobilePagination\r\n currentPage={currentPage}\r\n totalResults={totalResults || sortedData.length}\r\n resultsPerPage={resultsPerPage}\r\n setCurrentPage={handleSetCurrentPage}\r\n onPageChange={onPageChange}\r\n serverSide={serverSidePagination}\r\n totalItems={totalItems}\r\n hasNextPage={hasNextPage}\r\n hasPreviousPage={hasPreviousPage}\r\n onNextPage={onNextPage}\r\n onPreviousPage={onPreviousPage}\r\n currentResultsPerPage={\r\n serverSidePagination ? sortedData.length : resultsPerPage\r\n }\r\n className=\"mt-x16\"\r\n />\r\n )}\r\n </Col>\r\n );\r\n};\r\n\r\nexport type CardTableProps = {\r\n columns: ColumnConfig[];\r\n data: TableRowData;\r\n sortConfig: { key: string; direction: \"asc\" | \"desc\" } | null;\r\n onSortChange?: (key: string, direction: \"asc\" | \"desc\") => void;\r\n};\r\n\r\nconst ActionContent: React.FC<{ data: ActionData }> = ({ data }) => {\r\n if (data.type === \"link\" && data.link) {\r\n return (\r\n <a href={data.link} aria-label={data.ariaLabel}>\r\n {data.label}\r\n </a>\r\n );\r\n }\r\n return (\r\n <button onClick={data.action} aria-label={data.ariaLabel}>\r\n {data.label}\r\n </button>\r\n );\r\n};\r\n\r\nexport const CardTable = ({\r\n columns,\r\n sortConfig,\r\n data,\r\n onSortChange,\r\n}: CardTableProps) => {\r\n const renderColumnValue = (value: any): ReactNode => {\r\n if (!value) return \"\";\r\n\r\n if (typeof value === \"object\" && \"firstLine\" in value) {\r\n const doubleLineValue = value as DoubleLineData;\r\n return `${doubleLineValue.firstLine}${doubleLineValue.secondLine ? ` ${doubleLineValue.secondLine}` : \"\"}`;\r\n }\r\n\r\n if (typeof value === \"object\" && \"label\" in value && \"type\" in value) {\r\n return <ActionContent data={value} />;\r\n }\r\n\r\n return value;\r\n };\r\n\r\n const renderIcon = (icon: React.ReactNode | CommonIconsType) => {\r\n switch (icon) {\r\n case \"info\":\r\n return <Info />;\r\n case \"download\":\r\n return <Download />;\r\n default:\r\n return icon;\r\n }\r\n };\r\n\r\n const handleSortClick = (key: string) => {\r\n if (!onSortChange || !sortConfig) return;\r\n\r\n const newDirection =\r\n sortConfig.key === key\r\n ? sortConfig.direction === \"asc\"\r\n ? \"desc\"\r\n : \"asc\"\r\n : \"asc\";\r\n\r\n onSortChange(key, newDirection);\r\n };\r\n\r\n return (\r\n <div\r\n className={clsx(\"ui-card-table shadow br-x4 text-slate-28 fs-custom \")}\r\n >\r\n {columns.map((column, index) => {\r\n if (!column.key || column.key === \"actionData\") {\r\n return (\r\n <Row\r\n key={index}\r\n p={\"x16\"}\r\n className={\"ui-table-header\"}\r\n justifyContent={\"space-between\"}\r\n >\r\n <Col justifyContent={\"end\"} gap={\"x4\"} className={\"w-full\"}>\r\n <Row justifyContent={\"end\"} className=\"table-mobile-actions\">\r\n {renderColumnValue(data.actionData)}\r\n </Row>\r\n </Col>\r\n </Row>\r\n );\r\n }\r\n\r\n const columnValue = data[column.key];\r\n const config = column;\r\n const isSorted = sortConfig?.key === column.key;\r\n const sortDirection = isSorted ? sortConfig.direction : null;\r\n\r\n return (\r\n <Row\r\n key={index}\r\n p={\"x16\"}\r\n className={\"ui-table-header\"}\r\n justifyContent={\"space-between\"}\r\n >\r\n <Col justifyContent={\"center\"} gap={\"x4\"} className={\"w-full\"}>\r\n <ActionIconText\r\n justifyContent={\"space-between\"}\r\n alignItems={\"center\"}\r\n icon={renderIcon(config.icon)}\r\n noIcon={!renderIcon(config.icon)}\r\n textLabel={config.label}\r\n iconPosition={config.iconPosition}\r\n popupInfo={config.popupInfo}\r\n positionPopUp={\"left\"}\r\n classNameText={\"fw-bold text-slate-28 fs-custom md-fs-6\"}\r\n >\r\n {config.sortable && (\r\n <span\r\n className=\"sort-indicator\"\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n handleSortClick(column.key!);\r\n }}\r\n >\r\n <TriangleUp\r\n filled={isSorted && sortDirection === \"desc\"}\r\n className={clsx(\"sort-indicator__triangle\", {\r\n active: isSorted && sortDirection === \"desc\",\r\n })}\r\n />\r\n <TriangleDown\r\n filled={isSorted && sortDirection === \"asc\"}\r\n className={clsx(\"sort-indicator__triangle\", {\r\n active: isSorted && sortDirection === \"asc\",\r\n })}\r\n />\r\n </span>\r\n )}\r\n </ActionIconText>\r\n <Row>{renderColumnValue(columnValue)}</Row>\r\n </Col>\r\n </Row>\r\n );\r\n })}\r\n </div>\r\n );\r\n};\r\n\r\nexport type TableMobilePaginationProps = {\r\n currentPage?: number;\r\n totalResults?: number;\r\n resultsPerPage: number;\r\n setCurrentPage?: (page: number) => void;\r\n onPageChange?: (page: number) => void;\r\n className?: string;\r\n serverSide?: boolean;\r\n totalItems?: number;\r\n hasNextPage?: boolean;\r\n hasPreviousPage?: boolean;\r\n onNextPage?: () => void;\r\n onPreviousPage?: () => void;\r\n currentResultsPerPage?: number;\r\n};\r\n\r\nexport const TableMobilePagination: React.FC<TableMobilePaginationProps> = ({\r\n currentPage = 1,\r\n totalResults = 0,\r\n resultsPerPage,\r\n setCurrentPage,\r\n onPageChange,\r\n className,\r\n serverSide = false,\r\n totalItems,\r\n hasNextPage,\r\n hasPreviousPage,\r\n onNextPage,\r\n onPreviousPage,\r\n currentResultsPerPage = resultsPerPage,\r\n}) => {\r\n const totalPages = serverSide\r\n ? Math.ceil((totalItems || totalResults) / resultsPerPage)\r\n : Math.ceil(totalResults / resultsPerPage);\r\n\r\n const handlePageChange = (page: number) => {\r\n setCurrentPage?.(page);\r\n if (onPageChange) {\r\n onPageChange(page);\r\n }\r\n };\r\n\r\n const handleNextPage = () => {\r\n const nextPage = currentPage + 1;\r\n if (serverSide && onNextPage) {\r\n onNextPage();\r\n }\r\n handlePageChange(nextPage);\r\n };\r\n\r\n const handlePreviousPage = () => {\r\n const prevPage = currentPage - 1;\r\n if (serverSide && onPreviousPage) {\r\n onPreviousPage();\r\n }\r\n handlePageChange(prevPage);\r\n };\r\n\r\n const isNextDisabled = serverSide ? !hasNextPage : currentPage === totalPages;\r\n const isPrevDisabled = serverSide ? !hasPreviousPage : currentPage === 1;\r\n\r\n const getPageNumbers = () => {\r\n const pages = [];\r\n const maxVisiblePages = 5;\r\n\r\n if (totalPages <= maxVisiblePages) {\r\n for (let i = 1; i <= totalPages; i++) {\r\n pages.push(i);\r\n }\r\n } else {\r\n pages.push(1);\r\n\r\n let start = Math.max(2, currentPage - 1);\r\n let end = Math.min(totalPages - 1, currentPage + 1);\r\n\r\n if (currentPage <= 3) {\r\n end = 4;\r\n } else if (currentPage >= totalPages - 2) {\r\n start = totalPages - 3;\r\n }\r\n\r\n if (start > 2) {\r\n pages.push(\"...\");\r\n }\r\n\r\n for (let i = start; i <= end; i++) {\r\n pages.push(i);\r\n }\r\n\r\n if (end < totalPages - 1) {\r\n pages.push(\"...\");\r\n }\r\n\r\n pages.push(totalPages);\r\n }\r\n\r\n return pages;\r\n };\r\n\r\n return (\r\n <div className={clsx(\"pagination-mobile\", className)}>\r\n <div className=\"pagination-mobile__info\">\r\n Stai visualizzando{\" \"}\r\n <span className=\"pagination-mobile__info__resultsPerPage\">\r\n {serverSide\r\n ? currentResultsPerPage\r\n : currentPage === totalPages && totalResults % resultsPerPage !== 0\r\n ? totalResults % resultsPerPage\r\n : resultsPerPage}\r\n </span>{\" \"}\r\n di {serverSide ? totalItems || totalResults : totalResults} risultati\r\n </div>\r\n <div className=\"pagination-mobile__nav\">\r\n <button\r\n className={clsx(\r\n \"pagination-mobile__button\",\r\n isPrevDisabled && \"pagination-mobile__button--disabled\",\r\n )}\r\n onClick={handlePreviousPage}\r\n disabled={isPrevDisabled}\r\n aria-label=\"Previous page\"\r\n >\r\n <svg\r\n className=\"pagination-mobile__button-arrow\"\r\n viewBox=\"0 0 24 24\"\r\n aria-hidden=\"true\"\r\n role=\"presentation\"\r\n >\r\n <path d=\"M15 18l-6-6 6-6\" />\r\n </svg>\r\n </button>\r\n\r\n {getPageNumbers().map((page, index) =>\r\n page === \"...\" ? (\r\n <span\r\n key={`ellipsis-${index}`}\r\n className=\"pagination-mobile__ellipsis\"\r\n >\r\n ...\r\n </span>\r\n ) : (\r\n <button\r\n key={page}\r\n className={clsx(\r\n \"pagination-mobile__button\",\r\n currentPage === page && \"pagination-mobile__button--active\",\r\n )}\r\n onClick={() => handlePageChange(page as number)}\r\n disabled={page === currentPage}\r\n >\r\n {page}\r\n </button>\r\n ),\r\n )}\r\n\r\n <button\r\n className={clsx(\r\n \"pagination-mobile__button\",\r\n isNextDisabled && \"pagination-mobile__button--disabled\",\r\n )}\r\n onClick={handleNextPage}\r\n disabled={isNextDisabled}\r\n aria-label=\"Next page\"\r\n >\r\n <svg\r\n className=\"pagination-mobile__button-arrow\"\r\n viewBox=\"0 0 24 24\"\r\n aria-hidden=\"true\"\r\n role=\"presentation\"\r\n >\r\n <path d=\"M9 6l6 6-6 6\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n};\r\n"],"names":["TableMobile","data","columns","pagination","resultsPerPage","totalResults","initialCurrentPage","serverSidePagination","totalItems","hasNextPage","hasPreviousPage","onNextPage","onPreviousPage","onPageChange","externalSetCurrentPage","sortConfig","onSortChange","currentPage","setInternalCurrentPage","useState","handleSetCurrentPage","page","sortedData","React","a","b","aValue","bValue","aText","bText","startIndex","endIndex","currentPageData","jsxs","Col","index","jsx","CardTable","TableMobilePagination","ActionContent","renderColumnValue","value","doubleLineValue","renderIcon","icon","Info","Download","handleSortClick","key","newDirection","clsx","column","Row","columnValue","config","isSorted","sortDirection","ActionIconText","e","TriangleUp","TriangleDown","setCurrentPage","className","serverSide","currentResultsPerPage","totalPages","handlePageChange","handleNextPage","nextPage","handlePreviousPage","prevPage","isNextDisabled","isPrevDisabled","getPageNumbers","pages","i","start","end"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anoki/fse-ui",
3
- "version": "1.0.0-beta1.48.17",
3
+ "version": "1.0.0-beta1.48.18",
4
4
  "description": "FSE UI components library",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs.js",
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react"),c=require("./index.cjs526.js");function a(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const o=a(u);var i=o[" useId ".trim().toString()]||(()=>{}),s=0;function d(e){const[t,r]=o.useState(i());return c.useLayoutEffect(()=>{r(n=>n??String(s++))},[e]),e||(t?`radix-${t}`:"")}exports.useId=d;
2
- //# sourceMappingURL=index.cjs473.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs473.js","sources":["../node_modules/@radix-ui/react-id/dist/index.mjs"],"sourcesContent":["// packages/react/id/src/id.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useReactId = React[\" useId \".trim().toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n const [id, setId] = React.useState(useReactId());\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : \"\");\n}\nexport {\n useId\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["useReactId","React","count","useId","deterministicId","id","setId","useLayoutEffect","reactId"],"mappings":"kaAGA,IAAIA,EAAaC,EAAM,UAAU,KAAM,EAAC,SAAU,CAAA,IAAM,IAAA,IACpDC,EAAQ,EACZ,SAASC,EAAMC,EAAiB,CAC9B,KAAM,CAACC,EAAIC,CAAK,EAAIL,EAAM,SAASD,GAAY,EAC/CO,OAAAA,EAAAA,gBAAgB,IAAM,CACED,EAAOE,GAAYA,GAAW,OAAON,GAAO,CAAC,CACvE,EAAK,CAACE,CAAe,CAAC,EACbA,IAAoBC,EAAK,SAASA,CAAE,GAAK,GAClD","x_google_ignoreList":[0]}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react");function c(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const u=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,u.get?u:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const n=c(o);function s(e){const t=n.useRef({value:e,previous:e});return n.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}exports.usePrevious=s;
2
- //# sourceMappingURL=index.cjs474.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs474.js","sources":["../node_modules/@radix-ui/react-use-previous/dist/index.mjs"],"sourcesContent":["// packages/react/use-previous/src/use-previous.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["usePrevious","value","ref","React"],"mappings":"mYAEA,SAASA,EAAYC,EAAO,CAC1B,MAAMC,EAAMC,EAAM,OAAO,CAAE,MAAAF,EAAO,SAAUA,EAAO,EACnD,OAAOE,EAAM,QAAQ,KACfD,EAAI,QAAQ,QAAUD,IACxBC,EAAI,QAAQ,SAAWA,EAAI,QAAQ,MACnCA,EAAI,QAAQ,MAAQD,GAEfC,EAAI,QAAQ,UAClB,CAACD,CAAK,CAAC,CACZ","x_google_ignoreList":[0]}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const q=require("react"),y=require("./index.cjs467.js"),p=require("./index.cjs471.js"),R=require("./index.cjs468.js"),x=require("./index.cjs521.js"),H=require("./index.cjs528.js"),w=require("./index.cjs243.js");function U(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const s=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,s.get?s:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const o=U(q);var z="DismissableLayer",h="dismissableLayer.update",M="dismissableLayer.pointerDownOutside",$="dismissableLayer.focusOutside",L,T=o.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),S=o.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:s,onPointerDownOutside:r,onFocusOutside:a,onInteractOutside:l,onDismiss:d,...v}=e,c=o.useContext(T),[u,F]=o.useState(null),f=(u==null?void 0:u.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,N]=o.useState({}),W=R.useComposedRefs(t,i=>F(i)),m=Array.from(c.layers),[_]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),A=m.indexOf(_),P=u?m.indexOf(u):-1,k=c.layersWithOutsidePointerEventsDisabled.size>0,D=P>=A,I=Y(i=>{const E=i.target,C=[...c.branches].some(b=>b.contains(E));!D||C||(r==null||r(i),l==null||l(i),i.defaultPrevented||d==null||d())},f),O=G(i=>{const E=i.target;[...c.branches].some(b=>b.contains(E))||(a==null||a(i),l==null||l(i),i.defaultPrevented||d==null||d())},f);return H.useEscapeKeydown(i=>{P===c.layers.size-1&&(s==null||s(i),!i.defaultPrevented&&d&&(i.preventDefault(),d()))},f),o.useEffect(()=>{if(u)return n&&(c.layersWithOutsidePointerEventsDisabled.size===0&&(L=f.body.style.pointerEvents,f.body.style.pointerEvents="none"),c.layersWithOutsidePointerEventsDisabled.add(u)),c.layers.add(u),g(),()=>{n&&c.layersWithOutsidePointerEventsDisabled.size===1&&(f.body.style.pointerEvents=L)}},[u,f,n,c]),o.useEffect(()=>()=>{u&&(c.layers.delete(u),c.layersWithOutsidePointerEventsDisabled.delete(u),g())},[u,c]),o.useEffect(()=>{const i=()=>N({});return document.addEventListener(h,i),()=>document.removeEventListener(h,i)},[]),w.jsxRuntimeExports.jsx(p.Primitive.div,{...v,ref:W,style:{pointerEvents:k?D?"auto":"none":void 0,...e.style},onFocusCapture:y.composeEventHandlers(e.onFocusCapture,O.onFocusCapture),onBlurCapture:y.composeEventHandlers(e.onBlurCapture,O.onBlurCapture),onPointerDownCapture:y.composeEventHandlers(e.onPointerDownCapture,I.onPointerDownCapture)})});S.displayName=z;var X="DismissableLayerBranch",B=o.forwardRef((e,t)=>{const n=o.useContext(T),s=o.useRef(null),r=R.useComposedRefs(t,s);return o.useEffect(()=>{const a=s.current;if(a)return n.branches.add(a),()=>{n.branches.delete(a)}},[n.branches]),w.jsxRuntimeExports.jsx(p.Primitive.div,{...e,ref:r})});B.displayName=X;function Y(e,t=globalThis==null?void 0:globalThis.document){const n=x.useCallbackRef(e),s=o.useRef(!1),r=o.useRef(()=>{});return o.useEffect(()=>{const a=d=>{if(d.target&&!s.current){let v=function(){j(M,n,c,{discrete:!0})};const c={originalEvent:d};d.pointerType==="touch"?(t.removeEventListener("click",r.current),r.current=v,t.addEventListener("click",r.current,{once:!0})):v()}else t.removeEventListener("click",r.current);s.current=!1},l=window.setTimeout(()=>{t.addEventListener("pointerdown",a)},0);return()=>{window.clearTimeout(l),t.removeEventListener("pointerdown",a),t.removeEventListener("click",r.current)}},[t,n]),{onPointerDownCapture:()=>s.current=!0}}function G(e,t=globalThis==null?void 0:globalThis.document){const n=x.useCallbackRef(e),s=o.useRef(!1);return o.useEffect(()=>{const r=a=>{a.target&&!s.current&&j($,n,{originalEvent:a},{discrete:!1})};return t.addEventListener("focusin",r),()=>t.removeEventListener("focusin",r)},[t,n]),{onFocusCapture:()=>s.current=!0,onBlurCapture:()=>s.current=!1}}function g(){const e=new CustomEvent(h);document.dispatchEvent(e)}function j(e,t,n,{discrete:s}){const r=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),s?p.dispatchDiscreteCustomEvent(r,a):r.dispatchEvent(a)}exports.DismissableLayer=S;exports.DismissableLayerBranch=B;
2
- //# sourceMappingURL=index.cjs483.js.map