@banzamel/mineralui 1.6.4 → 1.8.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 (460) hide show
  1. package/README.md +1 -1
  2. package/dist/{MAvatar-BHASnoyu.js → MAvatar-BcayQCnp.js} +2 -2
  3. package/dist/{MAvatar-BHASnoyu.js.map → MAvatar-BcayQCnp.js.map} +1 -1
  4. package/dist/{MAvatar-BVJh6kgW.cjs → MAvatar-BgevCYi3.cjs} +2 -2
  5. package/dist/{MAvatar-BVJh6kgW.cjs.map → MAvatar-BgevCYi3.cjs.map} +1 -1
  6. package/dist/MButton-8UCydOik.cjs +2 -0
  7. package/dist/MButton-8UCydOik.cjs.map +1 -0
  8. package/dist/{MButton-y9qXhhGt.js → MButton-DZLLrtQb.js} +38 -36
  9. package/dist/MButton-DZLLrtQb.js.map +1 -0
  10. package/dist/{MCheckbox-B-nT2OBE.js → MCheckbox-B7SpcD4H.js} +1 -1
  11. package/dist/{MCheckbox-B-nT2OBE.js.map → MCheckbox-B7SpcD4H.js.map} +1 -1
  12. package/dist/{MCheckbox-C40ESQRe.cjs → MCheckbox-Dn3p_9-1.cjs} +2 -2
  13. package/dist/{MCheckbox-C40ESQRe.cjs.map → MCheckbox-Dn3p_9-1.cjs.map} +1 -1
  14. package/dist/{MCookieBootstrap-3-wyz3Dk.cjs → MCookieBootstrap-BUqtJO3m.cjs} +1 -1
  15. package/dist/{MCookieBootstrap-3-wyz3Dk.cjs.map → MCookieBootstrap-BUqtJO3m.cjs.map} +1 -1
  16. package/dist/{MCookieBootstrap-CGvYxIK8.js → MCookieBootstrap-Btt49Iuq.js} +1 -1
  17. package/dist/{MCookieBootstrap-CGvYxIK8.js.map → MCookieBootstrap-Btt49Iuq.js.map} +1 -1
  18. package/dist/MDataTable-95_Mb6jE.cjs +2 -0
  19. package/dist/MDataTable-95_Mb6jE.cjs.map +1 -0
  20. package/dist/MDataTable-DxDS5auV.js +297 -0
  21. package/dist/MDataTable-DxDS5auV.js.map +1 -0
  22. package/dist/{MDrawer-W2WQs1sM.js → MDrawer-CXNHYwPO.js} +2 -2
  23. package/dist/{MDrawer-W2WQs1sM.js.map → MDrawer-CXNHYwPO.js.map} +1 -1
  24. package/dist/{MDrawer-DFkrFrnD.cjs → MDrawer-DzqtHVeA.cjs} +2 -2
  25. package/dist/{MDrawer-DFkrFrnD.cjs.map → MDrawer-DzqtHVeA.cjs.map} +1 -1
  26. package/dist/{MDropdownMenu-D79Cm5aS.js → MDropdownMenu-CeiC1tz3.js} +5 -5
  27. package/dist/MDropdownMenu-CeiC1tz3.js.map +1 -0
  28. package/dist/MDropdownMenu-c9U3sEcl.cjs +2 -0
  29. package/dist/MDropdownMenu-c9U3sEcl.cjs.map +1 -0
  30. package/dist/{MGalleryIllustration-BB3DoCl_.cjs → MGalleryIllustration-Dglx_Ckc.cjs} +2 -2
  31. package/dist/{MGalleryIllustration-BB3DoCl_.cjs.map → MGalleryIllustration-Dglx_Ckc.cjs.map} +1 -1
  32. package/dist/MGrid-C4kPZDSa.cjs +2 -0
  33. package/dist/MGrid-C4kPZDSa.cjs.map +1 -0
  34. package/dist/MGrid-DR0fHItF.js +182 -0
  35. package/dist/MGrid-DR0fHItF.js.map +1 -0
  36. package/dist/{MHeading-BhCNoJeW.cjs → MHeading-CKe5lcM_.cjs} +2 -2
  37. package/dist/{MHeading-BhCNoJeW.cjs.map → MHeading-CKe5lcM_.cjs.map} +1 -1
  38. package/dist/{MI18nProvider-B2sE0x5D.cjs → MI18nProvider-DOh5xexz.cjs} +2 -2
  39. package/dist/{MI18nProvider-B2sE0x5D.cjs.map → MI18nProvider-DOh5xexz.cjs.map} +1 -1
  40. package/dist/MImage-BZ6SrSao.cjs +2 -0
  41. package/dist/MImage-BZ6SrSao.cjs.map +1 -0
  42. package/dist/{MImage-BKX-xBm3.js → MImage-Btx_7g2Z.js} +5 -6
  43. package/dist/MImage-Btx_7g2Z.js.map +1 -0
  44. package/dist/{MInput-bzSwK880.js → MInput-7i0Dy1t4.js} +3 -2
  45. package/dist/{MInput-bzSwK880.js.map → MInput-7i0Dy1t4.js.map} +1 -1
  46. package/dist/{MInput-DYqV3-rQ.cjs → MInput-D_zaoWwX.cjs} +2 -2
  47. package/dist/{MInput-DYqV3-rQ.cjs.map → MInput-D_zaoWwX.cjs.map} +1 -1
  48. package/dist/MInputExpDate-DWWwjMYK.cjs +2 -0
  49. package/dist/MInputExpDate-DWWwjMYK.cjs.map +1 -0
  50. package/dist/{MInputCVC-BHpMHTO5.js → MInputExpDate-DhO5zN7L.js} +97 -97
  51. package/dist/MInputExpDate-DhO5zN7L.js.map +1 -0
  52. package/dist/{MInputSearch-Dh4C3Tz5.js → MInputSearch-CmzHPnmC.js} +2 -2
  53. package/dist/{MInputSearch-Dh4C3Tz5.js.map → MInputSearch-CmzHPnmC.js.map} +1 -1
  54. package/dist/{MInputSearch-DfoenJIm.cjs → MInputSearch-DpHSVpmL.cjs} +2 -2
  55. package/dist/{MInputSearch-DfoenJIm.cjs.map → MInputSearch-DpHSVpmL.cjs.map} +1 -1
  56. package/dist/MKbd-DWTS3iS5.cjs +2 -0
  57. package/dist/MKbd-DWTS3iS5.cjs.map +1 -0
  58. package/dist/MKbd-v6-tJ9sP.js +14 -0
  59. package/dist/MKbd-v6-tJ9sP.js.map +1 -0
  60. package/dist/{MLink-CY45UR_j.cjs → MLink-B3ImjkJV.cjs} +2 -2
  61. package/dist/{MLink-CY45UR_j.cjs.map → MLink-B3ImjkJV.cjs.map} +1 -1
  62. package/dist/{MModal-DT5BBgNZ.cjs → MModal-CP0e31pv.cjs} +2 -2
  63. package/dist/{MModal-DT5BBgNZ.cjs.map → MModal-CP0e31pv.cjs.map} +1 -1
  64. package/dist/{MModal-BDTAgnrm.js → MModal-DGmeQlWo.js} +2 -2
  65. package/dist/{MModal-BDTAgnrm.js.map → MModal-DGmeQlWo.js.map} +1 -1
  66. package/dist/{MPagination-CZEJMJzZ.cjs → MPagination-CS62B9kZ.cjs} +2 -2
  67. package/dist/{MPagination-CZEJMJzZ.cjs.map → MPagination-CS62B9kZ.cjs.map} +1 -1
  68. package/dist/{MPagination-CTnaW5AW.js → MPagination-Dr110are.js} +2 -2
  69. package/dist/{MPagination-CTnaW5AW.js.map → MPagination-Dr110are.js.map} +1 -1
  70. package/dist/{MPopover-B4IUb9f0.cjs → MPopover-CxxaY9kr.cjs} +2 -2
  71. package/dist/{MPopover-B4IUb9f0.cjs.map → MPopover-CxxaY9kr.cjs.map} +1 -1
  72. package/dist/{MPortal-Bi24xTGW.cjs → MPortal-BIxPtFYd.cjs} +2 -2
  73. package/dist/{MPortal-Bi24xTGW.cjs.map → MPortal-BIxPtFYd.cjs.map} +1 -1
  74. package/dist/{MQrCode-CCtTkkv9.js → MQrCode-6ANDcExA.js} +150 -100
  75. package/dist/MQrCode-6ANDcExA.js.map +1 -0
  76. package/dist/MQrCode-B0-Np-N3.cjs +2 -0
  77. package/dist/MQrCode-B0-Np-N3.cjs.map +1 -0
  78. package/dist/MSimpleGrid-Bojj4xKH.js +18 -0
  79. package/dist/MSimpleGrid-Bojj4xKH.js.map +1 -0
  80. package/dist/MSimpleGrid-CyLf-9R2.cjs +2 -0
  81. package/dist/MSimpleGrid-CyLf-9R2.cjs.map +1 -0
  82. package/dist/MSkeleton-BdwhPx-k.cjs +2 -0
  83. package/dist/MSkeleton-BdwhPx-k.cjs.map +1 -0
  84. package/dist/MSkeleton-BvXgnYs_.js +136 -0
  85. package/dist/MSkeleton-BvXgnYs_.js.map +1 -0
  86. package/dist/{MSlider-5141rKeH.js → MSlider-CqrusKJQ.js} +1 -1
  87. package/dist/{MSlider-5141rKeH.js.map → MSlider-CqrusKJQ.js.map} +1 -1
  88. package/dist/{MSlider-Ch3VjAJC.cjs → MSlider-qCGmD4UA.cjs} +2 -2
  89. package/dist/{MSlider-Ch3VjAJC.cjs.map → MSlider-qCGmD4UA.cjs.map} +1 -1
  90. package/dist/MStack-ByFYGSsy.cjs +2 -0
  91. package/dist/MStack-ByFYGSsy.cjs.map +1 -0
  92. package/dist/MStack-DFIc3S4_.js +70 -0
  93. package/dist/MStack-DFIc3S4_.js.map +1 -0
  94. package/dist/{MSubText-C-70zn0m.cjs → MSubText-1ilKSz8e.cjs} +2 -2
  95. package/dist/{MSubText-C-70zn0m.cjs.map → MSubText-1ilKSz8e.cjs.map} +1 -1
  96. package/dist/MSurface-CmVIQC1A.js +43 -0
  97. package/dist/MSurface-CmVIQC1A.js.map +1 -0
  98. package/dist/MSurface-CpAuwpHv.cjs +2 -0
  99. package/dist/MSurface-CpAuwpHv.cjs.map +1 -0
  100. package/dist/MTabs-BQZ--mMq.js +89 -0
  101. package/dist/MTabs-BQZ--mMq.js.map +1 -0
  102. package/dist/MTabs-DeUn6bIp.cjs +2 -0
  103. package/dist/MTabs-DeUn6bIp.cjs.map +1 -0
  104. package/dist/{MTag-CH5nMbm7.js → MTag-C4SUJly2.js} +2 -2
  105. package/dist/{MTag-CH5nMbm7.js.map → MTag-C4SUJly2.js.map} +1 -1
  106. package/dist/{MTag-Y4Tswmli.cjs → MTag-DwQ-j1sV.cjs} +2 -2
  107. package/dist/{MTag-Y4Tswmli.cjs.map → MTag-DwQ-j1sV.cjs.map} +1 -1
  108. package/dist/{MText-DEJddMB5.cjs → MText-D0fI_D_Q.cjs} +2 -2
  109. package/dist/{MText-DEJddMB5.cjs.map → MText-D0fI_D_Q.cjs.map} +1 -1
  110. package/dist/{MTimeAgo-DxZGVo2Y.cjs → MTimeAgo-DI3DF7bD.cjs} +2 -2
  111. package/dist/{MTimeAgo-DxZGVo2Y.cjs.map → MTimeAgo-DI3DF7bD.cjs.map} +1 -1
  112. package/dist/{MTimeAgo-C4p80NvI.js → MTimeAgo-Db8gOade.js} +2 -2
  113. package/dist/{MTimeAgo-C4p80NvI.js.map → MTimeAgo-Db8gOade.js.map} +1 -1
  114. package/dist/{MToggle-Dt1Ctr5e.js → MToggle-B6emKoKq.js} +1 -1
  115. package/dist/{MToggle-Dt1Ctr5e.js.map → MToggle-B6emKoKq.js.map} +1 -1
  116. package/dist/{MToggle-C8vYRzpC.cjs → MToggle-BVJm5Bdk.cjs} +2 -2
  117. package/dist/{MToggle-C8vYRzpC.cjs.map → MToggle-BVJm5Bdk.cjs.map} +1 -1
  118. package/dist/{MTooltip-kSTMMpvu.cjs → MTooltip-Dq2vYf3G.cjs} +2 -2
  119. package/dist/{MTooltip-kSTMMpvu.cjs.map → MTooltip-Dq2vYf3G.cjs.map} +1 -1
  120. package/dist/{MTooltip-C43aUKMP.js → MTooltip-jSf4VBtB.js} +1 -1
  121. package/dist/{MTooltip-C43aUKMP.js.map → MTooltip-jSf4VBtB.js.map} +1 -1
  122. package/dist/MTreeView-AqH8XMPz.js +516 -0
  123. package/dist/MTreeView-AqH8XMPz.js.map +1 -0
  124. package/dist/MTreeView-Dp9qbqQh.cjs +2 -0
  125. package/dist/MTreeView-Dp9qbqQh.cjs.map +1 -0
  126. package/dist/{arduino-CXUo7Bjy.cjs → arduino-Bm509TuR.cjs} +1 -1
  127. package/dist/{arduino-CXUo7Bjy.cjs.map → arduino-Bm509TuR.cjs.map} +1 -1
  128. package/dist/{arduino-Eif5KI8O.js → arduino-C5s1z3P1.js} +1 -1
  129. package/dist/{arduino-Eif5KI8O.js.map → arduino-C5s1z3P1.js.map} +1 -1
  130. package/dist/{bash-W4h3o_nx.cjs → bash-CyBbinAU.cjs} +1 -1
  131. package/dist/{bash-W4h3o_nx.cjs.map → bash-CyBbinAU.cjs.map} +1 -1
  132. package/dist/{bash-CCF_TYbb.js → bash-RIFbRcCe.js} +1 -1
  133. package/dist/{bash-CCF_TYbb.js.map → bash-RIFbRcCe.js.map} +1 -1
  134. package/dist/{c-DVgkp6T3.js → c-DAywn1DE.js} +1 -1
  135. package/dist/{c-DVgkp6T3.js.map → c-DAywn1DE.js.map} +1 -1
  136. package/dist/{c-Dm60JY-W.cjs → c-DGOxo0dj.cjs} +1 -1
  137. package/dist/{c-Dm60JY-W.cjs.map → c-DGOxo0dj.cjs.map} +1 -1
  138. package/dist/cards-B9g6Lf1n.cjs +2 -0
  139. package/dist/cards-B9g6Lf1n.cjs.map +1 -0
  140. package/dist/cards-D7oHIHmU.js +1535 -0
  141. package/dist/cards-D7oHIHmU.js.map +1 -0
  142. package/dist/cards.cjs +1 -1
  143. package/dist/cards.js +3 -3
  144. package/dist/components/cards/MCard/MCard.d.ts +1 -1
  145. package/dist/components/cards/MCard/MCard.types.d.ts +2 -5
  146. package/dist/components/cards/MCardActionArea/MCardActionArea.d.ts +2 -0
  147. package/dist/components/cards/MCardActionArea/MCardActionArea.types.d.ts +7 -0
  148. package/dist/components/cards/MCardActionArea/index.d.ts +2 -0
  149. package/dist/components/cards/MCardDaySchedule/MCardDaySchedule.d.ts +2 -0
  150. package/dist/components/cards/MCardDaySchedule/MCardDaySchedule.types.d.ts +41 -0
  151. package/dist/components/cards/MCardDaySchedule/index.d.ts +2 -0
  152. package/dist/components/cards/MCardDocumentTree/MCardDocumentTree.d.ts +2 -0
  153. package/dist/components/cards/MCardDocumentTree/MCardDocumentTree.types.d.ts +31 -0
  154. package/dist/components/cards/MCardDocumentTree/index.d.ts +2 -0
  155. package/dist/components/cards/MCardFinance/MCardFinance.d.ts +1 -1
  156. package/dist/components/cards/MCardFinance/MCardFinance.types.d.ts +2 -1
  157. package/dist/components/cards/MCardGrid/MCardGrid.d.ts +1 -1
  158. package/dist/components/cards/MCardGrid/MCardGrid.types.d.ts +23 -5
  159. package/dist/components/cards/MCardPayment/MCardPayment.d.ts +1 -1
  160. package/dist/components/cards/MCardPayment/MCardPayment.types.d.ts +2 -1
  161. package/dist/components/cards/MCardTile/MCardTile.d.ts +2 -0
  162. package/dist/components/cards/MCardTile/MCardTile.types.d.ts +26 -0
  163. package/dist/components/cards/MCardTile/index.d.ts +2 -0
  164. package/dist/components/cards/MCardWidget/MCardWidget.d.ts +1 -1
  165. package/dist/components/cards/MCardWidget/MCardWidget.types.d.ts +2 -1
  166. package/dist/components/cards/MStatCard/MStatCard.d.ts +3 -0
  167. package/dist/components/cards/MStatCard/MStatCard.types.d.ts +16 -0
  168. package/dist/components/cards/MStatCard/index.d.ts +2 -0
  169. package/dist/components/cards/ServiceCardsShared/ServiceCardsShared.d.ts +1 -1
  170. package/dist/components/cards/ServiceCardsShared/ServiceCardsShared.types.d.ts +1 -3
  171. package/dist/components/cards/index.d.ts +12 -0
  172. package/dist/components/cards/shared/MCardAction.types.d.ts +12 -0
  173. package/dist/components/cards/shared/MCardAction.utils.d.ts +16 -0
  174. package/dist/components/cards/shared/MCardColor.utils.d.ts +3 -0
  175. package/dist/components/cards/shared/index.d.ts +3 -0
  176. package/dist/components/controls/MButton/MButton.types.d.ts +2 -0
  177. package/dist/components/controls/MQuickActions/MQuickActions.d.ts +2 -0
  178. package/dist/components/controls/MQuickActions/MQuickActions.types.d.ts +33 -0
  179. package/dist/components/controls/MQuickActions/index.d.ts +2 -0
  180. package/dist/components/controls/index.d.ts +2 -0
  181. package/dist/components/data/MCalendarBoard/MCalendarBoard.d.ts +8 -7
  182. package/dist/components/data/MCalendarBoard/MCalendarBoard.types.d.ts +75 -6
  183. package/dist/components/data/MCalendarBoard/index.d.ts +2 -2
  184. package/dist/components/data/MDataTable/MDataTable.d.ts +1 -1
  185. package/dist/components/data/MDataTable/MDataTable.types.d.ts +23 -0
  186. package/dist/components/data/MTreeView/MTreeView.d.ts +1 -1
  187. package/dist/components/data/MTreeView/MTreeView.types.d.ts +11 -1
  188. package/dist/components/data/index.d.ts +2 -2
  189. package/dist/components/display/MBlur/MBlur.d.ts +2 -0
  190. package/dist/components/display/MBlur/MBlur.types.d.ts +13 -0
  191. package/dist/components/display/MBlur/index.d.ts +2 -0
  192. package/dist/components/display/MDetailList/MDetailList.d.ts +2 -0
  193. package/dist/components/display/MDetailList/MDetailList.types.d.ts +20 -0
  194. package/dist/components/display/MDetailList/index.d.ts +2 -0
  195. package/dist/components/display/index.d.ts +4 -0
  196. package/dist/components/inputs/MInputIBAN/MInputIBAN.types.d.ts +3 -3
  197. package/dist/components/inputs/MInputPhone/MInputPhone.types.d.ts +2 -0
  198. package/dist/components/layout/MAppMenu/MAppMenu.d.ts +2 -0
  199. package/dist/components/layout/MAppMenu/MAppMenu.types.d.ts +63 -0
  200. package/dist/components/layout/MAppMenu/index.d.ts +2 -0
  201. package/dist/components/layout/MGrid/MGrid.d.ts +2 -2
  202. package/dist/components/layout/MGrid/MGrid.types.d.ts +2 -0
  203. package/dist/components/layout/MInline/MInline.d.ts +1 -1
  204. package/dist/components/layout/MInline/MInline.types.d.ts +1 -1
  205. package/dist/components/layout/MSidebar/MSidebar.d.ts +1 -1
  206. package/dist/components/layout/MSidebar/MSidebar.types.d.ts +7 -0
  207. package/dist/components/layout/MStatGrid/MStatGrid.d.ts +2 -0
  208. package/dist/components/layout/MStatGrid/MStatGrid.types.d.ts +9 -0
  209. package/dist/components/layout/MStatGrid/index.d.ts +2 -0
  210. package/dist/components/layout/MSurface/MSurface.d.ts +1 -1
  211. package/dist/components/layout/MSurface/MSurface.types.d.ts +6 -1
  212. package/dist/components/layout/index.d.ts +6 -0
  213. package/dist/components/media/MGallery/MGallery.types.d.ts +5 -0
  214. package/dist/components/media/MMediaLightbox/MMediaLightbox.d.ts +1 -1
  215. package/dist/components/overlays/MCommandPalette/MCommandPalette.d.ts +2 -0
  216. package/dist/components/overlays/MCommandPalette/MCommandPalette.types.d.ts +35 -0
  217. package/dist/components/overlays/MCommandPalette/index.d.ts +2 -0
  218. package/dist/components/overlays/MTooltip/MTooltip.types.d.ts +2 -2
  219. package/dist/components/overlays/index.d.ts +2 -0
  220. package/dist/components/typography/MHeading/MHeading.d.ts +3 -3
  221. package/dist/{controls-DCtMOoQe.js → controls-BczTk73I.js} +141 -100
  222. package/dist/controls-BczTk73I.js.map +1 -0
  223. package/dist/controls-BfV0vxeJ.cjs +2 -0
  224. package/dist/controls-BfV0vxeJ.cjs.map +1 -0
  225. package/dist/controls.cjs +1 -1
  226. package/dist/controls.js +6 -6
  227. package/dist/cookie-consent-bootstrap.cjs +1 -1
  228. package/dist/cookie-consent-bootstrap.js +1 -1
  229. package/dist/{core-CB9-PTLK.js → core-BUYr52VU.js} +1 -1
  230. package/dist/{core-CB9-PTLK.js.map → core-BUYr52VU.js.map} +1 -1
  231. package/dist/{core-AKWkE8Bx.cjs → core-DAox0BHy.cjs} +1 -1
  232. package/dist/{core-AKWkE8Bx.cjs.map → core-DAox0BHy.cjs.map} +1 -1
  233. package/dist/{cpp-DyKt1H8n.cjs → cpp-D-FtdQo9.cjs} +1 -1
  234. package/dist/{cpp-DyKt1H8n.cjs.map → cpp-D-FtdQo9.cjs.map} +1 -1
  235. package/dist/{cpp-OOenfB17.js → cpp-Y9cHXDal.js} +1 -1
  236. package/dist/{cpp-OOenfB17.js.map → cpp-Y9cHXDal.js.map} +1 -1
  237. package/dist/creditCards-D_HwRUBz.cjs +2 -0
  238. package/dist/creditCards-D_HwRUBz.cjs.map +1 -0
  239. package/dist/{creditCards-CCysEwry.js → creditCards-D_iWmtG6.js} +14 -8
  240. package/dist/creditCards-D_iWmtG6.js.map +1 -0
  241. package/dist/{css-u5LSEAra.js → css-C__ffGj6.js} +1 -1
  242. package/dist/{css-u5LSEAra.js.map → css-C__ffGj6.js.map} +1 -1
  243. package/dist/{css-DxVbPJLu.cjs → css-DCYZ-Rs6.cjs} +1 -1
  244. package/dist/{css-DxVbPJLu.cjs.map → css-DCYZ-Rs6.cjs.map} +1 -1
  245. package/dist/data-7kG1MC1Z.cjs +2 -0
  246. package/dist/data-7kG1MC1Z.cjs.map +1 -0
  247. package/dist/{data-BiwK5rfx.js → data-z3e8XTSt.js} +1039 -874
  248. package/dist/data-z3e8XTSt.js.map +1 -0
  249. package/dist/data.cjs +1 -1
  250. package/dist/data.js +4 -4
  251. package/dist/display-Cw3-bTsm.cjs +3 -0
  252. package/dist/display-Cw3-bTsm.cjs.map +1 -0
  253. package/dist/{display-Zxj9YHu_.js → display-DyC7084n.js} +68 -41
  254. package/dist/display-DyC7084n.js.map +1 -0
  255. package/dist/display.cjs +1 -1
  256. package/dist/display.js +4 -4
  257. package/dist/dropdowns-6eO0b6eI.cjs +2 -0
  258. package/dist/dropdowns-6eO0b6eI.cjs.map +1 -0
  259. package/dist/{dropdowns-Bw8obCYl.js → dropdowns-zXgrjNXZ.js} +586 -559
  260. package/dist/dropdowns-zXgrjNXZ.js.map +1 -0
  261. package/dist/dropdowns.cjs +1 -1
  262. package/dist/dropdowns.js +1 -1
  263. package/dist/feedback-BvRmoSzV.cjs +2 -0
  264. package/dist/{feedback-Di0SEpRe.cjs.map → feedback-BvRmoSzV.cjs.map} +1 -1
  265. package/dist/{feedback-8H3bmQw5.js → feedback-DfBjzJAw.js} +299 -300
  266. package/dist/{feedback-8H3bmQw5.js.map → feedback-DfBjzJAw.js.map} +1 -1
  267. package/dist/feedback.cjs +1 -1
  268. package/dist/feedback.js +6 -7
  269. package/dist/{form-JHlvtP9r.js → form-BiPQ8SRK.js} +2 -2
  270. package/dist/{form-JHlvtP9r.js.map → form-BiPQ8SRK.js.map} +1 -1
  271. package/dist/{form-BYz99Py5.cjs → form-DlXWN2ul.cjs} +2 -2
  272. package/dist/{form-BYz99Py5.cjs.map → form-DlXWN2ul.cjs.map} +1 -1
  273. package/dist/form.cjs +1 -1
  274. package/dist/form.js +1 -1
  275. package/dist/frameworkTexts-BLJcGUXz.cjs +2 -0
  276. package/dist/frameworkTexts-BLJcGUXz.cjs.map +1 -0
  277. package/dist/{frameworkTexts-CvxcWRXp.js → frameworkTexts-BTFyhWFD.js} +3 -1
  278. package/dist/frameworkTexts-BTFyhWFD.js.map +1 -0
  279. package/dist/i18n/frameworkTexts.d.ts +2 -0
  280. package/dist/i18n.cjs +1 -1
  281. package/dist/icons-CfpYxnfg.js.map +1 -1
  282. package/dist/{icons-DWMgDKgt.cjs → icons-qCoE70hn.cjs} +2 -2
  283. package/dist/{icons-DWMgDKgt.cjs.map → icons-qCoE70hn.cjs.map} +1 -1
  284. package/dist/icons.cjs +1 -1
  285. package/dist/illustrations.cjs +1 -1
  286. package/dist/index.cjs +2 -1
  287. package/dist/index.cjs.map +1 -0
  288. package/dist/index.d.ts +4 -0
  289. package/dist/index.js +88 -53
  290. package/dist/index.js.map +1 -0
  291. package/dist/inputs-C1I1SLZ8.cjs +2 -0
  292. package/dist/inputs-C1I1SLZ8.cjs.map +1 -0
  293. package/dist/{inputs-Bcwd_UTr.js → inputs-Dy1WurNK.js} +556 -441
  294. package/dist/inputs-Dy1WurNK.js.map +1 -0
  295. package/dist/inputs.cjs +1 -1
  296. package/dist/inputs.js +5 -5
  297. package/dist/{javascript-CXjsxb-I.js → javascript-ClV78Svx.js} +1 -1
  298. package/dist/{javascript-CXjsxb-I.js.map → javascript-ClV78Svx.js.map} +1 -1
  299. package/dist/{javascript-CzjCTQxn.cjs → javascript-_Sr9cnsG.cjs} +1 -1
  300. package/dist/{javascript-CzjCTQxn.cjs.map → javascript-_Sr9cnsG.cjs.map} +1 -1
  301. package/dist/{json-9Qq5guN0.cjs → json-BFetU4Pi.cjs} +1 -1
  302. package/dist/{json-9Qq5guN0.cjs.map → json-BFetU4Pi.cjs.map} +1 -1
  303. package/dist/{json-CyV5VF8D.js → json-Dz6EkGZR.js} +1 -1
  304. package/dist/{json-CyV5VF8D.js.map → json-Dz6EkGZR.js.map} +1 -1
  305. package/dist/layout-D1-mF4xn.js +772 -0
  306. package/dist/layout-D1-mF4xn.js.map +1 -0
  307. package/dist/layout-Op6GWQ8w.cjs +2 -0
  308. package/dist/layout-Op6GWQ8w.cjs.map +1 -0
  309. package/dist/layout.cjs +1 -1
  310. package/dist/layout.js +8 -6
  311. package/dist/licensing-DmF0ObpG.cjs +2 -0
  312. package/dist/licensing-DmF0ObpG.cjs.map +1 -0
  313. package/dist/{licensing-CwzqhHH9.js → licensing-ZFCUU4Z8.js} +5 -1
  314. package/dist/licensing-ZFCUU4Z8.js.map +1 -0
  315. package/dist/{locale-CZyqh3ON.cjs → locale-Bz2JXxDZ.cjs} +2 -2
  316. package/dist/{locale-CZyqh3ON.cjs.map → locale-Bz2JXxDZ.cjs.map} +1 -1
  317. package/dist/{locale-JX_gX03k.js → locale-CS1-IY_I.js} +1 -1
  318. package/dist/{locale-JX_gX03k.js.map → locale-CS1-IY_I.js.map} +1 -1
  319. package/dist/media-DbToUupt.cjs +2 -0
  320. package/dist/media-DbToUupt.cjs.map +1 -0
  321. package/dist/{media-IM9mfVAn.js → media-DdChr0Cw.js} +7 -7
  322. package/dist/media-DdChr0Cw.js.map +1 -0
  323. package/dist/media.cjs +1 -1
  324. package/dist/media.js +3 -3
  325. package/dist/overlays-B0khU6Wb.js +392 -0
  326. package/dist/overlays-B0khU6Wb.js.map +1 -0
  327. package/dist/overlays-VAh5PqAe.cjs +2 -0
  328. package/dist/overlays-VAh5PqAe.cjs.map +1 -0
  329. package/dist/overlays.cjs +1 -1
  330. package/dist/overlays.js +6 -6
  331. package/dist/{php-deNqvHeU.js → php-5Erp5xxI.js} +1 -1
  332. package/dist/{php-deNqvHeU.js.map → php-5Erp5xxI.js.map} +1 -1
  333. package/dist/{php-Br75m0HU.cjs → php-jOdR0XS8.cjs} +1 -1
  334. package/dist/{php-Br75m0HU.cjs.map → php-jOdR0XS8.cjs.map} +1 -1
  335. package/dist/primitives.cjs +1 -1
  336. package/dist/style-runtime.cjs +1 -1
  337. package/dist/style-runtime.js +1 -1
  338. package/dist/styles.css +1 -1
  339. package/dist/{theme-CgS-bND3.cjs → theme-BaroO-OB.cjs} +2 -2
  340. package/dist/{theme-CgS-bND3.cjs.map → theme-BaroO-OB.cjs.map} +1 -1
  341. package/dist/theme.cjs +1 -1
  342. package/dist/{typescript-CRgqVaw_.cjs → typescript-C65sNL5w.cjs} +1 -1
  343. package/dist/{typescript-CRgqVaw_.cjs.map → typescript-C65sNL5w.cjs.map} +1 -1
  344. package/dist/{typescript-jNfCpQvl.js → typescript-wdQKWfxO.js} +1 -1
  345. package/dist/{typescript-jNfCpQvl.js.map → typescript-wdQKWfxO.js.map} +1 -1
  346. package/dist/{typography-BSBsn0f8.js → typography-CldwDFse.js} +2 -11
  347. package/dist/typography-CldwDFse.js.map +1 -0
  348. package/dist/typography-D7COsP1O.cjs +2 -0
  349. package/dist/typography-D7COsP1O.cjs.map +1 -0
  350. package/dist/typography.cjs +1 -1
  351. package/dist/typography.js +4 -3
  352. package/dist/{useGhostText-tv1LiSPs.cjs → useGhostText-Dg4P606B.cjs} +2 -2
  353. package/dist/{useGhostText-tv1LiSPs.cjs.map → useGhostText-Dg4P606B.cjs.map} +1 -1
  354. package/dist/{useInteractionEffect-D1ZdNbKU.cjs → useInteractionEffect-Bo8285cg.cjs} +2 -2
  355. package/dist/{useInteractionEffect-D1ZdNbKU.cjs.map → useInteractionEffect-Bo8285cg.cjs.map} +1 -1
  356. package/dist/{useKeyboardNav-CkIlAagq.cjs → useKeyboardNav-CyeQtqF8.cjs} +2 -2
  357. package/dist/{useKeyboardNav-CkIlAagq.cjs.map → useKeyboardNav-CyeQtqF8.cjs.map} +1 -1
  358. package/dist/utils/commandPaletteFromAppMenu.d.ts +42 -0
  359. package/dist/utils/creditCards.d.ts +1 -0
  360. package/dist/utils/licensing.d.ts +4 -0
  361. package/dist/utils/validators.d.ts +2 -0
  362. package/dist/utils.cjs +1 -1
  363. package/dist/utils.js +4 -4
  364. package/dist/{validators-H8tNxb8O.js → validators-D5OCyV2h.js} +23 -20
  365. package/dist/validators-D5OCyV2h.js.map +1 -0
  366. package/dist/{validators-BeNTD8mf.cjs → validators-DRhikiAi.cjs} +2 -2
  367. package/dist/validators-DRhikiAi.cjs.map +1 -0
  368. package/dist/{xml-C_ksWBRH.cjs → xml-B2okahIr.cjs} +1 -1
  369. package/dist/{xml-C_ksWBRH.cjs.map → xml-B2okahIr.cjs.map} +1 -1
  370. package/dist/{xml-0Th6YIDv.js → xml-a3b-XevT.js} +1 -1
  371. package/dist/{xml-0Th6YIDv.js.map → xml-a3b-XevT.js.map} +1 -1
  372. package/package.json +1 -1
  373. package/dist/MBadge-B4x-Lx7e.cjs +0 -2
  374. package/dist/MBadge-B4x-Lx7e.cjs.map +0 -1
  375. package/dist/MBadge-_BggwkrM.js +0 -19
  376. package/dist/MBadge-_BggwkrM.js.map +0 -1
  377. package/dist/MButton-DrkVdRDy.cjs +0 -2
  378. package/dist/MButton-DrkVdRDy.cjs.map +0 -1
  379. package/dist/MButton-y9qXhhGt.js.map +0 -1
  380. package/dist/MDataTable-Bx7W-Ari.cjs +0 -2
  381. package/dist/MDataTable-Bx7W-Ari.cjs.map +0 -1
  382. package/dist/MDataTable-ByvNQqNP.js +0 -149
  383. package/dist/MDataTable-ByvNQqNP.js.map +0 -1
  384. package/dist/MDropdownMenu-BmfXSc46.cjs +0 -2
  385. package/dist/MDropdownMenu-BmfXSc46.cjs.map +0 -1
  386. package/dist/MDropdownMenu-D79Cm5aS.js.map +0 -1
  387. package/dist/MImage-BKX-xBm3.js.map +0 -1
  388. package/dist/MImage-YbDKE-1t.cjs +0 -2
  389. package/dist/MImage-YbDKE-1t.cjs.map +0 -1
  390. package/dist/MInline-CHrh3PHH.cjs +0 -2
  391. package/dist/MInline-CHrh3PHH.cjs.map +0 -1
  392. package/dist/MInline-CoMhfX5V.js +0 -39
  393. package/dist/MInline-CoMhfX5V.js.map +0 -1
  394. package/dist/MInputCVC-5NkYSxV8.cjs +0 -2
  395. package/dist/MInputCVC-5NkYSxV8.cjs.map +0 -1
  396. package/dist/MInputCVC-BHpMHTO5.js.map +0 -1
  397. package/dist/MQrCode-ByfmG33y.cjs +0 -2
  398. package/dist/MQrCode-ByfmG33y.cjs.map +0 -1
  399. package/dist/MQrCode-CCtTkkv9.js.map +0 -1
  400. package/dist/MSkeleton-5j1h9s95.cjs +0 -2
  401. package/dist/MSkeleton-5j1h9s95.cjs.map +0 -1
  402. package/dist/MSkeleton-DGhtNmpI.js +0 -98
  403. package/dist/MSkeleton-DGhtNmpI.js.map +0 -1
  404. package/dist/MSparkline-B6qpt5WM.cjs +0 -2
  405. package/dist/MSparkline-B6qpt5WM.cjs.map +0 -1
  406. package/dist/MSparkline-voNWOLNz.js +0 -207
  407. package/dist/MSparkline-voNWOLNz.js.map +0 -1
  408. package/dist/MStack-Bh-R2opf.cjs +0 -2
  409. package/dist/MStack-Bh-R2opf.cjs.map +0 -1
  410. package/dist/MStack-CSaEbepM.js +0 -39
  411. package/dist/MStack-CSaEbepM.js.map +0 -1
  412. package/dist/MSurface-CpiV1-7f.cjs +0 -2
  413. package/dist/MSurface-CpiV1-7f.cjs.map +0 -1
  414. package/dist/MSurface-DJYSftdM.js +0 -39
  415. package/dist/MSurface-DJYSftdM.js.map +0 -1
  416. package/dist/cards-BiYdorB0.cjs +0 -2
  417. package/dist/cards-BiYdorB0.cjs.map +0 -1
  418. package/dist/cards-fn61xD_5.js +0 -1013
  419. package/dist/cards-fn61xD_5.js.map +0 -1
  420. package/dist/controls-C5PtrGZf.cjs +0 -2
  421. package/dist/controls-C5PtrGZf.cjs.map +0 -1
  422. package/dist/controls-DCtMOoQe.js.map +0 -1
  423. package/dist/creditCards-CCysEwry.js.map +0 -1
  424. package/dist/creditCards-ljs044xt.cjs +0 -2
  425. package/dist/creditCards-ljs044xt.cjs.map +0 -1
  426. package/dist/data-BiwK5rfx.js.map +0 -1
  427. package/dist/data-DOuPqg8d.cjs +0 -2
  428. package/dist/data-DOuPqg8d.cjs.map +0 -1
  429. package/dist/display-BafEcBK_.cjs +0 -3
  430. package/dist/display-BafEcBK_.cjs.map +0 -1
  431. package/dist/display-Zxj9YHu_.js.map +0 -1
  432. package/dist/dropdowns-Bw8obCYl.js.map +0 -1
  433. package/dist/dropdowns-DN7j1HhE.cjs +0 -2
  434. package/dist/dropdowns-DN7j1HhE.cjs.map +0 -1
  435. package/dist/feedback-Di0SEpRe.cjs +0 -2
  436. package/dist/frameworkTexts-CvxcWRXp.js.map +0 -1
  437. package/dist/frameworkTexts-abkS5XZK.cjs +0 -2
  438. package/dist/frameworkTexts-abkS5XZK.cjs.map +0 -1
  439. package/dist/inputs-Bcwd_UTr.js.map +0 -1
  440. package/dist/inputs-FP545Yri.cjs +0 -2
  441. package/dist/inputs-FP545Yri.cjs.map +0 -1
  442. package/dist/layout-BpEnTocp.js +0 -936
  443. package/dist/layout-BpEnTocp.js.map +0 -1
  444. package/dist/layout-rtlHrjDb.cjs +0 -2
  445. package/dist/layout-rtlHrjDb.cjs.map +0 -1
  446. package/dist/licensing-CwzqhHH9.js.map +0 -1
  447. package/dist/licensing-ezfo7ZTh.cjs +0 -2
  448. package/dist/licensing-ezfo7ZTh.cjs.map +0 -1
  449. package/dist/media-CiHsgOmu.cjs +0 -2
  450. package/dist/media-CiHsgOmu.cjs.map +0 -1
  451. package/dist/media-IM9mfVAn.js.map +0 -1
  452. package/dist/overlays-CGlqD3rl.js +0 -186
  453. package/dist/overlays-CGlqD3rl.js.map +0 -1
  454. package/dist/overlays-DrSGzbbA.cjs +0 -2
  455. package/dist/overlays-DrSGzbbA.cjs.map +0 -1
  456. package/dist/typography-BSBsn0f8.js.map +0 -1
  457. package/dist/typography-Zo4Usx9I.cjs +0 -2
  458. package/dist/typography-Zo4Usx9I.cjs.map +0 -1
  459. package/dist/validators-BeNTD8mf.cjs.map +0 -1
  460. package/dist/validators-H8tNxb8O.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MCookieBootstrap-CGvYxIK8.js","names":[],"sources":["../src/components/feedback/MCookie/MCookieConsentProvider/MCookieConsent.defaults.ts","../src/components/feedback/MCookie/MCookieConsentProvider/MCookieConsent.inventory.ts","../src/components/feedback/MCookie/MCookieConsentProvider/MCookieConsent.storage.ts","../src/components/feedback/MCookie/MCookieBootstrap/MCookieBootstrap.types.ts","../src/components/feedback/MCookie/MCookieBootstrap/MCookieBootstrap.ts"],"sourcesContent":["import type {MCookieConsentTexts} from '../../../../i18n/frameworkTexts'\nimport type {MCookieCategoryDefinition, MCookieConsentPersistence, MCookieDeclarationItem} from './MCookieConsent.types'\n\nexport const COOKIE_CONSENT_STORAGE_KEY = 'mineralui-cookie-consent'\nexport const COOKIE_CONSENT_COOKIE_NAME = 'mineralui-cookie-consent'\nexport const COOKIE_CONSENT_COOKIE_MAX_AGE_DAYS = 180\nexport const COOKIE_CONSENT_STORAGE: MCookieConsentPersistence = 'localStorage'\n\nexport function mergeCookieConsentTexts(\n baseTexts: MCookieConsentTexts,\n override?: Partial<MCookieConsentTexts>\n): MCookieConsentTexts {\n return {\n ...baseTexts,\n ...override,\n }\n}\n\nexport function createCookieConsentCategories(texts: MCookieConsentTexts): MCookieCategoryDefinition[] {\n return [\n {\n key: 'necessary',\n label: texts.necessaryLabel,\n description: texts.necessaryDescription,\n required: true,\n defaultValue: true,\n },\n {\n key: 'preferences',\n label: texts.preferencesLabel,\n description: texts.preferencesDescriptionLabel,\n defaultValue: false,\n },\n {\n key: 'analytics',\n label: texts.analyticsLabel,\n description: texts.analyticsDescription,\n defaultValue: false,\n },\n {\n key: 'marketing',\n label: texts.marketingLabel,\n description: texts.marketingDescription,\n defaultValue: false,\n },\n ]\n}\n\nexport function createCookieConsentDeclaration(): MCookieDeclarationItem[] {\n return []\n}\n","import {COOKIE_CONSENT_COOKIE_NAME} from './MCookieConsent.defaults'\nimport type {\n MCookieCategoryRules,\n MCookieDetectedCookie,\n MCookieDetectedCookieMatch,\n MCookieMatchRule,\n} from './MCookieConsent.types'\n\nconst INTERNAL_REQUIRED_COOKIE_RULES: MCookieMatchRule[] = [\n COOKIE_CONSENT_COOKIE_NAME,\n /^PHPSESSID$/i,\n /^JSESSIONID$/i,\n /^ASP\\.NET_SessionId$/i,\n /^__Host-/i,\n /^__Secure-/i,\n /csrf/i,\n /xsrf/i,\n /session/i,\n /auth/i,\n /token/i,\n /^sid$/i,\n]\n\nconst BUILT_IN_CATEGORY_RULES: Record<string, MCookieMatchRule[]> = {\n preferences: [/theme/i, /locale/i, /lang/i, /currency/i, /timezone/i, /consent/i],\n analytics: [/^_ga/i, /^_gid/i, /^_gat/i, /^_pk_/i, /^pk_/i, /^_hj/i, /^hj/i, /^amplitude/i, /^mp_/i, /^matomo/i],\n marketing: [/^_fbp$/i, /^_fbc$/i, /^_gcl_/i, /^IDE$/i, /^test_cookie$/i, /^li_/i, /^tt_/i, /^_uet/i, /^pin_utm/i],\n}\n\nfunction matchCookieRule(name: string, rule: MCookieMatchRule) {\n if (typeof rule === 'string') {\n const normalizedRule = rule.trim().toLowerCase()\n const normalizedName = name.trim().toLowerCase()\n\n if (normalizedRule.endsWith('*')) {\n return normalizedName.startsWith(normalizedRule.slice(0, -1))\n }\n\n return normalizedName === normalizedRule\n }\n\n return rule.test(name)\n}\n\nfunction matchCookieRules(name: string, rules?: MCookieMatchRule[]) {\n return Array.isArray(rules) && rules.some((rule) => matchCookieRule(name, rule))\n}\n\nfunction parseDocumentCookies(cookieString: string) {\n if (!cookieString.trim()) {\n return []\n }\n\n return cookieString\n .split(';')\n .map((chunk) => chunk.trim())\n .filter(Boolean)\n .map((chunk) => {\n const separatorIndex = chunk.indexOf('=')\n if (separatorIndex === -1) {\n return {\n name: chunk,\n value: '',\n }\n }\n\n return {\n name: chunk.slice(0, separatorIndex).trim(),\n value: chunk.slice(separatorIndex + 1).trim(),\n }\n })\n .filter((item) => item.name.length > 0)\n}\n\nfunction classifyCookie(\n name: string,\n requiredCookies: MCookieMatchRule[],\n categoryRules: MCookieCategoryRules\n): Pick<MCookieDetectedCookie, 'category' | 'required' | 'matchedBy'> {\n if (matchCookieRules(name, [...INTERNAL_REQUIRED_COOKIE_RULES, ...requiredCookies])) {\n return {\n category: 'necessary',\n required: true,\n matchedBy: 'required',\n }\n }\n\n for (const [category, rules] of Object.entries(categoryRules)) {\n if (matchCookieRules(name, rules)) {\n return {\n category,\n required: false,\n matchedBy: 'custom',\n }\n }\n }\n\n for (const [category, rules] of Object.entries(BUILT_IN_CATEGORY_RULES)) {\n if (matchCookieRules(name, rules)) {\n return {\n category,\n required: false,\n matchedBy: 'built-in',\n }\n }\n }\n\n return {\n category: 'preferences',\n required: false,\n matchedBy: 'fallback',\n }\n}\n\nexport function detectDocumentCookies({\n cookieString,\n requiredCookies = [],\n categoryRules = {},\n}: {\n cookieString?: string\n requiredCookies?: MCookieMatchRule[]\n categoryRules?: MCookieCategoryRules\n}) {\n const source = cookieString ?? (typeof document !== 'undefined' ? document.cookie : '')\n\n return parseDocumentCookies(source).map<MCookieDetectedCookie>((item) => {\n const classification = classifyCookie(item.name, requiredCookies, categoryRules)\n\n return {\n name: item.name,\n value: item.value,\n category: classification.category,\n required: classification.required,\n matchedBy: classification.matchedBy as MCookieDetectedCookieMatch,\n source: 'document.cookie',\n }\n })\n}\n","import type {MCookieConsentPersistence, MCookieConsentState} from './MCookieConsent.types'\n\ninterface CookieConsentStorageOptions {\n storage: MCookieConsentPersistence\n storageKey: string\n cookieName: string\n cookieMaxAgeDays: number\n}\n\nfunction isCookieConsentState(value: unknown): value is MCookieConsentState {\n if (!value || typeof value !== 'object') {\n return false\n }\n\n const candidate = value as MCookieConsentState\n\n return (\n typeof candidate.version === 'string' &&\n typeof candidate.decidedAt === 'string' &&\n typeof candidate.source === 'string' &&\n candidate.categories != null &&\n typeof candidate.categories === 'object'\n )\n}\n\nfunction readCookieValue(name: string): string | null {\n if (typeof document === 'undefined') {\n return null\n }\n\n const prefix = `${encodeURIComponent(name)}=`\n\n for (const chunk of document.cookie.split(';')) {\n const trimmed = chunk.trim()\n if (trimmed.startsWith(prefix)) {\n return decodeURIComponent(trimmed.slice(prefix.length))\n }\n }\n\n return null\n}\n\nfunction writeCookieValue(name: string, value: string, maxAgeDays: number) {\n if (typeof document === 'undefined') {\n return\n }\n\n document.cookie = `${encodeURIComponent(name)}=${encodeURIComponent(value)}; path=/; max-age=${Math.floor(\n maxAgeDays * 24 * 60 * 60\n )}; samesite=lax`\n}\n\nfunction clearCookieValue(name: string) {\n if (typeof document === 'undefined') {\n return\n }\n\n document.cookie = `${encodeURIComponent(name)}=; path=/; max-age=0; samesite=lax`\n}\n\nexport function readStoredCookieConsent({\n storage,\n storageKey,\n cookieName,\n}: Pick<CookieConsentStorageOptions, 'storage' | 'storageKey' | 'cookieName'>): MCookieConsentState | null {\n try {\n const raw = storage === 'cookie' ? readCookieValue(cookieName) : localStorage.getItem(storageKey)\n if (!raw) {\n return null\n }\n\n const parsed = JSON.parse(raw) as unknown\n return isCookieConsentState(parsed) ? parsed : null\n } catch {\n return null\n }\n}\n\nexport function writeStoredCookieConsent(\n {storage, storageKey, cookieName, cookieMaxAgeDays}: CookieConsentStorageOptions,\n state: MCookieConsentState\n) {\n try {\n const serialized = JSON.stringify(state)\n\n if (storage === 'cookie') {\n writeCookieValue(cookieName, serialized, cookieMaxAgeDays)\n return\n }\n\n localStorage.setItem(storageKey, serialized)\n } catch {\n /* noop */\n }\n}\n\nexport function clearStoredCookieConsent({\n storage,\n storageKey,\n cookieName,\n}: Pick<CookieConsentStorageOptions, 'storage' | 'storageKey' | 'cookieName'>) {\n try {\n if (storage === 'cookie') {\n clearCookieValue(cookieName)\n return\n }\n\n localStorage.removeItem(storageKey)\n } catch {\n /* noop */\n }\n}\n","import type {\n MCookieCategoryDefinition,\n MCookieConsentPersistence,\n MCookieConsentState,\n MCookieDeclarationItem,\n} from '../MCookieConsentProvider'\n\nexport const MCOOKIE_CONSENT_CHANGE_EVENT = 'mineralui:cookie-consent-change'\nexport const MCOOKIE_BOOTSTRAP_CONFIG_KEY = '__MINERAL_COOKIE_CONFIG__'\nexport const MCOOKIE_RUNTIME_KEY = '__MINERAL_COOKIE_RUNTIME__'\nexport const MCOOKIE_RUNTIME_READY_EVENT = 'mineralui:cookie-runtime-ready'\n\nexport type MCookieBootstrapResourceKind = 'script' | 'iframe' | 'image'\n\nexport interface MCookieBootstrapResourceRules {\n scripts?: Record<string, string[]>\n iframes?: Record<string, string[]>\n images?: Record<string, string[]>\n}\n\nexport interface MCookieBootstrapScanOptions {\n cookies?: boolean\n storage?: boolean\n scripts?: boolean\n iframes?: boolean\n images?: boolean\n}\n\nexport interface MCookieBootstrapConfig {\n siteKey?: string\n domain?: string\n version?: string\n storage?: MCookieConsentPersistence\n storageKey?: string\n cookieName?: string\n cookieMaxAgeDays?: number\n categories?: MCookieCategoryDefinition[]\n hideOnAccept?: boolean\n autoShow?: boolean\n reopenOnVersionChange?: boolean\n requiredCookies?: string[]\n categoryRules?: Record<string, string[]>\n resources?: MCookieBootstrapResourceRules\n scan?: MCookieBootstrapScanOptions\n configEndpoint?: string\n scanEndpoint?: string\n reportEndpoint?: string\n reportMethod?: 'POST' | 'PUT'\n reportHeaders?: Record<string, string>\n}\n\nexport interface MCookieRuntime {\n config: MCookieBootstrapConfig\n getDeclaration?: () => Promise<MCookieDeclarationItem[]>\n getConsent?: () => Promise<MCookieConsentState | null>\n saveConsent?: (state: MCookieConsentState) => void | Promise<void>\n}\n\nexport interface MCookieBootstrapChangeDetail {\n state: MCookieConsentState | null\n}\n\nexport interface MCookieScanStorageItem {\n kind: 'localStorage' | 'sessionStorage'\n key: string\n value: string\n}\n\nexport interface MCookieScanResourceItem {\n kind: MCookieBootstrapResourceKind\n src: string\n host: string\n category?: string\n}\n\nexport interface MCookieScanCookieItem {\n name: string\n value: string\n category: string\n required: boolean\n matchedBy: string\n source: string\n}\n\nexport interface MCookieScanReport {\n siteKey?: string\n domain: string\n url: string\n scannedAt: string\n cookies: MCookieScanCookieItem[]\n storage: MCookieScanStorageItem[]\n resources: MCookieScanResourceItem[]\n}\n\nexport interface MCookieBootstrapHandle {\n config: MCookieBootstrapConfig\n destroy: () => void\n getState: () => MCookieConsentState | null\n sync: (state?: MCookieConsentState | null) => void\n}\n\ndeclare global {\n interface Window {\n __MINERAL_COOKIE_CONFIG__?: MCookieBootstrapConfig\n __MINERAL_COOKIE_RUNTIME__?: MCookieRuntime\n MineralCookieConsentBootstrap?: MCookieBootstrapHandle\n }\n}\n","import {detectDocumentCookies} from '../MCookieConsentProvider/MCookieConsent.inventory'\nimport {\n COOKIE_CONSENT_COOKIE_NAME,\n COOKIE_CONSENT_STORAGE,\n COOKIE_CONSENT_STORAGE_KEY,\n} from '../MCookieConsentProvider/MCookieConsent.defaults'\nimport {readStoredCookieConsent} from '../MCookieConsentProvider/MCookieConsent.storage'\nimport type {MCookieConsentState} from '../MCookieConsentProvider'\nimport {MCOOKIE_BOOTSTRAP_CONFIG_KEY, MCOOKIE_CONSENT_CHANGE_EVENT} from './MCookieBootstrap.types'\nimport type {\n MCookieBootstrapConfig,\n MCookieBootstrapHandle,\n MCookieBootstrapResourceKind,\n MCookieScanReport,\n MCookieScanResourceItem,\n MCookieScanStorageItem,\n} from './MCookieBootstrap.types'\n\nconst CATEGORY_ATTRIBUTE = 'data-mineral-cookie-category'\nconst BLOCKED_ATTRIBUTE = 'data-mineral-cookie-blocked'\nconst SRC_ATTRIBUTE = 'data-mineral-cookie-src'\nconst TYPE_ATTRIBUTE = 'data-mineral-cookie-type'\n\nfunction toPatternRegExp(pattern: string) {\n const escaped = pattern.replace(/[.+?^${}()|[\\]\\\\]/g, '\\\\$&').replace(/\\*/g, '.*')\n return new RegExp(`^${escaped}$`, 'i')\n}\n\nfunction matchesPattern(value: string, pattern: string) {\n return toPatternRegExp(pattern).test(value)\n}\n\nfunction getElementSource(node: Element) {\n if (node instanceof HTMLScriptElement || node instanceof HTMLIFrameElement || node instanceof HTMLImageElement) {\n return node.getAttribute('src') ?? node.getAttribute(SRC_ATTRIBUTE) ?? ''\n }\n\n return ''\n}\n\nfunction getSourceHost(src: string) {\n try {\n return new URL(src, window.location.href).hostname\n } catch {\n return ''\n }\n}\n\nfunction getConsentState(config: MCookieBootstrapConfig) {\n return readStoredCookieConsent({\n storage: config.storage ?? COOKIE_CONSENT_STORAGE,\n storageKey: config.storageKey ?? COOKIE_CONSENT_STORAGE_KEY,\n cookieName: config.cookieName ?? COOKIE_CONSENT_COOKIE_NAME,\n })\n}\n\nfunction isCategoryAllowed(state: MCookieConsentState | null, category: string) {\n if (category === 'necessary') {\n return true\n }\n\n return state?.categories?.[category] === true\n}\n\nfunction findMatchedCategory(node: Element, config: MCookieBootstrapConfig) {\n const explicitCategory = node.getAttribute(CATEGORY_ATTRIBUTE)\n if (explicitCategory) {\n return explicitCategory\n }\n\n const src = getElementSource(node)\n if (!src) {\n return null\n }\n\n const host = getSourceHost(src)\n if (!host) {\n return null\n }\n\n const kind: MCookieBootstrapResourceKind | null =\n node instanceof HTMLScriptElement\n ? 'script'\n : node instanceof HTMLIFrameElement\n ? 'iframe'\n : node instanceof HTMLImageElement\n ? 'image'\n : null\n\n if (!kind) {\n return null\n }\n\n const rules =\n kind === 'script'\n ? config.resources?.scripts\n : kind === 'iframe'\n ? config.resources?.iframes\n : config.resources?.images\n\n if (!rules) {\n return null\n }\n\n for (const [category, patterns] of Object.entries(rules)) {\n if (patterns.some((pattern) => matchesPattern(host, pattern) || matchesPattern(src, pattern))) {\n node.setAttribute(CATEGORY_ATTRIBUTE, category)\n return category\n }\n }\n\n return null\n}\n\nfunction blockNode(node: Element) {\n if (node.getAttribute(BLOCKED_ATTRIBUTE) === 'true') {\n return\n }\n\n if (node instanceof HTMLScriptElement) {\n const currentType = node.getAttribute('type') ?? ''\n const src = node.getAttribute('src')\n if (src) {\n node.setAttribute(SRC_ATTRIBUTE, src)\n node.removeAttribute('src')\n }\n\n node.setAttribute(TYPE_ATTRIBUTE, currentType === 'text/plain' ? '' : currentType)\n node.type = 'text/plain'\n node.setAttribute(BLOCKED_ATTRIBUTE, 'true')\n return\n }\n\n if (node instanceof HTMLIFrameElement || node instanceof HTMLImageElement) {\n const src = node.getAttribute('src')\n if (src) {\n node.setAttribute(SRC_ATTRIBUTE, src)\n node.removeAttribute('src')\n }\n\n node.setAttribute(BLOCKED_ATTRIBUTE, 'true')\n }\n}\n\nfunction activateScript(node: HTMLScriptElement) {\n const src = node.getAttribute(SRC_ATTRIBUTE)\n const clone = document.createElement('script')\n\n for (const attribute of node.getAttributeNames()) {\n if (\n attribute === 'type' ||\n attribute === BLOCKED_ATTRIBUTE ||\n attribute === SRC_ATTRIBUTE ||\n attribute === TYPE_ATTRIBUTE\n ) {\n continue\n }\n\n clone.setAttribute(attribute, node.getAttribute(attribute) ?? '')\n }\n\n const originalType = node.getAttribute(TYPE_ATTRIBUTE)\n if (originalType) {\n clone.type = originalType\n }\n\n if (src) {\n clone.src = src\n } else {\n clone.textContent = node.textContent\n }\n\n node.replaceWith(clone)\n}\n\nfunction activateNode(node: Element) {\n if (node instanceof HTMLScriptElement) {\n const canActivate =\n node.getAttribute(BLOCKED_ATTRIBUTE) === 'true' ||\n (node.type === 'text/plain' && node.hasAttribute(CATEGORY_ATTRIBUTE))\n\n if (!canActivate) {\n return\n }\n\n activateScript(node)\n return\n }\n\n if (node instanceof HTMLIFrameElement || node instanceof HTMLImageElement) {\n if (node.getAttribute(BLOCKED_ATTRIBUTE) !== 'true' && !node.hasAttribute(SRC_ATTRIBUTE)) {\n return\n }\n\n const src = node.getAttribute(SRC_ATTRIBUTE)\n if (src) {\n node.setAttribute('src', src)\n }\n\n node.removeAttribute(SRC_ATTRIBUTE)\n node.removeAttribute(BLOCKED_ATTRIBUTE)\n }\n}\n\nfunction collectCandidateNodes(root: ParentNode) {\n const directNodes: Element[] = []\n\n if (root instanceof Element) {\n directNodes.push(root)\n }\n\n const nestedNodes = Array.from(root.querySelectorAll('script, iframe, img'))\n return [...directNodes, ...nestedNodes]\n}\n\nfunction syncNode(node: Element, state: MCookieConsentState | null, config: MCookieBootstrapConfig) {\n const category = findMatchedCategory(node, config)\n if (!category) {\n return\n }\n\n if (isCategoryAllowed(state, category)) {\n activateNode(node)\n return\n }\n\n blockNode(node)\n}\n\nfunction syncDocument(state: MCookieConsentState | null, config: MCookieBootstrapConfig) {\n for (const node of collectCandidateNodes(document)) {\n syncNode(node, state, config)\n }\n}\n\nfunction patchDomInsertion(getState: () => MCookieConsentState | null, config: MCookieBootstrapConfig) {\n const appendChild = Node.prototype.appendChild\n const insertBefore = Node.prototype.insertBefore\n const replaceChild = Node.prototype.replaceChild\n\n Node.prototype.appendChild = function patchedAppendChild<T extends Node>(node: T) {\n if (node instanceof Element) {\n for (const element of collectCandidateNodes(node)) {\n syncNode(element, getState(), config)\n }\n }\n\n return appendChild.call(this, node) as T\n }\n\n Node.prototype.insertBefore = function patchedInsertBefore<T extends Node>(node: T, child: Node | null) {\n if (node instanceof Element) {\n for (const element of collectCandidateNodes(node)) {\n syncNode(element, getState(), config)\n }\n }\n\n return insertBefore.call(this, node, child) as T\n }\n\n Node.prototype.replaceChild = function patchedReplaceChild<T extends Node>(node: Node, child: T) {\n if (node instanceof Element) {\n for (const element of collectCandidateNodes(node)) {\n syncNode(element, getState(), config)\n }\n }\n\n return replaceChild.call(this, node, child) as T\n }\n\n return () => {\n Node.prototype.appendChild = appendChild\n Node.prototype.insertBefore = insertBefore\n Node.prototype.replaceChild = replaceChild\n }\n}\n\nfunction scanStorage(storage: Storage, kind: 'localStorage' | 'sessionStorage') {\n const items: MCookieScanStorageItem[] = []\n\n try {\n for (let index = 0; index < storage.length; index += 1) {\n const key = storage.key(index)\n if (!key) {\n continue\n }\n\n items.push({\n kind,\n key,\n value: storage.getItem(key) ?? '',\n })\n }\n } catch {\n return []\n }\n\n return items\n}\n\nexport function readMCookieBootstrapConfig(config?: MCookieBootstrapConfig | null) {\n if (config) {\n return config\n }\n\n if (typeof window === 'undefined') {\n return null\n }\n\n return window[MCOOKIE_BOOTSTRAP_CONFIG_KEY] ?? null\n}\n\nexport function scanMCookieSurface(config?: MCookieBootstrapConfig | null): MCookieScanReport | null {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return null\n }\n\n const resolvedConfig = readMCookieBootstrapConfig(config)\n if (!resolvedConfig) {\n return null\n }\n\n const scan = resolvedConfig.scan ?? {}\n const storageItems: MCookieScanStorageItem[] = []\n const resources: MCookieScanResourceItem[] = []\n\n if (scan.storage !== false) {\n storageItems.push(...scanStorage(window.localStorage, 'localStorage'))\n storageItems.push(...scanStorage(window.sessionStorage, 'sessionStorage'))\n }\n\n const resourceSelectors: Array<[boolean, string, MCookieBootstrapResourceKind]> = [\n [scan.scripts !== false, 'script[src], script[data-mineral-cookie-src]', 'script'],\n [scan.iframes !== false, 'iframe[src], iframe[data-mineral-cookie-src]', 'iframe'],\n [scan.images !== false, 'img[src], img[data-mineral-cookie-src]', 'image'],\n ]\n\n for (const [enabled, selector, kind] of resourceSelectors) {\n if (!enabled) {\n continue\n }\n\n for (const node of Array.from(document.querySelectorAll(selector))) {\n const src = getElementSource(node)\n if (!src) {\n continue\n }\n\n resources.push({\n kind,\n src,\n host: getSourceHost(src),\n category: node.getAttribute(CATEGORY_ATTRIBUTE) ?? undefined,\n })\n }\n }\n\n return {\n siteKey: resolvedConfig.siteKey,\n domain: resolvedConfig.domain ?? window.location.hostname,\n url: window.location.href,\n scannedAt: new Date().toISOString(),\n cookies:\n scan.cookies === false\n ? []\n : detectDocumentCookies({\n requiredCookies: resolvedConfig.requiredCookies ?? [],\n categoryRules: resolvedConfig.categoryRules ?? {},\n }).map((item) => ({\n ...item,\n matchedBy: item.matchedBy,\n source: item.source,\n })),\n storage: storageItems,\n resources,\n }\n}\n\nexport async function reportMCookieSurface(config?: MCookieBootstrapConfig | null, report?: MCookieScanReport | null) {\n const resolvedConfig = readMCookieBootstrapConfig(config)\n const endpoint = resolvedConfig?.scanEndpoint ?? resolvedConfig?.reportEndpoint\n\n if (!endpoint || typeof fetch === 'undefined') {\n return report ?? null\n }\n\n if (!resolvedConfig) {\n return report ?? null\n }\n\n const payload = report ?? scanMCookieSurface(resolvedConfig)\n if (!payload) {\n return null\n }\n\n await fetch(endpoint, {\n method: resolvedConfig.reportMethod ?? 'POST',\n headers: {\n 'content-type': 'application/json',\n ...(resolvedConfig.siteKey ? {'x-mineral-site-key': resolvedConfig.siteKey} : {}),\n ...resolvedConfig.reportHeaders,\n },\n body: JSON.stringify(payload),\n })\n\n return payload\n}\n\nexport function bootstrapMCookieConsent(config?: MCookieBootstrapConfig | null): MCookieBootstrapHandle | null {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return null\n }\n\n const resolvedConfig = readMCookieBootstrapConfig(config)\n if (!resolvedConfig) {\n return null\n }\n\n let state = getConsentState(resolvedConfig)\n let reportTimer: number | null = null\n let followUpReportTimer: number | null = null\n\n const clearReportTimers = () => {\n if (reportTimer != null) {\n window.clearTimeout(reportTimer)\n reportTimer = null\n }\n\n if (followUpReportTimer != null) {\n window.clearTimeout(followUpReportTimer)\n followUpReportTimer = null\n }\n }\n\n const scheduleReport = (primaryDelay = 0, followUpDelay?: number) => {\n if (!resolvedConfig.scanEndpoint && !resolvedConfig.reportEndpoint) {\n return\n }\n\n clearReportTimers()\n\n reportTimer = window.setTimeout(() => {\n reportTimer = null\n void reportMCookieSurface(resolvedConfig)\n }, primaryDelay)\n\n if (typeof followUpDelay === 'number') {\n followUpReportTimer = window.setTimeout(() => {\n followUpReportTimer = null\n void reportMCookieSurface(resolvedConfig)\n }, followUpDelay)\n }\n }\n\n const sync = (nextState?: MCookieConsentState | null) => {\n state = nextState === undefined ? getConsentState(resolvedConfig) : nextState\n syncDocument(state, resolvedConfig)\n }\n\n sync(state)\n\n const observer = new MutationObserver((records) => {\n for (const record of records) {\n for (const node of Array.from(record.addedNodes)) {\n if (!(node instanceof Element)) {\n continue\n }\n\n for (const element of collectCandidateNodes(node)) {\n syncNode(element, state, resolvedConfig)\n }\n }\n }\n })\n\n observer.observe(document.documentElement, {\n childList: true,\n subtree: true,\n })\n\n const handleConsentChange = (event: Event) => {\n const detail = (event as CustomEvent<{state: MCookieConsentState | null}>).detail\n sync(detail?.state ?? null)\n scheduleReport(300, 1500)\n }\n\n window.addEventListener(MCOOKIE_CONSENT_CHANGE_EVENT, handleConsentChange)\n\n const restoreDom = patchDomInsertion(() => state, resolvedConfig)\n\n const handleWindowLoad = () => {\n scheduleReport()\n }\n\n if (document.readyState === 'complete') {\n handleWindowLoad()\n } else {\n window.addEventListener('load', handleWindowLoad, {once: true})\n }\n\n const handle: MCookieBootstrapHandle = {\n config: resolvedConfig,\n destroy: () => {\n observer.disconnect()\n restoreDom()\n clearReportTimers()\n window.removeEventListener('load', handleWindowLoad)\n window.removeEventListener(MCOOKIE_CONSENT_CHANGE_EVENT, handleConsentChange)\n if (window.MineralCookieConsentBootstrap === handle) {\n delete window.MineralCookieConsentBootstrap\n }\n },\n getState: () => state,\n sync,\n }\n\n window.MineralCookieConsentBootstrap = handle\n return handle\n}\n\nexport function autoBootstrapMCookieConsent() {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return null\n }\n\n return bootstrapMCookieConsent(readMCookieBootstrapConfig())\n}\n"],"mappings":";AAGA,IAAa,IAA6B,4BAC7B,IAA6B,4BAE7B,IAAoD;AAEjE,SAAgB,EACZ,GACA,GACmB;AACnB,QAAO;EACH,GAAG;EACH,GAAG;EACN;;AAGL,SAAgB,EAA8B,GAAyD;AACnG,QAAO;EACH;GACI,KAAK;GACL,OAAO,EAAM;GACb,aAAa,EAAM;GACnB,UAAU;GACV,cAAc;GACjB;EACD;GACI,KAAK;GACL,OAAO,EAAM;GACb,aAAa,EAAM;GACnB,cAAc;GACjB;EACD;GACI,KAAK;GACL,OAAO,EAAM;GACb,aAAa,EAAM;GACnB,cAAc;GACjB;EACD;GACI,KAAK;GACL,OAAO,EAAM;GACb,aAAa,EAAM;GACnB,cAAc;GACjB;EACJ;;AAGL,SAAgB,IAA2D;AACvE,QAAO,EAAE;;;;ACzCb,IAAM,IAAqD;CACvD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACH,EAEK,IAA8D;CAChE,aAAa;EAAC;EAAU;EAAW;EAAS;EAAa;EAAa;EAAW;CACjF,WAAW;EAAC;EAAS;EAAU;EAAU;EAAU;EAAS;EAAS;EAAQ;EAAe;EAAS;EAAW;CAChH,WAAW;EAAC;EAAW;EAAW;EAAW;EAAU;EAAkB;EAAS;EAAS;EAAU;EAAY;CACpH;AAED,SAAS,EAAgB,GAAc,GAAwB;AAC3D,KAAI,OAAO,KAAS,UAAU;EAC1B,IAAM,IAAiB,EAAK,MAAM,CAAC,aAAa,EAC1C,IAAiB,EAAK,MAAM,CAAC,aAAa;AAMhD,SAJI,EAAe,SAAS,IAAI,GACrB,EAAe,WAAW,EAAe,MAAM,GAAG,GAAG,CAAC,GAG1D,MAAmB;;AAG9B,QAAO,EAAK,KAAK,EAAK;;AAG1B,SAAS,EAAiB,GAAc,GAA4B;AAChE,QAAO,MAAM,QAAQ,EAAM,IAAI,EAAM,MAAM,MAAS,EAAgB,GAAM,EAAK,CAAC;;AAGpF,SAAS,EAAqB,GAAsB;AAKhD,QAJK,EAAa,MAAM,GAIjB,EACF,MAAM,IAAI,CACV,KAAK,MAAU,EAAM,MAAM,CAAC,CAC5B,OAAO,QAAQ,CACf,KAAK,MAAU;EACZ,IAAM,IAAiB,EAAM,QAAQ,IAAI;AAQzC,SAPI,MAAmB,KACZ;GACH,MAAM;GACN,OAAO;GACV,GAGE;GACH,MAAM,EAAM,MAAM,GAAG,EAAe,CAAC,MAAM;GAC3C,OAAO,EAAM,MAAM,IAAiB,EAAE,CAAC,MAAM;GAChD;GACH,CACD,QAAQ,MAAS,EAAK,KAAK,SAAS,EAAE,GArBhC,EAAE;;AAwBjB,SAAS,EACL,GACA,GACA,GACkE;AAClE,KAAI,EAAiB,GAAM,CAAC,GAAG,GAAgC,GAAG,EAAgB,CAAC,CAC/E,QAAO;EACH,UAAU;EACV,UAAU;EACV,WAAW;EACd;AAGL,MAAK,IAAM,CAAC,GAAU,MAAU,OAAO,QAAQ,EAAc,CACzD,KAAI,EAAiB,GAAM,EAAM,CAC7B,QAAO;EACH;EACA,UAAU;EACV,WAAW;EACd;AAIT,MAAK,IAAM,CAAC,GAAU,MAAU,OAAO,QAAQ,EAAwB,CACnE,KAAI,EAAiB,GAAM,EAAM,CAC7B,QAAO;EACH;EACA,UAAU;EACV,WAAW;EACd;AAIT,QAAO;EACH,UAAU;EACV,UAAU;EACV,WAAW;EACd;;AAGL,SAAgB,EAAsB,EAClC,iBACA,qBAAkB,EAAE,EACpB,mBAAgB,EAAE,IAKnB;AAGC,QAAO,EAFQ,MAAiB,OAAO,WAAa,MAAc,SAAS,SAAS,IAEjD,CAAC,KAA4B,MAAS;EACrE,IAAM,IAAiB,EAAe,EAAK,MAAM,GAAiB,EAAc;AAEhF,SAAO;GACH,MAAM,EAAK;GACX,OAAO,EAAK;GACZ,UAAU,EAAe;GACzB,UAAU,EAAe;GACzB,WAAW,EAAe;GAC1B,QAAQ;GACX;GACH;;;;AC/HN,SAAS,EAAqB,GAA8C;AACxE,KAAI,CAAC,KAAS,OAAO,KAAU,SAC3B,QAAO;CAGX,IAAM,IAAY;AAElB,QACI,OAAO,EAAU,WAAY,YAC7B,OAAO,EAAU,aAAc,YAC/B,OAAO,EAAU,UAAW,YAC5B,EAAU,cAAc,QACxB,OAAO,EAAU,cAAe;;AAIxC,SAAS,EAAgB,GAA6B;AAClD,KAAI,OAAO,WAAa,IACpB,QAAO;CAGX,IAAM,IAAS,GAAG,mBAAmB,EAAK,CAAC;AAE3C,MAAK,IAAM,KAAS,SAAS,OAAO,MAAM,IAAI,EAAE;EAC5C,IAAM,IAAU,EAAM,MAAM;AAC5B,MAAI,EAAQ,WAAW,EAAO,CAC1B,QAAO,mBAAmB,EAAQ,MAAM,EAAO,OAAO,CAAC;;AAI/D,QAAO;;AAGX,SAAS,EAAiB,GAAc,GAAe,GAAoB;AACnE,QAAO,WAAa,QAIxB,SAAS,SAAS,GAAG,mBAAmB,EAAK,CAAC,GAAG,mBAAmB,EAAM,CAAC,oBAAoB,KAAK,MAChG,IAAa,KAAK,KAAK,GAC1B,CAAC;;AAGN,SAAS,EAAiB,GAAc;AAChC,QAAO,WAAa,QAIxB,SAAS,SAAS,GAAG,mBAAmB,EAAK,CAAC;;AAGlD,SAAgB,EAAwB,EACpC,YACA,eACA,iBACuG;AACvG,KAAI;EACA,IAAM,IAAM,MAAY,WAAW,EAAgB,EAAW,GAAG,aAAa,QAAQ,EAAW;AACjG,MAAI,CAAC,EACD,QAAO;EAGX,IAAM,IAAS,KAAK,MAAM,EAAI;AAC9B,SAAO,EAAqB,EAAO,GAAG,IAAS;SAC3C;AACJ,SAAO;;;AAIf,SAAgB,EACZ,EAAC,YAAS,eAAY,eAAY,uBAClC,GACF;AACE,KAAI;EACA,IAAM,IAAa,KAAK,UAAU,EAAM;AAExC,MAAI,MAAY,UAAU;AACtB,KAAiB,GAAY,GAAY,EAAiB;AAC1D;;AAGJ,eAAa,QAAQ,GAAY,EAAW;SACxC;;AAKZ,SAAgB,EAAyB,EACrC,YACA,eACA,iBAC2E;AAC3E,KAAI;AACA,MAAI,MAAY,UAAU;AACtB,KAAiB,EAAW;AAC5B;;AAGJ,eAAa,WAAW,EAAW;SAC/B;;;;ACrGZ,IAAa,IAA+B,mCAC/B,IAA+B,6BAC/B,IAAsB,8BACtB,IAA8B,kCCQrC,IAAqB,gCACrB,IAAoB,+BACpB,IAAgB,2BAChB,IAAiB;AAEvB,SAAS,EAAgB,GAAiB;CACtC,IAAM,IAAU,EAAQ,QAAQ,sBAAsB,OAAO,CAAC,QAAQ,OAAO,KAAK;AAClF,QAAW,OAAO,IAAI,EAAQ,IAAI,IAAI;;AAG1C,SAAS,EAAe,GAAe,GAAiB;AACpD,QAAO,EAAgB,EAAQ,CAAC,KAAK,EAAM;;AAG/C,SAAS,EAAiB,GAAe;AAKrC,QAJI,aAAgB,qBAAqB,aAAgB,qBAAqB,aAAgB,mBACnF,EAAK,aAAa,MAAM,IAAI,EAAK,aAAa,EAAc,IAAI,KAGpE;;AAGX,SAAS,EAAc,GAAa;AAChC,KAAI;AACA,SAAO,IAAI,IAAI,GAAK,OAAO,SAAS,KAAK,CAAC;SACtC;AACJ,SAAO;;;AAIf,SAAS,EAAgB,GAAgC;AACrD,QAAO,EAAwB;EAC3B,SAAS,EAAO,WAAA;EAChB,YAAY,EAAO,cAAA;EACnB,YAAY,EAAO,cAAA;EACtB,CAAC;;AAGN,SAAS,EAAkB,GAAmC,GAAkB;AAK5E,QAJI,MAAa,cACN,KAGJ,GAAO,aAAa,OAAc;;AAG7C,SAAS,EAAoB,GAAe,GAAgC;CACxE,IAAM,IAAmB,EAAK,aAAa,EAAmB;AAC9D,KAAI,EACA,QAAO;CAGX,IAAM,IAAM,EAAiB,EAAK;AAClC,KAAI,CAAC,EACD,QAAO;CAGX,IAAM,IAAO,EAAc,EAAI;AAC/B,KAAI,CAAC,EACD,QAAO;CAGX,IAAM,IACF,aAAgB,oBACV,WACA,aAAgB,oBACd,WACA,aAAgB,mBACd,UACA;AAEd,KAAI,CAAC,EACD,QAAO;CAGX,IAAM,IACF,MAAS,WACH,EAAO,WAAW,UAClB,MAAS,WACP,EAAO,WAAW,UAClB,EAAO,WAAW;AAE9B,KAAI,CAAC,EACD,QAAO;AAGX,MAAK,IAAM,CAAC,GAAU,MAAa,OAAO,QAAQ,EAAM,CACpD,KAAI,EAAS,MAAM,MAAY,EAAe,GAAM,EAAQ,IAAI,EAAe,GAAK,EAAQ,CAAC,CAEzF,QADA,EAAK,aAAa,GAAoB,EAAS,EACxC;AAIf,QAAO;;AAGX,SAAS,EAAU,GAAe;AAC1B,OAAK,aAAa,EAAkB,KAAK,QAI7C;MAAI,aAAgB,mBAAmB;GACnC,IAAM,IAAc,EAAK,aAAa,OAAO,IAAI,IAC3C,IAAM,EAAK,aAAa,MAAM;AAQpC,GAPI,MACA,EAAK,aAAa,GAAe,EAAI,EACrC,EAAK,gBAAgB,MAAM,GAG/B,EAAK,aAAa,GAAgB,MAAgB,eAAe,KAAK,EAAY,EAClF,EAAK,OAAO,cACZ,EAAK,aAAa,GAAmB,OAAO;AAC5C;;AAGJ,MAAI,aAAgB,qBAAqB,aAAgB,kBAAkB;GACvE,IAAM,IAAM,EAAK,aAAa,MAAM;AAMpC,GALI,MACA,EAAK,aAAa,GAAe,EAAI,EACrC,EAAK,gBAAgB,MAAM,GAG/B,EAAK,aAAa,GAAmB,OAAO;;;;AAIpD,SAAS,EAAe,GAAyB;CAC7C,IAAM,IAAM,EAAK,aAAa,EAAc,EACtC,IAAQ,SAAS,cAAc,SAAS;AAE9C,MAAK,IAAM,KAAa,EAAK,mBAAmB,CAExC,OAAc,UACd,MAAc,KACd,MAAc,KACd,MAAc,KAKlB,EAAM,aAAa,GAAW,EAAK,aAAa,EAAU,IAAI,GAAG;CAGrE,IAAM,IAAe,EAAK,aAAa,EAAe;AAWtD,CAVI,MACA,EAAM,OAAO,IAGb,IACA,EAAM,MAAM,IAEZ,EAAM,cAAc,EAAK,aAG7B,EAAK,YAAY,EAAM;;AAG3B,SAAS,EAAa,GAAe;AACjC,KAAI,aAAgB,mBAAmB;AAKnC,MAAI,EAHA,EAAK,aAAa,EAAkB,KAAK,UACxC,EAAK,SAAS,gBAAgB,EAAK,aAAa,EAAmB,EAGpE;AAGJ,IAAe,EAAK;AACpB;;AAGJ,KAAI,aAAgB,qBAAqB,aAAgB,kBAAkB;AACvE,MAAI,EAAK,aAAa,EAAkB,KAAK,UAAU,CAAC,EAAK,aAAa,EAAc,CACpF;EAGJ,IAAM,IAAM,EAAK,aAAa,EAAc;AAM5C,EALI,KACA,EAAK,aAAa,OAAO,EAAI,EAGjC,EAAK,gBAAgB,EAAc,EACnC,EAAK,gBAAgB,EAAkB;;;AAI/C,SAAS,EAAsB,GAAkB;CAC7C,IAAM,IAAyB,EAAE;AAEjC,CAAI,aAAgB,WAChB,EAAY,KAAK,EAAK;CAG1B,IAAM,IAAc,MAAM,KAAK,EAAK,iBAAiB,sBAAsB,CAAC;AAC5E,QAAO,CAAC,GAAG,GAAa,GAAG,EAAY;;AAG3C,SAAS,EAAS,GAAe,GAAmC,GAAgC;CAChG,IAAM,IAAW,EAAoB,GAAM,EAAO;AAC7C,QAIL;MAAI,EAAkB,GAAO,EAAS,EAAE;AACpC,KAAa,EAAK;AAClB;;AAGJ,IAAU,EAAK;;;AAGnB,SAAS,EAAa,GAAmC,GAAgC;AACrF,MAAK,IAAM,KAAQ,EAAsB,SAAS,CAC9C,GAAS,GAAM,GAAO,EAAO;;AAIrC,SAAS,EAAkB,GAA4C,GAAgC;CACnG,IAAM,IAAc,KAAK,UAAU,aAC7B,IAAe,KAAK,UAAU,cAC9B,IAAe,KAAK,UAAU;AAgCpC,QA9BA,KAAK,UAAU,cAAc,SAA4C,GAAS;AAC9E,MAAI,aAAgB,QAChB,MAAK,IAAM,KAAW,EAAsB,EAAK,CAC7C,GAAS,GAAS,GAAU,EAAE,EAAO;AAI7C,SAAO,EAAY,KAAK,MAAM,EAAK;IAGvC,KAAK,UAAU,eAAe,SAA6C,GAAS,GAAoB;AACpG,MAAI,aAAgB,QAChB,MAAK,IAAM,KAAW,EAAsB,EAAK,CAC7C,GAAS,GAAS,GAAU,EAAE,EAAO;AAI7C,SAAO,EAAa,KAAK,MAAM,GAAM,EAAM;IAG/C,KAAK,UAAU,eAAe,SAA6C,GAAY,GAAU;AAC7F,MAAI,aAAgB,QAChB,MAAK,IAAM,KAAW,EAAsB,EAAK,CAC7C,GAAS,GAAS,GAAU,EAAE,EAAO;AAI7C,SAAO,EAAa,KAAK,MAAM,GAAM,EAAM;UAGlC;AAGT,EAFA,KAAK,UAAU,cAAc,GAC7B,KAAK,UAAU,eAAe,GAC9B,KAAK,UAAU,eAAe;;;AAItC,SAAS,EAAY,GAAkB,GAAyC;CAC5E,IAAM,IAAkC,EAAE;AAE1C,KAAI;AACA,OAAK,IAAI,IAAQ,GAAG,IAAQ,EAAQ,QAAQ,KAAS,GAAG;GACpD,IAAM,IAAM,EAAQ,IAAI,EAAM;AACzB,QAIL,EAAM,KAAK;IACP;IACA;IACA,OAAO,EAAQ,QAAQ,EAAI,IAAI;IAClC,CAAC;;SAEF;AACJ,SAAO,EAAE;;AAGb,QAAO;;AAGX,SAAgB,EAA2B,GAAwC;AAS/E,QARI,MAIA,OAAO,SAAW,MACX,OAGJ,OAAA,6BAAwC;;AAGnD,SAAgB,EAAmB,GAAkE;AACjG,KAAI,OAAO,SAAW,OAAe,OAAO,WAAa,IACrD,QAAO;CAGX,IAAM,IAAiB,EAA2B,EAAO;AACzD,KAAI,CAAC,EACD,QAAO;CAGX,IAAM,IAAO,EAAe,QAAQ,EAAE,EAChC,IAAyC,EAAE,EAC3C,IAAuC,EAAE;AAE/C,CAAI,EAAK,YAAY,OACjB,EAAa,KAAK,GAAG,EAAY,OAAO,cAAc,eAAe,CAAC,EACtE,EAAa,KAAK,GAAG,EAAY,OAAO,gBAAgB,iBAAiB,CAAC;CAG9E,IAAM,IAA4E;EAC9E;GAAC,EAAK,YAAY;GAAO;GAAgD;GAAS;EAClF;GAAC,EAAK,YAAY;GAAO;GAAgD;GAAS;EAClF;GAAC,EAAK,WAAW;GAAO;GAA0C;GAAQ;EAC7E;AAED,MAAK,IAAM,CAAC,GAAS,GAAU,MAAS,EAC/B,OAIL,MAAK,IAAM,KAAQ,MAAM,KAAK,SAAS,iBAAiB,EAAS,CAAC,EAAE;EAChE,IAAM,IAAM,EAAiB,EAAK;AAC7B,OAIL,EAAU,KAAK;GACX;GACA;GACA,MAAM,EAAc,EAAI;GACxB,UAAU,EAAK,aAAa,EAAmB,IAAI,KAAA;GACtD,CAAC;;AAIV,QAAO;EACH,SAAS,EAAe;EACxB,QAAQ,EAAe,UAAU,OAAO,SAAS;EACjD,KAAK,OAAO,SAAS;EACrB,4BAAW,IAAI,MAAM,EAAC,aAAa;EACnC,SACI,EAAK,YAAY,KACX,EAAE,GACF,EAAsB;GAClB,iBAAiB,EAAe,mBAAmB,EAAE;GACrD,eAAe,EAAe,iBAAiB,EAAE;GACpD,CAAC,CAAC,KAAK,OAAU;GACd,GAAG;GACH,WAAW,EAAK;GAChB,QAAQ,EAAK;GAChB,EAAE;EACb,SAAS;EACT;EACH;;AAGL,eAAsB,EAAqB,GAAwC,GAAmC;CAClH,IAAM,IAAiB,EAA2B,EAAO,EACnD,IAAW,GAAgB,gBAAgB,GAAgB;AAMjE,KAJI,CAAC,KAAY,OAAO,QAAU,OAI9B,CAAC,EACD,QAAO,KAAU;CAGrB,IAAM,IAAU,KAAU,EAAmB,EAAe;AAe5D,QAdK,KAIL,MAAM,MAAM,GAAU;EAClB,QAAQ,EAAe,gBAAgB;EACvC,SAAS;GACL,gBAAgB;GAChB,GAAI,EAAe,UAAU,EAAC,sBAAsB,EAAe,SAAQ,GAAG,EAAE;GAChF,GAAG,EAAe;GACrB;EACD,MAAM,KAAK,UAAU,EAAQ;EAChC,CAAC,EAEK,KAbI;;AAgBf,SAAgB,EAAwB,GAAuE;AAC3G,KAAI,OAAO,SAAW,OAAe,OAAO,WAAa,IACrD,QAAO;CAGX,IAAM,IAAiB,EAA2B,EAAO;AACzD,KAAI,CAAC,EACD,QAAO;CAGX,IAAI,IAAQ,EAAgB,EAAe,EACvC,IAA6B,MAC7B,IAAqC,MAEnC,UAA0B;AAM5B,EALI,KAAe,SACf,OAAO,aAAa,EAAY,EAChC,IAAc,OAGd,KAAuB,SACvB,OAAO,aAAa,EAAoB,EACxC,IAAsB;IAIxB,KAAkB,IAAe,GAAG,MAA2B;AAC7D,GAAC,EAAe,gBAAgB,CAAC,EAAe,mBAIpD,GAAmB,EAEnB,IAAc,OAAO,iBAAiB;AAE7B,GADL,IAAc,MACT,EAAqB,EAAe;KAC1C,EAAa,EAEZ,OAAO,KAAkB,aACzB,IAAsB,OAAO,iBAAiB;AAErC,GADL,IAAsB,MACjB,EAAqB,EAAe;KAC1C,EAAc;IAInB,KAAQ,MAA2C;AAErD,EADA,IAAQ,MAAc,KAAA,IAAY,EAAgB,EAAe,GAAG,GACpE,EAAa,GAAO,EAAe;;AAGvC,GAAK,EAAM;CAEX,IAAM,IAAW,IAAI,kBAAkB,MAAY;AAC/C,OAAK,IAAM,KAAU,EACjB,MAAK,IAAM,KAAQ,MAAM,KAAK,EAAO,WAAW,CACtC,kBAAgB,QAItB,MAAK,IAAM,KAAW,EAAsB,EAAK,CAC7C,GAAS,GAAS,GAAO,EAAe;GAItD;AAEF,GAAS,QAAQ,SAAS,iBAAiB;EACvC,WAAW;EACX,SAAS;EACZ,CAAC;CAEF,IAAM,KAAuB,MAAiB;EAC1C,IAAM,IAAU,EAA2D;AAE3E,EADA,EAAK,GAAQ,SAAS,KAAK,EAC3B,EAAe,KAAK,KAAK;;AAG7B,QAAO,iBAAiB,GAA8B,EAAoB;CAE1E,IAAM,IAAa,QAAwB,GAAO,EAAe,EAE3D,UAAyB;AAC3B,KAAgB;;AAGpB,CAAI,SAAS,eAAe,aACxB,GAAkB,GAElB,OAAO,iBAAiB,QAAQ,GAAkB,EAAC,MAAM,IAAK,CAAC;CAGnE,IAAM,IAAiC;EACnC,QAAQ;EACR,eAAe;AAMX,GALA,EAAS,YAAY,EACrB,GAAY,EACZ,GAAmB,EACnB,OAAO,oBAAoB,QAAQ,EAAiB,EACpD,OAAO,oBAAoB,GAA8B,EAAoB,EACzE,OAAO,kCAAkC,KACzC,OAAO,OAAO;;EAGtB,gBAAgB;EAChB;EACH;AAGD,QADA,OAAO,gCAAgC,GAChC;;AAGX,SAAgB,IAA8B;AAK1C,QAJI,OAAO,SAAW,OAAe,OAAO,WAAa,MAC9C,OAGJ,EAAwB,GAA4B,CAAC"}
