@dotglitch/ngx-common 3.0.0-beta.1 → 3.0.0-beta.2

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 (1157) hide show
  1. package/command-palette/breadcrumb/breadcrumb.component.d.ts +16 -0
  2. package/command-palette/command-palette.component.d.ts +38 -0
  3. package/command-palette/command-palette.service.d.ts +128 -0
  4. package/command-palette/index.d.ts +2 -0
  5. package/command-palette/shortcut/shortcut.component.d.ts +9 -0
  6. package/{components → core/components}/menu/menu.component.d.ts +2 -2
  7. package/{directives → core/components/menu}/menu.directive.d.ts +1 -1
  8. package/{types/menu.d.ts → core/components/menu/types.d.ts} +1 -1
  9. package/{components → core/components}/types.d.ts +0 -1
  10. package/{public-api.d.ts → core/index.d.ts} +8 -4
  11. package/{services → core/services}/navigation.service.d.ts +1 -1
  12. package/core/utils/index.d.ts +18 -0
  13. package/esm2022/command-palette/breadcrumb/breadcrumb.component.mjs +30 -0
  14. package/esm2022/command-palette/command-palette.component.mjs +257 -0
  15. package/esm2022/command-palette/command-palette.service.mjs +207 -0
  16. package/esm2022/command-palette/dotglitch-ngx-common-command-palette.mjs +5 -0
  17. package/esm2022/command-palette/index.mjs +3 -0
  18. package/esm2022/command-palette/shortcut/shortcut.component.mjs +19 -0
  19. package/esm2022/core/components/lazy-loader/lazy-loader.component.mjs +383 -0
  20. package/esm2022/core/components/lazy-loader/lazy-loader.module.mjs +33 -0
  21. package/esm2022/core/components/lazy-loader/lazy-loader.service.mjs +216 -0
  22. package/esm2022/core/components/lazy-loader/types.mjs +26 -0
  23. package/esm2022/core/components/menu/menu.component.mjs +433 -0
  24. package/esm2022/core/components/menu/menu.directive.mjs +159 -0
  25. package/esm2022/core/components/menu/types.mjs +2 -0
  26. package/esm2022/core/components/parallax-card/parallax-card.component.mjs +138 -0
  27. package/esm2022/core/components/types.mjs +3 -0
  28. package/esm2022/core/directives/image-cache.directive.mjs +143 -0
  29. package/esm2022/core/directives/utils.mjs +120 -0
  30. package/esm2022/core/dotglitch-ngx-common-core.mjs +5 -0
  31. package/esm2022/core/index.mjs +50 -0
  32. package/esm2022/core/pipes/html-bypass.pipe.mjs +27 -0
  33. package/esm2022/core/pipes/resource-bypass.pipe.mjs +27 -0
  34. package/esm2022/core/pipes/script-bypass.pipe.mjs +27 -0
  35. package/esm2022/core/pipes/style-bypass.pipe.mjs +27 -0
  36. package/esm2022/core/pipes/url-bypass.pipe.mjs +27 -0
  37. package/esm2022/core/services/dependency.service.mjs +55 -0
  38. package/esm2022/core/services/dialog.service.mjs +67 -0
  39. package/esm2022/core/services/fetch.service.mjs +74 -0
  40. package/esm2022/core/services/file.service.mjs +42 -0
  41. package/esm2022/core/services/keyboard.service.mjs +128 -0
  42. package/esm2022/core/services/navigation.service.mjs +50 -0
  43. package/esm2022/core/services/theme.service.mjs +64 -0
  44. package/esm2022/core/types/popup.mjs +2 -0
  45. package/esm2022/core/utils/index.mjs +69 -0
  46. package/esm2022/dotglitch-ngx-common.mjs +2 -2
  47. package/esm2022/filemanager/dotglitch-ngx-common-filemanager.mjs +5 -0
  48. package/esm2022/filemanager/file-grid/file-grid.component.mjs +676 -0
  49. package/esm2022/filemanager/filemanager.component.mjs +313 -0
  50. package/esm2022/filemanager/folder-rename/folder-rename.component.mjs +57 -0
  51. package/esm2022/filemanager/helpers.mjs +26 -0
  52. package/esm2022/filemanager/icon-resolver.mjs +155 -0
  53. package/esm2022/filemanager/index.mjs +2 -0
  54. package/esm2022/filemanager/mat-icons.mjs +5705 -0
  55. package/esm2022/filemanager/textextensions.mjs +294 -0
  56. package/esm2022/filemanager/toolbar/breadcrumb/breadcrumb.component.mjs +22 -0
  57. package/esm2022/filemanager/toolbar/icon-button/icon-button.component.mjs +32 -0
  58. package/esm2022/filemanager/toolbar/toolbar.component.mjs +165 -0
  59. package/esm2022/filemanager/tree-view/tree-view.component.mjs +51 -0
  60. package/esm2022/filemanager/types.mjs +2 -0
  61. package/esm2022/index.mjs +3 -0
  62. package/esm2022/monaco-editor/dotglitch-ngx-common-monaco-editor.mjs +5 -0
  63. package/esm2022/monaco-editor/index.mjs +2 -0
  64. package/esm2022/monaco-editor/monaco-editor.component.mjs +234 -0
  65. package/esm2022/monaco-editor/ts-type-resolver/dependency-parser.mjs +91 -0
  66. package/esm2022/monaco-editor/ts-type-resolver/dummy-source-cache.mjs +15 -0
  67. package/esm2022/monaco-editor/ts-type-resolver/import-resolver.mjs +311 -0
  68. package/esm2022/monaco-editor/ts-type-resolver/main.mjs +112 -0
  69. package/esm2022/monaco-editor/ts-type-resolver/recursion-depth.mjs +21 -0
  70. package/esm2022/monaco-editor/ts-type-resolver/types.mjs +14 -0
  71. package/esm2022/monaco-editor/ts-type-resolver/unpkg-source-resolver.mjs +21 -0
  72. package/esm2022/monaco-editor/ts-type-resolver/update-emitter.mjs +37 -0
  73. package/esm2022/overlay-wrapper/dotglitch-ngx-common-overlay-wrapper.mjs +5 -0
  74. package/esm2022/overlay-wrapper/index.mjs +2 -0
  75. package/esm2022/overlay-wrapper/overlay-wrapper.component.mjs +247 -0
  76. package/esm2022/tooltip/dotglitch-ngx-common-tooltip.mjs +5 -0
  77. package/esm2022/tooltip/index.mjs +4 -0
  78. package/esm2022/tooltip/tooltip.component.mjs +204 -0
  79. package/esm2022/tooltip/tooltip.directive.mjs +153 -0
  80. package/esm2022/tooltip/types.mjs +2 -0
  81. package/fesm2022/dotglitch-ngx-common-command-palette.mjs +508 -0
  82. package/fesm2022/dotglitch-ngx-common-command-palette.mjs.map +1 -0
  83. package/fesm2022/dotglitch-ngx-common-core.mjs +2280 -0
  84. package/fesm2022/dotglitch-ngx-common-core.mjs.map +1 -0
  85. package/fesm2022/dotglitch-ngx-common-filemanager-folder-rename.component-CnKuU8nn.mjs +60 -0
  86. package/fesm2022/dotglitch-ngx-common-filemanager-folder-rename.component-CnKuU8nn.mjs.map +1 -0
  87. package/fesm2022/dotglitch-ngx-common-filemanager.mjs +7403 -0
  88. package/fesm2022/dotglitch-ngx-common-filemanager.mjs.map +1 -0
  89. package/fesm2022/dotglitch-ngx-common-monaco-editor.mjs +850 -0
  90. package/fesm2022/dotglitch-ngx-common-monaco-editor.mjs.map +1 -0
  91. package/fesm2022/dotglitch-ngx-common-overlay-wrapper.mjs +254 -0
  92. package/fesm2022/dotglitch-ngx-common-overlay-wrapper.mjs.map +1 -0
  93. package/fesm2022/dotglitch-ngx-common-tooltip.mjs +357 -0
  94. package/fesm2022/dotglitch-ngx-common-tooltip.mjs.map +1 -0
  95. package/fesm2022/dotglitch-ngx-common.mjs +3 -2757
  96. package/fesm2022/dotglitch-ngx-common.mjs.map +1 -1
  97. package/filemanager/file-grid/file-grid.component.d.ts +94 -0
  98. package/filemanager/filemanager.component.d.ts +206 -0
  99. package/filemanager/folder-rename/folder-rename.component.d.ts +18 -0
  100. package/filemanager/helpers.d.ts +5 -0
  101. package/filemanager/icon-resolver.d.ts +13 -0
  102. package/filemanager/index.d.ts +1 -0
  103. package/filemanager/mat-icons.d.ts +5705 -0
  104. package/filemanager/textextensions.d.ts +3 -0
  105. package/filemanager/toolbar/breadcrumb/breadcrumb.component.d.ts +16 -0
  106. package/filemanager/toolbar/icon-button/icon-button.component.d.ts +11 -0
  107. package/filemanager/toolbar/toolbar.component.d.ts +31 -0
  108. package/filemanager/tree-view/tree-view.component.d.ts +21 -0
  109. package/filemanager/types.d.ts +1 -0
  110. package/index.d.ts +1 -5
  111. package/monaco-editor/README.md +3 -0
  112. package/monaco-editor/index.d.ts +1 -0
  113. package/monaco-editor/monaco-editor.component.d.ts +53 -0
  114. package/monaco-editor/ts-type-resolver/dependency-parser.d.ts +6 -0
  115. package/monaco-editor/ts-type-resolver/dummy-source-cache.d.ts +7 -0
  116. package/monaco-editor/ts-type-resolver/import-resolver.d.ts +28 -0
  117. package/monaco-editor/ts-type-resolver/main.d.ts +22 -0
  118. package/monaco-editor/ts-type-resolver/recursion-depth.d.ts +11 -0
  119. package/monaco-editor/ts-type-resolver/types.d.ts +179 -0
  120. package/monaco-editor/ts-type-resolver/unpkg-source-resolver.d.ts +5 -0
  121. package/monaco-editor/ts-type-resolver/update-emitter.d.ts +2 -0
  122. package/overlay-wrapper/index.d.ts +1 -0
  123. package/overlay-wrapper/overlay-wrapper.component.d.ts +11 -0
  124. package/package.json +104 -64
  125. package/tooltip/index.d.ts +3 -0
  126. package/{components/tooltip → tooltip}/tooltip.component.d.ts +3 -3
  127. package/{directives → tooltip}/tooltip.directive.d.ts +2 -2
  128. package/{types/tooltip.d.ts → tooltip/types.d.ts} +1 -1
  129. package/assets/lib/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  130. package/assets/lib/vs/base/common/worker/simpleWorker.nls.de.js +0 -8
  131. package/assets/lib/vs/base/common/worker/simpleWorker.nls.es.js +0 -8
  132. package/assets/lib/vs/base/common/worker/simpleWorker.nls.fr.js +0 -8
  133. package/assets/lib/vs/base/common/worker/simpleWorker.nls.it.js +0 -8
  134. package/assets/lib/vs/base/common/worker/simpleWorker.nls.ja.js +0 -8
  135. package/assets/lib/vs/base/common/worker/simpleWorker.nls.js +0 -8
  136. package/assets/lib/vs/base/common/worker/simpleWorker.nls.ko.js +0 -8
  137. package/assets/lib/vs/base/common/worker/simpleWorker.nls.ru.js +0 -8
  138. package/assets/lib/vs/base/common/worker/simpleWorker.nls.zh-cn.js +0 -8
  139. package/assets/lib/vs/base/common/worker/simpleWorker.nls.zh-tw.js +0 -8
  140. package/assets/lib/vs/base/worker/workerMain.js +0 -24
  141. package/assets/lib/vs/basic-languages/abap/abap.js +0 -10
  142. package/assets/lib/vs/basic-languages/apex/apex.js +0 -10
  143. package/assets/lib/vs/basic-languages/azcli/azcli.js +0 -10
  144. package/assets/lib/vs/basic-languages/bat/bat.js +0 -10
  145. package/assets/lib/vs/basic-languages/bicep/bicep.js +0 -11
  146. package/assets/lib/vs/basic-languages/cameligo/cameligo.js +0 -10
  147. package/assets/lib/vs/basic-languages/clojure/clojure.js +0 -10
  148. package/assets/lib/vs/basic-languages/coffee/coffee.js +0 -10
  149. package/assets/lib/vs/basic-languages/cpp/cpp.js +0 -10
  150. package/assets/lib/vs/basic-languages/csharp/csharp.js +0 -10
  151. package/assets/lib/vs/basic-languages/csp/csp.js +0 -10
  152. package/assets/lib/vs/basic-languages/css/css.js +0 -12
  153. package/assets/lib/vs/basic-languages/cypher/cypher.js +0 -10
  154. package/assets/lib/vs/basic-languages/dart/dart.js +0 -10
  155. package/assets/lib/vs/basic-languages/dockerfile/dockerfile.js +0 -10
  156. package/assets/lib/vs/basic-languages/ecl/ecl.js +0 -10
  157. package/assets/lib/vs/basic-languages/elixir/elixir.js +0 -10
  158. package/assets/lib/vs/basic-languages/flow9/flow9.js +0 -10
  159. package/assets/lib/vs/basic-languages/freemarker2/freemarker2.js +0 -12
  160. package/assets/lib/vs/basic-languages/fsharp/fsharp.js +0 -10
  161. package/assets/lib/vs/basic-languages/go/go.js +0 -10
  162. package/assets/lib/vs/basic-languages/graphql/graphql.js +0 -10
  163. package/assets/lib/vs/basic-languages/handlebars/handlebars.js +0 -10
  164. package/assets/lib/vs/basic-languages/hcl/hcl.js +0 -10
  165. package/assets/lib/vs/basic-languages/html/html.js +0 -10
  166. package/assets/lib/vs/basic-languages/ini/ini.js +0 -10
  167. package/assets/lib/vs/basic-languages/java/java.js +0 -10
  168. package/assets/lib/vs/basic-languages/javascript/javascript.js +0 -10
  169. package/assets/lib/vs/basic-languages/julia/julia.js +0 -10
  170. package/assets/lib/vs/basic-languages/kotlin/kotlin.js +0 -10
  171. package/assets/lib/vs/basic-languages/less/less.js +0 -11
  172. package/assets/lib/vs/basic-languages/lexon/lexon.js +0 -10
  173. package/assets/lib/vs/basic-languages/liquid/liquid.js +0 -10
  174. package/assets/lib/vs/basic-languages/lua/lua.js +0 -10
  175. package/assets/lib/vs/basic-languages/m3/m3.js +0 -10
  176. package/assets/lib/vs/basic-languages/markdown/markdown.js +0 -10
  177. package/assets/lib/vs/basic-languages/mips/mips.js +0 -10
  178. package/assets/lib/vs/basic-languages/msdax/msdax.js +0 -10
  179. package/assets/lib/vs/basic-languages/mysql/mysql.js +0 -10
  180. package/assets/lib/vs/basic-languages/objective-c/objective-c.js +0 -10
  181. package/assets/lib/vs/basic-languages/pascal/pascal.js +0 -10
  182. package/assets/lib/vs/basic-languages/pascaligo/pascaligo.js +0 -10
  183. package/assets/lib/vs/basic-languages/perl/perl.js +0 -10
  184. package/assets/lib/vs/basic-languages/pgsql/pgsql.js +0 -10
  185. package/assets/lib/vs/basic-languages/php/php.js +0 -10
  186. package/assets/lib/vs/basic-languages/pla/pla.js +0 -10
  187. package/assets/lib/vs/basic-languages/postiats/postiats.js +0 -10
  188. package/assets/lib/vs/basic-languages/powerquery/powerquery.js +0 -10
  189. package/assets/lib/vs/basic-languages/powershell/powershell.js +0 -10
  190. package/assets/lib/vs/basic-languages/protobuf/protobuf.js +0 -11
  191. package/assets/lib/vs/basic-languages/pug/pug.js +0 -10
  192. package/assets/lib/vs/basic-languages/python/python.js +0 -10
  193. package/assets/lib/vs/basic-languages/qsharp/qsharp.js +0 -10
  194. package/assets/lib/vs/basic-languages/r/r.js +0 -10
  195. package/assets/lib/vs/basic-languages/razor/razor.js +0 -10
  196. package/assets/lib/vs/basic-languages/redis/redis.js +0 -10
  197. package/assets/lib/vs/basic-languages/redshift/redshift.js +0 -10
  198. package/assets/lib/vs/basic-languages/restructuredtext/restructuredtext.js +0 -10
  199. package/assets/lib/vs/basic-languages/ruby/ruby.js +0 -10
  200. package/assets/lib/vs/basic-languages/rust/rust.js +0 -10
  201. package/assets/lib/vs/basic-languages/sb/sb.js +0 -10
  202. package/assets/lib/vs/basic-languages/scala/scala.js +0 -10
  203. package/assets/lib/vs/basic-languages/scheme/scheme.js +0 -10
  204. package/assets/lib/vs/basic-languages/scss/scss.js +0 -12
  205. package/assets/lib/vs/basic-languages/shell/shell.js +0 -10
  206. package/assets/lib/vs/basic-languages/solidity/solidity.js +0 -10
  207. package/assets/lib/vs/basic-languages/sophia/sophia.js +0 -10
  208. package/assets/lib/vs/basic-languages/sparql/sparql.js +0 -10
  209. package/assets/lib/vs/basic-languages/sql/sql.js +0 -10
  210. package/assets/lib/vs/basic-languages/st/st.js +0 -10
  211. package/assets/lib/vs/basic-languages/swift/swift.js +0 -13
  212. package/assets/lib/vs/basic-languages/systemverilog/systemverilog.js +0 -10
  213. package/assets/lib/vs/basic-languages/tcl/tcl.js +0 -10
  214. package/assets/lib/vs/basic-languages/twig/twig.js +0 -10
  215. package/assets/lib/vs/basic-languages/typescript/typescript.js +0 -10
  216. package/assets/lib/vs/basic-languages/vb/vb.js +0 -10
  217. package/assets/lib/vs/basic-languages/wgsl/wgsl.js +0 -307
  218. package/assets/lib/vs/basic-languages/xml/xml.js +0 -10
  219. package/assets/lib/vs/basic-languages/yaml/yaml.js +0 -10
  220. package/assets/lib/vs/editor/editor.main.css +0 -6
  221. package/assets/lib/vs/editor/editor.main.js +0 -752
  222. package/assets/lib/vs/editor/editor.main.nls.de.js +0 -31
  223. package/assets/lib/vs/editor/editor.main.nls.es.js +0 -31
  224. package/assets/lib/vs/editor/editor.main.nls.fr.js +0 -29
  225. package/assets/lib/vs/editor/editor.main.nls.it.js +0 -29
  226. package/assets/lib/vs/editor/editor.main.nls.ja.js +0 -31
  227. package/assets/lib/vs/editor/editor.main.nls.js +0 -29
  228. package/assets/lib/vs/editor/editor.main.nls.ko.js +0 -29
  229. package/assets/lib/vs/editor/editor.main.nls.ru.js +0 -31
  230. package/assets/lib/vs/editor/editor.main.nls.zh-cn.js +0 -31
  231. package/assets/lib/vs/editor/editor.main.nls.zh-tw.js +0 -29
  232. package/assets/lib/vs/language/css/cssMode.js +0 -13
  233. package/assets/lib/vs/language/css/cssWorker.js +0 -81
  234. package/assets/lib/vs/language/html/htmlMode.js +0 -13
  235. package/assets/lib/vs/language/html/htmlWorker.js +0 -453
  236. package/assets/lib/vs/language/json/jsonMode.js +0 -15
  237. package/assets/lib/vs/language/json/jsonWorker.js +0 -36
  238. package/assets/lib/vs/language/typescript/tsMode.js +0 -20
  239. package/assets/lib/vs/language/typescript/tsWorker.js +0 -37016
  240. package/assets/lib/vs/loader.js +0 -11
  241. package/assets/mat-icons.ts +0 -5704
  242. package/assets/material/3d.svg +0 -1
  243. package/assets/material/abc.svg +0 -1
  244. package/assets/material/actionscript.svg +0 -1
  245. package/assets/material/ada.svg +0 -1
  246. package/assets/material/adonis.svg +0 -1
  247. package/assets/material/advpl_include.svg +0 -1
  248. package/assets/material/advpl_prw.svg +0 -1
  249. package/assets/material/advpl_ptm.svg +0 -1
  250. package/assets/material/advpl_tlpp.svg +0 -1
  251. package/assets/material/android.svg +0 -1
  252. package/assets/material/angular-component.svg +0 -1
  253. package/assets/material/angular-directive.svg +0 -1
  254. package/assets/material/angular-guard.svg +0 -1
  255. package/assets/material/angular-pipe.svg +0 -1
  256. package/assets/material/angular-resolver.svg +0 -1
  257. package/assets/material/angular-service.svg +0 -1
  258. package/assets/material/angular.svg +0 -1
  259. package/assets/material/antlr.svg +0 -1
  260. package/assets/material/apiblueprint.svg +0 -1
  261. package/assets/material/apollo.svg +0 -1
  262. package/assets/material/applescript.svg +0 -1
  263. package/assets/material/appveyor.svg +0 -1
  264. package/assets/material/architecture.svg +0 -1
  265. package/assets/material/arduino.svg +0 -1
  266. package/assets/material/asciidoc.svg +0 -1
  267. package/assets/material/assembly.svg +0 -1
  268. package/assets/material/astro.svg +0 -1
  269. package/assets/material/astyle.svg +0 -1
  270. package/assets/material/audio.svg +0 -1
  271. package/assets/material/aurelia.svg +0 -1
  272. package/assets/material/authors.svg +0 -1
  273. package/assets/material/auto.svg +0 -1
  274. package/assets/material/auto_light.svg +0 -1
  275. package/assets/material/autohotkey.svg +0 -1
  276. package/assets/material/autoit.svg +0 -1
  277. package/assets/material/azure-pipelines.svg +0 -1
  278. package/assets/material/azure.svg +0 -1
  279. package/assets/material/babel.svg +0 -1
  280. package/assets/material/ballerina.svg +0 -1
  281. package/assets/material/bazel.svg +0 -1
  282. package/assets/material/bicep.svg +0 -1
  283. package/assets/material/bitbucket.svg +0 -13
  284. package/assets/material/bithound.svg +0 -1
  285. package/assets/material/blink.svg +0 -1
  286. package/assets/material/blink_light.svg +0 -1
  287. package/assets/material/blitz.svg +0 -1
  288. package/assets/material/bower.svg +0 -1
  289. package/assets/material/brainfuck.svg +0 -1
  290. package/assets/material/browserlist.svg +0 -1
  291. package/assets/material/browserlist_light.svg +0 -1
  292. package/assets/material/buck.svg +0 -1
  293. package/assets/material/bucklescript.svg +0 -1
  294. package/assets/material/buildkite.svg +0 -1
  295. package/assets/material/bun.svg +0 -2
  296. package/assets/material/bun_light.svg +0 -2
  297. package/assets/material/c.svg +0 -4
  298. package/assets/material/cabal.svg +0 -1
  299. package/assets/material/caddy.svg +0 -1
  300. package/assets/material/cadence.svg +0 -1
  301. package/assets/material/cake.svg +0 -1
  302. package/assets/material/capacitor.svg +0 -1
  303. package/assets/material/certificate.svg +0 -1
  304. package/assets/material/changelog.svg +0 -1
  305. package/assets/material/chess.svg +0 -1
  306. package/assets/material/chess_light.svg +0 -1
  307. package/assets/material/circleci.svg +0 -1
  308. package/assets/material/circleci_light.svg +0 -1
  309. package/assets/material/clojure.svg +0 -1
  310. package/assets/material/cloudfoundry.svg +0 -1
  311. package/assets/material/cmake.svg +0 -1
  312. package/assets/material/coala.svg +0 -1
  313. package/assets/material/cobol.svg +0 -1
  314. package/assets/material/coconut.svg +0 -1
  315. package/assets/material/code-climate.svg +0 -1
  316. package/assets/material/code-climate_light.svg +0 -1
  317. package/assets/material/codecov.svg +0 -1
  318. package/assets/material/codeowners.svg +0 -1
  319. package/assets/material/coffee.svg +0 -1
  320. package/assets/material/coldfusion.svg +0 -1
  321. package/assets/material/command.svg +0 -1
  322. package/assets/material/commitlint.svg +0 -1
  323. package/assets/material/conduct.svg +0 -1
  324. package/assets/material/console.svg +0 -1
  325. package/assets/material/contributing.svg +0 -1
  326. package/assets/material/cpp.svg +0 -4
  327. package/assets/material/craco.svg +0 -45
  328. package/assets/material/credits.svg +0 -1
  329. package/assets/material/crystal.svg +0 -1
  330. package/assets/material/crystal_light.svg +0 -1
  331. package/assets/material/csharp.svg +0 -4
  332. package/assets/material/css-map.svg +0 -1
  333. package/assets/material/css.svg +0 -1
  334. package/assets/material/cucumber.svg +0 -1
  335. package/assets/material/cuda.svg +0 -1
  336. package/assets/material/cypress.svg +0 -1
  337. package/assets/material/d.svg +0 -1
  338. package/assets/material/dart.svg +0 -1
  339. package/assets/material/dart_generated.svg +0 -1
  340. package/assets/material/database.svg +0 -1
  341. package/assets/material/denizenscript.svg +0 -1
  342. package/assets/material/deno.svg +0 -1
  343. package/assets/material/deno_light.svg +0 -1
  344. package/assets/material/dependabot.svg +0 -1
  345. package/assets/material/dhall.svg +0 -1
  346. package/assets/material/diff.svg +0 -1
  347. package/assets/material/dinophp.svg +0 -1
  348. package/assets/material/disc.svg +0 -1
  349. package/assets/material/django.svg +0 -1
  350. package/assets/material/docker.svg +0 -1
  351. package/assets/material/document.svg +0 -1
  352. package/assets/material/dotjs.svg +0 -1
  353. package/assets/material/drawio.svg +0 -1
  354. package/assets/material/drone.svg +0 -1
  355. package/assets/material/drone_light.svg +0 -1
  356. package/assets/material/dune.svg +0 -1
  357. package/assets/material/edge.svg +0 -1
  358. package/assets/material/editorconfig.svg +0 -1
  359. package/assets/material/ejs.svg +0 -1
  360. package/assets/material/elixir.svg +0 -1
  361. package/assets/material/elm.svg +0 -1
  362. package/assets/material/email.svg +0 -1
  363. package/assets/material/ember.svg +0 -1
  364. package/assets/material/erlang.svg +0 -1
  365. package/assets/material/eslint.svg +0 -1
  366. package/assets/material/exe.svg +0 -1
  367. package/assets/material/fastlane.svg +0 -1
  368. package/assets/material/favicon.svg +0 -1
  369. package/assets/material/figma.svg +0 -1
  370. package/assets/material/file.svg +0 -1
  371. package/assets/material/firebase.svg +0 -1
  372. package/assets/material/flash.svg +0 -1
  373. package/assets/material/flow.svg +0 -1
  374. package/assets/material/folder-admin-open.svg +0 -1
  375. package/assets/material/folder-admin.svg +0 -1
  376. package/assets/material/folder-android-open.svg +0 -1
  377. package/assets/material/folder-android.svg +0 -1
  378. package/assets/material/folder-angular-open.svg +0 -1
  379. package/assets/material/folder-angular.svg +0 -1
  380. package/assets/material/folder-animation-open.svg +0 -1
  381. package/assets/material/folder-animation.svg +0 -1
  382. package/assets/material/folder-ansible-open.svg +0 -1
  383. package/assets/material/folder-ansible.svg +0 -1
  384. package/assets/material/folder-api-open.svg +0 -1
  385. package/assets/material/folder-api.svg +0 -1
  386. package/assets/material/folder-apollo-open.svg +0 -1
  387. package/assets/material/folder-apollo.svg +0 -1
  388. package/assets/material/folder-app-open.svg +0 -1
  389. package/assets/material/folder-app.svg +0 -1
  390. package/assets/material/folder-archive-open.svg +0 -1
  391. package/assets/material/folder-archive.svg +0 -1
  392. package/assets/material/folder-audio-open.svg +0 -1
  393. package/assets/material/folder-audio.svg +0 -1
  394. package/assets/material/folder-aurelia-open.svg +0 -1
  395. package/assets/material/folder-aurelia.svg +0 -1
  396. package/assets/material/folder-aws-open.svg +0 -1
  397. package/assets/material/folder-aws.svg +0 -1
  398. package/assets/material/folder-azure-pipelines-open.svg +0 -1
  399. package/assets/material/folder-azure-pipelines.svg +0 -1
  400. package/assets/material/folder-base-open.svg +0 -1
  401. package/assets/material/folder-base.svg +0 -1
  402. package/assets/material/folder-batch-open.svg +0 -1
  403. package/assets/material/folder-batch.svg +0 -1
  404. package/assets/material/folder-benchmark-open.svg +0 -1
  405. package/assets/material/folder-benchmark.svg +0 -1
  406. package/assets/material/folder-bower-open.svg +0 -1
  407. package/assets/material/folder-bower.svg +0 -1
  408. package/assets/material/folder-buildkite-open.svg +0 -1
  409. package/assets/material/folder-buildkite.svg +0 -1
  410. package/assets/material/folder-cart-open.svg +0 -1
  411. package/assets/material/folder-cart.svg +0 -1
  412. package/assets/material/folder-changesets-open.svg +0 -5
  413. package/assets/material/folder-changesets.svg +0 -2
  414. package/assets/material/folder-ci-open.svg +0 -1
  415. package/assets/material/folder-ci.svg +0 -1
  416. package/assets/material/folder-circleci-open.svg +0 -1
  417. package/assets/material/folder-circleci.svg +0 -1
  418. package/assets/material/folder-class-open.svg +0 -1
  419. package/assets/material/folder-class.svg +0 -1
  420. package/assets/material/folder-client-open.svg +0 -1
  421. package/assets/material/folder-client.svg +0 -1
  422. package/assets/material/folder-cluster-open.svg +0 -1
  423. package/assets/material/folder-cluster.svg +0 -1
  424. package/assets/material/folder-cobol-open.svg +0 -1
  425. package/assets/material/folder-cobol.svg +0 -1
  426. package/assets/material/folder-command-open.svg +0 -1
  427. package/assets/material/folder-command.svg +0 -1
  428. package/assets/material/folder-components-open.svg +0 -1
  429. package/assets/material/folder-components.svg +0 -1
  430. package/assets/material/folder-config-open.svg +0 -1
  431. package/assets/material/folder-config.svg +0 -1
  432. package/assets/material/folder-connection-open.svg +0 -1
  433. package/assets/material/folder-connection.svg +0 -1
  434. package/assets/material/folder-constant-open.svg +0 -1
  435. package/assets/material/folder-constant.svg +0 -1
  436. package/assets/material/folder-container-open.svg +0 -1
  437. package/assets/material/folder-container.svg +0 -1
  438. package/assets/material/folder-content-open.svg +0 -1
  439. package/assets/material/folder-content.svg +0 -1
  440. package/assets/material/folder-context-open.svg +0 -1
  441. package/assets/material/folder-context.svg +0 -1
  442. package/assets/material/folder-contract-open.svg +0 -1
  443. package/assets/material/folder-contract.svg +0 -1
  444. package/assets/material/folder-controller-open.svg +0 -1
  445. package/assets/material/folder-controller.svg +0 -1
  446. package/assets/material/folder-core-open.svg +0 -1
  447. package/assets/material/folder-core.svg +0 -1
  448. package/assets/material/folder-coverage-open.svg +0 -1
  449. package/assets/material/folder-coverage.svg +0 -1
  450. package/assets/material/folder-css-open.svg +0 -1
  451. package/assets/material/folder-css.svg +0 -1
  452. package/assets/material/folder-custom-open.svg +0 -1
  453. package/assets/material/folder-custom.svg +0 -1
  454. package/assets/material/folder-cypress-open.svg +0 -1
  455. package/assets/material/folder-cypress.svg +0 -1
  456. package/assets/material/folder-database-open.svg +0 -1
  457. package/assets/material/folder-database.svg +0 -1
  458. package/assets/material/folder-debug-open.svg +0 -1
  459. package/assets/material/folder-debug.svg +0 -1
  460. package/assets/material/folder-decorators-open.svg +0 -2
  461. package/assets/material/folder-decorators.svg +0 -5
  462. package/assets/material/folder-delta-open.svg +0 -1
  463. package/assets/material/folder-delta.svg +0 -1
  464. package/assets/material/folder-dist-open.svg +0 -1
  465. package/assets/material/folder-dist.svg +0 -1
  466. package/assets/material/folder-docker-open.svg +0 -1
  467. package/assets/material/folder-docker.svg +0 -1
  468. package/assets/material/folder-docs-open.svg +0 -1
  469. package/assets/material/folder-docs.svg +0 -1
  470. package/assets/material/folder-download-open.svg +0 -1
  471. package/assets/material/folder-download.svg +0 -1
  472. package/assets/material/folder-dump-open.svg +0 -1
  473. package/assets/material/folder-dump.svg +0 -1
  474. package/assets/material/folder-environment-open.svg +0 -1
  475. package/assets/material/folder-environment.svg +0 -1
  476. package/assets/material/folder-error-open.svg +0 -1
  477. package/assets/material/folder-error.svg +0 -1
  478. package/assets/material/folder-event-open.svg +0 -1
  479. package/assets/material/folder-event.svg +0 -1
  480. package/assets/material/folder-examples-open.svg +0 -1
  481. package/assets/material/folder-examples.svg +0 -1
  482. package/assets/material/folder-expo-open.svg +0 -1
  483. package/assets/material/folder-expo.svg +0 -1
  484. package/assets/material/folder-export-open.svg +0 -1
  485. package/assets/material/folder-export.svg +0 -1
  486. package/assets/material/folder-fastlane-open.svg +0 -1
  487. package/assets/material/folder-fastlane.svg +0 -1
  488. package/assets/material/folder-firebase-open.svg +0 -1
  489. package/assets/material/folder-firebase.svg +0 -1
  490. package/assets/material/folder-flow-open.svg +0 -1
  491. package/assets/material/folder-flow.svg +0 -1
  492. package/assets/material/folder-font-open.svg +0 -1
  493. package/assets/material/folder-font.svg +0 -1
  494. package/assets/material/folder-functions-open.svg +0 -1
  495. package/assets/material/folder-functions.svg +0 -1
  496. package/assets/material/folder-gamemaker-open.svg +0 -2
  497. package/assets/material/folder-gamemaker.svg +0 -2
  498. package/assets/material/folder-generator-open.svg +0 -1
  499. package/assets/material/folder-generator.svg +0 -1
  500. package/assets/material/folder-git-open.svg +0 -1
  501. package/assets/material/folder-git.svg +0 -1
  502. package/assets/material/folder-github-open.svg +0 -1
  503. package/assets/material/folder-github.svg +0 -1
  504. package/assets/material/folder-gitlab-open.svg +0 -1
  505. package/assets/material/folder-gitlab.svg +0 -1
  506. package/assets/material/folder-global-open.svg +0 -1
  507. package/assets/material/folder-global.svg +0 -1
  508. package/assets/material/folder-godot-open.svg +0 -2
  509. package/assets/material/folder-godot.svg +0 -8
  510. package/assets/material/folder-gradle-open.svg +0 -1
  511. package/assets/material/folder-gradle.svg +0 -1
  512. package/assets/material/folder-graphql-open.svg +0 -1
  513. package/assets/material/folder-graphql.svg +0 -1
  514. package/assets/material/folder-guard-open.svg +0 -1
  515. package/assets/material/folder-guard.svg +0 -1
  516. package/assets/material/folder-gulp-open.svg +0 -1
  517. package/assets/material/folder-gulp.svg +0 -1
  518. package/assets/material/folder-helper-open.svg +0 -1
  519. package/assets/material/folder-helper.svg +0 -1
  520. package/assets/material/folder-home-open.svg +0 -1
  521. package/assets/material/folder-home.svg +0 -1
  522. package/assets/material/folder-hook-open.svg +0 -1
  523. package/assets/material/folder-hook.svg +0 -1
  524. package/assets/material/folder-husky-open.svg +0 -1
  525. package/assets/material/folder-husky.svg +0 -1
  526. package/assets/material/folder-i18n-open.svg +0 -1
  527. package/assets/material/folder-i18n.svg +0 -1
  528. package/assets/material/folder-images-open.svg +0 -1
  529. package/assets/material/folder-images.svg +0 -1
  530. package/assets/material/folder-import-open.svg +0 -1
  531. package/assets/material/folder-import.svg +0 -1
  532. package/assets/material/folder-include-open.svg +0 -1
  533. package/assets/material/folder-include.svg +0 -1
  534. package/assets/material/folder-intellij-open.svg +0 -1
  535. package/assets/material/folder-intellij-open_light.svg +0 -1
  536. package/assets/material/folder-intellij.svg +0 -1
  537. package/assets/material/folder-intellij_light.svg +0 -1
  538. package/assets/material/folder-interface-open.svg +0 -1
  539. package/assets/material/folder-interface.svg +0 -1
  540. package/assets/material/folder-ios-open.svg +0 -1
  541. package/assets/material/folder-ios.svg +0 -1
  542. package/assets/material/folder-java-open.svg +0 -1
  543. package/assets/material/folder-java.svg +0 -1
  544. package/assets/material/folder-javascript-open.svg +0 -1
  545. package/assets/material/folder-javascript.svg +0 -1
  546. package/assets/material/folder-jinja-open.svg +0 -1
  547. package/assets/material/folder-jinja-open_light.svg +0 -1
  548. package/assets/material/folder-jinja.svg +0 -1
  549. package/assets/material/folder-jinja_light.svg +0 -1
  550. package/assets/material/folder-job-open.svg +0 -1
  551. package/assets/material/folder-job.svg +0 -1
  552. package/assets/material/folder-json-open.svg +0 -1
  553. package/assets/material/folder-json.svg +0 -1
  554. package/assets/material/folder-keys-open.svg +0 -1
  555. package/assets/material/folder-keys.svg +0 -1
  556. package/assets/material/folder-kubernetes-open.svg +0 -1
  557. package/assets/material/folder-kubernetes.svg +0 -1
  558. package/assets/material/folder-layout-open.svg +0 -1
  559. package/assets/material/folder-layout.svg +0 -1
  560. package/assets/material/folder-less-open.svg +0 -1
  561. package/assets/material/folder-less.svg +0 -1
  562. package/assets/material/folder-lib-open.svg +0 -1
  563. package/assets/material/folder-lib.svg +0 -1
  564. package/assets/material/folder-log-open.svg +0 -1
  565. package/assets/material/folder-log.svg +0 -1
  566. package/assets/material/folder-lua-open.svg +0 -1
  567. package/assets/material/folder-lua.svg +0 -1
  568. package/assets/material/folder-mail-open.svg +0 -1
  569. package/assets/material/folder-mail.svg +0 -1
  570. package/assets/material/folder-mappings-open.svg +0 -1
  571. package/assets/material/folder-mappings.svg +0 -1
  572. package/assets/material/folder-markdown-open.svg +0 -1
  573. package/assets/material/folder-markdown.svg +0 -1
  574. package/assets/material/folder-mercurial-open.svg +0 -5
  575. package/assets/material/folder-mercurial.svg +0 -2
  576. package/assets/material/folder-messages-open.svg +0 -1
  577. package/assets/material/folder-messages.svg +0 -1
  578. package/assets/material/folder-meta-open.svg +0 -1
  579. package/assets/material/folder-meta.svg +0 -1
  580. package/assets/material/folder-middleware-open.svg +0 -1
  581. package/assets/material/folder-middleware.svg +0 -1
  582. package/assets/material/folder-mjml-open.svg +0 -1
  583. package/assets/material/folder-mjml.svg +0 -1
  584. package/assets/material/folder-mobile-open.svg +0 -1
  585. package/assets/material/folder-mobile.svg +0 -1
  586. package/assets/material/folder-mock-open.svg +0 -1
  587. package/assets/material/folder-mock.svg +0 -1
  588. package/assets/material/folder-netlify-open.svg +0 -5
  589. package/assets/material/folder-netlify.svg +0 -2
  590. package/assets/material/folder-next-open.svg +0 -1
  591. package/assets/material/folder-next.svg +0 -1
  592. package/assets/material/folder-ngrx-actions-open.svg +0 -1
  593. package/assets/material/folder-ngrx-actions.svg +0 -1
  594. package/assets/material/folder-ngrx-effects-open.svg +0 -1
  595. package/assets/material/folder-ngrx-effects.svg +0 -1
  596. package/assets/material/folder-ngrx-entities-open.svg +0 -1
  597. package/assets/material/folder-ngrx-entities.svg +0 -1
  598. package/assets/material/folder-ngrx-reducer-open.svg +0 -1
  599. package/assets/material/folder-ngrx-reducer.svg +0 -1
  600. package/assets/material/folder-ngrx-selectors-open.svg +0 -1
  601. package/assets/material/folder-ngrx-selectors.svg +0 -1
  602. package/assets/material/folder-ngrx-state-open.svg +0 -1
  603. package/assets/material/folder-ngrx-state.svg +0 -1
  604. package/assets/material/folder-ngrx-store-open.svg +0 -1
  605. package/assets/material/folder-ngrx-store.svg +0 -1
  606. package/assets/material/folder-node-open.svg +0 -1
  607. package/assets/material/folder-node.svg +0 -1
  608. package/assets/material/folder-nuxt-open.svg +0 -1
  609. package/assets/material/folder-nuxt.svg +0 -1
  610. package/assets/material/folder-open.svg +0 -1
  611. package/assets/material/folder-other-open.svg +0 -1
  612. package/assets/material/folder-other.svg +0 -1
  613. package/assets/material/folder-packages-open.svg +0 -1
  614. package/assets/material/folder-packages.svg +0 -1
  615. package/assets/material/folder-pdf-open.svg +0 -1
  616. package/assets/material/folder-pdf.svg +0 -1
  617. package/assets/material/folder-php-open.svg +0 -1
  618. package/assets/material/folder-php.svg +0 -1
  619. package/assets/material/folder-phpmailer-open.svg +0 -1
  620. package/assets/material/folder-phpmailer.svg +0 -1
  621. package/assets/material/folder-pipe-open.svg +0 -1
  622. package/assets/material/folder-pipe.svg +0 -1
  623. package/assets/material/folder-plastic-open.svg +0 -8
  624. package/assets/material/folder-plastic.svg +0 -2
  625. package/assets/material/folder-plugin-open.svg +0 -1
  626. package/assets/material/folder-plugin.svg +0 -1
  627. package/assets/material/folder-prisma-open.svg +0 -1
  628. package/assets/material/folder-prisma.svg +0 -1
  629. package/assets/material/folder-private-open.svg +0 -1
  630. package/assets/material/folder-private.svg +0 -1
  631. package/assets/material/folder-project-open.svg +0 -1
  632. package/assets/material/folder-project.svg +0 -1
  633. package/assets/material/folder-proto-open.svg +0 -1
  634. package/assets/material/folder-proto.svg +0 -1
  635. package/assets/material/folder-public-open.svg +0 -1
  636. package/assets/material/folder-public.svg +0 -1
  637. package/assets/material/folder-python-open.svg +0 -1
  638. package/assets/material/folder-python.svg +0 -1
  639. package/assets/material/folder-quasar-open.svg +0 -1
  640. package/assets/material/folder-quasar.svg +0 -1
  641. package/assets/material/folder-queue-open.svg +0 -1
  642. package/assets/material/folder-queue.svg +0 -1
  643. package/assets/material/folder-react-components-open.svg +0 -1
  644. package/assets/material/folder-react-components.svg +0 -1
  645. package/assets/material/folder-redux-actions-open.svg +0 -1
  646. package/assets/material/folder-redux-actions.svg +0 -1
  647. package/assets/material/folder-redux-reducer-open.svg +0 -1
  648. package/assets/material/folder-redux-reducer.svg +0 -1
  649. package/assets/material/folder-redux-selector-open.svg +0 -1
  650. package/assets/material/folder-redux-selector.svg +0 -1
  651. package/assets/material/folder-redux-store-open.svg +0 -1
  652. package/assets/material/folder-redux-store.svg +0 -1
  653. package/assets/material/folder-resolver-open.svg +0 -1
  654. package/assets/material/folder-resolver.svg +0 -1
  655. package/assets/material/folder-resource-open.svg +0 -1
  656. package/assets/material/folder-resource.svg +0 -1
  657. package/assets/material/folder-review-open.svg +0 -1
  658. package/assets/material/folder-review.svg +0 -1
  659. package/assets/material/folder-root-open.svg +0 -1
  660. package/assets/material/folder-root.svg +0 -1
  661. package/assets/material/folder-routes-open.svg +0 -1
  662. package/assets/material/folder-routes.svg +0 -1
  663. package/assets/material/folder-rules-open.svg +0 -1
  664. package/assets/material/folder-rules.svg +0 -1
  665. package/assets/material/folder-sass-open.svg +0 -1
  666. package/assets/material/folder-sass.svg +0 -1
  667. package/assets/material/folder-scala-open.svg +0 -1
  668. package/assets/material/folder-scala.svg +0 -1
  669. package/assets/material/folder-scripts-open.svg +0 -1
  670. package/assets/material/folder-scripts.svg +0 -1
  671. package/assets/material/folder-secure-open.svg +0 -1
  672. package/assets/material/folder-secure.svg +0 -1
  673. package/assets/material/folder-server-open.svg +0 -1
  674. package/assets/material/folder-server.svg +0 -1
  675. package/assets/material/folder-serverless-open.svg +0 -1
  676. package/assets/material/folder-serverless.svg +0 -1
  677. package/assets/material/folder-shader-open.svg +0 -1
  678. package/assets/material/folder-shader.svg +0 -1
  679. package/assets/material/folder-shared-open.svg +0 -1
  680. package/assets/material/folder-shared.svg +0 -1
  681. package/assets/material/folder-src-open.svg +0 -1
  682. package/assets/material/folder-src.svg +0 -1
  683. package/assets/material/folder-stack-open.svg +0 -1
  684. package/assets/material/folder-stack.svg +0 -1
  685. package/assets/material/folder-stencil-open.svg +0 -1
  686. package/assets/material/folder-stencil.svg +0 -1
  687. package/assets/material/folder-storybook-open.svg +0 -1
  688. package/assets/material/folder-storybook.svg +0 -1
  689. package/assets/material/folder-stylus-open.svg +0 -1
  690. package/assets/material/folder-stylus.svg +0 -1
  691. package/assets/material/folder-sublime-open.svg +0 -1
  692. package/assets/material/folder-sublime.svg +0 -1
  693. package/assets/material/folder-supabase-open.svg +0 -5
  694. package/assets/material/folder-supabase.svg +0 -2
  695. package/assets/material/folder-svelte-open.svg +0 -1
  696. package/assets/material/folder-svelte.svg +0 -1
  697. package/assets/material/folder-svg-open.svg +0 -1
  698. package/assets/material/folder-svg.svg +0 -1
  699. package/assets/material/folder-syntax-open.svg +0 -1
  700. package/assets/material/folder-syntax.svg +0 -1
  701. package/assets/material/folder-target-open.svg +0 -1
  702. package/assets/material/folder-target.svg +0 -1
  703. package/assets/material/folder-tasks-open.svg +0 -1
  704. package/assets/material/folder-tasks.svg +0 -1
  705. package/assets/material/folder-temp-open.svg +0 -1
  706. package/assets/material/folder-temp.svg +0 -1
  707. package/assets/material/folder-template-open.svg +0 -1
  708. package/assets/material/folder-template.svg +0 -1
  709. package/assets/material/folder-terraform-open.svg +0 -1
  710. package/assets/material/folder-terraform.svg +0 -1
  711. package/assets/material/folder-test-open.svg +0 -1
  712. package/assets/material/folder-test.svg +0 -1
  713. package/assets/material/folder-theme-open.svg +0 -1
  714. package/assets/material/folder-theme.svg +0 -1
  715. package/assets/material/folder-tools-open.svg +0 -1
  716. package/assets/material/folder-tools.svg +0 -1
  717. package/assets/material/folder-typescript-open.svg +0 -1
  718. package/assets/material/folder-typescript.svg +0 -1
  719. package/assets/material/folder-unity-open.svg +0 -1
  720. package/assets/material/folder-unity.svg +0 -1
  721. package/assets/material/folder-update-open.svg +0 -1
  722. package/assets/material/folder-update.svg +0 -1
  723. package/assets/material/folder-upload-open.svg +0 -1
  724. package/assets/material/folder-upload.svg +0 -1
  725. package/assets/material/folder-utils-open.svg +0 -1
  726. package/assets/material/folder-utils.svg +0 -1
  727. package/assets/material/folder-vercel-open.svg +0 -1
  728. package/assets/material/folder-vercel.svg +0 -1
  729. package/assets/material/folder-verdaccio-open.svg +0 -1
  730. package/assets/material/folder-verdaccio.svg +0 -1
  731. package/assets/material/folder-video-open.svg +0 -1
  732. package/assets/material/folder-video.svg +0 -1
  733. package/assets/material/folder-views-open.svg +0 -1
  734. package/assets/material/folder-views.svg +0 -1
  735. package/assets/material/folder-vm-open.svg +0 -1
  736. package/assets/material/folder-vm.svg +0 -1
  737. package/assets/material/folder-vscode-open.svg +0 -1
  738. package/assets/material/folder-vscode.svg +0 -1
  739. package/assets/material/folder-vue-directives-open.svg +0 -1
  740. package/assets/material/folder-vue-directives.svg +0 -1
  741. package/assets/material/folder-vue-open.svg +0 -1
  742. package/assets/material/folder-vue.svg +0 -1
  743. package/assets/material/folder-vuepress-open.svg +0 -1
  744. package/assets/material/folder-vuepress.svg +0 -1
  745. package/assets/material/folder-vuex-store-open.svg +0 -1
  746. package/assets/material/folder-vuex-store.svg +0 -1
  747. package/assets/material/folder-wakatime-open.svg +0 -1
  748. package/assets/material/folder-wakatime.svg +0 -1
  749. package/assets/material/folder-webpack-open.svg +0 -1
  750. package/assets/material/folder-webpack.svg +0 -1
  751. package/assets/material/folder-wordpress-open.svg +0 -1
  752. package/assets/material/folder-wordpress.svg +0 -1
  753. package/assets/material/folder-yarn-open.svg +0 -1
  754. package/assets/material/folder-yarn.svg +0 -1
  755. package/assets/material/folder.svg +0 -1
  756. package/assets/material/font.svg +0 -1
  757. package/assets/material/forth.svg +0 -1
  758. package/assets/material/fortran.svg +0 -1
  759. package/assets/material/foxpro.svg +0 -1
  760. package/assets/material/fsharp.svg +0 -1
  761. package/assets/material/fusebox.svg +0 -1
  762. package/assets/material/gamemaker.svg +0 -4
  763. package/assets/material/gatsby.svg +0 -1
  764. package/assets/material/gcp.svg +0 -1
  765. package/assets/material/gemfile.svg +0 -1
  766. package/assets/material/gemini.svg +0 -1
  767. package/assets/material/git.svg +0 -1
  768. package/assets/material/gitlab.svg +0 -1
  769. package/assets/material/gitpod.svg +0 -1
  770. package/assets/material/gleam.svg +0 -1
  771. package/assets/material/go-mod.svg +0 -1
  772. package/assets/material/go.svg +0 -1
  773. package/assets/material/go_gopher.svg +0 -1
  774. package/assets/material/godot-assets.svg +0 -7
  775. package/assets/material/godot.svg +0 -7
  776. package/assets/material/gradle.svg +0 -1
  777. package/assets/material/grain.svg +0 -1
  778. package/assets/material/graphcool.svg +0 -1
  779. package/assets/material/graphql.svg +0 -1
  780. package/assets/material/gridsome.svg +0 -1
  781. package/assets/material/groovy.svg +0 -1
  782. package/assets/material/grunt.svg +0 -1
  783. package/assets/material/gulp.svg +0 -1
  784. package/assets/material/h.svg +0 -1
  785. package/assets/material/hack.svg +0 -1
  786. package/assets/material/haml.svg +0 -1
  787. package/assets/material/handlebars.svg +0 -1
  788. package/assets/material/hardhat.svg +0 -1
  789. package/assets/material/haskell.svg +0 -1
  790. package/assets/material/haxe.svg +0 -1
  791. package/assets/material/hcl.svg +0 -1
  792. package/assets/material/hcl_light.svg +0 -1
  793. package/assets/material/helm.svg +0 -1
  794. package/assets/material/heroku.svg +0 -1
  795. package/assets/material/hex.svg +0 -1
  796. package/assets/material/horusec.svg +0 -1
  797. package/assets/material/hpp.svg +0 -1
  798. package/assets/material/html.svg +0 -1
  799. package/assets/material/http.svg +0 -1
  800. package/assets/material/husky.svg +0 -1
  801. package/assets/material/i18n.svg +0 -1
  802. package/assets/material/idris.svg +0 -1
  803. package/assets/material/ifanr-cloud.svg +0 -10
  804. package/assets/material/image.svg +0 -1
  805. package/assets/material/imba.svg +0 -1
  806. package/assets/material/ionic.svg +0 -1
  807. package/assets/material/istanbul.svg +0 -1
  808. package/assets/material/jar.svg +0 -1
  809. package/assets/material/java.svg +0 -1
  810. package/assets/material/javaclass.svg +0 -1
  811. package/assets/material/javascript-map.svg +0 -1
  812. package/assets/material/javascript.svg +0 -1
  813. package/assets/material/jenkins.svg +0 -1
  814. package/assets/material/jest.svg +0 -1
  815. package/assets/material/jinja.svg +0 -1
  816. package/assets/material/jinja_light.svg +0 -1
  817. package/assets/material/jsconfig.svg +0 -1
  818. package/assets/material/json.svg +0 -1
  819. package/assets/material/julia.svg +0 -1
  820. package/assets/material/jupyter.svg +0 -1
  821. package/assets/material/karma.svg +0 -1
  822. package/assets/material/key.svg +0 -1
  823. package/assets/material/kivy.svg +0 -1
  824. package/assets/material/kl.svg +0 -1
  825. package/assets/material/kotlin.svg +0 -1
  826. package/assets/material/kusto.svg +0 -1
  827. package/assets/material/laravel.svg +0 -1
  828. package/assets/material/lerna.svg +0 -1
  829. package/assets/material/less.svg +0 -1
  830. package/assets/material/lib.svg +0 -1
  831. package/assets/material/lighthouse.svg +0 -1
  832. package/assets/material/lilypond.svg +0 -1
  833. package/assets/material/liquid.svg +0 -1
  834. package/assets/material/lisp.svg +0 -1
  835. package/assets/material/livescript.svg +0 -1
  836. package/assets/material/lock.svg +0 -1
  837. package/assets/material/log.svg +0 -1
  838. package/assets/material/lolcode.svg +0 -1
  839. package/assets/material/lua.svg +0 -1
  840. package/assets/material/makefile.svg +0 -1
  841. package/assets/material/markdown.svg +0 -1
  842. package/assets/material/markojs.svg +0 -1
  843. package/assets/material/mathematica.svg +0 -1
  844. package/assets/material/matlab.svg +0 -1
  845. package/assets/material/maven.svg +0 -1
  846. package/assets/material/mdsvex.svg +0 -1
  847. package/assets/material/mdx.svg +0 -1
  848. package/assets/material/mercurial.svg +0 -6
  849. package/assets/material/merlin.svg +0 -1
  850. package/assets/material/mermaid.svg +0 -4
  851. package/assets/material/meson.svg +0 -1
  852. package/assets/material/minecraft.svg +0 -1
  853. package/assets/material/mint.svg +0 -1
  854. package/assets/material/mjml.svg +0 -1
  855. package/assets/material/mocha.svg +0 -1
  856. package/assets/material/modernizr.svg +0 -1
  857. package/assets/material/moonscript.svg +0 -1
  858. package/assets/material/mxml.svg +0 -1
  859. package/assets/material/nano-staged.svg +0 -1
  860. package/assets/material/nano-staged_light.svg +0 -1
  861. package/assets/material/ndst.svg +0 -1
  862. package/assets/material/nest-controller.svg +0 -1
  863. package/assets/material/nest-decorator.svg +0 -1
  864. package/assets/material/nest-filter.svg +0 -1
  865. package/assets/material/nest-gateway.svg +0 -1
  866. package/assets/material/nest-guard.svg +0 -1
  867. package/assets/material/nest-middleware.svg +0 -1
  868. package/assets/material/nest-module.svg +0 -1
  869. package/assets/material/nest-pipe.svg +0 -1
  870. package/assets/material/nest-resolver.svg +0 -1
  871. package/assets/material/nest-service.svg +0 -1
  872. package/assets/material/nest.svg +0 -1
  873. package/assets/material/netlify.svg +0 -7
  874. package/assets/material/netlify_light.svg +0 -7
  875. package/assets/material/next.svg +0 -1
  876. package/assets/material/next_light.svg +0 -1
  877. package/assets/material/nginx.svg +0 -1
  878. package/assets/material/ngrx-actions.svg +0 -1
  879. package/assets/material/ngrx-effects.svg +0 -1
  880. package/assets/material/ngrx-entity.svg +0 -1
  881. package/assets/material/ngrx-reducer.svg +0 -1
  882. package/assets/material/ngrx-selectors.svg +0 -1
  883. package/assets/material/ngrx-state.svg +0 -1
  884. package/assets/material/nim.svg +0 -1
  885. package/assets/material/nix.svg +0 -1
  886. package/assets/material/nodejs.svg +0 -1
  887. package/assets/material/nodejs_alt.svg +0 -1
  888. package/assets/material/nodemon.svg +0 -1
  889. package/assets/material/npm.svg +0 -1
  890. package/assets/material/nrwl.svg +0 -1
  891. package/assets/material/nuget.svg +0 -1
  892. package/assets/material/nunjucks.svg +0 -1
  893. package/assets/material/nuxt.svg +0 -1
  894. package/assets/material/objective-c.svg +0 -4
  895. package/assets/material/objective-cpp.svg +0 -1
  896. package/assets/material/ocaml.svg +0 -1
  897. package/assets/material/odin.svg +0 -1
  898. package/assets/material/opa.svg +0 -1
  899. package/assets/material/opam.svg +0 -1
  900. package/assets/material/otne.svg +0 -1
  901. package/assets/material/parcel.svg +0 -1
  902. package/assets/material/pascal.svg +0 -6
  903. package/assets/material/pawn.svg +0 -1
  904. package/assets/material/pdf.svg +0 -1
  905. package/assets/material/percy.svg +0 -1
  906. package/assets/material/perl.svg +0 -1
  907. package/assets/material/php-cs-fixer.svg +0 -1
  908. package/assets/material/php.svg +0 -1
  909. package/assets/material/php_elephant.svg +0 -1
  910. package/assets/material/php_elephant_pink.svg +0 -1
  911. package/assets/material/phpunit.svg +0 -1
  912. package/assets/material/pinejs.svg +0 -1
  913. package/assets/material/pipeline.svg +0 -1
  914. package/assets/material/plastic.svg +0 -7
  915. package/assets/material/playwright.svg +0 -1
  916. package/assets/material/plop.svg +0 -1
  917. package/assets/material/pnpm.svg +0 -1
  918. package/assets/material/pnpm_light.svg +0 -1
  919. package/assets/material/poetry.svg +0 -1
  920. package/assets/material/postcss.svg +0 -1
  921. package/assets/material/posthtml.svg +0 -1
  922. package/assets/material/powerpoint.svg +0 -1
  923. package/assets/material/powershell.svg +0 -1
  924. package/assets/material/prettier.svg +0 -1
  925. package/assets/material/prisma.svg +0 -1
  926. package/assets/material/processing.svg +0 -1
  927. package/assets/material/prolog.svg +0 -1
  928. package/assets/material/proto.svg +0 -1
  929. package/assets/material/protractor.svg +0 -1
  930. package/assets/material/pug.svg +0 -1
  931. package/assets/material/puppet.svg +0 -1
  932. package/assets/material/purescript.svg +0 -1
  933. package/assets/material/python-misc.svg +0 -1
  934. package/assets/material/python.svg +0 -1
  935. package/assets/material/qsharp.svg +0 -1
  936. package/assets/material/quasar.svg +0 -1
  937. package/assets/material/qwik.svg +0 -2
  938. package/assets/material/r.svg +0 -1
  939. package/assets/material/racket.svg +0 -1
  940. package/assets/material/raml.svg +0 -1
  941. package/assets/material/razor.svg +0 -1
  942. package/assets/material/rc.svg +0 -2
  943. package/assets/material/react.svg +0 -1
  944. package/assets/material/react_ts.svg +0 -1
  945. package/assets/material/readme.svg +0 -1
  946. package/assets/material/reason.svg +0 -1
  947. package/assets/material/red.svg +0 -1
  948. package/assets/material/redux-action.svg +0 -1
  949. package/assets/material/redux-reducer.svg +0 -1
  950. package/assets/material/redux-selector.svg +0 -1
  951. package/assets/material/redux-store.svg +0 -1
  952. package/assets/material/remix.svg +0 -1
  953. package/assets/material/remix_light.svg +0 -1
  954. package/assets/material/renovate.svg +0 -1
  955. package/assets/material/replit.svg +0 -1
  956. package/assets/material/rescript-interface.svg +0 -1
  957. package/assets/material/rescript.svg +0 -1
  958. package/assets/material/restql.svg +0 -1
  959. package/assets/material/riot.svg +0 -1
  960. package/assets/material/roadmap.svg +0 -1
  961. package/assets/material/robot.svg +0 -1
  962. package/assets/material/robots.svg +0 -1
  963. package/assets/material/rollup.svg +0 -1
  964. package/assets/material/rome.svg +0 -1
  965. package/assets/material/routing.svg +0 -1
  966. package/assets/material/rubocop.svg +0 -1
  967. package/assets/material/rubocop_light.svg +0 -1
  968. package/assets/material/ruby.svg +0 -1
  969. package/assets/material/rust.svg +0 -1
  970. package/assets/material/salesforce.svg +0 -1
  971. package/assets/material/san.svg +0 -1
  972. package/assets/material/sas.svg +0 -1
  973. package/assets/material/sass.svg +0 -1
  974. package/assets/material/sbt.svg +0 -1
  975. package/assets/material/scala.svg +0 -1
  976. package/assets/material/scheme.svg +0 -1
  977. package/assets/material/search.svg +0 -1
  978. package/assets/material/semantic-release.svg +0 -1
  979. package/assets/material/semantic-release_light.svg +0 -1
  980. package/assets/material/sentry.svg +0 -1
  981. package/assets/material/sequelize.svg +0 -1
  982. package/assets/material/serverless.svg +0 -1
  983. package/assets/material/settings.svg +0 -1
  984. package/assets/material/shader.svg +0 -1
  985. package/assets/material/shaderlab.svg +0 -1
  986. package/assets/material/silverstripe.svg +0 -1
  987. package/assets/material/siyuan.svg +0 -1
  988. package/assets/material/sketch.svg +0 -1
  989. package/assets/material/slim.svg +0 -1
  990. package/assets/material/slug.svg +0 -1
  991. package/assets/material/smarty.svg +0 -1
  992. package/assets/material/sml.svg +0 -1
  993. package/assets/material/snowpack.svg +0 -1
  994. package/assets/material/snowpack_light.svg +0 -1
  995. package/assets/material/snyk.svg +0 -1
  996. package/assets/material/solidity.svg +0 -1
  997. package/assets/material/sonarcloud.svg +0 -4
  998. package/assets/material/steadybit.svg +0 -1
  999. package/assets/material/stencil.svg +0 -1
  1000. package/assets/material/stitches.svg +0 -1
  1001. package/assets/material/stitches_light.svg +0 -1
  1002. package/assets/material/storybook.svg +0 -1
  1003. package/assets/material/stryker.svg +0 -1
  1004. package/assets/material/stylable.svg +0 -10
  1005. package/assets/material/stylelint.svg +0 -1
  1006. package/assets/material/stylelint_light.svg +0 -1
  1007. package/assets/material/stylus.svg +0 -1
  1008. package/assets/material/sublime.svg +0 -1
  1009. package/assets/material/supabase.svg +0 -4
  1010. package/assets/material/svelte.svg +0 -1
  1011. package/assets/material/svg.svg +0 -1
  1012. package/assets/material/svgo.svg +0 -1
  1013. package/assets/material/svgr.svg +0 -1
  1014. package/assets/material/swc.svg +0 -1
  1015. package/assets/material/swift.svg +0 -1
  1016. package/assets/material/table.svg +0 -1
  1017. package/assets/material/tailwindcss.svg +0 -1
  1018. package/assets/material/tauri.svg +0 -1
  1019. package/assets/material/tcl.svg +0 -1
  1020. package/assets/material/teal.svg +0 -1
  1021. package/assets/material/template.svg +0 -1
  1022. package/assets/material/terraform.svg +0 -1
  1023. package/assets/material/test-js.svg +0 -1
  1024. package/assets/material/test-jsx.svg +0 -1
  1025. package/assets/material/test-ts.svg +0 -1
  1026. package/assets/material/tex.svg +0 -1
  1027. package/assets/material/textlint.svg +0 -1
  1028. package/assets/material/tilt.svg +0 -1
  1029. package/assets/material/tldraw.svg +0 -4
  1030. package/assets/material/tldraw_light.svg +0 -4
  1031. package/assets/material/tobi.svg +0 -1
  1032. package/assets/material/tobimake.svg +0 -1
  1033. package/assets/material/todo.svg +0 -1
  1034. package/assets/material/travis.svg +0 -1
  1035. package/assets/material/tree.svg +0 -1
  1036. package/assets/material/tsconfig.svg +0 -1
  1037. package/assets/material/tune.svg +0 -1
  1038. package/assets/material/turborepo.svg +0 -1
  1039. package/assets/material/turborepo_light.svg +0 -1
  1040. package/assets/material/twig.svg +0 -1
  1041. package/assets/material/twine.svg +0 -1
  1042. package/assets/material/typescript-def.svg +0 -1
  1043. package/assets/material/typescript.svg +0 -1
  1044. package/assets/material/typst.svg +0 -2
  1045. package/assets/material/uml.svg +0 -1
  1046. package/assets/material/uml_light.svg +0 -1
  1047. package/assets/material/url.svg +0 -1
  1048. package/assets/material/vagrant.svg +0 -1
  1049. package/assets/material/vala.svg +0 -1
  1050. package/assets/material/velocity.svg +0 -1
  1051. package/assets/material/vercel.svg +0 -1
  1052. package/assets/material/vercel_light.svg +0 -1
  1053. package/assets/material/verdaccio.svg +0 -1
  1054. package/assets/material/verilog.svg +0 -1
  1055. package/assets/material/vfl.svg +0 -1
  1056. package/assets/material/video.svg +0 -1
  1057. package/assets/material/vim.svg +0 -1
  1058. package/assets/material/virtual.svg +0 -1
  1059. package/assets/material/visualstudio.svg +0 -1
  1060. package/assets/material/vite.svg +0 -1
  1061. package/assets/material/vitest.svg +0 -6
  1062. package/assets/material/vlang.svg +0 -1
  1063. package/assets/material/vscode.svg +0 -1
  1064. package/assets/material/vue-config.svg +0 -1
  1065. package/assets/material/vue.svg +0 -1
  1066. package/assets/material/vuex-store.svg +0 -1
  1067. package/assets/material/wakatime.svg +0 -1
  1068. package/assets/material/wakatime_light.svg +0 -1
  1069. package/assets/material/wallaby.svg +0 -1
  1070. package/assets/material/watchman.svg +0 -1
  1071. package/assets/material/webassembly.svg +0 -1
  1072. package/assets/material/webhint.svg +0 -1
  1073. package/assets/material/webpack.svg +0 -1
  1074. package/assets/material/wepy.svg +0 -1
  1075. package/assets/material/windicss.svg +0 -1
  1076. package/assets/material/wolframlanguage.svg +0 -1
  1077. package/assets/material/word.svg +0 -1
  1078. package/assets/material/xaml.svg +0 -1
  1079. package/assets/material/xml.svg +0 -1
  1080. package/assets/material/yaml.svg +0 -1
  1081. package/assets/material/yang.svg +0 -1
  1082. package/assets/material/yarn.svg +0 -1
  1083. package/assets/material/zig.svg +0 -1
  1084. package/assets/material/zip.svg +0 -1
  1085. package/assets/pop/LICENSE +0 -2
  1086. package/assets/pop/binary.svg +0 -1
  1087. package/assets/pop/compressed.svg +0 -1
  1088. package/assets/pop/database.svg +0 -1
  1089. package/assets/pop/exts/7z.svg +0 -1
  1090. package/assets/pop/exts/apk.svg +0 -1
  1091. package/assets/pop/exts/arc.svg +0 -1
  1092. package/assets/pop/exts/bz.svg +0 -1
  1093. package/assets/pop/exts/deb.svg +0 -1
  1094. package/assets/pop/exts/gz.svg +0 -1
  1095. package/assets/pop/exts/pdf.svg +0 -1
  1096. package/assets/pop/exts/rar.svg +0 -1
  1097. package/assets/pop/exts/rpm.svg +0 -1
  1098. package/assets/pop/exts/tar.svg +0 -1
  1099. package/assets/pop/exts/xar.svg +0 -1
  1100. package/assets/pop/exts/xz.svg +0 -1
  1101. package/assets/pop/exts/zip.svg +0 -1
  1102. package/assets/pop/folder-open.svg +0 -1
  1103. package/assets/pop/folder.svg +0 -1
  1104. package/assets/pop/generic.svg +0 -1
  1105. package/assets/pop/presentation.svg +0 -1
  1106. package/assets/pop/richtext.svg +0 -1
  1107. package/assets/pop/spreadsheet.svg +0 -1
  1108. package/assets/pop/text.svg +0 -1
  1109. package/esm2022/components/lazy-loader/lazy-loader.component.mjs +0 -383
  1110. package/esm2022/components/lazy-loader/lazy-loader.module.mjs +0 -33
  1111. package/esm2022/components/lazy-loader/lazy-loader.service.mjs +0 -217
  1112. package/esm2022/components/lazy-loader/types.mjs +0 -26
  1113. package/esm2022/components/menu/menu.component.mjs +0 -433
  1114. package/esm2022/components/parallax-card/parallax-card.component.mjs +0 -138
  1115. package/esm2022/components/tooltip/tooltip.component.mjs +0 -205
  1116. package/esm2022/components/types.mjs +0 -3
  1117. package/esm2022/directives/image-cache.directive.mjs +0 -143
  1118. package/esm2022/directives/menu.directive.mjs +0 -159
  1119. package/esm2022/directives/tooltip.directive.mjs +0 -154
  1120. package/esm2022/directives/utils.mjs +0 -120
  1121. package/esm2022/pipes/html-bypass.pipe.mjs +0 -27
  1122. package/esm2022/pipes/resource-bypass.pipe.mjs +0 -27
  1123. package/esm2022/pipes/script-bypass.pipe.mjs +0 -27
  1124. package/esm2022/pipes/style-bypass.pipe.mjs +0 -27
  1125. package/esm2022/pipes/url-bypass.pipe.mjs +0 -27
  1126. package/esm2022/public-api.mjs +0 -46
  1127. package/esm2022/services/dependency.service.mjs +0 -55
  1128. package/esm2022/services/dialog.service.mjs +0 -69
  1129. package/esm2022/services/fetch.service.mjs +0 -74
  1130. package/esm2022/services/file.service.mjs +0 -42
  1131. package/esm2022/services/keyboard.service.mjs +0 -128
  1132. package/esm2022/services/navigation.service.mjs +0 -52
  1133. package/esm2022/services/theme.service.mjs +0 -64
  1134. package/esm2022/types/menu.mjs +0 -2
  1135. package/esm2022/types/popup.mjs +0 -2
  1136. package/esm2022/types/tooltip.mjs +0 -2
  1137. package/esm2022/utils/index.mjs +0 -205
  1138. package/utils/index.d.ts +0 -128
  1139. /package/{components → core/components}/lazy-loader/lazy-loader.component.d.ts +0 -0
  1140. /package/{components → core/components}/lazy-loader/lazy-loader.module.d.ts +0 -0
  1141. /package/{components → core/components}/lazy-loader/lazy-loader.service.d.ts +0 -0
  1142. /package/{components → core/components}/lazy-loader/types.d.ts +0 -0
  1143. /package/{components → core/components}/parallax-card/parallax-card.component.d.ts +0 -0
  1144. /package/{directives → core/directives}/image-cache.directive.d.ts +0 -0
  1145. /package/{directives → core/directives}/utils.d.ts +0 -0
  1146. /package/{pipes → core/pipes}/html-bypass.pipe.d.ts +0 -0
  1147. /package/{pipes → core/pipes}/resource-bypass.pipe.d.ts +0 -0
  1148. /package/{pipes → core/pipes}/script-bypass.pipe.d.ts +0 -0
  1149. /package/{pipes → core/pipes}/style-bypass.pipe.d.ts +0 -0
  1150. /package/{pipes → core/pipes}/url-bypass.pipe.d.ts +0 -0
  1151. /package/{services → core/services}/dependency.service.d.ts +0 -0
  1152. /package/{services → core/services}/dialog.service.d.ts +0 -0
  1153. /package/{services → core/services}/fetch.service.d.ts +0 -0
  1154. /package/{services → core/services}/file.service.d.ts +0 -0
  1155. /package/{services → core/services}/keyboard.service.d.ts +0 -0
  1156. /package/{services → core/services}/theme.service.d.ts +0 -0
  1157. /package/{types → core/types}/popup.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dotglitch-ngx-common-core.mjs","sources":["../../packages/common/core/directives/image-cache.directive.ts","../../packages/common/core/pipes/html-bypass.pipe.ts","../../packages/common/core/pipes/resource-bypass.pipe.ts","../../packages/common/core/pipes/script-bypass.pipe.ts","../../packages/common/core/pipes/style-bypass.pipe.ts","../../packages/common/core/pipes/url-bypass.pipe.ts","../../packages/common/core/utils/index.ts","../../packages/common/core/services/dependency.service.ts","../../packages/common/core/components/lazy-loader/types.ts","../../packages/common/core/components/lazy-loader/lazy-loader.service.ts","../../packages/common/core/components/lazy-loader/lazy-loader.component.ts","../../packages/common/core/components/lazy-loader/lazy-loader.component.html","../../packages/common/core/services/dialog.service.ts","../../packages/common/core/services/fetch.service.ts","../../packages/common/core/services/file.service.ts","../../packages/common/core/services/keyboard.service.ts","../../packages/common/core/services/navigation.service.ts","../../packages/common/core/services/theme.service.ts","../../packages/common/core/components/lazy-loader/lazy-loader.module.ts","../../packages/common/core/components/parallax-card/parallax-card.component.ts","../../packages/common/core/components/parallax-card/parallax-card.component.html","../../packages/common/core/components/types.ts","../../packages/common/core/components/menu/menu.component.ts","../../packages/common/core/components/menu/menu.component.html","../../packages/common/core/directives/utils.ts","../../packages/common/core/components/menu/menu.directive.ts","../../packages/common/core/index.ts","../../packages/common/core/dotglitch-ngx-common-core.ts"],"sourcesContent":["import { Directive, ElementRef, Inject, InjectionToken, Input, Optional } from '@angular/core';\nimport { INDEXEDDB, createInstance } from 'localforage';\n\nconst storage = createInstance({\n name: \"@dotglitch\",\n storeName: \"image-cache\",\n driver: INDEXEDDB,\n version: 1\n});\n\n\nconst imageCache: {\n [key: string]: HTMLImageElement;\n} = {};\n\nconst loadingSvg = `data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"32px\" height=\"32px\" viewBox=\"0 0 100 100\" preserveAspectRatio=\"xMidYMid\"><circle cx=\"50\" cy=\"50\" fill=\"none\" stroke=\"%2340c4ff\" stroke-width=\"10\" r=\"35\" stroke-dasharray=\"164.93361431346415 56.97787143782138\"><animateTransform attributeName=\"transform\" type=\"rotate\" repeatCount=\"indefinite\" dur=\"1s\" values=\"0 50 50;360 50 50\" keyTimes=\"0;1\"></animateTransform></circle><!-- [ldio] generated by https://loading.io/ --></svg>`;\nconst brokenSvg = `data:image/svg+xml;utf8,<svg width=\"800\" height=\"800\" viewBox=\"0 0 24 24\" version=\"1.1\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:svg=\"http://www.w3.org/2000/svg\"><line x1=\"10.08\" y1=\"8.29\" x2=\"10.18\" y2=\"8.29\" style=\"fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round\" /><path d=\"m 10.51,14.8 5.2,5.2 H 20 a 1,1 0 0 0 1,-1 V 15.73 L 15.29,10 Z M 3,16.71 V 19 a 1,1 0 0 0 1,1 h 11.71 l -8,-8 z M 21,5 v 14 a 1,1 0 0 1 -1,1 H 4 A 1,1 0 0 1 3,19 V 5 A 1,1 0 0 1 4,4 h 16 a 1,1 0 0 1 1,1 z\" style=\"fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round\" /><path d=\"M 21.193388,21.193388 2.8066108,2.8066108 m 18.3867772,0 L 2.8066108,21.193388\" style=\"stroke:%23ff0000;stroke-width:2.62668;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1\" /></svg>`;\n\nexport type NgxImageCacheConfig = {\n /**\n * Image to use as a placeholder while loading the main image\n * Recommended to use inlined SVG or a base64 encoded image\n */\n loadingPlaceholder?: string,\n /**\n * Image to use as a placeholder where images fail to load\n * Recommended to use inlined SVG or a base64 encoded image\n */\n brokenPlaceholder?: string\n}\n\nexport const NGX_IMAGE_CACHE_CONFIG = new InjectionToken<NgxImageCacheConfig>('ngx-image-cache-config');\n\n\nexport type NgxImageCacheConfiguration = {\n /**\n * Max age to cache an image in milliseconds.\n * If set to `0` or a negative number, images will never expire.\n */\n maxAge: number,\n /**\n * Set to `false` to disable memory caching for the image\n * If both `cacheInMemory` and `cacheInIndexedDB` are false,\n * no caching will happen. (You'll still get the loader)\n */\n cacheInMemory: boolean,\n /**\n * Set to `false` to disable indexedDB caching for the image\n * If both `cacheInMemory` and `cacheInIndexedDB` are false,\n * no caching will happen. (You'll still get the loader)\n */\n cacheInIndexedDB: boolean\n}\n\n@Directive({\n selector: 'img[ngx-cache]',\n standalone: true\n})\nexport class NgxImageCacheDirective {\n\n @Input(\"source\")\n @Input(\"ngx-cache\") url: string;\n\n @Input(\"ngx-cache-config\") configuration: NgxImageCacheConfiguration;\n\n private get el() { return this.element.nativeElement as HTMLImageElement }\n\n constructor(\n private readonly element: ElementRef,\n @Optional() @Inject(NGX_IMAGE_CACHE_CONFIG) private readonly cacheConfig: NgxImageCacheConfig\n ) { }\n\n ngOnChanges() {\n this.getCachedImage();\n }\n\n async getCachedImage() {\n if (\n this.el.src?.trim() == this.url?.trim() || // Check that there's an actual change\n this.url?.trim().length == 0 // Check that there's an actual URL\n ) return;\n\n // Check if it's in the memory cache\n if (imageCache[this.url]) {\n const image = imageCache[this.url];\n\n // If the image is currently loading, show the loader\n // and add it to the reflist\n if (image['_loading'] == true) {\n image['_refs'].push(this.el);\n\n this.el.setAttribute(\"loading\", \"true\");\n this.el.src = this.cacheConfig?.loadingPlaceholder || loadingSvg;\n }\n else {\n // The image is fully loaded, swap out the src with a data-uri\n this.el.setAttribute(\"loading\", \"false\");\n this.el.src = image.src;\n }\n\n // If it's already in the image cache, we're going to trust that it loads properly.\n return;\n }\n\n // Check if it's in indexedDB\n if (this.configuration?.cacheInIndexedDB != false) {\n const cached = await storage.getItem<any>(this.url);\n if (cached) {\n // Attempt to load the base64 data from indexeddb.\n // If this fails, we'll fall back to attempting to download the image\n this.el.src = cached.data;\n\n const evt: Event = await new Promise(res => {\n this.el.addEventListener('load', res);\n this.el.addEventListener('error', res);\n });\n\n // If the event isn't an error\n if (evt.type == \"load\") {\n this.el.setAttribute(\"loading\", \"false\");\n\n if (this.configuration?.cacheInMemory != false) {\n // Successfully loaded into element\n // Create an entry in the memory cache\n const image = imageCache[this.url] = new Image();\n image.src = cached.data;\n image['_createdAt'] = Date.now();\n }\n return;\n }\n else {\n // Else, we try to load again.\n this.el.src = this.cacheConfig?.loadingPlaceholder || loadingSvg;\n }\n }\n }\n\n const image = (() => {\n if (this.configuration?.cacheInMemory != false) {\n return imageCache[this.url] = new Image();\n }\n return new Image();\n })();\n\n // const clone = image.cloneNode(true) as HTMLImageElement;\n image['_refs'] = image['_refs'] ?? [];\n image['_refs'].push(this.el);\n image['_loading'] = true;\n image['_createdAt'] = Date.now();\n\n // Show a loader while the image downloads.\n this.el.setAttribute(\"loading\", \"true\");\n this.el.src = this.cacheConfig?.loadingPlaceholder || loadingSvg;\n\n // Fetch the image via JS and cache it as base64\n window.fetch(this.url)\n .then(response => response.blob())\n .then(blob => new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => {\n image.src = reader.result as string;\n\n storage.setItem(this.url, {\n timestamp: Date.now(),\n data: reader.result\n });\n\n image['_refs'].forEach((ref: HTMLImageElement) => {\n ref.src = image.src;\n });\n\n image['_loading'] = false;\n resolve(0);\n };\n reader.onerror = reject;\n reader.readAsDataURL(blob);\n }))\n .catch(err => {\n // If a failure occurs, purge this entry from the cache\n // TODO: Render better \"broken\" image\n delete imageCache[this.url];\n image['_refs'].forEach((ref: HTMLImageElement) => {\n ref.src = this.cacheConfig?.brokenPlaceholder || brokenSvg;\n ref.setAttribute(\"loading\", \"failed\");\n });\n });\n }\n}\n","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n/**\n * Url Sanitizer pipe.\n *\n * This trusts URLs that exist in a safe list defined in our environments.ts file.\n * Any other URLs will NOT be trusted, thus will not be loaded.\n */\n@Pipe({\n name: 'htmlbypass',\n standalone: true\n})\nexport class HtmlBypass implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n\n public transform(url: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustHtml(url);\n }\n}\n","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n/**\n * Url Sanitizer pipe.\n *\n * This trusts URLs that exist in a safe list defined in our environments.ts file.\n * Any other URLs will NOT be trusted, thus will not be loaded.\n */\n@Pipe({\n name: 'resourcebypass',\n standalone: true\n})\nexport class ResourceBypass implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n\n public transform(url: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n}\n","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n/**\n * Url Sanitizer pipe.\n *\n * This trusts URLs that exist in a safe list defined in our environments.ts file.\n * Any other URLs will NOT be trusted, thus will not be loaded.\n */\n@Pipe({\n name: 'scriptbypass',\n standalone: true\n})\nexport class ScriptBypass implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n\n public transform(url: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustScript(url);\n }\n}\n","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n/**\n * Url Sanitizer pipe.\n *\n * This trusts URLs that exist in a safe list defined in our environments.ts file.\n * Any other URLs will NOT be trusted, thus will not be loaded.\n */\n@Pipe({\n name: 'stylebypass',\n standalone: true\n})\nexport class StyleBypass implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n\n public transform(url: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustStyle(url);\n }\n}\n","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n/**\n * Url Sanitizer pipe.\n *\n * This trusts URLs that exist in a safe list defined in our environments.ts file.\n * Any other URLs will NOT be trusted, thus will not be loaded.\n */\n@Pipe({\n name: 'urlbypass',\n standalone: true\n})\nexport class UrlBypass implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n\n public transform(url: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustUrl(url);\n }\n}\n","export const sleep = ms => new Promise(r => setTimeout(r, ms));\n\n/**\n * Prompt the user to save a json file of the given object.\n */\nexport const saveObjectAsFile = (name: string, data: Object) => {\n const a = document.createElement(\"a\");\n const file = new Blob([JSON.stringify(data)], { type: \"application/json\" });\n a.href = URL.createObjectURL(file);\n a.download = name;\n a.click();\n a.remove();\n};\n\n/**\n * Convert a string `fooBAR baz_160054''\"1]\"` into a slug: `foobar-baz-1600541`\n */\nexport const stringToSlug = (text: string) =>\n (text || '')\n .trim()\n .toLowerCase()\n .replace(/[\\-_+ ]/g, '-')\n .replace(/[^a-z0-9\\-\\/]/g, '');\n\n\n/**\n* Helper to update the page URL.\n* @param page component page ID to load.\n* @param data string or JSON data for query params.\n*/\nexport const updateUrl = (page?: string, data: string | string[][] | Record<string, string | number> | URLSearchParams = {}, replaceState = false) => {\n const [oldHash, qstring] = location.hash.split('?');\n\n if (!page)\n page = oldHash.split('/')[1];\n\n const hash = `#/${page}`;\n\n // Convert the data object to JSON.\n if (data instanceof URLSearchParams) {\n data = [...(data as any).entries()].map(([k, v]) => ({ [k]: v })).reduce((a, b) => ({ ...a, ...b }), {});\n }\n\n const query = new URLSearchParams(data as any) as any;\n const prevParams = new URLSearchParams(qstring) as any;\n\n // If the hash is the same, retain params.\n if (hash == oldHash) {\n replaceState = true;\n for (const [key, value] of prevParams.entries())\n if (!query.has(key))\n query.set(key, prevParams.get(key));\n }\n\n for (const [key, val] of query.entries()) {\n if (\n val == null ||\n val == undefined ||\n val == '' ||\n val == 'null' ||\n Number.isNaN(val) ||\n val == 'NaN'\n )\n query.delete(key);\n }\n\n if (!(hash.toLowerCase() == \"#/frame\") || data['id'] == -1)\n query.delete('id');\n\n\n const strQuery = query.toString();\n console.log(data, hash, strQuery);\n if (replaceState) {\n window.history.replaceState(data, '', hash + (strQuery ? ('?' + strQuery) : ''));\n }\n else {\n window.history.pushState(data, '', hash + (strQuery ? ('?' + strQuery) : ''));\n }\n};\n\nexport const getUrlData = (source = window.location.hash) => {\n const [hash, query] = source.split('?');\n let data = new URLSearchParams(query) as any;\n return [...data.entries()].map(([k, v]) => ({ [k]: v })).reduce((a, b) => ({ ...a, ...b }), {});\n};\n","import { DOCUMENT } from '@angular/common';\nimport { Injectable, Inject } from '@angular/core';\nimport { sleep } from '../utils';\n\nconst SCRIPT_INIT_TIMEOUT = 500; // ms\n\n/**\n * Service that installs CSS/JS dynamically\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DependencyService {\n\n constructor(\n @Inject(DOCUMENT) private document: Document\n ) { }\n\n /**\n * Install a Javascript file into the webpage on-demand\n * @param id Unique identifier for the JS script\n * @param src URL of the script\n * @param globalkey A global object the script will provide.\n * Providing this will ensure a promise only resolves after the\n * specified global object is provided, with a timeout of 500ms\n */\n loadScript(id: string, src: string, globalkey: string = null): Promise<void> {\n return new Promise((res, rej) => {\n if (this.document.getElementById(id)) return res();\n\n const script = this.document.createElement('script');\n script.id = id;\n\n script.setAttribute(\"async\", '');\n script.setAttribute(\"src\", src);\n\n script.onload = async () => {\n if (typeof globalkey == \"string\") {\n let i = 0;\n\n for (; !window[globalkey] && i < SCRIPT_INIT_TIMEOUT; i += 10)\n await sleep(10);\n\n if (i >= SCRIPT_INIT_TIMEOUT) {\n return rej(new Error(\"Timed out waiting for script to self-initialize.\"));\n }\n }\n\n res();\n }\n\n this.document.body.appendChild(script);\n })\n }\n\n // loadStylesheet(id: string, href: string) {\n // let themeLink = this.document.getElementById(id) as HTMLLinkElement;\n // if (themeLink) {\n // themeLink.href = href;\n // }\n // else {\n // const style = this.document.createElement('link');\n // style.id = id;\n // style.rel = 'stylesheet';\n // style.href = href;\n\n // const head = this.document.getElementsByTagName('head')[0];\n\n // head.appendChild(style);\n // }\n // }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { TemplateRef } from '@angular/core';\n\nexport enum ComponentResolveStrategy {\n /**\n * Match the fist component we find\n * (best used for standalone components)\n * @default\n */\n PickFirst,\n /**\n * Perform an Exact ID to Classname of the Component\n * case sensitive, zero tolerance.\n */\n MatchIdToClassName,\n /**\n * Perform a fuzzy ID to classname match\n * case insensitive, mutes symbols\n * ignores \"Component\" and \"Module\" postfixes on class\n * names\n */\n FuzzyIdClassName,\n\n /**\n * Use a user-provided component match function\n */\n Custom\n}\n\nexport type NgxLazyLoaderConfig = Partial<{\n entries: ComponentRegistration[],\n\n notFoundTemplate: TemplateRef<any>,\n notFoundComponent: ComponentType<any>,\n\n errorTemplate: TemplateRef<any>,\n errorComponent: ComponentType<any>,\n\n loaderDistractorTemplate: TemplateRef<any>,\n loaderDistractorComponent: ComponentType<any>,\n\n logger: {\n log: (...args: any) => void,\n warn: (...args: any) => void,\n err: (...args: any) => void;\n },\n /**\n * What strategy should be used to resolve components\n * @default ComponentResolveStrategy.FuzzyIdClassName\n */\n componentResolveStrategy: ComponentResolveStrategy,\n customResolver: (registry: (CompiledComponent | CompiledModule)[]) => Object\n}>;\n\ntype RegistrationConfig = {\n /**\n * Specify a group to categorize components. If not specified,\n * will default to the `default` group.\n */\n group?: string,\n /**\n * load: () => import('./pages/my-page/my-page.component')\n */\n load: () => any,\n\n /**\n * Called before a component is loaded.\n * If it returns `false` the component will not be loaded.\n */\n // canActivate: () => boolean\n\n [key: string]: any\n}\n\nexport type ComponentRegistration = (\n ({ id: string } & RegistrationConfig) |\n ({ matcher: string[] | RegExp | ((value: string) => boolean); } & RegistrationConfig)\n);\n\nexport type DynamicRegistrationArgs<T = any> = {\n id: string,\n group?: string,\n matcher?: string[] | RegExp | ((val: string) => boolean),\n component?: T,\n load?: () => any;\n}\n\n/**\n * This is roughly a compiled component\n */\nexport type CompiledComponent = {\n (): CompiledComponent,\n ɵfac: Function,\n ɵcmp: {\n consts;\n contentQueries;\n data;\n declaredInputs;\n decls;\n dependencies;\n directiveDefs;\n encapsulation;\n exportAs;\n factory;\n features;\n findHostDirectiveDefs;\n getStandaloneInjector;\n hostAttrs;\n hostBindings;\n hostDirectives;\n hostVars;\n id: string;\n inputs;\n ngContentSelectors;\n onPush: boolean;\n outputs;\n pipeDefs;\n providersResolver;\n schemas;\n selectors: string[];\n setInput;\n standalone: boolean;\n styles: string[];\n tView;\n template;\n type: Function;\n vars: number;\n viewQuery;\n };\n};\n\n/**\n * This is roughly a compiled module\n */\nexport type CompiledModule = {\n (): CompiledModule,\n ɵfac: Function,\n ɵinj: {\n providers: any[],\n imports: any[];\n },\n ɵmod: {\n bootstrap: any[],\n declarations: Function[],\n exports: any[],\n id: unknown,\n imports: any[],\n schemas: unknown,\n transitiveCompileScopes: unknown,\n type: Function;\n };\n};\n\nexport type CompiledBundle = { [key: string]: CompiledComponent | CompiledModule; };\n\n\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\nimport { stringToSlug } from '../../utils';\nimport { CompiledComponent, CompiledModule, ComponentRegistration, ComponentResolveStrategy, DynamicRegistrationArgs, NgxLazyLoaderConfig } from './types';\n\n// Monkey-patch the type of these symbols.\nconst $id = Symbol(\"id\") as any as string;\nconst $group = Symbol(\"group\") as any as string;\n\nexport const NGX_LAZY_LOADER_CONFIG = new InjectionToken<NgxLazyLoaderConfig>('lazyloader-config');\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LazyLoaderService {\n private get err() { return LazyLoaderService.config.logger.err; }\n private get log() { return LazyLoaderService.config.logger.log; }\n private get warn() { return LazyLoaderService.config.logger.warn; }\n\n // A proxied registry that mutates reference keys\n private static registry: {\n [key: string]: ComponentRegistration[];\n } = {};\n\n public static config: NgxLazyLoaderConfig;\n\n constructor(@Optional() @Inject(NGX_LAZY_LOADER_CONFIG) config: NgxLazyLoaderConfig = {}) {\n // Ensure this is singleton and works regardless of special instancing requirements.\n LazyLoaderService.configure(config);\n }\n\n private static configure(config: NgxLazyLoaderConfig) {\n this.config = {\n componentResolveStrategy: ComponentResolveStrategy.PickFirst,\n logger: {\n log: console.log,\n warn: console.warn,\n err: console.error\n },\n ...config\n };\n\n config?.entries?.forEach(e => this.addComponentToRegistry(e));\n\n // If a custom resolution strategy is provided but no resolution function is passed,\n // we throw an error\n if (\n this.config.componentResolveStrategy == ComponentResolveStrategy.Custom &&\n !this.config.customResolver\n ) {\n throw new Error(\"Cannot initialize. Configuration specifies a custom resolve matcher but none was provided\");\n }\n\n if (this.config.loaderDistractorComponent && this.config.loaderDistractorTemplate)\n throw new Error(\"Cannot have both a Component and Template for Distractor view.\");\n if (this.config.errorComponent && this.config.errorTemplate)\n throw new Error(\"Cannot have both a Component and Template for Error view.\");\n if (this.config.notFoundComponent && this.config.notFoundTemplate)\n throw new Error(\"Cannot have both a Component and Template for NotFound view.\");\n\n }\n\n private static addComponentToRegistry(registration: ComponentRegistration) {\n if (!registration)\n throw new Error(\"Cannot add <undefined> component into registry.\");\n\n // Clone the object into our repository and transfer the id into a standardized slug format\n\n const id = stringToSlug(registration.id ?? Date.now().toString()); // purge non-basic ASCII chars\n const group = registration.group || \"default\";\n\n registration[$id] = id;\n registration[$group] = id;\n\n\n if (!this.registry[group])\n this.registry[group] = [];\n\n // Check if we already have a registration for the component\n // if (this.registry[group] && typeof this.registry[group]['load'] == \"function\") {\n // // Warn the developer that the state is problematic\n // this.config.logger.warn(\n // `A previous entry already exists for ${id}! The old registration will be overridden.` +\n // `Please ensure you use groups if you intend to have duplicate component ids. ` +\n // `If this was intentional, first remove the old component from the registry before adding a new instance`\n // );\n\n // // If we're in dev mode, break the loader surface\n // if (isDevMode())\n // return;\n // }\n\n this.registry[group].push(registration);\n }\n\n /**\n * Register an Angular component\n * @param id identifier that is used to resolve the component\n * @param group\n * @param component Angular Component Class constructor\n */\n public registerComponent<T extends { new(...args: any[]): InstanceType<T>; }>(args: DynamicRegistrationArgs<T>) {\n if (this.isComponentRegistered(args.id, args.group)) {\n this.log(`Will not re-register component '${args.id}' in group '${args.group || 'default'}' `);\n return;\n }\n\n LazyLoaderService.addComponentToRegistry({\n id: stringToSlug(args.id),\n matcher: args.matcher,\n group: stringToSlug(args.group || \"default\"),\n load: args.load || (() => args.component)\n });\n }\n\n /**\n *\n * @param id\n * @param group\n */\n public unregisterComponent(id: string, group = \"default\") {\n const _id = stringToSlug(id);\n const _group = stringToSlug(group);\n\n if (!this.resolveRegistrationEntry(id, group))\n throw new Error(\"Cannot unregister component ${}! Component is not present in registry\");\n\n // TODO: handle clearing running instances\n delete LazyLoaderService.registry[_group][_id];\n }\n\n\n /**\n * Get the registration entry for a component.\n * Returns null if component is not in the registry.\n */\n public resolveRegistrationEntry(value: string, group = \"default\") {\n const _id = stringToSlug(value);\n const _group = stringToSlug(group);\n\n const targetGroup = (LazyLoaderService.registry[_group] || []);\n\n let items = targetGroup.filter(t => {\n if (!t) return false;\n\n // No matcher, check id\n if (!t.matcher)\n return t.id == value || t[$id] == _id;\n\n // Matcher is regex\n if (t.matcher instanceof RegExp)\n return t.matcher.test(value) || t.matcher.test(_id);\n\n // Matcher is string => regex\n if (typeof t.matcher == 'string') {\n const rx = new RegExp(t.matcher, 'ui');\n return rx.test(value) || rx.test(_id);\n }\n\n // Matcher is array\n if (Array.isArray(t.matcher)) {\n return !!t.matcher.find(e => stringToSlug(e) == _id);\n }\n\n // Custom matcher function\n if (typeof t.matcher == \"function\")\n return t.matcher(_id);\n\n return false;\n });\n\n if (items.length > 1) {\n this.warn(\"Resolved multiple components for the provided `[component]` binding. This may cause UI conflicts.\");\n }\n if (items.length == 0) {\n return null;\n }\n\n const out = items[0];\n\n if (out.matcher instanceof RegExp) {\n const result = value.match(out.matcher) || _id.match(out.matcher);\n\n return {\n entry: out,\n matchGroups: result?.groups\n };\n }\n\n return { entry: out };\n }\n\n /**\n * Check if a component is currently registered\n * Can be used to validate regex matchers and aliases.\n */\n public isComponentRegistered(value: string, group = \"default\") {\n return !!this.resolveRegistrationEntry(value, group);\n }\n\n /**\n *\n * @param bundle\n * @returns The component `Object` if a component was resolved, `null` if no component was found\n * `false` if the specified strategy was an invalid selection\n */\n public resolveComponent(id: string, group: string, modules: (CompiledComponent | CompiledModule)[]): Object | null | false {\n\n switch (LazyLoaderService.config.componentResolveStrategy) {\n case ComponentResolveStrategy.PickFirst: {\n\n return modules[0];\n }\n\n // Exact id -> classname match\n case ComponentResolveStrategy.MatchIdToClassName: {\n const matches =\n modules\n .filter(k => k.name == id);\n\n if (matches.length == 0)\n return null;\n\n return matches[0];\n }\n // Fuzzy id -> classname match\n case ComponentResolveStrategy.FuzzyIdClassName: {\n const _id = id.replace(/[^a-z0-9_\\-]/ig, '');\n\n if (_id.length == 0) {\n LazyLoaderService.config.logger.err(\"Fuzzy classname matching stripped all symbols from the ID specified!\");\n return false;\n }\n\n const rx = new RegExp(`^${id}(component|module)?$`, \"i\");\n\n const matches = modules\n .filter(mod => {\n let kid = mod.name.replace(/[^a-z0-9_\\-]/ig, '');\n\n return rx.test(kid);\n });\n\n if (matches.length > 1) {\n LazyLoaderService.config.logger.err(\"Fuzzy classname matching resolved multiple targets!\");\n return false;\n }\n\n if (matches.length == 0) {\n LazyLoaderService.config.logger.err(\"Fuzzy classname matching resolved no targets!\");\n return null;\n }\n\n return matches[0];\n }\n case ComponentResolveStrategy.Custom: {\n return LazyLoaderService.config.customResolver(modules as any);\n }\n default: {\n return false;\n }\n }\n }\n}\n","import { Input, ViewContainerRef, isDevMode, ComponentRef, EventEmitter, Optional, ViewChild, Component, Inject, Output, NgModule, AfterViewInit, OnInit } from '@angular/core';\nimport { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { MAT_DIALOG_DATA, } from '@angular/material/dialog';\nimport { DialogRef } from '@angular/cdk/dialog';\nimport { BehaviorSubject, debounceTime, Subscription } from 'rxjs';\nimport { LazyLoaderService } from './lazy-loader.service';\nimport { stringToSlug } from '../../utils';\nimport { CompiledBundle, NgxLazyLoaderConfig } from './types';\n\n\n@Component({\n selector: 'ngx-lazy-loader',\n templateUrl: './lazy-loader.component.html',\n styleUrls: [ './lazy-loader.component.scss' ],\n imports: [ NgComponentOutlet, NgTemplateOutlet ],\n standalone: true\n})\nexport class LazyLoaderComponent implements AfterViewInit {\n @ViewChild(\"content\", { read: ViewContainerRef }) targetContainer: ViewContainerRef;\n\n /**\n * ! Here be dragons.\n * Only the bravest of Adventurers can survive the battles below,\n * and they must be trained and ready for the gruelling journey ahead.\n * Many a soul has tried to best these Dragons, yet only one has\n * succeeded since our founding.\n *\n * TL;DR -- Don't mess with this unless you know what you're doing.\n * This is central to a ton of moving parts -- breaking it will\n * cause more collateral damage than you may realize.\n */\n\n private _id: string;\n private originalId: string;\n /**\n * The id of the component that will be lazy loaded\n */\n @Input(\"component\") set id(data: string) {\n this.originalId = data;\n const id = stringToSlug(data);\n\n // Check if there is a change to the loaded component's id\n // if it's updated, we destroy and rehydrate the entire container\n if (this.initialized && this._id != id) {\n this._id = id;\n this.ngAfterViewInit();\n }\n else {\n this._id = id;\n }\n };\n\n private _group = \"default\";\n private originalGroup: string;\n @Input(\"group\") set group(data: string) {\n this.originalGroup = data;\n const group = stringToSlug(data);\n\n if (typeof group != \"string\" || !group) return;\n\n // If the group was updated, retry to bootstrap something into the container.\n if (this.initialized && this._group != group) {\n this._group = group;\n\n this.ngAfterViewInit();\n return;\n }\n\n this._group = group;\n }\n get group() { return this._group }\n\n private _matchGroups: { [key: string]: string };\n private _inputs: { [key: string]: any; };\n /**\n * A map of inputs to bind to the child.\n * Supports change detection. (May fail on deep JSON changes)\n *\n * ```html\n * <lazy-loader component=\"MyLazyComponent\"\n * [inputs]=\"{\n * prop1: true,\n * prop2: false,\n * complex: {\n * a: true,\n * b: 0\n * }\n * }\"\n * >\n * </lazy-loader>\n * ```\n */\n @Input(\"inputs\") set inputs(data: { [key: string]: any; }) {\n if (data == undefined) return;\n\n let previous = this._inputs;\n this._inputs = data;\n if (data == undefined)\n console.trace(data);\n\n if (this.targetComponentFactory) {\n const { inputs } = this.targetComponentFactory.ɵcmp;\n\n const currentKeys = Object.keys(inputs);\n\n const oldKeys = Object.keys(previous).filter(key => currentKeys.includes(key));\n const newKeys = Object.keys(data).filter(key => currentKeys.includes(key));\n\n const removed = oldKeys.filter(key => !newKeys.includes(key));\n\n // ? perhaps set to null or undefined instead\n removed.forEach(k => this.targetComponentInstance[k] = null);\n\n this.bindInputs();\n }\n }\n\n\n private outputSubscriptions: { [key: string]: Subscription; } = {};\n private _outputs: { [key: string]: Function; };\n /**\n * A map of outputs to bind from the child.\n * Should support change detection.\n * ```html\n * <lazy-loader component=\"MyLazyComponent\"\n * [outputs]=\"{\n * prop3: onOutputFire\n * }\"\n * >\n * </lazy-loader>\n * ```\n */\n @Input(\"outputs\") set outputs(data: { [key: string]: Function; }) {\n let previous = this._outputs;\n this._outputs = data;\n\n if (this.targetComponentFactory) {\n const { inputs } = this.targetComponentFactory.ɵcmp;\n\n const currentKeys = Object.keys(inputs);\n const removed = Object.keys(previous).filter(key => !currentKeys.includes(key));\n\n removed.forEach(k => {\n // Unsubscribe from observable\n this.outputSubscriptions[k]?.unsubscribe();\n delete this.targetComponentInstance[k];\n });\n\n this.bindOutputs();\n }\n }\n\n /**\n * Emits errors encountered when loading components\n */\n @Output() componentLoadError = new EventEmitter();\n\n /**\n * Emits when the component is fully constructed\n * and had it's inputs and outputs bound\n * > before `OnInit`\n *\n * Returns the active class instance of the lazy-loaded component\n */\n @Output() componentLoaded = new EventEmitter();\n\n\n /**\n * This is an instance of the component that is currently loaded.\n */\n public instance: any;\n\n\n /**\n * Container that provides the component data\n */\n private targetModule: CompiledBundle;\n\n /**\n * Component definition\n */\n private targetComponentFactory: any;\n\n /**\n * Active component container reference\n */\n private targetComponentContainerRef: ComponentRef<any>;\n private targetRef: any;\n /**\n * Reference to the component class instance\n */\n private targetComponentInstance: any;\n\n /**\n * Subscription with true/false state on whether the distractor should be\n */\n private distractorSubscription: Subscription;\n\n public config: NgxLazyLoaderConfig;\n private err;\n private warn;\n private log;\n\n // Force 500ms delay before revealing the spinner\n private clearEmitter = new EventEmitter();\n private clearLoader$ = this.clearEmitter.pipe(debounceTime(300));\n\n private showEmitter = new EventEmitter();\n private showLoader$ = this.showEmitter.pipe(debounceTime(1));\n\n private subscriptions = [\n this.clearLoader$.subscribe(() => {\n this.isClearingLoader = true;\n\n setTimeout(() => {\n this.renderSpinner = false;\n }, 300)\n }),\n this.showLoader$.subscribe(() => {\n this.isClearingLoader = false;\n this.renderSpinner = true;\n })\n ];\n\n public renderSpinner = true; // whether we render the DOM for the spinner\n public isClearingLoader = false; // should the spinner start fading out\n\n constructor(\n private service: LazyLoaderService,\n @Optional() private viewContainerRef: ViewContainerRef,\n @Optional() public dialog: DialogRef,\n @Optional() @Inject(MAT_DIALOG_DATA) public dialogArguments\n ) {\n this.config = LazyLoaderService.config;\n this.err = LazyLoaderService.config.logger.err;\n this.warn = LazyLoaderService.config.logger.warn;\n this.log = LazyLoaderService.config.logger.log;\n\n // First, check for dialog arguments\n if (this.dialogArguments) {\n this.inputs = this.dialogArguments.inputs || this.dialogArguments.data;\n this.outputs = this.dialogArguments.outputs;\n this.id = this.dialogArguments.id;\n this.group = this.dialogArguments.group;\n }\n }\n\n private initialized = false;\n async ngAfterViewInit() {\n this.ngOnDestroy(false);\n this.isClearingLoader = false;\n this.renderSpinner = true;\n this.initialized = true;\n\n if (!this._id) {\n this.warn(\"No component was specified!\");\n return this.loadDefault();\n }\n\n try {\n const _entry = this.service.resolveRegistrationEntry(this.originalId, this.originalGroup);\n if (!_entry || !_entry.entry) {\n this.err(`Failed to find Component '${this._id}' in group '${this._group}' in registry!`);\n return this.loadDefault();\n }\n\n const { entry, matchGroups } = _entry;\n this._matchGroups = matchGroups;\n\n // Download the \"module\" (the standalone component)\n const bundle: CompiledBundle = this.targetModule = await entry.load();\n\n\n // Check if there is some corruption on the bundle.\n if (!bundle || typeof bundle != 'object') {\n this.err(`Failed to load component/module for '${this._id}'! Parsed resource is invalid.`);\n return this.loadError();\n }\n\n const modules = Object.keys(bundle)\n .map(k => {\n const entry = bundle[k];\n\n // Strictly check for exported modules or standalone components\n if (typeof entry == \"function\" && typeof entry[\"ɵfac\"] == \"function\")\n return entry;\n return null;\n })\n .filter(e => e != null)\n .filter(entry => {\n entry['_isModule'] = !!entry['ɵmod']; // module\n entry['_isComponent'] = !!entry['ɵcmp']; // component\n\n return (entry['_isModule'] || entry['_isComponent']);\n });\n\n if (modules.length == 0) {\n this.err(`Component/Module loaded for '${this._id}' has no exported components or modules!`);\n return this.loadError();\n }\n\n const component = this.targetComponentFactory = this.service.resolveComponent(this._id, \"default\", modules);\n\n if (!component) {\n this.err(`Component '${this._id}' is invalid or corrupted!`);\n return this.loadError();\n }\n\n\n // const componentRef = this.targetComponentContainerRef = createComponent(component as any, {\n // environmentInjector: this.appRef.injector,\n // elementInjector: this.injector,\n // hostElement: this.viewContainerRef.element.nativeElement,\n // // projectableNodes:\n // });\n // // this.targetRef = this.targetContainer.insert(this.targetComponentContainerRef.hostView);\n // this.appRef.attachView(componentRef.hostView);\n\n // Bootstrap the component into the container\n const componentRef = this.targetComponentContainerRef = this.targetContainer.createComponent(component as any);\n this.targetRef = this.targetContainer.insert(this.targetComponentContainerRef.hostView);\n\n const instance: any = this.targetComponentInstance = componentRef['instance'];\n\n this.bindInputs();\n this.bindOutputs();\n\n this.componentLoaded.next(instance);\n this.instance = instance;\n\n // Look for an observable called isLoading$ that will make us show/hide\n // the same distractor that is used on basic loading\n const isLoading$ = instance['ngxShowDistractor$'] as BehaviorSubject<boolean>;\n\n if (isLoading$ && typeof isLoading$.subscribe == \"function\") {\n this.distractorSubscription = isLoading$.subscribe(loading => {\n loading ? this.showEmitter.emit() : this.clearEmitter.emit();\n });\n }\n else {\n this.clearEmitter.emit();\n }\n\n const name = Object.keys(bundle)[0];\n this.log(`Loaded '${name}'`);\n this.clearEmitter.emit();\n\n return componentRef;\n }\n catch (ex) {\n\n if (isDevMode()) {\n console.warn(\"Component DDD \" + this._id + \" threw an error on mount!\");\n console.warn(\"This will cause you to see a 404 panel.\");\n console.error(ex);\n }\n\n // Network errors throw a toast and return an error component\n if (ex && !isDevMode()) {\n console.error(\"Uncaught error when loading component\");\n throw ex;\n }\n\n return this.loadDefault();\n }\n }\n\n ngOnDestroy(clearAll = true) {\n // unsubscribe from all subscriptions\n Object.entries(this.outputSubscriptions).forEach(([key, sub]) => {\n sub.unsubscribe();\n });\n this.outputSubscriptions = {};\n\n // Clear all things\n if (clearAll) {\n Object.entries(this.subscriptions).forEach(([key, sub]) => {\n sub.unsubscribe();\n });\n }\n\n this.distractorSubscription?.unsubscribe();\n\n // Clear target container\n this.targetRef?.destroy();\n this.targetComponentContainerRef?.destroy();\n this.targetContainer?.clear();\n\n // Wipe the rest of the state clean\n this.targetRef = null;\n this.targetComponentContainerRef = null;\n }\n\n /**\n * Bind the input values to the child component.\n */\n private bindInputs() {\n if (!this._inputs || !this.targetComponentInstance) return;\n\n // Merge match groups\n if (typeof this._matchGroups == \"object\") {\n Object.entries(this._matchGroups).forEach(([key, val]) => {\n if (typeof this._inputs[key] == 'undefined')\n this._inputs[key] = val;\n });\n }\n\n // forward-bind inputs\n const { inputs } = this.targetComponentFactory.ɵcmp;\n\n // Returns a list of entries that need to be set\n // This makes it so that unnecessary setters are not invoked.\n const updated = Object.entries(inputs).filter(([parentKey, childKey]: [string, string]) => {\n return this.targetComponentInstance[childKey] != this._inputs[parentKey];\n });\n\n updated.forEach(([parentKey, childKey]: [string, string | [string, number, unknown]]) => {\n if (this._inputs.hasOwnProperty(parentKey)) {\n // Angular 19.2+\n if (Array.isArray(childKey)) {\n this.targetComponentInstance[childKey[0]] = this._inputs[parentKey];\n }\n else {\n this.targetComponentInstance[childKey] = this._inputs[parentKey];\n }\n }\n });\n }\n\n /**\n * Bind the output handlers to the loaded child component\n */\n private bindOutputs() {\n if (!this._outputs || !this.targetComponentInstance) return;\n\n const { outputs } = this.targetComponentFactory.ɵcmp;\n\n // Get a list of unregistered outputs\n const newOutputs = Object.entries(outputs).filter(([parentKey, childKey]: [string, string]) => {\n return !this.outputSubscriptions[parentKey];\n });\n\n // Reverse bind via subscription\n newOutputs.forEach(([parentKey, childKey]: [string, string]) => {\n if (this._outputs.hasOwnProperty(parentKey)) {\n const target: EventEmitter<unknown> = this.targetComponentInstance[childKey];\n const outputs = this._outputs;\n\n // Angular folks, stop making this so difficult.\n const ctx = this.viewContainerRef['_hostLView'][8];\n const sub = target.subscribe(outputs[parentKey].bind(ctx)); // Subscription\n\n this.outputSubscriptions[parentKey] = sub;\n }\n });\n }\n\n /**\n * Load the \"Default\" component (404) screen normally.\n * This is shown when the component id isn't in the\n * registry or otherwise doesn't match\n *\n * This\n */\n private loadDefault() {\n if (this.config.notFoundComponent)\n this.targetContainer.createComponent(this.config.notFoundComponent);\n\n this.clearEmitter.emit();\n }\n\n /**\n * Load the \"Error\" component.\n * This is shown when we are able to resolve the component\n * in the registry, but have some issue boostrapping the\n * component into the viewContainer\n */\n private loadError() {\n if (this.config.errorComponent)\n this.targetContainer.createComponent(this.config.errorComponent);\n\n this.clearEmitter.emit();\n }\n}\n","<ng-container #content></ng-container>\n\n@if (renderSpinner) {\n <div\n class=\"ngx-lazy-loader-distractor\"\n [class.destroying]=\"isClearingLoader\"\n >\n @if (config.loaderDistractorComponent) {\n <ng-container\n [ngComponentOutlet]=\"config.loaderDistractorComponent\"\n />\n }\n @if (config.loaderDistractorTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"config.loaderDistractorTemplate\"\n [ngTemplateOutletContext]=\"{ '$implicit': inputs }\"\n />\n }\n </div>\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\nimport { LazyLoaderComponent } from '../components/lazy-loader/lazy-loader.component';\nimport { LazyLoaderService } from '../components/lazy-loader/lazy-loader.service';\n\nexport type DialogOptions = Partial<Omit<MatDialogConfig<any>, 'data'> & {\n /**\n * List of properties to be provided to @Input() injectors\n */\n inputs: { [key: string]: any; },\n /**\n * List of properties to be provided to @Input() injectors\n */\n outputs: { [key: string]: Function; },\n /**\n * Context in which to execute callbacks from the `outputs` property via\n * @Output() event Emitters\n */\n parent: any;\n}>;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DialogService {\n\n private dialogs: MatDialogRef<unknown, any>[] = [];\n\n constructor(\n private dialog: MatDialog,\n private lazyLoader: LazyLoaderService\n ) {\n }\n\n open(name: string);\n open(name: string, opts: DialogOptions);\n open(name: string, group: string);\n open(name: string, group: string, opts: DialogOptions);\n open(name: string, groupOrOptions?: any, opts: DialogOptions = {}): Promise<any> {\n const group = typeof groupOrOptions == \"string\" ? groupOrOptions : 'default';\n if (typeof groupOrOptions == 'object')\n opts = groupOrOptions;\n\n return new Promise((resolve, reject) => {\n\n const registration = this.lazyLoader.resolveRegistrationEntry(name, group);\n if (!registration)\n return reject(new Error(\"Cannot open dialog for \" + name + \". Could not find in registry.\"));\n\n\n const args: MatDialogConfig = {\n closeOnNavigation: true,\n restoreFocus: true,\n width: registration['width'],\n height: registration['height'],\n ...opts,\n data: {\n id: name,\n inputs: opts.inputs || {},\n outputs: opts.outputs || {},\n group: group\n },\n panelClass: [\n \"dialog-\" + name,\n ...(Array.isArray(opts.panelClass) ? opts.panelClass : [opts.panelClass])\n ]\n };\n\n let dialog = this.dialog.open(LazyLoaderComponent, args);\n\n dialog['idx'] = name;\n this.dialogs.push(dialog);\n\n dialog.afterClosed().subscribe(result => {\n console.info(\"Dialog closed \" + name, result);\n resolve(result);\n });\n });\n }\n\n // Close all dialogs matching the given name\n close(name: string) {\n const dialogs = this.dialogs.filter(d => d['idx'] == name);\n dialogs.forEach(dialog => dialog.close());\n }\n\n /**\n * Method to close _all_ dialogs.\n * Should be used sparingly.\n */\n clearDialog() {\n this.dialogs.forEach(dialog => dialog.close());\n }\n\n /**\n * Open a confirmation dialog. Will reject if a cancel occurs.\n * @param title title of the dialog\n * @param message main question that a user needs to confirm/deny\n * @returns\n */\n // confirmAction(title: string, message: string): Promise<void> {\n // return new Promise((res, rej) => {\n // const dialog = this.dialog.open(ConfirmationComponent, {\n // maxHeight: \"90vh\",\n // maxWidth: \"90vw\",\n // panelClass: [\"dialog-confirmation\"],\n // closeOnNavigation: true,\n // restoreFocus: true,\n // data: {title, message}\n // });\n\n // dialog.afterClosed().subscribe(result => {\n // result == true ? res() : rej();\n // });\n // });\n // }\n}\n","import { HttpClient, HttpContext, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { Injectable, isDevMode } from '@angular/core';\nimport { retry } from 'rxjs/operators';\nimport { of } from 'rxjs';\n\n// Total number of _retries_ if there is a 429 response code.\nconst retryCount = 2;\n\nexport type FetchOptions = {\n headers?: HttpHeaders | {\n [header: string]: string | string[];\n };\n context?: HttpContext;\n params?: HttpParams | {\n [param: string]: string | number | boolean | ReadonlyArray<string | number | boolean>;\n };\n body?: any,\n observe?: 'body' | 'events' | 'response';\n reportProgress?: boolean;\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\n withCredentials?: boolean;\n}\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class Fetch {\n constructor(\n private http: HttpClient\n ) { }\n\n // Public interface for making AJAX transactions\n public get<T>(url: string, options: FetchOptions = {}, returnError = false): Promise<T> {\n return this.request<T>(\"get\", url, options, returnError);\n }\n public put<T>(url: string, body: any, options: FetchOptions = {}, returnError = false): Promise<T> {\n options.body = (options.body && Object.keys(options.body).length > 0 ? options.body : body) || {};\n return this.request<T>(\"put\", url, options, returnError);\n }\n public post<T>(url: string, body: any, options: FetchOptions = {}, returnError = false): Promise<T> {\n options.body = (options.body && Object.keys(options.body).length > 0 ? options.body : body) || {};\n return this.request<T>(\"post\", url, options, returnError);\n }\n public patch<T>(url: string, body: any, options: FetchOptions = {}, returnError = false): Promise<T> {\n options.body = (options.body && Object.keys(options.body).length > 0 ? options.body : body) || {};\n return this.request<T>(\"patch\", url, options, returnError);\n }\n public delete<T>(url: string, options: FetchOptions = {}, returnError = false): Promise<T> {\n return this.request<T>(\"delete\", url, options, returnError);\n }\n\n // Internally, handle the observable as a promise.\n private request<T>(method: string, url: string, options: FetchOptions = {}, returnError = false): Promise<T> {\n options.reportProgress = true;\n\n // Allow support for different response types.\n // Generally we shouldn't need this to be anything other than JSON.\n options.responseType = options.responseType || \"json\";\n options.withCredentials = true;\n\n\n let abort = false;\n const p = new Promise((resolve, reject) => {\n const o = this.http.request(method, url, options)\n .pipe(retry({\n delay(error, retryCount) {\n // 429 and 502 are most common for overloaded\n // backends -- so we'll retry if we get these errors\n if (error.status == 429 || error.status == 502)\n return of({});\n\n if (error.status == 504 && isDevMode())\n alert(\"It looks like you can't reach your development backend anymore\");\n\n abort = true;\n\n reject(error);\n throw error;\n },\n count: retryCount\n }))\n .subscribe(data => {\n resolve(data as unknown as T);\n\n // provide 3ms slacktime before releasing observable.\n setTimeout(() => {\n o.unsubscribe();\n }, 3);\n });\n });\n\n return p as Promise<T>;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Fetch } from './fetch.service';\n\n\n/**\n * Service that listens for global keyboard events\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class FileService {\n\n constructor(private fetch: Fetch) { }\n\n chooseFile = (accept?: string, multiple = false, formMetadata = {}, ) => {\n return new Promise(r => {\n const inEl = document.createElement('input');\n inEl.setAttribute('type', 'file');\n if (multiple)\n inEl.setAttribute('multiple', '');\n if (accept)\n inEl.setAttribute('accept', accept);\n\n inEl.click();\n\n let formData = new FormData();\n\n inEl.addEventListener('change', () => {\n Object.keys(inEl.files).forEach(k => {\n const file: {\n lastModified: number,\n lastModifiedDate: Date,\n name: string,\n size: number,\n type: string;\n } = inEl.files[k];\n\n const name = file.name;\n formData.append(name, file as any);\n });\n formData.append(\"data\", JSON.stringify(formMetadata));\n inEl.remove();\n r(formData);\n });\n });\n };\n\n // uploadFile = (config: NgxFileManagerConfiguration, currentDirectory: string, targetPath?: string) => {\n // return new Promise(r => {\n // const inEl = document.createElement('input');\n // inEl.setAttribute('type', 'file');\n // inEl.setAttribute('multiple', '');\n // inEl.click();\n\n // let formData = new FormData();\n\n // inEl.addEventListener('change', () => {\n // Object.keys(inEl.files).forEach(k => {\n // const file: {\n // lastModified: number,\n // lastModifiedDate: Date,\n // name: string,\n // size: number,\n // type: string;\n // } = inEl.files[k];\n\n // const name = file.name;\n // formData.append(name, file as any);\n // });\n // formData.append(\"data\", JSON.stringify({\n // path: currentDirectory\n // }));\n\n // const url = config.apiSettings.uploadEntryUrlTemplate\n // ? config.apiSettings.uploadEntryUrlTemplate(targetPath ?? currentDirectory)\n // : config.apiSettings.uploadEntryUrl;\n\n // r(this.fetch.post(url, formData).then(res => {\n // inEl.remove();\n // return res;\n // }));\n // });\n // });\n // };\n}\n","import { Injectable, HostListener } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport type KeyCommand = {\n /**\n * The non-modifier key(s) that must be pressed for the event to fire.\n */\n key: string | string[],\n label?: string,\n\n ctrl?: boolean,\n alt?: boolean,\n shift?: boolean,\n super?: boolean,\n tab?: boolean,\n\n /**\n * Should the handler interrupt default event handling\n */\n interrupt?: boolean,\n}\n\n/**\n * Service that listens for global keyboard events\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class KeyboardService {\n\n private heldKeys: { [key: string]: boolean } = {};\n public keyCommands: {\n ctrl?: boolean,\n alt?: boolean,\n shift?: boolean,\n super?: boolean,\n interrupt?: boolean,\n label?: string,\n keys: string[],\n sub: Subject<KeyboardEvent>\n }[] = [];\n\n constructor() {\n window.addEventListener(\"keydown\", (evt) => this.onKeyDown(evt));\n window.addEventListener(\"keyup\", (evt) => this.onKeyUp(evt));\n }\n\n private onKeyDown(evt: KeyboardEvent) {\n // console.log(\"keydown\", evt.key)\n this.heldKeys[evt.key.toLowerCase()] = true;\n\n // Do a general filter where all of the modifiers must be matched if specified\n // Then check that the actual keys match what was specified\n let commands = this.keyCommands\n .filter(kc =>\n (kc.ctrl == undefined || kc.ctrl === evt.ctrlKey) &&\n (kc.alt == undefined || kc.alt === evt.altKey) &&\n (kc.shift == undefined || kc.shift === evt.shiftKey) &&\n (kc.super == undefined || kc.super === evt.metaKey) &&\n kc.keys.length == kc.keys.filter(k => this.heldKeys[k])?.length\n );\n\n if (evt.ctrlKey && commands.length > 0 || commands.find(c => c.interrupt)) {\n evt.stopPropagation();\n evt.preventDefault();\n }\n\n if (evt.key == \"Pause\")\n debugger;\n\n commands.forEach(kc => kc.sub.next(evt));\n\n /**\n * Prevent CTRL+P and other standard key events from being handled by the browser.\n * Allow specific combonations:\n * CTRL+W\n * CTRL+T\n * CTRL+F5\n */\n // if (evt.ctrlKey && !['w', 't', 'F5'].includes(evt.key)) {\n // evt.preventDefault();\n // }\n }\n\n private onKeyUp(evt: KeyboardEvent) {\n this.heldKeys[evt.key.toLowerCase()] = false;\n }\n\n private onKeyPress(evt: KeyboardEvent) {\n // this.heldKeys[evt.key] = false;\n }\n\n /**\n * Use this to subscribe to keyboard events throughout\n * the application. This is a passive listener and will\n * **NOT** interrupt the event chain.\n */\n public onKeyCommand(key: KeyCommand) {\n const sub = new Subject<KeyboardEvent>();\n let item = {\n ...key,\n keys: (Array.isArray(key.key) ? key.key : [key.key]),\n sub: sub\n }\n\n this.keyCommands.push(item);\n\n return {\n ...sub,\n subscribe: ((...args) => {\n const s = sub.subscribe(...args);\n return {\n ...s,\n unsubscribe: () => {\n s.unsubscribe();\n\n // Remove the keycommand from the list of listeners.\n const i = this.keyCommands.findIndex(c => c == item);\n this.keyCommands.splice(i, 1);\n }\n };\n }) as Subject<KeyboardEvent>['subscribe']\n };\n }\n\n /**\n * Return `true` if shift is currently pressed.\n */\n get isShiftPressed() {\n return !!this.heldKeys[\"shift\"];\n }\n /**\n * Return `true` if ctrl is currently pressed.\n */\n get isCtrlPressed() {\n return !!this.heldKeys[\"control\"];\n }\n /**\n * Return `true` if alt is currently pressed.\n */\n get isAltPressed() {\n return !!this.heldKeys[\"alt\"];\n }\n /**\n * Return `true` if super (mac/linux) or the windows key is currently pressed.\n */\n get isSuperPressed() {\n return !!this.heldKeys[\"super\"];\n }\n /**\n * Return `true` if tab is currently pressed.\n */\n get isTabPressed() {\n return !!this.heldKeys[\"tab\"];\n }\n\n @HostListener(\"window:blur\")\n @HostListener(\"window:resize\")\n clearKeys() {\n Object.keys(this.heldKeys).forEach(k => {\n this.heldKeys[k] = false;\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { LazyLoaderService } from '../components/lazy-loader/lazy-loader.service';\n\ntype NavigationArguments = {\n root: string,\n chunks: [string, ...string[]],\n args: {\n [key: string]: any;\n };\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NavigationService {\n public virtualPath$ = new BehaviorSubject<NavigationArguments>(null);\n\n constructor(\n private readonly lazyLoader: LazyLoaderService\n ) {\n // @ts-ignore\n window.onhashchange = () => this.loadRootPageFromUrl();\n this.loadRootPageFromUrl();\n }\n\n private loadRootPageFromUrl() {\n const hash = location.hash.split(\"?\")[0];\n const root = hash.replace(/^\\/?#\\//, '');\n\n // If the URL is imprecisely set, we restore it to the landing page\n if (!root || !root.trim())\n return this.loadRootPage(\"#/Landing\");\n\n this.loadRootPage(location.hash);\n }\n\n private loadRootPage(url: string, data: Object = {}) {\n\n const [path, query] = url.split('?');\n const hash = path.replace(/^\\/?#\\/?/, '');\n const chunks = hash.split('/');\n\n // Get query params and pass them as @Input arguments.\n const params = query?.split('&')\n .reduce((pars, par) => {\n const [key, value] = par.split(\"=\");\n const decoded = decodeURIComponent(value);\n pars[key] = decoded;\n return pars;\n }, {}) || {};\n\n\n console.info(`Root page navigate to '${hash}'`, { params, chunks });\n const root = hash.replace(/^\\/?#\\//, '');\n this.virtualPath$.next({\n root: hash,\n chunks: chunks as any,\n args: params\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\ntype AppTheme = \"light\" | \"dark\" | 'auto';\n\nconst verifyTheme = (theme) => {\n if (theme == 'dark' || theme == 'light')\n return theme;\n return 'auto';\n};\nconst initialTheme = verifyTheme(localStorage['fiq.theme']);\nconst initialDiscreteTheme = initialTheme != 'auto'\n ? initialTheme\n : window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light';\nconst getAutoTheme = () => {\n return window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light';\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThemeService {\n\n readonly themes = [\n { label: \"Dark\", id: 'dark' },\n { label: \"Light\", id: 'light' },\n { label: \"Automatic\", id: 'auto' },\n ];\n\n selectedTheme = initialTheme;\n\n /**\n * This theme will always only be 'dark' or 'light'.\n * For use with canvases and similar libraries.\n */\n theme = new BehaviorSubject<'dark' | 'light'>(initialDiscreteTheme);\n\n constructor() {\n\n this.theme.subscribe(t => {\n document.body.parentElement.classList.remove(\"theme-dark\");\n document.body.parentElement.classList.remove(\"theme-light\");\n document.body.parentElement.classList.add(\"theme-\" + t);\n });\n\n // The system theme changed (either due to timed color themes or the user changing the mode)\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener(\"change\", ev => {\n if (localStorage['fiq.theme'] == \"auto\")\n this.theme.next(getAutoTheme());\n });\n }\n\n public setTheme(t: AppTheme) {\n const theme = verifyTheme(t);\n localStorage['fiq.theme'] = theme;\n this.selectedTheme = theme;\n\n if (theme == 'auto') {\n this.theme.next(getAutoTheme());\n }\n else {\n this.theme.next(theme);\n }\n }\n}\n","import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\nimport { NgxLazyLoaderConfig } from './types';\nimport { LazyLoaderComponent } from './lazy-loader.component';\nimport { LazyLoaderService, NGX_LAZY_LOADER_CONFIG } from './lazy-loader.service';\n\n@NgModule({\n imports: [LazyLoaderComponent],\n exports: [LazyLoaderComponent]\n})\nexport class LazyLoaderModule {\n public static forRoot(@Optional() config: NgxLazyLoaderConfig): ModuleWithProviders<LazyLoaderModule> {\n return ({\n ngModule: LazyLoaderModule,\n providers: [\n {\n provide: NGX_LAZY_LOADER_CONFIG,\n useValue: config\n },\n LazyLoaderService\n ]\n });\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, ContentChild, ElementRef, EventEmitter, Input, NgZone, Output, TemplateRef } from '@angular/core';\n\ntype CSSUnitString = 'px' | '%' | 'em' | 'in' | '';\ntype CSSUnit = `${number}${CSSUnitString}` | `var(--${string})`;\ntype CSSString = CSSUnit |\n `calc(${CSSUnit|''}${''|' '}${'+'|'-'|'/'|'*'}${''|' '}${CSSUnit|''})`\n\n@Component({\n selector: 'ngx-parallax-card',\n templateUrl: './parallax-card.component.html',\n styleUrls: ['./parallax-card.component.scss'],\n imports: [\n NgTemplateOutlet\n ],\n host: {\n '[style.width]': 'width',\n '[style.height]': 'height',\n '[style.--card-bg-inset]': '-bgInset+\"px\"',\n '[style.--flip-animation-duration]': 'flipAnimationDuration+\"ms\"',\n '[class.flip]': 'showBackOfCard'\n },\n standalone: true\n})\nexport class ParallaxCardComponent {\n\n // Front of card\n @ContentChild('content', { read: TemplateRef }) content: TemplateRef<ElementRef>;\n @ContentChild('background', { read: TemplateRef }) background: TemplateRef<ElementRef>;\n\n // Back of card\n @ContentChild('backContent', { read: TemplateRef }) backContent: TemplateRef<ElementRef>;\n @ContentChild('backBackground', { read: TemplateRef }) backBackground: TemplateRef<ElementRef>;\n\n /**\n *\n */\n @Output() loaded = new EventEmitter();\n\n /**\n * Width of the card\n * @default `240px`\n */\n @Input() width: CSSString = '240px';\n /**\n * Height of the card\n * @default `320px`\n */\n @Input() height: CSSString = '320px';\n /**\n * Inset padding of the parallax\n * @default 80\n */\n @Input() bgInset: number = 80;\n /**\n * Duration for the flip animation in ms\n * @default 1200\n */\n @Input() flipAnimationDuration: number = 1200;\n\n renderCardFront = true;\n renderCardBack = true;\n showBackOfCard = false;\n\n private get wrapper() { return this.element.nativeElement as HTMLElement; }\n private get cardFront() { return this.wrapper.querySelector('.card.front') as HTMLElement; }\n private get cardBack() { return this.wrapper.querySelector('.card.backface') as HTMLElement; }\n private get backgroundElement() { return this.cardFront.querySelector('.card-bg') as HTMLDivElement; }\n private get backfaceBackgroundElement() { return this.cardBack.querySelector('.card-bg') as HTMLDivElement; }\n\n private pointerX = 0;\n private pointerY = 0;\n private pointerLeave = 0;\n\n constructor(\n private readonly element: ElementRef,\n private readonly ngZone: NgZone\n ) { }\n\n ngAfterViewInit() {\n const el = this.wrapper;\n\n this.ngZone.runOutsideAngular(() => {\n // Directly attach events to the wrapper\n el.onpointermove = (e) => this.onPointerMove(e);\n el.onpointerenter = () => this.onPointerEnter();\n el.onpointerleave = () => this.onPointerLeave();\n })\n el.onclick = () => this.onClick();\n\n this.loaded.emit();\n }\n\n onPointerMove(e: PointerEvent) {\n const { width, height, left, top } = this.wrapper.getBoundingClientRect();\n this.pointerX = e.pageX - left - (width / 2);\n this.pointerY = e.pageY - top - (height / 2);\n\n this.render();\n }\n\n onPointerEnter() {\n clearTimeout(this.pointerLeave);\n }\n\n onPointerLeave() {\n this.pointerLeave = setTimeout(() => {\n this.pointerX = 0;\n this.pointerY = 0;\n this.render();\n }, 600) as any;\n }\n\n // TODO: This can get intercepted in some states\n onClick() {\n this.showBackOfCard = !this.showBackOfCard;\n this.render()\n }\n\n render = () => {\n const { width, height } = this.wrapper.getBoundingClientRect();\n const mousePX = this.pointerX / width;\n const mousePY = this.pointerY / height;\n\n // Rotation factors\n const rX = mousePX * this.bgInset / 1.75;\n const rY = mousePY * -this.bgInset / 1.75;\n\n // Translation factors\n const tX = mousePX * -this.bgInset * 2;\n const tY = mousePY * -this.bgInset * 2;\n\n if (this.renderCardFront) {\n this.backgroundElement.style.transform = `translateX(${tX}px) translateY(${tY}px)`;\n }\n if (this.renderCardBack) {\n this.backfaceBackgroundElement.style.transform = `translateX(${tX}px) translateY(${tY}px)`;\n }\n\n if (this.showBackOfCard) {\n this.cardFront.style.transform = `rotateY(180deg) rotateX(${-rY}deg)`;\n this.cardBack.style.transform = `rotateY(${-rX}deg) rotateX(${-rY}deg)`;\n }\n else {\n this.cardFront.style.transform = `rotateY(${rX}deg) rotateX(${rY}deg)`;\n this.cardBack.style.transform = `rotateY(180deg) rotateX(${-rY}deg)`;\n }\n }\n}\n","@if (renderCardBack) {\n <div class=\"card backface\">\n <div class=\"card-bg\" style=\"transform: translateX(0) translateY(0)\">\n <ng-template [ngTemplateOutlet]=\"backBackground\" />\n </div>\n <div class=\"card-content\">\n <ng-template [ngTemplateOutlet]=\"backContent\" />\n </div>\n </div>\n}\n\n@if (renderCardFront) {\n <div class=\"card front\">\n <div class=\"card-bg\" style=\"transform: translateX(0) translateY(0)\">\n <ng-template [ngTemplateOutlet]=\"background\" />\n </div>\n <div class=\"card-content\">\n @if (content) {\n <ng-template [ngTemplateOutlet]=\"content\"/>\n }\n @else {\n <ng-content/>\n }\n </div>\n </div>\n}\n\n\n","import { InjectionToken } from '@angular/core';\n\nexport const NGX_WEB_COMPONENTS_CONFIG = new InjectionToken<NgxWebComponentsConfig>('webcomponents-config');\n\nexport type NgxWebComponentsConfig = Partial<{\n /**\n * The path that assets will ultimately be served from.\n * Default `/assets/`\n */\n assetPath: string;\n}>;\n\n\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, HostListener, Inject, Input, Optional, TemplateRef, Type, ViewContainerRef } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { DomSanitizer, createApplication } from '@angular/platform-browser';\n\nimport { ComponentPortal, PortalModule } from '@angular/cdk/portal';\nimport { firstValueFrom } from 'rxjs';\nimport { MenuItem, MenuOptions } from './types';\n\ndeclare const Zone: any;\nconst zone = new Zone(Zone.current, { name: \"@dotglitch_menu\", properties: {} });\n\nexport const calcMenuItemBounds = async (menuItems: MenuItem[], dataObj: any) => {\n const data = {\n data: dataObj,\n items: menuItems,\n config: {},\n selfCords: { left: \"0px\", top: \"0px\" },\n ownerCords: { x: 0, y: 0, width: 0, height: 0 },\n id: null\n };\n\n return calcComponentBounds(MenuComponent, data);\n};\n\nconst calcComponentBounds = async (component: Type<any>, data: any) => {\n return new Promise<DOMRect>((res, rej) => {\n zone.run(async () => {\n const app = await createApplication({\n providers: [\n { provide: MAT_DIALOG_DATA, useValue: data }\n ]\n });\n\n const del = document.createElement(\"div\");\n del.classList.add(\"ngx-menu\");\n del.style.position = \"absolute\";\n del.style.left = '-1000vw';\n document.body.append(del);\n\n const base = app.bootstrap(component, del);\n const { instance } = base;\n\n await firstValueFrom(app.isStable);\n\n const el: HTMLElement = instance.viewContainer?.element?.nativeElement;\n\n const rect = el.getBoundingClientRect();\n app.destroy();\n del.remove();\n\n res(rect);\n });\n });\n};\n\nconst $data = Symbol(\"data\");\nconst $hover = Symbol(\"hover\");\n\n@Component({\n selector: 'ngx-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n imports: [\n NgTemplateOutlet,\n PortalModule,\n MatIconModule,\n MatProgressSpinnerModule\n ],\n standalone: true,\n host: {\n \"[attr.tx]\": \"targetBounds?.x\",\n \"[attr.ty]\": \"targetBounds?.y\",\n \"[attr.th]\": \"targetBounds?.height\",\n \"[attr.tw]\": \"targetBounds?.width\",\n }\n})\nexport class MenuComponent {\n\n @Input() public data: any;\n @Input() public items: MenuItem[];\n @Input() public config: MenuOptions;\n @Input() public id: string;\n @Input() public overlayOverlap = 32;\n @Input() public hoverDelay = 400;\n @Input() public showDebugOverlay = false;\n @Input() public targetBounds: DOMRect;\n\n @Input() ownerCords: DOMRect;\n @Input() selfCords;\n @Input() parentItem;\n @Input() parentContext;\n @Input() isLockedOpen = false;\n\n public hasBootstrapped = false;\n public pointerIsOnVoid = false;\n public pointerHasBeenOverMask = false;\n parentIsNgxMenu = false;\n\n coverRectCords = {\n top: 0,\n left: 0,\n height: 0,\n width: 0\n };\n\n // Check if there are any slashes or dots -- that will clearly exclude it from being a mat icon\n public readonly matIconRx = /[\\/\\.]/i;\n showIconColumn = true;\n showShortcutColumn = true;\n\n template: TemplateRef<any>;\n templateType: \"template\" | \"component\";\n componentPortal: ComponentPortal<any>;\n private childDialogs: MatDialogRef<any>[] = [];\n\n constructor(\n public viewContainer: ViewContainerRef,\n public sanitizer: DomSanitizer,\n @Optional() @Inject(MAT_DIALOG_DATA) private _data: any,\n @Optional() public dialog: MatDialog, // optional only for the purpose of estimating dimensions\n @Optional() public dialogRef: MatDialogRef<any>\n ) {\n // Defaults are set before @Input() hooks evaluate\n this.dialog = this.dialog || this._data?.dialog;\n this.data = this._data?.data;\n this.ownerCords = this._data?.ownerCords;\n this.selfCords = this._data?.selfCords;\n this.items = this._data?.items;\n this.config = this._data?.config;\n this.id = this._data?.id;\n this.parentItem = this._data?.parentItem;\n this.parentContext = this._data?.parentContext;\n this.isLockedOpen = this.isLockedOpen || this._data?.config?.['_isLockedOpen'];\n this.parentIsNgxMenu = this._data?.parentIsNgxMenu;\n this.targetBounds = this._data?.targetBounds;\n\n this.template = this._data?.template;\n\n this.templateType = this.template instanceof TemplateRef ? \"template\" : \"component\";\n\n if (this.templateType == \"component\") {\n this.componentPortal = new ComponentPortal(this.template as any);\n }\n }\n\n ngOnInit() {\n\n this.items?.forEach(i => {\n if (typeof i == \"string\") return;\n\n // Set defaults\n i['_disabled'] = false;\n i['_visible'] = true;\n i['_context'] = (typeof i.context == \"function\")\n ? i.context(this.data)\n : i.context;\n\n if (i.label)\n try { i['_formattedLabel'] = this.formatLabel(i.label); } catch (e) { console.warn(e); }\n\n if (typeof i.isDisabled == \"function\")\n try { i['_disabled'] = i.isDisabled(this.data || {}, i['_context']); } catch (e) { console.warn(e); }\n\n if (typeof i.isVisible == \"function\")\n try { i['_visible'] = i.isVisible(this.data || {}, i['_context']); } catch (e) { console.warn(e); }\n\n if (typeof i.linkTemplate == \"function\")\n try { i['_link'] = i.linkTemplate(this.data || {}, i['_context']); } catch (e) { console.warn(e); }\n\n if (typeof i.iconTemplate == \"function\")\n try { i['_icon'] = i.iconTemplate(this.data || {}, i['_context']); } catch (e) { console.warn(e); }\n });\n\n // Show the icon column if there are any items with an icon\n this.showIconColumn = !!this.items?.find(i =>\n typeof i == \"object\" &&\n typeof i['icon'] == \"string\" &&\n i['icon'].length > 2\n );\n\n this.showShortcutColumn = !!this.items?.find(i =>\n typeof i == \"object\" &&\n typeof i['shortcut'] == \"string\" &&\n i['shortcut'].length > 2\n );\n\n if (this.ownerCords) {\n const selfY = parseInt(this.selfCords.top?.replace('px', '') || '0');\n const selfX = parseInt(this.selfCords.left?.replace('px', '') || '0');\n\n this.coverRectCords = {\n top: this.ownerCords.y - selfY - (this.overlayOverlap / 2),\n left: this.ownerCords.x - selfX - (this.overlayOverlap / 2),\n height: this.ownerCords.height + this.overlayOverlap,\n width: this.ownerCords.width + this.overlayOverlap\n };\n }\n\n if (this.config?.stayOpen)\n this.isLockedOpen = true;\n\n setTimeout(() => {\n this.hasBootstrapped = true;\n }, 200);\n }\n\n ngAfterViewInit() {\n const el = this.viewContainer.element.nativeElement as HTMLElement;\n el.addEventListener(\"keydown\", evt => {\n this.isLockedOpen = true;\n });\n el.addEventListener(\"pointerdown\", evt => {\n this.isLockedOpen = true;\n });\n el.addEventListener(\"touch\", evt => {\n this.isLockedOpen = true;\n });\n }\n\n ngOnDestroy() {\n //\n this.childDialogs.forEach(d => d.close({ [$data]: true }));\n }\n\n /**\n *\n */\n async onMenuItemClick(item: MenuItem, row: HTMLTableRowElement, keepOpen = false) {\n if (typeof item == 'string') return null;\n if (item.separator) return null;\n\n const context = await item['_context'];\n\n // If cache is enabled, only load if we don't have any children.\n const forceLoad = (item.cacheResolvedChildren ? !item.children : true);\n\n if (item.childrenResolver && forceLoad) {\n item['_isResolving'] = true;\n item['_children'] = await item.childrenResolver(this.data, context);\n item['_isResolving'] = false;\n }\n else if (typeof item.children == \"function\" && forceLoad) {\n item['_isResolving'] = true;\n item['_children'] = await item.children(this.data, context);\n item['_isResolving'] = false;\n }\n else {\n item['_children'] = item.children;\n }\n\n if (item['_children'] || item.childTemplate)\n row['_open'] = true;\n\n if (!item.childTemplate && !item.children) {\n if (typeof item.action == \"function\") {\n const res = await item.action(this.data, context);\n this.close(res === undefined ? true : res);\n return res;\n }\n\n // If no action, this is simply a text item.\n return null;\n }\n\n // Need X pos, Y pos, width and height\n const bounds = row.getBoundingClientRect();\n\n const cords = {\n top: null,\n left: null,\n bottom: null,\n // right: null\n };\n\n // Set position coordinates\n const targetBounds = await (item.childTemplate\n ? calcComponentBounds(MenuComponent, { template: item.childTemplate })\n : calcMenuItemBounds(item['_children'], this.data));\n const { width, height } = targetBounds;\n\n if (bounds.y + height > window.innerHeight)\n cords.bottom = \"0px\";\n if (bounds.x + bounds.width + width > window.innerWidth)\n cords.left = ((bounds.x - width)) + \"px\";\n\n if (!cords.bottom) cords.top = bounds.y + \"px\";\n if (!cords.left) cords.left = bounds.x + bounds.width + \"px\";\n\n\n const config = structuredClone(this.config);\n config['_isLockedOpen'] = keepOpen;\n\n // Do not project in the top left corner -- this scenario\n // happens when a dialog opens as the parent is killed.\n if (cords.left == '0px' && cords.top == '0px')\n return;\n\n const dialogRef = this.dialog.open(MenuComponent, {\n position: cords,\n panelClass: [\"ngx-menu\"].concat(this.config?.customClass || []),\n backdropClass: \"ngx-menu-backdrop\",\n hasBackdrop: false,\n data: {\n data: this.data,\n ownerCords: row.getBoundingClientRect(),\n selfCords: cords,\n parentItem: item,\n parentContext: context,\n items: item['_children'],\n template: item.childTemplate,\n config: config,\n parentIsNgxMenu: true,\n targetBounds\n }\n });\n\n let _s = dialogRef\n .afterClosed()\n .subscribe(async (result) => {\n // Clicked \"void\" on a submenu\n if (typeof result == \"object\" && result[$data] == true) {\n this.close(result);\n }\n // Went back to parent menu -- do not close (same as result == null)\n else if (typeof result == \"object\" && result[$data] == false) {\n\n }\n // Got some other result value\n else if (result != null) {\n // Perform action callback\n if (typeof item.action == 'function') {\n this.close(await item.action(result, context));\n }\n // Just close.\n else {\n this.close();\n }\n }\n\n row['_open'] = false;\n\n this.childDialogs.splice(this.childDialogs.indexOf(dialogRef), 1);\n\n _s.unsubscribe();\n });\n\n this.childDialogs.push(dialogRef);\n return dialogRef;\n }\n\n /**\n *\n * @param label\n * @returns\n */\n formatLabel(label: string): string {\n return label.replace(/_([a-z0-9])_/i, (match, group) => `<u>${group}</u>`);\n }\n\n /**\n * Close the context menu under these circumstances\n */\n // @HostListener(\"window:resize\", ['event'])\n // @HostListener(\"window:blur\", ['event'])\n close(result?) {\n this.childDialogs.forEach(d => d.close());\n this.dialogRef?.close(result);\n }\n\n closeOnVoid(force = false) {\n if (!this.isLockedOpen || force) {\n this.close({ [$data]: force });\n }\n }\n\n startHoverTimer(item, row) {\n\n // Invert check to make the logic simpler\n // TL;DR: if (any) of these are true, we will do the hover action\n if (!(\n Array.isArray(item.children) && item.children.length > 0 ||\n typeof item.children == \"function\" ||\n item.childTemplate ||\n item.childrenResolver\n ))\n return;\n\n item[$hover] = setTimeout(() => {\n delete item[$hover];\n\n if (!this.pointerIsOnVoid) {\n this.childDialogs.forEach(cd => cd.close());\n row['_open'] = true;\n this.onMenuItemClick(item, row);\n }\n }, this.hoverDelay);\n }\n\n stopHoverTimer(item) {\n item[$hover] && clearTimeout(item[$hover]);\n delete item[$hover];\n }\n\n private closeTimer: number;\n startCloseTimer() {\n this.closeTimer = setTimeout(() => {\n this.closeOnVoid();\n }, 500) as any;\n }\n stopCloseTimer() {\n clearTimeout(this.closeTimer);\n }\n\n /**\n * Check if the dialog is clipping offscreen\n * if so, move it back into view.\n */\n @HostListener(\"window:resize\")\n private onResize() {\n const el = this.viewContainer?.element?.nativeElement as HTMLElement;\n if (!el) return;\n\n const { width, height, x, y } = el.getBoundingClientRect();\n\n const target = document.querySelector(\".ngx-menu\") as HTMLElement;\n if (!target) return;\n\n // Move back into view if we're clipping outside of the bottom\n if (y + height > window.innerHeight) {\n const newTop = (window.innerHeight - (height + (this.config.edgePadding || 12))) + \"px\";\n target.style['margin-top'] = newTop;\n }\n\n // Move back into view if we're clipping off the right\n if (x + width > window.innerWidth) {\n const newLeft = (window.innerWidth - (width + (this.config.edgePadding || 12))) + \"px\";\n target.style['margin-left'] = newLeft;\n }\n }\n\n // If the void element gets stuck open, make wheel events pass through.\n onWheel(evt: WheelEvent) {\n const el = this.viewContainer.element.nativeElement as HTMLElement;\n el.style.display = \"none\";\n const target = document.elementFromPoint(evt.clientX, evt.clientY);\n el.style.display = \"block\";\n\n target.scroll({\n top: evt.deltaY + target.scrollTop,\n left: evt.deltaX + target.scrollLeft,\n behavior: \"smooth\"\n });\n }\n}\n","<!-- Mouse event blocker for pointer leave -->\n@if (coverRectCords && !parentIsNgxMenu) {\n <div\n class=\"owner-mask\"\n [style.top]=\"coverRectCords.top + 'px'\"\n [style.left]=\"coverRectCords.left + 'px'\"\n [style.height]=\"coverRectCords.height + 'px'\"\n [style.width]=\"coverRectCords.width + 'px'\"\n [style.background]=\"showDebugOverlay ? '#f004' : '#0000'\"\n style=\"z-index: -1\"\n (pointerenter)=\"pointerHasBeenOverMask=true\"\n (pointerleave)=\"stopCloseTimer()\"\n (pointermove)=\"pointerHasBeenOverMask=true\"\n (click)=\"isLockedOpen = true\"\n ></div>\n}\n\n@if (!parentIsNgxMenu) {\n <div class=\"void\"\n [style.background]=\"showDebugOverlay ? '#00f4' : '#0000'\"\n (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && !isLockedOpen && startCloseTimer()\"\n (pointerleave)=\"pointerIsOnVoid = false\"\n (pointerdown)=\"hasBootstrapped && closeOnVoid(true)\"\n (pointermove)=\"hasBootstrapped && !isLockedOpen && startCloseTimer()\"\n (click)=\"closeOnVoid(true)\"\n (wheel)=\"onWheel($event)\"\n ></div>\n}\n\n@if (!template) {\n <table (pointerenter)=\"stopCloseTimer()\">\n <tbody>\n @for (item of items; track item) {\n <!-- A row with a click action -->\n @if (item != 'separator' && item.separator != true && item['_visible']) {\n <tr #row\n [class.disabled]=\"item['_disabled']\"\n (click)=\"!item['_disabled'] && onMenuItemClick(item, row, true)\"\n [class.hover]=\"row['hover']\"\n [class.open]=\"row['_open']\"\n (pointerenter)=\"row['hover'] = true; startHoverTimer(item, row)\"\n (pointerleave)=\"row['hover'] = false; stopHoverTimer(item)\"\n >\n\n @if (showIconColumn) {\n <td class=\"icon\">\n @if (matIconRx.test(item['_icon'] ?? item.icon)) {\n <img [src]=\"item['_icon'] ?? item.icon\"/>\n }\n @else {\n <mat-icon\n [fontIcon]=\"item['_icon'] ?? item.icon\"\n [style.color]=\"item.iconColor\"\n />\n }\n </td>\n }\n\n <!-- 'Normal' action based item -->\n <td class=\"label\"\n [style.padding-left]=\"showIconColumn ? 0 : '16px'\"\n >\n <a\n #anchor\n [attr.target]=\"item.linkTarget\"\n [attr.href]=\"(item['_link'] || item.link) ? sanitizer.bypassSecurityTrustUrl(item['_link'] || item.link) : undefined\"\n >\n @if ($any(item.labelTemplate)?.prototype) {\n <ng-container\n [ngTemplateOutlet]=\"$any(item).labelTemplate\"\n [ngTemplateOutletContext]=\"{\n '$implicit': data,\n 'dialog': dialogRef,\n 'context': item['_context'],\n 'item': item,\n 'element': anchor,\n 'menu': this\n }\"\n />\n }\n @else {\n @if ($any(item)?.labelTemplate) {\n {{$any(item)?.labelTemplate(data || {})}}\n }\n @else {\n <div [innerHTML]=\"item['_formattedLabel']\"></div>\n }\n }\n </a>\n </td>\n\n @if (showShortcutColumn) {\n <td class=\"shortcut\">\n {{item.shortcutLabel}}\n </td>\n }\n\n <td style=\"min-width: 16px\">\n @if ((\n (item['children']?.length > 0) ||\n (item['_children']?.length > 0) ||\n item.childTemplate ||\n item.children?.['call'] ||\n item.childrenResolver\n ) &&\n !item['_isResolving']\n ) {\n <mat-icon\n style=\"transform: translateY(2px)\"\n >\n chevron_right\n </mat-icon>\n }\n\n @if (item['_isResolving']) {\n <mat-progress-spinner\n mode=\"indeterminate\"\n [diameter]=\"20\"\n style=\"margin-right: 4px\"\n />\n }\n </td>\n </tr>\n }\n @else if (item != 'separator' && item.separator == true) {\n <!-- Separator with label -->\n <tr\n class=\"disabled separator\"\n >\n <td\n class=\"center\"\n [attr.colspan]=\"2 + (showIconColumn ? 1 : 0) + (showShortcutColumn ? 1 : 0)\"\n >\n <span class=\"hr\">\n {{item['label'] || ''}}\n </span>\n </td>\n </tr>\n }\n @else if (item == 'separator') {\n <!-- Separator -->\n <tr\n class=\"disabled separator\"\n >\n <td\n [attr.colspan]=\"2 + (showIconColumn ? 1 : 0) + (showShortcutColumn ? 1 : 0)\"\n >\n <hr/>\n </td>\n </tr>\n }\n }\n </tbody>\n </table>\n}\n@else {\n @if (templateType == 'template') {\n <div style=\"display: contents;\" (pointerenter)=\"stopCloseTimer()\">\n <ng-container\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{\n '$implicit': data,\n 'dialog': dialogRef,\n 'context': parentContext,\n 'item': parentItem,\n 'element': this.viewContainer?.element?.nativeElement,\n 'menu': this\n }\"\n />\n </div>\n }\n @else {\n <div style=\"display: contents;\" (pointerenter)=\"stopCloseTimer()\">\n <ng-container\n [cdkPortalOutlet]=\"componentPortal\"\n />\n </div>\n }\n}\n\n@if (showDebugOverlay) {\n <div>\n <div>hbs: {{hasBootstrapped}}</div>\n <div>pov: {{pointerIsOnVoid}}</div>\n <div>ilo: {{isLockedOpen}}</div>\n <div>hbom: {{pointerHasBeenOverMask}}</div>\n\n <div>type: {{templateType}}</div>\n </div>\n}\n","/**\n * This utils file exists outside of the strict angular DI zone\n * This enables opening popups without requiring absolute DI bindings.\n */\n\nexport const getPosition = (el: HTMLElement | PointerEvent, config: any = {}, bounds: DOMRect) => {\n // Bounds of the popup owner\n const src: DOMRect = !!el['nodeName']\n ? (el as HTMLElement).getBoundingClientRect()\n : {\n // It's a pointer event, so we'll take the X and Y from the pointer.\n x: el['clientX'],\n y: el['clientY'],\n // Set a default tiny size, so we don't divide by zero.\n width: 0.0001,\n height: 0.0001\n } as DOMRect;\n\n // Popup bounds\n const { width, height } = bounds;\n\n const winh = window.innerHeight;\n const winw = window.innerWidth;\n\n const cords = {\n top: null,\n left: null\n };\n\n if (config?.position == \"left\" || config?.position == \"right\" || !config?.position) {\n switch (config?.alignment) {\n\n case \"end\": {\n // vertically bind to bottom\n cords.top = src.y + src.height - height;\n break;\n }\n case \"afterend\": {\n // vertically bind below bottom\n cords.top = src.y + src.height;\n break;\n }\n case \"beforestart\": {\n // vertically bind above top\n cords.top = src.y - height;\n break;\n }\n case \"start\": {\n // vertically bind to top\n cords.top = src.y;\n break;\n }\n case \"center\":\n default: {\n // vertically center\n cords.top = (src.y + (src.height / 2)) - (height / 2);\n break;\n }\n }\n\n // Apply bounds to prevent the dialog from being cut-off screen\n // Lower bound\n cords.top = Math.max(config?.edgePadding || 0, cords.top);\n // Upper bound\n cords.top = Math.min(winh - height, cords.top);\n\n if (config?.position == \"left\") {\n cords.left = src.x - (width + (config?.arrowSize || 0) + (config?.arrowPadding || 0));\n }\n if (config?.position == \"right\" || !config?.position) {\n cords.left = src.x + (src.width + (config?.arrowSize || 0) + (config?.arrowPadding || 0));\n }\n\n // Lower bound\n cords.left = Math.max(config?.edgePadding || 0, cords.left);\n // Upper bound\n cords.left = Math.min(winw - width, cords.left);\n }\n else if (config?.position == \"top\" || config?.position == \"bottom\") {\n switch (config?.alignment) {\n case \"end\": {\n // vertically bind to right\n cords.left = src.x + src.width - width;\n break;\n }\n case \"afterend\": {\n // vertically bind past right\n cords.left = src.x + src.width;\n break;\n }\n case \"beforestart\": {\n // vertically bind before left\n cords.left = src.x - width;\n break;\n }\n case \"start\": {\n // vertically bind to left\n cords.left = src.x;\n break;\n }\n case \"center\":\n default: {\n // vertically center\n cords.left = (src.x + (src.width / 2)) - (width / 2);\n break;\n }\n }\n\n // Apply bounds to prevent the dialog from being cut-off screen\n // Lower bound\n cords.left = Math.max(config?.edgePadding || 0, cords.left);\n // Upper bound\n cords.left = Math.min(winw - width, cords.left);\n\n\n if (config?.position == \"top\") {\n cords.top = src.y - (height + (config?.arrowSize || 0) + (config?.arrowPadding || 0));\n }\n if (config?.position == \"bottom\") {\n cords.top = src.y + (src.height + (config?.arrowSize || 0) + (config?.arrowPadding || 0));\n }\n\n // Lower bound\n cords.top = Math.max(config?.edgePadding || 0, cords.top);\n // Upper bound\n cords.top = Math.min(winh - height, cords.top);\n }\n\n // Assign unit\n cords.top = cords.top + 'px';\n cords.left = cords.left + 'px';\n\n return cords;\n}\n","import { Directive, HostListener, Input, ViewContainerRef } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { firstValueFrom } from 'rxjs';\nimport { ulid } from 'ulidx';\nimport { getPosition } from '../../directives/utils';\nimport { MenuComponent, calcMenuItemBounds } from './menu.component';\nimport { MenuItem, MenuOptions } from './types';\n\n@Directive({\n selector: '[ngx-contextmenu],[ngx-menu]',\n providers: [\n MatDialog\n ],\n standalone: true\n})\nexport class MenuDirective {\n\n /**\n * The data representing the item the menu was opened for.\n */\n @Input(\"ngx-menu-context\") data: any;\n\n /**\n * The items that will be bound to the context menu.\n */\n @Input(\"ngx-contextmenu\") ctxMenuItems: MenuItem[];\n\n /**\n * The items that will be bound to the menu that pops\n * up when the user clicks the element.\n */\n @Input(\"ngx-menu\") menuItems: MenuItem[];\n\n /**\n * Configuration for opening the app menu\n */\n @Input(\"ngx-menu-config\") config: MenuOptions = {};\n\n private triggers: string[] = [];\n\n constructor(\n private dialog: MatDialog,\n private viewContainer: ViewContainerRef\n ) { }\n\n ngOnInit() {\n this.ngOnChanges();\n }\n\n ngOnChanges() {\n\n if (this.config.trigger) {\n this.triggers = Array.isArray(this.config.trigger) ? this.config.trigger : [this.config.trigger];\n }\n }\n\n ngAfterViewInit() {\n // const el = this.viewContainer.element.nativeElement as HTMLElement;\n\n // // Automatically attach context menu items to\n // // the contextmenu event\n // if (this.ctxMenuItems) {\n // el.addEventListener('contextmenu', (e) => {\n // e.preventDefault();\n // this.openMenu(e as any, this.ctxMenuItems, true);\n // });\n // }\n\n // if (this.menuItems?.length > 0) {\n // if (!this.config?.trigger) {\n // el.addEventListener('click', (e) => {\n // this.openMenu(e as any, this.menuItems, true);\n // });\n // }\n // else {\n\n // triggers.forEach(t => {\n // if ([\"contextmenu\", \"click\"].includes(t)) {\n // el.addEventListener(t, (e) => {\n // e.preventDefault();\n // this.openMenu(e as any, this.ctxMenuItems, true);\n // });\n // }\n // else {\n // el.addEventListener(t, this.openMenu.bind(this));\n // }\n // });\n // }\n // }\n }\n\n async openMenu(evt: PointerEvent, items = this.menuItems, keepOpen = false) {\n const el = this.viewContainer.element.nativeElement as HTMLElement;\n\n el.classList.add(\"ngx-menu-open\");\n\n const isCtxEvent = evt.button == 2;\n\n const config = structuredClone(this.config);\n config['_isLockedOpen'] = keepOpen;\n\n return openMenu(\n this.dialog,\n items,\n this.data,\n evt,\n this.config,\n isCtxEvent ? null : el\n )\n .then((...res) => {\n el.classList.remove(\"ngx-menu-open\");\n return res;\n })\n .catch((ex) => {\n el.classList.remove(\"ngx-menu-open\");\n throw ex;\n });\n }\n\n @HostListener(\"contextmenu\", ['$event'])\n onCtxMenu(e) {\n if (this.ctxMenuItems || this.triggers.includes(\"contextmenu\")) {\n e.preventDefault();\n this.openMenu(e as any, this.ctxMenuItems, true);\n }\n }\n\n @HostListener(\"click\", ['$event'])\n onClick(e) {\n if (\n this.menuItems &&\n (\n this.triggers.length == 0 ||\n this.triggers.includes(\"click\")\n )\n ) {\n e.preventDefault();\n this.openMenu(e as any, this.menuItems, true);\n }\n }\n\n @HostListener(\"dblclick\", ['$event'])\n onDblClick(e) {\n if (\n this.menuItems && this.triggers.length == 0 ||\n this.menuItems && this.triggers.includes(\"dblclick\")\n ) {\n e.preventDefault();\n this.openMenu(e as any, this.menuItems, true);\n }\n }\n}\n\n// Helper to open the menu without using the directive.\nexport const openMenu = async (\n dialog: MatDialog,\n menuItems: MenuItem[],\n data: any,\n evt: PointerEvent,\n config: MenuOptions = {},\n el?: HTMLElement\n) => {\n // console.log({ dialog, menuItems, data, evt, config, el });\n\n evt.preventDefault();\n evt.stopPropagation();\n\n // Apply defaults.\n if (!config.alignment)\n config.alignment = \"start\";\n\n const initialBounds = await calcMenuItemBounds(menuItems, data);\n const cords = getPosition(el || evt, config, initialBounds);\n const specificId = ulid();\n\n return firstValueFrom(\n dialog.open(MenuComponent, {\n data: {\n dialog,\n data: data,\n ownerCords: el?.getBoundingClientRect(),\n selfCords: cords,\n items: menuItems,\n config: config,\n id: specificId,\n targetBounds: initialBounds\n },\n panelClass: [\"ngx-menu\", 'ngx-' + specificId].concat(config?.customClass || []),\n position: cords,\n backdropClass: \"ngx-menu-backdrop\"\n })\n .afterClosed());\n};\n",";/*\n * Public API Surface of package\n */\n\n/**\n ** Types\n */\nexport * from './types/popup';\n\n/**\n ** Directives\n */\nexport * from './directives/image-cache.directive';\n\n/**\n ** Pipes\n */\nexport * from './pipes/html-bypass.pipe';\nexport * from './pipes/resource-bypass.pipe';\nexport * from './pipes/script-bypass.pipe';\nexport * from './pipes/style-bypass.pipe';\nexport * from './pipes/url-bypass.pipe';\n\n/**\n** Services\n*/\nexport * from './services/dependency.service';\nexport * from './services/dialog.service';\nexport * from './services/fetch.service';\nexport * from './services/file.service';\nexport * from './services/keyboard.service';\nexport * from './services/navigation.service';\nexport * from './services/theme.service';\n\n/**\n** Lazy loader component & service\n*/\nexport * from './components/lazy-loader/lazy-loader.component';\nexport * from './components/lazy-loader/lazy-loader.module';\nexport * from './components/lazy-loader/lazy-loader.service';\nexport * from './components/lazy-loader/types';\n\n/**\n ** Components\n */\nexport * from './components/parallax-card/parallax-card.component';\nexport * from './components/types';\n\n/**\n ** Menu\n */\nexport * from './components/menu/menu.component';\nexport * from './components/menu/menu.directive';\nexport * from './components/menu/types';\n\nexport * from './directives/utils';\nexport * from './utils';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.LazyLoaderService","i1.Fetch","i1.LazyLoaderService","i2"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAGA,MAAM,OAAO,GAAG,cAAc,CAAC;AAC3B,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,SAAS,EAAE,aAAa;AACxB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,OAAO,EAAE;AACZ,CAAA,CAAC;AAGF,MAAM,UAAU,GAEZ,EAAE;AAEN,MAAM,UAAU,GAAG,CAAA,2hBAAA,CAA6hB;AAChjB,MAAM,SAAS,GAAG,CAAA,s0BAAA,CAAw0B;MAe70B,sBAAsB,GAAG,IAAI,cAAc,CAAsB,wBAAwB;MA2BzF,sBAAsB,CAAA;IAO/B,IAAY,EAAE,GAAA,EAAK,OAAO,IAAI,CAAC,OAAO,CAAC,aAAiC,CAAA;IAExE,WAAA,CACqB,OAAmB,EACyB,WAAgC,EAAA;QAD5E,IAAA,CAAA,OAAO,GAAP,OAAO;QACqC,IAAA,CAAA,WAAW,GAAX,WAAW;;IAG5E,WAAW,GAAA;QACP,IAAI,CAAC,cAAc,EAAE;;AAGzB,IAAA,MAAM,cAAc,GAAA;AAChB,QAAA,IACI,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE;YACvC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC;;YAC9B;;AAGF,QAAA,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACtB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;;;AAIlC,YAAA,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE;gBAC3B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAE5B,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC;AACvC,gBAAA,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,kBAAkB,IAAI,UAAU;;iBAE/D;;gBAED,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC;gBACxC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG;;;YAI3B;;;QAIJ,IAAI,IAAI,CAAC,aAAa,EAAE,gBAAgB,IAAI,KAAK,EAAE;YAC/C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAM,IAAI,CAAC,GAAG,CAAC;YACnD,IAAI,MAAM,EAAE;;;gBAGR,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI;gBAEzB,MAAM,GAAG,GAAU,MAAM,IAAI,OAAO,CAAC,GAAG,IAAG;oBACvC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC;oBACrC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC;AAC1C,iBAAC,CAAC;;AAGF,gBAAA,IAAI,GAAG,CAAC,IAAI,IAAI,MAAM,EAAE;oBACpB,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC;oBAExC,IAAI,IAAI,CAAC,aAAa,EAAE,aAAa,IAAI,KAAK,EAAE;;;AAG5C,wBAAA,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,EAAE;AAChD,wBAAA,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI;wBACvB,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;;oBAEpC;;qBAEC;;AAED,oBAAA,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,kBAAkB,IAAI,UAAU;;;;AAK5E,QAAA,MAAM,KAAK,GAAG,CAAC,MAAK;YAChB,IAAI,IAAI,CAAC,aAAa,EAAE,aAAa,IAAI,KAAK,EAAE;gBAC5C,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,EAAE;;YAE7C,OAAO,IAAI,KAAK,EAAE;SACrB,GAAG;;QAGJ,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;QACrC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC5B,QAAA,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI;QACxB,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;;QAGhC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC;AACvC,QAAA,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,kBAAkB,IAAI,UAAU;;AAGhE,QAAA,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;aAChB,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE;AAChC,aAAA,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AAC1C,YAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;AAC/B,YAAA,MAAM,CAAC,SAAS,GAAG,MAAK;AACpB,gBAAA,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,MAAgB;AAEnC,gBAAA,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;AACtB,oBAAA,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;oBACrB,IAAI,EAAE,MAAM,CAAC;AAChB,iBAAA,CAAC;gBAEF,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAqB,KAAI;AAC7C,oBAAA,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG;AACvB,iBAAC,CAAC;AAEF,gBAAA,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK;gBACzB,OAAO,CAAC,CAAC,CAAC;AACd,aAAC;AACD,YAAA,MAAM,CAAC,OAAO,GAAG,MAAM;AACvB,YAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;AAC9B,SAAC,CAAC;aACD,KAAK,CAAC,GAAG,IAAG;;;AAGT,YAAA,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;YAC3B,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAqB,KAAI;gBAC7C,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,iBAAiB,IAAI,SAAS;AAC1D,gBAAA,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC;AACzC,aAAC,CAAC;AACN,SAAC,CAAC;;AA/HD,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,4CAWP,sBAAsB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAXrC,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,CAAA,QAAA,EAAA,KAAA,CAAA,EAAA,aAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE;AACf,iBAAA;;0BAYQ;;0BAAY,MAAM;2BAAC,sBAAsB;yCAR1B,GAAG,EAAA,CAAA;sBADtB,KAAK;uBAAC,QAAQ;;sBACd,KAAK;uBAAC,WAAW;gBAES,aAAa,EAAA,CAAA;sBAAvC,KAAK;uBAAC,kBAAkB;;;AC5D7B;;;;;AAKG;MAKU,UAAU,CAAA;AAEnB,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAA,CAAA,SAAS,GAAT,SAAS;;AAEtB,IAAA,SAAS,CAAC,GAAW,EAAA;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,GAAG,CAAC;;+GAL7C,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAJtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACTD;;;;;AAKG;MAKU,cAAc,CAAA;AAEvB,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAA,CAAA,SAAS,GAAT,SAAS;;AAEtB,IAAA,SAAS,CAAC,GAAW,EAAA;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,GAAG,CAAC;;+GALpD,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,gBAAgB;AACtB,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACTD;;;;;AAKG;MAKU,YAAY,CAAA;AAErB,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAA,CAAA,SAAS,GAAT,SAAS;;AAEtB,IAAA,SAAS,CAAC,GAAW,EAAA;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,GAAG,CAAC;;+GAL/C,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,cAAc;AACpB,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACTD;;;;;AAKG;MAKU,WAAW,CAAA;AAEpB,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAA,CAAA,SAAS,GAAT,SAAS;;AAEtB,IAAA,SAAS,CAAC,GAAW,EAAA;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,GAAG,CAAC;;+GAL9C,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,CAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAJvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,aAAa;AACnB,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACTD;;;;;AAKG;MAKU,SAAS,CAAA;AAElB,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAA,CAAA,SAAS,GAAT,SAAS;;AAEtB,IAAA,SAAS,CAAC,GAAW,EAAA;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC;;+GAL5C,SAAS,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA;;4FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBAJrB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCZY,KAAK,GAAG,EAAE,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC;AAE7D;;AAEG;MACU,gBAAgB,GAAG,CAAC,IAAY,EAAE,IAAY,KAAI;IAC3D,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC3E,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;AAClC,IAAA,CAAC,CAAC,QAAQ,GAAG,IAAI;IACjB,CAAC,CAAC,KAAK,EAAE;IACT,CAAC,CAAC,MAAM,EAAE;AACd;AAEA;;AAEG;AACI,MAAM,YAAY,GAAG,CAAC,IAAY,KACrC,CAAC,IAAI,IAAI,EAAE;AACN,KAAA,IAAI;AACJ,KAAA,WAAW;AACX,KAAA,OAAO,CAAC,UAAU,EAAE,GAAG;AACvB,KAAA,OAAO,CAAC,gBAAgB,EAAE,EAAE;AAGrC;;;;AAIE;AACK,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,IAAA,GAAgF,EAAE,EAAE,YAAY,GAAG,KAAK,KAAI;AACjJ,IAAA,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAEnD,IAAA,IAAI,CAAC,IAAI;QACL,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEhC,IAAA,MAAM,IAAI,GAAG,CAAA,EAAA,EAAK,IAAI,EAAE;;AAGxB,IAAA,IAAI,IAAI,YAAY,eAAe,EAAE;QACjC,IAAI,GAAG,CAAC,GAAI,IAAY,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;;AAG5G,IAAA,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,IAAW,CAAQ;AACrD,IAAA,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,OAAO,CAAQ;;AAGtD,IAAA,IAAI,IAAI,IAAI,OAAO,EAAE;QACjB,YAAY,GAAG,IAAI;QACnB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE;AAC3C,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AACf,gBAAA,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;;AAG/C,IAAA,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE;QACtC,IACI,GAAG,IAAI,IAAI;AACX,YAAA,GAAG,IAAI,SAAS;AAChB,YAAA,GAAG,IAAI,EAAE;AACT,YAAA,GAAG,IAAI,MAAM;AACb,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AACjB,YAAA,GAAG,IAAI,KAAK;AAEZ,YAAA,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;;AAGzB,IAAA,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtD,QAAA,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AAGtB,IAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE;IACjC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC;IACjC,IAAI,YAAY,EAAE;QACd,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,QAAQ,IAAI,GAAG,GAAG,QAAQ,IAAI,EAAE,CAAC,CAAC;;SAE/E;QACD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,QAAQ,IAAI,GAAG,GAAG,QAAQ,IAAI,EAAE,CAAC,CAAC;;AAErF;AAEO,MAAM,UAAU,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAI;AACxD,IAAA,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AACvC,IAAA,IAAI,IAAI,GAAG,IAAI,eAAe,CAAC,KAAK,CAAQ;IAC5C,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AACnG;;AChFA,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC;;AAEG;MAIU,iBAAiB,CAAA;AAE1B,IAAA,WAAA,CAC8B,QAAkB,EAAA;QAAlB,IAAA,CAAA,QAAQ,GAAR,QAAQ;;AAGtC;;;;;;;AAOG;AACH,IAAA,UAAU,CAAC,EAAU,EAAE,GAAW,EAAE,YAAoB,IAAI,EAAA;QACxD,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;AAC5B,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBAAE,OAAO,GAAG,EAAE;YAElD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AACpD,YAAA,MAAM,CAAC,EAAE,GAAG,EAAE;AAEd,YAAA,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;AAChC,YAAA,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC;AAE/B,YAAA,MAAM,CAAC,MAAM,GAAG,YAAW;AACvB,gBAAA,IAAI,OAAO,SAAS,IAAI,QAAQ,EAAE;oBAC9B,IAAI,CAAC,GAAG,CAAC;AAET,oBAAA,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,mBAAmB,EAAE,CAAC,IAAI,EAAE;AACzD,wBAAA,MAAM,KAAK,CAAC,EAAE,CAAC;AAEnB,oBAAA,IAAI,CAAC,IAAI,mBAAmB,EAAE;wBAC1B,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;;;AAIjF,gBAAA,GAAG,EAAE;AACT,aAAC;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AAC1C,SAAC,CAAC;;AAxCG,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAGd,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAHX,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFd,MAAM,EAAA,CAAA,CAAA;;4FAET,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;0BAIQ,MAAM;2BAAC,QAAQ;;;ICZZ;AAAZ,CAAA,UAAY,wBAAwB,EAAA;AAChC;;;;AAIG;AACH,IAAA,wBAAA,CAAA,wBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS;AACT;;;AAGG;AACH,IAAA,wBAAA,CAAA,wBAAA,CAAA,oBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,oBAAkB;AAClB;;;;;AAKG;AACH,IAAA,wBAAA,CAAA,wBAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAgB;AAEhB;;AAEG;AACH,IAAA,wBAAA,CAAA,wBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM;AACV,CAAC,EAxBW,wBAAwB,KAAxB,wBAAwB,GAAA,EAAA,CAAA,CAAA;;ACCpC;AACA,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAkB;AACzC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAkB;MAElC,sBAAsB,GAAG,IAAI,cAAc,CAAsB,mBAAmB;MAKpF,iBAAiB,CAAA;AAC1B,IAAA,IAAY,GAAG,GAAA,EAAK,OAAO,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AAC/D,IAAA,IAAY,GAAG,GAAA,EAAK,OAAO,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AAC/D,IAAA,IAAY,IAAI,GAAA,EAAK,OAAO,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;;aAGlD,IAAA,CAAA,QAAQ,GAEnB,EAFmB,CAEhB;AAIP,IAAA,WAAA,CAAwD,SAA8B,EAAE,EAAA;;AAEpF,QAAA,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC;;IAG/B,OAAO,SAAS,CAAC,MAA2B,EAAA;QAChD,IAAI,CAAC,MAAM,GAAG;YACV,wBAAwB,EAAE,wBAAwB,CAAC,SAAS;AAC5D,YAAA,MAAM,EAAE;gBACJ,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,GAAG,EAAE,OAAO,CAAC;AAChB,aAAA;AACD,YAAA,GAAG;SACN;AAED,QAAA,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;;;QAI7D,IACI,IAAI,CAAC,MAAM,CAAC,wBAAwB,IAAI,wBAAwB,CAAC,MAAM;AACvE,YAAA,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAC7B;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC;;QAGhH,IAAI,IAAI,CAAC,MAAM,CAAC,yBAAyB,IAAI,IAAI,CAAC,MAAM,CAAC,wBAAwB;AAC7E,YAAA,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC;QACrF,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa;AACvD,YAAA,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC;QAChF,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB;AAC7D,YAAA,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC;;IAI/E,OAAO,sBAAsB,CAAC,YAAmC,EAAA;AACrE,QAAA,IAAI,CAAC,YAAY;AACb,YAAA,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC;;AAItE,QAAA,MAAM,EAAE,GAAG,YAAY,CAAC,YAAY,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClE,QAAA,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,IAAI,SAAS;AAE7C,QAAA,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE;AACtB,QAAA,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE;AAGzB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE;;;;;;;;;;;;;QAgB7B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;;AAG3C;;;;;AAKG;AACI,IAAA,iBAAiB,CAAsD,IAAgC,EAAA;AAC1G,QAAA,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AACjD,YAAA,IAAI,CAAC,GAAG,CAAC,CAAA,gCAAA,EAAmC,IAAI,CAAC,EAAE,CAAA,YAAA,EAAe,IAAI,CAAC,KAAK,IAAI,SAAS,CAAA,EAAA,CAAI,CAAC;YAC9F;;QAGJ,iBAAiB,CAAC,sBAAsB,CAAC;AACrC,YAAA,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC;AAC5C,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,SAAS;AAC3C,SAAA,CAAC;;AAGN;;;;AAIG;AACI,IAAA,mBAAmB,CAAC,EAAU,EAAE,KAAK,GAAG,SAAS,EAAA;AACpD,QAAA,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,CAAC;AAC5B,QAAA,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC;QAElC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,EAAE,KAAK,CAAC;AACzC,YAAA,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC;;QAG5F,OAAO,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC;;AAIlD;;;AAGG;AACI,IAAA,wBAAwB,CAAC,KAAa,EAAE,KAAK,GAAG,SAAS,EAAA;AAC5D,QAAA,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC;AAC/B,QAAA,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC;AAElC,QAAA,MAAM,WAAW,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAE9D,IAAI,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,IAAG;AAC/B,YAAA,IAAI,CAAC,CAAC;AAAE,gBAAA,OAAO,KAAK;;YAGpB,IAAI,CAAC,CAAC,CAAC,OAAO;AACV,gBAAA,OAAO,CAAC,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG;;AAGzC,YAAA,IAAI,CAAC,CAAC,OAAO,YAAY,MAAM;AAC3B,gBAAA,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;;AAGvD,YAAA,IAAI,OAAO,CAAC,CAAC,OAAO,IAAI,QAAQ,EAAE;gBAC9B,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC;AACtC,gBAAA,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;;;YAIzC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AAC1B,gBAAA,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;;;AAIxD,YAAA,IAAI,OAAO,CAAC,CAAC,OAAO,IAAI,UAAU;AAC9B,gBAAA,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;AAEzB,YAAA,OAAO,KAAK;AAChB,SAAC,CAAC;AAEF,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAClB,YAAA,IAAI,CAAC,IAAI,CAAC,mGAAmG,CAAC;;AAElH,QAAA,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AACnB,YAAA,OAAO,IAAI;;AAGf,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;AAEpB,QAAA,IAAI,GAAG,CAAC,OAAO,YAAY,MAAM,EAAE;AAC/B,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;YAEjE,OAAO;AACH,gBAAA,KAAK,EAAE,GAAG;gBACV,WAAW,EAAE,MAAM,EAAE;aACxB;;AAGL,QAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;;AAGzB;;;AAGG;AACI,IAAA,qBAAqB,CAAC,KAAa,EAAE,KAAK,GAAG,SAAS,EAAA;QACzD,OAAO,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC;;AAGxD;;;;;AAKG;AACI,IAAA,gBAAgB,CAAC,EAAU,EAAE,KAAa,EAAE,OAA+C,EAAA;AAE9F,QAAA,QAAQ,iBAAiB,CAAC,MAAM,CAAC,wBAAwB;AACrD,YAAA,KAAK,wBAAwB,CAAC,SAAS,EAAE;AAErC,gBAAA,OAAO,OAAO,CAAC,CAAC,CAAC;;;AAIrB,YAAA,KAAK,wBAAwB,CAAC,kBAAkB,EAAE;gBAC9C,MAAM,OAAO,GACT;qBACK,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;AAElC,gBAAA,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC;AACnB,oBAAA,OAAO,IAAI;AAEf,gBAAA,OAAO,OAAO,CAAC,CAAC,CAAC;;;AAGrB,YAAA,KAAK,wBAAwB,CAAC,gBAAgB,EAAE;gBAC5C,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;AAE5C,gBAAA,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;oBACjB,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,sEAAsE,CAAC;AAC3G,oBAAA,OAAO,KAAK;;gBAGhB,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,CAAA,CAAA,EAAI,EAAE,CAAA,oBAAA,CAAsB,EAAE,GAAG,CAAC;gBAExD,MAAM,OAAO,GAAG;qBACX,MAAM,CAAC,GAAG,IAAG;AACV,oBAAA,IAAI,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;AAEhD,oBAAA,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;AACvB,iBAAC,CAAC;AAEN,gBAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oBACpB,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,qDAAqD,CAAC;AAC1F,oBAAA,OAAO,KAAK;;AAGhB,gBAAA,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;oBACrB,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,+CAA+C,CAAC;AACpF,oBAAA,OAAO,IAAI;;AAGf,gBAAA,OAAO,OAAO,CAAC,CAAC,CAAC;;AAErB,YAAA,KAAK,wBAAwB,CAAC,MAAM,EAAE;gBAClC,OAAO,iBAAiB,CAAC,MAAM,CAAC,cAAc,CAAC,OAAc,CAAC;;YAElE,SAAS;AACL,gBAAA,OAAO,KAAK;;;;AArPf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAYM,sBAAsB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAZ7C,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFd,MAAM,EAAA,CAAA,CAAA;;4FAET,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;0BAagB;;0BAAY,MAAM;2BAAC,sBAAsB;;;MCR7C,mBAAmB,CAAA;AAiB5B;;AAEG;IACH,IAAwB,EAAE,CAAC,IAAY,EAAA;AACnC,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,QAAA,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC;;;QAI7B,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE;AACpC,YAAA,IAAI,CAAC,GAAG,GAAG,EAAE;YACb,IAAI,CAAC,eAAe,EAAE;;aAErB;AACD,YAAA,IAAI,CAAC,GAAG,GAAG,EAAE;;;;IAMrB,IAAoB,KAAK,CAAC,IAAY,EAAA;AAClC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,QAAA,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC;AAEhC,QAAA,IAAI,OAAO,KAAK,IAAI,QAAQ,IAAI,CAAC,KAAK;YAAE;;QAGxC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE;AAC1C,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;YAEnB,IAAI,CAAC,eAAe,EAAE;YACtB;;AAGJ,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;;IAEvB,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,MAAM,CAAA;AAIhC;;;;;;;;;;;;;;;;;AAiBG;IACH,IAAqB,MAAM,CAAC,IAA6B,EAAA;QACrD,IAAI,IAAI,IAAI,SAAS;YAAE;AAEvB,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO;AAC3B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;QACnB,IAAI,IAAI,IAAI,SAAS;AACjB,YAAA,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;AAEvB,QAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI;YAEnD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YAEvC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9E,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAE1E,YAAA,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;;AAG7D,YAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YAE5D,IAAI,CAAC,UAAU,EAAE;;;AAOzB;;;;;;;;;;;AAWG;IACH,IAAsB,OAAO,CAAC,IAAkC,EAAA;AAC5D,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AAEpB,QAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI;YAEnD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YACvC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAE/E,YAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAG;;gBAEhB,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE;AAC1C,gBAAA,OAAO,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;AAC1C,aAAC,CAAC;YAEF,IAAI,CAAC,WAAW,EAAE;;;AA+E1B,IAAA,WAAA,CACY,OAA0B,EACd,gBAAkC,EACnC,MAAiB,EACQ,eAAe,EAAA;QAHnD,IAAA,CAAA,OAAO,GAAP,OAAO;QACK,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QACjB,IAAA,CAAA,MAAM,GAAN,MAAM;QACmB,IAAA,CAAA,eAAe,GAAf,eAAe;QAnLvD,IAAA,CAAA,MAAM,GAAG,SAAS;QAkElB,IAAA,CAAA,mBAAmB,GAAqC,EAAE;AAkClE;;AAEG;AACO,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAE;AAEjD;;;;;;AAMG;AACO,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAE;;AAwCtC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE;AACjC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AAExD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE;AAChC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAEpD,QAAA,IAAA,CAAA,aAAa,GAAG;AACpB,YAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAK;AAC7B,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;gBAE5B,UAAU,CAAC,MAAK;AACZ,oBAAA,IAAI,CAAC,aAAa,GAAG,KAAK;iBAC7B,EAAE,GAAG,CAAC;AACX,aAAC,CAAC;AACF,YAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAK;AAC5B,gBAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAC7B,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AAC7B,aAAC;SACJ;AAEM,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC;AACrB,QAAA,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAC;QAsBxB,IAAA,CAAA,WAAW,GAAG,KAAK;AAdvB,QAAA,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM;QACtC,IAAI,CAAC,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG;QAC9C,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;QAChD,IAAI,CAAC,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG;;AAG9C,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI;YACtE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO;YAC3C,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE;YACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK;;;AAK/C,IAAA,MAAM,eAAe,GAAA;AACjB,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAC7B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AAEvB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACX,YAAA,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC;AACxC,YAAA,OAAO,IAAI,CAAC,WAAW,EAAE;;AAG7B,QAAA,IAAI;AACA,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC;YACzF,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AAC1B,gBAAA,IAAI,CAAC,GAAG,CAAC,CAAA,0BAAA,EAA6B,IAAI,CAAC,GAAG,CAAA,YAAA,EAAe,IAAI,CAAC,MAAM,CAAA,cAAA,CAAgB,CAAC;AACzF,gBAAA,OAAO,IAAI,CAAC,WAAW,EAAE;;AAG7B,YAAA,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM;AACrC,YAAA,IAAI,CAAC,YAAY,GAAG,WAAW;;YAG/B,MAAM,MAAM,GAAmB,IAAI,CAAC,YAAY,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE;;YAIrE,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;gBACtC,IAAI,CAAC,GAAG,CAAC,CAAA,qCAAA,EAAwC,IAAI,CAAC,GAAG,CAAA,8BAAA,CAAgC,CAAC;AAC1F,gBAAA,OAAO,IAAI,CAAC,SAAS,EAAE;;AAG3B,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM;iBAC7B,GAAG,CAAC,CAAC,IAAG;AACL,gBAAA,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;;gBAGvB,IAAI,OAAO,KAAK,IAAI,UAAU,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,UAAU;AAChE,oBAAA,OAAO,KAAK;AAChB,gBAAA,OAAO,IAAI;AACf,aAAC;iBACA,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI;iBACrB,MAAM,CAAC,KAAK,IAAG;AACZ,gBAAA,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACrC,gBAAA,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAExC,QAAQ,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC;AACvD,aAAC,CAAC;AAEN,YAAA,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;gBACrB,IAAI,CAAC,GAAG,CAAC,CAAA,6BAAA,EAAgC,IAAI,CAAC,GAAG,CAAA,wCAAA,CAA0C,CAAC;AAC5F,gBAAA,OAAO,IAAI,CAAC,SAAS,EAAE;;YAG3B,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC;YAE3G,IAAI,CAAC,SAAS,EAAE;gBACZ,IAAI,CAAC,GAAG,CAAC,CAAA,WAAA,EAAc,IAAI,CAAC,GAAG,CAAA,0BAAA,CAA4B,CAAC;AAC5D,gBAAA,OAAO,IAAI,CAAC,SAAS,EAAE;;;;;;;;;;;AAc3B,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,SAAgB,CAAC;AAC9G,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC;YAEvF,MAAM,QAAQ,GAAQ,IAAI,CAAC,uBAAuB,GAAG,YAAY,CAAC,UAAU,CAAC;YAE7E,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,WAAW,EAAE;AAElB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;AACnC,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;;AAIxB,YAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,oBAAoB,CAA6B;YAE7E,IAAI,UAAU,IAAI,OAAO,UAAU,CAAC,SAAS,IAAI,UAAU,EAAE;gBACzD,IAAI,CAAC,sBAAsB,GAAG,UAAU,CAAC,SAAS,CAAC,OAAO,IAAG;AACzD,oBAAA,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AAChE,iBAAC,CAAC;;iBAED;AACD,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;;YAG5B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACnC,YAAA,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,CAAA,CAAA,CAAG,CAAC;AAC5B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AAExB,YAAA,OAAO,YAAY;;QAEvB,OAAO,EAAE,EAAE;YAEP,IAAI,SAAS,EAAE,EAAE;gBACb,OAAO,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,GAAG,2BAA2B,CAAC;AACvE,gBAAA,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC;AACvD,gBAAA,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;;;AAIrB,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE;AACpB,gBAAA,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC;AACtD,gBAAA,MAAM,EAAE;;AAGZ,YAAA,OAAO,IAAI,CAAC,WAAW,EAAE;;;IAIjC,WAAW,CAAC,QAAQ,GAAG,IAAI,EAAA;;AAEvB,QAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,KAAI;YAC5D,GAAG,CAAC,WAAW,EAAE;AACrB,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE;;QAG7B,IAAI,QAAQ,EAAE;AACV,YAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,KAAI;gBACtD,GAAG,CAAC,WAAW,EAAE;AACrB,aAAC,CAAC;;AAGN,QAAA,IAAI,CAAC,sBAAsB,EAAE,WAAW,EAAE;;AAG1C,QAAA,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AACzB,QAAA,IAAI,CAAC,2BAA2B,EAAE,OAAO,EAAE;AAC3C,QAAA,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE;;AAG7B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,2BAA2B,GAAG,IAAI;;AAG3C;;AAEG;IACK,UAAU,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,uBAAuB;YAAE;;AAGpD,QAAA,IAAI,OAAO,IAAI,CAAC,YAAY,IAAI,QAAQ,EAAE;AACtC,YAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,KAAI;gBACrD,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,WAAW;AACvC,oBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG;AAC/B,aAAC,CAAC;;;QAIN,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI;;;AAInD,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAmB,KAAI;AACtF,YAAA,OAAO,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AAC5E,SAAC,CAAC;QAEF,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAA+C,KAAI;YACpF,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;;AAExC,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AACzB,oBAAA,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;;qBAElE;AACD,oBAAA,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;;;AAG5E,SAAC,CAAC;;AAGN;;AAEG;IACK,WAAW,GAAA;QACf,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,uBAAuB;YAAE;QAErD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI;;AAGpD,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAmB,KAAI;AAC1F,YAAA,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;AAC/C,SAAC,CAAC;;QAGF,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAmB,KAAI;YAC3D,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;gBACzC,MAAM,MAAM,GAA0B,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC;AAC5E,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ;;gBAG7B,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAClD,gBAAA,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE3D,gBAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,GAAG,GAAG;;AAEjD,SAAC,CAAC;;AAGN;;;;;;AAMG;IACK,WAAW,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB;YAC7B,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;AAEvE,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;;AAG5B;;;;;AAKG;IACK,SAAS,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc;YAC1B,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;AAEpE,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;;AAhdnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,yIAsNJ,eAAe,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAtN9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,wVACE,gBAAgB,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClBlD,0mBAoBA,EAAA,MAAA,EAAA,CAAA,seAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDNe,iBAAiB,oPAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAGrC,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,WAGlB,CAAE,iBAAiB,EAAE,gBAAgB,CAAE,cACpC,IAAI,EAAA,QAAA,EAAA,0mBAAA,EAAA,MAAA,EAAA,CAAA,seAAA,CAAA,EAAA;;0BAsNX;;0BACA;;0BACA;;0BAAY,MAAM;2BAAC,eAAe;yCArNW,eAAe,EAAA,CAAA;sBAAhE,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;gBAmBxB,EAAE,EAAA,CAAA;sBAAzB,KAAK;uBAAC,WAAW;gBAiBE,KAAK,EAAA,CAAA;sBAAxB,KAAK;uBAAC,OAAO;gBAsCO,MAAM,EAAA,CAAA;sBAA1B,KAAK;uBAAC,QAAQ;gBAwCO,OAAO,EAAA,CAAA;sBAA5B,KAAK;uBAAC,SAAS;gBAuBN,kBAAkB,EAAA,CAAA;sBAA3B;gBASS,eAAe,EAAA,CAAA;sBAAxB;;;ME5IQ,aAAa,CAAA;IAItB,WAAA,CACY,MAAiB,EACjB,UAA6B,EAAA;QAD7B,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,UAAU,GAAV,UAAU;QAJd,IAAA,CAAA,OAAO,GAAiC,EAAE;;AAYlD,IAAA,IAAI,CAAC,IAAY,EAAE,cAAoB,EAAE,OAAsB,EAAE,EAAA;AAC7D,QAAA,MAAM,KAAK,GAAG,OAAO,cAAc,IAAI,QAAQ,GAAG,cAAc,GAAG,SAAS;QAC5E,IAAI,OAAO,cAAc,IAAI,QAAQ;YACjC,IAAI,GAAG,cAAc;QAEzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AAEnC,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC;AAC1E,YAAA,IAAI,CAAC,YAAY;AACb,gBAAA,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,GAAG,IAAI,GAAG,+BAA+B,CAAC,CAAC;AAGhG,YAAA,MAAM,IAAI,GAAoB;AAC1B,gBAAA,iBAAiB,EAAE,IAAI;AACvB,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC;AAC5B,gBAAA,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC;AAC9B,gBAAA,GAAG,IAAI;AACP,gBAAA,IAAI,EAAE;AACF,oBAAA,EAAE,EAAE,IAAI;AACR,oBAAA,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;AACzB,oBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;AAC3B,oBAAA,KAAK,EAAE;AACV,iBAAA;AACD,gBAAA,UAAU,EAAE;AACR,oBAAA,SAAS,GAAG,IAAI;oBAChB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;AAC3E;aACJ;AAED,YAAA,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC;AAExD,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI;AACpB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;YAEzB,MAAM,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,IAAG;gBACpC,OAAO,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,EAAE,MAAM,CAAC;gBAC7C,OAAO,CAAC,MAAM,CAAC;AACnB,aAAC,CAAC;AACN,SAAC,CAAC;;;AAIN,IAAA,KAAK,CAAC,IAAY,EAAA;AACd,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AAC1D,QAAA,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;;AAG7C;;;AAGG;IACH,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;;+GAnEzC,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFV,MAAM,EAAA,CAAA,CAAA;;4FAET,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;AClBD;AACA,MAAM,UAAU,GAAG,CAAC;MAoBP,KAAK,CAAA;AACd,IAAA,WAAA,CACY,IAAgB,EAAA;QAAhB,IAAA,CAAA,IAAI,GAAJ,IAAI;;;IAIT,GAAG,CAAI,GAAW,EAAE,OAAA,GAAwB,EAAE,EAAE,WAAW,GAAG,KAAK,EAAA;AACtE,QAAA,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC;;IAErD,GAAG,CAAI,GAAW,EAAE,IAAS,EAAE,UAAwB,EAAE,EAAE,WAAW,GAAG,KAAK,EAAA;AACjF,QAAA,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,KAAK,EAAE;AACjG,QAAA,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC;;IAErD,IAAI,CAAI,GAAW,EAAE,IAAS,EAAE,UAAwB,EAAE,EAAE,WAAW,GAAG,KAAK,EAAA;AAClF,QAAA,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,KAAK,EAAE;AACjG,QAAA,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC;;IAEtD,KAAK,CAAI,GAAW,EAAE,IAAS,EAAE,UAAwB,EAAE,EAAE,WAAW,GAAG,KAAK,EAAA;AACnF,QAAA,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,KAAK,EAAE;AACjG,QAAA,OAAO,IAAI,CAAC,OAAO,CAAI,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC;;IAEvD,MAAM,CAAI,GAAW,EAAE,OAAA,GAAwB,EAAE,EAAE,WAAW,GAAG,KAAK,EAAA;AACzE,QAAA,OAAO,IAAI,CAAC,OAAO,CAAI,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC;;;IAIvD,OAAO,CAAI,MAAc,EAAE,GAAW,EAAE,UAAwB,EAAE,EAAE,WAAW,GAAG,KAAK,EAAA;AAC3F,QAAA,OAAO,CAAC,cAAc,GAAG,IAAI;;;QAI7B,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,MAAM;AACrD,QAAA,OAAO,CAAC,eAAe,GAAG,IAAI;QAG9B,IAAI,KAAK,GAAG,KAAK;QACjB,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACtC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO;iBAC3C,IAAI,CAAC,KAAK,CAAC;gBACR,KAAK,CAAC,KAAK,EAAE,UAAU,EAAA;;;oBAGnB,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG;AAC1C,wBAAA,OAAO,EAAE,CAAC,EAAE,CAAC;AAEjB,oBAAA,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,IAAI,SAAS,EAAE;wBAClC,KAAK,CAAC,gEAAgE,CAAC;oBAE3E,KAAK,GAAG,IAAI;oBAEZ,MAAM,CAAC,KAAK,CAAC;AACb,oBAAA,MAAM,KAAK;iBACd;AACD,gBAAA,KAAK,EAAE;AACV,aAAA,CAAC;iBACD,SAAS,CAAC,IAAI,IAAG;gBACd,OAAO,CAAC,IAAoB,CAAC;;gBAG7B,UAAU,CAAC,MAAK;oBACZ,CAAC,CAAC,WAAW,EAAE;iBAClB,EAAE,CAAC,CAAC;AACT,aAAC,CAAC;AACV,SAAC,CAAC;AAEF,QAAA,OAAO,CAAe;;+GAjEjB,KAAK,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAL,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,KAAK,cAFF,MAAM,EAAA,CAAA,CAAA;;4FAET,KAAK,EAAA,UAAA,EAAA,CAAA;kBAHjB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACrBD;;AAEG;MAIU,WAAW,CAAA;AAEpB,IAAA,WAAA,CAAoB,KAAY,EAAA;QAAZ,IAAA,CAAA,KAAK,GAAL,KAAK;AAEzB,QAAA,IAAA,CAAA,UAAU,GAAG,CAAC,MAAe,EAAE,QAAQ,GAAG,KAAK,EAAE,YAAY,GAAG,EAAE,KAAM;AACpE,YAAA,OAAO,IAAI,OAAO,CAAC,CAAC,IAAG;gBACnB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC5C,gBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;AACjC,gBAAA,IAAI,QAAQ;AACR,oBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC;AACrC,gBAAA,IAAI,MAAM;AACN,oBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEvC,IAAI,CAAC,KAAK,EAAE;AAEZ,gBAAA,IAAI,QAAQ,GAAG,IAAI,QAAQ,EAAE;AAE7B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAK;AACjC,oBAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAG;wBAChC,MAAM,IAAI,GAMN,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAEjB,wBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI;AACtB,wBAAA,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,IAAW,CAAC;AACtC,qBAAC,CAAC;AACF,oBAAA,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;oBACrD,IAAI,CAAC,MAAM,EAAE;oBACb,CAAC,CAAC,QAAQ,CAAC;AACf,iBAAC,CAAC;AACN,aAAC,CAAC;AACN,SAAC;;+GAnCQ,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAE,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFR,MAAM,EAAA,CAAA,CAAA;;4FAET,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACaD;;AAEG;MAIU,eAAe,CAAA;AAcxB,IAAA,WAAA,GAAA;QAZQ,IAAA,CAAA,QAAQ,GAA+B,EAAE;QAC1C,IAAA,CAAA,WAAW,GASZ,EAAE;AAGJ,QAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAChE,QAAA,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;;AAGxD,IAAA,SAAS,CAAC,GAAkB,EAAA;;AAEhC,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI;;;AAI3C,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC;AACf,aAAA,MAAM,CAAC,EAAE,IACN,CAAC,EAAE,CAAC,IAAI,IAAI,SAAS,IAAI,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO;AAChD,aAAC,EAAE,CAAC,GAAG,IAAI,SAAS,IAAI,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC;AAC9C,aAAC,EAAE,CAAC,KAAK,IAAI,SAAS,IAAI,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,QAAQ,CAAC;AACpD,aAAC,EAAE,CAAC,KAAK,IAAI,SAAS,IAAI,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,OAAO,CAAC;YACnD,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAClE;QAEL,IAAI,GAAG,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE;YACvE,GAAG,CAAC,eAAe,EAAE;YACrB,GAAG,CAAC,cAAc,EAAE;;AAGxB,QAAA,IAAI,GAAG,CAAC,GAAG,IAAI,OAAO;AAClB,YAAA;AAEJ,QAAA,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAExC;;;;;;AAMG;;;;;AAMC,IAAA,OAAO,CAAC,GAAkB,EAAA;AAC9B,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK;;AAGxC,IAAA,UAAU,CAAC,GAAkB,EAAA;;;AAIrC;;;;AAIG;AACI,IAAA,YAAY,CAAC,GAAe,EAAA;AAC/B,QAAA,MAAM,GAAG,GAAG,IAAI,OAAO,EAAiB;AACxC,QAAA,IAAI,IAAI,GAAG;AACP,YAAA,GAAG,GAAG;YACN,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACpD,YAAA,GAAG,EAAE;SACR;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;QAE3B,OAAO;AACH,YAAA,GAAG,GAAG;AACN,YAAA,SAAS,GAAG,CAAC,GAAG,IAAI,KAAI;gBACpB,MAAM,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;gBAChC,OAAO;AACH,oBAAA,GAAG,CAAC;oBACJ,WAAW,EAAE,MAAK;wBACd,CAAC,CAAC,WAAW,EAAE;;AAGf,wBAAA,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;wBACpD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;;iBAEpC;AACL,aAAC;SACJ;;AAGL;;AAEG;AACH,IAAA,IAAI,cAAc,GAAA;QACd,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;;AAEnC;;AAEG;AACH,IAAA,IAAI,aAAa,GAAA;QACb,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;;AAErC;;AAEG;AACH,IAAA,IAAI,YAAY,GAAA;QACZ,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;;AAEjC;;AAEG;AACH,IAAA,IAAI,cAAc,GAAA;QACd,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;;AAEnC;;AAEG;AACH,IAAA,IAAI,YAAY,GAAA;QACZ,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;;IAKjC,SAAS,GAAA;AACL,QAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAG;AACnC,YAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK;AAC5B,SAAC,CAAC;;+GArIG,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFZ,MAAM,EAAA,CAAA,CAAA;;4FAET,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;wDAmIG,SAAS,EAAA,CAAA;sBAFR,YAAY;uBAAC,aAAa;;sBAC1B,YAAY;uBAAC,eAAe;;;MC9IpB,iBAAiB,CAAA;AAG1B,IAAA,WAAA,CACqB,UAA6B,EAAA;QAA7B,IAAA,CAAA,UAAU,GAAV,UAAU;AAHxB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,CAAsB,IAAI,CAAC;;QAMhE,MAAM,CAAC,YAAY,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE;QACtD,IAAI,CAAC,mBAAmB,EAAE;;IAGtB,mBAAmB,GAAA;AACvB,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;;AAGxC,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACrB,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;AAEzC,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;;AAG5B,IAAA,YAAY,CAAC,GAAW,EAAE,IAAA,GAAe,EAAE,EAAA;AAE/C,QAAA,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;;AAG9B,QAAA,MAAM,MAAM,GAAG,KAAK,EAAE,KAAK,CAAC,GAAG;AAC1B,aAAA,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,KAAI;AAClB,YAAA,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AACnC,YAAA,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC;AACzC,YAAA,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO;AACnB,YAAA,OAAO,IAAI;AACf,SAAC,EAAE,EAAE,CAAC,IAAI,EAAE;AAGhB,QAAA,OAAO,CAAC,IAAI,CAAC,CAAA,uBAAA,EAA0B,IAAI,CAAA,CAAA,CAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACnE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;AACxC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACnB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,MAAM,EAAE,MAAa;AACrB,YAAA,IAAI,EAAE;AACT,SAAA,CAAC;;+GA5CG,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFd,MAAM,EAAA,CAAA,CAAA;;4FAET,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACTD,MAAM,WAAW,GAAG,CAAC,KAAK,KAAI;AAC1B,IAAA,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,OAAO;AACnC,QAAA,OAAO,KAAK;AAChB,IAAA,OAAO,MAAM;AACjB,CAAC;AACD,MAAM,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAC3D,MAAM,oBAAoB,GAAG,YAAY,IAAI;AACzC,MAAE;MACA,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC;AAChD,UAAE;UACA,OAAO;AACjB,MAAM,YAAY,GAAG,MAAK;AACtB,IAAA,OAAO,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC;AACrD,UAAE;UACA,OAAO;AACjB,CAAC;MAKY,YAAY,CAAA;AAgBrB,IAAA,WAAA,GAAA;AAdS,QAAA,IAAA,CAAA,MAAM,GAAG;AACd,YAAA,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE;AAC7B,YAAA,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE;AAC/B,YAAA,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE;SACrC;QAED,IAAA,CAAA,aAAa,GAAG,YAAY;AAE5B;;;AAGG;AACH,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,eAAe,CAAmB,oBAAoB,CAAC;AAI/D,QAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAG;YACrB,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC;YAC1D,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC;AAC3D,YAAA,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;AAC3D,SAAC,CAAC;;AAGF,QAAA,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,IAAG;AAC9E,YAAA,IAAI,YAAY,CAAC,WAAW,CAAC,IAAI,MAAM;gBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;AACvC,SAAC,CAAC;;AAGC,IAAA,QAAQ,CAAC,CAAW,EAAA;AACvB,QAAA,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC;AAC5B,QAAA,YAAY,CAAC,WAAW,CAAC,GAAG,KAAK;AACjC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAE1B,QAAA,IAAI,KAAK,IAAI,MAAM,EAAE;YACjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;;aAE9B;AACD,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;;;+GAxCrB,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFT,MAAM,EAAA,CAAA,CAAA;;4FAET,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCfY,gBAAgB,CAAA;AACX,IAAP,OAAO,OAAO,CAAa,MAA2B,EAAA;AACzD,QAAA,QAAQ;AACJ,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,SAAS,EAAE;AACP,gBAAA;AACI,oBAAA,OAAO,EAAE,sBAAsB;AAC/B,oBAAA,QAAQ,EAAE;AACb,iBAAA;gBACD;AACH;AACJ,SAAA;;+GAXI,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAhB,gBAAgB,EAAA,OAAA,EAAA,CAHf,mBAAmB,CAAA,EAAA,OAAA,EAAA,CACnB,mBAAmB,CAAA,EAAA,CAAA,CAAA;gHAEpB,gBAAgB,EAAA,CAAA,CAAA;;AACX,UAAA,CAAA;IAAS,OAAA,CAAA,CAAA,EAAA,QAAQ,EAAE;AAWhC,CAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,IAAA,CAAA;4FAZQ,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,mBAAmB,CAAC;oBAC9B,OAAO,EAAE,CAAC,mBAAmB;AAChC,iBAAA;;;MCgBY,qBAAqB,CAAA;IAwC9B,IAAY,OAAO,GAAA,EAAK,OAAO,IAAI,CAAC,OAAO,CAAC,aAA4B,CAAC;AACzE,IAAA,IAAY,SAAS,GAAA,EAAK,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAgB,CAAC;AAC1F,IAAA,IAAY,QAAQ,GAAA,EAAK,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAgB,CAAC;AAC5F,IAAA,IAAY,iBAAiB,GAAA,EAAK,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAmB,CAAC;AACpG,IAAA,IAAY,yBAAyB,GAAA,EAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAmB,CAAC;IAM3G,WAAA,CACqB,OAAmB,EACnB,MAAc,EAAA;QADd,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,MAAM,GAAN,MAAM;AA1C3B;;AAEG;AACO,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAE;AAErC;;;AAGG;QACM,IAAA,CAAA,KAAK,GAAe,OAAO;AACpC;;;AAGG;QACM,IAAA,CAAA,MAAM,GAAc,OAAO;AACpC;;;AAGG;QACM,IAAA,CAAA,OAAO,GAAY,EAAE;AAC9B;;;AAGG;QACM,IAAA,CAAA,qBAAqB,GAAY,IAAI;QAE9C,IAAA,CAAA,eAAe,GAAG,IAAI;QACtB,IAAA,CAAA,cAAc,GAAG,IAAI;QACrB,IAAA,CAAA,cAAc,GAAG,KAAK;QAQd,IAAA,CAAA,QAAQ,GAAG,CAAC;QACZ,IAAA,CAAA,QAAQ,GAAG,CAAC;QACZ,IAAA,CAAA,YAAY,GAAG,CAAC;QA+CxB,IAAA,CAAA,MAAM,GAAG,MAAK;AACV,YAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE;AAC9D,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrC,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,MAAM;;YAGtC,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI;YACxC,MAAM,EAAE,GAAG,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI;;YAGzC,MAAM,EAAE,GAAG,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC;YACtC,MAAM,EAAE,GAAG,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC;AAEtC,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,WAAA,EAAc,EAAE,CAAA,eAAA,EAAkB,EAAE,CAAA,GAAA,CAAK;;AAEtF,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,gBAAA,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,WAAA,EAAc,EAAE,CAAA,eAAA,EAAkB,EAAE,CAAA,GAAA,CAAK;;AAG9F,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,wBAAA,EAA2B,CAAC,EAAE,CAAA,IAAA,CAAM;AACrE,gBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,QAAA,EAAW,CAAC,EAAE,CAAA,aAAA,EAAgB,CAAC,EAAE,MAAM;;iBAEtE;AACD,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,QAAA,EAAW,EAAE,CAAA,aAAA,EAAgB,EAAE,CAAA,IAAA,CAAM;gBACtE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,wBAAA,EAA2B,CAAC,EAAE,CAAA,IAAA,CAAM;;AAE5E,SAAC;;IApED,eAAe,GAAA;AACX,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO;AAEvB,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;;AAE/B,YAAA,EAAE,CAAC,aAAa,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YAC/C,EAAE,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE;YAC/C,EAAE,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE;AACnD,SAAC,CAAC;QACF,EAAE,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE;AAEjC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;;AAGtB,IAAA,aAAa,CAAC,CAAe,EAAA;AACzB,QAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE;AACzE,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,IAAI,MAAM,GAAG,CAAC,CAAC;QAE5C,IAAI,CAAC,MAAM,EAAE;;IAGjB,cAAc,GAAA;AACV,QAAA,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;;IAGnC,cAAc,GAAA;AACV,QAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,MAAK;AAChC,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;AACjB,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;YACjB,IAAI,CAAC,MAAM,EAAE;SAChB,EAAE,GAAG,CAAQ;;;IAIlB,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc;QAC1C,IAAI,CAAC,MAAM,EAAE;;+GA5FR,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,OAAA,EAAA,cAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,iBAAA,EAAA,iCAAA,EAAA,8BAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAGG,WAAW,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACR,WAAW,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAGV,WAAW,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACR,WAAW,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChCvD,0zBA4BA,EAAA,MAAA,EAAA,CAAA,6+BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDfQ,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAWX,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAhBjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAAA,OAAA,EAGpB;wBACL;qBACH,EAAA,IAAA,EACK;AACF,wBAAA,eAAe,EAAE,OAAO;AACxB,wBAAA,gBAAgB,EAAE,QAAQ;AAC1B,wBAAA,yBAAyB,EAAE,eAAe;AAC1C,wBAAA,mCAAmC,EAAE,4BAA4B;AACjE,wBAAA,cAAc,EAAE;AACnB,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,QAAA,EAAA,0zBAAA,EAAA,MAAA,EAAA,CAAA,6+BAAA,CAAA,EAAA;oGAKgC,OAAO,EAAA,CAAA;sBAAtD,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;gBACK,UAAU,EAAA,CAAA;sBAA5D,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,YAAY,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;gBAGG,WAAW,EAAA,CAAA;sBAA9D,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;gBACK,cAAc,EAAA,CAAA;sBAApE,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;gBAK3C,MAAM,EAAA,CAAA;sBAAf;gBAMQ,KAAK,EAAA,CAAA;sBAAb;gBAKQ,MAAM,EAAA,CAAA;sBAAd;gBAKQ,OAAO,EAAA,CAAA;sBAAf;gBAKQ,qBAAqB,EAAA,CAAA;sBAA7B;;;MExDQ,yBAAyB,GAAG,IAAI,cAAc,CAAyB,sBAAsB;;ACU1G,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AAEzE,MAAM,kBAAkB,GAAG,OAAO,SAAqB,EAAE,OAAY,KAAI;AAC5E,IAAA,MAAM,IAAI,GAAG;AACT,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;AACtC,QAAA,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;AAC/C,QAAA,EAAE,EAAE;KACP;AAED,IAAA,OAAO,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC;AACnD;AAEA,MAAM,mBAAmB,GAAG,OAAO,SAAoB,EAAE,IAAS,KAAI;IAClE,OAAO,IAAI,OAAO,CAAU,CAAC,GAAG,EAAE,GAAG,KAAI;AACrC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAW;AAChB,YAAA,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC;AAChC,gBAAA,SAAS,EAAE;AACP,oBAAA,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI;AAC7C;AACJ,aAAA,CAAC;YAEF,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACzC,YAAA,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;AAC7B,YAAA,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AAC/B,YAAA,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS;AAC1B,YAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YAEzB,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC;AAC1C,YAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI;AAEzB,YAAA,MAAM,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;YAElC,MAAM,EAAE,GAAgB,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,aAAa;AAEtE,YAAA,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE;YACvC,GAAG,CAAC,OAAO,EAAE;YACb,GAAG,CAAC,MAAM,EAAE;YAEZ,GAAG,CAAC,IAAI,CAAC;AACb,SAAC,CAAC;AACN,KAAC,CAAC;AACN,CAAC;AAED,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;AAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;MAoBjB,aAAa,CAAA;IAuCtB,WAAA,CACW,aAA+B,EAC/B,SAAuB,EACe,KAAU,EACpC,MAAiB;IACjB,SAA4B,EAAA;QAJxC,IAAA,CAAA,aAAa,GAAb,aAAa;QACb,IAAA,CAAA,SAAS,GAAT,SAAS;QAC6B,IAAA,CAAA,KAAK,GAAL,KAAK;QAC/B,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,SAAS,GAAT,SAAS;QAtChB,IAAA,CAAA,cAAc,GAAG,EAAE;QACnB,IAAA,CAAA,UAAU,GAAG,GAAG;QAChB,IAAA,CAAA,gBAAgB,GAAG,KAAK;QAO/B,IAAA,CAAA,YAAY,GAAG,KAAK;QAEtB,IAAA,CAAA,eAAe,GAAG,KAAK;QACvB,IAAA,CAAA,eAAe,GAAG,KAAK;QACvB,IAAA,CAAA,sBAAsB,GAAG,KAAK;QACrC,IAAA,CAAA,eAAe,GAAG,KAAK;AAEvB,QAAA,IAAA,CAAA,cAAc,GAAG;AACb,YAAA,GAAG,EAAE,CAAC;AACN,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,KAAK,EAAE;SACV;;QAGe,IAAA,CAAA,SAAS,GAAG,SAAS;QACrC,IAAA,CAAA,cAAc,GAAG,IAAI;QACrB,IAAA,CAAA,kBAAkB,GAAG,IAAI;QAKjB,IAAA,CAAA,YAAY,GAAwB,EAAE;;AAU1C,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM;QAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,UAAU;QACxC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,SAAS;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM;QAChC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,UAAU;QACxC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa;AAC9C,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAAC;QAC9E,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,EAAE,eAAe;QAClD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,YAAY;QAE5C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ;AAEpC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,YAAY,WAAW,GAAG,UAAU,GAAG,WAAW;AAEnF,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,WAAW,EAAE;YAClC,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,QAAe,CAAC;;;IAIxE,QAAQ,GAAA;AAEJ,QAAA,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAG;YACpB,IAAI,OAAO,CAAC,IAAI,QAAQ;gBAAE;;AAG1B,YAAA,CAAC,CAAC,WAAW,CAAC,GAAG,KAAK;AACtB,YAAA,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI;YACpB,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,UAAU;kBACzC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;AACrB,kBAAE,CAAC,CAAC,OAAO;YAEf,IAAI,CAAC,CAAC,KAAK;AACP,gBAAA,IAAI;AAAE,oBAAA,CAAC,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;;gBAAI,OAAO,CAAC,EAAE;AAAE,oBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;;AAEzF,YAAA,IAAI,OAAO,CAAC,CAAC,UAAU,IAAI,UAAU;AACjC,gBAAA,IAAI;AAAE,oBAAA,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;;gBAAI,OAAO,CAAC,EAAE;AAAE,oBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;;AAEtG,YAAA,IAAI,OAAO,CAAC,CAAC,SAAS,IAAI,UAAU;AAChC,gBAAA,IAAI;AAAE,oBAAA,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;;gBAAI,OAAO,CAAC,EAAE;AAAE,oBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;;AAEpG,YAAA,IAAI,OAAO,CAAC,CAAC,YAAY,IAAI,UAAU;AACnC,gBAAA,IAAI;AAAE,oBAAA,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;;gBAAI,OAAO,CAAC,EAAE;AAAE,oBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;;AAEpG,YAAA,IAAI,OAAO,CAAC,CAAC,YAAY,IAAI,UAAU;AACnC,gBAAA,IAAI;AAAE,oBAAA,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;;gBAAI,OAAO,CAAC,EAAE;AAAE,oBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;;AACxG,SAAC,CAAC;;AAGF,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IACtC,OAAO,CAAC,IAAI,QAAQ;AACpB,YAAA,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,QAAQ;YAC5B,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CACvB;AAED,QAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAC1C,OAAO,CAAC,IAAI,QAAQ;AACpB,YAAA,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,QAAQ;YAChC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAC3B;AAED,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;AACpE,YAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;YAErE,IAAI,CAAC,cAAc,GAAG;AAClB,gBAAA,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;AAC1D,gBAAA,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;gBAC3D,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc;gBACpD,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;aACvC;;AAGL,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ;AACrB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;QAE5B,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI;SAC9B,EAAE,GAAG,CAAC;;IAGX,eAAe,GAAA;QACX,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,aAA4B;AAClE,QAAA,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,IAAG;AACjC,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AAC5B,SAAC,CAAC;AACF,QAAA,EAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,IAAG;AACrC,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AAC5B,SAAC,CAAC;AACF,QAAA,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,IAAG;AAC/B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AAC5B,SAAC,CAAC;;IAGN,WAAW,GAAA;;QAEP,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC;;AAG9D;;AAEG;IACH,MAAM,eAAe,CAAC,IAAc,EAAE,GAAwB,EAAE,QAAQ,GAAG,KAAK,EAAA;QAC5E,IAAI,OAAO,IAAI,IAAI,QAAQ;AAAE,YAAA,OAAO,IAAI;QACxC,IAAI,IAAI,CAAC,SAAS;AAAE,YAAA,OAAO,IAAI;AAE/B,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC;;AAGtC,QAAA,MAAM,SAAS,IAAI,IAAI,CAAC,qBAAqB,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAEtE,QAAA,IAAI,IAAI,CAAC,gBAAgB,IAAI,SAAS,EAAE;AACpC,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI;AAC3B,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;AACnE,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK;;aAE3B,IAAI,OAAO,IAAI,CAAC,QAAQ,IAAI,UAAU,IAAI,SAAS,EAAE;AACtD,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI;AAC3B,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;AAC3D,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK;;aAE3B;AACD,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,QAAQ;;AAGrC,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,aAAa;AACvC,YAAA,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI;QAEvB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACvC,YAAA,IAAI,OAAO,IAAI,CAAC,MAAM,IAAI,UAAU,EAAE;AAClC,gBAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;AACjD,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,GAAG,IAAI,GAAG,GAAG,CAAC;AAC1C,gBAAA,OAAO,GAAG;;;AAId,YAAA,OAAO,IAAI;;;AAIf,QAAA,MAAM,MAAM,GAAG,GAAG,CAAC,qBAAqB,EAAE;AAE1C,QAAA,MAAM,KAAK,GAAG;AACV,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,MAAM,EAAE,IAAI;;SAEf;;AAGD,QAAA,MAAM,YAAY,GAAG,OAAO,IAAI,CAAC;AAC7B,cAAE,mBAAmB,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE;AACrE,cAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACvD,QAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,YAAY;QAEtC,IAAI,MAAM,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,WAAW;AACtC,YAAA,KAAK,CAAC,MAAM,GAAG,KAAK;AACxB,QAAA,IAAI,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC,UAAU;AACnD,YAAA,KAAK,CAAC,IAAI,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI;QAE5C,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI;QAC9C,IAAI,CAAC,KAAK,CAAC,IAAI;AAAE,YAAA,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI;QAG5D,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3C,QAAA,MAAM,CAAC,eAAe,CAAC,GAAG,QAAQ;;;QAIlC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK;YACzC;QAEJ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE;AAC9C,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC;AAC/D,YAAA,aAAa,EAAE,mBAAmB;AAClC,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,IAAI,EAAE;gBACF,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,gBAAA,UAAU,EAAE,GAAG,CAAC,qBAAqB,EAAE;AACvC,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,aAAa,EAAE,OAAO;AACtB,gBAAA,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;gBACxB,QAAQ,EAAE,IAAI,CAAC,aAAa;AAC5B,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,eAAe,EAAE,IAAI;gBACrB;AACH;AACJ,SAAA,CAAC;QAEF,IAAI,EAAE,GAAG;AACJ,aAAA,WAAW;AACX,aAAA,SAAS,CAAC,OAAO,MAAM,KAAI;;AAExB,YAAA,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE;AACpD,gBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;;;AAGjB,iBAAA,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE;;;AAIzD,iBAAA,IAAI,MAAM,IAAI,IAAI,EAAE;;AAErB,gBAAA,IAAI,OAAO,IAAI,CAAC,MAAM,IAAI,UAAU,EAAE;AAClC,oBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;;qBAG7C;oBACD,IAAI,CAAC,KAAK,EAAE;;;AAIpB,YAAA,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK;AAEpB,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAEjE,EAAE,CAAC,WAAW,EAAE;AACpB,SAAC,CAAC;AAEN,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AACjC,QAAA,OAAO,SAAS;;AAGpB;;;;AAIG;AACH,IAAA,WAAW,CAAC,KAAa,EAAA;AACrB,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,KAAK,CAAA,IAAA,CAAM,CAAC;;AAG9E;;AAEG;;;AAGH,IAAA,KAAK,CAAC,MAAO,EAAA;AACT,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC;;IAGjC,WAAW,CAAC,KAAK,GAAG,KAAK,EAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,KAAK,EAAE;YAC7B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC;;;IAItC,eAAe,CAAC,IAAI,EAAE,GAAG,EAAA;;;AAIrB,QAAA,IAAI,EACA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;AACxD,YAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,UAAU;AAClC,YAAA,IAAI,CAAC,aAAa;YAClB,IAAI,CAAC,gBAAgB,CACxB;YACG;AAEJ,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAK;AAC3B,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC;AAEnB,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACvB,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;AAC3C,gBAAA,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI;AACnB,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC;;AAEvC,SAAC,EAAE,IAAI,CAAC,UAAU,CAAC;;AAGvB,IAAA,cAAc,CAAC,IAAI,EAAA;QACf,IAAI,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1C,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC;;IAIvB,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,MAAK;YAC9B,IAAI,CAAC,WAAW,EAAE;SACrB,EAAE,GAAG,CAAQ;;IAElB,cAAc,GAAA;AACV,QAAA,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;;AAGjC;;;AAGG;IAEK,QAAQ,GAAA;QACZ,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,aAA4B;AACpE,QAAA,IAAI,CAAC,EAAE;YAAE;AAET,QAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,qBAAqB,EAAE;QAE1D,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAgB;AACjE,QAAA,IAAI,CAAC,MAAM;YAAE;;QAGb,IAAI,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE;YACjC,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI;AACvF,YAAA,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,MAAM;;;QAIvC,IAAI,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE;YAC/B,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI;AACtF,YAAA,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,OAAO;;;;AAK7C,IAAA,OAAO,CAAC,GAAe,EAAA;QACnB,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,aAA4B;AAClE,QAAA,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;AACzB,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC;AAClE,QAAA,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO;QAE1B,MAAM,CAAC,MAAM,CAAC;AACV,YAAA,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS;AAClC,YAAA,IAAI,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU;AACpC,YAAA,QAAQ,EAAE;AACb,SAAA,CAAC;;AAvXG,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,8EA0CE,eAAe,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGA1C9B,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,YAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/E1B,ijQA8LA,EAAA,MAAA,EAAA,CAAA,uiEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED5HQ,gBAAgB,mJAChB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,wBAAwB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAUnB,aAAa,EAAA,UAAA,EAAA,CAAA;kBAlBzB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAAA,OAAA,EAGX;wBACL,gBAAgB;wBAChB,YAAY;wBACZ,aAAa;wBACb;AACH,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,IAAA,EACV;AACF,wBAAA,WAAW,EAAE,iBAAiB;AAC9B,wBAAA,WAAW,EAAE,iBAAiB;AAC9B,wBAAA,WAAW,EAAE,sBAAsB;AACnC,wBAAA,WAAW,EAAE,qBAAqB;AACrC,qBAAA,EAAA,QAAA,EAAA,ijQAAA,EAAA,MAAA,EAAA,CAAA,uiEAAA,CAAA,EAAA;;0BA4CI;;0BAAY,MAAM;2BAAC,eAAe;;0BAClC;;0BACA;yCA1CW,IAAI,EAAA,CAAA;sBAAnB;gBACe,KAAK,EAAA,CAAA;sBAApB;gBACe,MAAM,EAAA,CAAA;sBAArB;gBACe,EAAE,EAAA,CAAA;sBAAjB;gBACe,cAAc,EAAA,CAAA;sBAA7B;gBACe,UAAU,EAAA,CAAA;sBAAzB;gBACe,gBAAgB,EAAA,CAAA;sBAA/B;gBACe,YAAY,EAAA,CAAA;sBAA3B;gBAEQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBAuUO,QAAQ,EAAA,CAAA;sBADf,YAAY;uBAAC,eAAe;;;AEpajC;;;AAGG;AAEI,MAAM,WAAW,GAAG,CAAC,EAA8B,EAAE,MAAA,GAAc,EAAE,EAAE,MAAe,KAAI;;AAE7F,IAAA,MAAM,GAAG,GAAY,CAAC,CAAC,EAAE,CAAC,UAAU;AACxB,UAAG,EAAkB,CAAC,qBAAqB;AAC3C,UAAE;;AAEE,YAAA,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC;AAChB,YAAA,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC;;AAEhB,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE;SACA;;AAGxB,IAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;AAEhC,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW;AAC/B,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU;AAE9B,IAAA,MAAM,KAAK,GAAG;AACV,QAAA,GAAG,EAAE,IAAI;AACT,QAAA,IAAI,EAAE;KACT;AAED,IAAA,IAAI,MAAM,EAAE,QAAQ,IAAI,MAAM,IAAI,MAAM,EAAE,QAAQ,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE;AAChF,QAAA,QAAQ,MAAM,EAAE,SAAS;YAErB,KAAK,KAAK,EAAE;;AAER,gBAAA,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM;gBACvC;;YAEJ,KAAK,UAAU,EAAE;;gBAEb,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM;gBAC9B;;YAEJ,KAAK,aAAa,EAAE;;gBAEhB,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM;gBAC1B;;YAEJ,KAAK,OAAO,EAAE;;AAEV,gBAAA,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;gBACjB;;AAEJ,YAAA,KAAK,QAAQ;YACb,SAAS;;gBAEL,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC;gBACrD;;;;;AAMR,QAAA,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC;;AAEzD,QAAA,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC;AAE9C,QAAA,IAAI,MAAM,EAAE,QAAQ,IAAI,MAAM,EAAE;YAC5B,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,MAAM,EAAE,SAAS,IAAI,CAAC,CAAC,IAAI,MAAM,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC;;QAEzF,IAAI,MAAM,EAAE,QAAQ,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE;AAClD,YAAA,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,IAAI,MAAM,EAAE,SAAS,IAAI,CAAC,CAAC,IAAI,MAAM,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC;;;AAI7F,QAAA,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC;;AAE3D,QAAA,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC;;AAE9C,SAAA,IAAI,MAAM,EAAE,QAAQ,IAAI,KAAK,IAAI,MAAM,EAAE,QAAQ,IAAI,QAAQ,EAAE;AAChE,QAAA,QAAQ,MAAM,EAAE,SAAS;YACrB,KAAK,KAAK,EAAE;;AAER,gBAAA,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,GAAG,KAAK;gBACtC;;YAEJ,KAAK,UAAU,EAAE;;gBAEb,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK;gBAC9B;;YAEJ,KAAK,aAAa,EAAE;;gBAEhB,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK;gBAC1B;;YAEJ,KAAK,OAAO,EAAE;;AAEV,gBAAA,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;gBAClB;;AAEJ,YAAA,KAAK,QAAQ;YACb,SAAS;;gBAEL,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;gBACpD;;;;;AAMR,QAAA,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC;;AAE3D,QAAA,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC;AAG/C,QAAA,IAAI,MAAM,EAAE,QAAQ,IAAI,KAAK,EAAE;YAC3B,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,MAAM,EAAE,SAAS,IAAI,CAAC,CAAC,IAAI,MAAM,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC;;AAEzF,QAAA,IAAI,MAAM,EAAE,QAAQ,IAAI,QAAQ,EAAE;AAC9B,YAAA,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,MAAM,EAAE,SAAS,IAAI,CAAC,CAAC,IAAI,MAAM,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC;;;AAI7F,QAAA,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC;;AAEzD,QAAA,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC;;;IAIlD,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI;IAC5B,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,IAAI;AAE9B,IAAA,OAAO,KAAK;AAChB;;MCtHa,aAAa,CAAA;IAyBtB,WAAA,CACY,MAAiB,EACjB,aAA+B,EAAA;QAD/B,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,aAAa,GAAb,aAAa;AATzB;;AAEG;QACuB,IAAA,CAAA,MAAM,GAAgB,EAAE;QAE1C,IAAA,CAAA,QAAQ,GAAa,EAAE;;IAO/B,QAAQ,GAAA;QACJ,IAAI,CAAC,WAAW,EAAE;;IAGtB,WAAW,GAAA;AAEP,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACrB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;;;IAIxG,eAAe,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCf,IAAA,MAAM,QAAQ,CAAC,GAAiB,EAAE,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,KAAK,EAAA;QACtE,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,aAA4B;AAElE,QAAA,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC;AAEjC,QAAA,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC;QAElC,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3C,QAAA,MAAM,CAAC,eAAe,CAAC,GAAG,QAAQ;QAElC,OAAO,QAAQ,CACX,IAAI,CAAC,MAAM,EACX,KAAK,EACL,IAAI,CAAC,IAAI,EACT,GAAG,EACH,IAAI,CAAC,MAAM,EACX,UAAU,GAAG,IAAI,GAAG,EAAE;AAErB,aAAA,IAAI,CAAC,CAAC,GAAG,GAAG,KAAI;AACb,YAAA,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC;AACpC,YAAA,OAAO,GAAG;AACd,SAAC;AACA,aAAA,KAAK,CAAC,CAAC,EAAE,KAAI;AACV,YAAA,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC;AACpC,YAAA,MAAM,EAAE;AACZ,SAAC,CAAC;;AAIV,IAAA,SAAS,CAAC,CAAC,EAAA;AACP,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;YAC5D,CAAC,CAAC,cAAc,EAAE;YAClB,IAAI,CAAC,QAAQ,CAAC,CAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC;;;AAKxD,IAAA,OAAO,CAAC,CAAC,EAAA;QACL,IACI,IAAI,CAAC,SAAS;AACd,aACI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC;gBACzB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAClC,EACH;YACE,CAAC,CAAC,cAAc,EAAE;YAClB,IAAI,CAAC,QAAQ,CAAC,CAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;;;AAKrD,IAAA,UAAU,CAAC,CAAC,EAAA;QACR,IACI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC;AAC3C,YAAA,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EACtD;YACE,CAAC,CAAC,cAAc,EAAE;YAClB,IAAI,CAAC,QAAQ,CAAC,CAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;;;+GArI5C,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,IAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,EAAA,YAAA,EAAA,CAAA,iBAAA,EAAA,cAAA,CAAA,EAAA,SAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,SAAA,EALX;YACP;AACH,SAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAGQ,aAAa,EAAA,UAAA,EAAA,CAAA;kBAPzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,SAAS,EAAE;wBACP;AACH,qBAAA;AACD,oBAAA,UAAU,EAAE;AACf,iBAAA;+GAM8B,IAAI,EAAA,CAAA;sBAA9B,KAAK;uBAAC,kBAAkB;gBAKC,YAAY,EAAA,CAAA;sBAArC,KAAK;uBAAC,iBAAiB;gBAML,SAAS,EAAA,CAAA;sBAA3B,KAAK;uBAAC,UAAU;gBAKS,MAAM,EAAA,CAAA;sBAA/B,KAAK;uBAAC,iBAAiB;gBAoFxB,SAAS,EAAA,CAAA;sBADR,YAAY;uBAAC,aAAa,EAAE,CAAC,QAAQ,CAAC;gBASvC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;gBAejC,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,UAAU,EAAE,CAAC,QAAQ,CAAC;;AAYxC;AACO,MAAM,QAAQ,GAAG,OACpB,MAAiB,EACjB,SAAqB,EACrB,IAAS,EACT,GAAiB,EACjB,MAAA,GAAsB,EAAE,EACxB,EAAgB,KAChB;;IAGA,GAAG,CAAC,cAAc,EAAE;IACpB,GAAG,CAAC,eAAe,EAAE;;IAGrB,IAAI,CAAC,MAAM,CAAC,SAAS;AACjB,QAAA,MAAM,CAAC,SAAS,GAAG,OAAO;IAE9B,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC;AAC/D,IAAA,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,IAAI,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC;AAC3D,IAAA,MAAM,UAAU,GAAG,IAAI,EAAE;AAEzB,IAAA,OAAO,cAAc,CACjB,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE;AACvB,QAAA,IAAI,EAAE;YACF,MAAM;AACN,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,UAAU,EAAE,EAAE,EAAE,qBAAqB,EAAE;AACvC,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,YAAY,EAAE;AACjB,SAAA;AACD,QAAA,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC;AAC/E,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,aAAa,EAAE;KAClB;SACI,WAAW,EAAE,CAAC;AAC3B;;AChMA,CAAC;;AAEE;;ACFH;;AAEG;;;;"}
@@ -0,0 +1,60 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Input, Component } from '@angular/core';
3
+ import * as i7 from '@angular/forms';
4
+ import { FormsModule } from '@angular/forms';
5
+ import * as i9 from '@angular/material/button';
6
+ import { MatButtonModule } from '@angular/material/button';
7
+ import * as i8 from '@angular/material/icon';
8
+ import { MatIconModule } from '@angular/material/icon';
9
+ import * as i3 from '@angular/material/input';
10
+ import { MatInputModule } from '@angular/material/input';
11
+ import * as i2 from '@angular/material/dialog';
12
+ import * as i1 from '@dotglitch/ngx-common/core';
13
+ import * as i4 from '@angular/material/form-field';
14
+
15
+ class FolderRenameComponent {
16
+ constructor(dialog, fetch) {
17
+ this.dialog = dialog;
18
+ this.fetch = fetch;
19
+ this.name = '';
20
+ this.isRename = false;
21
+ }
22
+ ngOnInit() {
23
+ this.isRename = this.name.length > 0;
24
+ }
25
+ onSave() {
26
+ if (this.isRename) {
27
+ const url = this.config.apiSettings.renameEntryUrlTemplate
28
+ ? this.config.apiSettings.renameEntryUrlTemplate(this.path + this.name)
29
+ : this.config.apiSettings.renameEntryUrl;
30
+ this.fetch.post(url, { path: this.path + '/' + this.name });
31
+ }
32
+ else {
33
+ const url = this.config.apiSettings.createDirectoryUrlTemplate
34
+ ? this.config.apiSettings.createDirectoryUrlTemplate(this.path + this.name)
35
+ : this.config.apiSettings.createDirectoryUrl;
36
+ this.fetch.post(url, { path: this.path + '/' + this.name });
37
+ }
38
+ this.dialog.close(true);
39
+ }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FolderRenameComponent, deps: [{ token: i2.MatDialogRef }, { token: i1.Fetch }], target: i0.ɵɵFactoryTarget.Component }); }
41
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FolderRenameComponent, isStandalone: true, selector: "app-folder-rename", inputs: { path: "path", name: "name", config: "config" }, ngImport: i0, template: "<mat-form-field style=\"width: 280px;\">\n <mat-label>Name</mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"name\" (keyup)=\"$event.key == 'Enter' && onSave()\">\n</mat-form-field>\n\n<div style=\"align-self: end;\">\n <button mat-flat-button (click)=\"onSave()\"><mat-icon>check</mat-icon>Ok</button>\n <button mat-flat-button (click)=\"dialog.close()\"><mat-icon>cancel</mat-icon>Cancel</button>\n</div>\n", styles: [":host{display:flex;flex-direction:column;padding:24px}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.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: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i9.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i7.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: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FolderRenameComponent, decorators: [{
44
+ type: Component,
45
+ args: [{ selector: 'app-folder-rename', imports: [
46
+ MatInputModule,
47
+ MatIconModule,
48
+ MatButtonModule,
49
+ FormsModule
50
+ ], standalone: true, template: "<mat-form-field style=\"width: 280px;\">\n <mat-label>Name</mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"name\" (keyup)=\"$event.key == 'Enter' && onSave()\">\n</mat-form-field>\n\n<div style=\"align-self: end;\">\n <button mat-flat-button (click)=\"onSave()\"><mat-icon>check</mat-icon>Ok</button>\n <button mat-flat-button (click)=\"dialog.close()\"><mat-icon>cancel</mat-icon>Cancel</button>\n</div>\n", styles: [":host{display:flex;flex-direction:column;padding:24px}\n"] }]
51
+ }], ctorParameters: () => [{ type: i2.MatDialogRef }, { type: i1.Fetch }], propDecorators: { path: [{
52
+ type: Input
53
+ }], name: [{
54
+ type: Input
55
+ }], config: [{
56
+ type: Input
57
+ }] } });
58
+
59
+ export { FolderRenameComponent };
60
+ //# sourceMappingURL=dotglitch-ngx-common-filemanager-folder-rename.component-CnKuU8nn.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dotglitch-ngx-common-filemanager-folder-rename.component-CnKuU8nn.mjs","sources":["../../packages/common/filemanager/folder-rename/folder-rename.component.ts","../../packages/common/filemanager/folder-rename/folder-rename.component.html"],"sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { Fetch } from '@dotglitch/ngx-common/core';\nimport { NgxFileManagerConfiguration } from '../filemanager.component';\n\n@Component({\n selector: 'app-folder-rename',\n templateUrl: './folder-rename.component.html',\n styleUrls: ['./folder-rename.component.scss'],\n imports: [\n MatInputModule,\n MatIconModule,\n MatButtonModule,\n FormsModule\n ],\n standalone: true\n})\nexport class FolderRenameComponent implements OnInit {\n\n @Input() path: string;\n @Input() name: string = '';\n @Input() config: NgxFileManagerConfiguration;\n\n isRename = false;\n\n constructor(\n public dialog: MatDialogRef<any>,\n private fetch: Fetch\n ) { }\n\n ngOnInit() {\n this.isRename = this.name.length > 0;\n }\n\n onSave() {\n if (this.isRename) {\n const url = this.config.apiSettings.renameEntryUrlTemplate\n ? this.config.apiSettings.renameEntryUrlTemplate(this.path + this.name)\n : this.config.apiSettings.renameEntryUrl;\n\n this.fetch.post(url, { path: this.path + '/' + this.name });\n }\n else {\n const url = this.config.apiSettings.createDirectoryUrlTemplate\n ? this.config.apiSettings.createDirectoryUrlTemplate(this.path + this.name)\n : this.config.apiSettings.createDirectoryUrl;\n\n this.fetch.post(url, { path: this.path + '/' + this.name });\n }\n this.dialog.close(true);\n }\n}\n","<mat-form-field style=\"width: 280px;\">\n <mat-label>Name</mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"name\" (keyup)=\"$event.key == 'Enter' && onSave()\">\n</mat-form-field>\n\n<div style=\"align-self: end;\">\n <button mat-flat-button (click)=\"onSave()\"><mat-icon>check</mat-icon>Ok</button>\n <button mat-flat-button (click)=\"dialog.close()\"><mat-icon>cancel</mat-icon>Cancel</button>\n</div>\n"],"names":["i1","i2","i5","i6"],"mappings":"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"}