@dereekb/dbx-firebase 12.6.21 → 13.0.0

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 (440) hide show
  1. package/LICENSE +1 -1
  2. package/fesm2022/dereekb-dbx-firebase.mjs +910 -1396
  3. package/fesm2022/dereekb-dbx-firebase.mjs.map +1 -1
  4. package/package.json +21 -23
  5. package/types/dereekb-dbx-firebase.d.ts +4304 -0
  6. package/esm2022/dereekb-dbx-firebase.mjs +0 -5
  7. package/esm2022/index.mjs +0 -2
  8. package/esm2022/lib/analytics/analytics.user.events.providers.mjs +0 -25
  9. package/esm2022/lib/analytics/analytics.user.events.service.mjs +0 -37
  10. package/esm2022/lib/analytics/analytics.user.source.mjs +0 -48
  11. package/esm2022/lib/analytics/index.mjs +0 -4
  12. package/esm2022/lib/auth/appcheck/appcheck.interceptor.mjs +0 -76
  13. package/esm2022/lib/auth/appcheck/appcheck.mjs +0 -11
  14. package/esm2022/lib/auth/appcheck/index.mjs +0 -3
  15. package/esm2022/lib/auth/auth.mjs +0 -22
  16. package/esm2022/lib/auth/firebase.auth.module.mjs +0 -22
  17. package/esm2022/lib/auth/firebase.auth.providers.mjs +0 -27
  18. package/esm2022/lib/auth/index.mjs +0 -7
  19. package/esm2022/lib/auth/login/firebase.login.module.mjs +0 -124
  20. package/esm2022/lib/auth/login/firebase.login.providers.default.mjs +0 -109
  21. package/esm2022/lib/auth/login/firebase.login.providers.mjs +0 -59
  22. package/esm2022/lib/auth/login/index.mjs +0 -27
  23. package/esm2022/lib/auth/login/login.anonymous.component.mjs +0 -23
  24. package/esm2022/lib/auth/login/login.apple.component.mjs +0 -23
  25. package/esm2022/lib/auth/login/login.button.component.mjs +0 -148
  26. package/esm2022/lib/auth/login/login.component.mjs +0 -39
  27. package/esm2022/lib/auth/login/login.context.back.component.mjs +0 -26
  28. package/esm2022/lib/auth/login/login.context.directive.mjs +0 -30
  29. package/esm2022/lib/auth/login/login.context.mjs +0 -7
  30. package/esm2022/lib/auth/login/login.email.component.mjs +0 -24
  31. package/esm2022/lib/auth/login/login.email.content.component.mjs +0 -102
  32. package/esm2022/lib/auth/login/login.email.form.component.mjs +0 -27
  33. package/esm2022/lib/auth/login/login.email.recovery.form.component.mjs +0 -21
  34. package/esm2022/lib/auth/login/login.facebook.component.mjs +0 -23
  35. package/esm2022/lib/auth/login/login.github.component.mjs +0 -23
  36. package/esm2022/lib/auth/login/login.google.component.mjs +0 -23
  37. package/esm2022/lib/auth/login/login.list.component.mjs +0 -71
  38. package/esm2022/lib/auth/login/login.microsoft.component.mjs +0 -23
  39. package/esm2022/lib/auth/login/login.mjs +0 -3
  40. package/esm2022/lib/auth/login/login.password.mjs +0 -4
  41. package/esm2022/lib/auth/login/login.service.mjs +0 -127
  42. package/esm2022/lib/auth/login/login.terms.component.mjs +0 -29
  43. package/esm2022/lib/auth/login/login.terms.mjs +0 -6
  44. package/esm2022/lib/auth/login/login.terms.simple.component.mjs +0 -38
  45. package/esm2022/lib/auth/login/login.twitter.component.mjs +0 -23
  46. package/esm2022/lib/auth/login/register.component.mjs +0 -27
  47. package/esm2022/lib/auth/login/register.email.component.mjs +0 -23
  48. package/esm2022/lib/auth/service/firebase.auth.rxjs.mjs +0 -46
  49. package/esm2022/lib/auth/service/firebase.auth.service.delegate.mjs +0 -28
  50. package/esm2022/lib/auth/service/firebase.auth.service.mjs +0 -193
  51. package/esm2022/lib/auth/service/index.mjs +0 -4
  52. package/esm2022/lib/development/development.directive.mjs +0 -78
  53. package/esm2022/lib/development/development.module.mjs +0 -61
  54. package/esm2022/lib/development/development.popup.component.mjs +0 -44
  55. package/esm2022/lib/development/development.popup.content.component.mjs +0 -79
  56. package/esm2022/lib/development/development.popup.content.form.component.mjs +0 -39
  57. package/esm2022/lib/development/development.providers.mjs +0 -47
  58. package/esm2022/lib/development/development.scheduler.list.component.mjs +0 -79
  59. package/esm2022/lib/development/development.scheduler.service.mjs +0 -78
  60. package/esm2022/lib/development/development.scheduler.widget.component.mjs +0 -40
  61. package/esm2022/lib/development/development.service.mjs +0 -20
  62. package/esm2022/lib/development/development.widget.mjs +0 -2
  63. package/esm2022/lib/development/development.widget.service.mjs +0 -56
  64. package/esm2022/lib/development/index.mjs +0 -14
  65. package/esm2022/lib/firebase/appcheck.mjs +0 -2
  66. package/esm2022/lib/firebase/emulators.mjs +0 -14
  67. package/esm2022/lib/firebase/firebase.emulator.module.mjs +0 -23
  68. package/esm2022/lib/firebase/firebase.emulator.providers.mjs +0 -33
  69. package/esm2022/lib/firebase/firebase.emulator.service.mjs +0 -29
  70. package/esm2022/lib/firebase/firebase.module.mjs +0 -26
  71. package/esm2022/lib/firebase/firebase.options.environment.mjs +0 -2
  72. package/esm2022/lib/firebase/firebase.options.mjs +0 -3
  73. package/esm2022/lib/firebase/firebase.providers.mjs +0 -149
  74. package/esm2022/lib/firebase/index.mjs +0 -10
  75. package/esm2022/lib/firestore/firebase.firestore.context.service.mjs +0 -18
  76. package/esm2022/lib/firestore/firebase.firestore.mjs +0 -6
  77. package/esm2022/lib/firestore/firebase.firestore.module.mjs +0 -23
  78. package/esm2022/lib/firestore/firebase.firestore.providers.mjs +0 -86
  79. package/esm2022/lib/firestore/index.mjs +0 -5
  80. package/esm2022/lib/function/firebase.function.module.mjs +0 -23
  81. package/esm2022/lib/function/firebase.function.providers.mjs +0 -54
  82. package/esm2022/lib/function/index.mjs +0 -3
  83. package/esm2022/lib/index.mjs +0 -14
  84. package/esm2022/lib/model/error.mjs +0 -6
  85. package/esm2022/lib/model/index.mjs +0 -7
  86. package/esm2022/lib/model/loader/collection.change.trigger.mjs +0 -80
  87. package/esm2022/lib/model/loader/collection.change.watcher.mjs +0 -35
  88. package/esm2022/lib/model/loader/collection.loader.instance.mjs +0 -227
  89. package/esm2022/lib/model/loader/collection.loader.mjs +0 -2
  90. package/esm2022/lib/model/loader/document.loader.instance.mjs +0 -68
  91. package/esm2022/lib/model/loader/document.loader.mjs +0 -2
  92. package/esm2022/lib/model/loader/index.mjs +0 -7
  93. package/esm2022/lib/model/model.module.mjs +0 -17
  94. package/esm2022/lib/model/modules/index.mjs +0 -3
  95. package/esm2022/lib/model/modules/model/entities/index.mjs +0 -11
  96. package/esm2022/lib/model/modules/model/entities/model.entities.component.mjs +0 -122
  97. package/esm2022/lib/model/modules/model/entities/model.entities.entity.component.mjs +0 -79
  98. package/esm2022/lib/model/modules/model/entities/model.entities.mjs +0 -15
  99. package/esm2022/lib/model/modules/model/entities/model.entities.popover.button.component.mjs +0 -49
  100. package/esm2022/lib/model/modules/model/entities/model.entities.popover.component.mjs +0 -42
  101. package/esm2022/lib/model/modules/model/entities/model.entities.providers.mjs +0 -20
  102. package/esm2022/lib/model/modules/model/entities/model.entities.source.directive.mjs +0 -38
  103. package/esm2022/lib/model/modules/model/entities/model.entities.widget.entity.abstract.directive.mjs +0 -18
  104. package/esm2022/lib/model/modules/model/entities/model.entities.widget.entity.debug.component.mjs +0 -41
  105. package/esm2022/lib/model/modules/model/entities/model.entities.widget.mjs +0 -51
  106. package/esm2022/lib/model/modules/model/entities/model.entities.widget.service.mjs +0 -91
  107. package/esm2022/lib/model/modules/model/history/index.mjs +0 -7
  108. package/esm2022/lib/model/modules/model/history/model.history.component.mjs +0 -36
  109. package/esm2022/lib/model/modules/model/history/model.history.module.mjs +0 -26
  110. package/esm2022/lib/model/modules/model/history/model.history.popover.button.component.mjs +0 -40
  111. package/esm2022/lib/model/modules/model/history/model.history.popover.component.mjs +0 -36
  112. package/esm2022/lib/model/modules/model/history/model.sourceselect.history.mjs +0 -18
  113. package/esm2022/lib/model/modules/model/history/model.tracker.service.mjs +0 -58
  114. package/esm2022/lib/model/modules/model/index.mjs +0 -8
  115. package/esm2022/lib/model/modules/model/model.key.component.mjs +0 -51
  116. package/esm2022/lib/model/modules/model/model.types.list.component.mjs +0 -67
  117. package/esm2022/lib/model/modules/model/model.types.module.mjs +0 -26
  118. package/esm2022/lib/model/modules/model/model.types.providers.mjs +0 -20
  119. package/esm2022/lib/model/modules/model/model.types.service.mjs +0 -122
  120. package/esm2022/lib/model/modules/model/model.types.view.directive.mjs +0 -45
  121. package/esm2022/lib/model/modules/store/index.mjs +0 -22
  122. package/esm2022/lib/model/modules/store/model.store.module.mjs +0 -21
  123. package/esm2022/lib/model/modules/store/store.collection.change.directive.mjs +0 -45
  124. package/esm2022/lib/model/modules/store/store.collection.change.if.directive.mjs +0 -42
  125. package/esm2022/lib/model/modules/store/store.collection.crud.mjs +0 -28
  126. package/esm2022/lib/model/modules/store/store.collection.directive.mjs +0 -99
  127. package/esm2022/lib/model/modules/store/store.collection.list.directive.mjs +0 -31
  128. package/esm2022/lib/model/modules/store/store.collection.mjs +0 -79
  129. package/esm2022/lib/model/modules/store/store.document.context.store.directive.mjs +0 -19
  130. package/esm2022/lib/model/modules/store/store.document.context.store.link.mjs +0 -45
  131. package/esm2022/lib/model/modules/store/store.document.context.store.mjs +0 -86
  132. package/esm2022/lib/model/modules/store/store.document.crud.mjs +0 -80
  133. package/esm2022/lib/model/modules/store/store.document.directive.mjs +0 -114
  134. package/esm2022/lib/model/modules/store/store.document.mjs +0 -193
  135. package/esm2022/lib/model/modules/store/store.document.twoway.key.directive.mjs +0 -26
  136. package/esm2022/lib/model/modules/store/store.document.twoway.key.source.directive.mjs +0 -22
  137. package/esm2022/lib/model/modules/store/store.document.twoway.key.source.mjs +0 -16
  138. package/esm2022/lib/model/modules/store/store.mjs +0 -2
  139. package/esm2022/lib/model/modules/store/store.subcollection.directive.mjs +0 -44
  140. package/esm2022/lib/model/modules/store/store.subcollection.document.mjs +0 -99
  141. package/esm2022/lib/model/modules/store/store.subcollection.mjs +0 -80
  142. package/esm2022/lib/model/modules/store/store.subcollection.rxjs.mjs +0 -23
  143. package/esm2022/lib/model/service/index.mjs +0 -5
  144. package/esm2022/lib/model/service/model.context.instance.mjs +0 -73
  145. package/esm2022/lib/model/service/model.context.mjs +0 -2
  146. package/esm2022/lib/model/service/model.context.providers.mjs +0 -32
  147. package/esm2022/lib/model/service/model.context.service.mjs +0 -38
  148. package/esm2022/lib/model/system/index.mjs +0 -6
  149. package/esm2022/lib/model/system/systemstate.collection.store.directive.mjs +0 -20
  150. package/esm2022/lib/model/system/systemstate.collection.store.mjs +0 -16
  151. package/esm2022/lib/model/system/systemstate.document.store.accessor.mjs +0 -35
  152. package/esm2022/lib/model/system/systemstate.document.store.directive.mjs +0 -19
  153. package/esm2022/lib/model/system/systemstate.document.store.mjs +0 -16
  154. package/esm2022/lib/module.mjs +0 -15
  155. package/esm2022/lib/modules/index.mjs +0 -3
  156. package/esm2022/lib/modules/notification/component/index.mjs +0 -6
  157. package/esm2022/lib/modules/notification/component/notificationitem.content.component.mjs +0 -15
  158. package/esm2022/lib/modules/notification/component/notificationitem.list.component.mjs +0 -90
  159. package/esm2022/lib/modules/notification/component/notificationitem.view.component.mjs +0 -37
  160. package/esm2022/lib/modules/notification/component/notificationitem.view.default.component.mjs +0 -27
  161. package/esm2022/lib/modules/notification/component/notificationitem.view.directive.mjs +0 -14
  162. package/esm2022/lib/modules/notification/container/index.mjs +0 -3
  163. package/esm2022/lib/modules/notification/container/notification.item.store.popover.button.component.mjs +0 -48
  164. package/esm2022/lib/modules/notification/container/notification.item.store.popover.component.mjs +0 -35
  165. package/esm2022/lib/modules/notification/index.mjs +0 -7
  166. package/esm2022/lib/modules/notification/notification.module.mjs +0 -103
  167. package/esm2022/lib/modules/notification/notification.providers.mjs +0 -47
  168. package/esm2022/lib/modules/notification/service/index.mjs +0 -4
  169. package/esm2022/lib/modules/notification/service/notification.template.service.mjs +0 -28
  170. package/esm2022/lib/modules/notification/service/notificationitem.widget.mjs +0 -11
  171. package/esm2022/lib/modules/notification/service/notificationitem.widget.service.mjs +0 -55
  172. package/esm2022/lib/modules/notification/store/index.mjs +0 -18
  173. package/esm2022/lib/modules/notification/store/notification.collection.store.directive.mjs +0 -21
  174. package/esm2022/lib/modules/notification/store/notification.collection.store.mjs +0 -23
  175. package/esm2022/lib/modules/notification/store/notification.document.store.directive.mjs +0 -21
  176. package/esm2022/lib/modules/notification/store/notification.document.store.mjs +0 -33
  177. package/esm2022/lib/modules/notification/store/notification.item.store.mjs +0 -30
  178. package/esm2022/lib/modules/notification/store/notificationbox.collection.store.directive.mjs +0 -21
  179. package/esm2022/lib/modules/notification/store/notificationbox.collection.store.mjs +0 -16
  180. package/esm2022/lib/modules/notification/store/notificationbox.document.store.directive.mjs +0 -21
  181. package/esm2022/lib/modules/notification/store/notificationbox.document.store.mjs +0 -22
  182. package/esm2022/lib/modules/notification/store/notificationsummary.collection.store.directive.mjs +0 -21
  183. package/esm2022/lib/modules/notification/store/notificationsummary.collection.store.mjs +0 -16
  184. package/esm2022/lib/modules/notification/store/notificationsummary.document.store.directive.mjs +0 -21
  185. package/esm2022/lib/modules/notification/store/notificationsummary.document.store.mjs +0 -34
  186. package/esm2022/lib/modules/notification/store/notificationuser.collection.store.directive.mjs +0 -21
  187. package/esm2022/lib/modules/notification/store/notificationuser.collection.store.mjs +0 -16
  188. package/esm2022/lib/modules/notification/store/notificationuser.document.store.directive.mjs +0 -21
  189. package/esm2022/lib/modules/notification/store/notificationuser.document.store.mjs +0 -18
  190. package/esm2022/lib/modules/storagefile/container/index.mjs +0 -8
  191. package/esm2022/lib/modules/storagefile/container/storagefile.download.button.component.mjs +0 -278
  192. package/esm2022/lib/modules/storagefile/container/storagefile.upload.action.handler.directive.mjs +0 -118
  193. package/esm2022/lib/modules/storagefile/container/storagefile.upload.error.mjs +0 -12
  194. package/esm2022/lib/modules/storagefile/container/storagefile.upload.handler.mjs +0 -260
  195. package/esm2022/lib/modules/storagefile/container/storagefile.upload.initialize.document.directive.mjs +0 -51
  196. package/esm2022/lib/modules/storagefile/container/storagefile.upload.store.directive.mjs +0 -38
  197. package/esm2022/lib/modules/storagefile/container/storagefile.upload.sync.directive.mjs +0 -36
  198. package/esm2022/lib/modules/storagefile/index.mjs +0 -6
  199. package/esm2022/lib/modules/storagefile/service/index.mjs +0 -3
  200. package/esm2022/lib/modules/storagefile/service/storagefile.download.service.mjs +0 -158
  201. package/esm2022/lib/modules/storagefile/service/storagefile.download.storage.service.mjs +0 -91
  202. package/esm2022/lib/modules/storagefile/storagefile.providers.mjs +0 -33
  203. package/esm2022/lib/modules/storagefile/storagefile.upload.module.mjs +0 -83
  204. package/esm2022/lib/modules/storagefile/store/index.mjs +0 -8
  205. package/esm2022/lib/modules/storagefile/store/storagefile.collection.store.directive.mjs +0 -22
  206. package/esm2022/lib/modules/storagefile/store/storagefile.collection.store.mjs +0 -18
  207. package/esm2022/lib/modules/storagefile/store/storagefile.document.store.directive.mjs +0 -21
  208. package/esm2022/lib/modules/storagefile/store/storagefile.document.store.mjs +0 -23
  209. package/esm2022/lib/modules/storagefile/store/storagefile.upload.store.mjs +0 -63
  210. package/esm2022/lib/modules/storagefile/store/storagefilegroup.document.store.directive.mjs +0 -21
  211. package/esm2022/lib/modules/storagefile/store/storagefilegroup.document.store.mjs +0 -18
  212. package/esm2022/lib/pipe/index.mjs +0 -4
  213. package/esm2022/lib/pipe/key.flat.pipe.mjs +0 -20
  214. package/esm2022/lib/pipe/key.twoway.pipe.mjs +0 -20
  215. package/esm2022/lib/pipe/pipe.module.mjs +0 -23
  216. package/esm2022/lib/providers.mjs +0 -48
  217. package/esm2022/lib/router/id.param.redirect.mjs +0 -64
  218. package/esm2022/lib/router/index.mjs +0 -2
  219. package/esm2022/lib/storage/firebase.storage.mjs +0 -10
  220. package/esm2022/lib/storage/firebase.storage.module.mjs +0 -22
  221. package/esm2022/lib/storage/firebase.storage.providers.mjs +0 -44
  222. package/esm2022/lib/storage/firebase.storage.service.mjs +0 -27
  223. package/esm2022/lib/storage/index.mjs +0 -5
  224. package/index.d.ts +0 -1
  225. package/lib/analytics/analytics.user.events.providers.d.ts +0 -6
  226. package/lib/analytics/analytics.user.events.service.d.ts +0 -19
  227. package/lib/analytics/analytics.user.source.d.ts +0 -21
  228. package/lib/analytics/index.d.ts +0 -3
  229. package/lib/auth/appcheck/appcheck.d.ts +0 -8
  230. package/lib/auth/appcheck/appcheck.interceptor.d.ts +0 -15
  231. package/lib/auth/appcheck/index.d.ts +0 -2
  232. package/lib/auth/auth.d.ts +0 -15
  233. package/lib/auth/firebase.auth.module.d.ts +0 -13
  234. package/lib/auth/firebase.auth.providers.d.ts +0 -21
  235. package/lib/auth/index.d.ts +0 -6
  236. package/lib/auth/login/firebase.login.module.d.ts +0 -36
  237. package/lib/auth/login/firebase.login.providers.d.ts +0 -32
  238. package/lib/auth/login/firebase.login.providers.default.d.ts +0 -7
  239. package/lib/auth/login/index.d.ts +0 -26
  240. package/lib/auth/login/login.anonymous.component.d.ts +0 -8
  241. package/lib/auth/login/login.apple.component.d.ts +0 -8
  242. package/lib/auth/login/login.button.component.d.ts +0 -53
  243. package/lib/auth/login/login.component.d.ts +0 -14
  244. package/lib/auth/login/login.context.back.component.d.ts +0 -8
  245. package/lib/auth/login/login.context.d.ts +0 -6
  246. package/lib/auth/login/login.context.directive.d.ts +0 -10
  247. package/lib/auth/login/login.d.ts +0 -7
  248. package/lib/auth/login/login.email.component.d.ts +0 -8
  249. package/lib/auth/login/login.email.content.component.d.ts +0 -41
  250. package/lib/auth/login/login.email.form.component.d.ts +0 -17
  251. package/lib/auth/login/login.email.recovery.form.component.d.ts +0 -11
  252. package/lib/auth/login/login.facebook.component.d.ts +0 -8
  253. package/lib/auth/login/login.github.component.d.ts +0 -8
  254. package/lib/auth/login/login.google.component.d.ts +0 -8
  255. package/lib/auth/login/login.list.component.d.ts +0 -21
  256. package/lib/auth/login/login.microsoft.component.d.ts +0 -8
  257. package/lib/auth/login/login.password.d.ts +0 -3
  258. package/lib/auth/login/login.service.d.ts +0 -115
  259. package/lib/auth/login/login.terms.component.d.ts +0 -9
  260. package/lib/auth/login/login.terms.d.ts +0 -18
  261. package/lib/auth/login/login.terms.simple.component.d.ts +0 -9
  262. package/lib/auth/login/login.twitter.component.d.ts +0 -8
  263. package/lib/auth/login/register.component.d.ts +0 -12
  264. package/lib/auth/login/register.email.component.d.ts +0 -8
  265. package/lib/auth/service/firebase.auth.rxjs.d.ts +0 -23
  266. package/lib/auth/service/firebase.auth.service.d.ts +0 -95
  267. package/lib/auth/service/firebase.auth.service.delegate.d.ts +0 -25
  268. package/lib/auth/service/index.d.ts +0 -3
  269. package/lib/development/development.directive.d.ts +0 -24
  270. package/lib/development/development.module.d.ts +0 -15
  271. package/lib/development/development.popup.component.d.ts +0 -14
  272. package/lib/development/development.popup.content.component.d.ts +0 -49
  273. package/lib/development/development.popup.content.form.component.d.ts +0 -17
  274. package/lib/development/development.providers.d.ts +0 -32
  275. package/lib/development/development.scheduler.list.component.d.ts +0 -23
  276. package/lib/development/development.scheduler.service.d.ts +0 -31
  277. package/lib/development/development.scheduler.widget.component.d.ts +0 -12
  278. package/lib/development/development.service.d.ts +0 -16
  279. package/lib/development/development.widget.d.ts +0 -8
  280. package/lib/development/development.widget.service.d.ts +0 -29
  281. package/lib/development/index.d.ts +0 -13
  282. package/lib/firebase/appcheck.d.ts +0 -21
  283. package/lib/firebase/emulators.d.ts +0 -60
  284. package/lib/firebase/firebase.emulator.module.d.ts +0 -14
  285. package/lib/firebase/firebase.emulator.providers.d.ts +0 -13
  286. package/lib/firebase/firebase.emulator.service.d.ts +0 -11
  287. package/lib/firebase/firebase.module.d.ts +0 -14
  288. package/lib/firebase/firebase.options.d.ts +0 -36
  289. package/lib/firebase/firebase.options.environment.d.ts +0 -10
  290. package/lib/firebase/firebase.providers.d.ts +0 -51
  291. package/lib/firebase/index.d.ts +0 -9
  292. package/lib/firestore/firebase.firestore.context.service.d.ts +0 -10
  293. package/lib/firestore/firebase.firestore.d.ts +0 -5
  294. package/lib/firestore/firebase.firestore.module.d.ts +0 -15
  295. package/lib/firestore/firebase.firestore.providers.d.ts +0 -62
  296. package/lib/firestore/index.d.ts +0 -4
  297. package/lib/function/firebase.function.module.d.ts +0 -16
  298. package/lib/function/firebase.function.providers.d.ts +0 -43
  299. package/lib/function/index.d.ts +0 -2
  300. package/lib/index.d.ts +0 -13
  301. package/lib/model/error.d.ts +0 -2
  302. package/lib/model/index.d.ts +0 -6
  303. package/lib/model/loader/collection.change.trigger.d.ts +0 -57
  304. package/lib/model/loader/collection.change.watcher.d.ts +0 -44
  305. package/lib/model/loader/collection.loader.d.ts +0 -61
  306. package/lib/model/loader/collection.loader.instance.d.ts +0 -110
  307. package/lib/model/loader/document.loader.d.ts +0 -75
  308. package/lib/model/loader/document.loader.instance.d.ts +0 -46
  309. package/lib/model/loader/index.d.ts +0 -6
  310. package/lib/model/model.module.d.ts +0 -9
  311. package/lib/model/modules/index.d.ts +0 -2
  312. package/lib/model/modules/model/entities/index.d.ts +0 -10
  313. package/lib/model/modules/model/entities/model.entities.component.d.ts +0 -47
  314. package/lib/model/modules/model/entities/model.entities.d.ts +0 -60
  315. package/lib/model/modules/model/entities/model.entities.entity.component.d.ts +0 -43
  316. package/lib/model/modules/model/entities/model.entities.popover.button.component.d.ts +0 -30
  317. package/lib/model/modules/model/entities/model.entities.popover.component.d.ts +0 -59
  318. package/lib/model/modules/model/entities/model.entities.providers.d.ts +0 -22
  319. package/lib/model/modules/model/entities/model.entities.source.directive.d.ts +0 -8
  320. package/lib/model/modules/model/entities/model.entities.widget.d.ts +0 -30
  321. package/lib/model/modules/model/entities/model.entities.widget.entity.abstract.directive.d.ts +0 -13
  322. package/lib/model/modules/model/entities/model.entities.widget.entity.debug.component.d.ts +0 -17
  323. package/lib/model/modules/model/entities/model.entities.widget.service.d.ts +0 -74
  324. package/lib/model/modules/model/history/index.d.ts +0 -6
  325. package/lib/model/modules/model/history/model.history.component.d.ts +0 -16
  326. package/lib/model/modules/model/history/model.history.module.d.ts +0 -16
  327. package/lib/model/modules/model/history/model.history.popover.button.component.d.ts +0 -16
  328. package/lib/model/modules/model/history/model.history.popover.component.d.ts +0 -50
  329. package/lib/model/modules/model/history/model.sourceselect.history.d.ts +0 -32
  330. package/lib/model/modules/model/history/model.tracker.service.d.ts +0 -43
  331. package/lib/model/modules/model/index.d.ts +0 -7
  332. package/lib/model/modules/model/model.key.component.d.ts +0 -25
  333. package/lib/model/modules/model/model.types.list.component.d.ts +0 -22
  334. package/lib/model/modules/model/model.types.module.d.ts +0 -16
  335. package/lib/model/modules/model/model.types.providers.d.ts +0 -22
  336. package/lib/model/modules/model/model.types.service.d.ts +0 -90
  337. package/lib/model/modules/model/model.types.view.directive.d.ts +0 -19
  338. package/lib/model/modules/store/index.d.ts +0 -21
  339. package/lib/model/modules/store/model.store.module.d.ts +0 -11
  340. package/lib/model/modules/store/store.collection.change.directive.d.ts +0 -28
  341. package/lib/model/modules/store/store.collection.change.if.directive.d.ts +0 -18
  342. package/lib/model/modules/store/store.collection.crud.d.ts +0 -21
  343. package/lib/model/modules/store/store.collection.d.ts +0 -97
  344. package/lib/model/modules/store/store.collection.directive.d.ts +0 -56
  345. package/lib/model/modules/store/store.collection.list.directive.d.ts +0 -16
  346. package/lib/model/modules/store/store.d.ts +0 -87
  347. package/lib/model/modules/store/store.document.context.store.d.ts +0 -59
  348. package/lib/model/modules/store/store.document.context.store.directive.d.ts +0 -8
  349. package/lib/model/modules/store/store.document.context.store.link.d.ts +0 -17
  350. package/lib/model/modules/store/store.document.crud.d.ts +0 -63
  351. package/lib/model/modules/store/store.document.d.ts +0 -101
  352. package/lib/model/modules/store/store.document.directive.d.ts +0 -66
  353. package/lib/model/modules/store/store.document.twoway.key.directive.d.ts +0 -14
  354. package/lib/model/modules/store/store.document.twoway.key.source.d.ts +0 -10
  355. package/lib/model/modules/store/store.document.twoway.key.source.directive.d.ts +0 -13
  356. package/lib/model/modules/store/store.subcollection.d.ts +0 -51
  357. package/lib/model/modules/store/store.subcollection.directive.d.ts +0 -28
  358. package/lib/model/modules/store/store.subcollection.document.d.ts +0 -67
  359. package/lib/model/modules/store/store.subcollection.rxjs.d.ts +0 -24
  360. package/lib/model/service/index.d.ts +0 -4
  361. package/lib/model/service/model.context.d.ts +0 -33
  362. package/lib/model/service/model.context.instance.d.ts +0 -17
  363. package/lib/model/service/model.context.providers.d.ts +0 -18
  364. package/lib/model/service/model.context.service.d.ts +0 -31
  365. package/lib/model/system/index.d.ts +0 -5
  366. package/lib/model/system/systemstate.collection.store.d.ts +0 -8
  367. package/lib/model/system/systemstate.collection.store.directive.d.ts +0 -9
  368. package/lib/model/system/systemstate.document.store.accessor.d.ts +0 -22
  369. package/lib/model/system/systemstate.document.store.d.ts +0 -8
  370. package/lib/model/system/systemstate.document.store.directive.d.ts +0 -9
  371. package/lib/module.d.ts +0 -7
  372. package/lib/modules/index.d.ts +0 -2
  373. package/lib/modules/notification/component/index.d.ts +0 -5
  374. package/lib/modules/notification/component/notificationitem.content.component.d.ts +0 -9
  375. package/lib/modules/notification/component/notificationitem.list.component.d.ts +0 -24
  376. package/lib/modules/notification/component/notificationitem.view.component.d.ts +0 -10
  377. package/lib/modules/notification/component/notificationitem.view.default.component.d.ts +0 -9
  378. package/lib/modules/notification/component/notificationitem.view.directive.d.ts +0 -8
  379. package/lib/modules/notification/container/index.d.ts +0 -2
  380. package/lib/modules/notification/container/notification.item.store.popover.button.component.d.ts +0 -17
  381. package/lib/modules/notification/container/notification.item.store.popover.component.d.ts +0 -50
  382. package/lib/modules/notification/index.d.ts +0 -6
  383. package/lib/modules/notification/notification.module.d.ts +0 -38
  384. package/lib/modules/notification/notification.providers.d.ts +0 -24
  385. package/lib/modules/notification/service/index.d.ts +0 -3
  386. package/lib/modules/notification/service/notification.template.service.d.ts +0 -11
  387. package/lib/modules/notification/service/notificationitem.widget.d.ts +0 -26
  388. package/lib/modules/notification/service/notificationitem.widget.service.d.ts +0 -22
  389. package/lib/modules/notification/store/index.d.ts +0 -17
  390. package/lib/modules/notification/store/notification.collection.store.d.ts +0 -9
  391. package/lib/modules/notification/store/notification.collection.store.directive.d.ts +0 -9
  392. package/lib/modules/notification/store/notification.document.store.d.ts +0 -16
  393. package/lib/modules/notification/store/notification.document.store.directive.d.ts +0 -9
  394. package/lib/modules/notification/store/notification.item.store.d.ts +0 -28
  395. package/lib/modules/notification/store/notificationbox.collection.store.d.ts +0 -8
  396. package/lib/modules/notification/store/notificationbox.collection.store.directive.d.ts +0 -9
  397. package/lib/modules/notification/store/notificationbox.document.store.d.ts +0 -13
  398. package/lib/modules/notification/store/notificationbox.document.store.directive.d.ts +0 -9
  399. package/lib/modules/notification/store/notificationsummary.collection.store.d.ts +0 -8
  400. package/lib/modules/notification/store/notificationsummary.collection.store.directive.d.ts +0 -9
  401. package/lib/modules/notification/store/notificationsummary.document.store.d.ts +0 -21
  402. package/lib/modules/notification/store/notificationsummary.document.store.directive.d.ts +0 -9
  403. package/lib/modules/notification/store/notificationuser.collection.store.d.ts +0 -8
  404. package/lib/modules/notification/store/notificationuser.collection.store.directive.d.ts +0 -9
  405. package/lib/modules/notification/store/notificationuser.document.store.d.ts +0 -11
  406. package/lib/modules/notification/store/notificationuser.document.store.directive.d.ts +0 -9
  407. package/lib/modules/storagefile/container/index.d.ts +0 -7
  408. package/lib/modules/storagefile/container/storagefile.download.button.component.d.ts +0 -160
  409. package/lib/modules/storagefile/container/storagefile.upload.action.handler.directive.d.ts +0 -47
  410. package/lib/modules/storagefile/container/storagefile.upload.error.d.ts +0 -9
  411. package/lib/modules/storagefile/container/storagefile.upload.handler.d.ts +0 -183
  412. package/lib/modules/storagefile/container/storagefile.upload.initialize.document.directive.d.ts +0 -21
  413. package/lib/modules/storagefile/container/storagefile.upload.store.directive.d.ts +0 -20
  414. package/lib/modules/storagefile/container/storagefile.upload.sync.directive.d.ts +0 -18
  415. package/lib/modules/storagefile/index.d.ts +0 -5
  416. package/lib/modules/storagefile/service/index.d.ts +0 -2
  417. package/lib/modules/storagefile/service/storagefile.download.service.d.ts +0 -79
  418. package/lib/modules/storagefile/service/storagefile.download.storage.service.d.ts +0 -56
  419. package/lib/modules/storagefile/storagefile.providers.d.ts +0 -13
  420. package/lib/modules/storagefile/storagefile.upload.module.d.ts +0 -29
  421. package/lib/modules/storagefile/store/index.d.ts +0 -7
  422. package/lib/modules/storagefile/store/storagefile.collection.store.d.ts +0 -10
  423. package/lib/modules/storagefile/store/storagefile.collection.store.directive.d.ts +0 -9
  424. package/lib/modules/storagefile/store/storagefile.document.store.d.ts +0 -16
  425. package/lib/modules/storagefile/store/storagefile.document.store.directive.d.ts +0 -9
  426. package/lib/modules/storagefile/store/storagefile.upload.store.d.ts +0 -166
  427. package/lib/modules/storagefile/store/storagefilegroup.document.store.d.ts +0 -11
  428. package/lib/modules/storagefile/store/storagefilegroup.document.store.directive.d.ts +0 -9
  429. package/lib/pipe/index.d.ts +0 -3
  430. package/lib/pipe/key.flat.pipe.d.ts +0 -9
  431. package/lib/pipe/key.twoway.pipe.d.ts +0 -9
  432. package/lib/pipe/pipe.module.d.ts +0 -13
  433. package/lib/providers.d.ts +0 -64
  434. package/lib/router/id.param.redirect.d.ts +0 -41
  435. package/lib/router/index.d.ts +0 -1
  436. package/lib/storage/firebase.storage.d.ts +0 -9
  437. package/lib/storage/firebase.storage.module.d.ts +0 -13
  438. package/lib/storage/firebase.storage.providers.d.ts +0 -31
  439. package/lib/storage/firebase.storage.service.d.ts +0 -13
  440. package/lib/storage/index.d.ts +0 -4
