@bigbinary/neeto-molecules 1.1.10 → 1.1.11

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 (474) hide show
  1. package/dist/AutoSaveInput/autosaveinput.scss +15 -0
  2. package/dist/AutoSaveInput/constants.js +13 -0
  3. package/dist/AutoSaveInput/index.js +124 -0
  4. package/dist/AutoSaveInput/utils.js +10 -0
  5. package/dist/Breadcrumbs/breadcrumbs.scss +33 -0
  6. package/dist/Breadcrumbs/index.js +31 -0
  7. package/dist/BrowserSupport/Callout.js +15 -0
  8. package/dist/BrowserSupport/ContactUs.js +21 -0
  9. package/dist/BrowserSupport/DownloadLink.js +17 -0
  10. package/dist/BrowserSupport/PartialSupportedBrowserVersion.js +17 -0
  11. package/dist/BrowserSupport/UnknownBrowser.js +13 -0
  12. package/dist/BrowserSupport/UnsupportedBrowser.js +24 -0
  13. package/dist/BrowserSupport/UnsupportedBrowserMessage.js +22 -0
  14. package/dist/BrowserSupport/UnsupportedBrowserVersion.js +27 -0
  15. package/dist/BrowserSupport/UnsupportedVersionMessage.js +30 -0
  16. package/dist/BrowserSupport/browsersupport.scss +71 -0
  17. package/dist/BrowserSupport/constants.js +63 -0
  18. package/dist/BrowserSupport/index.js +58 -0
  19. package/dist/BrowserSupport/utils.js +32 -0
  20. package/dist/CalendarView/CustomDatePicker.js +87 -0
  21. package/dist/CalendarView/Header.js +53 -0
  22. package/dist/CalendarView/constants.js +19 -0
  23. package/dist/CalendarView/index.js +83 -0
  24. package/dist/CalendarView/utils.js +50 -0
  25. package/dist/Codeblock/index.js +30 -0
  26. package/dist/{Columns.js → Columns/index.js} +13 -130
  27. package/dist/Columns/utils.js +20 -0
  28. package/dist/ConfirmationModal/constants.js +3 -0
  29. package/dist/{ConfirmationModal.js → ConfirmationModal/index.js} +7 -23
  30. package/dist/ConfirmationModal/utils.js +10 -0
  31. package/dist/Container/container.scss +21 -0
  32. package/dist/Container/index.js +23 -0
  33. package/dist/CopyToClipboardButton/constants.js +13 -0
  34. package/dist/CopyToClipboardButton/copyToClipboard.scss +22 -0
  35. package/dist/CopyToClipboardButton/index.js +59 -0
  36. package/dist/CustomDomain/index.js +98 -0
  37. package/dist/CustomDomainDashboard/DeleteAlert.js +28 -0
  38. package/dist/CustomDomainDashboard/Header.js +32 -0
  39. package/dist/CustomDomainDashboard/Manage/Record.js +42 -0
  40. package/dist/CustomDomainDashboard/Manage/StatusInfo.js +21 -0
  41. package/dist/CustomDomainDashboard/Manage/TagBlock.js +36 -0
  42. package/dist/CustomDomainDashboard/Manage/constants.js +4 -0
  43. package/dist/CustomDomainDashboard/Manage/index.js +124 -0
  44. package/dist/CustomDomainDashboard/Manage/utils.js +8 -0
  45. package/dist/CustomDomainDashboard/api.js +35 -0
  46. package/dist/CustomDomainDashboard/constants.js +2 -0
  47. package/dist/CustomDomainDashboard/index.js +118 -0
  48. package/dist/CustomDomainDashboard/useCustomDomainApi.js +71 -0
  49. package/dist/CustomDomainDashboard/utils.js +84 -0
  50. package/dist/{DateFormat.js → DateFormat/index.js} +8 -25
  51. package/dist/DateRangeFilter/index.js +60 -0
  52. package/dist/DateRangeFilter/utils.js +113 -0
  53. package/dist/DynamicVariables/dynamic-variables.scss +34 -0
  54. package/dist/DynamicVariables/index.js +59 -0
  55. package/dist/DynamicVariables/utils.js +37 -0
  56. package/dist/EmailForm/EmailForm.js +97 -0
  57. package/dist/EmailForm/EmailFormProvider.js +45 -0
  58. package/dist/EmailForm/EmailPreview.js +129 -0
  59. package/dist/EmailForm/ReplyToField.js +55 -0
  60. package/dist/EmailForm/SendToField.js +27 -0
  61. package/dist/EmailForm/SubjectField.js +64 -0
  62. package/dist/EmailForm/constants.js +33 -0
  63. package/dist/EmailForm/contexts/EmailForm.js +7 -0
  64. package/dist/EmailForm/index.js +4 -0
  65. package/dist/EmailForm/utils.js +10 -0
  66. package/dist/EmailPreview/index.js +2 -0
  67. package/dist/{ErrorPage.js → ErrorPage/constants.js} +36 -175
  68. package/dist/ErrorPage/index.js +78 -0
  69. package/dist/Header/Breadcrumbs.js +31 -0
  70. package/dist/Header/Dropdown.js +12 -0
  71. package/dist/Header/constants.js +6 -0
  72. package/dist/Header/header.scss +121 -0
  73. package/dist/Header/index.js +61 -0
  74. package/dist/IconPicker/Icon.js +34 -0
  75. package/dist/IconPicker/NoResults.js +12 -0
  76. package/dist/IconPicker/constants.js +8 -0
  77. package/dist/IconPicker/icon-picker.scss +1 -0
  78. package/dist/IconPicker/index.js +164 -0
  79. package/dist/ImageWithFallback/ImagePlaceholder.js +16 -0
  80. package/dist/ImageWithFallback/index.js +31 -0
  81. package/dist/IntegrationCard/Dropdown.js +45 -0
  82. package/dist/IntegrationCard/Status.js +25 -0
  83. package/dist/IntegrationCard/index.js +128 -0
  84. package/dist/IntegrationDisconnectAlert/index.js +36 -0
  85. package/dist/{IntegrationWalkthroughModal.js → IntegrationWalkthroughModal/index.js} +6 -8
  86. package/dist/IpRestriction/AllowedIpRanges.js +72 -0
  87. package/dist/IpRestriction/CurrentIp.js +26 -0
  88. package/dist/IpRestriction/FormRow.js +77 -0
  89. package/dist/IpRestriction/Row.js +86 -0
  90. package/dist/IpRestriction/apis/allowed_ip_ranges.js +28 -0
  91. package/dist/IpRestriction/apis/current_ip.js +11 -0
  92. package/dist/IpRestriction/apis/ip_restriction.js +16 -0
  93. package/dist/IpRestriction/constants.js +11 -0
  94. package/dist/IpRestriction/hooks/reactQuery/useAllowedIpRanges.js +34 -0
  95. package/dist/IpRestriction/hooks/reactQuery/useCurrentIp.js +10 -0
  96. package/dist/IpRestriction/hooks/reactQuery/useIpRestrictions.js +18 -0
  97. package/dist/IpRestriction/index.js +102 -0
  98. package/dist/IpRestriction/utils.js +67 -0
  99. package/dist/KeyboardShortcuts/Pane/HotKey.js +44 -0
  100. package/dist/KeyboardShortcuts/Pane/HotKeyList.js +42 -0
  101. package/dist/KeyboardShortcuts/Pane/constants.js +25 -0
  102. package/dist/KeyboardShortcuts/Pane/index.js +61 -0
  103. package/dist/KeyboardShortcuts/Pane/keyboard-shortcuts.scss +5 -0
  104. package/dist/KeyboardShortcuts/Pane/utils.js +66 -0
  105. package/dist/KeyboardShortcuts/hooks/useKeyboardShortcutsPaneState.js +31 -0
  106. package/dist/KeyboardShortcuts/index.js +9 -0
  107. package/dist/LoginPage/Form.js +57 -0
  108. package/dist/LoginPage/constants.js +12 -0
  109. package/dist/LoginPage/index.js +103 -0
  110. package/dist/MenuBar/AddNew.js +25 -0
  111. package/dist/MenuBar/Block.js +60 -0
  112. package/dist/MenuBar/Item.js +32 -0
  113. package/dist/MenuBar/Search.js +39 -0
  114. package/dist/MenuBar/SubTitle.js +23 -0
  115. package/dist/MenuBar/index.js +46 -0
  116. package/dist/MenuBar/menubar.scss +154 -0
  117. package/dist/Metadata/Block.js +30 -0
  118. package/dist/Metadata/DetailsBlock.js +86 -0
  119. package/dist/Metadata/constants.js +9 -0
  120. package/dist/Metadata/index.js +29 -0
  121. package/dist/Metadata/metadata.scss +15 -0
  122. package/dist/MoreDropdown/constants.js +25 -0
  123. package/dist/{MoreDropdown.js → MoreDropdown/index.js} +9 -102
  124. package/dist/NavigationHeader/LeftBlock.js +32 -0
  125. package/dist/NavigationHeader/Navigation.js +24 -0
  126. package/dist/NavigationHeader/RightBlock.js +68 -0
  127. package/dist/NavigationHeader/constants.js +11 -0
  128. package/dist/NavigationHeader/index.js +19 -0
  129. package/dist/NavigationHeader/navigation-header.scss +3 -0
  130. package/dist/NeetoWidget/CodeBlock.js +57 -0
  131. package/dist/NeetoWidget/CodeSnippet.js +119 -0
  132. package/dist/NeetoWidget/EmbedCode.js +281 -0
  133. package/dist/NeetoWidget/Main.js +19 -0
  134. package/dist/NeetoWidget/SelectionSwitches/TooltipSwitch.js +25 -0
  135. package/dist/NeetoWidget/SelectionSwitches/index.js +44 -0
  136. package/dist/NeetoWidget/SyntaxHighlighter.js +17 -0
  137. package/dist/NeetoWidget/api.js +20 -0
  138. package/dist/NeetoWidget/constants.js +62 -0
  139. package/dist/NeetoWidget/hooks/useForceUpdate.js +14 -0
  140. package/dist/NeetoWidget/index.js +7 -0
  141. package/dist/NeetoWidget/mutations.js +9 -0
  142. package/dist/NeetoWidget/queries.js +32 -0
  143. package/dist/NeetoWidget/utils.js +83 -0
  144. package/dist/PageLoader/index.js +81 -0
  145. package/dist/PageLoader/page-loader.scss +95 -0
  146. package/dist/PhoneNumber/CountryPicker/SingleValue.js +21 -0
  147. package/dist/PhoneNumber/CountryPicker/constants.js +26 -0
  148. package/dist/PhoneNumber/CountryPicker/index.js +59 -0
  149. package/dist/PhoneNumber/FormikPhoneNumberInput.js +21 -0
  150. package/dist/PhoneNumber/PhoneNumber.js +30 -0
  151. package/dist/PhoneNumber/PhoneNumberInput.js +79 -0
  152. package/dist/PhoneNumber/index.js +5 -0
  153. package/dist/PhoneNumber/utils.js +55 -0
  154. package/dist/PublishBlock/AlertBlock.js +14 -0
  155. package/dist/PublishBlock/index.js +100 -0
  156. package/dist/PublishBlock/publish-block.scss +25 -0
  157. package/dist/Rename/DummySpan.js +21 -0
  158. package/dist/Rename/constants.js +1 -0
  159. package/dist/Rename/index.js +191 -0
  160. package/dist/Rename/rename.scss +69 -0
  161. package/dist/Rename/utils.js +10 -0
  162. package/dist/ResponsiveDevicePicker/constants.js +19 -0
  163. package/dist/ResponsiveDevicePicker/index.js +36 -0
  164. package/dist/Schedule/DisplayAvailability.js +58 -0
  165. package/dist/Schedule/Fields.js +43 -0
  166. package/dist/Schedule/Form/ScheduleRow.js +125 -0
  167. package/dist/Schedule/Form/constants.js +20 -0
  168. package/dist/Schedule/Form/index.js +144 -0
  169. package/dist/Schedule/Form/utils.js +63 -0
  170. package/dist/Schedule/Header.js +76 -0
  171. package/dist/Schedule/ScheduleContext.js +8 -0
  172. package/dist/Schedule/constants.js +8 -0
  173. package/dist/Schedule/dayjsExtended/constants.js +1 -0
  174. package/dist/Schedule/dayjsExtended/index.js +14 -0
  175. package/dist/Schedule/dayjsExtended/range.js +73 -0
  176. package/dist/Schedule/index.js +80 -0
  177. package/dist/Schedule/utils.js +152 -0
  178. package/dist/Scrollable/constants.js +8 -0
  179. package/dist/Scrollable/index.js +26 -0
  180. package/dist/Scrollable/scrollable.scss +32 -0
  181. package/dist/Security/AllowedKeywords/Add.js +38 -0
  182. package/dist/Security/AllowedKeywords/index.js +38 -0
  183. package/dist/Security/PasswordBlock.js +31 -0
  184. package/dist/Security/RadioBlock.js +38 -0
  185. package/dist/Security/api.js +12 -0
  186. package/dist/Security/constants.js +58 -0
  187. package/dist/Security/index.js +68 -0
  188. package/dist/Security/useSecurityApi.js +22 -0
  189. package/dist/Security/utils.js +31 -0
  190. package/dist/SendToFields/FilePicker.js +34 -0
  191. package/dist/SendToFields/constants.js +6 -0
  192. package/dist/SendToFields/index.js +102 -0
  193. package/dist/SendToFields/utils.js +54 -0
  194. package/dist/Settings/Category.js +30 -0
  195. package/dist/Settings/Item.js +38 -0
  196. package/dist/Settings/index.js +37 -0
  197. package/dist/Settings/utils.js +4 -0
  198. package/dist/ShareViaEmail/EmailBodyEditor.js +22 -0
  199. package/dist/ShareViaEmail/FilePicker.js +43 -0
  200. package/dist/ShareViaEmail/Form.js +101 -0
  201. package/dist/ShareViaEmail/FormikDatePicker.js +24 -0
  202. package/dist/ShareViaEmail/constants.js +14 -0
  203. package/dist/ShareViaEmail/index.js +89 -0
  204. package/dist/ShareViaEmail/utils.js +72 -0
  205. package/dist/ShareViaLink/EditURL.js +74 -0
  206. package/dist/ShareViaLink/Link.js +105 -0
  207. package/dist/ShareViaLink/QRCode.js +41 -0
  208. package/dist/ShareViaLink/RegenerateURL.js +47 -0
  209. package/dist/ShareViaLink/SocialMedia.js +52 -0
  210. package/dist/ShareViaLink/constants.js +25 -0
  211. package/dist/ShareViaLink/edit-url.scss +8 -0
  212. package/dist/ShareViaLink/index.js +46 -0
  213. package/dist/ShareViaLink/utils.js +47 -0
  214. package/dist/Sidebar/AppSwitcher/AppLink.js +45 -0
  215. package/dist/Sidebar/AppSwitcher/Backdrop.js +13 -0
  216. package/dist/Sidebar/AppSwitcher/Body.js +65 -0
  217. package/dist/Sidebar/AppSwitcher/Portal.js +27 -0
  218. package/dist/Sidebar/AppSwitcher/appswitcher.scss +164 -0
  219. package/dist/Sidebar/AppSwitcher/index.js +47 -0
  220. package/dist/Sidebar/AppSwitcher/utils.js +25 -0
  221. package/dist/Sidebar/Chevron.js +14 -0
  222. package/dist/Sidebar/FeaturedTooltip.js +19 -0
  223. package/dist/Sidebar/Footer/AppSwitcherButton.js +48 -0
  224. package/dist/Sidebar/Footer/ProfileButton.js +30 -0
  225. package/dist/Sidebar/Footer/index.js +56 -0
  226. package/dist/Sidebar/Footer/utils.js +39 -0
  227. package/dist/Sidebar/Header.js +33 -0
  228. package/dist/Sidebar/HelpSection/HelpSectionMenu.js +52 -0
  229. package/dist/Sidebar/HelpSection/index.js +32 -0
  230. package/dist/Sidebar/Links.js +112 -0
  231. package/dist/Sidebar/NavIconWrapper.js +20 -0
  232. package/dist/Sidebar/ProfileSection/LinkSection.js +36 -0
  233. package/dist/Sidebar/ProfileSection/ProfileMenu.js +48 -0
  234. package/dist/Sidebar/ProfileSection/index.js +42 -0
  235. package/dist/Sidebar/constants.js +40 -0
  236. package/dist/Sidebar/index.js +94 -0
  237. package/dist/Sidebar/sidebar.scss +379 -0
  238. package/dist/Sidebar/utils.js +18 -0
  239. package/dist/SubHeader/RightBlock/Columns.js +35 -0
  240. package/dist/SubHeader/RightBlock/Download.js +28 -0
  241. package/dist/SubHeader/RightBlock/Filter.js +31 -0
  242. package/dist/SubHeader/RightBlock/index.js +21 -0
  243. package/dist/SubHeader/RightBlock/utils.js +13 -0
  244. package/dist/SubHeader/index.js +28 -0
  245. package/dist/SubHeader/subheader.scss +78 -0
  246. package/dist/TableWrapper/index.js +18 -0
  247. package/dist/ThemeSidebar/Customize/Logo.js +39 -0
  248. package/dist/ThemeSidebar/Customize/Properties.js +170 -0
  249. package/dist/ThemeSidebar/Customize/index.js +66 -0
  250. package/dist/ThemeSidebar/Themes/ThemeCard.js +135 -0
  251. package/dist/ThemeSidebar/Themes/index.js +110 -0
  252. package/dist/ThemeSidebar/TitleBar.js +62 -0
  253. package/dist/ThemeSidebar/constants.js +127 -0
  254. package/dist/ThemeSidebar/fields/AlignmentBlock.js +50 -0
  255. package/dist/ThemeSidebar/fields/Card.js +19 -0
  256. package/dist/ThemeSidebar/fields/ColorBlock.js +19 -0
  257. package/dist/ThemeSidebar/fields/FontPickerBlock.js +35 -0
  258. package/dist/ThemeSidebar/fields/ImageBlock/ImageUploader.js +67 -0
  259. package/dist/ThemeSidebar/fields/ImageBlock/ProgressBar.js +22 -0
  260. package/dist/ThemeSidebar/fields/ImageBlock/index.js +55 -0
  261. package/dist/ThemeSidebar/fields/SelectBlock.js +24 -0
  262. package/dist/ThemeSidebar/fields/SliderBlock.js +30 -0
  263. package/dist/ThemeSidebar/fields/SwitchBlock.js +17 -0
  264. package/dist/ThemeSidebar/fields/TextBlock.js +13 -0
  265. package/dist/ThemeSidebar/fields/slider.scss +199 -0
  266. package/dist/ThemeSidebar/hooks/useDirectUploadDropzone.js +149 -0
  267. package/dist/ThemeSidebar/index.js +118 -0
  268. package/dist/ThemeSidebar/themeSidebar.scss +45 -0
  269. package/dist/ThemeSidebar/utils.js +169 -0
  270. package/dist/TimeFormat/index.js +3 -0
  271. package/dist/TimezoneMismatchModal/apis/time_zone.js +9 -0
  272. package/dist/TimezoneMismatchModal/index.js +83 -0
  273. package/dist/TimezoneMismatchModal/useTimeZoneApi.js +10 -0
  274. package/dist/TimezoneMismatchModal/utils.js +12 -0
  275. package/dist/ToggleFeatureCard/ToolTipSwitch.js +31 -0
  276. package/dist/ToggleFeatureCard/constants.js +5 -0
  277. package/dist/ToggleFeatureCard/hooks/useScrollIntoView.js +11 -0
  278. package/dist/ToggleFeatureCard/index.js +148 -0
  279. package/dist/ToggleFeatureCard/toggleFeatureCard.scss +4 -0
  280. package/package.json +27 -34
  281. package/dist/AutoSaveInput.cjs.js +0 -724
  282. package/dist/AutoSaveInput.cjs.js.map +0 -1
  283. package/dist/AutoSaveInput.js +0 -718
  284. package/dist/AutoSaveInput.js.map +0 -1
  285. package/dist/Breadcrumbs.cjs.js +0 -44
  286. package/dist/Breadcrumbs.cjs.js.map +0 -1
  287. package/dist/Breadcrumbs.js +0 -38
  288. package/dist/Breadcrumbs.js.map +0 -1
  289. package/dist/BrowserSupport.cjs.js +0 -1731
  290. package/dist/BrowserSupport.cjs.js.map +0 -1
  291. package/dist/BrowserSupport.js +0 -1725
  292. package/dist/BrowserSupport.js.map +0 -1
  293. package/dist/CalendarView.cjs.js +0 -610
  294. package/dist/CalendarView.cjs.js.map +0 -1
  295. package/dist/CalendarView.js +0 -598
  296. package/dist/CalendarView.js.map +0 -1
  297. package/dist/Codeblock.cjs.js +0 -302
  298. package/dist/Codeblock.cjs.js.map +0 -1
  299. package/dist/Codeblock.js +0 -296
  300. package/dist/Codeblock.js.map +0 -1
  301. package/dist/Columns.cjs.js +0 -248
  302. package/dist/Columns.cjs.js.map +0 -1
  303. package/dist/Columns.js.map +0 -1
  304. package/dist/ConfirmationModal.cjs.js +0 -87
  305. package/dist/ConfirmationModal.cjs.js.map +0 -1
  306. package/dist/ConfirmationModal.js.map +0 -1
  307. package/dist/Container.cjs.js +0 -1277
  308. package/dist/Container.cjs.js.map +0 -1
  309. package/dist/Container.js +0 -1271
  310. package/dist/Container.js.map +0 -1
  311. package/dist/CopyToClipboardButton.cjs.js +0 -275
  312. package/dist/CopyToClipboardButton.cjs.js.map +0 -1
  313. package/dist/CopyToClipboardButton.js +0 -269
  314. package/dist/CopyToClipboardButton.js.map +0 -1
  315. package/dist/CustomDomain.cjs.js +0 -774
  316. package/dist/CustomDomain.cjs.js.map +0 -1
  317. package/dist/CustomDomain.js +0 -747
  318. package/dist/CustomDomain.js.map +0 -1
  319. package/dist/CustomDomainDashboard.cjs.js +0 -2370
  320. package/dist/CustomDomainDashboard.cjs.js.map +0 -1
  321. package/dist/CustomDomainDashboard.js +0 -2342
  322. package/dist/CustomDomainDashboard.js.map +0 -1
  323. package/dist/DateFormat.cjs.js +0 -51
  324. package/dist/DateFormat.cjs.js.map +0 -1
  325. package/dist/DateFormat.js.map +0 -1
  326. package/dist/DateRangeFilter.cjs.js +0 -236
  327. package/dist/DateRangeFilter.cjs.js.map +0 -1
  328. package/dist/DateRangeFilter.js +0 -229
  329. package/dist/DateRangeFilter.js.map +0 -1
  330. package/dist/DynamicVariables.cjs.js +0 -189
  331. package/dist/DynamicVariables.cjs.js.map +0 -1
  332. package/dist/DynamicVariables.js +0 -183
  333. package/dist/DynamicVariables.js.map +0 -1
  334. package/dist/EmailForm.cjs.js +0 -4295
  335. package/dist/EmailForm.cjs.js.map +0 -1
  336. package/dist/EmailForm.js +0 -4265
  337. package/dist/EmailForm.js.map +0 -1
  338. package/dist/EmailPreview.cjs.js +0 -1419
  339. package/dist/EmailPreview.cjs.js.map +0 -1
  340. package/dist/EmailPreview.js +0 -1413
  341. package/dist/EmailPreview.js.map +0 -1
  342. package/dist/ErrorPage.cjs.js +0 -226
  343. package/dist/ErrorPage.cjs.js.map +0 -1
  344. package/dist/ErrorPage.js.map +0 -1
  345. package/dist/Header.cjs.js +0 -188
  346. package/dist/Header.cjs.js.map +0 -1
  347. package/dist/Header.js +0 -182
  348. package/dist/Header.js.map +0 -1
  349. package/dist/IconPicker.cjs.js +0 -1308
  350. package/dist/IconPicker.cjs.js.map +0 -1
  351. package/dist/IconPicker.js +0 -1302
  352. package/dist/IconPicker.js.map +0 -1
  353. package/dist/ImageWithFallback.cjs.js +0 -247
  354. package/dist/ImageWithFallback.cjs.js.map +0 -1
  355. package/dist/ImageWithFallback.js +0 -241
  356. package/dist/ImageWithFallback.js.map +0 -1
  357. package/dist/IntegrationCard.cjs.js +0 -409
  358. package/dist/IntegrationCard.cjs.js.map +0 -1
  359. package/dist/IntegrationCard.js +0 -403
  360. package/dist/IntegrationCard.js.map +0 -1
  361. package/dist/IntegrationDisconnectAlert.cjs.js +0 -89
  362. package/dist/IntegrationDisconnectAlert.cjs.js.map +0 -1
  363. package/dist/IntegrationDisconnectAlert.js +0 -80
  364. package/dist/IntegrationDisconnectAlert.js.map +0 -1
  365. package/dist/IntegrationWalkthroughModal.cjs.js +0 -50
  366. package/dist/IntegrationWalkthroughModal.cjs.js.map +0 -1
  367. package/dist/IntegrationWalkthroughModal.js.map +0 -1
  368. package/dist/IpRestriction.cjs.js +0 -3931
  369. package/dist/IpRestriction.cjs.js.map +0 -1
  370. package/dist/IpRestriction.js +0 -3905
  371. package/dist/IpRestriction.js.map +0 -1
  372. package/dist/KeyboardShortcuts.cjs.js +0 -2263
  373. package/dist/KeyboardShortcuts.cjs.js.map +0 -1
  374. package/dist/KeyboardShortcuts.js +0 -2256
  375. package/dist/KeyboardShortcuts.js.map +0 -1
  376. package/dist/LoginPage.cjs.js +0 -618
  377. package/dist/LoginPage.cjs.js.map +0 -1
  378. package/dist/LoginPage.js +0 -593
  379. package/dist/LoginPage.js.map +0 -1
  380. package/dist/MenuBar.cjs.js +0 -34273
  381. package/dist/MenuBar.cjs.js.map +0 -1
  382. package/dist/MenuBar.js +0 -34267
  383. package/dist/MenuBar.js.map +0 -1
  384. package/dist/Metadata.cjs.js +0 -272
  385. package/dist/Metadata.cjs.js.map +0 -1
  386. package/dist/Metadata.js +0 -266
  387. package/dist/Metadata.js.map +0 -1
  388. package/dist/MoreDropdown.cjs.js +0 -168
  389. package/dist/MoreDropdown.cjs.js.map +0 -1
  390. package/dist/MoreDropdown.js.map +0 -1
  391. package/dist/NavigationHeader.cjs.js +0 -756
  392. package/dist/NavigationHeader.cjs.js.map +0 -1
  393. package/dist/NavigationHeader.js +0 -750
  394. package/dist/NavigationHeader.js.map +0 -1
  395. package/dist/NeetoWidget.cjs.js +0 -3375
  396. package/dist/NeetoWidget.cjs.js.map +0 -1
  397. package/dist/NeetoWidget.js +0 -3348
  398. package/dist/NeetoWidget.js.map +0 -1
  399. package/dist/PageLoader.cjs.js +0 -158
  400. package/dist/PageLoader.cjs.js.map +0 -1
  401. package/dist/PageLoader.js +0 -134
  402. package/dist/PageLoader.js.map +0 -1
  403. package/dist/PhoneNumber.cjs.js +0 -7021
  404. package/dist/PhoneNumber.cjs.js.map +0 -1
  405. package/dist/PhoneNumber.js +0 -6989
  406. package/dist/PhoneNumber.js.map +0 -1
  407. package/dist/PublishBlock.cjs.js +0 -224
  408. package/dist/PublishBlock.cjs.js.map +0 -1
  409. package/dist/PublishBlock.js +0 -218
  410. package/dist/PublishBlock.js.map +0 -1
  411. package/dist/Rename.cjs.js +0 -516
  412. package/dist/Rename.cjs.js.map +0 -1
  413. package/dist/Rename.js +0 -510
  414. package/dist/Rename.js.map +0 -1
  415. package/dist/ResponsiveDevicePicker.cjs.js +0 -260
  416. package/dist/ResponsiveDevicePicker.cjs.js.map +0 -1
  417. package/dist/ResponsiveDevicePicker.js +0 -254
  418. package/dist/ResponsiveDevicePicker.js.map +0 -1
  419. package/dist/Schedule.cjs.js +0 -1077
  420. package/dist/Schedule.cjs.js.map +0 -1
  421. package/dist/Schedule.js +0 -1046
  422. package/dist/Schedule.js.map +0 -1
  423. package/dist/Scrollable.cjs.js +0 -188
  424. package/dist/Scrollable.cjs.js.map +0 -1
  425. package/dist/Scrollable.js +0 -182
  426. package/dist/Scrollable.js.map +0 -1
  427. package/dist/Security.cjs.js +0 -1921
  428. package/dist/Security.cjs.js.map +0 -1
  429. package/dist/Security.js +0 -1895
  430. package/dist/Security.js.map +0 -1
  431. package/dist/SendToFields.cjs.js +0 -2524
  432. package/dist/SendToFields.cjs.js.map +0 -1
  433. package/dist/SendToFields.js +0 -2517
  434. package/dist/SendToFields.js.map +0 -1
  435. package/dist/Settings.cjs.js +0 -501
  436. package/dist/Settings.cjs.js.map +0 -1
  437. package/dist/Settings.js +0 -495
  438. package/dist/Settings.js.map +0 -1
  439. package/dist/ShareViaEmail.cjs.js +0 -4272
  440. package/dist/ShareViaEmail.cjs.js.map +0 -1
  441. package/dist/ShareViaEmail.js +0 -4246
  442. package/dist/ShareViaEmail.js.map +0 -1
  443. package/dist/ShareViaLink.cjs.js +0 -1512
  444. package/dist/ShareViaLink.cjs.js.map +0 -1
  445. package/dist/ShareViaLink.js +0 -1486
  446. package/dist/ShareViaLink.js.map +0 -1
  447. package/dist/Sidebar.cjs.js +0 -34985
  448. package/dist/Sidebar.cjs.js.map +0 -1
  449. package/dist/Sidebar.js +0 -34959
  450. package/dist/Sidebar.js.map +0 -1
  451. package/dist/SubHeader.cjs.js +0 -283
  452. package/dist/SubHeader.cjs.js.map +0 -1
  453. package/dist/SubHeader.js +0 -276
  454. package/dist/SubHeader.js.map +0 -1
  455. package/dist/TableWrapper.cjs.js +0 -87
  456. package/dist/TableWrapper.cjs.js.map +0 -1
  457. package/dist/TableWrapper.js +0 -81
  458. package/dist/TableWrapper.js.map +0 -1
  459. package/dist/ThemeSidebar.cjs.js +0 -13705
  460. package/dist/ThemeSidebar.cjs.js.map +0 -1
  461. package/dist/ThemeSidebar.js +0 -13680
  462. package/dist/ThemeSidebar.js.map +0 -1
  463. package/dist/TimeFormat.cjs.js +0 -53
  464. package/dist/TimeFormat.cjs.js.map +0 -1
  465. package/dist/TimeFormat.js +0 -47
  466. package/dist/TimeFormat.js.map +0 -1
  467. package/dist/TimezoneMismatchModal.cjs.js +0 -176
  468. package/dist/TimezoneMismatchModal.cjs.js.map +0 -1
  469. package/dist/TimezoneMismatchModal.js +0 -168
  470. package/dist/TimezoneMismatchModal.js.map +0 -1
  471. package/dist/ToggleFeatureCard.cjs.js +0 -389
  472. package/dist/ToggleFeatureCard.cjs.js.map +0 -1
  473. package/dist/ToggleFeatureCard.js +0 -383
  474. package/dist/ToggleFeatureCard.js.map +0 -1
