@bigbinary/neeto-molecules 5.2.15 → 5.2.17

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 (380) hide show
  1. package/dist/AuditLogs.js +33 -2
  2. package/dist/AuditLogs.js.map +1 -1
  3. package/dist/BrowserSupport.js +1 -1
  4. package/dist/{Columns-CLfAUkgh.js → Columns-C20zru7a.js} +3 -3
  5. package/dist/{Columns-CLfAUkgh.js.map → Columns-C20zru7a.js.map} +1 -1
  6. package/dist/{ConfigureView-OwgPvJyT.js → ConfigureView-Bq_aqEgi.js} +2 -2
  7. package/dist/{ConfigureView-OwgPvJyT.js.map → ConfigureView-Bq_aqEgi.js.map} +1 -1
  8. package/dist/DownloadMobileAppCallout.js +1 -1
  9. package/dist/EmailForm.js +1 -1
  10. package/dist/ErrorPage.js +1 -1
  11. package/dist/FloatingActionMenu.js +1 -1
  12. package/dist/IpRestriction.js +1 -1
  13. package/dist/KeyboardShortcuts.js +1 -1
  14. package/dist/NeetoWidget.js +1 -1
  15. package/dist/PhoneNumber.js +3 -3
  16. package/dist/SendToFields.js +1 -1
  17. package/dist/SessionEnvironment.js +2 -2
  18. package/dist/ShareViaEmail.js +1 -1
  19. package/dist/ShareViaLink.js +1 -1
  20. package/dist/{arrow-left-B-s28MD1.js → arrow-left-CYk5A2HM.js} +3 -3
  21. package/dist/arrow-left-CYk5A2HM.js.map +1 -0
  22. package/dist/{check-DvxzqR83.js → check-BjsXqoAv.js} +3 -3
  23. package/dist/check-BjsXqoAv.js.map +1 -0
  24. package/dist/{chevron-down-BMerqYpK.js → chevron-down-BrliMcYV.js} +3 -3
  25. package/dist/chevron-down-BrliMcYV.js.map +1 -0
  26. package/dist/{chevron-left-BTVCxPw8.js → chevron-left-KSkgB-X_.js} +3 -3
  27. package/dist/chevron-left-KSkgB-X_.js.map +1 -0
  28. package/dist/{chevron-right-DcaO-Hlu.js → chevron-right-CEsVcNLw.js} +3 -3
  29. package/dist/chevron-right-CEsVcNLw.js.map +1 -0
  30. package/dist/{chevron-up-B2_LTx_h.js → chevron-up-DKMKfPJx.js} +3 -3
  31. package/dist/chevron-up-DKMKfPJx.js.map +1 -0
  32. package/dist/{circle-question-mark-Dib48f5Z.js → circle-question-mark-B807GLZf.js} +3 -3
  33. package/dist/circle-question-mark-B807GLZf.js.map +1 -0
  34. package/dist/cjs/AuditLogs.js +33 -2
  35. package/dist/cjs/AuditLogs.js.map +1 -1
  36. package/dist/cjs/BrowserSupport.js +2 -2
  37. package/dist/cjs/BrowserSupport.js.map +1 -1
  38. package/dist/cjs/{Columns-CKgVNYub.js → Columns-rqa7goJu.js} +3 -3
  39. package/dist/cjs/{Columns-CKgVNYub.js.map → Columns-rqa7goJu.js.map} +1 -1
  40. package/dist/cjs/{ConfigureView-yCOhk92l.js → ConfigureView-Dk4x1_mS.js} +2 -2
  41. package/dist/cjs/{ConfigureView-yCOhk92l.js.map → ConfigureView-Dk4x1_mS.js.map} +1 -1
  42. package/dist/cjs/DownloadMobileAppCallout.js +2 -2
  43. package/dist/cjs/DownloadMobileAppCallout.js.map +1 -1
  44. package/dist/cjs/EmailForm.js +1 -1
  45. package/dist/cjs/ErrorPage.js +1 -1
  46. package/dist/cjs/FloatingActionMenu.js +1 -1
  47. package/dist/cjs/IpRestriction.js +1 -1
  48. package/dist/cjs/KeyboardShortcuts.js +2 -2
  49. package/dist/cjs/KeyboardShortcuts.js.map +1 -1
  50. package/dist/cjs/NeetoWidget.js +1 -1
  51. package/dist/cjs/PhoneNumber.js +2 -2
  52. package/dist/cjs/SendToFields.js +1 -1
  53. package/dist/cjs/SessionEnvironment.js +2 -2
  54. package/dist/cjs/ShareViaEmail.js +1 -1
  55. package/dist/cjs/ShareViaLink.js +1 -1
  56. package/dist/cjs/{arrow-left-gtCwH31u.js → arrow-left-BoHj6FUg.js} +3 -3
  57. package/dist/cjs/arrow-left-BoHj6FUg.js.map +1 -0
  58. package/dist/cjs/{check-VgZf0qTr.js → check-DRNN0_Gt.js} +3 -3
  59. package/dist/cjs/check-DRNN0_Gt.js.map +1 -0
  60. package/dist/cjs/{chevron-down-DwiliwN1.js → chevron-down-DF-0X6bx.js} +3 -3
  61. package/dist/cjs/chevron-down-DF-0X6bx.js.map +1 -0
  62. package/dist/cjs/{chevron-left-DWN80ILn.js → chevron-left-BDJbMbE1.js} +3 -3
  63. package/dist/cjs/chevron-left-BDJbMbE1.js.map +1 -0
  64. package/dist/cjs/{chevron-right-DpleLIQp.js → chevron-right-BVivH_B-.js} +3 -3
  65. package/dist/cjs/chevron-right-BVivH_B-.js.map +1 -0
  66. package/dist/cjs/{chevron-up-CpzhFWzM.js → chevron-up-Bp1HQPbw.js} +3 -3
  67. package/dist/cjs/chevron-up-Bp1HQPbw.js.map +1 -0
  68. package/dist/cjs/{circle-question-mark-kxBMPyWQ.js → circle-question-mark-BijjM_4y.js} +3 -3
  69. package/dist/cjs/circle-question-mark-BijjM_4y.js.map +1 -0
  70. package/dist/cjs/{copy-CerjTcLL.js → copy-9aTKZsfo.js} +3 -3
  71. package/dist/cjs/copy-9aTKZsfo.js.map +1 -0
  72. package/dist/cjs/{createLucideIcon-DBDhE7kE.js → createLucideIcon-BbuuRL2u.js} +8 -8
  73. package/dist/cjs/createLucideIcon-BbuuRL2u.js.map +1 -0
  74. package/dist/cjs/{download-B53zeKGa.js → download-DLrlsg6Q.js} +3 -3
  75. package/dist/cjs/download-DLrlsg6Q.js.map +1 -0
  76. package/dist/cjs/{ellipsis-BcfLTtl5.js → ellipsis-DDma6joP.js} +3 -3
  77. package/dist/cjs/ellipsis-DDma6joP.js.map +1 -0
  78. package/dist/cjs/{external-link-C7Cbtssd.js → external-link-CYxRAiwW.js} +3 -3
  79. package/dist/cjs/external-link-CYxRAiwW.js.map +1 -0
  80. package/dist/cjs/{globe-DawgK2Dx.js → globe-D2R-KREO.js} +3 -3
  81. package/dist/cjs/globe-D2R-KREO.js.map +1 -0
  82. package/dist/cjs/{grip-vertical-7cfWc2sE.js → grip-vertical-CXhbcVKI.js} +3 -3
  83. package/dist/cjs/grip-vertical-CXhbcVKI.js.map +1 -0
  84. package/dist/cjs/{house-Bx8edBjy.js → house-C8eoU-LA.js} +3 -3
  85. package/dist/cjs/house-C8eoU-LA.js.map +1 -0
  86. package/dist/cjs/{index-BeqE2JWC.js → index-Ds7kIePa.js} +48 -48
  87. package/dist/cjs/{index-BeqE2JWC.js.map → index-Ds7kIePa.js.map} +1 -1
  88. package/dist/cjs/index-JY2zVpnv.js.map +1 -1
  89. package/dist/cjs/{index.es5.min-CUvhPmKJ.js → index.es5.min-BkGgH3zQ.js} +2 -2
  90. package/dist/cjs/{index.es5.min-CUvhPmKJ.js.map → index.es5.min-BkGgH3zQ.js.map} +1 -1
  91. package/dist/cjs/{info-CpwCcUWd.js → info-Ce_S8v9P.js} +3 -3
  92. package/dist/cjs/info-Ce_S8v9P.js.map +1 -0
  93. package/dist/cjs/{panel-left-close-CLoRPBWH.js → panel-left-close-wBGJw1FJ.js} +3 -3
  94. package/dist/cjs/panel-left-close-wBGJw1FJ.js.map +1 -0
  95. package/dist/cjs/{papaparse-B5u_uWB3.js → papaparse-DKyFpJIO.js} +18 -16
  96. package/dist/cjs/papaparse-DKyFpJIO.js.map +1 -0
  97. package/dist/cjs/{phone-number-YL_ULNtx.js → phone-number-BsEGW0FH.js} +3 -3
  98. package/dist/cjs/{phone-number-YL_ULNtx.js.map → phone-number-BsEGW0FH.js.map} +1 -1
  99. package/dist/cjs/{phone-number-D8DlSqHJ.js → phone-number-Dn-7-Enw.js} +2 -2
  100. package/dist/cjs/{phone-number-D8DlSqHJ.js.map → phone-number-Dn-7-Enw.js.map} +1 -1
  101. package/dist/cjs/{plus-MoDFAiKt.js → plus-B3N_9NiI.js} +3 -3
  102. package/dist/cjs/plus-B3N_9NiI.js.map +1 -0
  103. package/dist/cjs/{prism-tomorrow-BMFuJ5o1.js → prism-tomorrow-D4izdZrU.js} +2 -2
  104. package/dist/cjs/{prism-tomorrow-BMFuJ5o1.js.map → prism-tomorrow-D4izdZrU.js.map} +1 -1
  105. package/dist/cjs/purify.es-BbggLK9I.js +2427 -0
  106. package/dist/cjs/purify.es-BbggLK9I.js.map +1 -0
  107. package/dist/cjs/{search-BBuFYdmG.js → search-DoXqXFel.js} +3 -3
  108. package/dist/cjs/search-DoXqXFel.js.map +1 -0
  109. package/dist/cjs/{smartphone-ChvEvl-o.js → smartphone-C5BfT7lH.js} +4 -4
  110. package/dist/cjs/smartphone-C5BfT7lH.js.map +1 -0
  111. package/dist/cjs/{trash-2-CotPjU5n.js → trash-2-Dic3f2Hq.js} +3 -3
  112. package/dist/cjs/trash-2-Dic3f2Hq.js.map +1 -0
  113. package/dist/cjs/{triangle-alert-De-qkUXK.js → triangle-alert-Bw6b1RVK.js} +3 -3
  114. package/dist/cjs/triangle-alert-Bw6b1RVK.js.map +1 -0
  115. package/dist/cjs/{upload-C5ZnN-d5.js → upload-CyVp0Rxd.js} +3 -3
  116. package/dist/cjs/upload-CyVp0Rxd.js.map +1 -0
  117. package/dist/cjs/{user-Ku5LVfLy.js → user-bZmvS8wE.js} +3 -3
  118. package/dist/cjs/user-bZmvS8wE.js.map +1 -0
  119. package/dist/cjs/v2/AuditLogs.js +45 -14
  120. package/dist/cjs/v2/AuditLogs.js.map +1 -1
  121. package/dist/cjs/v2/BrowserSupport.js +2 -2
  122. package/dist/cjs/v2/BrowserSupport.js.map +1 -1
  123. package/dist/cjs/v2/Builder.js +9 -9
  124. package/dist/cjs/v2/Builder.js.map +1 -1
  125. package/dist/cjs/v2/CalendarView.js +8 -8
  126. package/dist/cjs/v2/Codeblock.js +3 -3
  127. package/dist/cjs/v2/Columns.js +4 -4
  128. package/dist/cjs/v2/ConfigurePageSidebar.js +3 -3
  129. package/dist/cjs/v2/CopyToClipboardButton.js +3 -3
  130. package/dist/cjs/v2/DocumentEditor.js +3 -3
  131. package/dist/cjs/v2/DocumentEditor.js.map +1 -1
  132. package/dist/cjs/v2/DownloadMobileAppCallout.js +2 -2
  133. package/dist/cjs/v2/DownloadMobileAppCallout.js.map +1 -1
  134. package/dist/cjs/v2/DynamicVariables.js +2 -2
  135. package/dist/cjs/v2/DynamicVariables.js.map +1 -1
  136. package/dist/cjs/v2/EmailForm.js +7 -7
  137. package/dist/cjs/v2/EmojiPicker.js +2 -2
  138. package/dist/cjs/v2/EmojiPicker.js.map +1 -1
  139. package/dist/cjs/v2/Engagements.js +2 -2
  140. package/dist/cjs/v2/ErrorPage.js +7 -7
  141. package/dist/cjs/v2/ErrorPage.js.map +1 -1
  142. package/dist/cjs/v2/FileUpload.js +5 -5
  143. package/dist/cjs/v2/FileUpload.js.map +1 -1
  144. package/dist/cjs/v2/FinderModal.js +4 -4
  145. package/dist/cjs/v2/FloatingActionMenu.js +19 -19
  146. package/dist/cjs/v2/FloatingActionMenu.js.map +1 -1
  147. package/dist/cjs/v2/Header.js +4 -4
  148. package/dist/cjs/v2/HelpPopover.js +2 -2
  149. package/dist/cjs/v2/IconPicker.js +3 -3
  150. package/dist/cjs/v2/InlineInput.js +3 -3
  151. package/dist/cjs/v2/Insights.js +3 -3
  152. package/dist/cjs/v2/IntegrationCard.js +4 -4
  153. package/dist/cjs/v2/IpRestriction.js +4 -4
  154. package/dist/cjs/v2/KeyboardShortcuts.js +4 -4
  155. package/dist/cjs/v2/KeyboardShortcuts.js.map +1 -1
  156. package/dist/cjs/v2/MenuBar.js +4 -4
  157. package/dist/cjs/v2/Metadata.js +4 -4
  158. package/dist/cjs/v2/MoreDropdown.js +3 -3
  159. package/dist/cjs/v2/MoreDropdown.js.map +1 -1
  160. package/dist/cjs/v2/NavigationHeader.js +7 -7
  161. package/dist/cjs/v2/NeetoWidget.js +4 -4
  162. package/dist/cjs/v2/Onboarding.js +2 -2
  163. package/dist/cjs/v2/Onboarding.js.map +1 -1
  164. package/dist/cjs/v2/OptionFields.js +6 -6
  165. package/dist/cjs/v2/OptionFields.js.map +1 -1
  166. package/dist/cjs/v2/PhoneNumber.js +6 -6
  167. package/dist/cjs/v2/ProductEmbed.js +9 -9
  168. package/dist/cjs/v2/PublishBlock.js +4 -4
  169. package/dist/cjs/v2/PublishBlock.js.map +1 -1
  170. package/dist/cjs/v2/Rename.js +4 -4
  171. package/dist/cjs/v2/ResponsiveDevicePicker.js +3 -3
  172. package/dist/cjs/v2/ResponsiveDevicePicker.js.map +1 -1
  173. package/dist/cjs/v2/Schedule.js +1020 -0
  174. package/dist/cjs/v2/Schedule.js.map +1 -0
  175. package/dist/cjs/v2/Search.js +2 -2
  176. package/dist/cjs/v2/SendToFields.js +4 -4
  177. package/dist/cjs/v2/SessionEnvironment.js +15 -15
  178. package/dist/cjs/v2/SessionEnvironment.js.map +1 -1
  179. package/dist/cjs/v2/Settings.js +4 -4
  180. package/dist/cjs/v2/ShareRecordingPane.js +3 -3
  181. package/dist/cjs/v2/ShareViaEmail.js +7 -7
  182. package/dist/cjs/v2/ShareViaLink.js +16 -16
  183. package/dist/cjs/v2/ShareViaLink.js.map +1 -1
  184. package/dist/cjs/v2/Sidebar.js +6 -6
  185. package/dist/cjs/v2/StatusDropdown.js +3 -3
  186. package/dist/cjs/v2/StickyRibbonsContainer.js +2 -2
  187. package/dist/cjs/v2/SubHeader.js +7 -7
  188. package/dist/cjs/v2/SubHeader.js.map +1 -1
  189. package/dist/cjs/v2/SuffixedInput.js +4 -4
  190. package/dist/cjs/v2/Taxonomy.js +7 -7
  191. package/dist/cjs/v2/ToggleFeatureCard.js +2 -2
  192. package/dist/cjs/v2/VersionHistory.js +3 -3
  193. package/dist/cjs/v2/VersionHistory.js.map +1 -1
  194. package/dist/cjs/{x-B38UX0_0.js → x-B2CPkf_D.js} +3 -3
  195. package/dist/cjs/x-B2CPkf_D.js.map +1 -0
  196. package/dist/{copy-DhbOoOav.js → copy-Dj71cP65.js} +3 -3
  197. package/dist/copy-Dj71cP65.js.map +1 -0
  198. package/dist/{createLucideIcon-mNMhCCpf.js → createLucideIcon--oLqczpc.js} +8 -8
  199. package/dist/createLucideIcon--oLqczpc.js.map +1 -0
  200. package/dist/{download-CZ7Q6k7-.js → download-DzLjUUyI.js} +3 -3
  201. package/dist/download-DzLjUUyI.js.map +1 -0
  202. package/dist/{ellipsis-DpI9xqUK.js → ellipsis-BSu1ZIFZ.js} +3 -3
  203. package/dist/ellipsis-BSu1ZIFZ.js.map +1 -0
  204. package/dist/{external-link-Bqki-W-9.js → external-link-kW1TjsDx.js} +3 -3
  205. package/dist/external-link-kW1TjsDx.js.map +1 -0
  206. package/dist/{globe-rBiI1CjO.js → globe-B6bOL4zQ.js} +3 -3
  207. package/dist/globe-B6bOL4zQ.js.map +1 -0
  208. package/dist/{grip-vertical-FEAaqOeC.js → grip-vertical-Cam6NdeC.js} +3 -3
  209. package/dist/grip-vertical-Cam6NdeC.js.map +1 -0
  210. package/dist/{house-BkoJwC3b.js → house-DMFunZXB.js} +3 -3
  211. package/dist/house-DMFunZXB.js.map +1 -0
  212. package/dist/index-DAYCJu79.js.map +1 -1
  213. package/dist/{index-0jnA7dx6.js → index-M2g_ZmIA.js} +48 -48
  214. package/dist/{index-0jnA7dx6.js.map → index-M2g_ZmIA.js.map} +1 -1
  215. package/dist/{index.es5.min-B2AiaKmd.js → index.es5.min-Oe75miEx.js} +2 -2
  216. package/dist/{index.es5.min-B2AiaKmd.js.map → index.es5.min-Oe75miEx.js.map} +1 -1
  217. package/dist/{info-DpOFLPLx.js → info-OAcSVel4.js} +3 -3
  218. package/dist/info-OAcSVel4.js.map +1 -0
  219. package/dist/{panel-left-close-37jik3GB.js → panel-left-close-D-7LDcAL.js} +3 -3
  220. package/dist/panel-left-close-D-7LDcAL.js.map +1 -0
  221. package/dist/{papaparse-p7fkGgWo.js → papaparse-D0RO4bD5.js} +18 -16
  222. package/dist/papaparse-D0RO4bD5.js.map +1 -0
  223. package/dist/{phone-number-CJj2wD9_.js → phone-number-G1Cs1Yr0.js} +2 -2
  224. package/dist/{phone-number-CJj2wD9_.js.map → phone-number-G1Cs1Yr0.js.map} +1 -1
  225. package/dist/{phone-number-ChAzsdbN.js → phone-number-pO9BjOom.js} +3 -3
  226. package/dist/{phone-number-ChAzsdbN.js.map → phone-number-pO9BjOom.js.map} +1 -1
  227. package/dist/{plus-clM1IC_E.js → plus-Bnd2C3yl.js} +3 -3
  228. package/dist/plus-Bnd2C3yl.js.map +1 -0
  229. package/dist/{prism-tomorrow-ZUb2Ikm9.js → prism-tomorrow-DWhE3PbD.js} +2 -2
  230. package/dist/{prism-tomorrow-ZUb2Ikm9.js.map → prism-tomorrow-DWhE3PbD.js.map} +1 -1
  231. package/dist/purify.es-_duHfPgC.js +2425 -0
  232. package/dist/purify.es-_duHfPgC.js.map +1 -0
  233. package/dist/{search-DCgpNjip.js → search-H0uYy0W-.js} +3 -3
  234. package/dist/search-H0uYy0W-.js.map +1 -0
  235. package/dist/{smartphone-B-jv1y8j.js → smartphone-BPMMk8y-.js} +4 -4
  236. package/dist/smartphone-BPMMk8y-.js.map +1 -0
  237. package/dist/{trash-2-N0F6K63L.js → trash-2-hGkzsa87.js} +3 -3
  238. package/dist/trash-2-hGkzsa87.js.map +1 -0
  239. package/dist/{triangle-alert-Pkh6pc42.js → triangle-alert-C8gRvUvq.js} +3 -3
  240. package/dist/triangle-alert-C8gRvUvq.js.map +1 -0
  241. package/dist/{upload-BNvlRoRJ.js → upload-LeqaT7IA.js} +3 -3
  242. package/dist/upload-LeqaT7IA.js.map +1 -0
  243. package/dist/{user-A843PT-q.js → user-Dhw9zdMR.js} +3 -3
  244. package/dist/user-Dhw9zdMR.js.map +1 -0
  245. package/dist/v2/AuditLogs.js +45 -14
  246. package/dist/v2/AuditLogs.js.map +1 -1
  247. package/dist/v2/BrowserSupport.js +1 -1
  248. package/dist/v2/Builder.js +9 -9
  249. package/dist/v2/Builder.js.map +1 -1
  250. package/dist/v2/CalendarView.js +8 -8
  251. package/dist/v2/Codeblock.js +3 -3
  252. package/dist/v2/Columns.js +4 -4
  253. package/dist/v2/ConfigurePageSidebar.js +3 -3
  254. package/dist/v2/CopyToClipboardButton.js +3 -3
  255. package/dist/v2/DocumentEditor.js +3 -3
  256. package/dist/v2/DocumentEditor.js.map +1 -1
  257. package/dist/v2/DownloadMobileAppCallout.js +1 -1
  258. package/dist/v2/DynamicVariables.js +2 -2
  259. package/dist/v2/DynamicVariables.js.map +1 -1
  260. package/dist/v2/EmailForm.js +7 -7
  261. package/dist/v2/EmojiPicker.js +2 -2
  262. package/dist/v2/EmojiPicker.js.map +1 -1
  263. package/dist/v2/Engagements.js +2 -2
  264. package/dist/v2/ErrorPage.js +7 -7
  265. package/dist/v2/ErrorPage.js.map +1 -1
  266. package/dist/v2/FileUpload.js +5 -5
  267. package/dist/v2/FileUpload.js.map +1 -1
  268. package/dist/v2/FinderModal.js +4 -4
  269. package/dist/v2/FloatingActionMenu.js +19 -19
  270. package/dist/v2/FloatingActionMenu.js.map +1 -1
  271. package/dist/v2/Header.js +4 -4
  272. package/dist/v2/HelpPopover.js +2 -2
  273. package/dist/v2/IconPicker.js +3 -3
  274. package/dist/v2/InlineInput.js +3 -3
  275. package/dist/v2/Insights.js +3 -3
  276. package/dist/v2/IntegrationCard.js +4 -4
  277. package/dist/v2/IpRestriction.js +4 -4
  278. package/dist/v2/KeyboardShortcuts.js +3 -3
  279. package/dist/v2/MenuBar.js +4 -4
  280. package/dist/v2/Metadata.js +4 -4
  281. package/dist/v2/MoreDropdown.js +3 -3
  282. package/dist/v2/MoreDropdown.js.map +1 -1
  283. package/dist/v2/NavigationHeader.js +7 -7
  284. package/dist/v2/NeetoWidget.js +4 -4
  285. package/dist/v2/Onboarding.js +2 -2
  286. package/dist/v2/Onboarding.js.map +1 -1
  287. package/dist/v2/OptionFields.js +6 -6
  288. package/dist/v2/OptionFields.js.map +1 -1
  289. package/dist/v2/PhoneNumber.js +7 -7
  290. package/dist/v2/ProductEmbed.js +9 -9
  291. package/dist/v2/PublishBlock.js +4 -4
  292. package/dist/v2/PublishBlock.js.map +1 -1
  293. package/dist/v2/Rename.js +4 -4
  294. package/dist/v2/ResponsiveDevicePicker.js +3 -3
  295. package/dist/v2/ResponsiveDevicePicker.js.map +1 -1
  296. package/dist/v2/Schedule.js +989 -0
  297. package/dist/v2/Schedule.js.map +1 -0
  298. package/dist/v2/Search.js +2 -2
  299. package/dist/v2/SendToFields.js +4 -4
  300. package/dist/v2/SessionEnvironment.js +15 -15
  301. package/dist/v2/SessionEnvironment.js.map +1 -1
  302. package/dist/v2/Settings.js +4 -4
  303. package/dist/v2/ShareRecordingPane.js +3 -3
  304. package/dist/v2/ShareViaEmail.js +7 -7
  305. package/dist/v2/ShareViaLink.js +16 -16
  306. package/dist/v2/ShareViaLink.js.map +1 -1
  307. package/dist/v2/Sidebar.js +6 -6
  308. package/dist/v2/StatusDropdown.js +3 -3
  309. package/dist/v2/StickyRibbonsContainer.js +2 -2
  310. package/dist/v2/SubHeader.js +7 -7
  311. package/dist/v2/SubHeader.js.map +1 -1
  312. package/dist/v2/SuffixedInput.js +4 -4
  313. package/dist/v2/Taxonomy.js +7 -7
  314. package/dist/v2/ToggleFeatureCard.js +2 -2
  315. package/dist/v2/VersionHistory.js +3 -3
  316. package/dist/v2/VersionHistory.js.map +1 -1
  317. package/dist/{x-B1Er0oV4.js → x-DcQBAC3X.js} +3 -3
  318. package/dist/x-DcQBAC3X.js.map +1 -0
  319. package/package.json +13 -11
  320. package/src/translations/en.json +17 -16
  321. package/dist/arrow-left-B-s28MD1.js.map +0 -1
  322. package/dist/check-DvxzqR83.js.map +0 -1
  323. package/dist/chevron-down-BMerqYpK.js.map +0 -1
  324. package/dist/chevron-left-BTVCxPw8.js.map +0 -1
  325. package/dist/chevron-right-DcaO-Hlu.js.map +0 -1
  326. package/dist/chevron-up-B2_LTx_h.js.map +0 -1
  327. package/dist/circle-question-mark-Dib48f5Z.js.map +0 -1
  328. package/dist/cjs/arrow-left-gtCwH31u.js.map +0 -1
  329. package/dist/cjs/check-VgZf0qTr.js.map +0 -1
  330. package/dist/cjs/chevron-down-DwiliwN1.js.map +0 -1
  331. package/dist/cjs/chevron-left-DWN80ILn.js.map +0 -1
  332. package/dist/cjs/chevron-right-DpleLIQp.js.map +0 -1
  333. package/dist/cjs/chevron-up-CpzhFWzM.js.map +0 -1
  334. package/dist/cjs/circle-question-mark-kxBMPyWQ.js.map +0 -1
  335. package/dist/cjs/copy-CerjTcLL.js.map +0 -1
  336. package/dist/cjs/createLucideIcon-DBDhE7kE.js.map +0 -1
  337. package/dist/cjs/download-B53zeKGa.js.map +0 -1
  338. package/dist/cjs/ellipsis-BcfLTtl5.js.map +0 -1
  339. package/dist/cjs/external-link-C7Cbtssd.js.map +0 -1
  340. package/dist/cjs/globe-DawgK2Dx.js.map +0 -1
  341. package/dist/cjs/grip-vertical-7cfWc2sE.js.map +0 -1
  342. package/dist/cjs/house-Bx8edBjy.js.map +0 -1
  343. package/dist/cjs/info-CpwCcUWd.js.map +0 -1
  344. package/dist/cjs/panel-left-close-CLoRPBWH.js.map +0 -1
  345. package/dist/cjs/papaparse-B5u_uWB3.js.map +0 -1
  346. package/dist/cjs/plus-MoDFAiKt.js.map +0 -1
  347. package/dist/cjs/purify.es-D81wVm4N.js +0 -1339
  348. package/dist/cjs/purify.es-D81wVm4N.js.map +0 -1
  349. package/dist/cjs/search-BBuFYdmG.js.map +0 -1
  350. package/dist/cjs/smartphone-ChvEvl-o.js.map +0 -1
  351. package/dist/cjs/trash-2-CotPjU5n.js.map +0 -1
  352. package/dist/cjs/triangle-alert-De-qkUXK.js.map +0 -1
  353. package/dist/cjs/ua-parser-DN07nD-R.js +0 -1522
  354. package/dist/cjs/ua-parser-DN07nD-R.js.map +0 -1
  355. package/dist/cjs/upload-C5ZnN-d5.js.map +0 -1
  356. package/dist/cjs/user-Ku5LVfLy.js.map +0 -1
  357. package/dist/cjs/x-B38UX0_0.js.map +0 -1
  358. package/dist/copy-DhbOoOav.js.map +0 -1
  359. package/dist/createLucideIcon-mNMhCCpf.js.map +0 -1
  360. package/dist/download-CZ7Q6k7-.js.map +0 -1
  361. package/dist/ellipsis-DpI9xqUK.js.map +0 -1
  362. package/dist/external-link-Bqki-W-9.js.map +0 -1
  363. package/dist/globe-rBiI1CjO.js.map +0 -1
  364. package/dist/grip-vertical-FEAaqOeC.js.map +0 -1
  365. package/dist/house-BkoJwC3b.js.map +0 -1
  366. package/dist/info-DpOFLPLx.js.map +0 -1
  367. package/dist/panel-left-close-37jik3GB.js.map +0 -1
  368. package/dist/papaparse-p7fkGgWo.js.map +0 -1
  369. package/dist/plus-clM1IC_E.js.map +0 -1
  370. package/dist/purify.es-CRFzu7ib.js +0 -1337
  371. package/dist/purify.es-CRFzu7ib.js.map +0 -1
  372. package/dist/search-DCgpNjip.js.map +0 -1
  373. package/dist/smartphone-B-jv1y8j.js.map +0 -1
  374. package/dist/trash-2-N0F6K63L.js.map +0 -1
  375. package/dist/triangle-alert-Pkh6pc42.js.map +0 -1
  376. package/dist/ua-parser-BLkTkt4a.js +0 -1520
  377. package/dist/ua-parser-BLkTkt4a.js.map +0 -1
  378. package/dist/upload-BNvlRoRJ.js.map +0 -1
  379. package/dist/user-A843PT-q.js.map +0 -1
  380. package/dist/x-B1Er0oV4.js.map +0 -1
