ish-ui 1.0.2 → 1.0.4

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 (411) hide show
  1. package/dist/actions/FieldProcessing.d.ts +10 -0
  2. package/{src/actions/FieldProcessing.ts → dist/actions/FieldProcessing.js} +8 -11
  3. package/dist/actions/FieldProcessing.js.map +1 -0
  4. package/dist/actions/index.d.ts +1 -0
  5. package/dist/actions/index.js +9 -0
  6. package/dist/actions/index.js.map +1 -0
  7. package/dist/appBar/AppBarHelpMenu.d.ts +3 -0
  8. package/dist/appBar/AppBarHelpMenu.js +78 -0
  9. package/dist/appBar/AppBarHelpMenu.js.map +1 -0
  10. package/dist/appBar/index.d.ts +1 -0
  11. package/dist/appBar/index.js +9 -0
  12. package/dist/appBar/index.js.map +1 -0
  13. package/dist/buttons/AddButton.d.ts +14 -0
  14. package/dist/buttons/AddButton.js +10 -0
  15. package/dist/buttons/AddButton.js.map +1 -0
  16. package/dist/buttons/TimetableButton.d.ts +3 -0
  17. package/dist/buttons/TimetableButton.js +13 -0
  18. package/dist/buttons/TimetableButton.js.map +1 -0
  19. package/dist/buttons/index.d.ts +2 -0
  20. package/dist/buttons/index.js +10 -0
  21. package/dist/buttons/index.js.map +1 -0
  22. package/dist/colorPicker/ColorPicker.d.ts +11 -0
  23. package/dist/colorPicker/ColorPicker.js +133 -0
  24. package/dist/colorPicker/ColorPicker.js.map +1 -0
  25. package/dist/colorPicker/index.d.ts +1 -0
  26. package/{src/buttons/index.ts → dist/colorPicker/index.js} +2 -3
  27. package/dist/colorPicker/index.js.map +1 -0
  28. package/dist/dialog/BrowserWarning.d.ts +3 -0
  29. package/dist/dialog/BrowserWarning.js +17 -0
  30. package/dist/dialog/BrowserWarning.js.map +1 -0
  31. package/dist/dialog/confirm/ConfirmBase.d.ts +7 -0
  32. package/dist/dialog/confirm/ConfirmBase.js +30 -0
  33. package/dist/dialog/confirm/ConfirmBase.js.map +1 -0
  34. package/dist/dialog/index.d.ts +3 -0
  35. package/{src/dialog/index.ts → dist/dialog/index.js} +2 -2
  36. package/dist/dialog/index.js.map +1 -0
  37. package/dist/dialog/message/Message.d.ts +3 -0
  38. package/dist/dialog/message/Message.js +92 -0
  39. package/dist/dialog/message/Message.js.map +1 -0
  40. package/dist/documents/DocumentIconsChooser.d.ts +3 -0
  41. package/dist/documents/DocumentIconsChooser.js +52 -0
  42. package/dist/documents/DocumentIconsChooser.js.map +1 -0
  43. package/dist/documents/index.d.ts +2 -0
  44. package/{src/documents/index.ts → dist/documents/index.js} +1 -1
  45. package/dist/documents/index.js.map +1 -0
  46. package/dist/documents/utils/index.d.ts +7 -0
  47. package/dist/documents/utils/index.js +62 -0
  48. package/dist/documents/utils/index.js.map +1 -0
  49. package/dist/dynamicSizeList/DynamicSizeList.d.ts +21 -0
  50. package/dist/dynamicSizeList/DynamicSizeList.js +170 -0
  51. package/dist/dynamicSizeList/DynamicSizeList.js.map +1 -0
  52. package/dist/dynamicSizeList/index.d.ts +1 -0
  53. package/{src/dynamicSizeList/index.ts → dist/dynamicSizeList/index.js} +1 -1
  54. package/dist/dynamicSizeList/index.js.map +1 -0
  55. package/dist/fieldMessage/ErrorMessage.d.ts +8 -0
  56. package/{src/fieldMessage/ErrorMessage.tsx → dist/fieldMessage/ErrorMessage.js} +4 -17
  57. package/dist/fieldMessage/ErrorMessage.js.map +1 -0
  58. package/dist/fieldMessage/WarningMessage.d.ts +8 -0
  59. package/{src/fieldMessage/WarningMessage.tsx → dist/fieldMessage/WarningMessage.js} +4 -17
  60. package/dist/fieldMessage/WarningMessage.js.map +1 -0
  61. package/dist/fieldMessage/index.d.ts +3 -0
  62. package/{src/fieldMessage/index.ts → dist/fieldMessage/index.js} +1 -1
  63. package/dist/fieldMessage/index.js.map +1 -0
  64. package/dist/fieldMessage/styles.d.ts +3 -0
  65. package/dist/fieldMessage/styles.js +19 -0
  66. package/dist/fieldMessage/styles.js.map +1 -0
  67. package/dist/fileUploader/FileUploaderDialog.d.ts +15 -0
  68. package/dist/fileUploader/FileUploaderDialog.js +100 -0
  69. package/dist/fileUploader/FileUploaderDialog.js.map +1 -0
  70. package/dist/fileUploader/index.d.ts +1 -0
  71. package/dist/fileUploader/index.js +9 -0
  72. package/dist/fileUploader/index.js.map +1 -0
  73. package/dist/formFields/CheckboxField.d.ts +7 -0
  74. package/dist/formFields/CheckboxField.js +68 -0
  75. package/dist/formFields/CheckboxField.js.map +1 -0
  76. package/dist/formFields/CodeEditorField.d.ts +6 -0
  77. package/dist/formFields/CodeEditorField.js +70 -0
  78. package/dist/formFields/CodeEditorField.js.map +1 -0
  79. package/dist/formFields/ColoredCheckBox.d.ts +3 -0
  80. package/dist/formFields/ColoredCheckBox.js +42 -0
  81. package/dist/formFields/ColoredCheckBox.js.map +1 -0
  82. package/dist/formFields/DateTimeField.d.ts +2 -0
  83. package/dist/formFields/DateTimeField.js +28 -0
  84. package/dist/formFields/DateTimeField.js.map +1 -0
  85. package/dist/formFields/EditInPlaceDateTimeField.d.ts +10 -0
  86. package/dist/formFields/EditInPlaceDateTimeField.js +189 -0
  87. package/dist/formFields/EditInPlaceDateTimeField.js.map +1 -0
  88. package/dist/formFields/EditInPlaceDurationField.d.ts +4 -0
  89. package/dist/formFields/EditInPlaceDurationField.js +64 -0
  90. package/dist/formFields/EditInPlaceDurationField.js.map +1 -0
  91. package/dist/formFields/EditInPlaceField.d.ts +10 -0
  92. package/dist/formFields/EditInPlaceField.js +59 -0
  93. package/dist/formFields/EditInPlaceField.js.map +1 -0
  94. package/dist/formFields/EditInPlaceFieldBase.d.ts +28 -0
  95. package/dist/formFields/EditInPlaceFieldBase.js +124 -0
  96. package/dist/formFields/EditInPlaceFieldBase.js.map +1 -0
  97. package/dist/formFields/EditInPlaceFileField.d.ts +7 -0
  98. package/dist/formFields/EditInPlaceFileField.js +61 -0
  99. package/dist/formFields/EditInPlaceFileField.js.map +1 -0
  100. package/dist/formFields/EditInPlaceMoneyField.d.ts +9 -0
  101. package/dist/formFields/EditInPlaceMoneyField.js +38 -0
  102. package/dist/formFields/EditInPlaceMoneyField.js.map +1 -0
  103. package/dist/formFields/EditInPlacePhoneField.d.ts +4 -0
  104. package/dist/formFields/EditInPlacePhoneField.js +70 -0
  105. package/dist/formFields/EditInPlacePhoneField.js.map +1 -0
  106. package/dist/formFields/EditInPlaceSearchSelect.d.ts +4 -0
  107. package/dist/formFields/EditInPlaceSearchSelect.js +322 -0
  108. package/dist/formFields/EditInPlaceSearchSelect.js.map +1 -0
  109. package/dist/formFields/FieldAdornments.d.ts +13 -0
  110. package/dist/formFields/FieldAdornments.js +28 -0
  111. package/dist/formFields/FieldAdornments.js.map +1 -0
  112. package/dist/formFields/FilePreview.d.ts +17 -0
  113. package/dist/formFields/FilePreview.js +78 -0
  114. package/dist/formFields/FilePreview.js.map +1 -0
  115. package/dist/formFields/FormRadioButtons.d.ts +3 -0
  116. package/dist/formFields/FormRadioButtons.js +28 -0
  117. package/dist/formFields/FormRadioButtons.js.map +1 -0
  118. package/dist/formFields/SelectCustomComponents.d.ts +5 -0
  119. package/dist/formFields/SelectCustomComponents.js +183 -0
  120. package/dist/formFields/SelectCustomComponents.js.map +1 -0
  121. package/dist/formFields/Switch.d.ts +7 -0
  122. package/dist/formFields/Switch.js +117 -0
  123. package/dist/formFields/Switch.js.map +1 -0
  124. package/dist/formFields/TextField.d.ts +6 -0
  125. package/dist/formFields/TextField.js +43 -0
  126. package/dist/formFields/TextField.js.map +1 -0
  127. package/dist/formFields/UneditableBase.d.ts +17 -0
  128. package/dist/formFields/UneditableBase.js +49 -0
  129. package/dist/formFields/UneditableBase.js.map +1 -0
  130. package/dist/formFields/index.d.ts +19 -0
  131. package/{src/formFields/index.ts → dist/formFields/index.js} +2 -2
  132. package/dist/formFields/index.js.map +1 -0
  133. package/dist/index.d.ts +18 -0
  134. package/{src/index.ts → dist/index.js} +2 -2
  135. package/dist/index.js.map +1 -0
  136. package/dist/layout/InfoPill.d.ts +7 -0
  137. package/{src/layout/InfoPill.tsx → dist/layout/InfoPill.js} +15 -24
  138. package/dist/layout/InfoPill.js.map +1 -0
  139. package/dist/layout/index.d.ts +2 -0
  140. package/{src/layout/index.ts → dist/layout/index.js} +2 -2
  141. package/dist/layout/index.js.map +1 -0
  142. package/dist/layout/resizable/ResizableWrapper.d.ts +14 -0
  143. package/dist/layout/resizable/ResizableWrapper.js +43 -0
  144. package/dist/layout/resizable/ResizableWrapper.js.map +1 -0
  145. package/dist/markdownEditor/HtmlEditor.d.ts +15 -0
  146. package/dist/markdownEditor/HtmlEditor.js +19 -0
  147. package/dist/markdownEditor/HtmlEditor.js.map +1 -0
  148. package/dist/markdownEditor/WysiwygEditor.d.ts +8 -0
  149. package/dist/markdownEditor/WysiwygEditor.js +101 -0
  150. package/dist/markdownEditor/WysiwygEditor.js.map +1 -0
  151. package/dist/markdownEditor/index.d.ts +4 -0
  152. package/{src/markdownEditor/index.ts → dist/markdownEditor/index.js} +2 -2
  153. package/dist/markdownEditor/index.js.map +1 -0
  154. package/dist/markdownEditor/style.d.ts +1 -0
  155. package/dist/markdownEditor/style.js +186 -0
  156. package/dist/markdownEditor/style.js.map +1 -0
  157. package/dist/markdownEditor/utils/index.d.ts +9 -0
  158. package/dist/markdownEditor/utils/index.js +39 -0
  159. package/dist/markdownEditor/utils/index.js.map +1 -0
  160. package/dist/model/AppBar.d.ts +11 -0
  161. package/{src/actions/index.ts → dist/model/AppBar.js} +2 -3
  162. package/dist/model/AppBar.js.map +1 -0
  163. package/dist/model/CommomObjects.d.ts +5 -0
  164. package/dist/model/CommomObjects.js +2 -0
  165. package/dist/model/CommomObjects.js.map +1 -0
  166. package/{src/model/CommonFunctions.ts → dist/model/CommonFunctions.d.ts} +0 -12
  167. package/dist/model/CommonFunctions.js +6 -0
  168. package/dist/model/CommonFunctions.js.map +1 -0
  169. package/dist/model/Confirm.d.ts +16 -0
  170. package/dist/model/Confirm.js +9 -0
  171. package/dist/model/Confirm.js.map +1 -0
  172. package/dist/model/Fields.d.ts +251 -0
  173. package/{src/appBar/index.ts → dist/model/Fields.js} +2 -2
  174. package/dist/model/Fields.js.map +1 -0
  175. package/dist/model/NestedEntity.d.ts +9 -0
  176. package/dist/model/NestedEntity.js +6 -0
  177. package/dist/model/NestedEntity.js.map +1 -0
  178. package/dist/model/Theme.d.ts +34 -0
  179. package/dist/model/Theme.js +19 -0
  180. package/dist/model/Theme.js.map +1 -0
  181. package/dist/model/index.d.ts +7 -0
  182. package/{src/model/index.ts → dist/model/index.js} +1 -2
  183. package/dist/model/index.js.map +1 -0
  184. package/dist/styles/GlobalStylesProvider.d.ts +3 -0
  185. package/dist/styles/GlobalStylesProvider.js +418 -0
  186. package/dist/styles/GlobalStylesProvider.js.map +1 -0
  187. package/dist/styles/StylesProviderCustom.d.ts +3 -0
  188. package/dist/styles/StylesProviderCustom.js +7 -0
  189. package/dist/styles/StylesProviderCustom.js.map +1 -0
  190. package/dist/styles/animateStyles.d.ts +3 -0
  191. package/dist/styles/animateStyles.js +34 -0
  192. package/dist/styles/animateStyles.js.map +1 -0
  193. package/dist/styles/bootstrap.d.ts +491 -0
  194. package/dist/styles/bootstrap.js +497 -0
  195. package/dist/styles/bootstrap.js.map +1 -0
  196. package/dist/styles/hooks.d.ts +6 -0
  197. package/dist/styles/hooks.js +39 -0
  198. package/dist/styles/hooks.js.map +1 -0
  199. package/dist/styles/index.d.ts +9 -0
  200. package/{src/styles/index.ts → dist/styles/index.js} +1 -2
  201. package/dist/styles/index.js.map +1 -0
  202. package/dist/styles/makeStyles.d.ts +3 -0
  203. package/dist/styles/makeStyles.js +10 -0
  204. package/dist/styles/makeStyles.js.map +1 -0
  205. package/dist/styles/mixins/common.d.ts +8 -0
  206. package/dist/styles/mixins/common.js +33 -0
  207. package/dist/styles/mixins/common.js.map +1 -0
  208. package/dist/styles/mixins/keyframes.d.ts +3 -0
  209. package/{src/styles/mixins/keyframes.ts → dist/styles/mixins/keyframes.js} +3 -9
  210. package/dist/styles/mixins/keyframes.js.map +1 -0
  211. package/dist/styles/mixins/prefixer.d.ts +1 -0
  212. package/dist/styles/mixins/prefixer.js +24 -0
  213. package/dist/styles/mixins/prefixer.js.map +1 -0
  214. package/dist/tagsInput/AddTagMenu.d.ts +11 -0
  215. package/dist/tagsInput/AddTagMenu.js +37 -0
  216. package/dist/tagsInput/AddTagMenu.js.map +1 -0
  217. package/dist/tagsInput/AddTagMenuItem.d.ts +10 -0
  218. package/dist/tagsInput/AddTagMenuItem.js +27 -0
  219. package/dist/tagsInput/AddTagMenuItem.js.map +1 -0
  220. package/dist/tagsInput/TagInputList.d.ts +2 -0
  221. package/dist/tagsInput/TagInputList.js +279 -0
  222. package/dist/tagsInput/TagInputList.js.map +1 -0
  223. package/{src/tagsInput/index.ts → dist/tagsInput/index.d.ts} +1 -2
  224. package/dist/tagsInput/index.js +4 -0
  225. package/dist/tagsInput/index.js.map +1 -0
  226. package/dist/themes/appTheme.d.ts +4 -0
  227. package/dist/themes/appTheme.js +323 -0
  228. package/dist/themes/appTheme.js.map +1 -0
  229. package/dist/themes/index.d.ts +2 -0
  230. package/{src/themes/index.ts → dist/themes/index.js} +2 -2
  231. package/dist/themes/index.js.map +1 -0
  232. package/dist/themes/ishTheme.d.ts +8 -0
  233. package/dist/themes/ishTheme.js +352 -0
  234. package/dist/themes/ishTheme.js.map +1 -0
  235. package/dist/timetable/datePeriodFilter/DayPeriodIcons.d.ts +8 -0
  236. package/dist/timetable/datePeriodFilter/DayPeriodIcons.js +28 -0
  237. package/dist/timetable/datePeriodFilter/DayPeriodIcons.js.map +1 -0
  238. package/dist/timetable/datePeriodFilter/index.d.ts +1 -0
  239. package/dist/timetable/datePeriodFilter/index.js +9 -0
  240. package/dist/timetable/datePeriodFilter/index.js.map +1 -0
  241. package/dist/timetable/index.d.ts +2 -0
  242. package/{src/timetable/index.ts → dist/timetable/index.js} +2 -3
  243. package/dist/timetable/index.js.map +1 -0
  244. package/dist/timetable/miniCalendar/CalendarDay.d.ts +15 -0
  245. package/dist/timetable/miniCalendar/CalendarDay.js +65 -0
  246. package/dist/timetable/miniCalendar/CalendarDay.js.map +1 -0
  247. package/dist/timetable/miniCalendar/CalendarHeader.d.ts +10 -0
  248. package/dist/timetable/miniCalendar/CalendarHeader.js +23 -0
  249. package/dist/timetable/miniCalendar/CalendarHeader.js.map +1 -0
  250. package/dist/timetable/miniCalendar/CalendarWeekPanel.d.ts +8 -0
  251. package/dist/timetable/miniCalendar/CalendarWeekPanel.js +19 -0
  252. package/dist/timetable/miniCalendar/CalendarWeekPanel.js.map +1 -0
  253. package/dist/timetable/miniCalendar/WeekDay.d.ts +10 -0
  254. package/dist/timetable/miniCalendar/WeekDay.js +26 -0
  255. package/dist/timetable/miniCalendar/WeekDay.js.map +1 -0
  256. package/dist/timetable/miniCalendar/index.d.ts +4 -0
  257. package/{src/timetable/miniCalendar/index.ts → dist/timetable/miniCalendar/index.js} +2 -3
  258. package/dist/timetable/miniCalendar/index.js.map +1 -0
  259. package/dist/utils/DOM/Links.d.ts +1 -0
  260. package/{src/utils/DOM/Links.ts → dist/utils/DOM/Links.js} +5 -9
  261. package/dist/utils/DOM/Links.js.map +1 -0
  262. package/dist/utils/DOM/getCaretCoordinates.d.ts +6 -0
  263. package/dist/utils/DOM/getCaretCoordinates.js +110 -0
  264. package/dist/utils/DOM/getCaretCoordinates.js.map +1 -0
  265. package/dist/utils/DOM/getOS.d.ts +2 -0
  266. package/dist/utils/DOM/getOS.js +33 -0
  267. package/dist/utils/DOM/getOS.js.map +1 -0
  268. package/dist/utils/DOM/index.d.ts +5 -0
  269. package/dist/utils/DOM/index.js +33 -0
  270. package/dist/utils/DOM/index.js.map +1 -0
  271. package/dist/utils/dates/datesNormalizing.d.ts +1 -0
  272. package/{src/utils/dates/datesNormalizing.ts → dist/utils/dates/datesNormalizing.js} +1 -1
  273. package/dist/utils/dates/datesNormalizing.js.map +1 -0
  274. package/dist/utils/dates/format.d.ts +24 -0
  275. package/{src/utils/dates/format.ts → dist/utils/dates/format.js} +1 -24
  276. package/dist/utils/dates/format.js.map +1 -0
  277. package/dist/utils/dates/formatRelative.d.ts +1 -0
  278. package/dist/utils/dates/formatRelative.js +15 -0
  279. package/dist/utils/dates/formatRelative.js.map +1 -0
  280. package/dist/utils/dates/formatString.d.ts +2 -0
  281. package/dist/utils/dates/formatString.js +196 -0
  282. package/dist/utils/dates/formatString.js.map +1 -0
  283. package/dist/utils/dates/formatTimezone.d.ts +2 -0
  284. package/dist/utils/dates/formatTimezone.js +36 -0
  285. package/dist/utils/dates/formatTimezone.js.map +1 -0
  286. package/dist/utils/dates/index.d.ts +6 -0
  287. package/{src/utils/dates/index.ts → dist/utils/dates/index.js} +1 -2
  288. package/dist/utils/dates/index.js.map +1 -0
  289. package/dist/utils/dates/timetable.d.ts +5 -0
  290. package/dist/utils/dates/timetable.js +39 -0
  291. package/dist/utils/dates/timetable.js.map +1 -0
  292. package/dist/utils/events/index.d.ts +2 -0
  293. package/{src/utils/events/index.ts → dist/utils/events/index.js} +1 -2
  294. package/dist/utils/events/index.js.map +1 -0
  295. package/dist/utils/fields/index.d.ts +1 -0
  296. package/{src/utils/fields/index.ts → dist/utils/fields/index.js} +13 -15
  297. package/dist/utils/fields/index.js.map +1 -0
  298. package/dist/utils/formatting/PhoneMasks.d.ts +304 -0
  299. package/dist/utils/formatting/PhoneMasks.js +319 -0
  300. package/dist/utils/formatting/PhoneMasks.js.map +1 -0
  301. package/dist/utils/formatting/index.d.ts +2 -0
  302. package/dist/utils/formatting/index.js +11 -0
  303. package/dist/utils/formatting/index.js.map +1 -0
  304. package/dist/utils/hooks/index.d.ts +1 -0
  305. package/{src/utils/hooks/index.ts → dist/utils/hooks/index.js} +8 -11
  306. package/dist/utils/hooks/index.js.map +1 -0
  307. package/dist/utils/index.d.ts +7 -0
  308. package/{src/utils/index.ts → dist/utils/index.js} +1 -1
  309. package/dist/utils/index.js.map +1 -0
  310. package/dist/utils/numbers/decimalCalculation.d.ts +4 -0
  311. package/dist/utils/numbers/decimalCalculation.js +22 -0
  312. package/dist/utils/numbers/decimalCalculation.js.map +1 -0
  313. package/dist/utils/numbers/index.d.ts +2 -0
  314. package/{src/utils/numbers/index.ts → dist/utils/numbers/index.js} +2 -3
  315. package/dist/utils/numbers/index.js.map +1 -0
  316. package/dist/utils/numbers/numbersNormalizing.d.ts +10 -0
  317. package/dist/utils/numbers/numbersNormalizing.js +45 -0
  318. package/dist/utils/numbers/numbersNormalizing.js.map +1 -0
  319. package/dist/utils/stubs/index.d.ts +3 -0
  320. package/{src/utils/stubs/index.tsx → dist/utils/stubs/index.js} +2 -3
  321. package/dist/utils/stubs/index.js.map +1 -0
  322. package/dist/utils/tags/index.d.ts +3 -0
  323. package/dist/utils/tags/index.js +43 -0
  324. package/dist/utils/tags/index.js.map +1 -0
  325. package/{src/colorPicker/index.ts → index.ts} +2 -1
  326. package/package.json +1 -1
  327. package/.eslintrc.json +0 -39
  328. package/.gitattributes +0 -3
  329. package/.github/workflows/release-package.yml +0 -33
  330. package/.prettierrc +0 -5
  331. package/src/appBar/AppBarHelpMenu.tsx +0 -139
  332. package/src/buttons/AddButton.tsx +0 -30
  333. package/src/buttons/TimetableButton.tsx +0 -19
  334. package/src/colorPicker/ColorPicker.tsx +0 -223
  335. package/src/dialog/BrowserWarning.tsx +0 -24
  336. package/src/dialog/confirm/ConfirmBase.tsx +0 -59
  337. package/src/dialog/message/Message.tsx +0 -140
  338. package/src/documents/DocumentIconsChooser.tsx +0 -69
  339. package/src/documents/utils/index.tsx +0 -71
  340. package/src/dynamicSizeList/DynamicSizeList.tsx +0 -208
  341. package/src/fieldMessage/styles.ts +0 -21
  342. package/src/fileUploader/FileUploaderDialog.tsx +0 -158
  343. package/src/fileUploader/index.ts +0 -9
  344. package/src/formFields/CheckboxField.tsx +0 -90
  345. package/src/formFields/CodeEditorField.tsx +0 -103
  346. package/src/formFields/ColoredCheckBox.tsx +0 -74
  347. package/src/formFields/DateTimeField.tsx +0 -61
  348. package/src/formFields/EditInPlaceDateTimeField.tsx +0 -285
  349. package/src/formFields/EditInPlaceDurationField.tsx +0 -79
  350. package/src/formFields/EditInPlaceField.tsx +0 -131
  351. package/src/formFields/EditInPlaceFieldBase.tsx +0 -241
  352. package/src/formFields/EditInPlaceFileField.tsx +0 -67
  353. package/src/formFields/EditInPlaceMoneyField.tsx +0 -64
  354. package/src/formFields/EditInPlacePhoneField.tsx +0 -97
  355. package/src/formFields/EditInPlaceSearchSelect.tsx +0 -562
  356. package/src/formFields/FieldAdornments.tsx +0 -70
  357. package/src/formFields/FilePreview.tsx +0 -149
  358. package/src/formFields/FormRadioButtons.tsx +0 -62
  359. package/src/formFields/SelectCustomComponents.tsx +0 -228
  360. package/src/formFields/Switch.tsx +0 -146
  361. package/src/formFields/TextField.tsx +0 -60
  362. package/src/formFields/UneditableBase.tsx +0 -101
  363. package/src/layout/resizable/ResizableWrapper.tsx +0 -87
  364. package/src/markdownEditor/HtmlEditor.tsx +0 -44
  365. package/src/markdownEditor/WysiwygEditor.tsx +0 -137
  366. package/src/markdownEditor/style.ts +0 -188
  367. package/src/markdownEditor/utils/index.ts +0 -48
  368. package/src/model/AppBar.ts +0 -20
  369. package/src/model/CommomObjects.ts +0 -8
  370. package/src/model/Confirm.ts +0 -27
  371. package/src/model/Fields.ts +0 -254
  372. package/src/model/NestedEntity.ts +0 -14
  373. package/src/model/Theme.ts +0 -42
  374. package/src/styles/GlobalStylesProvider.tsx +0 -520
  375. package/src/styles/StylesProviderCustom.tsx +0 -8
  376. package/src/styles/animateStyles.ts +0 -94
  377. package/src/styles/bootstrap.ts +0 -503
  378. package/src/styles/hooks.ts +0 -44
  379. package/src/styles/makeStyles.ts +0 -21
  380. package/src/styles/mixins/common.ts +0 -40
  381. package/src/styles/mixins/prefixer.ts +0 -21
  382. package/src/tagsInput/AddTagMenu.tsx +0 -74
  383. package/src/tagsInput/AddTagMenuItem.tsx +0 -50
  384. package/src/tagsInput/TagInputList.tsx +0 -428
  385. package/src/themes/appTheme.ts +0 -324
  386. package/src/themes/ishTheme.ts +0 -401
  387. package/src/timetable/datePeriodFilter/DayPeriodIcons.tsx +0 -95
  388. package/src/timetable/datePeriodFilter/index.ts +0 -10
  389. package/src/timetable/miniCalendar/CalendarDay.tsx +0 -109
  390. package/src/timetable/miniCalendar/CalendarHeader.tsx +0 -37
  391. package/src/timetable/miniCalendar/CalendarWeekPanel.tsx +0 -35
  392. package/src/timetable/miniCalendar/WeekDay.tsx +0 -49
  393. package/src/utils/DOM/getCaretCoordinates.ts +0 -122
  394. package/src/utils/DOM/getOS.ts +0 -32
  395. package/src/utils/DOM/index.ts +0 -34
  396. package/src/utils/dates/formatRelative.ts +0 -22
  397. package/src/utils/dates/formatString.ts +0 -233
  398. package/src/utils/dates/formatTimezone.ts +0 -37
  399. package/src/utils/dates/timetable.ts +0 -46
  400. package/src/utils/formatting/PhoneMasks.ts +0 -320
  401. package/src/utils/formatting/index.tsx +0 -20
  402. package/src/utils/numbers/decimalCalculation.ts +0 -26
  403. package/src/utils/numbers/numbersNormalizing.ts +0 -52
  404. package/src/utils/tags/index.ts +0 -53
  405. package/tools/webpack/webpack.aliases.js +0 -13
  406. package/tools/webpack/webpack.config.dev.js +0 -29
  407. package/tools/webpack/webpack.config.prod.js +0 -36
  408. package/tools/webpack/webpack.helpers.js +0 -26
  409. package/tools/webpack/webpack.plugins.js +0 -15
  410. package/tools/webpack/webpack.rules.js +0 -51
  411. package/tsconfig.json +0 -24
