@churchapps/helpers 1.2.2 → 1.2.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 (301) hide show
  1. package/.eslintrc.json +28 -28
  2. package/.github/FUNDING.yml +1 -1
  3. package/.prettierrc +11 -11
  4. package/.yarnrc.yml +5 -5
  5. package/LICENSE +21 -21
  6. package/README.md +15 -15
  7. package/dist/ApiHelper.d.ts.map +1 -0
  8. package/dist/ApiHelper.js.map +1 -0
  9. package/dist/AppearanceHelper.d.ts.map +1 -0
  10. package/dist/AppearanceHelper.js.map +1 -0
  11. package/dist/ArrayHelper.d.ts.map +1 -0
  12. package/dist/ArrayHelper.js.map +1 -0
  13. package/dist/{esm/CommonEnvironmentHelper.d.ts → CommonEnvironmentHelper.d.ts} +1 -1
  14. package/dist/CommonEnvironmentHelper.d.ts.map +1 -0
  15. package/dist/{cjs/CommonEnvironmentHelper.js → CommonEnvironmentHelper.js} +5 -5
  16. package/dist/CommonEnvironmentHelper.js.map +1 -0
  17. package/dist/CurrencyHelper.d.ts.map +1 -0
  18. package/dist/CurrencyHelper.js.map +1 -0
  19. package/dist/DateHelper.d.ts.map +1 -0
  20. package/dist/DateHelper.js.map +1 -0
  21. package/dist/DonationHelper.d.ts.map +1 -0
  22. package/dist/DonationHelper.js.map +1 -0
  23. package/dist/ErrorHelper.d.ts.map +1 -0
  24. package/dist/ErrorHelper.js.map +1 -0
  25. package/dist/EventHelper.d.ts.map +1 -0
  26. package/dist/EventHelper.js.map +1 -0
  27. package/dist/FileHelper.d.ts.map +1 -0
  28. package/dist/FileHelper.js.map +1 -0
  29. package/dist/PersonHelper.d.ts.map +1 -0
  30. package/dist/{cjs/PersonHelper.js → PersonHelper.js} +1 -1
  31. package/dist/PersonHelper.js.map +1 -0
  32. package/dist/UniqueIdHelper.d.ts.map +1 -0
  33. package/dist/UniqueIdHelper.js.map +1 -0
  34. package/dist/UserHelper.d.ts.map +1 -0
  35. package/dist/UserHelper.js.map +1 -0
  36. package/dist/index.d.ts +14 -14
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js.map +1 -0
  39. package/dist/interfaces/Access.d.ts.map +1 -1
  40. package/dist/interfaces/Access.js.map +1 -1
  41. package/dist/interfaces/Attendance.d.ts.map +1 -1
  42. package/dist/interfaces/Attendance.js.map +1 -1
  43. package/dist/interfaces/Content.d.ts.map +1 -1
  44. package/dist/interfaces/Content.js.map +1 -1
  45. package/dist/interfaces/Doing.d.ts.map +1 -1
  46. package/dist/interfaces/Doing.js.map +1 -1
  47. package/dist/interfaces/Donation.d.ts.map +1 -1
  48. package/dist/interfaces/Donation.js.map +1 -1
  49. package/dist/interfaces/Error.d.ts.map +1 -1
  50. package/dist/interfaces/Error.js.map +1 -1
  51. package/dist/interfaces/Membership.d.ts.map +1 -1
  52. package/dist/interfaces/Membership.js.map +1 -1
  53. package/dist/interfaces/Messaging.d.ts.map +1 -1
  54. package/dist/interfaces/Messaging.js.map +1 -1
  55. package/dist/interfaces/Permissions.d.ts.map +1 -1
  56. package/dist/interfaces/Permissions.js.map +1 -1
  57. package/dist/interfaces/Reporting.d.ts.map +1 -1
  58. package/dist/interfaces/Reporting.js.map +1 -1
  59. package/dist/interfaces/UserContextInterface.d.ts.map +1 -1
  60. package/dist/interfaces/UserContextInterface.js.map +1 -1
  61. package/dist/interfaces/index.d.ts.map +1 -1
  62. package/dist/interfaces/index.js.map +1 -1
  63. package/package.json +49 -65
  64. package/scripts/build-cjs.js +32 -32
  65. package/src/ApiHelper.ts +176 -176
  66. package/src/AppearanceHelper.ts +69 -69
  67. package/src/ArrayHelper.ts +157 -157
  68. package/src/CommonEnvironmentHelper.ts +104 -104
  69. package/src/CurrencyHelper.ts +10 -10
  70. package/src/DateHelper.ts +153 -153
  71. package/src/DonationHelper.ts +26 -26
  72. package/src/ErrorHelper.ts +39 -39
  73. package/src/EventHelper.ts +49 -49
  74. package/src/FileHelper.ts +55 -55
  75. package/src/PersonHelper.ts +82 -82
  76. package/src/UniqueIdHelper.ts +36 -36
  77. package/src/UserHelper.ts +59 -59
  78. package/src/index.ts +15 -15
  79. package/src/interfaces/Access.ts +138 -138
  80. package/src/interfaces/Attendance.ts +45 -45
  81. package/src/interfaces/Content.ts +84 -84
  82. package/src/interfaces/Doing.ts +93 -93
  83. package/src/interfaces/Donation.ts +190 -190
  84. package/src/interfaces/Error.ts +17 -17
  85. package/src/interfaces/Membership.ts +184 -184
  86. package/src/interfaces/Messaging.ts +96 -96
  87. package/src/interfaces/Permissions.ts +92 -92
  88. package/src/interfaces/Reporting.ts +41 -41
  89. package/src/interfaces/UserContextInterface.ts +13 -13
  90. package/src/interfaces/index.ts +13 -13
  91. package/tsconfig.json +36 -36
  92. package/CLAUDE.md +0 -98
  93. package/dist/cjs/ApiHelper.d.ts.map +0 -1
  94. package/dist/cjs/ApiHelper.js.map +0 -1
  95. package/dist/cjs/AppearanceHelper.d.ts.map +0 -1
  96. package/dist/cjs/AppearanceHelper.js.map +0 -1
  97. package/dist/cjs/ArrayHelper.d.ts.map +0 -1
  98. package/dist/cjs/ArrayHelper.js.map +0 -1
  99. package/dist/cjs/CommonEnvironmentHelper.d.ts +0 -22
  100. package/dist/cjs/CommonEnvironmentHelper.d.ts.map +0 -1
  101. package/dist/cjs/CommonEnvironmentHelper.js.map +0 -1
  102. package/dist/cjs/CurrencyHelper.d.ts.map +0 -1
  103. package/dist/cjs/CurrencyHelper.js.map +0 -1
  104. package/dist/cjs/DateHelper.d.ts.map +0 -1
  105. package/dist/cjs/DateHelper.js.map +0 -1
  106. package/dist/cjs/DonationHelper.d.ts.map +0 -1
  107. package/dist/cjs/DonationHelper.js.map +0 -1
  108. package/dist/cjs/ErrorHelper.d.ts.map +0 -1
  109. package/dist/cjs/ErrorHelper.js.map +0 -1
  110. package/dist/cjs/EventHelper.d.ts.map +0 -1
  111. package/dist/cjs/EventHelper.js.map +0 -1
  112. package/dist/cjs/FileHelper.d.ts.map +0 -1
  113. package/dist/cjs/FileHelper.js.map +0 -1
  114. package/dist/cjs/PersonHelper.d.ts.map +0 -1
  115. package/dist/cjs/PersonHelper.js.map +0 -1
  116. package/dist/cjs/UniqueIdHelper.d.ts.map +0 -1
  117. package/dist/cjs/UniqueIdHelper.js.map +0 -1
  118. package/dist/cjs/UserHelper.d.ts.map +0 -1
  119. package/dist/cjs/UserHelper.js.map +0 -1
  120. package/dist/cjs/index.d.ts +0 -15
  121. package/dist/cjs/index.d.ts.map +0 -1
  122. package/dist/cjs/index.js.map +0 -1
  123. package/dist/cjs/interfaces/Access.d.ts +0 -132
  124. package/dist/cjs/interfaces/Access.d.ts.map +0 -1
  125. package/dist/cjs/interfaces/Access.js +0 -3
  126. package/dist/cjs/interfaces/Access.js.map +0 -1
  127. package/dist/cjs/interfaces/Attendance.d.ts +0 -45
  128. package/dist/cjs/interfaces/Attendance.d.ts.map +0 -1
  129. package/dist/cjs/interfaces/Attendance.js +0 -3
  130. package/dist/cjs/interfaces/Attendance.js.map +0 -1
  131. package/dist/cjs/interfaces/Content.d.ts +0 -86
  132. package/dist/cjs/interfaces/Content.d.ts.map +0 -1
  133. package/dist/cjs/interfaces/Content.js +0 -3
  134. package/dist/cjs/interfaces/Content.js.map +0 -1
  135. package/dist/cjs/interfaces/Doing.d.ts +0 -93
  136. package/dist/cjs/interfaces/Doing.d.ts.map +0 -1
  137. package/dist/cjs/interfaces/Doing.js +0 -3
  138. package/dist/cjs/interfaces/Doing.js.map +0 -1
  139. package/dist/cjs/interfaces/Donation.d.ts +0 -180
  140. package/dist/cjs/interfaces/Donation.d.ts.map +0 -1
  141. package/dist/cjs/interfaces/Donation.js +0 -27
  142. package/dist/cjs/interfaces/Donation.js.map +0 -1
  143. package/dist/cjs/interfaces/Error.d.ts +0 -17
  144. package/dist/cjs/interfaces/Error.d.ts.map +0 -1
  145. package/dist/cjs/interfaces/Error.js +0 -3
  146. package/dist/cjs/interfaces/Error.js.map +0 -1
  147. package/dist/cjs/interfaces/Membership.d.ts +0 -187
  148. package/dist/cjs/interfaces/Membership.d.ts.map +0 -1
  149. package/dist/cjs/interfaces/Membership.js +0 -3
  150. package/dist/cjs/interfaces/Membership.js.map +0 -1
  151. package/dist/cjs/interfaces/Messaging.d.ts +0 -86
  152. package/dist/cjs/interfaces/Messaging.d.ts.map +0 -1
  153. package/dist/cjs/interfaces/Messaging.js +0 -3
  154. package/dist/cjs/interfaces/Messaging.js.map +0 -1
  155. package/dist/cjs/interfaces/Permissions.d.ts +0 -166
  156. package/dist/cjs/interfaces/Permissions.d.ts.map +0 -1
  157. package/dist/cjs/interfaces/Permissions.js +0 -94
  158. package/dist/cjs/interfaces/Permissions.js.map +0 -1
  159. package/dist/cjs/interfaces/Reporting.d.ts +0 -45
  160. package/dist/cjs/interfaces/Reporting.d.ts.map +0 -1
  161. package/dist/cjs/interfaces/Reporting.js +0 -3
  162. package/dist/cjs/interfaces/Reporting.js.map +0 -1
  163. package/dist/cjs/interfaces/UserContextInterface.d.ts +0 -13
  164. package/dist/cjs/interfaces/UserContextInterface.d.ts.map +0 -1
  165. package/dist/cjs/interfaces/UserContextInterface.js +0 -3
  166. package/dist/cjs/interfaces/UserContextInterface.js.map +0 -1
  167. package/dist/cjs/interfaces/index.d.ts +0 -12
  168. package/dist/cjs/interfaces/index.d.ts.map +0 -1
  169. package/dist/cjs/interfaces/index.js +0 -29
  170. package/dist/cjs/interfaces/index.js.map +0 -1
  171. package/dist/cjs/package.json +0 -3
  172. package/dist/esm/ApiHelper.d.ts +0 -28
  173. package/dist/esm/ApiHelper.d.ts.map +0 -1
  174. package/dist/esm/ApiHelper.js +0 -162
  175. package/dist/esm/ApiHelper.js.map +0 -1
  176. package/dist/esm/AppearanceHelper.d.ts +0 -19
  177. package/dist/esm/AppearanceHelper.d.ts.map +0 -1
  178. package/dist/esm/AppearanceHelper.js +0 -60
  179. package/dist/esm/AppearanceHelper.js.map +0 -1
  180. package/dist/esm/ArrayHelper.d.ts +0 -16
  181. package/dist/esm/ArrayHelper.d.ts.map +0 -1
  182. package/dist/esm/ArrayHelper.js +0 -164
  183. package/dist/esm/ArrayHelper.js.map +0 -1
  184. package/dist/esm/CommonEnvironmentHelper.d.ts.map +0 -1
  185. package/dist/esm/CommonEnvironmentHelper.js +0 -100
  186. package/dist/esm/CommonEnvironmentHelper.js.map +0 -1
  187. package/dist/esm/CurrencyHelper.d.ts +0 -4
  188. package/dist/esm/CurrencyHelper.d.ts.map +0 -1
  189. package/dist/esm/CurrencyHelper.js +0 -11
  190. package/dist/esm/CurrencyHelper.js.map +0 -1
  191. package/dist/esm/DateHelper.d.ts +0 -23
  192. package/dist/esm/DateHelper.d.ts.map +0 -1
  193. package/dist/esm/DateHelper.js +0 -141
  194. package/dist/esm/DateHelper.js.map +0 -1
  195. package/dist/esm/DonationHelper.d.ts +0 -8
  196. package/dist/esm/DonationHelper.d.ts.map +0 -1
  197. package/dist/esm/DonationHelper.js +0 -29
  198. package/dist/esm/DonationHelper.js.map +0 -1
  199. package/dist/esm/ErrorHelper.d.ts +0 -13
  200. package/dist/esm/ErrorHelper.d.ts.map +0 -1
  201. package/dist/esm/ErrorHelper.js +0 -30
  202. package/dist/esm/ErrorHelper.js.map +0 -1
  203. package/dist/esm/EventHelper.d.ts +0 -11
  204. package/dist/esm/EventHelper.d.ts.map +0 -1
  205. package/dist/esm/EventHelper.js +0 -39
  206. package/dist/esm/EventHelper.js.map +0 -1
  207. package/dist/esm/FileHelper.d.ts +0 -5
  208. package/dist/esm/FileHelper.d.ts.map +0 -1
  209. package/dist/esm/FileHelper.js +0 -53
  210. package/dist/esm/FileHelper.js.map +0 -1
  211. package/dist/esm/PersonHelper.d.ts +0 -14
  212. package/dist/esm/PersonHelper.d.ts.map +0 -1
  213. package/dist/esm/PersonHelper.js +0 -80
  214. package/dist/esm/PersonHelper.js.map +0 -1
  215. package/dist/esm/UniqueIdHelper.d.ts +0 -9
  216. package/dist/esm/UniqueIdHelper.d.ts.map +0 -1
  217. package/dist/esm/UniqueIdHelper.js +0 -33
  218. package/dist/esm/UniqueIdHelper.js.map +0 -1
  219. package/dist/esm/UserHelper.d.ts +0 -14
  220. package/dist/esm/UserHelper.d.ts.map +0 -1
  221. package/dist/esm/UserHelper.js +0 -57
  222. package/dist/esm/UserHelper.js.map +0 -1
  223. package/dist/esm/index.d.ts +0 -15
  224. package/dist/esm/index.d.ts.map +0 -1
  225. package/dist/esm/index.js +0 -15
  226. package/dist/esm/index.js.map +0 -1
  227. package/dist/esm/interfaces/Access.d.ts +0 -132
  228. package/dist/esm/interfaces/Access.d.ts.map +0 -1
  229. package/dist/esm/interfaces/Access.js +0 -2
  230. package/dist/esm/interfaces/Access.js.map +0 -1
  231. package/dist/esm/interfaces/Attendance.d.ts +0 -45
  232. package/dist/esm/interfaces/Attendance.d.ts.map +0 -1
  233. package/dist/esm/interfaces/Attendance.js +0 -2
  234. package/dist/esm/interfaces/Attendance.js.map +0 -1
  235. package/dist/esm/interfaces/Content.d.ts +0 -86
  236. package/dist/esm/interfaces/Content.d.ts.map +0 -1
  237. package/dist/esm/interfaces/Content.js +0 -2
  238. package/dist/esm/interfaces/Content.js.map +0 -1
  239. package/dist/esm/interfaces/Doing.d.ts +0 -93
  240. package/dist/esm/interfaces/Doing.d.ts.map +0 -1
  241. package/dist/esm/interfaces/Doing.js +0 -2
  242. package/dist/esm/interfaces/Doing.js.map +0 -1
  243. package/dist/esm/interfaces/Donation.d.ts +0 -180
  244. package/dist/esm/interfaces/Donation.d.ts.map +0 -1
  245. package/dist/esm/interfaces/Donation.js +0 -23
  246. package/dist/esm/interfaces/Donation.js.map +0 -1
  247. package/dist/esm/interfaces/Error.d.ts +0 -17
  248. package/dist/esm/interfaces/Error.d.ts.map +0 -1
  249. package/dist/esm/interfaces/Error.js +0 -2
  250. package/dist/esm/interfaces/Error.js.map +0 -1
  251. package/dist/esm/interfaces/Membership.d.ts +0 -187
  252. package/dist/esm/interfaces/Membership.d.ts.map +0 -1
  253. package/dist/esm/interfaces/Membership.js +0 -2
  254. package/dist/esm/interfaces/Membership.js.map +0 -1
  255. package/dist/esm/interfaces/Messaging.d.ts +0 -86
  256. package/dist/esm/interfaces/Messaging.d.ts.map +0 -1
  257. package/dist/esm/interfaces/Messaging.js +0 -2
  258. package/dist/esm/interfaces/Messaging.js.map +0 -1
  259. package/dist/esm/interfaces/Permissions.d.ts +0 -166
  260. package/dist/esm/interfaces/Permissions.d.ts.map +0 -1
  261. package/dist/esm/interfaces/Permissions.js +0 -90
  262. package/dist/esm/interfaces/Permissions.js.map +0 -1
  263. package/dist/esm/interfaces/Reporting.d.ts +0 -45
  264. package/dist/esm/interfaces/Reporting.d.ts.map +0 -1
  265. package/dist/esm/interfaces/Reporting.js +0 -2
  266. package/dist/esm/interfaces/Reporting.js.map +0 -1
  267. package/dist/esm/interfaces/UserContextInterface.d.ts +0 -13
  268. package/dist/esm/interfaces/UserContextInterface.d.ts.map +0 -1
  269. package/dist/esm/interfaces/UserContextInterface.js +0 -2
  270. package/dist/esm/interfaces/UserContextInterface.js.map +0 -1
  271. package/dist/esm/interfaces/index.d.ts +0 -12
  272. package/dist/esm/interfaces/index.d.ts.map +0 -1
  273. package/dist/esm/interfaces/index.js +0 -13
  274. package/dist/esm/interfaces/index.js.map +0 -1
  275. package/dist/esm/package.json +0 -3
  276. package/scripts/postbuild.js +0 -61
  277. package/tsconfig.esm.json +0 -8
  278. /package/dist/{cjs/ApiHelper.d.ts → ApiHelper.d.ts} +0 -0
  279. /package/dist/{cjs/ApiHelper.js → ApiHelper.js} +0 -0
  280. /package/dist/{cjs/AppearanceHelper.d.ts → AppearanceHelper.d.ts} +0 -0
  281. /package/dist/{cjs/AppearanceHelper.js → AppearanceHelper.js} +0 -0
  282. /package/dist/{cjs/ArrayHelper.d.ts → ArrayHelper.d.ts} +0 -0
  283. /package/dist/{cjs/ArrayHelper.js → ArrayHelper.js} +0 -0
  284. /package/dist/{cjs/CurrencyHelper.d.ts → CurrencyHelper.d.ts} +0 -0
  285. /package/dist/{cjs/CurrencyHelper.js → CurrencyHelper.js} +0 -0
  286. /package/dist/{cjs/DateHelper.d.ts → DateHelper.d.ts} +0 -0
  287. /package/dist/{cjs/DateHelper.js → DateHelper.js} +0 -0
  288. /package/dist/{cjs/DonationHelper.d.ts → DonationHelper.d.ts} +0 -0
  289. /package/dist/{cjs/DonationHelper.js → DonationHelper.js} +0 -0
  290. /package/dist/{cjs/ErrorHelper.d.ts → ErrorHelper.d.ts} +0 -0
  291. /package/dist/{cjs/ErrorHelper.js → ErrorHelper.js} +0 -0
  292. /package/dist/{cjs/EventHelper.d.ts → EventHelper.d.ts} +0 -0
  293. /package/dist/{cjs/EventHelper.js → EventHelper.js} +0 -0
  294. /package/dist/{cjs/FileHelper.d.ts → FileHelper.d.ts} +0 -0
  295. /package/dist/{cjs/FileHelper.js → FileHelper.js} +0 -0
  296. /package/dist/{cjs/PersonHelper.d.ts → PersonHelper.d.ts} +0 -0
  297. /package/dist/{cjs/UniqueIdHelper.d.ts → UniqueIdHelper.d.ts} +0 -0
  298. /package/dist/{cjs/UniqueIdHelper.js → UniqueIdHelper.js} +0 -0
  299. /package/dist/{cjs/UserHelper.d.ts → UserHelper.d.ts} +0 -0
  300. /package/dist/{cjs/UserHelper.js → UserHelper.js} +0 -0
  301. /package/dist/{cjs/index.js → index.js} +0 -0