@@ -0,0 +1,989 @@
1
+ import { createContext, useContext, memo, useMemo, useState, useEffect, useImperativeHandle, forwardRef } from 'react';
2
+ import { useFormikContext, FieldArray, ErrorMessage, Formik, Form as Form$2 } from 'formik';
3
+ import { findIndexBy, isNotPresent, isPresent, toLabelAndValue, isNotEmpty, noop } from '@bigbinary/neeto-cist';
4
+ import { Typography, Button, DropdownMenu, Label, Checkbox, Tooltip } from '@bigbinary/neeto-atoms';
5
+ import { joinHyphenCase } from '@bigbinary/neeto-commons-frontend/utils/general';
6
+ import { useTranslation } from 'react-i18next';
7
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
8
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
9
+ import { ianaTimezoneToHumanReadable } from '@bigbinary/neeto-time-zones';
10
+ import i18next from 'i18next';
11
+ import { dayjs } from '@bigbinary/neeto-commons-frontend/utils';
12
+ import { timeFormat } from '@bigbinary/neeto-commons-frontend/utils/datetime';
13
+ import { fromPairs, map, prop, pick, assoc, identity, uniq, pluck, difference, append, without } from 'ramda';
14
+ import * as yup from 'yup';
15
+ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
16
+ import _createClass from '@babel/runtime/helpers/createClass';
17
+ import '@babel/runtime/helpers/defineProperty';
18
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
19
+ import { Select, Switch } from '@bigbinary/neeto-atoms/formik';
20
+ import classnames from 'classnames';
21
+ import Copy from '@bigbinary/neeto-icons/Copy';
22
+ import _typeof from '@babel/runtime/helpers/typeof';
23
+ import Plus from '@bigbinary/neeto-icons/Plus';
24
+ import Delete from '@bigbinary/neeto-icons/Delete';
25
+ import Profile from '@bigbinary/neeto-team-members-frontend/v2/Profile';
26
+ import MoreDropdown from './MoreDropdown.js';
27
+ import { n } from '../inject-css-C2dztUxs.js';
28
+ import '@babel/runtime/helpers/objectWithoutProperties';
29
+ import '@bigbinary/neeto-commons-frontend/v2/react-utils';
30
+ import '../createLucideIcon--oLqczpc.js';
31
+ import '../ellipsis-BSu1ZIFZ.js';
32
+
33
+ var DAYS = ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"];
34
+ var DEFAULT_SLOT_INTERVAL = 30;
35
+ var HOUR_FORMATS = {
36
+ H24: "24h"};
37
+ var DEFAULT_HOUR_FORMAT = HOUR_FORMATS.H24;
38
+
39
+ // To avoid prop drilling `allowAddPeriod` to `ScheduleRow` component
40
+ // eslint-disable-next-line @bigbinary/neeto/use-zustand-for-global-state-management
41
+ var ScheduleContext = /*#__PURE__*/createContext({
42
+ allowAddPeriod: true,
43
+ firstDay: 0,
44
+ slotInterval: DEFAULT_SLOT_INTERVAL,
45
+ hourFormat: DEFAULT_HOUR_FORMAT
46
+ });
47
+
48
+ var INTERVALS = ["year", "quarter", "month", "week", "day", "hour", "minute", "second"];
49
+
50
+ var SLOT_TIME_FORMAT = "hh:mm A";
51
+ var SLOT_TIME_FORMAT_24H = "HH:mm";
52
+
53
+ // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats
54
+ var END_OF_DAY = dayjs().endOf("day").format(SLOT_TIME_FORMAT_24H);
55
+
56
+ var DayjsRange = /*#__PURE__*/function () {
57
+ function DayjsRange(startDate, endDate) {
58
+ _classCallCheck(this, DayjsRange);
59
+ var _ref = startDate > endDate ? {
60
+ s: endDate,
61
+ e: startDate
62
+ } : {
63
+ s: startDate,
64
+ e: endDate
65
+ },
66
+ s = _ref.s,
67
+ e = _ref.e;
68
+ this.startDate = s;
69
+ this.endDate = e;
70
+ }
71
+ return _createClass(DayjsRange, [{
72
+ key: "isValidRange",
73
+ value: function isValidRange() {
74
+ return this.startDate.isValid() && this.endDate.isValid();
75
+ }
76
+ }, {
77
+ key: "isOverlap",
78
+ value: function isOverlap(other) {
79
+ if (!(other instanceof DayjsRange) || !other.isValidRange()) {
80
+ return false;
81
+ }
82
+ return this.startDate < other.endDate && this.endDate > other.startDate;
83
+ }
84
+ }, {
85
+ key: "toArrayOfTimeIntervals",
86
+ value: function toArrayOfTimeIntervals() {
87
+ var interval = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 15;
88
+ var startTime = this.startDate;
89
+ var endTime = this.endDate.add(1, "days");
90
+ var allTimes = [];
91
+ while (startTime < endTime) {
92
+ allTimes.push(startTime.format(SLOT_TIME_FORMAT_24H));
93
+ startTime = startTime.add(interval, "minutes");
94
+ }
95
+ return allTimes;
96
+ }
97
+ }]);
98
+ }();
99
+ function extendDayjs(dayjs) {
100
+ dayjs.range = function range(start, end) {
101
+ var dayjsObject = this;
102
+ if (typeof start === "string" && INTERVALS.includes(start)) {
103
+ return new DayjsRange(dayjs(dayjsObject).startOf(start), dayjs(dayjsObject).endOf(start));
104
+ }
105
+ return new DayjsRange(start, end);
106
+ };
107
+ dayjs.range.constructor = DayjsRange;
108
+
109
+ // Returns timeIntervals in 12 hour clock format for the whole day with both AM or PM suffixed
110
+ dayjs.timeIntervalsForDay = function (interval) {
111
+ var _ref2 = [dayjs().startOf("day"), dayjs().startOf("day")],
112
+ startOfDay = _ref2[0],
113
+ endOfDay = _ref2[1];
114
+ return dayjs.range(startOfDay, endOfDay).toArrayOfTimeIntervals(interval);
115
+ };
116
+ return dayjs;
117
+ }
118
+
119
+ // Add range and overlap functions to dayjs
120
+ var dayjsExtended = extendDayjs(dayjs);
121
+
122
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: true } : { done: false, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = true, u = false; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = true, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
123
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
124
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
125
+ yup.addMethod(yup.array, "ensureSlotsCantOverlap", function () {
126
+ return this.test("ensureSlotsCantOverlap", function (periods) {
127
+ var _checkForOverlapBetwe = checkForOverlapBetweenPeriods(periods),
128
+ isOverlapping = _checkForOverlapBetwe.exists,
129
+ range1 = _checkForOverlapBetwe.range1,
130
+ range2 = _checkForOverlapBetwe.range2;
131
+ if (!isOverlapping) return true;
132
+ var _findIndicesOfOverlap = findIndicesOfOverlappingRangesInPeriods({
133
+ range1: range1,
134
+ range2: range2,
135
+ periods: periods
136
+ }),
137
+ firstIndex = _findIndicesOfOverlap.firstIndex,
138
+ secondIndex = _findIndicesOfOverlap.secondIndex;
139
+ var firstError = this.createError({
140
+ path: "".concat(this.path, "[").concat(firstIndex, "]"),
141
+ message: i18next.t("neetoMolecules.schedule.errors.period.overlap", {
142
+ start: timeFormat.time(range2.startDate),
143
+ end: timeFormat.time(range2.endDate)
144
+ })
145
+ });
146
+ var secondError = this.createError({
147
+ path: "".concat(this.path, "[").concat(secondIndex, "]"),
148
+ message: i18next.t("neetoMolecules.schedule.errors.period.overlap", {
149
+ start: timeFormat.time(range1.startDate),
150
+ end: timeFormat.time(range1.endDate)
151
+ })
152
+ });
153
+ return new yup.ValidationError([firstError, secondError]);
154
+ });
155
+ });
156
+ var isFromAndToSame = function isFromAndToSame(startTime, endTime) {
157
+ if (!startTime || !endTime) return true;
158
+ return dayjs(startTime, SLOT_TIME_FORMAT_24H).isSame(dayjs(endTime, SLOT_TIME_FORMAT_24H));
159
+ };
160
+ var sortDays = function sortDays(chosenIndex) {
161
+ if (chosenIndex < 0 || chosenIndex >= 7) return DAYS;
162
+ return [].concat(_toConsumableArray(DAYS.slice(chosenIndex)), _toConsumableArray(DAYS.slice(0, chosenIndex)));
163
+ };
164
+ var wdayValidation = yup.object().shape({
165
+ periods: yup.array().of(yup.object().shape({
166
+ startTime: yup.string().required(i18next.t("neetoMolecules.schedule.errors.period.startTime")),
167
+ endTime: yup.string().required(i18next.t("neetoMolecules.schedule.errors.period.endTime")).test("ensureToTimeNotBehindFromTime", i18next.t("neetoMolecules.schedule.errors.period.isBehind"), function (value) {
168
+ var startTime = this.parent.startTime;
169
+ if (isFromAndToSame(value, startTime)) return true;
170
+ return isTimeBehind(startTime, value);
171
+ })
172
+ }).test("ensureTimeNotSame", i18next.t("neetoMolecules.schedule.errors.period.sameTime"), function (value) {
173
+ var startTime = value.startTime,
174
+ endTime = value.endTime;
175
+ return !isFromAndToSame(startTime, endTime);
176
+ })).ensureSlotsCantOverlap()
177
+ });
178
+ var getScheduleValidationSchema = function getScheduleValidationSchema() {
179
+ return yup.object().shape({
180
+ wdays: yup.object().shape(fromPairs(map(function (day) {
181
+ return [day, wdayValidation];
182
+ }, DAYS)))
183
+ });
184
+ };
185
+ var getUserTimeZone = function getUserTimeZone() {
186
+ var _window$globalProps;
187
+ return (_window$globalProps = window.globalProps) === null || _window$globalProps === void 0 ? void 0 : _window$globalProps.user.timeZone;
188
+ };
189
+ var getTimeZoneAndTime = function getTimeZoneAndTime() {
190
+ var timeZone = getUserTimeZone();
191
+ var humanReadableTimezone = ianaTimezoneToHumanReadable(timeZone);
192
+
193
+ // Requires timezone initialization
194
+ // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats
195
+ return "".concat(humanReadableTimezone, ": ").concat(dayjs().tz(timeZone).format(SLOT_TIME_FORMAT));
196
+ };
197
+ var isTimeBehind = function isTimeBehind(timeA, timeB) {
198
+ return dayjs(timeA, SLOT_TIME_FORMAT_24H).isBefore(dayjs(timeB, SLOT_TIME_FORMAT_24H));
199
+ };
200
+ var sortPeriodsByKey = function sortPeriodsByKey(_ref) {
201
+ var periods = _ref.periods,
202
+ key = _ref.key,
203
+ _ref$order = _ref.order,
204
+ order = _ref$order === void 0 ? "desc" : _ref$order;
205
+ return periods.slice().sort(function (periodA, periodB) {
206
+ var isPeriodBehind = isTimeBehind(periodA[key], periodB[key]);
207
+ if (order === "desc") return isPeriodBehind ? 1 : -1;
208
+ return isPeriodBehind ? -1 : 1;
209
+ });
210
+ };
211
+
212
+ /**
213
+ * Check for overlapping between entered periods
214
+ * @typedef {Object} Slots
215
+ * @property {Array<{startTime:string, endTime: string}>} periods - startTime and endTime
216
+ * @param {Slots} periods - changed time periods
217
+ * @return {{exists: boolean, range1: DayjsRange | null, range2:DayjsRange | null }} - overlapped ranges if exists
218
+ */
219
+ var checkForOverlapBetweenPeriods = function checkForOverlapBetweenPeriods(periods) {
220
+ var response = {
221
+ exists: false,
222
+ range1: null,
223
+ range2: null
224
+ };
225
+ if (!(periods !== null && periods !== void 0 && periods.length)) return response;
226
+ var slotsSortedByStartTime = sortPeriodsByKey({
227
+ periods: periods,
228
+ key: "startTime"
229
+ });
230
+ var _iterator = _createForOfIteratorHelper(slotsSortedByStartTime.slice(0, -1).entries()),
231
+ _step;
232
+ try {
233
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
234
+ var _step$value = _slicedToArray(_step.value, 2),
235
+ index = _step$value[0],
236
+ value = _step$value[1];
237
+ var seg1 = value;
238
+ var seg2 = slotsSortedByStartTime[index + 1];
239
+ var range1 = dayjsExtended.range(dayjsExtended(seg1.startTime, SLOT_TIME_FORMAT_24H), dayjsExtended(seg1.endTime, SLOT_TIME_FORMAT_24H));
240
+ var range2 = dayjsExtended.range(dayjsExtended(seg2.startTime, SLOT_TIME_FORMAT_24H), dayjsExtended(seg2.endTime, SLOT_TIME_FORMAT_24H));
241
+ if (range1.isOverlap(range2)) {
242
+ response = {
243
+ exists: true,
244
+ range1: range1,
245
+ range2: range2
246
+ };
247
+ break;
248
+ }
249
+ }
250
+ } catch (err) {
251
+ _iterator.e(err);
252
+ } finally {
253
+ _iterator.f();
254
+ }
255
+ return response;
256
+ };
257
+ var findIndicesOfOverlappingRangesInPeriods = function findIndicesOfOverlappingRangesInPeriods(_ref2) {
258
+ var range1 = _ref2.range1,
259
+ range2 = _ref2.range2,
260
+ periods = _ref2.periods;
261
+ var firstIndex = findIndexBy({
262
+ startTime: range1.startDate.format(SLOT_TIME_FORMAT_24H)
263
+ }, periods);
264
+ var secondIndex = periods.findIndex(function (slot, index) {
265
+ return index > firstIndex && slot.startTime === range2.startDate.format(SLOT_TIME_FORMAT_24H);
266
+ });
267
+ return {
268
+ firstIndex: firstIndex,
269
+ secondIndex: secondIndex
270
+ };
271
+ };
272
+ var handleCopy = function handleCopy(_ref3) {
273
+ var _values$wdays$day$per;
274
+ var values = _ref3.values,
275
+ day = _ref3.day,
276
+ setFieldValue = _ref3.setFieldValue,
277
+ wdaysToCopy = _ref3.wdaysToCopy;
278
+ var newPeriods = (_values$wdays$day$per = values.wdays[day].periods) === null || _values$wdays$day$per === void 0 ? void 0 : _values$wdays$day$per.map(pick(["startTime", "endTime"]));
279
+ if (isNotPresent(newPeriods)) return;
280
+ wdaysToCopy.forEach(function (wday) {
281
+ return setFieldValue("wdays.".concat(wday), {
282
+ available: true,
283
+ periods: newPeriods.map(assoc("wday", wday))
284
+ });
285
+ });
286
+ };
287
+ var buildFormValuesArray = function buildFormValuesArray(_ref4) {
288
+ var firstDay = _ref4.firstDay,
289
+ periods = _ref4.periods;
290
+ return sortDays(firstDay).map(function (wday) {
291
+ var _periods$wday;
292
+ return {
293
+ periods: sortPeriodsByKey({
294
+ periods: periods[wday],
295
+ key: "startTime",
296
+ order: "asc"
297
+ }),
298
+ available: !!((_periods$wday = periods[wday]) !== null && _periods$wday !== void 0 && _periods$wday.length),
299
+ wday: wday
300
+ };
301
+ });
302
+ };
303
+ var buildFormValuesObject = function buildFormValuesObject(_ref5) {
304
+ var periods = _ref5.periods;
305
+ var formValues = {};
306
+ DAYS.forEach(function (wday) {
307
+ var _periods$wday2;
308
+ formValues[wday] = {
309
+ periods: sortPeriodsByKey({
310
+ periods: periods[wday],
311
+ key: "startTime",
312
+ order: "asc"
313
+ }),
314
+ available: !!((_periods$wday2 = periods[wday]) !== null && _periods$wday2 !== void 0 && _periods$wday2.length),
315
+ wday: wday
316
+ };
317
+ });
318
+ return formValues;
319
+ };
320
+ var processFormValues = function processFormValues(values, firstDay) {
321
+ return {
322
+ wdays: buildFormValuesArray({
323
+ firstDay: firstDay,
324
+ periods: map(prop("periods"), values.wdays)
325
+ })
326
+ };
327
+ };
328
+ var convert24hTo12h = function convert24hTo12h(time) {
329
+ return (
330
+ // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats
331
+ dayjs(time, SLOT_TIME_FORMAT_24H).format(SLOT_TIME_FORMAT)
332
+ );
333
+ };
334
+
335
+ var DisplayAvailability = function DisplayAvailability(_ref) {
336
+ var periods = _ref.periods;
337
+ var _useTranslation = useTranslation(),
338
+ t = _useTranslation.t;
339
+ var _useContext = useContext(ScheduleContext),
340
+ firstDay = _useContext.firstDay,
341
+ hourFormat = _useContext.hourFormat;
342
+ var formatHour = function formatHour(hour) {
343
+ if (hourFormat === HOUR_FORMATS.H24) {
344
+ return hour;
345
+ }
346
+ return convert24hTo12h(hour);
347
+ };
348
+ return /*#__PURE__*/jsx("div", {
349
+ className: "flex w-full flex-col gap-y-3",
350
+ children: sortDays(firstDay).map(function (day) {
351
+ var _sortPeriodsByKey;
352
+ return /*#__PURE__*/jsxs("div", {
353
+ className: "flex w-full flex-wrap items-center justify-center gap-2 rounded-md border border-gray-300 bg-white px-6 py-4 sm:items-start sm:justify-start",
354
+ "data-testid": "day-cards-".concat(day),
355
+ children: [/*#__PURE__*/jsx(Typography, {
356
+ className: "mt-0.5 w-24 text-center sm:w-1/4 sm:text-start",
357
+ "data-testid": joinHyphenCase(day, "day-text"),
358
+ variant: "h5",
359
+ weight: "semibold",
360
+ children: t("neetoMolecules.schedule.days.".concat(day))
361
+ }), /*#__PURE__*/jsx("div", {
362
+ className: "flex flex-grow flex-col items-center gap-y-4 sm:w-1/2",
363
+ children: isPresent(periods[day]) ? (_sortPeriodsByKey = sortPeriodsByKey({
364
+ periods: periods[day],
365
+ key: "startTime",
366
+ order: "asc"
367
+ })) === null || _sortPeriodsByKey === void 0 ? void 0 : _sortPeriodsByKey.map(function (period) {
368
+ return /*#__PURE__*/jsxs("div", {
369
+ className: "flex items-center gap-x-4",
370
+ children: [/*#__PURE__*/jsx(Typography, {
371
+ className: "w-20 text-end",
372
+ variant: "h5",
373
+ weight: "semibold",
374
+ "data-testid": joinHyphenCase(day, period.startTime, "start-time-text"),
375
+ children: formatHour(period.startTime)
376
+ }), /*#__PURE__*/jsx(Typography, {
377
+ as: "span",
378
+ className: "text-gray-600",
379
+ children: "-"
380
+ }), /*#__PURE__*/jsx(Typography, {
381
+ className: "w-20 text-start",
382
+ variant: "h5",
383
+ weight: "semibold",
384
+ "data-testid": joinHyphenCase(day, period.endTime, "start-time-text"),
385
+ children: formatHour(period.endTime)
386
+ })]
387
+ }, period.id);
388
+ }) : /*#__PURE__*/jsx(Typography, {
389
+ className: "mx-8 flex-grow text-center",
390
+ "data-testid": joinHyphenCase(day, "unavailable-time-text"),
391
+ variant: "h5",
392
+ children: t("neetoMolecules.schedule.unavailable")
393
+ })
394
+ })]
395
+ }, day);
396
+ })
397
+ });
398
+ };
399
+
400
+ var buildSlotIntervals = function buildSlotIntervals(_ref) {
401
+ var interval = _ref.interval,
402
+ bookedSlots = _ref.bookedSlots,
403
+ _ref$hourFormat = _ref.hourFormat,
404
+ hourFormat = _ref$hourFormat === void 0 ? DEFAULT_HOUR_FORMAT : _ref$hourFormat;
405
+ var allIntervalsForADay = dayjsExtended.timeIntervalsForDay(interval);
406
+ allIntervalsForADay.push(END_OF_DAY);
407
+ return function (slotType) {
408
+ var selectedValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
409
+ var uniqBookedSlots = uniq(pluck(slotType, bookedSlots));
410
+ var slotsAvailableForBooking = difference(allIntervalsForADay, uniqBookedSlots);
411
+ var slots;
412
+ if (hourFormat === "12h") {
413
+ slots = slotsAvailableForBooking.map(function (value) {
414
+ return {
415
+ value: value,
416
+ label: convert24hTo12h(value)
417
+ };
418
+ });
419
+ } else {
420
+ slots = slotsAvailableForBooking.map(toLabelAndValue);
421
+ }
422
+ if (!selectedValue) return slots;
423
+ var selectedSlot = {
424
+ value: selectedValue,
425
+ label: hourFormat === "12h" ? convert24hTo12h(selectedValue) : selectedValue
426
+ };
427
+ return sortSlots([selectedSlot].concat(_toConsumableArray(slots)));
428
+ };
429
+ };
430
+ var sortSlots = function sortSlots(slots) {
431
+ return slots.sort(function (a, b) {
432
+ return isTimeBehind(a["value"], b["value"]) ? -1 : 1;
433
+ });
434
+ };
435
+ var slotsSelectComponentDefaultValue = function slotsSelectComponentDefaultValue(slot) {
436
+ return slot ? toLabelAndValue(slot) : "";
437
+ };
438
+ var padZeroes = function padZeroes(str) {
439
+ return str.length % 2 === 0 ? str : "0".concat(str);
440
+ };
441
+ var filterSlots = function filterSlots(option, searchTerm) {
442
+ if (isNotPresent(searchTerm) || option.data.__isNew__) return true;
443
+ var searchDigits = searchTerm.replaceAll(/\D+/gi, "");
444
+ var searchLetters = searchTerm.toLowerCase().replaceAll(/[^a-z]/gi, "");
445
+ var paddedDigits = padZeroes(searchDigits);
446
+ var label = (option.label || option.value).toLowerCase();
447
+ var labelDigits = label.replaceAll(/\D+/gi, "");
448
+ var doesNumberMatch = option.value.replace(":", "").startsWith(paddedDigits) || labelDigits.startsWith(paddedDigits);
449
+ var doesAmPmMatch = !searchLetters || label.includes(searchLetters);
450
+ return doesNumberMatch && doesAmPmMatch;
451
+ };
452
+ var formatCreateLabel = identity;
453
+ var parseLooseTime = function parseLooseTime(value) {
454
+ if (!value || typeof value !== "string") return null;
455
+ var trimmed = value.trim();
456
+
457
+ // Try strict 24h format (e.g. "14:30")
458
+ var parsed24h = dayjsExtended(trimmed, SLOT_TIME_FORMAT_24H, true);
459
+ if (parsed24h.isValid()) return parsed24h;
460
+
461
+ // Try strict 12h format (e.g. "03:00 PM")
462
+ var parsed12h = dayjsExtended(trimmed, SLOT_TIME_FORMAT, true);
463
+ if (parsed12h.isValid()) return parsed12h;
464
+
465
+ // Try loose format: "3 pm", "3pm", "3:30pm", "3:30 PM", etc.
466
+ var match = trimmed.match(/^(\d{1,2})(?::(\d{2}))?\s*(am|pm|a|p)$/i);
467
+ if (!match) return null;
468
+ var hours = parseInt(match[1], 10);
469
+ var minutes = match[2] ? parseInt(match[2], 10) : 0;
470
+ var meridiem = match[3].toLowerCase();
471
+ if (hours < 1 || hours > 12 || minutes < 0 || minutes > 59) return null;
472
+ if (meridiem.startsWith("p") && hours !== 12) hours += 12;
473
+ if (meridiem.startsWith("a") && hours === 12) hours = 0;
474
+ return dayjsExtended().hour(hours).minute(minutes).second(0);
475
+ };
476
+ var isValidTimeSlotOption = function isValidTimeSlotOption(value) {
477
+ return parseLooseTime(value) !== null;
478
+ };
479
+ var formatTimeSlotOption = function formatTimeSlotOption(v) {
480
+ var value = v || "";
481
+ if (isNotEmpty(value)) {
482
+ var parsed = parseLooseTime(value);
483
+ if (parsed) {
484
+ value = parsed.format(SLOT_TIME_FORMAT_24H);
485
+ } else if (value[1] === ":") {
486
+ // Pad hour with 0 if single digit (legacy logic)
487
+ value = "0".concat(value);
488
+ }
489
+ }
490
+ return value;
491
+ };
492
+ var roundToNearestHour = function roundToNearestHour(time) {
493
+ var minutes = time.minute();
494
+ if (minutes === 59) return time.startOf("hour").add(1, "hour");
495
+ return time.add(1, "hour");
496
+ };
497
+ var generateNewPeriod = function generateNewPeriod(periods, wday) {
498
+ var lastEndTime = periods[periods.length - 1].endTime;
499
+ var newStartTime = roundToNearestHour(dayjsExtended(lastEndTime, SLOT_TIME_FORMAT_24H));
500
+ var newEndTime = dayjsExtended(newStartTime, SLOT_TIME_FORMAT_24H).add(1, "hour");
501
+ return {
502
+ startTime: dayjsExtended(newStartTime).format(SLOT_TIME_FORMAT_24H),
503
+ endTime: dayjsExtended(newEndTime).format(SLOT_TIME_FORMAT_24H),
504
+ wday: wday
505
+ };
506
+ };
507
+ var addDefaultPeriod = function addDefaultPeriod(wday) {
508
+ return {
509
+ wday: wday,
510
+ startTime: dayjsExtended().hour(9).minute(0).format(SLOT_TIME_FORMAT_24H),
511
+ endTime: dayjsExtended().hour(17).minute(0).format(SLOT_TIME_FORMAT_24H)
512
+ };
513
+ };
514
+
515
+ var ScheduleRow = function ScheduleRow(_ref) {
516
+ var day = _ref.day;
517
+ var _useFormikContext = useFormikContext(),
518
+ values = _useFormikContext.values,
519
+ setFieldValue = _useFormikContext.setFieldValue;
520
+ var bookedSlots = values.wdays[day].periods;
521
+ var _useContext = useContext(ScheduleContext),
522
+ allowAddPeriod = _useContext.allowAddPeriod,
523
+ slotInterval = _useContext.slotInterval,
524
+ hourFormat = _useContext.hourFormat;
525
+ var _useTranslation = useTranslation(),
526
+ t = _useTranslation.t;
527
+ var sortSlotsInterval = useMemo(function () {
528
+ return buildSlotIntervals({
529
+ interval: slotInterval,
530
+ bookedSlots: bookedSlots,
531
+ hourFormat: hourFormat
532
+ });
533
+ }, [slotInterval, bookedSlots, hourFormat]);
534
+ var startTimeOptions = function startTimeOptions(period) {
535
+ return sortSlotsInterval("startTime", period === null || period === void 0 ? void 0 : period.startTime);
536
+ };
537
+ var endTimeOptions = function endTimeOptions(period) {
538
+ return sortSlotsInterval("endTime", period === null || period === void 0 ? void 0 : period.endTime);
539
+ };
540
+ var handleChange = function handleChange(index, field, selected) {
541
+ var value = formatTimeSlotOption(selected);
542
+ setFieldValue("wdays.".concat(day, ".periods[").concat(index, "].").concat(field), value);
543
+ };
544
+ var handleAddRow = function handleAddRow(arrayHelpers) {
545
+ if (isNotPresent(values.wdays[day].periods)) {
546
+ arrayHelpers.push(addDefaultPeriod(day));
547
+ } else {
548
+ arrayHelpers.push(generateNewPeriod(values.wdays[day].periods, day));
549
+ }
550
+ setFieldValue("wdays.".concat(day, ".available"), true);
551
+ };
552
+ var handleDeleteRow = function handleDeleteRow(arrayHelpers, index) {
553
+ var isLastRowDeleted = values.wdays[day].periods.length === 1;
554
+ arrayHelpers.remove(index);
555
+ setFieldValue("wdays.".concat(day, ".available"), !isLastRowDeleted);
556
+ };
557
+ return /*#__PURE__*/jsx(FieldArray, {
558
+ name: "wdays.".concat(day, ".periods"),
559
+ render: function render(arrayHelpers) {
560
+ var _values$wdays$day, _values$wdays$day$per;
561
+ return /*#__PURE__*/jsxs(Fragment, {
562
+ children: [isPresent((_values$wdays$day = values.wdays[day]) === null || _values$wdays$day === void 0 ? void 0 : _values$wdays$day.periods) && /*#__PURE__*/jsx("div", {
563
+ className: "flex w-full flex-col gap-y-2",
564
+ children: (_values$wdays$day$per = values.wdays[day].periods) === null || _values$wdays$day$per === void 0 ? void 0 : _values$wdays$day$per.map(function (period, index) {
565
+ return /*#__PURE__*/jsxs("div", {
566
+ className: "flex w-full flex-col @xl:mx-auto @xl:w-80",
567
+ children: [/*#__PURE__*/jsxs("div", {
568
+ className: "flex items-start gap-2 @xl:gap-3",
569
+ "data-testid": "schedule-row",
570
+ children: [/*#__PURE__*/jsx(Select, {
571
+ formatCreateLabel: formatCreateLabel,
572
+ isClearable: true,
573
+ isCreatable: true,
574
+ isSearchable: true,
575
+ className: "w-full",
576
+ filterOption: filterSlots,
577
+ isValidNewOption: isValidTimeSlotOption,
578
+ name: "wdays.".concat(day, ".periods[").concat(index, "].startTime"),
579
+ options: startTimeOptions(period),
580
+ placeholder: t("neetoMolecules.schedule.startTime"),
581
+ value: period === null || period === void 0 ? void 0 : period.startTime,
582
+ onChange: function onChange(value) {
583
+ return handleChange(index, "startTime", value);
584
+ }
585
+ }), /*#__PURE__*/jsx(Select, {
586
+ formatCreateLabel: formatCreateLabel,
587
+ isClearable: true,
588
+ isCreatable: true,
589
+ isSearchable: true,
590
+ className: "w-full",
591
+ filterOption: filterSlots,
592
+ isValidNewOption: isValidTimeSlotOption,
593
+ name: "wdays.".concat(day, ".periods[").concat(index, "].endTime"),
594
+ options: endTimeOptions(period),
595
+ placeholder: t("neetoMolecules.schedule.endTime"),
596
+ value: period === null || period === void 0 ? void 0 : period.endTime,
597
+ onChange: function onChange(value) {
598
+ return handleChange(index, "endTime", value);
599
+ }
600
+ }), /*#__PURE__*/jsx(Button, {
601
+ className: "flex-shrink-0 self-start",
602
+ "data-testid": "delete-period-button",
603
+ icon: Delete,
604
+ variant: "ghost",
605
+ onClick: function onClick() {
606
+ return handleDeleteRow(arrayHelpers, index);
607
+ }
608
+ })]
609
+ }), /*#__PURE__*/jsx(ErrorMessage, {
610
+ name: "wdays.".concat(day, ".periods[").concat(index, "]"),
611
+ children: function children(message) {
612
+ return _typeof(message) !== "object" && /*#__PURE__*/jsx("span", {
613
+ className: "text-error-500 mt-1 w-11/12 px-2 text-xs",
614
+ children: message
615
+ });
616
+ }
617
+ })]
618
+ }, "wdays.".concat(day, ".periods[").concat(index, "]"));
619
+ })
620
+ }), values.wdays[day].available && allowAddPeriod && /*#__PURE__*/jsx(Button, {
621
+ className: "absolute end-14 top-3 ms-auto flex-shrink-0 @xl:static",
622
+ "data-testid": "add-new-period-button",
623
+ icon: Plus,
624
+ variant: "secondary",
625
+ tooltipProps: {
626
+ content: t("neetoMolecules.schedule.addNewPeriod"),
627
+ position: "top",
628
+ hideAfter: 5000,
629
+ touch: ["hold", 500]
630
+ },
631
+ onClick: function onClick() {
632
+ return handleAddRow(arrayHelpers);
633
+ }
634
+ })]
635
+ });
636
+ }
637
+ });
638
+ };
639
+ var ScheduleRow$1 = /*#__PURE__*/memo(ScheduleRow);
640
+
641
+ var Form = function Form(_ref) {
642
+ var _values$wdays$day;
643
+ var day = _ref.day;
644
+ var _useState = useState([]),
645
+ _useState2 = _slicedToArray(_useState, 2),
646
+ deletedPeriods = _useState2[0],
647
+ setDeletedPeriods = _useState2[1];
648
+ var _useState3 = useState([]),
649
+ _useState4 = _slicedToArray(_useState3, 2),
650
+ wdaysToCopy = _useState4[0],
651
+ setWdaysToCopy = _useState4[1];
652
+ var _useFormikContext = useFormikContext(),
653
+ values = _useFormikContext.values,
654
+ setFieldValue = _useFormikContext.setFieldValue;
655
+ var _useTranslation = useTranslation(),
656
+ t = _useTranslation.t;
657
+ var _useContext = useContext(ScheduleContext),
658
+ firstDay = _useContext.firstDay;
659
+ var restoreDeletedPeriods = function restoreDeletedPeriods() {
660
+ setFieldValue("wdays.".concat(day, ".periods"), deletedPeriods);
661
+ };
662
+ var uncheckCheckbox = function uncheckCheckbox() {
663
+ var _values$wdays$day$per;
664
+ setFieldValue("wdays.".concat(day, ".available"), false);
665
+ setFieldValue("wdays.".concat(day, ".periods"), []);
666
+ if ((_values$wdays$day$per = values.wdays[day].periods[0]) !== null && _values$wdays$day$per !== void 0 && _values$wdays$day$per.id) {
667
+ setDeletedPeriods(values.wdays[day].periods.filter(function (item) {
668
+ return item.startTime && item.endTime;
669
+ }).map(identity));
670
+ }
671
+ };
672
+ var checkCheckbox = function checkCheckbox() {
673
+ var _deletedPeriods$;
674
+ setFieldValue("wdays.".concat(day, ".available"), true);
675
+ if ((_deletedPeriods$ = deletedPeriods[0]) !== null && _deletedPeriods$ !== void 0 && _deletedPeriods$.startTime) {
676
+ restoreDeletedPeriods();
677
+ } else if (isNotPresent(values.wdays[day].periods)) {
678
+ setFieldValue("wdays.".concat(day, ".periods"), [addDefaultPeriod(day)]);
679
+ } else {
680
+ setFieldValue("wdays.".concat(day, ".periods"), [""]);
681
+ }
682
+ };
683
+ var handleCheckbox = function handleCheckbox() {
684
+ if (values.wdays[day].available) {
685
+ uncheckCheckbox();
686
+ } else {
687
+ checkCheckbox();
688
+ }
689
+ };
690
+ var handleCopyChange = function handleCopyChange(checked, day) {
691
+ return setWdaysToCopy(checked ? append(day) : without([day]));
692
+ };
693
+ return /*#__PURE__*/jsx("div", {
694
+ className: "@container relative mb-3 w-full rounded-md border border-gray-300 bg-white px-4 last:mb-0 md:px-6",
695
+ children: /*#__PURE__*/jsxs("div", {
696
+ className: "@xl:flex-no-wrap my-4 flex w-full flex-wrap items-start gap-2 @xl:flex-nowrap @xl:gap-4" // Added `@xl:flex-no-wrap` since neetoCal is using old version of tailwind
697
+ ,
698
+ "data-testid": "working-day-container",
699
+ children: [/*#__PURE__*/jsxs("div", {
700
+ className: classnames("flex w-36 flex-shrink-0 items-center justify-start @xl:mt-1", {
701
+ "mb-3 @xl:mb-0": isPresent((_values$wdays$day = values.wdays[day]) === null || _values$wdays$day === void 0 ? void 0 : _values$wdays$day.periods)
702
+ }),
703
+ children: [/*#__PURE__*/jsx(Switch, {
704
+ "aria-label": "wdays.".concat(day, ".available"),
705
+ checked: values.wdays[day].available,
706
+ className: "flex-grow-0",
707
+ "data-testid": joinHyphenCase(day, "weekly-hours-checkbox"),
708
+ id: "day",
709
+ name: "wdays.".concat(day, ".available"),
710
+ onCheckedChange: handleCheckbox
711
+ }), /*#__PURE__*/jsx(Typography, {
712
+ as: "span",
713
+ "data-testid": joinHyphenCase(day, "day-text"),
714
+ variant: "body2",
715
+ weight: values.wdays[day].available ? "semibold" : "normal",
716
+ className: classnames("ms-2 capitalize", {
717
+ "text-gray-600": !values.wdays[day].available
718
+ }),
719
+ children: t("neetoMolecules.schedule.days.".concat(day))
720
+ })]
721
+ }), /*#__PURE__*/jsx(ScheduleRow$1, {
722
+ day: day
723
+ }), values.wdays[day].available && /*#__PURE__*/jsxs(DropdownMenu, {
724
+ closeOnSelect: true,
725
+ icon: Copy,
726
+ position: "right-start",
727
+ buttonProps: {
728
+ variant: "secondary",
729
+ tooltipProps: {
730
+ content: t("neetoMolecules.schedule.copyScheduleTooltip"),
731
+ position: "top",
732
+ hideAfter: 5000,
733
+ touch: ["hold", 500]
734
+ },
735
+ className: "absolute end-4 top-3 @xl:static flex-shrink-0",
736
+ "data-testid": joinHyphenCase(day, "copy-schedule-icon")
737
+ },
738
+ dropdownProps: {
739
+ className: "dropdown__popup neeto-molecules-schedule__dropdown"
740
+ },
741
+ onClose: function onClose() {
742
+ return setWdaysToCopy([]);
743
+ },
744
+ children: [/*#__PURE__*/jsx("li", {
745
+ children: /*#__PURE__*/jsx(Typography, {
746
+ variant: "h5",
747
+ children: t("neetoMolecules.schedule.copySchedule")
748
+ })
749
+ }), sortDays(firstDay).filter(function (copyDay) {
750
+ return copyDay !== day;
751
+ }).map(function (day) {
752
+ return /*#__PURE__*/jsx("li", {
753
+ onClick: function onClick(e) {
754
+ return e.stopPropagation();
755
+ },
756
+ children: /*#__PURE__*/jsx(Label, {
757
+ className: "w-full cursor-pointer capitalize",
758
+ children: /*#__PURE__*/jsx(Checkbox, {
759
+ checked: wdaysToCopy.includes(day),
760
+ id: day,
761
+ label: t("neetoMolecules.schedule.days.".concat(day)),
762
+ onCheckedChange: function onCheckedChange(checked) {
763
+ return handleCopyChange(checked, day);
764
+ }
765
+ })
766
+ })
767
+ }, day);
768
+ }), /*#__PURE__*/jsx("li", {
769
+ children: /*#__PURE__*/jsx(Button, {
770
+ "data-testid": "copy-schedule-submit-button",
771
+ disabled: isNotPresent(wdaysToCopy),
772
+ label: t("neetoMolecules.common.actions.submit"),
773
+ size: "sm",
774
+ onClick: function onClick() {
775
+ handleCopy({
776
+ values: values,
777
+ day: day,
778
+ setFieldValue: setFieldValue,
779
+ wdaysToCopy: wdaysToCopy
780
+ });
781
+ setWdaysToCopy([]);
782
+ }
783
+ })
784
+ })]
785
+ })]
786
+ })
787
+ });
788
+ };
789
+ var Form$1 = /*#__PURE__*/memo(Form);
790
+
791
+ var Fields = function Fields(_ref) {
792
+ var handleValuesChanged = _ref.handleValuesChanged,
793
+ scheduleRef = _ref.scheduleRef;
794
+ var _useContext = useContext(ScheduleContext),
795
+ firstDay = _useContext.firstDay;
796
+ var formikBag = useFormikContext();
797
+ var values = formikBag.values,
798
+ resetForm = formikBag.resetForm,
799
+ errors = formikBag.errors;
800
+ useEffect(function () {
801
+ handleValuesChanged(processFormValues(values, firstDay), formikBag);
802
+ }, [values]);
803
+ useImperativeHandle(scheduleRef, function () {
804
+ return {
805
+ resetForm: resetForm,
806
+ errors: errors
807
+ };
808
+ });
809
+ return sortDays(firstDay).map(function (wday) {
810
+ return /*#__PURE__*/jsx(Form$1, {
811
+ day: wday
812
+ }, wday);
813
+ });
814
+ };
815
+
816
+ var Header = function Header(_ref) {
817
+ var isCreating = _ref.isCreating,
818
+ isEditable = _ref.isEditable,
819
+ isEditing = _ref.isEditing,
820
+ setIsEditing = _ref.setIsEditing,
821
+ _ref$showTimeZone = _ref.showTimeZone,
822
+ showTimeZone = _ref$showTimeZone === void 0 ? true : _ref$showTimeZone;
823
+ var _useFormikContext = useFormikContext(),
824
+ dirty = _useFormikContext.dirty,
825
+ resetForm = _useFormikContext.resetForm,
826
+ submitForm = _useFormikContext.submitForm,
827
+ isSubmitting = _useFormikContext.isSubmitting;
828
+ var _useTranslation = useTranslation(),
829
+ t = _useTranslation.t;
830
+ var _useState = useState(getTimeZoneAndTime()),
831
+ _useState2 = _slicedToArray(_useState, 2),
832
+ timeZoneAndTime = _useState2[0],
833
+ setTimeZoneAndTime = _useState2[1];
834
+ var _Profile$usePaneState = Profile.usePaneState(),
835
+ _Profile$usePaneState2 = _slicedToArray(_Profile$usePaneState, 2);
836
+ _Profile$usePaneState2[0];
837
+ var setIsProfilePaneOpen = _Profile$usePaneState2[1];
838
+ var handleReset = function handleReset() {
839
+ if (dirty) resetForm();else setIsEditing(false);
840
+ };
841
+ useEffect(function () {
842
+ var time = setInterval(function () {
843
+ setTimeZoneAndTime(getTimeZoneAndTime());
844
+ }, 30000);
845
+ return function () {
846
+ return clearInterval(time);
847
+ };
848
+ }, []);
849
+ return /*#__PURE__*/jsxs("div", {
850
+ className: "mb-6 flex flex-wrap justify-between gap-2",
851
+ children: [showTimeZone && /*#__PURE__*/jsxs("div", {
852
+ className: "flex items-center gap-3",
853
+ "data-testid": "schedule-timezone-header",
854
+ children: [/*#__PURE__*/jsx(Tooltip, {
855
+ content: t("neetoMolecules.schedule.timezoneTooltip"),
856
+ position: "bottom",
857
+ touch: ["hold", 500],
858
+ children: /*#__PURE__*/jsx(Typography, {
859
+ as: "h4",
860
+ "data-testid": "timezone-text",
861
+ variant: "h5",
862
+ weight: "medium",
863
+ children: timeZoneAndTime
864
+ })
865
+ }), isEditable && /*#__PURE__*/jsx(MoreDropdown, {
866
+ dropdownButtonProps: {
867
+ "data-testid": "nui-more-dropdown"
868
+ },
869
+ menuItems: [{
870
+ onClick: function onClick() {
871
+ return setIsProfilePaneOpen(true);
872
+ },
873
+ label: t("neetoMolecules.common.actions.changeTimezone"),
874
+ target: "_blank",
875
+ key: "change-timezone-option",
876
+ "data-testid": "change-timezone-option"
877
+ }]
878
+ })]
879
+ }), isEditing ? /*#__PURE__*/jsxs("div", {
880
+ className: "flex items-center gap-2",
881
+ children: [/*#__PURE__*/jsx(Button, {
882
+ "data-testid": "reset-button",
883
+ variant: "secondary",
884
+ label: !dirty ? t("neetoMolecules.common.actions.cancel") : t("neetoMolecules.common.actions.reset"),
885
+ onClick: handleReset
886
+ }), /*#__PURE__*/jsx(Button, {
887
+ "data-testid": "weekly-hours-save-changes-button",
888
+ disabled: !dirty && !isCreating || isSubmitting,
889
+ label: t("neetoMolecules.common.actions.saveChanges"),
890
+ loading: isSubmitting,
891
+ onClick: submitForm
892
+ })]
893
+ }) : isEditable && /*#__PURE__*/jsx("div", {
894
+ children: /*#__PURE__*/jsx(Button, {
895
+ "data-testid": "weekly-schedule-header",
896
+ label: t("neetoMolecules.schedule.changeAvailability"),
897
+ variant: "default",
898
+ weight: "semibold",
899
+ onClick: function onClick() {
900
+ return setIsEditing(true);
901
+ }
902
+ })
903
+ })]
904
+ });
905
+ };
906
+
907
+ var css = ".neeto-molecules-schedule{margin:auto;max-width:40rem;width:100%}.neeto-molecules-schedule__dropdown{max-height:var(--neeto-ui-dropdown-popup-max-height)!important}";
908
+ n(css,{});
909
+
910
+ var Schedule = /*#__PURE__*/forwardRef(function (_ref, scheduleRef) {
911
+ var periods = _ref.periods,
912
+ _ref$handleSubmit = _ref.handleSubmit,
913
+ handleSubmit = _ref$handleSubmit === void 0 ? noop : _ref$handleSubmit,
914
+ _ref$isEditing = _ref.isEditing,
915
+ isEditing = _ref$isEditing === void 0 ? false : _ref$isEditing,
916
+ setIsEditing = _ref.setIsEditing,
917
+ _ref$showHeader = _ref.showHeader,
918
+ showHeader = _ref$showHeader === void 0 ? true : _ref$showHeader,
919
+ _ref$handleValuesChan = _ref.handleValuesChanged,
920
+ handleValuesChanged = _ref$handleValuesChan === void 0 ? noop : _ref$handleValuesChan,
921
+ _ref$allowAddPeriod = _ref.allowAddPeriod,
922
+ allowAddPeriod = _ref$allowAddPeriod === void 0 ? true : _ref$allowAddPeriod,
923
+ _ref$isEditable = _ref.isEditable,
924
+ isEditable = _ref$isEditable === void 0 ? true : _ref$isEditable,
925
+ _ref$isCreating = _ref.isCreating,
926
+ isCreating = _ref$isCreating === void 0 ? false : _ref$isCreating,
927
+ _ref$firstDay = _ref.firstDay,
928
+ firstDay = _ref$firstDay === void 0 ? 1 : _ref$firstDay,
929
+ _ref$showTimeZone = _ref.showTimeZone,
930
+ showTimeZone = _ref$showTimeZone === void 0 ? true : _ref$showTimeZone,
931
+ _ref$slotInterval = _ref.slotInterval,
932
+ slotInterval = _ref$slotInterval === void 0 ? DEFAULT_SLOT_INTERVAL : _ref$slotInterval,
933
+ _ref$hourFormat = _ref.hourFormat,
934
+ hourFormat = _ref$hourFormat === void 0 ? DEFAULT_HOUR_FORMAT : _ref$hourFormat;
935
+ var validationSchema = useMemo(getScheduleValidationSchema, []);
936
+ var getInitialFormValues = function getInitialFormValues() {
937
+ var isSubmitHandler = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
938
+ if (isSubmitHandler) {
939
+ return buildFormValuesArray({
940
+ firstDay: firstDay,
941
+ periods: periods
942
+ });
943
+ }
944
+ return buildFormValuesObject({
945
+ periods: periods
946
+ });
947
+ };
948
+ return /*#__PURE__*/jsx(ScheduleContext.Provider, {
949
+ value: {
950
+ allowAddPeriod: allowAddPeriod,
951
+ firstDay: firstDay,
952
+ slotInterval: slotInterval,
953
+ hourFormat: hourFormat
954
+ },
955
+ children: /*#__PURE__*/jsx("div", {
956
+ className: "neeto-molecules-schedule flex-shrink-0 border-gray-200",
957
+ children: /*#__PURE__*/jsx(Formik, {
958
+ validationSchema: validationSchema,
959
+ enableReinitialize: true,
960
+ initialValues: {
961
+ wdays: getInitialFormValues()
962
+ },
963
+ onSubmit: function onSubmit(values) {
964
+ handleSubmit(processFormValues(values, firstDay), getInitialFormValues(true));
965
+ },
966
+ children: /*#__PURE__*/jsxs(Fragment, {
967
+ children: [showHeader && /*#__PURE__*/jsx(Header, {
968
+ isCreating: isCreating,
969
+ isEditable: isEditable,
970
+ isEditing: isEditing,
971
+ setIsEditing: setIsEditing,
972
+ showTimeZone: showTimeZone
973
+ }), isEditing || !showHeader ? /*#__PURE__*/jsx(Form$2, {
974
+ children: /*#__PURE__*/jsx(Fields, {
975
+ handleValuesChanged: handleValuesChanged,
976
+ scheduleRef: scheduleRef
977
+ })
978
+ }) : /*#__PURE__*/jsx(DisplayAvailability, {
979
+ periods: periods
980
+ })]
981
+ })
982
+ })
983
+ })
984
+ });
985
+ });
986
+ Schedule.displayName = "Schedule";
987
+
988
+ export { addDefaultPeriod, buildSlotIntervals, Schedule as default, filterSlots, formatCreateLabel, formatTimeSlotOption, generateNewPeriod, isValidTimeSlotOption, slotsSelectComponentDefaultValue };
989
+ //# sourceMappingURL=Schedule.js.map