@rpcbase/ui 0.157.0 → 0.158.0

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 (725) hide show
  1. package/dist/index.js +67 -24680
  2. package/dist/index.js.map +1 -1
  3. package/dist/index10.js +73 -0
  4. package/dist/index10.js.map +1 -0
  5. package/dist/index100.js +8 -0
  6. package/dist/index100.js.map +1 -0
  7. package/dist/index101.js +10 -0
  8. package/dist/index101.js.map +1 -0
  9. package/dist/index102.js +9 -0
  10. package/dist/index102.js.map +1 -0
  11. package/dist/index103.js +8 -0
  12. package/dist/index103.js.map +1 -0
  13. package/dist/index104.js +9 -0
  14. package/dist/index104.js.map +1 -0
  15. package/dist/index105.js +8 -0
  16. package/dist/index105.js.map +1 -0
  17. package/dist/index106.js +12 -0
  18. package/dist/index106.js.map +1 -0
  19. package/dist/index107.js +9 -0
  20. package/dist/index107.js.map +1 -0
  21. package/dist/index108.js +8 -0
  22. package/dist/index108.js.map +1 -0
  23. package/dist/index109.js +8 -0
  24. package/dist/index109.js.map +1 -0
  25. package/dist/index11.js +483 -0
  26. package/dist/index11.js.map +1 -0
  27. package/dist/index110.js +10 -0
  28. package/dist/index110.js.map +1 -0
  29. package/dist/index111.js +149 -0
  30. package/dist/index111.js.map +1 -0
  31. package/dist/index112.js +43 -0
  32. package/dist/index112.js.map +1 -0
  33. package/dist/index113.js +8 -0
  34. package/dist/index113.js.map +1 -0
  35. package/dist/index114.js +11 -0
  36. package/dist/index114.js.map +1 -0
  37. package/dist/index115.js +17 -0
  38. package/dist/index115.js.map +1 -0
  39. package/dist/index116.js +17 -0
  40. package/dist/index116.js.map +1 -0
  41. package/dist/index117.js +11 -0
  42. package/dist/index117.js.map +1 -0
  43. package/dist/index118.js +35 -0
  44. package/dist/index118.js.map +1 -0
  45. package/dist/index119.js +14 -0
  46. package/dist/index119.js.map +1 -0
  47. package/dist/index12.js +130 -0
  48. package/dist/index12.js.map +1 -0
  49. package/dist/index120.js +14 -0
  50. package/dist/index120.js.map +1 -0
  51. package/dist/index121.js +12 -0
  52. package/dist/index121.js.map +1 -0
  53. package/dist/index122.js +17 -0
  54. package/dist/index122.js.map +1 -0
  55. package/dist/index123.js +105 -0
  56. package/dist/index123.js.map +1 -0
  57. package/dist/index124.js +23 -0
  58. package/dist/index124.js.map +1 -0
  59. package/dist/index125.js +57 -0
  60. package/dist/index125.js.map +1 -0
  61. package/dist/index126.js +76 -0
  62. package/dist/index126.js.map +1 -0
  63. package/dist/index127.js +13 -0
  64. package/dist/index127.js.map +1 -0
  65. package/dist/index128.js +24 -0
  66. package/dist/index128.js.map +1 -0
  67. package/dist/index129.js +20 -0
  68. package/dist/index129.js.map +1 -0
  69. package/dist/index13.js +79 -0
  70. package/dist/index13.js.map +1 -0
  71. package/dist/index130.js +27 -0
  72. package/dist/index130.js.map +1 -0
  73. package/dist/index131.js +10 -0
  74. package/dist/index131.js.map +1 -0
  75. package/dist/index132.js +9 -0
  76. package/dist/index132.js.map +1 -0
  77. package/dist/index133.js +27 -0
  78. package/dist/index133.js.map +1 -0
  79. package/dist/index134.js +38 -0
  80. package/dist/index134.js.map +1 -0
  81. package/dist/index135.js +19 -0
  82. package/dist/index135.js.map +1 -0
  83. package/dist/index136.js +10 -0
  84. package/dist/index136.js.map +1 -0
  85. package/dist/index137.js +8 -0
  86. package/dist/index137.js.map +1 -0
  87. package/dist/index138.js +8 -0
  88. package/dist/index138.js.map +1 -0
  89. package/dist/index139.js +8 -0
  90. package/dist/index139.js.map +1 -0
  91. package/dist/index14.js +735 -0
  92. package/dist/index14.js.map +1 -0
  93. package/dist/index140.js +8 -0
  94. package/dist/index140.js.map +1 -0
  95. package/dist/index141.js +7 -0
  96. package/dist/index141.js.map +1 -0
  97. package/dist/index142.js +10 -0
  98. package/dist/index142.js.map +1 -0
  99. package/dist/index143.js +27 -0
  100. package/dist/index143.js.map +1 -0
  101. package/dist/index144.js +11 -0
  102. package/dist/index144.js.map +1 -0
  103. package/dist/index145.js +10 -0
  104. package/dist/index145.js.map +1 -0
  105. package/dist/index146.js +9 -0
  106. package/dist/index146.js.map +1 -0
  107. package/dist/index147.js +7 -0
  108. package/dist/index147.js.map +1 -0
  109. package/dist/index148.js +7 -0
  110. package/dist/index148.js.map +1 -0
  111. package/dist/index149.js +8 -0
  112. package/dist/index149.js.map +1 -0
  113. package/dist/index15.js +26 -0
  114. package/dist/index15.js.map +1 -0
  115. package/dist/index150.js +7 -0
  116. package/dist/index150.js.map +1 -0
  117. package/dist/index151.js +8 -0
  118. package/dist/index151.js.map +1 -0
  119. package/dist/index152.js +7 -0
  120. package/dist/index152.js.map +1 -0
  121. package/dist/index153.js +7 -0
  122. package/dist/index153.js.map +1 -0
  123. package/dist/index154.js +7 -0
  124. package/dist/index154.js.map +1 -0
  125. package/dist/index155.js +7 -0
  126. package/dist/index155.js.map +1 -0
  127. package/dist/index156.js +37 -0
  128. package/dist/index156.js.map +1 -0
  129. package/dist/index157.js +253 -0
  130. package/dist/index157.js.map +1 -0
  131. package/dist/index158.js +118 -0
  132. package/dist/index158.js.map +1 -0
  133. package/dist/index159.js +223 -0
  134. package/dist/index159.js.map +1 -0
  135. package/dist/index16.js +21 -0
  136. package/dist/index16.js.map +1 -0
  137. package/dist/index160.js +70 -0
  138. package/dist/index160.js.map +1 -0
  139. package/dist/index161.js +24 -0
  140. package/dist/index161.js.map +1 -0
  141. package/dist/index162.js +213 -0
  142. package/dist/index162.js.map +1 -0
  143. package/dist/index163.js +323 -0
  144. package/dist/index163.js.map +1 -0
  145. package/dist/index164.js +134 -0
  146. package/dist/index164.js.map +1 -0
  147. package/dist/index165.js +24 -0
  148. package/dist/index165.js.map +1 -0
  149. package/dist/index166.js +79 -0
  150. package/dist/index166.js.map +1 -0
  151. package/dist/index167.js +22 -0
  152. package/dist/index167.js.map +1 -0
  153. package/dist/index168.js +105 -0
  154. package/dist/index168.js.map +1 -0
  155. package/dist/index169.js +8 -0
  156. package/dist/index169.js.map +1 -0
  157. package/dist/index17.js +390 -0
  158. package/dist/index17.js.map +1 -0
  159. package/dist/index170.js +18 -0
  160. package/dist/index170.js.map +1 -0
  161. package/dist/index171.js +5 -0
  162. package/dist/index171.js.map +1 -0
  163. package/dist/index172.js +11 -0
  164. package/dist/index172.js.map +1 -0
  165. package/dist/index173.js +330 -0
  166. package/dist/index173.js.map +1 -0
  167. package/dist/index174.js +53 -0
  168. package/dist/index174.js.map +1 -0
  169. package/dist/index175.js +609 -0
  170. package/dist/index175.js.map +1 -0
  171. package/dist/index176.js +50 -0
  172. package/dist/index176.js.map +1 -0
  173. package/dist/index177.js +15 -0
  174. package/dist/index177.js.map +1 -0
  175. package/dist/index178.js +209 -0
  176. package/dist/index178.js.map +1 -0
  177. package/dist/index179.js +25 -0
  178. package/dist/index179.js.map +1 -0
  179. package/dist/index18.js +662 -0
  180. package/dist/index18.js.map +1 -0
  181. package/dist/index180.js +28 -0
  182. package/dist/index180.js.map +1 -0
  183. package/dist/index181.js +403 -0
  184. package/dist/index181.js.map +1 -0
  185. package/dist/index182.js +50 -0
  186. package/dist/index182.js.map +1 -0
  187. package/dist/index183.js +9 -0
  188. package/dist/index183.js.map +1 -0
  189. package/dist/index184.js +72 -0
  190. package/dist/index184.js.map +1 -0
  191. package/dist/index185.js +5 -0
  192. package/dist/index185.js.map +1 -0
  193. package/dist/index186.js +367 -0
  194. package/dist/index186.js.map +1 -0
  195. package/dist/index187.js +265 -0
  196. package/dist/index187.js.map +1 -0
  197. package/dist/index188.js +64 -0
  198. package/dist/index188.js.map +1 -0
  199. package/dist/index189.js +50 -0
  200. package/dist/index189.js.map +1 -0
  201. package/dist/index19.js +661 -0
  202. package/dist/index19.js.map +1 -0
  203. package/dist/index190.js +173 -0
  204. package/dist/index190.js.map +1 -0
  205. package/dist/index191.js +113 -0
  206. package/dist/index191.js.map +1 -0
  207. package/dist/index192.js +28 -0
  208. package/dist/index192.js.map +1 -0
  209. package/dist/index193.js +11 -0
  210. package/dist/index193.js.map +1 -0
  211. package/dist/index194.js +8 -0
  212. package/dist/index194.js.map +1 -0
  213. package/dist/index195.js +9 -0
  214. package/dist/index195.js.map +1 -0
  215. package/dist/index196.js +8 -0
  216. package/dist/index196.js.map +1 -0
  217. package/dist/index197.js +470 -0
  218. package/dist/index197.js.map +1 -0
  219. package/dist/index198.js +189 -0
  220. package/dist/index198.js.map +1 -0
  221. package/dist/index199.js +111 -0
  222. package/dist/index199.js.map +1 -0
  223. package/dist/index2.js +9 -0
  224. package/dist/index2.js.map +1 -0
  225. package/dist/index20.js +204 -0
  226. package/dist/index20.js.map +1 -0
  227. package/dist/index200.js +266 -0
  228. package/dist/index200.js.map +1 -0
  229. package/dist/index201.js +13 -0
  230. package/dist/index201.js.map +1 -0
  231. package/dist/index202.js +46 -0
  232. package/dist/index202.js.map +1 -0
  233. package/dist/index203.js +8 -0
  234. package/dist/index203.js.map +1 -0
  235. package/dist/index204.js +5 -0
  236. package/dist/index204.js.map +1 -0
  237. package/dist/index205.js +71 -0
  238. package/dist/index205.js.map +1 -0
  239. package/dist/index206.js +88 -0
  240. package/dist/index206.js.map +1 -0
  241. package/dist/index207.js +50 -0
  242. package/dist/index207.js.map +1 -0
  243. package/dist/index208.js +11 -0
  244. package/dist/index208.js.map +1 -0
  245. package/dist/index209.js +8 -0
  246. package/dist/index209.js.map +1 -0
  247. package/dist/index21.js +8 -0
  248. package/dist/index21.js.map +1 -0
  249. package/dist/index210.js +55 -0
  250. package/dist/index210.js.map +1 -0
  251. package/dist/index211.js +20 -0
  252. package/dist/index211.js.map +1 -0
  253. package/dist/index212.js +9 -0
  254. package/dist/index212.js.map +1 -0
  255. package/dist/index213.js +9 -0
  256. package/dist/index213.js.map +1 -0
  257. package/dist/index214.js +62 -0
  258. package/dist/index214.js.map +1 -0
  259. package/dist/index215.js +70 -0
  260. package/dist/index215.js.map +1 -0
  261. package/dist/index216.js +10 -0
  262. package/dist/index216.js.map +1 -0
  263. package/dist/index217.js +8 -0
  264. package/dist/index217.js.map +1 -0
  265. package/dist/index218.js +11 -0
  266. package/dist/index218.js.map +1 -0
  267. package/dist/index219.js +21 -0
  268. package/dist/index219.js.map +1 -0
  269. package/dist/index22.js +38 -0
  270. package/dist/index22.js.map +1 -0
  271. package/dist/index220.js +9 -0
  272. package/dist/index220.js.map +1 -0
  273. package/dist/index221.js +9 -0
  274. package/dist/index221.js.map +1 -0
  275. package/dist/index222.js +17 -0
  276. package/dist/index222.js.map +1 -0
  277. package/dist/index223.js +14 -0
  278. package/dist/index223.js.map +1 -0
  279. package/dist/index224.js +18 -0
  280. package/dist/index224.js.map +1 -0
  281. package/dist/index225.js +18 -0
  282. package/dist/index225.js.map +1 -0
  283. package/dist/index226.js +9 -0
  284. package/dist/index226.js.map +1 -0
  285. package/dist/index227.js +10 -0
  286. package/dist/index227.js.map +1 -0
  287. package/dist/index228.js +11 -0
  288. package/dist/index228.js.map +1 -0
  289. package/dist/index229.js +10 -0
  290. package/dist/index229.js.map +1 -0
  291. package/dist/index23.js +272 -0
  292. package/dist/index23.js.map +1 -0
  293. package/dist/index230.js +13 -0
  294. package/dist/index230.js.map +1 -0
  295. package/dist/index231.js +9 -0
  296. package/dist/index231.js.map +1 -0
  297. package/dist/index232.js +9 -0
  298. package/dist/index232.js.map +1 -0
  299. package/dist/index233.js +13 -0
  300. package/dist/index233.js.map +1 -0
  301. package/dist/index234.js +9 -0
  302. package/dist/index234.js.map +1 -0
  303. package/dist/index235.js +9 -0
  304. package/dist/index235.js.map +1 -0
  305. package/dist/index236.js +8 -0
  306. package/dist/index236.js.map +1 -0
  307. package/dist/index237.js +15 -0
  308. package/dist/index237.js.map +1 -0
  309. package/dist/index238.js +14 -0
  310. package/dist/index238.js.map +1 -0
  311. package/dist/index239.js +14 -0
  312. package/dist/index239.js.map +1 -0
  313. package/dist/index24.js +184 -0
  314. package/dist/index24.js.map +1 -0
  315. package/dist/index240.js +15 -0
  316. package/dist/index240.js.map +1 -0
  317. package/dist/index241.js +15 -0
  318. package/dist/index241.js.map +1 -0
  319. package/dist/index242.js +14 -0
  320. package/dist/index242.js.map +1 -0
  321. package/dist/index243.js +11 -0
  322. package/dist/index243.js.map +1 -0
  323. package/dist/index244.js +10 -0
  324. package/dist/index244.js.map +1 -0
  325. package/dist/index245.js +9 -0
  326. package/dist/index245.js.map +1 -0
  327. package/dist/index246.js +10 -0
  328. package/dist/index246.js.map +1 -0
  329. package/dist/index247.js +11 -0
  330. package/dist/index247.js.map +1 -0
  331. package/dist/index248.js +10 -0
  332. package/dist/index248.js.map +1 -0
  333. package/dist/index249.js +59 -0
  334. package/dist/index249.js.map +1 -0
  335. package/dist/index25.js +18 -0
  336. package/dist/index25.js.map +1 -0
  337. package/dist/index250.js +12 -0
  338. package/dist/index250.js.map +1 -0
  339. package/dist/index251.js +23 -0
  340. package/dist/index251.js.map +1 -0
  341. package/dist/index252.js +27 -0
  342. package/dist/index252.js.map +1 -0
  343. package/dist/index253.js +20 -0
  344. package/dist/index253.js.map +1 -0
  345. package/dist/index254.js +11 -0
  346. package/dist/index254.js.map +1 -0
  347. package/dist/index255.js +14 -0
  348. package/dist/index255.js.map +1 -0
  349. package/dist/index256.js +14 -0
  350. package/dist/index256.js.map +1 -0
  351. package/dist/index257.js +25 -0
  352. package/dist/index257.js.map +1 -0
  353. package/dist/index258.js +14 -0
  354. package/dist/index258.js.map +1 -0
  355. package/dist/index259.js +13 -0
  356. package/dist/index259.js.map +1 -0
  357. package/dist/index26.js +2766 -0
  358. package/dist/index26.js.map +1 -0
  359. package/dist/index260.js +13 -0
  360. package/dist/index260.js.map +1 -0
  361. package/dist/index261.js +8 -0
  362. package/dist/index261.js.map +1 -0
  363. package/dist/index262.js +9 -0
  364. package/dist/index262.js.map +1 -0
  365. package/dist/index263.js +20 -0
  366. package/dist/index263.js.map +1 -0
  367. package/dist/index264.js +13 -0
  368. package/dist/index264.js.map +1 -0
  369. package/dist/index265.js +22 -0
  370. package/dist/index265.js.map +1 -0
  371. package/dist/index266.js +19 -0
  372. package/dist/index266.js.map +1 -0
  373. package/dist/index267.js +16 -0
  374. package/dist/index267.js.map +1 -0
  375. package/dist/index268.js +33 -0
  376. package/dist/index268.js.map +1 -0
  377. package/dist/index269.js +16 -0
  378. package/dist/index269.js.map +1 -0
  379. package/dist/index27.js +40 -0
  380. package/dist/index27.js.map +1 -0
  381. package/dist/index270.js +29 -0
  382. package/dist/index270.js.map +1 -0
  383. package/dist/index271.js +9 -0
  384. package/dist/index271.js.map +1 -0
  385. package/dist/index272.js +68 -0
  386. package/dist/index272.js.map +1 -0
  387. package/dist/index273.js +52 -0
  388. package/dist/index273.js.map +1 -0
  389. package/dist/index274.js +43 -0
  390. package/dist/index274.js.map +1 -0
  391. package/dist/index275.js +104 -0
  392. package/dist/index275.js.map +1 -0
  393. package/dist/index276.js +101 -0
  394. package/dist/index276.js.map +1 -0
  395. package/dist/index277.js +103 -0
  396. package/dist/index277.js.map +1 -0
  397. package/dist/index278.js +7 -0
  398. package/dist/index278.js.map +1 -0
  399. package/dist/index279.js +71 -0
  400. package/dist/index279.js.map +1 -0
  401. package/dist/index28.js +6 -0
  402. package/dist/index28.js.map +1 -0
  403. package/dist/index280.js +184 -0
  404. package/dist/index280.js.map +1 -0
  405. package/dist/index281.js +50 -0
  406. package/dist/index281.js.map +1 -0
  407. package/dist/index282.js +28 -0
  408. package/dist/index282.js.map +1 -0
  409. package/dist/index283.js +32 -0
  410. package/dist/index283.js.map +1 -0
  411. package/dist/index284.js +8 -0
  412. package/dist/index284.js.map +1 -0
  413. package/dist/index285.js +17 -0
  414. package/dist/index285.js.map +1 -0
  415. package/dist/index286.js +158 -0
  416. package/dist/index286.js.map +1 -0
  417. package/dist/index287.js +34 -0
  418. package/dist/index287.js.map +1 -0
  419. package/dist/index288.js +13 -0
  420. package/dist/index288.js.map +1 -0
  421. package/dist/index289.js +51 -0
  422. package/dist/index289.js.map +1 -0
  423. package/dist/index29.js +51 -0
  424. package/dist/index29.js.map +1 -0
  425. package/dist/index290.js +15 -0
  426. package/dist/index290.js.map +1 -0
  427. package/dist/index291.js +48 -0
  428. package/dist/index291.js.map +1 -0
  429. package/dist/index292.js +99 -0
  430. package/dist/index292.js.map +1 -0
  431. package/dist/index293.js +90 -0
  432. package/dist/index293.js.map +1 -0
  433. package/dist/index294.js +109 -0
  434. package/dist/index294.js.map +1 -0
  435. package/dist/index295.js +56 -0
  436. package/dist/index295.js.map +1 -0
  437. package/dist/index296.js +15 -0
  438. package/dist/index296.js.map +1 -0
  439. package/dist/index297.js +41 -0
  440. package/dist/index297.js.map +1 -0
  441. package/dist/index298.js +12 -0
  442. package/dist/index298.js.map +1 -0
  443. package/dist/index299.js +120 -0
  444. package/dist/index299.js.map +1 -0
  445. package/dist/index3.js +5 -0
  446. package/dist/index3.js.map +1 -0
  447. package/dist/index30.js +223 -0
  448. package/dist/index30.js.map +1 -0
  449. package/dist/index300.js +21 -0
  450. package/dist/index300.js.map +1 -0
  451. package/dist/index301.js +19 -0
  452. package/dist/index301.js.map +1 -0
  453. package/dist/index302.js +7 -0
  454. package/dist/index302.js.map +1 -0
  455. package/dist/index303.js +40 -0
  456. package/dist/index303.js.map +1 -0
  457. package/dist/index304.js +24 -0
  458. package/dist/index304.js.map +1 -0
  459. package/dist/index305.js +13 -0
  460. package/dist/index305.js.map +1 -0
  461. package/dist/index306.js +12 -0
  462. package/dist/index306.js.map +1 -0
  463. package/dist/index307.js +23 -0
  464. package/dist/index307.js.map +1 -0
  465. package/dist/index308.js +32 -0
  466. package/dist/index308.js.map +1 -0
  467. package/dist/index309.js +20 -0
  468. package/dist/index309.js.map +1 -0
  469. package/dist/index31.js +47 -0
  470. package/dist/index31.js.map +1 -0
  471. package/dist/index310.js +5 -0
  472. package/dist/index310.js.map +1 -0
  473. package/dist/index311.js +5 -0
  474. package/dist/index311.js.map +1 -0
  475. package/dist/index312.js +8 -0
  476. package/dist/index312.js.map +1 -0
  477. package/dist/index313.js +22 -0
  478. package/dist/index313.js.map +1 -0
  479. package/dist/index314.js +16 -0
  480. package/dist/index314.js.map +1 -0
  481. package/dist/index315.js +8 -0
  482. package/dist/index315.js.map +1 -0
  483. package/dist/index316.js +6 -0
  484. package/dist/index316.js.map +1 -0
  485. package/dist/index317.js +27 -0
  486. package/dist/index317.js.map +1 -0
  487. package/dist/index318.js +116 -0
  488. package/dist/index318.js.map +1 -0
  489. package/dist/index319.js +19 -0
  490. package/dist/index319.js.map +1 -0
  491. package/dist/index32.js +44 -0
  492. package/dist/index32.js.map +1 -0
  493. package/dist/index320.js +528 -0
  494. package/dist/index320.js.map +1 -0
  495. package/dist/index321.js +131 -0
  496. package/dist/index321.js.map +1 -0
  497. package/dist/index322.js +137 -0
  498. package/dist/index322.js.map +1 -0
  499. package/dist/index323.js +24 -0
  500. package/dist/index323.js.map +1 -0
  501. package/dist/index324.js +9 -0
  502. package/dist/index324.js.map +1 -0
  503. package/dist/index325.js +9 -0
  504. package/dist/index325.js.map +1 -0
  505. package/dist/index326.js +7 -0
  506. package/dist/index326.js.map +1 -0
  507. package/dist/index327.js +19 -0
  508. package/dist/index327.js.map +1 -0
  509. package/dist/index328.js +12 -0
  510. package/dist/index328.js.map +1 -0
  511. package/dist/index329.js +9 -0
  512. package/dist/index329.js.map +1 -0
  513. package/dist/index33.js +32 -0
  514. package/dist/index33.js.map +1 -0
  515. package/dist/index330.js +8 -0
  516. package/dist/index330.js.map +1 -0
  517. package/dist/index331.js +549 -0
  518. package/dist/index331.js.map +1 -0
  519. package/dist/index332.js +50 -0
  520. package/dist/index332.js.map +1 -0
  521. package/dist/index333.js +21 -0
  522. package/dist/index333.js.map +1 -0
  523. package/dist/index334.js +10 -0
  524. package/dist/index334.js.map +1 -0
  525. package/dist/index335.js +12 -0
  526. package/dist/index335.js.map +1 -0
  527. package/dist/index336.js +11 -0
  528. package/dist/index336.js.map +1 -0
  529. package/dist/index337.js +12 -0
  530. package/dist/index337.js.map +1 -0
  531. package/dist/index338.js +16 -0
  532. package/dist/index338.js.map +1 -0
  533. package/dist/index339.js +13 -0
  534. package/dist/index339.js.map +1 -0
  535. package/dist/index34.js +49 -0
  536. package/dist/index34.js.map +1 -0
  537. package/dist/index340.js +17 -0
  538. package/dist/index340.js.map +1 -0
  539. package/dist/index341.js +72 -0
  540. package/dist/index341.js.map +1 -0
  541. package/dist/index342.js +12 -0
  542. package/dist/index342.js.map +1 -0
  543. package/dist/index343.js +17 -0
  544. package/dist/index343.js.map +1 -0
  545. package/dist/index344.js +69 -0
  546. package/dist/index344.js.map +1 -0
  547. package/dist/index345.js +68 -0
  548. package/dist/index345.js.map +1 -0
  549. package/dist/index346.js +8 -0
  550. package/dist/index346.js.map +1 -0
  551. package/dist/index347.js +59 -0
  552. package/dist/index347.js.map +1 -0
  553. package/dist/index348.js +71 -0
  554. package/dist/index348.js.map +1 -0
  555. package/dist/index349.js +34 -0
  556. package/dist/index349.js.map +1 -0
  557. package/dist/index35.js +35 -0
  558. package/dist/index35.js.map +1 -0
  559. package/dist/index350.js +12 -0
  560. package/dist/index350.js.map +1 -0
  561. package/dist/index351.js +156 -0
  562. package/dist/index351.js.map +1 -0
  563. package/dist/index352.js +111 -0
  564. package/dist/index352.js.map +1 -0
  565. package/dist/index353.js +7 -0
  566. package/dist/index353.js.map +1 -0
  567. package/dist/index354.js +26 -0
  568. package/dist/index354.js.map +1 -0
  569. package/dist/index355.js +19 -0
  570. package/dist/index355.js.map +1 -0
  571. package/dist/index356.js +32 -0
  572. package/dist/index356.js.map +1 -0
  573. package/dist/index357.js +16 -0
  574. package/dist/index357.js.map +1 -0
  575. package/dist/index358.js +10 -0
  576. package/dist/index358.js.map +1 -0
  577. package/dist/index359.js +26 -0
  578. package/dist/index359.js.map +1 -0
  579. package/dist/index36.js +31 -0
  580. package/dist/index36.js.map +1 -0
  581. package/dist/index360.js +16 -0
  582. package/dist/index360.js.map +1 -0
  583. package/dist/index361.js +31 -0
  584. package/dist/index361.js.map +1 -0
  585. package/dist/index362.js +8 -0
  586. package/dist/index362.js.map +1 -0
  587. package/dist/index37.js +26 -0
  588. package/dist/index37.js.map +1 -0
  589. package/dist/index38.js +132 -0
  590. package/dist/index38.js.map +1 -0
  591. package/dist/index39.js +235 -0
  592. package/dist/index39.js.map +1 -0
  593. package/dist/index4.js +27 -0
  594. package/dist/index4.js.map +1 -0
  595. package/dist/index40.js +54 -0
  596. package/dist/index40.js.map +1 -0
  597. package/dist/index41.js +2644 -0
  598. package/dist/index41.js.map +1 -0
  599. package/dist/index42.js +397 -0
  600. package/dist/index42.js.map +1 -0
  601. package/dist/index43.js +236 -0
  602. package/dist/index43.js.map +1 -0
  603. package/dist/index44.js +25 -0
  604. package/dist/index44.js.map +1 -0
  605. package/dist/index45.js +145 -0
  606. package/dist/index45.js.map +1 -0
  607. package/dist/index46.js +190 -0
  608. package/dist/index46.js.map +1 -0
  609. package/dist/index47.js +80 -0
  610. package/dist/index47.js.map +1 -0
  611. package/dist/index48.js +94 -0
  612. package/dist/index48.js.map +1 -0
  613. package/dist/index49.js +9 -0
  614. package/dist/index49.js.map +1 -0
  615. package/dist/index5.js +48 -0
  616. package/dist/index5.js.map +1 -0
  617. package/dist/index50.js +847 -0
  618. package/dist/index50.js.map +1 -0
  619. package/dist/index51.js +69 -0
  620. package/dist/index51.js.map +1 -0
  621. package/dist/index52.js +11 -0
  622. package/dist/index52.js.map +1 -0
  623. package/dist/index53.js +5 -0
  624. package/dist/index53.js.map +1 -0
  625. package/dist/index54.js +27 -0
  626. package/dist/index54.js.map +1 -0
  627. package/dist/index55.js +237 -0
  628. package/dist/index55.js.map +1 -0
  629. package/dist/index56.js +208 -0
  630. package/dist/index56.js.map +1 -0
  631. package/dist/index57.js +7 -0
  632. package/dist/index57.js.map +1 -0
  633. package/dist/index58.js +10 -0
  634. package/dist/index58.js.map +1 -0
  635. package/dist/index59.js +51 -0
  636. package/dist/index59.js.map +1 -0
  637. package/dist/index6.js +33 -0
  638. package/dist/index6.js.map +1 -0
  639. package/dist/index60.js +30 -0
  640. package/dist/index60.js.map +1 -0
  641. package/dist/index61.js +54 -0
  642. package/dist/index61.js.map +1 -0
  643. package/dist/index62.js +11 -0
  644. package/dist/index62.js.map +1 -0
  645. package/dist/index63.js +128 -0
  646. package/dist/index63.js.map +1 -0
  647. package/dist/index64.js +18 -0
  648. package/dist/index64.js.map +1 -0
  649. package/dist/index65.js +137 -0
  650. package/dist/index65.js.map +1 -0
  651. package/dist/index66.js +14 -0
  652. package/dist/index66.js.map +1 -0
  653. package/dist/index67.js +220 -0
  654. package/dist/index67.js.map +1 -0
  655. package/dist/index68.js +16 -0
  656. package/dist/index68.js.map +1 -0
  657. package/dist/index69.js +37 -0
  658. package/dist/index69.js.map +1 -0
  659. package/dist/index7.js +36 -0
  660. package/dist/index7.js.map +1 -0
  661. package/dist/index70.js +50 -0
  662. package/dist/index70.js.map +1 -0
  663. package/dist/index71.js +11 -0
  664. package/dist/index71.js.map +1 -0
  665. package/dist/index72.js +53 -0
  666. package/dist/index72.js.map +1 -0
  667. package/dist/index73.js +7 -0
  668. package/dist/index73.js.map +1 -0
  669. package/dist/index74.js +9 -0
  670. package/dist/index74.js.map +1 -0
  671. package/dist/index75.js +31 -0
  672. package/dist/index75.js.map +1 -0
  673. package/dist/index76.js +53 -0
  674. package/dist/index76.js.map +1 -0
  675. package/dist/index77.js +12 -0
  676. package/dist/index77.js.map +1 -0
  677. package/dist/index78.js +57 -0
  678. package/dist/index78.js.map +1 -0
  679. package/dist/index79.js +9 -0
  680. package/dist/index79.js.map +1 -0
  681. package/dist/index8.js +230 -0
  682. package/dist/index8.js.map +1 -0
  683. package/dist/index80.js +11 -0
  684. package/dist/index80.js.map +1 -0
  685. package/dist/index81.js +9 -0
  686. package/dist/index81.js.map +1 -0
  687. package/dist/index82.js +5 -0
  688. package/dist/index82.js.map +1 -0
  689. package/dist/index83.js +5 -0
  690. package/dist/index83.js.map +1 -0
  691. package/dist/index84.js +55 -0
  692. package/dist/index84.js.map +1 -0
  693. package/dist/index85.js +8 -0
  694. package/dist/index85.js.map +1 -0
  695. package/dist/index86.js +8 -0
  696. package/dist/index86.js.map +1 -0
  697. package/dist/index87.js +19 -0
  698. package/dist/index87.js.map +1 -0
  699. package/dist/index88.js +9 -0
  700. package/dist/index88.js.map +1 -0
  701. package/dist/index89.js +11 -0
  702. package/dist/index89.js.map +1 -0
  703. package/dist/index9.js +27 -0
  704. package/dist/index9.js.map +1 -0
  705. package/dist/index90.js +20 -0
  706. package/dist/index90.js.map +1 -0
  707. package/dist/index91.js +8 -0
  708. package/dist/index91.js.map +1 -0
  709. package/dist/index92.js +8 -0
  710. package/dist/index92.js.map +1 -0
  711. package/dist/index93.js +9 -0
  712. package/dist/index93.js.map +1 -0
  713. package/dist/index94.js +9 -0
  714. package/dist/index94.js.map +1 -0
  715. package/dist/index95.js +8 -0
  716. package/dist/index95.js.map +1 -0
  717. package/dist/index96.js +8 -0
  718. package/dist/index96.js.map +1 -0
  719. package/dist/index97.js +10 -0
  720. package/dist/index97.js.map +1 -0
  721. package/dist/index98.js +28 -0
  722. package/dist/index98.js.map +1 -0
  723. package/dist/index99.js +10 -0
  724. package/dist/index99.js.map +1 -0
  725. package/package.json +4 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index14.js","sources":["../src/components/FilesUploadField/index.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef, useState, type ReactNode } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport type { DragEndEvent } from \"@dnd-kit/core\"\nimport { DndContext, DragOverlay, KeyboardSensor, PointerSensor, closestCenter, useSensor, useSensors } from \"@dnd-kit/core\"\nimport {\n SortableContext,\n arrayMove,\n rectSortingStrategy,\n sortableKeyboardCoordinates,\n useSortable,\n} from \"@dnd-kit/sortable\"\nimport { CSS } from \"@dnd-kit/utilities\"\nimport { Loader2, Maximize2, Plus, X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n\nexport type FilesUploadFieldFile = {\n id: string\n url: string\n alt?: string\n uploadKey?: string\n}\n\nconst TENANT_ID_QUERY_PARAM = \"rb-tenant-id\"\n\ntype FileUploadsInitResponse = {\n ok: boolean\n error?: string\n uploadId?: string\n uploadKey?: string\n chunkSize?: number\n chunksTotal?: number\n}\n\ntype FileUploadsStatusResponse = {\n ok: boolean\n error?: string\n status?: \"uploading\" | \"assembling\" | \"done\" | \"error\"\n chunkSize?: number\n chunksTotal?: number\n received?: number[]\n fileId?: string\n}\n\ntype FileUploadsCompleteResponse = {\n ok: boolean\n error?: string\n fileId?: string\n}\n\nconst sha256Hex = async (data: ArrayBuffer): Promise<string | null> => {\n if (typeof crypto === \"undefined\" || typeof crypto.subtle === \"undefined\") return null\n try {\n const digest = await crypto.subtle.digest(\"SHA-256\", data)\n const bytes = Array.from(new Uint8Array(digest))\n return bytes.map((b) => b.toString(16).padStart(2, \"0\")).join(\"\")\n } catch {\n return null\n }\n}\n\nconst readTenantIdFromLocation = (): string | null => {\n if (typeof window === \"undefined\") return null\n const raw = new URLSearchParams(window.location.search || \"\").get(TENANT_ID_QUERY_PARAM)\n const normalized = raw?.trim() ?? \"\"\n return normalized ? normalized : null\n}\n\nconst withTenant = (path: string, tenantId: string | null): string => {\n if (!tenantId) return path\n const sep = path.includes(\"?\") ? \"&\" : \"?\"\n return `${path}${sep}${TENANT_ID_QUERY_PARAM}=${encodeURIComponent(tenantId)}`\n}\n\nconst postJson = async <T,>(\n url: string,\n body: unknown,\n options?: { headers?: Record<string, string>; signal?: AbortSignal },\n): Promise<{ ok: boolean; status: number; data: T }> => {\n const response = await fetch(url, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...(options?.headers ?? {}) },\n credentials: \"include\",\n body: JSON.stringify(body),\n signal: options?.signal,\n })\n\n const payload = await response.json().catch(() => ({}))\n return { ok: response.ok, status: response.status, data: payload as T }\n}\n\nconst getJson = async <T,>(\n url: string,\n options?: { headers?: Record<string, string>; signal?: AbortSignal },\n): Promise<{ ok: boolean; status: number; data: T }> => {\n const response = await fetch(url, {\n credentials: \"include\",\n headers: options?.headers,\n signal: options?.signal,\n })\n const payload = await response.json().catch(() => ({}))\n return { ok: response.ok, status: response.status, data: payload as T }\n}\n\nconst putOctetStream = async ({\n url,\n body,\n sha256,\n uploadKey,\n signal,\n}: {\n url: string\n body: ArrayBuffer\n sha256?: string\n uploadKey?: string\n signal?: AbortSignal\n}): Promise<{ ok: boolean; status: number }> => {\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/octet-stream\",\n }\n if (sha256) headers[\"X-Chunk-SHA256\"] = sha256\n if (uploadKey) headers[\"X-Upload-Key\"] = uploadKey\n\n const response = await fetch(url, {\n method: \"PUT\",\n credentials: \"include\",\n headers,\n body,\n signal,\n })\n\n return { ok: response.ok, status: response.status }\n}\n\nconst defaultUpload: UploadHandler = async (file, onProgress, options) => {\n const tenantId = readTenantIdFromLocation()\n\n const initRes = await postJson<FileUploadsInitResponse>(\n withTenant(\"/api/rb/file-uploads\", tenantId),\n {\n filename: file.name,\n mimeType: file.type || \"application/octet-stream\",\n ...(typeof options?.isPublic === \"boolean\" ? { isPublic: options.isPublic } : {}),\n totalSize: file.size,\n },\n { signal: options?.signal },\n )\n\n if (!initRes.ok || !(initRes.data as any)?.ok) {\n throw new Error((initRes.data as any)?.error ?? `Init failed (${initRes.status})`)\n }\n\n const uploadId = String((initRes.data as any)?.uploadId ?? \"\")\n const uploadKey = typeof (initRes.data as any)?.uploadKey === \"string\" ? String((initRes.data as any).uploadKey) : null\n const chunkSize = Number((initRes.data as any)?.chunkSize ?? 0)\n const chunksTotal = Number((initRes.data as any)?.chunksTotal ?? 0)\n\n if (!uploadId || !chunkSize || !chunksTotal) {\n throw new Error(\"Upload init missing required fields\")\n }\n\n const doUploadChunk = async (index: number) => {\n const start = index * chunkSize\n const end = Math.min(file.size, start + chunkSize)\n const slice = file.slice(start, end)\n const body = await slice.arrayBuffer()\n const sha = await sha256Hex(body)\n\n const res = await putOctetStream({\n url: withTenant(`/api/rb/file-uploads/${encodeURIComponent(uploadId)}/chunks/${index}`, tenantId),\n body,\n sha256: sha ?? undefined,\n uploadKey: uploadKey ?? undefined,\n signal: options?.signal,\n })\n\n if (res.status === 204) return\n throw new Error(`Chunk ${index} failed (${res.status})`)\n }\n\n const uploadChunks = async (indices: number[], alreadyUploaded = 0) => {\n let uploaded = alreadyUploaded\n\n for (const idx of indices) {\n await doUploadChunk(idx)\n uploaded += 1\n const pct = Math.min(99, Math.floor((uploaded / chunksTotal) * 99))\n onProgress(pct)\n }\n }\n\n const allIndices = Array.from({ length: chunksTotal }, (_, i) => i)\n await uploadChunks(allIndices, 0)\n\n const complete = async (): Promise<string> => {\n const completeRes = await postJson<FileUploadsCompleteResponse>(\n withTenant(`/api/rb/file-uploads/${encodeURIComponent(uploadId)}/complete`, tenantId),\n {},\n { headers: uploadKey ? { \"X-Upload-Key\": uploadKey } : undefined, signal: options?.signal },\n )\n\n if (completeRes.ok && (completeRes.data as any)?.ok) {\n const fileId = String((completeRes.data as any)?.fileId ?? \"\")\n if (!fileId) throw new Error(\"Upload completed without fileId\")\n return fileId\n }\n\n const code = String((completeRes.data as any)?.error ?? \"\")\n if (completeRes.status !== 409 || code !== \"missing_chunks\") {\n throw new Error(code || `Complete failed (${completeRes.status})`)\n }\n\n const statusRes = await getJson<FileUploadsStatusResponse>(\n withTenant(`/api/rb/file-uploads/${encodeURIComponent(uploadId)}/status`, tenantId),\n { headers: uploadKey ? { \"X-Upload-Key\": uploadKey } : undefined, signal: options?.signal },\n )\n\n if (!statusRes.ok || !(statusRes.data as any)?.ok) {\n throw new Error((statusRes.data as any)?.error ?? `Status failed (${statusRes.status})`)\n }\n\n const received = Array.isArray((statusRes.data as any)?.received) ? (statusRes.data as any).received : []\n const present = new Set<number>(received)\n const missing: number[] = []\n for (let i = 0; i < chunksTotal; i += 1) {\n if (!present.has(i)) missing.push(i)\n }\n\n if (!missing.length) {\n throw new Error(\"missing_chunks\")\n }\n\n await uploadChunks(missing, present.size)\n return complete()\n }\n\n const fileId = await complete()\n\n onProgress(100)\n return {\n id: fileId,\n url: withTenant(`/api/rb/files/${encodeURIComponent(fileId)}`, tenantId),\n alt: file.name,\n ...(uploadKey ? { uploadKey } : {}),\n }\n}\n\nfunction SortableTile({\n item,\n isHovered,\n enableImagePreview,\n renderItem,\n onHoverEnter,\n onHoverLeave,\n onRemove,\n onRetry,\n startFullscreen,\n isUploading,\n isError,\n tileClasses,\n disabled,\n isDraggingExternal,\n removeButtonAriaLabel,\n}: {\n item: FileWithState\n isHovered: boolean\n enableImagePreview: boolean\n renderItem?: (props: FilesUploadFieldRenderItemProps) => ReactNode\n onHoverEnter: () => void\n onHoverLeave: () => void\n onRemove: (id: string) => void\n onRetry: (id: string) => void\n startFullscreen: (id: string) => void\n isUploading: boolean\n isError: boolean\n tileClasses: string\n disabled: boolean\n isDraggingExternal: boolean\n removeButtonAriaLabel: string\n}) {\n const { setNodeRef, attributes, listeners, transform, transition, isDragging } = useSortable({\n id: item.id,\n disabled,\n })\n\n const tileRef = useRef<HTMLDivElement | null>(null)\n const previewRef = useRef<HTMLDivElement | null>(null)\n const [previewPosition, setPreviewPosition] = useState<{ left: number; top: number } | null>(null)\n\n const updatePreviewPosition = () => {\n const el = tileRef.current\n if (!el) return\n const rect = el.getBoundingClientRect()\n setPreviewPosition({ left: rect.left + rect.width / 2, top: rect.top - 10 })\n }\n\n useEffect(() => {\n if (!enableImagePreview || !isHovered) {\n setPreviewPosition(null)\n return\n }\n\n updatePreviewPosition()\n\n let raf = 0\n const schedule = () => {\n if (raf) cancelAnimationFrame(raf)\n raf = requestAnimationFrame(() => {\n raf = 0\n updatePreviewPosition()\n })\n }\n\n window.addEventListener(\"resize\", schedule)\n window.addEventListener(\"scroll\", schedule, true)\n return () => {\n if (raf) cancelAnimationFrame(raf)\n window.removeEventListener(\"resize\", schedule)\n window.removeEventListener(\"scroll\", schedule, true)\n }\n }, [enableImagePreview, isHovered])\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n }\n\n const tileContent = renderItem\n ? renderItem({\n file: { id: item.id, url: item.url, alt: item.alt, uploadKey: item.uploadKey },\n previewUrl: item.previewUrl,\n status: item.status,\n progress: item.progress,\n fileName: item.fileName,\n })\n : enableImagePreview\n ? (\n <img\n src={item.previewUrl}\n alt={item.alt ?? \"Uploaded file\"}\n className={cn(\n \"size-full rounded-md object-cover\",\n isUploading && \"opacity-75\",\n isError && \"grayscale\"\n )}\n />\n )\n : (\n <div className=\"flex size-full items-center justify-center rounded-md bg-slate-100 px-2 text-center text-[10px] font-medium text-slate-700 dark:bg-slate-800 dark:text-slate-200\">\n <span className=\"w-full truncate\">{item.fileName ?? item.alt ?? \"Fichier\"}</span>\n </div>\n )\n\n return (\n <div\n ref={(node) => {\n tileRef.current = node\n setNodeRef(node)\n }}\n style={style}\n className={cn(\n tileClasses,\n isDragging && \"z-20 ring-2 ring-primary shadow-xl\",\n isDraggingExternal && \"opacity-0\",\n !disabled && \"cursor-grab active:cursor-grabbing\",\n isDragging && \"cursor-grabbing\",\n disabled && \"cursor-default\"\n )}\n onMouseEnter={() => {\n updatePreviewPosition()\n onHoverEnter()\n }}\n onMouseLeave={(event) => {\n const next = event.relatedTarget\n if (next instanceof Node && previewRef.current?.contains(next)) return\n onHoverLeave()\n }}\n {...attributes}\n {...listeners}\n >\n {tileContent}\n\n <button\n type=\"button\"\n onClick={() => {\n if (disabled) return\n onRemove(item.id)\n }}\n disabled={disabled}\n className=\"absolute right-1 top-1 inline-flex size-6 items-center justify-center rounded-full bg-white text-slate-700 shadow-sm transition hover:scale-105 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary dark:bg-slate-900 dark:text-slate-200\"\n aria-label={removeButtonAriaLabel}\n >\n <X className=\"h-4 w-4\" />\n </button>\n\n {enableImagePreview &&\n isHovered &&\n previewPosition &&\n (() => {\n const preview = (\n <div\n ref={previewRef}\n className=\"fixed z-[60] w-52 -translate-x-1/2 -translate-y-full rounded-xl border border-slate-200 bg-white/95 p-3 shadow-2xl backdrop-blur dark:border-slate-700 dark:bg-slate-900/95\"\n style={{ left: previewPosition.left, top: previewPosition.top }}\n onMouseEnter={() => {\n updatePreviewPosition()\n onHoverEnter()\n }}\n onMouseLeave={(event) => {\n const next = event.relatedTarget\n if (next instanceof Node && tileRef.current?.contains(next)) return\n onHoverLeave()\n }}\n >\n <div className=\"relative overflow-hidden rounded-lg\">\n <img src={item.url} alt={item.alt ?? \"Preview\"} className=\"h-40 w-full object-cover\" />\n <button\n type=\"button\"\n onClick={() => startFullscreen(item.id)}\n className=\"absolute right-2 top-2 inline-flex items-center justify-center rounded-full bg-black/70 p-2 text-white transition hover:bg-black\"\n aria-label=\"Plein écran\"\n >\n <Maximize2 className=\"h-3.5 w-3.5\" />\n </button>\n </div>\n </div>\n )\n\n if (typeof document === \"undefined\") return preview\n return createPortal(preview, document.body)\n })()}\n\n {isUploading && (\n <div className=\"absolute inset-0 z-20 flex flex-col items-center justify-center gap-2 rounded-lg bg-black/40 text-white\">\n <Loader2 className=\"h-5 w-5 animate-spin\" />\n <div className=\"h-1.5 w-5/6 rounded-full bg-white/20\">\n <div className=\"h-full rounded-full bg-primary\" style={{ width: `${item.progress}%` }} />\n </div>\n <div className=\"text-xs font-semibold\">{item.progress}%</div>\n </div>\n )}\n\n {isError && (\n <div className=\"absolute inset-0 z-10 flex flex-col items-center justify-center gap-2 rounded-lg bg-red-600/70 text-white\">\n <div className=\"text-xs font-semibold\">Échec</div>\n <button\n type=\"button\"\n onClick={() => onRetry(item.id)}\n disabled={disabled}\n className=\"rounded-full bg-white/90 px-3 py-1 text-xs font-semibold text-red-700 shadow-sm transition hover:bg-white focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white\"\n >\n Réessayer\n </button>\n </div>\n )}\n </div>\n )\n}\n\ntype UploadResult = FilesUploadFieldFile | Promise<FilesUploadFieldFile>\n\ntype UploadHandler = (\n file: File,\n onProgress: (progress: number) => void,\n options?: { signal?: AbortSignal; isPublic?: boolean },\n) => UploadResult\n\nexport type FilesUploadFieldRenderItemProps = {\n file: FilesUploadFieldFile\n previewUrl: string\n status: \"uploaded\" | \"uploading\" | \"error\"\n progress: number\n fileName?: string\n}\n\nexport type FilesUploadFieldProps = {\n initialFiles?: FilesUploadFieldFile[]\n onChange?: (files: FilesUploadFieldFile[]) => void\n upload?: UploadHandler\n uploadIsPublic?: boolean\n disabled?: boolean\n onUploadingChange?: (isUploading: boolean) => void\n accept?: string | string[]\n renderHeader?: () => ReactNode\n renderItem?: (props: FilesUploadFieldRenderItemProps) => ReactNode\n addButtonAriaLabel?: string\n removeButtonAriaLabel?: string\n}\n\ntype FileWithState = FilesUploadFieldFile & {\n previewUrl: string\n status: \"uploaded\" | \"uploading\" | \"error\"\n progress: number\n fileName?: string\n}\n\nfunction toPreview(file: File) {\n return URL.createObjectURL(file)\n}\n\nexport function FilesUploadField({\n initialFiles = [],\n onChange,\n upload = defaultUpload,\n uploadIsPublic = false,\n disabled = false,\n onUploadingChange,\n accept,\n renderHeader,\n renderItem,\n addButtonAriaLabel = \"Ajouter un fichier\",\n removeButtonAriaLabel = \"Supprimer le fichier\",\n}: FilesUploadFieldProps) {\n const fileInputRef = useRef<HTMLInputElement>(null)\n const [images, setImages] = useState<FileWithState[]>(() =>\n initialFiles.map((file) => ({ ...file, previewUrl: file.url, status: \"uploaded\", progress: 100 }))\n )\n const [dragActive, setDragActive] = useState(false)\n const [fullscreenIndex, setFullscreenIndex] = useState<number | null>(null)\n const [hoveredId, setHoveredId] = useState<string | null>(null)\n const [activeId, setActiveId] = useState<string | null>(null)\n const hoverTimeoutRef = useRef<number | null>(null)\n const skipNotifyRef = useRef(true)\n const imagesRef = useRef<FileWithState[]>([])\n const lastInitialImagesRef = useRef<FilesUploadFieldFile[]>(initialFiles)\n const onChangeRef = useRef(onChange)\n const onUploadingChangeRef = useRef(onUploadingChange)\n const replacedIdRef = useRef<Map<string, string>>(new Map())\n const fileRef = useRef<Map<string, File>>(new Map())\n const abortRef = useRef<Map<string, AbortController>>(new Map())\n const objectUrlRef = useRef<Map<string, string>>(new Map())\n const sensors = useSensors(\n useSensor(PointerSensor, { activationConstraint: { distance: 6 } }),\n useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates })\n )\n\n useEffect(() => {\n return () => {\n for (const controller of abortRef.current.values()) {\n try {\n controller.abort()\n } catch {\n //\n }\n }\n abortRef.current.clear()\n fileRef.current.clear()\n replacedIdRef.current.clear()\n\n for (const url of objectUrlRef.current.values()) {\n if (typeof URL !== \"undefined\") {\n try {\n URL.revokeObjectURL(url)\n } catch {\n //\n }\n }\n }\n objectUrlRef.current.clear()\n }\n }, [])\n\n useEffect(() => {\n if (typeof document === \"undefined\") return\n if (activeId) {\n document.body.style.cursor = \"grabbing\"\n return () => {\n document.body.style.cursor = \"\"\n }\n }\n document.body.style.cursor = \"\"\n }, [activeId])\n\n useEffect(() => {\n imagesRef.current = images\n }, [images])\n\n useEffect(() => {\n onChangeRef.current = onChange\n }, [onChange])\n\n useEffect(() => {\n onUploadingChangeRef.current = onUploadingChange\n }, [onUploadingChange])\n\n useEffect(() => {\n const previous = lastInitialImagesRef.current\n const samePropValue =\n previous.length === initialFiles.length &&\n previous.every((img, index) => {\n const next = initialFiles[index]\n return next && img.id === next.id && img.url === next.url && img.alt === next.alt\n })\n\n if (samePropValue) return\n lastInitialImagesRef.current = initialFiles\n\n const prepared: FileWithState[] = initialFiles.map((img) => ({\n ...img,\n previewUrl: img.url,\n status: \"uploaded\",\n progress: 100,\n }))\n\n const preparedRawIds = new Set(prepared.map((img) => img.id))\n for (const [tempId, finalId] of replacedIdRef.current.entries()) {\n if (preparedRawIds.has(finalId)) {\n replacedIdRef.current.delete(tempId)\n }\n }\n\n const currentIds = new Set(imagesRef.current.map((img) => img.id))\n const hasStaleInitialImages = prepared.some((img) => {\n const mapped = replacedIdRef.current.get(img.id)\n return mapped ? currentIds.has(mapped) : false\n })\n if (hasStaleInitialImages) return\n\n const preparedIds = new Set(prepared.map((img) => img.id))\n for (const img of imagesRef.current) {\n if (preparedIds.has(img.id)) continue\n\n const controller = abortRef.current.get(img.id)\n if (controller) {\n abortRef.current.delete(img.id)\n try {\n controller.abort()\n } catch {\n //\n }\n }\n\n fileRef.current.delete(img.id)\n\n const tempUrl = objectUrlRef.current.get(img.id)\n if (tempUrl) {\n objectUrlRef.current.delete(img.id)\n try {\n URL.revokeObjectURL(tempUrl)\n } catch {\n //\n }\n }\n }\n\n setImages((current) => {\n const sameLength = current.length === prepared.length\n const sameContent =\n sameLength &&\n current.every((item, index) => {\n const next = prepared[index]\n return next && item.id === next.id && item.url === next.url && item.alt === next.alt && item.uploadKey === next.uploadKey\n })\n\n if (sameContent) return current\n\n skipNotifyRef.current = true\n return prepared\n })\n }, [initialFiles])\n\n useEffect(() => {\n if (skipNotifyRef.current) {\n skipNotifyRef.current = false\n return\n }\n\n onChangeRef.current?.(images.map(({ id, url, alt, uploadKey }) => ({ id, url, alt, uploadKey })))\n }, [images])\n\n useEffect(() => {\n onUploadingChangeRef.current?.(images.some((img) => img.status === \"uploading\"))\n }, [images])\n\n useEffect(() => {\n if (fullscreenIndex === null) {\n return\n }\n\n const handleKey = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n setFullscreenIndex(null)\n return\n }\n\n if (event.key === \"ArrowRight\") {\n setFullscreenIndex((current) => {\n if (current === null) return current\n return (current + 1) % images.length\n })\n return\n }\n\n if (event.key === \"ArrowLeft\") {\n setFullscreenIndex((current) => {\n if (current === null) return current\n return (current - 1 + images.length) % images.length\n })\n }\n }\n\n window.addEventListener(\"keydown\", handleKey)\n return () => window.removeEventListener(\"keydown\", handleKey)\n }, [fullscreenIndex, images.length])\n\n const handleFiles = async (files: FileList | File[]) => {\n if (disabled) return\n const list = Array.from(files)\n\n const uploads = list.map((file) => {\n const previewUrl = toPreview(file)\n const tempId = crypto.randomUUID()\n\n objectUrlRef.current.set(tempId, previewUrl)\n fileRef.current.set(tempId, file)\n\n const next: FileWithState = {\n id: tempId,\n url: previewUrl,\n previewUrl,\n alt: file.name,\n status: \"uploading\",\n progress: 0,\n fileName: file.name,\n }\n\n setImages((current) => [...current, next])\n\n const updateProgress = (value: number) => {\n const nextValue = Math.max(0, Math.min(99, value))\n setImages((current) =>\n current.map((item) =>\n item.id === tempId ? { ...item, progress: nextValue, status: \"uploading\" } : item\n )\n )\n }\n\n const finalize = async () => {\n const controller = new AbortController()\n abortRef.current.set(tempId, controller)\n\n try {\n const result = await upload(file, updateProgress, { signal: controller.signal, isPublic: uploadIsPublic })\n replacedIdRef.current.set(tempId, result.id)\n\n const tempUrl = objectUrlRef.current.get(tempId)\n if (tempUrl) {\n objectUrlRef.current.delete(tempId)\n try {\n URL.revokeObjectURL(tempUrl)\n } catch {\n //\n }\n }\n\n abortRef.current.delete(tempId)\n fileRef.current.delete(tempId)\n\n setImages((current) =>\n current.map((item) =>\n item.id === tempId\n ? {\n ...item,\n ...result,\n previewUrl: result.url,\n url: result.url,\n status: \"uploaded\",\n progress: 100,\n }\n : item\n )\n )\n } catch (error) {\n abortRef.current.delete(tempId)\n if (controller.signal.aborted) {\n fileRef.current.delete(tempId)\n const tempUrl = objectUrlRef.current.get(tempId)\n if (tempUrl) {\n objectUrlRef.current.delete(tempId)\n try {\n URL.revokeObjectURL(tempUrl)\n } catch {\n //\n }\n }\n return\n }\n console.error(\"Upload failed\", error)\n setImages((current) =>\n current.map((item) =>\n item.id === tempId\n ? { ...item, status: \"error\", progress: Math.max(0, Math.min(99, item.progress)) }\n : item\n )\n )\n }\n }\n\n return finalize()\n })\n\n await Promise.allSettled(uploads)\n }\n\n const onFileInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (!event.target.files) return\n void handleFiles(event.target.files)\n event.target.value = \"\"\n }\n\n const openFileDialog = () => {\n if (disabled) return\n fileInputRef.current?.click()\n }\n\n const removeImage = (id: string) => {\n const controller = abortRef.current.get(id)\n if (controller) {\n abortRef.current.delete(id)\n try {\n controller.abort()\n } catch {\n //\n }\n }\n\n fileRef.current.delete(id)\n\n const tempUrl = objectUrlRef.current.get(id)\n if (tempUrl) {\n objectUrlRef.current.delete(id)\n try {\n URL.revokeObjectURL(tempUrl)\n } catch {\n //\n }\n }\n\n setImages((current) => current.filter((item) => item.id !== id))\n }\n\n const retryUpload = (id: string) => {\n if (disabled) return\n const file = fileRef.current.get(id)\n if (!file) return\n\n const existingController = abortRef.current.get(id)\n if (existingController) {\n try {\n existingController.abort()\n } catch {\n //\n }\n abortRef.current.delete(id)\n }\n\n setImages((current) =>\n current.map((item) => (item.id === id ? { ...item, status: \"uploading\", progress: 0 } : item))\n )\n\n const updateProgress = (value: number) => {\n const nextValue = Math.max(0, Math.min(99, value))\n setImages((current) =>\n current.map((item) => (item.id === id ? { ...item, progress: nextValue, status: \"uploading\" } : item))\n )\n }\n\n const controller = new AbortController()\n abortRef.current.set(id, controller)\n\n void (async () => {\n try {\n const result = await upload(file, updateProgress, { signal: controller.signal, isPublic: uploadIsPublic })\n replacedIdRef.current.set(id, result.id)\n\n const tempUrl = objectUrlRef.current.get(id)\n if (tempUrl) {\n objectUrlRef.current.delete(id)\n try {\n URL.revokeObjectURL(tempUrl)\n } catch {\n //\n }\n }\n\n abortRef.current.delete(id)\n fileRef.current.delete(id)\n\n setImages((current) =>\n current.map((item) =>\n item.id === id\n ? { ...item, ...result, previewUrl: result.url, url: result.url, status: \"uploaded\", progress: 100 }\n : item\n )\n )\n } catch (error) {\n abortRef.current.delete(id)\n if (controller.signal.aborted) return\n console.error(\"Retry failed\", error)\n setImages((current) => current.map((item) => (item.id === id ? { ...item, status: \"error\" } : item)))\n }\n })()\n }\n\n const startFullscreen = (id: string) => {\n const index = images.findIndex((item) => item.id === id)\n if (index !== -1) {\n setFullscreenIndex(index)\n }\n }\n\n const handleDragStart = (event: DragEndEvent) => {\n setActiveId(String(event.active.id))\n }\n\n const handleDragEnd = (event: DragEndEvent) => {\n const { active, over } = event\n if (!over) {\n setActiveId(null)\n return\n }\n\n const activeId = String(active.id)\n const overId = String(over.id)\n\n if (activeId !== overId) {\n setImages((current) => {\n const oldIndex = current.findIndex((item) => item.id === activeId)\n const newIndex = current.findIndex((item) => item.id === overId)\n if (oldIndex === -1 || newIndex === -1) return current\n return arrayMove(current, oldIndex, newIndex)\n })\n }\n\n setActiveId(null)\n }\n\n const handleDragCancel = () => {\n setActiveId(null)\n }\n\n const clearHoverTimeout = () => {\n if (hoverTimeoutRef.current !== null) {\n window.clearTimeout(hoverTimeoutRef.current)\n hoverTimeoutRef.current = null\n }\n }\n\n const fullscreenImage = useMemo(() => {\n if (fullscreenIndex === null) return null\n return images[fullscreenIndex] ?? null\n }, [fullscreenIndex, images])\n\n const containerClasses = cn(\n \"rounded-xl border border-dashed border-slate-300 bg-white/70 p-4 shadow-sm transition-colors dark:border-slate-700 dark:bg-slate-900/60\",\n dragActive && \"border-primary ring-2 ring-primary/50\",\n disabled && \"opacity-70\"\n )\n\n const tileBaseClasses = \"group relative size-20 overflow-visible rounded-lg border border-slate-200 bg-slate-50 shadow-inner transition hover:shadow md:size-24 dark:border-slate-700 dark:bg-slate-800\"\n\n const acceptAttr = useMemo(() => {\n if (!accept) return undefined\n if (Array.isArray(accept)) return accept.join(\",\")\n return accept\n }, [accept])\n\n const enableImagePreview = useMemo(() => {\n if (renderItem) return false\n if (!acceptAttr) return false\n const tokens = acceptAttr.split(\",\").map((value) => value.trim()).filter(Boolean)\n if (!tokens.length) return false\n return tokens.every((token) => token === \"image/*\" || token.startsWith(\"image/\"))\n }, [acceptAttr, renderItem])\n\n const toRenderItemProps = (item: FileWithState): FilesUploadFieldRenderItemProps => ({\n file: { id: item.id, url: item.url, alt: item.alt, uploadKey: item.uploadKey },\n previewUrl: item.previewUrl,\n status: item.status,\n progress: item.progress,\n fileName: item.fileName,\n })\n\n const dragOverlayContent = activeId\n ? (() => {\n const activeItem = images.find((item) => item.id === activeId)\n if (!activeItem) return null\n\n if (renderItem) {\n const rendered = renderItem(toRenderItemProps(activeItem))\n if (rendered === null || rendered === undefined || rendered === false) return null\n return (\n <div className=\"pointer-events-none\">\n <div className=\"h-24 w-24 overflow-hidden rounded-lg shadow-2xl\">{rendered}</div>\n </div>\n )\n }\n\n if (!enableImagePreview) return null\n return (\n <div className=\"pointer-events-none\">\n <img\n src={activeItem.previewUrl}\n alt={activeItem.alt ?? \"Dragged image\"}\n className=\"h-24 w-24 rounded-lg object-cover shadow-2xl\"\n />\n </div>\n )\n })()\n : null\n\n const hideActiveTile = dragOverlayContent !== null && dragOverlayContent !== undefined\n\n return (\n <div\n onDragOver={(event) => {\n event.preventDefault()\n if (!disabled) {\n setDragActive(true)\n }\n }}\n onDragLeave={() => setDragActive(false)}\n onDrop={(event) => {\n event.preventDefault()\n setDragActive(false)\n if (event.dataTransfer.files?.length) {\n void handleFiles(event.dataTransfer.files)\n }\n }}\n className={containerClasses}\n >\n {renderHeader ? <div className=\"mb-3\">{renderHeader()}</div> : null}\n\n <DndContext\n sensors={disabled ? undefined : sensors}\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n onDragCancel={handleDragCancel}\n >\n <SortableContext items={images.map((item) => item.id)} strategy={rectSortingStrategy}>\n <div className=\"flex flex-wrap gap-3\">\n {images.map((item) => {\n const isUploading = item.status === \"uploading\"\n const isError = item.status === \"error\"\n\n return (\n <SortableTile\n key={item.id}\n item={item}\n isHovered={hoveredId === item.id}\n enableImagePreview={enableImagePreview}\n renderItem={renderItem}\n onHoverEnter={() => {\n clearHoverTimeout()\n setHoveredId(item.id)\n }}\n onHoverLeave={() => {\n clearHoverTimeout()\n hoverTimeoutRef.current = window.setTimeout(() => {\n setHoveredId((current) => (current === item.id ? null : current))\n hoverTimeoutRef.current = null\n }, 120)\n }}\n onRemove={removeImage}\n onRetry={retryUpload}\n startFullscreen={startFullscreen}\n isUploading={isUploading}\n isError={isError}\n tileClasses={tileBaseClasses}\n disabled={disabled}\n isDraggingExternal={hideActiveTile && activeId === item.id}\n removeButtonAriaLabel={removeButtonAriaLabel}\n />\n )\n })}\n\n <button\n type=\"button\"\n onClick={openFileDialog}\n disabled={disabled}\n className={cn(\n tileBaseClasses,\n \"flex items-center justify-center border-dashed bg-white text-slate-500 hover:border-slate-300 dark:bg-slate-900\"\n )}\n aria-label={addButtonAriaLabel}\n >\n <div className=\"flex flex-col items-center gap-1\">\n <div className=\"flex size-9 items-center justify-center rounded-full border border-slate-300 bg-slate-100 text-slate-600 shadow-inner dark:border-slate-700 dark:bg-slate-800 dark:text-slate-200\">\n <Plus className=\"h-5 w-5\" />\n </div>\n <span className=\"text-xs font-medium\">Ajouter</span>\n </div>\n </button>\n </div>\n </SortableContext>\n {(() => {\n const overlay = <DragOverlay>{dragOverlayContent}</DragOverlay>\n\n if (typeof document === \"undefined\") return overlay\n return createPortal(overlay, document.body)\n })()}\n </DndContext>\n\n <input\n ref={fileInputRef}\n type=\"file\"\n accept={acceptAttr}\n multiple\n className=\"hidden\"\n onChange={onFileInputChange}\n aria-hidden\n />\n\n {enableImagePreview && fullscreenImage && (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center bg-black/90\">\n <button\n type=\"button\"\n className=\"absolute left-6 top-1/2 -translate-y-1/2 rounded-full bg-white/10 p-3 text-white shadow-lg transition hover:bg-white/20 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white\"\n onClick={() =>\n setFullscreenIndex((current) => {\n if (current === null) return current\n return (current - 1 + images.length) % images.length\n })\n }\n aria-label=\"Précédent\"\n >\n <svg viewBox=\"0 0 24 24\" className=\"h-6 w-6\" stroke=\"currentColor\" strokeWidth={2} fill=\"none\">\n <path d=\"M15 18l-6-6 6-6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </button>\n <div className=\"relative max-h-[80vh] max-w-4xl\">\n <img\n src={fullscreenImage.url}\n alt={fullscreenImage.alt ?? \"Fullscreen\"}\n className=\"max-h-[80vh] max-w-full rounded-lg object-contain shadow-2xl\"\n />\n <button\n type=\"button\"\n className=\"absolute right-3 top-3 inline-flex size-9 items-center justify-center rounded-full bg-black/70 text-white transition hover:bg-black focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white\"\n onClick={() => setFullscreenIndex(null)}\n aria-label=\"Fermer\"\n >\n <X className=\"h-5 w-5\" />\n </button>\n </div>\n <button\n type=\"button\"\n className=\"absolute right-6 top-1/2 -translate-y-1/2 rounded-full bg-white/10 p-3 text-white shadow-lg transition hover:bg-white/20 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white\"\n onClick={() =>\n setFullscreenIndex((current) => {\n if (current === null) return current\n return (current + 1) % images.length\n })\n }\n aria-label=\"Suivant\"\n >\n <svg viewBox=\"0 0 24 24\" className=\"h-6 w-6\" stroke=\"currentColor\" strokeWidth={2} fill=\"none\">\n <path d=\"M9 6l6 6-6 6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </button>\n </div>\n )}\n </div>\n )\n}\n"],"names":["TENANT_ID_QUERY_PARAM","sha256Hex","data","digest","b","readTenantIdFromLocation","normalized","withTenant","path","tenantId","sep","postJson","url","body","options","response","payload","getJson","putOctetStream","sha256","uploadKey","signal","headers","defaultUpload","file","onProgress","initRes","uploadId","chunkSize","chunksTotal","doUploadChunk","index","start","end","sha","res","uploadChunks","indices","alreadyUploaded","uploaded","idx","pct","allIndices","_","i","complete","completeRes","fileId","code","statusRes","received","present","missing","SortableTile","item","isHovered","enableImagePreview","renderItem","onHoverEnter","onHoverLeave","onRemove","onRetry","startFullscreen","isUploading","isError","tileClasses","disabled","isDraggingExternal","removeButtonAriaLabel","setNodeRef","attributes","listeners","transform","transition","isDragging","useSortable","tileRef","useRef","previewRef","previewPosition","setPreviewPosition","useState","updatePreviewPosition","el","rect","useEffect","raf","schedule","style","CSS","tileContent","jsx","cn","jsxs","node","event","next","X","preview","Maximize2","createPortal","Loader2","toPreview","FilesUploadField","initialFiles","onChange","upload","uploadIsPublic","onUploadingChange","accept","renderHeader","addButtonAriaLabel","fileInputRef","images","setImages","dragActive","setDragActive","fullscreenIndex","setFullscreenIndex","hoveredId","setHoveredId","activeId","setActiveId","hoverTimeoutRef","skipNotifyRef","imagesRef","lastInitialImagesRef","onChangeRef","onUploadingChangeRef","replacedIdRef","fileRef","abortRef","objectUrlRef","sensors","useSensors","useSensor","PointerSensor","KeyboardSensor","sortableKeyboardCoordinates","controller","previous","img","prepared","preparedRawIds","tempId","finalId","currentIds","mapped","preparedIds","tempUrl","current","id","alt","handleKey","handleFiles","files","uploads","previewUrl","updateProgress","value","nextValue","result","error","onFileInputChange","openFileDialog","removeImage","retryUpload","existingController","handleDragStart","handleDragEnd","active","over","overId","oldIndex","newIndex","arrayMove","handleDragCancel","clearHoverTimeout","fullscreenImage","useMemo","containerClasses","tileBaseClasses","acceptAttr","tokens","token","toRenderItemProps","dragOverlayContent","activeItem","rendered","hideActiveTile","DndContext","closestCenter","SortableContext","rectSortingStrategy","Plus","overlay","DragOverlay"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { defaultDateLib as o } from "./index111.js";
2
+ function a(r, t = o) {
3
+ return r < 10 ? t.formatNumber(`0${r.toLocaleString()}`) : t.formatNumber(`${r.toLocaleString()}`);
4
+ }
5
+ export {
6
+ a as formatWeekNumber
7
+ };
8
+ //# sourceMappingURL=index140.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index140.js","sources":["../../../node_modules/react-day-picker/dist/esm/formatters/formatWeekNumber.js"],"sourcesContent":["import { defaultDateLib } from \"../classes/DateLib.js\";\n/**\n * Formats the week number.\n *\n * @defaultValue The week number as a string, with a leading zero for single-digit numbers.\n * @param weekNumber The week number to format.\n * @param dateLib The date library to use for formatting. Defaults to\n * `defaultDateLib`.\n * @returns The formatted week number as a string.\n * @group Formatters\n * @see https://daypicker.dev/docs/translation#custom-formatters\n */\nexport function formatWeekNumber(weekNumber, dateLib = defaultDateLib) {\n if (weekNumber < 10) {\n return dateLib.formatNumber(`0${weekNumber.toLocaleString()}`);\n }\n return dateLib.formatNumber(`${weekNumber.toLocaleString()}`);\n}\n"],"names":["formatWeekNumber","weekNumber","dateLib","defaultDateLib"],"mappings":";AAYO,SAASA,EAAiBC,GAAYC,IAAUC,GAAgB;AACnE,SAAIF,IAAa,KACNC,EAAQ,aAAa,IAAID,EAAW,eAAc,CAAE,EAAE,IAE1DC,EAAQ,aAAa,GAAGD,EAAW,eAAc,CAAE,EAAE;AAChE;","x_google_ignoreList":[0]}
@@ -0,0 +1,7 @@
1
+ function e() {
2
+ return "";
3
+ }
4
+ export {
5
+ e as formatWeekNumberHeader
6
+ };
7
+ //# sourceMappingURL=index141.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index141.js","sources":["../../../node_modules/react-day-picker/dist/esm/formatters/formatWeekNumberHeader.js"],"sourcesContent":["/**\n * Formats the header for the week number column.\n *\n * @defaultValue An empty string `\"\"`.\n * @returns The formatted week number header as a string.\n * @group Formatters\n * @see https://daypicker.dev/docs/translation#custom-formatters\n */\nexport function formatWeekNumberHeader() {\n return ``;\n}\n"],"names":["formatWeekNumberHeader"],"mappings":"AAQO,SAASA,IAAyB;AACrC,SAAO;AACX;","x_google_ignoreList":[0]}
@@ -0,0 +1,10 @@
1
+ import { defaultDateLib as t } from "./index111.js";
2
+ function a(o, r = t) {
3
+ return r.format(o, "yyyy");
4
+ }
5
+ const f = a;
6
+ export {
7
+ f as formatYearCaption,
8
+ a as formatYearDropdown
9
+ };
10
+ //# sourceMappingURL=index142.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index142.js","sources":["../../../node_modules/react-day-picker/dist/esm/formatters/formatYearDropdown.js"],"sourcesContent":["import { defaultDateLib } from \"../classes/DateLib.js\";\n/**\n * Formats the year for the dropdown option label.\n *\n * @param year The year to format.\n * @param dateLib The date library to use for formatting. Defaults to\n * `defaultDateLib`.\n * @returns The formatted year as a string.\n * @group Formatters\n * @see https://daypicker.dev/docs/translation#custom-formatters\n */\nexport function formatYearDropdown(year, dateLib = defaultDateLib) {\n return dateLib.format(year, \"yyyy\");\n}\n/**\n * @private\n * @deprecated Use `formatYearDropdown` instead.\n * @group Formatters\n */\nexport const formatYearCaption = formatYearDropdown;\n"],"names":["formatYearDropdown","year","dateLib","defaultDateLib","formatYearCaption"],"mappings":";AAWO,SAASA,EAAmBC,GAAMC,IAAUC,GAAgB;AAC/D,SAAOD,EAAQ,OAAOD,GAAM,MAAM;AACtC;AAMY,MAACG,IAAoBJ;","x_google_ignoreList":[0]}
@@ -0,0 +1,27 @@
1
+ import { labelDay as o, labelDayButton as l } from "./index144.js";
2
+ import { labelCaption as t, labelGrid as b } from "./index145.js";
3
+ import { labelGridcell as m } from "./index146.js";
4
+ import { labelMonthDropdown as f } from "./index147.js";
5
+ import { labelNav as n } from "./index148.js";
6
+ import { labelNext as u } from "./index149.js";
7
+ import { labelPrevious as N } from "./index150.js";
8
+ import { labelWeekday as y } from "./index151.js";
9
+ import { labelWeekNumber as v } from "./index152.js";
10
+ import { labelWeekNumberHeader as G } from "./index153.js";
11
+ import { labelYearDropdown as h } from "./index154.js";
12
+ export {
13
+ t as labelCaption,
14
+ o as labelDay,
15
+ l as labelDayButton,
16
+ b as labelGrid,
17
+ m as labelGridcell,
18
+ f as labelMonthDropdown,
19
+ n as labelNav,
20
+ u as labelNext,
21
+ N as labelPrevious,
22
+ v as labelWeekNumber,
23
+ G as labelWeekNumberHeader,
24
+ y as labelWeekday,
25
+ h as labelYearDropdown
26
+ };
27
+ //# sourceMappingURL=index143.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index143.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -0,0 +1,11 @@
1
+ import { DateLib as n } from "./index111.js";
2
+ function r(a, t, l, o) {
3
+ let e = (o ?? new n(l)).format(a, "PPPP");
4
+ return t.today && (e = `Today, ${e}`), t.selected && (e = `${e}, selected`), e;
5
+ }
6
+ const c = r;
7
+ export {
8
+ c as labelDay,
9
+ r as labelDayButton
10
+ };
11
+ //# sourceMappingURL=index144.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index144.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelDayButton.js"],"sourcesContent":["import { DateLib } from \"../classes/DateLib.js\";\n/**\n * Generates the ARIA label for a day button.\n *\n * Use the `modifiers` argument to provide additional context for the label,\n * such as indicating if the day is \"today\" or \"selected.\"\n *\n * @defaultValue The formatted date.\n * @param date - The date to format.\n * @param modifiers - The modifiers providing context for the day.\n * @param options - Optional configuration for the date formatting library.\n * @param dateLib - An optional instance of the date formatting library.\n * @returns The ARIA label for the day button.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelDayButton(date, modifiers, options, dateLib) {\n let label = (dateLib ?? new DateLib(options)).format(date, \"PPPP\");\n if (modifiers.today)\n label = `Today, ${label}`;\n if (modifiers.selected)\n label = `${label}, selected`;\n return label;\n}\n/**\n * @ignore\n * @deprecated Use `labelDayButton` instead.\n */\nexport const labelDay = labelDayButton;\n"],"names":["labelDayButton","date","modifiers","options","dateLib","label","DateLib","labelDay"],"mappings":";AAgBO,SAASA,EAAeC,GAAMC,GAAWC,GAASC,GAAS;AAC9D,MAAIC,KAASD,KAAW,IAAIE,EAAQH,CAAO,GAAG,OAAOF,GAAM,MAAM;AACjE,SAAIC,EAAU,UACVG,IAAQ,UAAUA,CAAK,KACvBH,EAAU,aACVG,IAAQ,GAAGA,CAAK,eACbA;AACX;AAKY,MAACE,IAAWP;","x_google_ignoreList":[0]}
@@ -0,0 +1,10 @@
1
+ import { DateLib as r } from "./index111.js";
2
+ function e(t, o, n) {
3
+ return (n ?? new r(o)).formatMonthYear(t);
4
+ }
5
+ const l = e;
6
+ export {
7
+ l as labelCaption,
8
+ e as labelGrid
9
+ };
10
+ //# sourceMappingURL=index145.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index145.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelGrid.js"],"sourcesContent":["import { DateLib } from \"../classes/DateLib.js\";\n/**\n * Generates the ARIA label for the month grid, which is announced when entering\n * the grid.\n *\n * @defaultValue Locale-specific month/year order (e.g., \"November 2022\").\n * @param date - The date representing the month.\n * @param options - Optional configuration for the date formatting library.\n * @param dateLib - An optional instance of the date formatting library.\n * @returns The ARIA label for the month grid.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelGrid(date, options, dateLib) {\n const lib = dateLib ?? new DateLib(options);\n return lib.formatMonthYear(date);\n}\n/**\n * @ignore\n * @deprecated Use {@link labelGrid} instead.\n */\nexport const labelCaption = labelGrid;\n"],"names":["labelGrid","date","options","dateLib","DateLib","labelCaption"],"mappings":";AAaO,SAASA,EAAUC,GAAMC,GAASC,GAAS;AAE9C,UADYA,KAAW,IAAIC,EAAQF,CAAO,GAC/B,gBAAgBD,CAAI;AACnC;AAKY,MAACI,IAAeL;","x_google_ignoreList":[0]}
@@ -0,0 +1,9 @@
1
+ import { DateLib as a } from "./index111.js";
2
+ function f(t, l, o, r) {
3
+ let e = (r ?? new a(o)).format(t, "PPPP");
4
+ return l?.today && (e = `Today, ${e}`), e;
5
+ }
6
+ export {
7
+ f as labelGridcell
8
+ };
9
+ //# sourceMappingURL=index146.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index146.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelGridcell.js"],"sourcesContent":["import { DateLib } from \"../classes/DateLib.js\";\n/**\n * Generates the label for a day grid cell when the calendar is not interactive.\n *\n * @param date - The date to format.\n * @param modifiers - Optional modifiers providing context for the day.\n * @param options - Optional configuration for the date formatting library.\n * @param dateLib - An optional instance of the date formatting library.\n * @returns The label for the day grid cell.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelGridcell(date, modifiers, options, dateLib) {\n let label = (dateLib ?? new DateLib(options)).format(date, \"PPPP\");\n if (modifiers?.today) {\n label = `Today, ${label}`;\n }\n return label;\n}\n"],"names":["labelGridcell","date","modifiers","options","dateLib","label","DateLib"],"mappings":";AAYO,SAASA,EAAcC,GAAMC,GAAWC,GAASC,GAAS;AAC7D,MAAIC,KAASD,KAAW,IAAIE,EAAQH,CAAO,GAAG,OAAOF,GAAM,MAAM;AACjE,SAAIC,GAAW,UACXG,IAAQ,UAAUA,CAAK,KAEpBA;AACX;","x_google_ignoreList":[0]}
@@ -0,0 +1,7 @@
1
+ function n(o) {
2
+ return "Choose the Month";
3
+ }
4
+ export {
5
+ n as labelMonthDropdown
6
+ };
7
+ //# sourceMappingURL=index147.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index147.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelMonthDropdown.js"],"sourcesContent":["/**\n * Generates the ARIA label for the months dropdown.\n *\n * @defaultValue `\"Choose the Month\"`\n * @param options - Optional configuration for the date formatting library.\n * @returns The ARIA label for the months dropdown.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelMonthDropdown(_options) {\n return \"Choose the Month\";\n}\n"],"names":["labelMonthDropdown","_options"],"mappings":"AASO,SAASA,EAAmBC,GAAU;AACzC,SAAO;AACX;","x_google_ignoreList":[0]}
@@ -0,0 +1,7 @@
1
+ function e() {
2
+ return "";
3
+ }
4
+ export {
5
+ e as labelNav
6
+ };
7
+ //# sourceMappingURL=index148.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index148.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelNav.js"],"sourcesContent":["/**\n * Generates the ARIA label for the navigation toolbar.\n *\n * @defaultValue `\"\"`\n * @returns The ARIA label for the navigation toolbar.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelNav() {\n return \"\";\n}\n"],"names":["labelNav"],"mappings":"AAQO,SAASA,IAAW;AACvB,SAAO;AACX;","x_google_ignoreList":[0]}
@@ -0,0 +1,8 @@
1
+ const t = "Go to the Next Month";
2
+ function n(o, e) {
3
+ return t;
4
+ }
5
+ export {
6
+ n as labelNext
7
+ };
8
+ //# sourceMappingURL=index149.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index149.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelNext.js"],"sourcesContent":["const defaultLabel = \"Go to the Next Month\";\n/**\n * Generates the ARIA label for the \"next month\" button.\n *\n * @defaultValue `\"Go to the Next Month\"`\n * @param month - The date representing the next month, or `undefined` if there\n * is no next month.\n * @returns The ARIA label for the \"next month\" button.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelNext(_month, _options) {\n return defaultLabel;\n}\n"],"names":["defaultLabel","labelNext","_month","_options"],"mappings":"AAAA,MAAMA,IAAe;AAWd,SAASC,EAAUC,GAAQC,GAAU;AACxC,SAAOH;AACX;","x_google_ignoreList":[0]}
@@ -0,0 +1,26 @@
1
+ import { j as a } from "./index28.js";
2
+ import { FilesUploadField as l } from "./index14.js";
3
+ function n({
4
+ initialImages: i = [],
5
+ onChange: e,
6
+ accept: r = "image/*",
7
+ addButtonAriaLabel: m = "Ajouter une image",
8
+ removeButtonAriaLabel: o = "Supprimer l'image",
9
+ ...t
10
+ }) {
11
+ return /* @__PURE__ */ a.jsx(
12
+ l,
13
+ {
14
+ initialFiles: i,
15
+ onChange: e,
16
+ accept: r,
17
+ addButtonAriaLabel: m,
18
+ removeButtonAriaLabel: o,
19
+ ...t
20
+ }
21
+ );
22
+ }
23
+ export {
24
+ n as ImagesField
25
+ };
26
+ //# sourceMappingURL=index15.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index15.js","sources":["../src/components/ImagesField/index.tsx"],"sourcesContent":["import type { FilesUploadFieldFile, FilesUploadFieldProps } from \"../FilesUploadField\"\nimport { FilesUploadField } from \"../FilesUploadField\"\n\n\nexport type ImagesFieldImage = FilesUploadFieldFile\n\nexport type ImagesFieldProps = Omit<FilesUploadFieldProps, \"initialFiles\" | \"onChange\"> & {\n initialImages?: ImagesFieldImage[]\n onChange?: (images: ImagesFieldImage[]) => void\n}\n\nexport function ImagesField({\n initialImages = [],\n onChange,\n accept = \"image/*\",\n addButtonAriaLabel = \"Ajouter une image\",\n removeButtonAriaLabel = \"Supprimer l'image\",\n ...props\n}: ImagesFieldProps) {\n return (\n <FilesUploadField\n initialFiles={initialImages}\n onChange={onChange}\n accept={accept}\n addButtonAriaLabel={addButtonAriaLabel}\n removeButtonAriaLabel={removeButtonAriaLabel}\n {...props}\n />\n )\n}\n"],"names":["ImagesField","initialImages","onChange","accept","addButtonAriaLabel","removeButtonAriaLabel","props","jsx","FilesUploadField"],"mappings":";;AAWO,SAASA,EAAY;AAAA,EAC1B,eAAAC,IAAgB,CAAA;AAAA,EAChB,UAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,oBAAAC,IAAqB;AAAA,EACrB,uBAAAC,IAAwB;AAAA,EACxB,GAAGC;AACL,GAAqB;AACnB,SACEC,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,cAAcP;AAAA,MACd,UAAAC;AAAA,MACA,QAAAC;AAAA,MACA,oBAAAC;AAAA,MACA,uBAAAC;AAAA,MACC,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;"}
@@ -0,0 +1,7 @@
1
+ function t(o) {
2
+ return "Go to the Previous Month";
3
+ }
4
+ export {
5
+ t as labelPrevious
6
+ };
7
+ //# sourceMappingURL=index150.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index150.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelPrevious.js"],"sourcesContent":["/**\n * Generates the ARIA label for the \"previous month\" button.\n *\n * @defaultValue `\"Go to the Previous Month\"`\n * @param month - The date representing the previous month, or `undefined` if\n * there is no previous month.\n * @returns The ARIA label for the \"previous month\" button.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelPrevious(_month) {\n return \"Go to the Previous Month\";\n}\n"],"names":["labelPrevious","_month"],"mappings":"AAUO,SAASA,EAAcC,GAAQ;AAClC,SAAO;AACX;","x_google_ignoreList":[0]}
@@ -0,0 +1,8 @@
1
+ import { DateLib as c } from "./index111.js";
2
+ function a(e, r, t) {
3
+ return (t ?? new c(r)).format(e, "cccc");
4
+ }
5
+ export {
6
+ a as labelWeekday
7
+ };
8
+ //# sourceMappingURL=index151.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index151.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelWeekday.js"],"sourcesContent":["import { DateLib } from \"../classes/DateLib.js\";\n/**\n * Generates the ARIA label for a weekday column header.\n *\n * @defaultValue `\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"`\n * @param date - The date representing the weekday.\n * @param options - Optional configuration for the date formatting library.\n * @param dateLib - An optional instance of the date formatting library.\n * @returns The ARIA label for the weekday column header.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelWeekday(date, options, dateLib) {\n return (dateLib ?? new DateLib(options)).format(date, \"cccc\");\n}\n"],"names":["labelWeekday","date","options","dateLib","DateLib"],"mappings":";AAYO,SAASA,EAAaC,GAAMC,GAASC,GAAS;AACjD,UAAQA,KAAW,IAAIC,EAAQF,CAAO,GAAG,OAAOD,GAAM,MAAM;AAChE;","x_google_ignoreList":[0]}
@@ -0,0 +1,7 @@
1
+ function o(e, n) {
2
+ return `Week ${e}`;
3
+ }
4
+ export {
5
+ o as labelWeekNumber
6
+ };
7
+ //# sourceMappingURL=index152.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index152.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelWeekNumber.js"],"sourcesContent":["/**\n * Generates the ARIA label for the week number cell (the first cell in a row).\n *\n * @defaultValue `Week ${weekNumber}`\n * @param weekNumber - The number of the week.\n * @param options - Optional configuration for the date formatting library.\n * @returns The ARIA label for the week number cell.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelWeekNumber(weekNumber, _options) {\n return `Week ${weekNumber}`;\n}\n"],"names":["labelWeekNumber","weekNumber","_options"],"mappings":"AAUO,SAASA,EAAgBC,GAAYC,GAAU;AAClD,SAAO,QAAQD,CAAU;AAC7B;","x_google_ignoreList":[0]}
@@ -0,0 +1,7 @@
1
+ function r(e) {
2
+ return "Week Number";
3
+ }
4
+ export {
5
+ r as labelWeekNumberHeader
6
+ };
7
+ //# sourceMappingURL=index153.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index153.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelWeekNumberHeader.js"],"sourcesContent":["/**\n * Generates the ARIA label for the week number header element.\n *\n * @defaultValue `\"Week Number\"`\n * @param options - Optional configuration for the date formatting library.\n * @returns The ARIA label for the week number header.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelWeekNumberHeader(_options) {\n return \"Week Number\";\n}\n"],"names":["labelWeekNumberHeader","_options"],"mappings":"AASO,SAASA,EAAsBC,GAAU;AAC5C,SAAO;AACX;","x_google_ignoreList":[0]}
@@ -0,0 +1,7 @@
1
+ function e(o) {
2
+ return "Choose the Year";
3
+ }
4
+ export {
5
+ e as labelYearDropdown
6
+ };
7
+ //# sourceMappingURL=index154.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index154.js","sources":["../../../node_modules/react-day-picker/dist/esm/labels/labelYearDropdown.js"],"sourcesContent":["/**\n * Generates the ARIA label for the years dropdown.\n *\n * @defaultValue `\"Choose the Year\"`\n * @param options - Optional configuration for the date formatting library.\n * @returns The ARIA label for the years dropdown.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelYearDropdown(_options) {\n return \"Choose the Year\";\n}\n"],"names":["labelYearDropdown","_options"],"mappings":"AASO,SAASA,EAAkBC,GAAU;AACxC,SAAO;AACX;","x_google_ignoreList":[0]}
@@ -0,0 +1,7 @@
1
+ function a(n, t) {
2
+ return new a.InputMask(n, t);
3
+ }
4
+ export {
5
+ a as default
6
+ };
7
+ //# sourceMappingURL=index155.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index155.js","sources":["../../../node_modules/imask/esm/core/holder.js"],"sourcesContent":["/** Applies mask on element */\nfunction IMask(el, opts) {\n // currently available only for input-like elements\n return new IMask.InputMask(el, opts);\n}\n\nexport { IMask as default };\n"],"names":["IMask","el","opts"],"mappings":"AACA,SAASA,EAAMC,GAAIC,GAAM;AAEvB,SAAO,IAAIF,EAAM,UAAUC,GAAIC,CAAI;AACrC;","x_google_ignoreList":[0]}
@@ -0,0 +1,37 @@
1
+ import i from "./index155.js";
2
+ class s {
3
+ /** Inserted symbols */
4
+ /** Additional offset if any changes occurred before tail */
5
+ /** Raw inserted is used by dynamic mask */
6
+ /** Can skip chars */
7
+ static normalize(t) {
8
+ return Array.isArray(t) ? t : [t, new s()];
9
+ }
10
+ constructor(t) {
11
+ Object.assign(this, {
12
+ inserted: "",
13
+ rawInserted: "",
14
+ tailShift: 0,
15
+ skip: !1
16
+ }, t);
17
+ }
18
+ /** Aggregate changes */
19
+ aggregate(t) {
20
+ return this.inserted += t.inserted, this.rawInserted += t.rawInserted, this.tailShift += t.tailShift, this.skip = this.skip || t.skip, this;
21
+ }
22
+ /** Total offset considering all changes */
23
+ get offset() {
24
+ return this.tailShift + this.inserted.length;
25
+ }
26
+ get consumed() {
27
+ return !!this.rawInserted || this.skip;
28
+ }
29
+ equals(t) {
30
+ return this.inserted === t.inserted && this.tailShift === t.tailShift && this.rawInserted === t.rawInserted && this.skip === t.skip;
31
+ }
32
+ }
33
+ i.ChangeDetails = s;
34
+ export {
35
+ s as default
36
+ };
37
+ //# sourceMappingURL=index156.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index156.js","sources":["../../../node_modules/imask/esm/core/change-details.js"],"sourcesContent":["import IMask from './holder.js';\n\n/** Provides details of changing model value */\nclass ChangeDetails {\n /** Inserted symbols */\n\n /** Additional offset if any changes occurred before tail */\n\n /** Raw inserted is used by dynamic mask */\n\n /** Can skip chars */\n\n static normalize(prep) {\n return Array.isArray(prep) ? prep : [prep, new ChangeDetails()];\n }\n constructor(details) {\n Object.assign(this, {\n inserted: '',\n rawInserted: '',\n tailShift: 0,\n skip: false\n }, details);\n }\n\n /** Aggregate changes */\n aggregate(details) {\n this.inserted += details.inserted;\n this.rawInserted += details.rawInserted;\n this.tailShift += details.tailShift;\n this.skip = this.skip || details.skip;\n return this;\n }\n\n /** Total offset considering all changes */\n get offset() {\n return this.tailShift + this.inserted.length;\n }\n get consumed() {\n return Boolean(this.rawInserted) || this.skip;\n }\n equals(details) {\n return this.inserted === details.inserted && this.tailShift === details.tailShift && this.rawInserted === details.rawInserted && this.skip === details.skip;\n }\n}\nIMask.ChangeDetails = ChangeDetails;\n\nexport { ChangeDetails as default };\n"],"names":["ChangeDetails","prep","details","IMask"],"mappings":";AAGA,MAAMA,EAAc;AAAA;AAAA;AAAA;AAAA;AAAA,EASlB,OAAO,UAAUC,GAAM;AACrB,WAAO,MAAM,QAAQA,CAAI,IAAIA,IAAO,CAACA,GAAM,IAAID,GAAe;AAAA,EAChE;AAAA,EACA,YAAYE,GAAS;AACnB,WAAO,OAAO,MAAM;AAAA,MAClB,UAAU;AAAA,MACV,aAAa;AAAA,MACb,WAAW;AAAA,MACX,MAAM;AAAA,IACZ,GAAOA,CAAO;AAAA,EACZ;AAAA;AAAA,EAGA,UAAUA,GAAS;AACjB,gBAAK,YAAYA,EAAQ,UACzB,KAAK,eAAeA,EAAQ,aAC5B,KAAK,aAAaA,EAAQ,WAC1B,KAAK,OAAO,KAAK,QAAQA,EAAQ,MAC1B;AAAA,EACT;AAAA;AAAA,EAGA,IAAI,SAAS;AACX,WAAO,KAAK,YAAY,KAAK,SAAS;AAAA,EACxC;AAAA,EACA,IAAI,WAAW;AACb,WAAO,EAAQ,KAAK,eAAgB,KAAK;AAAA,EAC3C;AAAA,EACA,OAAOA,GAAS;AACd,WAAO,KAAK,aAAaA,EAAQ,YAAY,KAAK,cAAcA,EAAQ,aAAa,KAAK,gBAAgBA,EAAQ,eAAe,KAAK,SAASA,EAAQ;AAAA,EACzJ;AACF;AACAC,EAAM,gBAAgBH;","x_google_ignoreList":[0]}