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
@@ -1,19 +1,95 @@
1
1
  import 'reflect-metadata';
2
2
  import * as coreHelpers from 'tnp-core/browser';
3
- import { _, Helpers } from 'tnp-core/browser';
3
+ import { _ as _$1, Helpers } from 'tnp-core/browser';
4
4
  import { Models as Models$1, RestHeaders, Resource, Mapping } from 'ng2-rest/browser';
5
5
  import { OrignalClassKey } from 'taon-typeorm/browser';
6
6
  import { SYMBOL, CLASS } from 'typescript-class-helpers/browser';
7
7
  import * as JSON5 from 'json5';
8
8
  import { __decorate, __param, __metadata } from 'tslib';
9
9
  import { JSON10 } from 'json10/browser';
10
- import { Observable, from, Subject } from 'rxjs';
10
+ import { Observable, from, Subject, interval, tap, defer, fromEvent, map, debounceTime, distinctUntilChanged, share, Subscription, takeUntil, of } from 'rxjs';
11
11
  import axios from 'axios';
12
12
  import { io } from 'socket.io-client';
13
13
  import { Stor } from 'taon-storage/browser';
14
14
  import { config } from 'tnp-config/browser';
15
15
  import * as i0 from '@angular/core';
16
- import { Injectable, inject as inject$1 } from '@angular/core';
16
+ import { Injectable, inject as inject$1, EventEmitter, Directive, Input, Output, HostBinding, HostListener, Pipe, NgModule, Component, DestroyRef, Self, ViewChild, ChangeDetectorRef } from '@angular/core';
17
+ import { Log, Level } from 'ng2-logger/browser';
18
+ import * as i1 from '@angular/platform-browser';
19
+ import { A11yModule } from '@angular/cdk/a11y';
20
+ import * as i5 from '@angular/cdk/drag-drop';
21
+ import { DragDropModule } from '@angular/cdk/drag-drop';
22
+ import { ScrollingModule } from '@angular/cdk/scrolling';
23
+ import { CdkStepperModule } from '@angular/cdk/stepper';
24
+ import { CdkTableModule } from '@angular/cdk/table';
25
+ import { CdkTreeModule } from '@angular/cdk/tree';
26
+ import { MatAutocompleteModule } from '@angular/material/autocomplete';
27
+ import { MatBadgeModule } from '@angular/material/badge';
28
+ import { MatBottomSheetModule } from '@angular/material/bottom-sheet';
29
+ import * as i6$1 from '@angular/material/button';
30
+ import { MatButtonModule } from '@angular/material/button';
31
+ import * as i7 from '@angular/material/card';
32
+ import { MatCardModule } from '@angular/material/card';
33
+ import * as i8 from '@angular/material/checkbox';
34
+ import { MatCheckboxModule } from '@angular/material/checkbox';
35
+ import { MatButtonToggleModule } from '@angular/material/button-toggle';
36
+ import { MatStepperModule } from '@angular/material/stepper';
37
+ import { MatDialogModule } from '@angular/material/dialog';
38
+ import { MatExpansionModule } from '@angular/material/expansion';
39
+ import { MatGridListModule } from '@angular/material/grid-list';
40
+ import * as i6 from '@angular/material/icon';
41
+ import { MatIconModule } from '@angular/material/icon';
42
+ import * as i11$1 from '@angular/material/list';
43
+ import { MatListModule } from '@angular/material/list';
44
+ import { MatDatepickerModule } from '@angular/material/datepicker';
45
+ import { MatPaginatorModule } from '@angular/material/paginator';
46
+ import { MatProgressBarModule } from '@angular/material/progress-bar';
47
+ import { MatChipsModule } from '@angular/material/chips';
48
+ import { MatDividerModule } from '@angular/material/divider';
49
+ import * as i4 from '@angular/material/input';
50
+ import { MatInputModule } from '@angular/material/input';
51
+ import { MatMenuModule } from '@angular/material/menu';
52
+ import { MatNativeDateModule, MatRippleModule } from '@angular/material/core';
53
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
54
+ import { MatRadioModule } from '@angular/material/radio';
55
+ import { MatSelectModule } from '@angular/material/select';
56
+ import * as i10 from '@angular/material/sidenav';
57
+ import { MatSidenavModule } from '@angular/material/sidenav';
58
+ import { MatSliderModule } from '@angular/material/slider';
59
+ import { MatSlideToggleModule } from '@angular/material/slide-toggle';
60
+ import { MatSnackBarModule } from '@angular/material/snack-bar';
61
+ import { MatSortModule } from '@angular/material/sort';
62
+ import { MatTableModule } from '@angular/material/table';
63
+ import * as i11 from '@angular/material/tabs';
64
+ import { MatTabsModule } from '@angular/material/tabs';
65
+ import { MatToolbarModule } from '@angular/material/toolbar';
66
+ import { MatTooltipModule } from '@angular/material/tooltip';
67
+ import { MatTreeModule } from '@angular/material/tree';
68
+ import * as i2$1 from '@angular/common';
69
+ import { CommonModule } from '@angular/common';
70
+ import * as i1$1 from '@ngneat/hot-toast';
71
+ import * as i2 from '@angular/forms';
72
+ import { FormGroup, FormControl, ReactiveFormsModule, FormsModule } from '@angular/forms';
73
+ import { PasswordModule } from 'primeng/password';
74
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
75
+ import * as i1$2 from 'ngx-progressbar';
76
+ import { NgProgressModule } from 'ngx-progressbar';
77
+ import * as _ from 'lodash';
78
+ import * as i2$2 from '@angular/material/form-field';
79
+ import { MatFormFieldModule } from '@angular/material/form-field';
80
+ import * as i3 from '@ng-matero/extensions/grid';
81
+ import { MtxGridModule } from '@ng-matero/extensions/grid';
82
+ import * as i1$3 from 'static-columns/browser';
83
+ import { StaticColumnsModule } from 'static-columns/browser';
84
+ import * as i4$1 from 'ngx-scrollbar';
85
+ import { NgScrollbarModule } from 'ngx-scrollbar';
86
+ import * as i1$4 from '@angular/router';
87
+ import 'brace';
88
+ import 'brace/mode/css';
89
+ import 'brace/mode/typescript';
90
+ import 'brace/theme/github';
91
+ import * as i13 from 'ngx-pipes';
92
+ import { NgArrayPipesModule } from 'ngx-pipes';
17
93
 
18
94
  var Symbols;
