@churchapps/apphelper 0.4.11 → 0.4.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (532) hide show
  1. package/dist/components/DisplayBox.js +12 -18
  2. package/dist/components/DisplayBox.js.map +1 -1
  3. package/dist/components/ErrorMessages.js +9 -46
  4. package/dist/components/ErrorMessages.js.map +1 -1
  5. package/dist/components/ExportLink.d.ts.map +1 -1
  6. package/dist/components/ExportLink.js +8 -10
  7. package/dist/components/ExportLink.js.map +1 -1
  8. package/dist/components/FloatingSupport.js +7 -14
  9. package/dist/components/FloatingSupport.js.map +1 -1
  10. package/dist/components/FormCardPayment.d.ts.map +1 -1
  11. package/dist/components/FormCardPayment.js +28 -64
  12. package/dist/components/FormCardPayment.js.map +1 -1
  13. package/dist/components/FormSubmissionEdit.js +28 -65
  14. package/dist/components/FormSubmissionEdit.js.map +1 -1
  15. package/dist/components/HelpIcon.js +3 -7
  16. package/dist/components/HelpIcon.js.map +1 -1
  17. package/dist/components/ImageEditor.d.ts.map +1 -1
  18. package/dist/components/ImageEditor.js +13 -19
  19. package/dist/components/ImageEditor.js.map +1 -1
  20. package/dist/components/InputBox.d.ts.map +1 -1
  21. package/dist/components/InputBox.js +13 -15
  22. package/dist/components/InputBox.js.map +1 -1
  23. package/dist/components/Loading.d.ts +0 -1
  24. package/dist/components/Loading.d.ts.map +1 -1
  25. package/dist/components/Loading.js +52 -12
  26. package/dist/components/Loading.js.map +1 -1
  27. package/dist/components/QuestionEdit.js +20 -26
  28. package/dist/components/QuestionEdit.js.map +1 -1
  29. package/dist/components/SmallButton.js +9 -15
  30. package/dist/components/SmallButton.js.map +1 -1
  31. package/dist/components/SupportModal.d.ts.map +1 -1
  32. package/dist/components/SupportModal.js +5 -9
  33. package/dist/components/SupportModal.js.map +1 -1
  34. package/dist/components/TabPanel.js +5 -9
  35. package/dist/components/TabPanel.js.map +1 -1
  36. package/dist/components/header/Banner.js +3 -7
  37. package/dist/components/header/Banner.js.map +1 -1
  38. package/dist/components/header/PrimaryMenu.d.ts.map +1 -1
  39. package/dist/components/header/PrimaryMenu.js +30 -30
  40. package/dist/components/header/PrimaryMenu.js.map +1 -1
  41. package/dist/components/header/SecondaryMenu.js +6 -10
  42. package/dist/components/header/SecondaryMenu.js.map +1 -1
  43. package/dist/components/header/SecondaryMenuAlt.js +8 -15
  44. package/dist/components/header/SecondaryMenuAlt.js.map +1 -1
  45. package/dist/components/header/SiteHeader.js +12 -16
  46. package/dist/components/header/SiteHeader.js.map +1 -1
  47. package/dist/components/header/SupportDrawer.js +14 -18
  48. package/dist/components/header/SupportDrawer.js.map +1 -1
  49. package/dist/components/header/index.js +2 -7
  50. package/dist/components/header/index.js.map +1 -1
  51. package/dist/components/index.d.ts +0 -4
  52. package/dist/components/index.d.ts.map +1 -1
  53. package/dist/components/index.js +16 -52
  54. package/dist/components/index.js.map +1 -1
  55. package/dist/components/notes/AddNote.js +17 -53
  56. package/dist/components/notes/AddNote.js.map +1 -1
  57. package/dist/components/notes/Note.js +11 -15
  58. package/dist/components/notes/Note.js.map +1 -1
  59. package/dist/components/notes/Notes.js +21 -27
  60. package/dist/components/notes/Notes.js.map +1 -1
  61. package/dist/components/notes/index.js +3 -9
  62. package/dist/components/notes/index.js.map +1 -1
  63. package/dist/components/wrapper/AppList.d.ts.map +1 -1
  64. package/dist/components/wrapper/AppList.js +7 -13
  65. package/dist/components/wrapper/AppList.js.map +1 -1
  66. package/dist/components/wrapper/ChurchList.js +16 -20
  67. package/dist/components/wrapper/ChurchList.js.map +1 -1
  68. package/dist/components/wrapper/Drawers.js +5 -10
  69. package/dist/components/wrapper/Drawers.js.map +1 -1
  70. package/dist/components/wrapper/NavItem.js +11 -15
  71. package/dist/components/wrapper/NavItem.js.map +1 -1
  72. package/dist/components/wrapper/NewPrivateMessage.js +19 -56
  73. package/dist/components/wrapper/NewPrivateMessage.js.map +1 -1
  74. package/dist/components/wrapper/Notifications.js +19 -50
  75. package/dist/components/wrapper/Notifications.js.map +1 -1
  76. package/dist/components/wrapper/PrivateMessageDetails.js +5 -9
  77. package/dist/components/wrapper/PrivateMessageDetails.js.map +1 -1
  78. package/dist/components/wrapper/PrivateMessages.d.ts.map +1 -1
  79. package/dist/components/wrapper/PrivateMessages.js +26 -60
  80. package/dist/components/wrapper/PrivateMessages.js.map +1 -1
  81. package/dist/components/wrapper/SiteWrapper.d.ts.map +1 -1
  82. package/dist/components/wrapper/SiteWrapper.js +42 -42
  83. package/dist/components/wrapper/SiteWrapper.js.map +1 -1
  84. package/dist/components/wrapper/TabPanel.js +5 -8
  85. package/dist/components/wrapper/TabPanel.js.map +1 -1
  86. package/dist/components/wrapper/UserMenu.d.ts.map +1 -1
  87. package/dist/components/wrapper/UserMenu.js +35 -44
  88. package/dist/components/wrapper/UserMenu.js.map +1 -1
  89. package/dist/components/wrapper/index.js +7 -17
  90. package/dist/components/wrapper/index.js.map +1 -1
  91. package/dist/helpers/AnalyticsHelper.d.ts.map +1 -1
  92. package/dist/helpers/AnalyticsHelper.js +11 -19
  93. package/dist/helpers/AnalyticsHelper.js.map +1 -1
  94. package/dist/helpers/ApiHelper.js +3 -7
  95. package/dist/helpers/ApiHelper.js.map +1 -1
  96. package/dist/helpers/AppearanceHelper.js +1 -5
  97. package/dist/helpers/AppearanceHelper.js.map +1 -1
  98. package/dist/helpers/ArrayHelper.js +3 -7
  99. package/dist/helpers/ArrayHelper.js.map +1 -1
  100. package/dist/helpers/CurrencyHelper.js +1 -5
  101. package/dist/helpers/CurrencyHelper.js.map +1 -1
  102. package/dist/helpers/DateHelper.js +3 -7
  103. package/dist/helpers/DateHelper.js.map +1 -1
  104. package/dist/helpers/ErrorHelper.js +3 -7
  105. package/dist/helpers/ErrorHelper.js.map +1 -1
  106. package/dist/helpers/EventHelper.js +5 -9
  107. package/dist/helpers/EventHelper.js.map +1 -1
  108. package/dist/helpers/FileHelper.js +3 -10
  109. package/dist/helpers/FileHelper.js.map +1 -1
  110. package/dist/helpers/Locale.js +11 -18
  111. package/dist/helpers/Locale.js.map +1 -1
  112. package/dist/helpers/PersonHelper.d.ts.map +1 -1
  113. package/dist/helpers/PersonHelper.js +5 -9
  114. package/dist/helpers/PersonHelper.js.map +1 -1
  115. package/dist/helpers/SlugHelper.js +4 -11
  116. package/dist/helpers/SlugHelper.js.map +1 -1
  117. package/dist/helpers/SocketHelper.d.ts +12 -0
  118. package/dist/helpers/SocketHelper.d.ts.map +1 -1
  119. package/dist/helpers/SocketHelper.js +157 -43
  120. package/dist/helpers/SocketHelper.js.map +1 -1
  121. package/dist/helpers/UniqueIdHelper.js +1 -5
  122. package/dist/helpers/UniqueIdHelper.js.map +1 -1
  123. package/dist/helpers/UserHelper.js +7 -11
  124. package/dist/helpers/UserHelper.js.map +1 -1
  125. package/dist/helpers/createEmotionCache.js +3 -9
  126. package/dist/helpers/createEmotionCache.js.map +1 -1
  127. package/dist/helpers/index.d.ts +5 -16
  128. package/dist/helpers/index.d.ts.map +1 -1
  129. package/dist/helpers/index.js +9 -54
  130. package/dist/helpers/index.js.map +1 -1
  131. package/dist/hooks/index.js +1 -5
  132. package/dist/hooks/index.js.map +1 -1
  133. package/dist/hooks/useMountedState.js +5 -9
  134. package/dist/hooks/useMountedState.js.map +1 -1
  135. package/dist/index.d.ts +0 -3
  136. package/dist/index.d.ts.map +1 -1
  137. package/dist/index.js +3 -22
  138. package/dist/index.js.map +1 -1
  139. package/package.json +6 -28
  140. package/src/components/ExportLink.tsx +12 -3
  141. package/src/components/FormCardPayment.tsx +2 -1
  142. package/src/components/ImageEditor.tsx +15 -12
  143. package/src/components/InputBox.tsx +2 -1
  144. package/src/components/Loading.tsx +47 -1
  145. package/src/components/SupportModal.tsx +8 -3
  146. package/src/components/header/PrimaryMenu.tsx +85 -42
  147. package/src/components/index.tsx +0 -5
  148. package/src/components/wrapper/AppList.tsx +1 -4
  149. package/src/components/wrapper/Notifications.tsx +2 -2
  150. package/src/components/wrapper/PrivateMessages.tsx +10 -1
  151. package/src/components/wrapper/SiteWrapper.tsx +24 -13
  152. package/src/components/wrapper/UserMenu.tsx +1 -4
  153. package/src/helpers/AnalyticsHelper.ts +1 -2
  154. package/src/helpers/Locale.ts +1 -1
  155. package/src/helpers/PersonHelper.ts +1 -2
  156. package/src/helpers/SocketHelper.ts +176 -37
  157. package/src/helpers/index.ts +44 -16
  158. package/src/index.ts +1 -4
  159. package/tsconfig.json +2 -2
  160. package/.eslintignore +0 -4
  161. package/.github/FUNDING.yml +0 -1
  162. package/.vscode/settings.json +0 -6
  163. package/CHUMS_COMPONENT_EXTRACTION_CANDIDATES.md +0 -210
  164. package/CLAUDE.md +0 -111
  165. package/COMPONENT_USAGE_REPORT.md +0 -322
  166. package/LICENSE +0 -21
  167. package/README.md +0 -24
  168. package/b1app-specific-components.md +0 -146
  169. package/component-usage-analysis.md +0 -169
  170. package/dist/components/markdownEditor/Editor.d.ts +0 -13
  171. package/dist/components/markdownEditor/Editor.d.ts.map +0 -1
  172. package/dist/components/markdownEditor/Editor.js +0 -92
  173. package/dist/components/markdownEditor/Editor.js.map +0 -1
  174. package/dist/components/markdownEditor/IconNamesList.d.ts +0 -3
  175. package/dist/components/markdownEditor/IconNamesList.d.ts.map +0 -1
  176. package/dist/components/markdownEditor/IconNamesList.js +0 -16
  177. package/dist/components/markdownEditor/IconNamesList.js.map +0 -1
  178. package/dist/components/markdownEditor/MarkdownEditor.d.ts +0 -10
  179. package/dist/components/markdownEditor/MarkdownEditor.d.ts.map +0 -1
  180. package/dist/components/markdownEditor/MarkdownEditor.js +0 -45
  181. package/dist/components/markdownEditor/MarkdownEditor.js.map +0 -1
  182. package/dist/components/markdownEditor/MarkdownModal.d.ts +0 -9
  183. package/dist/components/markdownEditor/MarkdownModal.d.ts.map +0 -1
  184. package/dist/components/markdownEditor/MarkdownModal.js +0 -24
  185. package/dist/components/markdownEditor/MarkdownModal.js.map +0 -1
  186. package/dist/components/markdownEditor/MarkdownPreview.d.ts +0 -9
  187. package/dist/components/markdownEditor/MarkdownPreview.d.ts.map +0 -1
  188. package/dist/components/markdownEditor/MarkdownPreview.js +0 -45
  189. package/dist/components/markdownEditor/MarkdownPreview.js.map +0 -1
  190. package/dist/components/markdownEditor/MarkdownPreviewLight.d.ts +0 -7
  191. package/dist/components/markdownEditor/MarkdownPreviewLight.d.ts.map +0 -1
  192. package/dist/components/markdownEditor/MarkdownPreviewLight.js +0 -53
  193. package/dist/components/markdownEditor/MarkdownPreviewLight.js.map +0 -1
  194. package/dist/components/markdownEditor/editor.css +0 -787
  195. package/dist/components/markdownEditor/images/emoji/1F600.png +0 -0
  196. package/dist/components/markdownEditor/images/emoji/1F641.png +0 -0
  197. package/dist/components/markdownEditor/images/emoji/1F642.png +0 -0
  198. package/dist/components/markdownEditor/images/emoji/2764.png +0 -0
  199. package/dist/components/markdownEditor/images/icons/arrow-clockwise.svg +0 -4
  200. package/dist/components/markdownEditor/images/icons/arrow-counterclockwise.svg +0 -4
  201. package/dist/components/markdownEditor/images/icons/chat-square-quote.svg +0 -4
  202. package/dist/components/markdownEditor/images/icons/chevron-down.svg +0 -3
  203. package/dist/components/markdownEditor/images/icons/code.svg +0 -3
  204. package/dist/components/markdownEditor/images/icons/journal-code.svg +0 -5
  205. package/dist/components/markdownEditor/images/icons/journal-text.svg +0 -5
  206. package/dist/components/markdownEditor/images/icons/justify.svg +0 -3
  207. package/dist/components/markdownEditor/images/icons/link.svg +0 -4
  208. package/dist/components/markdownEditor/images/icons/list-ol.svg +0 -4
  209. package/dist/components/markdownEditor/images/icons/list-ul.svg +0 -3
  210. package/dist/components/markdownEditor/images/icons/pencil-fill.svg +0 -3
  211. package/dist/components/markdownEditor/images/icons/text-center.svg +0 -3
  212. package/dist/components/markdownEditor/images/icons/text-left.svg +0 -3
  213. package/dist/components/markdownEditor/images/icons/text-paragraph.svg +0 -3
  214. package/dist/components/markdownEditor/images/icons/text-right.svg +0 -3
  215. package/dist/components/markdownEditor/images/icons/type-bold.svg +0 -3
  216. package/dist/components/markdownEditor/images/icons/type-h1.svg +0 -3
  217. package/dist/components/markdownEditor/images/icons/type-h2.svg +0 -3
  218. package/dist/components/markdownEditor/images/icons/type-h3.svg +0 -3
  219. package/dist/components/markdownEditor/images/icons/type-h4.svg +0 -13
  220. package/dist/components/markdownEditor/images/icons/type-italic.svg +0 -3
  221. package/dist/components/markdownEditor/images/icons/type-strikethrough.svg +0 -3
  222. package/dist/components/markdownEditor/images/icons/type-underline.svg +0 -3
  223. package/dist/components/markdownEditor/index.d.ts +0 -4
  224. package/dist/components/markdownEditor/index.d.ts.map +0 -1
  225. package/dist/components/markdownEditor/index.js +0 -10
  226. package/dist/components/markdownEditor/index.js.map +0 -1
  227. package/dist/components/markdownEditor/plugins/AutoLinkPlugin.d.ts +0 -2
  228. package/dist/components/markdownEditor/plugins/AutoLinkPlugin.d.ts.map +0 -1
  229. package/dist/components/markdownEditor/plugins/AutoLinkPlugin.js +0 -31
  230. package/dist/components/markdownEditor/plugins/AutoLinkPlugin.js.map +0 -1
  231. package/dist/components/markdownEditor/plugins/ControlledEditorPlugin.d.ts +0 -8
  232. package/dist/components/markdownEditor/plugins/ControlledEditorPlugin.d.ts.map +0 -1
  233. package/dist/components/markdownEditor/plugins/ControlledEditorPlugin.js +0 -19
  234. package/dist/components/markdownEditor/plugins/ControlledEditorPlugin.js.map +0 -1
  235. package/dist/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.d.ts +0 -6
  236. package/dist/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.d.ts.map +0 -1
  237. package/dist/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.js +0 -310
  238. package/dist/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.js.map +0 -1
  239. package/dist/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.d.ts +0 -2
  240. package/dist/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.d.ts.map +0 -1
  241. package/dist/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.js +0 -19
  242. package/dist/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.js.map +0 -1
  243. package/dist/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.d.ts +0 -2
  244. package/dist/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.d.ts.map +0 -1
  245. package/dist/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.js +0 -21
  246. package/dist/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.js.map +0 -1
  247. package/dist/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.d.ts +0 -2
  248. package/dist/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.d.ts.map +0 -1
  249. package/dist/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.js +0 -29
  250. package/dist/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.js.map +0 -1
  251. package/dist/components/markdownEditor/plugins/ListMaxIndentLevelPlugin.d.ts +0 -2
  252. package/dist/components/markdownEditor/plugins/ListMaxIndentLevelPlugin.d.ts.map +0 -1
  253. package/dist/components/markdownEditor/plugins/ListMaxIndentLevelPlugin.js +0 -45
  254. package/dist/components/markdownEditor/plugins/ListMaxIndentLevelPlugin.js.map +0 -1
  255. package/dist/components/markdownEditor/plugins/MarkdownTransformers.d.ts +0 -12
  256. package/dist/components/markdownEditor/plugins/MarkdownTransformers.d.ts.map +0 -1
  257. package/dist/components/markdownEditor/plugins/MarkdownTransformers.js +0 -85
  258. package/dist/components/markdownEditor/plugins/MarkdownTransformers.js.map +0 -1
  259. package/dist/components/markdownEditor/plugins/ReadOnlyPlugin.d.ts +0 -6
  260. package/dist/components/markdownEditor/plugins/ReadOnlyPlugin.d.ts.map +0 -1
  261. package/dist/components/markdownEditor/plugins/ReadOnlyPlugin.js +0 -12
  262. package/dist/components/markdownEditor/plugins/ReadOnlyPlugin.js.map +0 -1
  263. package/dist/components/markdownEditor/plugins/ToolbarPlugin.d.ts +0 -7
  264. package/dist/components/markdownEditor/plugins/ToolbarPlugin.d.ts.map +0 -1
  265. package/dist/components/markdownEditor/plugins/ToolbarPlugin.js +0 -282
  266. package/dist/components/markdownEditor/plugins/ToolbarPlugin.js.map +0 -1
  267. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNode.d.ts +0 -27
  268. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNode.d.ts.map +0 -1
  269. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNode.js +0 -158
  270. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNode.js.map +0 -1
  271. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNodePlugin.d.ts +0 -4
  272. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNodePlugin.d.ts.map +0 -1
  273. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNodePlugin.js +0 -21
  274. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNodePlugin.js.map +0 -1
  275. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNodeTransformer.d.ts +0 -3
  276. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNodeTransformer.d.ts.map +0 -1
  277. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNodeTransformer.js +0 -71
  278. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNodeTransformer.js.map +0 -1
  279. package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.d.ts +0 -5
  280. package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.d.ts.map +0 -1
  281. package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.js +0 -190
  282. package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.js.map +0 -1
  283. package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.types.d.ts +0 -11
  284. package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.types.d.ts.map +0 -1
  285. package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.types.js +0 -3
  286. package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.types.js.map +0 -1
  287. package/dist/components/markdownEditor/plugins/emoji/EmojiNode.d.ts +0 -24
  288. package/dist/components/markdownEditor/plugins/emoji/EmojiNode.d.ts.map +0 -1
  289. package/dist/components/markdownEditor/plugins/emoji/EmojiNode.js +0 -66
  290. package/dist/components/markdownEditor/plugins/emoji/EmojiNode.js.map +0 -1
  291. package/dist/components/markdownEditor/plugins/emoji/EmojiNodeTransform.d.ts +0 -4
  292. package/dist/components/markdownEditor/plugins/emoji/EmojiNodeTransform.d.ts.map +0 -1
  293. package/dist/components/markdownEditor/plugins/emoji/EmojiNodeTransform.js +0 -35
  294. package/dist/components/markdownEditor/plugins/emoji/EmojiNodeTransform.js.map +0 -1
  295. package/dist/components/markdownEditor/plugins/emoji/EmojiPickerPlugin.d.ts +0 -9
  296. package/dist/components/markdownEditor/plugins/emoji/EmojiPickerPlugin.d.ts.map +0 -1
  297. package/dist/components/markdownEditor/plugins/emoji/EmojiPickerPlugin.js +0 -103
  298. package/dist/components/markdownEditor/plugins/emoji/EmojiPickerPlugin.js.map +0 -1
  299. package/dist/components/markdownEditor/plugins/emoji/EmojisPlugin.d.ts +0 -10
  300. package/dist/components/markdownEditor/plugins/emoji/EmojisPlugin.d.ts.map +0 -1
  301. package/dist/components/markdownEditor/plugins/emoji/EmojisPlugin.js +0 -59
  302. package/dist/components/markdownEditor/plugins/emoji/EmojisPlugin.js.map +0 -1
  303. package/dist/components/markdownEditor/plugins/index.d.ts +0 -7
  304. package/dist/components/markdownEditor/plugins/index.d.ts.map +0 -1
  305. package/dist/components/markdownEditor/plugins/index.js +0 -16
  306. package/dist/components/markdownEditor/plugins/index.js.map +0 -1
  307. package/dist/components/markdownEditor/theme.d.ts +0 -66
  308. package/dist/components/markdownEditor/theme.d.ts.map +0 -1
  309. package/dist/components/markdownEditor/theme.js +0 -69
  310. package/dist/components/markdownEditor/theme.js.map +0 -1
  311. package/dist/components/reporting/ChartReport.d.ts +0 -8
  312. package/dist/components/reporting/ChartReport.d.ts.map +0 -1
  313. package/dist/components/reporting/ChartReport.js +0 -81
  314. package/dist/components/reporting/ChartReport.js.map +0 -1
  315. package/dist/components/reporting/ReportFilter.d.ts +0 -9
  316. package/dist/components/reporting/ReportFilter.d.ts.map +0 -1
  317. package/dist/components/reporting/ReportFilter.js +0 -52
  318. package/dist/components/reporting/ReportFilter.js.map +0 -1
  319. package/dist/components/reporting/ReportFilterField.d.ts +0 -9
  320. package/dist/components/reporting/ReportFilterField.d.ts.map +0 -1
  321. package/dist/components/reporting/ReportFilterField.js +0 -156
  322. package/dist/components/reporting/ReportFilterField.js.map +0 -1
  323. package/dist/components/reporting/ReportOutput.d.ts +0 -8
  324. package/dist/components/reporting/ReportOutput.d.ts.map +0 -1
  325. package/dist/components/reporting/ReportOutput.js +0 -177
  326. package/dist/components/reporting/ReportOutput.js.map +0 -1
  327. package/dist/components/reporting/ReportWithFilter.d.ts +0 -7
  328. package/dist/components/reporting/ReportWithFilter.d.ts.map +0 -1
  329. package/dist/components/reporting/ReportWithFilter.js +0 -65
  330. package/dist/components/reporting/ReportWithFilter.js.map +0 -1
  331. package/dist/components/reporting/TableReport.d.ts +0 -8
  332. package/dist/components/reporting/TableReport.d.ts.map +0 -1
  333. package/dist/components/reporting/TableReport.js +0 -30
  334. package/dist/components/reporting/TableReport.js.map +0 -1
  335. package/dist/components/reporting/TreeReport.d.ts +0 -8
  336. package/dist/components/reporting/TreeReport.d.ts.map +0 -1
  337. package/dist/components/reporting/TreeReport.js +0 -89
  338. package/dist/components/reporting/TreeReport.js.map +0 -1
  339. package/dist/components/reporting/index.d.ts +0 -5
  340. package/dist/components/reporting/index.d.ts.map +0 -1
  341. package/dist/components/reporting/index.js +0 -12
  342. package/dist/components/reporting/index.js.map +0 -1
  343. package/dist/donationComponents/components/BankForm.d.ts +0 -14
  344. package/dist/donationComponents/components/BankForm.d.ts.map +0 -1
  345. package/dist/donationComponents/components/BankForm.js +0 -126
  346. package/dist/donationComponents/components/BankForm.js.map +0 -1
  347. package/dist/donationComponents/components/CardForm.d.ts +0 -13
  348. package/dist/donationComponents/components/CardForm.d.ts.map +0 -1
  349. package/dist/donationComponents/components/CardForm.js +0 -122
  350. package/dist/donationComponents/components/CardForm.js.map +0 -1
  351. package/dist/donationComponents/components/DonationForm.d.ts +0 -15
  352. package/dist/donationComponents/components/DonationForm.d.ts.map +0 -1
  353. package/dist/donationComponents/components/DonationForm.js +0 -199
  354. package/dist/donationComponents/components/DonationForm.js.map +0 -1
  355. package/dist/donationComponents/components/FundDonation.d.ts +0 -12
  356. package/dist/donationComponents/components/FundDonation.d.ts.map +0 -1
  357. package/dist/donationComponents/components/FundDonation.js +0 -32
  358. package/dist/donationComponents/components/FundDonation.js.map +0 -1
  359. package/dist/donationComponents/components/FundDonations.d.ts +0 -11
  360. package/dist/donationComponents/components/FundDonations.d.ts.map +0 -1
  361. package/dist/donationComponents/components/FundDonations.js +0 -33
  362. package/dist/donationComponents/components/FundDonations.js.map +0 -1
  363. package/dist/donationComponents/components/PaymentMethods.d.ts +0 -14
  364. package/dist/donationComponents/components/PaymentMethods.d.ts.map +0 -1
  365. package/dist/donationComponents/components/PaymentMethods.js +0 -84
  366. package/dist/donationComponents/components/PaymentMethods.js.map +0 -1
  367. package/dist/donationComponents/components/RecurringDonations.d.ts +0 -10
  368. package/dist/donationComponents/components/RecurringDonations.d.ts.map +0 -1
  369. package/dist/donationComponents/components/RecurringDonations.js +0 -93
  370. package/dist/donationComponents/components/RecurringDonations.js.map +0 -1
  371. package/dist/donationComponents/components/RecurringDonationsEdit.d.ts +0 -11
  372. package/dist/donationComponents/components/RecurringDonationsEdit.d.ts.map +0 -1
  373. package/dist/donationComponents/components/RecurringDonationsEdit.js +0 -66
  374. package/dist/donationComponents/components/RecurringDonationsEdit.js.map +0 -1
  375. package/dist/donationComponents/components/index.d.ts +0 -9
  376. package/dist/donationComponents/components/index.d.ts.map +0 -1
  377. package/dist/donationComponents/components/index.js +0 -20
  378. package/dist/donationComponents/components/index.js.map +0 -1
  379. package/dist/donationComponents/index.d.ts +0 -3
  380. package/dist/donationComponents/index.d.ts.map +0 -1
  381. package/dist/donationComponents/index.js +0 -21
  382. package/dist/donationComponents/index.js.map +0 -1
  383. package/dist/donationComponents/modals/DonationPreviewModal.d.ts +0 -15
  384. package/dist/donationComponents/modals/DonationPreviewModal.d.ts.map +0 -1
  385. package/dist/donationComponents/modals/DonationPreviewModal.js +0 -33
  386. package/dist/donationComponents/modals/DonationPreviewModal.js.map +0 -1
  387. package/dist/helpers/CommonEnvironmentHelper.d.ts +0 -21
  388. package/dist/helpers/CommonEnvironmentHelper.d.ts.map +0 -1
  389. package/dist/helpers/CommonEnvironmentHelper.js +0 -100
  390. package/dist/helpers/CommonEnvironmentHelper.js.map +0 -1
  391. package/dist/helpers/DonationHelper.d.ts +0 -8
  392. package/dist/helpers/DonationHelper.d.ts.map +0 -1
  393. package/dist/helpers/DonationHelper.js +0 -33
  394. package/dist/helpers/DonationHelper.js.map +0 -1
  395. package/dist/helpers/ReportHelper.d.ts +0 -5
  396. package/dist/helpers/ReportHelper.d.ts.map +0 -1
  397. package/dist/helpers/ReportHelper.js +0 -37
  398. package/dist/helpers/ReportHelper.js.map +0 -1
  399. package/dist/pageComponents/LoginPage.d.ts +0 -25
  400. package/dist/pageComponents/LoginPage.d.ts.map +0 -1
  401. package/dist/pageComponents/LoginPage.js +0 -288
  402. package/dist/pageComponents/LoginPage.js.map +0 -1
  403. package/dist/pageComponents/LogoutPage.d.ts +0 -9
  404. package/dist/pageComponents/LogoutPage.d.ts.map +0 -1
  405. package/dist/pageComponents/LogoutPage.js +0 -37
  406. package/dist/pageComponents/LogoutPage.js.map +0 -1
  407. package/dist/pageComponents/components/Forgot.d.ts +0 -8
  408. package/dist/pageComponents/components/Forgot.d.ts.map +0 -1
  409. package/dist/pageComponents/components/Forgot.js +0 -53
  410. package/dist/pageComponents/components/Forgot.js.map +0 -1
  411. package/dist/pageComponents/components/Login.d.ts +0 -15
  412. package/dist/pageComponents/components/Login.d.ts.map +0 -1
  413. package/dist/pageComponents/components/Login.js +0 -73
  414. package/dist/pageComponents/components/Login.js.map +0 -1
  415. package/dist/pageComponents/components/LoginSetPassword.d.ts +0 -13
  416. package/dist/pageComponents/components/LoginSetPassword.d.ts.map +0 -1
  417. package/dist/pageComponents/components/LoginSetPassword.js +0 -112
  418. package/dist/pageComponents/components/LoginSetPassword.js.map +0 -1
  419. package/dist/pageComponents/components/Register.d.ts +0 -12
  420. package/dist/pageComponents/components/Register.d.ts.map +0 -1
  421. package/dist/pageComponents/components/Register.js +0 -95
  422. package/dist/pageComponents/components/Register.js.map +0 -1
  423. package/dist/pageComponents/components/SelectChurchModal.d.ts +0 -14
  424. package/dist/pageComponents/components/SelectChurchModal.d.ts.map +0 -1
  425. package/dist/pageComponents/components/SelectChurchModal.js +0 -37
  426. package/dist/pageComponents/components/SelectChurchModal.js.map +0 -1
  427. package/dist/pageComponents/components/SelectChurchRegister.d.ts +0 -11
  428. package/dist/pageComponents/components/SelectChurchRegister.d.ts.map +0 -1
  429. package/dist/pageComponents/components/SelectChurchRegister.js +0 -89
  430. package/dist/pageComponents/components/SelectChurchRegister.js.map +0 -1
  431. package/dist/pageComponents/components/SelectChurchSearch.d.ts +0 -10
  432. package/dist/pageComponents/components/SelectChurchSearch.d.ts.map +0 -1
  433. package/dist/pageComponents/components/SelectChurchSearch.js +0 -58
  434. package/dist/pageComponents/components/SelectChurchSearch.js.map +0 -1
  435. package/dist/pageComponents/components/SelectableChurch.d.ts +0 -9
  436. package/dist/pageComponents/components/SelectableChurch.d.ts.map +0 -1
  437. package/dist/pageComponents/components/SelectableChurch.js +0 -18
  438. package/dist/pageComponents/components/SelectableChurch.js.map +0 -1
  439. package/dist/pageComponents/index.d.ts +0 -4
  440. package/dist/pageComponents/index.d.ts.map +0 -1
  441. package/dist/pageComponents/index.js +0 -10
  442. package/dist/pageComponents/index.js.map +0 -1
  443. package/src/components/markdownEditor/Editor.tsx +0 -150
  444. package/src/components/markdownEditor/IconNamesList.ts +0 -14
  445. package/src/components/markdownEditor/MarkdownEditor.tsx +0 -18
  446. package/src/components/markdownEditor/MarkdownModal.tsx +0 -49
  447. package/src/components/markdownEditor/MarkdownPreview.tsx +0 -18
  448. package/src/components/markdownEditor/MarkdownPreviewLight.tsx +0 -53
  449. package/src/components/markdownEditor/editor.css +0 -787
  450. package/src/components/markdownEditor/images/emoji/1F600.png +0 -0
  451. package/src/components/markdownEditor/images/emoji/1F641.png +0 -0
  452. package/src/components/markdownEditor/images/emoji/1F642.png +0 -0
  453. package/src/components/markdownEditor/images/emoji/2764.png +0 -0
  454. package/src/components/markdownEditor/images/icons/arrow-clockwise.svg +0 -4
  455. package/src/components/markdownEditor/images/icons/arrow-counterclockwise.svg +0 -4
  456. package/src/components/markdownEditor/images/icons/chat-square-quote.svg +0 -4
  457. package/src/components/markdownEditor/images/icons/chevron-down.svg +0 -3
  458. package/src/components/markdownEditor/images/icons/code.svg +0 -3
  459. package/src/components/markdownEditor/images/icons/journal-code.svg +0 -5
  460. package/src/components/markdownEditor/images/icons/journal-text.svg +0 -5
  461. package/src/components/markdownEditor/images/icons/justify.svg +0 -3
  462. package/src/components/markdownEditor/images/icons/link.svg +0 -4
  463. package/src/components/markdownEditor/images/icons/list-ol.svg +0 -4
  464. package/src/components/markdownEditor/images/icons/list-ul.svg +0 -3
  465. package/src/components/markdownEditor/images/icons/pencil-fill.svg +0 -3
  466. package/src/components/markdownEditor/images/icons/text-center.svg +0 -3
  467. package/src/components/markdownEditor/images/icons/text-left.svg +0 -3
  468. package/src/components/markdownEditor/images/icons/text-paragraph.svg +0 -3
  469. package/src/components/markdownEditor/images/icons/text-right.svg +0 -3
  470. package/src/components/markdownEditor/images/icons/type-bold.svg +0 -3
  471. package/src/components/markdownEditor/images/icons/type-h1.svg +0 -3
  472. package/src/components/markdownEditor/images/icons/type-h2.svg +0 -3
  473. package/src/components/markdownEditor/images/icons/type-h3.svg +0 -3
  474. package/src/components/markdownEditor/images/icons/type-h4.svg +0 -13
  475. package/src/components/markdownEditor/images/icons/type-italic.svg +0 -3
  476. package/src/components/markdownEditor/images/icons/type-strikethrough.svg +0 -3
  477. package/src/components/markdownEditor/images/icons/type-underline.svg +0 -3
  478. package/src/components/markdownEditor/index.ts +0 -3
  479. package/src/components/markdownEditor/plugins/AutoLinkPlugin.tsx +0 -35
  480. package/src/components/markdownEditor/plugins/ControlledEditorPlugin.tsx +0 -24
  481. package/src/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.tsx +0 -445
  482. package/src/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.tsx +0 -17
  483. package/src/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.tsx +0 -17
  484. package/src/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.tsx +0 -33
  485. package/src/components/markdownEditor/plugins/ListMaxIndentLevelPlugin.tsx +0 -68
  486. package/src/components/markdownEditor/plugins/MarkdownTransformers.ts +0 -106
  487. package/src/components/markdownEditor/plugins/ReadOnlyPlugin.tsx +0 -15
  488. package/src/components/markdownEditor/plugins/ToolbarPlugin.tsx +0 -424
  489. package/src/components/markdownEditor/plugins/customLink/CustomLinkNode.tsx +0 -224
  490. package/src/components/markdownEditor/plugins/customLink/CustomLinkNodePlugin.tsx +0 -32
  491. package/src/components/markdownEditor/plugins/customLink/CustomLinkNodeTransformer.tsx +0 -102
  492. package/src/components/markdownEditor/plugins/customLink/FloatingLinkEditor.tsx +0 -270
  493. package/src/components/markdownEditor/plugins/customLink/FloatingLinkEditor.types.ts +0 -11
  494. package/src/components/markdownEditor/plugins/emoji/EmojiNode.tsx +0 -95
  495. package/src/components/markdownEditor/plugins/emoji/EmojiNodeTransform.ts +0 -41
  496. package/src/components/markdownEditor/plugins/emoji/EmojiPickerPlugin.tsx +0 -152
  497. package/src/components/markdownEditor/plugins/emoji/EmojisPlugin.tsx +0 -70
  498. package/src/components/markdownEditor/plugins/index.ts +0 -6
  499. package/src/components/markdownEditor/theme.ts +0 -65
  500. package/src/components/reporting/ChartReport.tsx +0 -89
  501. package/src/components/reporting/ReportFilter.tsx +0 -56
  502. package/src/components/reporting/ReportFilterField.tsx +0 -163
  503. package/src/components/reporting/ReportOutput.tsx +0 -168
  504. package/src/components/reporting/ReportWithFilter.tsx +0 -72
  505. package/src/components/reporting/TableReport.tsx +0 -44
  506. package/src/components/reporting/TreeReport.tsx +0 -103
  507. package/src/components/reporting/index.ts +0 -4
  508. package/src/donationComponents/components/BankForm.tsx +0 -163
  509. package/src/donationComponents/components/CardForm.tsx +0 -104
  510. package/src/donationComponents/components/DonationForm.tsx +0 -260
  511. package/src/donationComponents/components/FundDonation.tsx +0 -59
  512. package/src/donationComponents/components/FundDonations.tsx +0 -44
  513. package/src/donationComponents/components/PaymentMethods.tsx +0 -133
  514. package/src/donationComponents/components/RecurringDonations.tsx +0 -117
  515. package/src/donationComponents/components/RecurringDonationsEdit.tsx +0 -96
  516. package/src/donationComponents/components/index.tsx +0 -8
  517. package/src/donationComponents/index.ts +0 -2
  518. package/src/donationComponents/modals/DonationPreviewModal.tsx +0 -70
  519. package/src/helpers/CommonEnvironmentHelper.ts +0 -98
  520. package/src/helpers/DonationHelper.ts +0 -26
  521. package/src/helpers/ReportHelper.ts +0 -34
  522. package/src/pageComponents/LoginPage.tsx +0 -284
  523. package/src/pageComponents/LogoutPage.tsx +0 -43
  524. package/src/pageComponents/components/Forgot.tsx +0 -81
  525. package/src/pageComponents/components/Login.tsx +0 -62
  526. package/src/pageComponents/components/LoginSetPassword.tsx +0 -98
  527. package/src/pageComponents/components/Register.tsx +0 -103
  528. package/src/pageComponents/components/SelectChurchModal.tsx +0 -58
  529. package/src/pageComponents/components/SelectChurchRegister.tsx +0 -87
  530. package/src/pageComponents/components/SelectChurchSearch.tsx +0 -71
  531. package/src/pageComponents/components/SelectableChurch.tsx +0 -40
  532. package/src/pageComponents/index.ts +0 -3
