@dereekb/dbx-core 12.7.0 → 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 (461) hide show
  1. package/fesm2022/dereekb-dbx-core.mjs +659 -976
  2. package/fesm2022/dereekb-dbx-core.mjs.map +1 -1
  3. package/package.json +16 -18
  4. package/types/dereekb-dbx-core.d.ts +3633 -0
  5. package/esm2022/dereekb-dbx-core.mjs +0 -5
  6. package/esm2022/index.mjs +0 -2
  7. package/esm2022/lib/action/action.handler.mjs +0 -22
  8. package/esm2022/lib/action/action.holder.mjs +0 -76
  9. package/esm2022/lib/action/action.machine.mjs +0 -71
  10. package/esm2022/lib/action/action.mjs +0 -95
  11. package/esm2022/lib/action/action.module.mjs +0 -85
  12. package/esm2022/lib/action/action.reference.mjs +0 -7
  13. package/esm2022/lib/action/action.store.mjs +0 -290
  14. package/esm2022/lib/action/action.store.source.mjs +0 -162
  15. package/esm2022/lib/action/action.store.source.provide.mjs +0 -36
  16. package/esm2022/lib/action/directive/auto/action.automodify.directive.mjs +0 -36
  17. package/esm2022/lib/action/directive/auto/action.autotrigger.directive.mjs +0 -111
  18. package/esm2022/lib/action/directive/auto/index.mjs +0 -3
  19. package/esm2022/lib/action/directive/context/action.directive.mjs +0 -32
  20. package/esm2022/lib/action/directive/context/action.source.directive.mjs +0 -25
  21. package/esm2022/lib/action/directive/context/index.mjs +0 -3
  22. package/esm2022/lib/action/directive/debug/action.logger.directive.mjs +0 -25
  23. package/esm2022/lib/action/directive/debug/index.mjs +0 -2
  24. package/esm2022/lib/action/directive/index.mjs +0 -6
  25. package/esm2022/lib/action/directive/map/action.map.directive.mjs +0 -34
  26. package/esm2022/lib/action/directive/map/action.map.key.directive.mjs +0 -27
  27. package/esm2022/lib/action/directive/map/action.map.mjs +0 -60
  28. package/esm2022/lib/action/directive/map/action.map.source.directive.mjs +0 -44
  29. package/esm2022/lib/action/directive/map/action.map.utility.mjs +0 -37
  30. package/esm2022/lib/action/directive/map/action.map.working.disable.directive.mjs +0 -34
  31. package/esm2022/lib/action/directive/map/index.mjs +0 -7
  32. package/esm2022/lib/action/directive/state/action.disabled.directive.mjs +0 -30
  33. package/esm2022/lib/action/directive/state/action.disableonsuccess.directive.mjs +0 -31
  34. package/esm2022/lib/action/directive/state/action.enforce.modified.directive.mjs +0 -34
  35. package/esm2022/lib/action/directive/state/action.error.handler.directive.mjs +0 -32
  36. package/esm2022/lib/action/directive/state/action.handler.directive.mjs +0 -57
  37. package/esm2022/lib/action/directive/state/action.handler.instance.mjs +0 -61
  38. package/esm2022/lib/action/directive/state/action.idle.directive.mjs +0 -34
  39. package/esm2022/lib/action/directive/state/action.presuccess.directive.mjs +0 -34
  40. package/esm2022/lib/action/directive/state/action.success.directive.mjs +0 -34
  41. package/esm2022/lib/action/directive/state/action.success.handler.directive.mjs +0 -32
  42. package/esm2022/lib/action/directive/state/action.triggered.directive.mjs +0 -34
  43. package/esm2022/lib/action/directive/state/action.value.directive.mjs +0 -42
  44. package/esm2022/lib/action/directive/state/action.value.stream.directive.mjs +0 -59
  45. package/esm2022/lib/action/directive/state/action.value.trigger.directive.mjs +0 -75
  46. package/esm2022/lib/action/directive/state/action.value.trigger.instance.mjs +0 -59
  47. package/esm2022/lib/action/directive/state/action.working.directive.mjs +0 -41
  48. package/esm2022/lib/action/directive/state/index.mjs +0 -17
  49. package/esm2022/lib/action/index.mjs +0 -11
  50. package/esm2022/lib/auth/auth.module.mjs +0 -25
  51. package/esm2022/lib/auth/auth.providers.mjs +0 -16
  52. package/esm2022/lib/auth/auth.role.any.directive.mjs +0 -24
  53. package/esm2022/lib/auth/auth.role.has.directive.mjs +0 -24
  54. package/esm2022/lib/auth/auth.role.not.directive.mjs +0 -24
  55. package/esm2022/lib/auth/auth.state.providers.mjs +0 -14
  56. package/esm2022/lib/auth/auth.state.service.mjs +0 -20
  57. package/esm2022/lib/auth/auth.user.mjs +0 -11
  58. package/esm2022/lib/auth/index.mjs +0 -12
  59. package/esm2022/lib/auth/router/auth.router.mjs +0 -6
  60. package/esm2022/lib/auth/router/auth.router.providers.mjs +0 -19
  61. package/esm2022/lib/auth/router/auth.router.service.mjs +0 -73
  62. package/esm2022/lib/auth/router/index.mjs +0 -6
  63. package/esm2022/lib/auth/router/provider/uirouter/auth.hook.mjs +0 -23
  64. package/esm2022/lib/auth/router/provider/uirouter/hook.mjs +0 -71
  65. package/esm2022/lib/auth/router/provider/uirouter/index.mjs +0 -6
  66. package/esm2022/lib/auth/router/provider/uirouter/redirect.mjs +0 -29
  67. package/esm2022/lib/auth/router/provider/uirouter/role.hook.mjs +0 -58
  68. package/esm2022/lib/auth/router/provider/uirouter/state.hook.mjs +0 -53
  69. package/esm2022/lib/auth/router/state/auth.router.state.providers.mjs +0 -23
  70. package/esm2022/lib/auth/router/state/effect/auth.router.state.effect.mjs +0 -37
  71. package/esm2022/lib/auth/router/state/effect/index.mjs +0 -2
  72. package/esm2022/lib/auth/router/state/index.mjs +0 -3
  73. package/esm2022/lib/auth/service/auth.service.mjs +0 -6
  74. package/esm2022/lib/auth/service/auth.service.rxjs.mjs +0 -30
  75. package/esm2022/lib/auth/service/index.mjs +0 -3
  76. package/esm2022/lib/auth/state/action/auth.action.mjs +0 -14
  77. package/esm2022/lib/auth/state/action/index.mjs +0 -12
  78. package/esm2022/lib/auth/state/action/user.action.mjs +0 -18
  79. package/esm2022/lib/auth/state/effect/auth.effect.mjs +0 -33
  80. package/esm2022/lib/auth/state/index.mjs +0 -13
  81. package/esm2022/lib/auth/state/reducer/index.mjs +0 -23
  82. package/esm2022/lib/auth/state/reducer/user.reducer.mjs +0 -12
  83. package/esm2022/lib/auth/state/state.mjs +0 -2
  84. package/esm2022/lib/button/action/action.button.directive.mjs +0 -28
  85. package/esm2022/lib/button/action/action.button.trigger.directive.mjs +0 -30
  86. package/esm2022/lib/button/action/index.mjs +0 -3
  87. package/esm2022/lib/button/button.directive.mjs +0 -115
  88. package/esm2022/lib/button/button.loading.directive.mjs +0 -37
  89. package/esm2022/lib/button/button.mjs +0 -21
  90. package/esm2022/lib/button/button.module.mjs +0 -28
  91. package/esm2022/lib/button/index.mjs +0 -7
  92. package/esm2022/lib/button/router/button.segue.directive.mjs +0 -29
  93. package/esm2022/lib/button/router/index.mjs +0 -2
  94. package/esm2022/lib/context/context.directive.mjs +0 -26
  95. package/esm2022/lib/context/context.mjs +0 -25
  96. package/esm2022/lib/context/context.module.mjs +0 -19
  97. package/esm2022/lib/context/context.providers.mjs +0 -12
  98. package/esm2022/lib/context/context.service.mjs +0 -26
  99. package/esm2022/lib/context/index.mjs +0 -7
  100. package/esm2022/lib/context/state/action/data.action.mjs +0 -10
  101. package/esm2022/lib/context/state/action/index.mjs +0 -7
  102. package/esm2022/lib/context/state/effect/index.mjs +0 -33
  103. package/esm2022/lib/context/state/index.mjs +0 -13
  104. package/esm2022/lib/context/state/reducer/data.reducer.mjs +0 -16
  105. package/esm2022/lib/context/state/reducer/index.mjs +0 -25
  106. package/esm2022/lib/context/state/state.mjs +0 -2
  107. package/esm2022/lib/environment/environment.mjs +0 -6
  108. package/esm2022/lib/environment/environment.providers.mjs +0 -19
  109. package/esm2022/lib/environment/environment.service.mjs +0 -30
  110. package/esm2022/lib/environment/index.mjs +0 -4
  111. package/esm2022/lib/filter/filter.abstract.connector.directive.mjs +0 -21
  112. package/esm2022/lib/filter/filter.abstract.source.directive.mjs +0 -69
  113. package/esm2022/lib/filter/filter.connect.source.directive.mjs +0 -23
  114. package/esm2022/lib/filter/filter.connector.directive.mjs +0 -20
  115. package/esm2022/lib/filter/filter.content.mjs +0 -29
  116. package/esm2022/lib/filter/filter.map.connector.directive.mjs +0 -33
  117. package/esm2022/lib/filter/filter.map.directive.mjs +0 -22
  118. package/esm2022/lib/filter/filter.map.instance.directive.mjs +0 -25
  119. package/esm2022/lib/filter/filter.map.source.directive.mjs +0 -38
  120. package/esm2022/lib/filter/filter.module.mjs +0 -22
  121. package/esm2022/lib/filter/filter.preset.mjs +0 -8
  122. package/esm2022/lib/filter/filter.source.directive.mjs +0 -19
  123. package/esm2022/lib/filter/index.mjs +0 -13
  124. package/esm2022/lib/index.mjs +0 -15
  125. package/esm2022/lib/injection/index.mjs +0 -14
  126. package/esm2022/lib/injection/injection.array.component.mjs +0 -31
  127. package/esm2022/lib/injection/injection.array.mjs +0 -2
  128. package/esm2022/lib/injection/injection.component.mjs +0 -32
  129. package/esm2022/lib/injection/injection.component.module.mjs +0 -26
  130. package/esm2022/lib/injection/injection.context.directive.mjs +0 -130
  131. package/esm2022/lib/injection/injection.context.forward.directive.mjs +0 -25
  132. package/esm2022/lib/injection/injection.context.mjs +0 -20
  133. package/esm2022/lib/injection/injection.directive.mjs +0 -30
  134. package/esm2022/lib/injection/injection.instance.mjs +0 -121
  135. package/esm2022/lib/injection/injection.mjs +0 -16
  136. package/esm2022/lib/injection/injection.rxjs.mjs +0 -24
  137. package/esm2022/lib/injection/injection.util.mjs +0 -11
  138. package/esm2022/lib/injection/injector.mjs +0 -13
  139. package/esm2022/lib/ngrx/index.mjs +0 -2
  140. package/esm2022/lib/ngrx/store.lockset.mjs +0 -66
  141. package/esm2022/lib/pipe/async/asobservable.pipe.mjs +0 -21
  142. package/esm2022/lib/pipe/async/async.pipe.module.mjs +0 -20
  143. package/esm2022/lib/pipe/async/index.mjs +0 -3
  144. package/esm2022/lib/pipe/date/date.pipe.module.mjs +0 -108
  145. package/esm2022/lib/pipe/date/datedayrange.pipe.mjs +0 -24
  146. package/esm2022/lib/pipe/date/datedaytimerange.pipe.mjs +0 -24
  147. package/esm2022/lib/pipe/date/datedistance.pipe.mjs +0 -27
  148. package/esm2022/lib/pipe/date/dateformatdistance.pipe.mjs +0 -36
  149. package/esm2022/lib/pipe/date/datefromtoformat.pipe.mjs +0 -34
  150. package/esm2022/lib/pipe/date/daterangedistance.pipe.mjs +0 -24
  151. package/esm2022/lib/pipe/date/datetimerange.pipe.mjs +0 -24
  152. package/esm2022/lib/pipe/date/datetimerangeonly.pipe.mjs +0 -24
  153. package/esm2022/lib/pipe/date/datetimerangeonlydistance.pipe.mjs +0 -24
  154. package/esm2022/lib/pipe/date/index.mjs +0 -18
  155. package/esm2022/lib/pipe/date/minutesstring.pipe.mjs +0 -36
  156. package/esm2022/lib/pipe/date/systemdatetotargetdate.pipe.mjs +0 -27
  157. package/esm2022/lib/pipe/date/targetdatetosystemdate.pipe.mjs +0 -27
  158. package/esm2022/lib/pipe/date/timedistance.pipe.mjs +0 -57
  159. package/esm2022/lib/pipe/date/timezoneabbreviation.pipe.mjs +0 -27
  160. package/esm2022/lib/pipe/date/tojsdate.pipe.mjs +0 -30
  161. package/esm2022/lib/pipe/date/tominutes.pipe.mjs +0 -21
  162. package/esm2022/lib/pipe/index.mjs +0 -6
  163. package/esm2022/lib/pipe/misc/index.mjs +0 -3
  164. package/esm2022/lib/pipe/misc/misc.pipe.module.mjs +0 -21
  165. package/esm2022/lib/pipe/misc/prettyjson.pipe.mjs +0 -30
  166. package/esm2022/lib/pipe/pipe.module.mjs +0 -25
  167. package/esm2022/lib/pipe/value/cuttext.pipe.mjs +0 -22
  168. package/esm2022/lib/pipe/value/dollar.pipe.mjs +0 -24
  169. package/esm2022/lib/pipe/value/getvalue.pipe.mjs +0 -40
  170. package/esm2022/lib/pipe/value/index.mjs +0 -5
  171. package/esm2022/lib/pipe/value/value.pipe.module.mjs +0 -27
  172. package/esm2022/lib/router/anchor/anchor.directive.mjs +0 -63
  173. package/esm2022/lib/router/anchor/anchor.mjs +0 -52
  174. package/esm2022/lib/router/anchor/clickable.mjs +0 -18
  175. package/esm2022/lib/router/anchor/index.mjs +0 -5
  176. package/esm2022/lib/router/anchor/mousable.mjs +0 -2
  177. package/esm2022/lib/router/auth/hook/id.hook.mjs +0 -54
  178. package/esm2022/lib/router/auth/hook/index.mjs +0 -3
  179. package/esm2022/lib/router/auth/hook/uid.hook.mjs +0 -19
  180. package/esm2022/lib/router/auth/index.mjs +0 -2
  181. package/esm2022/lib/router/index.mjs +0 -6
  182. package/esm2022/lib/router/model/id.param.redirect.mjs +0 -73
  183. package/esm2022/lib/router/model/index.mjs +0 -7
  184. package/esm2022/lib/router/model/model.module.mjs +0 -26
  185. package/esm2022/lib/router/model/model.router.id.directive.mjs +0 -58
  186. package/esm2022/lib/router/model/model.router.key.directive.mjs +0 -60
  187. package/esm2022/lib/router/model/model.router.mjs +0 -38
  188. package/esm2022/lib/router/model/model.router.uid.directive.mjs +0 -25
  189. package/esm2022/lib/router/router/index.mjs +0 -5
  190. package/esm2022/lib/router/router/provider/angular/angular.router.service.mjs +0 -78
  191. package/esm2022/lib/router/router/provider/angular/angular.router.service.module.mjs +0 -31
  192. package/esm2022/lib/router/router/provider/angular/index.mjs +0 -3
  193. package/esm2022/lib/router/router/provider/index.mjs +0 -3
  194. package/esm2022/lib/router/router/provider/uirouter/index.mjs +0 -4
  195. package/esm2022/lib/router/router/provider/uirouter/uirouter.router.service.mjs +0 -95
  196. package/esm2022/lib/router/router/provider/uirouter/uirouter.router.service.module.mjs +0 -34
  197. package/esm2022/lib/router/router/provider/uirouter/uirouter.router.service.providers.mjs +0 -24
  198. package/esm2022/lib/router/router/service/index.mjs +0 -6
  199. package/esm2022/lib/router/router/service/router.go.mjs +0 -14
  200. package/esm2022/lib/router/router/service/router.service.mjs +0 -7
  201. package/esm2022/lib/router/router/service/router.service.rxjs.mjs +0 -39
  202. package/esm2022/lib/router/router/service/router.service.util.mjs +0 -14
  203. package/esm2022/lib/router/router/service/router.transition.service.mjs +0 -6
  204. package/esm2022/lib/router/router/transition/index.mjs +0 -5
  205. package/esm2022/lib/router/router/transition/transition.directive.mjs +0 -19
  206. package/esm2022/lib/router/router/transition/transition.mjs +0 -12
  207. package/esm2022/lib/router/router/transition/transition.rxjs.mjs +0 -55
  208. package/esm2022/lib/router/router/transition/transition.watcher.directive.mjs +0 -28
  209. package/esm2022/lib/router/router/util/index.mjs +0 -3
  210. package/esm2022/lib/router/router/util/route.default.mjs +0 -63
  211. package/esm2022/lib/router/router/util/route.reader.mjs +0 -47
  212. package/esm2022/lib/router/segue.mjs +0 -35
  213. package/esm2022/lib/rxjs/clean.mjs +0 -28
  214. package/esm2022/lib/rxjs/destroy.mjs +0 -13
  215. package/esm2022/lib/rxjs/index.mjs +0 -7
  216. package/esm2022/lib/rxjs/loading.mjs +0 -19
  217. package/esm2022/lib/rxjs/lockset.mjs +0 -56
  218. package/esm2022/lib/rxjs/rxjs.directive.mjs +0 -42
  219. package/esm2022/lib/rxjs/subscription.mjs +0 -16
  220. package/esm2022/lib/storage/index.mjs +0 -9
  221. package/esm2022/lib/storage/storage.accessor.mjs +0 -16
  222. package/esm2022/lib/storage/storage.accessor.simple.factory.mjs +0 -26
  223. package/esm2022/lib/storage/storage.accessor.simple.mjs +0 -172
  224. package/esm2022/lib/storage/storage.accessor.string.mjs +0 -50
  225. package/esm2022/lib/storage/storage.di.mjs +0 -4
  226. package/esm2022/lib/storage/storage.object.localstorage.mjs +0 -47
  227. package/esm2022/lib/storage/storage.object.memory.mjs +0 -17
  228. package/esm2022/lib/storage/storage.providers.mjs +0 -41
  229. package/esm2022/lib/util/index.mjs +0 -3
  230. package/esm2022/lib/util/input.mjs +0 -7
  231. package/esm2022/lib/util/view.mjs +0 -81
  232. package/esm2022/lib/view/if.directive.mjs +0 -28
  233. package/esm2022/lib/view/index.mjs +0 -2
  234. package/index.d.ts +0 -1
  235. package/lib/action/action.d.ts +0 -80
  236. package/lib/action/action.handler.d.ts +0 -15
  237. package/lib/action/action.holder.d.ts +0 -38
  238. package/lib/action/action.machine.d.ts +0 -48
  239. package/lib/action/action.module.d.ts +0 -30
  240. package/lib/action/action.reference.d.ts +0 -11
  241. package/lib/action/action.store.d.ts +0 -208
  242. package/lib/action/action.store.source.d.ts +0 -77
  243. package/lib/action/action.store.source.provide.d.ts +0 -7
  244. package/lib/action/directive/auto/action.automodify.directive.d.ts +0 -11
  245. package/lib/action/directive/auto/action.autotrigger.directive.d.ts +0 -36
  246. package/lib/action/directive/auto/index.d.ts +0 -2
  247. package/lib/action/directive/context/action.directive.d.ts +0 -10
  248. package/lib/action/directive/context/action.source.directive.d.ts +0 -12
  249. package/lib/action/directive/context/index.d.ts +0 -2
  250. package/lib/action/directive/debug/action.logger.directive.d.ts +0 -11
  251. package/lib/action/directive/debug/index.d.ts +0 -1
  252. package/lib/action/directive/index.d.ts +0 -5
  253. package/lib/action/directive/map/action.map.d.ts +0 -43
  254. package/lib/action/directive/map/action.map.directive.d.ts +0 -12
  255. package/lib/action/directive/map/action.map.key.directive.d.ts +0 -14
  256. package/lib/action/directive/map/action.map.source.directive.d.ts +0 -19
  257. package/lib/action/directive/map/action.map.utility.d.ts +0 -48
  258. package/lib/action/directive/map/action.map.working.disable.directive.d.ts +0 -16
  259. package/lib/action/directive/map/index.d.ts +0 -6
  260. package/lib/action/directive/state/action.disabled.directive.d.ts +0 -15
  261. package/lib/action/directive/state/action.disableonsuccess.directive.d.ts +0 -15
  262. package/lib/action/directive/state/action.enforce.modified.directive.d.ts +0 -15
  263. package/lib/action/directive/state/action.error.handler.directive.d.ts +0 -18
  264. package/lib/action/directive/state/action.handler.directive.d.ts +0 -33
  265. package/lib/action/directive/state/action.handler.instance.d.ts +0 -22
  266. package/lib/action/directive/state/action.idle.directive.d.ts +0 -15
  267. package/lib/action/directive/state/action.presuccess.directive.d.ts +0 -15
  268. package/lib/action/directive/state/action.success.directive.d.ts +0 -15
  269. package/lib/action/directive/state/action.success.handler.directive.d.ts +0 -18
  270. package/lib/action/directive/state/action.triggered.directive.d.ts +0 -15
  271. package/lib/action/directive/state/action.value.directive.d.ts +0 -23
  272. package/lib/action/directive/state/action.value.stream.directive.d.ts +0 -19
  273. package/lib/action/directive/state/action.value.trigger.directive.d.ts +0 -38
  274. package/lib/action/directive/state/action.value.trigger.instance.d.ts +0 -45
  275. package/lib/action/directive/state/action.working.directive.d.ts +0 -17
  276. package/lib/action/directive/state/index.d.ts +0 -16
  277. package/lib/action/index.d.ts +0 -10
  278. package/lib/auth/auth.module.d.ts +0 -16
  279. package/lib/auth/auth.providers.d.ts +0 -12
  280. package/lib/auth/auth.role.any.directive.d.ts +0 -15
  281. package/lib/auth/auth.role.has.directive.d.ts +0 -15
  282. package/lib/auth/auth.role.not.directive.d.ts +0 -15
  283. package/lib/auth/auth.state.providers.d.ts +0 -7
  284. package/lib/auth/auth.state.service.d.ts +0 -11
  285. package/lib/auth/auth.user.d.ts +0 -28
  286. package/lib/auth/index.d.ts +0 -11
  287. package/lib/auth/router/auth.router.d.ts +0 -10
  288. package/lib/auth/router/auth.router.providers.d.ts +0 -18
  289. package/lib/auth/router/auth.router.service.d.ts +0 -46
  290. package/lib/auth/router/index.d.ts +0 -5
  291. package/lib/auth/router/provider/uirouter/auth.hook.d.ts +0 -18
  292. package/lib/auth/router/provider/uirouter/hook.d.ts +0 -51
  293. package/lib/auth/router/provider/uirouter/index.d.ts +0 -5
  294. package/lib/auth/router/provider/uirouter/redirect.d.ts +0 -9
  295. package/lib/auth/router/provider/uirouter/role.hook.d.ts +0 -44
  296. package/lib/auth/router/provider/uirouter/state.hook.d.ts +0 -31
  297. package/lib/auth/router/state/auth.router.state.providers.d.ts +0 -19
  298. package/lib/auth/router/state/effect/auth.router.state.effect.d.ts +0 -28
  299. package/lib/auth/router/state/effect/index.d.ts +0 -1
  300. package/lib/auth/router/state/index.d.ts +0 -2
  301. package/lib/auth/service/auth.service.d.ts +0 -46
  302. package/lib/auth/service/auth.service.rxjs.d.ts +0 -19
  303. package/lib/auth/service/index.d.ts +0 -2
  304. package/lib/auth/state/action/auth.action.d.ts +0 -12
  305. package/lib/auth/state/action/index.d.ts +0 -11
  306. package/lib/auth/state/action/user.action.d.ts +0 -34
  307. package/lib/auth/state/effect/auth.effect.d.ts +0 -28
  308. package/lib/auth/state/index.d.ts +0 -12
  309. package/lib/auth/state/reducer/index.d.ts +0 -29
  310. package/lib/auth/state/reducer/user.reducer.d.ts +0 -11
  311. package/lib/auth/state/state.d.ts +0 -5
  312. package/lib/button/action/action.button.directive.d.ts +0 -10
  313. package/lib/button/action/action.button.trigger.directive.d.ts +0 -14
  314. package/lib/button/action/index.d.ts +0 -2
  315. package/lib/button/button.d.ts +0 -113
  316. package/lib/button/button.directive.d.ts +0 -60
  317. package/lib/button/button.loading.directive.d.ts +0 -18
  318. package/lib/button/button.module.d.ts +0 -19
  319. package/lib/button/index.d.ts +0 -6
  320. package/lib/button/router/button.segue.directive.d.ts +0 -13
  321. package/lib/button/router/index.d.ts +0 -1
  322. package/lib/context/context.d.ts +0 -42
  323. package/lib/context/context.directive.d.ts +0 -13
  324. package/lib/context/context.module.d.ts +0 -10
  325. package/lib/context/context.providers.d.ts +0 -7
  326. package/lib/context/context.service.d.ts +0 -14
  327. package/lib/context/index.d.ts +0 -6
  328. package/lib/context/state/action/data.action.d.ts +0 -13
  329. package/lib/context/state/action/index.d.ts +0 -6
  330. package/lib/context/state/effect/index.d.ts +0 -24
  331. package/lib/context/state/index.d.ts +0 -12
  332. package/lib/context/state/reducer/data.reducer.d.ts +0 -13
  333. package/lib/context/state/reducer/index.d.ts +0 -34
  334. package/lib/context/state/state.d.ts +0 -9
  335. package/lib/environment/environment.d.ts +0 -21
  336. package/lib/environment/environment.providers.d.ts +0 -8
  337. package/lib/environment/environment.service.d.ts +0 -17
  338. package/lib/environment/index.d.ts +0 -3
  339. package/lib/filter/filter.abstract.connector.directive.d.ts +0 -13
  340. package/lib/filter/filter.abstract.source.directive.d.ts +0 -37
  341. package/lib/filter/filter.connect.source.directive.d.ts +0 -13
  342. package/lib/filter/filter.connector.directive.d.ts +0 -9
  343. package/lib/filter/filter.content.d.ts +0 -10
  344. package/lib/filter/filter.map.connector.directive.d.ts +0 -14
  345. package/lib/filter/filter.map.directive.d.ts +0 -10
  346. package/lib/filter/filter.map.instance.directive.d.ts +0 -16
  347. package/lib/filter/filter.map.source.directive.d.ts +0 -23
  348. package/lib/filter/filter.module.d.ts +0 -12
  349. package/lib/filter/filter.preset.d.ts +0 -29
  350. package/lib/filter/filter.source.directive.d.ts +0 -9
  351. package/lib/filter/index.d.ts +0 -12
  352. package/lib/index.d.ts +0 -14
  353. package/lib/injection/index.d.ts +0 -13
  354. package/lib/injection/injection.array.component.d.ts +0 -11
  355. package/lib/injection/injection.array.d.ts +0 -12
  356. package/lib/injection/injection.component.d.ts +0 -19
  357. package/lib/injection/injection.component.module.d.ts +0 -16
  358. package/lib/injection/injection.context.d.ts +0 -39
  359. package/lib/injection/injection.context.directive.d.ts +0 -26
  360. package/lib/injection/injection.context.forward.directive.d.ts +0 -15
  361. package/lib/injection/injection.d.ts +0 -53
  362. package/lib/injection/injection.directive.d.ts +0 -18
  363. package/lib/injection/injection.instance.d.ts +0 -32
  364. package/lib/injection/injection.rxjs.d.ts +0 -10
  365. package/lib/injection/injection.util.d.ts +0 -9
  366. package/lib/injection/injector.d.ts +0 -10
  367. package/lib/ngrx/index.d.ts +0 -1
  368. package/lib/ngrx/store.lockset.d.ts +0 -36
  369. package/lib/pipe/async/asobservable.pipe.d.ts +0 -12
  370. package/lib/pipe/async/async.pipe.module.d.ts +0 -10
  371. package/lib/pipe/async/index.d.ts +0 -2
  372. package/lib/pipe/date/date.pipe.module.d.ts +0 -43
  373. package/lib/pipe/date/datedayrange.pipe.d.ts +0 -9
  374. package/lib/pipe/date/datedaytimerange.pipe.d.ts +0 -9
  375. package/lib/pipe/date/datedistance.pipe.d.ts +0 -8
  376. package/lib/pipe/date/dateformatdistance.pipe.d.ts +0 -12
  377. package/lib/pipe/date/datefromtoformat.pipe.d.ts +0 -13
  378. package/lib/pipe/date/daterangedistance.pipe.d.ts +0 -9
  379. package/lib/pipe/date/datetimerange.pipe.d.ts +0 -9
  380. package/lib/pipe/date/datetimerangeonly.pipe.d.ts +0 -9
  381. package/lib/pipe/date/datetimerangeonlydistance.pipe.d.ts +0 -9
  382. package/lib/pipe/date/index.d.ts +0 -17
  383. package/lib/pipe/date/minutesstring.pipe.d.ts +0 -8
  384. package/lib/pipe/date/systemdatetotargetdate.pipe.d.ts +0 -12
  385. package/lib/pipe/date/targetdatetosystemdate.pipe.d.ts +0 -12
  386. package/lib/pipe/date/timedistance.pipe.d.ts +0 -13
  387. package/lib/pipe/date/timezoneabbreviation.pipe.d.ts +0 -12
  388. package/lib/pipe/date/tojsdate.pipe.d.ts +0 -10
  389. package/lib/pipe/date/tominutes.pipe.d.ts +0 -7
  390. package/lib/pipe/index.d.ts +0 -5
  391. package/lib/pipe/misc/index.d.ts +0 -2
  392. package/lib/pipe/misc/misc.pipe.module.d.ts +0 -12
  393. package/lib/pipe/misc/prettyjson.pipe.d.ts +0 -9
  394. package/lib/pipe/pipe.module.d.ts +0 -15
  395. package/lib/pipe/value/cuttext.pipe.d.ts +0 -11
  396. package/lib/pipe/value/dollar.pipe.d.ts +0 -13
  397. package/lib/pipe/value/getvalue.pipe.d.ts +0 -19
  398. package/lib/pipe/value/index.d.ts +0 -4
  399. package/lib/pipe/value/value.pipe.module.d.ts +0 -17
  400. package/lib/router/anchor/anchor.d.ts +0 -71
  401. package/lib/router/anchor/anchor.directive.d.ts +0 -30
  402. package/lib/router/anchor/clickable.d.ts +0 -20
  403. package/lib/router/anchor/index.d.ts +0 -4
  404. package/lib/router/anchor/mousable.d.ts +0 -9
  405. package/lib/router/auth/hook/id.hook.d.ts +0 -44
  406. package/lib/router/auth/hook/index.d.ts +0 -2
  407. package/lib/router/auth/hook/uid.hook.d.ts +0 -41
  408. package/lib/router/auth/index.d.ts +0 -1
  409. package/lib/router/index.d.ts +0 -5
  410. package/lib/router/model/id.param.redirect.d.ts +0 -51
  411. package/lib/router/model/index.d.ts +0 -6
  412. package/lib/router/model/model.module.d.ts +0 -16
  413. package/lib/router/model/model.router.d.ts +0 -35
  414. package/lib/router/model/model.router.id.directive.d.ts +0 -27
  415. package/lib/router/model/model.router.key.directive.d.ts +0 -29
  416. package/lib/router/model/model.router.uid.directive.d.ts +0 -13
  417. package/lib/router/router/index.d.ts +0 -4
  418. package/lib/router/router/provider/angular/angular.router.service.d.ts +0 -24
  419. package/lib/router/router/provider/angular/angular.router.service.module.d.ts +0 -8
  420. package/lib/router/router/provider/angular/index.d.ts +0 -2
  421. package/lib/router/router/provider/index.d.ts +0 -2
  422. package/lib/router/router/provider/uirouter/index.d.ts +0 -3
  423. package/lib/router/router/provider/uirouter/uirouter.router.service.d.ts +0 -32
  424. package/lib/router/router/provider/uirouter/uirouter.router.service.module.d.ts +0 -11
  425. package/lib/router/router/provider/uirouter/uirouter.router.service.providers.d.ts +0 -7
  426. package/lib/router/router/service/index.d.ts +0 -5
  427. package/lib/router/router/service/router.go.d.ts +0 -14
  428. package/lib/router/router/service/router.service.d.ts +0 -49
  429. package/lib/router/router/service/router.service.rxjs.d.ts +0 -27
  430. package/lib/router/router/service/router.service.util.d.ts +0 -26
  431. package/lib/router/router/service/router.transition.service.d.ts +0 -11
  432. package/lib/router/router/transition/index.d.ts +0 -4
  433. package/lib/router/router/transition/transition.d.ts +0 -13
  434. package/lib/router/router/transition/transition.directive.d.ts +0 -13
  435. package/lib/router/router/transition/transition.rxjs.d.ts +0 -67
  436. package/lib/router/router/transition/transition.watcher.directive.d.ts +0 -14
  437. package/lib/router/router/util/index.d.ts +0 -2
  438. package/lib/router/router/util/route.default.d.ts +0 -20
  439. package/lib/router/router/util/route.reader.d.ts +0 -56
  440. package/lib/router/segue.d.ts +0 -38
  441. package/lib/rxjs/clean.d.ts +0 -16
  442. package/lib/rxjs/destroy.d.ts +0 -7
  443. package/lib/rxjs/index.d.ts +0 -6
  444. package/lib/rxjs/loading.d.ts +0 -13
  445. package/lib/rxjs/lockset.d.ts +0 -47
  446. package/lib/rxjs/rxjs.directive.d.ts +0 -29
  447. package/lib/rxjs/subscription.d.ts +0 -9
  448. package/lib/storage/index.d.ts +0 -8
  449. package/lib/storage/storage.accessor.d.ts +0 -35
  450. package/lib/storage/storage.accessor.simple.d.ts +0 -80
  451. package/lib/storage/storage.accessor.simple.factory.d.ts +0 -17
  452. package/lib/storage/storage.accessor.string.d.ts +0 -16
  453. package/lib/storage/storage.di.d.ts +0 -3
  454. package/lib/storage/storage.object.localstorage.d.ts +0 -16
  455. package/lib/storage/storage.object.memory.d.ts +0 -9
  456. package/lib/storage/storage.providers.d.ts +0 -13
  457. package/lib/util/index.d.ts +0 -2
  458. package/lib/util/input.d.ts +0 -6
  459. package/lib/util/view.d.ts +0 -61
  460. package/lib/view/if.directive.d.ts +0 -18
  461. package/lib/view/index.d.ts +0 -1
