@bigbinary/neeto-molecules 3.7.21 → 3.7.23

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 (243) hide show
  1. package/dist/Breadcrumbs.js +1 -1
  2. package/dist/BrowserSupport.js +3 -3
  3. package/dist/Builder.js +1 -1
  4. package/dist/CalendarView.js +2 -2
  5. package/dist/{Chevron-a5e99340.js → Chevron-DWt0ncDv.js} +2 -2
  6. package/dist/{Chevron-a5e99340.js.map → Chevron-DWt0ncDv.js.map} +1 -1
  7. package/dist/Codeblock.js +1 -1
  8. package/dist/Columns.js +2 -2
  9. package/dist/ConfigurePageSidebar.js +2 -2
  10. package/dist/Container.js +3 -3
  11. package/dist/CopyToClipboardButton.js +1 -1
  12. package/dist/CustomDomain.js +2 -2
  13. package/dist/CustomDomainDashboard.js +5 -5
  14. package/dist/DeviceIncompatibilityMessage.js +2 -2
  15. package/dist/DocumentEditor.js +1 -1
  16. package/dist/DownloadMobileAppCallout.js +2 -2
  17. package/dist/DynamicVariables.js +1 -1
  18. package/dist/EmailForm.js +30 -10
  19. package/dist/EmailForm.js.map +1 -1
  20. package/dist/EmailPreview.js +2 -2
  21. package/dist/ErrorPage.js +1 -1
  22. package/dist/FileUpload.js +1 -1
  23. package/dist/FloatingActionMenu.js +3 -3
  24. package/dist/Header.js +1 -1
  25. package/dist/IconPicker.js +1 -1
  26. package/dist/IconPicker.js.map +1 -1
  27. package/dist/InlineInput.js +1 -1
  28. package/dist/IntegrationCard.js +1 -1
  29. package/dist/IpRestriction.js +44 -44
  30. package/dist/IpRestriction.js.map +1 -1
  31. package/dist/KeyboardShortcuts.js +3 -3
  32. package/dist/MadeWith.js +1 -1
  33. package/dist/MenuBar.js +6 -8
  34. package/dist/MenuBar.js.map +1 -1
  35. package/dist/Metadata.js +1 -1
  36. package/dist/MoreDropdown.js +1 -1
  37. package/dist/NavigationHeader.js +1 -1
  38. package/dist/NeetoWidget.js +2 -4
  39. package/dist/NeetoWidget.js.map +1 -1
  40. package/dist/Onboarding.js +1 -1
  41. package/dist/PageLoader.js +1 -1
  42. package/dist/PhoneNumber.js +5 -5
  43. package/dist/ProductEmbed.js +1 -1
  44. package/dist/PublishBlock.js +1 -1
  45. package/dist/PublishYourItem.js +2 -2
  46. package/dist/Rename.js +1 -1
  47. package/dist/Schedule.js +2 -2
  48. package/dist/Scrollable.js +1 -1
  49. package/dist/Search.js +1 -1
  50. package/dist/SendToFields.js +13 -8
  51. package/dist/SendToFields.js.map +1 -1
  52. package/dist/SessionEnvironment.js +3 -3
  53. package/dist/Settings.js +1 -1
  54. package/dist/ShareRecordingPane.js +1 -1
  55. package/dist/ShareViaEmail.js +2 -2
  56. package/dist/ShareViaLink.js +1 -1
  57. package/dist/ShareViaLink.js.map +1 -1
  58. package/dist/Sidebar.js +2 -2
  59. package/dist/StatusDropdown.js +1 -1
  60. package/dist/StickyRibbonsContainer.js +1 -1
  61. package/dist/SubHeader.js +2 -2
  62. package/dist/SuffixedInput.js +1 -1
  63. package/dist/TableWrapper.js +1 -1
  64. package/dist/Taxonomy.js +4 -4
  65. package/dist/ToggleFeatureCard.js +1 -1
  66. package/dist/{_commonjsHelpers-1789f0cf.js → _commonjsHelpers-BFTU3MAI.js} +1 -1
  67. package/dist/_commonjsHelpers-BFTU3MAI.js.map +1 -0
  68. package/dist/cjs/Breadcrumbs.js +3 -8
  69. package/dist/cjs/Breadcrumbs.js.map +1 -1
  70. package/dist/cjs/BrowserSupport.js +7 -14
  71. package/dist/cjs/BrowserSupport.js.map +1 -1
  72. package/dist/cjs/Builder.js +40 -59
  73. package/dist/cjs/Builder.js.map +1 -1
  74. package/dist/cjs/CalendarView.js +26 -43
  75. package/dist/cjs/CalendarView.js.map +1 -1
  76. package/dist/cjs/{Chevron-bb98447f.js → Chevron-DpYyQWkK.js} +13 -22
  77. package/dist/cjs/{Chevron-bb98447f.js.map → Chevron-DpYyQWkK.js.map} +1 -1
  78. package/dist/cjs/Codeblock.js +2 -6
  79. package/dist/cjs/Codeblock.js.map +1 -1
  80. package/dist/cjs/Columns.js +3 -3
  81. package/dist/cjs/ConfigurePageSidebar.js +6 -12
  82. package/dist/cjs/ConfigurePageSidebar.js.map +1 -1
  83. package/dist/cjs/ConfirmationModal.js +12 -20
  84. package/dist/cjs/ConfirmationModal.js.map +1 -1
  85. package/dist/cjs/Container.js +4 -8
  86. package/dist/cjs/Container.js.map +1 -1
  87. package/dist/cjs/CopyToClipboardButton.js +8 -18
  88. package/dist/cjs/CopyToClipboardButton.js.map +1 -1
  89. package/dist/cjs/Currency.js +6 -15
  90. package/dist/cjs/Currency.js.map +1 -1
  91. package/dist/cjs/CustomDomain.js +8 -16
  92. package/dist/cjs/CustomDomain.js.map +1 -1
  93. package/dist/cjs/CustomDomainDashboard.js +24 -38
  94. package/dist/cjs/CustomDomainDashboard.js.map +1 -1
  95. package/dist/cjs/DateFormat.js +4 -11
  96. package/dist/cjs/DateFormat.js.map +1 -1
  97. package/dist/cjs/DateRangeFilter.js +4 -11
  98. package/dist/cjs/DateRangeFilter.js.map +1 -1
  99. package/dist/cjs/DeleteArchiveModal.js +10 -18
  100. package/dist/cjs/DeleteArchiveModal.js.map +1 -1
  101. package/dist/cjs/DeviceIncompatibilityMessage.js +8 -14
  102. package/dist/cjs/DeviceIncompatibilityMessage.js.map +1 -1
  103. package/dist/cjs/DocumentEditor.js +11 -21
  104. package/dist/cjs/DocumentEditor.js.map +1 -1
  105. package/dist/cjs/DownloadMobileAppCallout.js +3 -7
  106. package/dist/cjs/DownloadMobileAppCallout.js.map +1 -1
  107. package/dist/cjs/DynamicVariables.js +7 -15
  108. package/dist/cjs/DynamicVariables.js.map +1 -1
  109. package/dist/cjs/EmailForm.js +49 -46
  110. package/dist/cjs/EmailForm.js.map +1 -1
  111. package/dist/cjs/EmailPreview.js +12 -20
  112. package/dist/cjs/EmailPreview.js.map +1 -1
  113. package/dist/cjs/EmojiPicker.js +5 -13
  114. package/dist/cjs/EmojiPicker.js.map +1 -1
  115. package/dist/cjs/EmojiReactions.js +4 -11
  116. package/dist/cjs/EmojiReactions.js.map +1 -1
  117. package/dist/cjs/ErrorPage.js +9 -15
  118. package/dist/cjs/ErrorPage.js.map +1 -1
  119. package/dist/cjs/FileUpload.js +19 -36
  120. package/dist/cjs/FileUpload.js.map +1 -1
  121. package/dist/cjs/FloatingActionMenu.js +67 -90
  122. package/dist/cjs/FloatingActionMenu.js.map +1 -1
  123. package/dist/cjs/Header.js +6 -13
  124. package/dist/cjs/Header.js.map +1 -1
  125. package/dist/cjs/HelpPopover.js +9 -19
  126. package/dist/cjs/HelpPopover.js.map +1 -1
  127. package/dist/cjs/IconPicker.js +24 -42
  128. package/dist/cjs/IconPicker.js.map +1 -1
  129. package/dist/cjs/ImageWithFallback.js +6 -13
  130. package/dist/cjs/ImageWithFallback.js.map +1 -1
  131. package/dist/cjs/InlineInput.js +20 -38
  132. package/dist/cjs/InlineInput.js.map +1 -1
  133. package/dist/cjs/Insights.js +13 -21
  134. package/dist/cjs/Insights.js.map +1 -1
  135. package/dist/cjs/IntegrationCard.js +14 -27
  136. package/dist/cjs/IntegrationCard.js.map +1 -1
  137. package/dist/cjs/IpRestriction.js +83 -104
  138. package/dist/cjs/IpRestriction.js.map +1 -1
  139. package/dist/cjs/KeyboardShortcuts.js +23 -36
  140. package/dist/cjs/KeyboardShortcuts.js.map +1 -1
  141. package/dist/cjs/LoginPage.js +16 -27
  142. package/dist/cjs/LoginPage.js.map +1 -1
  143. package/dist/cjs/MadeWith.js +3 -8
  144. package/dist/cjs/MadeWith.js.map +1 -1
  145. package/dist/cjs/MenuBar.js +46 -66
  146. package/dist/cjs/MenuBar.js.map +1 -1
  147. package/dist/cjs/Metadata.js +18 -29
  148. package/dist/cjs/Metadata.js.map +1 -1
  149. package/dist/cjs/MobilePreviewHeader.js +2 -7
  150. package/dist/cjs/MobilePreviewHeader.js.map +1 -1
  151. package/dist/cjs/MoreDropdown.js +21 -32
  152. package/dist/cjs/MoreDropdown.js.map +1 -1
  153. package/dist/cjs/NavigationHeader.js +9 -18
  154. package/dist/cjs/NavigationHeader.js.map +1 -1
  155. package/dist/cjs/NeetoWidget.js +69 -95
  156. package/dist/cjs/NeetoWidget.js.map +1 -1
  157. package/dist/cjs/Onboarding.js +22 -34
  158. package/dist/cjs/Onboarding.js.map +1 -1
  159. package/dist/cjs/OptionFields.js +34 -51
  160. package/dist/cjs/OptionFields.js.map +1 -1
  161. package/dist/cjs/PageLoader.js +4 -10
  162. package/dist/cjs/PageLoader.js.map +1 -1
  163. package/dist/cjs/PhoneNumber.js +10 -20
  164. package/dist/cjs/PhoneNumber.js.map +1 -1
  165. package/dist/cjs/ProductEmbed.js +57 -80
  166. package/dist/cjs/ProductEmbed.js.map +1 -1
  167. package/dist/cjs/PublishBlock.js +41 -60
  168. package/dist/cjs/PublishBlock.js.map +1 -1
  169. package/dist/cjs/PublishYourItem.js +5 -10
  170. package/dist/cjs/PublishYourItem.js.map +1 -1
  171. package/dist/cjs/Rename.js +20 -35
  172. package/dist/cjs/Rename.js.map +1 -1
  173. package/dist/cjs/ResponsiveDevicePicker.js +9 -20
  174. package/dist/cjs/ResponsiveDevicePicker.js.map +1 -1
  175. package/dist/cjs/Schedule.js +47 -69
  176. package/dist/cjs/Schedule.js.map +1 -1
  177. package/dist/cjs/Scrollable.js +4 -10
  178. package/dist/cjs/Scrollable.js.map +1 -1
  179. package/dist/cjs/Search.js +11 -22
  180. package/dist/cjs/Search.js.map +1 -1
  181. package/dist/cjs/SendToFields.js +39 -51
  182. package/dist/cjs/SendToFields.js.map +1 -1
  183. package/dist/cjs/SessionEnvironment.js +39 -69
  184. package/dist/cjs/SessionEnvironment.js.map +1 -1
  185. package/dist/cjs/Settings.js +18 -29
  186. package/dist/cjs/Settings.js.map +1 -1
  187. package/dist/cjs/ShareRecordingPane.js +17 -29
  188. package/dist/cjs/ShareRecordingPane.js.map +1 -1
  189. package/dist/cjs/ShareViaEmail.js +31 -51
  190. package/dist/cjs/ShareViaEmail.js.map +1 -1
  191. package/dist/cjs/ShareViaLink.js +46 -64
  192. package/dist/cjs/ShareViaLink.js.map +1 -1
  193. package/dist/cjs/Sidebar.js +22 -35
  194. package/dist/cjs/Sidebar.js.map +1 -1
  195. package/dist/cjs/StatusDropdown.js +8 -16
  196. package/dist/cjs/StatusDropdown.js.map +1 -1
  197. package/dist/cjs/StickyRibbonsContainer.js +6 -14
  198. package/dist/cjs/StickyRibbonsContainer.js.map +1 -1
  199. package/dist/cjs/SubHeader.js +15 -25
  200. package/dist/cjs/SubHeader.js.map +1 -1
  201. package/dist/cjs/SuffixedInput.js +5 -12
  202. package/dist/cjs/SuffixedInput.js.map +1 -1
  203. package/dist/cjs/TableWrapper.js +3 -7
  204. package/dist/cjs/TableWrapper.js.map +1 -1
  205. package/dist/cjs/Taxonomy.js +46 -64
  206. package/dist/cjs/Taxonomy.js.map +1 -1
  207. package/dist/cjs/TimezoneMismatchModal.js +14 -23
  208. package/dist/cjs/TimezoneMismatchModal.js.map +1 -1
  209. package/dist/cjs/ToggleFeatureCard.js +18 -34
  210. package/dist/cjs/ToggleFeatureCard.js.map +1 -1
  211. package/dist/cjs/{_commonjsHelpers-b3309d7b.js → _commonjsHelpers-BJu3ubxk.js} +1 -1
  212. package/dist/cjs/_commonjsHelpers-BJu3ubxk.js.map +1 -0
  213. package/dist/cjs/{index-3ab0acb9.js → index-Dfq9GJPm.js} +64 -84
  214. package/dist/cjs/{index-3ab0acb9.js.map → index-Dfq9GJPm.js.map} +1 -1
  215. package/dist/cjs/{index-57253dc4.js → index-JY2zVpnv.js} +2 -2
  216. package/dist/cjs/{index-57253dc4.js.map → index-JY2zVpnv.js.map} +1 -1
  217. package/dist/cjs/{inject-css-80a5faa3.js → inject-css-vQvjPR2x.js} +1 -1
  218. package/dist/cjs/{inject-css-80a5faa3.js.map → inject-css-vQvjPR2x.js.map} +1 -1
  219. package/dist/cjs/{phone-number-7119ec88.js → phone-number-BtEbUAse.js} +24 -39
  220. package/dist/cjs/phone-number-BtEbUAse.js.map +1 -0
  221. package/dist/cjs/{platform-4e0a3b75.js → platform-BUcCb8Jx.js} +2 -2
  222. package/dist/cjs/{platform-4e0a3b75.js.map → platform-BUcCb8Jx.js.map} +1 -1
  223. package/dist/cjs/{useColumns-8894f767.js → useColumns-E3db4ucs.js} +19 -32
  224. package/dist/cjs/{useColumns-8894f767.js.map → useColumns-E3db4ucs.js.map} +1 -1
  225. package/dist/{index-1f87fe13.js → index-DAYCJu79.js} +2 -2
  226. package/dist/{index-1f87fe13.js.map → index-DAYCJu79.js.map} +1 -1
  227. package/dist/{index-2f9a2a41.js → index-YZ7vuBmP.js} +2 -2
  228. package/dist/{index-2f9a2a41.js.map → index-YZ7vuBmP.js.map} +1 -1
  229. package/dist/{inject-css-c86de496.js → inject-css-DmrvuTKK.js} +1 -1
  230. package/dist/{inject-css-c86de496.js.map → inject-css-DmrvuTKK.js.map} +1 -1
  231. package/dist/{phone-number-aa7dd15f.js → phone-number-B2DdoQZX.js} +4 -5
  232. package/dist/phone-number-B2DdoQZX.js.map +1 -0
  233. package/dist/{platform-9320726a.js → platform-F44zJ4Xh.js} +2 -2
  234. package/dist/{platform-9320726a.js.map → platform-F44zJ4Xh.js.map} +1 -1
  235. package/dist/{useColumns-13263cd8.js → useColumns-B8JL1GjK.js} +2 -2
  236. package/dist/{useColumns-13263cd8.js.map → useColumns-B8JL1GjK.js.map} +1 -1
  237. package/package.json +4 -4
  238. package/types/EmailFormProvider.d.ts +2 -0
  239. package/types/SendToFields.d.ts +3 -0
  240. package/dist/_commonjsHelpers-1789f0cf.js.map +0 -1
  241. package/dist/cjs/_commonjsHelpers-b3309d7b.js.map +0 -1
  242. package/dist/cjs/phone-number-7119ec88.js.map +0 -1
  243. package/dist/phone-number-aa7dd15f.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Schedule.js","sources":["../../src/components/Schedule/ScheduleContext.js","../../src/components/Schedule/constants.js","../../src/components/Schedule/dayjsExtended/constants.js","../../src/components/Schedule/Form/constants.js","../../src/components/Schedule/dayjsExtended/range.js","../../src/components/Schedule/dayjsExtended/index.js","../../src/components/Schedule/utils.js","../../src/components/Schedule/DisplayAvailability.jsx","../../src/components/Schedule/Form/utils.js","../../src/components/Schedule/Form/ScheduleRow.jsx","../../src/components/Schedule/Form/index.jsx","../../src/components/Schedule/Fields.jsx","../../src/components/Schedule/Header.jsx","../../src/components/Schedule/index.jsx"],"sourcesContent":["import { createContext } from \"react\";\n\n// To avoid prop drilling `allowAddPeriod` to `ScheduleRow` component\n// eslint-disable-next-line @bigbinary/neeto/use-zustand-for-global-state-management\nconst ScheduleContext = createContext({ allowAddPeriod: true, firstDay: 0 });\n\nexport default ScheduleContext;\n","export const DEFAULT_BOOKED_SLOTS = [\n { startTime: \"09:00 AM\", endTime: \"05:00 PM\" },\n];\n\nexport const MARK_DAY_AS_AVAILABLE_BY_DEFAULT = true;\n\nexport const DAYS = [\n \"sunday\",\n \"monday\",\n \"tuesday\",\n \"wednesday\",\n \"thursday\",\n \"friday\",\n \"saturday\",\n];\n\nexport const DEFAULT_SLOT_INTERVAL = 30;\n","export const INTERVALS = [\n \"year\",\n \"quarter\",\n \"month\",\n \"week\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n];\n","export const REMOVE_SELECT_DOWN_ARROW = {\n DropdownIndicator: () => null,\n IndicatorSeparator: () => null,\n};\n\nexport const BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN = {\n singleValue: (base, state) => ({\n ...base,\n color: state.selectProps.menuIsOpen ? \"#c2c8cc\" : base.color,\n }),\n};\n\nexport const SLOT_TIME_FORMAT = \"hh:mm A\";\n\nexport const END_OF_DAY = \"11:59 PM\";\n","import { INTERVALS } from \"./constants\";\n\nimport { SLOT_TIME_FORMAT } from \"../Form/constants\";\n\nexport class DayjsRange {\n constructor(startDate, endDate) {\n const { s, e } =\n startDate > endDate\n ? { s: endDate, e: startDate }\n : { s: startDate, e: endDate };\n\n this.startDate = s;\n this.endDate = e;\n }\n\n isValidRange() {\n return this.startDate.isValid() && this.endDate.isValid();\n }\n\n isOverlap(other) {\n if (!(other instanceof DayjsRange) || !other.isValidRange()) {\n return false;\n }\n\n return this.startDate < other.endDate && this.endDate > other.startDate;\n }\n\n toArrayOfTimeIntervals(interval = 15) {\n let startTime = this.startDate;\n const endTime = this.endDate.add(1, \"days\");\n const allTimes = [];\n\n while (startTime < endTime) {\n allTimes.push(startTime.format(SLOT_TIME_FORMAT));\n startTime = startTime.add(interval, \"minutes\");\n }\n\n return allTimes;\n }\n}\n\nexport default (_, __, d) => {\n d.range = (start, end) => new DayjsRange(d(start), d(end));\n};\n\nexport function extendDayjs(dayjs) {\n dayjs.range = function range(start, end) {\n const dayjsObject = this;\n\n if (typeof start === \"string\" && INTERVALS.includes(start)) {\n return new DayjsRange(\n dayjs(dayjsObject).startOf(start),\n dayjs(dayjsObject).endOf(start)\n );\n }\n\n return new DayjsRange(start, end);\n };\n\n dayjs.range.constructor = DayjsRange;\n\n // Returns timeIntervals in 12 hour clock format for the whole day with both AM or PM suffixed\n dayjs.timeIntervalsForDay = interval => {\n const [startOfDay, endOfDay] = [\n dayjs(\"00:00 AM\", SLOT_TIME_FORMAT),\n dayjs(\"00:00 AM\", SLOT_TIME_FORMAT),\n ];\n\n const allIntervalsForADay = dayjs\n .range(startOfDay, endOfDay)\n .toArrayOfTimeIntervals(interval);\n\n return allIntervalsForADay;\n };\n\n return dayjs;\n}\n","import { dayjs } from \"neetocommons/utils\";\n\nimport { extendDayjs } from \"./range\";\n\n// Add range and overlap functions to dayjs\nconst dayjsExtended = extendDayjs(dayjs);\n\nexport default dayjsExtended;\n","import { ianaTimezoneToHumanReadable } from \"@bigbinary/neeto-time-zones\";\nimport i18next from \"i18next\";\nimport { findIndexBy } from \"neetocist\";\nimport { dayjs } from \"neetocommons/utils\";\nimport { timeFormat } from \"neetocommons/utils/datetime\";\nimport * as yup from \"yup\";\n\nimport { DAYS } from \"./constants\";\nimport dayjsExtended from \"./dayjsExtended\";\nimport { SLOT_TIME_FORMAT } from \"./Form/constants\";\n\nyup.addMethod(yup.array, \"ensureSlotsCantOverlap\", function () {\n return this.test(\"ensureSlotsCantOverlap\", function (periods) {\n const {\n exists: isOverlapping,\n range1,\n range2,\n } = checkForOverlapBetweenPeriods(periods);\n\n if (!isOverlapping) return true;\n\n const { firstIndex, secondIndex } = findIndicesOfOverlappingRangesInPeriods(\n { range1, range2, periods }\n );\n\n const firstError = this.createError({\n path: `${this.path}[${firstIndex}]`,\n message: i18next.t(\"neetoMolecules.schedule.errors.period.overlap\", {\n start: timeFormat.time(range2.startDate),\n end: timeFormat.time(range2.endDate),\n }),\n });\n\n const secondError = this.createError({\n path: `${this.path}[${secondIndex}]`,\n message: i18next.t(\"neetoMolecules.schedule.errors.period.overlap\", {\n start: timeFormat.time(range1.startDate),\n end: timeFormat.time(range1.endDate),\n }),\n });\n\n return new yup.ValidationError([firstError, secondError]);\n });\n});\n\nconst isFromAndToSame = (startTime, endTime) => {\n if (!startTime || !endTime) return true;\n\n return dayjs(startTime, SLOT_TIME_FORMAT).isSame(\n dayjs(endTime, SLOT_TIME_FORMAT)\n );\n};\n\nexport const sortDays = chosenIndex => {\n if (chosenIndex < 0 || chosenIndex >= 7) return DAYS;\n\n return [...DAYS.slice(chosenIndex), ...DAYS.slice(0, chosenIndex)];\n};\n\nexport const getScheduleValidationSchema = () =>\n yup.object().shape({\n wdays: yup.array().of(\n yup.object().shape({\n periods: yup\n .array()\n .of(\n yup\n .object()\n .shape({\n startTime: yup\n .string()\n .required(\n i18next.t(\"neetoMolecules.schedule.errors.period.startTime\")\n ),\n endTime: yup\n .string()\n .required(\n i18next.t(\"neetoMolecules.schedule.errors.period.endTime\")\n )\n .test(\n \"ensureToTimeNotBehindFromTime\",\n i18next.t(\"neetoMolecules.schedule.errors.period.isBehind\"),\n function (value) {\n const { startTime } = this.parent;\n if (isFromAndToSame(value, startTime)) return true;\n\n return isTimeBehind(startTime, value);\n }\n ),\n })\n .test(\n \"ensureTimeNotSame\",\n i18next.t(\"neetoMolecules.schedule.errors.period.sameTime\"),\n value => {\n const { startTime, endTime } = value;\n\n return !isFromAndToSame(startTime, endTime);\n }\n )\n )\n .ensureSlotsCantOverlap(),\n })\n ),\n });\n\nexport const getUserTimeZone = () => window.globalProps?.user.timeZone;\n\nexport const getTimeZoneAndTime = () => {\n const timeZone = getUserTimeZone();\n const humanReadableTimezone = ianaTimezoneToHumanReadable(timeZone);\n\n // Requires timezone initialization\n // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats\n return `${humanReadableTimezone}: ${dayjs()\n .tz(timeZone)\n .format(SLOT_TIME_FORMAT)}`;\n};\n\nexport const isTimeBehind = (timeA, timeB) =>\n dayjs(timeA, SLOT_TIME_FORMAT).isBefore(dayjs(timeB, SLOT_TIME_FORMAT));\n\nexport const sortPeriodsByKey = ({ periods, key, order = \"desc\" }) =>\n periods.slice().sort((periodA, periodB) => {\n const isPeriodBehind = isTimeBehind(periodA[key], periodB[key]);\n if (order === \"desc\") return isPeriodBehind ? 1 : -1;\n\n return isPeriodBehind ? -1 : 1;\n });\n\n/**\n * Check for overlapping between entered periods\n * @typedef {Object} Slots\n * @property {Array<{startTime:string, endTime: string}>} periods - startTime and endTime\n * @param {Slots} periods - changed time periods\n * @return {{exists: boolean, range1: DayjsRange | null, range2:DayjsRange | null }} - overlapped ranges if exists\n */\nexport const checkForOverlapBetweenPeriods = periods => {\n let response = { exists: false, range1: null, range2: null };\n\n if (!periods?.length) return response;\n\n const slotsSortedByStartTime = sortPeriodsByKey({\n periods,\n key: \"startTime\",\n });\n for (const [index, value] of slotsSortedByStartTime.slice(0, -1).entries()) {\n const seg1 = value;\n const seg2 = slotsSortedByStartTime[index + 1];\n const range1 = dayjsExtended.range(\n dayjsExtended(seg1.startTime, SLOT_TIME_FORMAT),\n dayjsExtended(seg1.endTime, SLOT_TIME_FORMAT)\n );\n\n const range2 = dayjsExtended.range(\n dayjsExtended(seg2.startTime, SLOT_TIME_FORMAT),\n dayjsExtended(seg2.endTime, SLOT_TIME_FORMAT)\n );\n if (range1.isOverlap(range2)) {\n response = { exists: true, range1, range2 };\n break;\n }\n }\n\n return response;\n};\n\nexport const findIndicesOfOverlappingRangesInPeriods = ({\n range1,\n range2,\n periods,\n}) => {\n const firstIndex = findIndexBy(\n { startTime: range1.startDate.format(SLOT_TIME_FORMAT) },\n periods\n );\n\n const secondIndex = periods.findIndex(\n (slot, index) =>\n index > firstIndex &&\n slot.startTime === range2.startDate.format(SLOT_TIME_FORMAT)\n );\n\n return { firstIndex, secondIndex };\n};\n\nexport const checkIfTwoTimeZonesAreSame = (timeZone1, timeZone2) =>\n // Requires timezone initialization\n // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats\n dayjs().tz(timeZone1).format(\"Z\") === dayjs().tz(timeZone2).format(\"Z\");\n","import { useContext } from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ScheduleContext from \"./ScheduleContext\";\nimport { sortDays, sortPeriodsByKey } from \"./utils\";\n\nconst DisplayAvailability = ({ periods }) => {\n const { t } = useTranslation();\n const { firstDay } = useContext(ScheduleContext);\n\n return (\n <div className=\"w-full space-y-4\">\n {sortDays(firstDay).map(day => (\n <div\n className=\"neeto-ui-rounded-md neeto-ui-shadow-xs neeto-ui-border-gray-200 neeto-ui-bg-white flex w-full flex-wrap items-center justify-center gap-2 border px-6 py-4 sm:items-start sm:justify-start\"\n key={day}\n >\n <Typography\n className=\"mt-0.5 w-24 text-center sm:w-1/4 sm:text-left\"\n data-cy={joinHyphenCase(day, \"day-text\")}\n style=\"h5\"\n weight=\"semibold\"\n >\n {t(`neetoMolecules.schedule.days.${day}`)}\n </Typography>\n <div className=\"flex flex-grow flex-col items-center space-y-4 sm:w-1/2\">\n {isPresent(periods[day]) ? (\n sortPeriodsByKey({\n periods: periods[day],\n key: \"startTime\",\n order: \"asc\",\n })?.map(period => (\n <div className=\"flex items-center space-x-4\" key={period.id}>\n <Typography\n className=\"w-20 text-right\"\n lineHeight=\"relaxed\"\n style=\"h5\"\n weight=\"semibold\"\n data-cy={joinHyphenCase(\n day,\n period.startTime,\n \"start-time-text\"\n )}\n >\n {period.startTime}\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-600\"\n component=\"span\"\n >\n -\n </Typography>\n <Typography\n className=\"w-20 text-left\"\n lineHeight=\"relaxed\"\n style=\"h5\"\n weight=\"semibold\"\n data-cy={joinHyphenCase(\n day,\n period.endTime,\n \"start-time-text\"\n )}\n >\n {period.endTime}\n </Typography>\n </div>\n ))\n ) : (\n <Typography\n className=\"mx-8 flex-grow text-center\"\n data-cy={joinHyphenCase(day, \"unavailable-time-text\")}\n lineHeight=\"relaxed\"\n style=\"h5\"\n >\n {t(\"neetoMolecules.schedule.unavailable\")}\n </Typography>\n )}\n </div>\n </div>\n ))}\n </div>\n );\n};\n\nexport default DisplayAvailability;\n","import { toLabelAndValue, isNotPresent } from \"neetocist\";\nimport { uniq, pluck, difference } from \"ramda\";\n\nimport { SLOT_TIME_FORMAT, END_OF_DAY } from \"./constants\";\n\nimport dayjs from \"../dayjsExtended\";\nimport { isTimeBehind } from \"../utils\";\n\nconst buildSlotIntervals = ({\n interval,\n bookedSlots,\n slotType,\n selectedValue = null,\n}) => {\n const selectedOption = {\n label: selectedValue,\n value: selectedValue,\n };\n const allIntervalsForADay = dayjs.timeIntervalsForDay(interval);\n\n allIntervalsForADay.push(END_OF_DAY);\n const uniqBookedSlots = uniq(pluck(slotType, bookedSlots));\n const slotsAvailableForBooking = difference(\n allIntervalsForADay,\n uniqBookedSlots\n );\n const slots = slotsAvailableForBooking.map(toLabelAndValue);\n\n return selectedValue ? sortSlots([selectedOption, ...slots]) : slots;\n};\n\nconst sortSlots = slots =>\n slots.sort((a, b) => (isTimeBehind(a[\"value\"], b[\"value\"]) ? -1 : 1));\n\nconst slotsSelectComponentDefaultValue = slot =>\n slot ? toLabelAndValue(slot) : \"\";\n\nconst padZeroes = str => (str.length % 2 === 0 ? str : `0${str}`);\n\nconst customFilter = (option, searchTerm) => {\n if (isNotPresent(searchTerm)) return true;\n\n const doesNumberMatches = option.value\n .replace(\":\", \"\")\n .startsWith(padZeroes(searchTerm.replaceAll(/\\D+/gi, \"\")));\n\n const doesAmPmMatches = option.value.includes(\n searchTerm.toUpperCase().replaceAll(/[^a-z]/gi, \"\")\n );\n\n return doesNumberMatches && doesAmPmMatches;\n};\n\nconst roundToNearestHour = time => {\n const minutes = time.minute();\n\n if (minutes === 59) return time.startOf(\"hour\").add(1, \"hour\");\n\n return time.add(1, \"hour\");\n};\n\nconst generateNewPeriod = (periods, wday) => {\n const lastEndTime = periods[periods.length - 1].endTime;\n const newStartTime = roundToNearestHour(dayjs(lastEndTime, SLOT_TIME_FORMAT));\n const newEndTime = dayjs(newStartTime, SLOT_TIME_FORMAT).add(1, \"hour\");\n\n return {\n startTime: dayjs(newStartTime).format(SLOT_TIME_FORMAT),\n endTime: dayjs(newEndTime).format(SLOT_TIME_FORMAT),\n wday,\n };\n};\n\nconst addDefaultPeriod = wday => ({\n wday,\n startTime: \"09:00 AM\",\n endTime: \"05:00 PM\",\n});\n\nexport {\n buildSlotIntervals,\n slotsSelectComponentDefaultValue,\n customFilter,\n generateNewPeriod,\n addDefaultPeriod,\n};\n","import { useContext } from \"react\";\n\nimport { FieldArray, ErrorMessage } from \"formik\";\nimport { isNotPresent, isPresent } from \"neetocist\";\nimport { Plus, Delete } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport { Select } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n REMOVE_SELECT_DOWN_ARROW,\n BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN,\n} from \"./constants\";\nimport {\n buildSlotIntervals,\n slotsSelectComponentDefaultValue,\n customFilter,\n generateNewPeriod,\n addDefaultPeriod,\n} from \"./utils\";\n\nimport { DEFAULT_SLOT_INTERVAL } from \"../constants\";\nimport ScheduleContext from \"../ScheduleContext\";\n\nconst ScheduleRow = ({ values, setFieldValue, wdayIndex, day }) => {\n const { t } = useTranslation();\n\n const handleAddRow = arrayHelpers => {\n if (isNotPresent(values.wdays[wdayIndex].periods)) {\n arrayHelpers.push(addDefaultPeriod(day));\n } else {\n arrayHelpers.push(\n generateNewPeriod(values.wdays[wdayIndex].periods, day)\n );\n }\n setFieldValue(`wdays[${wdayIndex}].available`, true);\n };\n\n const handleDeleteRow = (arrayHelpers, index) => {\n const isLastRowDeleted = values.wdays[wdayIndex].periods.length === 1;\n arrayHelpers.remove(index);\n setFieldValue(`wdays[${wdayIndex}].available`, !isLastRowDeleted);\n };\n\n const { allowAddPeriod } = useContext(ScheduleContext);\n\n return (\n <FieldArray\n name={`wdays[${wdayIndex}].periods`}\n render={arrayHelpers => (\n <>\n {isPresent(values.wdays[wdayIndex]?.periods) && (\n <div className=\"w-full space-y-2\">\n {values.wdays[wdayIndex].periods?.map((period, index) => (\n <div\n className=\"flex w-full flex-col sm:mx-auto sm:w-80\"\n key={`wdays[${wdayIndex}].periods[${index}]`}\n >\n <div\n className=\"flex items-start gap-2 sm:gap-3\"\n data-cy=\"schedule-row\"\n >\n <Select\n isClearable\n isSearchable\n className=\"w-full\"\n components={REMOVE_SELECT_DOWN_ARROW}\n filterOption={customFilter}\n name={`wdays[${wdayIndex}].periods[${index}].startTime`}\n placeholder={t(\"neetoMolecules.schedule.startTime\")}\n styles={BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN}\n options={buildSlotIntervals({\n interval: DEFAULT_SLOT_INTERVAL,\n bookedSlots: values.wdays[wdayIndex].periods,\n slotType: \"startTime\",\n selectedValue: period?.startTime,\n })}\n value={slotsSelectComponentDefaultValue(\n period?.startTime\n )}\n onChange={e =>\n setFieldValue(\n `wdays[${wdayIndex}].periods[${index}].startTime`,\n e?.value || \"\"\n )\n }\n />\n <Select\n isClearable\n isSearchable\n className=\"w-full\"\n components={REMOVE_SELECT_DOWN_ARROW}\n filterOption={customFilter}\n name={`wdays[${wdayIndex}].periods[${index}].endTime`}\n placeholder={t(\"neetoMolecules.schedule.endTime\")}\n styles={BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN}\n value={slotsSelectComponentDefaultValue(period?.endTime)}\n options={buildSlotIntervals({\n interval: DEFAULT_SLOT_INTERVAL,\n bookedSlots: values.wdays[wdayIndex].periods,\n slotType: \"endTime\",\n selectedValue: period?.endTime,\n })}\n onChange={e =>\n setFieldValue(\n `wdays[${wdayIndex}].periods[${index}].endTime`,\n e?.value || \"\"\n )\n }\n />\n <Button\n className=\"flex-shrink-0 self-start\"\n data-cy=\"delete-period-button\"\n data-testid=\"delete-period-button\"\n icon={Delete}\n style=\"text\"\n onClick={() => handleDeleteRow(arrayHelpers, index)}\n />\n </div>\n <ErrorMessage name={`wdays[${wdayIndex}].periods[${index}]`}>\n {message =>\n typeof message !== \"object\" && (\n <span className=\"neeto-ui-text-error-500 mt-1 w-11/12 px-2 text-xs\">\n {message}\n </span>\n )\n }\n </ErrorMessage>\n </div>\n ))}\n </div>\n )}\n {values.wdays[wdayIndex].available && allowAddPeriod && (\n <Button\n className=\"absolute right-14 top-3 ml-auto flex-shrink-0 sm:static\"\n data-cy=\"add-new-period-button\"\n data-testid=\"add-new-period-button\"\n icon={Plus}\n style=\"secondary\"\n tooltipProps={{\n content: t(\"neetoMolecules.schedule.addNewPeriod\"),\n position: \"top\",\n hideAfter: 5000,\n touch: [\"hold\", 500],\n }}\n onClick={() => handleAddRow(arrayHelpers)}\n />\n )}\n </>\n )}\n />\n );\n};\n\nexport default ScheduleRow;\n","import { useContext, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isNotPresent, isPresent } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Copy } from \"neetoicons\";\nimport { Typography, Dropdown, Button, Label, Checkbox } from \"neetoui\";\nimport { Switch } from \"neetoui/formik\";\nimport { append, identity, without } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ScheduleRow from \"./ScheduleRow\";\nimport { addDefaultPeriod } from \"./utils\";\n\nimport ScheduleContext from \"../ScheduleContext\";\nimport { sortDays } from \"../utils\";\n\nconst Form = ({ day, handleCopy, values, setFieldValue, index }) => {\n const [deletedPeriods, setDeletedPeriods] = useState([]);\n const [wdaysToCopy, setWdaysToCopy] = useState([]);\n\n const { t } = useTranslation();\n const { firstDay } = useContext(ScheduleContext);\n\n const restoreDeletedPeriods = setFieldValue => {\n setFieldValue(`wdays[${index}].periods`, deletedPeriods);\n };\n\n const uncheckCheckbox = (setFieldValue, values) => {\n setFieldValue(`wdays[${index}].available`, false);\n setFieldValue(`wdays[${index}].periods`, []);\n if (values.wdays[index].periods[0]?.id) {\n setDeletedPeriods(\n values.wdays[index].periods\n .filter(item => item.startTime && item.endTime)\n .map(identity)\n );\n }\n };\n\n const checkCheckbox = setFieldValue => {\n setFieldValue(`wdays[${index}].available`, true);\n if (deletedPeriods[0]?.startTime) {\n restoreDeletedPeriods(setFieldValue);\n } else if (isNotPresent(values.wdays[index].periods)) {\n setFieldValue(`wdays[${index}].periods`, [addDefaultPeriod(day)]);\n } else {\n setFieldValue(`wdays[${index}].periods`, [\"\"]);\n }\n };\n\n const handleCheckbox = (setFieldValue, values) => {\n if (values.wdays[index].available) {\n uncheckCheckbox(setFieldValue, values);\n } else {\n checkCheckbox(setFieldValue);\n }\n };\n\n const handleCopyChange = (e, day) =>\n setWdaysToCopy(e.target.checked ? append(day) : without([day]));\n\n return (\n <div className=\"neeto-ui-rounded-md neeto-ui-shadow-xs neeto-ui-border-gray-200 neeto-ui-bg-white relative w-full border px-4 md:px-6\">\n <div\n className=\"sm:flex-no-wrap my-4 flex w-full flex-wrap items-start gap-2 sm:flex-nowrap sm:gap-4\" // Added `sm:flex-no-wrap` since neetoCal is using old version of tailwind\n data-cy=\"working-day-container\"\n >\n <div\n className={classnames(\n \"flex w-36 flex-shrink-0 items-center justify-start sm:mt-1\",\n { \"mb-3 sm:mb-0\": isPresent(values.wdays[index]?.periods) }\n )}\n >\n <Switch\n aria-label={`wdays[${index}].available`}\n checked={values.wdays[index].available}\n className=\"flex-grow-0\"\n data-cy={joinHyphenCase(day, \"weekly-hours-checkbox\")}\n id=\"day\"\n name={`wdays[${index}].available`}\n onChange={() => handleCheckbox(setFieldValue, values)}\n />\n <Typography\n component=\"span\"\n data-cy={joinHyphenCase(day, \"day-text\")}\n style=\"body2\"\n weight={values.wdays[index].available ? \"semibold\" : \"normal\"}\n className={classnames(\"ml-2 capitalize\", {\n \"neeto-ui-text-gray-600\": !values.wdays[index].available,\n })}\n >\n {t(`neetoMolecules.schedule.days.${day}`)}\n </Typography>\n </div>\n <ScheduleRow {...{ day, setFieldValue, values }} wdayIndex={index} />\n {values.wdays[index].available && (\n <Dropdown\n closeOnSelect\n buttonStyle=\"secondary\"\n icon={Copy}\n position=\"right-start\"\n buttonProps={{\n tooltipProps: {\n content: t(\"neetoMolecules.schedule.copyScheduleTooltip\"),\n position: \"top\",\n hideAfter: 5000,\n touch: [\"hold\", 500],\n },\n className: \"absolute right-4 top-3 sm:static flex-shrink-0\",\n \"data-testid\": joinHyphenCase(day, \"copy-schedule-icon\"),\n \"data-cy\": joinHyphenCase(day, \"copy-schedule-icon\"),\n }}\n dropdownProps={{\n className:\n \"neeto-ui-dropdown__popup neeto-molecules-schedule__dropdown\",\n }}\n onClose={() => setWdaysToCopy([])}\n >\n <li>\n <Typography style=\"h5\">\n {t(\"neetoMolecules.schedule.copySchedule\")}\n </Typography>\n </li>\n {sortDays(firstDay)\n .filter(copyDay => copyDay !== day)\n .map(day => (\n <li key={day} onClick={e => e.stopPropagation()}>\n <Label className=\"w-full cursor-pointer capitalize\">\n <Checkbox\n checked={wdaysToCopy.includes(day)}\n id={day}\n label={t(`neetoMolecules.schedule.days.${day}`)}\n onChange={e => handleCopyChange(e, day)}\n />\n </Label>\n </li>\n ))}\n <li>\n <Button\n data-cy=\"copy-schedule-submit-button\"\n disabled={isNotPresent(wdaysToCopy)}\n label={t(\"neetoMolecules.common.actions.submit\")}\n size=\"small\"\n onClick={() => {\n handleCopy({ values, index, setFieldValue, wdaysToCopy });\n setWdaysToCopy([]);\n }}\n />\n </li>\n </Dropdown>\n )}\n </div>\n </div>\n );\n};\n\nexport default Form;\n","import { useEffect, useImperativeHandle } from \"react\";\n\nimport { FieldArray, useFormikContext } from \"formik\";\n\nimport { DAYS } from \"./constants\";\nimport Form from \"./Form\";\n\nconst Fields = ({ handleCopy, handleValuesChanged, scheduleRef }) => {\n const { values, setFieldValue, resetForm, errors, dirty } =\n useFormikContext();\n\n useEffect(() => {\n handleValuesChanged(values, dirty);\n }, [values]);\n\n useImperativeHandle(scheduleRef, () => ({ resetForm, errors }));\n\n return (\n <FieldArray\n name=\"wdays\"\n render={() => (\n <div className=\"space-y-4\">\n {values.wdays.map((item, index) => (\n <Form\n {...{ handleCopy, index, setFieldValue, values }}\n day={DAYS.find(day => day === item.wday)}\n key={item.wday}\n />\n ))}\n </div>\n )}\n />\n );\n};\n\nexport default Fields;\n","import { useState, useEffect } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { Profile } from \"neetoteam\";\nimport { Button, Typography, Tooltip } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport MoreDropdown from \"components/MoreDropdown\";\n\nimport { getTimeZoneAndTime } from \"./utils\";\n\nconst Header = ({ isCreating, isEditable, isEditing, setIsEditing }) => {\n const { dirty, resetForm, submitForm, isSubmitting } = useFormikContext();\n const { t } = useTranslation();\n const [timeZoneAndTime, setTimeZoneAndTime] = useState(getTimeZoneAndTime());\n const [_, setIsProfilePaneOpen] = Profile.usePaneState();\n\n const handleReset = () => {\n if (dirty) resetForm();\n else setIsEditing(false);\n };\n\n useEffect(() => {\n const time = setInterval(() => {\n setTimeZoneAndTime(getTimeZoneAndTime());\n }, 30000);\n\n return () => clearInterval(time);\n }, []);\n\n return (\n <div className=\"mb-6 flex flex-wrap justify-between gap-2\">\n <div className=\"flex items-center gap-3\">\n <Tooltip\n content={t(\"neetoMolecules.schedule.timezoneTooltip\")}\n position=\"bottom\"\n touch={[\"hold\", 500]}\n >\n <Typography\n component=\"h4\"\n data-cy=\"timezone-text\"\n style=\"h5\"\n weight=\"medium\"\n >\n {timeZoneAndTime}\n </Typography>\n </Tooltip>\n {isEditable && (\n <MoreDropdown\n dropdownButtonProps={{ \"data-testid\": \"nui-more-dropdown\" }}\n menuItems={[\n {\n onClick: () => setIsProfilePaneOpen(true),\n label: t(\"neetoMolecules.common.actions.changeTimezone\"),\n target: \"_blank\",\n key: \"change-timezone-option\",\n \"data-testid\": \"change-timezone-option\",\n },\n ]}\n />\n )}\n </div>\n {isEditing ? (\n <div className=\"flex items-center gap-2\">\n <Button\n data-cy=\"reset-button\"\n style=\"secondary\"\n label={\n !dirty\n ? t(\"neetoMolecules.common.actions.cancel\")\n : t(\"neetoMolecules.common.actions.reset\")\n }\n onClick={handleReset}\n />\n <Button\n data-cy=\"weekly-hours-save-changes-button\"\n disabled={(!dirty && !isCreating) || isSubmitting}\n label={t(\"neetoMolecules.common.actions.saveChanges\")}\n loading={isSubmitting}\n onClick={submitForm}\n />\n </div>\n ) : (\n <div>\n {isEditable && (\n <Button\n data-cy=\"weekly-schedule-header\"\n label={t(\"neetoMolecules.schedule.changeAvailability\")}\n style=\"primary\"\n weight=\"semibold\"\n onClick={() => setIsEditing(true)}\n />\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport default Header;\n","import { forwardRef } from \"react\";\n\nimport { Formik, Form as FormikForm } from \"formik\";\nimport { isPresent, noop } from \"neetocist\";\nimport PropTypes from \"prop-types\";\nimport { assoc, pick } from \"ramda\";\n\nimport DisplayAvailability from \"./DisplayAvailability\";\nimport Fields from \"./Fields\";\nimport Header from \"./Header\";\nimport \"./schedule.scss\";\nimport ScheduleContext from \"./ScheduleContext\";\nimport {\n sortPeriodsByKey,\n getScheduleValidationSchema,\n sortDays,\n} from \"./utils\";\n\nconst Schedule = forwardRef(\n (\n {\n periods,\n handleSubmit = noop,\n isEditing = false,\n setIsEditing,\n showHeader = true,\n handleValuesChanged = noop,\n allowAddPeriod = true,\n isEditable = true,\n isCreating = false,\n firstDay = 1,\n },\n scheduleRef\n ) => {\n const handleCopy = ({ values, index, setFieldValue, wdaysToCopy }) => {\n const newPeriods = values.wdays[index].periods?.map(\n pick([\"startTime\", \"endTime\"])\n );\n\n wdaysToCopy.forEach(wday => {\n const dayIndex = sortDays(firstDay).indexOf(wday);\n setFieldValue(\n `wdays[${dayIndex}].available`,\n isPresent(values.wdays[index].periods)\n );\n\n setFieldValue(\n `wdays[${dayIndex}].periods`,\n newPeriods.map(period => assoc(\"wday\", wday, period))\n );\n });\n };\n\n const getInitialFormValues = () =>\n sortDays(firstDay).map(wday => ({\n periods: sortPeriodsByKey({\n periods: periods[wday],\n key: \"startTime\",\n order: \"asc\",\n }),\n available: !!periods[wday]?.length,\n wday,\n }));\n\n return (\n <div className=\"neeto-molecules-schedule neeto-ui-border-gray-200 flex-shrink-0\">\n <Formik\n enableReinitialize\n initialValues={{ wdays: getInitialFormValues() }}\n validationSchema={getScheduleValidationSchema()}\n onSubmit={values => handleSubmit(values, getInitialFormValues())}\n >\n <>\n {showHeader && (\n <Header\n {...{ isCreating, isEditable, isEditing, setIsEditing }}\n />\n )}\n <ScheduleContext.Provider value={{ allowAddPeriod, firstDay }}>\n {isEditing || !showHeader ? (\n <FormikForm>\n <Fields\n {...{\n handleCopy,\n handleValuesChanged,\n scheduleRef,\n }}\n />\n </FormikForm>\n ) : (\n <DisplayAvailability {...{ periods }} />\n )}\n </ScheduleContext.Provider>\n </>\n </Formik>\n </div>\n );\n }\n);\n\nSchedule.displayName = \"Schedule\";\n\nSchedule.propTypes = {\n /**\n * Periods data for days of the week.\n */\n periods: PropTypes.shape({\n sunday: PropTypes.array,\n monday: PropTypes.array,\n tuesday: PropTypes.array,\n wednesday: PropTypes.array,\n thursday: PropTypes.array,\n friday: PropTypes.array,\n saturday: PropTypes.array,\n }),\n /**\n * The function to be called on save changes action.\n */\n handleSubmit: PropTypes.func,\n /**\n * State value to show form for editing.\n */\n isEditing: PropTypes.bool,\n /**\n * Setter function to toggle `isEditing` state.\n */\n setIsEditing: PropTypes.func,\n /**\n * Flag to display or hide header. If set to false, component will open in editing state.\n */\n showHeader: PropTypes.bool,\n /**\n * Callback function called when values are changed within form.\n */\n handleValuesChanged: PropTypes.func,\n /**\n * Flag to allow adding new periods. If set to false, Add new period button will be hidden.\n */\n allowAddPeriod: PropTypes.bool,\n /**\n * Flag to control the ability to edit the schedule and timezone. When set to false, periods and timezone cannot be edited.\n */\n isEditable: PropTypes.bool,\n /**\n * Flag to control the ability to submit the schedule without changing initial values. When set to false, Schedule can only be submitted once the initial values are changed.\n */\n isCreating: PropTypes.bool,\n /**\n * Integer prop to choose which day of the week to display first in the component. Defaults to 1(Monday).\n */\n firstDay: PropTypes.number,\n};\n\nexport default Schedule;\n"],"names":["ScheduleContext","createContext","allowAddPeriod","firstDay","DAYS","DEFAULT_SLOT_INTERVAL","INTERVALS","REMOVE_SELECT_DOWN_ARROW","DropdownIndicator","IndicatorSeparator","BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN","singleValue","base","state","_objectSpread","color","selectProps","menuIsOpen","SLOT_TIME_FORMAT","END_OF_DAY","DayjsRange","startDate","endDate","_classCallCheck","_ref","s","e","_createClass","key","value","isValidRange","isValid","isOverlap","other","toArrayOfTimeIntervals","interval","arguments","length","undefined","startTime","endTime","add","allTimes","push","format","extendDayjs","dayjs","range","start","end","dayjsObject","includes","startOf","endOf","constructor","timeIntervalsForDay","_ref2","startOfDay","endOfDay","allIntervalsForADay","dayjsExtended","yup","addMethod","array","test","periods","_checkForOverlapBetwe","checkForOverlapBetweenPeriods","isOverlapping","exists","range1","range2","_findIndicesOfOverlap","findIndicesOfOverlappingRangesInPeriods","firstIndex","secondIndex","firstError","createError","path","concat","message","i18next","t","timeFormat","time","secondError","ValidationError","isFromAndToSame","isSame","sortDays","chosenIndex","_toConsumableArray","slice","getScheduleValidationSchema","object","shape","wdays","of","string","required","parent","isTimeBehind","ensureSlotsCantOverlap","getUserTimeZone","_window$globalProps","window","globalProps","user","timeZone","getTimeZoneAndTime","humanReadableTimezone","ianaTimezoneToHumanReadable","tz","timeA","timeB","isBefore","sortPeriodsByKey","_ref$order","order","sort","periodA","periodB","isPeriodBehind","response","slotsSortedByStartTime","_iterator","_createForOfIteratorHelper","entries","_step","n","done","_step$value","_slicedToArray","index","seg1","seg2","err","f","findIndexBy","findIndex","slot","DisplayAvailability","_useTranslation","useTranslation","_useContext","useContext","_jsx","className","children","map","day","_sortPeriodsByKey","_jsxs","Typography","joinHyphenCase","style","weight","isPresent","period","lineHeight","component","id","buildSlotIntervals","bookedSlots","slotType","_ref$selectedValue","selectedValue","selectedOption","label","uniqBookedSlots","uniq","pluck","slotsAvailableForBooking","difference","slots","toLabelAndValue","sortSlots","a","b","slotsSelectComponentDefaultValue","padZeroes","str","customFilter","option","searchTerm","isNotPresent","doesNumberMatches","replace","startsWith","replaceAll","doesAmPmMatches","toUpperCase","roundToNearestHour","minutes","minute","generateNewPeriod","wday","lastEndTime","newStartTime","newEndTime","addDefaultPeriod","ScheduleRow","values","setFieldValue","wdayIndex","handleAddRow","arrayHelpers","handleDeleteRow","isLastRowDeleted","remove","FieldArray","name","render","_values$wdays$wdayInd","_values$wdays$wdayInd2","_Fragment","Select","isClearable","isSearchable","components","filterOption","placeholder","styles","options","onChange","Button","icon","Delete","onClick","ErrorMessage","_typeof","available","Plus","tooltipProps","content","position","hideAfter","touch","Form","_values$wdays$index","handleCopy","_useState","useState","_useState2","deletedPeriods","setDeletedPeriods","_useState3","_useState4","wdaysToCopy","setWdaysToCopy","restoreDeletedPeriods","uncheckCheckbox","_values$wdays$index$p","filter","item","identity","checkCheckbox","_deletedPeriods$","handleCheckbox","handleCopyChange","target","checked","append","without","classnames","Switch","Dropdown","closeOnSelect","buttonStyle","Copy","buttonProps","dropdownProps","onClose","copyDay","stopPropagation","Label","Checkbox","disabled","size","Fields","handleValuesChanged","scheduleRef","_useFormikContext","useFormikContext","resetForm","errors","dirty","useEffect","useImperativeHandle","_createElement","find","Header","isCreating","isEditable","isEditing","setIsEditing","submitForm","isSubmitting","timeZoneAndTime","setTimeZoneAndTime","_Profile$usePaneState","Profile","usePaneState","_Profile$usePaneState2","_","setIsProfilePaneOpen","handleReset","setInterval","clearInterval","Tooltip","MoreDropdown","dropdownButtonProps","menuItems","loading","Schedule","forwardRef","_ref$handleSubmit","handleSubmit","noop","_ref$isEditing","_ref$showHeader","showHeader","_ref$handleValuesChan","_ref$allowAddPeriod","_ref$isEditable","_ref$isCreating","_ref$firstDay","newPeriods","pick","forEach","dayIndex","indexOf","assoc","getInitialFormValues","_periods$wday","Formik","enableReinitialize","initialValues","validationSchema","onSubmit","Provider","FormikForm","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"Schedule.js","sources":["../../src/components/Schedule/ScheduleContext.js","../../src/components/Schedule/constants.js","../../src/components/Schedule/dayjsExtended/constants.js","../../src/components/Schedule/Form/constants.js","../../src/components/Schedule/dayjsExtended/range.js","../../src/components/Schedule/dayjsExtended/index.js","../../src/components/Schedule/utils.js","../../src/components/Schedule/DisplayAvailability.jsx","../../src/components/Schedule/Form/utils.js","../../src/components/Schedule/Form/ScheduleRow.jsx","../../src/components/Schedule/Form/index.jsx","../../src/components/Schedule/Fields.jsx","../../src/components/Schedule/Header.jsx","../../src/components/Schedule/index.jsx"],"sourcesContent":["import { createContext } from \"react\";\n\n// To avoid prop drilling `allowAddPeriod` to `ScheduleRow` component\n// eslint-disable-next-line @bigbinary/neeto/use-zustand-for-global-state-management\nconst ScheduleContext = createContext({ allowAddPeriod: true, firstDay: 0 });\n\nexport default ScheduleContext;\n","export const DEFAULT_BOOKED_SLOTS = [\n { startTime: \"09:00 AM\", endTime: \"05:00 PM\" },\n];\n\nexport const MARK_DAY_AS_AVAILABLE_BY_DEFAULT = true;\n\nexport const DAYS = [\n \"sunday\",\n \"monday\",\n \"tuesday\",\n \"wednesday\",\n \"thursday\",\n \"friday\",\n \"saturday\",\n];\n\nexport const DEFAULT_SLOT_INTERVAL = 30;\n","export const INTERVALS = [\n \"year\",\n \"quarter\",\n \"month\",\n \"week\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n];\n","export const REMOVE_SELECT_DOWN_ARROW = {\n DropdownIndicator: () => null,\n IndicatorSeparator: () => null,\n};\n\nexport const BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN = {\n singleValue: (base, state) => ({\n ...base,\n color: state.selectProps.menuIsOpen ? \"#c2c8cc\" : base.color,\n }),\n};\n\nexport const SLOT_TIME_FORMAT = \"hh:mm A\";\n\nexport const END_OF_DAY = \"11:59 PM\";\n","import { INTERVALS } from \"./constants\";\n\nimport { SLOT_TIME_FORMAT } from \"../Form/constants\";\n\nexport class DayjsRange {\n constructor(startDate, endDate) {\n const { s, e } =\n startDate > endDate\n ? { s: endDate, e: startDate }\n : { s: startDate, e: endDate };\n\n this.startDate = s;\n this.endDate = e;\n }\n\n isValidRange() {\n return this.startDate.isValid() && this.endDate.isValid();\n }\n\n isOverlap(other) {\n if (!(other instanceof DayjsRange) || !other.isValidRange()) {\n return false;\n }\n\n return this.startDate < other.endDate && this.endDate > other.startDate;\n }\n\n toArrayOfTimeIntervals(interval = 15) {\n let startTime = this.startDate;\n const endTime = this.endDate.add(1, \"days\");\n const allTimes = [];\n\n while (startTime < endTime) {\n allTimes.push(startTime.format(SLOT_TIME_FORMAT));\n startTime = startTime.add(interval, \"minutes\");\n }\n\n return allTimes;\n }\n}\n\nexport default (_, __, d) => {\n d.range = (start, end) => new DayjsRange(d(start), d(end));\n};\n\nexport function extendDayjs(dayjs) {\n dayjs.range = function range(start, end) {\n const dayjsObject = this;\n\n if (typeof start === \"string\" && INTERVALS.includes(start)) {\n return new DayjsRange(\n dayjs(dayjsObject).startOf(start),\n dayjs(dayjsObject).endOf(start)\n );\n }\n\n return new DayjsRange(start, end);\n };\n\n dayjs.range.constructor = DayjsRange;\n\n // Returns timeIntervals in 12 hour clock format for the whole day with both AM or PM suffixed\n dayjs.timeIntervalsForDay = interval => {\n const [startOfDay, endOfDay] = [\n dayjs(\"00:00 AM\", SLOT_TIME_FORMAT),\n dayjs(\"00:00 AM\", SLOT_TIME_FORMAT),\n ];\n\n const allIntervalsForADay = dayjs\n .range(startOfDay, endOfDay)\n .toArrayOfTimeIntervals(interval);\n\n return allIntervalsForADay;\n };\n\n return dayjs;\n}\n","import { dayjs } from \"neetocommons/utils\";\n\nimport { extendDayjs } from \"./range\";\n\n// Add range and overlap functions to dayjs\nconst dayjsExtended = extendDayjs(dayjs);\n\nexport default dayjsExtended;\n","import { ianaTimezoneToHumanReadable } from \"@bigbinary/neeto-time-zones\";\nimport i18next from \"i18next\";\nimport { findIndexBy } from \"neetocist\";\nimport { dayjs } from \"neetocommons/utils\";\nimport { timeFormat } from \"neetocommons/utils/datetime\";\nimport * as yup from \"yup\";\n\nimport { DAYS } from \"./constants\";\nimport dayjsExtended from \"./dayjsExtended\";\nimport { SLOT_TIME_FORMAT } from \"./Form/constants\";\n\nyup.addMethod(yup.array, \"ensureSlotsCantOverlap\", function () {\n return this.test(\"ensureSlotsCantOverlap\", function (periods) {\n const {\n exists: isOverlapping,\n range1,\n range2,\n } = checkForOverlapBetweenPeriods(periods);\n\n if (!isOverlapping) return true;\n\n const { firstIndex, secondIndex } = findIndicesOfOverlappingRangesInPeriods(\n { range1, range2, periods }\n );\n\n const firstError = this.createError({\n path: `${this.path}[${firstIndex}]`,\n message: i18next.t(\"neetoMolecules.schedule.errors.period.overlap\", {\n start: timeFormat.time(range2.startDate),\n end: timeFormat.time(range2.endDate),\n }),\n });\n\n const secondError = this.createError({\n path: `${this.path}[${secondIndex}]`,\n message: i18next.t(\"neetoMolecules.schedule.errors.period.overlap\", {\n start: timeFormat.time(range1.startDate),\n end: timeFormat.time(range1.endDate),\n }),\n });\n\n return new yup.ValidationError([firstError, secondError]);\n });\n});\n\nconst isFromAndToSame = (startTime, endTime) => {\n if (!startTime || !endTime) return true;\n\n return dayjs(startTime, SLOT_TIME_FORMAT).isSame(\n dayjs(endTime, SLOT_TIME_FORMAT)\n );\n};\n\nexport const sortDays = chosenIndex => {\n if (chosenIndex < 0 || chosenIndex >= 7) return DAYS;\n\n return [...DAYS.slice(chosenIndex), ...DAYS.slice(0, chosenIndex)];\n};\n\nexport const getScheduleValidationSchema = () =>\n yup.object().shape({\n wdays: yup.array().of(\n yup.object().shape({\n periods: yup\n .array()\n .of(\n yup\n .object()\n .shape({\n startTime: yup\n .string()\n .required(\n i18next.t(\"neetoMolecules.schedule.errors.period.startTime\")\n ),\n endTime: yup\n .string()\n .required(\n i18next.t(\"neetoMolecules.schedule.errors.period.endTime\")\n )\n .test(\n \"ensureToTimeNotBehindFromTime\",\n i18next.t(\"neetoMolecules.schedule.errors.period.isBehind\"),\n function (value) {\n const { startTime } = this.parent;\n if (isFromAndToSame(value, startTime)) return true;\n\n return isTimeBehind(startTime, value);\n }\n ),\n })\n .test(\n \"ensureTimeNotSame\",\n i18next.t(\"neetoMolecules.schedule.errors.period.sameTime\"),\n value => {\n const { startTime, endTime } = value;\n\n return !isFromAndToSame(startTime, endTime);\n }\n )\n )\n .ensureSlotsCantOverlap(),\n })\n ),\n });\n\nexport const getUserTimeZone = () => window.globalProps?.user.timeZone;\n\nexport const getTimeZoneAndTime = () => {\n const timeZone = getUserTimeZone();\n const humanReadableTimezone = ianaTimezoneToHumanReadable(timeZone);\n\n // Requires timezone initialization\n // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats\n return `${humanReadableTimezone}: ${dayjs()\n .tz(timeZone)\n .format(SLOT_TIME_FORMAT)}`;\n};\n\nexport const isTimeBehind = (timeA, timeB) =>\n dayjs(timeA, SLOT_TIME_FORMAT).isBefore(dayjs(timeB, SLOT_TIME_FORMAT));\n\nexport const sortPeriodsByKey = ({ periods, key, order = \"desc\" }) =>\n periods.slice().sort((periodA, periodB) => {\n const isPeriodBehind = isTimeBehind(periodA[key], periodB[key]);\n if (order === \"desc\") return isPeriodBehind ? 1 : -1;\n\n return isPeriodBehind ? -1 : 1;\n });\n\n/**\n * Check for overlapping between entered periods\n * @typedef {Object} Slots\n * @property {Array<{startTime:string, endTime: string}>} periods - startTime and endTime\n * @param {Slots} periods - changed time periods\n * @return {{exists: boolean, range1: DayjsRange | null, range2:DayjsRange | null }} - overlapped ranges if exists\n */\nexport const checkForOverlapBetweenPeriods = periods => {\n let response = { exists: false, range1: null, range2: null };\n\n if (!periods?.length) return response;\n\n const slotsSortedByStartTime = sortPeriodsByKey({\n periods,\n key: \"startTime\",\n });\n for (const [index, value] of slotsSortedByStartTime.slice(0, -1).entries()) {\n const seg1 = value;\n const seg2 = slotsSortedByStartTime[index + 1];\n const range1 = dayjsExtended.range(\n dayjsExtended(seg1.startTime, SLOT_TIME_FORMAT),\n dayjsExtended(seg1.endTime, SLOT_TIME_FORMAT)\n );\n\n const range2 = dayjsExtended.range(\n dayjsExtended(seg2.startTime, SLOT_TIME_FORMAT),\n dayjsExtended(seg2.endTime, SLOT_TIME_FORMAT)\n );\n if (range1.isOverlap(range2)) {\n response = { exists: true, range1, range2 };\n break;\n }\n }\n\n return response;\n};\n\nexport const findIndicesOfOverlappingRangesInPeriods = ({\n range1,\n range2,\n periods,\n}) => {\n const firstIndex = findIndexBy(\n { startTime: range1.startDate.format(SLOT_TIME_FORMAT) },\n periods\n );\n\n const secondIndex = periods.findIndex(\n (slot, index) =>\n index > firstIndex &&\n slot.startTime === range2.startDate.format(SLOT_TIME_FORMAT)\n );\n\n return { firstIndex, secondIndex };\n};\n\nexport const checkIfTwoTimeZonesAreSame = (timeZone1, timeZone2) =>\n // Requires timezone initialization\n // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats\n dayjs().tz(timeZone1).format(\"Z\") === dayjs().tz(timeZone2).format(\"Z\");\n","import { useContext } from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ScheduleContext from \"./ScheduleContext\";\nimport { sortDays, sortPeriodsByKey } from \"./utils\";\n\nconst DisplayAvailability = ({ periods }) => {\n const { t } = useTranslation();\n const { firstDay } = useContext(ScheduleContext);\n\n return (\n <div className=\"w-full space-y-4\">\n {sortDays(firstDay).map(day => (\n <div\n className=\"neeto-ui-rounded-md neeto-ui-shadow-xs neeto-ui-border-gray-200 neeto-ui-bg-white flex w-full flex-wrap items-center justify-center gap-2 border px-6 py-4 sm:items-start sm:justify-start\"\n key={day}\n >\n <Typography\n className=\"mt-0.5 w-24 text-center sm:w-1/4 sm:text-left\"\n data-cy={joinHyphenCase(day, \"day-text\")}\n style=\"h5\"\n weight=\"semibold\"\n >\n {t(`neetoMolecules.schedule.days.${day}`)}\n </Typography>\n <div className=\"flex flex-grow flex-col items-center space-y-4 sm:w-1/2\">\n {isPresent(periods[day]) ? (\n sortPeriodsByKey({\n periods: periods[day],\n key: \"startTime\",\n order: \"asc\",\n })?.map(period => (\n <div className=\"flex items-center space-x-4\" key={period.id}>\n <Typography\n className=\"w-20 text-right\"\n lineHeight=\"relaxed\"\n style=\"h5\"\n weight=\"semibold\"\n data-cy={joinHyphenCase(\n day,\n period.startTime,\n \"start-time-text\"\n )}\n >\n {period.startTime}\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-600\"\n component=\"span\"\n >\n -\n </Typography>\n <Typography\n className=\"w-20 text-left\"\n lineHeight=\"relaxed\"\n style=\"h5\"\n weight=\"semibold\"\n data-cy={joinHyphenCase(\n day,\n period.endTime,\n \"start-time-text\"\n )}\n >\n {period.endTime}\n </Typography>\n </div>\n ))\n ) : (\n <Typography\n className=\"mx-8 flex-grow text-center\"\n data-cy={joinHyphenCase(day, \"unavailable-time-text\")}\n lineHeight=\"relaxed\"\n style=\"h5\"\n >\n {t(\"neetoMolecules.schedule.unavailable\")}\n </Typography>\n )}\n </div>\n </div>\n ))}\n </div>\n );\n};\n\nexport default DisplayAvailability;\n","import { toLabelAndValue, isNotPresent } from \"neetocist\";\nimport { uniq, pluck, difference } from \"ramda\";\n\nimport { SLOT_TIME_FORMAT, END_OF_DAY } from \"./constants\";\n\nimport dayjs from \"../dayjsExtended\";\nimport { isTimeBehind } from \"../utils\";\n\nconst buildSlotIntervals = ({\n interval,\n bookedSlots,\n slotType,\n selectedValue = null,\n}) => {\n const selectedOption = {\n label: selectedValue,\n value: selectedValue,\n };\n const allIntervalsForADay = dayjs.timeIntervalsForDay(interval);\n\n allIntervalsForADay.push(END_OF_DAY);\n const uniqBookedSlots = uniq(pluck(slotType, bookedSlots));\n const slotsAvailableForBooking = difference(\n allIntervalsForADay,\n uniqBookedSlots\n );\n const slots = slotsAvailableForBooking.map(toLabelAndValue);\n\n return selectedValue ? sortSlots([selectedOption, ...slots]) : slots;\n};\n\nconst sortSlots = slots =>\n slots.sort((a, b) => (isTimeBehind(a[\"value\"], b[\"value\"]) ? -1 : 1));\n\nconst slotsSelectComponentDefaultValue = slot =>\n slot ? toLabelAndValue(slot) : \"\";\n\nconst padZeroes = str => (str.length % 2 === 0 ? str : `0${str}`);\n\nconst customFilter = (option, searchTerm) => {\n if (isNotPresent(searchTerm)) return true;\n\n const doesNumberMatches = option.value\n .replace(\":\", \"\")\n .startsWith(padZeroes(searchTerm.replaceAll(/\\D+/gi, \"\")));\n\n const doesAmPmMatches = option.value.includes(\n searchTerm.toUpperCase().replaceAll(/[^a-z]/gi, \"\")\n );\n\n return doesNumberMatches && doesAmPmMatches;\n};\n\nconst roundToNearestHour = time => {\n const minutes = time.minute();\n\n if (minutes === 59) return time.startOf(\"hour\").add(1, \"hour\");\n\n return time.add(1, \"hour\");\n};\n\nconst generateNewPeriod = (periods, wday) => {\n const lastEndTime = periods[periods.length - 1].endTime;\n const newStartTime = roundToNearestHour(dayjs(lastEndTime, SLOT_TIME_FORMAT));\n const newEndTime = dayjs(newStartTime, SLOT_TIME_FORMAT).add(1, \"hour\");\n\n return {\n startTime: dayjs(newStartTime).format(SLOT_TIME_FORMAT),\n endTime: dayjs(newEndTime).format(SLOT_TIME_FORMAT),\n wday,\n };\n};\n\nconst addDefaultPeriod = wday => ({\n wday,\n startTime: \"09:00 AM\",\n endTime: \"05:00 PM\",\n});\n\nexport {\n buildSlotIntervals,\n slotsSelectComponentDefaultValue,\n customFilter,\n generateNewPeriod,\n addDefaultPeriod,\n};\n","import { useContext } from \"react\";\n\nimport { FieldArray, ErrorMessage } from \"formik\";\nimport { isNotPresent, isPresent } from \"neetocist\";\nimport { Plus, Delete } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport { Select } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n REMOVE_SELECT_DOWN_ARROW,\n BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN,\n} from \"./constants\";\nimport {\n buildSlotIntervals,\n slotsSelectComponentDefaultValue,\n customFilter,\n generateNewPeriod,\n addDefaultPeriod,\n} from \"./utils\";\n\nimport { DEFAULT_SLOT_INTERVAL } from \"../constants\";\nimport ScheduleContext from \"../ScheduleContext\";\n\nconst ScheduleRow = ({ values, setFieldValue, wdayIndex, day }) => {\n const { t } = useTranslation();\n\n const handleAddRow = arrayHelpers => {\n if (isNotPresent(values.wdays[wdayIndex].periods)) {\n arrayHelpers.push(addDefaultPeriod(day));\n } else {\n arrayHelpers.push(\n generateNewPeriod(values.wdays[wdayIndex].periods, day)\n );\n }\n setFieldValue(`wdays[${wdayIndex}].available`, true);\n };\n\n const handleDeleteRow = (arrayHelpers, index) => {\n const isLastRowDeleted = values.wdays[wdayIndex].periods.length === 1;\n arrayHelpers.remove(index);\n setFieldValue(`wdays[${wdayIndex}].available`, !isLastRowDeleted);\n };\n\n const { allowAddPeriod } = useContext(ScheduleContext);\n\n return (\n <FieldArray\n name={`wdays[${wdayIndex}].periods`}\n render={arrayHelpers => (\n <>\n {isPresent(values.wdays[wdayIndex]?.periods) && (\n <div className=\"w-full space-y-2\">\n {values.wdays[wdayIndex].periods?.map((period, index) => (\n <div\n className=\"flex w-full flex-col sm:mx-auto sm:w-80\"\n key={`wdays[${wdayIndex}].periods[${index}]`}\n >\n <div\n className=\"flex items-start gap-2 sm:gap-3\"\n data-cy=\"schedule-row\"\n >\n <Select\n isClearable\n isSearchable\n className=\"w-full\"\n components={REMOVE_SELECT_DOWN_ARROW}\n filterOption={customFilter}\n name={`wdays[${wdayIndex}].periods[${index}].startTime`}\n placeholder={t(\"neetoMolecules.schedule.startTime\")}\n styles={BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN}\n options={buildSlotIntervals({\n interval: DEFAULT_SLOT_INTERVAL,\n bookedSlots: values.wdays[wdayIndex].periods,\n slotType: \"startTime\",\n selectedValue: period?.startTime,\n })}\n value={slotsSelectComponentDefaultValue(\n period?.startTime\n )}\n onChange={e =>\n setFieldValue(\n `wdays[${wdayIndex}].periods[${index}].startTime`,\n e?.value || \"\"\n )\n }\n />\n <Select\n isClearable\n isSearchable\n className=\"w-full\"\n components={REMOVE_SELECT_DOWN_ARROW}\n filterOption={customFilter}\n name={`wdays[${wdayIndex}].periods[${index}].endTime`}\n placeholder={t(\"neetoMolecules.schedule.endTime\")}\n styles={BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN}\n value={slotsSelectComponentDefaultValue(period?.endTime)}\n options={buildSlotIntervals({\n interval: DEFAULT_SLOT_INTERVAL,\n bookedSlots: values.wdays[wdayIndex].periods,\n slotType: \"endTime\",\n selectedValue: period?.endTime,\n })}\n onChange={e =>\n setFieldValue(\n `wdays[${wdayIndex}].periods[${index}].endTime`,\n e?.value || \"\"\n )\n }\n />\n <Button\n className=\"flex-shrink-0 self-start\"\n data-cy=\"delete-period-button\"\n data-testid=\"delete-period-button\"\n icon={Delete}\n style=\"text\"\n onClick={() => handleDeleteRow(arrayHelpers, index)}\n />\n </div>\n <ErrorMessage name={`wdays[${wdayIndex}].periods[${index}]`}>\n {message =>\n typeof message !== \"object\" && (\n <span className=\"neeto-ui-text-error-500 mt-1 w-11/12 px-2 text-xs\">\n {message}\n </span>\n )\n }\n </ErrorMessage>\n </div>\n ))}\n </div>\n )}\n {values.wdays[wdayIndex].available && allowAddPeriod && (\n <Button\n className=\"absolute right-14 top-3 ml-auto flex-shrink-0 sm:static\"\n data-cy=\"add-new-period-button\"\n data-testid=\"add-new-period-button\"\n icon={Plus}\n style=\"secondary\"\n tooltipProps={{\n content: t(\"neetoMolecules.schedule.addNewPeriod\"),\n position: \"top\",\n hideAfter: 5000,\n touch: [\"hold\", 500],\n }}\n onClick={() => handleAddRow(arrayHelpers)}\n />\n )}\n </>\n )}\n />\n );\n};\n\nexport default ScheduleRow;\n","import { useContext, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isNotPresent, isPresent } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Copy } from \"neetoicons\";\nimport { Typography, Dropdown, Button, Label, Checkbox } from \"neetoui\";\nimport { Switch } from \"neetoui/formik\";\nimport { append, identity, without } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ScheduleRow from \"./ScheduleRow\";\nimport { addDefaultPeriod } from \"./utils\";\n\nimport ScheduleContext from \"../ScheduleContext\";\nimport { sortDays } from \"../utils\";\n\nconst Form = ({ day, handleCopy, values, setFieldValue, index }) => {\n const [deletedPeriods, setDeletedPeriods] = useState([]);\n const [wdaysToCopy, setWdaysToCopy] = useState([]);\n\n const { t } = useTranslation();\n const { firstDay } = useContext(ScheduleContext);\n\n const restoreDeletedPeriods = setFieldValue => {\n setFieldValue(`wdays[${index}].periods`, deletedPeriods);\n };\n\n const uncheckCheckbox = (setFieldValue, values) => {\n setFieldValue(`wdays[${index}].available`, false);\n setFieldValue(`wdays[${index}].periods`, []);\n if (values.wdays[index].periods[0]?.id) {\n setDeletedPeriods(\n values.wdays[index].periods\n .filter(item => item.startTime && item.endTime)\n .map(identity)\n );\n }\n };\n\n const checkCheckbox = setFieldValue => {\n setFieldValue(`wdays[${index}].available`, true);\n if (deletedPeriods[0]?.startTime) {\n restoreDeletedPeriods(setFieldValue);\n } else if (isNotPresent(values.wdays[index].periods)) {\n setFieldValue(`wdays[${index}].periods`, [addDefaultPeriod(day)]);\n } else {\n setFieldValue(`wdays[${index}].periods`, [\"\"]);\n }\n };\n\n const handleCheckbox = (setFieldValue, values) => {\n if (values.wdays[index].available) {\n uncheckCheckbox(setFieldValue, values);\n } else {\n checkCheckbox(setFieldValue);\n }\n };\n\n const handleCopyChange = (e, day) =>\n setWdaysToCopy(e.target.checked ? append(day) : without([day]));\n\n return (\n <div className=\"neeto-ui-rounded-md neeto-ui-shadow-xs neeto-ui-border-gray-200 neeto-ui-bg-white relative w-full border px-4 md:px-6\">\n <div\n className=\"sm:flex-no-wrap my-4 flex w-full flex-wrap items-start gap-2 sm:flex-nowrap sm:gap-4\" // Added `sm:flex-no-wrap` since neetoCal is using old version of tailwind\n data-cy=\"working-day-container\"\n >\n <div\n className={classnames(\n \"flex w-36 flex-shrink-0 items-center justify-start sm:mt-1\",\n { \"mb-3 sm:mb-0\": isPresent(values.wdays[index]?.periods) }\n )}\n >\n <Switch\n aria-label={`wdays[${index}].available`}\n checked={values.wdays[index].available}\n className=\"flex-grow-0\"\n data-cy={joinHyphenCase(day, \"weekly-hours-checkbox\")}\n id=\"day\"\n name={`wdays[${index}].available`}\n onChange={() => handleCheckbox(setFieldValue, values)}\n />\n <Typography\n component=\"span\"\n data-cy={joinHyphenCase(day, \"day-text\")}\n style=\"body2\"\n weight={values.wdays[index].available ? \"semibold\" : \"normal\"}\n className={classnames(\"ml-2 capitalize\", {\n \"neeto-ui-text-gray-600\": !values.wdays[index].available,\n })}\n >\n {t(`neetoMolecules.schedule.days.${day}`)}\n </Typography>\n </div>\n <ScheduleRow {...{ day, setFieldValue, values }} wdayIndex={index} />\n {values.wdays[index].available && (\n <Dropdown\n closeOnSelect\n buttonStyle=\"secondary\"\n icon={Copy}\n position=\"right-start\"\n buttonProps={{\n tooltipProps: {\n content: t(\"neetoMolecules.schedule.copyScheduleTooltip\"),\n position: \"top\",\n hideAfter: 5000,\n touch: [\"hold\", 500],\n },\n className: \"absolute right-4 top-3 sm:static flex-shrink-0\",\n \"data-testid\": joinHyphenCase(day, \"copy-schedule-icon\"),\n \"data-cy\": joinHyphenCase(day, \"copy-schedule-icon\"),\n }}\n dropdownProps={{\n className:\n \"neeto-ui-dropdown__popup neeto-molecules-schedule__dropdown\",\n }}\n onClose={() => setWdaysToCopy([])}\n >\n <li>\n <Typography style=\"h5\">\n {t(\"neetoMolecules.schedule.copySchedule\")}\n </Typography>\n </li>\n {sortDays(firstDay)\n .filter(copyDay => copyDay !== day)\n .map(day => (\n <li key={day} onClick={e => e.stopPropagation()}>\n <Label className=\"w-full cursor-pointer capitalize\">\n <Checkbox\n checked={wdaysToCopy.includes(day)}\n id={day}\n label={t(`neetoMolecules.schedule.days.${day}`)}\n onChange={e => handleCopyChange(e, day)}\n />\n </Label>\n </li>\n ))}\n <li>\n <Button\n data-cy=\"copy-schedule-submit-button\"\n disabled={isNotPresent(wdaysToCopy)}\n label={t(\"neetoMolecules.common.actions.submit\")}\n size=\"small\"\n onClick={() => {\n handleCopy({ values, index, setFieldValue, wdaysToCopy });\n setWdaysToCopy([]);\n }}\n />\n </li>\n </Dropdown>\n )}\n </div>\n </div>\n );\n};\n\nexport default Form;\n","import { useEffect, useImperativeHandle } from \"react\";\n\nimport { FieldArray, useFormikContext } from \"formik\";\n\nimport { DAYS } from \"./constants\";\nimport Form from \"./Form\";\n\nconst Fields = ({ handleCopy, handleValuesChanged, scheduleRef }) => {\n const { values, setFieldValue, resetForm, errors, dirty } =\n useFormikContext();\n\n useEffect(() => {\n handleValuesChanged(values, dirty);\n }, [values]);\n\n useImperativeHandle(scheduleRef, () => ({ resetForm, errors }));\n\n return (\n <FieldArray\n name=\"wdays\"\n render={() => (\n <div className=\"space-y-4\">\n {values.wdays.map((item, index) => (\n <Form\n {...{ handleCopy, index, setFieldValue, values }}\n day={DAYS.find(day => day === item.wday)}\n key={item.wday}\n />\n ))}\n </div>\n )}\n />\n );\n};\n\nexport default Fields;\n","import { useState, useEffect } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { Profile } from \"neetoteam\";\nimport { Button, Typography, Tooltip } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport MoreDropdown from \"components/MoreDropdown\";\n\nimport { getTimeZoneAndTime } from \"./utils\";\n\nconst Header = ({ isCreating, isEditable, isEditing, setIsEditing }) => {\n const { dirty, resetForm, submitForm, isSubmitting } = useFormikContext();\n const { t } = useTranslation();\n const [timeZoneAndTime, setTimeZoneAndTime] = useState(getTimeZoneAndTime());\n const [_, setIsProfilePaneOpen] = Profile.usePaneState();\n\n const handleReset = () => {\n if (dirty) resetForm();\n else setIsEditing(false);\n };\n\n useEffect(() => {\n const time = setInterval(() => {\n setTimeZoneAndTime(getTimeZoneAndTime());\n }, 30000);\n\n return () => clearInterval(time);\n }, []);\n\n return (\n <div className=\"mb-6 flex flex-wrap justify-between gap-2\">\n <div className=\"flex items-center gap-3\">\n <Tooltip\n content={t(\"neetoMolecules.schedule.timezoneTooltip\")}\n position=\"bottom\"\n touch={[\"hold\", 500]}\n >\n <Typography\n component=\"h4\"\n data-cy=\"timezone-text\"\n style=\"h5\"\n weight=\"medium\"\n >\n {timeZoneAndTime}\n </Typography>\n </Tooltip>\n {isEditable && (\n <MoreDropdown\n dropdownButtonProps={{ \"data-testid\": \"nui-more-dropdown\" }}\n menuItems={[\n {\n onClick: () => setIsProfilePaneOpen(true),\n label: t(\"neetoMolecules.common.actions.changeTimezone\"),\n target: \"_blank\",\n key: \"change-timezone-option\",\n \"data-testid\": \"change-timezone-option\",\n },\n ]}\n />\n )}\n </div>\n {isEditing ? (\n <div className=\"flex items-center gap-2\">\n <Button\n data-cy=\"reset-button\"\n style=\"secondary\"\n label={\n !dirty\n ? t(\"neetoMolecules.common.actions.cancel\")\n : t(\"neetoMolecules.common.actions.reset\")\n }\n onClick={handleReset}\n />\n <Button\n data-cy=\"weekly-hours-save-changes-button\"\n disabled={(!dirty && !isCreating) || isSubmitting}\n label={t(\"neetoMolecules.common.actions.saveChanges\")}\n loading={isSubmitting}\n onClick={submitForm}\n />\n </div>\n ) : (\n <div>\n {isEditable && (\n <Button\n data-cy=\"weekly-schedule-header\"\n label={t(\"neetoMolecules.schedule.changeAvailability\")}\n style=\"primary\"\n weight=\"semibold\"\n onClick={() => setIsEditing(true)}\n />\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport default Header;\n","import { forwardRef } from \"react\";\n\nimport { Formik, Form as FormikForm } from \"formik\";\nimport { isPresent, noop } from \"neetocist\";\nimport PropTypes from \"prop-types\";\nimport { assoc, pick } from \"ramda\";\n\nimport DisplayAvailability from \"./DisplayAvailability\";\nimport Fields from \"./Fields\";\nimport Header from \"./Header\";\nimport \"./schedule.scss\";\nimport ScheduleContext from \"./ScheduleContext\";\nimport {\n sortPeriodsByKey,\n getScheduleValidationSchema,\n sortDays,\n} from \"./utils\";\n\nconst Schedule = forwardRef(\n (\n {\n periods,\n handleSubmit = noop,\n isEditing = false,\n setIsEditing,\n showHeader = true,\n handleValuesChanged = noop,\n allowAddPeriod = true,\n isEditable = true,\n isCreating = false,\n firstDay = 1,\n },\n scheduleRef\n ) => {\n const handleCopy = ({ values, index, setFieldValue, wdaysToCopy }) => {\n const newPeriods = values.wdays[index].periods?.map(\n pick([\"startTime\", \"endTime\"])\n );\n\n wdaysToCopy.forEach(wday => {\n const dayIndex = sortDays(firstDay).indexOf(wday);\n setFieldValue(\n `wdays[${dayIndex}].available`,\n isPresent(values.wdays[index].periods)\n );\n\n setFieldValue(\n `wdays[${dayIndex}].periods`,\n newPeriods.map(period => assoc(\"wday\", wday, period))\n );\n });\n };\n\n const getInitialFormValues = () =>\n sortDays(firstDay).map(wday => ({\n periods: sortPeriodsByKey({\n periods: periods[wday],\n key: \"startTime\",\n order: \"asc\",\n }),\n available: !!periods[wday]?.length,\n wday,\n }));\n\n return (\n <div className=\"neeto-molecules-schedule neeto-ui-border-gray-200 flex-shrink-0\">\n <Formik\n enableReinitialize\n initialValues={{ wdays: getInitialFormValues() }}\n validationSchema={getScheduleValidationSchema()}\n onSubmit={values => handleSubmit(values, getInitialFormValues())}\n >\n <>\n {showHeader && (\n <Header\n {...{ isCreating, isEditable, isEditing, setIsEditing }}\n />\n )}\n <ScheduleContext.Provider value={{ allowAddPeriod, firstDay }}>\n {isEditing || !showHeader ? (\n <FormikForm>\n <Fields\n {...{\n handleCopy,\n handleValuesChanged,\n scheduleRef,\n }}\n />\n </FormikForm>\n ) : (\n <DisplayAvailability {...{ periods }} />\n )}\n </ScheduleContext.Provider>\n </>\n </Formik>\n </div>\n );\n }\n);\n\nSchedule.displayName = \"Schedule\";\n\nSchedule.propTypes = {\n /**\n * Periods data for days of the week.\n */\n periods: PropTypes.shape({\n sunday: PropTypes.array,\n monday: PropTypes.array,\n tuesday: PropTypes.array,\n wednesday: PropTypes.array,\n thursday: PropTypes.array,\n friday: PropTypes.array,\n saturday: PropTypes.array,\n }),\n /**\n * The function to be called on save changes action.\n */\n handleSubmit: PropTypes.func,\n /**\n * State value to show form for editing.\n */\n isEditing: PropTypes.bool,\n /**\n * Setter function to toggle `isEditing` state.\n */\n setIsEditing: PropTypes.func,\n /**\n * Flag to display or hide header. If set to false, component will open in editing state.\n */\n showHeader: PropTypes.bool,\n /**\n * Callback function called when values are changed within form.\n */\n handleValuesChanged: PropTypes.func,\n /**\n * Flag to allow adding new periods. If set to false, Add new period button will be hidden.\n */\n allowAddPeriod: PropTypes.bool,\n /**\n * Flag to control the ability to edit the schedule and timezone. When set to false, periods and timezone cannot be edited.\n */\n isEditable: PropTypes.bool,\n /**\n * Flag to control the ability to submit the schedule without changing initial values. When set to false, Schedule can only be submitted once the initial values are changed.\n */\n isCreating: PropTypes.bool,\n /**\n * Integer prop to choose which day of the week to display first in the component. Defaults to 1(Monday).\n */\n firstDay: PropTypes.number,\n};\n\nexport default Schedule;\n"],"names":["ScheduleContext","createContext","allowAddPeriod","firstDay","DAYS","DEFAULT_SLOT_INTERVAL","INTERVALS","REMOVE_SELECT_DOWN_ARROW","DropdownIndicator","IndicatorSeparator","BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN","singleValue","base","state","_objectSpread","color","selectProps","menuIsOpen","SLOT_TIME_FORMAT","END_OF_DAY","DayjsRange","startDate","endDate","_classCallCheck","_ref","s","e","_createClass","key","value","isValidRange","isValid","isOverlap","other","toArrayOfTimeIntervals","interval","arguments","length","undefined","startTime","endTime","add","allTimes","push","format","extendDayjs","dayjs","range","start","end","dayjsObject","includes","startOf","endOf","constructor","timeIntervalsForDay","_ref2","startOfDay","endOfDay","allIntervalsForADay","dayjsExtended","yup","addMethod","array","test","periods","_checkForOverlapBetwe","checkForOverlapBetweenPeriods","isOverlapping","exists","range1","range2","_findIndicesOfOverlap","findIndicesOfOverlappingRangesInPeriods","firstIndex","secondIndex","firstError","createError","path","concat","message","i18next","t","timeFormat","time","secondError","ValidationError","isFromAndToSame","isSame","sortDays","chosenIndex","_toConsumableArray","slice","getScheduleValidationSchema","object","shape","wdays","of","string","required","parent","isTimeBehind","ensureSlotsCantOverlap","getUserTimeZone","_window$globalProps","window","globalProps","user","timeZone","getTimeZoneAndTime","humanReadableTimezone","ianaTimezoneToHumanReadable","tz","timeA","timeB","isBefore","sortPeriodsByKey","_ref$order","order","sort","periodA","periodB","isPeriodBehind","response","slotsSortedByStartTime","_iterator","_createForOfIteratorHelper","entries","_step","n","done","_step$value","_slicedToArray","index","seg1","seg2","err","f","findIndexBy","findIndex","slot","DisplayAvailability","_useTranslation","useTranslation","_useContext","useContext","_jsx","className","children","map","day","_sortPeriodsByKey","_jsxs","Typography","joinHyphenCase","style","weight","isPresent","period","lineHeight","component","id","buildSlotIntervals","bookedSlots","slotType","_ref$selectedValue","selectedValue","selectedOption","label","uniqBookedSlots","uniq","pluck","slotsAvailableForBooking","difference","slots","toLabelAndValue","sortSlots","a","b","slotsSelectComponentDefaultValue","padZeroes","str","customFilter","option","searchTerm","isNotPresent","doesNumberMatches","replace","startsWith","replaceAll","doesAmPmMatches","toUpperCase","roundToNearestHour","minutes","minute","generateNewPeriod","wday","lastEndTime","newStartTime","newEndTime","addDefaultPeriod","ScheduleRow","values","setFieldValue","wdayIndex","handleAddRow","arrayHelpers","handleDeleteRow","isLastRowDeleted","remove","FieldArray","name","render","_values$wdays$wdayInd","_values$wdays$wdayInd2","_Fragment","Select","isClearable","isSearchable","components","filterOption","placeholder","styles","options","onChange","Button","icon","Delete","onClick","ErrorMessage","_typeof","available","Plus","tooltipProps","content","position","hideAfter","touch","Form","_values$wdays$index","handleCopy","_useState","useState","_useState2","deletedPeriods","setDeletedPeriods","_useState3","_useState4","wdaysToCopy","setWdaysToCopy","restoreDeletedPeriods","uncheckCheckbox","_values$wdays$index$p","filter","item","identity","checkCheckbox","_deletedPeriods$","handleCheckbox","handleCopyChange","target","checked","append","without","classnames","Switch","Dropdown","closeOnSelect","buttonStyle","Copy","buttonProps","dropdownProps","onClose","copyDay","stopPropagation","Label","Checkbox","disabled","size","Fields","handleValuesChanged","scheduleRef","_useFormikContext","useFormikContext","resetForm","errors","dirty","useEffect","useImperativeHandle","_createElement","find","Header","isCreating","isEditable","isEditing","setIsEditing","submitForm","isSubmitting","timeZoneAndTime","setTimeZoneAndTime","_Profile$usePaneState","Profile","usePaneState","_Profile$usePaneState2","_","setIsProfilePaneOpen","handleReset","setInterval","clearInterval","Tooltip","MoreDropdown","dropdownButtonProps","menuItems","loading","Schedule","forwardRef","_ref$handleSubmit","handleSubmit","noop","_ref$isEditing","_ref$showHeader","showHeader","_ref$handleValuesChan","_ref$allowAddPeriod","_ref$isEditable","_ref$isCreating","_ref$firstDay","newPeriods","pick","forEach","dayIndex","indexOf","assoc","getInitialFormValues","_periods$wday","Formik","enableReinitialize","initialValues","validationSchema","onSubmit","Provider","FormikForm","displayName"],"mappings":"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"}
