taon 18.0.18 → 18.0.20

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 (315) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/esm2022/lib/base-classes/base-abstract-entity.mjs +1 -1
  3. package/browser/esm2022/lib/base-classes/base-crud-controller.mjs +1 -1
  4. package/browser/esm2022/lib/base-classes/base-injector.mjs +8 -1
  5. package/browser/esm2022/lib/base-classes/base.mjs +3 -3
  6. package/browser/esm2022/lib/create-context.mjs +10 -7
  7. package/browser/esm2022/lib/decorators/http/http-decorators.mjs +3 -1
  8. package/browser/esm2022/lib/decorators/http/http-methods-decorators.mjs +1 -1
  9. package/browser/esm2022/lib/endpoint-context.mjs +49 -11
  10. package/browser/esm2022/lib/entity-process.mjs +1 -10
  11. package/browser/esm2022/lib/get-response-value.mjs +1 -15
  12. package/browser/esm2022/lib/index.mjs +2 -1
  13. package/browser/esm2022/lib/models.mjs +1 -1
  14. package/browser/esm2022/lib/ui/directives/index.mjs +6 -0
  15. package/browser/esm2022/lib/ui/directives/safe.pipe.mjs +43 -0
  16. package/browser/esm2022/lib/ui/directives/taon-inject-html.directive.mjs +24 -0
  17. package/browser/esm2022/lib/ui/directives/taon-long-press.directive.mjs +120 -0
  18. package/browser/esm2022/lib/ui/index.mjs +12 -0
  19. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.mjs +5 -0
  20. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.mjs +115 -0
  21. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.mjs +50 -0
  22. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.mjs +5 -0
  23. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.mjs +61 -0
  24. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.mjs +21 -0
  25. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/index.mjs +6 -0
  26. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +14 -3
  27. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.mjs +54 -0
  28. package/browser/esm2022/lib/ui/taon-full-material.module.mjs +179 -0
  29. package/browser/esm2022/lib/ui/taon-github-fork-me-corner/index.mjs +5 -0
  30. package/browser/esm2022/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.mjs +18 -0
  31. package/browser/esm2022/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.module.mjs +21 -0
  32. package/browser/esm2022/lib/ui/taon-notifications/index.mjs +7 -0
  33. package/browser/esm2022/lib/ui/taon-notifications/taon-notifications.component.mjs +25 -0
  34. package/browser/esm2022/lib/ui/taon-notifications/taon-notifications.models.mjs +5 -0
  35. package/browser/esm2022/lib/ui/taon-notifications/taon-notifications.module.mjs +21 -0
  36. package/browser/esm2022/lib/ui/taon-notifications/taon-notifications.service.mjs +48 -0
  37. package/browser/esm2022/lib/ui/taon-progress-bar/index.mjs +5 -0
  38. package/browser/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.component.mjs +98 -0
  39. package/browser/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.module.mjs +22 -0
  40. package/browser/esm2022/lib/ui/taon-session-passcode/index.mjs +4 -0
  41. package/browser/esm2022/lib/ui/taon-session-passcode/taon-session-passcode.component.mjs +120 -0
  42. package/browser/esm2022/lib/ui/taon-table/index.mjs +5 -0
  43. package/browser/esm2022/lib/ui/taon-table/taon-table.component.mjs +161 -0
  44. package/browser/esm2022/lib/ui/taon-table/taon-table.module.mjs +57 -0
  45. package/browser/fesm2022/taon.mjs +1463 -94
  46. package/browser/fesm2022/taon.mjs.map +1 -1
  47. package/browser/lib/base-classes/base-abstract-entity.d.ts +2 -1
  48. package/browser/lib/base-classes/base-context.d.ts +4 -1
  49. package/browser/lib/base-classes/base-crud-controller.d.ts +1 -1
  50. package/browser/lib/base-classes/base-injector.d.ts +5 -0
  51. package/browser/lib/base-classes/base.d.ts +7 -3
  52. package/browser/lib/create-context.d.ts +7 -4
  53. package/browser/lib/decorators/http/http-decorators.d.ts +2 -0
  54. package/browser/lib/decorators/http/http-methods-decorators.d.ts +9 -0
  55. package/browser/lib/endpoint-context.d.ts +3 -2
  56. package/browser/lib/index.d.ts +13 -3
  57. package/browser/lib/models.d.ts +2 -4
  58. package/browser/lib/ui/directives/index.d.ts +4 -0
  59. package/browser/lib/ui/directives/safe.pipe.d.ts +11 -0
  60. package/browser/lib/ui/directives/taon-inject-html.directive.d.ts +10 -0
  61. package/browser/lib/ui/directives/taon-long-press.directive.d.ts +26 -0
  62. package/browser/lib/ui/index.d.ts +10 -0
  63. package/browser/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.d.ts +3 -0
  64. package/browser/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +33 -0
  65. package/browser/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.d.ts +16 -0
  66. package/browser/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.d.ts +3 -0
  67. package/browser/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +17 -0
  68. package/browser/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.d.ts +10 -0
  69. package/browser/lib/ui/taon-admin-mode-configuration/index.d.ts +4 -0
  70. package/browser/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.d.ts +17 -0
  71. package/browser/lib/ui/taon-full-material.module.d.ts +47 -0
  72. package/browser/lib/ui/taon-github-fork-me-corner/index.d.ts +3 -0
  73. package/browser/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.d.ts +7 -0
  74. package/browser/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.module.d.ts +9 -0
  75. package/browser/lib/ui/taon-notifications/index.d.ts +5 -0
  76. package/browser/lib/ui/taon-notifications/taon-notifications.component.d.ts +13 -0
  77. package/browser/lib/ui/taon-notifications/taon-notifications.models.d.ts +7 -0
  78. package/browser/lib/ui/taon-notifications/taon-notifications.module.d.ts +8 -0
  79. package/browser/lib/ui/taon-notifications/taon-notifications.service.d.ts +15 -0
  80. package/browser/lib/ui/taon-progress-bar/index.d.ts +3 -0
  81. package/browser/lib/ui/taon-progress-bar/taon-progress-bar.component.d.ts +19 -0
  82. package/browser/lib/ui/taon-progress-bar/taon-progress-bar.module.d.ts +10 -0
  83. package/browser/lib/ui/taon-session-passcode/index.d.ts +2 -0
  84. package/browser/lib/ui/taon-session-passcode/taon-session-passcode.component.d.ts +39 -0
  85. package/browser/lib/ui/taon-table/index.d.ts +3 -0
  86. package/browser/lib/ui/taon-table/taon-table.component.d.ts +37 -0
  87. package/browser/lib/ui/taon-table/taon-table.module.d.ts +17 -0
  88. package/client/esm2022/lib/base-classes/base-abstract-entity.mjs +1 -1
  89. package/client/esm2022/lib/base-classes/base-crud-controller.mjs +1 -1
  90. package/client/esm2022/lib/base-classes/base-injector.mjs +8 -1
  91. package/client/esm2022/lib/base-classes/base.mjs +3 -3
  92. package/client/esm2022/lib/create-context.mjs +10 -7
  93. package/client/esm2022/lib/decorators/http/http-decorators.mjs +3 -1
  94. package/client/esm2022/lib/decorators/http/http-methods-decorators.mjs +1 -1
  95. package/client/esm2022/lib/endpoint-context.mjs +49 -11
  96. package/client/esm2022/lib/entity-process.mjs +1 -10
  97. package/client/esm2022/lib/get-response-value.mjs +1 -15
  98. package/client/esm2022/lib/index.mjs +2 -1
  99. package/client/esm2022/lib/models.mjs +1 -1
  100. package/client/esm2022/lib/ui/directives/index.mjs +6 -0
  101. package/client/esm2022/lib/ui/directives/safe.pipe.mjs +43 -0
  102. package/client/esm2022/lib/ui/directives/taon-inject-html.directive.mjs +24 -0
  103. package/client/esm2022/lib/ui/directives/taon-long-press.directive.mjs +120 -0
  104. package/client/esm2022/lib/ui/index.mjs +12 -0
  105. package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.mjs +5 -0
  106. package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.mjs +115 -0
  107. package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.mjs +50 -0
  108. package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.mjs +5 -0
  109. package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.mjs +61 -0
  110. package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.mjs +21 -0
  111. package/client/esm2022/lib/ui/taon-admin-mode-configuration/index.mjs +6 -0
  112. package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +14 -3
  113. package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.mjs +54 -0
  114. package/client/esm2022/lib/ui/taon-full-material.module.mjs +179 -0
  115. package/client/esm2022/lib/ui/taon-github-fork-me-corner/index.mjs +5 -0
  116. package/client/esm2022/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.mjs +18 -0
  117. package/client/esm2022/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.module.mjs +21 -0
  118. package/client/esm2022/lib/ui/taon-notifications/index.mjs +7 -0
  119. package/client/esm2022/lib/ui/taon-notifications/taon-notifications.component.mjs +25 -0
  120. package/client/esm2022/lib/ui/taon-notifications/taon-notifications.models.mjs +5 -0
  121. package/client/esm2022/lib/ui/taon-notifications/taon-notifications.module.mjs +21 -0
  122. package/client/esm2022/lib/ui/taon-notifications/taon-notifications.service.mjs +48 -0
  123. package/client/esm2022/lib/ui/taon-progress-bar/index.mjs +5 -0
  124. package/client/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.component.mjs +98 -0
  125. package/client/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.module.mjs +22 -0
  126. package/client/esm2022/lib/ui/taon-session-passcode/index.mjs +4 -0
  127. package/client/esm2022/lib/ui/taon-session-passcode/taon-session-passcode.component.mjs +120 -0
  128. package/client/esm2022/lib/ui/taon-table/index.mjs +5 -0
  129. package/client/esm2022/lib/ui/taon-table/taon-table.component.mjs +161 -0
  130. package/client/esm2022/lib/ui/taon-table/taon-table.module.mjs +57 -0
  131. package/client/fesm2022/taon.mjs +1463 -94
  132. package/client/fesm2022/taon.mjs.map +1 -1
  133. package/client/lib/base-classes/base-abstract-entity.d.ts +2 -1
  134. package/client/lib/base-classes/base-context.d.ts +4 -1
  135. package/client/lib/base-classes/base-crud-controller.d.ts +1 -1
  136. package/client/lib/base-classes/base-injector.d.ts +5 -0
  137. package/client/lib/base-classes/base.d.ts +7 -3
  138. package/client/lib/create-context.d.ts +7 -4
  139. package/client/lib/decorators/http/http-decorators.d.ts +2 -0
  140. package/client/lib/decorators/http/http-methods-decorators.d.ts +9 -0
  141. package/client/lib/endpoint-context.d.ts +3 -2
  142. package/client/lib/index.d.ts +13 -3
  143. package/client/lib/models.d.ts +2 -4
  144. package/client/lib/ui/directives/index.d.ts +4 -0
  145. package/client/lib/ui/directives/safe.pipe.d.ts +11 -0
  146. package/client/lib/ui/directives/taon-inject-html.directive.d.ts +10 -0
  147. package/client/lib/ui/directives/taon-long-press.directive.d.ts +26 -0
  148. package/client/lib/ui/index.d.ts +10 -0
  149. package/client/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.d.ts +3 -0
  150. package/client/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +33 -0
  151. package/client/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.d.ts +16 -0
  152. package/client/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.d.ts +3 -0
  153. package/client/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +17 -0
  154. package/client/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.d.ts +10 -0
  155. package/client/lib/ui/taon-admin-mode-configuration/index.d.ts +4 -0
  156. package/client/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.d.ts +17 -0
  157. package/client/lib/ui/taon-full-material.module.d.ts +47 -0
  158. package/client/lib/ui/taon-github-fork-me-corner/index.d.ts +3 -0
  159. package/client/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.d.ts +7 -0
  160. package/client/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.module.d.ts +9 -0
  161. package/client/lib/ui/taon-notifications/index.d.ts +5 -0
  162. package/client/lib/ui/taon-notifications/taon-notifications.component.d.ts +13 -0
  163. package/client/lib/ui/taon-notifications/taon-notifications.models.d.ts +7 -0
  164. package/client/lib/ui/taon-notifications/taon-notifications.module.d.ts +8 -0
  165. package/client/lib/ui/taon-notifications/taon-notifications.service.d.ts +15 -0
  166. package/client/lib/ui/taon-progress-bar/index.d.ts +3 -0
  167. package/client/lib/ui/taon-progress-bar/taon-progress-bar.component.d.ts +19 -0
  168. package/client/lib/ui/taon-progress-bar/taon-progress-bar.module.d.ts +10 -0
  169. package/client/lib/ui/taon-session-passcode/index.d.ts +2 -0
  170. package/client/lib/ui/taon-session-passcode/taon-session-passcode.component.d.ts +39 -0
  171. package/client/lib/ui/taon-table/index.d.ts +3 -0
  172. package/client/lib/ui/taon-table/taon-table.component.d.ts +37 -0
  173. package/client/lib/ui/taon-table/taon-table.module.d.ts +17 -0
  174. package/lib/base-classes/base-abstract-entity.d.ts +1 -0
  175. package/lib/base-classes/base-context.d.ts +4 -1
  176. package/lib/base-classes/base-crud-controller.d.ts +1 -1
  177. package/lib/base-classes/base-injector.d.ts +5 -0
  178. package/lib/base-classes/base-injector.js +11 -0
  179. package/lib/base-classes/base-injector.js.map +1 -1
  180. package/lib/base-classes/base.d.ts +7 -3
  181. package/lib/base-classes/base.js +2 -2
  182. package/lib/base-classes/base.js.map +1 -1
  183. package/lib/create-context.d.ts +7 -4
  184. package/lib/create-context.js +19 -6
  185. package/lib/create-context.js.map +1 -1
  186. package/lib/decorators/http/http-decorators.d.ts +3 -1
  187. package/lib/decorators/http/http-decorators.js +2 -0
  188. package/lib/decorators/http/http-decorators.js.map +1 -1
  189. package/lib/decorators/http/http-methods-decorators.d.ts +9 -0
  190. package/lib/decorators/http/http-methods-decorators.js.map +1 -1
  191. package/lib/endpoint-context.d.ts +3 -2
  192. package/lib/endpoint-context.js +165 -126
  193. package/lib/endpoint-context.js.map +1 -1
  194. package/lib/entity-process.js +0 -9
  195. package/lib/entity-process.js.map +1 -1
  196. package/lib/get-response-value.js +14 -37
  197. package/lib/get-response-value.js.map +1 -1
  198. package/lib/index.d.ts +13 -3
  199. package/lib/models.d.ts +2 -5
  200. package/lib/models.js.map +1 -1
  201. package/lib/ui/directives/index.d.ts +3 -4
  202. package/lib/ui/directives/index.js +2 -2
  203. package/lib/ui/index.d.ts +9 -0
  204. package/lib/ui/index.js +5 -0
  205. package/lib/ui/index.js.map +1 -0
  206. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.js +2 -2
  207. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +3 -5
  208. package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.js +2 -2
  209. package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/taon-db-admin.component.d.ts +2 -3
  210. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.js +2 -2
  211. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +1 -2
  212. package/lib/ui/taon-admin-mode-configuration/index.d.ts +0 -1
  213. package/lib/ui/taon-admin-mode-configuration/index.js +2 -2
  214. package/lib/ui/taon-github-fork-me-corner/index.js +2 -2
  215. package/lib/ui/taon-github-fork-me-ribbon/index.js +2 -2
  216. package/lib/ui/taon-notifications/taon-notifications.models.js +2 -2
  217. package/lib/ui/taon-progress-bar/index.js +2 -2
  218. package/lib/ui/taon-progress-bar/taon-progress-bar.component.d.ts +1 -0
  219. package/lib/ui/taon-session-passcode/index.js +2 -2
  220. package/lib/ui/taon-table/index.d.ts +2 -0
  221. package/lib/ui/taon-table/index.js +5 -0
  222. package/lib/ui/taon-table/index.js.map +1 -0
  223. package/lib/ui/taon-table/taon-table.component.d.ts +33 -0
  224. package/lib/ui/taon-table/taon-table.module.d.ts +2 -0
  225. package/package.json +7 -7
  226. package/tmp-environment.json +37 -31
  227. package/websql/esm2022/lib/base-classes/base-abstract-entity.mjs +1 -1
  228. package/websql/esm2022/lib/base-classes/base-crud-controller.mjs +1 -1
  229. package/websql/esm2022/lib/base-classes/base-injector.mjs +8 -1
  230. package/websql/esm2022/lib/base-classes/base.mjs +3 -3
  231. package/websql/esm2022/lib/create-context.mjs +10 -7
  232. package/websql/esm2022/lib/decorators/http/http-decorators.mjs +3 -1
  233. package/websql/esm2022/lib/decorators/http/http-methods-decorators.mjs +1 -1
  234. package/websql/esm2022/lib/endpoint-context.mjs +49 -11
  235. package/websql/esm2022/lib/entity-process.mjs +1 -10
  236. package/websql/esm2022/lib/get-response-value.mjs +4 -24
  237. package/websql/esm2022/lib/index.mjs +2 -1
  238. package/websql/esm2022/lib/models.mjs +1 -1
  239. package/websql/esm2022/lib/ui/directives/index.mjs +6 -0
  240. package/websql/esm2022/lib/ui/directives/safe.pipe.mjs +43 -0
  241. package/websql/esm2022/lib/ui/directives/taon-inject-html.directive.mjs +24 -0
  242. package/websql/esm2022/lib/ui/directives/taon-long-press.directive.mjs +120 -0
  243. package/websql/esm2022/lib/ui/index.mjs +12 -0
  244. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.mjs +5 -0
  245. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.mjs +115 -0
  246. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.mjs +50 -0
  247. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.mjs +5 -0
  248. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.mjs +61 -0
  249. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.mjs +21 -0
  250. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/index.mjs +6 -0
  251. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +14 -3
  252. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.mjs +54 -0
  253. package/websql/esm2022/lib/ui/taon-full-material.module.mjs +179 -0
  254. package/websql/esm2022/lib/ui/taon-github-fork-me-corner/index.mjs +5 -0
  255. package/websql/esm2022/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.mjs +18 -0
  256. package/websql/esm2022/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.module.mjs +21 -0
  257. package/websql/esm2022/lib/ui/taon-notifications/index.mjs +7 -0
  258. package/websql/esm2022/lib/ui/taon-notifications/taon-notifications.component.mjs +25 -0
  259. package/websql/esm2022/lib/ui/taon-notifications/taon-notifications.models.mjs +5 -0
  260. package/websql/esm2022/lib/ui/taon-notifications/taon-notifications.module.mjs +21 -0
  261. package/websql/esm2022/lib/ui/taon-notifications/taon-notifications.service.mjs +48 -0
  262. package/websql/esm2022/lib/ui/taon-progress-bar/index.mjs +5 -0
  263. package/websql/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.component.mjs +50 -0
  264. package/websql/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.module.mjs +22 -0
  265. package/websql/esm2022/lib/ui/taon-session-passcode/index.mjs +4 -0
  266. package/websql/esm2022/lib/ui/taon-session-passcode/taon-session-passcode.component.mjs +120 -0
  267. package/websql/esm2022/lib/ui/taon-table/index.mjs +5 -0
  268. package/websql/esm2022/lib/ui/taon-table/taon-table.component.mjs +161 -0
  269. package/websql/esm2022/lib/ui/taon-table/taon-table.module.mjs +57 -0
  270. package/websql/fesm2022/taon.mjs +1435 -120
  271. package/websql/fesm2022/taon.mjs.map +1 -1
  272. package/websql/lib/base-classes/base-abstract-entity.d.ts +2 -1
  273. package/websql/lib/base-classes/base-context.d.ts +4 -1
  274. package/websql/lib/base-classes/base-crud-controller.d.ts +1 -1
  275. package/websql/lib/base-classes/base-injector.d.ts +5 -0
  276. package/websql/lib/base-classes/base.d.ts +7 -3
  277. package/websql/lib/create-context.d.ts +7 -4
  278. package/websql/lib/decorators/http/http-decorators.d.ts +2 -0
  279. package/websql/lib/decorators/http/http-methods-decorators.d.ts +9 -0
  280. package/websql/lib/endpoint-context.d.ts +3 -2
  281. package/websql/lib/index.d.ts +13 -3
  282. package/websql/lib/models.d.ts +2 -5
  283. package/websql/lib/ui/directives/index.d.ts +4 -0
  284. package/websql/lib/ui/directives/safe.pipe.d.ts +11 -0
  285. package/websql/lib/ui/directives/taon-inject-html.directive.d.ts +10 -0
  286. package/websql/lib/ui/directives/taon-long-press.directive.d.ts +26 -0
  287. package/websql/lib/ui/index.d.ts +10 -0
  288. package/websql/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.d.ts +3 -0
  289. package/websql/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +33 -0
  290. package/websql/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.d.ts +16 -0
  291. package/websql/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.d.ts +3 -0
  292. package/websql/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +17 -0
  293. package/websql/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.d.ts +10 -0
  294. package/websql/lib/ui/taon-admin-mode-configuration/index.d.ts +4 -0
  295. package/websql/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.d.ts +17 -0
  296. package/websql/lib/ui/taon-full-material.module.d.ts +47 -0
  297. package/websql/lib/ui/taon-github-fork-me-corner/index.d.ts +3 -0
  298. package/websql/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.d.ts +7 -0
  299. package/websql/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.module.d.ts +9 -0
  300. package/websql/lib/ui/taon-notifications/index.d.ts +5 -0
  301. package/websql/lib/ui/taon-notifications/taon-notifications.component.d.ts +13 -0
  302. package/websql/lib/ui/taon-notifications/taon-notifications.models.d.ts +7 -0
  303. package/websql/lib/ui/taon-notifications/taon-notifications.module.d.ts +8 -0
  304. package/websql/lib/ui/taon-notifications/taon-notifications.service.d.ts +15 -0
  305. package/websql/lib/ui/taon-progress-bar/index.d.ts +3 -0
  306. package/websql/lib/ui/taon-progress-bar/taon-progress-bar.component.d.ts +19 -0
  307. package/websql/lib/ui/taon-progress-bar/taon-progress-bar.module.d.ts +10 -0
  308. package/websql/lib/ui/taon-session-passcode/index.d.ts +2 -0
  309. package/websql/lib/ui/taon-session-passcode/taon-session-passcode.component.d.ts +39 -0
  310. package/websql/lib/ui/taon-table/index.d.ts +3 -0
  311. package/websql/lib/ui/taon-table/taon-table.component.d.ts +37 -0
  312. package/websql/lib/ui/taon-table/taon-table.module.d.ts +17 -0
  313. /package/lib/ui/directives/{firedev-inject-html.directive.d.ts → taon-inject-html.directive.d.ts} +0 -0
  314. /package/lib/ui/directives/{firedev-long-press.directive.d.ts → taon-long-press.directive.d.ts} +0 -0
  315. /package/lib/ui/{toan-full-material.module.d.ts → taon-full-material.module.d.ts} +0 -0