@@ -1,35 +0,0 @@
1
- import { hasValueOrNotEmpty } from '@dereekb/util';
2
- import { map } from 'rxjs';
3
- export function isSegueRef(input) {
4
- return typeof input === 'object' && hasValueOrNotEmpty(input.ref);
5
- }
6
- export function asSegueRef(input) {
7
- const type = typeof input;
8
- if (type === 'string') {
9
- return refStringToSegueRef(input);
10
- }
11
- else if (isSegueRef(input)) {
12
- return input;
13
- }
14
- else {
15
- return undefined;
16
- }
17
- }
18
- export function asSegueRefString(input) {
19
- if (typeof input === 'string') {
20
- return input;
21
- }
22
- else if (isSegueRef(input)) {
23
- return input.ref;
24
- }
25
- else {
26
- throw new Error(`asSegueRefString() failed to convert the input to a string: ${input}`);
27
- }
28
- }
29
- export function refStringToSegueRef(ref, options) {
30
- return { ...options, ref };
31
- }
32
- export function mapRefStringObsToSegueRefObs(obs, options) {
33
- return obs.pipe(map((x) => refStringToSegueRef(x, options)));
34
- }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VndWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3JvdXRlci9zZWd1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLGtCQUFrQixFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxHQUFHLEVBQW1CLE1BQU0sTUFBTSxDQUFDO0FBcUM1QyxNQUFNLFVBQVUsVUFBVSxDQUFhLEtBQTZDO0lBQ2xGLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLGtCQUFrQixDQUFFLEtBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbEYsQ0FBQztBQUlELE1BQU0sVUFBVSxVQUFVLENBQWEsS0FBNkM7SUFDbEYsTUFBTSxJQUFJLEdBQUcsT0FBTyxLQUFLLENBQUM7SUFFMUIsSUFBSSxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDdEIsT0FBTyxtQkFBbUIsQ0FBQyxLQUFlLENBQUMsQ0FBQztJQUM5QyxDQUFDO1NBQU0sSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM3QixPQUFPLEtBQW9CLENBQUM7SUFDOUIsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0FBQ0gsQ0FBQztBQUlELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBYSxLQUFzRDtJQUNqRyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztTQUFNLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDN0IsT0FBTyxLQUFLLENBQUMsR0FBYSxDQUFDO0lBQzdCLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQywrREFBK0QsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMxRixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBYSxHQUFXLEVBQUUsT0FBNEI7SUFDdkYsT0FBTyxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBQzdCLENBQUM7QUFFRCxNQUFNLFVBQVUsNEJBQTRCLENBQWEsR0FBdUIsRUFBRSxPQUE0QjtJQUM1RyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIEFycmF5T3JWYWx1ZSwgaGFzVmFsdWVPck5vdEVtcHR5LCB0eXBlIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBtYXAsIHR5cGUgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBTZWd1ZVJlZlJvdXRlckxpbmsgPSBzdHJpbmcgfCBBcnJheU9yVmFsdWU8b2JqZWN0PjtcblxuZXhwb3J0IGludGVyZmFjZSBTZWd1ZVJlZlJhd1NlZ3VlUGFyYW1zIHtcbiAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWd1ZVJlZk9wdGlvbnM8TyA9IG9iamVjdD4ge1xuICAvKipcbiAgICogUmF3IHBhcmFtZXRlcnNcbiAgICovXG4gIHJlZlBhcmFtcz86IFNlZ3VlUmVmUmF3U2VndWVQYXJhbXM7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBUcmFuc2l0aW9uIE9wdGlvbnMuXG4gICAqXG4gICAqIEZvciBVSVJvdXRlciwgdGhpcyBpcyBUcmFuc2l0aW9uT3B0aW9ucy5cbiAgICovXG4gIHJlZk9wdGlvbnM/OiBPO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBzZWd1ZSByZWZcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWd1ZVJlZjxPID0gb2JqZWN0PiBleHRlbmRzIFNlZ3VlUmVmT3B0aW9uczxPPiB7XG4gIC8qKlxuICAgKiBSZWYgcGF0aCB2YWx1ZS5cbiAgICovXG4gIHJlZjogU2VndWVSZWZSb3V0ZXJMaW5rO1xufVxuXG4vKipcbiAqIEEgU2VndWVSZWYgb2JqZWN0IG9yIGEgZGlmZmVyZW50IHJvdXRlciBsaW5rIHJlcHJlc2VudGF0aW9uLlxuICovXG5leHBvcnQgdHlwZSBTZWd1ZVJlZk9yU2VndWVSZWZSb3V0ZXJMaW5rPE8gPSBvYmplY3Q+ID0gU2VndWVSZWY8Tz4gfCBTZWd1ZVJlZlJvdXRlckxpbms7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NlZ3VlUmVmPE8gPSBvYmplY3Q+KGlucHV0OiBNYXliZTxTZWd1ZVJlZk9yU2VndWVSZWZSb3V0ZXJMaW5rPE8+Pik6IGlucHV0IGlzIFNlZ3VlUmVmPE8+IHtcbiAgcmV0dXJuIHR5cGVvZiBpbnB1dCA9PT0gJ29iamVjdCcgJiYgaGFzVmFsdWVPck5vdEVtcHR5KChpbnB1dCBhcyBTZWd1ZVJlZikucmVmKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzU2VndWVSZWY8TyA9IG9iamVjdD4oaW5wdXQ6IFNlZ3VlUmVmT3JTZWd1ZVJlZlJvdXRlckxpbms8Tz4pOiBTZWd1ZVJlZjxPPjtcbmV4cG9ydCBmdW5jdGlvbiBhc1NlZ3VlUmVmPE8gPSBvYmplY3Q+KGlucHV0OiBNYXliZTxTZWd1ZVJlZk9yU2VndWVSZWZSb3V0ZXJMaW5rPE8+Pik6IE1heWJlPFNlZ3VlUmVmPE8+PjtcbmV4cG9ydCBmdW5jdGlvbiBhc1NlZ3VlUmVmPE8gPSBvYmplY3Q+KGlucHV0OiBNYXliZTxTZWd1ZVJlZk9yU2VndWVSZWZSb3V0ZXJMaW5rPE8+Pik6IE1heWJlPFNlZ3VlUmVmPE8+PiB7XG4gIGNvbnN0IHR5cGUgPSB0eXBlb2YgaW5wdXQ7XG5cbiAgaWYgKHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHJlZlN0cmluZ1RvU2VndWVSZWYoaW5wdXQgYXMgc3RyaW5nKTtcbiAgfSBlbHNlIGlmIChpc1NlZ3VlUmVmKGlucHV0KSkge1xuICAgIHJldHVybiBpbnB1dCBhcyBTZWd1ZVJlZjxPPjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc1NlZ3VlUmVmU3RyaW5nPE8gPSBvYmplY3Q+KGlucHV0OiBTZWd1ZVJlZk9yU2VndWVSZWZSb3V0ZXJMaW5rPE8+IHwgc3RyaW5nKTogc3RyaW5nO1xuZXhwb3J0IGZ1bmN0aW9uIGFzU2VndWVSZWZTdHJpbmc8TyA9IG9iamVjdD4oaW5wdXQ6IE1heWJlPFNlZ3VlUmVmT3JTZWd1ZVJlZlJvdXRlckxpbms8Tz4gfCBzdHJpbmc+KTogTWF5YmU8c3RyaW5nPjtcbmV4cG9ydCBmdW5jdGlvbiBhc1NlZ3VlUmVmU3RyaW5nPE8gPSBvYmplY3Q+KGlucHV0OiBNYXliZTxTZWd1ZVJlZk9yU2VndWVSZWZSb3V0ZXJMaW5rPE8+IHwgc3RyaW5nPik6IE1heWJlPHN0cmluZz4ge1xuICBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBpbnB1dDtcbiAgfSBlbHNlIGlmIChpc1NlZ3VlUmVmKGlucHV0KSkge1xuICAgIHJldHVybiBpbnB1dC5yZWYgYXMgc3RyaW5nO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihgYXNTZWd1ZVJlZlN0cmluZygpIGZhaWxlZCB0byBjb252ZXJ0IHRoZSBpbnB1dCB0byBhIHN0cmluZzogJHtpbnB1dH1gKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVmU3RyaW5nVG9TZWd1ZVJlZjxPID0gb2JqZWN0PihyZWY6IHN0cmluZywgb3B0aW9ucz86IFNlZ3VlUmVmT3B0aW9uczxPPik6IFNlZ3VlUmVmPE8+IHtcbiAgcmV0dXJuIHsgLi4ub3B0aW9ucywgcmVmIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBSZWZTdHJpbmdPYnNUb1NlZ3VlUmVmT2JzPE8gPSBvYmplY3Q+KG9iczogT2JzZXJ2YWJsZTxzdHJpbmc+LCBvcHRpb25zPzogU2VndWVSZWZPcHRpb25zPE8+KTogT2JzZXJ2YWJsZTxTZWd1ZVJlZjxPPj4ge1xuICByZXR1cm4gb2JzLnBpcGUobWFwKCh4KSA9PiByZWZTdHJpbmdUb1NlZ3VlUmVmKHgsIG9wdGlvbnMpKSk7XG59XG4iXX0=
@@ -1,28 +0,0 @@
1
- import { DestroyRef, inject } from '@angular/core';
2
- /**
3
- * Wraps a Destroyable in a function that registers the input Destroyable to be destroyed
4
- * when the DestroyRef is destroyed in the context.
5
- *
6
- * Must be run in an Angular injection context.
7
- */
8
- export function clean(input) {
9
- const destroyRef = inject(DestroyRef);
10
- if (input.destroy) {
11
- destroyRef.onDestroy(() => input.destroy());
12
- }
13
- else {
14
- destroyRef.onDestroy(input);
15
- }
16
- return input;
17
- }
18
- /**
19
- * Wraps a Subject in a function that registers the input Subject to be completed
20
- * when the DestroyRef is destroyed in the context.
21
- *
22
- * Must be run in an Angular injection context.
23
- */
24
- export function completeOnDestroy(input) {
25
- clean(() => input.complete());
26
- return input;
27
- }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3J4anMvY2xlYW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsS0FBSyxDQUEwQyxLQUFRO0lBQ3JFLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUV0QyxJQUFLLEtBQXFCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBRSxLQUFxQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztTQUFNLENBQUM7UUFDTixVQUFVLENBQUMsU0FBUyxDQUFDLEtBQXdCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQXFELEtBQVE7SUFDNUYsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdHlwZSBEZXN0cm95YWJsZSwgdHlwZSBEZXN0cm95RnVuY3Rpb24gfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IHR5cGUgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFdyYXBzIGEgRGVzdHJveWFibGUgaW4gYSBmdW5jdGlvbiB0aGF0IHJlZ2lzdGVycyB0aGUgaW5wdXQgRGVzdHJveWFibGUgdG8gYmUgZGVzdHJveWVkXG4gKiB3aGVuIHRoZSBEZXN0cm95UmVmIGlzIGRlc3Ryb3llZCBpbiB0aGUgY29udGV4dC5cbiAqXG4gKiBNdXN0IGJlIHJ1biBpbiBhbiBBbmd1bGFyIGluamVjdGlvbiBjb250ZXh0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYW48VCBleHRlbmRzIERlc3Ryb3lhYmxlIHwgRGVzdHJveUZ1bmN0aW9uPihpbnB1dDogVCk6IFQge1xuICBjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIGlmICgoaW5wdXQgYXMgRGVzdHJveWFibGUpLmRlc3Ryb3kpIHtcbiAgICBkZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiAoaW5wdXQgYXMgRGVzdHJveWFibGUpLmRlc3Ryb3koKSk7XG4gIH0gZWxzZSB7XG4gICAgZGVzdHJveVJlZi5vbkRlc3Ryb3koaW5wdXQgYXMgRGVzdHJveUZ1bmN0aW9uKTtcbiAgfVxuXG4gIHJldHVybiBpbnB1dDtcbn1cblxuLyoqXG4gKiBXcmFwcyBhIFN1YmplY3QgaW4gYSBmdW5jdGlvbiB0aGF0IHJlZ2lzdGVycyB0aGUgaW5wdXQgU3ViamVjdCB0byBiZSBjb21wbGV0ZWRcbiAqIHdoZW4gdGhlIERlc3Ryb3lSZWYgaXMgZGVzdHJveWVkIGluIHRoZSBjb250ZXh0LlxuICpcbiAqIE11c3QgYmUgcnVuIGluIGFuIEFuZ3VsYXIgaW5qZWN0aW9uIGNvbnRleHQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wbGV0ZU9uRGVzdHJveTxUIGV4dGVuZHMgUGljazxTdWJqZWN0PGFueT4sICdjb21wbGV0ZScgfCAnZXJyb3InPj4oaW5wdXQ6IFQpOiBUIHtcbiAgY2xlYW4oKCkgPT4gaW5wdXQuY29tcGxldGUoKSk7XG4gIHJldHVybiBpbnB1dDtcbn1cbiJdfQ==
@@ -1,13 +0,0 @@
1
- import { DestroyFunctionObject } from '@dereekb/util';
2
- import { clean } from './clean';
3
- /**
4
- * Creates a new DestroyFunctionObject that is automatically destroyed when the context is destroyed.
5
- *
6
- * Must be run within an Angular injection context.
7
- */
8
- export function cleanDestroy(input) {
9
- const destroyFunction = new DestroyFunctionObject(input);
10
- clean(destroyFunction);
11
- return destroyFunction;
12
- }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzdHJveS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvcnhqcy9kZXN0cm95LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0IscUJBQXFCLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVoQzs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUE4QjtJQUN6RCxNQUFNLGVBQWUsR0FBRyxJQUFJLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pELEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN2QixPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEZXN0cm95RnVuY3Rpb24sIERlc3Ryb3lGdW5jdGlvbk9iamVjdCwgdHlwZSBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgY2xlYW4gfSBmcm9tICcuL2NsZWFuJztcblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IERlc3Ryb3lGdW5jdGlvbk9iamVjdCB0aGF0IGlzIGF1dG9tYXRpY2FsbHkgZGVzdHJveWVkIHdoZW4gdGhlIGNvbnRleHQgaXMgZGVzdHJveWVkLlxuICpcbiAqIE11c3QgYmUgcnVuIHdpdGhpbiBhbiBBbmd1bGFyIGluamVjdGlvbiBjb250ZXh0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYW5EZXN0cm95KGlucHV0PzogTWF5YmU8RGVzdHJveUZ1bmN0aW9uPik6IERlc3Ryb3lGdW5jdGlvbk9iamVjdCB7XG4gIGNvbnN0IGRlc3Ryb3lGdW5jdGlvbiA9IG5ldyBEZXN0cm95RnVuY3Rpb25PYmplY3QoaW5wdXQpO1xuICBjbGVhbihkZXN0cm95RnVuY3Rpb24pO1xuICByZXR1cm4gZGVzdHJveUZ1bmN0aW9uO1xufVxuIl19
@@ -1,7 +0,0 @@
1
- export * from './clean';
2
- export * from './rxjs.directive';
3
- export * from './lockset';
4
- export * from './subscription';
5
- export * from './loading';
6
- export * from './destroy';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3J4anMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jbGVhbic7XG5leHBvcnQgKiBmcm9tICcuL3J4anMuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9ja3NldCc7XG5leHBvcnQgKiBmcm9tICcuL3N1YnNjcmlwdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xvYWRpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9kZXN0cm95JztcbiJdfQ==
@@ -1,19 +0,0 @@
1
- import { loadingStateContext, listLoadingStateContext } from '@dereekb/rxjs';
2
- import { clean } from './clean';
3
- /**
4
- * Creates a new LoadingStateContext that is automatically destroyed when the context is destroyed.
5
- *
6
- * Must be run within an Angular injection context.
7
- */
8
- export function cleanLoadingContext(input) {
9
- return clean(loadingStateContext(input));
10
- }
11
- /**
12
- * Creates a new ListLoadingStateContext that is automatically destroyed when the context is destroyed.
13
- *
14
- * Must be run within an Angular injection context.
15
- */
16
- export function cleanListLoadingContext(input) {
17
- return clean(listLoadingStateContext(input));
18
- }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvcnhqcy9sb2FkaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBK0csbUJBQW1CLEVBQWlHLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pSLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFaEM7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBb0gsS0FBeUM7SUFDOUwsT0FBTyxLQUFLLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FBbUUsS0FBMEM7SUFDbEosT0FBTyxLQUFLLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBMb2FkaW5nU3RhdGUsIHR5cGUgTG9hZGluZ0NvbnRleHRFdmVudCwgdHlwZSBMb2FkaW5nU3RhdGVDb250ZXh0SW5wdXQsIHR5cGUgTXV0YWJsZUxvYWRpbmdTdGF0ZUNvbnRleHQsIGxvYWRpbmdTdGF0ZUNvbnRleHQsIHR5cGUgTGlzdExvYWRpbmdTdGF0ZSwgdHlwZSBMaXN0TG9hZGluZ1N0YXRlQ29udGV4dElucHV0LCB0eXBlIE11dGFibGVMaXN0TG9hZGluZ1N0YXRlQ29udGV4dCwgbGlzdExvYWRpbmdTdGF0ZUNvbnRleHQgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IGNsZWFuIH0gZnJvbSAnLi9jbGVhbic7XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBMb2FkaW5nU3RhdGVDb250ZXh0IHRoYXQgaXMgYXV0b21hdGljYWxseSBkZXN0cm95ZWQgd2hlbiB0aGUgY29udGV4dCBpcyBkZXN0cm95ZWQuXG4gKlxuICogTXVzdCBiZSBydW4gd2l0aGluIGFuIEFuZ3VsYXIgaW5qZWN0aW9uIGNvbnRleHQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbkxvYWRpbmdDb250ZXh0PFQgPSB1bmtub3duLCBTIGV4dGVuZHMgTG9hZGluZ1N0YXRlPFQ+ID0gTG9hZGluZ1N0YXRlPFQ+LCBFIGV4dGVuZHMgTG9hZGluZ0NvbnRleHRFdmVudCA9IExvYWRpbmdDb250ZXh0RXZlbnQgJiBTPihpbnB1dD86IExvYWRpbmdTdGF0ZUNvbnRleHRJbnB1dDxULCBTLCBFPik6IE11dGFibGVMb2FkaW5nU3RhdGVDb250ZXh0PFQsIFMsIEU+IHtcbiAgcmV0dXJuIGNsZWFuKGxvYWRpbmdTdGF0ZUNvbnRleHQoaW5wdXQpKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IExpc3RMb2FkaW5nU3RhdGVDb250ZXh0IHRoYXQgaXMgYXV0b21hdGljYWxseSBkZXN0cm95ZWQgd2hlbiB0aGUgY29udGV4dCBpcyBkZXN0cm95ZWQuXG4gKlxuICogTXVzdCBiZSBydW4gd2l0aGluIGFuIEFuZ3VsYXIgaW5qZWN0aW9uIGNvbnRleHQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbkxpc3RMb2FkaW5nQ29udGV4dDxMID0gdW5rbm93biwgUyBleHRlbmRzIExpc3RMb2FkaW5nU3RhdGU8TD4gPSBMaXN0TG9hZGluZ1N0YXRlPEw+PihpbnB1dD86IExpc3RMb2FkaW5nU3RhdGVDb250ZXh0SW5wdXQ8TCwgUz4pOiBNdXRhYmxlTGlzdExvYWRpbmdTdGF0ZUNvbnRleHQ8TCwgUz4ge1xuICByZXR1cm4gY2xlYW4obGlzdExvYWRpbmdTdGF0ZUNvbnRleHQoaW5wdXQpKTtcbn1cbiJdfQ==
@@ -1,56 +0,0 @@
1
- import { DestroyRef, inject } from '@angular/core';
2
- import { LockSet, SubscriptionObject } from '@dereekb/rxjs';
3
- import { getValueFromGetter } from '@dereekb/util';
4
- import { cleanSubscription } from './subscription';
5
- /**
6
- * Creates a new LockSet that is automatically destroyed when the component is destroyed.
7
- *
8
- * Must be run within an Angular injection context.
9
- *
10
- * @param onLockSetDestroy Optional callback to run when the lockset is unlocked.
11
- */
12
- export function cleanLockSet(config) {
13
- const { onDestroy, onLockSetDestroy, destroyLocksetTiming } = config ?? {};
14
- const destroyRef = inject(DestroyRef);
15
- const lockSet = new LockSet();
16
- destroyRef.onDestroy(() => {
17
- onDestroy?.();
18
- lockSet.destroyOnNextUnlock(destroyLocksetTiming); // flag to be destroyed on the next complete unlock
19
- });
20
- if (onLockSetDestroy) {
21
- const _destroySub = cleanSubscription(lockSet.onDestroy$.subscribe(() => {
22
- onLockSetDestroy();
23
- _destroySub.destroy();
24
- }));
25
- }
26
- return lockSet;
27
- }
28
- // MARK: cleanWithLockSet()
29
- /**
30
- * Runs the given onDestroy function when the context is destroyed, and the lock set's next unlock occurs.
31
- *
32
- * Must be run within an Angular injection context.
33
- *
34
- * @param lockSet The lockset to use.
35
- * @param onDestroy The function to run when the lockset is unlocked.
36
- */
37
- export function cleanWithLockSet(lockSet, onDestroy) {
38
- const destroyRef = inject(DestroyRef);
39
- destroyRef.onDestroy(() => {
40
- lockSet.onNextUnlock(() => {
41
- onDestroy();
42
- });
43
- });
44
- }
45
- /**
46
- * Creates a new SubscriptionObject that is automatically destroyed when the context is destroyed, and the lock set's next unlock occurs.
47
- *
48
- * Must be run within an Angular injection context.
49
- */
50
- export function cleanSubscriptionWithLockSet(input) {
51
- const subscription = getValueFromGetter(input.sub);
52
- const subscriptionObject = new SubscriptionObject(subscription);
53
- cleanWithLockSet(input.lockSet, () => subscriptionObject.destroy());
54
- return subscriptionObject;
55
- }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ja3NldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvcnhqcy9sb2Nrc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBa0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBNEMsa0JBQWtCLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFrQm5EOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBa0M7SUFDN0QsTUFBTSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFFM0UsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFFOUIsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDeEIsU0FBUyxFQUFFLEVBQUUsQ0FBQztRQUNkLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsbURBQW1EO0lBQ3hHLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUNuQyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNuQixXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsMkJBQTJCO0FBQzNCOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsT0FBZ0IsRUFBRSxTQUEwQjtJQUMzRSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFdEMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDeEIsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUU7WUFDeEIsU0FBUyxFQUFFLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQVdEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsNEJBQTRCLENBQTRDLEtBQTRDO0lBQ2xJLE1BQU0sWUFBWSxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuRCxNQUFNLGtCQUFrQixHQUFHLElBQUksa0JBQWtCLENBQUksWUFBWSxDQUFDLENBQUM7SUFDbkUsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLE9BQU8sa0JBQWtCLENBQUM7QUFDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdHlwZSBEZXN0cm95T25OZXh0VW5sb2NrQ29uZmlnLCBMb2NrU2V0LCBTdWJzY3JpcHRpb25PYmplY3QgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IHR5cGUgRGVzdHJveUZ1bmN0aW9uLCB0eXBlIEdldHRlck9yVmFsdWUsIGdldFZhbHVlRnJvbUdldHRlciwgdHlwZSBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgY2xlYW5TdWJzY3JpcHRpb24gfSBmcm9tICcuL3N1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyB0eXBlIFVuc3Vic2NyaWJhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xlYW5Mb2NrU2V0Q29uZmlnIHtcbiAgLyoqXG4gICAqIEFyYml0cmFyeSBvbkRlc3Ryb3kgZnVuY3Rpb24gdG8gY2FsbCB3aGVuIG9uRGVzdHJveSBpcyBjYWxsZWQgYnkgdGhlIGludGVybmFsIERlc3Ryb3lSZWYuXG4gICAqL1xuICByZWFkb25seSBvbkRlc3Ryb3k/OiBNYXliZTwoKSA9PiB2b2lkPjtcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBMb2NrU2V0IGlzIGZpbmFsbHkgZGVzdHJveWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgb25Mb2NrU2V0RGVzdHJveT86IE1heWJlPCgpID0+IHZvaWQ+O1xuICAvKipcbiAgICogQ29uZmlndXJlcyB3aGVuIHRoZSBsb2Nrc2V0IHNob3VsZCBiZSBkZXN0cm95ZWQuXG4gICAqL1xuICByZWFkb25seSBkZXN0cm95TG9ja3NldFRpbWluZz86IE1heWJlPERlc3Ryb3lPbk5leHRVbmxvY2tDb25maWc+O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgTG9ja1NldCB0aGF0IGlzIGF1dG9tYXRpY2FsbHkgZGVzdHJveWVkIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBkZXN0cm95ZWQuXG4gKlxuICogTXVzdCBiZSBydW4gd2l0aGluIGFuIEFuZ3VsYXIgaW5qZWN0aW9uIGNvbnRleHQuXG4gKlxuICogQHBhcmFtIG9uTG9ja1NldERlc3Ryb3kgT3B0aW9uYWwgY2FsbGJhY2sgdG8gcnVuIHdoZW4gdGhlIGxvY2tzZXQgaXMgdW5sb2NrZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbkxvY2tTZXQoY29uZmlnPzogTWF5YmU8Q2xlYW5Mb2NrU2V0Q29uZmlnPik6IExvY2tTZXQge1xuICBjb25zdCB7IG9uRGVzdHJveSwgb25Mb2NrU2V0RGVzdHJveSwgZGVzdHJveUxvY2tzZXRUaW1pbmcgfSA9IGNvbmZpZyA/PyB7fTtcblxuICBjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBjb25zdCBsb2NrU2V0ID0gbmV3IExvY2tTZXQoKTtcblxuICBkZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgb25EZXN0cm95Py4oKTtcbiAgICBsb2NrU2V0LmRlc3Ryb3lPbk5leHRVbmxvY2soZGVzdHJveUxvY2tzZXRUaW1pbmcpOyAvLyBmbGFnIHRvIGJlIGRlc3Ryb3llZCBvbiB0aGUgbmV4dCBjb21wbGV0ZSB1bmxvY2tcbiAgfSk7XG5cbiAgaWYgKG9uTG9ja1NldERlc3Ryb3kpIHtcbiAgICBjb25zdCBfZGVzdHJveVN1YiA9IGNsZWFuU3Vic2NyaXB0aW9uKFxuICAgICAgbG9ja1NldC5vbkRlc3Ryb3kkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIG9uTG9ja1NldERlc3Ryb3koKTtcbiAgICAgICAgX2Rlc3Ryb3lTdWIuZGVzdHJveSgpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGxvY2tTZXQ7XG59XG5cbi8vIE1BUks6IGNsZWFuV2l0aExvY2tTZXQoKVxuLyoqXG4gKiBSdW5zIHRoZSBnaXZlbiBvbkRlc3Ryb3kgZnVuY3Rpb24gd2hlbiB0aGUgY29udGV4dCBpcyBkZXN0cm95ZWQsIGFuZCB0aGUgbG9jayBzZXQncyBuZXh0IHVubG9jayBvY2N1cnMuXG4gKlxuICogTXVzdCBiZSBydW4gd2l0aGluIGFuIEFuZ3VsYXIgaW5qZWN0aW9uIGNvbnRleHQuXG4gKlxuICogQHBhcmFtIGxvY2tTZXQgVGhlIGxvY2tzZXQgdG8gdXNlLlxuICogQHBhcmFtIG9uRGVzdHJveSBUaGUgZnVuY3Rpb24gdG8gcnVuIHdoZW4gdGhlIGxvY2tzZXQgaXMgdW5sb2NrZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbldpdGhMb2NrU2V0KGxvY2tTZXQ6IExvY2tTZXQsIG9uRGVzdHJveTogRGVzdHJveUZ1bmN0aW9uKSB7XG4gIGNvbnN0IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgIGxvY2tTZXQub25OZXh0VW5sb2NrKCgpID0+IHtcbiAgICAgIG9uRGVzdHJveSgpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuLy8gTUFSSzogY2xlYW5TdWJzY3JpcHRpb25XaXRoTG9ja1NldCgpXG4vKipcbiAqIENvbmZpZyBmb3IgY2xlYW5TdWJzY3JpcHRpb25XaXRoTG9ja1NldCgpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2xlYW5TdWJzY3JpcHRpb25XaXRoTG9ja1NldENvbmZpZzxUIGV4dGVuZHMgVW5zdWJzY3JpYmFibGUgPSBVbnN1YnNjcmliYWJsZT4ge1xuICByZWFkb25seSBsb2NrU2V0OiBMb2NrU2V0O1xuICByZWFkb25seSBzdWI/OiBNYXliZTxHZXR0ZXJPclZhbHVlPFQ+Pjtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IFN1YnNjcmlwdGlvbk9iamVjdCB0aGF0IGlzIGF1dG9tYXRpY2FsbHkgZGVzdHJveWVkIHdoZW4gdGhlIGNvbnRleHQgaXMgZGVzdHJveWVkLCBhbmQgdGhlIGxvY2sgc2V0J3MgbmV4dCB1bmxvY2sgb2NjdXJzLlxuICpcbiAqIE11c3QgYmUgcnVuIHdpdGhpbiBhbiBBbmd1bGFyIGluamVjdGlvbiBjb250ZXh0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYW5TdWJzY3JpcHRpb25XaXRoTG9ja1NldDxUIGV4dGVuZHMgVW5zdWJzY3JpYmFibGUgPSBVbnN1YnNjcmliYWJsZT4oaW5wdXQ6IENsZWFuU3Vic2NyaXB0aW9uV2l0aExvY2tTZXRDb25maWc8VD4pOiBTdWJzY3JpcHRpb25PYmplY3Q8VD4ge1xuICBjb25zdCBzdWJzY3JpcHRpb24gPSBnZXRWYWx1ZUZyb21HZXR0ZXIoaW5wdXQuc3ViKTtcbiAgY29uc3Qgc3Vic2NyaXB0aW9uT2JqZWN0ID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdDxUPihzdWJzY3JpcHRpb24pO1xuICBjbGVhbldpdGhMb2NrU2V0KGlucHV0LmxvY2tTZXQsICgpID0+IHN1YnNjcmlwdGlvbk9iamVjdC5kZXN0cm95KCkpO1xuICByZXR1cm4gc3Vic2NyaXB0aW9uT2JqZWN0O1xufVxuIl19
@@ -1,42 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import { LockSet, SubscriptionObject } from '@dereekb/rxjs';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Abstract component that contains a SubscriptionObject and will clean it up automatically.
6
- *
7
- * @deprecated Consider using cleanSubscription() directly instead, as it performs the same functionality
8
- */
9
- export class AbstractSubscriptionDirective {
10
- _subscriptionObject = new SubscriptionObject();
11
- ngOnDestroy() {
12
- this._subscriptionObject.destroy();
13
- }
14
- set sub(subscription) {
15
- this._subscriptionObject.subscription = subscription;
16
- }
17
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractSubscriptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
18
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: AbstractSubscriptionDirective, ngImport: i0 });
19
- }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractSubscriptionDirective, decorators: [{
21
- type: Directive
22
- }] });
23
- /**
24
- * AbstractSubscriptionDirective extension that prevents the OnDestroy from occuring until the lockset is unlocked.
25
- *
26
- * @deprecated Consider using cleanLockSet() directly instead, as it performs the same functionality.
27
- */
28
- export class AbstractLockSetSubscriptionDirective extends AbstractSubscriptionDirective {
29
- lockSet = new LockSet();
30
- ngOnDestroy() {
31
- this.lockSet.onNextUnlock(() => this.onLockSetDestroy());
32
- }
33
- onLockSetDestroy() {
34
- super.ngOnDestroy();
35
- }
36
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractLockSetSubscriptionDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
37
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: AbstractLockSetSubscriptionDirective, usesInheritance: true, ngImport: i0 });
38
- }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractLockSetSubscriptionDirective, decorators: [{
40
- type: Directive
41
- }] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhqcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3J4anMvcnhqcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFhLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUc1RDs7OztHQUlHO0FBRUgsTUFBTSxPQUFnQiw2QkFBNkI7SUFDaEMsbUJBQW1CLEdBQUcsSUFBSSxrQkFBa0IsRUFBSyxDQUFDO0lBRW5FLFdBQVc7UUFDVCxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELElBQWMsR0FBRyxDQUFDLFlBQTZCO1FBQzdDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQ3ZELENBQUM7d0dBVG1CLDZCQUE2Qjs0RkFBN0IsNkJBQTZCOzs0RkFBN0IsNkJBQTZCO2tCQURsRCxTQUFTOztBQWFWOzs7O0dBSUc7QUFFSCxNQUFNLE9BQWdCLG9DQUFnRixTQUFRLDZCQUFnQztJQUNuSSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUV4QixXQUFXO1FBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVTLGdCQUFnQjtRQUN4QixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEIsQ0FBQzt3R0FUbUIsb0NBQW9DOzRGQUFwQyxvQ0FBb0M7OzRGQUFwQyxvQ0FBb0M7a0JBRHpELFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbkRlc3Ryb3ksIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW5zdWJzY3JpYmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExvY2tTZXQsIFN1YnNjcmlwdGlvbk9iamVjdCB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgdHlwZSBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuXG4vKipcbiAqIEFic3RyYWN0IGNvbXBvbmVudCB0aGF0IGNvbnRhaW5zIGEgU3Vic2NyaXB0aW9uT2JqZWN0IGFuZCB3aWxsIGNsZWFuIGl0IHVwIGF1dG9tYXRpY2FsbHkuXG4gKlxuICogQGRlcHJlY2F0ZWQgQ29uc2lkZXIgdXNpbmcgY2xlYW5TdWJzY3JpcHRpb24oKSBkaXJlY3RseSBpbnN0ZWFkLCBhcyBpdCBwZXJmb3JtcyB0aGUgc2FtZSBmdW5jdGlvbmFsaXR5XG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0U3Vic2NyaXB0aW9uRGlyZWN0aXZlPFQgZXh0ZW5kcyBVbnN1YnNjcmliYWJsZSA9IFVuc3Vic2NyaWJhYmxlPiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1YnNjcmlwdGlvbk9iamVjdCA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3Q8VD4oKTtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25PYmplY3QuZGVzdHJveSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldCBzdWIoc3Vic2NyaXB0aW9uOiBNYXliZTxUIHwgdm9pZD4pIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25PYmplY3Quc3Vic2NyaXB0aW9uID0gc3Vic2NyaXB0aW9uO1xuICB9XG59XG5cbi8qKlxuICogQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgZXh0ZW5zaW9uIHRoYXQgcHJldmVudHMgdGhlIE9uRGVzdHJveSBmcm9tIG9jY3VyaW5nIHVudGlsIHRoZSBsb2Nrc2V0IGlzIHVubG9ja2VkLlxuICpcbiAqIEBkZXByZWNhdGVkIENvbnNpZGVyIHVzaW5nIGNsZWFuTG9ja1NldCgpIGRpcmVjdGx5IGluc3RlYWQsIGFzIGl0IHBlcmZvcm1zIHRoZSBzYW1lIGZ1bmN0aW9uYWxpdHkuXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0TG9ja1NldFN1YnNjcmlwdGlvbkRpcmVjdGl2ZTxUIGV4dGVuZHMgVW5zdWJzY3JpYmFibGUgPSBVbnN1YnNjcmliYWJsZT4gZXh0ZW5kcyBBYnN0cmFjdFN1YnNjcmlwdGlvbkRpcmVjdGl2ZTxUPiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IGxvY2tTZXQgPSBuZXcgTG9ja1NldCgpO1xuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubG9ja1NldC5vbk5leHRVbmxvY2soKCkgPT4gdGhpcy5vbkxvY2tTZXREZXN0cm95KCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uTG9ja1NldERlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgfVxufVxuIl19
@@ -1,16 +0,0 @@
1
- import { SubscriptionObject } from '@dereekb/rxjs';
2
- import { getValueFromGetter } from '@dereekb/util';
3
- import { clean } from './clean';
4
- // MARK: cleanSubscription()
5
- /**
6
- * Creates a new SubscriptionObject that is automatically destroyed when the context is destroyed.
7
- *
8
- * Must be run within an Angular injection context.
9
- */
10
- export function cleanSubscription(sub) {
11
- const subscription = getValueFromGetter(sub);
12
- const subscriptionObject = new SubscriptionObject(subscription);
13
- clean(subscriptionObject);
14
- return subscriptionObject;
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9yeGpzL3N1YnNjcmlwdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFzQixrQkFBa0IsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUVuRixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWhDLDRCQUE0QjtBQUM1Qjs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUE0QyxHQUE2QjtJQUN4RyxNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QyxNQUFNLGtCQUFrQixHQUFHLElBQUksa0JBQWtCLENBQUksWUFBWSxDQUFDLENBQUM7SUFDbkUsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDMUIsT0FBTyxrQkFBa0IsQ0FBQztBQUM1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3Vic2NyaXB0aW9uT2JqZWN0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyB0eXBlIEdldHRlck9yVmFsdWUsIGdldFZhbHVlRnJvbUdldHRlciwgdHlwZSBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgdHlwZSBVbnN1YnNjcmliYWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2xlYW4gfSBmcm9tICcuL2NsZWFuJztcblxuLy8gTUFSSzogY2xlYW5TdWJzY3JpcHRpb24oKVxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IFN1YnNjcmlwdGlvbk9iamVjdCB0aGF0IGlzIGF1dG9tYXRpY2FsbHkgZGVzdHJveWVkIHdoZW4gdGhlIGNvbnRleHQgaXMgZGVzdHJveWVkLlxuICpcbiAqIE11c3QgYmUgcnVuIHdpdGhpbiBhbiBBbmd1bGFyIGluamVjdGlvbiBjb250ZXh0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYW5TdWJzY3JpcHRpb248VCBleHRlbmRzIFVuc3Vic2NyaWJhYmxlID0gVW5zdWJzY3JpYmFibGU+KHN1Yj86IE1heWJlPEdldHRlck9yVmFsdWU8VD4+KTogU3Vic2NyaXB0aW9uT2JqZWN0PFQ+IHtcbiAgY29uc3Qgc3Vic2NyaXB0aW9uID0gZ2V0VmFsdWVGcm9tR2V0dGVyKHN1Yik7XG4gIGNvbnN0IHN1YnNjcmlwdGlvbk9iamVjdCA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3Q8VD4oc3Vic2NyaXB0aW9uKTtcbiAgY2xlYW4oc3Vic2NyaXB0aW9uT2JqZWN0KTtcbiAgcmV0dXJuIHN1YnNjcmlwdGlvbk9iamVjdDtcbn1cbiJdfQ==
@@ -1,9 +0,0 @@
1
- export * from './storage.accessor.simple.factory';
2
- export * from './storage.accessor.simple';
3
- export * from './storage.accessor.string';
4
- export * from './storage.accessor';
5
- export * from './storage.di';
6
- export * from './storage.object.localstorage';
7
- export * from './storage.object.memory';
8
- export * from './storage.providers';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3N0b3JhZ2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZS5hY2Nlc3Nvci5zaW1wbGUuZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JhZ2UuYWNjZXNzb3Iuc2ltcGxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZS5hY2Nlc3Nvci5zdHJpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yYWdlLmFjY2Vzc29yJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZS5kaSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JhZ2Uub2JqZWN0LmxvY2Fsc3RvcmFnZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JhZ2Uub2JqZWN0Lm1lbW9yeSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JhZ2UucHJvdmlkZXJzJztcbiJdfQ==
@@ -1,16 +0,0 @@
1
- /**
2
- * Stored object accessor that can get/set/remove via a key, or be cleared entirely.
3
- */
4
- export class LimitedStorageAccessor {
5
- }
6
- /**
7
- * LimitedStorageAccessor extension that has knowledge of all stored keys.
8
- */
9
- export class StorageAccessor extends LimitedStorageAccessor {
10
- }
11
- /**
12
- * StorageAccessor-like object that has immediate/synchronous functionality for get/set.
13
- */
14
- export class InstantStorageAccessor {
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvc3RvcmFnZS9zdG9yYWdlLmFjY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixzQkFBc0I7Q0FXM0M7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBZ0IsZUFBbUIsU0FBUSxzQkFBeUI7Q0FVekU7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBZ0Isc0JBQXNCO0NBTTNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgdHlwZSBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogU3RvcmVkIG9iamVjdCBhY2Nlc3NvciB0aGF0IGNhbiBnZXQvc2V0L3JlbW92ZSB2aWEgYSBrZXksIG9yIGJlIGNsZWFyZWQgZW50aXJlbHkuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMaW1pdGVkU3RvcmFnZUFjY2Vzc29yPFQ+IHtcbiAgLyoqXG4gICAqIEF0dGVtcHRzIHRvIGdldCB0aGUgdmFsdWUuIFRocm93cyBhIERhdGFEb2VzTm90RXhpc3RFcnJvciBpZiBub3QgYXZhaWxhYmxlLlxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0KGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxNYXliZTxUPj47XG5cbiAgYWJzdHJhY3Qgc2V0KGtleTogc3RyaW5nLCB2YWx1ZTogTWF5YmU8VD4pOiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gIGFic3RyYWN0IHJlbW92ZShrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD47XG5cbiAgYWJzdHJhY3QgY2xlYXIoKTogT2JzZXJ2YWJsZTxvYmplY3Q+O1xufVxuXG4vKipcbiAqIExpbWl0ZWRTdG9yYWdlQWNjZXNzb3IgZXh0ZW5zaW9uIHRoYXQgaGFzIGtub3dsZWRnZSBvZiBhbGwgc3RvcmVkIGtleXMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTdG9yYWdlQWNjZXNzb3I8VD4gZXh0ZW5kcyBMaW1pdGVkU3RvcmFnZUFjY2Vzc29yPFQ+IHtcbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIHZhbHVlcy4gRmlsdGVyZWQgYnkga2V5cyBvZiBhIGdpdmVuIHByZWZpeC5cbiAgICovXG4gIGFic3RyYWN0IGFsbChwcmVmaXg/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFRbXT47XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIGtleXMuIEZpbHRlcmVkIGJ5IGtleXMgb2YgYSBnaXZlbiBwcmVmaXguXG4gICAqL1xuICBhYnN0cmFjdCBhbGxLZXlzKHByZWZpeD86IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nW10+O1xufVxuXG4vKipcbiAqIFN0b3JhZ2VBY2Nlc3Nvci1saWtlIG9iamVjdCB0aGF0IGhhcyBpbW1lZGlhdGUvc3luY2hyb25vdXMgZnVuY3Rpb25hbGl0eSBmb3IgZ2V0L3NldC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEluc3RhbnRTdG9yYWdlQWNjZXNzb3I8VD4ge1xuICBhYnN0cmFjdCBnZXROb3coa2V5OiBzdHJpbmcpOiBUIHwgdW5kZWZpbmVkO1xuXG4gIGFic3RyYWN0IHNldE5vdyhrZXk6IHN0cmluZywgdmFsdWU6IFQpOiB2b2lkO1xuXG4gIGFic3RyYWN0IHJlbW92ZU5vdyhrZXk6IHN0cmluZyk6IHZvaWQ7XG59XG4iXX0=
@@ -1,26 +0,0 @@
1
- import { Injectable, inject } from '@angular/core';
2
- import { SimpleStorageAccessor, StringifySimpleStorageAccessorConverter, WrapperSimpleStorageAccessorDelegate } from './storage.accessor.simple';
3
- import { StringStorageAccessor } from './storage.accessor.string';
4
- import { DEFAULT_STORAGE_OBJECT_TOKEN } from './storage.di';
5
- import * as i0 from "@angular/core";
6
- /**
7
- * Used for building SimpleStorageAccessor instances from SimpleStorageAccessorConfig.
8
- */
9
- export class SimpleStorageAccessorFactory {
10
- storageObject = inject(DEFAULT_STORAGE_OBJECT_TOKEN);
11
- createStorageAccessor(config) {
12
- const storage = config.storage ?? new StringStorageAccessor(this.storageObject);
13
- const converter = config.converter ?? new StringifySimpleStorageAccessorConverter();
14
- const delegate = new WrapperSimpleStorageAccessorDelegate(storage, converter);
15
- const accessorConfig = {
16
- prefix: config.prefix
17
- };
18
- return new SimpleStorageAccessor(delegate, accessorConfig);
19
- }
20
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SimpleStorageAccessorFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
21
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SimpleStorageAccessorFactory });
22
- }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SimpleStorageAccessorFactory, decorators: [{
24
- type: Injectable
25
- }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5hY2Nlc3Nvci5zaW1wbGUuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvc3RvcmFnZS9zdG9yYWdlLmFjY2Vzc29yLnNpbXBsZS5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBK0IscUJBQXFCLEVBQWtDLHVDQUF1QyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOU0sT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQVE1RDs7R0FFRztBQUVILE1BQU0sT0FBTyw0QkFBNEI7SUFDOUIsYUFBYSxHQUFHLE1BQU0sQ0FBb0IsNEJBQTRCLENBQUMsQ0FBQztJQUVqRixxQkFBcUIsQ0FBSSxNQUF1QztRQUM5RCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUkscUJBQXFCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hGLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLElBQUksSUFBSSx1Q0FBdUMsRUFBSyxDQUFDO1FBQ3ZGLE1BQU0sUUFBUSxHQUFHLElBQUksb0NBQW9DLENBQUksT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRWpGLE1BQU0sY0FBYyxHQUFHO1lBQ3JCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtTQUN0QixDQUFDO1FBRUYsT0FBTyxJQUFJLHFCQUFxQixDQUFJLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNoRSxDQUFDO3dHQWJVLDRCQUE0Qjs0R0FBNUIsNEJBQTRCOzs0RkFBNUIsNEJBQTRCO2tCQUR4QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yYWdlQWNjZXNzb3IgfSBmcm9tICcuL3N0b3JhZ2UuYWNjZXNzb3InO1xuaW1wb3J0IHsgU2ltcGxlU3RvcmFnZUFjY2Vzc29yQ29uZmlnLCBTaW1wbGVTdG9yYWdlQWNjZXNzb3IsIFNpbXBsZVN0b3JhZ2VBY2Nlc3NvckNvbnZlcnRlciwgU3RyaW5naWZ5U2ltcGxlU3RvcmFnZUFjY2Vzc29yQ29udmVydGVyLCBXcmFwcGVyU2ltcGxlU3RvcmFnZUFjY2Vzc29yRGVsZWdhdGUgfSBmcm9tICcuL3N0b3JhZ2UuYWNjZXNzb3Iuc2ltcGxlJztcbmltcG9ydCB7IFN0cmluZ1N0b3JhZ2VBY2Nlc3NvciB9IGZyb20gJy4vc3RvcmFnZS5hY2Nlc3Nvci5zdHJpbmcnO1xuaW1wb3J0IHsgREVGQVVMVF9TVE9SQUdFX09CSkVDVF9UT0tFTiB9IGZyb20gJy4vc3RvcmFnZS5kaSc7XG5pbXBvcnQgeyBGdWxsU3RvcmFnZU9iamVjdCwgU3RvcmVkRGF0YVN0cmluZyB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JhZ2VBY2Nlc3NvckZhY3RvcnlDb25maWc8VD4gZXh0ZW5kcyBTaW1wbGVTdG9yYWdlQWNjZXNzb3JDb25maWcge1xuICBzdG9yYWdlPzogU3RvcmFnZUFjY2Vzc29yPFN0b3JlZERhdGFTdHJpbmc+O1xuICBjb252ZXJ0ZXI/OiBTaW1wbGVTdG9yYWdlQWNjZXNzb3JDb252ZXJ0ZXI8VD47XG59XG5cbi8qKlxuICogVXNlZCBmb3IgYnVpbGRpbmcgU2ltcGxlU3RvcmFnZUFjY2Vzc29yIGluc3RhbmNlcyBmcm9tIFNpbXBsZVN0b3JhZ2VBY2Nlc3NvckNvbmZpZy5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNpbXBsZVN0b3JhZ2VBY2Nlc3NvckZhY3Rvcnkge1xuICByZWFkb25seSBzdG9yYWdlT2JqZWN0ID0gaW5qZWN0PEZ1bGxTdG9yYWdlT2JqZWN0PihERUZBVUxUX1NUT1JBR0VfT0JKRUNUX1RPS0VOKTtcblxuICBjcmVhdGVTdG9yYWdlQWNjZXNzb3I8VD4oY29uZmlnOiBTdG9yYWdlQWNjZXNzb3JGYWN0b3J5Q29uZmlnPFQ+KTogU2ltcGxlU3RvcmFnZUFjY2Vzc29yPFQ+IHtcbiAgICBjb25zdCBzdG9yYWdlID0gY29uZmlnLnN0b3JhZ2UgPz8gbmV3IFN0cmluZ1N0b3JhZ2VBY2Nlc3Nvcih0aGlzLnN0b3JhZ2VPYmplY3QpO1xuICAgIGNvbnN0IGNvbnZlcnRlciA9IGNvbmZpZy5jb252ZXJ0ZXIgPz8gbmV3IFN0cmluZ2lmeVNpbXBsZVN0b3JhZ2VBY2Nlc3NvckNvbnZlcnRlcjxUPigpO1xuICAgIGNvbnN0IGRlbGVnYXRlID0gbmV3IFdyYXBwZXJTaW1wbGVTdG9yYWdlQWNjZXNzb3JEZWxlZ2F0ZTxUPihzdG9yYWdlLCBjb252ZXJ0ZXIpO1xuXG4gICAgY29uc3QgYWNjZXNzb3JDb25maWcgPSB7XG4gICAgICBwcmVmaXg6IGNvbmZpZy5wcmVmaXhcbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ldyBTaW1wbGVTdG9yYWdlQWNjZXNzb3I8VD4oZGVsZWdhdGUsIGFjY2Vzc29yQ29uZmlnKTtcbiAgfVxufVxuIl19
@@ -1,172 +0,0 @@
1
- import { map } from 'rxjs';
2
- import { isThrottled, unixDateTimeSecondsNumberForNow, DataDoesNotExistError, DataIsExpiredError, hasNonNullValue, splitJoinRemainder } from '@dereekb/util';
3
- export class StringifySimpleStorageAccessorConverter {
4
- stringifyValue(value) {
5
- return JSON.stringify(value);
6
- }
7
- parseValue(data) {
8
- return JSON.parse(data);
9
- }
10
- }
11
- export class WrapperSimpleStorageAccessorDelegate {
12
- _delegate;
13
- _converter;
14
- constructor(delegate, converter) {
15
- this._delegate = delegate;
16
- this._converter = converter;
17
- }
18
- get(key) {
19
- return this._delegate.get(key);
20
- }
21
- set(key, value) {
22
- return this._delegate.set(key, value);
23
- }
24
- remove(key) {
25
- return this._delegate.remove(key);
26
- }
27
- clear() {
28
- return this._delegate.clear();
29
- }
30
- all(prefix) {
31
- return this._delegate.all(prefix);
32
- }
33
- allKeys(prefix) {
34
- return this._delegate.allKeys(prefix);
35
- }
36
- stringifyValue(value) {
37
- return this._converter.stringifyValue(value);
38
- }
39
- parseValue(data) {
40
- return this._converter.parseValue(data);
41
- }
42
- }
43
- export function assertValidStorageKeyPrefix(prefix, prefixSplitter) {
44
- if (!prefixSplitter) {
45
- throw new Error('Invalid storage key prefix splitter. Must be defined and not empty.'); // TODO(FUTURE): Consider changing to a concrete error type
46
- }
47
- if (!isValidStorageKeyPrefix(prefix, prefixSplitter)) {
48
- throw new Error('Invalid storage key prefix.');
49
- }
50
- }
51
- export function isValidStorageKeyPrefix(prefix, prefixSpltter) {
52
- return Boolean(prefix && prefix.indexOf(prefixSpltter) === -1);
53
- }
54
- /**
55
- * LimitedStorageAccessor implementation that uses a Delegate
56
- */
57
- export class SimpleStorageAccessor {
58
- static PREFIX_SPLITTER = '::';
59
- _delegate;
60
- _config;
61
- constructor(delegate, config) {
62
- const prefix = config.prefix;
63
- const prefixSplitter = config.prefixSplitter ?? SimpleStorageAccessor.PREFIX_SPLITTER;
64
- assertValidStorageKeyPrefix(prefix, prefixSplitter);
65
- const fullPrefix = `${prefix}${prefixSplitter}`;
66
- this._delegate = delegate;
67
- this._config = {
68
- ...config,
69
- prefixSplitter,
70
- fullPrefix
71
- };
72
- }
73
- get delegate() {
74
- return this._delegate;
75
- }
76
- get config() {
77
- return this._config;
78
- }
79
- // MARK: LimitedStorageAccessor
80
- get(inputKey) {
81
- const storeKey = this.makeStorageKey(inputKey);
82
- return this._delegate.get(storeKey).pipe(map((storedData) => {
83
- if (storedData) {
84
- const readStoredData = this.readStoredData(storedData);
85
- if (!readStoredData.expired) {
86
- return readStoredData.convertedData;
87
- }
88
- else {
89
- throw new DataIsExpiredError(readStoredData);
90
- }
91
- }
92
- else {
93
- throw new DataDoesNotExistError();
94
- }
95
- }));
96
- }
97
- set(inputKey, inputValue) {
98
- const storeKey = this.makeStorageKey(inputKey);
99
- const storeData = this.buildStoredData(inputValue);
100
- const data = JSON.stringify(storeData);
101
- return this._delegate.set(storeKey, data);
102
- }
103
- remove(key) {
104
- const storeKey = this.makeStorageKey(key);
105
- return this._delegate.remove(storeKey);
106
- }
107
- all() {
108
- return this._delegate.all(this._config.fullPrefix).pipe(map((allStoredData) => {
109
- return allStoredData
110
- .map((storedData) => {
111
- const readStoredData = this.readStoredData(storedData);
112
- if (!readStoredData.expired) {
113
- return readStoredData.convertedData;
114
- }
115
- else {
116
- return null;
117
- }
118
- })
119
- .filter(hasNonNullValue);
120
- }));
121
- }
122
- allKeys() {
123
- return this._delegate.allKeys(this._config.fullPrefix).pipe(map((keys) => keys.map((x) => this.decodeStorageKey(x))));
124
- }
125
- clear() {
126
- return this._delegate.clear();
127
- }
128
- // MARK: Stored Values
129
- readStoredData(storedDataString) {
130
- const storedData = JSON.parse(storedDataString);
131
- const expired = this.isExpiredStoredData(storedData);
132
- const convertedData = this._delegate.parseValue(storedData.data);
133
- return {
134
- ...storedData,
135
- expired,
136
- convertedData
137
- };
138
- }
139
- buildStoredData(value) {
140
- return {
141
- storedAt: unixDateTimeSecondsNumberForNow(),
142
- data: this.stringifyValue(value)
143
- };
144
- }
145
- isExpiredStoredData(storeData) {
146
- const expiresIn = this._config.expiresIn;
147
- if (expiresIn) {
148
- if (storeData.storedAt) {
149
- return isThrottled(expiresIn, storeData.storedAt);
150
- }
151
- return true;
152
- }
153
- else {
154
- return false;
155
- }
156
- }
157
- // MARK: Internal
158
- makeStorageKey(key) {
159
- return `${this._config.prefix}${this._config.prefixSplitter}${String(key)}`;
160
- }
161
- isKeyOfAccessor(storageKey) {
162
- return storageKey.startsWith(this._config.fullPrefix);
163
- }
164
- decodeStorageKey(storageKey) {
165
- const split = splitJoinRemainder(storageKey, this._config.prefixSplitter, 2);
166
- return split[1];
167
- }
168
- stringifyValue(value) {
169
- return this._delegate.stringifyValue(value);
170
- }
171
- }
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5hY2Nlc3Nvci5zaW1wbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3N0b3JhZ2Uvc3RvcmFnZS5hY2Nlc3Nvci5zaW1wbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSwrQkFBK0IsRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBc0csZUFBZSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBb0JqUSxNQUFNLE9BQU8sdUNBQXVDO0lBQ2xELGNBQWMsQ0FBQyxLQUFRO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQXNCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sb0NBQW9DO0lBQzlCLFNBQVMsQ0FBb0M7SUFDN0MsVUFBVSxDQUFvQztJQUUvRCxZQUFZLFFBQTJDLEVBQUUsU0FBNEM7UUFDbkcsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDOUIsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUF1QjtRQUN0QyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVc7UUFDaEIsT0FBTyxJ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QU8sQ0FBQyxTQUFTLENBQUM7UUFDekMsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN2QixPQUFPLFdBQVcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BELENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtJQUNQLGNBQWMsQ0FBQyxHQUFXO1FBQ2xDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUM5RSxDQUFDO0lBRVMsZUFBZSxDQUFDLFVBQWdDO1FBQ3hELE9BQU8sVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxVQUFnQztRQUN6RCxNQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDN0UsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVTLGNBQWMsQ0FBQyxLQUFRO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgT2JzZXJ2YWJsZSwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpc1Rocm90dGxlZCwgdW5peERhdGVUaW1lU2Vjb25kc051bWJlckZvck5vdywgRGF0YURvZXNOb3RFeGlzdEVycm9yLCBEYXRhSXNFeHBpcmVkRXJyb3IsIHR5cGUgUmVhZFN0b3JlZERhdGEsIHR5cGUgU3RvcmVkRGF0YSwgdHlwZSBTdG9yZWREYXRhU3RvcmFnZUtleSwgdHlwZSBTdG9yZWREYXRhU3RyaW5nLCB0eXBlIE1heWJlLCBoYXNOb25OdWxsVmFsdWUsIHNwbGl0Sm9pblJlbWFpbmRlciB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgdHlwZSBTdG9yYWdlQWNjZXNzb3IgfSBmcm9tICcuL3N0b3JhZ2UuYWNjZXNzb3InO1xuXG4vLyBNQVJLOiBTaW1wbGVTdG9yYWdlQWNjZXNzb3JcbmV4cG9ydCBpbnRlcmZhY2UgU2ltcGxlU3RvcmFnZUFjY2Vzc29yQ29udmVydGVyPFQ+IHtcbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBpbnB1dCB2YWx1ZSB0byBhIHN0cmluZy5cbiAgICovXG4gIHN0cmluZ2lmeVZhbHVlKHZhbHVlOiBUKTogU3RvcmVkRGF0YVN0cmluZztcbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBkYXRhIHN0cmluZyBpbnRvIGEgdmFsdWUuXG4gICAqL1xuICBwYXJzZVZhbHVlKGRhdGE6IFN0b3JlZERhdGFTdHJpbmcpOiBUO1xufVxuXG4vKipcbiAqIFNpbXBsZVN0b3JhZ2VBY2Nlc3NvciBkZWxlZ2F0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaW1wbGVTdG9yYWdlQWNjZXNzb3JEZWxlZ2F0ZTxUPiBleHRlbmRzIFNpbXBsZVN0b3JhZ2VBY2Nlc3NvckNvbnZlcnRlcjxUPiwgU3RvcmFnZUFjY2Vzc29yPFN0b3JlZERhdGFTdHJpbmc+IHt9XG5cbmV4cG9ydCBjbGFzcyBTdHJpbmdpZnlTaW1wbGVTdG9yYWdlQWNjZXNzb3JDb252ZXJ0ZXI8VD4gaW1wbGVtZW50cyBTaW1wbGVTdG9yYWdlQWNjZXNzb3JDb252ZXJ0ZXI8VD4ge1xuICBzdHJpbmdpZnlWYWx1ZSh2YWx1ZTogVCk6IFN0b3JlZERhdGFTdHJpbmcge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gIH1cblxuICBwYXJzZVZhbHVlKGRhdGE6IFN0b3JlZERhdGFTdHJpbmcpOiBUIHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgV3JhcHBlclNpbXBsZVN0b3JhZ2VBY2Nlc3NvckRlbGVnYXRlPFQ+IGltcGxlbWVudHMgU2ltcGxlU3RvcmFnZUFjY2Vzc29yRGVsZWdhdGU8VD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZWxlZ2F0ZTogU3RvcmFnZUFjY2Vzc29yPFN0b3JlZERhdGFTdHJpbmc+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9jb252ZXJ0ZXI6IFNpbXBsZVN0b3JhZ2VBY2Nlc3NvckNvbnZlcnRlcjxUPjtcblxuICBjb25zdHJ1Y3RvcihkZWxlZ2F0ZTogU3RvcmFnZUFjY2Vzc29yPFN0b3JlZERhdGFTdHJpbmc+LCBjb252ZXJ0ZXI6IFNpbXBsZVN0b3JhZ2VBY2Nlc3NvckNvbnZlcnRlcjxUPikge1xuICAgIHRoaXMuX2RlbGVnYXRlID0gZGVsZWdhdGU7XG4gICAgdGhpcy5fY29udmVydGVyID0gY29udmVydGVyO1xuICB9XG5cbiAgZ2V0KGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxNYXliZTxTdG9yZWREYXRhU3RyaW5nPj4ge1xuICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5nZXQoa2V5KTtcbiAgfVxuXG4gIHNldChrZXk6IHN0cmluZywgdmFsdWU6IFN0b3JlZERhdGFTdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuc2V0KGtleSwgdmFsdWUpO1xuICB9XG5cbiAgcmVtb3ZlKGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLnJlbW92ZShrZXkpO1xuICB9XG5cbiAgY2xlYXIoKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuY2xlYXIoKTtcbiAgfVxuXG4gIGFsbChwcmVmaXg/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmFsbChwcmVmaXgpO1xuICB9XG5cbiAgYWxsS2V5cyhwcmVmaXg/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmFsbEtleXMocHJlZml4KTtcbiAgfVxuXG4gIHN0cmluZ2lmeVZhbHVlKHZhbHVlOiBUKTogU3RvcmVkRGF0YVN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnZlcnRlci5zdHJpbmdpZnlWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBwYXJzZVZhbHVlKGRhdGE6IFN0b3JlZERhdGFTdHJpbmcpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5fY29udmVydGVyLnBhcnNlVmFsdWUoZGF0YSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaW1wbGVTdG9yYWdlQWNjZXNzb3JDb25maWcge1xuICAvKipcbiAgICogU3RvcmFnZSBLZXkgUHJlZml4XG4gICAqL1xuICByZWFkb25seSBwcmVmaXg6IHN0cmluZztcbiAgLyoqXG4gICAqIE9wdGlvbmFsIHByZWZpeC92YWx1ZSBzcGxpdHRlci5cbiAgICovXG4gIHJlYWRvbmx5IHByZWZpeFNwbGl0dGVyPzogc3RyaW5nO1xuICAvKipcbiAgICogTnVtYmVyIGluIG1pbGxpc2Vjb25kcyB0aGF0IG9iamVjdHMgc3RvcmVkIHdpbGwgZXhwaXJlIGluLlxuICAgKi9cbiAgcmVhZG9ubHkgZXhwaXJlc0luPzogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgQ29uZmlndXJlZFNpbXBsZVN0b3JhZ2VBY2Nlc3NvckNvbmZpZyBleHRlbmRzIFNpbXBsZVN0b3JhZ2VBY2Nlc3NvckNvbmZpZyB7XG4gIHJlYWRvbmx5IHByZWZpeFNwbGl0dGVyOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZ1bGxQcmVmaXg6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydFZhbGlkU3RvcmFnZUtleVByZWZpeChwcmVmaXg6IHN0cmluZywgcHJlZml4U3BsaXR0ZXI6IHN0cmluZyk6IHZvaWQge1xuICBpZiAoIXByZWZpeFNwbGl0dGVyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHN0b3JhZ2Uga2V5IHByZWZpeCBzcGxpdHRlci4gTXVzdCBiZSBkZWZpbmVkIGFuZCBub3QgZW1wdHkuJyk7IC8vIFRPRE8oRlVUVVJFKTogQ29uc2lkZXIgY2hhbmdpbmcgdG8gYSBjb25jcmV0ZSBlcnJvciB0eXBlXG4gIH1cblxuICBpZiAoIWlzVmFsaWRTdG9yYWdlS2V5UHJlZml4KHByZWZpeCwgcHJlZml4U3BsaXR0ZXIpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHN0b3JhZ2Uga2V5IHByZWZpeC4nKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFN0b3JhZ2VLZXlQcmVmaXgocHJlZml4OiBzdHJpbmcsIHByZWZpeFNwbHR0ZXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gQm9vbGVhbihwcmVmaXggJiYgcHJlZml4LmluZGV4T2YocHJlZml4U3BsdHRlcikgPT09IC0xKTtcbn1cblxuLyoqXG4gKiBMaW1pdGVkU3RvcmFnZUFjY2Vzc29yIGltcGxlbWVudGF0aW9uIHRoYXQgdXNlcyBhIERlbGVnYXRlXG4gKi9cbmV4cG9ydCBjbGFzcyBTaW1wbGVTdG9yYWdlQWNjZXNzb3I8VD4gaW1wbGVtZW50cyBTdG9yYWdlQWNjZXNzb3I8VD4ge1xuICBzdGF0aWMgcmVhZG9ubHkgUFJFRklYX1NQTElUVEVSID0gJzo6JztcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kZWxlZ2F0ZTogU2ltcGxlU3RvcmFnZUFjY2Vzc29yRGVsZWdhdGU8VD47XG4gIHByb3RlY3RlZCByZWFkb25seSBfY29uZmlnOiBDb25maWd1cmVkU2ltcGxlU3RvcmFnZUFjY2Vzc29yQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKGRlbGVnYXRlOiBTaW1wbGVTdG9yYWdlQWNjZXNzb3JEZWxlZ2F0ZTxUPiwgY29uZmlnOiBTaW1wbGVTdG9yYWdlQWNjZXNzb3JDb25maWcpIHtcbiAgICBjb25zdCBwcmVmaXggPSBjb25maWcucHJlZml4O1xuICAgIGNvbnN0IHByZWZpeFNwbGl0dGVyID0gY29uZmlnLnByZWZpeFNwbGl0dGVyID8/IFNpbXBsZVN0b3JhZ2VBY2Nlc3Nvci5QUkVGSVhfU1BMSVRURVI7XG5cbiAgICBhc3NlcnRWYWxpZFN0b3JhZ2VLZXlQcmVmaXgocHJlZml4LCBwcmVmaXhTcGxpdHRlcik7XG5cbiAgICBjb25zdCBmdWxsUHJlZml4ID0gYCR7cHJlZml4fSR7cHJlZml4U3BsaXR0ZXJ9YDtcblxuICAgIHRoaXMuX2RlbGVnYXRlID0gZGVsZWdhdGU7XG4gICAgdGhpcy5fY29uZmlnID0ge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgcHJlZml4U3BsaXR0ZXIsXG4gICAgICBmdWxsUHJlZml4XG4gICAgfTtcbiAgfVxuXG4gIGdldCBkZWxlZ2F0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGU7XG4gIH1cblxuICBnZXQgY29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLl9jb25maWc7XG4gIH1cblxuICAvLyBNQVJLOiBMaW1pdGVkU3RvcmFnZUFjY2Vzc29yXG4gIGdldChpbnB1dEtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3Qgc3RvcmVLZXkgPSB0aGlzLm1ha2VTdG9yYWdlS2V5KGlucHV0S2V5KTtcbiAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuZ2V0KHN0b3JlS2V5KS5waXBlKFxuICAgICAgbWFwKChzdG9yZWREYXRhOiBNYXliZTxzdHJpbmc+KSA9PiB7XG4gICAgICAgIGlmIChzdG9yZWREYXRhKSB7XG4gICAgICAgICAgY29uc3QgcmVhZFN0b3JlZERhdGEgPSB0aGlzLnJlYWRTdG9yZWREYXRhKHN0b3JlZERhdGEpO1xuXG4gICAgICAgICAgaWYgKCFyZWFkU3RvcmVkRGF0YS5leHBpcmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVhZFN0b3JlZERhdGEuY29udmVydGVkRGF0YTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IERhdGFJc0V4cGlyZWRFcnJvcjxUPihyZWFkU3RvcmVkRGF0YSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBEYXRhRG9lc05vdEV4aXN0RXJyb3IoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgc2V0KGlucHV0S2V5OiBzdHJpbmcsIGlucHV0VmFsdWU6IFQpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBzdG9yZUtleSA9IHRoaXMubWFrZVN0b3JhZ2VLZXkoaW5wdXRLZXkpO1xuICAgIGNvbnN0IHN0b3JlRGF0YTogU3RvcmVkRGF0YSA9IHRoaXMuYnVpbGRTdG9yZWREYXRhKGlucHV0VmFsdWUpO1xuICAgIGNvbnN0IGRhdGEgPSBKU09OLnN0cmluZ2lmeShzdG9yZURhdGEpO1xuICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5zZXQoc3RvcmVLZXksIGRhdGEpO1xuICB9XG5cbiAgcmVtb3ZlKGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3Qgc3RvcmVLZXkgPSB0aGlzLm1ha2VTdG9yYWdlS2V5KGtleSk7XG4gICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLnJlbW92ZShzdG9yZUtleSk7XG4gIH1cblxuICBhbGwoKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuYWxsKHRoaXMuX2NvbmZpZy5mdWxsUHJlZml4KS5waXBlKFxuICAgICAgbWFwKChhbGxTdG9yZWREYXRhKSA9PiB7XG4gICAgICAgIHJldHVybiBhbGxTdG9yZWREYXRhXG4gICAgICAgICAgLm1hcCgoc3RvcmVkRGF0YSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVhZFN0b3JlZERhdGEgPSB0aGlzLnJlYWRTdG9yZWREYXRhKHN0b3JlZERhdGEpO1xuXG4gICAgICAgICAgICBpZiAoIXJlYWRTdG9yZWREYXRhLmV4cGlyZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlYWRTdG9yZWREYXRhLmNvbnZlcnRlZERhdGE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICAgIC5maWx0ZXIoaGFzTm9uTnVsbFZhbHVlKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGFsbEtleXMoKTogT2JzZXJ2YWJsZTxzdHJpbmdbXT4ge1xuICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5hbGxLZXlzKHRoaXMuX2NvbmZpZy5mdWxsUHJlZml4KS5waXBlKG1hcCgoa2V5cykgPT4ga2V5cy5tYXAoKHgpID0+IHRoaXMuZGVjb2RlU3RvcmFnZUtleSh4KSkpKTtcbiAgfVxuXG4gIGNsZWFyKCk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmNsZWFyKCk7XG4gIH1cblxuICAvLyBNQVJLOiBTdG9yZWQgVmFsdWVzXG4gIHByb3RlY3RlZCByZWFkU3RvcmVkRGF0YShzdG9yZWREYXRhU3RyaW5nOiBTdG9yZWREYXRhU3RyaW5nKTogUmVhZFN0b3JlZERhdGE8VD4ge1xuICAgIGNvbnN0IHN0b3JlZERhdGE6IFN0b3JlZERhdGEgPSBKU09OLnBhcnNlKHN0b3JlZERhdGFTdHJpbmcpO1xuICAgIGNvbnN0IGV4cGlyZWQgPSB0aGlzLmlzRXhwaXJlZFN0b3JlZERhdGEoc3RvcmVkRGF0YSk7XG4gICAgY29uc3QgY29udmVydGVkRGF0YSA9IHRoaXMuX2RlbGVnYXRlLnBhcnNlVmFsdWUoc3RvcmVkRGF0YS5kYXRhKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdG9yZWREYXRhLFxuICAgICAgZXhwaXJlZCxcbiAgICAgIGNvbnZlcnRlZERhdGFcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkU3RvcmVkRGF0YSh2YWx1ZTogVCk6IFN0b3JlZERhdGEge1xuICAgIHJldHVybiB7XG4gICAgICBzdG9yZWRBdDogdW5peERhdGVUaW1lU2Vjb25kc051bWJlckZvck5vdygpLFxuICAgICAgZGF0YTogdGhpcy5zdHJpbmdpZnlWYWx1ZSh2YWx1ZSlcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzRXhwaXJlZFN0b3JlZERhdGEoc3RvcmVEYXRhOiBTdG9yZWREYXRhKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZXhwaXJlc0luID0gdGhpcy5fY29uZmlnLmV4cGlyZXNJbjtcbiAgICBpZiAoZXhwaXJlc0luKSB7XG4gICAgICBpZiAoc3RvcmVEYXRhLnN0b3JlZEF0KSB7XG4gICAgICAgIHJldHVybiBpc1Rocm90dGxlZChleHBpcmVzSW4sIHN0b3JlRGF0YS5zdG9yZWRBdCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLy8gTUFSSzogSW50ZXJuYWxcbiAgcHJvdGVjdGVkIG1ha2VTdG9yYWdlS2V5KGtleTogc3RyaW5nKTogU3RvcmVkRGF0YVN0b3JhZ2VLZXkge1xuICAgIHJldHVybiBgJHt0aGlzLl9jb25maWcucHJlZml4fSR7dGhpcy5fY29uZmlnLnByZWZpeFNwbGl0dGVyfSR7U3RyaW5nKGtleSl9YDtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0tleU9mQWNjZXNzb3Ioc3RvcmFnZUtleTogU3RvcmVkRGF0YVN0b3JhZ2VLZXkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3RvcmFnZUtleS5zdGFydHNXaXRoKHRoaXMuX2NvbmZpZy5mdWxsUHJlZml4KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZWNvZGVTdG9yYWdlS2V5KHN0b3JhZ2VLZXk6IFN0b3JlZERhdGFTdG9yYWdlS2V5KTogc3RyaW5nIHtcbiAgICBjb25zdCBzcGxpdCA9IHNwbGl0Sm9pblJlbWFpbmRlcihzdG9yYWdlS2V5LCB0aGlzLl9jb25maWcucHJlZml4U3BsaXR0ZXIsIDIpO1xuICAgIHJldHVybiBzcGxpdFsxXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzdHJpbmdpZnlWYWx1ZSh2YWx1ZTogVCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLnN0cmluZ2lmeVZhbHVlKHZhbHVlKTtcbiAgfVxufVxuIl19
@@ -1,50 +0,0 @@
1
- import { filterMaybeArrayValues, StorageObjectUtility } from '@dereekb/util';
2
- import { Observable, map, shareReplay } from 'rxjs';
3
- /**
4
- * Simple StorageAccessor implementation that wraps a FullStorageObject.
5
- */
6
- export class StringStorageAccessor {
7
- _storage;
8
- constructor(storage) {
9
- this._storage = storage;
10
- }
11
- get(key) {
12
- return new Observable((x) => {
13
- const value = this._storage.getItem(key);
14
- x.next(value);
15
- x.complete();
16
- });
17
- }
18
- set(key, value) {
19
- return new Observable((x) => {
20
- this._storage.setItem(key, value);
21
- x.next();
22
- x.complete();
23
- });
24
- }
25
- remove(key) {
26
- return new Observable((x) => {
27
- this._storage.removeItem(key);
28
- x.next();
29
- x.complete();
30
- });
31
- }
32
- clear() {
33
- const removed = this._storage.removeAll();
34
- return new Observable((x) => {
35
- x.next(removed);
36
- x.complete();
37
- });
38
- }
39
- all() {
40
- return this.allKeys().pipe(map((x) => filterMaybeArrayValues(x.map((y) => this._storage.getItem(y)))), shareReplay(1));
41
- }
42
- allKeys() {
43
- return new Observable((x) => {
44
- const result = StorageObjectUtility.allKeysFromStorageObject(this._storage);
45
- x.next(result);
46
- x.complete();
47
- });
48
- }
49
- }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5hY2Nlc3Nvci5zdHJpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3N0b3JhZ2Uvc3RvcmFnZS5hY2Nlc3Nvci5zdHJpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFpRCxvQkFBb0IsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUN4SSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHcEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8scUJBQXFCO0lBQ2YsUUFBUSxDQUFvQjtJQUU3QyxZQUFZLE9BQTBCO1FBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQzFCLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBVztRQUNiLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMxQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2QsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUF1QjtRQUN0QyxPQUFPLElBQUksVUFBVSxDQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNULENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFXO1FBQ2hCLE9BQU8sSUFBSSxVQUFVLENBQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5QixDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVCxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLO1FBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMxQyxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDMUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoQixDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxHQUFHO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUN4QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUMxRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzFCLE1BQU0sTUFBTSxHQUFHLG9CQUFvQixDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM1RSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2YsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaWx0ZXJNYXliZUFycmF5VmFsdWVzLCB0eXBlIFN0b3JlZERhdGFTdHJpbmcsIHR5cGUgRnVsbFN0b3JhZ2VPYmplY3QsIFN0b3JhZ2VPYmplY3RVdGlsaXR5LCB0eXBlIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0eXBlIFN0b3JhZ2VBY2Nlc3NvciB9IGZyb20gJy4vc3RvcmFnZS5hY2Nlc3Nvcic7XG5cbi8qKlxuICogU2ltcGxlIFN0b3JhZ2VBY2Nlc3NvciBpbXBsZW1lbnRhdGlvbiB0aGF0IHdyYXBzIGEgRnVsbFN0b3JhZ2VPYmplY3QuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdHJpbmdTdG9yYWdlQWNjZXNzb3IgaW1wbGVtZW50cyBTdG9yYWdlQWNjZXNzb3I8U3RvcmVkRGF0YVN0cmluZz4ge1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yYWdlOiBGdWxsU3RvcmFnZU9iamVjdDtcblxuICBjb25zdHJ1Y3RvcihzdG9yYWdlOiBGdWxsU3RvcmFnZU9iamVjdCkge1xuICAgIHRoaXMuX3N0b3JhZ2UgPSBzdG9yYWdlO1xuICB9XG5cbiAgZ2V0KGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxNYXliZTxTdG9yZWREYXRhU3RyaW5nPj4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoeCkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLl9zdG9yYWdlLmdldEl0ZW0oa2V5KTtcbiAgICAgIHgubmV4dCh2YWx1ZSk7XG4gICAgICB4LmNvbXBsZXRlKCk7XG4gICAgfSk7XG4gIH1cblxuICBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBTdG9yZWREYXRhU3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHZvaWQ+KCh4KSA9PiB7XG4gICAgICB0aGlzLl9zdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZSk7XG4gICAgICB4Lm5leHQoKTtcbiAgICAgIHguY29tcGxldGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlbW92ZShrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTx2b2lkPigoeCkgPT4ge1xuICAgICAgdGhpcy5fc3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XG4gICAgICB4Lm5leHQoKTtcbiAgICAgIHguY29tcGxldGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNsZWFyKCk6IE9ic2VydmFibGU8U3RvcmVkRGF0YVN0cmluZ1tdPiB7XG4gICAgY29uc3QgcmVtb3ZlZCA9IHRoaXMuX3N0b3JhZ2UucmVtb3ZlQWxsKCk7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKCh4KSA9PiB7XG4gICAgICB4Lm5leHQocmVtb3ZlZCk7XG4gICAgICB4LmNvbXBsZXRlKCk7XG4gICAgfSk7XG4gIH1cblxuICBhbGwoKTogT2JzZXJ2YWJsZTxTdG9yZWREYXRhU3RyaW5nW10+IHtcbiAgICByZXR1cm4gdGhpcy5hbGxLZXlzKCkucGlwZShcbiAgICAgIG1hcCgoeCkgPT4gZmlsdGVyTWF5YmVBcnJheVZhbHVlcyh4Lm1hcCgoeSkgPT4gdGhpcy5fc3RvcmFnZS5nZXRJdGVtKHkpKSkpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9XG5cbiAgYWxsS2V5cygpOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKCh4KSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBTdG9yYWdlT2JqZWN0VXRpbGl0eS5hbGxLZXlzRnJvbVN0b3JhZ2VPYmplY3QodGhpcy5fc3RvcmFnZSk7XG4gICAgICB4Lm5leHQocmVzdWx0KTtcbiAgICAgIHguY29tcGxldGUoKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,4 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export const DEFAULT_STORAGE_OBJECT_TOKEN = new InjectionToken('DBX_CORE_DEFAULT_STORAGE_OBJECT');
3
- export const DEFAULT_STORAGE_ACCESSOR_FACTORY_TOKEN = new InjectionToken('DBX_CORE_DEFAULT_STORAGE_ACCESSOR_FACTORY');
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5kaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvc3RvcmFnZS9zdG9yYWdlLmRpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxjQUFjLENBQUMsaUNBQWlDLENBQUMsQ0FBQztBQUNsRyxNQUFNLENBQUMsTUFBTSxzQ0FBc0MsR0FBRyxJQUFJLGNBQWMsQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU1RPUkFHRV9PQkpFQ1RfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ0RCWF9DT1JFX0RFRkFVTFRfU1RPUkFHRV9PQkpFQ1QnKTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NUT1JBR0VfQUNDRVNTT1JfRkFDVE9SWV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbignREJYX0NPUkVfREVGQVVMVF9TVE9SQUdFX0FDQ0VTU09SX0ZBQ1RPUlknKTtcbiJdfQ==