@@ -1,90 +0,0 @@
1
- /*
2
- * Copyright ish group pty ltd 2023.
3
- *
4
- * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License version 3 as published by the Free Software Foundation.
5
- *
6
- * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
7
- */
8
-
9
- /**
10
- * Redux Form field checkbox component creator
11
- * */
12
-
13
- import React, { useCallback } from 'react';
14
- import Checkbox from '@mui/material/Checkbox';
15
- import withStyles from '@mui/styles/withStyles';
16
- import clsx from 'clsx';
17
- import { CheckboxFieldProps, FieldInputProps } from '@src/model';
18
-
19
- const getValue = (value, stringValue) => {
20
- if (!stringValue) {
21
- return !!value;
22
- }
23
-
24
- switch (value) {
25
- case 'false':
26
- return false;
27
- case 'true':
28
- return true;
29
- default:
30
- return Boolean(value);
31
- }
32
- };
33
-
34
- const styles = theme => ({
35
- root: {
36
- width: theme.spacing(4),
37
- height: theme.spacing(4),
38
- margin: theme.spacing(0.5)
39
- }
40
- });
41
-
42
- const StyledCheckboxBase = props => {
43
- const {
44
- classes, uncheckedClass, className, ...rest
45
- } = props;
46
-
47
- return (
48
- <Checkbox
49
- classes={{
50
- root: clsx(classes.root, uncheckedClass, className),
51
- }}
52
- {...rest}
53
- />
54
- );
55
- };
56
-
57
- export const StyledCheckbox = withStyles(styles)(StyledCheckboxBase);
58
-
59
- export function CheckboxField<IP extends FieldInputProps>({ input, color, disabled, stringValue, className, uncheckedClass, onChangeHandler, stopPropagation }: CheckboxFieldProps<IP>) {
60
- const onChange = useCallback(
61
- (e, value) => {
62
- let checked = value;
63
-
64
- if (stringValue) {
65
- checked = checked.toString();
66
- }
67
- if (typeof onChangeHandler === 'function') {
68
- onChangeHandler(e, checked);
69
- }
70
- if (!e.isDefaultPrevented()) {
71
- input.onChange(checked);
72
- }
73
- },
74
- [stringValue, input, onChangeHandler]
75
- );
76
-
77
- return (
78
- <StyledCheckbox
79
- checked={getValue(input.value, stringValue)}
80
- onChange={onChange}
81
- color={color}
82
- disabled={disabled}
83
- className={className}
84
- uncheckedClass={uncheckedClass}
85
- onClick={stopPropagation ? e => e.stopPropagation() : undefined}
86
- id={`input-${input.name}`}
87
- name={input.name}
88
- />
89
- );
90
- }
@@ -1,103 +0,0 @@
1
- /*
2
- * Copyright ish group pty ltd 2023.
3
- *
4
- * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License version 3 as published by the Free Software Foundation.
5
- *
6
- * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
7
- */
8
-
9
- import React from 'react';
10
- import clsx from 'clsx';
11
- import AceEditor from 'react-ace';
12
- import 'ace-builds/src-noconflict/mode-groovy';
13
- import 'ace-builds/src-noconflict/theme-textmate';
14
- import { CodeFieldProps, FieldInputProps, FieldMetaProps } from '@src/model';
15
- import { makeAppStyles } from '@src/styles';
16
-
17
- const useStyles = makeAppStyles(theme => (
18
- {
19
- editor: {
20
- filter: theme.palette.mode === 'dark' ? 'invert(80%)' : '',
21
- zIndex: 0,
22
- outline: 'none'
23
- },
24
- errorBackground: {
25
- '&.ace-tm': {
26
- backgroundColor: theme.palette.error.light
27
- }
28
- },
29
- errorMessage: {
30
- position: 'absolute',
31
- top: '50%',
32
- left: '50%',
33
- transform: 'translate(calc(-50% + 21px), -50%)',
34
- color: '#fff',
35
- fontFamily: 'sans-serif',
36
- zIndex: 1
37
- },
38
- queryMarker: {
39
- borderRadius: '4px',
40
- width: '55px',
41
- paddingLeft: '4px',
42
- height: '25px',
43
- background: '#fff',
44
- cursor: 'pointer',
45
- position: 'absolute',
46
- zIndex: 2,
47
- boxShadow: theme.shadows[1],
48
- '&:after': {
49
- content: '\'Query\'',
50
- marginLeft: '2px'
51
- },
52
- '&:hover': {
53
- background: theme.palette.grey[100]
54
- }
55
- }
56
- }
57
- ))
58
-
59
- function CodeEditorField<IP extends FieldInputProps, MP extends FieldMetaProps>({
60
- input,
61
- meta: { error },
62
- errorMessage,
63
- disabled,
64
- onFocus,
65
- className
66
- }: CodeFieldProps<IP, MP> ) {
67
-
68
- const classes = useStyles();
69
-
70
- return (
71
- <div id={input.name} className={className}>
72
- {error && <div className={classes.errorMessage}><div className="shakingError">{errorMessage || error}</div></div>}
73
- <AceEditor
74
- mode="groovy"
75
- theme="textmate"
76
- value={input.value || ' '}
77
- onFocus={onFocus}
78
- onChange={input.onChange}
79
- fontSize={14}
80
- showPrintMargin={false}
81
- showGutter
82
- highlightActiveLine
83
- width="100%"
84
- maxLines={Infinity}
85
- className={clsx(classes.editor, {
86
- [classes.errorBackground]: error
87
- })}
88
- wrapEnabled
89
- setOptions={{
90
- enableBasicAutocompletion: true,
91
- enableLiveAutocompletion: true,
92
- enableSnippets: true,
93
- showLineNumbers: true,
94
- readOnly: disabled,
95
- tabSize: 2
96
- }}
97
- editorProps={{ $blockScrolling: Infinity }}
98
- />
99
- </div>
100
- );
101
- }
102
-
103
- export default CodeEditorField;
@@ -1,74 +0,0 @@
1
- /*
2
- * Copyright ish group pty ltd 2023.
3
- *
4
- * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License version 3 as published by the Free Software Foundation.
5
- *
6
- * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
7
- */
8
-
9
- import React, { useCallback, useRef } from 'react';
10
- import { ButtonBase, Typography } from '@mui/material';
11
- import clsx from 'clsx';
12
- import { alpha } from '@mui/material/styles';
13
- import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
14
- import { useAppTheme } from '@src/themes';
15
- import { rgbToHex } from '@mui/system/colorManipulator';
16
- import { ColoredCheckboxFieldProps, FieldInputProps, FieldMetaProps } from '@src/model';
17
- import { getCheckboxValue } from '@src/utils';
18
-
19
- export function ColoredCheckBox<IP extends FieldInputProps, MP extends FieldMetaProps>({
20
- input, label, color, className, disabled
21
- }: ColoredCheckboxFieldProps<IP, MP>) {
22
- const theme = useAppTheme();
23
-
24
- const inputRef = useRef<HTMLInputElement>();
25
-
26
- const onClick = useCallback(() => {
27
- inputRef.current.click();
28
- }, [inputRef.current]);
29
-
30
- if (disabled) {
31
- color = rgbToHex(theme.palette.divider);
32
- }
33
-
34
- return (
35
- <div
36
- className={clsx('centeredFlex cursor-pointer', className)}
37
- onClick={onClick}
38
- >
39
- <input
40
- ref={inputRef}
41
- type="checkbox"
42
- {...input}
43
- checked={getCheckboxValue(input.value, false)}
44
- hidden
45
- />
46
- <ButtonBase
47
- component="div"
48
- disabled={disabled}
49
- sx={{
50
- width: theme => theme.spacing(3),
51
- height: theme => theme.spacing(3),
52
- border: `2px solid ${color}`,
53
- borderRadius: '50%',
54
- fontSize: '10px',
55
- backgroundColor: input.value ? `${color}` : alpha(`${color}`, 0.1),
56
- color: theme => theme.palette.getContrastText(`${color}`)
57
- }}
58
- >
59
- {input.value && <FontAwesomeIcon fixedWidth icon="check" />}
60
- </ButtonBase>
61
- {label && <Typography
62
- variant="caption"
63
- fontWeight="400"
64
- sx={{
65
- marginLeft: 1,
66
- textDecoration: input.value ? 'line-through' : 'unset',
67
- color: theme => (input.value ? theme.palette.text.disabled : 'unset'),
68
- }}
69
- >
70
- {label}
71
- </Typography>}
72
- </div>
73
- );
74
- }
@@ -1,61 +0,0 @@
1
- /*
2
- * Copyright ish group pty ltd 2023.
3
- *
4
- * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License version 3 as published by the Free Software Foundation.
5
- *
6
- * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
7
- */
8
-
9
- import * as React from 'react';
10
- import TextField from '@mui/material/TextField';
11
- import { MobileDatePicker, MobileDateTimePicker, MobileTimePicker } from '@mui/x-date-pickers';
12
- import { DD_MM_YYYY_HH_MM_SPECIAL, DD_MMM_YYYY_MINUSED, HH_MM_COLONED } from '@src/utils';
13
-
14
- export const DateTimeField = props => {
15
- const {
16
- onChange, type, ampm, value, setPickerRef, formatDate, maxDate, minDate, ...rest
17
- } = props;
18
-
19
- const picker = type === 'date' ? (
20
- <MobileDatePicker
21
- ref={setPickerRef}
22
- onChange={onChange}
23
- ampm={ampm || false}
24
- value={value}
25
- format={formatDate || DD_MMM_YYYY_MINUSED}
26
- maxDate={maxDate || undefined}
27
- minDate={minDate || undefined}
28
- renderInput={props => <TextField {...props} />}
29
- variant="standard"
30
- {...rest}
31
- />
32
- ) : type === 'time' ? (
33
- <MobileTimePicker
34
- ref={setPickerRef}
35
- onChange={onChange}
36
- ampm={ampm || false}
37
- value={value}
38
- format={formatDate || HH_MM_COLONED}
39
- maxDate={maxDate || undefined}
40
- minDate={minDate || undefined}
41
- renderInput={props => <TextField {...props} />}
42
- variant="standard"
43
- {...rest}
44
- />
45
- ) : type === 'datetime' ? (
46
- <MobileDateTimePicker
47
- ref={setPickerRef}
48
- onChange={onChange}
49
- ampm={ampm || false}
50
- value={value}
51
- format={formatDate || DD_MM_YYYY_HH_MM_SPECIAL}
52
- maxDate={maxDate || undefined}
53
- minDate={minDate || undefined}
54
- renderInput={props => <TextField {...props} />}
55
- variant="standard"
56
- {...rest}
57
- />
58
- ) : null;
59
-
60
- return picker || null;
61
- };
@@ -1,285 +0,0 @@
1
- /*
2
- * Copyright ish group pty ltd 2023.
3
- *
4
- * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License version 3 as published by the Free Software Foundation.
5
- *
6
- * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
7
- */
8
-
9
- /**
10
- * Wrapper component for DateTimeField with edit in place functional
11
- * */
12
-
13
- import React, {
14
- useEffect, useMemo, useRef, useState
15
- } from 'react';
16
- import clsx from 'clsx';
17
- import DateRange from '@mui/icons-material/DateRange';
18
- import QueryBuilder from '@mui/icons-material/QueryBuilder';
19
- import { format, isValid } from 'date-fns';
20
- import IconButton from '@mui/material/IconButton';
21
- import { DateTimeField } from './DateTimeField';
22
- import { makeAppStyles } from '@src/styles';
23
- import EditInPlaceFieldBase from './EditInPlaceFieldBase';
24
- import { EditInPlaceDateTimeFieldProps, FieldInputProps, FieldMetaProps } from '@src/model';
25
- import {
26
- appendTimezone,
27
- formatStringDate, HH_MM_COLONED, III_DD_MMM_YYYY,
28
- III_DD_MMM_YYYY_HH_MM,
29
- prependTimezone,
30
- YYYY_MM_DD_MINUSED
31
- } from '@src/utils';
32
- import { endFieldProcessingAction, startFieldProcessingAction } from '@src/actions/FieldProcessing';
33
-
34
- const useStyles = makeAppStyles(theme => ({
35
- inlinePickerButton: {
36
- padding: '2px',
37
- marginBottom: '-4px',
38
- fontSize: '1.3em',
39
- '&:hover': {
40
- color: theme.palette.primary.main,
41
- }
42
- },
43
- pickerButton: {
44
- width: theme.spacing(4),
45
- height: theme.spacing(4),
46
- bottom: theme.spacing(-0.5)
47
- },
48
- inlineContainer: {
49
- display: 'inline-block',
50
- }
51
- }));
52
-
53
- interface InputTypes {
54
- type?: 'date' | 'time' | 'datetime'
55
- }
56
-
57
- function EditInPlaceDateTimeField<IP extends FieldInputProps, MP extends FieldMetaProps>(
58
- {
59
- type,
60
- formatDate,
61
- formatTime,
62
- formatDateTime,
63
- timezone,
64
- input,
65
- fieldClasses = {},
66
- inline,
67
- meta: { error, invalid, active, dispatch },
68
- labelAdornment,
69
- label,
70
- disabled,
71
- formatValue,
72
- className,
73
- onKeyPress,
74
- placeholder = 'No value',
75
- persistValue,
76
- warning,
77
- defaultValue,
78
- rightAligned,
79
- processActionId
80
- }: EditInPlaceDateTimeFieldProps<IP, MP> & InputTypes
81
- ) {
82
- const [textValue, setTextValue] = useState(defaultValue || '');
83
- const [pickerOpened, setPickerOpened] = useState(false);
84
-
85
- const inputNode = useRef<any>(null);
86
-
87
- const classes = useStyles();
88
-
89
- const formatDateInner = dateObj => {
90
- if (!dateObj) {
91
- return '';
92
- }
93
-
94
- if (dateObj.toString() === 'Invalid Date') return '';
95
-
96
- switch (type) {
97
- case 'date':
98
- return format(dateObj, formatDate || III_DD_MMM_YYYY);
99
- case 'time':
100
- return format(dateObj, formatTime || HH_MM_COLONED);
101
- case 'datetime':
102
- return format(dateObj, formatDateTime || III_DD_MMM_YYYY_HH_MM);
103
- default:
104
- return dateObj.toString();
105
- }
106
- };
107
-
108
- const dateValue = useMemo(() => {
109
- let base = input.value ? new Date(input.value) : null;
110
-
111
- if (base && timezone) {
112
- base = appendTimezone(base, timezone);
113
- }
114
-
115
- return base;
116
- }, [input.value, timezone]);
117
-
118
- useEffect(() => {
119
- setTextValue(formatDateInner(dateValue));
120
- }, [dateValue]);
121
-
122
- useEffect(() => {
123
- if (!active && processActionId) {
124
- dispatch(endFieldProcessingAction(input.name));
125
- }
126
- }, [input.value, input.name, active, processActionId]);
127
-
128
- const onInputChange = e => {
129
- if (e) setTextValue(e.target.value);
130
- };
131
-
132
- const openPicker = e => {
133
- e.stopPropagation();
134
- setPickerOpened(true);
135
- };
136
-
137
- const onChange = (v: Date) => {
138
- if (v) {
139
- let formatted;
140
- if (formatValue) {
141
- formatted = format(v, formatValue);
142
- } else if (type === 'date') {
143
- if (isValid(v)) {
144
- formatted = format(v, YYYY_MM_DD_MINUSED);
145
- } else {
146
- formatted = null;
147
- }
148
- } else {
149
- try {
150
- formatted = v.toISOString();
151
- } catch {
152
- formatted = null;
153
- }
154
- }
155
-
156
- if (timezone && formatted) {
157
- formatted = prependTimezone(formatted, timezone)?.toISOString();
158
- }
159
-
160
- input.onChange(formatted);
161
- input.onBlur(formatted);
162
- return;
163
- }
164
- setTextValue('');
165
- input.onChange(null);
166
- input.onBlur(null);
167
- };
168
-
169
- const onBlur = () => {
170
- dispatch(startFieldProcessingAction(input.name));
171
-
172
- if (persistValue && !textValue) {
173
- input.onChange(input.value);
174
- input.onBlur(input.value);
175
- setTextValue(formatDateInner(dateValue));
176
- return;
177
- }
178
-
179
- const parsed = textValue
180
- ? formatStringDate(textValue, type, dateValue || new Date(), formatDate || formatDateTime || formatTime)
181
- : null;
182
-
183
- if (parsed) {
184
- let formatted;
185
- if (formatValue) {
186
- formatted = format(parsed, formatValue);
187
- } else if (type === 'date' && isValid(parsed)) {
188
- formatted = format(parsed, YYYY_MM_DD_MINUSED);
189
- } else {
190
- try {
191
- formatted = parsed.toISOString();
192
- } catch {
193
- formatted = null;
194
- }
195
- }
196
- setTextValue(formatDateInner(parsed));
197
-
198
- if (timezone && formatted) {
199
- formatted = prependTimezone(formatted, timezone).toISOString();
200
- }
201
-
202
- input.onChange(formatted);
203
- input.onBlur(formatted);
204
- } else {
205
- setTextValue(null);
206
- input.onChange(null);
207
- input.onBlur(null);
208
- }
209
- };
210
-
211
- const onClose = () => {
212
- setPickerOpened(false);
213
- };
214
-
215
- const onEnterPress = e => {
216
- if (e.keyCode === 13 && inputNode.current) {
217
- inputNode.current.blur();
218
- }
219
- };
220
-
221
- return (
222
- <div
223
- className={clsx(className, 'outline-none', {
224
- [classes.inlineContainer]: inline,
225
- 'pointer-events-none': disabled
226
- })}
227
- >
228
- <div
229
- id={input.name}
230
- className="w-100"
231
- >
232
- <DateTimeField
233
- type={type}
234
- toolbarTitle={label}
235
- open={pickerOpened}
236
- value={dateValue}
237
- onChange={onChange}
238
- onClose={onClose}
239
- renderInput={() => (
240
- <EditInPlaceFieldBase
241
- name={input.name}
242
- value={textValue}
243
- error={error}
244
- invalid={invalid}
245
- inline={inline}
246
- label={label}
247
- warning={warning}
248
- fieldClasses={fieldClasses}
249
- rightAligned={rightAligned}
250
- shrink={Boolean(label || input.value)}
251
- disabled={disabled}
252
- labelAdornment={labelAdornment}
253
- placeholder={placeholder}
254
- editIcon={
255
- <IconButton
256
- tabIndex={-1}
257
- onClick={openPicker}
258
- classes={{
259
- root: clsx(fieldClasses.text, inline ? classes.inlinePickerButton : classes.pickerButton)
260
- }}
261
- >
262
- {type === 'time'
263
- ? <QueryBuilder fontSize="inherit" color="inherit" />
264
- : <DateRange color="inherit" fontSize="inherit" />}
265
- </IconButton>}
266
- InputProps={{
267
- type: 'text',
268
- onFocus: input.onFocus,
269
- inputRef: inputNode,
270
- value: textValue,
271
- onKeyPress,
272
- disabled,
273
- onBlur,
274
- onKeyDown: onEnterPress,
275
- onChange: onInputChange
276
- }}
277
- />
278
- )}
279
- />
280
- </div>
281
- </div>
282
- );
283
- }
284
-
285
- export default EditInPlaceDateTimeField;
@@ -1,79 +0,0 @@
1
- /*
2
- * Copyright ish group pty ltd 2023.
3
- *
4
- * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License version 3 as published by the Free Software Foundation.
5
- *
6
- * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
7
- */
8
-
9
- import React, { useCallback, useEffect, useState } from 'react';
10
- import EditInPlaceField from './EditInPlaceField';
11
- import { EditInPlaceFieldProps, FieldInputProps, FieldMetaProps } from '@src/model';
12
- import { formatDurationMinutes } from '@src/utils/dates/formatString';
13
-
14
- const parseDurationString = (duration: string): number => {
15
- if (duration.indexOf('.') > -1) {
16
- return Math.round(parseFloat(duration) * 60);
17
- }
18
-
19
- let min = 0;
20
- const hoursMatch = duration.match(/(\d+)h/);
21
- const minutesMatch = duration.match(/(\d+)m/);
22
- const plainHours = parseFloat(duration);
23
-
24
- if (hoursMatch) {
25
- min += Number(hoursMatch[1]) * 60;
26
- }
27
-
28
- if (minutesMatch) {
29
- min += Number(minutesMatch[1]);
30
- }
31
-
32
- if (!hoursMatch && !minutesMatch && !isNaN(plainHours)) {
33
- min += Math.round(plainHours) * 60;
34
- }
35
-
36
- return min;
37
- };
38
-
39
- function EditInPlaceDurationField<FP extends FieldInputProps, MP extends FieldMetaProps>(
40
- {
41
- input, ...restProps
42
- }: EditInPlaceFieldProps<FP, MP>) {
43
- const [textValue, setTextValue] = useState(formatDurationMinutes(input.value || 0));
44
-
45
- const onChange = useCallback(
46
- e => {
47
- setTextValue(e.target.value);
48
- },
49
- [input.onChange]
50
- );
51
-
52
- const onBlur = useCallback(
53
- value => {
54
- const parsed = parseDurationString(value);
55
- input.onBlur(parsed);
56
- setTextValue(formatDurationMinutes(parsed || 0));
57
- },
58
- [input.onBlur]
59
- );
60
-
61
- useEffect(() => {
62
- setTextValue(formatDurationMinutes(input.value || 0));
63
- }, [input.value]);
64
-
65
- return (
66
- <EditInPlaceField
67
- {...restProps}
68
- input={{
69
- value: textValue,
70
- onBlur,
71
- onChange,
72
- onFocus: input.onFocus,
73
- name: input.name
74
- }}
75
- />
76
- );
77
- }
78
-
79
- export default EditInPlaceDurationField;