@@ -22,6 +22,17 @@ import { Subject, takeUntil } from 'rxjs';
22
22
  import { TaonAdminService } from './taon-admin-control.service';
23
23
  import * as i0 from "@angular/core";
24
24
  import * as i1 from "static-columns/websql";
25
+ import * as i2 from "@angular/common";
26
+ import * as i3 from "@angular/forms";
27
+ import * as i4 from "ngx-scrollbar";
28
+ import * as i5 from "@angular/cdk/drag-drop";
29
+ import * as i6 from "@angular/material/button";
30
+ import * as i7 from "@angular/material/card";
31
+ import * as i8 from "@angular/material/checkbox";
32
+ import * as i9 from "@angular/material/icon";
33
+ import * as i10 from "@angular/material/sidenav";
34
+ import * as i11 from "@angular/material/tabs";
35
+ import * as i12 from "../taon-session-passcode/taon-session-passcode.component";
25
36
  export class TaonAdminModeConfigurationComponent {
26
37
  get opened() {
27
38
  return !this.isIframe && this.admin.adminPanelIsOpen;
@@ -122,7 +133,7 @@ export class TaonAdminModeConfigurationComponent {
122
133
  return;
123
134
  }
124
135
  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"] }); }
136
+ 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"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1.ColumnsComponent, selector: "columns-container" }, { kind: "component", type: i1.ColumnComponent, selector: "column", inputs: ["width"] }, { kind: "directive", type: i1.DirectiveGrow, selector: "[grow]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.NgScrollbar, selector: "ng-scrollbar:not([externalViewport])", exportAs: ["ngScrollbar"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i6.MatFabButton, selector: "button[mat-fab]", inputs: ["extended"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i7.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i7.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i7.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "component", type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i10.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i10.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: i11.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i11.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "component", type: i12.TaonSessionPasscodeComponent, selector: "taon-session-passcode", inputs: ["passcode", "message"] }] }); }
126
137
  }
