taon 0.0.0 → 18.0.15

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 (668) hide show
  1. package/README.md +115 -0
  2. package/assets/shared/shared_folder_info.txt +7 -0
  3. package/bin/start.js +279 -0
  4. package/bin/taon +6 -5
  5. package/bin/taon-debug +5 -5
  6. package/bin/taon-debug-brk +5 -4
  7. package/browser/README.md +24 -0
  8. package/browser/esm2022/lib/base-classes/base-abstract-entity.mjs +18 -0
  9. package/browser/esm2022/lib/base-classes/base-class.mjs +17 -0
  10. package/browser/esm2022/lib/base-classes/base-context.mjs +14 -0
  11. package/browser/esm2022/lib/base-classes/base-controller.mjs +18 -0
  12. package/browser/esm2022/lib/base-classes/base-crud-controller.mjs +279 -0
  13. package/browser/esm2022/lib/base-classes/base-entity.mjs +18 -0
  14. package/browser/esm2022/lib/base-classes/base-injector.mjs +160 -0
  15. package/browser/esm2022/lib/base-classes/base-provider.mjs +6 -0
  16. package/browser/esm2022/lib/base-classes/base-repository.mjs +514 -0
  17. package/browser/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +137 -0
  18. package/browser/esm2022/lib/base-classes/base-subscriber.mjs +27 -0
  19. package/browser/esm2022/lib/base-classes/base.mjs +26 -0
  20. package/browser/esm2022/lib/constants.mjs +4 -0
  21. package/browser/esm2022/lib/create-context.mjs +87 -0
  22. package/browser/esm2022/lib/decorators/classes/controller-decorator.mjs +15 -0
  23. package/browser/esm2022/lib/decorators/classes/entity-decorator.mjs +27 -0
  24. package/browser/esm2022/lib/decorators/classes/provider-decorator.mjs +15 -0
  25. package/browser/esm2022/lib/decorators/classes/repository-decorator.mjs +15 -0
  26. package/browser/esm2022/lib/decorators/classes/subscriber-decorator.mjs +41 -0
  27. package/browser/esm2022/lib/decorators/http/http-decorators.mjs +22 -0
  28. package/browser/esm2022/lib/decorators/http/http-methods-decorators.mjs +78 -0
  29. package/browser/esm2022/lib/decorators/http/http-params-decorators.mjs +47 -0
  30. package/browser/esm2022/lib/dependency-injection/di-container.mjs +32 -0
  31. package/browser/esm2022/lib/endpoint-context.mjs +1746 -0
  32. package/browser/esm2022/lib/entity-process.mjs +207 -0
  33. package/browser/esm2022/lib/env.mjs +6 -0
  34. package/browser/esm2022/lib/get-response-value.mjs +41 -0
  35. package/browser/esm2022/lib/helpers/class-helpers.mjs +183 -0
  36. package/browser/esm2022/lib/helpers/taon-helpers.mjs +120 -0
  37. package/browser/esm2022/lib/index.mjs +79 -0
  38. package/browser/esm2022/lib/inject.mjs +70 -0
  39. package/browser/esm2022/lib/models.mjs +77 -0
  40. package/browser/esm2022/lib/orm.mjs +6 -0
  41. package/browser/esm2022/lib/realtime/realtime-client.mjs +129 -0
  42. package/browser/esm2022/lib/realtime/realtime-core.mjs +54 -0
  43. package/browser/esm2022/lib/realtime/realtime-server.mjs +274 -0
  44. package/browser/esm2022/lib/realtime/realtime-strategy/index.mjs +7 -0
  45. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.mjs +98 -0
  46. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.mjs +45 -0
  47. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.mjs +40 -0
  48. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.mjs +25 -0
  49. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.mjs +4 -0
  50. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc.mjs +49 -0
  51. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.mjs +5 -0
  52. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.mjs +50 -0
  53. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.mjs +48 -0
  54. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.mjs +35 -0
  55. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.mjs +43 -0
  56. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.mjs +4 -0
  57. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock.mjs +28 -0
  58. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-socket-io.mjs +33 -0
  59. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy.mjs +10 -0
  60. package/browser/esm2022/lib/realtime/realtime-subs-manager.mjs +79 -0
  61. package/browser/esm2022/lib/realtime/realtime.models.mjs +4 -0
  62. package/browser/esm2022/lib/storage.mjs +5 -0
  63. package/browser/esm2022/lib/symbols.mjs +89 -0
  64. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.mjs +4 -0
  65. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.mjs +32 -0
  66. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +167 -0
  67. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +64 -0
  68. package/browser/esm2022/lib/validators.mjs +76 -0
  69. package/browser/esm2022/public-api.mjs +2 -0
  70. package/browser/esm2022/taon.mjs +5 -0
  71. package/browser/fesm2022/taon.mjs +4901 -0
  72. package/browser/fesm2022/taon.mjs.map +1 -0
  73. package/browser/index.d.ts +6 -0
  74. package/browser/lib/base-classes/base-abstract-entity.d.ts +7 -0
  75. package/browser/lib/base-classes/base-class.d.ts +9 -0
  76. package/browser/lib/base-classes/base-context.d.ts +17 -0
  77. package/browser/lib/base-classes/base-controller.d.ts +8 -0
  78. package/browser/lib/base-classes/base-crud-controller.d.ts +28 -0
  79. package/browser/lib/base-classes/base-entity.d.ts +8 -0
  80. package/browser/lib/base-classes/base-injector.d.ts +60 -0
  81. package/browser/lib/base-classes/base-provider.d.ts +4 -0
  82. package/browser/lib/base-classes/base-repository.d.ts +249 -0
  83. package/browser/lib/base-classes/base-subscriber-for-entity.d.ts +82 -0
  84. package/browser/lib/base-classes/base-subscriber.d.ts +5 -0
  85. package/browser/lib/base-classes/base.d.ts +36 -0
  86. package/browser/lib/constants.d.ts +2 -0
  87. package/browser/lib/create-context.d.ts +25 -0
  88. package/browser/lib/decorators/classes/controller-decorator.d.ts +13 -0
  89. package/browser/lib/decorators/classes/entity-decorator.d.ts +17 -0
  90. package/browser/lib/decorators/classes/provider-decorator.d.ts +5 -0
  91. package/browser/lib/decorators/classes/repository-decorator.d.ts +5 -0
  92. package/browser/lib/decorators/classes/subscriber-decorator.d.ts +6 -0
  93. package/browser/lib/decorators/http/http-decorators.d.ts +18 -0
  94. package/browser/lib/decorators/http/http-methods-decorators.d.ts +15 -0
  95. package/browser/lib/decorators/http/http-params-decorators.d.ts +6 -0
  96. package/browser/lib/dependency-injection/di-container.d.ts +6 -0
  97. package/browser/lib/endpoint-context.d.ts +117 -0
  98. package/browser/lib/entity-process.d.ts +40 -0
  99. package/browser/lib/env.d.ts +3 -0
  100. package/browser/lib/get-response-value.d.ts +7 -0
  101. package/browser/lib/helpers/class-helpers.d.ts +19 -0
  102. package/browser/lib/helpers/taon-helpers.d.ts +17 -0
  103. package/browser/lib/index.d.ts +113 -0
  104. package/browser/lib/inject.d.ts +9 -0
  105. package/browser/lib/models.d.ts +175 -0
  106. package/browser/lib/orm.d.ts +3 -0
  107. package/browser/lib/realtime/realtime-client.d.ts +32 -0
  108. package/browser/lib/realtime/realtime-core.d.ts +41 -0
  109. package/browser/lib/realtime/realtime-server.d.ts +14 -0
  110. package/browser/lib/realtime/realtime-strategy/index.d.ts +5 -0
  111. package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +22 -0
  112. package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +17 -0
  113. package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +11 -0
  114. package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +11 -0
  115. package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +14 -0
  116. package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +23 -0
  117. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +3 -0
  118. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +17 -0
  119. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +18 -0
  120. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +12 -0
  121. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +14 -0
  122. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +12 -0
  123. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock.d.ts +15 -0
  124. package/browser/lib/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +17 -0
  125. package/browser/lib/realtime/realtime-strategy/realtime-strategy.d.ts +13 -0
  126. package/browser/lib/realtime/realtime-subs-manager.d.ts +15 -0
  127. package/browser/lib/realtime/realtime.models.d.ts +14 -0
  128. package/browser/lib/storage.d.ts +2 -0
  129. package/browser/lib/symbols.d.ts +73 -0
  130. package/browser/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.d.ts +6 -0
  131. package/browser/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +18 -0
  132. package/browser/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +51 -0
  133. package/browser/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +25 -0
  134. package/browser/lib/validators.d.ts +8 -0
  135. package/browser/package.json +25 -0
  136. package/browser/public-api.d.ts +2 -0
  137. package/cli.d.ts +1 -0
  138. package/cli.js +24 -0
  139. package/cli.js.map +1 -0
  140. package/client/README.md +24 -0
  141. package/client/esm2022/lib/base-classes/base-abstract-entity.mjs +18 -0
  142. package/client/esm2022/lib/base-classes/base-class.mjs +17 -0
  143. package/client/esm2022/lib/base-classes/base-context.mjs +14 -0
  144. package/client/esm2022/lib/base-classes/base-controller.mjs +18 -0
  145. package/client/esm2022/lib/base-classes/base-crud-controller.mjs +279 -0
  146. package/client/esm2022/lib/base-classes/base-entity.mjs +18 -0
  147. package/client/esm2022/lib/base-classes/base-injector.mjs +160 -0
  148. package/client/esm2022/lib/base-classes/base-provider.mjs +6 -0
  149. package/client/esm2022/lib/base-classes/base-repository.mjs +514 -0
  150. package/client/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +137 -0
  151. package/client/esm2022/lib/base-classes/base-subscriber.mjs +27 -0
  152. package/client/esm2022/lib/base-classes/base.mjs +26 -0
  153. package/client/esm2022/lib/constants.mjs +4 -0
  154. package/client/esm2022/lib/create-context.mjs +87 -0
  155. package/client/esm2022/lib/decorators/classes/controller-decorator.mjs +15 -0
  156. package/client/esm2022/lib/decorators/classes/entity-decorator.mjs +27 -0
  157. package/client/esm2022/lib/decorators/classes/provider-decorator.mjs +15 -0
  158. package/client/esm2022/lib/decorators/classes/repository-decorator.mjs +15 -0
  159. package/client/esm2022/lib/decorators/classes/subscriber-decorator.mjs +41 -0
  160. package/client/esm2022/lib/decorators/http/http-decorators.mjs +22 -0
  161. package/client/esm2022/lib/decorators/http/http-methods-decorators.mjs +78 -0
  162. package/client/esm2022/lib/decorators/http/http-params-decorators.mjs +47 -0
  163. package/client/esm2022/lib/dependency-injection/di-container.mjs +32 -0
  164. package/client/esm2022/lib/endpoint-context.mjs +1746 -0
  165. package/client/esm2022/lib/entity-process.mjs +207 -0
  166. package/client/esm2022/lib/env.mjs +6 -0
  167. package/client/esm2022/lib/get-response-value.mjs +41 -0
  168. package/client/esm2022/lib/helpers/class-helpers.mjs +183 -0
  169. package/client/esm2022/lib/helpers/taon-helpers.mjs +120 -0
  170. package/client/esm2022/lib/index.mjs +79 -0
  171. package/client/esm2022/lib/inject.mjs +70 -0
  172. package/client/esm2022/lib/models.mjs +77 -0
  173. package/client/esm2022/lib/orm.mjs +6 -0
  174. package/client/esm2022/lib/realtime/realtime-client.mjs +129 -0
  175. package/client/esm2022/lib/realtime/realtime-core.mjs +54 -0
  176. package/client/esm2022/lib/realtime/realtime-server.mjs +274 -0
  177. package/client/esm2022/lib/realtime/realtime-strategy/index.mjs +7 -0
  178. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.mjs +98 -0
  179. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.mjs +45 -0
  180. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.mjs +40 -0
  181. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.mjs +25 -0
  182. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.mjs +4 -0
  183. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc.mjs +49 -0
  184. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.mjs +5 -0
  185. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.mjs +50 -0
  186. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.mjs +48 -0
  187. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.mjs +35 -0
  188. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.mjs +43 -0
  189. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.mjs +4 -0
  190. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock.mjs +28 -0
  191. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-socket-io.mjs +33 -0
  192. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy.mjs +10 -0
  193. package/client/esm2022/lib/realtime/realtime-subs-manager.mjs +79 -0
  194. package/client/esm2022/lib/realtime/realtime.models.mjs +4 -0
  195. package/client/esm2022/lib/storage.mjs +5 -0
  196. package/client/esm2022/lib/symbols.mjs +89 -0
  197. package/client/esm2022/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.mjs +4 -0
  198. package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.mjs +32 -0
  199. package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +167 -0
  200. package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +64 -0
  201. package/client/esm2022/lib/validators.mjs +76 -0
  202. package/client/esm2022/public-api.mjs +2 -0
  203. package/client/esm2022/taon.mjs +5 -0
  204. package/client/fesm2022/taon.mjs +4901 -0
  205. package/client/fesm2022/taon.mjs.map +1 -0
  206. package/client/index.d.ts +6 -0
  207. package/client/lib/base-classes/base-abstract-entity.d.ts +7 -0
  208. package/client/lib/base-classes/base-class.d.ts +9 -0
  209. package/client/lib/base-classes/base-context.d.ts +17 -0
  210. package/client/lib/base-classes/base-controller.d.ts +8 -0
  211. package/client/lib/base-classes/base-crud-controller.d.ts +28 -0
  212. package/client/lib/base-classes/base-entity.d.ts +8 -0
  213. package/client/lib/base-classes/base-injector.d.ts +60 -0
  214. package/client/lib/base-classes/base-provider.d.ts +4 -0
  215. package/client/lib/base-classes/base-repository.d.ts +249 -0
  216. package/client/lib/base-classes/base-subscriber-for-entity.d.ts +82 -0
  217. package/client/lib/base-classes/base-subscriber.d.ts +5 -0
  218. package/client/lib/base-classes/base.d.ts +36 -0
  219. package/client/lib/constants.d.ts +2 -0
  220. package/client/lib/create-context.d.ts +25 -0
  221. package/client/lib/decorators/classes/controller-decorator.d.ts +13 -0
  222. package/client/lib/decorators/classes/entity-decorator.d.ts +17 -0
  223. package/client/lib/decorators/classes/provider-decorator.d.ts +5 -0
  224. package/client/lib/decorators/classes/repository-decorator.d.ts +5 -0
  225. package/client/lib/decorators/classes/subscriber-decorator.d.ts +6 -0
  226. package/client/lib/decorators/http/http-decorators.d.ts +18 -0
  227. package/client/lib/decorators/http/http-methods-decorators.d.ts +15 -0
  228. package/client/lib/decorators/http/http-params-decorators.d.ts +6 -0
  229. package/client/lib/dependency-injection/di-container.d.ts +6 -0
  230. package/client/lib/endpoint-context.d.ts +117 -0
  231. package/client/lib/entity-process.d.ts +40 -0
  232. package/client/lib/env.d.ts +3 -0
  233. package/client/lib/get-response-value.d.ts +7 -0
  234. package/client/lib/helpers/class-helpers.d.ts +19 -0
  235. package/client/lib/helpers/taon-helpers.d.ts +17 -0
  236. package/client/lib/index.d.ts +113 -0
  237. package/client/lib/inject.d.ts +9 -0
  238. package/client/lib/models.d.ts +175 -0
  239. package/client/lib/orm.d.ts +3 -0
  240. package/client/lib/realtime/realtime-client.d.ts +32 -0
  241. package/client/lib/realtime/realtime-core.d.ts +41 -0
  242. package/client/lib/realtime/realtime-server.d.ts +14 -0
  243. package/client/lib/realtime/realtime-strategy/index.d.ts +5 -0
  244. package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +22 -0
  245. package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +17 -0
  246. package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +11 -0
  247. package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +11 -0
  248. package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +14 -0
  249. package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +23 -0
  250. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +3 -0
  251. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +17 -0
  252. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +18 -0
  253. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +12 -0
  254. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +14 -0
  255. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +12 -0
  256. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock.d.ts +15 -0
  257. package/client/lib/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +17 -0
  258. package/client/lib/realtime/realtime-strategy/realtime-strategy.d.ts +13 -0
  259. package/client/lib/realtime/realtime-subs-manager.d.ts +15 -0
  260. package/client/lib/realtime/realtime.models.d.ts +14 -0
  261. package/client/lib/storage.d.ts +2 -0
  262. package/client/lib/symbols.d.ts +73 -0
  263. package/client/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.d.ts +6 -0
  264. package/client/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +18 -0
  265. package/client/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +51 -0
  266. package/client/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +25 -0
  267. package/client/lib/validators.d.ts +8 -0
  268. package/client/public-api.d.ts +2 -0
  269. package/index.d.ts +1 -0
  270. package/index.js +5 -1
  271. package/index.js.map +1 -0
  272. package/lib/base-classes/base-abstract-entity.d.ts +6 -0
  273. package/lib/base-classes/base-abstract-entity.js +40 -0
  274. package/lib/base-classes/base-abstract-entity.js.map +1 -0
  275. package/lib/base-classes/base-class.d.ts +8 -0
  276. package/lib/base-classes/base-class.js +35 -0
  277. package/lib/base-classes/base-class.js.map +1 -0
  278. package/lib/base-classes/base-context.d.ts +16 -0
  279. package/lib/base-classes/base-context.js +15 -0
  280. package/lib/base-classes/base-context.js.map +1 -0
  281. package/lib/base-classes/base-controller.d.ts +7 -0
  282. package/lib/base-classes/base-controller.js +24 -0
  283. package/lib/base-classes/base-controller.js.map +1 -0
  284. package/lib/base-classes/base-crud-controller.d.ts +27 -0
  285. package/lib/base-classes/base-crud-controller.js +385 -0
  286. package/lib/base-classes/base-crud-controller.js.map +1 -0
  287. package/lib/base-classes/base-entity.d.ts +7 -0
  288. package/lib/base-classes/base-entity.js +25 -0
  289. package/lib/base-classes/base-entity.js.map +1 -0
  290. package/lib/base-classes/base-injector.d.ts +59 -0
  291. package/lib/base-classes/base-injector.js +220 -0
  292. package/lib/base-classes/base-injector.js.map +1 -0
  293. package/lib/base-classes/base-provider.d.ts +3 -0
  294. package/lib/base-classes/base-provider.js +14 -0
  295. package/lib/base-classes/base-provider.js.map +1 -0
  296. package/lib/base-classes/base-repository.d.ts +254 -0
  297. package/lib/base-classes/base-repository.js +780 -0
  298. package/lib/base-classes/base-repository.js.map +1 -0
  299. package/lib/base-classes/base-subscriber-for-entity.d.ts +81 -0
  300. package/lib/base-classes/base-subscriber-for-entity.js +136 -0
  301. package/lib/base-classes/base-subscriber-for-entity.js.map +1 -0
  302. package/lib/base-classes/base-subscriber.d.ts +4 -0
  303. package/lib/base-classes/base-subscriber.js +25 -0
  304. package/lib/base-classes/base-subscriber.js.map +1 -0
  305. package/lib/base-classes/base.d.ts +35 -0
  306. package/lib/base-classes/base.js +27 -0
  307. package/lib/base-classes/base.js.map +1 -0
  308. package/lib/build-info._auto-generated_.d.ts +1 -0
  309. package/lib/build-info._auto-generated_.js +5 -0
  310. package/lib/build-info._auto-generated_.js.map +1 -0
  311. package/lib/constants.d.ts +1 -0
  312. package/lib/constants.js +3 -0
  313. package/lib/constants.js.map +1 -0
  314. package/lib/create-context.d.ts +24 -0
  315. package/lib/create-context.js +183 -0
  316. package/lib/create-context.js.map +1 -0
  317. package/lib/decorators/classes/controller-decorator.d.ts +12 -0
  318. package/lib/decorators/classes/controller-decorator.js +24 -0
  319. package/lib/decorators/classes/controller-decorator.js.map +1 -0
  320. package/lib/decorators/classes/entity-decorator.d.ts +16 -0
  321. package/lib/decorators/classes/entity-decorator.js +39 -0
  322. package/lib/decorators/classes/entity-decorator.js.map +1 -0
  323. package/lib/decorators/classes/provider-decorator.d.ts +4 -0
  324. package/lib/decorators/classes/provider-decorator.js +24 -0
  325. package/lib/decorators/classes/provider-decorator.js.map +1 -0
  326. package/lib/decorators/classes/repository-decorator.d.ts +4 -0
  327. package/lib/decorators/classes/repository-decorator.js +24 -0
  328. package/lib/decorators/classes/repository-decorator.js.map +1 -0
  329. package/lib/decorators/classes/subscriber-decorator.d.ts +5 -0
  330. package/lib/decorators/classes/subscriber-decorator.js +75 -0
  331. package/lib/decorators/classes/subscriber-decorator.js.map +1 -0
  332. package/lib/decorators/http/http-decorators.d.ts +17 -0
  333. package/lib/decorators/http/http-decorators.js +23 -0
  334. package/lib/decorators/http/http-decorators.js.map +1 -0
  335. package/lib/decorators/http/http-methods-decorators.d.ts +14 -0
  336. package/lib/decorators/http/http-methods-decorators.js +91 -0
  337. package/lib/decorators/http/http-methods-decorators.js.map +1 -0
  338. package/lib/decorators/http/http-params-decorators.d.ts +5 -0
  339. package/lib/decorators/http/http-params-decorators.js +55 -0
  340. package/lib/decorators/http/http-params-decorators.js.map +1 -0
  341. package/lib/dependency-injection/di-container.d.ts +5 -0
  342. package/lib/dependency-injection/di-container.js +40 -0
  343. package/lib/dependency-injection/di-container.js.map +1 -0
  344. package/lib/endpoint-context.d.ts +117 -0
  345. package/lib/endpoint-context.js +2128 -0
  346. package/lib/endpoint-context.js.map +1 -0
  347. package/lib/entity-process.d.ts +39 -0
  348. package/lib/entity-process.js +261 -0
  349. package/lib/entity-process.js.map +1 -0
  350. package/lib/env.d.ts +2 -0
  351. package/lib/env.js +7 -0
  352. package/lib/env.js.map +1 -0
  353. package/lib/formly/formly-group-wrapper-component.d.ts +5 -0
  354. package/lib/formly/formly-group-wrapper-component.js +28 -0
  355. package/lib/formly/formly-group-wrapper-component.js.map +1 -0
  356. package/lib/formly/formly-repeat-component.d.ts +5 -0
  357. package/lib/formly/formly-repeat-component.js +47 -0
  358. package/lib/formly/formly-repeat-component.js.map +1 -0
  359. package/lib/formly/formly.models.d.ts +1 -0
  360. package/lib/formly/formly.models.js +3 -0
  361. package/lib/formly/formly.models.js.map +1 -0
  362. package/lib/formly/fromly.d.ts +16 -0
  363. package/lib/formly/fromly.js +213 -0
  364. package/lib/formly/fromly.js.map +1 -0
  365. package/lib/formly/type-from-entity.d.ts +20 -0
  366. package/lib/formly/type-from-entity.js +65 -0
  367. package/lib/formly/type-from-entity.js.map +1 -0
  368. package/lib/get-response-value.d.ts +6 -0
  369. package/lib/get-response-value.js +65 -0
  370. package/lib/get-response-value.js.map +1 -0
  371. package/lib/helpers/class-helpers.d.ts +18 -0
  372. package/lib/helpers/class-helpers.js +227 -0
  373. package/lib/helpers/class-helpers.js.map +1 -0
  374. package/lib/helpers/taon-helpers.d.ts +16 -0
  375. package/lib/helpers/taon-helpers.js +144 -0
  376. package/lib/helpers/taon-helpers.js.map +1 -0
  377. package/lib/index.d.ts +112 -0
  378. package/lib/index.js +113 -0
  379. package/lib/index.js.map +1 -0
  380. package/lib/inject.d.ts +8 -0
  381. package/lib/inject.js +84 -0
  382. package/lib/inject.js.map +1 -0
  383. package/lib/models.d.ts +180 -0
  384. package/lib/models.js +107 -0
  385. package/lib/models.js.map +1 -0
  386. package/lib/orm.d.ts +51 -0
  387. package/lib/orm.js +79 -0
  388. package/lib/orm.js.map +1 -0
  389. package/lib/realtime/realtime-client.d.ts +31 -0
  390. package/lib/realtime/realtime-client.js +158 -0
  391. package/lib/realtime/realtime-client.js.map +1 -0
  392. package/lib/realtime/realtime-core.d.ts +40 -0
  393. package/lib/realtime/realtime-core.js +72 -0
  394. package/lib/realtime/realtime-core.js.map +1 -0
  395. package/lib/realtime/realtime-server.d.ts +13 -0
  396. package/lib/realtime/realtime-server.js +193 -0
  397. package/lib/realtime/realtime-server.js.map +1 -0
  398. package/lib/realtime/realtime-strategy/index.d.ts +4 -0
  399. package/lib/realtime/realtime-strategy/index.js +8 -0
  400. package/lib/realtime/realtime-strategy/index.js.map +1 -0
  401. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/index.d.ts +0 -0
  402. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/index.js +5 -0
  403. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/index.js.map +1 -0
  404. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +22 -0
  405. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.js +139 -0
  406. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.js.map +1 -0
  407. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +16 -0
  408. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.js +68 -0
  409. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.js.map +1 -0
  410. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +10 -0
  411. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.js +56 -0
  412. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.js.map +1 -0
  413. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +10 -0
  414. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.js +50 -0
  415. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.js.map +1 -0
  416. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +13 -0
  417. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.js +3 -0
  418. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.js.map +1 -0
  419. package/lib/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +22 -0
  420. package/lib/realtime/realtime-strategy/realtime-strategy-ipc.js +68 -0
  421. package/lib/realtime/realtime-strategy/realtime-strategy-ipc.js.map +1 -0
  422. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +2 -0
  423. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.js +6 -0
  424. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.js.map +1 -0
  425. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +16 -0
  426. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.js +54 -0
  427. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.js.map +1 -0
  428. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +17 -0
  429. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.js +52 -0
  430. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.js.map +1 -0
  431. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +11 -0
  432. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.js +39 -0
  433. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.js.map +1 -0
  434. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +13 -0
  435. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.js +46 -0
  436. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.js.map +1 -0
  437. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +11 -0
  438. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.js +3 -0
  439. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.js.map +1 -0
  440. package/lib/realtime/realtime-strategy/realtime-strategy-mock.d.ts +14 -0
  441. package/lib/realtime/realtime-strategy/realtime-strategy-mock.js +42 -0
  442. package/lib/realtime/realtime-strategy/realtime-strategy-mock.js.map +1 -0
  443. package/lib/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +17 -0
  444. package/lib/realtime/realtime-strategy/realtime-strategy-socket-io.js +48 -0
  445. package/lib/realtime/realtime-strategy/realtime-strategy-socket-io.js.map +1 -0
  446. package/lib/realtime/realtime-strategy/realtime-strategy.d.ts +12 -0
  447. package/lib/realtime/realtime-strategy/realtime-strategy.js +14 -0
  448. package/lib/realtime/realtime-strategy/realtime-strategy.js.map +1 -0
  449. package/lib/realtime/realtime-subs-manager.d.ts +14 -0
  450. package/lib/realtime/realtime-subs-manager.js +102 -0
  451. package/lib/realtime/realtime-subs-manager.js.map +1 -0
  452. package/lib/realtime/realtime.models.d.ts +13 -0
  453. package/lib/realtime/realtime.models.js +3 -0
  454. package/lib/realtime/realtime.models.js.map +1 -0
  455. package/lib/storage.d.ts +1 -0
  456. package/lib/storage.js +6 -0
  457. package/lib/storage.js.map +1 -0
  458. package/lib/symbols.d.ts +72 -0
  459. package/lib/symbols.js +91 -0
  460. package/lib/symbols.js.map +1 -0
  461. package/lib/ui/directives/firedev-inject-html.directive.d.ts +6 -0
  462. package/lib/ui/directives/firedev-long-press.directive.d.ts +22 -0
  463. package/lib/ui/directives/index.d.ts +4 -0
  464. package/lib/ui/directives/index.js +5 -0
  465. package/lib/ui/directives/index.js.map +1 -0
  466. package/lib/ui/directives/safe.pipe.d.ts +7 -0
  467. package/lib/ui/directives/view-mode.d.ts +5 -0
  468. package/lib/ui/directives/view-mode.js +10 -0
  469. package/lib/ui/directives/view-mode.js.map +1 -0
  470. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.d.ts +2 -0
  471. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.js +5 -0
  472. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.js.map +1 -0
  473. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +31 -0
  474. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.d.ts +2 -0
  475. package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.d.ts +1 -0
  476. package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.js +5 -0
  477. package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.js.map +1 -0
  478. package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/taon-db-admin.component.d.ts +9 -0
  479. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.d.ts +2 -0
  480. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.js +5 -0
  481. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.js.map +1 -0
  482. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +14 -0
  483. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.d.ts +2 -0
  484. package/lib/ui/taon-admin-mode-configuration/index.d.ts +4 -0
  485. package/lib/ui/taon-admin-mode-configuration/index.js +5 -0
  486. package/lib/ui/taon-admin-mode-configuration/index.js.map +1 -0
  487. package/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.d.ts +5 -0
  488. package/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.js +3 -0
  489. package/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.js.map +1 -0
  490. package/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +14 -0
  491. package/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +47 -0
  492. package/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.d.ts +2 -0
  493. package/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +21 -0
  494. package/lib/ui/taon-github-fork-me-corner/index.d.ts +2 -0
  495. package/lib/ui/taon-github-fork-me-corner/index.js +5 -0
  496. package/lib/ui/taon-github-fork-me-corner/index.js.map +1 -0
  497. package/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.d.ts +3 -0
  498. package/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.module.d.ts +2 -0
  499. package/lib/ui/taon-github-fork-me-ribbon/index.d.ts +2 -0
  500. package/lib/ui/taon-github-fork-me-ribbon/index.js +5 -0
  501. package/lib/ui/taon-github-fork-me-ribbon/index.js.map +1 -0
  502. package/lib/ui/taon-github-fork-me-ribbon/taon-github-fork-me-ribbon.component.d.ts +3 -0
  503. package/lib/ui/taon-github-fork-me-ribbon/taon-github-fork-me-ribbon.module.d.ts +2 -0
  504. package/lib/ui/taon-notifications/index.d.ts +4 -0
  505. package/lib/ui/taon-notifications/index.js +11 -0
  506. package/lib/ui/taon-notifications/index.js.map +1 -0
  507. package/lib/ui/taon-notifications/taon-notifications.component.d.ts +9 -0
  508. package/lib/ui/taon-notifications/taon-notifications.models.d.ts +6 -0
  509. package/lib/ui/taon-notifications/taon-notifications.models.js +5 -0
  510. package/lib/ui/taon-notifications/taon-notifications.models.js.map +1 -0
  511. package/lib/ui/taon-notifications/taon-notifications.module.d.ts +2 -0
  512. package/lib/ui/taon-notifications/taon-notifications.service.d.ts +11 -0
  513. package/lib/ui/taon-progress-bar/index.d.ts +2 -0
  514. package/lib/ui/taon-progress-bar/index.js +5 -0
  515. package/lib/ui/taon-progress-bar/index.js.map +1 -0
  516. package/lib/ui/taon-progress-bar/taon-progress-bar.component.d.ts +14 -0
  517. package/lib/ui/taon-progress-bar/taon-progress-bar.module.d.ts +2 -0
  518. package/lib/ui/taon-session-passcode/index.d.ts +1 -0
  519. package/lib/ui/taon-session-passcode/index.js +5 -0
  520. package/lib/ui/taon-session-passcode/index.js.map +1 -0
  521. package/lib/ui/taon-session-passcode/taon-session-passcode.component.d.ts +35 -0
  522. package/lib/ui/taon.models.d.ts +11 -0
  523. package/lib/ui/taon.models.js +3 -0
  524. package/lib/ui/taon.models.js.map +1 -0
  525. package/lib/ui/toan-full-material.module.d.ts +2 -0
  526. package/lib/validators.d.ts +7 -0
  527. package/lib/validators.js +53 -0
  528. package/lib/validators.js.map +1 -0
  529. package/old-app .d.ts +0 -0
  530. package/old-app .js +115 -0
  531. package/old-app .js.map +1 -0
  532. package/package.json +74 -11
  533. package/playground.d.ts +0 -0
  534. package/playground.js +172 -0
  535. package/playground.js.map +1 -0
  536. package/src.d.ts +6 -0
  537. package/taon.jsonc +48 -0
  538. package/tmp-environment.json +392 -0
  539. package/websql/README.md +24 -0
  540. package/websql/esm2022/lib/base-classes/base-abstract-entity.mjs +25 -0
  541. package/websql/esm2022/lib/base-classes/base-class.mjs +17 -0
  542. package/websql/esm2022/lib/base-classes/base-context.mjs +14 -0
  543. package/websql/esm2022/lib/base-classes/base-controller.mjs +18 -0
  544. package/websql/esm2022/lib/base-classes/base-crud-controller.mjs +238 -0
  545. package/websql/esm2022/lib/base-classes/base-entity.mjs +16 -0
  546. package/websql/esm2022/lib/base-classes/base-injector.mjs +160 -0
  547. package/websql/esm2022/lib/base-classes/base-provider.mjs +6 -0
  548. package/websql/esm2022/lib/base-classes/base-repository.mjs +431 -0
  549. package/websql/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +137 -0
  550. package/websql/esm2022/lib/base-classes/base-subscriber.mjs +27 -0
  551. package/websql/esm2022/lib/base-classes/base.mjs +26 -0
  552. package/websql/esm2022/lib/constants.mjs +4 -0
  553. package/websql/esm2022/lib/create-context.mjs +86 -0
  554. package/websql/esm2022/lib/decorators/classes/controller-decorator.mjs +15 -0
  555. package/websql/esm2022/lib/decorators/classes/entity-decorator.mjs +25 -0
  556. package/websql/esm2022/lib/decorators/classes/provider-decorator.mjs +15 -0
  557. package/websql/esm2022/lib/decorators/classes/repository-decorator.mjs +15 -0
  558. package/websql/esm2022/lib/decorators/classes/subscriber-decorator.mjs +41 -0
  559. package/websql/esm2022/lib/decorators/http/http-decorators.mjs +22 -0
  560. package/websql/esm2022/lib/decorators/http/http-methods-decorators.mjs +78 -0
  561. package/websql/esm2022/lib/decorators/http/http-params-decorators.mjs +47 -0
  562. package/websql/esm2022/lib/dependency-injection/di-container.mjs +32 -0
  563. package/websql/esm2022/lib/endpoint-context.mjs +1506 -0
  564. package/websql/esm2022/lib/entity-process.mjs +207 -0
  565. package/websql/esm2022/lib/env.mjs +6 -0
  566. package/websql/esm2022/lib/get-response-value.mjs +45 -0
  567. package/websql/esm2022/lib/helpers/class-helpers.mjs +183 -0
  568. package/websql/esm2022/lib/helpers/taon-helpers.mjs +120 -0
  569. package/websql/esm2022/lib/index.mjs +81 -0
  570. package/websql/esm2022/lib/inject.mjs +70 -0
  571. package/websql/esm2022/lib/models.mjs +70 -0
  572. package/websql/esm2022/lib/orm.mjs +60 -0
  573. package/websql/esm2022/lib/realtime/realtime-client.mjs +129 -0
  574. package/websql/esm2022/lib/realtime/realtime-core.mjs +54 -0
  575. package/websql/esm2022/lib/realtime/realtime-server.mjs +158 -0
  576. package/websql/esm2022/lib/realtime/realtime-strategy/index.mjs +7 -0
  577. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.mjs +98 -0
  578. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.mjs +45 -0
  579. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.mjs +40 -0
  580. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.mjs +25 -0
  581. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.mjs +4 -0
  582. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc.mjs +48 -0
  583. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.mjs +5 -0
  584. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.mjs +50 -0
  585. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.mjs +48 -0
  586. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.mjs +35 -0
  587. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.mjs +43 -0
  588. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.mjs +4 -0
  589. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock.mjs +28 -0
  590. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-socket-io.mjs +33 -0
  591. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy.mjs +10 -0
  592. package/websql/esm2022/lib/realtime/realtime-subs-manager.mjs +79 -0
  593. package/websql/esm2022/lib/realtime/realtime.models.mjs +4 -0
  594. package/websql/esm2022/lib/storage.mjs +5 -0
  595. package/websql/esm2022/lib/symbols.mjs +89 -0
  596. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.mjs +4 -0
  597. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.mjs +32 -0
  598. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +167 -0
  599. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +64 -0
  600. package/websql/esm2022/lib/validators.mjs +76 -0
  601. package/websql/esm2022/public-api.mjs +2 -0
  602. package/websql/esm2022/taon.mjs +5 -0
  603. package/websql/fesm2022/taon.mjs +4595 -0
  604. package/websql/fesm2022/taon.mjs.map +1 -0
  605. package/websql/index.d.ts +6 -0
  606. package/websql/lib/base-classes/base-abstract-entity.d.ts +7 -0
  607. package/websql/lib/base-classes/base-class.d.ts +9 -0
  608. package/websql/lib/base-classes/base-context.d.ts +17 -0
  609. package/websql/lib/base-classes/base-controller.d.ts +8 -0
  610. package/websql/lib/base-classes/base-crud-controller.d.ts +28 -0
  611. package/websql/lib/base-classes/base-entity.d.ts +8 -0
  612. package/websql/lib/base-classes/base-injector.d.ts +60 -0
  613. package/websql/lib/base-classes/base-provider.d.ts +4 -0
  614. package/websql/lib/base-classes/base-repository.d.ts +255 -0
  615. package/websql/lib/base-classes/base-subscriber-for-entity.d.ts +82 -0
  616. package/websql/lib/base-classes/base-subscriber.d.ts +5 -0
  617. package/websql/lib/base-classes/base.d.ts +36 -0
  618. package/websql/lib/constants.d.ts +2 -0
  619. package/websql/lib/create-context.d.ts +25 -0
  620. package/websql/lib/decorators/classes/controller-decorator.d.ts +13 -0
  621. package/websql/lib/decorators/classes/entity-decorator.d.ts +17 -0
  622. package/websql/lib/decorators/classes/provider-decorator.d.ts +5 -0
  623. package/websql/lib/decorators/classes/repository-decorator.d.ts +5 -0
  624. package/websql/lib/decorators/classes/subscriber-decorator.d.ts +6 -0
  625. package/websql/lib/decorators/http/http-decorators.d.ts +18 -0
  626. package/websql/lib/decorators/http/http-methods-decorators.d.ts +15 -0
  627. package/websql/lib/decorators/http/http-params-decorators.d.ts +6 -0
  628. package/websql/lib/dependency-injection/di-container.d.ts +6 -0
  629. package/websql/lib/endpoint-context.d.ts +117 -0
  630. package/websql/lib/entity-process.d.ts +40 -0
  631. package/websql/lib/env.d.ts +3 -0
  632. package/websql/lib/get-response-value.d.ts +7 -0
  633. package/websql/lib/helpers/class-helpers.d.ts +19 -0
  634. package/websql/lib/helpers/taon-helpers.d.ts +17 -0
  635. package/websql/lib/index.d.ts +113 -0
  636. package/websql/lib/inject.d.ts +9 -0
  637. package/websql/lib/models.d.ts +181 -0
  638. package/websql/lib/orm.d.ts +52 -0
  639. package/websql/lib/realtime/realtime-client.d.ts +32 -0
  640. package/websql/lib/realtime/realtime-core.d.ts +41 -0
  641. package/websql/lib/realtime/realtime-server.d.ts +14 -0
  642. package/websql/lib/realtime/realtime-strategy/index.d.ts +5 -0
  643. package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +22 -0
  644. package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +17 -0
  645. package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +11 -0
  646. package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +11 -0
  647. package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +14 -0
  648. package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +23 -0
  649. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +3 -0
  650. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +17 -0
  651. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +18 -0
  652. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +12 -0
  653. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +14 -0
  654. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +12 -0
  655. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock.d.ts +15 -0
  656. package/websql/lib/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +17 -0
  657. package/websql/lib/realtime/realtime-strategy/realtime-strategy.d.ts +13 -0
  658. package/websql/lib/realtime/realtime-subs-manager.d.ts +15 -0
  659. package/websql/lib/realtime/realtime.models.d.ts +14 -0
  660. package/websql/lib/storage.d.ts +2 -0
  661. package/websql/lib/symbols.d.ts +73 -0
  662. package/websql/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.d.ts +6 -0
  663. package/websql/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +18 -0
  664. package/websql/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +51 -0
  665. package/websql/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +25 -0
  666. package/websql/lib/validators.d.ts +8 -0
  667. package/websql/package.json +25 -0
  668. package/websql/public-api.d.ts +2 -0