@@ -1,114 +0,0 @@
1
- import { Directive, forwardRef, model } from '@angular/core';
2
- import { FirestoreAccessorStreamMode } from '@dereekb/firebase';
3
- import { BehaviorSubject, shareReplay, switchMap } from 'rxjs';
4
- import { filterMaybe, skipInitialMaybe, SubscriptionObject } from '@dereekb/rxjs';
5
- import { provideDbxRouteModelIdDirectiveDelegate, provideDbxRouteModelKeyDirectiveDelegate } from '@dereekb/dbx-core';
6
- import { toObservable } from '@angular/core/rxjs-interop';
7
- import * as i0 from "@angular/core";
8
- /**
9
- * Abstract directive that contains a DbxFirebaseDocumentStore and provides an interface for communicating with other directives.
10
- */
11
- export class DbxFirebaseDocumentStoreDirective {
12
- storeName = model(undefined);
13
- documentId = model(undefined);
14
- key = model(undefined);
15
- flatKey = model(undefined);
16
- ref = model(undefined);
17
- streamMode = model(FirestoreAccessorStreamMode.STREAM);
18
- _storeName$ = toObservable(this.storeName).pipe(skipInitialMaybe());
19
- _documentId$ = toObservable(this.documentId).pipe(skipInitialMaybe());
20
- _key$ = toObservable(this.key).pipe(skipInitialMaybe());
21
- _flatKey$ = toObservable(this.flatKey).pipe(skipInitialMaybe());
22
- _ref$ = toObservable(this.ref).pipe(skipInitialMaybe());
23
- _streamMode$ = toObservable(this.streamMode).pipe(skipInitialMaybe());
24
- _store = new BehaviorSubject(undefined);
25
- _storeSub = new SubscriptionObject();
26
- store$ = this._store.pipe(filterMaybe(), shareReplay(1));
27
- exists$ = this.store$.pipe(switchMap((x) => x.exists$));
28
- document$ = this.store$.pipe(switchMap((x) => x.document$));
29
- documentLoadingState$ = this.store$.pipe(switchMap((x) => x.documentLoadingState$));
30
- id$ = this.store$.pipe(switchMap((x) => x.id$));
31
- key$ = this.store$.pipe(switchMap((x) => x.key$));
32
- twoWayFlatKey$ = this.store$.pipe(switchMap((x) => x.twoWayFlatKey$));
33
- ref$ = this.store$.pipe(switchMap((x) => x.ref$));
34
- snapshot$ = this.store$.pipe(switchMap((x) => x.snapshot$));
35
- snapshotLoadingState$ = this.store$.pipe(switchMap((x) => x.snapshotLoadingState$));
36
- modelIdentity$ = this.store$.pipe(switchMap((x) => x.modelIdentity$));
37
- data$ = this.store$.pipe(switchMap((x) => x.data$));
38
- loadingState$ = this.store$.pipe(switchMap((x) => x.dataLoadingState$));
39
- constructor(store) {
40
- this.replaceStore(store);
41
- // sync inputs to store any time the store changes
42
- this._storeSub.subscription = this._store.subscribe((x) => {
43
- if (x) {
44
- x.setStoreName(this._storeName$);
45
- x.setId(this._documentId$);
46
- x.setKey(this._key$);
47
- x.setFlatKey(this._flatKey$);
48
- x.setRef(this._ref$);
49
- x.setStreamMode(this._streamMode$);
50
- }
51
- });
52
- }
53
- ngOnDestroy() {
54
- this._store.complete();
55
- this._storeSub.destroy();
56
- }
57
- get store() {
58
- return this._store.value;
59
- }
60
- // MARK: Setters
61
- setStoreName(storeName) {
62
- this.storeName.set(storeName);
63
- }
64
- setDocumentId(documentId) {
65
- this.documentId.set(documentId);
66
- }
67
- setKey(key) {
68
- this.key.set(key);
69
- }
70
- setFlatKey(flatKey) {
71
- this.flatKey.set(flatKey);
72
- }
73
- setRef(ref) {
74
- this.ref.set(ref);
75
- }
76
- setStreamMode(streamMode) {
77
- this.streamMode.set(streamMode);
78
- }
79
- /**
80
- * Replaces the internal store.
81
- */
82
- replaceStore(store) {
83
- this._store.next(store);
84
- }
85
- // MARK: DbxRouteModelIdDirectiveDelegate
86
- useRouteModelIdParamsObservable(idFromParams) {
87
- return idFromParams.subscribe((x) => this.setDocumentId(x));
88
- }
89
- // MARK: DbxRouteModelKeyDirectiveDelegate
90
- useRouteModelKeyParamsObservable(keyFromParams) {
91
- // we assume that the input model key is a TwoWayFlatFirestoreModelKey, since the TwoWayFlatFirestoreModelKey is safe to encode in the url
92
- return keyFromParams.subscribe((x) => this.setFlatKey(x));
93
- }
94
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDocumentStoreDirective, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
95
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxFirebaseDocumentStoreDirective, inputs: { storeName: { classPropertyName: "storeName", publicName: "storeName", isSignal: true, isRequired: false, transformFunction: null }, documentId: { classPropertyName: "documentId", publicName: "documentId", isSignal: true, isRequired: false, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: false, transformFunction: null }, flatKey: { classPropertyName: "flatKey", publicName: "flatKey", isSignal: true, isRequired: false, transformFunction: null }, ref: { classPropertyName: "ref", publicName: "ref", isSignal: true, isRequired: false, transformFunction: null }, streamMode: { classPropertyName: "streamMode", publicName: "streamMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { storeName: "storeNameChange", documentId: "documentIdChange", key: "keyChange", flatKey: "flatKeyChange", ref: "refChange", streamMode: "streamModeChange" }, ngImport: i0 });
96
- }
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDocumentStoreDirective, decorators: [{
98
- type: Directive
99
- }], ctorParameters: () => [{ type: undefined }] });
100
- export function provideDbxFirebaseDocumentStoreDirective(sourceType, storeType) {
101
- const providers = [
102
- {
103
- provide: DbxFirebaseDocumentStoreDirective,
104
- useExisting: forwardRef(() => sourceType)
105
- },
106
- ...provideDbxRouteModelIdDirectiveDelegate(sourceType),
107
- ...provideDbxRouteModelKeyDirectiveDelegate(sourceType)
108
- ];
109
- if (storeType != null) {
110
- providers.push(storeType);
111
- }
112
- return providers;
113
- }
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9zdG9yZS9zdG9yZS5kb2N1bWVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQXFCLDJCQUEyQixFQUF1RixNQUFNLG1CQUFtQixDQUFDO0FBR3hLLE9BQU8sRUFBRSxlQUFlLEVBQWMsV0FBVyxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQXVFLHVDQUF1QyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFM0wsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUUxRDs7R0FFRztBQUVILE1BQU0sT0FBZ0IsaUNBQWlDO0lBQzVDLFNBQVMsR0FBRyxLQUFLLENBQWdCLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLFVBQVUsR0FBRyxLQUFLLENBQTBCLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZELEdBQUcsR0FBRyxLQUFLLENBQTJCLFNBQVMsQ0FBQyxDQUFDO0lBQ2pELE9BQU8sR0FBRyxLQUFLLENBQXFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9ELEdBQUcsR0FBRyxLQUFLLENBQThCLFNBQVMsQ0FBQyxDQUFDO0lBQ3BELFVBQVUsR0FBRyxLQUFLLENBQThCLDJCQUEyQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTVFLFdBQVcsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDcEUsWUFBWSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUN0RSxLQUFLLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELFNBQVMsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDaEUsS0FBSyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUN4RCxZQUFZLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBRXRFLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBVyxTQUFTLENBQUMsQ0FBQztJQUNsRCxTQUFTLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO0lBRTdDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV6RCxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN4RCxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUM1RCxxQkFBcUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7SUFFcEYsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDaEQsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbEQsY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDdEUsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFbEQsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDNUQscUJBQXFCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO0lBRXBGLGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVB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QUFpQztrQkFEdEQsU0FBUzs7QUFzSFYsTUFBTSxVQUFVLHdDQUF3QyxDQUEwSixVQUFtQixFQUFFLFNBQW1CO0lBQ3hQLE1BQU0sU0FBUyxHQUFlO1FBQzVCO1lBQ0UsT0FBTyxFQUFFLGlDQUFpQztZQUMxQyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQztTQUMxQztRQUNELEdBQUcsdUNBQXVDLENBQUMsVUFBVSxDQUFDO1FBQ3RELEdBQUcsd0NBQXdDLENBQUMsVUFBVSxDQUFDO0tBQ3hELENBQUM7SUFFRixJQUFJLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN0QixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBmb3J3YXJkUmVmLCBtb2RlbCwgT25EZXN0cm95LCBQcm92aWRlciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9jdW1lbnRSZWZlcmVuY2UsIEZpcmVzdG9yZUFjY2Vzc29yU3RyZWFtTW9kZSwgRmlyZXN0b3JlRG9jdW1lbnQsIEZpcmVzdG9yZU1vZGVsS2V5LCBGaXJlc3RvcmVNb2RlbElkLCBUd29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXkgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5pbXBvcnQgeyBNb2RlbEtleSwgdHlwZSBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlIH0gZnJvbSAnLi9zdG9yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBTdWJzY3JpcHRpb24sIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyTWF5YmUsIHNraXBJbml0aWFsTWF5YmUsIFN1YnNjcmlwdGlvbk9iamVjdCB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgRGJ4Um91dGVNb2RlbElkRGlyZWN0aXZlRGVsZWdhdGUsIERieFJvdXRlTW9kZWxLZXlEaXJlY3RpdmVEZWxlZ2F0ZSwgcHJvdmlkZURieFJvdXRlTW9kZWxJZERpcmVjdGl2ZURlbGVnYXRlLCBwcm92aWRlRGJ4Um91dGVNb2RlbEtleURpcmVjdGl2ZURlbGVnYXRlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlVHdvV2F5S2V5UHJvdmlkZXIgfSBmcm9tICcuL3N0b3JlLmRvY3VtZW50LnR3b3dheS5rZXkuc291cmNlJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuLyoqXG4gKiBBYnN0cmFjdCBkaXJlY3RpdmUgdGhhdCBjb250YWlucyBhIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZSBhbmQgcHJvdmlkZXMgYW4gaW50ZXJmYWNlIGZvciBjb21tdW5pY2F0aW5nIHdpdGggb3RoZXIgZGlyZWN0aXZlcy5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlPFQgPSB1bmtub3duLCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgUyBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxULCBEPiA9IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxULCBEPj4gaW1wbGVtZW50cyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVUd29XYXlLZXlQcm92aWRlciwgRGJ4Um91dGVNb2RlbElkRGlyZWN0aXZlRGVsZWdhdGUsIERieFJvdXRlTW9kZWxLZXlEaXJlY3RpdmVEZWxlZ2F0ZSwgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgc3RvcmVOYW1lID0gbW9kZWw8TWF5YmU8c3RyaW5nPj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgZG9jdW1lbnRJZCA9IG1vZGVsPE1heWJlPEZpcmVzdG9yZU1vZGVsSWQ+Pih1bmRlZmluZWQpO1xuICByZWFkb25seSBrZXkgPSBtb2RlbDxNYXliZTxGaXJlc3RvcmVNb2RlbEtleT4+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGZsYXRLZXkgPSBtb2RlbDxNYXliZTxUd29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXk+Pih1bmRlZmluZWQpO1xuICByZWFkb25seSByZWYgPSBtb2RlbDxNYXliZTxEb2N1bWVudFJlZmVyZW5jZTxUPj4+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHN0cmVhbU1vZGUgPSBtb2RlbDxGaXJlc3RvcmVBY2Nlc3NvclN0cmVhbU1vZGU+KEZpcmVzdG9yZUFjY2Vzc29yU3RyZWFtTW9kZS5TVFJFQU0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0b3JlTmFtZSQgPSB0b09ic2VydmFibGUodGhpcy5zdG9yZU5hbWUpLnBpcGUoc2tpcEluaXRpYWxNYXliZSgpKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZG9jdW1lbnRJZCQgPSB0b09ic2VydmFibGUodGhpcy5kb2N1bWVudElkKS5waXBlKHNraXBJbml0aWFsTWF5YmUoKSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2tleSQgPSB0b09ic2VydmFibGUodGhpcy5rZXkpLnBpcGUoc2tpcEluaXRpYWxNYXliZSgpKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZmxhdEtleSQgPSB0b09ic2VydmFibGUodGhpcy5mbGF0S2V5KS5waXBlKHNraXBJbml0aWFsTWF5YmUoKSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3JlZiQgPSB0b09ic2VydmFibGUodGhpcy5yZWYpLnBpcGUoc2tpcEluaXRpYWxNYXliZSgpKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RyZWFtTW9kZSQgPSB0b09ic2VydmFibGUodGhpcy5zdHJlYW1Nb2RlKS5waXBlKHNraXBJbml0aWFsTWF5YmUoKSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3RvcmUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPFM+Pih1bmRlZmluZWQpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZVN1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcblxuICByZWFkb25seSBzdG9yZSQgPSB0aGlzLl9zdG9yZS5waXBlKGZpbHRlck1heWJlKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBleGlzdHMkID0gdGhpcy5zdG9yZSQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguZXhpc3RzJCkpO1xuICByZWFkb25seSBkb2N1bWVudCQgPSB0aGlzLnN0b3JlJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5kb2N1bWVudCQpKTtcbiAgcmVhZG9ubHkgZG9jdW1lbnRMb2FkaW5nU3RhdGUkID0gdGhpcy5zdG9yZSQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguZG9jdW1lbnRMb2FkaW5nU3RhdGUkKSk7XG5cbiAgcmVhZG9ubHkgaWQkID0gdGhpcy5zdG9yZSQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguaWQkKSk7XG4gIHJlYWRvbmx5IGtleSQgPSB0aGlzLnN0b3JlJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5rZXkkKSk7XG4gIHJlYWRvbmx5IHR3b1dheUZsYXRLZXkkID0gdGhpcy5zdG9yZSQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHgudHdvV2F5RmxhdEtleSQpKTtcbiAgcmVhZG9ubHkgcmVmJCA9IHRoaXMuc3RvcmUkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4LnJlZiQpKTtcblxuICByZWFkb25seSBzbmFwc2hvdCQgPSB0aGlzLnN0b3JlJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5zbmFwc2hvdCQpKTtcbiAgcmVhZG9ubHkgc25hcHNob3RMb2FkaW5nU3RhdGUkID0gdGhpcy5zdG9yZSQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguc25hcHNob3RMb2FkaW5nU3RhdGUkKSk7XG5cbiAgcmVhZG9ubHkgbW9kZWxJZGVudGl0eSQgPSB0aGlzLnN0b3JlJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5tb2RlbElkZW50aXR5JCkpO1xuICByZWFkb25seSBkYXRhJCA9IHRoaXMuc3RvcmUkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4LmRhdGEkKSk7XG4gIHJlYWRvbmx5IGxvYWRpbmdTdGF0ZSQgPSB0aGlzLnN0b3JlJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5kYXRhTG9hZGluZ1N0YXRlJCkpO1xuXG4gIGNvbnN0cnVjdG9yKHN0b3JlOiBTKSB7XG4gICAgdGhpcy5yZXBsYWNlU3RvcmUoc3RvcmUpO1xuXG4gICAgLy8gc3luYyBpbnB1dHMgdG8gc3RvcmUgYW55IHRpbWUgdGhlIHN0b3JlIGNoYW5nZXNcbiAgICB0aGlzLl9zdG9yZVN1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLl9zdG9yZS5zdWJzY3JpYmUoKHgpID0+IHtcbiAgICAgIGlmICh4KSB7XG4gICAgICAgIHguc2V0U3RvcmVOYW1lKHRoaXMuX3N0b3JlTmFtZSQpO1xuICAgICAgICB4LnNldElkKHRoaXMuX2RvY3VtZW50SWQkKTtcbiAgICAgICAgeC5zZXRLZXkodGhpcy5fa2V5JCk7XG4gICAgICAgIHguc2V0RmxhdEtleSh0aGlzLl9mbGF0S2V5JCk7XG4gICAgICAgIHguc2V0UmVmKHRoaXMuX3JlZiQpO1xuICAgICAgICB4LnNldFN0cmVhbU1vZGUodGhpcy5fc3RyZWFtTW9kZSQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3RvcmUuY29tcGxldGUoKTtcbiAgICB0aGlzLl9zdG9yZVN1Yi5kZXN0cm95KCk7XG4gIH1cblxuICBnZXQgc3RvcmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlLnZhbHVlIGFzIFM7XG4gIH1cblxuICAvLyBNQVJLOiBTZXR0ZXJzXG4gIHNldFN0b3JlTmFtZShzdG9yZU5hbWU6IE1heWJlPHN0cmluZz4pIHtcbiAgICB0aGlzLnN0b3JlTmFtZS5zZXQoc3RvcmVOYW1lKTtcbiAgfVxuXG4gIHNldERvY3VtZW50SWQoZG9jdW1lbnRJZDogTWF5YmU8RmlyZXN0b3JlTW9kZWxJZD4pIHtcbiAgICB0aGlzLmRvY3VtZW50SWQuc2V0KGRvY3VtZW50SWQpO1xuICB9XG5cbiAgc2V0S2V5KGtleTogTWF5YmU8RmlyZXN0b3JlTW9kZWxLZXk+KSB7XG4gICAgdGhpcy5rZXkuc2V0KGtleSk7XG4gIH1cblxuICBzZXRGbGF0S2V5KGZsYXRLZXk6IE1heWJlPFR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleT4pIHtcbiAgICB0aGlzLmZsYXRLZXkuc2V0KGZsYXRLZXkpO1xuICB9XG5cbiAgc2V0UmVmKHJlZjogTWF5YmU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+KSB7XG4gICAgdGhpcy5yZWYuc2V0KHJlZik7XG4gIH1cblxuICBzZXRTdHJlYW1Nb2RlKHN0cmVhbU1vZGU6IEZpcmVzdG9yZUFjY2Vzc29yU3RyZWFtTW9kZSkge1xuICAgIHRoaXMuc3RyZWFtTW9kZS5zZXQoc3RyZWFtTW9kZSk7XG4gIH1cblxuICAvKipcbiAgICogUmVwbGFjZXMgdGhlIGludGVybmFsIHN0b3JlLlxuICAgKi9cbiAgcmVwbGFjZVN0b3JlKHN0b3JlOiBTKSB7XG4gICAgdGhpcy5fc3RvcmUubmV4dChzdG9yZSk7XG4gIH1cblxuICAvLyBNQVJLOiBEYnhSb3V0ZU1vZGVsSWREaXJlY3RpdmVEZWxlZ2F0ZVxuICB1c2VSb3V0ZU1vZGVsSWRQYXJhbXNPYnNlcnZhYmxlKGlkRnJvbVBhcmFtczogT2JzZXJ2YWJsZTxNYXliZTxNb2RlbEtleT4+KTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gaWRGcm9tUGFyYW1zLnN1YnNjcmliZSgoeCkgPT4gdGhpcy5zZXREb2N1bWVudElkKHgpKTtcbiAgfVxuXG4gIC8vIE1BUks6IERieFJvdXRlTW9kZWxLZXlEaXJlY3RpdmVEZWxlZ2F0ZVxuICB1c2VSb3V0ZU1vZGVsS2V5UGFyYW1zT2JzZXJ2YWJsZShrZXlGcm9tUGFyYW1zOiBPYnNlcnZhYmxlPE1heWJlPFR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleT4+KTogU3Vic2NyaXB0aW9uIHtcbiAgICAvLyB3ZSBhc3N1bWUgdGhhdCB0aGUgaW5wdXQgbW9kZWwga2V5IGlzIGEgVHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5LCBzaW5jZSB0aGUgVHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5IGlzIHNhZmUgdG8gZW5jb2RlIGluIHRoZSB1cmxcbiAgICByZXR1cm4ga2V5RnJvbVBhcmFtcy5zdWJzY3JpYmUoKHgpID0+IHRoaXMuc2V0RmxhdEtleSh4KSk7XG4gIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLy8gVGhlIHVzZSBvZiBhbnkgaGVyZSBkb2VzIG5vdCBkZWdyYWRlIHRoZSB0eXBlLXNhZmV0eTsgd2Ugd2FudCB0byBzaW1wbHkgbWF0Y2ggdGhhdCB0aGUgU3RvcmUgdHlwZSBTIGlzIHVzZWQgaW4gdGhlIERpcmVjdGl2ZSB0eXBlIEMgdG8gcHJvdmlkZSBpdC5cblxuLyoqXG4gKiBDb25maWd1cmVzIHByb3ZpZGVycyBmb3IgYSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUuXG4gKlxuICogQ2FuIG9wdGlvbmFsbHkgYWxzbyBwcm92aWRlIHRoZSBhY3R1YWwgc3RvcmUgdHlwZSB0byBpbmNsdWRlIGluIHRoZSBwcm92aWRlcnMgYXJyYXkgc28gaXQgaXMgaW5zdGFudGlhdGVkIGJ5IEFuZ3VsYXIuXG4gKlxuICogQHBhcmFtIHNvdXJjZVR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmU8UyBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgYW55Pj4oc291cmNlVHlwZTogVHlwZTxTPik6IFByb3ZpZGVyW107XG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZURieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZTxTIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPGFueSwgYW55PiwgQyBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgUz4gPSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIFM+Pihzb3VyY2VUeXBlOiBUeXBlPEM+LCBzdG9yZVR5cGU6IFR5cGU8Uz4pOiBQcm92aWRlcltdO1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmU8UyBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxhbnksIGFueT4sIEMgZXh0ZW5kcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIFM+ID0gRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlPGFueSwgYW55LCBTPj4oc291cmNlVHlwZTogVHlwZTxDPiwgc3RvcmVUeXBlPzogVHlwZTxTPik6IFByb3ZpZGVyW10ge1xuICBjb25zdCBwcm92aWRlcnM6IFByb3ZpZGVyW10gPSBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gc291cmNlVHlwZSlcbiAgICB9LFxuICAgIC4uLnByb3ZpZGVEYnhSb3V0ZU1vZGVsSWREaXJlY3RpdmVEZWxlZ2F0ZShzb3VyY2VUeXBlKSxcbiAgICAuLi5wcm92aWRlRGJ4Um91dGVNb2RlbEtleURpcmVjdGl2ZURlbGVnYXRlKHNvdXJjZVR5cGUpXG4gIF07XG5cbiAgaWYgKHN0b3JlVHlwZSAhPSBudWxsKSB7XG4gICAgcHJvdmlkZXJzLnB1c2goc3RvcmVUeXBlKTtcbiAgfVxuXG4gIHJldHVybiBwcm92aWRlcnM7XG59XG4iXX0=
@@ -1,193 +0,0 @@
1
- import { __decorate, __metadata, __param } from "tslib";
2
- import { Inject, Injectable, Optional } from '@angular/core';
3
- import { shareReplay, distinctUntilChanged, map, switchMap, combineLatest, of, catchError } from 'rxjs';
4
- import { firestoreModelIdsFromKey, firestoreModelKeyPartPairs, firestoreModelKeyPairObject, documentDataWithIdAndKey, FirestoreAccessorStreamMode, inferKeyFromTwoWayFlatFirestoreModelKey, flatFirestoreModelKey, twoWayFlatFirestoreModelKey, FIRESTORE_PERMISSION_DENIED_ERROR_CODE, isClientFirebaseError } from '@dereekb/firebase';
5
- import { filterMaybe, beginLoading, successResult, loadingStateFromObs, errorResult, isLoadingStateLoading, tapLog } from '@dereekb/rxjs';
6
- import { isMaybeSo } from '@dereekb/util';
7
- import { LockSetComponentStore } from '@dereekb/dbx-core';
8
- import { modelDoesNotExistError } from '../../error';
9
- import { linkDocumentStoreToParentContextStores } from './store.document.context.store.link';
10
- import * as i0 from "@angular/core";
11
- export class AbstractDbxFirebaseDocumentStore extends LockSetComponentStore {
12
- constructor(initialState) {
13
- super(initialState);
14
- linkDocumentStoreToParentContextStores(this);
15
- }
16
- // MARK: Effects
17
- // MARK: Accessors
18
- storeName$ = this.state$.pipe(map((x) => x.storeName), distinctUntilChanged(), shareReplay(1));
19
- currentFirestoreCollectionLike$ = this.state$.pipe(map((x) => x.firestoreCollection ?? x.firestoreCollectionLike), distinctUntilChanged(), shareReplay(1));
20
- currentFirestoreCollection$ = this.state$.pipe(map((x) => x.firestoreCollection), distinctUntilChanged(), shareReplay(1));
21
- firestoreCollectionLike$ = this.currentFirestoreCollectionLike$.pipe(filterMaybe());
22
- firestoreCollection$ = this.currentFirestoreCollection$.pipe(filterMaybe());
23
- currentInputId$ = this.state$.pipe(map((x) => x.id), distinctUntilChanged(), shareReplay(1));
24
- inputId$ = this.currentInputId$.pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));
25
- currentInputKey$ = this.state$.pipe(map((x) => x.key), distinctUntilChanged(), shareReplay(1));
26
- inputKey$ = this.currentInputKey$.pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));
27
- currentInputRef$ = this.state$.pipe(map((x) => x.ref), distinctUntilChanged(), shareReplay(1));
28
- inputRef$ = this.currentInputRef$.pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));
29
- streamMode$ = this.state$.pipe(map((x) => x.streamMode ?? FirestoreAccessorStreamMode.STREAM), distinctUntilChanged(), shareReplay(1));
30
- currentDocument$ = combineLatest([this.currentInputId$, this.currentInputKey$, this.currentInputRef$]).pipe(switchMap(([id, key, ref]) => {
31
- let document;
32
- if (ref) {
33
- document = this.firestoreCollectionLike$.pipe(map((x) => x.documentAccessor().loadDocument(ref)));
34
- }
35
- else if (key) {
36
- document = this.firestoreCollectionLike$.pipe(map((x) => x.documentAccessor().loadDocumentForKey(key)));
37
- }
38
- else if (id) {
39
- document = this.firestoreCollection$.pipe(map((x) => x.documentAccessor().loadDocumentForId(id)));
40
- }
41
- else {
42
- document = of(undefined);
43
- }
44
- return document;
45
- }), distinctUntilChanged(), shareReplay(1));
46
- /**
47
- * Whether or not an id/ref/key has been input and currentDocument is not null.
48
- */
49
- hasRef$ = this.currentDocument$.pipe(map((x) => x?.documentRef != null), distinctUntilChanged(), shareReplay(1));
50
- document$ = this.currentDocument$.pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));
51
- documentLoadingState$ = this.currentDocument$.pipe(map((x) => (x ? successResult(x) : beginLoading())), tapLog('documentLoadingState$'), shareReplay(1));
52
- currentId$ = this.currentDocument$.pipe(map((x) => x?.id), shareReplay(1));
53
- currentKey$ = this.currentDocument$.pipe(map((x) => x?.key), shareReplay(1));
54
- id$ = this.document$.pipe(map((x) => x.id), shareReplay(1));
55
- key$ = this.document$.pipe(map((x) => x.key), shareReplay(1));
56
- keyModelIds$ = this.key$.pipe(map(firestoreModelIdsFromKey), shareReplay(1));
57
- keyPairs$ = this.key$.pipe(map(firestoreModelKeyPartPairs), filterMaybe(), shareReplay(1));
58
- keyPairObject$ = this.key$.pipe(map(firestoreModelKeyPairObject), filterMaybe(), shareReplay(1));
59
- ref$ = this.document$.pipe(map((x) => x.documentRef), shareReplay(1));
60
- flatKey$ = this.key$.pipe(map((x) => flatFirestoreModelKey(x)), shareReplay(1));
61
- twoWayFlatKey$ = this.key$.pipe(map((x) => twoWayFlatFirestoreModelKey(x)), shareReplay(1));
62
- snapshot$ = combineLatest([this.document$, this.streamMode$]).pipe(switchMap(([x, mode]) => x.snapshotStream(mode)), shareReplay(1));
63
- snapshotLoadingState$ = this.currentDocument$.pipe(switchMap(() => loadingStateFromObs(this.snapshot$).pipe(catchError((error) => of(errorResult(error))))), shareReplay(1));
64
- dataLoadingState$ = this.snapshotLoadingState$.pipe(map((x) => {
65
- let result;
66
- if (x.value) {
67
- const data = documentDataWithIdAndKey(x.value);
68
- if (data) {
69
- result = successResult(data);
70
- }
71
- else {
72
- result = errorResult(modelDoesNotExistError());
73
- }
74
- }
75
- else {
76
- result = {
77
- ...x,
78
- value: undefined
79
- };
80
- }
81
- return result;
82
- }), shareReplay(1));
83
- currentData$ = this.dataLoadingState$.pipe(map((x) => x.value), shareReplay(1));
84
- data$ = this.currentDocument$.pipe(switchMap(() => this.currentData$.pipe(filterMaybe())), shareReplay(1));
85
- isLoadingData$ = this.dataLoadingState$.pipe(map(isLoadingStateLoading), distinctUntilChanged(), shareReplay(1));
86
- /**
87
- * Returns false while hasRef$ is false, and then returns exists$.
88
- */
89
- currentExists$ = this.hasRef$.pipe(switchMap((hasRef) => {
90
- if (hasRef) {
91
- return this.exists$;
92
- }
93
- else {
94
- return of(false);
95
- }
96
- }), shareReplay(1));
97
- exists$ = this.currentData$.pipe(map((x) => isMaybeSo(x)), catchError((e) => {
98
- let result;
99
- if (isClientFirebaseError(e)) {
100
- switch (e.code) {
101
- case FIRESTORE_PERMISSION_DENIED_ERROR_CODE:
102
- result = false; // does not exist if permission is denied
103
- break;
104
- }
105
- }
106
- if (result == null) {
107
- throw e;
108
- }
109
- return of(result);
110
- }), shareReplay(1));
111
- doesNotExist$ = this.exists$.pipe(map((x) => !x), shareReplay(1));
112
- modelIdentity$ = this.firestoreCollectionLike$.pipe(map((x) => x.modelIdentity), shareReplay(1));
113
- // MARK: State Changes
114
- setStoreName = this.updater((state, storeName) => ({ ...state, storeName }));
115
- setId = this.updater((state, id) => (id ? { ...state, id, key: undefined, ref: undefined } : { ...state, id }));
116
- setKey = this.updater((state, key) => (key ? { ...state, key, id: undefined, ref: undefined } : { ...state, key }));
117
- setFlatKey = this.updater((state, key) => (key ? { ...state, key: inferKeyFromTwoWayFlatFirestoreModelKey(key), id: undefined, ref: undefined } : { ...state, key }));
118
- setRef = this.updater((state, ref) => (ref ? { ...state, key: undefined, id: undefined, ref } : { ...state, ref }));
119
- setStreamMode = this.updater((state, streamMode) => ({ ...state, streamMode }));
120
- clearRefs = this.updater((state) => ({ ...state, id: undefined, key: undefined, ref: undefined }));
121
- setFirestoreCollection = this.updater((state, firestoreCollection) => ({ ...state, firestoreCollection }));
122
- setFirestoreCollectionLike = this.updater((state, firestoreCollectionLike) => ({ ...state, firestoreCollectionLike }));
123
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractDbxFirebaseDocumentStore, deps: [{ token: null, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
124
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractDbxFirebaseDocumentStore });
125
- }
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractDbxFirebaseDocumentStore, decorators: [{
127
- type: Injectable
128
- }], ctorParameters: () => [{ type: undefined, decorators: [{
129
- type: Inject,
130
- args: [null]
131
- }, {
132
- type: Optional
133
- }] }] });
134
- function injectSingleItemIdIntoState(state) {
135
- const id = state?.firestoreCollection?.singleItemIdentifier;
136
- if (state && id != null) {
137
- return { ...state, id };
138
- }
139
- else {
140
- return state;
141
- }
142
- }
143
- /**
144
- * AbstractDbxFirebaseDocumentWithParentStore extension for use with RootSingleItemFirestoreCollection.
145
- */
146
- let AbstractRootSingleItemDbxFirebaseDocument = class AbstractRootSingleItemDbxFirebaseDocument extends AbstractDbxFirebaseDocumentStore {
147
- constructor(initialState) {
148
- super(injectSingleItemIdIntoState(initialState));
149
- }
150
- /**
151
- * Sets the SingleItemFirestoreCollection to use.
152
- */
153
- setFirestoreCollection = this.updater((state, firestoreCollection) => {
154
- if (firestoreCollection != null) {
155
- const id = firestoreCollection.singleItemIdentifier;
156
- if (id != null) {
157
- return { ...state, firestoreCollection, id };
158
- }
159
- else {
160
- throw new Error('AbstractRootSingleItemDbxFirebaseDocument only accepts RootSingleItemFirestoreCollection values with a singleItemIdentifier set for setFirestoreCollection.');
161
- }
162
- }
163
- else {
164
- return { ...state, firestoreCollection: null };
165
- }
166
- });
167
- /**
168
- * Does nothing on a AbstractRootSingleItemDbxFirebaseDocument.
169
- *
170
- * Ref is set with the FirestoreCollection
171
- */
172
- setId = this.updater((state, id) => state);
173
- /**
174
- * Does nothing on a AbstractRootSingleItemDbxFirebaseDocument.
175
- *
176
- * Ref is set with the FirestoreCollection
177
- */
178
- setKey = this.updater((state, key) => state);
179
- /**
180
- * Does nothing on a AbstractRootSingleItemDbxFirebaseDocument.
181
- *
182
- * Ref is set with the FirestoreCollection
183
- */
184
- setRef = this.updater((state, ref) => state);
185
- clearRefs = this.updater((state) => state);
186
- };
187
- AbstractRootSingleItemDbxFirebaseDocument = __decorate([
188
- __param(0, Inject(null)),
189
- __param(0, Optional()),
190
- __metadata("design:paramtypes", [Object])
191
- ], AbstractRootSingleItemDbxFirebaseDocument);
192
- export { AbstractRootSingleItemDbxFirebaseDocument };
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL3N0b3JlL3N0b3JlLmRvY3VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFjLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBZ0IsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsSSxPQUFPLEVBVUwsd0JBQXdCLEVBQ3hCLDBCQUEwQixFQUUxQiwyQkFBMkIsRUFFM0Isd0JBQXdCLEVBQ3hCLDJCQUEyQixFQUUzQix1Q0FBdUMsRUFHdkMscUJBQXFCLEVBQ3JCLDJCQUEyQixFQUMzQixzQ0FBc0MsRUFDdEMscUJBQXFCLEVBQ3RCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLFdBQVcsRUFBZ0IsWUFBWSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hKLE9BQU8sRUFBUyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJELE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQUc3RixNQUFNLE9BQU8sZ0NBQThMLFNBQVEscUJBQXdCO0lBQ3pPLFlBQWdELFlBQWdCO1FBQzlELEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQixzQ0FBc0MsQ0FBQyxJQUFJ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LENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQTZCLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFtRixDQUFDO0lBQ2hPLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQXVDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSx1Q0FBdUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFtRixDQUFDO0lBQzVSLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQWdDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUErRyxDQUFDO0lBRS9QLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLFVBQXVDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFN0csU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVuRyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLG1CQUFxRCxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0ksMEJBQTBCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSx1QkFBNkQsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLHVCQUF1QixFQUFFLENBQUMsQ0FBQyxDQUFDO3dHQWhQM0osZ0NBQWdDLGtCQUNiLElBQUk7NEdBRHZCLGdDQUFnQzs7NEZBQWhDLGdDQUFnQztrQkFENUMsVUFBVTs7MEJBRWMsTUFBTTsyQkFBQyxJQUFJOzswQkFBRyxRQUFROztBQWtQL0MsU0FBUywyQkFBMkIsQ0FBOEosS0FBcUI7SUFDck4sTUFBTSxFQUFFLEdBQUksS0FBSyxFQUFFLG1CQUErRCxFQUFFLG9CQUFvQixDQUFDO0lBRXpHLElBQUksS0FBSyxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN4QixPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDMUIsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxJQUFhLHlDQUF5QyxHQUF0RCxNQUFhLHlDQUF1TSxTQUFRLGdDQUF5QztJQUNuUSxZQUFnRCxZQUFnQjtRQUM5RCxLQUFLLENBQUMsMkJBQTJCLENBQVUsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7O09BRUc7SUFDZSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLG1CQUFxRCxFQUFFLEVBQUU7UUFDdkgsSUFBSSxtQkFBbUIsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNoQyxNQUFNLEVBQUUsR0FBSSxtQkFBK0QsQ0FBQyxvQkFBb0IsQ0FBQztZQUVqRyxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDZixPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDL0MsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsNkpBQTZKLENBQUMsQ0FBQztZQUNqTCxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7T0FJRztJQUNlLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQTJCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBbUYsQ0FBQztJQUV4Szs7OztPQUlHO0lBQ2UsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBNkIsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFtRixDQUFDO0lBRTNLOzs7O09BSUc7SUFDZSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFnQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQStHLENBQUM7SUFFeEwsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0NBQzlELENBQUE7QUE1Q1kseUNBQXlDO0lBQzdCLFdBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQUUsV0FBQSxRQUFRLEVBQUUsQ0FBQTs7R0FEcEMseUNBQXlDLENBNENyRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzd2l0Y2hNYXAsIGNvbWJpbmVMYXRlc3QsIFN1YnNjcmlwdGlvbiwgb2YsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIERvY3VtZW50U25hcHNob3QsXG4gIERvY3VtZW50UmVmZXJlbmNlLFxuICBGaXJlc3RvcmVDb2xsZWN0aW9uLFxuICBGaXJlc3RvcmVEb2N1bWVudCxcbiAgRG9jdW1lbnREYXRhV2l0aElkQW5kS2V5LFxuICBGaXJlc3RvcmVNb2RlbElkLFxuICBGaXJlc3RvcmVNb2RlbEtleSxcbiAgRmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UsXG4gIEZpcmVzdG9yZU1vZGVsSWRlbnRpdHksXG4gIGZpcmVzdG9yZU1vZGVsSWRzRnJvbUtleSxcbiAgZmlyZXN0b3JlTW9kZWxLZXlQYXJ0UGFpcnMsXG4gIEZpcmVzdG9yZU1vZGVsQ29sbGVjdGlvbkFuZElkUGFpcixcbiAgZmlyZXN0b3JlTW9kZWxLZXlQYWlyT2JqZWN0LFxuICBGaXJlc3RvcmVNb2RlbENvbGxlY3Rpb25BbmRJZFBhaXJPYmplY3QsXG4gIGRvY3VtZW50RGF0YVdpdGhJZEFuZEtleSxcbiAgRmlyZXN0b3JlQWNjZXNzb3JTdHJlYW1Nb2RlLFxuICBUd29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXksXG4gIGluZmVyS2V5RnJvbVR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleSxcbiAgUm9vdFNpbmdsZUl0ZW1GaXJlc3RvcmVDb2xsZWN0aW9uLFxuICBGbGF0RmlyZXN0b3JlTW9kZWxLZXksXG4gIGZsYXRGaXJlc3RvcmVNb2RlbEtleSxcbiAgdHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5LFxuICBGSVJFU1RPUkVfUEVSTUlTU0lPTl9ERU5JRURfRVJST1JfQ09ERSxcbiAgaXNDbGllbnRGaXJlYmFzZUVycm9yXG59IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IGZpbHRlck1heWJlLCBMb2FkaW5nU3RhdGUsIGJlZ2luTG9hZGluZywgc3VjY2Vzc1Jlc3VsdCwgbG9hZGluZ1N0YXRlRnJvbU9icywgZXJyb3JSZXN1bHQsIGlzTG9hZGluZ1N0YXRlTG9hZGluZywgdGFwTG9nIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBNYXliZSwgaXNNYXliZVNvIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBMb2NrU2V0Q29tcG9uZW50U3RvcmUgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBtb2RlbERvZXNOb3RFeGlzdEVycm9yIH0gZnJvbSAnLi4vLi4vZXJyb3InO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlIH0gZnJvbSAnLi9zdG9yZSc7XG5pbXBvcnQgeyBsaW5rRG9jdW1lbnRTdG9yZVRvUGFyZW50Q29udGV4dFN0b3JlcyB9IGZyb20gJy4vc3RvcmUuZG9jdW1lbnQuY29udGV4dC5zdG9yZS5saW5rJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFic3RyYWN0RGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+LCBDIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlQ29udGV4dFN0YXRlPFQsIEQ+ID0gRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlQ29udGV4dFN0YXRlPFQsIEQ+PiBleHRlbmRzIExvY2tTZXRDb21wb25lbnRTdG9yZTxDPiBpbXBsZW1lbnRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxULCBEPiB7XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihASW5qZWN0KG51bGwpIEBPcHRpb25hbCgpIGluaXRpYWxTdGF0ZT86IEMpIHtcbiAgICBzdXBlcihpbml0aWFsU3RhdGUpO1xuICAgIGxpbmtEb2N1bWVudFN0b3JlVG9QYXJlbnRDb250ZXh0U3RvcmVzKHRoaXMpO1xuICB9XG5cbiAgLy8gTUFSSzogRWZmZWN0c1xuXG4gIC8vIE1BUks6IEFjY2Vzc29yc1xuICByZWFkb25seSBzdG9yZU5hbWUkOiBPYnNlcnZhYmxlPE1heWJlPHN0cmluZz4+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHguc3RvcmVOYW1lKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgY3VycmVudEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlJDogT2JzZXJ2YWJsZTxNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj4+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHguZmlyZXN0b3JlQ29sbGVjdGlvbiA/PyB4LmZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgY3VycmVudEZpcmVzdG9yZUNvbGxlY3Rpb24kOiBPYnNlcnZhYmxlPE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb248VCwgRD4+PiA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmZpcmVzdG9yZUNvbGxlY3Rpb24pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBmaXJlc3RvcmVDb2xsZWN0aW9uTGlrZSQ6IE9ic2VydmFibGU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+ID0gdGhpcy5jdXJyZW50RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UkLnBpcGUoZmlsdGVyTWF5YmUoKSk7XG4gIHJlYWRvbmx5IGZpcmVzdG9yZUNvbGxlY3Rpb24kOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUNvbGxlY3Rpb248VCwgRD4+ID0gdGhpcy5jdXJyZW50RmlyZXN0b3JlQ29sbGVjdGlvbiQucGlwZShmaWx0ZXJNYXliZSgpKTtcblxuICByZWFkb25seSBjdXJyZW50SW5wdXRJZCQ6IE9ic2VydmFibGU8TWF5YmU8RmlyZXN0b3JlTW9kZWxJZD4+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHguaWQpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBpbnB1dElkJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbElkPiA9IHRoaXMuY3VycmVudElucHV0SWQkLnBpcGUoZmlsdGVyTWF5YmUoKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRJbnB1dEtleSQ6IE9ic2VydmFibGU8TWF5YmU8RmlyZXN0b3JlTW9kZWxLZXk+PiA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmtleSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGlucHV0S2V5JDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbEtleT4gPSB0aGlzLmN1cnJlbnRJbnB1dEtleSQucGlwZShmaWx0ZXJNYXliZSgpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgY3VycmVudElucHV0UmVmJDogT2JzZXJ2YWJsZTxNYXliZTxEb2N1bWVudFJlZmVyZW5jZTxUPj4+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHgucmVmKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaW5wdXRSZWYkOiBPYnNlcnZhYmxlPERvY3VtZW50UmVmZXJlbmNlPFQ+PiA9IHRoaXMuY3VycmVudElucHV0UmVmJC5waXBlKGZpbHRlck1heWJlKCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBzdHJlYW1Nb2RlJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVBY2Nlc3NvclN0cmVhbU1vZGU+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHguc3RyZWFtTW9kZSA/PyBGaXJlc3RvcmVBY2Nlc3NvclN0cmVhbU1vZGUuU1RSRUFNKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgY3VycmVudERvY3VtZW50JDogT2JzZXJ2YWJsZTxNYXliZTxEPj4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmN1cnJlbnRJbnB1dElkJCwgdGhpcy5jdXJyZW50SW5wdXRLZXkkLCB0aGlzLmN1cnJlbnRJbnB1dFJlZiRdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW2lkLCBrZXksIHJlZl0pID0+IHtcbiAgICAgIGxldCBkb2N1bWVudDogT2JzZXJ2YWJsZTxNYXliZTxEPj47XG5cbiAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgZG9jdW1lbnQgPSB0aGlzLmZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlJC5waXBlKG1hcCgoeCkgPT4geC5kb2N1bWVudEFjY2Vzc29yKCkubG9hZERvY3VtZW50KHJlZikpKTtcbiAgICAgIH0gZWxzZSBpZiAoa2V5KSB7XG4gICAgICAgIGRvY3VtZW50ID0gdGhpcy5maXJlc3RvcmVDb2xsZWN0aW9uTGlrZSQucGlwZShtYXAoKHgpID0+IHguZG9jdW1lbnRBY2Nlc3NvcigpLmxvYWREb2N1bWVudEZvcktleShrZXkpKSk7XG4gICAgICB9IGVsc2UgaWYgKGlkKSB7XG4gICAgICAgIGRvY3VtZW50ID0gdGhpcy5maXJlc3RvcmVDb2xsZWN0aW9uJC5waXBlKG1hcCgoeCkgPT4geC5kb2N1bWVudEFjY2Vzc29yKCkubG9hZERvY3VtZW50Rm9ySWQoaWQpKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb2N1bWVudCA9IG9mKHVuZGVmaW5lZCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkb2N1bWVudDtcbiAgICB9KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IGFuIGlkL3JlZi9rZXkgaGFzIGJlZW4gaW5wdXQgYW5kIGN1cnJlbnREb2N1bWVudCBpcyBub3QgbnVsbC5cbiAgICovXG4gIHJlYWRvbmx5IGhhc1JlZiQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmN1cnJlbnREb2N1bWVudCQucGlwZShcbiAgICBtYXAoKHgpID0+IHg/LmRvY3VtZW50UmVmICE9IG51bGwpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkb2N1bWVudCQ6IE9ic2VydmFibGU8RD4gPSB0aGlzLmN1cnJlbnREb2N1bWVudCQucGlwZShmaWx0ZXJNYXliZSgpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgZG9jdW1lbnRMb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEPj4gPSB0aGlzLmN1cnJlbnREb2N1bWVudCQucGlwZShcbiAgICBtYXAoKHgpID0+ICh4ID8gc3VjY2Vzc1Jlc3VsdCh4KSA6IGJlZ2luTG9hZGluZzxEPigpKSksXG4gICAgdGFwTG9nKCdkb2N1bWVudExvYWRpbmdTdGF0ZSQnKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRJZCQ6IE9ic2VydmFibGU8TWF5YmU8RmlyZXN0b3JlTW9kZWxJZD4+ID0gdGhpcy5jdXJyZW50RG9jdW1lbnQkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4Py5pZCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjdXJyZW50S2V5JDogT2JzZXJ2YWJsZTxNYXliZTxGaXJlc3RvcmVNb2RlbEtleT4+ID0gdGhpcy5jdXJyZW50RG9jdW1lbnQkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4Py5rZXkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaWQkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsSWQ+ID0gdGhpcy5kb2N1bWVudCQucGlwZShcbiAgICBtYXAoKHgpID0+IHguaWQpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkga2V5JDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbEtleT4gPSB0aGlzLmRvY3VtZW50JC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5rZXkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkga2V5TW9kZWxJZHMkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsSWRbXT4gPSB0aGlzLmtleSQucGlwZShtYXAoZmlyZXN0b3JlTW9kZWxJZHNGcm9tS2V5KSwgc2hhcmVSZXBsYXkoMSkpO1xuICByZWFkb25seSBrZXlQYWlycyQ6IE9ic2VydmFibGU8RmlyZXN0b3JlTW9kZWxDb2xsZWN0aW9uQW5kSWRQYWlyW10+ID0gdGhpcy5rZXkkLnBpcGUobWFwKGZpcmVzdG9yZU1vZGVsS2V5UGFydFBhaXJzKSwgZmlsdGVyTWF5YmUoKSwgc2hhcmVSZXBsYXkoMSkpO1xuICByZWFkb25seSBrZXlQYWlyT2JqZWN0JDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbENvbGxlY3Rpb25BbmRJZFBhaXJPYmplY3Q+ID0gdGhpcy5rZXkkLnBpcGUobWFwKGZpcmVzdG9yZU1vZGVsS2V5UGFpck9iamVjdCksIGZpbHRlck1heWJlKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSByZWYkOiBPYnNlcnZhYmxlPERvY3VtZW50UmVmZXJlbmNlPFQ+PiA9IHRoaXMuZG9jdW1lbnQkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmRvY3VtZW50UmVmKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGZsYXRLZXkkOiBPYnNlcnZhYmxlPEZsYXRGaXJlc3RvcmVNb2RlbEtleT4gPSB0aGlzLmtleSQucGlwZShcbiAgICBtYXAoKHgpID0+IGZsYXRGaXJlc3RvcmVNb2RlbEtleSh4KSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSB0d29XYXlGbGF0S2V5JDogT2JzZXJ2YWJsZTxGbGF0RmlyZXN0b3JlTW9kZWxLZXk+ID0gdGhpcy5rZXkkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB0d29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXkoeCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc25hcHNob3QkOiBPYnNlcnZhYmxlPERvY3VtZW50U25hcHNob3Q8VD4+ID0gY29tYmluZUxhdGVzdChbdGhpcy5kb2N1bWVudCQsIHRoaXMuc3RyZWFtTW9kZSRdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW3gsIG1vZGVdKSA9PiB4LnNuYXBzaG90U3RyZWFtKG1vZGUpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHNuYXBzaG90TG9hZGluZ1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RG9jdW1lbnRTbmFwc2hvdDxUPj4+ID0gdGhpcy5jdXJyZW50RG9jdW1lbnQkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCgpID0+IGxvYWRpbmdTdGF0ZUZyb21PYnModGhpcy5zbmFwc2hvdCQpLnBpcGUoY2F0Y2hFcnJvcigoZXJyb3IpID0+IG9mKGVycm9yUmVzdWx0KGVycm9yKSBhcyBMb2FkaW5nU3RhdGU8RG9jdW1lbnRTbmFwc2hvdDxUPj4pKSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZGF0YUxvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPj4+ID0gdGhpcy5zbmFwc2hvdExvYWRpbmdTdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHtcbiAgICAgIGxldCByZXN1bHQ6IExvYWRpbmdTdGF0ZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD4+O1xuXG4gICAgICBpZiAoeC52YWx1ZSkge1xuICAgICAgICBjb25zdCBkYXRhID0gZG9jdW1lbnREYXRhV2l0aElkQW5kS2V5KHgudmFsdWUpO1xuXG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgcmVzdWx0ID0gc3VjY2Vzc1Jlc3VsdChkYXRhKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHQgPSBlcnJvclJlc3VsdChtb2RlbERvZXNOb3RFeGlzdEVycm9yKCkpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgLi4ueCxcbiAgICAgICAgICB2YWx1ZTogdW5kZWZpbmVkXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjdXJyZW50RGF0YSQ6IE9ic2VydmFibGU8TWF5YmU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+Pj4gPSB0aGlzLmRhdGFMb2FkaW5nU3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LnZhbHVlKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRhdGEkOiBPYnNlcnZhYmxlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPj4gPSB0aGlzLmN1cnJlbnREb2N1bWVudCQucGlwZShcbiAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5jdXJyZW50RGF0YSQucGlwZShmaWx0ZXJNYXliZSgpKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBpc0xvYWRpbmdEYXRhJCA9IHRoaXMuZGF0YUxvYWRpbmdTdGF0ZSQucGlwZShtYXAoaXNMb2FkaW5nU3RhdGVMb2FkaW5nKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGZhbHNlIHdoaWxlIGhhc1JlZiQgaXMgZmFsc2UsIGFuZCB0aGVuIHJldHVybnMgZXhpc3RzJC5cbiAgICovXG4gIHJlYWRvbmx5IGN1cnJlbnRFeGlzdHMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5oYXNSZWYkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChoYXNSZWYpID0+IHtcbiAgICAgIGlmIChoYXNSZWYpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhpc3RzJDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgICB9XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBleGlzdHMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5jdXJyZW50RGF0YSQucGlwZShcbiAgICBtYXAoKHgpID0+IGlzTWF5YmVTbyh4KSksXG4gICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xuICAgICAgbGV0IHJlc3VsdDogTWF5YmU8Ym9vbGVhbj47XG5cbiAgICAgIGlmIChpc0NsaWVudEZpcmViYXNlRXJyb3IoZSkpIHtcbiAgICAgICAgc3dpdGNoIChlLmNvZGUpIHtcbiAgICAgICAgICBjYXNlIEZJUkVTVE9SRV9QRVJNSVNTSU9OX0RFTklFRF9FUlJPUl9DT0RFOlxuICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7IC8vIGRvZXMgbm90IGV4aXN0IGlmIHBlcm1pc3Npb24gaXMgZGVuaWVkXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAocmVzdWx0ID09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9mKHJlc3VsdCk7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkb2VzTm90RXhpc3QkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5leGlzdHMkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiAheCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBtb2RlbElkZW50aXR5JDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbElkZW50aXR5PiA9IHRoaXMuZmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4Lm1vZGVsSWRlbnRpdHkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgLy8gTUFSSzogU3RhdGUgQ2hhbmdlc1xuICByZWFkb25seSBzZXRTdG9yZU5hbWUgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBzdG9yZU5hbWU6IE1heWJlPHN0cmluZz4pID0+ICh7IC4uLnN0YXRlLCBzdG9yZU5hbWUgfSkpIGFzIChvYnNlcnZhYmxlT3JWYWx1ZTogTWF5YmU8c3RyaW5nPiB8IE9ic2VydmFibGU8TWF5YmU8c3RyaW5nPj4pID0+IFN1YnNjcmlwdGlvbjtcbiAgcmVhZG9ubHkgc2V0SWQgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBpZDogTWF5YmU8RmlyZXN0b3JlTW9kZWxJZD4pID0+IChpZCA/IHsgLi4uc3RhdGUsIGlkLCBrZXk6IHVuZGVmaW5lZCwgcmVmOiB1bmRlZmluZWQgfSA6IHsgLi4uc3RhdGUsIGlkIH0pKSBhcyAob2JzZXJ2YWJsZU9yVmFsdWU6IE1heWJlPHN0cmluZz4gfCBPYnNlcnZhYmxlPE1heWJlPHN0cmluZz4+KSA9PiBTdWJzY3JpcHRpb247XG4gIHJlYWRvbmx5IHNldEtleSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGtleTogTWF5YmU8RmlyZXN0b3JlTW9kZWxLZXk+KSA9PiAoa2V5ID8geyAuLi5zdGF0ZSwga2V5LCBpZDogdW5kZWZpbmVkLCByZWY6IHVuZGVmaW5lZCB9IDogeyAuLi5zdGF0ZSwga2V5IH0pKSBhcyAob2JzZXJ2YWJsZU9yVmFsdWU6IE1heWJlPHN0cmluZz4gfCBPYnNlcnZhYmxlPE1heWJlPHN0cmluZz4+KSA9PiBTdWJzY3JpcHRpb247XG4gIHJlYWRvbmx5IHNldEZsYXRLZXkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBrZXk6IE1heWJlPFR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleT4pID0+IChrZXkgPyB7IC4uLnN0YXRlLCBrZXk6IGluZmVyS2V5RnJvbVR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleShrZXkpLCBpZDogdW5kZWZpbmVkLCByZWY6IHVuZGVmaW5lZCB9IDogeyAuLi5zdGF0ZSwga2V5IH0pKSBhcyAob2JzZXJ2YWJsZU9yVmFsdWU6IE1heWJlPHN0cmluZz4gfCBPYnNlcnZhYmxlPE1heWJlPHN0cmluZz4+KSA9PiBTdWJzY3JpcHRpb247XG4gIHJlYWRvbmx5IHNldFJlZiA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHJlZjogTWF5YmU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+KSA9PiAocmVmID8geyAuLi5zdGF0ZSwga2V5OiB1bmRlZmluZWQsIGlkOiB1bmRlZmluZWQsIHJlZiB9IDogeyAuLi5zdGF0ZSwgcmVmIH0pKSBhcyAob2JzZXJ2YWJsZU9yVmFsdWU6IE1heWJlPERvY3VtZW50UmVmZXJlbmNlPFQ+PiB8IE9ic2VydmFibGU8TWF5YmU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+PikgPT4gU3Vic2NyaXB0aW9uO1xuXG4gIHJlYWRvbmx5IHNldFN0cmVhbU1vZGUgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBzdHJlYW1Nb2RlOiBGaXJlc3RvcmVBY2Nlc3NvclN0cmVhbU1vZGUpID0+ICh7IC4uLnN0YXRlLCBzdHJlYW1Nb2RlIH0pKTtcblxuICByZWFkb25seSBjbGVhclJlZnMgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlKSA9PiAoeyAuLi5zdGF0ZSwgaWQ6IHVuZGVmaW5lZCwga2V5OiB1bmRlZmluZWQsIHJlZjogdW5kZWZpbmVkIH0pKTtcblxuICByZWFkb25seSBzZXRGaXJlc3RvcmVDb2xsZWN0aW9uID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZmlyZXN0b3JlQ29sbGVjdGlvbjogTWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbjxULCBEPj4pID0+ICh7IC4uLnN0YXRlLCBmaXJlc3RvcmVDb2xsZWN0aW9uIH0pKTtcbiAgcmVhZG9ubHkgc2V0RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBmaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTogTWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+KSA9PiAoeyAuLi5zdGF0ZSwgZmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UgfSkpO1xufVxuXG5mdW5jdGlvbiBpbmplY3RTaW5nbGVJdGVtSWRJbnRvU3RhdGU8VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIEMgZXh0ZW5kcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVDb250ZXh0U3RhdGU8VCwgRD4gPSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVDb250ZXh0U3RhdGU8VCwgRD4+KHN0YXRlPzogQyB8IHVuZGVmaW5lZCk6IEMgfCB1bmRlZmluZWQge1xuICBjb25zdCBpZCA9IChzdGF0ZT8uZmlyZXN0b3JlQ29sbGVjdGlvbiBhcyBSb290U2luZ2xlSXRlbUZpcmVzdG9yZUNvbGxlY3Rpb248VCwgRD4pPy5zaW5nbGVJdGVtSWRlbnRpZmllcjtcblxuICBpZiAoc3RhdGUgJiYgaWQgIT0gbnVsbCkge1xuICAgIHJldHVybiB7IC4uLnN0YXRlLCBpZCB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufVxuXG4vKipcbiAqIEFic3RyYWN0RGJ4RmlyZWJhc2VEb2N1bWVudFdpdGhQYXJlbnRTdG9yZSBleHRlbnNpb24gZm9yIHVzZSB3aXRoIFJvb3RTaW5nbGVJdGVtRmlyZXN0b3JlQ29sbGVjdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIEFic3RyYWN0Um9vdFNpbmdsZUl0ZW1EYnhGaXJlYmFzZURvY3VtZW50PFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+LCBDIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlQ29udGV4dFN0YXRlPFQsIEQ+ID0gRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlQ29udGV4dFN0YXRlPFQsIEQ+PiBleHRlbmRzIEFic3RyYWN0RGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPFQsIEQsIEM+IHtcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKEBJbmplY3QobnVsbCkgQE9wdGlvbmFsKCkgaW5pdGlhbFN0YXRlPzogQykge1xuICAgIHN1cGVyKGluamVjdFNpbmdsZUl0ZW1JZEludG9TdGF0ZTxULCBELCBDPihpbml0aWFsU3RhdGUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBTaW5nbGVJdGVtRmlyZXN0b3JlQ29sbGVjdGlvbiB0byB1c2UuXG4gICAqL1xuICBvdmVycmlkZSByZWFkb25seSBzZXRGaXJlc3RvcmVDb2xsZWN0aW9uID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZmlyZXN0b3JlQ29sbGVjdGlvbjogTWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbjxULCBEPj4pID0+IHtcbiAgICBpZiAoZmlyZXN0b3JlQ29sbGVjdGlvbiAhPSBudWxsKSB7XG4gICAgICBjb25zdCBpZCA9IChmaXJlc3RvcmVDb2xsZWN0aW9uIGFzIFJvb3RTaW5nbGVJdGVtRmlyZXN0b3JlQ29sbGVjdGlvbjxULCBEPikuc2luZ2xlSXRlbUlkZW50aWZpZXI7XG5cbiAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBmaXJlc3RvcmVDb2xsZWN0aW9uLCBpZCB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBYnN0cmFjdFJvb3RTaW5nbGVJdGVtRGJ4RmlyZWJhc2VEb2N1bWVudCBvbmx5IGFjY2VwdHMgUm9vdFNpbmdsZUl0ZW1GaXJlc3RvcmVDb2xsZWN0aW9uIHZhbHVlcyB3aXRoIGEgc2luZ2xlSXRlbUlkZW50aWZpZXIgc2V0IGZvciBzZXRGaXJlc3RvcmVDb2xsZWN0aW9uLicpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4geyAuLi5zdGF0ZSwgZmlyZXN0b3JlQ29sbGVjdGlvbjogbnVsbCB9O1xuICAgIH1cbiAgfSk7XG5cbiAgLyoqXG4gICAqIERvZXMgbm90aGluZyBvbiBhIEFic3RyYWN0Um9vdFNpbmdsZUl0ZW1EYnhGaXJlYmFzZURvY3VtZW50LlxuICAgKlxuICAgKiBSZWYgaXMgc2V0IHdpdGggdGhlIEZpcmVzdG9yZUNvbGxlY3Rpb25cbiAgICovXG4gIG92ZXJyaWRlIHJlYWRvbmx5IHNldElkID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgaWQ6IE1heWJlPEZpcmVzdG9yZU1vZGVsSWQ+KSA9PiBzdGF0ZSkgYXMgKG9ic2VydmFibGVPclZhbHVlOiBNYXliZTxzdHJpbmc+IHwgT2JzZXJ2YWJsZTxNYXliZTxzdHJpbmc+PikgPT4gU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBEb2VzIG5vdGhpbmcgb24gYSBBYnN0cmFjdFJvb3RTaW5nbGVJdGVtRGJ4RmlyZWJhc2VEb2N1bWVudC5cbiAgICpcbiAgICogUmVmIGlzIHNldCB3aXRoIHRoZSBGaXJlc3RvcmVDb2xsZWN0aW9uXG4gICAqL1xuICBvdmVycmlkZSByZWFkb25seSBzZXRLZXkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBrZXk6IE1heWJlPEZpcmVzdG9yZU1vZGVsS2V5PikgPT4gc3RhdGUpIGFzIChvYnNlcnZhYmxlT3JWYWx1ZTogTWF5YmU8c3RyaW5nPiB8IE9ic2VydmFibGU8TWF5YmU8c3RyaW5nPj4pID0+IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogRG9lcyBub3RoaW5nIG9uIGEgQWJzdHJhY3RSb290U2luZ2xlSXRlbURieEZpcmViYXNlRG9jdW1lbnQuXG4gICAqXG4gICAqIFJlZiBpcyBzZXQgd2l0aCB0aGUgRmlyZXN0b3JlQ29sbGVjdGlvblxuICAgKi9cbiAgb3ZlcnJpZGUgcmVhZG9ubHkgc2V0UmVmID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgcmVmOiBNYXliZTxEb2N1bWVudFJlZmVyZW5jZTxUPj4pID0+IHN0YXRlKSBhcyAob2JzZXJ2YWJsZU9yVmFsdWU6IE1heWJlPERvY3VtZW50UmVmZXJlbmNlPFQ+PiB8IE9ic2VydmFibGU8TWF5YmU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+PikgPT4gU3Vic2NyaXB0aW9uO1xuXG4gIG92ZXJyaWRlIHJlYWRvbmx5IGNsZWFyUmVmcyA9IHRoaXMudXBkYXRlcigoc3RhdGUpID0+IHN0YXRlKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVDb250ZXh0U3RhdGU8VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4+IHtcbiAgcmVhZG9ubHkgc3RvcmVOYW1lPzogTWF5YmU8c3RyaW5nPjtcbiAgcmVhZG9ubHkgZmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U/OiBNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj47XG4gIHJlYWRvbmx5IGZpcmVzdG9yZUNvbGxlY3Rpb24/OiBNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uPFQsIEQ+PjtcbiAgcmVhZG9ubHkgc3RyZWFtTW9kZT86IEZpcmVzdG9yZUFjY2Vzc29yU3RyZWFtTW9kZTtcbiAgcmVhZG9ubHkgaWQ/OiBNYXliZTxGaXJlc3RvcmVNb2RlbElkPjtcbiAgcmVhZG9ubHkga2V5PzogTWF5YmU8RmlyZXN0b3JlTW9kZWxLZXk+O1xuICByZWFkb25seSByZWY/OiBNYXliZTxEb2N1bWVudFJlZmVyZW5jZTxUPj47XG59XG4iXX0=
@@ -1,26 +0,0 @@
1
- import { Directive, inject } from '@angular/core';
2
- import { DbxFirebaseDocumentStoreDirective } from './store.document.directive';
3
- import { DbxFirebaseDocumentStoreTwoWayKeyProvider } from './store.document.twoway.key.source';
4
- import { AbstractSubscriptionDirective } from '@dereekb/dbx-core';
5
- import * as i0 from "@angular/core";
6
- /**
7
- * Used for providing an id from the twoWayFlatKey$ from a DbxFirebaseDocumentStoreTwoWayKeyProvider.
8
- */
9
- export class DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective extends AbstractSubscriptionDirective {
10
- dbxFirebaseDocumentStoreDirective = inject(DbxFirebaseDocumentStoreDirective, { host: true });
11
- dbxFirebaseDocumentStoreTwoWayKeyProvider = inject(DbxFirebaseDocumentStoreTwoWayKeyProvider, { skipSelf: true, host: false });
12
- constructor() {
13
- super();
14
- this.sub = this.dbxFirebaseDocumentStoreDirective.store.setId(this.dbxFirebaseDocumentStoreTwoWayKeyProvider.twoWayFlatKey$);
15
- }
16
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
17
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective, isStandalone: true, selector: "[dbxFirebaseDocumentStoreIdFromTwoWayModelKey]", usesInheritance: true, ngImport: i0 });
18
- }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective, decorators: [{
20
- type: Directive,
21
- args: [{
22
- selector: '[dbxFirebaseDocumentStoreIdFromTwoWayModelKey]',
23
- standalone: true
24
- }]
25
- }], ctorParameters: () => [] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQudHdvd2F5LmtleS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL3N0b3JlL3N0b3JlLmRvY3VtZW50LnR3b3dheS5rZXkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9FLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQy9GLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUVsRTs7R0FFRztBQUtILE1BQU0sT0FBTyxxREFBc0QsU0FBUSw2QkFBNkI7SUFDN0YsaUNBQWlDLEdBQUcsTUFBTSxDQUFDLGlDQUFpQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUYseUNBQXlDLEdBQUcsTUFBTSxDQUFDLHlDQUF5QyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUV4STtRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsaUNBQWlDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMseUNBQXlDLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDL0gsQ0FBQzt3R0FQVSxxREFBcUQ7NEZBQXJELHFEQUFxRDs7NEZBQXJELHFEQUFxRDtrQkFKakUsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0RBQWdEO29CQUMxRCxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlIH0gZnJvbSAnLi9zdG9yZS5kb2N1bWVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlVHdvV2F5S2V5UHJvdmlkZXIgfSBmcm9tICcuL3N0b3JlLmRvY3VtZW50LnR3b3dheS5rZXkuc291cmNlJztcbmltcG9ydCB7IEFic3RyYWN0U3Vic2NyaXB0aW9uRGlyZWN0aXZlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuXG4vKipcbiAqIFVzZWQgZm9yIHByb3ZpZGluZyBhbiBpZCBmcm9tIHRoZSB0d29XYXlGbGF0S2V5JCBmcm9tIGEgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlVHdvV2F5S2V5UHJvdmlkZXIuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkYnhGaXJlYmFzZURvY3VtZW50U3RvcmVJZEZyb21Ud29XYXlNb2RlbEtleV0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUlkRnJvbVR3b1dheU1vZGVsS2V5RGlyZWN0aXZlIGV4dGVuZHMgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUge1xuICByZWFkb25seSBkYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUgPSBpbmplY3QoRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlLCB7IGhvc3Q6IHRydWUgfSk7XG4gIHJlYWRvbmx5IGRieEZpcmViYXNlRG9jdW1lbnRTdG9yZVR3b1dheUtleVByb3ZpZGVyID0gaW5qZWN0KERieEZpcmViYXNlRG9jdW1lbnRTdG9yZVR3b1dheUtleVByb3ZpZGVyLCB7IHNraXBTZWxmOiB0cnVlLCBob3N0OiBmYWxzZSB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3ViID0gdGhpcy5kYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUuc3RvcmUuc2V0SWQodGhpcy5kYnhGaXJlYmFzZURvY3VtZW50U3RvcmVUd29XYXlLZXlQcm92aWRlci50d29XYXlGbGF0S2V5JCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,22 +0,0 @@
1
- import { Directive, inject } from '@angular/core';
2
- import { DbxFirebaseDocumentStoreDirective } from './store.document.directive';
3
- import { provideDbxFirebaseDocumentStoreTwoWayKeyProvider } from './store.document.twoway.key.source';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * Directive that implements DbxFirebaseDocumentStoreTwoWayKeyProvider and passes the twoWayFlatKey from a host DbxFirebaseDocumentStoreDirective.
7
- */
8
- export class DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective {
9
- dbxFirebaseDocumentStoreDirective = inject(DbxFirebaseDocumentStoreDirective, { host: true });
10
- twoWayFlatKey$ = this.dbxFirebaseDocumentStoreDirective.twoWayFlatKey$;
11
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
12
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, isStandalone: true, selector: "[dbxFirebaseDocumentStoreTwoWayModelKeySource]", providers: provideDbxFirebaseDocumentStoreTwoWayKeyProvider(DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective), ngImport: i0 });
13
- }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, decorators: [{
15
- type: Directive,
16
- args: [{
17
- selector: '[dbxFirebaseDocumentStoreTwoWayModelKeySource]',
18
- providers: provideDbxFirebaseDocumentStoreTwoWayKeyProvider(DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective),
19
- standalone: true
20
- }]
21
- }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQudHdvd2F5LmtleS5zb3VyY2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9zdG9yZS9zdG9yZS5kb2N1bWVudC50d293YXkua2V5LnNvdXJjZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0UsT0FBTyxFQUE2QyxnREFBZ0QsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQUVqSjs7R0FFRztBQU1ILE1BQU0sT0FBTyxxREFBcUQ7SUFDdkQsaUNBQWlDLEdBQUcsTUFBTSxDQUFDLGlDQUFpQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUYsY0FBYyxHQUF1QixJQUFJLENBQUMsaUNBQWlDLENBQUMsY0FBYyxDQUFDO3dHQUZ6RixxREFBcUQ7NEZBQXJELHFEQUFxRCw2RkFIckQsZ0RBQWdELENBQUMscURBQXFELENBQUM7OzRGQUd2RyxxREFBcUQ7a0JBTGpFLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdEQUFnRDtvQkFDMUQsU0FBUyxFQUFFLGdEQUFnRCx1REFBdUQ7b0JBQ2xILFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUgfSBmcm9tICcuL3N0b3JlLmRvY3VtZW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVUd29XYXlLZXlQcm92aWRlciwgcHJvdmlkZURieEZpcmViYXNlRG9jdW1lbnRTdG9yZVR3b1dheUtleVByb3ZpZGVyIH0gZnJvbSAnLi9zdG9yZS5kb2N1bWVudC50d293YXkua2V5LnNvdXJjZSc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHRoYXQgaW1wbGVtZW50cyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVUd29XYXlLZXlQcm92aWRlciBhbmQgcGFzc2VzIHRoZSB0d29XYXlGbGF0S2V5IGZyb20gYSBob3N0IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RieEZpcmViYXNlRG9jdW1lbnRTdG9yZVR3b1dheU1vZGVsS2V5U291cmNlXScsXG4gIHByb3ZpZGVyczogcHJvdmlkZURieEZpcmViYXNlRG9jdW1lbnRTdG9yZVR3b1dheUtleVByb3ZpZGVyKERieEZpcmViYXNlRG9jdW1lbnRTdG9yZVR3b1dheU1vZGVsS2V5U291cmNlRGlyZWN0aXZlKSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVUd29XYXlNb2RlbEtleVNvdXJjZURpcmVjdGl2ZSBpbXBsZW1lbnRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZVR3b1dheUtleVByb3ZpZGVyIHtcbiAgcmVhZG9ubHkgZGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlID0gaW5qZWN0KERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZSwgeyBob3N0OiB0cnVlIH0pO1xuICByZWFkb25seSB0d29XYXlGbGF0S2V5JDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5kYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUudHdvV2F5RmxhdEtleSQ7XG59XG4iXX0=
@@ -1,16 +0,0 @@
1
- import { forwardRef } from '@angular/core';
2
- export class DbxFirebaseDocumentStoreTwoWayKeyProvider {
3
- }
4
- /**
5
- * Configures Providers for a DbxFirebaseDocumentStoreTwoWayKeyProvider.
6
- */
7
- export function provideDbxFirebaseDocumentStoreTwoWayKeyProvider(sourceType) {
8
- const providers = [
9
- {
10
- provide: DbxFirebaseDocumentStoreTwoWayKeyProvider,
11
- useExisting: forwardRef(() => sourceType)
12
- }
13
- ];
14
- return providers;
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQudHdvd2F5LmtleS5zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL3N0b3JlL3N0b3JlLmRvY3VtZW50LnR3b3dheS5rZXkuc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNEIsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXJFLE1BQU0sT0FBZ0IseUNBQXlDO0NBRTlEO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZ0RBQWdELENBQXNELFVBQW1CO0lBQ3ZJLE1BQU0sU0FBUyxHQUFlO1FBQzVCO1lBQ0UsT0FBTyxFQUFFLHlDQUF5QztZQUNsRCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQztTQUMxQztLQUNGLENBQUM7SUFFRixPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBUeXBlLCB0eXBlIFByb3ZpZGVyLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0eXBlIFR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleSB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IHR5cGUgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlVHdvV2F5S2V5UHJvdmlkZXIge1xuICBhYnN0cmFjdCByZWFkb25seSB0d29XYXlGbGF0S2V5JDogT2JzZXJ2YWJsZTxUd29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXk+O1xufVxuXG4vKipcbiAqIENvbmZpZ3VyZXMgUHJvdmlkZXJzIGZvciBhIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZVR3b1dheUtleVByb3ZpZGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZURieEZpcmViYXNlRG9jdW1lbnRTdG9yZVR3b1dheUtleVByb3ZpZGVyPFMgZXh0ZW5kcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVUd29XYXlLZXlQcm92aWRlcj4oc291cmNlVHlwZTogVHlwZTxTPik6IFByb3ZpZGVyW10ge1xuICBjb25zdCBwcm92aWRlcnM6IFByb3ZpZGVyW10gPSBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlVHdvV2F5S2V5UHJvdmlkZXIsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBzb3VyY2VUeXBlKVxuICAgIH1cbiAgXTtcblxuICByZXR1cm4gcHJvdmlkZXJzO1xufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL3N0b3JlL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIExvY2tTZXRDb21wb25lbnQgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyB0eXBlIEZpcmVzdG9yZURvY3VtZW50LCB0eXBlIEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlLCB0eXBlIEZpcmVzdG9yZUNvbGxlY3Rpb24sIHR5cGUgRmlyZXN0b3JlTW9kZWxJZCwgdHlwZSBGaXJlc3RvcmVNb2RlbEtleSwgdHlwZSBEb2N1bWVudFJlZmVyZW5jZSwgdHlwZSBGaXJlc3RvcmVBY2Nlc3NvclN0cmVhbU1vZGUsIHR5cGUgRmxhdEZpcmVzdG9yZU1vZGVsS2V5LCB0eXBlIFR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleSwgdHlwZSBGaXJlc3RvcmVNb2RlbENvbGxlY3Rpb25BbmRJZFBhaXIsIHR5cGUgRmlyZXN0b3JlTW9kZWxDb2xsZWN0aW9uQW5kSWRQYWlyT2JqZWN0LCB0eXBlIERvY3VtZW50U25hcHNob3QsIHR5cGUgRG9jdW1lbnREYXRhV2l0aElkQW5kS2V5LCB0eXBlIEZpcmVzdG9yZU1vZGVsSWRlbnRpdHkgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5pbXBvcnQgeyB0eXBlIExvYWRpbmdTdGF0ZSwgdHlwZSBPYnNlcnZhYmxlT3JWYWx1ZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgdHlwZSBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgdHlwZSBPYnNlcnZhYmxlLCB0eXBlIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFByb3ZpZGVzIHJlYWQtb25seSBhY2Nlc3NvcnMgdG8gYSBzaW5nbGUgbW9kZWwvZG9jdW1lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VEb2N1bWVudFJlYWRPbmx5U3RvcmU8VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4+IHtcbiAgLyoqXG4gICAqIFN0cmluZyB1c2VkIHRvIGlkZW50aWZ5IHRoZSBzdG9yZS4gVHlwaWNhbGx5IG9ubHkgZm9yIGRlYnVnZ2luZyBVSSBwdXJwb3Nlcy5cbiAgICovXG4gIHJlYWRvbmx5IHN0b3JlTmFtZSQ6IE9ic2VydmFibGU8TWF5YmU8c3RyaW5nPj47XG5cbiAgcmVhZG9ubHkgZmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+PjtcbiAgcmVhZG9ubHkgZmlyZXN0b3JlQ29sbGVjdGlvbiQ6IE9ic2VydmFibGU8RmlyZXN0b3JlQ29sbGVjdGlvbjxULCBEPj47XG5cbiAgcmVhZG9ubHkgY3VycmVudElucHV0SWQkOiBPYnNlcnZhYmxlPE1heWJlPEZpcmVzdG9yZU1vZGVsSWQ+PjtcbiAgcmVhZG9ubHkgaW5wdXRJZCQ6IE9ic2VydmFibGU8RmlyZXN0b3JlTW9kZWxJZD47XG4gIHJlYWRvbmx5IGN1cnJlbnRJbnB1dEtleSQ6IE9ic2VydmFibGU8TWF5YmU8RmlyZXN0b3JlTW9kZWxLZXk+PjtcbiAgcmVhZG9ubHkgaW5wdXRLZXkkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsS2V5PjtcbiAgcmVhZG9ubHkgY3VycmVudElucHV0UmVmJDogT2JzZXJ2YWJsZTxNYXliZTxEb2N1bWVudFJlZmVyZW5jZTxUPj4+O1xuICByZWFkb25seSBpbnB1dFJlZiQ6IE9ic2VydmFibGU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+O1xuXG4gIHJlYWRvbmx5IHN0cmVhbU1vZGUkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUFjY2Vzc29yU3RyZWFtTW9kZT47XG5cbiAgcmVhZG9ubHkgY3VycmVudERvY3VtZW50JDogT2JzZXJ2YWJsZTxNYXliZTxEPj47XG4gIHJlYWRvbmx5IGRvY3VtZW50JDogT2JzZXJ2YWJsZTxEPjtcbiAgcmVhZG9ubHkgY3VycmVudElkJDogT2JzZXJ2YWJsZTxNYXliZTxGaXJlc3RvcmVNb2RlbElkPj47XG4gIHJlYWRvbmx5IGN1cnJlbnRLZXkkOiBPYnNlcnZhYmxlPE1heWJlPEZpcmVzdG9yZU1vZGVsS2V5Pj47XG4gIHJlYWRvbmx5IGlkJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbElkPjtcbiAgcmVhZG9ubHkga2V5JDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbEtleT47XG4gIHJlYWRvbmx5IHJlZiQ6IE9ic2VydmFibGU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+O1xuICByZWFkb25seSBoYXNSZWYkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICByZWFkb25seSBmbGF0S2V5JDogT2JzZXJ2YWJsZTxGbGF0RmlyZXN0b3JlTW9kZWxLZXk+O1xuICByZWFkb25seSB0d29XYXlGbGF0S2V5JDogT2JzZXJ2YWJsZTxUd29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXk+O1xuXG4gIHJlYWRvbmx5IGtleU1vZGVsSWRzJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbElkW10+O1xuICByZWFkb25seSBrZXlQYWlycyQ6IE9ic2VydmFibGU8RmlyZXN0b3JlTW9kZWxDb2xsZWN0aW9uQW5kSWRQYWlyW10+O1xuICByZWFkb25seSBrZXlQYWlyT2JqZWN0JDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbENvbGxlY3Rpb25BbmRJZFBhaXJPYmplY3Q+O1xuXG4gIHJlYWRvbmx5IGRvY3VtZW50TG9hZGluZ1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RD4+O1xuICByZWFkb25seSBzbmFwc2hvdCQ6IE9ic2VydmFibGU8RG9jdW1lbnRTbmFwc2hvdDxUPj47XG4gIHJlYWRvbmx5IHNuYXBzaG90TG9hZGluZ1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RG9jdW1lbnRTbmFwc2hvdDxUPj4+O1xuICByZWFkb25seSBjdXJyZW50RGF0YSQ6IE9ic2VydmFibGU8TWF5YmU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+Pj47XG4gIHJlYWRvbmx5IGRhdGEkOiBPYnNlcnZhYmxlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPj47XG4gIHJlYWRvbmx5IGRhdGFMb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD4+PjtcbiAgcmVhZG9ubHkgaXNMb2FkaW5nRGF0YSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHJlYWRvbmx5IGN1cnJlbnRFeGlzdHMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICByZWFkb25seSBleGlzdHMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICByZWFkb25seSBtb2RlbElkZW50aXR5JDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbElkZW50aXR5Pjtcbn1cblxuLyoqXG4gKiBQcm92aWRlcyBhY2Nlc3NvcnMgdG8gYSBzaW5nbGUgbW9kZWwvZG9jdW1lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+PiBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRSZWFkT25seVN0b3JlPFQsIEQ+LCBMb2NrU2V0Q29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFNldHMgdGhlIG5hbWUgb2YgdGhlIHN0b3JlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0U3RvcmVOYW1lOiAob2JzZXJ2YWJsZU9yVmFsdWU6IE9ic2VydmFibGVPclZhbHVlPE1heWJlPHN0cmluZz4+KSA9PiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGlkIG9mIHRoZSBkb2N1bWVudCB0byBsb2FkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0SWQ6IChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8RmlyZXN0b3JlTW9kZWxJZD4+KSA9PiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGtleSBvZiB0aGUgZG9jdW1lbnQgdG8gbG9hZC5cbiAgICovXG4gIHJlYWRvbmx5IHNldEtleTogKG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTxNYXliZTxGaXJlc3RvcmVNb2RlbEtleT4+KSA9PiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGtleSBvZiB0aGUgZG9jdW1lbnQgdG8gbG9hZCB1c2luZyBhIFR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleS5cbiAgICovXG4gIHJlYWRvbmx5IHNldEZsYXRLZXk6IChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8VHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5Pj4pID0+IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogU2V0cyB0aGUgcmVmIG9mIHRoZSBkb2N1bWVudCB0byBsb2FkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0UmVmOiAob2JzZXJ2YWJsZU9yVmFsdWU6IE9ic2VydmFibGVPclZhbHVlPE1heWJlPERvY3VtZW50UmVmZXJlbmNlPFQ+Pj4pID0+IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogQ2xlYXJzIHRoZSBrZXkvaWQvcmVmIGFuZCBjdXJyZW50IGRvY3VtZW50IGZyb20gdGhlIHN0b3JlLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xlYXJSZWZzOiAoKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzdHJlYW0gbW9kZS5cbiAgICovXG4gIHJlYWRvbmx5IHNldFN0cmVhbU1vZGU6IChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8RmlyZXN0b3JlQWNjZXNzb3JTdHJlYW1Nb2RlPikgPT4gU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBGaXJlc3RvcmVDb2xsZWN0aW9uIHRvIHJldHJpZXZlIGRvY3VtZW50cyBmcm9tLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0RmlyZXN0b3JlQ29sbGVjdGlvbjogKCgpID0+IHZvaWQpIHwgKChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbjxULCBEPj4+KSA9PiBTdWJzY3JpcHRpb24pO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZSB0byByZXRyaWV2ZSBkb2N1bWVudHMgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IHNldEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlOiAoKCkgPT4gdm9pZCkgfCAoKG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTxNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj4+KSA9PiBTdWJzY3JpcHRpb24pO1xufVxuIl19
@@ -1,44 +0,0 @@
1
- import { Directive, forwardRef, model } from '@angular/core';
2
- import { DbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionStoreDirective } from './store.collection.directive';
3
- import { toObservable } from '@angular/core/rxjs-interop';
4
- import { skipInitialMaybe, SubscriptionObject } from '@dereekb/rxjs';
5
- import * as i0 from "@angular/core";
6
- /**
7
- * Abstract directive that contains a DbxFirebaseCollectionWithParentStore and provides an interface for communicating with other directives.
8
- */
9
- export class DbxFirebaseCollectionWithParentStoreDirective extends DbxFirebaseCollectionStoreDirective {
10
- sourceMode = model(undefined);
11
- _sourceMode$ = toObservable(this.sourceMode).pipe(skipInitialMaybe());
12
- _parentSourceModeSub = new SubscriptionObject();
13
- constructor(store) {
14
- super(store);
15
- // sync inputs to store any time the store changes
16
- this._parentSourceModeSub.subscription = this.store$.subscribe((x) => {
17
- x.setSourceMode(this._sourceMode$);
18
- });
19
- }
20
- ngOnDestroy() {
21
- super.ngOnDestroy();
22
- this._parentSourceModeSub.destroy();
23
- }
24
- // MARK: Inputs
25
- setSourceMode(sourceMode) {
26
- this.sourceMode.set(sourceMode);
27
- }
28
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseCollectionWithParentStoreDirective, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
29
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxFirebaseCollectionWithParentStoreDirective, inputs: { sourceMode: { classPropertyName: "sourceMode", publicName: "sourceMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sourceMode: "sourceModeChange" }, usesInheritance: true, ngImport: i0 });
30
- }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseCollectionWithParentStoreDirective, decorators: [{
32
- type: Directive
33
- }], ctorParameters: () => [{ type: undefined }] });
34
- export function provideDbxFirebaseCollectionWithParentStoreDirective(sourceType, storeType) {
35
- const providers = [
36
- ...provideDbxFirebaseCollectionStoreDirective(sourceType, storeType),
37
- {
38
- provide: DbxFirebaseCollectionWithParentStoreDirective,
39
- useExisting: forwardRef(() => sourceType)
40
- }
41
- ];
42
- return providers;
43
- }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc3ViY29sbGVjdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL3N0b3JlL3N0b3JlLnN1YmNvbGxlY3Rpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBNkIsTUFBTSxlQUFlLENBQUM7QUFHeEYsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFL0gsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFckU7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLDZDQUF5UixTQUFRLG1DQUE0QztJQUN4VixVQUFVLEdBQUcsS0FBSyxDQUF1RCxTQUFTLENBQUMsQ0FBQztJQUU1RSxZQUFZLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBRXRFLG9CQUFvQixHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztJQUVqRSxZQUFZLEtBQVE7UUFDbEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWIsa0RBQWtEO1FBQ2xELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNuRSxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUSxXQUFXO1FBQ2xCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELGVBQWU7SUFDZixhQUFhLENBQUMsVUFBZ0U7UUFDNUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEMsQ0FBQzt3R0F4Qm1CLDZDQUE2Qzs0RkFBN0MsNkNBQTZDOzs0RkFBN0MsNkNBQTZDO2tCQURsRSxTQUFTOztBQXdDVixNQUFNLFVBQVUsb0RBQW9ELENBQTROLFVBQW1CLEVBQUUsU0FBbUI7SUFDdFUsTUFBTSxTQUFTLEdBQWU7UUFDNUIsR0FBRywwQ0FBMEMsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDO1FBQ3BFO1lBQ0UsT0FBTyxFQUFFLDZDQUE2QztZQUN0RCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQztTQUMxQztLQUNGLENBQUM7SUFFRixPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBmb3J3YXJkUmVmLCBtb2RlbCwgUHJvdmlkZXIsIFR5cGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlyZXN0b3JlRG9jdW1lbnQgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5pbXBvcnQgeyB0eXBlIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZSwgcHJvdmlkZURieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlRGlyZWN0aXZlIH0gZnJvbSAnLi9zdG9yZS5jb2xsZWN0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmUsIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50U291cmNlTW9kZSB9IGZyb20gJy4vc3RvcmUuc3ViY29sbGVjdGlvbic7XG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBza2lwSW5pdGlhbE1heWJlLCBTdWJzY3JpcHRpb25PYmplY3QgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcblxuLyoqXG4gKiBBYnN0cmFjdCBkaXJlY3RpdmUgdGhhdCBjb250YWlucyBhIERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZSBhbmQgcHJvdmlkZXMgYW4gaW50ZXJmYWNlIGZvciBjb21tdW5pY2F0aW5nIHdpdGggb3RoZXIgZGlyZWN0aXZlcy5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlRGlyZWN0aXZlPFQsIFBULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgUEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxQVD4gPSBGaXJlc3RvcmVEb2N1bWVudDxQVD4sIFMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmU8VCwgUFQsIEQsIFBEPiA9IERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZTxULCBQVCwgRCwgUEQ+PiBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlRGlyZWN0aXZlPFQsIEQsIFM+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgc291cmNlTW9kZSA9IG1vZGVsPE1heWJlPERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50U291cmNlTW9kZT4+KHVuZGVmaW5lZCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc291cmNlTW9kZSQgPSB0b09ic2VydmFibGUodGhpcy5zb3VyY2VNb2RlKS5waXBlKHNraXBJbml0aWFsTWF5YmUoKSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcGFyZW50U291cmNlTW9kZVN1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihzdG9yZTogUykge1xuICAgIHN1cGVyKHN0b3JlKTtcblxuICAgIC8vIHN5bmMgaW5wdXRzIHRvIHN0b3JlIGFueSB0aW1lIHRoZSBzdG9yZSBjaGFuZ2VzXG4gICAgdGhpcy5fcGFyZW50U291cmNlTW9kZVN1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLnN0b3JlJC5zdWJzY3JpYmUoKHgpID0+IHtcbiAgICAgIHguc2V0U291cmNlTW9kZSh0aGlzLl9zb3VyY2VNb2RlJCk7XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuX3BhcmVudFNvdXJjZU1vZGVTdWIuZGVzdHJveSgpO1xuICB9XG5cbiAgLy8gTUFSSzogSW5wdXRzXG4gIHNldFNvdXJjZU1vZGUoc291cmNlTW9kZTogTWF5YmU8RGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRTb3VyY2VNb2RlPikge1xuICAgIHRoaXMuc291cmNlTW9kZS5zZXQoc291cmNlTW9kZSk7XG4gIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLy8gVGhlIHVzZSBvZiBhbnkgaGVyZSBkb2VzIG5vdCBkZWdyYWRlIHRoZSB0eXBlLXNhZmV0eTsgd2Ugd2FudCB0byBzaW1wbHkgbWF0Y2ggdGhhdCB0aGUgU3RvcmUgdHlwZSBTIGlzIHVzZWQgaW4gdGhlIERpcmVjdGl2ZSB0eXBlIEMgdG8gcHJvdmlkZSBpdC5cblxuLyoqXG4gKiBDb25maWd1cmVzIHByb3ZpZGVycyBmb3IgYSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmUuXG4gKlxuICogQ2FuIG9wdGlvbmFsbHkgYWxzbyBwcm92aWRlIHRoZSBhY3R1YWwgc3RvcmUgdHlwZSB0byBpbmNsdWRlIGluIHRoZSBwcm92aWRlcnMgYXJyYXkgc28gaXQgaXMgaW5zdGFudGlhdGVkIGJ5IEFuZ3VsYXIuXG4gKlxuICogQHBhcmFtIHNvdXJjZVR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmU8UyBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgYW55LCBhbnksIGFueT4+KHNvdXJjZVR5cGU6IFR5cGU8Uz4pOiBQcm92aWRlcltdO1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmU8UyBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZTxhbnksIGFueSwgYW55LCBhbnk+LCBDIGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlRGlyZWN0aXZlPGFueSwgYW55LCBhbnksIGFueSwgUz4gPSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIGFueSwgYW55LCBTPj4oc291cmNlVHlwZTogVHlwZTxDPiwgc3RvcmVUeXBlPzogVHlwZTxTPik6IFByb3ZpZGVyW107XG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZURieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZURpcmVjdGl2ZTxTIGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlPGFueSwgYW55LCBhbnksIGFueT4sIEMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIGFueSwgYW55LCBTPiA9IERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgYW55LCBhbnksIFM+Pihzb3VyY2VUeXBlOiBUeXBlPEM+LCBzdG9yZVR5cGU/OiBUeXBlPFM+KTogUHJvdmlkZXJbXSB7XG4gIGNvbnN0IHByb3ZpZGVyczogUHJvdmlkZXJbXSA9IFtcbiAgICAuLi5wcm92aWRlRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmVEaXJlY3RpdmUoc291cmNlVHlwZSwgc3RvcmVUeXBlKSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmUsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBzb3VyY2VUeXBlKVxuICAgIH1cbiAgXTtcblxuICByZXR1cm4gcHJvdmlkZXJzO1xufVxuIl19