@@ -1,260 +0,0 @@
1
- "use client";
2
-
3
-
4
- import React from "react";
5
- import type { Stripe } from "@stripe/stripe-js";
6
- import { InputBox, ErrorMessages } from "../../components";
7
- import { FundDonations } from ".";
8
- import { DonationPreviewModal } from "../modals/DonationPreviewModal";
9
- import { ApiHelper, CurrencyHelper, DateHelper, Locale } from "../../helpers";
10
- import { PersonInterface, StripePaymentMethod, StripeDonationInterface, FundDonationInterface, FundInterface, ChurchInterface } from "@churchapps/helpers";
11
- import {
12
- Grid, InputLabel, MenuItem, Select, TextField, FormControl, Button, FormControlLabel, Checkbox, FormGroup, Typography
13
- } from "@mui/material";
14
- import type { SelectChangeEvent } from "@mui/material";
15
- import { DonationHelper } from "../../helpers";
16
-
17
- interface Props { person: PersonInterface, customerId: string, paymentMethods: StripePaymentMethod[], stripePromise: Promise<Stripe>, donationSuccess: (message: string) => void, church?: ChurchInterface, churchLogo?: string }
18
-
19
- export const DonationForm: React.FC<Props> = (props) => {
20
- const [errorMessage, setErrorMessage] = React.useState<string>();
21
- const [fundDonations, setFundDonations] = React.useState<FundDonationInterface[]>();
22
- const [funds, setFunds] = React.useState<FundInterface[]>([]);
23
- const [fundsTotal, setFundsTotal] = React.useState<number>(0);
24
- const [transactionFee, setTransactionFee] = React.useState<number>(0);
25
- const [payFee, setPayFee] = React.useState<number>(0);
26
- const [total, setTotal] = React.useState<number>(0);
27
- const [paymentMethodName, setPaymentMethodName] = React.useState<string>(`${props?.paymentMethods[0]?.name} ****${props?.paymentMethods[0]?.last4}`);
28
- const [donationType, setDonationType] = React.useState<string>();
29
- const [showDonationPreviewModal, setShowDonationPreviewModal] = React.useState<boolean>(false);
30
- const [interval, setInterval] = React.useState("one_month");
31
- const [gateway, setGateway] = React.useState(null);
32
- const [donation, setDonation] = React.useState<StripeDonationInterface>({
33
- id: props?.paymentMethods[0]?.id,
34
- type: props?.paymentMethods[0]?.type,
35
- customerId: props.customerId,
36
- person: {
37
- id: props.person?.id,
38
- email: props.person?.contactInfo.email,
39
- name: props.person?.name.display
40
- },
41
- amount: 0,
42
- billing_cycle_anchor: + new Date(),
43
- interval: {
44
- interval_count: 1,
45
- interval: "month"
46
- },
47
- funds: []
48
- });
49
-
50
- const loadData = () => {
51
- ApiHelper.get("/funds", "GivingApi").then(data => {
52
- setFunds(data);
53
- if (data.length) setFundDonations([{ fundId: data[0].id }]);
54
- });
55
- ApiHelper.get("/gateways", "GivingApi").then((data) => {
56
- if (data.length !== 0) setGateway(data[0]);
57
- });
58
- };
59
-
60
- const handleKeyDown = (e: React.KeyboardEvent<any>) => { if (e.key === "Enter") { e.preventDefault(); handleSave(); } };
61
-
62
- const handleCheckChange = (e: React.SyntheticEvent<Element, Event>, checked: boolean) => {
63
- const d = { ...donation } as StripeDonationInterface;
64
- d.amount = checked ? fundsTotal + transactionFee : fundsTotal;
65
- const showFee = checked ? transactionFee : 0;
66
- setTotal(d.amount);
67
- setPayFee(showFee);
68
- setDonation(d);
69
- };
70
-
71
- const handleAutoPayFee = () => {
72
- const d = { ...donation } as StripeDonationInterface;
73
- d.amount = fundsTotal + transactionFee;
74
- const showFee = transactionFee;
75
- setTotal(d.amount);
76
- setPayFee(showFee);
77
- setDonation(d);
78
- };
79
-
80
- const handleChange = (e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement> | SelectChangeEvent<string>) => {
81
- setErrorMessage(null);
82
- const d = { ...donation } as StripeDonationInterface;
83
- const value = e.target.value;
84
- switch (e.target.name) {
85
- case "method":
86
- d.id = value;
87
- const pm = props.paymentMethods.find(pm => pm.id === value);
88
- d.type = pm.type;
89
- setPaymentMethodName(`${pm.name} ****${pm.last4}`);
90
- break;
91
- case "type": setDonationType(value); break;
92
- case "date": d.billing_cycle_anchor = + new Date(value); break;
93
- case "interval":
94
- setInterval(value);
95
- d.interval = DonationHelper.getInterval(value);
96
- break;
97
- case "notes": d.notes = value; break;
98
- case "transaction-fee":
99
- const element = e.target as HTMLInputElement;
100
- d.amount = element.checked ? fundsTotal + transactionFee : fundsTotal;
101
- const showFee = element.checked ? transactionFee : 0;
102
- setTotal(d.amount);
103
- setPayFee(showFee);
104
- }
105
- setDonation(d);
106
- };
107
-
108
- const handleCancel = () => { setDonationType(null); };
109
- const handleSave = () => {
110
- if (donation.amount < .5) setErrorMessage(Locale.label("donation.donationForm.tooLow"));
111
- else setShowDonationPreviewModal(true);
112
- };
113
- const handleDonationSelect = (type: string) => {
114
- const dt = donationType === type ? null : type;
115
- setDonationType(dt);
116
- };
117
-
118
- const makeDonation = async (message: string) => {
119
- let results;
120
-
121
- const churchObj = {
122
- name: props?.church?.name,
123
- subDomain: props?.church?.subDomain,
124
- churchURL: typeof window !== "undefined" && window.location.origin,
125
- logo: props?.churchLogo
126
- };
127
-
128
- if (donationType === "once") results = await ApiHelper.post("/donate/charge/", { ...donation, church: churchObj }, "GivingApi");
129
- if (donationType === "recurring") results = await ApiHelper.post("/donate/subscribe/", { ...donation, church: churchObj }, "GivingApi");
130
-
131
- if (results?.status === "succeeded" || results?.status === "pending" || results?.status === "active") {
132
- setShowDonationPreviewModal(false);
133
- setDonationType(null);
134
- props.donationSuccess(message);
135
- }
136
- if (results?.raw?.message) {
137
- setShowDonationPreviewModal(false);
138
- setErrorMessage(Locale.label("donation.common.error") + ": " + results?.raw?.message);
139
- }
140
- };
141
-
142
- const handleFundDonationsChange = async (fd: FundDonationInterface[]) => {
143
- setErrorMessage(null);
144
- setFundDonations(fd);
145
- let totalAmount = 0;
146
- const selectedFunds: any = [];
147
- for (const fundDonation of fd) {
148
- totalAmount += fundDonation.amount || 0;
149
- const fund = funds.find((fund: FundInterface) => fund.id === fundDonation.fundId);
150
- selectedFunds.push({ id: fundDonation.fundId, amount: fundDonation.amount || 0, name: fund.name });
151
- }
152
- const d = { ...donation };
153
- d.amount = totalAmount;
154
- d.funds = selectedFunds;
155
- setFundsTotal(totalAmount);
156
-
157
- const fee = await getTransactionFee(totalAmount);
158
- setTransactionFee(fee);
159
-
160
- if (gateway && gateway.payFees === true) {
161
- d.amount = totalAmount + fee;
162
- setPayFee(fee);
163
- }
164
- setTotal(d.amount);
165
- setDonation(d);
166
- };
167
-
168
- const getTransactionFee = async (amount: number) => {
169
- if (amount > 0) {
170
- let dt: string = "";
171
- if (donation.type === "card") dt = "creditCard";
172
- if (donation.type === "bank") dt = "ach";
173
- try {
174
- const response = await ApiHelper.post("/donate/fee?churchId=" + props?.church?.id, { type: dt, amount }, "GivingApi");
175
- return response.calculatedFee;
176
- } catch (error) {
177
- console.log("Error calculating transaction fee: ", error);
178
- return 0;
179
- }
180
- } else {
181
- return 0;
182
- }
183
- };
184
-
185
- React.useEffect(loadData, [props.person?.id]);
186
-
187
- // React.useEffect(() => { gateway && gateway.payFees === true && handleAutoPayFee() }, [fundDonations]);
188
-
189
- if (!funds.length || !props?.paymentMethods[0]?.id) return null;
190
- else {
191
- return (
192
- <>
193
- <DonationPreviewModal show={showDonationPreviewModal} onHide={() => setShowDonationPreviewModal(false)} handleDonate={makeDonation} donation={donation} donationType={donationType} payFee={payFee} paymentMethodName={paymentMethodName} funds={funds} />
194
- <InputBox id="donationBox" aria-label="donation-box" headerIcon="volunteer_activism" headerText={Locale.label("donation.donationForm.donate")} ariaLabelSave="save-button" cancelFunction={donationType ? handleCancel : undefined} saveFunction={donationType ? handleSave : undefined} saveText={Locale.label("donation.donationForm.preview")}>
195
- <Grid container spacing={3}>
196
- <Grid size={{ xs: 12, md: 6 }}>
197
- <Button aria-label="single-donation" size="small" fullWidth style={{ minHeight: "50px" }} variant={donationType === "once" ? "contained" : "outlined"} onClick={() => handleDonationSelect("once")}>{Locale.label("donation.donationForm.make")}</Button>
198
- </Grid>
199
- <Grid size={{ xs: 12, md: 6 }}>
200
- <Button aria-label="recurring-donation" size="small" fullWidth style={{ minHeight: "50px" }} variant={donationType === "recurring" ? "contained" : "outlined"} onClick={() => handleDonationSelect("recurring")}>{Locale.label("donation.donationForm.makeRecurring")}</Button>
201
- </Grid>
202
- </Grid>
203
- {donationType
204
- && <div style={{ marginTop: "20px" }}>
205
- <Grid container spacing={3}>
206
- <Grid size={12}>
207
- <FormControl fullWidth>
208
- <InputLabel>{Locale.label("donation.donationForm.method")}</InputLabel>
209
- <Select label={Locale.label("donation.donationForm.method")} name="method" aria-label="method" value={donation.id} className="capitalize" onChange={handleChange}>
210
- {props.paymentMethods.map((paymentMethod: any, i: number) => <MenuItem key={i} value={paymentMethod.id}>{paymentMethod.name} ****{paymentMethod.last4}</MenuItem>)}
211
- </Select>
212
- </FormControl>
213
- </Grid>
214
- </Grid>
215
- {donationType === "recurring"
216
- && <Grid container spacing={3} style={{ marginTop:10 }}>
217
- <Grid size={{ xs: 12, md: 6 }}>
218
- <TextField fullWidth name="date" type="date" aria-label="date" label={Locale.label("donation.donationForm.startDate")} value={DateHelper.formatHtml5Date(new Date(donation.billing_cycle_anchor))} onChange={handleChange} onKeyDown={handleKeyDown} />
219
- </Grid>
220
- <Grid size={{ xs: 12, md: 6 }}>
221
- <FormControl fullWidth>
222
- <InputLabel>{Locale.label("donation.donationForm.frequency")}</InputLabel>
223
- <Select label={Locale.label("donation.donationForm.frequency")} name="interval" aria-label="interval" value={interval} onChange={handleChange}>
224
- <MenuItem value="one_week">{Locale.label("donation.donationForm.weekly")}</MenuItem>
225
- <MenuItem value="two_week">{Locale.label("donation.donationForm.biWeekly")}</MenuItem>
226
- <MenuItem value="one_month">{Locale.label("donation.donationForm.monthly")}</MenuItem>
227
- <MenuItem value="three_month">{Locale.label("donation.donationForm.quarterly")}</MenuItem>
228
- <MenuItem value="one_year">{Locale.label("donation.donationForm.annually")}</MenuItem>
229
- </Select>
230
- </FormControl>
231
- </Grid>
232
- </Grid>
233
- }
234
- <div className="form-group">
235
- {funds && fundDonations
236
- && <>
237
- <h4>{Locale.label("donation.donationForm.fund")}</h4>
238
- <FundDonations fundDonations={fundDonations} funds={funds} updatedFunction={handleFundDonationsChange} />
239
- </>
240
- }
241
- {fundsTotal > 0
242
- && <>
243
- {(gateway && gateway.payFees === true) ? <Typography fontSize={14} fontStyle="italic">*{Locale.label("donation.donationForm.fees").replace("{}", CurrencyHelper.formatCurrency(transactionFee))}</Typography> : (
244
- <FormGroup>
245
- <FormControlLabel control={<Checkbox />} name="transaction-fee" label={Locale.label("donation.donationForm.cover").replace("{}", CurrencyHelper.formatCurrency(transactionFee))} onChange={handleCheckChange} />
246
- </FormGroup>
247
- )}
248
- <p>{Locale.label("donation.donationForm.total")}: ${total}</p>
249
- </>
250
- }
251
- <TextField fullWidth label={Locale.label("donation.donationForm.notes")} multiline aria-label="note" name="notes" value={donation.notes || ""} onChange={handleChange} onKeyDown={handleKeyDown} />
252
- </div>
253
- {errorMessage && <ErrorMessages errors={[errorMessage]}></ErrorMessages>}
254
- </div>
255
- }
256
- </InputBox>
257
- </>
258
- );
259
- }
260
- };
@@ -1,59 +0,0 @@
1
- "use client";
2
-
3
- import React from "react";
4
- import { FundDonationInterface, FundInterface } from "@churchapps/helpers";
5
- import { FormControl, Grid, InputLabel, MenuItem, Select, TextField } from "@mui/material";
6
- import type { SelectChangeEvent } from "@mui/material";
7
- import { Locale } from "../../helpers";
8
-
9
- interface Props {
10
- fundDonation: FundDonationInterface,
11
- funds: FundInterface[],
12
- index: number,
13
- updatedFunction: (fundDonation: FundDonationInterface, index: number) => void,
14
- params?: any,
15
- }
16
-
17
- export const FundDonation: React.FC<Props> = (props) => {
18
-
19
- const getOptions = () => {
20
- const result = [];
21
- for (let i = 0; i < props.funds.length; i++) {
22
- const getDisabled = (props?.params?.fundId && props.params.fundId !== "") ? props.params.fundId !== props.funds[i].id : false;
23
- result.push(<MenuItem key={i} value={props.funds[i].id} disabled={getDisabled}>{props.funds[i].name}</MenuItem>);
24
- }
25
- return result;
26
- };
27
-
28
- const handleChange = (e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement> | SelectChangeEvent<string>) => {
29
- const fd = { ...props.fundDonation };
30
- switch (e.target.name) {
31
- case "amount":
32
- fd.amount = parseFloat(e.target.value.replace("$", "").replace(",", ""));
33
- break;
34
- case "fund":
35
- fd.fundId = e.target.value;
36
- break;
37
- }
38
- props.updatedFunction(fd, props.index);
39
- };
40
-
41
- return (
42
- <>
43
- <Grid container spacing={3}>
44
- <Grid size={{ xs: 12, md: 6 }}>
45
- <TextField fullWidth name="amount" label={Locale.label("donation.fundDonations.amount")} type="number" disabled={props.params?.amount && props.params.amount !== ""} aria-label="amount" lang="en-150" value={props.fundDonation.amount || ""} onChange={handleChange} />
46
- </Grid>
47
- <Grid size={{ xs: 12, md: 6 }}>
48
- <FormControl fullWidth>
49
- <InputLabel>{Locale.label("donation.fundDonations.fund")}</InputLabel>
50
- <Select fullWidth label={Locale.label("donation.fundDonations.fund")} name="fund" aria-label="fund" value={props.fundDonation.fundId} onChange={handleChange}>
51
- {getOptions()}
52
- </Select>
53
- </FormControl>
54
- </Grid>
55
- </Grid>
56
- </>
57
- );
58
- };
59
-
@@ -1,44 +0,0 @@
1
- "use client";
2
-
3
- import React from "react";
4
- import { FundDonation } from ".";
5
- import { FundDonationInterface, FundInterface } from "@churchapps/helpers";
6
- import { Locale } from "../../helpers";
7
-
8
- interface Props { fundDonations: FundDonationInterface[], funds: FundInterface[], params?: any, updatedFunction: (fundDonations: FundDonationInterface[]) => void }
9
-
10
- export const FundDonations: React.FC<Props> = (props) => {
11
- const handleUpdated = (fundDonation: FundDonationInterface, index: number) => {
12
- const fundDonations = [...props.fundDonations];
13
- fundDonations[index] = fundDonation;
14
- props.updatedFunction(fundDonations);
15
- };
16
-
17
- const addRow = (e: React.MouseEvent) => {
18
- e.preventDefault();
19
- const fundDonations = [...props.fundDonations];
20
- const fd = { fundId: props.funds[0].id } as FundDonationInterface;
21
- fundDonations.push(fd);
22
- props.updatedFunction(fundDonations);
23
- };
24
-
25
- const getRows = () => {
26
- const result = [];
27
- for (let i = 0; i < props.fundDonations.length; i++) {
28
- const fd = props.fundDonations[i];
29
- result.push(<FundDonation fundDonation={fd} funds={props.funds} updatedFunction={handleUpdated} params={props?.params} key={i} index={i} />);
30
- }
31
-
32
- return result;
33
- };
34
-
35
- return (
36
- <>
37
- {getRows()}
38
- {(!props?.params?.fundId || props?.params?.fundId === "") &&
39
- <a href="about:blank" aria-label="add-fund-donation" className="text-decoration" style={{ display: "block", marginBottom: "15px" }} onClick={addRow}>{Locale.label("donation.fundDonations.addMore")}</a>
40
- }
41
- </>
42
- );
43
- };
44
-
@@ -1,133 +0,0 @@
1
- "use client";
2
-
3
- import React from "react";
4
- import type { Stripe } from "@stripe/stripe-js";
5
- import { Elements } from "@stripe/react-stripe-js";
6
- import { CardForm, BankForm } from ".";
7
- import { DisplayBox, Loading } from "../../components";
8
- import { ApiHelper, Locale, UserHelper } from "../../helpers";
9
- import { PersonInterface, StripePaymentMethod, Permissions } from "@churchapps/helpers";
10
- import {
11
- Icon, Table, TableBody, TableCell, TableRow, IconButton, Menu, MenuItem
12
- } from "@mui/material";
13
-
14
- interface Props { person: PersonInterface, customerId: string, paymentMethods: StripePaymentMethod[], stripePromise: Promise<Stripe>, appName: string, dataUpdate: (message?: string) => void }
15
-
16
- export const PaymentMethods: React.FC<Props> = (props) => {
17
- const [editPaymentMethod, setEditPaymentMethod] = React.useState<StripePaymentMethod>(new StripePaymentMethod());
18
- const [mode, setMode] = React.useState("display");
19
- const [verify, setVerify] = React.useState<boolean>(false);
20
-
21
- const handleEdit = (pm?: StripePaymentMethod, verifyAccount?: boolean) => (e: React.MouseEvent) => {
22
- e.preventDefault();
23
- setEditPaymentMethod(pm);
24
- setVerify(verifyAccount);
25
- setMode("edit");
26
- };
27
-
28
- const handleDelete = async () => {
29
- const confirmed = window.confirm(Locale.label("donation.paymentMethods.confirmDelete"));
30
- if (confirmed) {
31
- ApiHelper.delete("/paymentmethods/" + editPaymentMethod.id + "/" + props.customerId, "GivingApi").then(() => {
32
- setMode("display");
33
- props.dataUpdate(Locale.label("donation.paymentMethods.deleted"));
34
- });
35
- }
36
- };
37
-
38
- const MenuIcon = () => {
39
- const [anchorEl, setAnchorEl] = React.useState(null);
40
- const open = Boolean(anchorEl);
41
- const handleClick = (e: React.MouseEvent) => {
42
- setAnchorEl(e.currentTarget);
43
- };
44
- const handleClose = () => {
45
- setAnchorEl(null);
46
- };
47
- return (
48
- <>
49
- <IconButton
50
- aria-label="add-button"
51
- id="addBtnGroup"
52
- aria-controls={open ? "add-menu" : undefined}
53
- aria-expanded={open ? "true" : undefined}
54
- aria-haspopup="true"
55
- onClick={handleClick}
56
- >
57
- <Icon color="primary">add</Icon>
58
- </IconButton>
59
- <Menu
60
- id="add-menu"
61
- MenuListProps={{ "aria-labelledby": "addBtnGroup" }}
62
- anchorEl={anchorEl}
63
- open={open}
64
- onClose={handleClose}
65
- >
66
- <MenuItem aria-label="add-card" onClick={handleEdit(new StripePaymentMethod({ type: "card" }))}>
67
- <Icon sx={{ mr: "3px" }}>credit_card</Icon> {Locale.label("donation.paymentMethods.addCard")}
68
- </MenuItem>
69
- <MenuItem aria-label="add-bank" onClick={handleEdit(new StripePaymentMethod({ type: "bank" }))}>
70
- <Icon sx={{ mr: "3px" }}>account_balance</Icon> {Locale.label("donation.paymentMethods.addBank")}
71
- </MenuItem>
72
- </Menu>
73
- </>
74
- );
75
- };
76
-
77
- const getNewContent = () => {
78
- if (!UserHelper.checkAccess(Permissions.givingApi.settings.edit) && props.appName !== "B1App") return null;
79
- return <MenuIcon />;
80
- };
81
-
82
- const getEditOptions = (pm: StripePaymentMethod) => {
83
- if (!UserHelper.checkAccess(Permissions.givingApi.settings.edit) && props.appName !== "B1App") return null;
84
- return <a aria-label="edit-button" onClick={handleEdit(pm)} href="about:blank"><Icon>edit</Icon></a>;
85
- };
86
-
87
- const getPMIcon = (type: string) => (type === "card" ? <Icon>credit_card</Icon> : <Icon>account_balance</Icon>);
88
-
89
- const getPaymentRows = () => {
90
- const rows: React.ReactElement[] = [];
91
-
92
- props.paymentMethods.forEach((method: StripePaymentMethod) => {
93
- rows.push(<TableRow key={method.id}>
94
- <TableCell className="capitalize">{getPMIcon(method.type)} {method.name + " ****" + method.last4}</TableCell>
95
- <TableCell>{method?.status === "new" && <a href="about:blank" aria-label="verify-account" onClick={handleEdit(method, true)}>{Locale.label("donation.paymentMethods.verify")}</a>}</TableCell>
96
- <TableCell align="right">{getEditOptions(method)}</TableCell>
97
- </TableRow>);
98
- });
99
- return rows;
100
- };
101
-
102
- const PaymentMethodsTable = () => {
103
- if (!props.paymentMethods) return <Loading></Loading>;
104
- if (props.paymentMethods.length) {
105
- return (
106
- <Table>
107
- <TableBody>
108
- {getPaymentRows()}
109
- </TableBody>
110
- </Table>
111
- );
112
- } else return <div>{Locale.label("donation.paymentMethods.noMethod")}</div>;
113
- };
114
-
115
- const EditForm = () => (
116
- <Elements stripe={props.stripePromise}>
117
- {editPaymentMethod.type === "card" && <CardForm card={editPaymentMethod} customerId={props.customerId} person={props.person} setMode={setMode} deletePayment={handleDelete} updateList={(message) => { props.dataUpdate(message); }} />}
118
- {editPaymentMethod.type === "bank" && <BankForm bank={editPaymentMethod} showVerifyForm={verify} customerId={props.customerId} person={props.person} setMode={setMode} deletePayment={handleDelete} updateList={(message) => { props.dataUpdate(message); }} />}
119
- </Elements>
120
- );
121
-
122
- const PaymentMethods = () => {
123
- if (mode === "display") {
124
- return (
125
- <DisplayBox aria-label="payment-methods-box" headerIcon="credit_card" headerText="Payment Methods" editContent={getNewContent()}>
126
- <PaymentMethodsTable></PaymentMethodsTable>
127
- </DisplayBox>
128
- );
129
- } else return <EditForm></EditForm>;
130
- };
131
-
132
- return props.stripePromise ? <PaymentMethods></PaymentMethods> : null;
133
- };
@@ -1,117 +0,0 @@
1
- "use client";
2
-
3
- import React from "react";
4
- import { DisplayBox } from "../../components";
5
- import { ApiHelper, UserHelper, CurrencyHelper, DateHelper, Locale } from "../../helpers";
6
- import { Permissions, SubscriptionInterface } from "@churchapps/helpers";
7
- import { RecurringDonationsEdit } from ".";
8
- import { Icon, Table, TableBody, TableCell, TableRow, TableHead } from "@mui/material";
9
-
10
- interface Props { customerId: string, paymentMethods: any[], appName: string, dataUpdate: (message?: string) => void, };
11
-
12
- export const RecurringDonations: React.FC<Props> = (props) => {
13
- const [subscriptions, setSubscriptions] = React.useState<SubscriptionInterface[]>([]);
14
- const [mode, setMode] = React.useState("display");
15
- const [editSubscription, setEditSubscription] = React.useState<SubscriptionInterface>();
16
-
17
- const loadData = () => {
18
- if (props.customerId) {
19
- ApiHelper.get("/customers/" + props.customerId + "/subscriptions", "GivingApi").then(subResult => {
20
- const subs: SubscriptionInterface[] = [];
21
- const requests = subResult.data?.map((s: any) => ApiHelper.get("/subscriptionfunds?subscriptionId=" + s.id, "GivingApi").then(subFunds => {
22
- s.funds = subFunds;
23
- subs.push(s);
24
- }));
25
- return requests && Promise.all(requests).then(() => {
26
- setSubscriptions(subs);
27
- });
28
- });
29
- }
30
- };
31
-
32
- const handleUpdate = (message: string) => {
33
- loadData();
34
- setMode("display");
35
- if (message) props.dataUpdate(message);
36
- };
37
-
38
- const handleEdit = (sub: SubscriptionInterface) => (e: React.MouseEvent) => {
39
- e.preventDefault();
40
- setEditSubscription(sub);
41
- setMode("edit");
42
- };
43
-
44
- const getPaymentMethod = (sub: SubscriptionInterface) => {
45
- const pm = props.paymentMethods.find((pm: any) => pm.id === (sub.default_payment_method || sub.default_source));
46
- if (!pm) return <span style={{ color: "red" }}>{Locale.label("donation.recurring.notFound")}</span>;
47
- return `${pm.name} ****${pm.last4}`;
48
- };
49
-
50
- const getInterval = (subscription: SubscriptionInterface) => {
51
- const interval = subscription.plan.interval_count + " " + subscription.plan.interval;
52
- return subscription.plan.interval_count > 1 ? interval + "s" : interval;
53
- };
54
-
55
- const getFunds = (subscription: SubscriptionInterface) => {
56
- const result: React.ReactElement[] = [];
57
- subscription.funds.forEach((fund: any) => {
58
- result.push(<div key={subscription.id + fund.id}>
59
- {fund.name} <span style={{ float: "right" }}>{CurrencyHelper.formatCurrency(fund.amount)}</span>
60
- </div>);
61
- });
62
- const total = (subscription.plan.amount / 100);
63
- result.push(<div key={subscription.id + "-total"} style={{ borderTop: "solid #dee2e6 1px" }}>
64
- Total <span style={{ float: "right" }}>{CurrencyHelper.formatCurrency(total)}</span>
65
- </div>);
66
- return result;
67
- };
68
-
69
- const getEditOptions = (sub: SubscriptionInterface) => {
70
- if ((!UserHelper.checkAccess(Permissions.givingApi.settings.edit) && props.appName !== "B1App") || props?.paymentMethods?.length === 0) return null;
71
- return <a aria-label="edit-button" onClick={handleEdit(sub)} href="about:blank"><Icon>edit</Icon></a>;
72
- };
73
-
74
- const getTableHeader = () => {
75
- const result: React.ReactElement[] = [];
76
- result.push(<TableRow key="header" sx={{ textAlign: "left" }}><TableCell><b>{Locale.label("donation.recurring.startDate")}</b></TableCell><TableCell><b>{Locale.label("donation.recurring.amount")}</b></TableCell><TableCell><b>{Locale.label("donation.recurring.interval")}</b></TableCell><TableCell><b>{Locale.label("donation.recurring.paymentMethod")}</b></TableCell>{props?.paymentMethods?.length > 0 && <TableCell></TableCell>}</TableRow>);
77
- return result;
78
- };
79
-
80
- const getTableRows = () => {
81
- const rows: React.ReactElement[] = [];
82
-
83
- subscriptions.forEach((sub: any) => {
84
- rows.push(<TableRow key={sub.id}>
85
- <TableCell>{DateHelper.prettyDate(new Date(sub.billing_cycle_anchor * 1000))}</TableCell>
86
- <TableCell>{getFunds(sub)}</TableCell>
87
- <TableCell>{Locale.label("donation.recurring.every")} {getInterval(sub)}</TableCell>
88
- <TableCell className="capitalize">{getPaymentMethod(sub)}</TableCell>
89
- <TableCell align="right">{getEditOptions(sub)}</TableCell>
90
- </TableRow>);
91
- });
92
- return rows;
93
- };
94
-
95
- const getSubscriptionsTable = () => (
96
- <Table>
97
- <TableHead>{getTableHeader()}</TableHead>
98
- <TableBody>{getTableRows()}</TableBody>
99
- </Table>
100
- );
101
-
102
- React.useEffect(loadData, []); //eslint-disable-line
103
-
104
- if (!subscriptions.length) return null;
105
- if (mode === "display") {
106
- return (
107
- <DisplayBox data-testid="recurring-donations" headerIcon="restart_alt" headerText="Recurring Donations">
108
- {getSubscriptionsTable()}
109
- </DisplayBox>
110
- );
111
- }
112
- if (mode === "edit" && editSubscription) {
113
- return (
114
- <RecurringDonationsEdit customerId={props.customerId} paymentMethods={props.paymentMethods} editSubscription={editSubscription} subscriptionUpdated={handleUpdate} />
115
- );
116
- }
117
- };