@churchapps/helpers 1.2.12 → 1.2.14

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 (322) hide show
  1. package/dist/cjs/ApiHelper.d.ts.map +1 -0
  2. package/dist/{ApiHelper.js → cjs/ApiHelper.js} +6 -3
  3. package/dist/cjs/ApiHelper.js.map +1 -0
  4. package/dist/cjs/AppearanceHelper.d.ts.map +1 -0
  5. package/dist/{AppearanceHelper.js → cjs/AppearanceHelper.js} +5 -1
  6. package/dist/cjs/AppearanceHelper.js.map +1 -0
  7. package/dist/cjs/ArrayHelper.d.ts.map +1 -0
  8. package/dist/{ArrayHelper.js → cjs/ArrayHelper.js} +7 -3
  9. package/dist/cjs/ArrayHelper.js.map +1 -0
  10. package/dist/cjs/CommonEnvironmentHelper.d.ts.map +1 -0
  11. package/dist/{CommonEnvironmentHelper.js → cjs/CommonEnvironmentHelper.js} +5 -1
  12. package/dist/cjs/CommonEnvironmentHelper.js.map +1 -0
  13. package/dist/cjs/CurrencyHelper.d.ts.map +1 -0
  14. package/dist/{CurrencyHelper.js → cjs/CurrencyHelper.js} +5 -1
  15. package/dist/cjs/CurrencyHelper.js.map +1 -0
  16. package/dist/cjs/DateHelper.d.ts.map +1 -0
  17. package/dist/{DateHelper.js → cjs/DateHelper.js} +16 -9
  18. package/dist/cjs/DateHelper.js.map +1 -0
  19. package/dist/cjs/DonationHelper.d.ts.map +1 -0
  20. package/dist/{DonationHelper.js → cjs/DonationHelper.js} +5 -1
  21. package/dist/cjs/DonationHelper.js.map +1 -0
  22. package/dist/cjs/ErrorHelper.d.ts.map +1 -0
  23. package/dist/{ErrorHelper.js → cjs/ErrorHelper.js} +5 -1
  24. package/dist/cjs/ErrorHelper.js.map +1 -0
  25. package/dist/{EventHelper.d.ts → cjs/EventHelper.d.ts} +2 -3
  26. package/dist/cjs/EventHelper.d.ts.map +1 -0
  27. package/dist/{EventHelper.js → cjs/EventHelper.js} +8 -5
  28. package/dist/cjs/EventHelper.js.map +1 -0
  29. package/dist/cjs/FileHelper.d.ts.map +1 -0
  30. package/dist/{FileHelper.js → cjs/FileHelper.js} +5 -1
  31. package/dist/cjs/FileHelper.js.map +1 -0
  32. package/dist/cjs/PersonHelper.d.ts.map +1 -0
  33. package/dist/{PersonHelper.js → cjs/PersonHelper.js} +7 -3
  34. package/dist/cjs/PersonHelper.js.map +1 -0
  35. package/dist/cjs/PlanHelper.d.ts.map +1 -0
  36. package/dist/{PlanHelper.js → cjs/PlanHelper.js} +7 -3
  37. package/dist/cjs/PlanHelper.js.map +1 -0
  38. package/dist/cjs/UniqueIdHelper.d.ts.map +1 -0
  39. package/dist/{UniqueIdHelper.js → cjs/UniqueIdHelper.js} +5 -1
  40. package/dist/cjs/UniqueIdHelper.js.map +1 -0
  41. package/dist/cjs/UserHelper.d.ts.map +1 -0
  42. package/dist/{UserHelper.js → cjs/UserHelper.js} +11 -7
  43. package/dist/cjs/UserHelper.js.map +1 -0
  44. package/dist/cjs/contentProviders/ContentProvider.d.ts.map +1 -0
  45. package/dist/cjs/contentProviders/ContentProvider.js +3 -0
  46. package/dist/cjs/contentProviders/ContentProvider.js.map +1 -0
  47. package/dist/cjs/contentProviders/LessonsContentProvider.d.ts.map +1 -0
  48. package/dist/{contentProviders → cjs/contentProviders}/LessonsContentProvider.js +12 -8
  49. package/dist/cjs/contentProviders/LessonsContentProvider.js.map +1 -0
  50. package/dist/cjs/contentProviders/index.d.ts.map +1 -0
  51. package/dist/cjs/contentProviders/index.js +6 -0
  52. package/dist/cjs/contentProviders/index.js.map +1 -0
  53. package/dist/cjs/index.d.ts.map +1 -0
  54. package/dist/cjs/index.js +48 -0
  55. package/dist/cjs/index.js.map +1 -0
  56. package/dist/cjs/interfaces/Access.d.ts.map +1 -0
  57. package/dist/cjs/interfaces/Access.js +3 -0
  58. package/dist/{interfaces → cjs/interfaces}/Access.js.map +1 -1
  59. package/dist/cjs/interfaces/Attendance.d.ts.map +1 -0
  60. package/dist/cjs/interfaces/Attendance.js +3 -0
  61. package/dist/cjs/interfaces/Attendance.js.map +1 -0
  62. package/dist/cjs/interfaces/Content.d.ts.map +1 -0
  63. package/dist/cjs/interfaces/Content.js +3 -0
  64. package/dist/{interfaces → cjs/interfaces}/Content.js.map +1 -1
  65. package/dist/cjs/interfaces/Doing.d.ts.map +1 -0
  66. package/dist/cjs/interfaces/Doing.js +3 -0
  67. package/dist/{interfaces → cjs/interfaces}/Doing.js.map +1 -1
  68. package/dist/cjs/interfaces/Donation.d.ts.map +1 -0
  69. package/dist/{interfaces → cjs/interfaces}/Donation.js +5 -1
  70. package/dist/cjs/interfaces/Donation.js.map +1 -0
  71. package/dist/cjs/interfaces/Error.d.ts.map +1 -0
  72. package/dist/cjs/interfaces/Error.js +3 -0
  73. package/dist/{interfaces → cjs/interfaces}/Error.js.map +1 -1
  74. package/dist/cjs/interfaces/Lessons.d.ts.map +1 -0
  75. package/dist/cjs/interfaces/Lessons.js +4 -0
  76. package/dist/cjs/interfaces/Lessons.js.map +1 -0
  77. package/dist/cjs/interfaces/Membership.d.ts.map +1 -0
  78. package/dist/cjs/interfaces/Membership.js +3 -0
  79. package/dist/cjs/interfaces/Membership.js.map +1 -0
  80. package/dist/cjs/interfaces/Messaging.d.ts.map +1 -0
  81. package/dist/cjs/interfaces/Messaging.js +3 -0
  82. package/dist/{interfaces → cjs/interfaces}/Messaging.js.map +1 -1
  83. package/dist/cjs/interfaces/Permissions.d.ts.map +1 -0
  84. package/dist/{interfaces → cjs/interfaces}/Permissions.js +5 -1
  85. package/dist/cjs/interfaces/Permissions.js.map +1 -0
  86. package/dist/cjs/interfaces/Reporting.d.ts.map +1 -0
  87. package/dist/cjs/interfaces/Reporting.js +3 -0
  88. package/dist/{interfaces → cjs/interfaces}/Reporting.js.map +1 -1
  89. package/dist/cjs/interfaces/UserContextInterface.d.ts.map +1 -0
  90. package/dist/cjs/interfaces/UserContextInterface.js +3 -0
  91. package/dist/cjs/interfaces/UserContextInterface.js.map +1 -0
  92. package/dist/cjs/interfaces/index.d.ts.map +1 -0
  93. package/dist/cjs/interfaces/index.js +30 -0
  94. package/dist/cjs/interfaces/index.js.map +1 -0
  95. package/dist/cjs/package.json +1 -0
  96. package/dist/esm/ApiHelper.d.ts +28 -0
  97. package/dist/esm/ApiHelper.d.ts.map +1 -0
  98. package/dist/esm/ApiHelper.js +159 -0
  99. package/dist/esm/ApiHelper.js.map +1 -0
  100. package/dist/esm/AppearanceHelper.d.ts +19 -0
  101. package/dist/esm/AppearanceHelper.d.ts.map +1 -0
  102. package/dist/esm/AppearanceHelper.js +64 -0
  103. package/dist/esm/AppearanceHelper.js.map +1 -0
  104. package/dist/esm/ArrayHelper.d.ts +16 -0
  105. package/dist/esm/ArrayHelper.d.ts.map +1 -0
  106. package/dist/esm/ArrayHelper.js +169 -0
  107. package/dist/esm/ArrayHelper.js.map +1 -0
  108. package/dist/esm/CommonEnvironmentHelper.d.ts +22 -0
  109. package/dist/esm/CommonEnvironmentHelper.d.ts.map +1 -0
  110. package/dist/esm/CommonEnvironmentHelper.js +104 -0
  111. package/dist/esm/CommonEnvironmentHelper.js.map +1 -0
  112. package/dist/esm/CurrencyHelper.d.ts +4 -0
  113. package/dist/esm/CurrencyHelper.d.ts.map +1 -0
  114. package/dist/esm/CurrencyHelper.js +15 -0
  115. package/dist/esm/CurrencyHelper.js.map +1 -0
  116. package/dist/esm/DateHelper.d.ts +23 -0
  117. package/dist/esm/DateHelper.d.ts.map +1 -0
  118. package/dist/esm/DateHelper.js +144 -0
  119. package/dist/esm/DateHelper.js.map +1 -0
  120. package/dist/esm/DonationHelper.d.ts +8 -0
  121. package/dist/esm/DonationHelper.d.ts.map +1 -0
  122. package/dist/esm/DonationHelper.js +33 -0
  123. package/dist/esm/DonationHelper.js.map +1 -0
  124. package/dist/esm/ErrorHelper.d.ts +13 -0
  125. package/dist/esm/ErrorHelper.d.ts.map +1 -0
  126. package/dist/esm/ErrorHelper.js +34 -0
  127. package/dist/esm/ErrorHelper.js.map +1 -0
  128. package/dist/esm/EventHelper.d.ts +12 -0
  129. package/dist/esm/EventHelper.d.ts.map +1 -0
  130. package/dist/esm/EventHelper.js +43 -0
  131. package/dist/esm/EventHelper.js.map +1 -0
  132. package/dist/esm/FileHelper.d.ts +5 -0
  133. package/dist/esm/FileHelper.d.ts.map +1 -0
  134. package/dist/esm/FileHelper.js +57 -0
  135. package/dist/esm/FileHelper.js.map +1 -0
  136. package/dist/esm/PersonHelper.d.ts +14 -0
  137. package/dist/esm/PersonHelper.d.ts.map +1 -0
  138. package/dist/esm/PersonHelper.js +84 -0
  139. package/dist/esm/PersonHelper.js.map +1 -0
  140. package/dist/esm/PlanHelper.d.ts +25 -0
  141. package/dist/esm/PlanHelper.d.ts.map +1 -0
  142. package/dist/esm/PlanHelper.js +114 -0
  143. package/dist/esm/PlanHelper.js.map +1 -0
  144. package/dist/esm/UniqueIdHelper.d.ts +9 -0
  145. package/dist/esm/UniqueIdHelper.d.ts.map +1 -0
  146. package/dist/esm/UniqueIdHelper.js +37 -0
  147. package/dist/esm/UniqueIdHelper.js.map +1 -0
  148. package/dist/esm/UserHelper.d.ts +14 -0
  149. package/dist/esm/UserHelper.d.ts.map +1 -0
  150. package/dist/esm/UserHelper.js +65 -0
  151. package/dist/esm/UserHelper.js.map +1 -0
  152. package/dist/esm/contentProviders/ContentProvider.d.ts +7 -0
  153. package/dist/esm/contentProviders/ContentProvider.d.ts.map +1 -0
  154. package/dist/esm/contentProviders/ContentProvider.js +3 -0
  155. package/dist/esm/contentProviders/ContentProvider.js.map +1 -0
  156. package/dist/esm/contentProviders/LessonsContentProvider.d.ts +66 -0
  157. package/dist/esm/contentProviders/LessonsContentProvider.d.ts.map +1 -0
  158. package/dist/esm/contentProviders/LessonsContentProvider.js +241 -0
  159. package/dist/esm/contentProviders/LessonsContentProvider.js.map +1 -0
  160. package/dist/esm/contentProviders/index.d.ts +3 -0
  161. package/dist/esm/contentProviders/index.d.ts.map +1 -0
  162. package/dist/esm/contentProviders/index.js +6 -0
  163. package/dist/esm/contentProviders/index.js.map +1 -0
  164. package/dist/{index.js → esm/index.d.ts} +1 -1
  165. package/dist/esm/index.d.ts.map +1 -0
  166. package/dist/esm/index.js +48 -0
  167. package/dist/esm/index.js.map +1 -0
  168. package/dist/esm/interfaces/Access.d.ts +132 -0
  169. package/dist/esm/interfaces/Access.d.ts.map +1 -0
  170. package/dist/esm/interfaces/Access.js +3 -0
  171. package/dist/esm/interfaces/Access.js.map +1 -0
  172. package/dist/esm/interfaces/Attendance.d.ts +45 -0
  173. package/dist/esm/interfaces/Attendance.d.ts.map +1 -0
  174. package/dist/esm/interfaces/Attendance.js +3 -0
  175. package/dist/esm/interfaces/Attendance.js.map +1 -0
  176. package/dist/esm/interfaces/Content.d.ts +86 -0
  177. package/dist/esm/interfaces/Content.d.ts.map +1 -0
  178. package/dist/esm/interfaces/Content.js +3 -0
  179. package/dist/esm/interfaces/Content.js.map +1 -0
  180. package/dist/esm/interfaces/Doing.d.ts +130 -0
  181. package/dist/esm/interfaces/Doing.d.ts.map +1 -0
  182. package/dist/esm/interfaces/Doing.js +3 -0
  183. package/dist/esm/interfaces/Doing.js.map +1 -0
  184. package/dist/esm/interfaces/Donation.d.ts +180 -0
  185. package/dist/esm/interfaces/Donation.d.ts.map +1 -0
  186. package/dist/esm/interfaces/Donation.js +27 -0
  187. package/dist/esm/interfaces/Donation.js.map +1 -0
  188. package/dist/esm/interfaces/Error.d.ts +17 -0
  189. package/dist/esm/interfaces/Error.d.ts.map +1 -0
  190. package/dist/esm/interfaces/Error.js +3 -0
  191. package/dist/esm/interfaces/Error.js.map +1 -0
  192. package/dist/esm/interfaces/Lessons.d.ts +47 -0
  193. package/dist/esm/interfaces/Lessons.d.ts.map +1 -0
  194. package/dist/esm/interfaces/Lessons.js +4 -0
  195. package/dist/esm/interfaces/Lessons.js.map +1 -0
  196. package/dist/esm/interfaces/Membership.d.ts +187 -0
  197. package/dist/esm/interfaces/Membership.d.ts.map +1 -0
  198. package/dist/esm/interfaces/Membership.js +3 -0
  199. package/dist/esm/interfaces/Membership.js.map +1 -0
  200. package/dist/esm/interfaces/Messaging.d.ts +86 -0
  201. package/dist/esm/interfaces/Messaging.d.ts.map +1 -0
  202. package/dist/esm/interfaces/Messaging.js +3 -0
  203. package/dist/esm/interfaces/Messaging.js.map +1 -0
  204. package/dist/esm/interfaces/Permissions.d.ts +166 -0
  205. package/dist/esm/interfaces/Permissions.d.ts.map +1 -0
  206. package/dist/esm/interfaces/Permissions.js +94 -0
  207. package/dist/esm/interfaces/Permissions.js.map +1 -0
  208. package/dist/esm/interfaces/Reporting.d.ts +45 -0
  209. package/dist/esm/interfaces/Reporting.d.ts.map +1 -0
  210. package/dist/esm/interfaces/Reporting.js +3 -0
  211. package/dist/esm/interfaces/Reporting.js.map +1 -0
  212. package/dist/esm/interfaces/UserContextInterface.d.ts +13 -0
  213. package/dist/esm/interfaces/UserContextInterface.d.ts.map +1 -0
  214. package/dist/esm/interfaces/UserContextInterface.js +3 -0
  215. package/dist/esm/interfaces/UserContextInterface.js.map +1 -0
  216. package/dist/{interfaces/index.js → esm/interfaces/index.d.ts} +1 -2
  217. package/dist/esm/interfaces/index.d.ts.map +1 -0
  218. package/dist/esm/interfaces/index.js +30 -0
  219. package/dist/esm/interfaces/index.js.map +1 -0
  220. package/dist/esm/package.json +1 -0
  221. package/package.json +9 -10
  222. package/src/EventHelper.ts +1 -3
  223. package/tsconfig.cjs.json +8 -0
  224. package/tsconfig.json +1 -1
  225. package/dist/ApiHelper.d.ts.map +0 -1
  226. package/dist/ApiHelper.js.map +0 -1
  227. package/dist/AppearanceHelper.d.ts.map +0 -1
  228. package/dist/AppearanceHelper.js.map +0 -1
  229. package/dist/ArrayHelper.d.ts.map +0 -1
  230. package/dist/ArrayHelper.js.map +0 -1
  231. package/dist/CommonEnvironmentHelper.d.ts.map +0 -1
  232. package/dist/CommonEnvironmentHelper.js.map +0 -1
  233. package/dist/CurrencyHelper.d.ts.map +0 -1
  234. package/dist/CurrencyHelper.js.map +0 -1
  235. package/dist/DateHelper.d.ts.map +0 -1
  236. package/dist/DateHelper.js.map +0 -1
  237. package/dist/DonationHelper.d.ts.map +0 -1
  238. package/dist/DonationHelper.js.map +0 -1
  239. package/dist/ErrorHelper.d.ts.map +0 -1
  240. package/dist/ErrorHelper.js.map +0 -1
  241. package/dist/EventHelper.d.ts.map +0 -1
  242. package/dist/EventHelper.js.map +0 -1
  243. package/dist/FileHelper.d.ts.map +0 -1
  244. package/dist/FileHelper.js.map +0 -1
  245. package/dist/PersonHelper.d.ts.map +0 -1
  246. package/dist/PersonHelper.js.map +0 -1
  247. package/dist/PlanHelper.d.ts.map +0 -1
  248. package/dist/PlanHelper.js.map +0 -1
  249. package/dist/UniqueIdHelper.d.ts.map +0 -1
  250. package/dist/UniqueIdHelper.js.map +0 -1
  251. package/dist/UserHelper.d.ts.map +0 -1
  252. package/dist/UserHelper.js.map +0 -1
  253. package/dist/contentProviders/ContentProvider.d.ts.map +0 -1
  254. package/dist/contentProviders/ContentProvider.js +0 -2
  255. package/dist/contentProviders/ContentProvider.js.map +0 -1
  256. package/dist/contentProviders/LessonsContentProvider.d.ts.map +0 -1
  257. package/dist/contentProviders/LessonsContentProvider.js.map +0 -1
  258. package/dist/contentProviders/index.d.ts.map +0 -1
  259. package/dist/contentProviders/index.js +0 -2
  260. package/dist/contentProviders/index.js.map +0 -1
  261. package/dist/index.d.ts.map +0 -1
  262. package/dist/index.js.map +0 -1
  263. package/dist/interfaces/Access.d.ts.map +0 -1
  264. package/dist/interfaces/Access.js +0 -2
  265. package/dist/interfaces/Attendance.d.ts.map +0 -1
  266. package/dist/interfaces/Attendance.js +0 -2
  267. package/dist/interfaces/Attendance.js.map +0 -1
  268. package/dist/interfaces/Content.d.ts.map +0 -1
  269. package/dist/interfaces/Content.js +0 -2
  270. package/dist/interfaces/Doing.d.ts.map +0 -1
  271. package/dist/interfaces/Doing.js +0 -2
  272. package/dist/interfaces/Donation.d.ts.map +0 -1
  273. package/dist/interfaces/Donation.js.map +0 -1
  274. package/dist/interfaces/Error.d.ts.map +0 -1
  275. package/dist/interfaces/Error.js +0 -2
  276. package/dist/interfaces/Lessons.d.ts.map +0 -1
  277. package/dist/interfaces/Lessons.js +0 -3
  278. package/dist/interfaces/Lessons.js.map +0 -1
  279. package/dist/interfaces/Membership.d.ts.map +0 -1
  280. package/dist/interfaces/Membership.js +0 -2
  281. package/dist/interfaces/Membership.js.map +0 -1
  282. package/dist/interfaces/Messaging.d.ts.map +0 -1
  283. package/dist/interfaces/Messaging.js +0 -2
  284. package/dist/interfaces/Permissions.d.ts.map +0 -1
  285. package/dist/interfaces/Permissions.js.map +0 -1
  286. package/dist/interfaces/Reporting.d.ts.map +0 -1
  287. package/dist/interfaces/Reporting.js +0 -2
  288. package/dist/interfaces/UserContextInterface.d.ts.map +0 -1
  289. package/dist/interfaces/UserContextInterface.js +0 -2
  290. package/dist/interfaces/UserContextInterface.js.map +0 -1
  291. package/dist/interfaces/index.d.ts.map +0 -1
  292. package/dist/interfaces/index.js.map +0 -1
  293. /package/dist/{ApiHelper.d.ts → cjs/ApiHelper.d.ts} +0 -0
  294. /package/dist/{AppearanceHelper.d.ts → cjs/AppearanceHelper.d.ts} +0 -0
  295. /package/dist/{ArrayHelper.d.ts → cjs/ArrayHelper.d.ts} +0 -0
  296. /package/dist/{CommonEnvironmentHelper.d.ts → cjs/CommonEnvironmentHelper.d.ts} +0 -0
  297. /package/dist/{CurrencyHelper.d.ts → cjs/CurrencyHelper.d.ts} +0 -0
  298. /package/dist/{DateHelper.d.ts → cjs/DateHelper.d.ts} +0 -0
  299. /package/dist/{DonationHelper.d.ts → cjs/DonationHelper.d.ts} +0 -0
  300. /package/dist/{ErrorHelper.d.ts → cjs/ErrorHelper.d.ts} +0 -0
  301. /package/dist/{FileHelper.d.ts → cjs/FileHelper.d.ts} +0 -0
  302. /package/dist/{PersonHelper.d.ts → cjs/PersonHelper.d.ts} +0 -0
  303. /package/dist/{PlanHelper.d.ts → cjs/PlanHelper.d.ts} +0 -0
  304. /package/dist/{UniqueIdHelper.d.ts → cjs/UniqueIdHelper.d.ts} +0 -0
  305. /package/dist/{UserHelper.d.ts → cjs/UserHelper.d.ts} +0 -0
  306. /package/dist/{contentProviders → cjs/contentProviders}/ContentProvider.d.ts +0 -0
  307. /package/dist/{contentProviders → cjs/contentProviders}/LessonsContentProvider.d.ts +0 -0
  308. /package/dist/{contentProviders → cjs/contentProviders}/index.d.ts +0 -0
  309. /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
  310. /package/dist/{interfaces → cjs/interfaces}/Access.d.ts +0 -0
  311. /package/dist/{interfaces → cjs/interfaces}/Attendance.d.ts +0 -0
  312. /package/dist/{interfaces → cjs/interfaces}/Content.d.ts +0 -0
  313. /package/dist/{interfaces → cjs/interfaces}/Doing.d.ts +0 -0
  314. /package/dist/{interfaces → cjs/interfaces}/Donation.d.ts +0 -0
  315. /package/dist/{interfaces → cjs/interfaces}/Error.d.ts +0 -0
  316. /package/dist/{interfaces → cjs/interfaces}/Lessons.d.ts +0 -0
  317. /package/dist/{interfaces → cjs/interfaces}/Membership.d.ts +0 -0
  318. /package/dist/{interfaces → cjs/interfaces}/Messaging.d.ts +0 -0
  319. /package/dist/{interfaces → cjs/interfaces}/Permissions.d.ts +0 -0
  320. /package/dist/{interfaces → cjs/interfaces}/Reporting.d.ts +0 -0
  321. /package/dist/{interfaces → cjs/interfaces}/UserContextInterface.d.ts +0 -0
  322. /package/dist/{interfaces → cjs/interfaces}/index.d.ts +0 -0
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PlanHelper = void 0;
4
+ const LessonsContentProvider_js_1 = require("./contentProviders/LessonsContentProvider.js");
5
+ class PlanHelper {
6
+ static providers = [
7
+ new LessonsContentProvider_js_1.LessonsContentProvider()
8
+ ];
9
+ // Register additional content providers
10
+ static registerProvider(provider) {
11
+ // Avoid duplicates
12
+ if (!this.providers.find(p => p.providerId === provider.providerId)) {
13
+ this.providers.push(provider);
14
+ }
15
+ }
16
+ // Replace a provider (useful for configuring with different URLs)
17
+ static replaceProvider(provider) {
18
+ const index = this.providers.findIndex(p => p.providerId === provider.providerId);
19
+ if (index >= 0) {
20
+ this.providers[index] = provider;
21
+ }
22
+ else {
23
+ this.providers.push(provider);
24
+ }
25
+ }
26
+ // Main method: populate planItems with their content
27
+ static async populate(plan, planItems) {
28
+ // Flatten hierarchy to get all items
29
+ const allItems = this.flattenItems(planItems);
30
+ // Group items by provider
31
+ const itemsByProvider = new Map();
32
+ for (const item of allItems) {
33
+ for (const provider of this.providers) {
34
+ if (provider.canHandle(plan, item)) {
35
+ const existing = itemsByProvider.get(provider) || [];
36
+ existing.push(item);
37
+ itemsByProvider.set(provider, existing);
38
+ break; // First matching provider wins
39
+ }
40
+ }
41
+ }
42
+ // Fetch content from each provider in parallel
43
+ const fetchPromises = [];
44
+ const contentMap = new Map();
45
+ for (const [provider, items] of itemsByProvider) {
46
+ fetchPromises.push(provider.fetchContent(plan, items).then(providerContent => {
47
+ for (const [itemId, content] of providerContent) {
48
+ contentMap.set(itemId, content);
49
+ }
50
+ }));
51
+ }
52
+ await Promise.all(fetchPromises);
53
+ // Attach content to items (mutates in place for efficiency)
54
+ this.attachContent(planItems, contentMap);
55
+ return planItems;
56
+ }
57
+ // Flatten nested planItems for processing
58
+ static flattenItems(items) {
59
+ const result = [];
60
+ const collect = (itemList) => {
61
+ for (const item of itemList) {
62
+ result.push(item);
63
+ if (item.children?.length) {
64
+ collect(item.children);
65
+ }
66
+ }
67
+ };
68
+ collect(items);
69
+ return result;
70
+ }
71
+ // Attach content to items recursively
72
+ static attachContent(items, contentMap) {
73
+ for (const item of items) {
74
+ const content = contentMap.get(item.id);
75
+ if (content) {
76
+ item.content = content;
77
+ }
78
+ if (item.children?.length) {
79
+ this.attachContent(item.children, contentMap);
80
+ }
81
+ }
82
+ }
83
+ // Convenience: Get the lessons provider for direct lesson operations
84
+ static getLessonsProvider() {
85
+ return this.providers.find(p => p.providerId === "lessons");
86
+ }
87
+ // ============================================
88
+ // Time Formatting Utilities
89
+ // ============================================
90
+ /**
91
+ * Format seconds as MM:SS string
92
+ * @param seconds - Number of seconds to format
93
+ * @returns Formatted time string (e.g., "3:45")
94
+ */
95
+ static formatTime(seconds) {
96
+ const mins = Math.floor(seconds / 60);
97
+ const secs = seconds % 60;
98
+ return mins + ":" + (secs < 10 ? "0" : "") + secs;
99
+ }
100
+ /**
101
+ * Calculate total duration of a section's children
102
+ * @param section - PlanItem with children
103
+ * @returns Total seconds from all children
104
+ */
105
+ static getSectionDuration(section) {
106
+ let totalSeconds = 0;
107
+ section.children?.forEach((child) => {
108
+ totalSeconds += child.seconds || 0;
109
+ });
110
+ return totalSeconds;
111
+ }
112
+ }
113
+ exports.PlanHelper = PlanHelper;
114
+ //# sourceMappingURL=PlanHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlanHelper.js","sourceRoot":"","sources":["../../src/PlanHelper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare class UniqueIdHelper {
2
+ static chars: string[];
3
+ static alphanumericChars: string[];
4
+ static isMissing(obj: any): boolean;
5
+ static shortId(): string;
6
+ static generateAlphanumeric(): string;
7
+ static generate(charList: string[], length: number): string;
8
+ }
9
+ //# sourceMappingURL=UniqueIdHelper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UniqueIdHelper.d.ts","sourceRoot":"","sources":["../../src/UniqueIdHelper.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAc;IAEzB,MAAM,CAAC,KAAK,WAGA;IAEZ,MAAM,CAAC,iBAAiB,WAE4B;WAEtC,SAAS,CAAC,GAAG,EAAE,GAAG;WAMlB,OAAO;WAIP,oBAAoB;WAIpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM;CAU1D"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UniqueIdHelper = void 0;
4
+ class UniqueIdHelper {
5
+ static chars = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
6
+ "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
7
+ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
8
+ "-", "_"];
9
+ static alphanumericChars = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
10
+ "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
11
+ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];
12
+ static isMissing(obj) {
13
+ if (obj === undefined || obj === null)
14
+ return true;
15
+ else if (obj.toString() === "")
16
+ return true;
17
+ else
18
+ return false;
19
+ }
20
+ static shortId() {
21
+ return this.generate(UniqueIdHelper.chars, 11);
22
+ }
23
+ static generateAlphanumeric() {
24
+ return this.generate(UniqueIdHelper.alphanumericChars, 11);
25
+ }
26
+ static generate(charList, length) {
27
+ let result = "";
28
+ for (let i = 0; i < length; i++) {
29
+ const idx = Math.floor(Math.random() * charList.length);
30
+ const c = charList[idx];
31
+ result += c;
32
+ }
33
+ return result;
34
+ }
35
+ }
36
+ exports.UniqueIdHelper = UniqueIdHelper;
37
+ //# sourceMappingURL=UniqueIdHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UniqueIdHelper.js","sourceRoot":"","sources":["../../src/UniqueIdHelper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { UserInterface, UserContextInterface, IApiPermission, PersonInterface, LoginUserChurchInterface } from "./interfaces/index.js";
2
+ export declare class UserHelper {
3
+ static currentUserChurch: LoginUserChurchInterface;
4
+ static userChurches: LoginUserChurchInterface[];
5
+ static user: UserInterface;
6
+ static churchChanged: boolean;
7
+ static person: PersonInterface;
8
+ static selectChurch: (context?: UserContextInterface, churchId?: string, keyName?: string) => Promise<void>;
9
+ static setupApiHelper(userChurch: LoginUserChurchInterface): void;
10
+ static setupApiHelperNoChurch(user: LoginUserChurchInterface): void;
11
+ static checkAccess({ api, contentType, action }: IApiPermission): boolean;
12
+ static createAppUrl(appUrl: string, returnUrl: string): string;
13
+ }
14
+ //# sourceMappingURL=UserHelper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserHelper.d.ts","sourceRoot":"","sources":["../../src/UserHelper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,cAAc,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEvI,qBAAa,UAAU;IACrB,MAAM,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;IACnD,MAAM,CAAC,YAAY,EAAE,wBAAwB,EAAE,CAAC;IAChD,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC;IAC3B,MAAM,CAAC,aAAa,EAAE,OAAO,CAAS;IACtC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IAE/B,MAAM,CAAC,YAAY,GAAU,UAAU,oBAAoB,EAAE,WAAW,MAAM,EAAE,UAAU,MAAM,mBAoB/F;IAED,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,wBAAwB;IAK1D,MAAM,CAAC,sBAAsB,CAAC,IAAI,EAAE,wBAAwB;IAI5D,MAAM,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,cAAc,GAAG,OAAO;IAczE,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAMtD"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UserHelper = void 0;
4
+ const ApiHelper_js_1 = require("./ApiHelper.js");
5
+ class UserHelper {
6
+ static currentUserChurch;
7
+ static userChurches;
8
+ static user;
9
+ static churchChanged = false;
10
+ static person;
11
+ static selectChurch = async (context, churchId, keyName) => {
12
+ let userChurch = null;
13
+ if (churchId) {
14
+ UserHelper.userChurches.forEach(uc => {
15
+ if (uc.church.id === churchId)
16
+ userChurch = uc;
17
+ });
18
+ }
19
+ else if (keyName)
20
+ UserHelper.userChurches.forEach(uc => { if (uc.church.subDomain === keyName)
21
+ userChurch = uc; });
22
+ else
23
+ userChurch = UserHelper.userChurches[0];
24
+ if (!userChurch)
25
+ return;
26
+ else {
27
+ UserHelper.currentUserChurch = userChurch;
28
+ UserHelper.setupApiHelper(UserHelper.currentUserChurch);
29
+ // TODO - remove context code from here and perform the logic in the component itself.
30
+ if (context) {
31
+ if (context.userChurch !== null)
32
+ UserHelper.churchChanged = true;
33
+ context.setUserChurch(UserHelper.currentUserChurch);
34
+ }
35
+ }
36
+ };
37
+ static setupApiHelper(userChurch) {
38
+ ApiHelper_js_1.ApiHelper.setDefaultPermissions(userChurch.jwt);
39
+ userChurch.apis.forEach(api => { ApiHelper_js_1.ApiHelper.setPermissions(api.keyName, api.jwt, api.permissions); });
40
+ }
41
+ static setupApiHelperNoChurch(user) {
42
+ ApiHelper_js_1.ApiHelper.setDefaultPermissions(user.jwt);
43
+ }
44
+ static checkAccess({ api, contentType, action }) {
45
+ const config = ApiHelper_js_1.ApiHelper.getConfig(api);
46
+ if (!config)
47
+ return false;
48
+ const permissions = config.permissions;
49
+ let result = false;
50
+ if (permissions !== undefined) {
51
+ permissions.forEach(element => {
52
+ if (element.contentType === contentType && element.action === action)
53
+ result = true;
54
+ });
55
+ }
56
+ return result;
57
+ }
58
+ static createAppUrl(appUrl, returnUrl) {
59
+ const config = ApiHelper_js_1.ApiHelper.getConfig("MembershipApi");
60
+ const jwt = config?.jwt || "";
61
+ return `${appUrl}/login/?jwt=${jwt}&returnUrl=${returnUrl}`;
62
+ }
63
+ }
64
+ exports.UserHelper = UserHelper;
65
+ //# sourceMappingURL=UserHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserHelper.js","sourceRoot":"","sources":["../../src/UserHelper.ts"],"names":[],"mappings":";;;AAAA,iDAA0C;AAG1C,MAAa,UAAU;IACrB,MAAM,CAAC,iBAAiB,CAA2B;IACnD,MAAM,CAAC,YAAY,CAA6B;IAChD,MAAM,CAAC,IAAI,CAAgB;IAC3B,MAAM,CAAC,aAAa,GAAY,KAAK,CAAC;IACtC,MAAM,CAAC,MAAM,CAAkB;IAE/B,MAAM,CAAC,YAAY,GAAG,KAAK,EAAE,OAA8B,EAAE,QAAiB,EAAE,OAAgB,EAAE,EAAE;QAClG,IAAI,UAAU,GAAG,IAAI,CAAC;QAEtB,IAAI,QAAQ,EAAE,CAAC;YACb,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBACnC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ;oBAAE,UAAU,GAAG,EAAE,CAAC;YACjD,CAAC,CAAC,CAAC;QACL,CAAC;aACI,IAAI,OAAO;YAAE,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,OAAO;gBAAE,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;;YAC9G,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU;YAAE,OAAO;aACnB,CAAC;YACJ,UAAU,CAAC,iBAAiB,GAAG,UAAU,CAAC;YAC1C,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;YACxD,sFAAsF;YACtF,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI;oBAAE,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC;gBACjE,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IAED,MAAM,CAAC,cAAc,CAAC,UAAoC;QACxD,wBAAS,CAAC,qBAAqB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAChD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,wBAAS,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvG,CAAC;IAED,MAAM,CAAC,sBAAsB,CAAC,IAA8B;QAC1D,wBAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAkB;QAC7D,MAAM,MAAM,GAAG,wBAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAEvC,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC5B,IAAI,OAAO,CAAC,WAAW,KAAK,WAAW,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;oBAAE,MAAM,GAAG,IAAI,CAAC;YACtF,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,MAAc,EAAE,SAAiB;QACnD,MAAM,MAAM,GAAG,wBAAS,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;QAE9B,OAAO,GAAG,MAAM,eAAe,GAAG,cAAc,SAAS,EAAE,CAAC;IAC9D,CAAC;;AAzDH,gCA0DC"}
@@ -0,0 +1,7 @@
1
+ import type { PlanInterface, PlanItemInterface, PlanItemContentInterface } from "../interfaces/index.js";
2
+ export interface ContentProviderInterface {
3
+ readonly providerId: string;
4
+ canHandle(plan: PlanInterface, planItem: PlanItemInterface): boolean;
5
+ fetchContent(plan: PlanInterface, planItems: PlanItemInterface[]): Promise<Map<string, PlanItemContentInterface>>;
6
+ }
7
+ //# sourceMappingURL=ContentProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentProvider.d.ts","sourceRoot":"","sources":["../../../src/contentProviders/ContentProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAEzG,MAAM,WAAW,wBAAwB;IAEvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAG5B,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC;IAGrE,YAAY,CACV,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,iBAAiB,EAAE,GAC7B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC;CACnD"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ContentProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentProvider.js","sourceRoot":"","sources":["../../../src/contentProviders/ContentProvider.ts"],"names":[],"mappings":""}
@@ -0,0 +1,66 @@
1
+ import type { PlanInterface, PlanItemInterface, PlanItemContentInterface, ExternalVenueRefInterface } from "../interfaces/index.js";
2
+ import type { VenuePlanItemsResponseInterface, VenueActionResponseInterface, LessonTreeInterface, LessonActionTreeInterface } from "../interfaces/Lessons.js";
3
+ import type { ContentProviderInterface } from "./ContentProvider.js";
4
+ export declare class LessonsContentProvider implements ContentProviderInterface {
5
+ readonly providerId = "lessons";
6
+ private lessonsUrl;
7
+ constructor(lessonsUrl?: string);
8
+ canHandle(plan: PlanInterface, planItem: PlanItemInterface): boolean;
9
+ fetchContent(plan: PlanInterface, planItems: PlanItemInterface[]): Promise<Map<string, PlanItemContentInterface>>;
10
+ hasAssociatedLesson(plan: PlanInterface): boolean;
11
+ isExternalVenue(plan: PlanInterface): boolean;
12
+ getExternalRef(plan: PlanInterface): ExternalVenueRefInterface | null;
13
+ getVenueId(plan: PlanInterface): string | null;
14
+ /**
15
+ * Fetch venue plan items - the basic hierarchical structure
16
+ * Returns: headers with children (sections), but sections don't have their actions
17
+ * Use this for preview mode display
18
+ */
19
+ fetchVenuePlanItems(plan: PlanInterface): Promise<VenuePlanItemsResponseInterface>;
20
+ /**
21
+ * Fetch venue actions - sections with their full action lists
22
+ * Use this for action selection dialogs and full expansion
23
+ */
24
+ fetchVenueActions(plan: PlanInterface): Promise<VenueActionResponseInterface>;
25
+ /**
26
+ * Fetch the full lesson tree for browsing (programs -> studies -> lessons -> venues)
27
+ */
28
+ fetchLessonTree(): Promise<LessonTreeInterface>;
29
+ /**
30
+ * Fetch the action tree for action selection (includes actions in each venue section)
31
+ */
32
+ fetchActionTree(): Promise<LessonActionTreeInterface>;
33
+ /**
34
+ * Get the display list - hierarchical items suitable for preview
35
+ * Structure: headers -> sections (no actions expanded)
36
+ * This is the lightweight version for showing what a lesson contains
37
+ */
38
+ getDisplayList(plan: PlanInterface): Promise<PlanItemInterface[]>;
39
+ /**
40
+ * Get display list with sections only (strip actions from children)
41
+ * Use this when importing a lesson as editable plan items
42
+ */
43
+ getSectionsOnlyList(plan: PlanInterface): Promise<PlanItemInterface[]>;
44
+ /**
45
+ * Get the fully expanded list - items with all actions populated in sections
46
+ * Merges fetchVenuePlanItems with fetchVenueActions to get complete data
47
+ */
48
+ getExpandedList(plan: PlanInterface): Promise<PlanItemInterface[]>;
49
+ /**
50
+ * Get embed URL for an action
51
+ */
52
+ getActionEmbedUrl(actionId: string, externalProviderId?: string): string;
53
+ /**
54
+ * Get embed URL for an add-on
55
+ */
56
+ getAddOnEmbedUrl(addOnId: string, externalProviderId?: string): string;
57
+ /**
58
+ * Get embed URL for a section
59
+ */
60
+ getSectionEmbedUrl(sectionId: string, externalProviderId?: string): string;
61
+ /**
62
+ * Get the external provider ID from a plan (if external)
63
+ */
64
+ getExternalProviderId(plan: PlanInterface): string | null;
65
+ }
66
+ //# sourceMappingURL=LessonsContentProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LessonsContentProvider.d.ts","sourceRoot":"","sources":["../../../src/contentProviders/LessonsContentProvider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACpI,OAAO,KAAK,EAAE,+BAA+B,EAAE,4BAA4B,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAC9J,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAErE,qBAAa,sBAAuB,YAAW,wBAAwB;IACrE,QAAQ,CAAC,UAAU,aAAa;IAEhC,OAAO,CAAC,UAAU,CAAS;gBAEf,UAAU,GAAE,MAAiC;IAIzD,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,iBAAiB,GAAG,OAAO;IAW9D,YAAY,CAChB,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,iBAAiB,EAAE,GAC7B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IA+CjD,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAIjD,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAI7C,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,yBAAyB,GAAG,IAAI;IASrE,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI;IAY9C;;;;OAIG;IACG,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,+BAA+B,CAAC;IAYxF;;;OAGG;IACG,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAYnF;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAIrD;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAQ3D;;;;OAIG;IACG,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAKvE;;;OAGG;IACG,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAiB5E;;;OAGG;IACG,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAmDxE;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM;IAOxE;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM;IAOtE;;OAEG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM;IAO1E;;OAEG;IACH,qBAAqB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI;CAI1D"}
@@ -0,0 +1,241 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LessonsContentProvider = void 0;
4
+ const ApiHelper_js_1 = require("../ApiHelper.js");
5
+ class LessonsContentProvider {
6
+ providerId = "lessons";
7
+ lessonsUrl;
8
+ constructor(lessonsUrl = "https://lessons.church") {
9
+ this.lessonsUrl = lessonsUrl;
10
+ }
11
+ canHandle(plan, planItem) {
12
+ // Handles: lessonAction, lessonAddOn, lessonSection, and items with relatedId when plan has lesson
13
+ const lessonTypes = ["lessonAction", "lessonAddOn", "lessonSection"];
14
+ const hasLessonPlan = plan?.contentType === "venue" || plan?.contentType === "externalVenue";
15
+ if (lessonTypes.includes(planItem.itemType) && planItem.relatedId)
16
+ return true;
17
+ if (planItem.itemType === "item" && planItem.relatedId && hasLessonPlan)
18
+ return true;
19
+ return false;
20
+ }
21
+ async fetchContent(plan, planItems) {
22
+ const result = new Map();
23
+ // Group by type for efficient batching
24
+ const actions = planItems.filter(p => p.itemType === "lessonAction" && p.relatedId);
25
+ const addOns = planItems.filter(p => p.itemType === "lessonAddOn" && p.relatedId);
26
+ const sections = planItems.filter(p => (p.itemType === "lessonSection" || p.itemType === "item") && p.relatedId);
27
+ const externalRef = this.getExternalRef(plan);
28
+ // Build embed URLs for each item
29
+ for (const item of actions) {
30
+ result.set(item.id, {
31
+ provider: this.providerId,
32
+ embedUrl: externalRef
33
+ ? `${this.lessonsUrl}/embed/external/${externalRef.externalProviderId}/action/${item.relatedId}`
34
+ : `${this.lessonsUrl}/embed/action/${item.relatedId}`
35
+ });
36
+ }
37
+ for (const item of addOns) {
38
+ result.set(item.id, {
39
+ provider: this.providerId,
40
+ embedUrl: externalRef
41
+ ? `${this.lessonsUrl}/embed/external/${externalRef.externalProviderId}/addon/${item.relatedId}`
42
+ : `${this.lessonsUrl}/embed/addon/${item.relatedId}`
43
+ });
44
+ }
45
+ for (const item of sections) {
46
+ result.set(item.id, {
47
+ provider: this.providerId,
48
+ embedUrl: externalRef
49
+ ? `${this.lessonsUrl}/embed/external/${externalRef.externalProviderId}/section/${item.relatedId}`
50
+ : `${this.lessonsUrl}/embed/section/${item.relatedId}`
51
+ });
52
+ }
53
+ return result;
54
+ }
55
+ // ============================================
56
+ // Plan/Lesson Association Methods
57
+ // ============================================
58
+ hasAssociatedLesson(plan) {
59
+ return (plan?.contentType === "venue" || plan?.contentType === "externalVenue") && !!plan?.contentId;
60
+ }
61
+ isExternalVenue(plan) {
62
+ return plan?.contentType === "externalVenue";
63
+ }
64
+ getExternalRef(plan) {
65
+ if (!this.isExternalVenue(plan) || !plan?.contentId)
66
+ return null;
67
+ try {
68
+ return JSON.parse(plan.contentId);
69
+ }
70
+ catch {
71
+ return null;
72
+ }
73
+ }
74
+ getVenueId(plan) {
75
+ if (!this.hasAssociatedLesson(plan))
76
+ return null;
77
+ if (this.isExternalVenue(plan)) {
78
+ return this.getExternalRef(plan)?.venueId || null;
79
+ }
80
+ return plan.contentId || null;
81
+ }
82
+ // ============================================
83
+ // API Fetch Methods
84
+ // ============================================
85
+ /**
86
+ * Fetch venue plan items - the basic hierarchical structure
87
+ * Returns: headers with children (sections), but sections don't have their actions
88
+ * Use this for preview mode display
89
+ */
90
+ async fetchVenuePlanItems(plan) {
91
+ if (!this.hasAssociatedLesson(plan))
92
+ return { items: [] };
93
+ const externalRef = this.getExternalRef(plan);
94
+ if (externalRef) {
95
+ return await ApiHelper_js_1.ApiHelper.getAnonymous(`/externalProviders/${externalRef.externalProviderId}/venue/${externalRef.venueId}/planItems`, "LessonsApi");
96
+ }
97
+ return await ApiHelper_js_1.ApiHelper.getAnonymous(`/venues/public/planItems/${plan.contentId}`, "LessonsApi");
98
+ }
99
+ /**
100
+ * Fetch venue actions - sections with their full action lists
101
+ * Use this for action selection dialogs and full expansion
102
+ */
103
+ async fetchVenueActions(plan) {
104
+ if (!this.hasAssociatedLesson(plan))
105
+ return { sections: [] };
106
+ const externalRef = this.getExternalRef(plan);
107
+ if (externalRef) {
108
+ return await ApiHelper_js_1.ApiHelper.getAnonymous(`/externalProviders/${externalRef.externalProviderId}/venue/${externalRef.venueId}/actions`, "LessonsApi");
109
+ }
110
+ return await ApiHelper_js_1.ApiHelper.getAnonymous(`/venues/public/actions/${plan.contentId}`, "LessonsApi");
111
+ }
112
+ /**
113
+ * Fetch the full lesson tree for browsing (programs -> studies -> lessons -> venues)
114
+ */
115
+ async fetchLessonTree() {
116
+ return await ApiHelper_js_1.ApiHelper.getAnonymous("/lessons/public/tree", "LessonsApi");
117
+ }
118
+ /**
119
+ * Fetch the action tree for action selection (includes actions in each venue section)
120
+ */
121
+ async fetchActionTree() {
122
+ return await ApiHelper_js_1.ApiHelper.getAnonymous("/lessons/public/actionTree", "LessonsApi");
123
+ }
124
+ // ============================================
125
+ // Display List Methods (for preview/display without full actions)
126
+ // ============================================
127
+ /**
128
+ * Get the display list - hierarchical items suitable for preview
129
+ * Structure: headers -> sections (no actions expanded)
130
+ * This is the lightweight version for showing what a lesson contains
131
+ */
132
+ async getDisplayList(plan) {
133
+ const response = await this.fetchVenuePlanItems(plan);
134
+ return response?.items || [];
135
+ }
136
+ /**
137
+ * Get display list with sections only (strip actions from children)
138
+ * Use this when importing a lesson as editable plan items
139
+ */
140
+ async getSectionsOnlyList(plan) {
141
+ const response = await this.fetchVenuePlanItems(plan);
142
+ if (!response?.items)
143
+ return [];
144
+ return response.items.map(item => ({
145
+ ...item,
146
+ children: item.children?.map(section => ({
147
+ ...section,
148
+ children: undefined // Remove actions from sections
149
+ }))
150
+ }));
151
+ }
152
+ // ============================================
153
+ // Expanded List Methods (with full actions)
154
+ // ============================================
155
+ /**
156
+ * Get the fully expanded list - items with all actions populated in sections
157
+ * Merges fetchVenuePlanItems with fetchVenueActions to get complete data
158
+ */
159
+ async getExpandedList(plan) {
160
+ const [planItemsResponse, actionsResponse] = await Promise.all([
161
+ this.fetchVenuePlanItems(plan),
162
+ this.fetchVenueActions(plan)
163
+ ]);
164
+ if (!planItemsResponse?.items)
165
+ return [];
166
+ // Create a map of section ID -> actions
167
+ const sectionActionsMap = new Map();
168
+ if (actionsResponse?.sections) {
169
+ for (const section of actionsResponse.sections) {
170
+ if (section.id && section.actions) {
171
+ sectionActionsMap.set(section.id, section.actions.map(action => ({
172
+ itemType: "lessonAction",
173
+ relatedId: action.id,
174
+ label: action.name,
175
+ description: action.actionType,
176
+ seconds: action.seconds
177
+ })));
178
+ }
179
+ }
180
+ }
181
+ // Recursively expand sections with their actions
182
+ const expandItem = (item) => {
183
+ if (!item.children)
184
+ return item;
185
+ return {
186
+ ...item,
187
+ children: item.children.map(child => {
188
+ // If this is a section (has relatedId), try to get its actions
189
+ if (child.relatedId && sectionActionsMap.has(child.relatedId)) {
190
+ return {
191
+ ...child,
192
+ children: sectionActionsMap.get(child.relatedId)
193
+ };
194
+ }
195
+ // Otherwise recursively process
196
+ return expandItem(child);
197
+ })
198
+ };
199
+ };
200
+ return planItemsResponse.items.map(expandItem);
201
+ }
202
+ // ============================================
203
+ // Embed URL Helpers
204
+ // ============================================
205
+ /**
206
+ * Get embed URL for an action
207
+ */
208
+ getActionEmbedUrl(actionId, externalProviderId) {
209
+ if (externalProviderId) {
210
+ return `${this.lessonsUrl}/embed/external/${externalProviderId}/action/${actionId}`;
211
+ }
212
+ return `${this.lessonsUrl}/embed/action/${actionId}`;
213
+ }
214
+ /**
215
+ * Get embed URL for an add-on
216
+ */
217
+ getAddOnEmbedUrl(addOnId, externalProviderId) {
218
+ if (externalProviderId) {
219
+ return `${this.lessonsUrl}/embed/external/${externalProviderId}/addon/${addOnId}`;
220
+ }
221
+ return `${this.lessonsUrl}/embed/addon/${addOnId}`;
222
+ }
223
+ /**
224
+ * Get embed URL for a section
225
+ */
226
+ getSectionEmbedUrl(sectionId, externalProviderId) {
227
+ if (externalProviderId) {
228
+ return `${this.lessonsUrl}/embed/external/${externalProviderId}/section/${sectionId}`;
229
+ }
230
+ return `${this.lessonsUrl}/embed/section/${sectionId}`;
231
+ }
232
+ /**
233
+ * Get the external provider ID from a plan (if external)
234
+ */
235
+ getExternalProviderId(plan) {
236
+ const externalRef = this.getExternalRef(plan);
237
+ return externalRef?.externalProviderId || null;
238
+ }
239
+ }
240
+ exports.LessonsContentProvider = LessonsContentProvider;
241
+ //# sourceMappingURL=LessonsContentProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LessonsContentProvider.js","sourceRoot":"","sources":["../../../src/contentProviders/LessonsContentProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export type { ContentProviderInterface } from "./ContentProvider.js";
2
+ export { LessonsContentProvider } from "./LessonsContentProvider.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contentProviders/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LessonsContentProvider = void 0;
4
+ var LessonsContentProvider_js_1 = require("./LessonsContentProvider.js");
5
+ Object.defineProperty(exports, "LessonsContentProvider", { enumerable: true, get: function () { return LessonsContentProvider_js_1.LessonsContentProvider; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contentProviders/index.ts"],"names":[],"mappings":";;;AACA,yEAAqE;AAA5D,mIAAA,sBAAsB,OAAA"}