19
95
  (function (Symbols) {
@@ -50,7 +126,7 @@ var Symbols;
50
126
  return `${contextName}:${this.KEYroomUnsubscribe}CustomRoomEvent`;
51
127
  }
52
128
  ROOM_NAME_UPDATE_ENTITY(contextName, className, entityId) {
53
- return `${contextName}:room${_.camelCase(className)}${entityId}`.toLowerCase();
129
+ return `${contextName}:room${_$1.camelCase(className)}${entityId}`.toLowerCase();
54
130
  }
55
131
  ROOM_SUBSCRIBE_ENTITY_UPDATE_EVENTS(contextName) {
56
132
  return `${contextName}:${this.KEYroomSubscribe}EntityEvents`;
@@ -59,7 +135,7 @@ var Symbols;
59
135
  return `${contextName}:${this.KEYroomUnsubscribe}EntityEvents`;
60
136
  }
61
137
  ROOM_NAME_UPDATE_ENTITY_PROPERTY(contextName, className, property, entityId) {
62
- return `${contextName}:room${_.camelCase(className)}${_.camelCase(property)}${entityId}`.toLowerCase();
138
+ return `${contextName}:room${_$1.camelCase(className)}${_$1.camelCase(property)}${entityId}`.toLowerCase();
63
139
  }
64
140
  ROOM_SUBSCRIBE_ENTITY_PROPERTY_UPDATE_EVENTS(contextName) {
65
141
  return `${contextName}:${this.KEYroomSubscribe}EntityPropertyEvents`;
@@ -112,7 +188,7 @@ var Validators;
112
188
  (function (Validators) {
113
189
  Validators.classNameVlidation = (className, target) => {
114
190
  setTimeout(() => {
115
- if (_.isUndefined(className)) {
191
+ if (_$1.isUndefined(className)) {
116
192
  throw `[Taon]
117
193
  Please provide "className" property for each Controller and Entity:
118
194
 
@@ -132,7 +208,7 @@ var Validators;
132
208
  `;
133
209
  }
134
210
  });
135
- return _.isUndefined(className) ? target.name : className;
211
+ return _$1.isUndefined(className) ? target.name : className;
136
212
  };
137
213
  Validators.checkIfMethodsWithReponseTYpeAlowed = (methods, current) => {
138
214
  const defaultResponseType = 'text or JSON';
@@ -155,8 +231,8 @@ var Validators;
155
231
  }
156
232
  };
157
233
  Validators.validateClassFunctions = (controllers, entities, proviers, repositories) => {
158
- if (_.isArray(controllers) &&
159
- controllers.filter(f => !_.isFunction(f)).length > 0) {
234
+ if (_$1.isArray(controllers) &&
235
+ controllers.filter(f => !_$1.isFunction(f)).length > 0) {
160
236
  console.error('controllers', controllers);
161
237
  throw `
162
238
 
@@ -164,8 +240,8 @@ var Validators;
164
240
 
165
241
  `;
166
242
  }
167
- if (_.isArray(entities) &&
168
- entities.filter(f => !_.isFunction(f)).length > 0) {
243
+ if (_$1.isArray(entities) &&
244
+ entities.filter(f => !_$1.isFunction(f)).length > 0) {
169
245
  console.error('entites', entities);
170
246
  throw `
171
247
 
@@ -175,7 +251,7 @@ var Validators;
175
251
  }
176
252
  };
177
253
  Validators.preventUndefinedModel = (model, id) => {
178
- if (_.isUndefined(model)) {
254
+ if (_$1.isUndefined(model)) {
179
255
  throw `Bad update by id, config, id: ${id}`;
180
256
  }
181
257
  };
@@ -186,7 +262,7 @@ var Validators;
186
262
  var TaonHelpers;
187
263
  (function (TaonHelpers) {
188
264
  TaonHelpers.fillUpTo = (s, nCharacters) => {
189
- return _.times(nCharacters, n => {
265
+ return _$1.times(nCharacters, n => {
190
266
  if (s.charAt(n)) {
191
267
  return s.charAt(n);
192
268
  }
@@ -234,7 +310,7 @@ var TaonHelpers;
234
310
  return {};
235
311
  };
236
312
  TaonHelpers.parseJSONwithStringJSONs = (object, waring = false) => {
237
- if (!_.isObject(object)) {
313
+ if (!_$1.isObject(object)) {
238
314
  if (waring) {
239
315
  console.error(`
240
316
  parseJSONwithStringJSONs(...)
@@ -243,7 +319,7 @@ var TaonHelpers;
243
319
  }
244
320
  return object;
245
321
  }
246
- let res = _.cloneDeep(object);
322
+ let res = _$1.cloneDeep(object);
247
323
  Object.keys(res).forEach(key => {
248
324
  let isJson = false;
249
325
  try {
@@ -308,7 +384,7 @@ var ClassHelpers;
308
384
  * TODO - repalce in every place when getting class fn from object
309
385
  */
310
386
  ClassHelpers.getClassFnFromObject = (json) => {
311
- if (_.isUndefined(json) || _.isNull(json)) {
387
+ if (_$1.isUndefined(json) || _$1.isNull(json)) {
312
388
  return;
313
389
  }
314
390
  if (json.constructor) {
@@ -349,25 +425,25 @@ var ClassHelpers;
349
425
  void 0);
350
426
  };
351
427
  ClassHelpers.getUniqueKey = (classFnOrObject) => {
352
- const classFn = _.isFunction(classFnOrObject)
428
+ const classFn = _$1.isFunction(classFnOrObject)
353
429
  ? classFnOrObject
354
430
  : classFnOrObject.constructor;
355
431
  const config = Reflect.getMetadata(Symbols.metadata.options.controller, classFn);
356
432
  return config.uniqueKeyProp;
357
433
  };
358
434
  ClassHelpers.isContextClassObject = (obj) => {
359
- if (!_.isObject(obj) ||
360
- _.isArray(obj) ||
361
- _.isRegExp(obj) ||
362
- _.isBuffer(obj) ||
363
- _.isArrayBuffer(obj)) {
435
+ if (!_$1.isObject(obj) ||
436
+ _$1.isArray(obj) ||
437
+ _$1.isRegExp(obj) ||
438
+ _$1.isBuffer(obj) ||
439
+ _$1.isArrayBuffer(obj)) {
364
440
  return false;
365
441
  }
366
- if (_.isDate(obj)) {
442
+ if (_$1.isDate(obj)) {
367
443
  return true;
368
444
  }
369
445
  const className = ClassHelpers.getName(obj);
370
- return _.isString(className) && className !== 'Object';
446
+ return _$1.isString(className) && className !== 'Object';
371
447
  };
372
448
  ClassHelpers.setName = (target, className) => {
373
449
  Validators.classNameVlidation(className, target);
@@ -379,7 +455,7 @@ var ClassHelpers;
379
455
  }
380
456
  targets.push(target);
381
457
  let targetProto = Object.getPrototypeOf(target);
382
- if (_.isFunction(targetProto) &&
458
+ if (_$1.isFunction(targetProto) &&
383
459
  ClassHelpers.getName(targetProto) === className) {
384
460
  return true;
385
461
  }
@@ -387,7 +463,7 @@ var ClassHelpers;
387
463
  };
388
464
  ClassHelpers.getControllerConfig = (target) => {
389
465
  const classMetadataOptions = Reflect.getMetadata(Symbols.metadata.options.controller, target);
390
- const classMetadata = _.merge(new Models.ControllerConfig(), classMetadataOptions);
466
+ const classMetadata = _$1.merge(new Models.ControllerConfig(), classMetadataOptions);
391
467
  const methodNames = ClassHelpers.getMethodsNames(target); // Object.getOwnPropertyNames(target.prototype);
392
468
  for (const methodName of methodNames) {
393
469
  const methodMetadata = Reflect.getMetadata(Symbols.metadata.options.controllerMethod, target, methodName);
@@ -422,7 +498,7 @@ var ClassHelpers;
422
498
  if (!classOrClassInstance) {
423
499
  return allMethodsNames;
424
500
  }
425
- const isClassFunction = _.isFunction(classOrClassInstance);
501
+ const isClassFunction = _$1.isFunction(classOrClassInstance);
426
502
  const classFun = isClassFunction
427
503
  ? classOrClassInstance
428
504
  : Object.getPrototypeOf(classOrClassInstance);
@@ -430,7 +506,7 @@ var ClassHelpers;
430
506
  ? classOrClassInstance?.prototype
431
507
  : classOrClassInstance;
432
508
  const prototypeObj = Object.getPrototypeOf(objectToCheck || {});
433
- const properties = _.uniq([
509
+ const properties = _$1.uniq([
434
510
  ...Object.getOwnPropertyNames(objectToCheck || {}),
435
511
  ...Object.getOwnPropertyNames(prototypeObj || {}),
436
512
  ...Object.keys(objectToCheck || {}),
@@ -447,13 +523,13 @@ var ClassHelpers;
447
523
  return ClassHelpers.getMethodsNames(Object.getPrototypeOf(classFun), allMethodsNames);
448
524
  };
449
525
  ClassHelpers.getControllerConfigs = (target, configs = [], callerTarget) => {
450
- if (!_.isFunction(target)) {
526
+ if (!_$1.isFunction(target)) {
451
527
  throw `[typescript-class-helper][getClassConfig] Cannot get class config from: ${target}`;
452
528
  }
453
529
  let config;
454
530
  const parentClass = Object.getPrototypeOf(target);
455
531
  const parentName = parentClass ? ClassHelpers.getName(parentClass) : void 0;
456
- const isValidParent = _.isFunction(parentClass) && parentName !== '';
532
+ const isValidParent = _$1.isFunction(parentClass) && parentName !== '';
457
533
  config = ClassHelpers.getControllerConfig(target);
458
534
  configs.push(config);
459
535
  return isValidParent
@@ -462,7 +538,7 @@ var ClassHelpers;
462
538
  };
463
539
  ClassHelpers.getCalculatedPathFor = (target) => {
464
540
  const configs = ClassHelpers.getControllerConfigs(target);
465
- const parentscalculatedPath = _.slice(configs, 1)
541
+ const parentscalculatedPath = _$1.slice(configs, 1)
466
542
  .reverse()
467
543
  .map(bc => {
468
544
  if (TaonHelpers.isGoodPath(bc.path)) {
@@ -577,7 +653,7 @@ const metaReq = (method, path, target, propertyKey, descriptor, pathOrOptions, p
577
653
  if (methodConfig.parameters.hasOwnProperty(key)) {
578
654
  const element = methodConfig.parameters[key];
579
655
  if (element.paramType === 'Path' &&
580
- _.isString(element.paramName) &&
656
+ _$1.isString(element.paramName) &&
581
657
  element.paramName.trim().length > 0) {
582
658
  paramsPathConcatedPath += `/${element.paramName}/:${element.paramName}`;
583
659
  }
@@ -680,6 +756,7 @@ var Http;
680
756
  Http.DELETE = DELETE;
681
757
  Http.PATCH = PATCH;
682
758
  Http.HEAD = HEAD;
759
+ Http.Response = Models$1.HttpResponse;
683
760
  let Param;
684
761
  (function (Param) {
685
762
  Param.Query = Query;
@@ -722,11 +799,18 @@ class BaseInjector {
722
799
  }
723
800
  }
724
801
  /**
802
+ * @deprecated use ctx instead
725
803
  * Current endpoint context
726
804
  */
727
805
  get __endpoint_context__() {
728
806
  return this[Symbols.ctxInClassOrClassObj];
729
807
  }
808
+ /**
809
+ * get current endpoint context
810
+ */
811
+ get ctx() {
812
+ return this.__endpoint_context__;
813
+ }
730
814
  /**
731
815
  * inject crud repo for entity
732
816
  */
@@ -854,7 +938,7 @@ class BaseInjector {
854
938
  }
855
939
  clone(override) {
856
940
  const classFn = ClassHelpers.getClassFnFromObject(this);
857
- const result = _.merge(new classFn(), _.merge(_.cloneDeep(this), override));
941
+ const result = _$1.merge(new classFn(), _$1.merge(_$1.cloneDeep(this), override));
858
942
  return result;
859
943
  }
860
944
  }
@@ -880,7 +964,7 @@ BaseController = __decorate([
880
964
  */
881
965
  let BaseCrudController = class BaseCrudController extends BaseController {
882
966
  async _() {
883
- if (!_.isFunction(this.entityClassResolveFn)) {
967
+ if (!_$1.isFunction(this.entityClassResolveFn)) {
884
968
  Helpers.warn(`Skipping initing CRUD controller ${ClassHelpers.getName(this)} because entityClassResolveFn is not provided.`);
885
969
  return;
886
970
  }
@@ -1144,7 +1228,7 @@ class BaseClass {
1144
1228
  async _() { }
1145
1229
  clone(override) {
1146
1230
  const classFn = ClassHelpers.getClassFnFromObject(this);
1147
- const result = _.merge(new classFn(), _.merge(_.cloneDeep(this), override));
1231
+ const result = _$1.merge(new classFn(), _$1.merge(_$1.cloneDeep(this), override));
1148
1232
  return result;
1149
1233
  }
1150
1234
  }
@@ -1762,26 +1846,12 @@ const getResponseValue = (response, options) => {
1762
1846
  /* */
1763
1847
  /* */
1764
1848
  /* */
1765
- /* */
1766
- /* */
1767
- /* */
1768
- /* */
1769
- /* */
1770
- /* */
1771
- /* */
1772
- /* */
1773
- /* */
1774
- /* */
1775
- /* */
1776
- /* */
1777
- /* */
1778
- /* */
1779
1849
  return (void 0);
1780
1850
  };
1781
1851
  ;
1782
1852
  ({}); // @--end-of-file-for-module=taon lib/get-response-value.ts
1783
1853
 
1784
- const ENV$1 = Helpers.isBrowser ? window['ENV'] : global['ENV'];
1854
+ const ENV$2 = Helpers.isBrowser ? window['ENV'] : global['ENV'];
1785
1855
  ;
1786
1856
  ({}); // @--end-of-file-for-module=taon lib/env.ts
1787
1857
 
@@ -1809,7 +1879,7 @@ class RealtimeSubsManager {
1809
1879
  realtime.emit(subscribeEvent, this.options.roomName);
1810
1880
  }
1811
1881
  else {
1812
- if (_.isString(this.options.property)) {
1882
+ if (_$1.isString(this.options.property)) {
1813
1883
  const subscribeEvent = Symbols.REALTIME.ROOM_SUBSCRIBE_ENTITY_PROPERTY_UPDATE_EVENTS(this.options.core.ctx.contextName);
1814
1884
  realtime.emit(subscribeEvent, this.options.roomName);
1815
1885
  }
@@ -1836,7 +1906,7 @@ class RealtimeSubsManager {
1836
1906
  realtime.emit(Symbols.REALTIME.ROOM_UNSUBSCRIBE_CUSTOM(this.options.core.ctx.contextName), roomName);
1837
1907
  }
1838
1908
  else {
1839
- if (_.isString(property)) {
1909
+ if (_$1.isString(property)) {
1840
1910
  realtime.emit(Symbols.REALTIME.ROOM_UNSUBSCRIBE_ENTITY_PROPERTY_UPDATE_EVENTS(this.options.core.ctx.contextName), roomName);
1841
1911
  }
1842
1912
  else {
@@ -1914,7 +1984,7 @@ class RealtimeClient {
1914
1984
  options = options || {};
1915
1985
  const { property, customEvent } = options;
1916
1986
  const className = !customEvent && ClassHelpers.getName(entityClassFn);
1917
- if (_.isString(property)) {
1987
+ if (_$1.isString(property)) {
1918
1988
  if (property.trim() === '') {
1919
1989
  throw new Error(`[Taon][listenChangesEntity.. incorect property '' for ${className}`);
1920
1990
  }
@@ -1937,7 +2007,7 @@ to use socket realtime connection;
1937
2007
  roomName = Symbols.REALTIME.ROOM_NAME_CUSTOM(this.core.ctx.contextName, customEvent);
1938
2008
  }
1939
2009
  else {
1940
- roomName = _.isString(property)
2010
+ roomName = _$1.isString(property)
1941
2011
  ? Symbols.REALTIME.ROOM_NAME_UPDATE_ENTITY_PROPERTY(this.core.ctx.contextName, className, property, idOrUniqValue)
1942
2012
  : Symbols.REALTIME.ROOM_NAME_UPDATE_ENTITY(this.core.ctx.contextName, className, idOrUniqValue);
1943
2013
  }
@@ -2248,7 +2318,7 @@ class RealtimeServer {
2248
2318
  console.warn(`[Taon][TriggerEntityPropertyChanges][property=${property}] Entity "${className}' is not realtime`);
2249
2319
  return;
2250
2320
  }
2251
- if (_.isArray(property)) {
2321
+ if (_$1.isArray(property)) {
2252
2322
  property.forEach(propertyFromArr => {
2253
2323
  this.triggerChanges(entityObjOrClass, propertyFromArr, idToTrigger);
2254
2324
  });
@@ -2833,11 +2903,6 @@ class EndpointContext {
2833
2903
  static initNgZone(ngZone) {
2834
2904
  this.ngZone = ngZone;
2835
2905
  }
2836
- static findForTraget(classFnOrObject) {
2837
- const obj = ClassHelpers.getClassFnFromObject(classFnOrObject) || {};
2838
- return (classFnOrObject[Symbols.ctxInClassOrClassObj] ||
2839
- obj[Symbols.ctxInClassOrClassObj]);
2840
- }
2841
2906
  get realtimeClient() {
2842
2907
  return this.realtime.client;
2843
2908
  }
@@ -2845,25 +2910,25 @@ class EndpointContext {
2845
2910
  return this.realtime.server;
2846
2911
  }
2847
2912
  get logHttp() {
2848
- if (_.isObject(this.config?.logs)) {
2913
+ if (_$1.isObject(this.config?.logs)) {
2849
2914
  return !!this.config.logs.http;
2850
2915
  }
2851
2916
  return this.config?.logs === true;
2852
2917
  }
2853
2918
  get logRealtime() {
2854
- if (_.isObject(this.config?.logs)) {
2919
+ if (_$1.isObject(this.config?.logs)) {
2855
2920
  return !!this.config.logs.realtime;
2856
2921
  }
2857
2922
  return this.config?.logs === true;
2858
2923
  }
2859
2924
  get logFramework() {
2860
- if (_.isObject(this.config?.logs)) {
2925
+ if (_$1.isObject(this.config?.logs)) {
2861
2926
  return !!this.config.logs.framework;
2862
2927
  }
2863
2928
  return this.config?.logs === true;
2864
2929
  }
2865
2930
  get logDb() {
2866
- if (_.isObject(this.config?.logs)) {
2931
+ if (_$1.isObject(this.config?.logs)) {
2867
2932
  return !!this.config.logs.db;
2868
2933
  }
2869
2934
  return this.config?.logs === true;
@@ -2964,9 +3029,31 @@ class EndpointContext {
2964
3029
  };
2965
3030
  }
2966
3031
  async init(options) {
2967
- const { initFromRecrusiveContextResovle } = options || {}; // TODO use it ?
3032
+ const { initFromRecrusiveContextResovle, overrideHost, overrideRemoteHost, } = options || {}; // TODO use it ?
2968
3033
  this.inited = true;
2969
- this.config = this.configFn(ENV$1);
3034
+ this.config = this.configFn(ENV$2);
3035
+ if (overrideHost && overrideRemoteHost) {
3036
+ Helpers.throw(`[taon-config] You can't have overrideHost and overrideRemoteHost at the same time`);
3037
+ }
3038
+ this.config.host = !_$1.isUndefined(overrideHost)
3039
+ ? overrideHost
3040
+ : this.config.host;
3041
+ this.config.remoteHost = !_$1.isUndefined(overrideRemoteHost)
3042
+ ? overrideRemoteHost
3043
+ : this.config.remoteHost;
3044
+ this.config.host = this.host === null ? void 0 : this.host;
3045
+ this.config.remoteHost =
3046
+ this.remoteHost === null ? void 0 : this.remoteHost;
3047
+ if (this.config.host &&
3048
+ !this.config.host.startsWith('http://') &&
3049
+ !this.config.host.startsWith('https://')) {
3050
+ Helpers.throw(`[taon-config] Your 'host' must start with http:// or https://`);
3051
+ }
3052
+ if (this.config.remoteHost &&
3053
+ !this.config.remoteHost.startsWith('http://') &&
3054
+ !this.config.remoteHost.startsWith('https://')) {
3055
+ Helpers.throw(`[taon-config] Your 'remoteHost' must start with http:// or https://`);
3056
+ }
2970
3057
  if (this.config.host) {
2971
3058
  this.mode = 'backend-frontend(tcp+udp)';
2972
3059
  /* */
@@ -2974,7 +3061,7 @@ class EndpointContext {
2974
3061
  }
2975
3062
  if (this.config.remoteHost) {
2976
3063
  if (this.config.host) {
2977
- Helpers.error(`[taon] You can't have remoteHost and host at the same time`, false, true);
3064
+ Helpers.throw(`[taon] You can't have remoteHost and host at the same time`);
2978
3065
  }
2979
3066
  this.mode = 'remote-backend(tcp+udp)';
2980
3067
  }
@@ -2994,11 +3081,11 @@ class EndpointContext {
2994
3081
  if (this.config.database === true) {
2995
3082
  this.databaseConfig = this.getAutoGeneratedConfig();
2996
3083
  }
2997
- else if (_.isObject(this.config.database)) {
2998
- this.databaseConfig = _.cloneDeep(this.config.database);
3084
+ else if (_$1.isObject(this.config.database)) {
3085
+ this.databaseConfig = _$1.merge(this.getAutoGeneratedConfig(), _$1.cloneDeep(this.config.database));
2999
3086
  }
3000
3087
  if (this.config.session) {
3001
- this.session = _.cloneDeep(this.config.session);
3088
+ this.session = _$1.cloneDeep(this.config.session);
3002
3089
  const oneHour = 1000 * 60 * 60 * 1; // 24;
3003
3090
  if (!this.session.cookieMaxAge) {
3004
3091
  this.session.cookieMaxAge = oneHour;
@@ -3213,6 +3300,9 @@ class EndpointContext {
3213
3300
  /* */
3214
3301
  /* */
3215
3302
  /* */
3303
+ /* */
3304
+ /* */
3305
+ /* */
3216
3306
  return (void 0);
3217
3307
  }
3218
3308
  displayRoutes(app) {
@@ -3326,8 +3416,8 @@ class EndpointContext {
3326
3416
  return this.inject(ctor, { localInstance: false });
3327
3417
  }
3328
3418
  checkIfContextInitialized() {
3329
- if (_.isUndefined(this.config)) {
3330
- throw new Error(`Please check if your context has been initilized.
3419
+ if (_$1.isUndefined(this.config)) {
3420
+ throw new Error(`Please check if your context has been initialized.
3331
3421
 
3332
3422
 
3333
3423
  await Context.initialize();
@@ -3388,9 +3478,12 @@ class EndpointContext {
3388
3478
  }
3389
3479
  }
3390
3480
  async reinitControllers() {
3481
+ if (this.remoteHost) {
3482
+ return;
3483
+ }
3391
3484
  const controllers = this.getClassesInstancesArrBy(Models.ClassType.CONTROLLER);
3392
3485
  for (const ctrl of controllers) {
3393
- if (_.isFunction(ctrl.initExampleDbData)) {
3486
+ if (_$1.isFunction(ctrl.initExampleDbData)) {
3394
3487
  await Helpers.runSyncOrAsync({
3395
3488
  functionFn: ctrl.initExampleDbData,
3396
3489
  context: ctrl,
@@ -3399,6 +3492,9 @@ class EndpointContext {
3399
3492
  }
3400
3493
  }
3401
3494
  async initClasses() {
3495
+ if (this.remoteHost) {
3496
+ return;
3497
+ }
3402
3498
  for (const classTypeName of [
3403
3499
  Models.ClassType.PROVIDER,
3404
3500
  Models.ClassType.REPOSITORY,
@@ -3406,7 +3502,7 @@ class EndpointContext {
3406
3502
  Models.ClassType.ENTITY,
3407
3503
  ]) {
3408
3504
  for (const classFun of this.getClassFunByArr(classTypeName)) {
3409
- if (_.isFunction(classFun._)) {
3505
+ if (_$1.isFunction(classFun._)) {
3410
3506
  await Helpers.runSyncOrAsync({
3411
3507
  functionFn: classFun._,
3412
3508
  context: classFun,
@@ -3420,7 +3516,7 @@ class EndpointContext {
3420
3516
  Models.ClassType.CONTROLLER,
3421
3517
  ]) {
3422
3518
  for (const ctrl of this.getClassesInstancesArrBy(classTypeName)) {
3423
- if (_.isFunction(ctrl._)) {
3519
+ if (_$1.isFunction(ctrl._)) {
3424
3520
  await Helpers.runSyncOrAsync({
3425
3521
  functionFn: ctrl._,
3426
3522
  context: ctrl,
@@ -3479,6 +3575,9 @@ class EndpointContext {
3479
3575
  /* */
3480
3576
  /* */
3481
3577
  /* */
3578
+ /* */
3579
+ /* */
3580
+ /* */
3482
3581
  return (void 0);
3483
3582
  }
3484
3583
  async initEntities() {
@@ -3508,6 +3607,9 @@ class EndpointContext {
3508
3607
  /* */
3509
3608
  /* */
3510
3609
  /* */
3610
+ /* */
3611
+ /* */
3612
+ /* */
3511
3613
  }
3512
3614
  async initDatabaseConnection() {
3513
3615
  /* */
@@ -3594,6 +3696,9 @@ class EndpointContext {
3594
3696
  /* */
3595
3697
  /* */
3596
3698
  /* */
3699
+ /* */
3700
+ /* */
3701
+ /* */
3597
3702
  return (void 0);
3598
3703
  }
3599
3704
  initMetadata() {
@@ -3603,7 +3708,7 @@ class EndpointContext {
3603
3708
  ClassHelpers.getMethodsNames(controllerClassFn);
3604
3709
  const configs = ClassHelpers.getControllerConfigs(controllerClassFn);
3605
3710
  const classConfig = configs[0];
3606
- const parentscalculatedPath = _.slice(configs, 1)
3711
+ const parentscalculatedPath = _$1.slice(configs, 1)
3607
3712
  .reverse()
3608
3713
  .map(bc => {
3609
3714
  if (TaonHelpers.isGoodPath(bc.path)) {
@@ -3621,13 +3726,13 @@ class EndpointContext {
3621
3726
  .replace(/\/\//g, '/')
3622
3727
  .split('/')
3623
3728
  .reduce((acc, bc) => {
3624
- return _.last(acc) === bc ? acc : [...acc, bc];
3729
+ return _$1.last(acc) === bc ? acc : [...acc, bc];
3625
3730
  }, [])
3626
3731
  .join('/');
3627
3732
  }
3628
- _.slice(configs, 1).forEach(bc => {
3733
+ _$1.slice(configs, 1).forEach(bc => {
3629
3734
  const alreadyIs = classConfig.methods;
3630
- const toMerge = _.cloneDeep(bc.methods);
3735
+ const toMerge = _$1.cloneDeep(bc.methods);
3631
3736
  for (const key in toMerge) {
3632
3737
  if (toMerge.hasOwnProperty(key) && !alreadyIs[key]) {
3633
3738
  const element = toMerge[key];
@@ -3676,6 +3781,9 @@ class EndpointContext {
3676
3781
  }
3677
3782
  }
3678
3783
  writeActiveRoutes() {
3784
+ if (this.remoteHost) {
3785
+ return;
3786
+ }
3679
3787
  const contexts = [this];
3680
3788
  /* */
3681
3789
  /* */
@@ -3714,7 +3822,7 @@ class EndpointContext {
3714
3822
  /* */
3715
3823
  return (void 0);
3716
3824
  }
3717
- initMidleware() {
3825
+ initMiddlewares() {
3718
3826
  /* */
3719
3827
  /* */
3720
3828
  /* */
@@ -4127,7 +4235,7 @@ class EndpointContext {
4127
4235
  method: methodConfig.type,
4128
4236
  url: `${ctx.uri.origin}${'' // TODO express path
4129
4237
  }${methodConfig.path} `,
4130
- }, Helpers.isBlob(body) || _.isString(body)
4238
+ }, Helpers.isBlob(body) || _$1.isString(body)
4131
4239
  ? body
4132
4240
  : JSON.stringify(body), RestHeaders.from(headers), void 0, () => body);
4133
4241
  resolve(res);
@@ -4353,7 +4461,7 @@ class EndpointContext {
4353
4461
  if (mapping) {
4354
4462
  rest.headers.set(Symbols.old.MAPPING_CONFIG_HEADER_QUERY_PARAMS, JSON.stringify(mapping));
4355
4463
  }
4356
- queryParams = _.cloneDeep(param);
4464
+ queryParams = _$1.cloneDeep(param);
4357
4465
  }
4358
4466
  }
4359
4467
  if (currentParam.paramType === 'Header') {
@@ -4435,14 +4543,14 @@ const globalPublicStorage = Helpers.isBrowser ? window : global;
4435
4543
  ;
4436
4544
  ({}); // @--end-of-file-for-module=taon lib/storage.ts
4437
4545
 
4438
- const ENV = Helpers.isBrowser ? window['ENV'] : global['ENV'];
4546
+ const ENV$1 = Helpers.isBrowser ? window['ENV'] : global['ENV'];
4439
4547
  class TaonAdmin {
4440
4548
  constructor() {
4441
4549
  this.scrollableEnabled = false; // TOOD false by default
4442
4550
  this.onEditMode = new Subject();
4443
4551
  this.onEditMode$ = this.onEditMode.asObservable();
4444
4552
  this.enabledTabs = [];
4445
- this.scrollableEnabled = !!ENV?.useGlobalNgxScrollbar;
4553
+ this.scrollableEnabled = !!ENV$1?.useGlobalNgxScrollbar;
4446
4554
  }
4447
4555
  static get Instance() {
4448
4556
  if (!globalPublicStorage[config.frameworkNames.productionFrameworkName]) {
@@ -4492,7 +4600,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
4492
4600
  ({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/taon-admin.service.ts
4493
4601
 
4494
4602
  const createContext = (configFn) => {
4495
- let config = configFn(ENV$1);
4603
+ let config = configFn(ENV$2);
4496
4604
  const endpointContextRef = new EndpointContext(config, configFn);
4497
4605
  const res = {
4498
4606
  types: {
@@ -4528,9 +4636,9 @@ const createContext = (configFn) => {
4528
4636
  return endpointContextRef;
4529
4637
  },
4530
4638
  /**
4531
- * only for internal use
4532
- * @deprecated
4533
- */
4639
+ * only for internal use
4640
+ * @deprecated
4641
+ */
4534
4642
  get __refSync() {
4535
4643
  return endpointContextRef;
4536
4644
  },
@@ -4545,10 +4653,12 @@ const createContext = (configFn) => {
4545
4653
  * - create controller instances for context
4546
4654
  * - init database (if enable) + migation scripts
4547
4655
  */
4548
- initialize: async () => {
4656
+ initialize: async (overrideOptions) => {
4549
4657
  return await new Promise(async (resolve, reject) => {
4550
4658
  setTimeout(async () => {
4551
- await endpointContextRef.init();
4659
+ await endpointContextRef.init({
4660
+ ...overrideOptions,
4661
+ });
4552
4662
  if (config.abstract) {
4553
4663
  throw new Error(`Abstract context can not be initialized`);
4554
4664
  }
@@ -4569,6 +4679,7 @@ const createContext = (configFn) => {
4569
4679
  else {
4570
4680
  await endpointContextRef.reinitControllers();
4571
4681
  }
4682
+ ///#region TODO this may be usefull but for now
4572
4683
  resolve(endpointContextRef);
4573
4684
  });
4574
4685
  });
@@ -4584,7 +4695,7 @@ const createContext = (configFn) => {
4584
4695
  },
4585
4696
  get server() {
4586
4697
  return endpointContextRef.realtimeServer;
4587
- }
4698
+ },
4588
4699
  };
4589
4700
  },
4590
4701
  };
@@ -4786,7 +4897,7 @@ function TaonEntity(options) {
4786
4897
  options = options || {};
4787
4898
  options.uniqueKeyProp = options.uniqueKeyProp || 'id';
4788
4899
  ClassHelpers.setName(constructor, options?.className);
4789
- Mapping.DefaultModelWithMapping(options?.defaultModelValues || {}, _.merge(options?.defaultModelMapping || {}, (options?.defaultModelMappingDeep || {})))(constructor);
4900
+ Mapping.DefaultModelWithMapping(options?.defaultModelValues || {}, _$1.merge(options?.defaultModelMapping || {}, (options?.defaultModelMappingDeep || {})))(constructor);
4790
4901
  Mapping.DefaultModelWithMapping(void 0, {})(constructor);
4791
4902
  Reflect.defineMetadata(Symbols.metadata.options.entity, options, constructor);
4792
4903
  Reflect.defineMetadata(Symbols.metadata.className, options?.className || constructor.name, constructor);
@@ -4846,6 +4957,1264 @@ const inject = (entity) => {
4846
4957
  ;
4847
4958
  ({}); // @--end-of-file-for-module=taon lib/inject.ts
4848
4959
 
4960
+ const log$1 = Log.create(`[taon-helpers] long-press`, Level.__NOTHING);
4961
+ class TaonLongPress {
4962
+ constructor() {
4963
+ this.pressDuration = 1000;
4964
+ this.onLongPress = new EventEmitter();
4965
+ this.onLongPressing = new EventEmitter();
4966
+ this.onLongPressEnd = new EventEmitter();
4967
+ this.mouseX = 0;
4968
+ this.mouseY = 0;
4969
+ this.allowTrigger = false;
4970
+ this.triggerEnd = _$1.debounce(() => {
4971
+ this.endPress();
4972
+ }, 500);
4973
+ }
4974
+ get press() {
4975
+ return this.pressing;
4976
+ }
4977
+ get longPress() {
4978
+ return this.longPressing;
4979
+ }
4980
+ onMouseDown(event) {
4981
+ log$1.d(`MOUSE DOWN `);
4982
+ if (event.which !== 1)
4983
+ return;
4984
+ this.allowTrigger = true;
4985
+ this.mouseX = event.clientX;
4986
+ this.mouseY = event.clientY;
4987
+ this.pressing = true;
4988
+ this.longPressing = false;
4989
+ this.timeout = setTimeout(() => {
4990
+ if (this.allowTrigger) {
4991
+ this.longPressing = true;
4992
+ log$1.d(`long pressing start pressDuration:${this.pressDuration} `);
4993
+ this.onLongPress.emit(event);
4994
+ this.loop(event);
4995
+ }
4996
+ }, this.pressDuration);
4997
+ this.loop(event);
4998
+ }
4999
+ onMouseMove(event) {
5000
+ if (this.pressing && !this.longPressing) {
5001
+ const xThres = event.clientX - this.mouseX > 10;
5002
+ const yThres = event.clientY - this.mouseY > 10;
5003
+ if (xThres || yThres) {
5004
+ this.endPress();
5005
+ }
5006
+ }
5007
+ }
5008
+ loop(event) {
5009
+ if (this.longPressing) {
5010
+ this.timeout = setTimeout(() => {
5011
+ log$1.d(`emil longpressing`);
5012
+ this.triggerEnd();
5013
+ this.onLongPressing.emit(event);
5014
+ this.loop(event);
5015
+ }, 50);
5016
+ }
5017
+ }
5018
+ endPress(emit = true) {
5019
+ this.allowTrigger = false;
5020
+ clearTimeout(this.timeout);
5021
+ this.longPressing = false;
5022
+ this.pressing = false;
5023
+ if (emit) {
5024
+ log$1.d(`EMIT END`);
5025
+ this.onLongPressEnd.emit(true);
5026
+ }
5027
+ else {
5028
+ log$1.d(`NOT EMIT END`);
5029
+ }
5030
+ }
5031
+ onMouseUp() {
5032
+ this.endPress(false);
5033
+ }
5034
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonLongPress, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5035
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.5", type: TaonLongPress, isStandalone: true, selector: "[taonLongPress]", inputs: { pressDuration: "pressDuration" }, outputs: { onLongPress: "onLongPress", onLongPressing: "onLongPressing", onLongPressEnd: "onLongPressEnd" }, host: { listeners: { "mousedown": "onMouseDown($event)", "mousemove": "onMouseMove($event)", "mouseup": "onMouseUp()" }, properties: { "class.press": "this.press", "class.longpress": "this.longPress" } }, ngImport: i0 }); }
5036
+ }
5037
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonLongPress, decorators: [{
5038
+ type: Directive,
5039
+ args: [{
5040
+ selector: '[taonLongPress]',
5041
+ standalone: true,
5042
+ }]
5043
+ }], propDecorators: { pressDuration: [{
5044
+ type: Input
5045
+ }], onLongPress: [{
5046
+ type: Output
5047
+ }], onLongPressing: [{
5048
+ type: Output
5049
+ }], onLongPressEnd: [{
5050
+ type: Output
5051
+ }], press: [{
5052
+ type: HostBinding,
5053
+ args: ['class.press']
5054
+ }], longPress: [{
5055
+ type: HostBinding,
5056
+ args: ['class.longpress']
5057
+ }], onMouseDown: [{
5058
+ type: HostListener,
5059
+ args: ['mousedown', ['$event']]
5060
+ }], onMouseMove: [{
5061
+ type: HostListener,
5062
+ args: ['mousemove', ['$event']]
5063
+ }], onMouseUp: [{
5064
+ type: HostListener,
5065
+ args: ['mouseup']
5066
+ }] } });
5067
+ ;
5068
+ ({}); // @--end-of-file-for-module=taon lib/ui/directives/taon-long-press.directive.ts
5069
+
5070
+ class TaonInjectHTMLDirective {
5071
+ set taonInjectHTML(content) {
5072
+ this.host.nativeElement.innerHTML = content;
5073
+ }
5074
+ constructor(host) {
5075
+ this.host = host;
5076
+ }
5077
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonInjectHTMLDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
5078
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.5", type: TaonInjectHTMLDirective, isStandalone: true, selector: "[taonInjectHTML]", inputs: { taonInjectHTML: "taonInjectHTML" }, ngImport: i0 }); }
5079
+ }
5080
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonInjectHTMLDirective, decorators: [{
5081
+ type: Directive,
5082
+ args: [{
5083
+ selector: '[taonInjectHTML]',
5084
+ standalone: true,
5085
+ }]
5086
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { taonInjectHTML: [{
5087
+ type: Input
5088
+ }] } });
5089
+ ;
5090
+ ({}); // @--end-of-file-for-module=taon lib/ui/directives/taon-inject-html.directive.ts
5091
+
5092
+ /* */
5093
+ /* */
5094
+ /* */
5095
+ /* */
5096
+ /* */
5097
+ /* */
5098
+ class SafePipe {
5099
+ constructor(sanitizer) {
5100
+ this.sanitizer = sanitizer;
5101
+ }
5102
+ transform(value, type) {
5103
+ switch (type) {
5104
+ case 'html':
5105
+ return this.sanitizer.bypassSecurityTrustHtml(value);
5106
+ case 'style':
5107
+ return this.sanitizer.bypassSecurityTrustStyle(value);
5108
+ case 'script':
5109
+ return this.sanitizer.bypassSecurityTrustScript(value);
5110
+ case 'url':
5111
+ return this.sanitizer.bypassSecurityTrustUrl(value);
5112
+ case 'resourceUrl':
5113
+ return this.sanitizer.bypassSecurityTrustResourceUrl(value);
5114
+ default:
5115
+ throw new Error(`Invalid safe type specified: ${type}`);
5116
+ }
5117
+ }
5118
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: SafePipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
5119
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: SafePipe, isStandalone: true, name: "safe" }); }
5120
+ }
5121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: SafePipe, decorators: [{
5122
+ type: Pipe,
5123
+ args: [{
5124
+ name: 'safe',
5125
+ standalone: true,
5126
+ }]
5127
+ }], ctorParameters: () => [{ type: i1.DomSanitizer }] });
5128
+ ;
5129
+ ({}); // @--end-of-file-for-module=taon lib/ui/directives/safe.pipe.ts
5130
+
5131
+ ;
5132
+ ({}); // @--end-of-file-for-module=taon lib/ui/directives/index.ts
5133
+
5134
+ class TaonFullMaterialModule {
5135
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonFullMaterialModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5136
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: TaonFullMaterialModule, exports: [A11yModule,
5137
+ CdkStepperModule,
5138
+ CdkTableModule,
5139
+ CdkTreeModule,
5140
+ DragDropModule,
5141
+ MatAutocompleteModule,
5142
+ MatBadgeModule,
5143
+ MatBottomSheetModule,
5144
+ MatButtonModule,
5145
+ MatButtonToggleModule,
5146
+ MatCardModule,
5147
+ MatCheckboxModule,
5148
+ MatChipsModule,
5149
+ MatStepperModule,
5150
+ MatDatepickerModule,
5151
+ MatDialogModule,
5152
+ MatDividerModule,
5153
+ MatExpansionModule,
5154
+ MatGridListModule,
5155
+ MatIconModule,
5156
+ MatInputModule,
5157
+ MatListModule,
5158
+ MatMenuModule,
5159
+ MatNativeDateModule,
5160
+ MatPaginatorModule,
5161
+ MatProgressBarModule,
5162
+ MatProgressSpinnerModule,
5163
+ MatRadioModule,
5164
+ MatRippleModule,
5165
+ MatSelectModule,
5166
+ MatSidenavModule,
5167
+ MatSliderModule,
5168
+ MatSlideToggleModule,
5169
+ MatSnackBarModule,
5170
+ MatSortModule,
5171
+ MatTableModule,
5172
+ MatTabsModule,
5173
+ MatToolbarModule,
5174
+ MatTooltipModule,
5175
+ MatTreeModule,
5176
+ ScrollingModule] }); }
5177
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonFullMaterialModule, imports: [A11yModule,
5178
+ CdkStepperModule,
5179
+ CdkTableModule,
5180
+ CdkTreeModule,
5181
+ DragDropModule,
5182
+ MatAutocompleteModule,
5183
+ MatBadgeModule,
5184
+ MatBottomSheetModule,
5185
+ MatButtonModule,
5186
+ MatButtonToggleModule,
5187
+ MatCardModule,
5188
+ MatCheckboxModule,
5189
+ MatChipsModule,
5190
+ MatStepperModule,
5191
+ MatDatepickerModule,
5192
+ MatDialogModule,
5193
+ MatDividerModule,
5194
+ MatExpansionModule,
5195
+ MatGridListModule,
5196
+ MatIconModule,
5197
+ MatInputModule,
5198
+ MatListModule,
5199
+ MatMenuModule,
5200
+ MatNativeDateModule,
5201
+ MatPaginatorModule,
5202
+ MatProgressBarModule,
5203
+ MatProgressSpinnerModule,
5204
+ MatRadioModule,
5205
+ MatRippleModule,
5206
+ MatSelectModule,
5207
+ MatSidenavModule,
5208
+ MatSliderModule,
5209
+ MatSlideToggleModule,
5210
+ MatSnackBarModule,
5211
+ MatSortModule,
5212
+ MatTableModule,
5213
+ MatTabsModule,
5214
+ MatToolbarModule,
5215
+ MatTooltipModule,
5216
+ MatTreeModule,
5217
+ ScrollingModule] }); }
5218
+ }
5219
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonFullMaterialModule, decorators: [{
5220
+ type: NgModule,
5221
+ args: [{
5222
+ exports: [
5223
+ A11yModule,
5224
+ CdkStepperModule,
5225
+ CdkTableModule,
5226
+ CdkTreeModule,
5227
+ DragDropModule,
5228
+ MatAutocompleteModule,
5229
+ MatBadgeModule,
5230
+ MatBottomSheetModule,
5231
+ MatButtonModule,
5232
+ MatButtonToggleModule,
5233
+ MatCardModule,
5234
+ MatCheckboxModule,
5235
+ MatChipsModule,
5236
+ MatStepperModule,
5237
+ MatDatepickerModule,
5238
+ MatDialogModule,
5239
+ MatDividerModule,
5240
+ MatExpansionModule,
5241
+ MatGridListModule,
5242
+ MatIconModule,
5243
+ MatInputModule,
5244
+ MatListModule,
5245
+ MatMenuModule,
5246
+ MatNativeDateModule,
5247
+ MatPaginatorModule,
5248
+ MatProgressBarModule,
5249
+ MatProgressSpinnerModule,
5250
+ MatRadioModule,
5251
+ MatRippleModule,
5252
+ MatSelectModule,
5253
+ MatSidenavModule,
5254
+ MatSliderModule,
5255
+ MatSlideToggleModule,
5256
+ MatSnackBarModule,
5257
+ MatSortModule,
5258
+ MatTableModule,
5259
+ MatTabsModule,
5260
+ MatToolbarModule,
5261
+ MatTooltipModule,
5262
+ MatTreeModule,
5263
+ ScrollingModule,
5264
+ ],
5265
+ }]
5266
+ }] });
5267
+ ;
5268
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-full-material.module.ts
5269
+
5270
+ class TaonGithubForkMeCornerComponent {
5271
+ constructor() {
5272
+ this.url = 'https://github.com';
5273
+ }
5274
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonGithubForkMeCornerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5275
+ 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"] }); }
5276
+ }
5277
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonGithubForkMeCornerComponent, decorators: [{
5278
+ type: Component,
5279
+ 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"] }]
5280
+ }], propDecorators: { url: [{
5281
+ type: Input
5282
+ }] } });
5283
+ ;
5284
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.ts
5285
+
5286
+ class TaonGithubForkMeCornerModule {
5287
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonGithubForkMeCornerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5288
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: TaonGithubForkMeCornerModule, declarations: [TaonGithubForkMeCornerComponent], imports: [CommonModule], exports: [TaonGithubForkMeCornerComponent] }); }
5289
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonGithubForkMeCornerModule, imports: [CommonModule] }); }
5290
+ }
5291
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonGithubForkMeCornerModule, decorators: [{
5292
+ type: NgModule,
5293
+ args: [{
5294
+ imports: [CommonModule],
5295
+ exports: [TaonGithubForkMeCornerComponent],
5296
+ declarations: [TaonGithubForkMeCornerComponent],
5297
+ providers: [],
5298
+ }]
5299
+ }] });
5300
+ ;
5301
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.module.ts
5302
+
5303
+ ;
5304
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-github-fork-me-corner/index.ts
5305
+
5306
+ /* */
5307
+ /* */
5308
+ class TaonNotificationsService {
5309
+ constructor(toast) {
5310
+ this.toast = toast;
5311
+ }
5312
+ options(type, options) {
5313
+ if (_$1.isString(options)) {
5314
+ options = {
5315
+ // @ts-ignore
5316
+ title: options,
5317
+ };
5318
+ }
5319
+ return options;
5320
+ }
5321
+ success(options) {
5322
+ const opt = this.options('success', options);
5323
+ return this.toast.success(opt.title);
5324
+ }
5325
+ error(options) {
5326
+ const opt = this.options('error', options);
5327
+ return this.toast.error(opt.title);
5328
+ }
5329
+ warn(options) {
5330
+ const opt = this.options('warning', options);
5331
+ return this.toast.warning(opt.title);
5332
+ }
5333
+ info(options) {
5334
+ const opt = this.options('info', options);
5335
+ return this.toast.info(opt.title);
5336
+ }
5337
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonNotificationsService, deps: [{ token: i1$1.HotToastService }], target: i0.ɵɵFactoryTarget.Injectable }); }
5338
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonNotificationsService, providedIn: 'root' }); }
5339
+ }
5340
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonNotificationsService, decorators: [{
5341
+ type: Injectable,
5342
+ args: [{
5343
+ providedIn: 'root',
5344
+ }]
5345
+ }], ctorParameters: () => [{ type: i1$1.HotToastService }] });
5346
+ ;
5347
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-notifications/taon-notifications.service.ts
5348
+
5349
+ class TaonNotificationsComponent {
5350
+ constructor(notification) {
5351
+ this.notification = notification;
5352
+ }
5353
+ ngOnInit() { }
5354
+ init(subscribtionsArray, template, callback) {
5355
+ subscribtionsArray.push(Resource.listenErrors.subscribe(err => {
5356
+ this.notification.error(err.msg);
5357
+ }));
5358
+ }
5359
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonNotificationsComponent, deps: [{ token: TaonNotificationsService }], target: i0.ɵɵFactoryTarget.Component }); }
5360
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: TaonNotificationsComponent, selector: "taon-notifications", ngImport: i0, template: "<!-- <p>\n notyfications works!\n</p> -->\n", styles: [":host{position:absolute;width:0px;height:0px}\n"] }); }
5361
+ }
5362
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonNotificationsComponent, decorators: [{
5363
+ type: Component,
5364
+ args: [{ selector: 'taon-notifications', template: "<!-- <p>\n notyfications works!\n</p> -->\n", styles: [":host{position:absolute;width:0px;height:0px}\n"] }]
5365
+ }], ctorParameters: () => [{ type: TaonNotificationsService }] });
5366
+ ;
5367
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-notifications/taon-notifications.component.ts
5368
+
5369
+ class TaonNotificationOptions {
5370
+ }
5371
+ ;
5372
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-notifications/taon-notifications.models.ts
5373
+
5374
+ class TaonNotificationsModule {
5375
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonNotificationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5376
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: TaonNotificationsModule, declarations: [TaonNotificationsComponent], exports: [TaonNotificationsComponent] }); }
5377
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonNotificationsModule, providers: [TaonNotificationsService] }); }
5378
+ }
5379
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonNotificationsModule, decorators: [{
5380
+ type: NgModule,
5381
+ args: [{
5382
+ imports: [],
5383
+ exports: [TaonNotificationsComponent],
5384
+ declarations: [TaonNotificationsComponent],
5385
+ providers: [TaonNotificationsService],
5386
+ }]
5387
+ }] });
5388
+ ;
5389
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-notifications/taon-notifications.module.ts
5390
+
5391
+ ;
5392
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-notifications/index.ts
5393
+
5394
+ class TaonSessionPasscodeComponent {
5395
+ constructor(element, domSanitizer, cdr) {
5396
+ this.element = element;
5397
+ this.domSanitizer = domSanitizer;
5398
+ this.cdr = cdr;
5399
+ this.destroyRef = inject$1(DestroyRef);
5400
+ this.display = 'none';
5401
+ this.form = new FormGroup({
5402
+ passcode: new FormControl(),
5403
+ });
5404
+ }
5405
+ ngOnInit() {
5406
+ if (!this.passcode) {
5407
+ this.passcode = '123456';
5408
+ }
5409
+ if (!this.message) {
5410
+ this.message = `
5411
+ This website is only for testing purpose. Please type passcode bellow to see content.
5412
+
5413
+ `;
5414
+ }
5415
+ this.safeMessage = this.domSanitizer.bypassSecurityTrustHtml(this.message);
5416
+ if (this.lastPasscode?.toString() === this.passcode?.toString()) {
5417
+ this.hide();
5418
+ }
5419
+ else {
5420
+ this.show();
5421
+ this.focus();
5422
+ }
5423
+ interval(1000)
5424
+ .pipe(takeUntilDestroyed(this.destroyRef), tap(() => {
5425
+ this.focus();
5426
+ }))
5427
+ .subscribe();
5428
+ }
5429
+ submit({ passcode }) {
5430
+ if (this.isPasscodeOK(passcode || '')) {
5431
+ this.hide();
5432
+ }
5433
+ else {
5434
+ this.clear();
5435
+ }
5436
+ }
5437
+ isPasscodeOK(passcode) {
5438
+ this.lastPasscode = passcode.toString();
5439
+ return this.passcode.toString() === passcode;
5440
+ }
5441
+ ngAfterViewInit() { }
5442
+ focus() {
5443
+ this.element.nativeElement.querySelector('input')?.focus();
5444
+ }
5445
+ hide() {
5446
+ this.display = 'none';
5447
+ }
5448
+ show() {
5449
+ this.display = 'block';
5450
+ }
5451
+ clear() {
5452
+ this.form.controls.passcode.setValue('');
5453
+ }
5454
+ onKeyup(event) {
5455
+ if (this.isPasscodeOK(event.target.value || '')) {
5456
+ this.hide();
5457
+ return;
5458
+ }
5459
+ const key = event.keyCode || event.charCode;
5460
+ if (key === 8 || key === 46 || this.lastPasscode?.length > 5) {
5461
+ this.clear();
5462
+ }
5463
+ }
5464
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonSessionPasscodeComponent, deps: [{ token: i0.ElementRef, self: true }, { token: i1.DomSanitizer }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
5465
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: TaonSessionPasscodeComponent, isStandalone: true, selector: "taon-session-passcode", inputs: { passcode: "passcode", message: "message" }, host: { properties: { "style.display": "this.display" } }, ngImport: i0, template: "<form\n [formGroup]=\"form\"\n content=\"notranslate\"\n autocomplete=\"off\"\n (click)=\"focus()\"\n (ngSubmit)=\"submit(form.value)\"\n class=\"flex flex-column align-items-center w-full h-full\">\n <div class=\"flex align-content-center w-full justify-content-center mt-8\">\n <p\n class=\"p-3\"\n style=\"max-width: 400px; min-height: 100px\"\n [innerHtml]=\"safeMessage\"></p>\n </div>\n <input\n type=\"password\"\n class=\"text-5xl md:text-8xl pointer-events-none\"\n #taonpasscode\n (keyup)=\"onKeyup($event)\"\n formControlName=\"passcode\" />\n <!-- placeholder=\"Enter passcode\" -->\n</form>\n", styles: [":host{position:fixed;background-color:#9f9f9f57;z-index:99999;-webkit-backdrop-filter:blur(50px);backdrop-filter:blur(50px);width:100%;height:100%;display:none}input{background:#fff;border-radius:6px;outline:0px;border:0px;color:gray;text-align:center;width:500px}\n"], dependencies: [{ kind: "ngmodule", type: PasswordModule }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }] }); }
5466
+ }
5467
+ __decorate([
5468
+ (Stor.property.in.localstorage
5469
+ .for(TaonSessionPasscodeComponent)
5470
+ .withDefaultValue('')),
5471
+ __metadata("design:type", String)
5472
+ ], TaonSessionPasscodeComponent.prototype, "lastPasscode", void 0);
5473
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonSessionPasscodeComponent, decorators: [{
5474
+ type: Component,
5475
+ args: [{ selector: 'taon-session-passcode', standalone: true, imports: [PasswordModule, CommonModule, ReactiveFormsModule, FormsModule], template: "<form\n [formGroup]=\"form\"\n content=\"notranslate\"\n autocomplete=\"off\"\n (click)=\"focus()\"\n (ngSubmit)=\"submit(form.value)\"\n class=\"flex flex-column align-items-center w-full h-full\">\n <div class=\"flex align-content-center w-full justify-content-center mt-8\">\n <p\n class=\"p-3\"\n style=\"max-width: 400px; min-height: 100px\"\n [innerHtml]=\"safeMessage\"></p>\n </div>\n <input\n type=\"password\"\n class=\"text-5xl md:text-8xl pointer-events-none\"\n #taonpasscode\n (keyup)=\"onKeyup($event)\"\n formControlName=\"passcode\" />\n <!-- placeholder=\"Enter passcode\" -->\n</form>\n", styles: [":host{position:fixed;background-color:#9f9f9f57;z-index:99999;-webkit-backdrop-filter:blur(50px);backdrop-filter:blur(50px);width:100%;height:100%;display:none}input{background:#fff;border-radius:6px;outline:0px;border:0px;color:gray;text-align:center;width:500px}\n"] }]
5476
+ }], ctorParameters: () => [{ type: i0.ElementRef, decorators: [{
5477
+ type: Self
5478
+ }] }, { type: i1.DomSanitizer }, { type: i0.ChangeDetectorRef }], propDecorators: { passcode: [{
5479
+ type: Input
5480
+ }], message: [{
5481
+ type: Input
5482
+ }], display: [{
5483
+ type: HostBinding,
5484
+ args: ['style.display']
5485
+ }] } });
5486
+ ;
5487
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-session-passcode/taon-session-passcode.component.ts
5488
+
5489
+ ;
5490
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-session-passcode/index.ts
5491
+
5492
+ const calculatePercentage = (loaded, total) => Math.floor(loaded * 1.0) / total;
5493
+ class TaonProgressBarComponent {
5494
+ constructor() {
5495
+ this.handlers = [];
5496
+ this.options = _$1.merge({
5497
+ min: 8,
5498
+ max: 100,
5499
+ speed: 200,
5500
+ trickleSpeed: 300,
5501
+ debounceTime: 0,
5502
+ ease: 'linear',
5503
+ spinnerPosition: 'right',
5504
+ direction: 'ltr+',
5505
+ color: 'gray',
5506
+ fixed: true,
5507
+ meteor: true,
5508
+ spinner: true,
5509
+ thick: false,
5510
+ }, _$1.get(ENV, `plugins['ngx-progressbar']`));
5511
+ }
5512
+ ngOnInit() { }
5513
+ ngOnDestroy() {
5514
+ this.handlers.forEach(h => h.unsubscribe());
5515
+ }
5516
+ ngAfterViewInit() {
5517
+ this.loadProgressBar(void 0, axios);
5518
+ }
5519
+ loadProgressBar(config, instance = axios) {
5520
+ /* */
5521
+ /* */
5522
+ /* */
5523
+ /* */
5524
+ /* */
5525
+ /* */
5526
+ /* */
5527
+ /* */
5528
+ /* */
5529
+ /* */
5530
+ /* */
5531
+ /* */
5532
+ /* */
5533
+ /* */
5534
+ /* */
5535
+ /* */
5536
+ /* */
5537
+ /* */
5538
+ /* */
5539
+ /* */
5540
+ /* */
5541
+ /* */
5542
+ /* */
5543
+ /* */
5544
+ /* */
5545
+ /* */
5546
+ /* */
5547
+ /* */
5548
+ /* */
5549
+ /* */
5550
+ /* */
5551
+ /* */
5552
+ /* */
5553
+ /* */
5554
+ /* */
5555
+ /* */
5556
+ /* */
5557
+ /* */
5558
+ /* */
5559
+ /* */
5560
+ /* */
5561
+ /* */
5562
+ /* */
5563
+ /* */
5564
+ /* */
5565
+ /* */
5566
+ /* */
5567
+ /* */
5568
+ }
5569
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5570
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: TaonProgressBarComponent, selector: "taon-progress-bar", inputs: { isDesktop: "isDesktop" }, viewQueries: [{ propertyName: "labProgress", first: true, predicate: ["labProgress"], descendants: true }], ngImport: i0, template: "<ng-progress\n #labProgress\n id=\"lab\"\n [meteor]=\"options.meteor\"\n [color]=\"options.color\"\n [min]=\"options.min\"\n [max]=\"options.max\"\n [speed]=\"options.speed\"\n [spinner]=\"\n options.spinner &&\n (!admin.adminPanelIsOpen ||\n (admin.adminPanelIsOpen && (admin.draggablePopupMode || !isDesktop)))\n \"\n [spinnerPosition]=\"options.spinnerPosition\"\n [direction]=\"options.direction\"\n [trickleSpeed]=\"options.trickleSpeed\"\n [debounceTime]=\"options.debounceTime\"\n [ease]=\"options.ease\"\n [thick]=\"options.thick\"\n [fixed]=\"options.fixed\">\n</ng-progress>\n<!-- (started)=\"onProgressStarted()\"\n (completed)=\"onProgressCompleted()\" -->\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: i1$2.NgProgressComponent, selector: "ng-progress", inputs: ["id", "min", "max", "ease", "color", "speed", "thick", "fixed", "meteor", "spinner", "trickleSpeed", "debounceTime", "trickleFunc", "spinnerPosition", "direction"], outputs: ["started", "completed"] }] }); }
5571
+ }
5572
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonProgressBarComponent, decorators: [{
5573
+ type: Component,
5574
+ args: [{ selector: 'taon-progress-bar', template: "<ng-progress\n #labProgress\n id=\"lab\"\n [meteor]=\"options.meteor\"\n [color]=\"options.color\"\n [min]=\"options.min\"\n [max]=\"options.max\"\n [speed]=\"options.speed\"\n [spinner]=\"\n options.spinner &&\n (!admin.adminPanelIsOpen ||\n (admin.adminPanelIsOpen && (admin.draggablePopupMode || !isDesktop)))\n \"\n [spinnerPosition]=\"options.spinnerPosition\"\n [direction]=\"options.direction\"\n [trickleSpeed]=\"options.trickleSpeed\"\n [debounceTime]=\"options.debounceTime\"\n [ease]=\"options.ease\"\n [thick]=\"options.thick\"\n [fixed]=\"options.fixed\">\n</ng-progress>\n<!-- (started)=\"onProgressStarted()\"\n (completed)=\"onProgressCompleted()\" -->\n", styles: [":host{display:block}\n"] }]
5575
+ }], ctorParameters: () => [], propDecorators: { labProgress: [{
5576
+ type: ViewChild,
5577
+ args: ['labProgress']
5578
+ }], isDesktop: [{
5579
+ type: Input
5580
+ }] } });
5581
+ ;
5582
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-progress-bar/taon-progress-bar.component.ts
5583
+
5584
+ class TaonProgressBarModule {
5585
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonProgressBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5586
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: TaonProgressBarModule, declarations: [TaonProgressBarComponent], imports: [CommonModule, i1$2.NgProgressModule], exports: [TaonProgressBarComponent] }); }
5587
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonProgressBarModule, imports: [CommonModule, NgProgressModule.withConfig({})] }); }
5588
+ }
5589
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonProgressBarModule, decorators: [{
5590
+ type: NgModule,
5591
+ args: [{
5592
+ imports: [CommonModule, NgProgressModule.withConfig({})],
5593
+ declarations: [TaonProgressBarComponent],
5594
+ exports: [TaonProgressBarComponent],
5595
+ }]
5596
+ }] });
5597
+ ;
5598
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-progress-bar/taon-progress-bar.module.ts
5599
+
5600
+ ;
5601
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-progress-bar/index.ts
5602
+
5603
+ const log = Log.create('Table wrapper', Level.__NOTHING);
5604
+ const defaultColumns = [
5605
+ {
5606
+ header: 'ID',
5607
+ field: 'id',
5608
+ },
5609
+ {
5610
+ header: 'NAME',
5611
+ field: 'name',
5612
+ },
5613
+ ];
5614
+ class TaonTableComponent {
5615
+ constructor() {
5616
+ this.pageNumber = 1;
5617
+ this.pageSize = 5;
5618
+ this.allowedColumns = [];
5619
+ this.rows = _.times(20, id => {
5620
+ return {
5621
+ id,
5622
+ name: `Amazing ${id} row `,
5623
+ };
5624
+ });
5625
+ this.columns = defaultColumns;
5626
+ this.pageSizeOptions = [5, 10, 20];
5627
+ this.expansionChange = new EventEmitter();
5628
+ this.addingItem = new EventEmitter();
5629
+ this.searchInputChange$ = defer(() => fromEvent(this.search?.nativeElement, 'keyup')).pipe(map(c => c.target['value']), debounceTime(500), distinctUntilChanged(), share(), tap(data => {
5630
+ console.log({ data });
5631
+ }));
5632
+ this.expandable = false;
5633
+ this.showPaginator = true;
5634
+ this.isLoading = false;
5635
+ this.totalElements = 100;
5636
+ this.sub = new Subscription();
5637
+ }
5638
+ async ngOnInit() {
5639
+ if (_.isString(this.entity)) {
5640
+ this.entity = CLASS.getBy(this.entity);
5641
+ }
5642
+ this.sub.add(this.searchInputChange$.subscribe());
5643
+ if (!!this.entity) {
5644
+ this.rows = [];
5645
+ }
5646
+ this.expandable = !!this.expansionTemplate;
5647
+ log.i('this.columns,', this.columns);
5648
+ const columnsConfigSameAsDefault = _.isEqual(this.columns, defaultColumns);
5649
+ const entityClass = this.entity;
5650
+ if (entityClass && columnsConfigSameAsDefault) {
5651
+ log.i('this.crud.entity', CLASS.describeProperites(entityClass));
5652
+ try {
5653
+ const props = CLASS.describeProperites(entityClass);
5654
+ let columns = props
5655
+ .filter(prop => this.allowedColumns.length > 0
5656
+ ? this.allowedColumns.includes(prop)
5657
+ : true)
5658
+ .map(prop => {
5659
+ return {
5660
+ header: _.upperCase(prop),
5661
+ field: prop,
5662
+ };
5663
+ });
5664
+ const extra = this.allowedColumns.filter(f => !props.includes(f));
5665
+ columns = [
5666
+ ...columns,
5667
+ ...extra.map(prop => {
5668
+ return {
5669
+ header: _.upperCase(prop),
5670
+ field: prop,
5671
+ };
5672
+ }),
5673
+ ];
5674
+ if (!this.expandable) {
5675
+ for (let index = 0; index < columns.length; index++) {
5676
+ const col = columns[index];
5677
+ delete col.showExpand;
5678
+ }
5679
+ }
5680
+ this.columns = columns;
5681
+ }
5682
+ catch (error) {
5683
+ console.error(error);
5684
+ }
5685
+ }
5686
+ else {
5687
+ }
5688
+ if (!this.entity) {
5689
+ this.showPaginator = false;
5690
+ }
5691
+ await this.retriveData();
5692
+ }
5693
+ ngOnDestroy() {
5694
+ this.sub.unsubscribe();
5695
+ }
5696
+ async getNextPage(e) {
5697
+ this.pageNumber = e.pageIndex + 1;
5698
+ this.pageSize = e.pageSize;
5699
+ await this.retriveData();
5700
+ }
5701
+ async retriveData() {
5702
+ // @ts-ignore
5703
+ }
5704
+ expansionRow(e) {
5705
+ this.expansionChange.next(e);
5706
+ }
5707
+ onTableContextMenu(e) {
5708
+ log.i('context menu event', e);
5709
+ }
5710
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5711
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: TaonTableComponent, selector: "taon-table", inputs: { pageNumber: "pageNumber", pageSize: "pageSize", allowedColumns: "allowedColumns", entity: "entity", expansionTemplate: "expansionTemplate", rows: "rows", columns: "columns", pageSizeOptions: "pageSizeOptions" }, outputs: { expansionChange: "expansionChange", addingItem: "addingItem" }, viewQueries: [{ propertyName: "search", first: true, predicate: ["search"], descendants: true, static: true }], ngImport: i0, template: "<br />\n<columns-container>\n <column grow>\n <mat-form-field class=\"search-input\">\n <input matInput placeholder=\"Type to search table...\" #search />\n </mat-form-field>\n </column>\n <column [width]=\"80\">\n <button\n mat-fab\n [ngClass]=\"{ 'half-opacity': !search.value }\"\n class=\"undo-button\"\n color=\"secondary\"\n (click)=\"search.value = ''\">\n <mat-icon>close </mat-icon>\n </button>\n </column>\n\n <column [width]=\"80\">\n <button\n mat-fab\n (click)=\"addingItem.next()\"\n class=\"undo-button\"\n color=\"primary\">\n <mat-icon>add</mat-icon>\n </button>\n </column>\n</columns-container>\n\n<mtx-grid\n *ngIf=\"rows && columns\"\n [data]=\"rows\"\n [columns]=\"columns\"\n [expandable]=\"expandable\"\n [expansionTemplate]=\"expansionTemplate\"\n (expansionChange)=\"expansionRow($event)\"\n [length]=\"totalElements\"\n [loading]=\"isLoading\"\n [pageOnFront]=\"false\"\n [pageIndex]=\"pageNumber - 1\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [showPaginator]=\"showPaginator\"\n (page)=\"getNextPage($event)\">\n</mtx-grid>\n", styles: [":host{min-height:250px}.search-input{width:100%}.undo-button{margin-left:10px}.half-opacity{opacity:.2}\n"], dependencies: [{ kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i3.MtxGrid, selector: "mtx-grid", inputs: ["displayedColumns", "columns", "data", "length", "loading", "trackBy", "columnResizable", "emptyValuePlaceholder", "pageOnFront", "showPaginator", "pageDisabled", "showFirstLastButtons", "pageIndex", "pageSize", "pageSizeOptions", "hidePageSize", "paginationTemplate", "sortOnFront", "sortActive", "sortDirection", "sortDisableClear", "sortDisabled", "sortStart", "rowHover", "rowStriped", "expandable", "expansionTemplate", "multiSelectable", "multiSelectionWithClick", "rowSelectable", "hideRowSelectionCheckbox", "disableRowClickSelection", "rowSelectionFormatter", "rowClassFormatter", "rowSelected", "cellSelectable", "showToolbar", "toolbarTitle", "toolbarTemplate", "columnHideable", "columnHideableChecked", "columnSortable", "columnPinnable", "columnPinOptions", "showColumnMenuButton", "columnMenuButtonText", "columnMenuButtonType", "columnMenuButtonColor", "columnMenuButtonClass", "columnMenuButtonIcon", "showColumnMenuHeader", "columnMenuHeaderText", "columnMenuHeaderTemplate", "showColumnMenuFooter", "columnMenuFooterText", "columnMenuFooterTemplate", "noResultText", "noResultTemplate", "headerTemplate", "headerExtraTemplate", "cellTemplate", "useContentRowTemplate", "useContentHeaderRowTemplate", "useContentFooterRowTemplate", "showSummary", "summaryTemplate", "showSidebar", "sidebarTemplate", "showStatusbar", "statusbarTemplate"], outputs: ["page", "sortChange", "rowClick", "rowContextMenu", "expansionChange", "rowSelectedChange", "cellSelectedChange", "columnChange"], exportAs: ["mtxGrid"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i1$3.ColumnsComponent, selector: "columns-container" }, { kind: "component", type: i1$3.ColumnComponent, selector: "column", inputs: ["width"] }, { kind: "directive", type: i1$3.DirectiveGrow, selector: "[grow]" }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6$1.MatFabButton, selector: "button[mat-fab]", inputs: ["extended"], exportAs: ["matButton"] }] }); }
5712
+ }
5713
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonTableComponent, decorators: [{
5714
+ type: Component,
5715
+ args: [{ selector: 'taon-table', template: "<br />\n<columns-container>\n <column grow>\n <mat-form-field class=\"search-input\">\n <input matInput placeholder=\"Type to search table...\" #search />\n </mat-form-field>\n </column>\n <column [width]=\"80\">\n <button\n mat-fab\n [ngClass]=\"{ 'half-opacity': !search.value }\"\n class=\"undo-button\"\n color=\"secondary\"\n (click)=\"search.value = ''\">\n <mat-icon>close </mat-icon>\n </button>\n </column>\n\n <column [width]=\"80\">\n <button\n mat-fab\n (click)=\"addingItem.next()\"\n class=\"undo-button\"\n color=\"primary\">\n <mat-icon>add</mat-icon>\n </button>\n </column>\n</columns-container>\n\n<mtx-grid\n *ngIf=\"rows && columns\"\n [data]=\"rows\"\n [columns]=\"columns\"\n [expandable]=\"expandable\"\n [expansionTemplate]=\"expansionTemplate\"\n (expansionChange)=\"expansionRow($event)\"\n [length]=\"totalElements\"\n [loading]=\"isLoading\"\n [pageOnFront]=\"false\"\n [pageIndex]=\"pageNumber - 1\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [showPaginator]=\"showPaginator\"\n (page)=\"getNextPage($event)\">\n</mtx-grid>\n", styles: [":host{min-height:250px}.search-input{width:100%}.undo-button{margin-left:10px}.half-opacity{opacity:.2}\n"] }]
5716
+ }], ctorParameters: () => [], propDecorators: { pageNumber: [{
5717
+ type: Input
5718
+ }], pageSize: [{
5719
+ type: Input
5720
+ }], allowedColumns: [{
5721
+ type: Input
5722
+ }], entity: [{
5723
+ type: Input
5724
+ }], expansionTemplate: [{
5725
+ type: Input
5726
+ }], rows: [{
5727
+ type: Input
5728
+ }], columns: [{
5729
+ type: Input
5730
+ }], pageSizeOptions: [{
5731
+ type: Input
5732
+ }], expansionChange: [{
5733
+ type: Output
5734
+ }], addingItem: [{
5735
+ type: Output
5736
+ }], search: [{
5737
+ type: ViewChild,
5738
+ args: ['search', { static: true }]
5739
+ }] } });
5740
+ ;
5741
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-table/taon-table.component.ts
5742
+
5743
+ class TaonTableModule {
5744
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5745
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: TaonTableModule, declarations: [TaonTableComponent], imports: [CommonModule,
5746
+ MatSelectModule,
5747
+ MtxGridModule,
5748
+ MatFormFieldModule,
5749
+ MatInputModule,
5750
+ StaticColumnsModule,
5751
+ MatIconModule,
5752
+ MatButtonModule,
5753
+ FormsModule,
5754
+ ReactiveFormsModule], exports: [TaonTableComponent] }); }
5755
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonTableModule, imports: [CommonModule,
5756
+ MatSelectModule,
5757
+ MtxGridModule,
5758
+ MatFormFieldModule,
5759
+ MatInputModule,
5760
+ StaticColumnsModule,
5761
+ MatIconModule,
5762
+ MatButtonModule,
5763
+ FormsModule,
5764
+ ReactiveFormsModule] }); }
5765
+ }
5766
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonTableModule, decorators: [{
5767
+ type: NgModule,
5768
+ args: [{
5769
+ imports: [
5770
+ CommonModule,
5771
+ MatSelectModule,
5772
+ MtxGridModule,
5773
+ MatFormFieldModule,
5774
+ MatInputModule,
5775
+ StaticColumnsModule,
5776
+ MatIconModule,
5777
+ MatButtonModule,
5778
+ FormsModule,
5779
+ ReactiveFormsModule,
5780
+ ],
5781
+ exports: [TaonTableComponent],
5782
+ declarations: [TaonTableComponent],
5783
+ }]
5784
+ }] });
5785
+ ;
5786
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-table/taon-table.module.ts
5787
+
5788
+ ;
5789
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-table/index.ts
5790
+
5791
+ class TaonAdminService {
5792
+ /**
5793
+ * @deprecated
5794
+ */
5795
+ disableScroll() {
5796
+ }
5797
+ constructor(cdr) {
5798
+ this.cdr = cdr;
5799
+ this.admin = window['taon'];
5800
+ }
5801
+ addTab(name, template) {
5802
+ this.admin.cmp.tabs.push({
5803
+ name,
5804
+ template,
5805
+ });
5806
+ }
5807
+ init(taonAdminModeConfigurationComponent) {
5808
+ this.taonAdminModeConfigurationComponent =
5809
+ taonAdminModeConfigurationComponent;
5810
+ }
5811
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminService, deps: [{ token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
5812
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminService, providedIn: 'root' }); }
5813
+ }
5814
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminService, decorators: [{
5815
+ type: Injectable,
5816
+ args: [{ providedIn: 'root' }]
5817
+ }], ctorParameters: () => [{ type: i0.ApplicationRef }] });
5818
+ ;
5819
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/taon-admin-control.service.ts
5820
+
5821
+ class TaonAdminModeConfigurationComponent {
5822
+ get opened() {
5823
+ return !this.isIframe && this.admin.adminPanelIsOpen;
5824
+ }
5825
+ set opened(v) {
5826
+ if (v && !this.openedOnce) {
5827
+ this.openedOnce = true;
5828
+ }
5829
+ if (this.wasOpenDraggablePopup) {
5830
+ this.wasOpenDraggablePopup = false;
5831
+ this.admin.draggablePopupMode = true;
5832
+ }
5833
+ this.admin.adminPanelIsOpen = v;
5834
+ }
5835
+ constructor(breakpointsService) {
5836
+ this.breakpointsService = breakpointsService;
5837
+ this.$destroy = new Subject();
5838
+ this.cdr = inject$1(ChangeDetectorRef);
5839
+ this.taonAdminService = inject$1(TaonAdminService);
5840
+ this.tabs = [];
5841
+ this.admin = window['taon'];
5842
+ this.isWebSQLMode = Helpers.isWebSQL;
5843
+ this.hideTaonToolsInProduction = ENV.hideTaonToolsInProduction && ENV.angularProd;
5844
+ this.isIframe = window.location !== window.parent.location;
5845
+ this.height = 100;
5846
+ this.openedOnce = false;
5847
+ this.reloading = false;
5848
+ this.showPasscode = _$1.isString(ENV.passcode) || _$1.isObject(ENV.passcode);
5849
+ this.passcode = _$1.isString(ENV.passcode)
5850
+ ? ENV.passcode
5851
+ : _$1.isObject(ENV.passcode)
5852
+ ? ENV.passcode.code
5853
+ : '';
5854
+ this.message = _$1.isObject(ENV.passcode)
5855
+ ? ENV.passcode.message
5856
+ : void 0;
5857
+ this.dragPositionZero = { x: 0, y: 0 };
5858
+ this.taonAdminModeConfigurationDataChanged = new EventEmitter();
5859
+ this.taonAdminModeConfigurationData = {};
5860
+ this.admin.cmp = this;
5861
+ this.breakpointsService
5862
+ .listenTo()
5863
+ .pipe(takeUntil(this.$destroy))
5864
+ .subscribe(breakpoint => {
5865
+ // @ts-ignore
5866
+ this.isDesktop = breakpoint === 'desktop';
5867
+ });
5868
+ this.taonAdminService.init(this);
5869
+ }
5870
+ reloadTabs() {
5871
+ this.reloading = true;
5872
+ setTimeout(() => {
5873
+ this.reloading = false;
5874
+ console.log('reloading done');
5875
+ });
5876
+ }
5877
+ async ngOnInit() {
5878
+ await Stor.awaitPendingOperatios();
5879
+ this.dragPosition = { x: this.dragPositionX, y: this.dragPositionY };
5880
+ this.openedOnce = this.opened;
5881
+ }
5882
+ ngAfterViewInit() {
5883
+ //Called after ngAfterContentInit when the component's view has been initialized. Applies to components only.
5884
+ //Add 'implements AfterViewInit' to the class.
5885
+ setTimeout(() => {
5886
+ this.height = window.innerHeight;
5887
+ if (this.admin.draggablePopupMode) {
5888
+ this.reloadTabs();
5889
+ }
5890
+ });
5891
+ }
5892
+ ngOnDestroy() {
5893
+ this.$destroy.next(void 0);
5894
+ this.$destroy.complete();
5895
+ }
5896
+ onResize(event) {
5897
+ this.height = window.innerHeight;
5898
+ }
5899
+ async toogle() {
5900
+ this.opened = !this.opened;
5901
+ }
5902
+ async toogleFullScreen() {
5903
+ this.admin.draggablePopupMode = true;
5904
+ this.admin.draggablePopupModeFullScreen =
5905
+ !this.admin.draggablePopupModeFullScreen;
5906
+ this.resetDrag();
5907
+ }
5908
+ resetDrag() {
5909
+ this.dragPositionX = 0;
5910
+ this.dragPositionY = 0;
5911
+ this.dragPosition = { x: this.dragPositionX, y: this.dragPositionY };
5912
+ }
5913
+ moved(c) {
5914
+ this.dragPositionX += c.distance.x;
5915
+ this.dragPositionY += c.distance.y;
5916
+ }
5917
+ scrollTabs(event) {
5918
+ return;
5919
+ }
5920
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminModeConfigurationComponent, deps: [{ token: i1$3.BreakpointsService }], target: i0.ɵɵFactoryTarget.Component }); }
5921
+ 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$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1$3.ColumnsComponent, selector: "columns-container" }, { kind: "component", type: i1$3.ColumnComponent, selector: "column", inputs: ["width"] }, { kind: "directive", type: i1$3.DirectiveGrow, selector: "[grow]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4$1.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$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i6$1.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: i6.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: TaonSessionPasscodeComponent, selector: "taon-session-passcode", inputs: ["passcode", "message"] }] }); }
5922
+ }
5923
+ __decorate([
5924
+ Stor.property.in.localstorage
5925
+ .for(TaonAdminModeConfigurationComponent)
5926
+ .withDefaultValue(0),
5927
+ __metadata("design:type", Number)
5928
+ ], TaonAdminModeConfigurationComponent.prototype, "dragPositionX", void 0);
5929
+ __decorate([
5930
+ Stor.property.in.localstorage
5931
+ .for(TaonAdminModeConfigurationComponent)
5932
+ .withDefaultValue(0),
5933
+ __metadata("design:type", Number)
5934
+ ], TaonAdminModeConfigurationComponent.prototype, "dragPositionY", void 0);
5935
+ __decorate([
5936
+ Stor.property.in.localstorage
5937
+ .for(TaonAdminModeConfigurationComponent)
5938
+ .withDefaultValue(0),
5939
+ __metadata("design:type", Number)
5940
+ ], TaonAdminModeConfigurationComponent.prototype, "selectedIndex", void 0);
5941
+ __decorate([
5942
+ Stor.property.in.localstorage
5943
+ .for(TaonAdminModeConfigurationComponent)
5944
+ .withDefaultValue(false),
5945
+ __metadata("design:type", Boolean)
5946
+ ], TaonAdminModeConfigurationComponent.prototype, "wasOpenDraggablePopup", void 0);
5947
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminModeConfigurationComponent, decorators: [{
5948
+ type: Component,
5949
+ 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"] }]
5950
+ }], ctorParameters: () => [{ type: i1$3.BreakpointsService }], propDecorators: { tabGroup: [{
5951
+ type: ViewChild,
5952
+ args: ['tabGroup']
5953
+ }], taonAdminModeConfigurationDataChanged: [{
5954
+ type: Output
5955
+ }], taonAdminModeConfigurationData: [{
5956
+ type: Input
5957
+ }], onResize: [{
5958
+ type: HostListener,
5959
+ args: ['window:resize', ['$event']]
5960
+ }] } });
5961
+ ;
5962
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.ts
5963
+
5964
+ class TaonAdminEditModeComponent {
5965
+ constructor(router) {
5966
+ this.router = router;
5967
+ this.inited$ = of(true);
5968
+ this.destroyed$ = new Subject();
5969
+ this.handlers = [];
5970
+ this.columns = [
5971
+ {
5972
+ header: 'ID',
5973
+ field: 'id',
5974
+ maxWidth: 100,
5975
+ showExpand: true,
5976
+ },
5977
+ {
5978
+ header: 'src',
5979
+ field: 'src',
5980
+ maxWidth: 250,
5981
+ },
5982
+ {
5983
+ header: 'Content Type',
5984
+ field: 'contentType',
5985
+ maxWidth: 120,
5986
+ },
5987
+ ];
5988
+ this.taonAdminEditModeDataChanged = new EventEmitter();
5989
+ this.taonAdminEditModeData = {};
5990
+ }
5991
+ ngOnInit() {
5992
+ this.files = this.admin.currentFiles;
5993
+ this.handlers.push(this.admin.onEditMode$.subscribe(() => {
5994
+ this.refresFilesList();
5995
+ }));
5996
+ this.admin.onRegisterFile().pipe(takeUntil(this.destroyed$), tap(() => {
5997
+ this.refresFilesList();
5998
+ }));
5999
+ }
6000
+ ngOnDestroy() {
6001
+ this.handlers.forEach(h => h.unsubscribe());
6002
+ this.destroyed$.next(void 0);
6003
+ this.destroyed$.unsubscribe();
6004
+ }
6005
+ ngAfterViewInit() {
6006
+ //Called after ngAfterContentInit when the component's view has been initialized. Applies to components only.
6007
+ //Add 'implements AfterViewInit' to the class.
6008
+ setTimeout(() => {
6009
+ this.refresFilesList();
6010
+ }, 500);
6011
+ }
6012
+ expansionRow(e) {
6013
+ console.log(e);
6014
+ }
6015
+ refresFilesList() {
6016
+ this.files = this.admin.currentFiles;
6017
+ }
6018
+ searchFind(file) {
6019
+ if (!!this?.fileToSearch) {
6020
+ return file?.src?.search(this?.fileToSearch) !== -1;
6021
+ }
6022
+ return true;
6023
+ }
6024
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminEditModeComponent, deps: [{ token: i1$4.Router }], target: i0.ɵɵFactoryTarget.Component }); }
6025
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: TaonAdminEditModeComponent, selector: "taon-admin-edit-mode", inputs: { taonAdminEditModeData: "taonAdminEditModeData" }, outputs: { taonAdminEditModeDataChanged: "taonAdminEditModeDataChanged" }, ngImport: i0, template: "<ng-template #expansionTpl let-row>\n hello from expansion {{ row.src }}\n</ng-template>\n\n<mat-card *ngIf=\"inited$ | async\">\n <div *ngIf=\"!admin.selectedFile\">Please select file from portal to edit</div>\n <taon-file\n *ngIf=\"admin.selectedFile\"\n class=\"file-inside-admin\"\n [insideAdmin]=\"true\"\n [file]=\"admin.selectedFile\"></taon-file>\n\n <hr />\n\n <mat-tab-group\n dynamicHeight\n [selectedIndex]=\"selectedTabIndex\"\n (selectedIndexChange)=\"selectedTabIndex = $event; refresFilesList()\">\n <mat-tab label=\"General\">\n <!-- <taon-file-general-opt\n [file]=\"admin.selectedFile\"></taon-file-general-opt> -->\n </mat-tab>\n <!-- <mat-tab label=\"CSS Editing\">\n <ace [mode]=\"'css'\"\n *ngIf=\"admin.selectedFile\"\n [(value)]=\"admin.selectedFile.css\"\n [theme]=\"'github'\"\n style=\"width: 100%; height: 300px;\"></ace>\n </mat-tab> -->\n\n <mat-tab label=\"Files Picker\">\n <!-- <taon-table\n [entity]=\"entity\"\n [allowedColumns]=\"['src', 'contentType']\"\n [columns]=\"columns\"\n [expansionTemplate]=\"expansionTpl\"\n (expansionChange)=\"expansionRow($event)\">\n </taon-table> -->\n </mat-tab>\n <mat-tab label=\"File Version History\">\n <!-- <taon-table\n [entity]=\"entity\"\n [allowedColumns]=\"['src', 'contentType']\"\n [columns]=\"columns\"\n [expansionTemplate]=\"expansionTpl\"\n (expansionChange)=\"expansionRow($event)\">\n </taon-table> -->\n </mat-tab>\n <mat-tab label=\"Current File\">\n <columns-container *ngIf=\"files.length > 0\">\n <column grow>\n <mat-form-field style=\"width: 100%\">\n <input\n matInput\n [(ngModel)]=\"fileToSearch\"\n (focus)=\"refresFilesList()\"\n placeholder=\"Search by name\" />\n </mat-form-field>\n </column>\n <column [width]=\"40\">\n <button\n mat-icon-button\n (click)=\"fileToSearch = ''; refresFilesList()\"\n *ngIf=\"fileToSearch && fileToSearch?.trim() !== ''\">\n <mat-icon>backspace</mat-icon>\n </button>\n </column>\n <!-- <column [width]=\"40\">\n <button mat-icon-button (click)=\"refresFilesList();\" >\n <mat-icon >refresh</mat-icon>\n </button>\n </column> -->\n </columns-container>\n <columns-container *ngIf=\"files.length == 0\">\n <section>\n <code\n >No &lt;taon-file/&gt; - s components detected on this page</code\n >\n </section>\n </columns-container>\n\n <div class=\"scrollable-files-list\" *ngIf=\"files.length > 0\">\n <ng-scrollbar>\n <!-- selected: \"{{ selectedFile?.src }}\" -->\n <!-- {{ filesSelection.selectedOptions | json }} -->\n <mat-selection-list\n [multiple]=\"false\"\n #filesToSelect\n (selectionChange)=\"\n admin.selectedFile = filesToSelect.selectedOptions.hasValue()\n ? filesToSelect.selectedOptions.selected[0].value\n : null\n \">\n <mat-list-option\n *ngFor=\"let file of files | filterBy: ['src'] : fileToSearch\"\n [value]=\"file\">\n <strong *ngIf=\"file?.src === admin.selectedFile?.src\">\n {{ file.src }}\n </strong>\n <span *ngIf=\"file?.src !== admin.selectedFile?.src\">\n {{ file.src }}\n </span>\n </mat-list-option>\n </mat-selection-list>\n </ng-scrollbar>\n </div>\n </mat-tab>\n </mat-tab-group>\n</mat-card>\n", styles: [":host{display:block}.scrollable-files-list{height:150px;background:#8080801c;display:block}\n"], dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1$3.ColumnsComponent, selector: "columns-container" }, { kind: "component", type: i1$3.ColumnComponent, selector: "column", inputs: ["width"] }, { kind: "directive", type: i1$3.DirectiveGrow, selector: "[grow]" }, { kind: "component", type: i4$1.NgScrollbar, selector: "ng-scrollbar:not([externalViewport])", exportAs: ["ngScrollbar"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i11$1.MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i11$1.MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "checkboxPosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { 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: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i13.FilterByPipe, name: "filterBy" }] }); }
6026
+ }
6027
+ __decorate([
6028
+ (Stor.property.in.localstorage
6029
+ .for(TaonAdminEditModeComponent)
6030
+ .withDefaultValue(0)),
6031
+ __metadata("design:type", Number)
6032
+ ], TaonAdminEditModeComponent.prototype, "selectedTabIndex", void 0);
6033
+ __decorate([
6034
+ (Stor.property.in.localstorage
6035
+ .for(TaonAdminEditModeComponent)
6036
+ .withDefaultValue('')),
6037
+ __metadata("design:type", String)
6038
+ ], TaonAdminEditModeComponent.prototype, "fileToSearch", void 0);
6039
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminEditModeComponent, decorators: [{
6040
+ type: Component,
6041
+ args: [{ selector: 'taon-admin-edit-mode', template: "<ng-template #expansionTpl let-row>\n hello from expansion {{ row.src }}\n</ng-template>\n\n<mat-card *ngIf=\"inited$ | async\">\n <div *ngIf=\"!admin.selectedFile\">Please select file from portal to edit</div>\n <taon-file\n *ngIf=\"admin.selectedFile\"\n class=\"file-inside-admin\"\n [insideAdmin]=\"true\"\n [file]=\"admin.selectedFile\"></taon-file>\n\n <hr />\n\n <mat-tab-group\n dynamicHeight\n [selectedIndex]=\"selectedTabIndex\"\n (selectedIndexChange)=\"selectedTabIndex = $event; refresFilesList()\">\n <mat-tab label=\"General\">\n <!-- <taon-file-general-opt\n [file]=\"admin.selectedFile\"></taon-file-general-opt> -->\n </mat-tab>\n <!-- <mat-tab label=\"CSS Editing\">\n <ace [mode]=\"'css'\"\n *ngIf=\"admin.selectedFile\"\n [(value)]=\"admin.selectedFile.css\"\n [theme]=\"'github'\"\n style=\"width: 100%; height: 300px;\"></ace>\n </mat-tab> -->\n\n <mat-tab label=\"Files Picker\">\n <!-- <taon-table\n [entity]=\"entity\"\n [allowedColumns]=\"['src', 'contentType']\"\n [columns]=\"columns\"\n [expansionTemplate]=\"expansionTpl\"\n (expansionChange)=\"expansionRow($event)\">\n </taon-table> -->\n </mat-tab>\n <mat-tab label=\"File Version History\">\n <!-- <taon-table\n [entity]=\"entity\"\n [allowedColumns]=\"['src', 'contentType']\"\n [columns]=\"columns\"\n [expansionTemplate]=\"expansionTpl\"\n (expansionChange)=\"expansionRow($event)\">\n </taon-table> -->\n </mat-tab>\n <mat-tab label=\"Current File\">\n <columns-container *ngIf=\"files.length > 0\">\n <column grow>\n <mat-form-field style=\"width: 100%\">\n <input\n matInput\n [(ngModel)]=\"fileToSearch\"\n (focus)=\"refresFilesList()\"\n placeholder=\"Search by name\" />\n </mat-form-field>\n </column>\n <column [width]=\"40\">\n <button\n mat-icon-button\n (click)=\"fileToSearch = ''; refresFilesList()\"\n *ngIf=\"fileToSearch && fileToSearch?.trim() !== ''\">\n <mat-icon>backspace</mat-icon>\n </button>\n </column>\n <!-- <column [width]=\"40\">\n <button mat-icon-button (click)=\"refresFilesList();\" >\n <mat-icon >refresh</mat-icon>\n </button>\n </column> -->\n </columns-container>\n <columns-container *ngIf=\"files.length == 0\">\n <section>\n <code\n >No &lt;taon-file/&gt; - s components detected on this page</code\n >\n </section>\n </columns-container>\n\n <div class=\"scrollable-files-list\" *ngIf=\"files.length > 0\">\n <ng-scrollbar>\n <!-- selected: \"{{ selectedFile?.src }}\" -->\n <!-- {{ filesSelection.selectedOptions | json }} -->\n <mat-selection-list\n [multiple]=\"false\"\n #filesToSelect\n (selectionChange)=\"\n admin.selectedFile = filesToSelect.selectedOptions.hasValue()\n ? filesToSelect.selectedOptions.selected[0].value\n : null\n \">\n <mat-list-option\n *ngFor=\"let file of files | filterBy: ['src'] : fileToSearch\"\n [value]=\"file\">\n <strong *ngIf=\"file?.src === admin.selectedFile?.src\">\n {{ file.src }}\n </strong>\n <span *ngIf=\"file?.src !== admin.selectedFile?.src\">\n {{ file.src }}\n </span>\n </mat-list-option>\n </mat-selection-list>\n </ng-scrollbar>\n </div>\n </mat-tab>\n </mat-tab-group>\n</mat-card>\n", styles: [":host{display:block}.scrollable-files-list{height:150px;background:#8080801c;display:block}\n"] }]
6042
+ }], ctorParameters: () => [{ type: i1$4.Router }], propDecorators: { taonAdminEditModeDataChanged: [{
6043
+ type: Output
6044
+ }], taonAdminEditModeData: [{
6045
+ type: Input
6046
+ }] } });
6047
+ ;
6048
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.ts
6049
+
6050
+ class TaonFileGeneralOptComponent {
6051
+ constructor() {
6052
+ this.height = 100;
6053
+ this.handlers = [];
6054
+ this.fieldsOrder = [];
6055
+ this.fields = [
6056
+ {
6057
+ key: 'width',
6058
+ },
6059
+ {
6060
+ key: 'height',
6061
+ },
6062
+ {
6063
+ key: 'display',
6064
+ },
6065
+ {
6066
+ key: 'widthUnit',
6067
+ },
6068
+ {
6069
+ key: 'heightUnit', // @ts-ignore
6070
+ },
6071
+ {
6072
+ key: 'action',
6073
+ type: 'action',
6074
+ templateOptions: {
6075
+ label: 'Reset',
6076
+ icon: 'cancel',
6077
+ raised: true,
6078
+ action: () => {
6079
+ console.log('reset');
6080
+ },
6081
+ },
6082
+ },
6083
+ ].map(f => {
6084
+ f.className = 'formly-field-half-size';
6085
+ return f;
6086
+ });
6087
+ }
6088
+ ngOnInit() { }
6089
+ ngOnDestroy() {
6090
+ this.handlers.forEach(h => h.unsubscribe());
6091
+ }
6092
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonFileGeneralOptComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6093
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: TaonFileGeneralOptComponent, selector: "taon-file-general-opt", inputs: { height: "height", file: "file" }, host: { properties: { "style.minHeight.px": "this.height" } }, ngImport: i0, template: "<!-- <taon-formly-form\n *ngIf=\"file\"\n [fields]=\"fields\"\n [fieldsOrder]=\"fieldsOrder\"\n [exclude]=\"['id']\"\n [(model)]=\"file.css\">\n</taon-formly-form> -->\n", styles: [":host{display:block}\n"] }); }
6094
+ }
6095
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonFileGeneralOptComponent, decorators: [{
6096
+ type: Component,
6097
+ args: [{ selector: 'taon-file-general-opt', template: "<!-- <taon-formly-form\n *ngIf=\"file\"\n [fields]=\"fields\"\n [fieldsOrder]=\"fieldsOrder\"\n [exclude]=\"['id']\"\n [(model)]=\"file.css\">\n</taon-formly-form> -->\n", styles: [":host{display:block}\n"] }]
6098
+ }], ctorParameters: () => [], propDecorators: { height: [{
6099
+ type: HostBinding,
6100
+ args: ['style.minHeight.px']
6101
+ }, {
6102
+ type: Input
6103
+ }], file: [{
6104
+ type: Input
6105
+ }] } });
6106
+ ;
6107
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.ts
6108
+
6109
+ class TaonFileGeneralOptModule {
6110
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonFileGeneralOptModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6111
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: TaonFileGeneralOptModule, declarations: [TaonFileGeneralOptComponent], imports: [CommonModule, TaonFullMaterialModule], exports: [TaonFileGeneralOptComponent] }); }
6112
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonFileGeneralOptModule, imports: [CommonModule, TaonFullMaterialModule] }); }
6113
+ }
6114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonFileGeneralOptModule, decorators: [{
6115
+ type: NgModule,
6116
+ args: [{
6117
+ imports: [CommonModule, TaonFullMaterialModule],
6118
+ declarations: [TaonFileGeneralOptComponent],
6119
+ exports: [TaonFileGeneralOptComponent],
6120
+ }]
6121
+ }] });
6122
+ ;
6123
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.ts
6124
+
6125
+ ;
6126
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.ts
6127
+
6128
+ class TaonAdminEditModeModule {
6129
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminEditModeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6130
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminEditModeModule, declarations: [TaonAdminEditModeComponent], imports: [CommonModule,
6131
+ StaticColumnsModule,
6132
+ NgScrollbarModule,
6133
+ TaonFileGeneralOptModule,
6134
+ FormsModule,
6135
+ NgArrayPipesModule,
6136
+ TaonTableModule,
6137
+ TaonFullMaterialModule], exports: [TaonAdminEditModeComponent] }); }
6138
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminEditModeModule, imports: [CommonModule,
6139
+ StaticColumnsModule,
6140
+ NgScrollbarModule,
6141
+ TaonFileGeneralOptModule,
6142
+ FormsModule,
6143
+ NgArrayPipesModule,
6144
+ TaonTableModule,
6145
+ TaonFullMaterialModule] }); }
6146
+ }
6147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminEditModeModule, decorators: [{
6148
+ type: NgModule,
6149
+ args: [{
6150
+ imports: [
6151
+ CommonModule,
6152
+ StaticColumnsModule,
6153
+ NgScrollbarModule,
6154
+ TaonFileGeneralOptModule,
6155
+ FormsModule,
6156
+ NgArrayPipesModule,
6157
+ TaonTableModule,
6158
+ TaonFullMaterialModule, // TODO import only partial things
6159
+ ],
6160
+ declarations: [TaonAdminEditModeComponent],
6161
+ exports: [TaonAdminEditModeComponent],
6162
+ }]
6163
+ }] });
6164
+ ;
6165
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.ts
6166
+
6167
+ ;
6168
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.ts
6169
+
6170
+ class TaonAdminModeConfigurationModule {
6171
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminModeConfigurationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6172
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminModeConfigurationModule, declarations: [TaonAdminModeConfigurationComponent], imports: [CommonModule,
6173
+ StaticColumnsModule,
6174
+ FormsModule,
6175
+ NgScrollbarModule,
6176
+ TaonAdminEditModeModule,
6177
+ TaonProgressBarModule,
6178
+ TaonNotificationsModule,
6179
+ TaonFullMaterialModule, // TODO import only partial things
6180
+ TaonSessionPasscodeComponent], exports: [TaonAdminModeConfigurationComponent] }); }
6181
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminModeConfigurationModule, imports: [CommonModule,
6182
+ StaticColumnsModule,
6183
+ FormsModule,
6184
+ NgScrollbarModule,
6185
+ TaonAdminEditModeModule,
6186
+ TaonProgressBarModule,
6187
+ TaonNotificationsModule,
6188
+ TaonFullMaterialModule, // TODO import only partial things
6189
+ TaonSessionPasscodeComponent] }); }
6190
+ }
6191
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminModeConfigurationModule, decorators: [{
6192
+ type: NgModule,
6193
+ args: [{
6194
+ imports: [
6195
+ CommonModule,
6196
+ StaticColumnsModule,
6197
+ FormsModule,
6198
+ NgScrollbarModule,
6199
+ TaonAdminEditModeModule,
6200
+ TaonProgressBarModule,
6201
+ TaonNotificationsModule,
6202
+ TaonFullMaterialModule, // TODO import only partial things
6203
+ TaonSessionPasscodeComponent,
6204
+ ],
6205
+ declarations: [TaonAdminModeConfigurationComponent],
6206
+ exports: [TaonAdminModeConfigurationComponent],
6207
+ }]
6208
+ }] });
6209
+ ;
6210
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.ts
6211
+
6212
+ ;
6213
+ ({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/index.ts
6214
+
6215
+ ;
6216
+ ({}); // @--end-of-file-for-module=taon lib/ui/index.ts
6217
+
4849
6218
  ;
4850
6219
  ({}); // @--end-of-file-for-module=taon lib/constants.ts
4851
6220
 
@@ -4895,5 +6264,5 @@ var Taon;
4895
6264
  * Generated bundle index. Do not edit.
4896
6265
  */
4897
6266
 
4898
- export { BaseContext, BaseController, BaseEntity, BaseProvider, BaseRepository, ClassHelpers, Models, Taon, createContext, inject };
4899
- //# sourceMappingURL=taon.mjs.map
6267
+ export { BaseContext, BaseController, BaseEntity, BaseProvider, BaseRepository, ClassHelpers, Models, SafePipe, Taon, TaonAdminModeConfigurationComponent, TaonAdminModeConfigurationModule, TaonAdminService, TaonFullMaterialModule, TaonGithubForkMeCornerComponent, TaonGithubForkMeCornerModule, TaonInjectHTMLDirective, TaonLongPress, TaonNotificationOptions, TaonNotificationsComponent, TaonNotificationsModule, TaonNotificationsService, TaonProgressBarComponent, TaonProgressBarModule, TaonSessionPasscodeComponent, TaonTableComponent, TaonTableModule, createContext, inject };
6268
+ //# sourceMappingURL=taon.mjs.map