127
138
  __decorate([
128
139
  Stor.property.in.localstorage
@@ -150,7 +161,7 @@ __decorate([
150
161
  ], TaonAdminModeConfigurationComponent.prototype, "wasOpenDraggablePopup", void 0);
151
162
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminModeConfigurationComponent, decorators: [{
152
163
  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"] }]
164
+ 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
165
  }], ctorParameters: () => [{ type: i1.BreakpointsService }], propDecorators: { tabGroup: [{
155
166
  type: ViewChild,
156
167
  args: ['tabGroup']
@@ -164,4 +175,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
164
175
  }] } });
165
176
  ;
166
177
  ({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.ts
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL3VpL3Rhb24tYWRtaW4tbW9kZS1jb25maWd1cmF0aW9uL3Rhb24tYWRtaW4tbW9kZS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90YW9uL3Byb2plY3RzL3Rhb24vc3JjL2xpYi91aS90YW9uLWFkbWluLW1vZGUtY29uZmlndXJhdGlvbi90YW9uLWFkbWluLW1vZGUtY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBS0EsT0FBTyxFQUFJLGlCQUFpQixFQUFJLFNBQVMsRUFBSSxZQUFZLEVBQUksWUFBWSxFQUFnQixLQUFLLEVBQWMsTUFBTSxFQUFJLFNBQVMsRUFBSSxNQUFNLEdBQUcsTUFBTSxlQUFlLENBQUMsQ0FBQSxLQUFLO0FBQ3ZLLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFFTCxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzQyxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUVMLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFPLE1BQU0sTUFBTSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxnQkFB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RyxDQUFDLG1DQUFtQyxDQUFDO1NBQ3hDLGdCQUFnQixDQUFDLENBQUMsQ0FBQzs7MEVBQ0E7QUFRdEI7SUFIQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxZQUFZO1NBQzNCLEdBQUcsQ0FBQyxtQ0FBbUMsQ0FBQztTQUN4QyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7O2tGQUNLOzJGQXJEcEIsbUNBQW1DO2tCQVAvQyxTQUFTOytCQUVFLG1DQUFtQzt1RkFvRHRCLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFRWCxxQ0FBcUM7c0JBQTlDLE1BQU07Z0JBQ0UsOEJBQThCO3NCQUF0QyxLQUFLO2dCQTZFTixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDOztBQWtEMUMsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxpSEFBaUgiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5cblxuaW1wb3J0IHsgICBDaGFuZ2VEZXRlY3RvclJlZiwgICBDb21wb25lbnQsICAgRXZlbnRFbWl0dGVyLCAgIEhvc3RMaXN0ZW5lciwgICBJbmplY3RvciwgICBJbnB1dCwgICBPbkluaXQsICAgT3V0cHV0LCAgIFZpZXdDaGlsZCwgICBpbmplY3QsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7LyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG5cbmltcG9ydCB7IEhlbHBlcnMsIF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgVGFvbkFkbWluIH0gZnJvbSAnLi90YW9uLWFkbWluLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RvciB9IGZyb20gJ3Rhb24tc3RvcmFnZS93ZWJzcWwnO1xuaW1wb3J0IHsgICBDZGtEcmFnLCAgIENka0RyYWdFbmQsICAgQ2RrRHJhZ01vdmUsICAgQ2RrRHJhZ1JlbGVhc2UsICAgUG9pbnQsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7LyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuXG5pbXBvcnQgeyBCcmVha3BvaW50c1NlcnZpY2UgfSBmcm9tICdzdGF0aWMtY29sdW1ucy93ZWJzcWwnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRhb25BZG1pbk1vZGVUYWIgfSBmcm9tICcuL21vZGVscy90YW9uLWFkbWluLW1vZGUtdGFicyc7XG5pbXBvcnQgeyBUYW9uQWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi90YW9uLWFkbWluLWNvbnRyb2wuc2VydmljZSc7XG5cbmRlY2xhcmUgY29uc3QgRU5WOiBhbnk7XG5cblxuQENvbXBvbmVudCh7XG5cbiAgc2VsZWN0b3I6ICdhcHAtdGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YW9uLWFkbWluLW1vZGUtY29uZmlndXJhdGlvbi5jb21wb25lbnQuc2NzcyddLFxuXG59KVxuZXhwb3J0IGNsYXNzIFRhb25BZG1pbk1vZGVDb25maWd1cmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAkZGVzdHJveSA9IG5ldyBTdWJqZWN0KCk7XG4gIHB1YmxpYyByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwdWJsaWMgcmVhZG9ubHkgdGFvbkFkbWluU2VydmljZSA9IGluamVjdChUYW9uQWRtaW5TZXJ2aWNlKTtcbiAgcHVibGljIHJlYWRvbmx5IGlzRGVza3RvcDogYm9vbGVhbjtcbiAgcHVibGljIHRhYnM6IFRhb25BZG1pbk1vZGVUYWJbXSA9IFtdO1xuICBwdWJsaWMgYWRtaW46IFRhb25BZG1pbiA9IHdpbmRvd1sndGFvbiddIGFzIFRhb25BZG1pbjtcbiAgcHVibGljIGlzV2ViU1FMTW9kZTogYm9vbGVhbiA9IEhlbHBlcnMuaXNXZWJTUUw7XG4gIHB1YmxpYyBoaWRlVGFvblRvb2xzSW5Qcm9kdWN0aW9uOiBib29sZWFuID1cbiAgICBFTlYuaGlkZVRhb25Ub29sc0luUHJvZHVjdGlvbiAmJiBFTlYuYW5ndWxhclByb2Q7XG4gIHB1YmxpYyBpc0lmcmFtZTogYm9vbGVhbiA9IHdpbmRvdy5sb2NhdGlvbiAhPT0gd2luZG93LnBhcmVudC5sb2NhdGlvbjtcbiAgcHVibGljIGhlaWdodDogbnVtYmVyID0gMTAwO1xuICBwdWJsaWMgb3BlbmVkT25jZSA9IGZhbHNlO1xuICBwdWJsaWMgcmVsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93UGFzc2NvZGU6IGJvb2xlYW4gPVxuICAgIF8uaXNTdHJpbmcoRU5WLnBhc3Njb2RlKSB8fCBfLmlzT2JqZWN0KEVOVi5wYXNzY29kZSk7XG4gIHB1YmxpYyBwYXNzY29kZTogc3RyaW5nID0gXy5pc1N0cmluZyhFTlYucGFzc2NvZGUpXG4gICAgPyBFTlYucGFzc2NvZGVcbiAgICA6IF8uaXNPYmplY3QoRU5WLnBhc3Njb2RlKVxuICAgICAgPyBFTlYucGFzc2NvZGUuY29kZVxuICAgICAgOiAnJztcbiAgcHVibGljIG1lc3NhZ2U6IHN0cmluZyA9IF8uaXNPYmplY3QoRU5WLnBhc3Njb2RlKVxuICAgID8gRU5WLnBhc3Njb2RlLm1lc3NhZ2VcbiAgICA6IHZvaWQgMDtcblxuICAvLyBAdHMtaWdub3JlXG4gIEBTdG9yLnByb3BlcnR5LmluLmxvY2Fsc3RvcmFnZVxuICAgIC5mb3IoVGFvbkFkbWluTW9kZUNvbmZpZ3VyYXRpb25Db21wb25lbnQpXG4gICAgLndpdGhEZWZhdWx0VmFsdWUoMClcbiAgZHJhZ1Bvc2l0aW9uWDogbnVtYmVyO1xuXG4gIC8vIEB0cy1pZ25vcmVcbiAgQFN0b3IucHJvcGVydHkuaW4ubG9jYWxzdG9yYWdlXG4gICAgLmZvcihUYW9uQWRtaW5Nb2RlQ29uZmlndXJhdGlvbkNvbXBvbmVudClcbiAgICAud2l0aERlZmF1bHRWYWx1ZSgwKVxuICBkcmFnUG9zaXRpb25ZOiBudW1iZXI7XG5cbiAgZHJhZ1Bvc2l0aW9uWmVybyA9IHsgeDogMCwgeTogMCB9IGFzIFBvaW50O1xuICBkcmFnUG9zaXRpb246IFBvaW50O1xuXG4gIC8vIEB0cy1pZ25vcmVcbiAgQFN0b3IucHJvcGVydHkuaW4ubG9jYWxzdG9yYWdlXG4gICAgLmZvcihUYW9uQWRtaW5Nb2RlQ29uZmlndXJhdGlvbkNvbXBvbmVudClcbiAgICAud2l0aERlZmF1bHRWYWx1ZSgwKVxuICBzZWxlY3RlZEluZGV4OiBudW1iZXI7XG5cbiAgQFZpZXdDaGlsZCgndGFiR3JvdXAnKSB0YWJHcm91cDtcblxuICAvLyBAdHMtaWdub3JlXG4gIEBTdG9yLnByb3BlcnR5LmluLmxvY2Fsc3RvcmFnZVxuICAgIC5mb3IoVGFvbkFkbWluTW9kZUNvbmZpZ3VyYXRpb25Db21wb25lbnQpXG4gICAgLndpdGhEZWZhdWx0VmFsdWUoZmFsc2UpXG4gIHdhc09wZW5EcmFnZ2FibGVQb3B1cDogYm9vbGVhbjtcblxuICBAT3V0cHV0KCkgdGFvbkFkbWluTW9kZUNvbmZpZ3VyYXRpb25EYXRhQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQElucHV0KCkgdGFvbkFkbWluTW9kZUNvbmZpZ3VyYXRpb25EYXRhOiBhbnkgPSB7fTtcbiAgcHVibGljIGdldCBvcGVuZWQoKSB7XG4gICAgcmV0dXJuICF0aGlzLmlzSWZyYW1lICYmIHRoaXMuYWRtaW4uYWRtaW5QYW5lbElzT3BlbjtcbiAgfVxuICBwdWJsaWMgc2V0IG9wZW5lZCh2KSB7XG4gICAgaWYgKHYgJiYgIXRoaXMub3BlbmVkT25jZSkge1xuICAgICAgdGhpcy5vcGVuZWRPbmNlID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMud2FzT3BlbkRyYWdnYWJsZVBvcHVwKSB7XG4gICAgICB0aGlzLndhc09wZW5EcmFnZ2FibGVQb3B1cCA9IGZhbHNlO1xuICAgICAgdGhpcy5hZG1pbi5kcmFnZ2FibGVQb3B1cE1vZGUgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLmFkbWluLmFkbWluUGFuZWxJc09wZW4gPSB2O1xuICB9XG5cblxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYnJlYWtwb2ludHNTZXJ2aWNlOiBCcmVha3BvaW50c1NlcnZpY2UpIHtcbiAgICB0aGlzLmFkbWluLmNtcCA9IHRoaXM7XG4gICAgdGhpcy5icmVha3BvaW50c1NlcnZpY2VcbiAgICAgIC5saXN0ZW5UbygpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4kZGVzdHJveSkpXG4gICAgICAuc3Vic2NyaWJlKGJyZWFrcG9pbnQgPT4ge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHRoaXMuaXNEZXNrdG9wID0gYnJlYWtwb2ludCA9PT0gJ2Rlc2t0b3AnO1xuICAgICAgfSk7XG4gICAgdGhpcy50YW9uQWRtaW5TZXJ2aWNlLmluaXQodGhpcyk7XG4gIH1cblxuXG4gIHJlbG9hZFRhYnMoKSB7XG4gICAgdGhpcy5yZWxvYWRpbmcgPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5yZWxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIGNvbnNvbGUubG9nKCdyZWxvYWRpbmcgZG9uZScpO1xuICAgIH0pO1xuICB9XG5cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICBhd2FpdCBTdG9yLmF3YWl0UGVuZGluZ09wZXJhdGlvcygpO1xuXG5cblxuICAgIHRoaXMuZHJhZ1Bvc2l0aW9uID0geyB4OiB0aGlzLmRyYWdQb3NpdGlvblgsIHk6IHRoaXMuZHJhZ1Bvc2l0aW9uWSB9O1xuICAgIHRoaXMub3BlbmVkT25jZSA9IHRoaXMub3BlbmVkO1xuXG5cblxuXG5cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvL0NhbGxlZCBhZnRlciBuZ0FmdGVyQ29udGVudEluaXQgd2hlbiB0aGUgY29tcG9uZW50J3MgdmlldyBoYXMgYmVlbiBpbml0aWFsaXplZC4gQXBwbGllcyB0byBjb21wb25lbnRzIG9ubHkuXG4gICAgLy9BZGQgJ2ltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCcgdG8gdGhlIGNsYXNzLlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG5cblxuICAgICAgaWYgKHRoaXMuYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlKSB7XG4gICAgICAgIHRoaXMucmVsb2FkVGFicygpO1xuICAgICAgfVxuXG5cblxuXG5cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuJGRlc3Ryb3kubmV4dCh2b2lkIDApO1xuICAgIHRoaXMuJGRlc3Ryb3kuY29tcGxldGUoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICBvblJlc2l6ZShldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgfVxuXG5cblxuXG4gIGFzeW5jIHRvb2dsZSgpIHtcblxuICAgIHRoaXMub3BlbmVkID0gIXRoaXMub3BlbmVkO1xuICB9XG5cbiAgYXN5bmMgdG9vZ2xlRnVsbFNjcmVlbigpIHtcbiAgICB0aGlzLmFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZSA9IHRydWU7XG4gICAgdGhpcy5hZG1pbi5kcmFnZ2FibGVQb3B1cE1vZGVGdWxsU2NyZWVuID1cbiAgICAgICF0aGlzLmFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZUZ1bGxTY3JlZW47XG4gICAgdGhpcy5yZXNldERyYWcoKTtcbiAgfVxuXG4gIHJlc2V0RHJhZygpIHtcbiAgICB0aGlzLmRyYWdQb3NpdGlvblggPSAwO1xuICAgIHRoaXMuZHJhZ1Bvc2l0aW9uWSA9IDA7XG4gICAgdGhpcy5kcmFnUG9zaXRpb24gPSB7IHg6IHRoaXMuZHJhZ1Bvc2l0aW9uWCwgeTogdGhpcy5kcmFnUG9zaXRpb25ZIH07XG4gIH1cblxuICBtb3ZlZChjOiBDZGtEcmFnRW5kKSB7XG4gICAgdGhpcy5kcmFnUG9zaXRpb25YICs9IGMuZGlzdGFuY2UueDtcbiAgICB0aGlzLmRyYWdQb3NpdGlvblkgKz0gYy5kaXN0YW5jZS55O1xuICB9XG5cbiAgc2Nyb2xsVGFicyhldmVudCkge1xuICAgIHJldHVybjtcblxuXG5cblxuXG5cblxuXG5cblxuICB9XG5cblxufVxuXG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL3VpL3Rhb24tYWRtaW4tbW9kZS1jb25maWd1cmF0aW9uL3Rhb24tYWRtaW4tbW9kZS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC50cyIsIjwhLS0gI3JlZ2lvbiBiYXNpYyBnbG9iYWwgY29tcG9uZW50cyAgLS0+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=
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL3VpL3Rhb24tYWRtaW4tbW9kZS1jb25maWd1cmF0aW9uL3Rhb24tYWRtaW4tbW9kZS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90YW9uL3Byb2plY3RzL3Rhb24vc3JjL2xpYi91aS90YW9uLWFkbWluLW1vZGUtY29uZmlndXJhdGlvbi90YW9uLWFkbWluLW1vZGUtY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBS0EsT0FBTyxFQUFJLGlCQUFpQixFQUFJLFNBQVMsRUFBSSxZQUFZLEVBQUksWUFBWSxFQUFnQixLQUFLLEVBQWMsTUFBTSxFQUFJLFNBQVMsRUFBSSxNQUFNLEdBQUcsTUFBTSxlQUFlLENBQUMsQ0FBQSxLQUFLO0FBQ3ZLLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFFTCxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzQyxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUVMLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFPLE1BQU0sTUFBTSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7Ozs7OztBQVloRSxNQUFNLE9BQU8sbUNBQW1DO0lBeUQ5QyxJQUFXLE1BQU07UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO0lBQ3ZELENBQUM7SUFDRCxJQUFXLE1BQU0sQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7WUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDdkMsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFJRCxZQUFvQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQXZFMUQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDVCxRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEMscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFckQsU0FBSSxHQUF1QixFQUFFLENBQUM7UUFDOUIsVUFBSyxHQUFjLE1BQU0sQ0FBQyxNQUFNLENBQWMsQ0FBQztRQUMvQyxpQkFBWSxHQUFZLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDekMsOEJBQXlCLEdBQzlCLEdBQUcsQ0FBQyx5QkFBeUIsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDO1FBQzVDLGFBQVEsR0FBWSxNQUFNLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQy9ELFdBQU0sR0FBVyxHQUFHLENBQUM7UUFDckIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGlCQUFZLEdBQ2pCLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hELGFBQVEsR0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7WUFDaEQsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRO1lBQ2QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztnQkFDeEIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSTtnQkFDbkIsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNGLFlBQU8sR0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7WUFDL0MsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTztZQUN0QixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFjWCxxQkFBZ0IsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBVyxDQUFDO1FBaUJqQywwQ0FBcUMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzVELG1DQUE4QixHQUFRLEVBQUUsQ0FBQztRQWtCaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxrQkFBa0I7YUFDcEIsUUFBUSxFQUFFO2FBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3RCLGFBQWE7WUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsS0FBSyxTQUFTLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFDTCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFHRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxLQUFLLENBQUMsUUFBUTtRQUNaLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFJbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBTWhDLENBQUM7SUFFRCxlQUFlO1FBQ2IsNkdBQTZHO1FBQzdHLDhDQUE4QztRQUM5QyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBR2pDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsQ0FBQztRQU1ILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUdELFFBQVEsQ0FBQyxLQUFZO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztJQUNuQyxDQUFDO0lBS0QsS0FBSyxDQUFDLE1BQU07UUFFVixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUM3QixDQUFDO0lBRUQsS0FBSyxDQUFDLGdCQUFnQjtRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLDRCQUE0QjtZQUNyQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsNEJBQTRCLENBQUM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkUsQ0FBQztJQUVELEtBQUssQ0FBQyxDQUFhO1FBQ2pCLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQUs7UUFDZCxPQUFPO0lBV1QsQ0FBQzs4R0EvS1UsbUNBQW1DO2tHQUFuQyxtQ0FBbUMsd1pDMUNoRCx5elNBaVNBOztBRHpORTtJQUhDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFlBQVk7U0FDM0IsR0FBRyxDQUFDLG1DQUFtQyxDQUFDO1NBQ3hDLGdCQUFnQixDQUFDLENBQUMsQ0FBQzs7MEVBQ0E7QUFNdEI7SUFIQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxZQUFZO1NBQzNCLEdBQUcsQ0FBQyxtQ0FBbUMsQ0FBQztTQUN4QyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7OzBFQUNBO0FBU3RCO0lBSEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsWUFBWTtTQUMzQixHQUFHLENBQUMsbUNBQW1DLENBQUM7U0FDeEMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDOzswRUFDQTtBQVF0QjtJQUhDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFlBQVk7U0FDM0IsR0FBRyxDQUFDLG1DQUFtQyxDQUFDO1NBQ3hDLGdCQUFnQixDQUFDLEtBQUssQ0FBQzs7a0ZBQ0s7MkZBckRwQixtQ0FBbUM7a0JBUC9DLFNBQVM7K0JBRUUsbUNBQW1DO3VGQW9EdEIsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQVFYLHFDQUFxQztzQkFBOUMsTUFBTTtnQkFDRSw4QkFBOEI7c0JBQXRDLEtBQUs7Z0JBNkVOLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0FBa0QxQyxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlIQUFpSCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cblxuXG5pbXBvcnQgeyAgIENoYW5nZURldGVjdG9yUmVmLCAgIENvbXBvbmVudCwgICBFdmVudEVtaXR0ZXIsICAgSG9zdExpc3RlbmVyLCAgIEluamVjdG9yLCAgIElucHV0LCAgIE9uSW5pdCwgICBPdXRwdXQsICAgVmlld0NoaWxkLCAgIGluamVjdCwgfSBmcm9tICdAYW5ndWxhci9jb3JlJzsvKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cblxuaW1wb3J0IHsgSGVscGVycywgXyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBUYW9uQWRtaW4gfSBmcm9tICcuL3Rhb24tYWRtaW4uc2VydmljZSc7XG5pbXBvcnQgeyBTdG9yIH0gZnJvbSAndGFvbi1zdG9yYWdlL3dlYnNxbCc7XG5pbXBvcnQgeyAgIENka0RyYWcsICAgQ2RrRHJhZ0VuZCwgICBDZGtEcmFnTW92ZSwgICBDZGtEcmFnUmVsZWFzZSwgICBQb2ludCwgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJzsvKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG5cbmltcG9ydCB7IEJyZWFrcG9pbnRzU2VydmljZSB9IGZyb20gJ3N0YXRpYy1jb2x1bW5zL3dlYnNxbCc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGFvbkFkbWluTW9kZVRhYiB9IGZyb20gJy4vbW9kZWxzL3Rhb24tYWRtaW4tbW9kZS10YWJzJztcbmltcG9ydCB7IFRhb25BZG1pblNlcnZpY2UgfSBmcm9tICcuL3Rhb24tYWRtaW4tY29udHJvbC5zZXJ2aWNlJztcblxuZGVjbGFyZSBjb25zdCBFTlY6IGFueTtcblxuXG5AQ29tcG9uZW50KHtcblxuICBzZWxlY3RvcjogJ2FwcC10YW9uLWFkbWluLW1vZGUtY29uZmlndXJhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi90YW9uLWFkbWluLW1vZGUtY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Rhb24tYWRtaW4tbW9kZS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG5cbn0pXG5leHBvcnQgY2xhc3MgVGFvbkFkbWluTW9kZUNvbmZpZ3VyYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICRkZXN0cm95ID0gbmV3IFN1YmplY3QoKTtcbiAgcHVibGljIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHB1YmxpYyByZWFkb25seSB0YW9uQWRtaW5TZXJ2aWNlID0gaW5qZWN0KFRhb25BZG1pblNlcnZpY2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgaXNEZXNrdG9wOiBib29sZWFuO1xuICBwdWJsaWMgdGFiczogVGFvbkFkbWluTW9kZVRhYltdID0gW107XG4gIHB1YmxpYyBhZG1pbjogVGFvbkFkbWluID0gd2luZG93Wyd0YW9uJ10gYXMgVGFvbkFkbWluO1xuICBwdWJsaWMgaXNXZWJTUUxNb2RlOiBib29sZWFuID0gSGVscGVycy5pc1dlYlNRTDtcbiAgcHVibGljIGhpZGVUYW9uVG9vbHNJblByb2R1Y3Rpb246IGJvb2xlYW4gPVxuICAgIEVOVi5oaWRlVGFvblRvb2xzSW5Qcm9kdWN0aW9uICYmIEVOVi5hbmd1bGFyUHJvZDtcbiAgcHVibGljIGlzSWZyYW1lOiBib29sZWFuID0gd2luZG93LmxvY2F0aW9uICE9PSB3aW5kb3cucGFyZW50LmxvY2F0aW9uO1xuICBwdWJsaWMgaGVpZ2h0OiBudW1iZXIgPSAxMDA7XG4gIHB1YmxpYyBvcGVuZWRPbmNlID0gZmFsc2U7XG4gIHB1YmxpYyByZWxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHNob3dQYXNzY29kZTogYm9vbGVhbiA9XG4gICAgXy5pc1N0cmluZyhFTlYucGFzc2NvZGUpIHx8IF8uaXNPYmplY3QoRU5WLnBhc3Njb2RlKTtcbiAgcHVibGljIHBhc3Njb2RlOiBzdHJpbmcgPSBfLmlzU3RyaW5nKEVOVi5wYXNzY29kZSlcbiAgICA/IEVOVi5wYXNzY29kZVxuICAgIDogXy5pc09iamVjdChFTlYucGFzc2NvZGUpXG4gICAgICA/IEVOVi5wYXNzY29kZS5jb2RlXG4gICAgICA6ICcnO1xuICBwdWJsaWMgbWVzc2FnZTogc3RyaW5nID0gXy5pc09iamVjdChFTlYucGFzc2NvZGUpXG4gICAgPyBFTlYucGFzc2NvZGUubWVzc2FnZVxuICAgIDogdm9pZCAwO1xuXG4gIC8vIEB0cy1pZ25vcmVcbiAgQFN0b3IucHJvcGVydHkuaW4ubG9jYWxzdG9yYWdlXG4gICAgLmZvcihUYW9uQWRtaW5Nb2RlQ29uZmlndXJhdGlvbkNvbXBvbmVudClcbiAgICAud2l0aERlZmF1bHRWYWx1ZSgwKVxuICBkcmFnUG9zaXRpb25YOiBudW1iZXI7XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBAU3Rvci5wcm9wZXJ0eS5pbi5sb2NhbHN0b3JhZ2VcbiAgICAuZm9yKFRhb25BZG1pbk1vZGVDb25maWd1cmF0aW9uQ29tcG9uZW50KVxuICAgIC53aXRoRGVmYXVsdFZhbHVlKDApXG4gIGRyYWdQb3NpdGlvblk6IG51bWJlcjtcblxuICBkcmFnUG9zaXRpb25aZXJvID0geyB4OiAwLCB5OiAwIH0gYXMgUG9pbnQ7XG4gIGRyYWdQb3NpdGlvbjogUG9pbnQ7XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBAU3Rvci5wcm9wZXJ0eS5pbi5sb2NhbHN0b3JhZ2VcbiAgICAuZm9yKFRhb25BZG1pbk1vZGVDb25maWd1cmF0aW9uQ29tcG9uZW50KVxuICAgIC53aXRoRGVmYXVsdFZhbHVlKDApXG4gIHNlbGVjdGVkSW5kZXg6IG51bWJlcjtcblxuICBAVmlld0NoaWxkKCd0YWJHcm91cCcpIHRhYkdyb3VwO1xuXG4gIC8vIEB0cy1pZ25vcmVcbiAgQFN0b3IucHJvcGVydHkuaW4ubG9jYWxzdG9yYWdlXG4gICAgLmZvcihUYW9uQWRtaW5Nb2RlQ29uZmlndXJhdGlvbkNvbXBvbmVudClcbiAgICAud2l0aERlZmF1bHRWYWx1ZShmYWxzZSlcbiAgd2FzT3BlbkRyYWdnYWJsZVBvcHVwOiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKSB0YW9uQWRtaW5Nb2RlQ29uZmlndXJhdGlvbkRhdGFDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSB0YW9uQWRtaW5Nb2RlQ29uZmlndXJhdGlvbkRhdGE6IGFueSA9IHt9O1xuICBwdWJsaWMgZ2V0IG9wZW5lZCgpIHtcbiAgICByZXR1cm4gIXRoaXMuaXNJZnJhbWUgJiYgdGhpcy5hZG1pbi5hZG1pblBhbmVsSXNPcGVuO1xuICB9XG4gIHB1YmxpYyBzZXQgb3BlbmVkKHYpIHtcbiAgICBpZiAodiAmJiAhdGhpcy5vcGVuZWRPbmNlKSB7XG4gICAgICB0aGlzLm9wZW5lZE9uY2UgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy53YXNPcGVuRHJhZ2dhYmxlUG9wdXApIHtcbiAgICAgIHRoaXMud2FzT3BlbkRyYWdnYWJsZVBvcHVwID0gZmFsc2U7XG4gICAgICB0aGlzLmFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZSA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMuYWRtaW4uYWRtaW5QYW5lbElzT3BlbiA9IHY7XG4gIH1cblxuXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBicmVha3BvaW50c1NlcnZpY2U6IEJyZWFrcG9pbnRzU2VydmljZSkge1xuICAgIHRoaXMuYWRtaW4uY21wID0gdGhpcztcbiAgICB0aGlzLmJyZWFrcG9pbnRzU2VydmljZVxuICAgICAgLmxpc3RlblRvKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiRkZXN0cm95KSlcbiAgICAgIC5zdWJzY3JpYmUoYnJlYWtwb2ludCA9PiB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdGhpcy5pc0Rlc2t0b3AgPSBicmVha3BvaW50ID09PSAnZGVza3RvcCc7XG4gICAgICB9KTtcbiAgICB0aGlzLnRhb25BZG1pblNlcnZpY2UuaW5pdCh0aGlzKTtcbiAgfVxuXG5cbiAgcmVsb2FkVGFicygpIHtcbiAgICB0aGlzLnJlbG9hZGluZyA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJlbG9hZGluZyA9IGZhbHNlO1xuICAgICAgY29uc29sZS5sb2coJ3JlbG9hZGluZyBkb25lJyk7XG4gICAgfSk7XG4gIH1cblxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIGF3YWl0IFN0b3IuYXdhaXRQZW5kaW5nT3BlcmF0aW9zKCk7XG5cblxuXG4gICAgdGhpcy5kcmFnUG9zaXRpb24gPSB7IHg6IHRoaXMuZHJhZ1Bvc2l0aW9uWCwgeTogdGhpcy5kcmFnUG9zaXRpb25ZIH07XG4gICAgdGhpcy5vcGVuZWRPbmNlID0gdGhpcy5vcGVuZWQ7XG5cblxuXG5cblxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vQ2FsbGVkIGFmdGVyIG5nQWZ0ZXJDb250ZW50SW5pdCB3aGVuIHRoZSBjb21wb25lbnQncyB2aWV3IGhhcyBiZWVuIGluaXRpYWxpemVkLiBBcHBsaWVzIHRvIGNvbXBvbmVudHMgb25seS5cbiAgICAvL0FkZCAnaW1wbGVtZW50cyBBZnRlclZpZXdJbml0JyB0byB0aGUgY2xhc3MuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcblxuXG4gICAgICBpZiAodGhpcy5hZG1pbi5kcmFnZ2FibGVQb3B1cE1vZGUpIHtcbiAgICAgICAgdGhpcy5yZWxvYWRUYWJzKCk7XG4gICAgICB9XG5cblxuXG5cblxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4kZGVzdHJveS5uZXh0KHZvaWQgMCk7XG4gICAgdGhpcy4kZGVzdHJveS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gIG9uUmVzaXplKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuICB9XG5cblxuXG5cbiAgYXN5bmMgdG9vZ2xlKCkge1xuXG4gICAgdGhpcy5vcGVuZWQgPSAhdGhpcy5vcGVuZWQ7XG4gIH1cblxuICBhc3luYyB0b29nbGVGdWxsU2NyZWVuKCkge1xuICAgIHRoaXMuYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlID0gdHJ1ZTtcbiAgICB0aGlzLmFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZUZ1bGxTY3JlZW4gPVxuICAgICAgIXRoaXMuYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlRnVsbFNjcmVlbjtcbiAgICB0aGlzLnJlc2V0RHJhZygpO1xuICB9XG5cbiAgcmVzZXREcmFnKCkge1xuICAgIHRoaXMuZHJhZ1Bvc2l0aW9uWCA9IDA7XG4gICAgdGhpcy5kcmFnUG9zaXRpb25ZID0gMDtcbiAgICB0aGlzLmRyYWdQb3NpdGlvbiA9IHsgeDogdGhpcy5kcmFnUG9zaXRpb25YLCB5OiB0aGlzLmRyYWdQb3NpdGlvblkgfTtcbiAgfVxuXG4gIG1vdmVkKGM6IENka0RyYWdFbmQpIHtcbiAgICB0aGlzLmRyYWdQb3NpdGlvblggKz0gYy5kaXN0YW5jZS54O1xuICAgIHRoaXMuZHJhZ1Bvc2l0aW9uWSArPSBjLmRpc3RhbmNlLnk7XG4gIH1cblxuICBzY3JvbGxUYWJzKGV2ZW50KSB7XG4gICAgcmV0dXJuO1xuXG5cblxuXG5cblxuXG5cblxuXG4gIH1cblxuXG59XG5cblxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvdWkvdGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24vdGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LnRzIiwiPCEtLSAjcmVnaW9uIGJhc2ljIGdsb2JhbCBjb21wb25lbnRzICAtLT5cbjx0YW9uLXNlc3Npb24tcGFzc2NvZGVcbiAgKm5nSWY9XCJzaG93UGFzc2NvZGVcIlxuICBbcGFzc2NvZGVdPVwicGFzc2NvZGVcIlxuICBbbWVzc2FnZV09XCJtZXNzYWdlXCIgLz5cbjwhLS0gPHRhb24tcHJvZ3Jlc3MtYmFyIFtpc0Rlc2t0b3BdPVwiaXNEZXNrdG9wXCI+PC90YW9uLXByb2dyZXNzLWJhcj4gLS0+XG48IS0tIDx0YW9uLW5vdGlmaWNhdGlvbnM+PC90YW9uLW5vdGlmaWNhdGlvbnM+IC0tPlxuPGJ1dHRvblxuICBtYXQtZmFiXG4gIGNsYXNzPVwiZmFiLWJ1dHRvblwiXG4gIGNvbG9yPVwiYWNjZW50XCJcbiAgYXJpYS1sYWJlbD1cIlRhb24gQWRtaW4gTW9kZVwiXG4gICpuZ0lmPVwiXG4gICAgIWFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZSAmJlxuICAgIGlzRGVza3RvcCAmJlxuICAgICFpc0lmcmFtZSAmJlxuICAgICFoaWRlVGFvblRvb2xzSW5Qcm9kdWN0aW9uXG4gIFwiXG4gIChjbGljayk9XCJ0b29nbGUoKVwiPlxuICA8bWF0LWljb24+YnVpbGQ8L21hdC1pY29uPlxuPC9idXR0b24+XG48IS0tICNlbmRyZWdpb24gLS0+XG5cbjwhLS0gI3JlZ2lvbiBzbWFsbCBoaWRkZW4gYnV0dG9uIC0tPlxuPCEtLSA8YnV0dG9uIGNsYXNzPVwiYWRtaW4tc2hvdy1idXR0b25cIlxuICAgICAgICAqbmdJZj1cIiFhZG1pbi5kcmFnZ2FibGVQb3B1cE1vZGUgJiYgaXNEZXNrdG9wXCJcbiAgICAgICAgKGNsaWNrKT1cInRvb2dsZSgpXCI+IEFkbWluIDwvYnV0dG9uPiAtLT5cbjwhLS0gI2VuZHJlZ2lvbiAtLT5cblxuPG5nLXRlbXBsYXRlICNjb250ZW50Tm9TY3JvbGw+XG4gIDxuZy1jb250ZW50PiA8L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gIDxuZy1zY3JvbGxiYXI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50Tm9TY3JvbGxcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1zY3JvbGxiYXI+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tICNyZWdpb24gYWRtaW4gdGFicyAtLT5cbjxuZy10ZW1wbGF0ZSAjYWRtaW5UYWJzPlxuICA8ZGl2IGNsYXNzPVwidGFvbi1oZWFkZXItYWRtaW4td3JhcHBlclwiPlxuICAgIDxjb2x1bW5zLWNvbnRhaW5lclxuICAgICAgY2xhc3M9XCJ0YW9uLWhlYWRlci1hZG1pblwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdkcmFnZ2FibGUtY29sdW1uJzogYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlIH1cIj5cbiAgICAgIDxjb2x1bW4gd2lkdGg9XCIyMDBcIiBjbGFzcz1cImxvZ28taGVhZGVyXCI+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICAqbmdJZj1cIm9wZW5lZE9uY2VcIlxuICAgICAgICAgIHNyYz1cIi9UVFRUVFRUVE9PT09PT09PX19fX19fX19SUlJSUlJSUkVFRUVFRUVFTU1NTU1NTU1PT09PT09PT1ZWVlZWVlZWRUVFRUVFRUVhc3NldHMvYXNzZXRzLWZvci90YW9uL3NoYXJlZC9sb2dvLWhlYWRlci1hZG1pbi1tb2RlLnBuZ1wiIC8+XG4gICAgICA8L2NvbHVtbj5cblxuICAgICAgPGNvbHVtbiBncm93PlxuICAgICAgICA8IS0tIDxzcGFuPlN1cGVyIEFkbWluIE1vZGU8L3NwYW4+IC0tPlxuICAgICAgPC9jb2x1bW4+XG5cbiAgICAgIDxjb2x1bW5cbiAgICAgICAgd2lkdGg9XCI0MFwiXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgIWFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZUZ1bGxTY3JlZW4gJiYgIWFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZVxuICAgICAgICBcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlXCJcbiAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICBhZG1pbi5kcmFnZ2FibGVQb3B1cE1vZGUgPSBmYWxzZTtcbiAgICAgICAgICAgIG9wZW5lZCA9IGZhbHNlO1xuICAgICAgICAgICAgd2FzT3BlbkRyYWdnYWJsZVBvcHVwID0gdHJ1ZVxuICAgICAgICAgIFwiXG4gICAgICAgICAgY2xhc3M9XCJhZG1pbi1jbG9zZS1idXR0b25cIj5cbiAgICAgICAgICA8bWF0LWljb24+Y2xvc2UgPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiIWFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZVwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvb2dsZSgpXCJcbiAgICAgICAgICBjbGFzcz1cImFkbWluLWNsb3NlLWJ1dHRvblwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9jb2x1bW4+XG5cbiAgICAgIDxjb2x1bW4gd2lkdGg9XCI0MFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCIhYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlRnVsbFNjcmVlblwiXG4gICAgICAgICAgY2xhc3M9XCJhZG1pbi1jbG9zZS1idXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJ0b29nbGVGdWxsU2NyZWVuKClcIj5cbiAgICAgICAgICA8bWF0LWljb24+ZnVsbHNjcmVlbjwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJhZG1pbi5kcmFnZ2FibGVQb3B1cE1vZGVGdWxsU2NyZWVuXCJcbiAgICAgICAgICBjbGFzcz1cImFkbWluLWNsb3NlLWJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvb2dsZUZ1bGxTY3JlZW4oKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZV9mdWxsc2NyZWVuPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2NvbHVtbj5cblxuICAgICAgPGNvbHVtbiB3aWR0aD1cIjQwXCIgKm5nSWY9XCIhYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlRnVsbFNjcmVlblwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCIhYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlXCJcbiAgICAgICAgICAoY2xpY2spPVwiYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlID0gdHJ1ZVwiXG4gICAgICAgICAgY2xhc3M9XCJhZG1pbi1jbG9zZS1idXR0b25cIj5cbiAgICAgICAgICA8bWF0LWljb24+bGF1bmNoPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlXCJcbiAgICAgICAgICAoY2xpY2spPVwiYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlID0gZmFsc2U7IHJlc2V0RHJhZygpXCJcbiAgICAgICAgICBjbGFzcz1cImFkbWluLWNsb3NlLWJ1dHRvblwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBzdHlsZT1cInRyYW5zZm9ybTogcm90YXRlKDE4MGRlZylcIj5sb2dpbjwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9jb2x1bW4+XG4gICAgPC9jb2x1bW5zLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPGNvbHVtbnMtY29udGFpbmVyXG4gICAgW25nQ2xhc3NdPVwieyAnZHJhZ2dhYmxlLWNvbHVtbic6IGFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZSB9XCI+XG4gICAgPGNvbHVtbiBncm93PlxuICAgICAgPG1hdC10YWItZ3JvdXBcbiAgICAgICAgZHluYW1pY0hlaWdodFxuICAgICAgICAod2hlZWwpPVwic2Nyb2xsVGFicygkZXZlbnQpXCJcbiAgICAgICAgI3RhYkdyb3VwXG4gICAgICAgIFtzZWxlY3RlZEluZGV4XT1cInNlbGVjdGVkSW5kZXhcIlxuICAgICAgICAoc2VsZWN0ZWRJbmRleENoYW5nZSk9XCJzZWxlY3RlZEluZGV4ID0gJGV2ZW50XCI+XG4gICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiREIvQ2FjaGVcIj5cbiAgICAgICAgICA8c2VjdGlvbj5cbiAgICAgICAgICAgIDxtYXQtY2FyZD5cbiAgICAgICAgICAgICAgPG1hdC1jYXJkLWhlYWRlcj5cbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQtc3VidGl0bGU+V0VCU1FMIE1PREU8L21hdC1jYXJkLXN1YnRpdGxlPlxuICAgICAgICAgICAgICA8L21hdC1jYXJkLWhlYWRlcj5cbiAgICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc1dlYlNRTE1vZGVcIlxuICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiYWRtaW4ua2VlcFdlYnNxbERiRGF0YUFmdGVyUmVsb2FkXCJcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiXG4gICAgICAgICAgICAgICAgICAgIGFkbWluLnNldEtlZXBXZWJzcWxEYkRhdGFBZnRlclJlbG9hZCgkZXZlbnQuY2hlY2tlZClcbiAgICAgICAgICAgICAgICAgIFwiPlxuICAgICAgICAgICAgICAgICAgRG9uJ3QgcmVtb3ZlIGRhdGEgd2hlbiByZWxvYWRpbmdcbiAgICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgPC9tYXQtY2FyZD5cbiAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgPHRhb24tZGItYWRtaW4gLz5cbiAgICAgICAgPC9tYXQtdGFiPlxuXG4gICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiRmlsZXNcIiAqbmdJZj1cImFkbWluLmVuYWJsZWRUYWJzLmluY2x1ZGVzKCdmaWxlcycpXCI+XG4gICAgICAgICAgPHNlY3Rpb24+XG4gICAgICAgICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgICAgICAgIFtuZ01vZGVsXT1cImFkbWluLmZpbGVzRWRpdE1vZGVcIlxuICAgICAgICAgICAgICAoY2hhbmdlKT1cImFkbWluLnNldEVkaXRNb2RlKCRldmVudC5jaGVja2VkKVwiXG4gICAgICAgICAgICAgID5FZGl0IG1vZGU8L21hdC1jaGVja2JveFxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICA8IS0tIGFkbWluLmZpbGVzRWRpdE1vZGU6IHt7IGFkbWluLmZpbGVzRWRpdE1vZGUgfX0gLS0+XG4gICAgICAgICAgPCEtLSA8dGFvbi1hZG1pbi1lZGl0LW1vZGUgKm5nSWY9XCJhZG1pbi5maWxlc0VkaXRNb2RlXCI+XG4gICAgICAgICAgPC90YW9uLWFkbWluLWVkaXQtbW9kZT4gLS0+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,54 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { TaonAdminModeConfigurationComponent } from './taon-admin-mode-configuration.component';
4
+ import { TaonFullMaterialModule } from '../taon-full-material.module';
5
+ import { StaticColumnsModule } from 'static-columns/websql';
6
+ import { FormsModule } from '@angular/forms';
7
+ import { TaonAdminEditModeModule } from './components/taon-admin-edit-mode';
8
+ import { NgScrollbarModule } from 'ngx-scrollbar';
9
+ import { TaonProgressBarModule } from '../taon-progress-bar';
10
+ import { TaonNotificationsModule } from '../taon-notifications';
11
+ import { TaonSessionPasscodeComponent } from '../taon-session-passcode';
12
+ import * as i0 from "@angular/core";
13
+ export class TaonAdminModeConfigurationModule {
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminModeConfigurationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
15
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminModeConfigurationModule, declarations: [TaonAdminModeConfigurationComponent], imports: [CommonModule,
16
+ StaticColumnsModule,
17
+ FormsModule,
18
+ NgScrollbarModule,
19
+ TaonAdminEditModeModule,
20
+ TaonProgressBarModule,
21
+ TaonNotificationsModule,
22
+ TaonFullMaterialModule, // TODO import only partial things
23
+ TaonSessionPasscodeComponent], exports: [TaonAdminModeConfigurationComponent] }); }
24
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminModeConfigurationModule, imports: [CommonModule,
25
+ StaticColumnsModule,
26
+ FormsModule,
27
+ NgScrollbarModule,
28
+ TaonAdminEditModeModule,
29
+ TaonProgressBarModule,
30
+ TaonNotificationsModule,
31
+ TaonFullMaterialModule, // TODO import only partial things
32
+ TaonSessionPasscodeComponent] }); }
33
+ }
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminModeConfigurationModule, decorators: [{
35
+ type: NgModule,
36
+ args: [{
37
+ imports: [
38
+ CommonModule,
39
+ StaticColumnsModule,
40
+ FormsModule,
41
+ NgScrollbarModule,
42
+ TaonAdminEditModeModule,
43
+ TaonProgressBarModule,
44
+ TaonNotificationsModule,
45
+ TaonFullMaterialModule, // TODO import only partial things
46
+ TaonSessionPasscodeComponent,
47
+ ],
48
+ declarations: [TaonAdminModeConfigurationComponent],
49
+ exports: [TaonAdminModeConfigurationComponent],
50
+ }]
51
+ }] });
52
+ ;
53
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.ts
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL3VpL3Rhb24tYWRtaW4tbW9kZS1jb25maWd1cmF0aW9uL3Rhb24tYWRtaW4tbW9kZS1jb25maWd1cmF0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQVksUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUF1QixNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdoRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFrQnhFLE1BQU0sT0FBTyxnQ0FBZ0M7OEdBQWhDLGdDQUFnQzsrR0FBaEMsZ0NBQWdDLGlCQUg1QixtQ0FBbUMsYUFYaEQsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixXQUFXO1lBQ1gsaUJBQWlCO1lBQ2pCLHVCQUF1QjtZQUN2QixxQkFBcUI7WUFDckIsdUJBQXVCO1lBQ3ZCLHNCQUFzQixFQUFFLGtDQUFrQztZQUUxRCw0QkFBNEIsYUFHcEIsbUNBQW1DOytHQUVsQyxnQ0FBZ0MsWUFkekMsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixXQUFXO1lBQ1gsaUJBQWlCO1lBQ2pCLHVCQUF1QjtZQUN2QixxQkFBcUI7WUFDckIsdUJBQXVCO1lBQ3ZCLHNCQUFzQixFQUFFLGtDQUFrQztZQUUxRCw0QkFBNEI7OzJGQUtuQixnQ0FBZ0M7a0JBaEI1QyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIscUJBQXFCO3dCQUNyQix1QkFBdUI7d0JBQ3ZCLHNCQUFzQixFQUFFLGtDQUFrQzt3QkFFMUQsNEJBQTRCO3FCQUM3QjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyxtQ0FBbUMsQ0FBQztvQkFDbkQsT0FBTyxFQUFFLENBQUMsbUNBQW1DLENBQUM7aUJBQy9DOztBQUlBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsOEdBQThHIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuaW1wb3J0IHsgSW5qZWN0b3IsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGFvbkFkbWluTW9kZUNvbmZpZ3VyYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3Rhb24tYWRtaW4tbW9kZS1jb25maWd1cmF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYW9uRnVsbE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi4vdGFvbi1mdWxsLW1hdGVyaWFsLm1vZHVsZSc7XG5pbXBvcnQgeyBTdGF0aWNDb2x1bW5zTW9kdWxlIH0gZnJvbSAnc3RhdGljLWNvbHVtbnMvd2Vic3FsJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGFvbkFkbWluRWRpdE1vZGVNb2R1bGUgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFvbi1hZG1pbi1lZGl0LW1vZGUnO1xuaW1wb3J0IHsgTmdTY3JvbGxiYXJNb2R1bGUgfSBmcm9tICduZ3gtc2Nyb2xsYmFyJztcbmltcG9ydCB7IFRhb25Qcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJy4uL3Rhb24tcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7IFRhb25Ob3RpZmljYXRpb25zTW9kdWxlIH0gZnJvbSAnLi4vdGFvbi1ub3RpZmljYXRpb25zJztcbmltcG9ydCB7IGNyZWF0ZUN1c3RvbUVsZW1lbnQgfSBmcm9tICdAYW5ndWxhci9lbGVtZW50cyc7XG5cbmltcG9ydCB7IFRhb25TZXNzaW9uUGFzc2NvZGVDb21wb25lbnQgfSBmcm9tICcuLi90YW9uLXNlc3Npb24tcGFzc2NvZGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFN0YXRpY0NvbHVtbnNNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTmdTY3JvbGxiYXJNb2R1bGUsXG4gICAgVGFvbkFkbWluRWRpdE1vZGVNb2R1bGUsXG4gICAgVGFvblByb2dyZXNzQmFyTW9kdWxlLFxuICAgIFRhb25Ob3RpZmljYXRpb25zTW9kdWxlLFxuICAgIFRhb25GdWxsTWF0ZXJpYWxNb2R1bGUsIC8vIFRPRE8gaW1wb3J0IG9ubHkgcGFydGlhbCB0aGluZ3NcblxuICAgIFRhb25TZXNzaW9uUGFzc2NvZGVDb21wb25lbnQsXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1Rhb25BZG1pbk1vZGVDb25maWd1cmF0aW9uQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW1Rhb25BZG1pbk1vZGVDb25maWd1cmF0aW9uQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgVGFvbkFkbWluTW9kZUNvbmZpZ3VyYXRpb25Nb2R1bGUge31cblxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvdWkvdGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24vdGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24ubW9kdWxlLnRzIl19
@@ -0,0 +1,179 @@
1
+ import { A11yModule } from '@angular/cdk/a11y';
2
+ import { DragDropModule } from '@angular/cdk/drag-drop';
3
+ import { ScrollingModule } from '@angular/cdk/scrolling';
4
+ import { CdkStepperModule } from '@angular/cdk/stepper';
5
+ import { CdkTableModule } from '@angular/cdk/table';
6
+ import { CdkTreeModule } from '@angular/cdk/tree';
7
+ import { NgModule } from '@angular/core';
8
+ import { MatAutocompleteModule } from '@angular/material/autocomplete';
9
+ import { MatBadgeModule } from '@angular/material/badge';
10
+ import { MatBottomSheetModule } from '@angular/material/bottom-sheet';
11
+ import { MatButtonModule } from '@angular/material/button';
12
+ import { MatCardModule } from '@angular/material/card';
13
+ import { MatCheckboxModule } from '@angular/material/checkbox';
14
+ import { MatButtonToggleModule } from '@angular/material/button-toggle';
15
+ import { MatStepperModule } from '@angular/material/stepper';
16
+ import { MatDialogModule } from '@angular/material/dialog';
17
+ import { MatExpansionModule } from '@angular/material/expansion';
18
+ import { MatGridListModule } from '@angular/material/grid-list';
19
+ import { MatIconModule } from '@angular/material/icon';
20
+ import { MatListModule } from '@angular/material/list';
21
+ import { MatDatepickerModule } from '@angular/material/datepicker';
22
+ import { MatPaginatorModule } from '@angular/material/paginator';
23
+ import { MatProgressBarModule } from '@angular/material/progress-bar';
24
+ import { MatChipsModule } from '@angular/material/chips';
25
+ import { MatDividerModule } from '@angular/material/divider';
26
+ import { MatInputModule } from '@angular/material/input';
27
+ import { MatMenuModule } from '@angular/material/menu';
28
+ import { MatNativeDateModule } from '@angular/material/core';
29
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
30
+ import { MatRadioModule } from '@angular/material/radio';
31
+ import { MatRippleModule } from '@angular/material/core';
32
+ import { MatSelectModule } from '@angular/material/select';
33
+ import { MatSidenavModule } from '@angular/material/sidenav';
34
+ import { MatSliderModule } from '@angular/material/slider';
35
+ import { MatSlideToggleModule } from '@angular/material/slide-toggle';
36
+ import { MatSnackBarModule } from '@angular/material/snack-bar';
37
+ import { MatSortModule } from '@angular/material/sort';
38
+ import { MatTableModule } from '@angular/material/table';
39
+ import { MatTabsModule } from '@angular/material/tabs';
40
+ import { MatToolbarModule } from '@angular/material/toolbar';
41
+ import { MatTooltipModule } from '@angular/material/tooltip';
42
+ import { MatTreeModule } from '@angular/material/tree';
43
+ import * as i0 from "@angular/core";
44
+ export class TaonFullMaterialModule {
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonFullMaterialModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
46
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: TaonFullMaterialModule, exports: [A11yModule,
47
+ CdkStepperModule,
48
+ CdkTableModule,
49
+ CdkTreeModule,
50
+ DragDropModule,
51
+ MatAutocompleteModule,
52
+ MatBadgeModule,
53
+ MatBottomSheetModule,
54
+ MatButtonModule,
55
+ MatButtonToggleModule,
56
+ MatCardModule,
57
+ MatCheckboxModule,
58
+ MatChipsModule,
59
+ MatStepperModule,
60
+ MatDatepickerModule,
61
+ MatDialogModule,
62
+ MatDividerModule,
63
+ MatExpansionModule,
64
+ MatGridListModule,
65
+ MatIconModule,
66
+ MatInputModule,
67
+ MatListModule,
68
+ MatMenuModule,
69
+ MatNativeDateModule,
70
+ MatPaginatorModule,
71
+ MatProgressBarModule,
72
+ MatProgressSpinnerModule,
73
+ MatRadioModule,
74
+ MatRippleModule,
75
+ MatSelectModule,
76
+ MatSidenavModule,
77
+ MatSliderModule,
78
+ MatSlideToggleModule,
79
+ MatSnackBarModule,
80
+ MatSortModule,
81
+ MatTableModule,
82
+ MatTabsModule,
83
+ MatToolbarModule,
84
+ MatTooltipModule,
85
+ MatTreeModule,
86
+ ScrollingModule] }); }
87
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonFullMaterialModule, imports: [A11yModule,
88
+ CdkStepperModule,
89
+ CdkTableModule,
90
+ CdkTreeModule,
91
+ DragDropModule,
92
+ MatAutocompleteModule,
93
+ MatBadgeModule,
94
+ MatBottomSheetModule,
95
+ MatButtonModule,
96
+ MatButtonToggleModule,
97
+ MatCardModule,
98
+ MatCheckboxModule,
99
+ MatChipsModule,
100
+ MatStepperModule,
101
+ MatDatepickerModule,
102
+ MatDialogModule,
103
+ MatDividerModule,
104
+ MatExpansionModule,
105
+ MatGridListModule,
106
+ MatIconModule,
107
+ MatInputModule,
108
+ MatListModule,
109
+ MatMenuModule,
110
+ MatNativeDateModule,
111
+ MatPaginatorModule,
112
+ MatProgressBarModule,
113
+ MatProgressSpinnerModule,
114
+ MatRadioModule,
115
+ MatRippleModule,
116
+ MatSelectModule,
117
+ MatSidenavModule,
118
+ MatSliderModule,
119
+ MatSlideToggleModule,
120
+ MatSnackBarModule,
121
+ MatSortModule,
122
+ MatTableModule,
123
+ MatTabsModule,
124
+ MatToolbarModule,
125
+ MatTooltipModule,
126
+ MatTreeModule,
127
+ ScrollingModule] }); }
128
+ }
129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonFullMaterialModule, decorators: [{
130
+ type: NgModule,
131
+ args: [{
132
+ exports: [
133
+ A11yModule,
134
+ CdkStepperModule,
135
+ CdkTableModule,
136
+ CdkTreeModule,
137
+ DragDropModule,
138
+ MatAutocompleteModule,
139
+ MatBadgeModule,
140
+ MatBottomSheetModule,
141
+ MatButtonModule,
142
+ MatButtonToggleModule,
143
+ MatCardModule,
144
+ MatCheckboxModule,
145
+ MatChipsModule,
146
+ MatStepperModule,
147
+ MatDatepickerModule,
148
+ MatDialogModule,
149
+ MatDividerModule,
150
+ MatExpansionModule,
151
+ MatGridListModule,
152
+ MatIconModule,
153
+ MatInputModule,
154
+ MatListModule,
155
+ MatMenuModule,
156
+ MatNativeDateModule,
157
+ MatPaginatorModule,
158
+ MatProgressBarModule,
159
+ MatProgressSpinnerModule,
160
+ MatRadioModule,
161
+ MatRippleModule,
162
+ MatSelectModule,
163
+ MatSidenavModule,
164
+ MatSliderModule,
165
+ MatSlideToggleModule,
166
+ MatSnackBarModule,
167
+ MatSortModule,
168
+ MatTableModule,
169
+ MatTabsModule,
170
+ MatToolbarModule,
171
+ MatTooltipModule,
172
+ MatTreeModule,
173
+ ScrollingModule,
174
+ ],
175
+ }]
176
+ }] });
177
+ ;
178
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-full-material.module.ts
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFvbi1mdWxsLW1hdGVyaWFsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90YW9uL3Byb2plY3RzL3Rhb24vc3JjL2xpYi91aS90YW9uLWZ1bGwtbWF0ZXJpYWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7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ZUFBZTtxQkFDaEI7aUJBQ0Y7O0FBSUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxxRUFBcUUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IFNjcm9sbGluZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHsgQ2RrU3RlcHBlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zdGVwcGVyJztcbmltcG9ydCB7IENka1RhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RhYmxlJztcbmltcG9ydCB7IENka1RyZWVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdHJlZSc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2UnO1xuaW1wb3J0IHsgTWF0Qm90dG9tU2hlZXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ib3R0b20tc2hlZXQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZSc7XG5pbXBvcnQgeyBNYXRTdGVwcGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc3RlcHBlcic7XG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0RXhwYW5zaW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcbmltcG9ydCB7IE1hdEdyaWRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZ3JpZC1saXN0JztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdFBhZ2luYXRvck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0TmF0aXZlRGF0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcbmltcG9ydCB7IE1hdFJpcHBsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdFNpZGVuYXZNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7IE1hdFNsaWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlcic7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBNYXRTbmFja0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBNYXRTb3J0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcbmltcG9ydCB7IE1hdFRvb2xiYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sYmFyJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IE1hdFRyZWVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90cmVlJztcblxuQE5nTW9kdWxlKHtcbiAgZXhwb3J0czogW1xuICAgIEExMXlNb2R1bGUsXG4gICAgQ2RrU3RlcHBlck1vZHVsZSxcbiAgICBDZGtUYWJsZU1vZHVsZSxcbiAgICBDZGtUcmVlTW9kdWxlLFxuICAgIERyYWdEcm9wTW9kdWxlLFxuICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBNYXRCYWRnZU1vZHVsZSxcbiAgICBNYXRCb3R0b21TaGVldE1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlLFxuICAgIE1hdENhcmRNb2R1bGUsXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXG4gICAgTWF0Q2hpcHNNb2R1bGUsXG4gICAgTWF0U3RlcHBlck1vZHVsZSxcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICBNYXREaXZpZGVyTW9kdWxlLFxuICAgIE1hdEV4cGFuc2lvbk1vZHVsZSxcbiAgICBNYXRHcmlkTGlzdE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdExpc3RNb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxuICAgIE1hdFBhZ2luYXRvck1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgTWF0UmFkaW9Nb2R1bGUsXG4gICAgTWF0UmlwcGxlTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXRTaWRlbmF2TW9kdWxlLFxuICAgIE1hdFNsaWRlck1vZHVsZSxcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcbiAgICBNYXRTbmFja0Jhck1vZHVsZSxcbiAgICBNYXRTb3J0TW9kdWxlLFxuICAgIE1hdFRhYmxlTW9kdWxlLFxuICAgIE1hdFRhYnNNb2R1bGUsXG4gICAgTWF0VG9vbGJhck1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdFRyZWVNb2R1bGUsXG4gICAgU2Nyb2xsaW5nTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUYW9uRnVsbE1hdGVyaWFsTW9kdWxlIHt9XG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL3VpL3Rhb24tZnVsbC1tYXRlcmlhbC5tb2R1bGUudHMiXX0=
@@ -0,0 +1,5 @@
1
+ export * from './taon-github-fork-me-corner.component';
2
+ export * from './taon-github-fork-me-corner.module';
3
+ ;
4
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-github-fork-me-corner/index.ts
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvdWkvdGFvbi1naXRodWItZm9yay1tZS1jb3JuZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsY0FBYyx3Q0FBd0MsQ0FBQztBQUd2RCxjQUFjLHFDQUFxQyxDQUFDO0FBRW5ELENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsNEVBQTRFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuZXhwb3J0ICogZnJvbSAnLi90YW9uLWdpdGh1Yi1mb3JrLW1lLWNvcm5lci5jb21wb25lbnQnO1xuXG5cbmV4cG9ydCAqIGZyb20gJy4vdGFvbi1naXRodWItZm9yay1tZS1jb3JuZXIubW9kdWxlJztcblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL3VpL3Rhb24tZ2l0aHViLWZvcmstbWUtY29ybmVyL2luZGV4LnRzIl19
@@ -0,0 +1,18 @@
1
+ import { Component, Input, } from '@angular/core'; /* */
2
+ import * as i0 from "@angular/core";
3
+ export class TaonGithubForkMeCornerComponent {
4
+ constructor() {
5
+ this.url = 'https://github.com';
6
+ }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonGithubForkMeCornerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: TaonGithubForkMeCornerComponent, selector: "taon-github-fork-me-corner", inputs: { url: "url" }, ngImport: i0, template: "<a href=\"{{ url }}\" class=\"github-corner\" aria-label=\"View source on GitHub\"\n ><svg\n width=\"80\"\n height=\"80\"\n viewBox=\"0 0 250 250\"\n style=\"\n fill: #151513;\n color: #fff;\n position: absolute;\n top: 0;\n border: 0;\n right: 0;\n \"\n aria-hidden=\"true\">\n <path d=\"M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z\"></path>\n <path\n d=\"M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2\"\n fill=\"currentColor\"\n style=\"transform-origin: 130px 106px\"\n class=\"octo-arm\"></path>\n <path\n d=\"M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z\"\n fill=\"currentColor\"\n class=\"octo-body\"></path>\n </svg>\n</a>\n", styles: ["a{opacity:.7}a:hover{opacity:1}.github-corner:hover .octo-arm{opacity:1;animation:octocat-wave .56s ease-in-out}@keyframes octocat-wave{0%,to{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width: 500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave .56s ease-in-out}}\n"] }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonGithubForkMeCornerComponent, decorators: [{
11
+ type: Component,
12
+ args: [{ selector: 'taon-github-fork-me-corner', template: "<a href=\"{{ url }}\" class=\"github-corner\" aria-label=\"View source on GitHub\"\n ><svg\n width=\"80\"\n height=\"80\"\n viewBox=\"0 0 250 250\"\n style=\"\n fill: #151513;\n color: #fff;\n position: absolute;\n top: 0;\n border: 0;\n right: 0;\n \"\n aria-hidden=\"true\">\n <path d=\"M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z\"></path>\n <path\n d=\"M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2\"\n fill=\"currentColor\"\n style=\"transform-origin: 130px 106px\"\n class=\"octo-arm\"></path>\n <path\n d=\"M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z\"\n fill=\"currentColor\"\n class=\"octo-body\"></path>\n </svg>\n</a>\n", styles: ["a{opacity:.7}a:hover{opacity:1}.github-corner:hover .octo-arm{opacity:1;animation:octocat-wave .56s ease-in-out}@keyframes octocat-wave{0%,to{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width: 500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave .56s ease-in-out}}\n"] }]
13
+ }], propDecorators: { url: [{
14
+ type: Input
15
+ }] } });
16
+ ;
17
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.ts
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFvbi1naXRodWItZm9yay1tZS1jb3JuZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL3VpL3Rhb24tZ2l0aHViLWZvcmstbWUtY29ybmVyL3Rhb24tZ2l0aHViLWZvcmstbWUtY29ybmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90YW9uL3Byb2plY3RzL3Rhb24vc3JjL2xpYi91aS90YW9uLWdpdGh1Yi1mb3JrLW1lLWNvcm5lci90YW9uLWdpdGh1Yi1mb3JrLW1lLWNvcm5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUksU0FBUyxFQUFtQyxLQUFLLEdBQXVCLE1BQU0sZUFBZSxDQUFDLENBQUEsS0FBSzs7QUFlOUcsTUFBTSxPQUFPLCtCQUErQjtJQUw1QztRQU1XLFFBQUcsR0FBVyxvQkFBb0IsQ0FBQztLQUM3Qzs4R0FGWSwrQkFBK0I7a0dBQS9CLCtCQUErQiwwRkNsQjVDLCswQ0EwQkE7OzJGRFJhLCtCQUErQjtrQkFMM0MsU0FBUzsrQkFDRSw0QkFBNEI7OEJBSzdCLEdBQUc7c0JBQVgsS0FBSzs7QUFHUCxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDJHQUEyRyIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbmltcG9ydCB7ICAgQ29tcG9uZW50LCAgIEV2ZW50RW1pdHRlciwgICBIb3N0QmluZGluZywgICBJbnB1dCwgICBPbkluaXQsICAgT3V0cHV0LCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnOy8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG5cbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0YW9uLWdpdGh1Yi1mb3JrLW1lLWNvcm5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90YW9uLWdpdGh1Yi1mb3JrLW1lLWNvcm5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Rhb24tZ2l0aHViLWZvcmstbWUtY29ybmVyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRhb25HaXRodWJGb3JrTWVDb3JuZXJDb21wb25lbnQge1xuICBASW5wdXQoKSB1cmw6IHN0cmluZyA9ICdodHRwczovL2dpdGh1Yi5jb20nO1xufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvdWkvdGFvbi1naXRodWItZm9yay1tZS1jb3JuZXIvdGFvbi1naXRodWItZm9yay1tZS1jb3JuZXIuY29tcG9uZW50LnRzIiwiPGEgaHJlZj1cInt7IHVybCB9fVwiIGNsYXNzPVwiZ2l0aHViLWNvcm5lclwiIGFyaWEtbGFiZWw9XCJWaWV3IHNvdXJjZSBvbiBHaXRIdWJcIlxuICA+PHN2Z1xuICAgIHdpZHRoPVwiODBcIlxuICAgIGhlaWdodD1cIjgwXCJcbiAgICB2aWV3Qm94PVwiMCAwIDI1MCAyNTBcIlxuICAgIHN0eWxlPVwiXG4gICAgICBmaWxsOiAjMTUxNTEzO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICByaWdodDogMDtcbiAgICBcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgIDxwYXRoIGQ9XCJNMCwwIEwxMTUsMTE1IEwxMzAsMTE1IEwxNDIsMTQyIEwyNTAsMjUwIEwyNTAsMCBaXCI+PC9wYXRoPlxuICAgIDxwYXRoXG4gICAgICBkPVwiTTEyOC4zLDEwOS4wIEMxMTMuOCw5OS43IDExOS4wLDg5LjYgMTE5LjAsODkuNiBDMTIyLjAsODIuNyAxMjAuNSw3OC42IDEyMC41LDc4LjYgQzExOS4yLDcyLjAgMTIzLjQsNzYuMyAxMjMuNCw3Ni4zIEMxMjcuMyw4MC45IDEyNS41LDg3LjMgMTI1LjUsODcuMyBDMTIyLjksOTcuNiAxMzAuNiwxMDEuOSAxMzQuNCwxMDMuMlwiXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIHN0eWxlPVwidHJhbnNmb3JtLW9yaWdpbjogMTMwcHggMTA2cHhcIlxuICAgICAgY2xhc3M9XCJvY3RvLWFybVwiPjwvcGF0aD5cbiAgICA8cGF0aFxuICAgICAgZD1cIk0xMTUuMCwxMTUuMCBDMTE0LjksMTE1LjEgMTE4LjcsMTE2LjUgMTE5LjgsMTE1LjQgTDEzMy43LDEwMS42IEMxMzYuOSw5OS4yIDEzOS45LDk4LjQgMTQyLjIsOTguNiBDMTMzLjgsODguMCAxMjcuNSw3NC40IDE0My44LDU4LjAgQzE0OC41LDUzLjQgMTU0LjAsNTEuMiAxNTkuNyw1MS4wIEMxNjAuMyw0OS40IDE2My4yLDQzLjYgMTcxLjQsNDAuMSBDMTcxLjQsNDAuMSAxNzYuMSw0Mi41IDE3OC44LDU2LjIgQzE4My4xLDU4LjYgMTg3LjIsNjEuOCAxOTAuOSw2NS40IEMxOTQuNSw2OS4wIDE5Ny43LDczLjIgMjAwLjEsNzcuNiBDMjEzLjgsODAuMiAyMTYuMyw4NC45IDIxNi4zLDg0LjkgQzIxMi43LDkzLjEgMjA2LjksOTYuMCAyMDUuNCw5Ni42IEMyMDUuMSwxMDIuNCAyMDMuMCwxMDcuOCAxOTguMywxMTIuNSBDMTgxLjksMTI4LjkgMTY4LjMsMTIyLjUgMTU3LjcsMTE0LjEgQzE1Ny45LDExNi45IDE1Ni43LDEyMC45IDE1Mi43LDEyNC45IEwxNDEuMCwxMzYuNSBDMTM5LjgsMTM3LjcgMTQxLjYsMTQxLjkgMTQxLjgsMTQxLjggWlwiXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGNsYXNzPVwib2N0by1ib2R5XCI+PC9wYXRoPlxuICA8L3N2Zz5cbjwvYT5cbiJdfQ==