@@ -1,157 +1,157 @@
1
- import { UniqueIdHelper } from "./UniqueIdHelper";
2
-
3
- export class ArrayHelper {
4
- static getIds(array: any[], propertyName: string) {
5
- const result: string[] = [];
6
- for (const item of array) {
7
- const id = item[propertyName]?.toString();
8
- if (!UniqueIdHelper.isMissing(id) && result.indexOf(id) === -1) result.push(id);
9
- }
10
- return result;
11
- }
12
-
13
- static sortBy(array: any[], propertyName: string, descending: boolean = false) {
14
- array.sort((a, b) => {
15
- const valA = a[propertyName];
16
- const valB = b[propertyName];
17
- if (valA < valB) return descending ? 1 : -1;
18
- else return descending ? -1 : 1;
19
- });
20
- }
21
-
22
- static getIndex(array: any[], propertyName: string, value: any) {
23
- for (let i = 0; i < array.length; i++) {
24
- const item = array[i];
25
- if (ArrayHelper.compare(item, propertyName, value)) return i;
26
- }
27
- return -1;
28
- }
29
-
30
- static getOne(array: any[], propertyName: string, value: any) {
31
- for (const item of array || []) if (ArrayHelper.compare(item, propertyName, value)) return item;
32
- return null
33
- }
34
-
35
- static getAll(array: any[], propertyName: string, value: any) {
36
- const result: any[] = []
37
- for (const item of array || []) {
38
- if (ArrayHelper.compare(item, propertyName, value)) result.push(item);
39
- }
40
- return result;
41
- }
42
-
43
- static getAllArray(array: any[], propertyName: string, values: any[]) {
44
- const result: any[] = []
45
- for (const item of array || []) if (values.indexOf(item[propertyName]) > -1) result.push(item);
46
- return result;
47
- }
48
-
49
- private static compare(item: any, propertyName: string, value: any) {
50
- const propChain = propertyName.split(".");
51
- if (propChain.length === 1) return item[propertyName] === value;
52
- else {
53
- let obj = item;
54
- for (let i = 0; i < propChain.length - 1; i++) {
55
- if (obj && obj[propChain[i]] !== undefined) obj = obj[propChain[i]];
56
- else return false;
57
- }
58
- return obj[propChain[propChain.length - 1]] === value;
59
- }
60
- }
61
-
62
- static getUniqueValues(array: any[], propertyName: string) {
63
- const result: any[] = [];
64
-
65
- for (const item of array) {
66
- const val = (propertyName.indexOf(".") === -1) ? item[propertyName] : this.getDeepValue(item, propertyName)
67
- if (result.indexOf(val) === -1) result.push(val);
68
- }
69
- return result;
70
- }
71
-
72
- static getUnique(array: any[]) {
73
- const result: any[] = []
74
- const jsonList: string[] = [];
75
- for (const item of array) {
76
- const json = JSON.stringify(item);
77
- if (jsonList.indexOf(json) === -1) {
78
- result.push(item);
79
- jsonList.push(json);
80
- }
81
- }
82
- return result;
83
- }
84
-
85
- static getAllOperatorArray(array: any[], propertyName: string, values: any[], operator: string, dataType = "string") {
86
- const result: any[] = [];
87
- values.forEach(v => {
88
- const filtered = this.getAllOperator(array, propertyName, v, operator.replace("notIn", "notEqual").replace("in", "equals").replace("donatedToAny", "equals").replace("donatedTo", "equals").replace("attendedCampus", "equals").replace("attendedAny", "equals").replace("attendedServiceTime", "equals").replace("attendedService", "equals").replace("attendedGroup", "equals"), dataType);
89
- filtered.forEach(f => result.push(f));
90
- })
91
- return result;
92
- }
93
-
94
- static getAllOperator(array: any[], propertyName: string, value: any, operator: string, dataType = "string") {
95
- const result: any[] = []
96
- for (const item of array) {
97
-
98
-
99
- let propVal = item[propertyName] || "";
100
- let compVal = value || "";
101
- if (dataType === "number") {
102
- propVal = parseFloat(propVal);
103
- compVal = parseFloat(compVal);
104
- } else if (dataType === "string") {
105
- propVal = propVal.toLowerCase();
106
- compVal = compVal.toLowerCase();
107
- }
108
-
109
- switch (operator) {
110
- case "equals":
111
- if (propVal === compVal) result.push(item);
112
- break;
113
- case "startsWith":
114
- if (propVal.indexOf(compVal) === 0) result.push(item);
115
- break;
116
- case "endsWith":
117
- if (propVal.indexOf(compVal) === propVal.length - compVal.length) result.push(item);
118
- break;
119
- case "contains":
120
- if (propVal.indexOf(compVal) > -1) result.push(item);
121
- break;
122
- case "greaterThan":
123
- if (propVal > compVal) result.push(item);
124
- break;
125
- case "greaterThanEqual":
126
- if (propVal >= compVal) result.push(item);
127
- break;
128
- case "lessThan":
129
- if (propVal < compVal) result.push(item);
130
- break;
131
- case "lessThanEqual":
132
- if (propVal <= compVal) result.push(item);
133
- break;
134
- case "notEqual":
135
- if (propVal !== compVal) result.push(item);
136
- break;
137
- }
138
- }
139
- return result;
140
- }
141
-
142
- static getDeepValue(item: any, propertyName: string) {
143
- const propertyNames = propertyName.split(".");
144
- let result: any = item;
145
- propertyNames.forEach(name => {
146
- result = result[name];
147
- });
148
- return result;
149
- }
150
-
151
- static fillArray(contents: string, length: number) {
152
- const result = [];
153
- for (let i = 0; i < length; i++) result.push(contents);
154
- return result;
155
- }
156
-
157
- }
1
+ import { UniqueIdHelper } from "./UniqueIdHelper";
2
+
3
+ export class ArrayHelper {
4
+ static getIds(array: any[], propertyName: string) {
5
+ const result: string[] = [];
6
+ for (const item of array) {
7
+ const id = item[propertyName]?.toString();
8
+ if (!UniqueIdHelper.isMissing(id) && result.indexOf(id) === -1) result.push(id);
9
+ }
10
+ return result;
11
+ }
12
+
13
+ static sortBy(array: any[], propertyName: string, descending: boolean = false) {
14
+ array.sort((a, b) => {
15
+ const valA = a[propertyName];
16
+ const valB = b[propertyName];
17
+ if (valA < valB) return descending ? 1 : -1;
18
+ else return descending ? -1 : 1;
19
+ });
20
+ }
21
+
22
+ static getIndex(array: any[], propertyName: string, value: any) {
23
+ for (let i = 0; i < array.length; i++) {
24
+ const item = array[i];
25
+ if (ArrayHelper.compare(item, propertyName, value)) return i;
26
+ }
27
+ return -1;
28
+ }
29
+
30
+ static getOne(array: any[], propertyName: string, value: any) {
31
+ for (const item of array || []) if (ArrayHelper.compare(item, propertyName, value)) return item;
32
+ return null
33
+ }
34
+
35
+ static getAll(array: any[], propertyName: string, value: any) {
36
+ const result: any[] = []
37
+ for (const item of array || []) {
38
+ if (ArrayHelper.compare(item, propertyName, value)) result.push(item);
39
+ }
40
+ return result;
41
+ }
42
+
43
+ static getAllArray(array: any[], propertyName: string, values: any[]) {
44
+ const result: any[] = []
45
+ for (const item of array || []) if (values.indexOf(item[propertyName]) > -1) result.push(item);
46
+ return result;
47
+ }
48
+
49
+ private static compare(item: any, propertyName: string, value: any) {
50
+ const propChain = propertyName.split(".");
51
+ if (propChain.length === 1) return item[propertyName] === value;
52
+ else {
53
+ let obj = item;
54
+ for (let i = 0; i < propChain.length - 1; i++) {
55
+ if (obj && obj[propChain[i]] !== undefined) obj = obj[propChain[i]];
56
+ else return false;
57
+ }
58
+ return obj[propChain[propChain.length - 1]] === value;
59
+ }
60
+ }
61
+
62
+ static getUniqueValues(array: any[], propertyName: string) {
63
+ const result: any[] = [];
64
+
65
+ for (const item of array) {
66
+ const val = (propertyName.indexOf(".") === -1) ? item[propertyName] : this.getDeepValue(item, propertyName)
67
+ if (result.indexOf(val) === -1) result.push(val);
68
+ }
69
+ return result;
70
+ }
71
+
72
+ static getUnique(array: any[]) {
73
+ const result: any[] = []
74
+ const jsonList: string[] = [];
75
+ for (const item of array) {
76
+ const json = JSON.stringify(item);
77
+ if (jsonList.indexOf(json) === -1) {
78
+ result.push(item);
79
+ jsonList.push(json);
80
+ }
81
+ }
82
+ return result;
83
+ }
84
+
85
+ static getAllOperatorArray(array: any[], propertyName: string, values: any[], operator: string, dataType = "string") {
86
+ const result: any[] = [];
87
+ values.forEach(v => {
88
+ const filtered = this.getAllOperator(array, propertyName, v, operator.replace("notIn", "notEqual").replace("in", "equals").replace("donatedToAny", "equals").replace("donatedTo", "equals").replace("attendedCampus", "equals").replace("attendedAny", "equals").replace("attendedServiceTime", "equals").replace("attendedService", "equals").replace("attendedGroup", "equals"), dataType);
89
+ filtered.forEach(f => result.push(f));
90
+ })
91
+ return result;
92
+ }
93
+
94
+ static getAllOperator(array: any[], propertyName: string, value: any, operator: string, dataType = "string") {
95
+ const result: any[] = []
96
+ for (const item of array) {
97
+
98
+
99
+ let propVal = item[propertyName] || "";
100
+ let compVal = value || "";
101
+ if (dataType === "number") {
102
+ propVal = parseFloat(propVal);
103
+ compVal = parseFloat(compVal);
104
+ } else if (dataType === "string") {
105
+ propVal = propVal.toLowerCase();
106
+ compVal = compVal.toLowerCase();
107
+ }
108
+
109
+ switch (operator) {
110
+ case "equals":
111
+ if (propVal === compVal) result.push(item);
112
+ break;
113
+ case "startsWith":
114
+ if (propVal.indexOf(compVal) === 0) result.push(item);
115
+ break;
116
+ case "endsWith":
117
+ if (propVal.indexOf(compVal) === propVal.length - compVal.length) result.push(item);
118
+ break;
119
+ case "contains":
120
+ if (propVal.indexOf(compVal) > -1) result.push(item);
121
+ break;
122
+ case "greaterThan":
123
+ if (propVal > compVal) result.push(item);
124
+ break;
125
+ case "greaterThanEqual":
126
+ if (propVal >= compVal) result.push(item);
127
+ break;
128
+ case "lessThan":
129
+ if (propVal < compVal) result.push(item);
130
+ break;
131
+ case "lessThanEqual":
132
+ if (propVal <= compVal) result.push(item);
133
+ break;
134
+ case "notEqual":
135
+ if (propVal !== compVal) result.push(item);
136
+ break;
137
+ }
138
+ }
139
+ return result;
140
+ }
141
+
142
+ static getDeepValue(item: any, propertyName: string) {
143
+ const propertyNames = propertyName.split(".");
144
+ let result: any = item;
145
+ propertyNames.forEach(name => {
146
+ result = result[name];
147
+ });
148
+ return result;
149
+ }
150
+
151
+ static fillArray(contents: string, length: number) {
152
+ const result = [];
153
+ for (let i = 0; i < length; i++) result.push(contents);
154
+ return result;
155
+ }
156
+
157
+ }
@@ -1,104 +1,104 @@
1
-
2
- export class CommonEnvironmentHelper {
3
- public static AttendanceApi = "";
4
- public static DoingApi = "";
5
- public static GivingApi = "";
6
- public static MembershipApi = "";
7
- public static ReportingApi = "";
8
- public static MessagingApi = "";
9
- public static MessagingApiSocket = "";
10
- public static ContentApi = "";
11
- public static AskApi = "";
12
- public static GoogleAnalyticsTag = "";
13
-
14
- static ContentRoot = "";
15
- static B1Root = "";
16
- static ChumsRoot = "";
17
- static LessonsRoot = "";
18
-
19
- static init = (stage: string) => {
20
- switch (stage) {
21
- case "demo": CommonEnvironmentHelper.initDemo(); break;
22
- case "staging": CommonEnvironmentHelper.initStaging(); break;
23
- case "prod": CommonEnvironmentHelper.initProd(); break;
24
- default: CommonEnvironmentHelper.initDev(); break;
25
- }
26
- }
27
-
28
- static initDev = () => {
29
- this.initStaging(); //Use staging values for anything not provided
30
- CommonEnvironmentHelper.AttendanceApi = process.env.REACT_APP_ATTENDANCE_API || process.env.NEXT_PUBLIC_ATTENDANCE_API || CommonEnvironmentHelper.AttendanceApi;
31
- CommonEnvironmentHelper.DoingApi = process.env.REACT_APP_DOING_API || process.env.NEXT_PUBLIC_DOING_API || CommonEnvironmentHelper.DoingApi;
32
- CommonEnvironmentHelper.GivingApi = process.env.REACT_APP_GIVING_API || process.env.NEXT_PUBLIC_GIVING_API || CommonEnvironmentHelper.GivingApi;
33
- CommonEnvironmentHelper.MembershipApi = process.env.REACT_APP_MEMBERSHIP_API || process.env.NEXT_PUBLIC_MEMBERSHIP_API || CommonEnvironmentHelper.MembershipApi;
34
- CommonEnvironmentHelper.ReportingApi = process.env.REACT_APP_REPORTING_API || process.env.NEXT_PUBLIC_REPORTING_API || CommonEnvironmentHelper.ReportingApi;
35
- CommonEnvironmentHelper.MessagingApi = process.env.REACT_APP_MESSAGING_API || process.env.NEXT_PUBLIC_MESSAGING_API || CommonEnvironmentHelper.MessagingApi;
36
- CommonEnvironmentHelper.MessagingApiSocket = process.env.REACT_APP_MESSAGING_API_SOCKET || process.env.NEXT_PUBLIC_MESSAGING_API_SOCKET || CommonEnvironmentHelper.MessagingApiSocket;
37
- CommonEnvironmentHelper.ContentApi = process.env.REACT_APP_CONTENT_API || process.env.NEXT_PUBLIC_CONTENT_API || CommonEnvironmentHelper.ContentApi;
38
- CommonEnvironmentHelper.AskApi = process.env.REACT_APP_ASK_API || process.env.NEXT_PUBLIC_ASK_API || CommonEnvironmentHelper.AskApi;
39
- CommonEnvironmentHelper.GoogleAnalyticsTag = process.env.REACT_APP_GOOGLE_ANALYTICS || process.env.NEXT_PUBLIC_GOOGLE_ANALYTICS || CommonEnvironmentHelper.GoogleAnalyticsTag;
40
-
41
- CommonEnvironmentHelper.ContentRoot = process.env.REACT_APP_CONTENT_ROOT || process.env.NEXT_PUBLIC_CONTENT_ROOT || CommonEnvironmentHelper.ContentRoot;
42
- CommonEnvironmentHelper.B1Root = process.env.REACT_APP_B1_ROOT || process.env.NEXT_PUBLIC_B1_ROOT || CommonEnvironmentHelper.B1Root;
43
- CommonEnvironmentHelper.ChumsRoot = process.env.REACT_APP_CHUMS_ROOT || process.env.NEXT_PUBLIC_CHUMS_ROOT || CommonEnvironmentHelper.ChumsRoot;
44
- CommonEnvironmentHelper.LessonsRoot = process.env.REACT_APP_LESSONS_ROOT || process.env.NEXT_PUBLIC_LESSONS_ROOT || CommonEnvironmentHelper.LessonsRoot;
45
- }
46
-
47
- //NOTE: None of these values are secret.
48
- static initDemo = () => {
49
- CommonEnvironmentHelper.AttendanceApi = "https://api.demo.churchapps.org/attendance";
50
- CommonEnvironmentHelper.DoingApi = "https://api.demo.churchapps.org/doing";
51
- CommonEnvironmentHelper.GivingApi = "https://api.demo.churchapps.org/giving";
52
- CommonEnvironmentHelper.MembershipApi = "https://api.demo.churchapps.org/membership";
53
- CommonEnvironmentHelper.ReportingApi = "https://api.demo.churchapps.org/reporting";
54
- CommonEnvironmentHelper.MessagingApi = "https://api.demo.churchapps.org/messaging";
55
- CommonEnvironmentHelper.MessagingApiSocket = "wss://socket.demo.churchapps.org";
56
- CommonEnvironmentHelper.ContentApi = "https://api.demo.churchapps.org/content";
57
- CommonEnvironmentHelper.AskApi = "https://askapi.demo.churchapps.org";
58
- CommonEnvironmentHelper.GoogleAnalyticsTag = "";
59
-
60
- CommonEnvironmentHelper.ContentRoot = "https://democontent.churchapps.org";
61
- CommonEnvironmentHelper.B1Root = "https://{key}.demo.b1.church";
62
- CommonEnvironmentHelper.ChumsRoot = "https://app.demo.chums.org";
63
- CommonEnvironmentHelper.LessonsRoot = "https://demo.lessons.church";
64
- }
65
-
66
- //NOTE: None of these values are secret.
67
- static initStaging = () => {
68
- CommonEnvironmentHelper.AttendanceApi = "https://api.staging.churchapps.org/attendance";
69
- CommonEnvironmentHelper.DoingApi = "https://api.staging.churchapps.org/doing";
70
- CommonEnvironmentHelper.GivingApi = "https://api.staging.churchapps.org/giving";
71
- CommonEnvironmentHelper.MembershipApi = "https://api.staging.churchapps.org/membership";
72
- CommonEnvironmentHelper.ReportingApi = "https://api.staging.churchapps.org/reporting";
73
- CommonEnvironmentHelper.MessagingApi = "https://api.staging.churchapps.org/messaging";
74
- CommonEnvironmentHelper.MessagingApiSocket = "wss://socket.staging.churchapps.org";
75
- CommonEnvironmentHelper.ContentApi = "https://api.staging.churchapps.org/content";
76
- CommonEnvironmentHelper.AskApi = "https://askapi.staging.churchapps.org";
77
- CommonEnvironmentHelper.GoogleAnalyticsTag = "";
78
-
79
- CommonEnvironmentHelper.ContentRoot = "https://content.staging.churchapps.org";
80
- CommonEnvironmentHelper.B1Root = "https://{key}.staging.b1.church";
81
- CommonEnvironmentHelper.ChumsRoot = "https://app.staging.chums.org";
82
- CommonEnvironmentHelper.LessonsRoot = "https://staging.lessons.church";
83
- }
84
-
85
- //NOTE: None of these values are secret.
86
- static initProd = () => {
87
- CommonEnvironmentHelper.AttendanceApi = "https://api.churchapps.org/attendance";
88
- CommonEnvironmentHelper.DoingApi = "https://api.churchapps.org/doing";
89
- CommonEnvironmentHelper.GivingApi = "https://api.churchapps.org/giving";
90
- CommonEnvironmentHelper.MembershipApi = "https://api.churchapps.org/membership";
91
- CommonEnvironmentHelper.ReportingApi = "https://api.churchapps.org/reporting";
92
- CommonEnvironmentHelper.MessagingApi = "https://api.churchapps.org/messaging";
93
- CommonEnvironmentHelper.MessagingApiSocket = "wss://socket.churchapps.org";
94
- CommonEnvironmentHelper.ContentApi = "https://api.churchapps.org/content";
95
- CommonEnvironmentHelper.AskApi = "https://askapi.churchapps.org";
96
-
97
- CommonEnvironmentHelper.ContentRoot = "https://content.churchapps.org";
98
- CommonEnvironmentHelper.B1Root = "https://{key}.b1.church";
99
- CommonEnvironmentHelper.ChumsRoot = "https://app.chums.org";
100
- CommonEnvironmentHelper.LessonsRoot = "https://lessons.church";
101
- }
102
-
103
- }
104
-
1
+
2
+ export class CommonEnvironmentHelper {
3
+ public static AttendanceApi = "";
4
+ public static DoingApi = "";
5
+ public static GivingApi = "";
6
+ public static MembershipApi = "";
7
+ public static ReportingApi = "";
8
+ public static MessagingApi = "";
9
+ public static MessagingApiSocket = "";
10
+ public static ContentApi = "";
11
+ public static AskApi = "";
12
+ public static GoogleAnalyticsTag = "";
13
+
14
+ static ContentRoot = "";
15
+ static B1Root = "";
16
+ static B1AdminRoot = "";
17
+ static LessonsRoot = "";
18
+
19
+ static init = (stage: string) => {
20
+ switch (stage) {
21
+ case "demo": CommonEnvironmentHelper.initDemo(); break;
22
+ case "staging": CommonEnvironmentHelper.initStaging(); break;
23
+ case "prod": CommonEnvironmentHelper.initProd(); break;
24
+ default: CommonEnvironmentHelper.initDev(); break;
25
+ }
26
+ }
27
+
28
+ static initDev = () => {
29
+ this.initStaging(); //Use staging values for anything not provided
30
+ CommonEnvironmentHelper.AttendanceApi = process.env.REACT_APP_ATTENDANCE_API || process.env.NEXT_PUBLIC_ATTENDANCE_API || CommonEnvironmentHelper.AttendanceApi;
31
+ CommonEnvironmentHelper.DoingApi = process.env.REACT_APP_DOING_API || process.env.NEXT_PUBLIC_DOING_API || CommonEnvironmentHelper.DoingApi;
32
+ CommonEnvironmentHelper.GivingApi = process.env.REACT_APP_GIVING_API || process.env.NEXT_PUBLIC_GIVING_API || CommonEnvironmentHelper.GivingApi;
33
+ CommonEnvironmentHelper.MembershipApi = process.env.REACT_APP_MEMBERSHIP_API || process.env.NEXT_PUBLIC_MEMBERSHIP_API || CommonEnvironmentHelper.MembershipApi;
34
+ CommonEnvironmentHelper.ReportingApi = process.env.REACT_APP_REPORTING_API || process.env.NEXT_PUBLIC_REPORTING_API || CommonEnvironmentHelper.ReportingApi;
35
+ CommonEnvironmentHelper.MessagingApi = process.env.REACT_APP_MESSAGING_API || process.env.NEXT_PUBLIC_MESSAGING_API || CommonEnvironmentHelper.MessagingApi;
36
+ CommonEnvironmentHelper.MessagingApiSocket = process.env.REACT_APP_MESSAGING_API_SOCKET || process.env.NEXT_PUBLIC_MESSAGING_API_SOCKET || CommonEnvironmentHelper.MessagingApiSocket;
37
+ CommonEnvironmentHelper.ContentApi = process.env.REACT_APP_CONTENT_API || process.env.NEXT_PUBLIC_CONTENT_API || CommonEnvironmentHelper.ContentApi;
38
+ CommonEnvironmentHelper.AskApi = process.env.REACT_APP_ASK_API || process.env.NEXT_PUBLIC_ASK_API || CommonEnvironmentHelper.AskApi;
39
+ CommonEnvironmentHelper.GoogleAnalyticsTag = process.env.REACT_APP_GOOGLE_ANALYTICS || process.env.NEXT_PUBLIC_GOOGLE_ANALYTICS || CommonEnvironmentHelper.GoogleAnalyticsTag;
40
+
41
+ CommonEnvironmentHelper.ContentRoot = process.env.REACT_APP_CONTENT_ROOT || process.env.NEXT_PUBLIC_CONTENT_ROOT || CommonEnvironmentHelper.ContentRoot;
42
+ CommonEnvironmentHelper.B1Root = process.env.REACT_APP_B1_ROOT || process.env.NEXT_PUBLIC_B1_ROOT || CommonEnvironmentHelper.B1Root;
43
+ CommonEnvironmentHelper.B1AdminRoot = process.env.REACT_APP_B1ADMIN_ROOT || process.env.NEXT_PUBLIC_B1ADMIN_ROOT || CommonEnvironmentHelper.B1AdminRoot;
44
+ CommonEnvironmentHelper.LessonsRoot = process.env.REACT_APP_LESSONS_ROOT || process.env.NEXT_PUBLIC_LESSONS_ROOT || CommonEnvironmentHelper.LessonsRoot;
45
+ }
46
+
47
+ //NOTE: None of these values are secret.
48
+ static initDemo = () => {
49
+ CommonEnvironmentHelper.AttendanceApi = "https://api.demo.churchapps.org/attendance";
50
+ CommonEnvironmentHelper.DoingApi = "https://api.demo.churchapps.org/doing";
51
+ CommonEnvironmentHelper.GivingApi = "https://api.demo.churchapps.org/giving";
52
+ CommonEnvironmentHelper.MembershipApi = "https://api.demo.churchapps.org/membership";
53
+ CommonEnvironmentHelper.ReportingApi = "https://api.demo.churchapps.org/reporting";
54
+ CommonEnvironmentHelper.MessagingApi = "https://api.demo.churchapps.org/messaging";
55
+ CommonEnvironmentHelper.MessagingApiSocket = "wss://socket.demo.churchapps.org";
56
+ CommonEnvironmentHelper.ContentApi = "https://api.demo.churchapps.org/content";
57
+ CommonEnvironmentHelper.AskApi = "https://askapi.demo.churchapps.org";
58
+ CommonEnvironmentHelper.GoogleAnalyticsTag = "";
59
+
60
+ CommonEnvironmentHelper.ContentRoot = "https://democontent.churchapps.org";
61
+ CommonEnvironmentHelper.B1Root = "https://{key}.demo.b1.church";
62
+ CommonEnvironmentHelper.B1AdminRoot = "https://demo.b1.church";
63
+ CommonEnvironmentHelper.LessonsRoot = "https://demo.lessons.church";
64
+ }
65
+
66
+ //NOTE: None of these values are secret.
67
+ static initStaging = () => {
68
+ CommonEnvironmentHelper.AttendanceApi = "https://api.staging.churchapps.org/attendance";
69
+ CommonEnvironmentHelper.DoingApi = "https://api.staging.churchapps.org/doing";
70
+ CommonEnvironmentHelper.GivingApi = "https://api.staging.churchapps.org/giving";
71
+ CommonEnvironmentHelper.MembershipApi = "https://api.staging.churchapps.org/membership";
72
+ CommonEnvironmentHelper.ReportingApi = "https://api.staging.churchapps.org/reporting";
73
+ CommonEnvironmentHelper.MessagingApi = "https://api.staging.churchapps.org/messaging";
74
+ CommonEnvironmentHelper.MessagingApiSocket = "wss://socket.staging.churchapps.org";
75
+ CommonEnvironmentHelper.ContentApi = "https://api.staging.churchapps.org/content";
76
+ CommonEnvironmentHelper.AskApi = "https://askapi.staging.churchapps.org";
77
+ CommonEnvironmentHelper.GoogleAnalyticsTag = "";
78
+
79
+ CommonEnvironmentHelper.ContentRoot = "https://content.staging.churchapps.org";
80
+ CommonEnvironmentHelper.B1Root = "https://{key}.staging.b1.church";
81
+ CommonEnvironmentHelper.B1AdminRoot = "https://admin.staging.b1.church";
82
+ CommonEnvironmentHelper.LessonsRoot = "https://staging.lessons.church";
83
+ }
84
+
85
+ //NOTE: None of these values are secret.
86
+ static initProd = () => {
87
+ CommonEnvironmentHelper.AttendanceApi = "https://api.churchapps.org/attendance";
88
+ CommonEnvironmentHelper.DoingApi = "https://api.churchapps.org/doing";
89
+ CommonEnvironmentHelper.GivingApi = "https://api.churchapps.org/giving";
90
+ CommonEnvironmentHelper.MembershipApi = "https://api.churchapps.org/membership";
91
+ CommonEnvironmentHelper.ReportingApi = "https://api.churchapps.org/reporting";
92
+ CommonEnvironmentHelper.MessagingApi = "https://api.churchapps.org/messaging";
93
+ CommonEnvironmentHelper.MessagingApiSocket = "wss://socket.churchapps.org";
94
+ CommonEnvironmentHelper.ContentApi = "https://api.churchapps.org/content";
95
+ CommonEnvironmentHelper.AskApi = "https://askapi.churchapps.org";
96
+
97
+ CommonEnvironmentHelper.ContentRoot = "https://content.churchapps.org";
98
+ CommonEnvironmentHelper.B1Root = "https://{key}.b1.church";
99
+ CommonEnvironmentHelper.B1AdminRoot = "https://admin.b1.church";
100
+ CommonEnvironmentHelper.LessonsRoot = "https://lessons.church";
101
+ }
102
+
103
+ }
104
+
@@ -1,10 +1,10 @@
1
- export class CurrencyHelper {
2
- static formatCurrency(amount: number) {
3
- const formatter = new Intl.NumberFormat("en-US", {
4
- style: "currency",
5
- currency: "USD",
6
- minimumFractionDigits: 2
7
- });
8
- return formatter.format(amount);
9
- }
10
- }
1
+ export class CurrencyHelper {
2
+ static formatCurrency(amount: number) {
3
+ const formatter = new Intl.NumberFormat("en-US", {
4
+ style: "currency",
5
+ currency: "USD",
6
+ minimumFractionDigits: 2
7
+ });
8
+ return formatter.format(amount);
9
+ }
10
+ }