@@ -0,0 +1,144 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import React, { useState } from "react";
3
+ import { isNotPresent } from "@bigbinary/neeto-commons-frontend/pure";
4
+ import { joinHyphenCase } from "@bigbinary/neeto-commons-frontend/utils";
5
+ import { Copy } from "@bigbinary/neeto-icons";
6
+ import { Typography, Dropdown, Button, Label, Checkbox } from "@bigbinary/neetoui";
7
+ import { Checkbox as FormikCheckbox } from "@bigbinary/neetoui/formik";
8
+ import { append, identity, without } from "ramda";
9
+ import { useTranslation } from "react-i18next";
10
+ import ScheduleRow from "./ScheduleRow";
11
+ import { addDefaultPeriod } from "./utils";
12
+ import { DAYS } from "../constants";
13
+ var Form = function Form(_ref) {
14
+ var day = _ref.day,
15
+ handleCopy = _ref.handleCopy,
16
+ values = _ref.values,
17
+ setFieldValue = _ref.setFieldValue,
18
+ index = _ref.index;
19
+ var _useState = useState([]),
20
+ _useState2 = _slicedToArray(_useState, 2),
21
+ deletedPeriods = _useState2[0],
22
+ setDeletedPeriods = _useState2[1];
23
+ var _useState3 = useState([]),
24
+ _useState4 = _slicedToArray(_useState3, 2),
25
+ wdaysToCopy = _useState4[0],
26
+ setWdaysToCopy = _useState4[1];
27
+ var _useTranslation = useTranslation(),
28
+ t = _useTranslation.t;
29
+ var restoreDeletedPeriods = function restoreDeletedPeriods(setFieldValue) {
30
+ setFieldValue("wdays[".concat(index, "].periods"), deletedPeriods);
31
+ };
32
+ var uncheckCheckbox = function uncheckCheckbox(setFieldValue, values) {
33
+ var _values$wdays$index$p;
34
+ setFieldValue("wdays[".concat(index, "].available"), false);
35
+ setFieldValue("wdays[".concat(index, "].periods"), []);
36
+ if ((_values$wdays$index$p = values.wdays[index].periods[0]) !== null && _values$wdays$index$p !== void 0 && _values$wdays$index$p.id) {
37
+ setDeletedPeriods(values.wdays[index].periods.filter(function (item) {
38
+ return item.startTime && item.endTime;
39
+ }).map(identity));
40
+ }
41
+ };
42
+ var checkCheckbox = function checkCheckbox(setFieldValue) {
43
+ var _deletedPeriods$;
44
+ setFieldValue("wdays[".concat(index, "].available"), true);
45
+ if ((_deletedPeriods$ = deletedPeriods[0]) !== null && _deletedPeriods$ !== void 0 && _deletedPeriods$.startTime) {
46
+ restoreDeletedPeriods(setFieldValue);
47
+ } else if (isNotPresent(values.wdays[index].periods)) {
48
+ setFieldValue("wdays[".concat(index, "].periods"), [addDefaultPeriod(day)]);
49
+ } else {
50
+ setFieldValue("wdays[".concat(index, "].periods"), [""]);
51
+ }
52
+ };
53
+ var handleCheckbox = function handleCheckbox(setFieldValue, values) {
54
+ if (values.wdays[index].available) {
55
+ uncheckCheckbox(setFieldValue, values);
56
+ } else {
57
+ checkCheckbox(setFieldValue);
58
+ }
59
+ };
60
+ var handleCopyChange = function handleCopyChange(e, day) {
61
+ return setWdaysToCopy(e.target.checked ? append(day) : without([day]));
62
+ };
63
+ return /*#__PURE__*/React.createElement("div", {
64
+ className: "neeto-ui-rounded-md neeto-ui-shadow-s neeto-ui-border-gray-300 w-full border px-6"
65
+ }, /*#__PURE__*/React.createElement("div", {
66
+ className: "my-4 flex w-full items-start space-x-4",
67
+ "data-cy": "working-day-container"
68
+ }, /*#__PURE__*/React.createElement("div", {
69
+ className: "mt-1 flex w-16 items-center justify-start"
70
+ }, /*#__PURE__*/React.createElement(FormikCheckbox, {
71
+ "aria-label": "wdays[".concat(index, "].available"),
72
+ checked: values.wdays[index].available,
73
+ "data-cy": joinHyphenCase(day, "weekly-hours-checkbox"),
74
+ id: "day",
75
+ name: "wdays[".concat(index, "].available"),
76
+ onChange: function onChange() {
77
+ return handleCheckbox(setFieldValue, values);
78
+ }
79
+ }), /*#__PURE__*/React.createElement(Typography, {
80
+ className: "ml-2 capitalize",
81
+ component: "span",
82
+ "data-cy": joinHyphenCase(day, "day-text"),
83
+ style: "body2",
84
+ weight: "semibold"
85
+ }, t("neetoMolecules.schedule.days.".concat(day)))), /*#__PURE__*/React.createElement(ScheduleRow, {
86
+ day: day,
87
+ setFieldValue: setFieldValue,
88
+ values: values,
89
+ wdayIndex: index
90
+ }), /*#__PURE__*/React.createElement(Dropdown, {
91
+ closeOnSelect: true,
92
+ buttonStyle: "secondary",
93
+ icon: Copy,
94
+ position: "right-start",
95
+ buttonProps: {
96
+ tooltipProps: {
97
+ content: t("neetoMolecules.schedule.copyScheduleTooltip"),
98
+ position: "top",
99
+ hideAfter: 5000
100
+ },
101
+ className: "flex-shrink-0",
102
+ "data-testid": joinHyphenCase(day, "copy-schedule-icon"),
103
+ "data-cy": joinHyphenCase(day, "copy-schedule-icon")
104
+ },
105
+ onClose: function onClose() {
106
+ return setWdaysToCopy([]);
107
+ }
108
+ }, /*#__PURE__*/React.createElement("li", null, /*#__PURE__*/React.createElement(Typography, {
109
+ style: "h5"
110
+ }, t("neetoMolecules.schedule.copySchedule"))), DAYS.filter(function (copyDay) {
111
+ return copyDay !== day;
112
+ }).map(function (day) {
113
+ return /*#__PURE__*/React.createElement("li", {
114
+ key: day,
115
+ onClick: function onClick(e) {
116
+ return e.stopPropagation();
117
+ }
118
+ }, /*#__PURE__*/React.createElement(Label, {
119
+ className: "w-full cursor-pointer capitalize"
120
+ }, /*#__PURE__*/React.createElement(Checkbox, {
121
+ checked: wdaysToCopy.includes(day),
122
+ id: day,
123
+ label: t("neetoMolecules.schedule.days.".concat(day)),
124
+ onChange: function onChange(e) {
125
+ return handleCopyChange(e, day);
126
+ }
127
+ })));
128
+ }), /*#__PURE__*/React.createElement("li", null, /*#__PURE__*/React.createElement(Button, {
129
+ "data-cy": "copy-schedule-submit-button",
130
+ disabled: isNotPresent(wdaysToCopy),
131
+ label: t("neetoMolecules.common.actions.submit"),
132
+ size: "small",
133
+ onClick: function onClick() {
134
+ handleCopy({
135
+ values: values,
136
+ index: index,
137
+ setFieldValue: setFieldValue,
138
+ wdaysToCopy: wdaysToCopy
139
+ });
140
+ setWdaysToCopy([]);
141
+ }
142
+ })))));
143
+ };
144
+ export default Form;
@@ -0,0 +1,63 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import { toLabelAndValue, isNotPresent } from "@bigbinary/neeto-commons-frontend/pure";
3
+ import { uniq, pluck, difference } from "ramda";
4
+ import { SLOT_TIME_FORMAT, END_OF_DAY } from "./constants";
5
+ import dayjs from "../dayjsExtended";
6
+ import { isTimeBehind } from "../utils";
7
+ var buildSlotIntervals = function buildSlotIntervals(_ref) {
8
+ var interval = _ref.interval,
9
+ bookedSlots = _ref.bookedSlots,
10
+ slotType = _ref.slotType,
11
+ _ref$selectedValue = _ref.selectedValue,
12
+ selectedValue = _ref$selectedValue === void 0 ? null : _ref$selectedValue;
13
+ var selectedOption = {
14
+ label: selectedValue,
15
+ value: selectedValue
16
+ };
17
+ var allIntervalsForADay = dayjs.timeIntervalsForDay(interval);
18
+ allIntervalsForADay.push(END_OF_DAY);
19
+ var uniqBookedSlots = uniq(pluck(slotType, bookedSlots));
20
+ var slotsAvailableForBooking = difference(allIntervalsForADay, uniqBookedSlots);
21
+ var slots = slotsAvailableForBooking.map(toLabelAndValue);
22
+ return selectedValue ? sortSlots([selectedOption].concat(_toConsumableArray(slots))) : slots;
23
+ };
24
+ var sortSlots = function sortSlots(slots) {
25
+ return slots.sort(function (a, b) {
26
+ return isTimeBehind(a["value"], b["value"]) ? -1 : 1;
27
+ });
28
+ };
29
+ var slotsSelectComponentDefaultValue = function slotsSelectComponentDefaultValue(slot) {
30
+ return slot ? toLabelAndValue(slot) : "";
31
+ };
32
+ var padZeroes = function padZeroes(str) {
33
+ return str.length % 2 === 0 ? str : "0".concat(str);
34
+ };
35
+ var customFilter = function customFilter(option, searchTerm) {
36
+ if (isNotPresent(searchTerm)) return true;
37
+ var doesNumberMatches = option.value.replace(":", "").startsWith(padZeroes(searchTerm.replaceAll(/\D+/gi, "")));
38
+ var doesAmPmMatches = option.value.includes(searchTerm.toUpperCase().replaceAll(/[^a-z]/gi, ""));
39
+ return doesNumberMatches && doesAmPmMatches;
40
+ };
41
+ var roundToNearestHour = function roundToNearestHour(time) {
42
+ var minutes = time.minute();
43
+ if (minutes === 59) return time.startOf("hour").add(1, "hour");
44
+ return time.add(1, "hour");
45
+ };
46
+ var generateNewPeriod = function generateNewPeriod(periods, wday) {
47
+ var lastEndTime = periods[periods.length - 1].endTime;
48
+ var newStartTime = roundToNearestHour(dayjs(lastEndTime, SLOT_TIME_FORMAT));
49
+ var newEndTime = dayjs(newStartTime, SLOT_TIME_FORMAT).add(1, "hour");
50
+ return {
51
+ startTime: dayjs(newStartTime).format(SLOT_TIME_FORMAT),
52
+ endTime: dayjs(newEndTime).format(SLOT_TIME_FORMAT),
53
+ wday: wday
54
+ };
55
+ };
56
+ var addDefaultPeriod = function addDefaultPeriod(wday) {
57
+ return {
58
+ wday: wday,
59
+ startTime: "09:00 AM",
60
+ endTime: "05:00 PM"
61
+ };
62
+ };
63
+ export { buildSlotIntervals, slotsSelectComponentDefaultValue, customFilter, generateNewPeriod, addDefaultPeriod };
@@ -0,0 +1,76 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import React, { useState, useEffect } from "react";
3
+ import { useFormikContext } from "formik";
4
+ import { Button, Typography, Tooltip } from "@bigbinary/neetoui";
5
+ import { useTranslation } from "react-i18next";
6
+ import MoreDropdown from "../MoreDropdown";
7
+ import { MY_PROFILE_URL } from "./constants";
8
+ import { getTimeZoneAndTime } from "./utils";
9
+ var Header = function Header(_ref) {
10
+ var isEditing = _ref.isEditing,
11
+ setIsEditing = _ref.setIsEditing;
12
+ var _useFormikContext = useFormikContext(),
13
+ dirty = _useFormikContext.dirty,
14
+ resetForm = _useFormikContext.resetForm,
15
+ submitForm = _useFormikContext.submitForm,
16
+ isSubmitting = _useFormikContext.isSubmitting;
17
+ var _useTranslation = useTranslation(),
18
+ t = _useTranslation.t;
19
+ var _useState = useState(getTimeZoneAndTime()),
20
+ _useState2 = _slicedToArray(_useState, 2),
21
+ timeZoneAndTime = _useState2[0],
22
+ setTimeZoneAndTime = _useState2[1];
23
+ var handleReset = function handleReset() {
24
+ if (dirty) resetForm();else setIsEditing(false);
25
+ };
26
+ useEffect(function () {
27
+ var time = setInterval(function () {
28
+ setTimeZoneAndTime(getTimeZoneAndTime());
29
+ }, 30000);
30
+ return function () {
31
+ return clearInterval(time);
32
+ };
33
+ }, []);
34
+ return /*#__PURE__*/React.createElement("div", {
35
+ className: "mb-4 flex justify-between"
36
+ }, isEditing ? /*#__PURE__*/React.createElement("div", {
37
+ className: "flex items-center space-x-4"
38
+ }, /*#__PURE__*/React.createElement(Button, {
39
+ "data-cy": "reset-button",
40
+ style: "secondary",
41
+ label: !dirty ? t("neetoMolecules.common.actions.cancel") : t("neetoMolecules.common.actions.reset"),
42
+ onClick: handleReset
43
+ }), /*#__PURE__*/React.createElement(Button, {
44
+ "data-cy": "weekly-hours-save-changes-button",
45
+ disabled: !dirty || isSubmitting,
46
+ label: t("neetoMolecules.common.actions.saveChanges"),
47
+ loading: isSubmitting,
48
+ onClick: submitForm
49
+ })) : /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Button, {
50
+ "data-cy": "weekly-schedule-header",
51
+ label: t("neetoMolecules.schedule.editSchedule"),
52
+ style: "secondary",
53
+ weight: "semibold",
54
+ onClick: function onClick() {
55
+ return setIsEditing(true);
56
+ }
57
+ })), /*#__PURE__*/React.createElement("div", {
58
+ className: "flex items-center space-x-2"
59
+ }, /*#__PURE__*/React.createElement(Tooltip, {
60
+ content: t("neetoMolecules.schedule.timezoneTooltip"),
61
+ position: "bottom"
62
+ }, /*#__PURE__*/React.createElement(Typography, {
63
+ component: "h4",
64
+ "data-cy": "timezone-text",
65
+ style: "h5",
66
+ weight: "medium"
67
+ }, timeZoneAndTime)), /*#__PURE__*/React.createElement(MoreDropdown, {
68
+ menuItems: [{
69
+ href: MY_PROFILE_URL,
70
+ label: t("neetoMolecules.common.actions.changeTimezone"),
71
+ target: "_blank",
72
+ key: "change-timezone-option"
73
+ }]
74
+ })));
75
+ };
76
+ export default Header;
@@ -0,0 +1,8 @@
1
+ import { createContext } from "react";
2
+
3
+ // To avoid prop drilling `allowAddPeriod` to `ScheduleRow` component
4
+ // eslint-disable-next-line @bigbinary/neeto/use-zustand-for-global-state-management
5
+ var ScheduleContext = /*#__PURE__*/createContext({
6
+ allowAddPeriod: true
7
+ });
8
+ export default ScheduleContext;
@@ -0,0 +1,8 @@
1
+ export var DEFAULT_BOOKED_SLOTS = [{
2
+ startTime: "09:00 AM",
3
+ endTime: "05:00 PM"
4
+ }];
5
+ export var MARK_DAY_AS_AVAILABLE_BY_DEFAULT = true;
6
+ export var DAYS = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"];
7
+ export var DEFAULT_SLOT_INTERVAL = 30;
8
+ export var MY_PROFILE_URL = "/auth/profile/edit";
@@ -0,0 +1 @@
1
+ export var INTERVALS = ["year", "quarter", "month", "week", "day", "hour", "minute", "second"];
@@ -0,0 +1,14 @@
1
+ import Dayjs from "dayjs";
2
+ import customParseFormat from "dayjs/plugin/customParseFormat";
3
+ import timezone from "dayjs/plugin/timezone";
4
+ import utc from "dayjs/plugin/utc";
5
+ import weekday from "dayjs/plugin/weekday";
6
+ import { extendDayjs } from "./range";
7
+ Dayjs.extend(utc);
8
+ Dayjs.extend(timezone);
9
+ Dayjs.extend(customParseFormat);
10
+ Dayjs.extend(weekday);
11
+
12
+ // Add range and overlap functions to dayjs
13
+ var dayjsExtended = extendDayjs(Dayjs);
14
+ export default dayjsExtended;
@@ -0,0 +1,73 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/createClass";
3
+ import { INTERVALS } from "./constants";
4
+ import { SLOT_TIME_FORMAT } from "../Form/constants";
5
+ export var DayjsRange = /*#__PURE__*/function () {
6
+ function DayjsRange(startDate, endDate) {
7
+ _classCallCheck(this, DayjsRange);
8
+ var _ref = startDate > endDate ? {
9
+ s: endDate,
10
+ e: startDate
11
+ } : {
12
+ s: startDate,
13
+ e: endDate
14
+ },
15
+ s = _ref.s,
16
+ e = _ref.e;
17
+ this.startDate = s;
18
+ this.endDate = e;
19
+ }
20
+ _createClass(DayjsRange, [{
21
+ key: "isValidRange",
22
+ value: function isValidRange() {
23
+ return this.startDate.isValid() && this.endDate.isValid();
24
+ }
25
+ }, {
26
+ key: "isOverlap",
27
+ value: function isOverlap(other) {
28
+ if (!(other instanceof DayjsRange) || !other.isValidRange()) {
29
+ return false;
30
+ }
31
+ return this.startDate < other.endDate && this.endDate > other.startDate;
32
+ }
33
+ }, {
34
+ key: "toArrayOfTimeIntervals",
35
+ value: function toArrayOfTimeIntervals() {
36
+ var interval = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 15;
37
+ var startTime = this.startDate;
38
+ var endTime = this.endDate.add(1, "days");
39
+ var allTimes = [];
40
+ while (startTime < endTime) {
41
+ allTimes.push(startTime.format(SLOT_TIME_FORMAT));
42
+ startTime = startTime.add(interval, "minutes");
43
+ }
44
+ return allTimes;
45
+ }
46
+ }]);
47
+ return DayjsRange;
48
+ }();
49
+ export default (function (_, __, d) {
50
+ d.range = function (start, end) {
51
+ return new DayjsRange(d(start), d(end));
52
+ };
53
+ });
54
+ export function extendDayjs(dayjs) {
55
+ dayjs.range = function range(start, end) {
56
+ var dayjsObject = this;
57
+ if (typeof start === "string" && INTERVALS.includes(start)) {
58
+ return new DayjsRange(dayjs(dayjsObject).startOf(start), dayjs(dayjsObject).endOf(start));
59
+ }
60
+ return new DayjsRange(start, end);
61
+ };
62
+ dayjs.range.constructor = DayjsRange;
63
+
64
+ // Returns timeIntervals in 12 hour clock format for the whole day with both AM or PM suffixed
65
+ dayjs.timeIntervalsForDay = function (interval) {
66
+ var _ref2 = [dayjs("00:00 AM", SLOT_TIME_FORMAT), dayjs("00:00 AM", SLOT_TIME_FORMAT)],
67
+ startOfDay = _ref2[0],
68
+ endOfDay = _ref2[1];
69
+ var allIntervalsForADay = dayjs.range(startOfDay, endOfDay).toArrayOfTimeIntervals(interval);
70
+ return allIntervalsForADay;
71
+ };
72
+ return dayjs;
73
+ }
@@ -0,0 +1,80 @@
1
+ import React, { forwardRef } from "react";
2
+ import { Formik, Form as FormikForm } from "formik";
3
+ import { isPresent, noop } from "@bigbinary/neeto-commons-frontend/pure";
4
+ import { assoc, pick } from "ramda";
5
+ import { DAYS } from "./constants";
6
+ import DisplayAvailability from "./DisplayAvailability";
7
+ import Fields from "./Fields";
8
+ import Header from "./Header";
9
+ import ScheduleContext from "./ScheduleContext";
10
+ import { sortPeriodsByKey, getScheduleValidationSchema } from "./utils";
11
+ var Schedule = /*#__PURE__*/forwardRef(function (_ref, scheduleRef) {
12
+ var periods = _ref.periods,
13
+ _ref$handleSubmit = _ref.handleSubmit,
14
+ handleSubmit = _ref$handleSubmit === void 0 ? noop : _ref$handleSubmit,
15
+ _ref$isEditing = _ref.isEditing,
16
+ isEditing = _ref$isEditing === void 0 ? false : _ref$isEditing,
17
+ setIsEditing = _ref.setIsEditing,
18
+ _ref$showHeader = _ref.showHeader,
19
+ showHeader = _ref$showHeader === void 0 ? true : _ref$showHeader,
20
+ _ref$handleValuesChan = _ref.handleValuesChanged,
21
+ handleValuesChanged = _ref$handleValuesChan === void 0 ? noop : _ref$handleValuesChan,
22
+ _ref$allowAddPeriod = _ref.allowAddPeriod,
23
+ allowAddPeriod = _ref$allowAddPeriod === void 0 ? true : _ref$allowAddPeriod;
24
+ var handleCopy = function handleCopy(_ref2) {
25
+ var _values$wdays$index$p;
26
+ var values = _ref2.values,
27
+ index = _ref2.index,
28
+ setFieldValue = _ref2.setFieldValue,
29
+ wdaysToCopy = _ref2.wdaysToCopy;
30
+ var newPeriods = (_values$wdays$index$p = values.wdays[index].periods) === null || _values$wdays$index$p === void 0 ? void 0 : _values$wdays$index$p.map(pick(["startTime", "endTime"]));
31
+ wdaysToCopy.forEach(function (wday) {
32
+ var dayIndex = DAYS.indexOf(wday);
33
+ setFieldValue("wdays[".concat(dayIndex, "].available"), isPresent(values.wdays[index].periods));
34
+ setFieldValue("wdays[".concat(dayIndex, "].periods"), newPeriods.map(function (period) {
35
+ return assoc("wday", wday, period);
36
+ }));
37
+ });
38
+ };
39
+ var getInitialFormValues = function getInitialFormValues() {
40
+ return DAYS.map(function (wday) {
41
+ var _periods$wday;
42
+ return {
43
+ periods: sortPeriodsByKey({
44
+ periods: periods[wday],
45
+ key: "startTime",
46
+ order: "asc"
47
+ }),
48
+ available: !!((_periods$wday = periods[wday]) !== null && _periods$wday !== void 0 && _periods$wday.length),
49
+ wday: wday
50
+ };
51
+ });
52
+ };
53
+ return /*#__PURE__*/React.createElement("div", {
54
+ className: "neeto-ui-border-gray-200 w-41 flex-shrink-0"
55
+ }, /*#__PURE__*/React.createElement(Formik, {
56
+ enableReinitialize: true,
57
+ initialValues: {
58
+ wdays: getInitialFormValues()
59
+ },
60
+ validationSchema: getScheduleValidationSchema(),
61
+ onSubmit: function onSubmit(values) {
62
+ return handleSubmit(values, getInitialFormValues());
63
+ }
64
+ }, /*#__PURE__*/React.createElement(React.Fragment, null, showHeader && /*#__PURE__*/React.createElement(Header, {
65
+ isEditing: isEditing,
66
+ setIsEditing: setIsEditing
67
+ }), isEditing || !showHeader ? /*#__PURE__*/React.createElement(FormikForm, null, /*#__PURE__*/React.createElement(ScheduleContext.Provider, {
68
+ value: {
69
+ allowAddPeriod: allowAddPeriod
70
+ }
71
+ }, /*#__PURE__*/React.createElement(Fields, {
72
+ handleCopy: handleCopy,
73
+ handleValuesChanged: handleValuesChanged,
74
+ scheduleRef: scheduleRef
75
+ }))) : /*#__PURE__*/React.createElement(DisplayAvailability, {
76
+ periods: periods
77
+ }))));
78
+ });
79
+ Schedule.displayName = "Schedule";
80
+ export default Schedule;
@@ -0,0 +1,152 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, 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 normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
+ import { ianaTimezoneToHumanReadable } from "@bigbinary/neeto-time-zones";
6
+ import dayjs from "dayjs";
7
+ import i18next from "i18next";
8
+ import { findIndexBy } from "@bigbinary/neeto-commons-frontend/pure";
9
+ import { timeFormat } from "@bigbinary/neeto-commons-frontend/utils";
10
+ import * as yup from "yup";
11
+ import dayjsExtended from "./dayjsExtended";
12
+ import { SLOT_TIME_FORMAT } from "./Form/constants";
13
+ yup.addMethod(yup.array, "ensureSlotsCantOverlap", function () {
14
+ return this.test("ensureSlotsCantOverlap", function (periods) {
15
+ var _checkForOverlapBetwe = checkForOverlapBetweenPeriods(periods),
16
+ isOverlapping = _checkForOverlapBetwe.exists,
17
+ range1 = _checkForOverlapBetwe.range1,
18
+ range2 = _checkForOverlapBetwe.range2;
19
+ if (!isOverlapping) return true;
20
+ var _findIndicesOfOverlap = findIndicesOfOverlappingRangesInPeriods({
21
+ range1: range1,
22
+ range2: range2,
23
+ periods: periods
24
+ }),
25
+ firstIndex = _findIndicesOfOverlap.firstIndex,
26
+ secondIndex = _findIndicesOfOverlap.secondIndex;
27
+ var firstError = this.createError({
28
+ path: "".concat(this.path, "[").concat(firstIndex, "]"),
29
+ message: i18next.t("neetoMolecules.schedule.errors.period.overlap", {
30
+ start: timeFormat.time(range2.startDate),
31
+ end: timeFormat.time(range2.endDate)
32
+ })
33
+ });
34
+ var secondError = this.createError({
35
+ path: "".concat(this.path, "[").concat(secondIndex, "]"),
36
+ message: i18next.t("neetoMolecules.schedule.errors.period.overlap", {
37
+ start: timeFormat.time(range1.startDate),
38
+ end: timeFormat.time(range1.endDate)
39
+ })
40
+ });
41
+ return new yup.ValidationError([firstError, secondError]);
42
+ });
43
+ });
44
+ var isFromAndToSame = function isFromAndToSame(startTime, endTime) {
45
+ if (!startTime || !endTime) return true;
46
+ return dayjs(startTime, SLOT_TIME_FORMAT).isSame(dayjs(endTime, SLOT_TIME_FORMAT));
47
+ };
48
+ export var getScheduleValidationSchema = function getScheduleValidationSchema() {
49
+ return yup.object().shape({
50
+ wdays: yup.array().of(yup.object().shape({
51
+ periods: yup.array().of(yup.object().shape({
52
+ startTime: yup.string().required(i18next.t("neetoMolecules.schedule.errors.period.startTime")),
53
+ endTime: yup.string().required(i18next.t("neetoMolecules.schedule.errors.period.endTime")).test("ensureToTimeNotBehindFromTime", i18next.t("neetoMolecules.schedule.errors.period.isBehind"), function (value) {
54
+ var startTime = this.parent.startTime;
55
+ if (isFromAndToSame(value, startTime)) return true;
56
+ return isTimeBehind(startTime, value);
57
+ })
58
+ }).test("ensureTimeNotSame", i18next.t("neetoMolecules.schedule.errors.period.sameTime"), function (value) {
59
+ var startTime = value.startTime,
60
+ endTime = value.endTime;
61
+ return !isFromAndToSame(startTime, endTime);
62
+ })).ensureSlotsCantOverlap()
63
+ }))
64
+ });
65
+ };
66
+ export var getUserTimeZone = function getUserTimeZone() {
67
+ var _window$globalProps;
68
+ return (_window$globalProps = window.globalProps) === null || _window$globalProps === void 0 ? void 0 : _window$globalProps.user.timeZone;
69
+ };
70
+ export var getTimeZoneAndTime = function getTimeZoneAndTime() {
71
+ var timeZone = getUserTimeZone();
72
+ var humanReadableTimezone = ianaTimezoneToHumanReadable(timeZone);
73
+ return "".concat(humanReadableTimezone, ": ").concat(dayjs().tz(timeZone).format(SLOT_TIME_FORMAT));
74
+ };
75
+ export var isTimeBehind = function isTimeBehind(timeA, timeB) {
76
+ return dayjs(timeA, SLOT_TIME_FORMAT).isBefore(dayjs(timeB, SLOT_TIME_FORMAT));
77
+ };
78
+ export var sortPeriodsByKey = function sortPeriodsByKey(_ref) {
79
+ var periods = _ref.periods,
80
+ key = _ref.key,
81
+ _ref$order = _ref.order,
82
+ order = _ref$order === void 0 ? "desc" : _ref$order;
83
+ return periods.slice().sort(function (periodA, periodB) {
84
+ var isPeriodBehind = isTimeBehind(periodA[key], periodB[key]);
85
+ if (order === "desc") return isPeriodBehind ? 1 : -1;
86
+ return isPeriodBehind ? -1 : 1;
87
+ });
88
+ };
89
+
90
+ /**
91
+ * Check for overlapping between entered periods
92
+ * @typedef {Object} Slots
93
+ * @property {Array<{startTime:string, endTime: string}>} periods - startTime and endTime
94
+ * @param {Slots} periods - changed time periods
95
+ * @return {{exists: boolean, range1: DayjsRange | null, range2:DayjsRange | null }} - overlapped ranges if exists
96
+ */
97
+ export var checkForOverlapBetweenPeriods = function checkForOverlapBetweenPeriods(periods) {
98
+ var response = {
99
+ exists: false,
100
+ range1: null,
101
+ range2: null
102
+ };
103
+ if (!(periods !== null && periods !== void 0 && periods.length)) return response;
104
+ var slotsSortedByStartTime = sortPeriodsByKey({
105
+ periods: periods,
106
+ key: "startTime"
107
+ });
108
+ var _iterator = _createForOfIteratorHelper(slotsSortedByStartTime.slice(0, -1).entries()),
109
+ _step;
110
+ try {
111
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
112
+ var _step$value = _slicedToArray(_step.value, 2),
113
+ index = _step$value[0],
114
+ value = _step$value[1];
115
+ var seg1 = value;
116
+ var seg2 = slotsSortedByStartTime[index + 1];
117
+ var range1 = dayjsExtended.range(dayjsExtended(seg1.startTime, SLOT_TIME_FORMAT), dayjsExtended(seg1.endTime, SLOT_TIME_FORMAT));
118
+ var range2 = dayjsExtended.range(dayjsExtended(seg2.startTime, SLOT_TIME_FORMAT), dayjsExtended(seg2.endTime, SLOT_TIME_FORMAT));
119
+ if (range1.isOverlap(range2)) {
120
+ response = {
121
+ exists: true,
122
+ range1: range1,
123
+ range2: range2
124
+ };
125
+ break;
126
+ }
127
+ }
128
+ } catch (err) {
129
+ _iterator.e(err);
130
+ } finally {
131
+ _iterator.f();
132
+ }
133
+ return response;
134
+ };
135
+ export var findIndicesOfOverlappingRangesInPeriods = function findIndicesOfOverlappingRangesInPeriods(_ref2) {
136
+ var range1 = _ref2.range1,
137
+ range2 = _ref2.range2,
138
+ periods = _ref2.periods;
139
+ var firstIndex = findIndexBy({
140
+ startTime: range1.startDate.format(SLOT_TIME_FORMAT)
141
+ }, periods);
142
+ var secondIndex = periods.findIndex(function (slot, index) {
143
+ return index > firstIndex && slot.startTime === range2.startDate.format(SLOT_TIME_FORMAT);
144
+ });
145
+ return {
146
+ firstIndex: firstIndex,
147
+ secondIndex: secondIndex
148
+ };
149
+ };
150
+ export var checkIfTwoTimeZonesAreSame = function checkIfTwoTimeZonesAreSame(timeZone1, timeZone2) {
151
+ return dayjs().tz(timeZone1).format("Z") === dayjs().tz(timeZone2).format("Z");
152
+ };
@@ -0,0 +1,8 @@
1
+ var SIZES = {
2
+ nano: "nano",
3
+ small: "small",
4
+ medium: "medium",
5
+ large: "large",
6
+ viewport: "viewport"
7
+ };
8
+ export { SIZES };
@@ -0,0 +1,26 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
+ var _excluded = ["children", "className", "size"];
5
+ import React from "react";
6
+ import classnames from "classnames";
7
+ import { SIZES } from "./constants";
8
+ import "./scrollable.scss";
9
+ var Scrollable = function Scrollable(_ref) {
10
+ var children = _ref.children,
11
+ _ref$className = _ref.className,
12
+ className = _ref$className === void 0 ? "" : _ref$className,
13
+ _ref$size = _ref.size,
14
+ size = _ref$size === void 0 ? "small" : _ref$size,
15
+ otherProps = _objectWithoutProperties(_ref, _excluded);
16
+ return /*#__PURE__*/React.createElement("div", _extends({
17
+ className: classnames(["neeto-molecules-scrollable", _defineProperty({
18
+ "neeto-molecules-scrollable--nano": size === SIZES.nano,
19
+ "neeto-molecules-scrollable--small": size === SIZES.small,
20
+ "neeto-molecules-scrollable--medium": size === SIZES.medium,
21
+ "neeto-molecules-scrollable--large": size === SIZES.large,
22
+ "neeto-molecules-scrollable--viewport": size === SIZES.viewport
23
+ }, className, className)])
24
+ }, otherProps), children);
25
+ };
26
+ export default Scrollable;