1
+ {"version":3,"file":"MCookieBootstrap-Btt49Iuq.js","names":[],"sources":["../src/components/feedback/MCookie/MCookieConsentProvider/MCookieConsent.defaults.ts","../src/components/feedback/MCookie/MCookieConsentProvider/MCookieConsent.inventory.ts","../src/components/feedback/MCookie/MCookieConsentProvider/MCookieConsent.storage.ts","../src/components/feedback/MCookie/MCookieBootstrap/MCookieBootstrap.types.ts","../src/components/feedback/MCookie/MCookieBootstrap/MCookieBootstrap.ts"],"sourcesContent":["import type {MCookieConsentTexts} from '../../../../i18n/frameworkTexts'\nimport type {MCookieCategoryDefinition, MCookieConsentPersistence, MCookieDeclarationItem} from './MCookieConsent.types'\n\nexport const COOKIE_CONSENT_STORAGE_KEY = 'mineralui-cookie-consent'\nexport const COOKIE_CONSENT_COOKIE_NAME = 'mineralui-cookie-consent'\nexport const COOKIE_CONSENT_COOKIE_MAX_AGE_DAYS = 180\nexport const COOKIE_CONSENT_STORAGE: MCookieConsentPersistence = 'localStorage'\n\nexport function mergeCookieConsentTexts(\n baseTexts: MCookieConsentTexts,\n override?: Partial<MCookieConsentTexts>\n): MCookieConsentTexts {\n return {\n ...baseTexts,\n ...override,\n }\n}\n\nexport function createCookieConsentCategories(texts: MCookieConsentTexts): MCookieCategoryDefinition[] {\n return [\n {\n key: 'necessary',\n label: texts.necessaryLabel,\n description: texts.necessaryDescription,\n required: true,\n defaultValue: true,\n },\n {\n key: 'preferences',\n label: texts.preferencesLabel,\n description: texts.preferencesDescriptionLabel,\n defaultValue: false,\n },\n {\n key: 'analytics',\n label: texts.analyticsLabel,\n description: texts.analyticsDescription,\n defaultValue: false,\n },\n {\n key: 'marketing',\n label: texts.marketingLabel,\n description: texts.marketingDescription,\n defaultValue: false,\n },\n ]\n}\n\nexport function createCookieConsentDeclaration(): MCookieDeclarationItem[] {\n return []\n}\n","import {COOKIE_CONSENT_COOKIE_NAME} from './MCookieConsent.defaults'\nimport type {\n MCookieCategoryRules,\n MCookieDetectedCookie,\n MCookieDetectedCookieMatch,\n MCookieMatchRule,\n} from './MCookieConsent.types'\n\nconst INTERNAL_REQUIRED_COOKIE_RULES: MCookieMatchRule[] = [\n COOKIE_CONSENT_COOKIE_NAME,\n /^PHPSESSID$/i,\n /^JSESSIONID$/i,\n /^ASP\\.NET_SessionId$/i,\n /^__Host-/i,\n /^__Secure-/i,\n /csrf/i,\n /xsrf/i,\n /session/i,\n /auth/i,\n /token/i,\n /^sid$/i,\n]\n\nconst BUILT_IN_CATEGORY_RULES: Record<string, MCookieMatchRule[]> = {\n preferences: [/theme/i, /locale/i, /lang/i, /currency/i, /timezone/i, /consent/i],\n analytics: [/^_ga/i, /^_gid/i, /^_gat/i, /^_pk_/i, /^pk_/i, /^_hj/i, /^hj/i, /^amplitude/i, /^mp_/i, /^matomo/i],\n marketing: [/^_fbp$/i, /^_fbc$/i, /^_gcl_/i, /^IDE$/i, /^test_cookie$/i, /^li_/i, /^tt_/i, /^_uet/i, /^pin_utm/i],\n}\n\nfunction matchCookieRule(name: string, rule: MCookieMatchRule) {\n if (typeof rule === 'string') {\n const normalizedRule = rule.trim().toLowerCase()\n const normalizedName = name.trim().toLowerCase()\n\n if (normalizedRule.endsWith('*')) {\n return normalizedName.startsWith(normalizedRule.slice(0, -1))\n }\n\n return normalizedName === normalizedRule\n }\n\n return rule.test(name)\n}\n\nfunction matchCookieRules(name: string, rules?: MCookieMatchRule[]) {\n return Array.isArray(rules) && rules.some((rule) => matchCookieRule(name, rule))\n}\n\nfunction parseDocumentCookies(cookieString: string) {\n if (!cookieString.trim()) {\n return []\n }\n\n return cookieString\n .split(';')\n .map((chunk) => chunk.trim())\n .filter(Boolean)\n .map((chunk) => {\n const separatorIndex = chunk.indexOf('=')\n if (separatorIndex === -1) {\n return {\n name: chunk,\n value: '',\n }\n }\n\n return {\n name: chunk.slice(0, separatorIndex).trim(),\n value: chunk.slice(separatorIndex + 1).trim(),\n }\n })\n .filter((item) => item.name.length > 0)\n}\n\nfunction classifyCookie(\n name: string,\n requiredCookies: MCookieMatchRule[],\n categoryRules: MCookieCategoryRules\n): Pick<MCookieDetectedCookie, 'category' | 'required' | 'matchedBy'> {\n if (matchCookieRules(name, [...INTERNAL_REQUIRED_COOKIE_RULES, ...requiredCookies])) {\n return {\n category: 'necessary',\n required: true,\n matchedBy: 'required',\n }\n }\n\n for (const [category, rules] of Object.entries(categoryRules)) {\n if (matchCookieRules(name, rules)) {\n return {\n category,\n required: false,\n matchedBy: 'custom',\n }\n }\n }\n\n for (const [category, rules] of Object.entries(BUILT_IN_CATEGORY_RULES)) {\n if (matchCookieRules(name, rules)) {\n return {\n category,\n required: false,\n matchedBy: 'built-in',\n }\n }\n }\n\n return {\n category: 'preferences',\n required: false,\n matchedBy: 'fallback',\n }\n}\n\nexport function detectDocumentCookies({\n cookieString,\n requiredCookies = [],\n categoryRules = {},\n}: {\n cookieString?: string\n requiredCookies?: MCookieMatchRule[]\n categoryRules?: MCookieCategoryRules\n}) {\n const source = cookieString ?? (typeof document !== 'undefined' ? document.cookie : '')\n\n return parseDocumentCookies(source).map<MCookieDetectedCookie>((item) => {\n const classification = classifyCookie(item.name, requiredCookies, categoryRules)\n\n return {\n name: item.name,\n value: item.value,\n category: classification.category,\n required: classification.required,\n matchedBy: classification.matchedBy as MCookieDetectedCookieMatch,\n source: 'document.cookie',\n }\n })\n}\n","import type {MCookieConsentPersistence, MCookieConsentState} from './MCookieConsent.types'\n\ninterface CookieConsentStorageOptions {\n storage: MCookieConsentPersistence\n storageKey: string\n cookieName: string\n cookieMaxAgeDays: number\n}\n\nfunction isCookieConsentState(value: unknown): value is MCookieConsentState {\n if (!value || typeof value !== 'object') {\n return false\n }\n\n const candidate = value as MCookieConsentState\n\n return (\n typeof candidate.version === 'string' &&\n typeof candidate.decidedAt === 'string' &&\n typeof candidate.source === 'string' &&\n candidate.categories != null &&\n typeof candidate.categories === 'object'\n )\n}\n\nfunction readCookieValue(name: string): string | null {\n if (typeof document === 'undefined') {\n return null\n }\n\n const prefix = `${encodeURIComponent(name)}=`\n\n for (const chunk of document.cookie.split(';')) {\n const trimmed = chunk.trim()\n if (trimmed.startsWith(prefix)) {\n return decodeURIComponent(trimmed.slice(prefix.length))\n }\n }\n\n return null\n}\n\nfunction writeCookieValue(name: string, value: string, maxAgeDays: number) {\n if (typeof document === 'undefined') {\n return\n }\n\n document.cookie = `${encodeURIComponent(name)}=${encodeURIComponent(value)}; path=/; max-age=${Math.floor(\n maxAgeDays * 24 * 60 * 60\n )}; samesite=lax`\n}\n\nfunction clearCookieValue(name: string) {\n if (typeof document === 'undefined') {\n return\n }\n\n document.cookie = `${encodeURIComponent(name)}=; path=/; max-age=0; samesite=lax`\n}\n\nexport function readStoredCookieConsent({\n storage,\n storageKey,\n cookieName,\n}: Pick<CookieConsentStorageOptions, 'storage' | 'storageKey' | 'cookieName'>): MCookieConsentState | null {\n try {\n const raw = storage === 'cookie' ? readCookieValue(cookieName) : localStorage.getItem(storageKey)\n if (!raw) {\n return null\n }\n\n const parsed = JSON.parse(raw) as unknown\n return isCookieConsentState(parsed) ? parsed : null\n } catch {\n return null\n }\n}\n\nexport function writeStoredCookieConsent(\n {storage, storageKey, cookieName, cookieMaxAgeDays}: CookieConsentStorageOptions,\n state: MCookieConsentState\n) {\n try {\n const serialized = JSON.stringify(state)\n\n if (storage === 'cookie') {\n writeCookieValue(cookieName, serialized, cookieMaxAgeDays)\n return\n }\n\n localStorage.setItem(storageKey, serialized)\n } catch {\n /* noop */\n }\n}\n\nexport function clearStoredCookieConsent({\n storage,\n storageKey,\n cookieName,\n}: Pick<CookieConsentStorageOptions, 'storage' | 'storageKey' | 'cookieName'>) {\n try {\n if (storage === 'cookie') {\n clearCookieValue(cookieName)\n return\n }\n\n localStorage.removeItem(storageKey)\n } catch {\n /* noop */\n }\n}\n","import type {\n MCookieCategoryDefinition,\n MCookieConsentPersistence,\n MCookieConsentState,\n MCookieDeclarationItem,\n} from '../MCookieConsentProvider'\n\nexport const MCOOKIE_CONSENT_CHANGE_EVENT = 'mineralui:cookie-consent-change'\nexport const MCOOKIE_BOOTSTRAP_CONFIG_KEY = '__MINERAL_COOKIE_CONFIG__'\nexport const MCOOKIE_RUNTIME_KEY = '__MINERAL_COOKIE_RUNTIME__'\nexport const MCOOKIE_RUNTIME_READY_EVENT = 'mineralui:cookie-runtime-ready'\n\nexport type MCookieBootstrapResourceKind = 'script' | 'iframe' | 'image'\n\nexport interface MCookieBootstrapResourceRules {\n scripts?: Record<string, string[]>\n iframes?: Record<string, string[]>\n images?: Record<string, string[]>\n}\n\nexport interface MCookieBootstrapScanOptions {\n cookies?: boolean\n storage?: boolean\n scripts?: boolean\n iframes?: boolean\n images?: boolean\n}\n\nexport interface MCookieBootstrapConfig {\n siteKey?: string\n domain?: string\n version?: string\n storage?: MCookieConsentPersistence\n storageKey?: string\n cookieName?: string\n cookieMaxAgeDays?: number\n categories?: MCookieCategoryDefinition[]\n hideOnAccept?: boolean\n autoShow?: boolean\n reopenOnVersionChange?: boolean\n requiredCookies?: string[]\n categoryRules?: Record<string, string[]>\n resources?: MCookieBootstrapResourceRules\n scan?: MCookieBootstrapScanOptions\n configEndpoint?: string\n scanEndpoint?: string\n reportEndpoint?: string\n reportMethod?: 'POST' | 'PUT'\n reportHeaders?: Record<string, string>\n}\n\nexport interface MCookieRuntime {\n config: MCookieBootstrapConfig\n getDeclaration?: () => Promise<MCookieDeclarationItem[]>\n getConsent?: () => Promise<MCookieConsentState | null>\n saveConsent?: (state: MCookieConsentState) => void | Promise<void>\n}\n\nexport interface MCookieBootstrapChangeDetail {\n state: MCookieConsentState | null\n}\n\nexport interface MCookieScanStorageItem {\n kind: 'localStorage' | 'sessionStorage'\n key: string\n value: string\n}\n\nexport interface MCookieScanResourceItem {\n kind: MCookieBootstrapResourceKind\n src: string\n host: string\n category?: string\n}\n\nexport interface MCookieScanCookieItem {\n name: string\n value: string\n category: string\n required: boolean\n matchedBy: string\n source: string\n}\n\nexport interface MCookieScanReport {\n siteKey?: string\n domain: string\n url: string\n scannedAt: string\n cookies: MCookieScanCookieItem[]\n storage: MCookieScanStorageItem[]\n resources: MCookieScanResourceItem[]\n}\n\nexport interface MCookieBootstrapHandle {\n config: MCookieBootstrapConfig\n destroy: () => void\n getState: () => MCookieConsentState | null\n sync: (state?: MCookieConsentState | null) => void\n}\n\ndeclare global {\n interface Window {\n __MINERAL_COOKIE_CONFIG__?: MCookieBootstrapConfig\n __MINERAL_COOKIE_RUNTIME__?: MCookieRuntime\n MineralCookieConsentBootstrap?: MCookieBootstrapHandle\n }\n}\n","import {detectDocumentCookies} from '../MCookieConsentProvider/MCookieConsent.inventory'\nimport {\n COOKIE_CONSENT_COOKIE_NAME,\n COOKIE_CONSENT_STORAGE,\n COOKIE_CONSENT_STORAGE_KEY,\n} from '../MCookieConsentProvider/MCookieConsent.defaults'\nimport {readStoredCookieConsent} from '../MCookieConsentProvider/MCookieConsent.storage'\nimport type {MCookieConsentState} from '../MCookieConsentProvider'\nimport {MCOOKIE_BOOTSTRAP_CONFIG_KEY, MCOOKIE_CONSENT_CHANGE_EVENT} from './MCookieBootstrap.types'\nimport type {\n MCookieBootstrapConfig,\n MCookieBootstrapHandle,\n MCookieBootstrapResourceKind,\n MCookieScanReport,\n MCookieScanResourceItem,\n MCookieScanStorageItem,\n} from './MCookieBootstrap.types'\n\nconst CATEGORY_ATTRIBUTE = 'data-mineral-cookie-category'\nconst BLOCKED_ATTRIBUTE = 'data-mineral-cookie-blocked'\nconst SRC_ATTRIBUTE = 'data-mineral-cookie-src'\nconst TYPE_ATTRIBUTE = 'data-mineral-cookie-type'\n\nfunction toPatternRegExp(pattern: string) {\n const escaped = pattern.replace(/[.+?^${}()|[\\]\\\\]/g, '\\\\$&').replace(/\\*/g, '.*')\n return new RegExp(`^${escaped}$`, 'i')\n}\n\nfunction matchesPattern(value: string, pattern: string) {\n return toPatternRegExp(pattern).test(value)\n}\n\nfunction getElementSource(node: Element) {\n if (node instanceof HTMLScriptElement || node instanceof HTMLIFrameElement || node instanceof HTMLImageElement) {\n return node.getAttribute('src') ?? node.getAttribute(SRC_ATTRIBUTE) ?? ''\n }\n\n return ''\n}\n\nfunction getSourceHost(src: string) {\n try {\n return new URL(src, window.location.href).hostname\n } catch {\n return ''\n }\n}\n\nfunction getConsentState(config: MCookieBootstrapConfig) {\n return readStoredCookieConsent({\n storage: config.storage ?? COOKIE_CONSENT_STORAGE,\n storageKey: config.storageKey ?? COOKIE_CONSENT_STORAGE_KEY,\n cookieName: config.cookieName ?? COOKIE_CONSENT_COOKIE_NAME,\n })\n}\n\nfunction isCategoryAllowed(state: MCookieConsentState | null, category: string) {\n if (category === 'necessary') {\n return true\n }\n\n return state?.categories?.[category] === true\n}\n\nfunction findMatchedCategory(node: Element, config: MCookieBootstrapConfig) {\n const explicitCategory = node.getAttribute(CATEGORY_ATTRIBUTE)\n if (explicitCategory) {\n return explicitCategory\n }\n\n const src = getElementSource(node)\n if (!src) {\n return null\n }\n\n const host = getSourceHost(src)\n if (!host) {\n return null\n }\n\n const kind: MCookieBootstrapResourceKind | null =\n node instanceof HTMLScriptElement\n ? 'script'\n : node instanceof HTMLIFrameElement\n ? 'iframe'\n : node instanceof HTMLImageElement\n ? 'image'\n : null\n\n if (!kind) {\n return null\n }\n\n const rules =\n kind === 'script'\n ? config.resources?.scripts\n : kind === 'iframe'\n ? config.resources?.iframes\n : config.resources?.images\n\n if (!rules) {\n return null\n }\n\n for (const [category, patterns] of Object.entries(rules)) {\n if (patterns.some((pattern) => matchesPattern(host, pattern) || matchesPattern(src, pattern))) {\n node.setAttribute(CATEGORY_ATTRIBUTE, category)\n return category\n }\n }\n\n return null\n}\n\nfunction blockNode(node: Element) {\n if (node.getAttribute(BLOCKED_ATTRIBUTE) === 'true') {\n return\n }\n\n if (node instanceof HTMLScriptElement) {\n const currentType = node.getAttribute('type') ?? ''\n const src = node.getAttribute('src')\n if (src) {\n node.setAttribute(SRC_ATTRIBUTE, src)\n node.removeAttribute('src')\n }\n\n node.setAttribute(TYPE_ATTRIBUTE, currentType === 'text/plain' ? '' : currentType)\n node.type = 'text/plain'\n node.setAttribute(BLOCKED_ATTRIBUTE, 'true')\n return\n }\n\n if (node instanceof HTMLIFrameElement || node instanceof HTMLImageElement) {\n const src = node.getAttribute('src')\n if (src) {\n node.setAttribute(SRC_ATTRIBUTE, src)\n node.removeAttribute('src')\n }\n\n node.setAttribute(BLOCKED_ATTRIBUTE, 'true')\n }\n}\n\nfunction activateScript(node: HTMLScriptElement) {\n const src = node.getAttribute(SRC_ATTRIBUTE)\n const clone = document.createElement('script')\n\n for (const attribute of node.getAttributeNames()) {\n if (\n attribute === 'type' ||\n attribute === BLOCKED_ATTRIBUTE ||\n attribute === SRC_ATTRIBUTE ||\n attribute === TYPE_ATTRIBUTE\n ) {\n continue\n }\n\n clone.setAttribute(attribute, node.getAttribute(attribute) ?? '')\n }\n\n const originalType = node.getAttribute(TYPE_ATTRIBUTE)\n if (originalType) {\n clone.type = originalType\n }\n\n if (src) {\n clone.src = src\n } else {\n clone.textContent = node.textContent\n }\n\n node.replaceWith(clone)\n}\n\nfunction activateNode(node: Element) {\n if (node instanceof HTMLScriptElement) {\n const canActivate =\n node.getAttribute(BLOCKED_ATTRIBUTE) === 'true' ||\n (node.type === 'text/plain' && node.hasAttribute(CATEGORY_ATTRIBUTE))\n\n if (!canActivate) {\n return\n }\n\n activateScript(node)\n return\n }\n\n if (node instanceof HTMLIFrameElement || node instanceof HTMLImageElement) {\n if (node.getAttribute(BLOCKED_ATTRIBUTE) !== 'true' && !node.hasAttribute(SRC_ATTRIBUTE)) {\n return\n }\n\n const src = node.getAttribute(SRC_ATTRIBUTE)\n if (src) {\n node.setAttribute('src', src)\n }\n\n node.removeAttribute(SRC_ATTRIBUTE)\n node.removeAttribute(BLOCKED_ATTRIBUTE)\n }\n}\n\nfunction collectCandidateNodes(root: ParentNode) {\n const directNodes: Element[] = []\n\n if (root instanceof Element) {\n directNodes.push(root)\n }\n\n const nestedNodes = Array.from(root.querySelectorAll('script, iframe, img'))\n return [...directNodes, ...nestedNodes]\n}\n\nfunction syncNode(node: Element, state: MCookieConsentState | null, config: MCookieBootstrapConfig) {\n const category = findMatchedCategory(node, config)\n if (!category) {\n return\n }\n\n if (isCategoryAllowed(state, category)) {\n activateNode(node)\n return\n }\n\n blockNode(node)\n}\n\nfunction syncDocument(state: MCookieConsentState | null, config: MCookieBootstrapConfig) {\n for (const node of collectCandidateNodes(document)) {\n syncNode(node, state, config)\n }\n}\n\nfunction patchDomInsertion(getState: () => MCookieConsentState | null, config: MCookieBootstrapConfig) {\n const appendChild = Node.prototype.appendChild\n const insertBefore = Node.prototype.insertBefore\n const replaceChild = Node.prototype.replaceChild\n\n Node.prototype.appendChild = function patchedAppendChild<T extends Node>(node: T) {\n if (node instanceof Element) {\n for (const element of collectCandidateNodes(node)) {\n syncNode(element, getState(), config)\n }\n }\n\n return appendChild.call(this, node) as T\n }\n\n Node.prototype.insertBefore = function patchedInsertBefore<T extends Node>(node: T, child: Node | null) {\n if (node instanceof Element) {\n for (const element of collectCandidateNodes(node)) {\n syncNode(element, getState(), config)\n }\n }\n\n return insertBefore.call(this, node, child) as T\n }\n\n Node.prototype.replaceChild = function patchedReplaceChild<T extends Node>(node: Node, child: T) {\n if (node instanceof Element) {\n for (const element of collectCandidateNodes(node)) {\n syncNode(element, getState(), config)\n }\n }\n\n return replaceChild.call(this, node, child) as T\n }\n\n return () => {\n Node.prototype.appendChild = appendChild\n Node.prototype.insertBefore = insertBefore\n Node.prototype.replaceChild = replaceChild\n }\n}\n\nfunction scanStorage(storage: Storage, kind: 'localStorage' | 'sessionStorage') {\n const items: MCookieScanStorageItem[] = []\n\n try {\n for (let index = 0; index < storage.length; index += 1) {\n const key = storage.key(index)\n if (!key) {\n continue\n }\n\n items.push({\n kind,\n key,\n value: storage.getItem(key) ?? '',\n })\n }\n } catch {\n return []\n }\n\n return items\n}\n\nexport function readMCookieBootstrapConfig(config?: MCookieBootstrapConfig | null) {\n if (config) {\n return config\n }\n\n if (typeof window === 'undefined') {\n return null\n }\n\n return window[MCOOKIE_BOOTSTRAP_CONFIG_KEY] ?? null\n}\n\nexport function scanMCookieSurface(config?: MCookieBootstrapConfig | null): MCookieScanReport | null {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return null\n }\n\n const resolvedConfig = readMCookieBootstrapConfig(config)\n if (!resolvedConfig) {\n return null\n }\n\n const scan = resolvedConfig.scan ?? {}\n const storageItems: MCookieScanStorageItem[] = []\n const resources: MCookieScanResourceItem[] = []\n\n if (scan.storage !== false) {\n storageItems.push(...scanStorage(window.localStorage, 'localStorage'))\n storageItems.push(...scanStorage(window.sessionStorage, 'sessionStorage'))\n }\n\n const resourceSelectors: Array<[boolean, string, MCookieBootstrapResourceKind]> = [\n [scan.scripts !== false, 'script[src], script[data-mineral-cookie-src]', 'script'],\n [scan.iframes !== false, 'iframe[src], iframe[data-mineral-cookie-src]', 'iframe'],\n [scan.images !== false, 'img[src], img[data-mineral-cookie-src]', 'image'],\n ]\n\n for (const [enabled, selector, kind] of resourceSelectors) {\n if (!enabled) {\n continue\n }\n\n for (const node of Array.from(document.querySelectorAll(selector))) {\n const src = getElementSource(node)\n if (!src) {\n continue\n }\n\n resources.push({\n kind,\n src,\n host: getSourceHost(src),\n category: node.getAttribute(CATEGORY_ATTRIBUTE) ?? undefined,\n })\n }\n }\n\n return {\n siteKey: resolvedConfig.siteKey,\n domain: resolvedConfig.domain ?? window.location.hostname,\n url: window.location.href,\n scannedAt: new Date().toISOString(),\n cookies:\n scan.cookies === false\n ? []\n : detectDocumentCookies({\n requiredCookies: resolvedConfig.requiredCookies ?? [],\n categoryRules: resolvedConfig.categoryRules ?? {},\n }).map((item) => ({\n ...item,\n matchedBy: item.matchedBy,\n source: item.source,\n })),\n storage: storageItems,\n resources,\n }\n}\n\nexport async function reportMCookieSurface(config?: MCookieBootstrapConfig | null, report?: MCookieScanReport | null) {\n const resolvedConfig = readMCookieBootstrapConfig(config)\n const endpoint = resolvedConfig?.scanEndpoint ?? resolvedConfig?.reportEndpoint\n\n if (!endpoint || typeof fetch === 'undefined') {\n return report ?? null\n }\n\n if (!resolvedConfig) {\n return report ?? null\n }\n\n const payload = report ?? scanMCookieSurface(resolvedConfig)\n if (!payload) {\n return null\n }\n\n await fetch(endpoint, {\n method: resolvedConfig.reportMethod ?? 'POST',\n headers: {\n 'content-type': 'application/json',\n ...(resolvedConfig.siteKey ? {'x-mineral-site-key': resolvedConfig.siteKey} : {}),\n ...resolvedConfig.reportHeaders,\n },\n body: JSON.stringify(payload),\n })\n\n return payload\n}\n\nexport function bootstrapMCookieConsent(config?: MCookieBootstrapConfig | null): MCookieBootstrapHandle | null {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return null\n }\n\n const resolvedConfig = readMCookieBootstrapConfig(config)\n if (!resolvedConfig) {\n return null\n }\n\n let state = getConsentState(resolvedConfig)\n let reportTimer: number | null = null\n let followUpReportTimer: number | null = null\n\n const clearReportTimers = () => {\n if (reportTimer != null) {\n window.clearTimeout(reportTimer)\n reportTimer = null\n }\n\n if (followUpReportTimer != null) {\n window.clearTimeout(followUpReportTimer)\n followUpReportTimer = null\n }\n }\n\n const scheduleReport = (primaryDelay = 0, followUpDelay?: number) => {\n if (!resolvedConfig.scanEndpoint && !resolvedConfig.reportEndpoint) {\n return\n }\n\n clearReportTimers()\n\n reportTimer = window.setTimeout(() => {\n reportTimer = null\n void reportMCookieSurface(resolvedConfig)\n }, primaryDelay)\n\n if (typeof followUpDelay === 'number') {\n followUpReportTimer = window.setTimeout(() => {\n followUpReportTimer = null\n void reportMCookieSurface(resolvedConfig)\n }, followUpDelay)\n }\n }\n\n const sync = (nextState?: MCookieConsentState | null) => {\n state = nextState === undefined ? getConsentState(resolvedConfig) : nextState\n syncDocument(state, resolvedConfig)\n }\n\n sync(state)\n\n const observer = new MutationObserver((records) => {\n for (const record of records) {\n for (const node of Array.from(record.addedNodes)) {\n if (!(node instanceof Element)) {\n continue\n }\n\n for (const element of collectCandidateNodes(node)) {\n syncNode(element, state, resolvedConfig)\n }\n }\n }\n })\n\n observer.observe(document.documentElement, {\n childList: true,\n subtree: true,\n })\n\n const handleConsentChange = (event: Event) => {\n const detail = (event as CustomEvent<{state: MCookieConsentState | null}>).detail\n sync(detail?.state ?? null)\n scheduleReport(300, 1500)\n }\n\n window.addEventListener(MCOOKIE_CONSENT_CHANGE_EVENT, handleConsentChange)\n\n const restoreDom = patchDomInsertion(() => state, resolvedConfig)\n\n const handleWindowLoad = () => {\n scheduleReport()\n }\n\n if (document.readyState === 'complete') {\n handleWindowLoad()\n } else {\n window.addEventListener('load', handleWindowLoad, {once: true})\n }\n\n const handle: MCookieBootstrapHandle = {\n config: resolvedConfig,\n destroy: () => {\n observer.disconnect()\n restoreDom()\n clearReportTimers()\n window.removeEventListener('load', handleWindowLoad)\n window.removeEventListener(MCOOKIE_CONSENT_CHANGE_EVENT, handleConsentChange)\n if (window.MineralCookieConsentBootstrap === handle) {\n delete window.MineralCookieConsentBootstrap\n }\n },\n getState: () => state,\n sync,\n }\n\n window.MineralCookieConsentBootstrap = handle\n return handle\n}\n\nexport function autoBootstrapMCookieConsent() {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return null\n }\n\n return bootstrapMCookieConsent(readMCookieBootstrapConfig())\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./icons-qCoE70hn.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./MPopover-CxxaY9kr.cjs`),r=require(`./MButton-8UCydOik.cjs`),i=require(`./MCheckbox-Dn3p_9-1.cjs`),a=require(`./MInputSearch-DpHSVpmL.cjs`),ee=require(`./MPagination-CS62B9kZ.cjs`);require(`./core-DAox0BHy.cjs`);let o=require(`react`),s=require(`react/jsx-runtime`);function c(e,t,n){return typeof n==`function`?n(e,t):String(typeof n==`string`?e[n]:e.id??t)}function l(e,t){let n=t.split(`.`),r=e;for(let e of n){if(typeof r!=`object`||!r)return;r=r[e]}return r}function u({columns:u,data:d,rowKey:f,sortable:p=!1,filterable:m=!1,selectable:h=!1,pagination:g=!1,pageSize:_=10,striped:te=!1,compact:ne=!1,stickyHeader:re=!1,sort:v,onSortChange:y,search:b,onSearchChange:x,searchKeys:S,filterKeys:C=[],filters:w,onFiltersChange:T,sortKeys:E=[],page:D,onPageChange:O,total:ie,manualSearch:k=!1,manualFilters:A=!1,manualSort:j=!1,manualPagination:M=!1,selectedKeys:ae,onSelectionChange:oe,emptyText:se=`No data`,filterPlaceholder:ce=`Search...`,className:le,...ue}){let[de,fe]=(0,o.useState)(null),[pe,me]=(0,o.useState)([]),[he,ge]=(0,o.useState)(``),[_e,ve]=(0,o.useState)({}),[ye,N]=(0,o.useState)(1),[P,F]=(0,o.useState)(!1),[I,L]=(0,o.useState)(!1),R=(0,o.useRef)(null),z=(0,o.useRef)(null),B=v===void 0?de:v,V=b===void 0?he:b,H=w===void 0?_e:w,U=D===void 0?ye:D,W=ae??pe,G=oe??me,K=(0,o.useCallback)(e=>{b===void 0&&ge(e),!M&&D===void 0&&N(1),x?.(e)},[b,D,M,x]),be=(0,o.useCallback)(e=>{w===void 0&&ve(e),!M&&D===void 0&&N(1),T?.(e)},[w,D,M,T]),q=(0,o.useCallback)(e=>{v===void 0&&fe(e),!M&&D===void 0&&N(1),y?.(e)},[v,D,M,y]),xe=(0,o.useCallback)(e=>{D===void 0&&N(e),O?.(e)},[D,O]);function Se(e){let t;t=B?.key===e?B.dir===`asc`?{key:e,dir:`desc`}:null:{key:e,dir:`asc`},q(t)}function Ce(e,t){let n=H[e]??[],r=n.includes(t)?n.filter(e=>e!==t):[...n,t];be({...H,[e]:r})}let we=(0,o.useMemo)(()=>{let e={};for(let t of C){if(t.options){e[t.key]=t.options;continue}let n=new Set;for(let e of d){let r=l(e,t.key);r!=null&&n.add(String(r))}e[t.key]=Array.from(n).sort()}return e},[d,C]),J=(0,o.useMemo)(()=>{let e=d;if(!k&&m&&V.trim()){let t=V.toLowerCase();e=S&&S.length>0?e.filter(e=>S.some(n=>{let r=l(e,n);return r!=null&&String(r).toLowerCase().includes(t)})):e.filter(e=>u.some(n=>{if(n.filterable===!1)return!1;let r=e[n.key];return r!=null&&String(r).toLowerCase().includes(t)}))}if(!A)for(let[t,n]of Object.entries(H))!n||n.length===0||(e=e.filter(e=>{let r=l(e,t);return r!=null&&n.includes(String(r))}));return e},[d,k,A,m,V,S,u,H]),Y=(0,o.useMemo)(()=>{if(j||!B)return J;let e=u.find(e=>e.key===B.key),t=E.some(e=>e.key===B.key);if(!e?.sortable&&!p&&!t)return J;let n=B.dir===`asc`?1:-1;return[...J].sort((e,t)=>{let r=e[B.key],i=t[B.key];return r==null&&i==null?0:r==null?1:i==null?-1:typeof r==`number`&&typeof i==`number`?(r-i)*n:String(r).localeCompare(String(i))*n})},[J,B,u,p,E,j]),X=M?ie??Y.length:Y.length,Te=g?Math.max(1,Math.ceil(X/_)):1,Z=(0,o.useMemo)(()=>{if(!g||M)return Y;let e=(U-1)*_;return Y.slice(e,e+_)},[Y,g,M,U,_]),Q=Z.map((e,t)=>c(e,(U-1)*_+t,f)),$=Q.length>0&&Q.every(e=>W.includes(e));function Ee(){G($?W.filter(e=>!Q.includes(e)):[...new Set([...W,...Q])])}function De(e){G(W.includes(e)?W.filter(t=>t!==e):[...W,e])}function Oe(e,t){t.target.closest(`button, a, [data-no-row-select]`)||De(e)}let ke=(0,o.useCallback)(()=>{F(e=>!e),L(!1)},[]),Ae=(0,o.useCallback)(()=>{L(e=>!e),F(!1)},[]),je=E.find(e=>e.key===B?.key),Me=m||C.length>0||E.length>0;return(0,s.jsxs)(`div`,{className:t.t(`data-table`,le),...ue,children:[Me&&(0,s.jsxs)(`div`,{className:`toolbar`,children:[m&&(0,s.jsx)(a.t,{className:`filter-search`,size:`sm`,fullWidth:!0,placeholder:ce,value:V,onChange:e=>K(e.target.value),onClear:()=>K(``)}),(C.length>0||E.length>0)&&(0,s.jsxs)(`div`,{className:`toolbar-actions`,children:[C.length>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.t,{ref:R,variant:`outlined`,size:`sm`,startIcon:(0,s.jsx)(e.an,{}),"aria-expanded":P,onClick:ke,children:`Filter`}),(0,s.jsx)(n.t,{open:P,anchorRef:R,onClose:()=>F(!1),placement:`bottom-end`,className:`data-table-dropdown`,children:C.map(e=>(0,s.jsxs)(`div`,{className:`data-table-filter-group`,children:[(0,s.jsx)(`span`,{className:`data-table-filter-label`,children:e.label}),(we[e.key]??[]).map(t=>(0,s.jsx)(`div`,{className:`data-table-filter-option`,children:(0,s.jsx)(i.t,{size:`sm`,clickEffect:`none`,checked:H[e.key]?.includes(t)??!1,onChange:()=>Ce(e.key,t),label:t})},t))]},e.key))})]}),E.length>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.t,{ref:z,variant:`outlined`,size:`sm`,startIcon:B?B.dir===`asc`?(0,s.jsx)(e.ki,{}):(0,s.jsx)(e.Oi,{}):(0,s.jsx)(e.in,{}),"aria-expanded":I,onClick:Ae,children:je?`Sort: ${je.label}`:`Sort`}),(0,s.jsx)(n.t,{open:I,anchorRef:z,onClose:()=>L(!1),placement:`bottom-end`,className:`data-table-dropdown`,children:E.map(n=>(0,s.jsxs)(`button`,{type:`button`,className:t.t(`data-table-sort-item`,B?.key===n.key&&`active`),onClick:()=>{B?.key===n.key?q({key:n.key,dir:B.dir===`asc`?`desc`:`asc`}):q({key:n.key,dir:`asc`})},children:[n.label,B?.key===n.key&&(0,s.jsx)(`span`,{className:`data-table-sort-dir`,children:B.dir===`asc`?(0,s.jsx)(e.ki,{className:`data-table-sort-icon`}):(0,s.jsx)(e.Oi,{className:`data-table-sort-icon`})})]},n.key))})]})]})]}),(0,s.jsx)(`div`,{className:`scroll`,children:(0,s.jsxs)(`table`,{className:t.t(`root`,te&&`striped`,ne&&`compact`),children:[(0,s.jsx)(`thead`,{className:t.t(`head`,re&&`sticky`),children:(0,s.jsxs)(`tr`,{children:[h&&(0,s.jsx)(`th`,{className:`th check-col`,children:(0,s.jsx)(i.t,{checked:$,onChange:Ee,size:`sm`,clickEffect:`none`})}),u.map(n=>{let r=n.sortable??p,i=B?.key===n.key;return(0,s.jsx)(`th`,{className:t.t(`th`,r&&`sortable`,i&&`sorted-${B.dir}`),style:{width:n.width,textAlign:n.align},onClick:r?()=>Se(n.key):void 0,children:(0,s.jsxs)(`span`,{className:`th-content`,children:[n.label,r&&(0,s.jsx)(`span`,{className:`sort-icon`,children:i?B.dir===`asc`?(0,s.jsx)(e.ki,{"aria-hidden":`true`}):(0,s.jsx)(e.Oi,{"aria-hidden":`true`}):(0,s.jsx)(e.Di,{"aria-hidden":`true`})})]})},n.key)})]})}),(0,s.jsxs)(`tbody`,{children:[Z.length===0&&(0,s.jsx)(`tr`,{children:(0,s.jsx)(`td`,{className:`empty`,colSpan:u.length+ +!!h,children:se})}),Z.map((e,n)=>{let r=c(e,(U-1)*_+n,f),a=W.includes(r);return(0,s.jsxs)(`tr`,{className:t.t(`row`,a&&`selected`,h&&`selectable`),onClick:h?e=>Oe(r,e):void 0,children:[h&&(0,s.jsx)(`td`,{className:`td check-col`,children:(0,s.jsx)(i.t,{checked:a,onChange:()=>{},size:`sm`,clickEffect:`none`})}),u.map(t=>(0,s.jsx)(`td`,{className:`td`,style:{textAlign:t.align},children:t.render?t.render(e[t.key],e,(U-1)*_+n):e[t.key]},t.key))]},r)})]})]})}),g&&Te>1&&(0,s.jsx)(ee.t,{total:X,page:U,pageSize:_,onChange:xe})]})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return u}});
2
+ //# sourceMappingURL=MDataTable-95_Mb6jE.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MDataTable-95_Mb6jE.cjs","names":[],"sources":["../src/components/data/MDataTable/MDataTable.tsx"],"sourcesContent":["import {useCallback, useMemo, useRef, useState} from 'react'\nimport type * as React from 'react'\nimport type {MDataTableProps, MDataTableSort} from './MDataTable.types'\nimport {MButton, MCheckbox} from '../../controls'\nimport {MInputSearch} from '../../inputs'\nimport {MPagination} from '../../layout'\nimport {MPopover} from '../../primitives'\nimport {MArrowDownIcon, MArrowUpDownIcon, MArrowUpIcon, MFilterIcon, MSortIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MDataTable.css'\n\nfunction getRowKey<T>(row: T, index: number, rowKey?: string | ((row: T, index: number) => string)): string {\n if (typeof rowKey === 'function') return rowKey(row, index)\n if (typeof rowKey === 'string') return String((row as any)[rowKey])\n return String((row as any).id ?? index)\n}\n\nfunction getNestedValue(obj: unknown, key: string): unknown {\n const parts = key.split('.')\n let val: unknown = obj\n\n for (const p of parts) {\n if (val == null || typeof val !== 'object') return undefined\n val = (val as Record<string, unknown>)[p]\n }\n\n return val\n}\n\nexport function MDataTable<T = any>({\n columns,\n data,\n rowKey,\n sortable = false,\n filterable = false,\n selectable = false,\n pagination = false,\n pageSize = 10,\n striped = false,\n compact = false,\n stickyHeader = false,\n sort: controlledSort,\n onSortChange,\n search: controlledSearch,\n onSearchChange,\n searchKeys,\n filterKeys = [],\n filters: controlledFilters,\n onFiltersChange,\n sortKeys = [],\n page: controlledPage,\n onPageChange,\n total,\n manualSearch = false,\n manualFilters = false,\n manualSort = false,\n manualPagination = false,\n selectedKeys: controlledSelected,\n onSelectionChange,\n emptyText = 'No data',\n filterPlaceholder = 'Search...',\n className,\n ...rest\n}: MDataTableProps<T>) {\n const [internalSort, setInternalSort] = useState<MDataTableSort | null>(null)\n const [internalSelected, setInternalSelected] = useState<string[]>([])\n const [internalSearch, setInternalSearch] = useState('')\n const [internalFilters, setInternalFilters] = useState<Record<string, string[]>>({})\n const [internalPage, setInternalPage] = useState(1)\n const [filterOpen, setFilterOpen] = useState(false)\n const [sortOpen, setSortOpen] = useState(false)\n const filterBtnRef = useRef<HTMLElement>(null)\n const sortBtnRef = useRef<HTMLElement>(null)\n\n const activeSort = controlledSort !== undefined ? controlledSort : internalSort\n const search = controlledSearch !== undefined ? controlledSearch : internalSearch\n const filters = controlledFilters !== undefined ? controlledFilters : internalFilters\n const page = controlledPage !== undefined ? controlledPage : internalPage\n const selected = controlledSelected ?? internalSelected\n const setSelected = onSelectionChange ?? setInternalSelected\n\n const setSearch = useCallback(\n (next: string) => {\n if (controlledSearch === undefined) setInternalSearch(next)\n if (!manualPagination && controlledPage === undefined) setInternalPage(1)\n onSearchChange?.(next)\n },\n [controlledSearch, controlledPage, manualPagination, onSearchChange]\n )\n\n const setFilters = useCallback(\n (next: Record<string, string[]>) => {\n if (controlledFilters === undefined) setInternalFilters(next)\n if (!manualPagination && controlledPage === undefined) setInternalPage(1)\n onFiltersChange?.(next)\n },\n [controlledFilters, controlledPage, manualPagination, onFiltersChange]\n )\n\n const setSort = useCallback(\n (next: MDataTableSort | null) => {\n if (controlledSort === undefined) setInternalSort(next)\n if (!manualPagination && controlledPage === undefined) setInternalPage(1)\n onSortChange?.(next)\n },\n [controlledSort, controlledPage, manualPagination, onSortChange]\n )\n\n const setPage = useCallback(\n (next: number) => {\n if (controlledPage === undefined) setInternalPage(next)\n onPageChange?.(next)\n },\n [controlledPage, onPageChange]\n )\n\n function handleSort(key: string) {\n let next: MDataTableSort | null\n\n if (activeSort?.key === key) {\n next = activeSort.dir === 'asc' ? {key, dir: 'desc'} : null\n } else {\n next = {key, dir: 'asc'}\n }\n\n setSort(next)\n }\n\n function toggleFilterValue(key: string, value: string) {\n const current = filters[key] ?? []\n const next = current.includes(value) ? current.filter((item) => item !== value) : [...current, value]\n setFilters({...filters, [key]: next})\n }\n\n const filterOptions = useMemo(() => {\n const map: Record<string, string[]> = {}\n\n for (const filterKey of filterKeys) {\n if (filterKey.options) {\n map[filterKey.key] = filterKey.options\n continue\n }\n\n const values = new Set<string>()\n\n for (const row of data) {\n const value = getNestedValue(row, filterKey.key)\n if (value != null) values.add(String(value))\n }\n\n map[filterKey.key] = Array.from(values).sort()\n }\n\n return map\n }, [data, filterKeys])\n\n const filtered = useMemo(() => {\n let result: T[] = data\n\n if (!manualSearch && filterable && search.trim()) {\n const query = search.toLowerCase()\n\n if (searchKeys && searchKeys.length > 0) {\n result = result.filter((row) =>\n searchKeys.some((key) => {\n const value = getNestedValue(row, key)\n return value != null && String(value).toLowerCase().includes(query)\n })\n )\n } else {\n result = result.filter((row) =>\n columns.some((col) => {\n if (col.filterable === false) return false\n const value = (row as any)[col.key]\n return value != null && String(value).toLowerCase().includes(query)\n })\n )\n }\n }\n\n if (!manualFilters) {\n for (const [key, selectedValues] of Object.entries(filters)) {\n if (!selectedValues || selectedValues.length === 0) continue\n\n result = result.filter((row) => {\n const value = getNestedValue(row, key)\n return value != null && selectedValues.includes(String(value))\n })\n }\n }\n\n return result\n }, [data, manualSearch, manualFilters, filterable, search, searchKeys, columns, filters])\n\n const sorted = useMemo(() => {\n if (manualSort || !activeSort) return filtered\n\n const col = columns.find((item) => item.key === activeSort.key)\n const sortKeyAllowed = sortKeys.some((item) => item.key === activeSort.key)\n if (!col?.sortable && !sortable && !sortKeyAllowed) return filtered\n\n const dir = activeSort.dir === 'asc' ? 1 : -1\n\n return [...filtered].sort((a, b) => {\n const va = (a as any)[activeSort.key]\n const vb = (b as any)[activeSort.key]\n\n if (va == null && vb == null) return 0\n if (va == null) return 1\n if (vb == null) return -1\n if (typeof va === 'number' && typeof vb === 'number') return (va - vb) * dir\n\n return String(va).localeCompare(String(vb)) * dir\n })\n }, [filtered, activeSort, columns, sortable, sortKeys, manualSort])\n\n const totalItems = manualPagination ? (total ?? sorted.length) : sorted.length\n const totalPages = pagination ? Math.max(1, Math.ceil(totalItems / pageSize)) : 1\n const pageData = useMemo(() => {\n if (!pagination || manualPagination) return sorted\n const start = (page - 1) * pageSize\n return sorted.slice(start, start + pageSize)\n }, [sorted, pagination, manualPagination, page, pageSize])\n\n const allKeys = pageData.map((row, index) => getRowKey(row, (page - 1) * pageSize + index, rowKey))\n const allSelected = allKeys.length > 0 && allKeys.every((key) => selected.includes(key))\n\n function toggleAll() {\n if (allSelected) {\n setSelected(selected.filter((key) => !allKeys.includes(key)))\n } else {\n setSelected([...new Set([...selected, ...allKeys])])\n }\n }\n\n function toggleRow(key: string) {\n setSelected(selected.includes(key) ? selected.filter((item) => item !== key) : [...selected, key])\n }\n\n function handleRowClick(key: string, event: React.MouseEvent) {\n const target = event.target as HTMLElement\n if (target.closest('button, a, [data-no-row-select]')) return\n toggleRow(key)\n }\n\n const openFilter = useCallback(() => {\n setFilterOpen((v) => !v)\n setSortOpen(false)\n }, [])\n\n const openSort = useCallback(() => {\n setSortOpen((v) => !v)\n setFilterOpen(false)\n }, [])\n\n const activeSortMenuItem = sortKeys.find((item) => item.key === activeSort?.key)\n const showToolbar = filterable || filterKeys.length > 0 || sortKeys.length > 0\n\n return (\n <div className={cn('data-table', className)} {...rest}>\n {showToolbar && (\n <div className=\"toolbar\">\n {filterable && (\n <MInputSearch\n className=\"filter-search\"\n size=\"sm\"\n fullWidth\n placeholder={filterPlaceholder}\n value={search}\n onChange={(event) => setSearch(event.target.value)}\n onClear={() => setSearch('')}\n />\n )}\n\n {(filterKeys.length > 0 || sortKeys.length > 0) && (\n <div className=\"toolbar-actions\">\n {filterKeys.length > 0 && (\n <>\n <MButton\n ref={filterBtnRef}\n variant=\"outlined\"\n size=\"sm\"\n startIcon={<MFilterIcon />}\n aria-expanded={filterOpen}\n onClick={openFilter}\n >\n Filter\n </MButton>\n <MPopover\n open={filterOpen}\n anchorRef={filterBtnRef}\n onClose={() => setFilterOpen(false)}\n placement=\"bottom-end\"\n className=\"data-table-dropdown\"\n >\n {filterKeys.map((filterKey) => (\n <div key={filterKey.key} className=\"data-table-filter-group\">\n <span className=\"data-table-filter-label\">{filterKey.label}</span>\n {(filterOptions[filterKey.key] ?? []).map((option) => (\n <div key={option} className=\"data-table-filter-option\">\n <MCheckbox\n size=\"sm\"\n clickEffect=\"none\"\n checked={filters[filterKey.key]?.includes(option) ?? false}\n onChange={() => toggleFilterValue(filterKey.key, option)}\n label={option}\n />\n </div>\n ))}\n </div>\n ))}\n </MPopover>\n </>\n )}\n\n {sortKeys.length > 0 && (\n <>\n <MButton\n ref={sortBtnRef}\n variant=\"outlined\"\n size=\"sm\"\n startIcon={\n activeSort ? (\n activeSort.dir === 'asc' ? (\n <MArrowUpIcon />\n ) : (\n <MArrowDownIcon />\n )\n ) : (\n <MSortIcon />\n )\n }\n aria-expanded={sortOpen}\n onClick={openSort}\n >\n {activeSortMenuItem ? `Sort: ${activeSortMenuItem.label}` : 'Sort'}\n </MButton>\n <MPopover\n open={sortOpen}\n anchorRef={sortBtnRef}\n onClose={() => setSortOpen(false)}\n placement=\"bottom-end\"\n className=\"data-table-dropdown\"\n >\n {sortKeys.map((sortItem) => (\n <button\n key={sortItem.key}\n type=\"button\"\n className={cn(\n 'data-table-sort-item',\n activeSort?.key === sortItem.key && 'active'\n )}\n onClick={() => {\n if (activeSort?.key === sortItem.key) {\n setSort({\n key: sortItem.key,\n dir: activeSort.dir === 'asc' ? 'desc' : 'asc',\n })\n } else {\n setSort({key: sortItem.key, dir: 'asc'})\n }\n }}\n >\n {sortItem.label}\n {activeSort?.key === sortItem.key && (\n <span className=\"data-table-sort-dir\">\n {activeSort.dir === 'asc' ? (\n <MArrowUpIcon className=\"data-table-sort-icon\" />\n ) : (\n <MArrowDownIcon className=\"data-table-sort-icon\" />\n )}\n </span>\n )}\n </button>\n ))}\n </MPopover>\n </>\n )}\n </div>\n )}\n </div>\n )}\n <div className=\"scroll\">\n <table className={cn('root', striped && 'striped', compact && 'compact')}>\n <thead className={cn('head', stickyHeader && 'sticky')}>\n <tr>\n {selectable && (\n <th className=\"th check-col\">\n <MCheckbox\n checked={allSelected}\n onChange={toggleAll}\n size=\"sm\"\n clickEffect=\"none\"\n />\n </th>\n )}\n {columns.map((col) => {\n const isSortable = col.sortable ?? sortable\n const isSorted = activeSort?.key === col.key\n\n return (\n <th\n key={col.key}\n className={cn(\n 'th',\n isSortable && 'sortable',\n isSorted && `sorted-${activeSort!.dir}`\n )}\n style={{\n width: col.width,\n textAlign: col.align,\n }}\n onClick={isSortable ? () => handleSort(col.key) : undefined}\n >\n <span className=\"th-content\">\n {col.label}\n {isSortable && (\n <span className=\"sort-icon\">\n {isSorted ? (\n activeSort!.dir === 'asc' ? (\n <MArrowUpIcon aria-hidden=\"true\" />\n ) : (\n <MArrowDownIcon aria-hidden=\"true\" />\n )\n ) : (\n <MArrowUpDownIcon aria-hidden=\"true\" />\n )}\n </span>\n )}\n </span>\n </th>\n )\n })}\n </tr>\n </thead>\n <tbody>\n {pageData.length === 0 && (\n <tr>\n <td className=\"empty\" colSpan={columns.length + (selectable ? 1 : 0)}>\n {emptyText}\n </td>\n </tr>\n )}\n {pageData.map((row, index) => {\n const key = getRowKey(row, (page - 1) * pageSize + index, rowKey)\n const isSelected = selected.includes(key)\n\n return (\n <tr\n key={key}\n className={cn('row', isSelected && 'selected', selectable && 'selectable')}\n onClick={selectable ? (event) => handleRowClick(key, event) : undefined}\n >\n {selectable && (\n <td className=\"td check-col\">\n <MCheckbox\n checked={isSelected}\n onChange={() => {}}\n size=\"sm\"\n clickEffect=\"none\"\n />\n </td>\n )}\n {columns.map((col) => (\n <td key={col.key} className=\"td\" style={{textAlign: col.align}}>\n {col.render\n ? col.render((row as any)[col.key], row, (page - 1) * pageSize + index)\n : (row as any)[col.key]}\n </td>\n ))}\n </tr>\n )\n })}\n </tbody>\n </table>\n </div>\n {pagination && totalPages > 1 && (\n <MPagination total={totalItems} page={page} pageSize={pageSize} onChange={setPage} />\n )}\n </div>\n )\n}\n"],"mappings":"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"}
@@ -0,0 +1,297 @@
1
+ import { Di as e, Oi as t, an as n, in as r, ki as i } from "./icons-CfpYxnfg.js";
2
+ import { t as a } from "./cn-YER3QsV1.js";
3
+ import { t as o } from "./MPopover-Cqz5TsHg.js";
4
+ import { t as s } from "./MButton-DZLLrtQb.js";
5
+ import { t as c } from "./MCheckbox-B7SpcD4H.js";
6
+ import { t as ee } from "./MInputSearch-CmzHPnmC.js";
7
+ import { t as te } from "./MPagination-Dr110are.js";
8
+ import { useCallback as l, useMemo as u, useRef as ne, useState as d } from "react";
9
+ import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
10
+ //#region src/components/data/MDataTable/MDataTable.tsx
11
+ function re(e, t, n) {
12
+ return typeof n == "function" ? n(e, t) : String(typeof n == "string" ? e[n] : e.id ?? t);
13
+ }
14
+ function h(e, t) {
15
+ let n = t.split("."), r = e;
16
+ for (let e of n) {
17
+ if (typeof r != "object" || !r) return;
18
+ r = r[e];
19
+ }
20
+ return r;
21
+ }
22
+ function g({ columns: g, data: _, rowKey: v, sortable: y = !1, filterable: b = !1, selectable: x = !1, pagination: S = !1, pageSize: C = 10, striped: ie = !1, compact: ae = !1, stickyHeader: oe = !1, sort: w, onSortChange: T, search: E, onSearchChange: D, searchKeys: O, filterKeys: k = [], filters: A, onFiltersChange: se, sortKeys: j = [], page: M, onPageChange: ce, total: le, manualSearch: ue = !1, manualFilters: N = !1, manualSort: P = !1, manualPagination: F = !1, selectedKeys: de, onSelectionChange: fe, emptyText: pe = "No data", filterPlaceholder: me = "Search...", className: he, ...ge }) {
23
+ let [_e, ve] = d(null), [ye, be] = d([]), [xe, Se] = d(""), [Ce, we] = d({}), [Te, I] = d(1), [L, R] = d(!1), [z, B] = d(!1), V = ne(null), H = ne(null), U = w === void 0 ? _e : w, W = E === void 0 ? xe : E, G = A === void 0 ? Ce : A, K = M === void 0 ? Te : M, q = de ?? ye, Ee = fe ?? be, De = l((e) => {
24
+ E === void 0 && Se(e), !F && M === void 0 && I(1), D?.(e);
25
+ }, [
26
+ E,
27
+ M,
28
+ F,
29
+ D
30
+ ]), Oe = l((e) => {
31
+ A === void 0 && we(e), !F && M === void 0 && I(1), se?.(e);
32
+ }, [
33
+ A,
34
+ M,
35
+ F,
36
+ se
37
+ ]), J = l((e) => {
38
+ w === void 0 && ve(e), !F && M === void 0 && I(1), T?.(e);
39
+ }, [
40
+ w,
41
+ M,
42
+ F,
43
+ T
44
+ ]), ke = l((e) => {
45
+ M === void 0 && I(e), ce?.(e);
46
+ }, [M, ce]);
47
+ function Ae(e) {
48
+ let t;
49
+ t = U?.key === e ? U.dir === "asc" ? {
50
+ key: e,
51
+ dir: "desc"
52
+ } : null : {
53
+ key: e,
54
+ dir: "asc"
55
+ }, J(t);
56
+ }
57
+ function je(e, t) {
58
+ let n = G[e] ?? [], r = n.includes(t) ? n.filter((e) => e !== t) : [...n, t];
59
+ Oe({
60
+ ...G,
61
+ [e]: r
62
+ });
63
+ }
64
+ let Me = u(() => {
65
+ let e = {};
66
+ for (let t of k) {
67
+ if (t.options) {
68
+ e[t.key] = t.options;
69
+ continue;
70
+ }
71
+ let n = /* @__PURE__ */ new Set();
72
+ for (let e of _) {
73
+ let r = h(e, t.key);
74
+ r != null && n.add(String(r));
75
+ }
76
+ e[t.key] = Array.from(n).sort();
77
+ }
78
+ return e;
79
+ }, [_, k]), Y = u(() => {
80
+ let e = _;
81
+ if (!ue && b && W.trim()) {
82
+ let t = W.toLowerCase();
83
+ e = O && O.length > 0 ? e.filter((e) => O.some((n) => {
84
+ let r = h(e, n);
85
+ return r != null && String(r).toLowerCase().includes(t);
86
+ })) : e.filter((e) => g.some((n) => {
87
+ if (n.filterable === !1) return !1;
88
+ let r = e[n.key];
89
+ return r != null && String(r).toLowerCase().includes(t);
90
+ }));
91
+ }
92
+ if (!N) for (let [t, n] of Object.entries(G)) !n || n.length === 0 || (e = e.filter((e) => {
93
+ let r = h(e, t);
94
+ return r != null && n.includes(String(r));
95
+ }));
96
+ return e;
97
+ }, [
98
+ _,
99
+ ue,
100
+ N,
101
+ b,
102
+ W,
103
+ O,
104
+ g,
105
+ G
106
+ ]), X = u(() => {
107
+ if (P || !U) return Y;
108
+ let e = g.find((e) => e.key === U.key), t = j.some((e) => e.key === U.key);
109
+ if (!e?.sortable && !y && !t) return Y;
110
+ let n = U.dir === "asc" ? 1 : -1;
111
+ return [...Y].sort((e, t) => {
112
+ let r = e[U.key], i = t[U.key];
113
+ return r == null && i == null ? 0 : r == null ? 1 : i == null ? -1 : typeof r == "number" && typeof i == "number" ? (r - i) * n : String(r).localeCompare(String(i)) * n;
114
+ });
115
+ }, [
116
+ Y,
117
+ U,
118
+ g,
119
+ y,
120
+ j,
121
+ P
122
+ ]), Z = F ? le ?? X.length : X.length, Ne = S ? Math.max(1, Math.ceil(Z / C)) : 1, Q = u(() => {
123
+ if (!S || F) return X;
124
+ let e = (K - 1) * C;
125
+ return X.slice(e, e + C);
126
+ }, [
127
+ X,
128
+ S,
129
+ F,
130
+ K,
131
+ C
132
+ ]), $ = Q.map((e, t) => re(e, (K - 1) * C + t, v)), Pe = $.length > 0 && $.every((e) => q.includes(e));
133
+ function Fe() {
134
+ Ee(Pe ? q.filter((e) => !$.includes(e)) : [...new Set([...q, ...$])]);
135
+ }
136
+ function Ie(e) {
137
+ Ee(q.includes(e) ? q.filter((t) => t !== e) : [...q, e]);
138
+ }
139
+ function Le(e, t) {
140
+ t.target.closest("button, a, [data-no-row-select]") || Ie(e);
141
+ }
142
+ let Re = l(() => {
143
+ R((e) => !e), B(!1);
144
+ }, []), ze = l(() => {
145
+ B((e) => !e), R(!1);
146
+ }, []), Be = j.find((e) => e.key === U?.key), Ve = b || k.length > 0 || j.length > 0;
147
+ return /* @__PURE__ */ m("div", {
148
+ className: a("data-table", he),
149
+ ...ge,
150
+ children: [
151
+ Ve && /* @__PURE__ */ m("div", {
152
+ className: "toolbar",
153
+ children: [b && /* @__PURE__ */ p(ee, {
154
+ className: "filter-search",
155
+ size: "sm",
156
+ fullWidth: !0,
157
+ placeholder: me,
158
+ value: W,
159
+ onChange: (e) => De(e.target.value),
160
+ onClear: () => De("")
161
+ }), (k.length > 0 || j.length > 0) && /* @__PURE__ */ m("div", {
162
+ className: "toolbar-actions",
163
+ children: [k.length > 0 && /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p(s, {
164
+ ref: V,
165
+ variant: "outlined",
166
+ size: "sm",
167
+ startIcon: /* @__PURE__ */ p(n, {}),
168
+ "aria-expanded": L,
169
+ onClick: Re,
170
+ children: "Filter"
171
+ }), /* @__PURE__ */ p(o, {
172
+ open: L,
173
+ anchorRef: V,
174
+ onClose: () => R(!1),
175
+ placement: "bottom-end",
176
+ className: "data-table-dropdown",
177
+ children: k.map((e) => /* @__PURE__ */ m("div", {
178
+ className: "data-table-filter-group",
179
+ children: [/* @__PURE__ */ p("span", {
180
+ className: "data-table-filter-label",
181
+ children: e.label
182
+ }), (Me[e.key] ?? []).map((t) => /* @__PURE__ */ p("div", {
183
+ className: "data-table-filter-option",
184
+ children: /* @__PURE__ */ p(c, {
185
+ size: "sm",
186
+ clickEffect: "none",
187
+ checked: G[e.key]?.includes(t) ?? !1,
188
+ onChange: () => je(e.key, t),
189
+ label: t
190
+ })
191
+ }, t))]
192
+ }, e.key))
193
+ })] }), j.length > 0 && /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p(s, {
194
+ ref: H,
195
+ variant: "outlined",
196
+ size: "sm",
197
+ startIcon: U ? U.dir === "asc" ? /* @__PURE__ */ p(i, {}) : /* @__PURE__ */ p(t, {}) : /* @__PURE__ */ p(r, {}),
198
+ "aria-expanded": z,
199
+ onClick: ze,
200
+ children: Be ? `Sort: ${Be.label}` : "Sort"
201
+ }), /* @__PURE__ */ p(o, {
202
+ open: z,
203
+ anchorRef: H,
204
+ onClose: () => B(!1),
205
+ placement: "bottom-end",
206
+ className: "data-table-dropdown",
207
+ children: j.map((e) => /* @__PURE__ */ m("button", {
208
+ type: "button",
209
+ className: a("data-table-sort-item", U?.key === e.key && "active"),
210
+ onClick: () => {
211
+ U?.key === e.key ? J({
212
+ key: e.key,
213
+ dir: U.dir === "asc" ? "desc" : "asc"
214
+ }) : J({
215
+ key: e.key,
216
+ dir: "asc"
217
+ });
218
+ },
219
+ children: [e.label, U?.key === e.key && /* @__PURE__ */ p("span", {
220
+ className: "data-table-sort-dir",
221
+ children: U.dir === "asc" ? /* @__PURE__ */ p(i, { className: "data-table-sort-icon" }) : /* @__PURE__ */ p(t, { className: "data-table-sort-icon" })
222
+ })]
223
+ }, e.key))
224
+ })] })]
225
+ })]
226
+ }),
227
+ /* @__PURE__ */ p("div", {
228
+ className: "scroll",
229
+ children: /* @__PURE__ */ m("table", {
230
+ className: a("root", ie && "striped", ae && "compact"),
231
+ children: [/* @__PURE__ */ p("thead", {
232
+ className: a("head", oe && "sticky"),
233
+ children: /* @__PURE__ */ m("tr", { children: [x && /* @__PURE__ */ p("th", {
234
+ className: "th check-col",
235
+ children: /* @__PURE__ */ p(c, {
236
+ checked: Pe,
237
+ onChange: Fe,
238
+ size: "sm",
239
+ clickEffect: "none"
240
+ })
241
+ }), g.map((n) => {
242
+ let r = n.sortable ?? y, o = U?.key === n.key;
243
+ return /* @__PURE__ */ p("th", {
244
+ className: a("th", r && "sortable", o && `sorted-${U.dir}`),
245
+ style: {
246
+ width: n.width,
247
+ textAlign: n.align
248
+ },
249
+ onClick: r ? () => Ae(n.key) : void 0,
250
+ children: /* @__PURE__ */ m("span", {
251
+ className: "th-content",
252
+ children: [n.label, r && /* @__PURE__ */ p("span", {
253
+ className: "sort-icon",
254
+ children: o ? U.dir === "asc" ? /* @__PURE__ */ p(i, { "aria-hidden": "true" }) : /* @__PURE__ */ p(t, { "aria-hidden": "true" }) : /* @__PURE__ */ p(e, { "aria-hidden": "true" })
255
+ })]
256
+ })
257
+ }, n.key);
258
+ })] })
259
+ }), /* @__PURE__ */ m("tbody", { children: [Q.length === 0 && /* @__PURE__ */ p("tr", { children: /* @__PURE__ */ p("td", {
260
+ className: "empty",
261
+ colSpan: g.length + +!!x,
262
+ children: pe
263
+ }) }), Q.map((e, t) => {
264
+ let n = re(e, (K - 1) * C + t, v), r = q.includes(n);
265
+ return /* @__PURE__ */ m("tr", {
266
+ className: a("row", r && "selected", x && "selectable"),
267
+ onClick: x ? (e) => Le(n, e) : void 0,
268
+ children: [x && /* @__PURE__ */ p("td", {
269
+ className: "td check-col",
270
+ children: /* @__PURE__ */ p(c, {
271
+ checked: r,
272
+ onChange: () => {},
273
+ size: "sm",
274
+ clickEffect: "none"
275
+ })
276
+ }), g.map((n) => /* @__PURE__ */ p("td", {
277
+ className: "td",
278
+ style: { textAlign: n.align },
279
+ children: n.render ? n.render(e[n.key], e, (K - 1) * C + t) : e[n.key]
280
+ }, n.key))]
281
+ }, n);
282
+ })] })]
283
+ })
284
+ }),
285
+ S && Ne > 1 && /* @__PURE__ */ p(te, {
286
+ total: Z,
287
+ page: K,
288
+ pageSize: C,
289
+ onChange: ke
290
+ })
291
+ ]
292
+ });
293
+ }
294
+ //#endregion
295
+ export { g as t };
296
+
297
+ //# sourceMappingURL=MDataTable-DxDS5auV.js.map