@@ -0,0 +1,167 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { ChangeDetectorRef, Component, EventEmitter, HostListener, Input, Output, ViewChild, inject, } from '@angular/core'; /* */
3
+ /* */
4
+ /* */
5
+ /* */
6
+ /* */
7
+ /* */
8
+ /* */
9
+ /* */
10
+ /* */
11
+ /* */
12
+ /* */
13
+ import { Helpers, _ } from 'tnp-core/websql';
14
+ import { Stor } from 'taon-storage/websql';
15
+ /* */
16
+ /* */
17
+ /* */
18
+ /* */
19
+ /* */
20
+ import { BreakpointsService } from 'static-columns/websql';
21
+ import { Subject, takeUntil } from 'rxjs';
22
+ import { TaonAdminService } from './taon-admin-control.service';
23
+ import * as i0 from "@angular/core";
24
+ import * as i1 from "static-columns/websql";
25
+ export class TaonAdminModeConfigurationComponent {
26
+ get opened() {
27
+ return !this.isIframe && this.admin.adminPanelIsOpen;
28
+ }
29
+ set opened(v) {
30
+ if (v && !this.openedOnce) {
31
+ this.openedOnce = true;
32
+ }
33
+ if (this.wasOpenDraggablePopup) {
34
+ this.wasOpenDraggablePopup = false;
35
+ this.admin.draggablePopupMode = true;
36
+ }
37
+ this.admin.adminPanelIsOpen = v;
38
+ }
39
+ constructor(breakpointsService) {
40
+ this.breakpointsService = breakpointsService;
41
+ this.$destroy = new Subject();
42
+ this.cdr = inject(ChangeDetectorRef);
43
+ this.taonAdminService = inject(TaonAdminService);
44
+ this.tabs = [];
45
+ this.admin = window['taon'];
46
+ this.isWebSQLMode = Helpers.isWebSQL;
47
+ this.hideTaonToolsInProduction = ENV.hideTaonToolsInProduction && ENV.angularProd;
48
+ this.isIframe = window.location !== window.parent.location;
49
+ this.height = 100;
50
+ this.openedOnce = false;
51
+ this.reloading = false;
52
+ this.showPasscode = _.isString(ENV.passcode) || _.isObject(ENV.passcode);
53
+ this.passcode = _.isString(ENV.passcode)
54
+ ? ENV.passcode
55
+ : _.isObject(ENV.passcode)
56
+ ? ENV.passcode.code
57
+ : '';
58
+ this.message = _.isObject(ENV.passcode)
59
+ ? ENV.passcode.message
60
+ : void 0;
61
+ this.dragPositionZero = { x: 0, y: 0 };
62
+ this.taonAdminModeConfigurationDataChanged = new EventEmitter();
63
+ this.taonAdminModeConfigurationData = {};
64
+ this.admin.cmp = this;
65
+ this.breakpointsService
66
+ .listenTo()
67
+ .pipe(takeUntil(this.$destroy))
68
+ .subscribe(breakpoint => {
69
+ // @ts-ignore
70
+ this.isDesktop = breakpoint === 'desktop';
71
+ });
72
+ this.taonAdminService.init(this);
73
+ }
74
+ reloadTabs() {
75
+ this.reloading = true;
76
+ setTimeout(() => {
77
+ this.reloading = false;
78
+ console.log('reloading done');
79
+ });
80
+ }
81
+ async ngOnInit() {
82
+ await Stor.awaitPendingOperatios();
83
+ this.dragPosition = { x: this.dragPositionX, y: this.dragPositionY };
84
+ this.openedOnce = this.opened;
85
+ }
86
+ ngAfterViewInit() {
87
+ //Called after ngAfterContentInit when the component's view has been initialized. Applies to components only.
88
+ //Add 'implements AfterViewInit' to the class.
89
+ setTimeout(() => {
90
+ this.height = window.innerHeight;
91
+ if (this.admin.draggablePopupMode) {
92
+ this.reloadTabs();
93
+ }
94
+ });
95
+ }
96
+ ngOnDestroy() {
97
+ this.$destroy.next(void 0);
98
+ this.$destroy.complete();
99
+ }
100
+ onResize(event) {
101
+ this.height = window.innerHeight;
102
+ }
103
+ async toogle() {
104
+ this.opened = !this.opened;
105
+ }
106
+ async toogleFullScreen() {
107
+ this.admin.draggablePopupMode = true;
108
+ this.admin.draggablePopupModeFullScreen =
109
+ !this.admin.draggablePopupModeFullScreen;
110
+ this.resetDrag();
111
+ }
112
+ resetDrag() {
113
+ this.dragPositionX = 0;
114
+ this.dragPositionY = 0;
115
+ this.dragPosition = { x: this.dragPositionX, y: this.dragPositionY };
116
+ }
117
+ moved(c) {
118
+ this.dragPositionX += c.distance.x;
119
+ this.dragPositionY += c.distance.y;
120
+ }
121
+ scrollTabs(event) {
122
+ return;
123
+ }
124
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminModeConfigurationComponent, deps: [{ token: i1.BreakpointsService }], target: i0.ɵɵFactoryTarget.Component }); }
125
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: TaonAdminModeConfigurationComponent, selector: "app-taon-admin-mode-configuration", inputs: { taonAdminModeConfigurationData: "taonAdminModeConfigurationData" }, outputs: { taonAdminModeConfigurationDataChanged: "taonAdminModeConfigurationDataChanged" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "tabGroup", first: true, predicate: ["tabGroup"], descendants: true }], ngImport: i0, template: "<!-- #region basic global components -->\n<taon-session-passcode\n *ngIf=\"showPasscode\"\n [passcode]=\"passcode\"\n [message]=\"message\" />\n<!-- <taon-progress-bar [isDesktop]=\"isDesktop\"></taon-progress-bar> -->\n<!-- <taon-notifications></taon-notifications> -->\n<button\n mat-fab\n class=\"fab-button\"\n color=\"accent\"\n aria-label=\"Taon Admin Mode\"\n *ngIf=\"\n !admin.draggablePopupMode &&\n isDesktop &&\n !isIframe &&\n !hideTaonToolsInProduction\n \"\n (click)=\"toogle()\">\n <mat-icon>build</mat-icon>\n</button>\n<!-- #endregion -->\n\n<!-- #region small hidden button -->\n<!-- <button class=\"admin-show-button\"\n *ngIf=\"!admin.draggablePopupMode && isDesktop\"\n (click)=\"toogle()\"> Admin </button> -->\n<!-- #endregion -->\n\n<ng-template #contentNoScroll>\n <ng-content> </ng-content>\n</ng-template>\n\n<ng-template #content>\n <ng-scrollbar>\n <ng-container [ngTemplateOutlet]=\"contentNoScroll\"></ng-container>\n </ng-scrollbar>\n</ng-template>\n\n<!-- #region admin tabs -->\n<ng-template #adminTabs>\n <div class=\"taon-header-admin-wrapper\">\n <columns-container\n class=\"taon-header-admin\"\n [ngClass]=\"{ 'draggable-column': admin.draggablePopupMode }\">\n <column width=\"200\" class=\"logo-header\">\n <img\n *ngIf=\"openedOnce\"\n src=\"assets/assets-for/taon/shared/logo-header-admin-mode.png\" />\n </column>\n\n <column grow>\n <!-- <span>Super Admin Mode</span> -->\n </column>\n\n <column\n width=\"40\"\n *ngIf=\"\n !admin.draggablePopupModeFullScreen && !admin.draggablePopupMode\n \">\n <button\n mat-icon-button\n *ngIf=\"admin.draggablePopupMode\"\n (click)=\"\n admin.draggablePopupMode = false;\n opened = false;\n wasOpenDraggablePopup = true\n \"\n class=\"admin-close-button\">\n <mat-icon>close </mat-icon>\n </button>\n\n <button\n mat-icon-button\n *ngIf=\"!admin.draggablePopupMode\"\n (click)=\"toogle()\"\n class=\"admin-close-button\">\n <mat-icon>close</mat-icon>\n </button>\n </column>\n\n <column width=\"40\">\n <button\n mat-icon-button\n *ngIf=\"!admin.draggablePopupModeFullScreen\"\n class=\"admin-close-button\"\n (click)=\"toogleFullScreen()\">\n <mat-icon>fullscreen</mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"admin.draggablePopupModeFullScreen\"\n class=\"admin-close-button\"\n (click)=\"toogleFullScreen()\">\n <mat-icon>close_fullscreen</mat-icon>\n </button>\n </column>\n\n <column width=\"40\" *ngIf=\"!admin.draggablePopupModeFullScreen\">\n <button\n mat-icon-button\n *ngIf=\"!admin.draggablePopupMode\"\n (click)=\"admin.draggablePopupMode = true\"\n class=\"admin-close-button\">\n <mat-icon>launch</mat-icon>\n </button>\n\n <button\n mat-icon-button\n *ngIf=\"admin.draggablePopupMode\"\n (click)=\"admin.draggablePopupMode = false; resetDrag()\"\n class=\"admin-close-button\">\n <mat-icon style=\"transform: rotate(180deg)\">login</mat-icon>\n </button>\n </column>\n </columns-container>\n </div>\n\n <columns-container\n [ngClass]=\"{ 'draggable-column': admin.draggablePopupMode }\">\n <column grow>\n <mat-tab-group\n dynamicHeight\n (wheel)=\"scrollTabs($event)\"\n #tabGroup\n [selectedIndex]=\"selectedIndex\"\n (selectedIndexChange)=\"selectedIndex = $event\">\n <mat-tab label=\"DB/Cache\">\n <section>\n <mat-card>\n <mat-card-header>\n <mat-card-subtitle>WEBSQL MODE</mat-card-subtitle>\n </mat-card-header>\n <mat-card-content>\n <mat-checkbox\n [disabled]=\"!isWebSQLMode\"\n [ngModel]=\"admin.keepWebsqlDbDataAfterReload\"\n (change)=\"\n admin.setKeepWebsqlDbDataAfterReload($event.checked)\n \">\n Don't remove data when reloading\n </mat-checkbox>\n </mat-card-content>\n </mat-card>\n </section>\n <br />\n <taon-db-admin />\n </mat-tab>\n\n <mat-tab label=\"Files\" *ngIf=\"admin.enabledTabs.includes('files')\">\n <section>\n <mat-checkbox\n [ngModel]=\"admin.filesEditMode\"\n (change)=\"admin.setEditMode($event.checked)\"\n >Edit mode</mat-checkbox\n >\n </section>\n <!-- admin.filesEditMode: {{ admin.filesEditMode }} -->\n <taon-admin-edit-mode *ngIf=\"admin.filesEditMode\">\n </taon-admin-edit-mode>\n <br />\n <hr *ngIf=\"admin.filesEditMode\" />\n <!-- <section>\n <button mat-raised-button>[TODO] Clear Files from browser cache </button> <br>\n <button mat-raised-button>[TODO] Start files export (as zip) </button> <br>\n <button mat-raised-button>[TODO] Import whole database (from zip) </button><br>\n </section> -->\n </mat-tab>\n <mat-tab *ngFor=\"let tab of tabs\" label=\"{{ tab.name }}\">\n <div\n class=\"full-tabs\"\n [style.height.px]=\"height - 150\"\n *ngIf=\"!isIframe\">\n <ng-container *ngTemplateOutlet=\"tab.template\"></ng-container>\n </div>\n <ng-container *ngIf=\"isIframe\">\n <ng-container *ngTemplateOutlet=\"tab.template\"></ng-container>\n </ng-container>\n </mat-tab>\n\n <!-- <mat-tab label=\"Portal\">\n <section>\n <mat-checkbox>[TODO] Maintenance Mode for whole portal</mat-checkbox>\n\n <mat-expansion-panel>\n\n <mat-expansion-panel-header>\n [TODO] Active User: 80432\n </mat-expansion-panel-header>\n <section>\n <button mat-raised-button>[TODO] Send notification to users </button><br>\n <button mat-raised-button>[TODO] Send email to users </button><br>\n </section>\n </mat-expansion-panel>\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n [TODO] Enable features\n </mat-expansion-panel-header>\n <mat-checkbox>[TODO] AB testing</mat-checkbox> <br>\n <mat-checkbox>\n [TODO] Newsletter email question popup\n </mat-checkbox> <br>\n <mat-checkbox>\n [TODO] Promotion popup\n </mat-checkbox> <br>\n </mat-expansion-panel>\n </section>\n </mat-tab>\n <mat-tab label=\"User\">\n Welcome in user managements\n </mat-tab>\n <mat-tab label=\"Translations\">\n Welcome in user managements\n </mat-tab> -->\n </mat-tab-group>\n </column>\n </columns-container>\n</ng-template>\n<!-- #endregion -->\n\n<!-- #region small/mobile draggable popup windows -->\n<div\n class=\"draggable-popup-mode-window\"\n *ngIf=\"\n admin.draggablePopupMode && !admin.draggablePopupModeFullScreen && !isIframe\n \"\n cdkDrag\n [cdkDragFreeDragPosition]=\"dragPosition\"\n (cdkDragEnded)=\"moved($event)\">\n <ng-scrollbar>\n <ng-container [ngTemplateOutlet]=\"adminTabs\"></ng-container>\n </ng-scrollbar>\n</div>\n<!-- #endregion -->\n\n<!-- #region fullscreen draggable popup window -->\n<div\n class=\"draggable-popup-mode-window-full\"\n *ngIf=\"\n admin.draggablePopupMode &&\n admin.draggablePopupModeFullScreen &&\n !isIframe &&\n !reloading\n \"\n cdkDrag\n [cdkDragFreeDragPosition]=\"dragPositionZero\">\n <ng-container [ngTemplateOutlet]=\"adminTabs\"></ng-container>\n</div>\n<!-- #endregion -->\n\n<!-- #region content when not in draggable (or fullscreen draggable) popup -->\n<div\n [style.height.px]=\"height\"\n *ngIf=\"\n (isIframe ||\n !isDesktop ||\n admin.draggablePopupMode ||\n admin.draggablePopupModeFullScreen) &&\n !reloading\n \"\n style=\"width: 100%; display: block\"\n class=\"content\">\n <ng-container\n [ngTemplateOutlet]=\"\n admin.scrollableEnabled ? content : contentNoScroll\n \"></ng-container>\n</div>\n<!-- #endregion -->\n\n<!-- #region draggable popup window -->\n<mat-drawer-container\n *ngIf=\"!admin.draggablePopupMode && isDesktop && !isIframe\"\n class=\"example-container\"\n [style.height.px]=\"height\"\n style=\"background-color: transparent\"\n (backdropClick)=\"opened = false\"\n [hasBackdrop]=\"false\">\n <mat-drawer #drawer style=\"width: 580px\" [opened]=\"opened\" [mode]=\"'side'\">\n <ng-container [ngTemplateOutlet]=\"adminTabs\"></ng-container>\n </mat-drawer>\n <mat-drawer-content style=\"overflow: hidden\">\n <ng-container\n *ngIf=\"!admin.draggablePopupMode && !reloading\"\n [ngTemplateOutlet]=\"\n admin.scrollableEnabled ? content : contentNoScroll\n \"></ng-container>\n </mat-drawer-content>\n</mat-drawer-container>\n<!-- #endregion -->\n", styles: ["section{display:block;padding:10px}section>*{margin-top:0!important;margin-bottom:10px!important}section>*:last-child{margin-bottom:0!important}:host{display:block}.draggable-column{display:block!important;width:100%!important}.admin-show-button{position:fixed;bottom:100px;left:-15px;z-index:2147483647;transform:rotate(90deg);border:0px;color:#fff;background:gray;opacity:.1;cursor:pointer}.admin-show-button:hover{opacity:1}.taon-ui-super-admin-mode{font-family:JosefinSans-Bold;text-align:right;margin-right:10px}mat-drawer{margin:0;background-color:#dcdcdc!important}.taon-header-admin-wrapper{overflow:hidden;width:100%;display:block}.taon-header-admin{background:#fff;box-shadow:0 -9px 6px 6px #000;height:47px}.taon-header-admin .logo-header img{height:18px;padding:8px;position:relative;float:left;top:7px;box-sizing:content-box;transform:scale(1.5);left:49px}.draggable-popup-mode-window{width:600px;height:500px;border:solid 1px #ccc;color:#000000de;cursor:move;justify-content:center;align-items:center;background:#fff;border-radius:4px;position:fixed;z-index:105;background-color:#dcdcdc!important;transition:box-shadow .2s cubic-bezier(0,0,.2,1);box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.draggable-popup-mode-window:active{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.draggable-popup-mode-window-full{width:100%;height:100%;overflow:scroll;color:#000000de;justify-content:center;align-items:center;background:#fff;border-radius:4px;position:fixed;z-index:105;background-color:#dcdcdc!important}.admin-close-button{float:right}.fab-button{position:fixed;right:110px;bottom:100px;z-index:10;background-color:#dcdcdc;color:#8f8f8f}.full-tabs{padding:10px}.mat-drawer-container-full-screen{background-color:red}\n"] }); }
126
+ }
127
+ __decorate([
128
+ Stor.property.in.localstorage
129
+ .for(TaonAdminModeConfigurationComponent)
130
+ .withDefaultValue(0),
131
+ __metadata("design:type", Number)
132
+ ], TaonAdminModeConfigurationComponent.prototype, "dragPositionX", void 0);
133
+ __decorate([
134
+ Stor.property.in.localstorage
135
+ .for(TaonAdminModeConfigurationComponent)
136
+ .withDefaultValue(0),
137
+ __metadata("design:type", Number)
138
+ ], TaonAdminModeConfigurationComponent.prototype, "dragPositionY", void 0);
139
+ __decorate([
140
+ Stor.property.in.localstorage
141
+ .for(TaonAdminModeConfigurationComponent)
142
+ .withDefaultValue(0),
143
+ __metadata("design:type", Number)
144
+ ], TaonAdminModeConfigurationComponent.prototype, "selectedIndex", void 0);
145
+ __decorate([
146
+ Stor.property.in.localstorage
147
+ .for(TaonAdminModeConfigurationComponent)
148
+ .withDefaultValue(false),
149
+ __metadata("design:type", Boolean)
150
+ ], TaonAdminModeConfigurationComponent.prototype, "wasOpenDraggablePopup", void 0);
151
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminModeConfigurationComponent, decorators: [{
152
+ type: Component,
153
+ args: [{ selector: 'app-taon-admin-mode-configuration', template: "<!-- #region basic global components -->\n<taon-session-passcode\n *ngIf=\"showPasscode\"\n [passcode]=\"passcode\"\n [message]=\"message\" />\n<!-- <taon-progress-bar [isDesktop]=\"isDesktop\"></taon-progress-bar> -->\n<!-- <taon-notifications></taon-notifications> -->\n<button\n mat-fab\n class=\"fab-button\"\n color=\"accent\"\n aria-label=\"Taon Admin Mode\"\n *ngIf=\"\n !admin.draggablePopupMode &&\n isDesktop &&\n !isIframe &&\n !hideTaonToolsInProduction\n \"\n (click)=\"toogle()\">\n <mat-icon>build</mat-icon>\n</button>\n<!-- #endregion -->\n\n<!-- #region small hidden button -->\n<!-- <button class=\"admin-show-button\"\n *ngIf=\"!admin.draggablePopupMode && isDesktop\"\n (click)=\"toogle()\"> Admin </button> -->\n<!-- #endregion -->\n\n<ng-template #contentNoScroll>\n <ng-content> </ng-content>\n</ng-template>\n\n<ng-template #content>\n <ng-scrollbar>\n <ng-container [ngTemplateOutlet]=\"contentNoScroll\"></ng-container>\n </ng-scrollbar>\n</ng-template>\n\n<!-- #region admin tabs -->\n<ng-template #adminTabs>\n <div class=\"taon-header-admin-wrapper\">\n <columns-container\n class=\"taon-header-admin\"\n [ngClass]=\"{ 'draggable-column': admin.draggablePopupMode }\">\n <column width=\"200\" class=\"logo-header\">\n <img\n *ngIf=\"openedOnce\"\n src=\"assets/assets-for/taon/shared/logo-header-admin-mode.png\" />\n </column>\n\n <column grow>\n <!-- <span>Super Admin Mode</span> -->\n </column>\n\n <column\n width=\"40\"\n *ngIf=\"\n !admin.draggablePopupModeFullScreen && !admin.draggablePopupMode\n \">\n <button\n mat-icon-button\n *ngIf=\"admin.draggablePopupMode\"\n (click)=\"\n admin.draggablePopupMode = false;\n opened = false;\n wasOpenDraggablePopup = true\n \"\n class=\"admin-close-button\">\n <mat-icon>close </mat-icon>\n </button>\n\n <button\n mat-icon-button\n *ngIf=\"!admin.draggablePopupMode\"\n (click)=\"toogle()\"\n class=\"admin-close-button\">\n <mat-icon>close</mat-icon>\n </button>\n </column>\n\n <column width=\"40\">\n <button\n mat-icon-button\n *ngIf=\"!admin.draggablePopupModeFullScreen\"\n class=\"admin-close-button\"\n (click)=\"toogleFullScreen()\">\n <mat-icon>fullscreen</mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"admin.draggablePopupModeFullScreen\"\n class=\"admin-close-button\"\n (click)=\"toogleFullScreen()\">\n <mat-icon>close_fullscreen</mat-icon>\n </button>\n </column>\n\n <column width=\"40\" *ngIf=\"!admin.draggablePopupModeFullScreen\">\n <button\n mat-icon-button\n *ngIf=\"!admin.draggablePopupMode\"\n (click)=\"admin.draggablePopupMode = true\"\n class=\"admin-close-button\">\n <mat-icon>launch</mat-icon>\n </button>\n\n <button\n mat-icon-button\n *ngIf=\"admin.draggablePopupMode\"\n (click)=\"admin.draggablePopupMode = false; resetDrag()\"\n class=\"admin-close-button\">\n <mat-icon style=\"transform: rotate(180deg)\">login</mat-icon>\n </button>\n </column>\n </columns-container>\n </div>\n\n <columns-container\n [ngClass]=\"{ 'draggable-column': admin.draggablePopupMode }\">\n <column grow>\n <mat-tab-group\n dynamicHeight\n (wheel)=\"scrollTabs($event)\"\n #tabGroup\n [selectedIndex]=\"selectedIndex\"\n (selectedIndexChange)=\"selectedIndex = $event\">\n <mat-tab label=\"DB/Cache\">\n <section>\n <mat-card>\n <mat-card-header>\n <mat-card-subtitle>WEBSQL MODE</mat-card-subtitle>\n </mat-card-header>\n <mat-card-content>\n <mat-checkbox\n [disabled]=\"!isWebSQLMode\"\n [ngModel]=\"admin.keepWebsqlDbDataAfterReload\"\n (change)=\"\n admin.setKeepWebsqlDbDataAfterReload($event.checked)\n \">\n Don't remove data when reloading\n </mat-checkbox>\n </mat-card-content>\n </mat-card>\n </section>\n <br />\n <taon-db-admin />\n </mat-tab>\n\n <mat-tab label=\"Files\" *ngIf=\"admin.enabledTabs.includes('files')\">\n <section>\n <mat-checkbox\n [ngModel]=\"admin.filesEditMode\"\n (change)=\"admin.setEditMode($event.checked)\"\n >Edit mode</mat-checkbox\n >\n </section>\n <!-- admin.filesEditMode: {{ admin.filesEditMode }} -->\n <taon-admin-edit-mode *ngIf=\"admin.filesEditMode\">\n </taon-admin-edit-mode>\n <br />\n <hr *ngIf=\"admin.filesEditMode\" />\n <!-- <section>\n <button mat-raised-button>[TODO] Clear Files from browser cache </button> <br>\n <button mat-raised-button>[TODO] Start files export (as zip) </button> <br>\n <button mat-raised-button>[TODO] Import whole database (from zip) </button><br>\n </section> -->\n </mat-tab>\n <mat-tab *ngFor=\"let tab of tabs\" label=\"{{ tab.name }}\">\n <div\n class=\"full-tabs\"\n [style.height.px]=\"height - 150\"\n *ngIf=\"!isIframe\">\n <ng-container *ngTemplateOutlet=\"tab.template\"></ng-container>\n </div>\n <ng-container *ngIf=\"isIframe\">\n <ng-container *ngTemplateOutlet=\"tab.template\"></ng-container>\n </ng-container>\n </mat-tab>\n\n <!-- <mat-tab label=\"Portal\">\n <section>\n <mat-checkbox>[TODO] Maintenance Mode for whole portal</mat-checkbox>\n\n <mat-expansion-panel>\n\n <mat-expansion-panel-header>\n [TODO] Active User: 80432\n </mat-expansion-panel-header>\n <section>\n <button mat-raised-button>[TODO] Send notification to users </button><br>\n <button mat-raised-button>[TODO] Send email to users </button><br>\n </section>\n </mat-expansion-panel>\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n [TODO] Enable features\n </mat-expansion-panel-header>\n <mat-checkbox>[TODO] AB testing</mat-checkbox> <br>\n <mat-checkbox>\n [TODO] Newsletter email question popup\n </mat-checkbox> <br>\n <mat-checkbox>\n [TODO] Promotion popup\n </mat-checkbox> <br>\n </mat-expansion-panel>\n </section>\n </mat-tab>\n <mat-tab label=\"User\">\n Welcome in user managements\n </mat-tab>\n <mat-tab label=\"Translations\">\n Welcome in user managements\n </mat-tab> -->\n </mat-tab-group>\n </column>\n </columns-container>\n</ng-template>\n<!-- #endregion -->\n\n<!-- #region small/mobile draggable popup windows -->\n<div\n class=\"draggable-popup-mode-window\"\n *ngIf=\"\n admin.draggablePopupMode && !admin.draggablePopupModeFullScreen && !isIframe\n \"\n cdkDrag\n [cdkDragFreeDragPosition]=\"dragPosition\"\n (cdkDragEnded)=\"moved($event)\">\n <ng-scrollbar>\n <ng-container [ngTemplateOutlet]=\"adminTabs\"></ng-container>\n </ng-scrollbar>\n</div>\n<!-- #endregion -->\n\n<!-- #region fullscreen draggable popup window -->\n<div\n class=\"draggable-popup-mode-window-full\"\n *ngIf=\"\n admin.draggablePopupMode &&\n admin.draggablePopupModeFullScreen &&\n !isIframe &&\n !reloading\n \"\n cdkDrag\n [cdkDragFreeDragPosition]=\"dragPositionZero\">\n <ng-container [ngTemplateOutlet]=\"adminTabs\"></ng-container>\n</div>\n<!-- #endregion -->\n\n<!-- #region content when not in draggable (or fullscreen draggable) popup -->\n<div\n [style.height.px]=\"height\"\n *ngIf=\"\n (isIframe ||\n !isDesktop ||\n admin.draggablePopupMode ||\n admin.draggablePopupModeFullScreen) &&\n !reloading\n \"\n style=\"width: 100%; display: block\"\n class=\"content\">\n <ng-container\n [ngTemplateOutlet]=\"\n admin.scrollableEnabled ? content : contentNoScroll\n \"></ng-container>\n</div>\n<!-- #endregion -->\n\n<!-- #region draggable popup window -->\n<mat-drawer-container\n *ngIf=\"!admin.draggablePopupMode && isDesktop && !isIframe\"\n class=\"example-container\"\n [style.height.px]=\"height\"\n style=\"background-color: transparent\"\n (backdropClick)=\"opened = false\"\n [hasBackdrop]=\"false\">\n <mat-drawer #drawer style=\"width: 580px\" [opened]=\"opened\" [mode]=\"'side'\">\n <ng-container [ngTemplateOutlet]=\"adminTabs\"></ng-container>\n </mat-drawer>\n <mat-drawer-content style=\"overflow: hidden\">\n <ng-container\n *ngIf=\"!admin.draggablePopupMode && !reloading\"\n [ngTemplateOutlet]=\"\n admin.scrollableEnabled ? content : contentNoScroll\n \"></ng-container>\n </mat-drawer-content>\n</mat-drawer-container>\n<!-- #endregion -->\n", styles: ["section{display:block;padding:10px}section>*{margin-top:0!important;margin-bottom:10px!important}section>*:last-child{margin-bottom:0!important}:host{display:block}.draggable-column{display:block!important;width:100%!important}.admin-show-button{position:fixed;bottom:100px;left:-15px;z-index:2147483647;transform:rotate(90deg);border:0px;color:#fff;background:gray;opacity:.1;cursor:pointer}.admin-show-button:hover{opacity:1}.taon-ui-super-admin-mode{font-family:JosefinSans-Bold;text-align:right;margin-right:10px}mat-drawer{margin:0;background-color:#dcdcdc!important}.taon-header-admin-wrapper{overflow:hidden;width:100%;display:block}.taon-header-admin{background:#fff;box-shadow:0 -9px 6px 6px #000;height:47px}.taon-header-admin .logo-header img{height:18px;padding:8px;position:relative;float:left;top:7px;box-sizing:content-box;transform:scale(1.5);left:49px}.draggable-popup-mode-window{width:600px;height:500px;border:solid 1px #ccc;color:#000000de;cursor:move;justify-content:center;align-items:center;background:#fff;border-radius:4px;position:fixed;z-index:105;background-color:#dcdcdc!important;transition:box-shadow .2s cubic-bezier(0,0,.2,1);box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.draggable-popup-mode-window:active{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.draggable-popup-mode-window-full{width:100%;height:100%;overflow:scroll;color:#000000de;justify-content:center;align-items:center;background:#fff;border-radius:4px;position:fixed;z-index:105;background-color:#dcdcdc!important}.admin-close-button{float:right}.fab-button{position:fixed;right:110px;bottom:100px;z-index:10;background-color:#dcdcdc;color:#8f8f8f}.full-tabs{padding:10px}.mat-drawer-container-full-screen{background-color:red}\n"] }]
154
+ }], ctorParameters: () => [{ type: i1.BreakpointsService }], propDecorators: { tabGroup: [{
155
+ type: ViewChild,
156
+ args: ['tabGroup']
157
+ }], taonAdminModeConfigurationDataChanged: [{
158
+ type: Output
159
+ }], taonAdminModeConfigurationData: [{
160
+ type: Input
161
+ }], onResize: [{
162
+ type: HostListener,
163
+ args: ['window:resize', ['$event']]
164
+ }] } });
165
+ ;
166
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.ts
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL3VpL3Rhb24tYWRtaW4tbW9kZS1jb25maWd1cmF0aW9uL3Rhb24tYWRtaW4tbW9kZS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90YW9uL3Byb2plY3RzL3Rhb24vc3JjL2xpYi91aS90YW9uLWFkbWluLW1vZGUtY29uZmlndXJhdGlvbi90YW9uLWFkbWluLW1vZGUtY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBS0EsT0FBTyxFQUFJLGlCQUFpQixFQUFJLFNBQVMsRUFBSSxZQUFZLEVBQUksWUFBWSxFQUFnQixLQUFLLEVBQWMsTUFBTSxFQUFJLFNBQVMsRUFBSSxNQUFNLEdBQUcsTUFBTSxlQUFlLENBQUMsQ0FBQSxLQUFLO0FBQ3ZLLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFFTCxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzQyxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUVMLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFPLE1BQU0sTUFBTSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7QUFZaEUsTUFBTSxPQUFPLG1DQUFtQztJQXlEOUMsSUFBVyxNQUFNO1FBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztJQUN2RCxDQUFDO0lBQ0QsSUFBVyxNQUFNLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN6QixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO1lBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQ3ZDLENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBSUQsWUFBb0Isa0JBQXNDO1FBQXRDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUF2RTFELGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ1QsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXJELFNBQUksR0FBdUIsRUFBRSxDQUFDO1FBQzlCLFVBQUssR0FBYyxNQUFNLENBQUMsTUFBTSxDQUFjLENBQUM7UUFDL0MsaUJBQVksR0FBWSxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ3pDLDhCQUF5QixHQUM5QixHQUFHLENBQUMseUJBQXlCLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQztRQUM1QyxhQUFRLEdBQVksTUFBTSxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUMvRCxXQUFNLEdBQVcsR0FBRyxDQUFDO1FBQ3JCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixpQkFBWSxHQUNqQixDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxhQUFRLEdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1lBQ2hELENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUTtZQUNkLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7Z0JBQ3hCLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUk7Z0JBQ25CLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDRixZQUFPLEdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1lBQy9DLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU87WUFDdEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBY1gscUJBQWdCLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQVcsQ0FBQztRQWlCakMsMENBQXFDLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM1RCxtQ0FBOEIsR0FBUSxFQUFFLENBQUM7UUFrQmhELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsa0JBQWtCO2FBQ3BCLFFBQVEsRUFBRTthQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUN0QixhQUFhO1lBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLEtBQUssU0FBUyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBR0QsVUFBVTtRQUNSLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsS0FBSyxDQUFDLFFBQVE7UUFDWixNQUFNLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBSW5DLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQU1oQyxDQUFDO0lBRUQsZUFBZTtRQUNiLDZHQUE2RztRQUM3Ryw4Q0FBOEM7UUFDOUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUdqQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLENBQUM7UUFNSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFHRCxRQUFRLENBQUMsS0FBWTtRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7SUFDbkMsQ0FBQztJQUtELEtBQUssQ0FBQyxNQUFNO1FBRVYsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDN0IsQ0FBQztJQUVELEtBQUssQ0FBQyxnQkFBZ0I7UUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyw0QkFBNEI7WUFDckMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDO1FBQzNDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxLQUFLLENBQUMsQ0FBYTtRQUNqQixJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFLO1FBQ2QsT0FBTztJQVdULENBQUM7OEdBL0tVLG1DQUFtQztrR0FBbkMsbUNBQW1DLHdaQzFDaEQsdXVTQWlTQTs7QUR6TkU7SUFIQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxZQUFZO1NBQzNCLEdBQUcsQ0FBQyxtQ0FBbUMsQ0FBQztTQUN4QyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7OzBFQUNBO0FBTXRCO0lBSEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsWUFBWTtTQUMzQixHQUFHLENBQUMsbUNBQW1DLENBQUM7U0FDeEMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDOzswRUFDQTtBQVN0QjtJQUhDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFlBQVk7U0FDM0IsR0FBRyxDQUFDLG1DQUFtQyxDQUFDO1NBQ3hDLGdCQUFnQixDQUFDLENBQUMsQ0FBQzs7MEVBQ0E7QUFRdEI7SUFIQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxZQUFZO1NBQzNCLEdBQUcsQ0FBQyxtQ0FBbUMsQ0FBQztTQUN4QyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7O2tGQUNLOzJGQXJEcEIsbUNBQW1DO2tCQVAvQyxTQUFTOytCQUVFLG1DQUFtQzt1RkFvRHRCLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFRWCxxQ0FBcUM7c0JBQTlDLE1BQU07Z0JBQ0UsOEJBQThCO3NCQUF0QyxLQUFLO2dCQTZFTixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDOztBQWtEMUMsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxpSEFBaUgiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5cblxuaW1wb3J0IHsgICBDaGFuZ2VEZXRlY3RvclJlZiwgICBDb21wb25lbnQsICAgRXZlbnRFbWl0dGVyLCAgIEhvc3RMaXN0ZW5lciwgICBJbmplY3RvciwgICBJbnB1dCwgICBPbkluaXQsICAgT3V0cHV0LCAgIFZpZXdDaGlsZCwgICBpbmplY3QsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7LyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG5cbmltcG9ydCB7IEhlbHBlcnMsIF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgVGFvbkFkbWluIH0gZnJvbSAnLi90YW9uLWFkbWluLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RvciB9IGZyb20gJ3Rhb24tc3RvcmFnZS93ZWJzcWwnO1xuaW1wb3J0IHsgICBDZGtEcmFnLCAgIENka0RyYWdFbmQsICAgQ2RrRHJhZ01vdmUsICAgQ2RrRHJhZ1JlbGVhc2UsICAgUG9pbnQsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7LyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuXG5pbXBvcnQgeyBCcmVha3BvaW50c1NlcnZpY2UgfSBmcm9tICdzdGF0aWMtY29sdW1ucy93ZWJzcWwnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRhb25BZG1pbk1vZGVUYWIgfSBmcm9tICcuL21vZGVscy90YW9uLWFkbWluLW1vZGUtdGFicyc7XG5pbXBvcnQgeyBUYW9uQWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi90YW9uLWFkbWluLWNvbnRyb2wuc2VydmljZSc7XG5cbmRlY2xhcmUgY29uc3QgRU5WOiBhbnk7XG5cblxuQENvbXBvbmVudCh7XG5cbiAgc2VsZWN0b3I6ICdhcHAtdGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YW9uLWFkbWluLW1vZGUtY29uZmlndXJhdGlvbi5jb21wb25lbnQuc2NzcyddLFxuXG59KVxuZXhwb3J0IGNsYXNzIFRhb25BZG1pbk1vZGVDb25maWd1cmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAkZGVzdHJveSA9IG5ldyBTdWJqZWN0KCk7XG4gIHB1YmxpYyByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwdWJsaWMgcmVhZG9ubHkgdGFvbkFkbWluU2VydmljZSA9IGluamVjdChUYW9uQWRtaW5TZXJ2aWNlKTtcbiAgcHVibGljIHJlYWRvbmx5IGlzRGVza3RvcDogYm9vbGVhbjtcbiAgcHVibGljIHRhYnM6IFRhb25BZG1pbk1vZGVUYWJbXSA9IFtdO1xuICBwdWJsaWMgYWRtaW46IFRhb25BZG1pbiA9IHdpbmRvd1sndGFvbiddIGFzIFRhb25BZG1pbjtcbiAgcHVibGljIGlzV2ViU1FMTW9kZTogYm9vbGVhbiA9IEhlbHBlcnMuaXNXZWJTUUw7XG4gIHB1YmxpYyBoaWRlVGFvblRvb2xzSW5Qcm9kdWN0aW9uOiBib29sZWFuID1cbiAgICBFTlYuaGlkZVRhb25Ub29sc0luUHJvZHVjdGlvbiAmJiBFTlYuYW5ndWxhclByb2Q7XG4gIHB1YmxpYyBpc0lmcmFtZTogYm9vbGVhbiA9IHdpbmRvdy5sb2NhdGlvbiAhPT0gd2luZG93LnBhcmVudC5sb2NhdGlvbjtcbiAgcHVibGljIGhlaWdodDogbnVtYmVyID0gMTAwO1xuICBwdWJsaWMgb3BlbmVkT25jZSA9IGZhbHNlO1xuICBwdWJsaWMgcmVsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93UGFzc2NvZGU6IGJvb2xlYW4gPVxuICAgIF8uaXNTdHJpbmcoRU5WLnBhc3Njb2RlKSB8fCBfLmlzT2JqZWN0KEVOVi5wYXNzY29kZSk7XG4gIHB1YmxpYyBwYXNzY29kZTogc3RyaW5nID0gXy5pc1N0cmluZyhFTlYucGFzc2NvZGUpXG4gICAgPyBFTlYucGFzc2NvZGVcbiAgICA6IF8uaXNPYmplY3QoRU5WLnBhc3Njb2RlKVxuICAgICAgPyBFTlYucGFzc2NvZGUuY29kZVxuICAgICAgOiAnJztcbiAgcHVibGljIG1lc3NhZ2U6IHN0cmluZyA9IF8uaXNPYmplY3QoRU5WLnBhc3Njb2RlKVxuICAgID8gRU5WLnBhc3Njb2RlLm1lc3NhZ2VcbiAgICA6IHZvaWQgMDtcblxuICAvLyBAdHMtaWdub3JlXG4gIEBTdG9yLnByb3BlcnR5LmluLmxvY2Fsc3RvcmFnZVxuICAgIC5mb3IoVGFvbkFkbWluTW9kZUNvbmZpZ3VyYXRpb25Db21wb25lbnQpXG4gICAgLndpdGhEZWZhdWx0VmFsdWUoMClcbiAgZHJhZ1Bvc2l0aW9uWDogbnVtYmVyO1xuXG4gIC8vIEB0cy1pZ25vcmVcbiAgQFN0b3IucHJvcGVydHkuaW4ubG9jYWxzdG9yYWdlXG4gICAgLmZvcihUYW9uQWRtaW5Nb2RlQ29uZmlndXJhdGlvbkNvbXBvbmVudClcbiAgICAud2l0aERlZmF1bHRWYWx1ZSgwKVxuICBkcmFnUG9zaXRpb25ZOiBudW1iZXI7XG5cbiAgZHJhZ1Bvc2l0aW9uWmVybyA9IHsgeDogMCwgeTogMCB9IGFzIFBvaW50O1xuICBkcmFnUG9zaXRpb246IFBvaW50O1xuXG4gIC8vIEB0cy1pZ25vcmVcbiAgQFN0b3IucHJvcGVydHkuaW4ubG9jYWxzdG9yYWdlXG4gICAgLmZvcihUYW9uQWRtaW5Nb2RlQ29uZmlndXJhdGlvbkNvbXBvbmVudClcbiAgICAud2l0aERlZmF1bHRWYWx1ZSgwKVxuICBzZWxlY3RlZEluZGV4OiBudW1iZXI7XG5cbiAgQFZpZXdDaGlsZCgndGFiR3JvdXAnKSB0YWJHcm91cDtcblxuICAvLyBAdHMtaWdub3JlXG4gIEBTdG9yLnByb3BlcnR5LmluLmxvY2Fsc3RvcmFnZVxuICAgIC5mb3IoVGFvbkFkbWluTW9kZUNvbmZpZ3VyYXRpb25Db21wb25lbnQpXG4gICAgLndpdGhEZWZhdWx0VmFsdWUoZmFsc2UpXG4gIHdhc09wZW5EcmFnZ2FibGVQb3B1cDogYm9vbGVhbjtcblxuICBAT3V0cHV0KCkgdGFvbkFkbWluTW9kZUNvbmZpZ3VyYXRpb25EYXRhQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQElucHV0KCkgdGFvbkFkbWluTW9kZUNvbmZpZ3VyYXRpb25EYXRhOiBhbnkgPSB7fTtcbiAgcHVibGljIGdldCBvcGVuZWQoKSB7XG4gICAgcmV0dXJuICF0aGlzLmlzSWZyYW1lICYmIHRoaXMuYWRtaW4uYWRtaW5QYW5lbElzT3BlbjtcbiAgfVxuICBwdWJsaWMgc2V0IG9wZW5lZCh2KSB7XG4gICAgaWYgKHYgJiYgIXRoaXMub3BlbmVkT25jZSkge1xuICAgICAgdGhpcy5vcGVuZWRPbmNlID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMud2FzT3BlbkRyYWdnYWJsZVBvcHVwKSB7XG4gICAgICB0aGlzLndhc09wZW5EcmFnZ2FibGVQb3B1cCA9IGZhbHNlO1xuICAgICAgdGhpcy5hZG1pbi5kcmFnZ2FibGVQb3B1cE1vZGUgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLmFkbWluLmFkbWluUGFuZWxJc09wZW4gPSB2O1xuICB9XG5cblxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYnJlYWtwb2ludHNTZXJ2aWNlOiBCcmVha3BvaW50c1NlcnZpY2UpIHtcbiAgICB0aGlzLmFkbWluLmNtcCA9IHRoaXM7XG4gICAgdGhpcy5icmVha3BvaW50c1NlcnZpY2VcbiAgICAgIC5saXN0ZW5UbygpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4kZGVzdHJveSkpXG4gICAgICAuc3Vic2NyaWJlKGJyZWFrcG9pbnQgPT4ge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHRoaXMuaXNEZXNrdG9wID0gYnJlYWtwb2ludCA9PT0gJ2Rlc2t0b3AnO1xuICAgICAgfSk7XG4gICAgdGhpcy50YW9uQWRtaW5TZXJ2aWNlLmluaXQodGhpcyk7XG4gIH1cblxuXG4gIHJlbG9hZFRhYnMoKSB7XG4gICAgdGhpcy5yZWxvYWRpbmcgPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5yZWxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIGNvbnNvbGUubG9nKCdyZWxvYWRpbmcgZG9uZScpO1xuICAgIH0pO1xuICB9XG5cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICBhd2FpdCBTdG9yLmF3YWl0UGVuZGluZ09wZXJhdGlvcygpO1xuXG5cblxuICAgIHRoaXMuZHJhZ1Bvc2l0aW9uID0geyB4OiB0aGlzLmRyYWdQb3NpdGlvblgsIHk6IHRoaXMuZHJhZ1Bvc2l0aW9uWSB9O1xuICAgIHRoaXMub3BlbmVkT25jZSA9IHRoaXMub3BlbmVkO1xuXG5cblxuXG5cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvL0NhbGxlZCBhZnRlciBuZ0FmdGVyQ29udGVudEluaXQgd2hlbiB0aGUgY29tcG9uZW50J3MgdmlldyBoYXMgYmVlbiBpbml0aWFsaXplZC4gQXBwbGllcyB0byBjb21wb25lbnRzIG9ubHkuXG4gICAgLy9BZGQgJ2ltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCcgdG8gdGhlIGNsYXNzLlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG5cblxuICAgICAgaWYgKHRoaXMuYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlKSB7XG4gICAgICAgIHRoaXMucmVsb2FkVGFicygpO1xuICAgICAgfVxuXG5cblxuXG5cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuJGRlc3Ryb3kubmV4dCh2b2lkIDApO1xuICAgIHRoaXMuJGRlc3Ryb3kuY29tcGxldGUoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICBvblJlc2l6ZShldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgfVxuXG5cblxuXG4gIGFzeW5jIHRvb2dsZSgpIHtcblxuICAgIHRoaXMub3BlbmVkID0gIXRoaXMub3BlbmVkO1xuICB9XG5cbiAgYXN5bmMgdG9vZ2xlRnVsbFNjcmVlbigpIHtcbiAgICB0aGlzLmFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZSA9IHRydWU7XG4gICAgdGhpcy5hZG1pbi5kcmFnZ2FibGVQb3B1cE1vZGVGdWxsU2NyZWVuID1cbiAgICAgICF0aGlzLmFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZUZ1bGxTY3JlZW47XG4gICAgdGhpcy5yZXNldERyYWcoKTtcbiAgfVxuXG4gIHJlc2V0RHJhZygpIHtcbiAgICB0aGlzLmRyYWdQb3NpdGlvblggPSAwO1xuICAgIHRoaXMuZHJhZ1Bvc2l0aW9uWSA9IDA7XG4gICAgdGhpcy5kcmFnUG9zaXRpb24gPSB7IHg6IHRoaXMuZHJhZ1Bvc2l0aW9uWCwgeTogdGhpcy5kcmFnUG9zaXRpb25ZIH07XG4gIH1cblxuICBtb3ZlZChjOiBDZGtEcmFnRW5kKSB7XG4gICAgdGhpcy5kcmFnUG9zaXRpb25YICs9IGMuZGlzdGFuY2UueDtcbiAgICB0aGlzLmRyYWdQb3NpdGlvblkgKz0gYy5kaXN0YW5jZS55O1xuICB9XG5cbiAgc2Nyb2xsVGFicyhldmVudCkge1xuICAgIHJldHVybjtcblxuXG5cblxuXG5cblxuXG5cblxuICB9XG5cblxufVxuXG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL3VpL3Rhb24tYWRtaW4tbW9kZS1jb25maWd1cmF0aW9uL3Rhb24tYWRtaW4tbW9kZS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC50cyIsIjwhLS0gI3JlZ2lvbiBiYXNpYyBnbG9iYWwgY29tcG9uZW50cyAgLS0+XG48dGFvbi1zZXNzaW9uLXBhc3Njb2RlXG4gICpuZ0lmPVwic2hvd1Bhc3Njb2RlXCJcbiAgW3Bhc3Njb2RlXT1cInBhc3Njb2RlXCJcbiAgW21lc3NhZ2VdPVwibWVzc2FnZVwiIC8+XG48IS0tIDx0YW9uLXByb2dyZXNzLWJhciBbaXNEZXNrdG9wXT1cImlzRGVza3RvcFwiPjwvdGFvbi1wcm9ncmVzcy1iYXI+IC0tPlxuPCEtLSA8dGFvbi1ub3RpZmljYXRpb25zPjwvdGFvbi1ub3RpZmljYXRpb25zPiAtLT5cbjxidXR0b25cbiAgbWF0LWZhYlxuICBjbGFzcz1cImZhYi1idXR0b25cIlxuICBjb2xvcj1cImFjY2VudFwiXG4gIGFyaWEtbGFiZWw9XCJUYW9uIEFkbWluIE1vZGVcIlxuICAqbmdJZj1cIlxuICAgICFhZG1pbi5kcmFnZ2FibGVQb3B1cE1vZGUgJiZcbiAgICBpc0Rlc2t0b3AgJiZcbiAgICAhaXNJZnJhbWUgJiZcbiAgICAhaGlkZVRhb25Ub29sc0luUHJvZHVjdGlvblxuICBcIlxuICAoY2xpY2spPVwidG9vZ2xlKClcIj5cbiAgPG1hdC1pY29uPmJ1aWxkPC9tYXQtaWNvbj5cbjwvYnV0dG9uPlxuPCEtLSAjZW5kcmVnaW9uIC0tPlxuXG48IS0tICNyZWdpb24gc21hbGwgaGlkZGVuIGJ1dHRvbiAtLT5cbjwhLS0gPGJ1dHRvbiBjbGFzcz1cImFkbWluLXNob3ctYnV0dG9uXCJcbiAgICAgICAgKm5nSWY9XCIhYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlICYmIGlzRGVza3RvcFwiXG4gICAgICAgIChjbGljayk9XCJ0b29nbGUoKVwiPiBBZG1pbiA8L2J1dHRvbj4gLS0+XG48IS0tICNlbmRyZWdpb24gLS0+XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudE5vU2Nyb2xsPlxuICA8bmctY29udGVudD4gPC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICA8bmctc2Nyb2xsYmFyPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudE5vU2Nyb2xsXCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctc2Nyb2xsYmFyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSAjcmVnaW9uIGFkbWluIHRhYnMgLS0+XG48bmctdGVtcGxhdGUgI2FkbWluVGFicz5cbiAgPGRpdiBjbGFzcz1cInRhb24taGVhZGVyLWFkbWluLXdyYXBwZXJcIj5cbiAgICA8Y29sdW1ucy1jb250YWluZXJcbiAgICAgIGNsYXNzPVwidGFvbi1oZWFkZXItYWRtaW5cIlxuICAgICAgW25nQ2xhc3NdPVwieyAnZHJhZ2dhYmxlLWNvbHVtbic6IGFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZSB9XCI+XG4gICAgICA8Y29sdW1uIHdpZHRoPVwiMjAwXCIgY2xhc3M9XCJsb2dvLWhlYWRlclwiPlxuICAgICAgICA8aW1nXG4gICAgICAgICAgKm5nSWY9XCJvcGVuZWRPbmNlXCJcbiAgICAgICAgICBzcmM9XCJhc3NldHMvYXNzZXRzLWZvci90YW9uL3NoYXJlZC9sb2dvLWhlYWRlci1hZG1pbi1tb2RlLnBuZ1wiIC8+XG4gICAgICA8L2NvbHVtbj5cblxuICAgICAgPGNvbHVtbiBncm93PlxuICAgICAgICA8IS0tIDxzcGFuPlN1cGVyIEFkbWluIE1vZGU8L3NwYW4+IC0tPlxuICAgICAgPC9jb2x1bW4+XG5cbiAgICAgIDxjb2x1bW5cbiAgICAgICAgd2lkdGg9XCI0MFwiXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgIWFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZUZ1bGxTY3JlZW4gJiYgIWFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZVxuICAgICAgICBcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlXCJcbiAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICBhZG1pbi5kcmFnZ2FibGVQb3B1cE1vZGUgPSBmYWxzZTtcbiAgICAgICAgICAgIG9wZW5lZCA9IGZhbHNlO1xuICAgICAgICAgICAgd2FzT3BlbkRyYWdnYWJsZVBvcHVwID0gdHJ1ZVxuICAgICAgICAgIFwiXG4gICAgICAgICAgY2xhc3M9XCJhZG1pbi1jbG9zZS1idXR0b25cIj5cbiAgICAgICAgICA8bWF0LWljb24+Y2xvc2UgPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiIWFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZVwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvb2dsZSgpXCJcbiAgICAgICAgICBjbGFzcz1cImFkbWluLWNsb3NlLWJ1dHRvblwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9jb2x1bW4+XG5cbiAgICAgIDxjb2x1bW4gd2lkdGg9XCI0MFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCIhYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlRnVsbFNjcmVlblwiXG4gICAgICAgICAgY2xhc3M9XCJhZG1pbi1jbG9zZS1idXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJ0b29nbGVGdWxsU2NyZWVuKClcIj5cbiAgICAgICAgICA8bWF0LWljb24+ZnVsbHNjcmVlbjwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJhZG1pbi5kcmFnZ2FibGVQb3B1cE1vZGVGdWxsU2NyZWVuXCJcbiAgICAgICAgICBjbGFzcz1cImFkbWluLWNsb3NlLWJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvb2dsZUZ1bGxTY3JlZW4oKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZV9mdWxsc2NyZWVuPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2NvbHVtbj5cblxuICAgICAgPGNvbHVtbiB3aWR0aD1cIjQwXCIgKm5nSWY9XCIhYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlRnVsbFNjcmVlblwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCIhYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlXCJcbiAgICAgICAgICAoY2xpY2spPVwiYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlID0gdHJ1ZVwiXG4gICAgICAgICAgY2xhc3M9XCJhZG1pbi1jbG9zZS1idXR0b25cIj5cbiAgICAgICAgICA8bWF0LWljb24+bGF1bmNoPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlXCJcbiAgICAgICAgICAoY2xpY2spPVwiYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlID0gZmFsc2U7IHJlc2V0RHJhZygpXCJcbiAgICAgICAgICBjbGFzcz1cImFkbWluLWNsb3NlLWJ1dHRvblwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBzdHlsZT1cInRyYW5zZm9ybTogcm90YXRlKDE4MGRlZylcIj5sb2dpbjwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9jb2x1bW4+XG4gICAgPC9jb2x1bW5zLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPGNvbHVtbnMtY29udGFpbmVyXG4gICAgW25nQ2xhc3NdPVwieyAnZHJhZ2dhYmxlLWNvbHVtbic6IGFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZSB9XCI+XG4gICAgPGNvbHVtbiBncm93PlxuICAgICAgPG1hdC10YWItZ3JvdXBcbiAgICAgICAgZHluYW1pY0hlaWdodFxuICAgICAgICAod2hlZWwpPVwic2Nyb2xsVGFicygkZXZlbnQpXCJcbiAgICAgICAgI3RhYkdyb3VwXG4gICAgICAgIFtzZWxlY3RlZEluZGV4XT1cInNlbGVjdGVkSW5kZXhcIlxuICAgICAgICAoc2VsZWN0ZWRJbmRleENoYW5nZSk9XCJzZWxlY3RlZEluZGV4ID0gJGV2ZW50XCI+XG4gICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiREIvQ2FjaGVcIj5cbiAgICAgICAgICA8c2VjdGlvbj5cbiAgICAgICAgICAgIDxtYXQtY2FyZD5cbiAgICAgICAgICAgICAgPG1hdC1jYXJkLWhlYWRlcj5cbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQtc3VidGl0bGU+V0VCU1FMIE1PREU8L21hdC1jYXJkLXN1YnRpdGxlPlxuICAgICAgICAgICAgICA8L21hdC1jYXJkLWhlYWRlcj5cbiAgICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc1dlYlNRTE1vZGVcIlxuICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiYWRtaW4ua2VlcFdlYnNxbERiRGF0YUFmdGVyUmVsb2FkXCJcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiXG4gICAgICAgICAgICAgICAgICAgIGFkbWluLnNldEtlZXBXZWJzcWxEYkRhdGFBZnRlclJlbG9hZCgkZXZlbnQuY2hlY2tlZClcbiAgICAgICAgICAgICAgICAgIFwiPlxuICAgICAgICAgICAgICAgICAgRG9uJ3QgcmVtb3ZlIGRhdGEgd2hlbiByZWxvYWRpbmdcbiAgICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgPC9tYXQtY2FyZD5cbiAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgPHRhb24tZGItYWRtaW4gLz5cbiAgICAgICAgPC9tYXQtdGFiPlxuXG4gICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiRmlsZXNcIiAqbmdJZj1cImFkbWluLmVuYWJsZWRUYWJzLmluY2x1ZGVzKCdmaWxlcycpXCI+XG4gICAgICAgICAgPHNlY3Rpb24+XG4gICAgICAgICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgICAgICAgIFtuZ01vZGVsXT1cImFkbWluLmZpbGVzRWRpdE1vZGVcIlxuICAgICAgICAgICAgICAoY2hhbmdlKT1cImFkbWluLnNldEVkaXRNb2RlKCRldmVudC5jaGVja2VkKVwiXG4gICAgICAgICAgICAgID5FZGl0IG1vZGU8L21hdC1jaGVja2JveFxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICA8IS0tIGFkbWluLmZpbGVzRWRpdE1vZGU6IHt7IGFkbWluLmZpbGVzRWRpdE1vZGUgfX0gLS0+XG4gICAgICAgICAgPHRhb24tYWRtaW4tZWRpdC1tb2RlICpuZ0lmPVwiYWRtaW4uZmlsZXNFZGl0TW9kZVwiPlxuICAgICAgICAgIDwvdGFvbi1hZG1pbi1lZGl0LW1vZGU+XG4gICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgPGhyICpuZ0lmPVwiYWRtaW4uZmlsZXNFZGl0TW9kZVwiIC8+XG4gICAgICAgICAgPCEtLSA8c2VjdGlvbj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24+W1RPRE9dIENsZWFyIEZpbGVzIGZyb20gYnJvd3NlciBjYWNoZSA8L2J1dHRvbj4gPGJyPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbj5bVE9ET10gU3RhcnQgZmlsZXMgZXhwb3J0IChhcyB6aXApIDwvYnV0dG9uPiA8YnI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uPltUT0RPXSBJbXBvcnQgd2hvbGUgZGF0YWJhc2UgKGZyb20gemlwKSA8L2J1dHRvbj48YnI+XG4gICAgICAgICAgPC9zZWN0aW9uPiAtLT5cbiAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICA8bWF0LXRhYiAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnNcIiBsYWJlbD1cInt7IHRhYi5uYW1lIH19XCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJmdWxsLXRhYnNcIlxuICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJoZWlnaHQgLSAxNTBcIlxuICAgICAgICAgICAgKm5nSWY9XCIhaXNJZnJhbWVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWIudGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNJZnJhbWVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWIudGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9tYXQtdGFiPlxuXG4gICAgICAgIDwhLS0gPG1hdC10YWIgbGFiZWw9XCJQb3J0YWxcIj5cbiAgICAgICAgICA8c2VjdGlvbj5cbiAgICAgICAgICAgIDxtYXQtY2hlY2tib3g+W1RPRE9dIE1haW50ZW5hbmNlIE1vZGUgZm9yIHdob2xlIHBvcnRhbDwvbWF0LWNoZWNrYm94PlxuXG4gICAgICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbD5cblxuICAgICAgICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgICAgICAgICAgICAgW1RPRE9dIEFjdGl2ZSBVc2VyOiA4MDQzMlxuICAgICAgICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgICAgICAgICAgICA8c2VjdGlvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uPltUT0RPXSBTZW5kIG5vdGlmaWNhdGlvbiB0byB1c2VycyA8L2J1dHRvbj48YnI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbj5bVE9ET10gU2VuZCBlbWFpbCB0byB1c2VycyA8L2J1dHRvbj48YnI+XG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cbiAgICAgICAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsPlxuICAgICAgICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgICAgICAgICAgICAgW1RPRE9dIEVuYWJsZSBmZWF0dXJlc1xuICAgICAgICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94PltUT0RPXSBBQiB0ZXN0aW5nPC9tYXQtY2hlY2tib3g+IDxicj5cbiAgICAgICAgICAgICAgPG1hdC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICBbVE9ET10gTmV3c2xldHRlciBlbWFpbCBxdWVzdGlvbiBwb3B1cFxuICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD4gPGJyPlxuICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgICAgIFtUT0RPXSBQcm9tb3Rpb24gcG9wdXBcbiAgICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+IDxicj5cbiAgICAgICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cbiAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJVc2VyXCI+XG4gICAgICAgICAgV2VsY29tZSBpbiB1c2VyIG1hbmFnZW1lbnRzXG4gICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJUcmFuc2xhdGlvbnNcIj5cbiAgICAgICAgICBXZWxjb21lIGluIHVzZXIgbWFuYWdlbWVudHNcbiAgICAgICAgPC9tYXQtdGFiPiAtLT5cbiAgICAgIDwvbWF0LXRhYi1ncm91cD5cbiAgICA8L2NvbHVtbj5cbiAgPC9jb2x1bW5zLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG48IS0tICNlbmRyZWdpb24gLS0+XG5cbjwhLS0gI3JlZ2lvbiBzbWFsbC9tb2JpbGUgZHJhZ2dhYmxlIHBvcHVwIHdpbmRvd3MgLS0+XG48ZGl2XG4gIGNsYXNzPVwiZHJhZ2dhYmxlLXBvcHVwLW1vZGUtd2luZG93XCJcbiAgKm5nSWY9XCJcbiAgICBhZG1pbi5kcmFnZ2FibGVQb3B1cE1vZGUgJiYgIWFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZUZ1bGxTY3JlZW4gJiYgIWlzSWZyYW1lXG4gIFwiXG4gIGNka0RyYWdcbiAgW2Nka0RyYWdGcmVlRHJhZ1Bvc2l0aW9uXT1cImRyYWdQb3NpdGlvblwiXG4gIChjZGtEcmFnRW5kZWQpPVwibW92ZWQoJGV2ZW50KVwiPlxuICA8bmctc2Nyb2xsYmFyPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWRtaW5UYWJzXCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctc2Nyb2xsYmFyPlxuPC9kaXY+XG48IS0tICNlbmRyZWdpb24gLS0+XG5cbjwhLS0gI3JlZ2lvbiBmdWxsc2NyZWVuIGRyYWdnYWJsZSBwb3B1cCB3aW5kb3cgLS0+XG48ZGl2XG4gIGNsYXNzPVwiZHJhZ2dhYmxlLXBvcHVwLW1vZGUtd2luZG93LWZ1bGxcIlxuICAqbmdJZj1cIlxuICAgIGFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZSAmJlxuICAgIGFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZUZ1bGxTY3JlZW4gJiZcbiAgICAhaXNJZnJhbWUgJiZcbiAgICAhcmVsb2FkaW5nXG4gIFwiXG4gIGNka0RyYWdcbiAgW2Nka0RyYWdGcmVlRHJhZ1Bvc2l0aW9uXT1cImRyYWdQb3NpdGlvblplcm9cIj5cbiAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJhZG1pblRhYnNcIj48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuPCEtLSAjZW5kcmVnaW9uIC0tPlxuXG48IS0tICNyZWdpb24gY29udGVudCB3aGVuIG5vdCBpbiBkcmFnZ2FibGUgKG9yIGZ1bGxzY3JlZW4gZHJhZ2dhYmxlKSBwb3B1cCAtLT5cbjxkaXZcbiAgW3N0eWxlLmhlaWdodC5weF09XCJoZWlnaHRcIlxuICAqbmdJZj1cIlxuICAgIChpc0lmcmFtZSB8fFxuICAgICAgIWlzRGVza3RvcCB8fFxuICAgICAgYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlIHx8XG4gICAgICBhZG1pbi5kcmFnZ2FibGVQb3B1cE1vZGVGdWxsU2NyZWVuKSAmJlxuICAgICFyZWxvYWRpbmdcbiAgXCJcbiAgc3R5bGU9XCJ3aWR0aDogMTAwJTsgZGlzcGxheTogYmxvY2tcIlxuICBjbGFzcz1cImNvbnRlbnRcIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIlxuICAgICAgYWRtaW4uc2Nyb2xsYWJsZUVuYWJsZWQgPyBjb250ZW50IDogY29udGVudE5vU2Nyb2xsXG4gICAgXCI+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cbjwhLS0gI2VuZHJlZ2lvbiAtLT5cblxuPCEtLSAjcmVnaW9uIGRyYWdnYWJsZSBwb3B1cCB3aW5kb3cgLS0+XG48bWF0LWRyYXdlci1jb250YWluZXJcbiAgKm5nSWY9XCIhYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlICYmIGlzRGVza3RvcCAmJiAhaXNJZnJhbWVcIlxuICBjbGFzcz1cImV4YW1wbGUtY29udGFpbmVyXCJcbiAgW3N0eWxlLmhlaWdodC5weF09XCJoZWlnaHRcIlxuICBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50XCJcbiAgKGJhY2tkcm9wQ2xpY2spPVwib3BlbmVkID0gZmFsc2VcIlxuICBbaGFzQmFja2Ryb3BdPVwiZmFsc2VcIj5cbiAgPG1hdC1kcmF3ZXIgI2RyYXdlciBzdHlsZT1cIndpZHRoOiA1ODBweFwiIFtvcGVuZWRdPVwib3BlbmVkXCIgW21vZGVdPVwiJ3NpZGUnXCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJhZG1pblRhYnNcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9tYXQtZHJhd2VyPlxuICA8bWF0LWRyYXdlci1jb250ZW50IHN0eWxlPVwib3ZlcmZsb3c6IGhpZGRlblwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiIWFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZSAmJiAhcmVsb2FkaW5nXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIlxuICAgICAgICBhZG1pbi5zY3JvbGxhYmxlRW5hYmxlZCA/IGNvbnRlbnQgOiBjb250ZW50Tm9TY3JvbGxcbiAgICAgIFwiPjwvbmctY29udGFpbmVyPlxuICA8L21hdC1kcmF3ZXItY29udGVudD5cbjwvbWF0LWRyYXdlci1jb250YWluZXI+XG48IS0tICNlbmRyZWdpb24gLS0+XG4iXX0=
@@ -0,0 +1,64 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Stor } from 'taon-storage/websql';
3
+ import { Helpers } from 'tnp-core/websql';
4
+ import { Subject } from 'rxjs';
5
+ import { globalPublicStorage } from '../../storage';
6
+ import { config } from 'tnp-config/websql';
7
+ import { Injectable } from '@angular/core';
8
+ import * as i0 from "@angular/core";
9
+ const ENV = Helpers.isBrowser ? window['ENV'] : global['ENV'];
10
+ export class TaonAdmin {
11
+ constructor() {
12
+ this.scrollableEnabled = false; // TOOD false by default
13
+ this.onEditMode = new Subject();
14
+ this.onEditMode$ = this.onEditMode.asObservable();
15
+ this.enabledTabs = [];
16
+ this.scrollableEnabled = !!ENV?.useGlobalNgxScrollbar;
17
+ }
18
+ static get Instance() {
19
+ if (!globalPublicStorage[config.frameworkNames.productionFrameworkName]) {
20
+ globalPublicStorage[config.frameworkNames.productionFrameworkName] = new TaonAdmin();
21
+ }
22
+ return globalPublicStorage[config.frameworkNames.productionFrameworkName];
23
+ }
24
+ setEditMode(value) {
25
+ this.onEditMode.next(value);
26
+ }
27
+ setKeepWebsqlDbDataAfterReload(value) {
28
+ this.keepWebsqlDbDataAfterReload = value;
29
+ }
30
+ hide() {
31
+ this.draggablePopupMode = false;
32
+ this.adminPanelIsOpen = false;
33
+ }
34
+ show() {
35
+ this.draggablePopupMode = false;
36
+ this.adminPanelIsOpen = true;
37
+ }
38
+ logout() { }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdmin, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
40
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdmin, providedIn: 'root' }); }
41
+ }
42
+ __decorate([
43
+ Stor.property.in.localstorage.for(TaonAdmin).withDefaultValue(false),
44
+ __metadata("design:type", Boolean)
45
+ ], TaonAdmin.prototype, "adminPanelIsOpen", void 0);
46
+ __decorate([
47
+ Stor.property.in.localstorage.for(TaonAdmin).withDefaultValue(false),
48
+ __metadata("design:type", Boolean)
49
+ ], TaonAdmin.prototype, "draggablePopupMode", void 0);
50
+ __decorate([
51
+ Stor.property.in.localstorage.for(TaonAdmin).withDefaultValue(false),
52
+ __metadata("design:type", Boolean)
53
+ ], TaonAdmin.prototype, "draggablePopupModeFullScreen", void 0);
54
+ __decorate([
55
+ Stor.property.in.localstorage.for(TaonAdmin).withDefaultValue(false),
56
+ __metadata("design:type", Boolean)
57
+ ], TaonAdmin.prototype, "keepWebsqlDbDataAfterReload", void 0);
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdmin, decorators: [{
59
+ type: Injectable,
60
+ args: [{ providedIn: 'root' }]
61
+ }], ctorParameters: () => [] });
62
+ ;
63
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/taon-admin.service.ts
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFvbi1hZG1pbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL3VpL3Rhb24tYWRtaW4tbW9kZS1jb25maWd1cmF0aW9uL3Rhb24tYWRtaW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBSUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUssTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUF3QixNQUFNLE1BQU0sQ0FBQztBQUVyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBRzlELE1BQU0sT0FBTyxTQUFTO0lBSXBCO1FBSE8sc0JBQWlCLEdBQUcsS0FBSyxDQUFDLENBQUMsd0JBQXdCO1FBaUJsRCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNuQyxnQkFBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7UUF5QzdDLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBdERmLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDO0lBQ3hELENBQUM7SUFDTSxNQUFNLEtBQUssUUFBUTtRQUN4QixJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUM7WUFDeEUsbUJBQW1CLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7UUFDdkYsQ0FBQztRQUNELE9BQU8sbUJBQW1CLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFvQ0QsV0FBVyxDQUFDLEtBQWM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELDhCQUE4QixDQUFDLEtBQWM7UUFJM0MsSUFBSSxDQUFDLDJCQUEyQixHQUFHLEtBQUssQ0FBQztJQUMzQyxDQUFDO0lBSUQsSUFBSTtRQUNGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRUQsTUFBTSxLQUFJLENBQUM7OEdBeEVBLFNBQVM7a0hBQVQsU0FBUyxjQURJLE1BQU07O0FBMEJ2QjtJQUROLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDOzttREFDcEM7QUFNMUI7SUFETixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQzs7cURBQ2xDO0FBTTVCO0lBRE4sSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7OytEQUN4QjtBQVF0QztJQUROLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDOzs4REFDekI7MkZBN0NqQyxTQUFTO2tCQURyQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7QUE2RWpDLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsNEZBQTRGIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuXG5pbXBvcnQgeyBTdG9yIH0gZnJvbSAndGFvbi1zdG9yYWdlL3dlYnNxbCc7XG5pbXBvcnQgeyBIZWxwZXJzLCBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2UsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgdHlwZSB7IFRhb25BZG1pbk1vZGVDb25maWd1cmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi90YW9uLWFkbWluLW1vZGUtY29uZmlndXJhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgZ2xvYmFsUHVibGljU3RvcmFnZSB9IGZyb20gJy4uLy4uL3N0b3JhZ2UnO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAndG5wLWNvbmZpZy93ZWJzcWwnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cbmNvbnN0IEVOViA9IEhlbHBlcnMuaXNCcm93c2VyID8gd2luZG93WydFTlYnXSA6IGdsb2JhbFsnRU5WJ107XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVGFvbkFkbWluIHtcbiAgcHVibGljIHNjcm9sbGFibGVFbmFibGVkID0gZmFsc2U7IC8vIFRPT0QgZmFsc2UgYnkgZGVmYXVsdFxuXG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcblxuICAgIHRoaXMuc2Nyb2xsYWJsZUVuYWJsZWQgPSAhIUVOVj8udXNlR2xvYmFsTmd4U2Nyb2xsYmFyO1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgZ2V0IEluc3RhbmNlKCk6IFRhb25BZG1pbiB7XG4gICAgaWYgKCFnbG9iYWxQdWJsaWNTdG9yYWdlW2NvbmZpZy5mcmFtZXdvcmtOYW1lcy5wcm9kdWN0aW9uRnJhbWV3b3JrTmFtZV0pIHtcbiAgICAgIGdsb2JhbFB1YmxpY1N0b3JhZ2VbY29uZmlnLmZyYW1ld29ya05hbWVzLnByb2R1Y3Rpb25GcmFtZXdvcmtOYW1lXSA9IG5ldyBUYW9uQWRtaW4oKTtcbiAgICB9XG4gICAgcmV0dXJuIGdsb2JhbFB1YmxpY1N0b3JhZ2VbY29uZmlnLmZyYW1ld29ya05hbWVzLnByb2R1Y3Rpb25GcmFtZXdvcmtOYW1lXTtcbiAgfVxuXG5cblxuICBwdWJsaWMgY21wOiBUYW9uQWRtaW5Nb2RlQ29uZmlndXJhdGlvbkNvbXBvbmVudDtcbiAgcHJpdmF0ZSBvbkVkaXRNb2RlID0gbmV3IFN1YmplY3QoKTtcbiAgb25FZGl0TW9kZSQgPSB0aGlzLm9uRWRpdE1vZGUuYXNPYnNlcnZhYmxlKCk7XG5cblxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgQFN0b3IucHJvcGVydHkuaW4ubG9jYWxzdG9yYWdlLmZvcihUYW9uQWRtaW4pLndpdGhEZWZhdWx0VmFsdWUoZmFsc2UpXG4gIHB1YmxpYyBhZG1pblBhbmVsSXNPcGVuOiBib29sZWFuO1xuXG5cblxuICAvLyBAdHMtaWdub3JlXG4gIEBTdG9yLnByb3BlcnR5LmluLmxvY2Fsc3RvcmFnZS5mb3IoVGFvbkFkbWluKS53aXRoRGVmYXVsdFZhbHVlKGZhbHNlKVxuICBwdWJsaWMgZHJhZ2dhYmxlUG9wdXBNb2RlOiBib29sZWFuO1xuXG5cblxuICAvLyBAdHMtaWdub3JlXG4gIEBTdG9yLnByb3BlcnR5LmluLmxvY2Fsc3RvcmFnZS5mb3IoVGFvbkFkbWluKS53aXRoRGVmYXVsdFZhbHVlKGZhbHNlKVxuICBwdWJsaWMgZHJhZ2dhYmxlUG9wdXBNb2RlRnVsbFNjcmVlbjogYm9vbGVhbjtcblxuXG5cbiAgLyoqXG4gICAqIFByb3BlcnR5IHVzZWQgaW4gdGFvblxuICAgKi8gLy8gQHRzLWlnbm9yZVxuICBAU3Rvci5wcm9wZXJ0eS5pbi5sb2NhbHN0b3JhZ2UuZm9yKFRhb25BZG1pbikud2l0aERlZmF1bHRWYWx1ZShmYWxzZSlcbiAgcHVibGljIGtlZXBXZWJzcWxEYkRhdGFBZnRlclJlbG9hZDogYm9vbGVhbjtcblxuXG5cbiAgc2V0RWRpdE1vZGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm9uRWRpdE1vZGUubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBzZXRLZWVwV2Vic3FsRGJEYXRhQWZ0ZXJSZWxvYWQodmFsdWU6IGJvb2xlYW4pIHtcblxuXG5cbiAgICB0aGlzLmtlZXBXZWJzcWxEYkRhdGFBZnRlclJlbG9hZCA9IHZhbHVlO1xuICB9XG5cbiAgZW5hYmxlZFRhYnMgPSBbXTtcblxuICBoaWRlKCkge1xuICAgIHRoaXMuZHJhZ2dhYmxlUG9wdXBNb2RlID0gZmFsc2U7XG4gICAgdGhpcy5hZG1pblBhbmVsSXNPcGVuID0gZmFsc2U7XG4gIH1cblxuICBzaG93KCkge1xuICAgIHRoaXMuZHJhZ2dhYmxlUG9wdXBNb2RlID0gZmFsc2U7XG4gICAgdGhpcy5hZG1pblBhbmVsSXNPcGVuID0gdHJ1ZTtcbiAgfVxuXG4gIGxvZ291dCgpIHt9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL3VpL3Rhb24tYWRtaW4tbW9kZS1jb25maWd1cmF0aW9uL3Rhb24tYWRtaW4uc2VydmljZS50cyJdfQ==
@@ -0,0 +1,76 @@
1
+ import { _ } from 'tnp-core/websql';
2
+ export var Validators;
3
+ (function (Validators) {
4
+ Validators.classNameVlidation = (className, target) => {
5
+ setTimeout(() => {
6
+ if (_.isUndefined(className)) {
7
+ throw `[Taon]
8
+ Please provide "className" property for each Controller and Entity:
9
+
10
+ @Taon.Controller({ className: 'MyExampleCtrl' })
11
+ class MyExampleCtrl {
12
+ ...
13
+ }
14
+
15
+ @Taon.Entity({ className: 'MyExampleEntity' })
16
+ class MyExampleEntity {
17
+ ...
18
+ }
19
+
20
+ Notice that minified javascript code does not preserve
21
+ Functions/Classes names -this is only solution to preserve classes names.
22
+
23
+ `;
24
+ }
25
+ });
26
+ return _.isUndefined(className) ? target.name : className;
27
+ };
28
+ Validators.checkIfMethodsWithReponseTYpeAlowed = (methods, current) => {
29
+ const defaultResponseType = 'text or JSON';
30
+ if (!current.responseType) {
31
+ return;
32
+ }
33
+ for (let index = 0; index < methods.length; index++) {
34
+ const m = methods[index];
35
+ if (m.path === current.path && m.responseType !== current.responseType) {
36
+ throw new Error(`
37
+ [taon] you can have 2 methods with same path but differetn reponseType-s
38
+
39
+ ${m.methodName}( ... path: ${m.path} ) -> responseType: ${m.responseType || defaultResponseType}
40
+ ${current.methodName}( ... path: ${current.path} ) -> responseType: ${current.responseType}
41
+
42
+ Please change path name on of the methods.
43
+
44
+ `);
45
+ }
46
+ }
47
+ };
48
+ Validators.validateClassFunctions = (controllers, entities, proviers, repositories) => {
49
+ if (_.isArray(controllers) &&
50
+ controllers.filter(f => !_.isFunction(f)).length > 0) {
51
+ console.error('controllers', controllers);
52
+ throw `
53
+
54
+ Incorect value for property "controllers" inside Taon.Init(...)
55
+
56
+ `;
57
+ }
58
+ if (_.isArray(entities) &&
59
+ entities.filter(f => !_.isFunction(f)).length > 0) {
60
+ console.error('entites', entities);
61
+ throw `
62
+
63
+ Incorect value for property "entities" inside Taon.Init(...)
64
+
65
+ `;
66
+ }
67
+ };
68
+ Validators.preventUndefinedModel = (model, id) => {
69
+ if (_.isUndefined(model)) {
70
+ throw `Bad update by id, config, id: ${id}`;
71
+ }
72
+ };
73
+ })(Validators || (Validators = {}));
74
+ ;
75
+ ({}); // @--end-of-file-for-module=taon lib/validators.ts
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90YW9uL3Byb2plY3RzL3Rhb24vc3JjL2xpYi92YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdwQyxNQUFNLEtBQVcsVUFBVSxDQStGMUI7QUEvRkQsV0FBaUIsVUFBVTtJQUVaLDZCQUFrQixHQUFHLENBQUMsU0FBUyxFQUFFLE1BQWdCLEVBQUUsRUFBRTtRQUNoRSxVQUFVLENBQUMsR0FBRyxFQUFFO1lBRWQsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7U0FnQkwsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzVELENBQUMsQ0FBQztJQUlXLDhDQUFtQyxHQUFHLENBQ2pELE9BQThCLEVBQzlCLE9BQTRCLEVBQzVCLEVBQUU7UUFDRixNQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQztRQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzFCLE9BQU87UUFDVCxDQUFDO1FBQ0QsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNwRCxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLFlBQVksS0FBSyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3ZFLE1BQU0sSUFBSSxLQUFLLENBQUM7OztZQUdaLENBQUMsQ0FBQyxVQUFVLGVBQWUsQ0FBQyxDQUFDLElBQUksd0JBQXdCLENBQUMsQ0FBQyxZQUFZLElBQUksbUJBQW1CO1lBQzlGLE9BQU8sQ0FBQyxVQUFVLGVBQWUsT0FBTyxDQUFDLElBQUksdUJBQXVCLE9BQU8sQ0FBQyxZQUFZOzs7O1NBSTNGLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBS1csaUNBQXNCLEdBQUcsQ0FDcEMsV0FBa0IsRUFDbEIsUUFBZSxFQUNmLFFBQWUsRUFDZixZQUFtQixFQUNuQixFQUFFO1FBQ0YsSUFDRSxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUN0QixXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFDcEQsQ0FBQztZQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQzFDLE1BQU07Ozs7R0FJVCxDQUFDO1FBQ0EsQ0FBQztRQUVELElBQ0UsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDbkIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQ2pELENBQUM7WUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNuQyxNQUFNOzs7O0dBSVQsQ0FBQztRQUNBLENBQUM7SUFDSCxDQUFDLENBQUM7SUFHVyxnQ0FBcUIsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRTtRQUNqRCxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN6QixNQUFNLGlDQUFpQyxFQUFFLEVBQUUsQ0FBQztRQUM5QyxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxFQS9GZ0IsVUFBVSxLQUFWLFVBQVUsUUErRjFCO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxtREFBbUQiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuL21vZGVscyc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgVmFsaWRhdG9ycyB7XG5cbiAgZXhwb3J0IGNvbnN0IGNsYXNzTmFtZVZsaWRhdGlvbiA9IChjbGFzc05hbWUsIHRhcmdldDogRnVuY3Rpb24pID0+IHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcblxuICAgICAgaWYgKF8uaXNVbmRlZmluZWQoY2xhc3NOYW1lKSkge1xuICAgICAgICB0aHJvdyBgW1Rhb25dXG4gICAgICBQbGVhc2UgcHJvdmlkZSBcImNsYXNzTmFtZVwiIHByb3BlcnR5IGZvciBlYWNoIENvbnRyb2xsZXIgYW5kIEVudGl0eTpcblxuICAgICAgICAgIEBUYW9uLkNvbnRyb2xsZXIoeyBjbGFzc05hbWU6ICdNeUV4YW1wbGVDdHJsJyAgfSlcbiAgICAgICAgICBjbGFzcyBNeUV4YW1wbGVDdHJsIHtcbiAgICAgICAgICAgIC4uLlxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBUYW9uLkVudGl0eSh7IGNsYXNzTmFtZTogJ015RXhhbXBsZUVudGl0eScgIH0pXG4gICAgICAgICAgY2xhc3MgTXlFeGFtcGxlRW50aXR5IHtcbiAgICAgICAgICAgIC4uLlxuICAgICAgICAgIH1cblxuICAgIE5vdGljZSB0aGF0IG1pbmlmaWVkIGphdmFzY3JpcHQgY29kZSBkb2VzIG5vdCBwcmVzZXJ2ZVxuICAgIEZ1bmN0aW9ucy9DbGFzc2VzIG5hbWVzIC10aGlzIGlzIG9ubHkgc29sdXRpb24gdG8gcHJlc2VydmUgY2xhc3NlcyBuYW1lcy5cblxuICAgICAgICBgO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIF8uaXNVbmRlZmluZWQoY2xhc3NOYW1lKSA/IHRhcmdldC5uYW1lIDogY2xhc3NOYW1lO1xuICB9O1xuXG5cblxuICBleHBvcnQgY29uc3QgY2hlY2tJZk1ldGhvZHNXaXRoUmVwb25zZVRZcGVBbG93ZWQgPSAoXG4gICAgbWV0aG9kczogTW9kZWxzLk1ldGhvZENvbmZpZ1tdLFxuICAgIGN1cnJlbnQ6IE1vZGVscy5NZXRob2RDb25maWcsXG4gICkgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRSZXNwb25zZVR5cGUgPSAndGV4dCBvciBKU09OJztcbiAgICBpZiAoIWN1cnJlbnQucmVzcG9uc2VUeXBlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBtZXRob2RzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgY29uc3QgbSA9IG1ldGhvZHNbaW5kZXhdO1xuICAgICAgaWYgKG0ucGF0aCA9PT0gY3VycmVudC5wYXRoICYmIG0ucmVzcG9uc2VUeXBlICE9PSBjdXJyZW50LnJlc3BvbnNlVHlwZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFxuICBbdGFvbl0geW91IGNhbiBoYXZlIDIgbWV0aG9kcyB3aXRoIHNhbWUgcGF0aCBidXQgZGlmZmVyZXRuIHJlcG9uc2VUeXBlLXNcblxuICAgICAgICAgICR7bS5tZXRob2ROYW1lfSggLi4uIHBhdGg6ICR7bS5wYXRofSApICAtPiByZXNwb25zZVR5cGU6ICR7bS5yZXNwb25zZVR5cGUgfHwgZGVmYXVsdFJlc3BvbnNlVHlwZX1cbiAgICAgICAgICAke2N1cnJlbnQubWV0aG9kTmFtZX0oIC4uLiBwYXRoOiAke2N1cnJlbnQucGF0aH0gKSAtPiByZXNwb25zZVR5cGU6ICR7Y3VycmVudC5yZXNwb25zZVR5cGV9XG5cbiAgICBQbGVhc2UgY2hhbmdlIHBhdGggbmFtZSBvbiBvZiB0aGUgbWV0aG9kcy5cblxuICAgICAgICBgKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cblxuXG5cbiAgZXhwb3J0IGNvbnN0IHZhbGlkYXRlQ2xhc3NGdW5jdGlvbnMgPSAoXG4gICAgY29udHJvbGxlcnM6IGFueVtdLFxuICAgIGVudGl0aWVzOiBhbnlbXSxcbiAgICBwcm92aWVyczogYW55W10sXG4gICAgcmVwb3NpdG9yaWVzOiBhbnlbXSxcbiAgKSA9PiB7XG4gICAgaWYgKFxuICAgICAgXy5pc0FycmF5KGNvbnRyb2xsZXJzKSAmJlxuICAgICAgY29udHJvbGxlcnMuZmlsdGVyKGYgPT4gIV8uaXNGdW5jdGlvbihmKSkubGVuZ3RoID4gMFxuICAgICkge1xuICAgICAgY29uc29sZS5lcnJvcignY29udHJvbGxlcnMnLCBjb250cm9sbGVycyk7XG4gICAgICB0aHJvdyBgXG5cbiAgSW5jb3JlY3QgdmFsdWUgZm9yIHByb3BlcnR5IFwiY29udHJvbGxlcnNcIiBpbnNpZGUgVGFvbi5Jbml0KC4uLilcblxuICBgO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIF8uaXNBcnJheShlbnRpdGllcykgJiZcbiAgICAgIGVudGl0aWVzLmZpbHRlcihmID0+ICFfLmlzRnVuY3Rpb24oZikpLmxlbmd0aCA+IDBcbiAgICApIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ2VudGl0ZXMnLCBlbnRpdGllcyk7XG4gICAgICB0aHJvdyBgXG5cbiAgSW5jb3JlY3QgdmFsdWUgZm9yIHByb3BlcnR5IFwiZW50aXRpZXNcIiBpbnNpZGUgVGFvbi5Jbml0KC4uLilcblxuICBgO1xuICAgIH1cbiAgfTtcblxuXG4gIGV4cG9ydCBjb25zdCBwcmV2ZW50VW5kZWZpbmVkTW9kZWwgPSAobW9kZWwsIGlkKSA9PiB7XG4gICAgaWYgKF8uaXNVbmRlZmluZWQobW9kZWwpKSB7XG4gICAgICB0aHJvdyBgQmFkIHVwZGF0ZSBieSBpZCwgY29uZmlnLCBpZDogJHtpZH1gO1xuICAgIH1cbiAgfTtcbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL3ZhbGlkYXRvcnMudHMiXX0=
@@ -0,0 +1,2 @@
1
+ export * from './lib';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90YW9uL3Byb2plY3RzL3Rhb24vc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYic7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90YW9uL3Byb2plY3RzL3Rhb24vc3JjL3Rhb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==