@@ -3,15 +3,9 @@
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
4
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
5
5
  var classnames = require('classnames');
6
- var injectCss = require('./inject-css-80a5faa3.js');
6
+ var injectCss = require('./inject-css-vQvjPR2x.js');
7
7
  var jsxRuntime = require('react/jsx-runtime');
8
8
 
9
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
-
11
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
12
- var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
13
- var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
14
-
15
9
  var SIZES = {
16
10
  nano: "nano",
17
11
  small: "small",
@@ -25,16 +19,16 @@ injectCss.n(css,{});
25
19
 
26
20
  var _excluded = ["children", "className", "size"];
27
21
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
28
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
29
23
  var Scrollable = function Scrollable(_ref) {
30
24
  var children = _ref.children,
31
25
  _ref$className = _ref.className,
32
26
  className = _ref$className === void 0 ? "" : _ref$className,
33
27
  _ref$size = _ref.size,
34
28
  size = _ref$size === void 0 ? "small" : _ref$size,
35
- otherProps = _objectWithoutProperties__default["default"](_ref, _excluded);
29
+ otherProps = _objectWithoutProperties(_ref, _excluded);
36
30
  return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread(_objectSpread({
37
- className: classnames__default["default"](["neeto-molecules-scrollable", _defineProperty__default["default"]({
31
+ className: classnames(["neeto-molecules-scrollable", _defineProperty({
38
32
  "neeto-molecules-scrollable--nano": size === SIZES.nano,
39
33
  "neeto-molecules-scrollable--small": size === SIZES.small,
40
34
  "neeto-molecules-scrollable--medium": size === SIZES.medium,
@@ -1 +1 @@
1
- {"version":3,"file":"Scrollable.js","sources":["../../src/components/Scrollable/constants.js","../../src/components/Scrollable/index.jsx"],"sourcesContent":["const SIZES = {\n nano: \"nano\",\n small: \"small\",\n medium: \"medium\",\n large: \"large\",\n viewport: \"viewport\",\n};\n\nexport { SIZES };\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport { SIZES } from \"./constants\";\nimport \"./scrollable.scss\";\n\nconst Scrollable = ({\n children,\n className = \"\",\n size = \"small\",\n ...otherProps\n}) => (\n <div\n className={classnames([\n \"neeto-molecules-scrollable\",\n {\n \"neeto-molecules-scrollable--nano\": size === SIZES.nano,\n \"neeto-molecules-scrollable--small\": size === SIZES.small,\n \"neeto-molecules-scrollable--medium\": size === SIZES.medium,\n \"neeto-molecules-scrollable--large\": size === SIZES.large,\n \"neeto-molecules-scrollable--viewport\": size === SIZES.viewport,\n [className]: className,\n },\n ])}\n {...otherProps}\n >\n {children}\n </div>\n);\n\nScrollable.propTypes = {\n /**\n * To specify the components to be rendered inside the Scrollable.\n */\n children: PropTypes.node,\n /**\n * To specify vertical size of the Scrollable.\n *\n * `large` - for size with an offset of `Header` height.\n *\n * `medium` - for size with an offset of `Header` with breadcrumbs height.\n *\n * `small` - for size with an offset of `Header` height and `SubHeader` height.\n *\n * `nano` - for size with an offset of `Header` with breadcrumbs height and `SubHeader` height.\n *\n * `viewport` - for Scrollable with viewport height.\n */\n size: PropTypes.oneOf([\"nano\", \"small\", \"medium\", \"large\", \"viewport\"]),\n /**\n * To provide external classNames.\n */\n className: PropTypes.string,\n};\n\nexport default Scrollable;\n"],"names":["SIZES","nano","small","medium","large","viewport","Scrollable","_ref","children","_ref$className","className","_ref$size","size","otherProps","_objectWithoutProperties","_excluded","_jsx","_objectSpread","classnames","_defineProperty"],"mappings":";;;;;;;;;;;;;;AAAA,IAAMA,KAAK,GAAG;AACZC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,QAAQ,EAAE,UAAA;AACZ,CAAC;;;;;;;;ACAD,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAAC,IAAA,EAAA;AAAA,EAAA,IACdC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAAC,cAAA,GAAAF,IAAA,CACRG,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,cAAA;IAAAE,SAAA,GAAAJ,IAAA,CACdK,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,OAAO,GAAAA,SAAA;AACXE,IAAAA,UAAU,GAAAC,4CAAA,CAAAP,IAAA,EAAAQ,SAAA,CAAA,CAAA;AAAA,EAAA,oBAEbC,cAAA,CAAA,KAAA,EAAAC,aAAA,CAAAA,aAAA,CAAA;AACEP,IAAAA,SAAS,EAAEQ,8BAAU,CAAC,CACpB,4BAA4B,EAAAC,mCAAA,CAAA;AAE1B,MAAA,kCAAkC,EAAEP,IAAI,KAAKZ,KAAK,CAACC,IAAI;AACvD,MAAA,mCAAmC,EAAEW,IAAI,KAAKZ,KAAK,CAACE,KAAK;AACzD,MAAA,oCAAoC,EAAEU,IAAI,KAAKZ,KAAK,CAACG,MAAM;AAC3D,MAAA,mCAAmC,EAAES,IAAI,KAAKZ,KAAK,CAACI,KAAK;AACzD,MAAA,sCAAsC,EAAEQ,IAAI,KAAKZ,KAAK,CAACK,QAAAA;KACtDK,EAAAA,SAAS,EAAGA,SAAS,CAEzB,CAAA,CAAA;AAAE,GAAA,EACCG,UAAU,CAAA,EAAA,EAAA,EAAA;AAAAL,IAAAA,QAAA,EAEbA,QAAAA;AAAQ,GAAA,CACN,CAAC,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"Scrollable.js","sources":["../../src/components/Scrollable/constants.js","../../src/components/Scrollable/index.jsx"],"sourcesContent":["const SIZES = {\n nano: \"nano\",\n small: \"small\",\n medium: \"medium\",\n large: \"large\",\n viewport: \"viewport\",\n};\n\nexport { SIZES };\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport { SIZES } from \"./constants\";\nimport \"./scrollable.scss\";\n\nconst Scrollable = ({\n children,\n className = \"\",\n size = \"small\",\n ...otherProps\n}) => (\n <div\n className={classnames([\n \"neeto-molecules-scrollable\",\n {\n \"neeto-molecules-scrollable--nano\": size === SIZES.nano,\n \"neeto-molecules-scrollable--small\": size === SIZES.small,\n \"neeto-molecules-scrollable--medium\": size === SIZES.medium,\n \"neeto-molecules-scrollable--large\": size === SIZES.large,\n \"neeto-molecules-scrollable--viewport\": size === SIZES.viewport,\n [className]: className,\n },\n ])}\n {...otherProps}\n >\n {children}\n </div>\n);\n\nScrollable.propTypes = {\n /**\n * To specify the components to be rendered inside the Scrollable.\n */\n children: PropTypes.node,\n /**\n * To specify vertical size of the Scrollable.\n *\n * `large` - for size with an offset of `Header` height.\n *\n * `medium` - for size with an offset of `Header` with breadcrumbs height.\n *\n * `small` - for size with an offset of `Header` height and `SubHeader` height.\n *\n * `nano` - for size with an offset of `Header` with breadcrumbs height and `SubHeader` height.\n *\n * `viewport` - for Scrollable with viewport height.\n */\n size: PropTypes.oneOf([\"nano\", \"small\", \"medium\", \"large\", \"viewport\"]),\n /**\n * To provide external classNames.\n */\n className: PropTypes.string,\n};\n\nexport default Scrollable;\n"],"names":["SIZES","nano","small","medium","large","viewport","Scrollable","_ref","children","_ref$className","className","_ref$size","size","otherProps","_objectWithoutProperties","_excluded","_jsx","_objectSpread","classnames","_defineProperty"],"mappings":";;;;;;;;AAAA,IAAMA,KAAK,GAAG;AACZC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,QAAQ,EAAE,UAAA;AACZ,CAAC;;;;;;;;ACAD,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAAC,IAAA,EAAA;AAAA,EAAA,IACdC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAAC,cAAA,GAAAF,IAAA,CACRG,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,cAAA;IAAAE,SAAA,GAAAJ,IAAA,CACdK,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,OAAO,GAAAA,SAAA;AACXE,IAAAA,UAAU,GAAAC,wBAAA,CAAAP,IAAA,EAAAQ,SAAA,CAAA,CAAA;AAAA,EAAA,oBAEbC,cAAA,CAAA,KAAA,EAAAC,aAAA,CAAAA,aAAA,CAAA;AACEP,IAAAA,SAAS,EAAEQ,UAAU,CAAC,CACpB,4BAA4B,EAAAC,eAAA,CAAA;AAE1B,MAAA,kCAAkC,EAAEP,IAAI,KAAKZ,KAAK,CAACC,IAAI;AACvD,MAAA,mCAAmC,EAAEW,IAAI,KAAKZ,KAAK,CAACE,KAAK;AACzD,MAAA,oCAAoC,EAAEU,IAAI,KAAKZ,KAAK,CAACG,MAAM;AAC3D,MAAA,mCAAmC,EAAES,IAAI,KAAKZ,KAAK,CAACI,KAAK;AACzD,MAAA,sCAAsC,EAAEQ,IAAI,KAAKZ,KAAK,CAACK,QAAAA;KACtDK,EAAAA,SAAS,EAAGA,SAAS,CAEzB,CAAA,CAAA;AAAE,GAAA,EACCG,UAAU,CAAA,EAAA,EAAA,EAAA;AAAAL,IAAAA,QAAA,EAEbA,QAAAA;AAAQ,GAAA,CACN,CAAC,CAAA;AAAA;;;;"}
@@ -14,21 +14,10 @@ var Input = require('@bigbinary/neetoui/Input');
14
14
  var ramda = require('ramda');
15
15
  var reactI18next = require('react-i18next');
16
16
  var reactRouterDom = require('react-router-dom');
17
- var injectCss = require('./inject-css-80a5faa3.js');
17
+ var injectCss = require('./inject-css-vQvjPR2x.js');
18
18
  var utils = require('@bigbinary/neeto-commons-frontend/utils');
19
19
  var jsxRuntime = require('react/jsx-runtime');
20
20
 
21
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
22
-
23
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
24
- var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
25
- var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
26
- var useFuncDebounce__default = /*#__PURE__*/_interopDefaultLegacy(useFuncDebounce);
27
- var useQueryParams__default = /*#__PURE__*/_interopDefaultLegacy(useQueryParams);
28
- var useUpdateEffect__default = /*#__PURE__*/_interopDefaultLegacy(useUpdateEffect);
29
- var Search__default = /*#__PURE__*/_interopDefaultLegacy(Search$1);
30
- var Input__default = /*#__PURE__*/_interopDefaultLegacy(Input);
31
-
32
21
  var css = ".neeto-molecules-search__wrapper input[type=search]::-webkit-search-cancel-button:hover,.neeto-molecules-search__wrapper input[type=search]::-webkit-search-decoration:hover{cursor:pointer}";
33
22
  injectCss.n(css,{});
34
23
 
@@ -49,7 +38,7 @@ var getInitialSearchValue = function getInitialSearchValue(_ref) {
49
38
 
50
39
  var _excluded = ["value", "debounceTime", "onSearch", "onChange", "enableUrlSync", "searchParamName"];
51
40
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
52
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
41
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
53
42
  var Search = function Search(_ref) {
54
43
  var value = _ref.value,
55
44
  _ref$debounceTime = _ref.debounceTime,
@@ -60,10 +49,10 @@ var Search = function Search(_ref) {
60
49
  enableUrlSync = _ref$enableUrlSync === void 0 ? false : _ref$enableUrlSync,
61
50
  _ref$searchParamName = _ref.searchParamName,
62
51
  searchParamName = _ref$searchParamName === void 0 ? "search_term" : _ref$searchParamName,
63
- inputProps = _objectWithoutProperties__default["default"](_ref, _excluded);
52
+ inputProps = _objectWithoutProperties(_ref, _excluded);
64
53
  var _useTranslation = reactI18next.useTranslation(),
65
54
  t = _useTranslation.t;
66
- var queryParams = useQueryParams__default["default"]({
55
+ var queryParams = useQueryParams({
67
56
  toCamelCase: false
68
57
  });
69
58
  var history = reactRouterDom.useHistory();
@@ -72,11 +61,11 @@ var Search = function Search(_ref) {
72
61
  enableUrlSync: enableUrlSync,
73
62
  searchParamName: searchParamName
74
63
  })),
75
- _useState2 = _slicedToArray__default["default"](_useState, 2),
64
+ _useState2 = _slicedToArray(_useState, 2),
76
65
  internalValue = _useState2[0],
77
66
  setInternalValue = _useState2[1];
78
67
  var trimmedValue = value === null || value === void 0 ? void 0 : value.trim();
79
- useUpdateEffect__default["default"](function () {
68
+ useUpdateEffect(function () {
80
69
  if (!enableUrlSync || neetoCist.isPresent(queryParams === null || queryParams === void 0 ? void 0 : queryParams[searchParamName])) return;
81
70
  setInternalValue("");
82
71
  }, [queryParams === null || queryParams === void 0 ? void 0 : queryParams[searchParamName]]);
@@ -85,13 +74,13 @@ var Search = function Search(_ref) {
85
74
  if (trimmedValue === (queryParams === null || queryParams === void 0 ? void 0 : queryParams[searchParamName])) return;
86
75
  var searchParams = {};
87
76
  var pathname = window.location.pathname;
88
- if (trimmedValue) searchParams = _defineProperty__default["default"]({}, searchParamName, trimmedValue);else queryParams === null || queryParams === void 0 ? true : delete queryParams[searchParamName];
77
+ if (trimmedValue) searchParams = _defineProperty({}, searchParamName, trimmedValue);else queryParams === null || queryParams === void 0 ? true : delete queryParams[searchParamName];
89
78
  history.push(general.buildUrl(pathname, ramda.mergeLeft(searchParams, queryParams)));
90
79
  };
91
- var handleDebouncedSearchTermChange = useFuncDebounce__default["default"](function (trimmedValue) {
80
+ var handleDebouncedSearchTermChange = useFuncDebounce(function (trimmedValue) {
92
81
  if (onSearch) onSearch(trimmedValue);else if (enableUrlSync) handleSearchQueryParams(trimmedValue);
93
82
  }, debounceTime);
94
- useUpdateEffect__default["default"](function () {
83
+ useUpdateEffect(function () {
95
84
  handleDebouncedSearchTermChange(trimmedValue);
96
85
  }, [trimmedValue]);
97
86
  if (value !== undefined && internalValue !== value) {
@@ -109,10 +98,10 @@ var Search = function Search(_ref) {
109
98
  React.useEffect(function () {
110
99
  return handleDebouncedSearchTermChange.cancel;
111
100
  }, []);
112
- return /*#__PURE__*/jsxRuntime.jsx(Input__default["default"], _objectSpread({
101
+ return /*#__PURE__*/jsxRuntime.jsx(Input, _objectSpread({
113
102
  className: "neeto-molecules-search__wrapper",
114
103
  placeholder: t("neetoMolecules.common.actions.search"),
115
- prefix: /*#__PURE__*/jsxRuntime.jsx(Search__default["default"], {}),
104
+ prefix: /*#__PURE__*/jsxRuntime.jsx(Search$1, {}),
116
105
  type: "search",
117
106
  value: internalValue,
118
107
  onChange: handleOnChange
@@ -1 +1 @@
1
- {"version":3,"file":"Search.js","sources":["../../src/components/Search/utils.js","../../src/components/Search/index.jsx"],"sourcesContent":["import { getQueryParams } from \"neetocommons/utils\";\n\nexport const getInitialSearchValue = ({\n initialValue = \"\",\n enableUrlSync,\n searchParamName,\n}) => {\n if (enableUrlSync) {\n const queryParams = getQueryParams({ toCamelCase: false });\n\n return queryParams[searchParamName] ?? \"\";\n }\n\n return initialValue;\n};\n","import { useEffect, useState } from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport useFuncDebounce from \"neetocommons/react-utils/useFuncDebounce\";\nimport useQueryParams from \"neetocommons/react-utils/useQueryParams\";\nimport useUpdateEffect from \"neetocommons/react-utils/useUpdateEffect\";\nimport { buildUrl } from \"neetocommons/utils/general\";\nimport { Search as NeetoUISearchIcon } from \"neetoicons\";\nimport { Input } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { mergeLeft } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport \"./search.scss\";\nimport { getInitialSearchValue } from \"./utils\";\n\nconst Search = ({\n value,\n debounceTime = 300,\n onSearch,\n onChange,\n enableUrlSync = false,\n searchParamName = \"search_term\",\n ...inputProps\n}) => {\n const { t } = useTranslation();\n const queryParams = useQueryParams({ toCamelCase: false });\n const history = useHistory();\n\n const [internalValue, setInternalValue] = useState(\n getInitialSearchValue({\n initialValue: value,\n enableUrlSync,\n searchParamName,\n })\n );\n const trimmedValue = value?.trim();\n\n useUpdateEffect(() => {\n if (!enableUrlSync || isPresent(queryParams?.[searchParamName])) return;\n\n setInternalValue(\"\");\n }, [queryParams?.[searchParamName]]);\n\n const handleSearchQueryParams = trimmedValue => {\n if (!trimmedValue && !queryParams?.[searchParamName]) return;\n\n if (trimmedValue === queryParams?.[searchParamName]) return;\n\n let searchParams = {};\n const pathname = window.location.pathname;\n\n if (trimmedValue) searchParams = { [searchParamName]: trimmedValue };\n else delete queryParams?.[searchParamName];\n\n history.push(buildUrl(pathname, mergeLeft(searchParams, queryParams)));\n };\n\n const handleDebouncedSearchTermChange = useFuncDebounce(trimmedValue => {\n if (onSearch) onSearch(trimmedValue);\n else if (enableUrlSync) handleSearchQueryParams(trimmedValue);\n }, debounceTime);\n\n useUpdateEffect(() => {\n handleDebouncedSearchTermChange(trimmedValue);\n }, [trimmedValue]);\n\n if (value !== undefined && internalValue !== value) {\n setInternalValue(value);\n }\n\n const handleOnChange = e => {\n const trimmedValue = e.target.value?.trim();\n onChange?.(e);\n setInternalValue(e.target.value);\n\n if (internalValue?.trim() !== trimmedValue) {\n handleDebouncedSearchTermChange(trimmedValue);\n }\n };\n\n useEffect(() => handleDebouncedSearchTermChange.cancel, []);\n\n return (\n <Input\n className=\"neeto-molecules-search__wrapper\"\n placeholder={t(\"neetoMolecules.common.actions.search\")}\n prefix={<NeetoUISearchIcon />}\n type=\"search\"\n value={internalValue}\n onChange={handleOnChange}\n {...inputProps}\n />\n );\n};\n\nSearch.propTypes = {\n /**\n * value for the search (optional).\n */\n value: PropTypes.string,\n /**\n * Time in milliseconds to debounce the search input before triggering a search.\n */\n debounceTime: PropTypes.number,\n /**\n * To specify the function to be triggered when the value is updated (optional).\n */\n onChange: PropTypes.func,\n /**\n * Callback to handle debounced search value without updating the search params.\n */\n onSearch: PropTypes.func,\n /**\n * To control whether the search term needs to be set in the URLSearch.\n */\n enableUrlSync: PropTypes.bool,\n /**\n * value for the search param name.\n */\n searchParamName: PropTypes.string,\n /**\n * To override the properties of the Input component.\n */\n inputProps: PropTypes.object,\n};\n\nexport default Search;\n"],"names":["getInitialSearchValue","_ref","_ref$initialValue","initialValue","enableUrlSync","searchParamName","_queryParams$searchPa","queryParams","getQueryParams","toCamelCase","Search","value","_ref$debounceTime","debounceTime","onSearch","onChange","_ref$enableUrlSync","_ref$searchParamName","inputProps","_objectWithoutProperties","_excluded","_useTranslation","useTranslation","t","useQueryParams","history","useHistory","_useState","useState","_useState2","_slicedToArray","internalValue","setInternalValue","trimmedValue","trim","useUpdateEffect","isPresent","handleSearchQueryParams","searchParams","pathname","window","location","_defineProperty","push","buildUrl","mergeLeft","handleDebouncedSearchTermChange","useFuncDebounce","undefined","handleOnChange","e","_e$target$value","target","useEffect","cancel","_jsx","Input","_objectSpread","className","placeholder","prefix","NeetoUISearchIcon","type"],"mappings":"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"}
1
+ {"version":3,"file":"Search.js","sources":["../../src/components/Search/utils.js","../../src/components/Search/index.jsx"],"sourcesContent":["import { getQueryParams } from \"neetocommons/utils\";\n\nexport const getInitialSearchValue = ({\n initialValue = \"\",\n enableUrlSync,\n searchParamName,\n}) => {\n if (enableUrlSync) {\n const queryParams = getQueryParams({ toCamelCase: false });\n\n return queryParams[searchParamName] ?? \"\";\n }\n\n return initialValue;\n};\n","import { useEffect, useState } from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport useFuncDebounce from \"neetocommons/react-utils/useFuncDebounce\";\nimport useQueryParams from \"neetocommons/react-utils/useQueryParams\";\nimport useUpdateEffect from \"neetocommons/react-utils/useUpdateEffect\";\nimport { buildUrl } from \"neetocommons/utils/general\";\nimport { Search as NeetoUISearchIcon } from \"neetoicons\";\nimport { Input } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { mergeLeft } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport \"./search.scss\";\nimport { getInitialSearchValue } from \"./utils\";\n\nconst Search = ({\n value,\n debounceTime = 300,\n onSearch,\n onChange,\n enableUrlSync = false,\n searchParamName = \"search_term\",\n ...inputProps\n}) => {\n const { t } = useTranslation();\n const queryParams = useQueryParams({ toCamelCase: false });\n const history = useHistory();\n\n const [internalValue, setInternalValue] = useState(\n getInitialSearchValue({\n initialValue: value,\n enableUrlSync,\n searchParamName,\n })\n );\n const trimmedValue = value?.trim();\n\n useUpdateEffect(() => {\n if (!enableUrlSync || isPresent(queryParams?.[searchParamName])) return;\n\n setInternalValue(\"\");\n }, [queryParams?.[searchParamName]]);\n\n const handleSearchQueryParams = trimmedValue => {\n if (!trimmedValue && !queryParams?.[searchParamName]) return;\n\n if (trimmedValue === queryParams?.[searchParamName]) return;\n\n let searchParams = {};\n const pathname = window.location.pathname;\n\n if (trimmedValue) searchParams = { [searchParamName]: trimmedValue };\n else delete queryParams?.[searchParamName];\n\n history.push(buildUrl(pathname, mergeLeft(searchParams, queryParams)));\n };\n\n const handleDebouncedSearchTermChange = useFuncDebounce(trimmedValue => {\n if (onSearch) onSearch(trimmedValue);\n else if (enableUrlSync) handleSearchQueryParams(trimmedValue);\n }, debounceTime);\n\n useUpdateEffect(() => {\n handleDebouncedSearchTermChange(trimmedValue);\n }, [trimmedValue]);\n\n if (value !== undefined && internalValue !== value) {\n setInternalValue(value);\n }\n\n const handleOnChange = e => {\n const trimmedValue = e.target.value?.trim();\n onChange?.(e);\n setInternalValue(e.target.value);\n\n if (internalValue?.trim() !== trimmedValue) {\n handleDebouncedSearchTermChange(trimmedValue);\n }\n };\n\n useEffect(() => handleDebouncedSearchTermChange.cancel, []);\n\n return (\n <Input\n className=\"neeto-molecules-search__wrapper\"\n placeholder={t(\"neetoMolecules.common.actions.search\")}\n prefix={<NeetoUISearchIcon />}\n type=\"search\"\n value={internalValue}\n onChange={handleOnChange}\n {...inputProps}\n />\n );\n};\n\nSearch.propTypes = {\n /**\n * value for the search (optional).\n */\n value: PropTypes.string,\n /**\n * Time in milliseconds to debounce the search input before triggering a search.\n */\n debounceTime: PropTypes.number,\n /**\n * To specify the function to be triggered when the value is updated (optional).\n */\n onChange: PropTypes.func,\n /**\n * Callback to handle debounced search value without updating the search params.\n */\n onSearch: PropTypes.func,\n /**\n * To control whether the search term needs to be set in the URLSearch.\n */\n enableUrlSync: PropTypes.bool,\n /**\n * value for the search param name.\n */\n searchParamName: PropTypes.string,\n /**\n * To override the properties of the Input component.\n */\n inputProps: PropTypes.object,\n};\n\nexport default Search;\n"],"names":["getInitialSearchValue","_ref","_ref$initialValue","initialValue","enableUrlSync","searchParamName","_queryParams$searchPa","queryParams","getQueryParams","toCamelCase","Search","value","_ref$debounceTime","debounceTime","onSearch","onChange","_ref$enableUrlSync","_ref$searchParamName","inputProps","_objectWithoutProperties","_excluded","_useTranslation","useTranslation","t","useQueryParams","history","useHistory","_useState","useState","_useState2","_slicedToArray","internalValue","setInternalValue","trimmedValue","trim","useUpdateEffect","isPresent","handleSearchQueryParams","searchParams","pathname","window","location","_defineProperty","push","buildUrl","mergeLeft","handleDebouncedSearchTermChange","useFuncDebounce","undefined","handleOnChange","e","_e$target$value","target","useEffect","cancel","_jsx","Input","_objectSpread","className","placeholder","prefix","NeetoUISearchIcon","type"],"mappings":"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"}