@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,383 @@
1
+ import { Input, ViewContainerRef, isDevMode, EventEmitter, Optional, ViewChild, Component, Inject, Output } from '@angular/core';
2
+ import { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';
3
+ import { MAT_DIALOG_DATA, } from '@angular/material/dialog';
4
+ import { debounceTime } from 'rxjs';
5
+ import { LazyLoaderService } from './lazy-loader.service';
6
+ import { stringToSlug } from '../../utils';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./lazy-loader.service";
9
+ import * as i2 from "@angular/cdk/dialog";
10
+ export class LazyLoaderComponent {
11
+ /**
12
+ * The id of the component that will be lazy loaded
13
+ */
14
+ set id(data) {
15
+ this.originalId = data;
16
+ const id = stringToSlug(data);
17
+ // Check if there is a change to the loaded component's id
18
+ // if it's updated, we destroy and rehydrate the entire container
19
+ if (this.initialized && this._id != id) {
20
+ this._id = id;
21
+ this.ngAfterViewInit();
22
+ }
23
+ else {
24
+ this._id = id;
25
+ }
26
+ }
27
+ ;
28
+ set group(data) {
29
+ this.originalGroup = data;
30
+ const group = stringToSlug(data);
31
+ if (typeof group != "string" || !group)
32
+ return;
33
+ // If the group was updated, retry to bootstrap something into the container.
34
+ if (this.initialized && this._group != group) {
35
+ this._group = group;
36
+ this.ngAfterViewInit();
37
+ return;
38
+ }
39
+ this._group = group;
40
+ }
41
+ get group() { return this._group; }
42
+ /**
43
+ * A map of inputs to bind to the child.
44
+ * Supports change detection. (May fail on deep JSON changes)
45
+ *
46
+ * ```html
47
+ * <lazy-loader component="MyLazyComponent"
48
+ * [inputs]="{
49
+ * prop1: true,
50
+ * prop2: false,
51
+ * complex: {
52
+ * a: true,
53
+ * b: 0
54
+ * }
55
+ * }"
56
+ * >
57
+ * </lazy-loader>
58
+ * ```
59
+ */
60
+ set inputs(data) {
61
+ if (data == undefined)
62
+ return;
63
+ let previous = this._inputs;
64
+ this._inputs = data;
65
+ if (data == undefined)
66
+ console.trace(data);
67
+ if (this.targetComponentFactory) {
68
+ const { inputs } = this.targetComponentFactory.ɵcmp;
69
+ const currentKeys = Object.keys(inputs);
70
+ const oldKeys = Object.keys(previous).filter(key => currentKeys.includes(key));
71
+ const newKeys = Object.keys(data).filter(key => currentKeys.includes(key));
72
+ const removed = oldKeys.filter(key => !newKeys.includes(key));
73
+ // ? perhaps set to null or undefined instead
74
+ removed.forEach(k => this.targetComponentInstance[k] = null);
75
+ this.bindInputs();
76
+ }
77
+ }
78
+ /**
79
+ * A map of outputs to bind from the child.
80
+ * Should support change detection.
81
+ * ```html
82
+ * <lazy-loader component="MyLazyComponent"
83
+ * [outputs]="{
84
+ * prop3: onOutputFire
85
+ * }"
86
+ * >
87
+ * </lazy-loader>
88
+ * ```
89
+ */
90
+ set outputs(data) {
91
+ let previous = this._outputs;
92
+ this._outputs = data;
93
+ if (this.targetComponentFactory) {
94
+ const { inputs } = this.targetComponentFactory.ɵcmp;
95
+ const currentKeys = Object.keys(inputs);
96
+ const removed = Object.keys(previous).filter(key => !currentKeys.includes(key));
97
+ removed.forEach(k => {
98
+ // Unsubscribe from observable
99
+ this.outputSubscriptions[k]?.unsubscribe();
100
+ delete this.targetComponentInstance[k];
101
+ });
102
+ this.bindOutputs();
103
+ }
104
+ }
105
+ constructor(service, viewContainerRef, dialog, dialogArguments) {
106
+ this.service = service;
107
+ this.viewContainerRef = viewContainerRef;
108
+ this.dialog = dialog;
109
+ this.dialogArguments = dialogArguments;
110
+ this._group = "default";
111
+ this.outputSubscriptions = {};
112
+ /**
113
+ * Emits errors encountered when loading components
114
+ */
115
+ this.componentLoadError = new EventEmitter();
116
+ /**
117
+ * Emits when the component is fully constructed
118
+ * and had it's inputs and outputs bound
119
+ * > before `OnInit`
120
+ *
121
+ * Returns the active class instance of the lazy-loaded component
122
+ */
123
+ this.componentLoaded = new EventEmitter();
124
+ // Force 500ms delay before revealing the spinner
125
+ this.clearEmitter = new EventEmitter();
126
+ this.clearLoader$ = this.clearEmitter.pipe(debounceTime(300));
127
+ this.showEmitter = new EventEmitter();
128
+ this.showLoader$ = this.showEmitter.pipe(debounceTime(1));
129
+ this.subscriptions = [
130
+ this.clearLoader$.subscribe(() => {
131
+ this.isClearingLoader = true;
132
+ setTimeout(() => {
133
+ this.renderSpinner = false;
134
+ }, 300);
135
+ }),
136
+ this.showLoader$.subscribe(() => {
137
+ this.isClearingLoader = false;
138
+ this.renderSpinner = true;
139
+ })
140
+ ];
141
+ this.renderSpinner = true; // whether we render the DOM for the spinner
142
+ this.isClearingLoader = false; // should the spinner start fading out
143
+ this.initialized = false;
144
+ this.config = LazyLoaderService.config;
145
+ this.err = LazyLoaderService.config.logger.err;
146
+ this.warn = LazyLoaderService.config.logger.warn;
147
+ this.log = LazyLoaderService.config.logger.log;
148
+ // First, check for dialog arguments
149
+ if (this.dialogArguments) {
150
+ this.inputs = this.dialogArguments.inputs || this.dialogArguments.data;
151
+ this.outputs = this.dialogArguments.outputs;
152
+ this.id = this.dialogArguments.id;
153
+ this.group = this.dialogArguments.group;
154
+ }
155
+ }
156
+ async ngAfterViewInit() {
157
+ this.ngOnDestroy(false);
158
+ this.isClearingLoader = false;
159
+ this.renderSpinner = true;
160
+ this.initialized = true;
161
+ if (!this._id) {
162
+ this.warn("No component was specified!");
163
+ return this.loadDefault();
164
+ }
165
+ try {
166
+ const _entry = this.service.resolveRegistrationEntry(this.originalId, this.originalGroup);
167
+ if (!_entry || !_entry.entry) {
168
+ this.err(`Failed to find Component '${this._id}' in group '${this._group}' in registry!`);
169
+ return this.loadDefault();
170
+ }
171
+ const { entry, matchGroups } = _entry;
172
+ this._matchGroups = matchGroups;
173
+ // Download the "module" (the standalone component)
174
+ const bundle = this.targetModule = await entry.load();
175
+ // Check if there is some corruption on the bundle.
176
+ if (!bundle || typeof bundle != 'object') {
177
+ this.err(`Failed to load component/module for '${this._id}'! Parsed resource is invalid.`);
178
+ return this.loadError();
179
+ }
180
+ const modules = Object.keys(bundle)
181
+ .map(k => {
182
+ const entry = bundle[k];
183
+ // Strictly check for exported modules or standalone components
184
+ if (typeof entry == "function" && typeof entry["ɵfac"] == "function")
185
+ return entry;
186
+ return null;
187
+ })
188
+ .filter(e => e != null)
189
+ .filter(entry => {
190
+ entry['_isModule'] = !!entry['ɵmod']; // module
191
+ entry['_isComponent'] = !!entry['ɵcmp']; // component
192
+ return (entry['_isModule'] || entry['_isComponent']);
193
+ });
194
+ if (modules.length == 0) {
195
+ this.err(`Component/Module loaded for '${this._id}' has no exported components or modules!`);
196
+ return this.loadError();
197
+ }
198
+ const component = this.targetComponentFactory = this.service.resolveComponent(this._id, "default", modules);
199
+ if (!component) {
200
+ this.err(`Component '${this._id}' is invalid or corrupted!`);
201
+ return this.loadError();
202
+ }
203
+ // const componentRef = this.targetComponentContainerRef = createComponent(component as any, {
204
+ // environmentInjector: this.appRef.injector,
205
+ // elementInjector: this.injector,
206
+ // hostElement: this.viewContainerRef.element.nativeElement,
207
+ // // projectableNodes:
208
+ // });
209
+ // // this.targetRef = this.targetContainer.insert(this.targetComponentContainerRef.hostView);
210
+ // this.appRef.attachView(componentRef.hostView);
211
+ // Bootstrap the component into the container
212
+ const componentRef = this.targetComponentContainerRef = this.targetContainer.createComponent(component);
213
+ this.targetRef = this.targetContainer.insert(this.targetComponentContainerRef.hostView);
214
+ const instance = this.targetComponentInstance = componentRef['instance'];
215
+ this.bindInputs();
216
+ this.bindOutputs();
217
+ this.componentLoaded.next(instance);
218
+ this.instance = instance;
219
+ // Look for an observable called isLoading$ that will make us show/hide
220
+ // the same distractor that is used on basic loading
221
+ const isLoading$ = instance['ngxShowDistractor$'];
222
+ if (isLoading$ && typeof isLoading$.subscribe == "function") {
223
+ this.distractorSubscription = isLoading$.subscribe(loading => {
224
+ loading ? this.showEmitter.emit() : this.clearEmitter.emit();
225
+ });
226
+ }
227
+ else {
228
+ this.clearEmitter.emit();
229
+ }
230
+ const name = Object.keys(bundle)[0];
231
+ this.log(`Loaded '${name}'`);
232
+ this.clearEmitter.emit();
233
+ return componentRef;
234
+ }
235
+ catch (ex) {
236
+ if (isDevMode()) {
237
+ console.warn("Component DDD " + this._id + " threw an error on mount!");
238
+ console.warn("This will cause you to see a 404 panel.");
239
+ console.error(ex);
240
+ }
241
+ // Network errors throw a toast and return an error component
242
+ if (ex && !isDevMode()) {
243
+ console.error("Uncaught error when loading component");
244
+ throw ex;
245
+ }
246
+ return this.loadDefault();
247
+ }
248
+ }
249
+ ngOnDestroy(clearAll = true) {
250
+ // unsubscribe from all subscriptions
251
+ Object.entries(this.outputSubscriptions).forEach(([key, sub]) => {
252
+ sub.unsubscribe();
253
+ });
254
+ this.outputSubscriptions = {};
255
+ // Clear all things
256
+ if (clearAll) {
257
+ Object.entries(this.subscriptions).forEach(([key, sub]) => {
258
+ sub.unsubscribe();
259
+ });
260
+ }
261
+ this.distractorSubscription?.unsubscribe();
262
+ // Clear target container
263
+ this.targetRef?.destroy();
264
+ this.targetComponentContainerRef?.destroy();
265
+ this.targetContainer?.clear();
266
+ // Wipe the rest of the state clean
267
+ this.targetRef = null;
268
+ this.targetComponentContainerRef = null;
269
+ }
270
+ /**
271
+ * Bind the input values to the child component.
272
+ */
273
+ bindInputs() {
274
+ if (!this._inputs || !this.targetComponentInstance)
275
+ return;
276
+ // Merge match groups
277
+ if (typeof this._matchGroups == "object") {
278
+ Object.entries(this._matchGroups).forEach(([key, val]) => {
279
+ if (typeof this._inputs[key] == 'undefined')
280
+ this._inputs[key] = val;
281
+ });
282
+ }
283
+ // forward-bind inputs
284
+ const { inputs } = this.targetComponentFactory.ɵcmp;
285
+ // Returns a list of entries that need to be set
286
+ // This makes it so that unnecessary setters are not invoked.
287
+ const updated = Object.entries(inputs).filter(([parentKey, childKey]) => {
288
+ return this.targetComponentInstance[childKey] != this._inputs[parentKey];
289
+ });
290
+ updated.forEach(([parentKey, childKey]) => {
291
+ if (this._inputs.hasOwnProperty(parentKey)) {
292
+ // Angular 19.2+
293
+ if (Array.isArray(childKey)) {
294
+ this.targetComponentInstance[childKey[0]] = this._inputs[parentKey];
295
+ }
296
+ else {
297
+ this.targetComponentInstance[childKey] = this._inputs[parentKey];
298
+ }
299
+ }
300
+ });
301
+ }
302
+ /**
303
+ * Bind the output handlers to the loaded child component
304
+ */
305
+ bindOutputs() {
306
+ if (!this._outputs || !this.targetComponentInstance)
307
+ return;
308
+ const { outputs } = this.targetComponentFactory.ɵcmp;
309
+ // Get a list of unregistered outputs
310
+ const newOutputs = Object.entries(outputs).filter(([parentKey, childKey]) => {
311
+ return !this.outputSubscriptions[parentKey];
312
+ });
313
+ // Reverse bind via subscription
314
+ newOutputs.forEach(([parentKey, childKey]) => {
315
+ if (this._outputs.hasOwnProperty(parentKey)) {
316
+ const target = this.targetComponentInstance[childKey];
317
+ const outputs = this._outputs;
318
+ // Angular folks, stop making this so difficult.
319
+ const ctx = this.viewContainerRef['_hostLView'][8];
320
+ const sub = target.subscribe(outputs[parentKey].bind(ctx)); // Subscription
321
+ this.outputSubscriptions[parentKey] = sub;
322
+ }
323
+ });
324
+ }
325
+ /**
326
+ * Load the "Default" component (404) screen normally.
327
+ * This is shown when the component id isn't in the
328
+ * registry or otherwise doesn't match
329
+ *
330
+ * This
331
+ */
332
+ loadDefault() {
333
+ if (this.config.notFoundComponent)
334
+ this.targetContainer.createComponent(this.config.notFoundComponent);
335
+ this.clearEmitter.emit();
336
+ }
337
+ /**
338
+ * Load the "Error" component.
339
+ * This is shown when we are able to resolve the component
340
+ * in the registry, but have some issue boostrapping the
341
+ * component into the viewContainer
342
+ */
343
+ loadError() {
344
+ if (this.config.errorComponent)
345
+ this.targetContainer.createComponent(this.config.errorComponent);
346
+ this.clearEmitter.emit();
347
+ }
348
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LazyLoaderComponent, deps: [{ token: i1.LazyLoaderService }, { token: i0.ViewContainerRef, optional: true }, { token: i2.DialogRef, optional: true }, { token: MAT_DIALOG_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
349
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: LazyLoaderComponent, isStandalone: true, selector: "ngx-lazy-loader", inputs: { id: ["component", "id"], group: "group", inputs: "inputs", outputs: "outputs" }, outputs: { componentLoadError: "componentLoadError", componentLoaded: "componentLoaded" }, viewQueries: [{ propertyName: "targetContainer", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<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", styles: [":host{display:contents;contain:content;z-index:1;position:relative}.ngx-lazy-loader-distractor{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background-color:var(--background-color, #212121);opacity:1;transition:opacity .3s ease;z-index:999999;animation:fade-in .3s ease}.ngx-lazy-loader-distractor.destroying{opacity:0;pointer-events:none}@keyframes fade-in{0%{opacity:0;pointer-events:none}to{opacity:1;pointer-events:all}}\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
350
+ }
351
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LazyLoaderComponent, decorators: [{
352
+ type: Component,
353
+ args: [{ selector: 'ngx-lazy-loader', imports: [NgComponentOutlet, NgTemplateOutlet], standalone: true, template: "<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", styles: [":host{display:contents;contain:content;z-index:1;position:relative}.ngx-lazy-loader-distractor{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background-color:var(--background-color, #212121);opacity:1;transition:opacity .3s ease;z-index:999999;animation:fade-in .3s ease}.ngx-lazy-loader-distractor.destroying{opacity:0;pointer-events:none}@keyframes fade-in{0%{opacity:0;pointer-events:none}to{opacity:1;pointer-events:all}}\n"] }]
354
+ }], ctorParameters: () => [{ type: i1.LazyLoaderService }, { type: i0.ViewContainerRef, decorators: [{
355
+ type: Optional
356
+ }] }, { type: i2.DialogRef, decorators: [{
357
+ type: Optional
358
+ }] }, { type: undefined, decorators: [{
359
+ type: Optional
360
+ }, {
361
+ type: Inject,
362
+ args: [MAT_DIALOG_DATA]
363
+ }] }], propDecorators: { targetContainer: [{
364
+ type: ViewChild,
365
+ args: ["content", { read: ViewContainerRef }]
366
+ }], id: [{
367
+ type: Input,
368
+ args: ["component"]
369
+ }], group: [{
370
+ type: Input,
371
+ args: ["group"]
372
+ }], inputs: [{
373
+ type: Input,
374
+ args: ["inputs"]
375
+ }], outputs: [{
376
+ type: Input,
377
+ args: ["outputs"]
378
+ }], componentLoadError: [{
379
+ type: Output
380
+ }], componentLoaded: [{
381
+ type: Output
382
+ }] } });
383
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2FkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL2NvcmUvY29tcG9uZW50cy9sYXp5LWxvYWRlci9sYXp5LWxvYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vY29yZS9jb21wb25lbnRzL2xhenktbG9hZGVyL2xhenktbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFnQixZQUFZLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBbUMsTUFBTSxlQUFlLENBQUM7QUFDaEwsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsR0FBRyxNQUFNLDBCQUEwQixDQUFDO0FBRTVELE9BQU8sRUFBbUIsWUFBWSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7O0FBVzNDLE1BQU0sT0FBTyxtQkFBbUI7SUFpQjVCOztPQUVHO0lBQ0gsSUFBd0IsRUFBRSxDQUFDLElBQVk7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsTUFBTSxFQUFFLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTlCLDBEQUEwRDtRQUMxRCxpRUFBaUU7UUFDakUsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7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TUFBTTtnQkFTRyxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIFZpZXdDb250YWluZXJSZWYsIGlzRGV2TW9kZSwgQ29tcG9uZW50UmVmLCBFdmVudEVtaXR0ZXIsIE9wdGlvbmFsLCBWaWV3Q2hpbGQsIENvbXBvbmVudCwgSW5qZWN0LCBPdXRwdXQsIE5nTW9kdWxlLCBBZnRlclZpZXdJbml0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ29tcG9uZW50T3V0bGV0LCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgRGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGRlYm91bmNlVGltZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMYXp5TG9hZGVyU2VydmljZSB9IGZyb20gJy4vbGF6eS1sb2FkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBzdHJpbmdUb1NsdWcgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBDb21waWxlZEJ1bmRsZSwgTmd4TGF6eUxvYWRlckNvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd4LWxhenktbG9hZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGF6eS1sb2FkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWyAnLi9sYXp5LWxvYWRlci5jb21wb25lbnQuc2NzcycgXSxcbiAgICBpbXBvcnRzOiBbIE5nQ29tcG9uZW50T3V0bGV0LCBOZ1RlbXBsYXRlT3V0bGV0IF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBMYXp5TG9hZGVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQFZpZXdDaGlsZChcImNvbnRlbnRcIiwgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIHRhcmdldENvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcblxuICAgIC8qKlxuICAgICAqICEgSGVyZSBiZSBkcmFnb25zLlxuICAgICAqIE9ubHkgdGhlIGJyYXZlc3Qgb2YgQWR2ZW50dXJlcnMgY2FuIHN1cnZpdmUgdGhlIGJhdHRsZXMgYmVsb3csXG4gICAgICogYW5kIHRoZXkgbXVzdCBiZSB0cmFpbmVkIGFuZCByZWFkeSBmb3IgdGhlIGdydWVsbGluZyBqb3VybmV5IGFoZWFkLlxuICAgICAqIE1hbnkgYSBzb3VsIGhhcyB0cmllZCB0byBiZXN0IHRoZXNlIERyYWdvbnMsIHlldCBvbmx5IG9uZSBoYXNcbiAgICAgKiBzdWNjZWVkZWQgc2luY2Ugb3VyIGZvdW5kaW5nLlxuICAgICAqXG4gICAgICogVEw7RFIgLS0gRG9uJ3QgbWVzcyB3aXRoIHRoaXMgdW5sZXNzIHlvdSBrbm93IHdoYXQgeW91J3JlIGRvaW5nLlxuICAgICAqICAgICBUaGlzIGlzIGNlbnRyYWwgdG8gYSB0b24gb2YgbW92aW5nIHBhcnRzIC0tIGJyZWFraW5nIGl0IHdpbGxcbiAgICAgKiAgICAgY2F1c2UgbW9yZSBjb2xsYXRlcmFsIGRhbWFnZSB0aGFuIHlvdSBtYXkgcmVhbGl6ZS5cbiAgICAgKi9cblxuICAgIHByaXZhdGUgX2lkOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBvcmlnaW5hbElkOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIGlkIG9mIHRoZSBjb21wb25lbnQgdGhhdCB3aWxsIGJlIGxhenkgbG9hZGVkXG4gICAgICovXG4gICAgQElucHV0KFwiY29tcG9uZW50XCIpIHNldCBpZChkYXRhOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5vcmlnaW5hbElkID0gZGF0YTtcbiAgICAgICAgY29uc3QgaWQgPSBzdHJpbmdUb1NsdWcoZGF0YSk7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUgaXMgYSBjaGFuZ2UgdG8gdGhlIGxvYWRlZCBjb21wb25lbnQncyBpZFxuICAgICAgICAvLyBpZiBpdCdzIHVwZGF0ZWQsIHdlIGRlc3Ryb3kgYW5kIHJlaHlkcmF0ZSB0aGUgZW50aXJlIGNvbnRhaW5lclxuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCAmJiB0aGlzLl9pZCAhPSBpZCkge1xuICAgICAgICAgICAgdGhpcy5faWQgPSBpZDtcbiAgICAgICAgICAgIHRoaXMubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pZCA9IGlkO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHByaXZhdGUgX2dyb3VwID0gXCJkZWZhdWx0XCI7XG4gICAgcHJpdmF0ZSBvcmlnaW5hbEdyb3VwOiBzdHJpbmc7XG4gICAgQElucHV0KFwiZ3JvdXBcIikgc2V0IGdyb3VwKGRhdGE6IHN0cmluZykge1xuICAgICAgICB0aGlzLm9yaWdpbmFsR3JvdXAgPSBkYXRhO1xuICAgICAgICBjb25zdCBncm91cCA9IHN0cmluZ1RvU2x1ZyhkYXRhKTtcblxuICAgICAgICBpZiAodHlwZW9mIGdyb3VwICE9IFwic3RyaW5nXCIgfHwgIWdyb3VwKSByZXR1cm47XG5cbiAgICAgICAgLy8gSWYgdGhlIGdyb3VwIHdhcyB1cGRhdGVkLCByZXRyeSB0byBib290c3RyYXAgc29tZXRoaW5nIGludG8gdGhlIGNvbnRhaW5lci5cbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQgJiYgdGhpcy5fZ3JvdXAgIT0gZ3JvdXApIHtcbiAgICAgICAgICAgIHRoaXMuX2dyb3VwID0gZ3JvdXA7XG5cbiAgICAgICAgICAgIHRoaXMubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9ncm91cCA9IGdyb3VwO1xuICAgIH1cbiAgICBnZXQgZ3JvdXAoKSB7IHJldHVybiB0aGlzLl9ncm91cCB9XG5cbiAgICBwcml2YXRlIF9tYXRjaEdyb3VwczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgICBwcml2YXRlIF9pbnB1dHM6IHsgW2tleTogc3RyaW5nXTogYW55OyB9O1xuICAgIC8qKlxuICAgICAqIEEgbWFwIG9mIGlucHV0cyB0byBiaW5kIHRvIHRoZSBjaGlsZC5cbiAgICAgKiBTdXBwb3J0cyBjaGFuZ2UgZGV0ZWN0aW9uLiAoTWF5IGZhaWwgb24gZGVlcCBKU09OIGNoYW5nZXMpXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGxhenktbG9hZGVyIGNvbXBvbmVudD1cIk15TGF6eUNvbXBvbmVudFwiXG4gICAgICogICAgICAgW2lucHV0c109XCJ7XG4gICAgICogICAgICAgICAgcHJvcDE6IHRydWUsXG4gICAgICogICAgICAgICAgcHJvcDI6IGZhbHNlLFxuICAgICAqICAgICAgICAgIGNvbXBsZXg6IHtcbiAgICAgKiAgICAgICAgICAgICAgYTogdHJ1ZSxcbiAgICAgKiAgICAgICAgICAgICAgYjogMFxuICAgICAqICAgICAgICAgIH1cbiAgICAgKiAgICAgICB9XCJcbiAgICAgKiA+XG4gICAgICogPC9sYXp5LWxvYWRlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoXCJpbnB1dHNcIikgc2V0IGlucHV0cyhkYXRhOiB7IFtrZXk6IHN0cmluZ106IGFueTsgfSkge1xuICAgICAgICBpZiAoZGF0YSA9PSB1bmRlZmluZWQpIHJldHVybjtcblxuICAgICAgICBsZXQgcHJldmlvdXMgPSB0aGlzLl9pbnB1dHM7XG4gICAgICAgIHRoaXMuX2lucHV0cyA9IGRhdGE7XG4gICAgICAgIGlmIChkYXRhID09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIGNvbnNvbGUudHJhY2UoZGF0YSk7XG5cbiAgICAgICAgaWYgKHRoaXMudGFyZ2V0Q29tcG9uZW50RmFjdG9yeSkge1xuICAgICAgICAgICAgY29uc3QgeyBpbnB1dHMgfSA9IHRoaXMudGFyZ2V0Q29tcG9uZW50RmFjdG9yeS7JtWNtcDtcblxuICAgICAgICAgICAgY29uc3QgY3VycmVudEtleXMgPSBPYmplY3Qua2V5cyhpbnB1dHMpO1xuXG4gICAgICAgICAgICBjb25zdCBvbGRLZXlzID0gT2JqZWN0LmtleXMocHJldmlvdXMpLmZpbHRlcihrZXkgPT4gY3VycmVudEtleXMuaW5jbHVkZXMoa2V5KSk7XG4gICAgICAgICAgICBjb25zdCBuZXdLZXlzID0gT2JqZWN0LmtleXMoZGF0YSkuZmlsdGVyKGtleSA9PiBjdXJyZW50S2V5cy5pbmNsdWRlcyhrZXkpKTtcblxuICAgICAgICAgICAgY29uc3QgcmVtb3ZlZCA9IG9sZEtleXMuZmlsdGVyKGtleSA9PiAhbmV3S2V5cy5pbmNsdWRlcyhrZXkpKTtcblxuICAgICAgICAgICAgLy8gPyBwZXJoYXBzIHNldCB0byBudWxsIG9yIHVuZGVmaW5lZCBpbnN0ZWFkXG4gICAgICAgICAgICByZW1vdmVkLmZvckVhY2goayA9PiB0aGlzLnRhcmdldENvbXBvbmVudEluc3RhbmNlW2tdID0gbnVsbCk7XG5cbiAgICAgICAgICAgIHRoaXMuYmluZElucHV0cygpO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICBwcml2YXRlIG91dHB1dFN1YnNjcmlwdGlvbnM6IHsgW2tleTogc3RyaW5nXTogU3Vic2NyaXB0aW9uOyB9ID0ge307XG4gICAgcHJpdmF0ZSBfb3V0cHV0czogeyBba2V5OiBzdHJpbmddOiBGdW5jdGlvbjsgfTtcbiAgICAvKipcbiAgICAgKiBBIG1hcCBvZiBvdXRwdXRzIHRvIGJpbmQgZnJvbSB0aGUgY2hpbGQuXG4gICAgICogU2hvdWxkIHN1cHBvcnQgY2hhbmdlIGRldGVjdGlvbi5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGxhenktbG9hZGVyIGNvbXBvbmVudD1cIk15TGF6eUNvbXBvbmVudFwiXG4gICAgICogICAgICAgW291dHB1dHNdPVwie1xuICAgICAqICAgICAgICAgICBwcm9wMzogb25PdXRwdXRGaXJlXG4gICAgICogICAgICAgfVwiXG4gICAgICogPlxuICAgICAqIDwvbGF6eS1sb2FkZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KFwib3V0cHV0c1wiKSBzZXQgb3V0cHV0cyhkYXRhOiB7IFtrZXk6IHN0cmluZ106IEZ1bmN0aW9uOyB9KSB7XG4gICAgICAgIGxldCBwcmV2aW91cyA9IHRoaXMuX291dHB1dHM7XG4gICAgICAgIHRoaXMuX291dHB1dHMgPSBkYXRhO1xuXG4gICAgICAgIGlmICh0aGlzLnRhcmdldENvbXBvbmVudEZhY3RvcnkpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgaW5wdXRzIH0gPSB0aGlzLnRhcmdldENvbXBvbmVudEZhY3RvcnkuybVjbXA7XG5cbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRLZXlzID0gT2JqZWN0LmtleXMoaW5wdXRzKTtcbiAgICAgICAgICAgIGNvbnN0IHJlbW92ZWQgPSBPYmplY3Qua2V5cyhwcmV2aW91cykuZmlsdGVyKGtleSA9PiAhY3VycmVudEtleXMuaW5jbHVkZXMoa2V5KSk7XG5cbiAgICAgICAgICAgIHJlbW92ZWQuZm9yRWFjaChrID0+IHtcbiAgICAgICAgICAgICAgICAvLyBVbnN1YnNjcmliZSBmcm9tIG9ic2VydmFibGVcbiAgICAgICAgICAgICAgICB0aGlzLm91dHB1dFN1YnNjcmlwdGlvbnNba10/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMudGFyZ2V0Q29tcG9uZW50SW5zdGFuY2Vba107XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5iaW5kT3V0cHV0cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW1pdHMgZXJyb3JzIGVuY291bnRlcmVkIHdoZW4gbG9hZGluZyBjb21wb25lbnRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIGNvbXBvbmVudExvYWRFcnJvciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBmdWxseSBjb25zdHJ1Y3RlZFxuICAgICAqIGFuZCBoYWQgaXQncyBpbnB1dHMgYW5kIG91dHB1dHMgYm91bmRcbiAgICAgKiA+IGJlZm9yZSBgT25Jbml0YFxuICAgICAqXG4gICAgICogUmV0dXJucyB0aGUgYWN0aXZlIGNsYXNzIGluc3RhbmNlIG9mIHRoZSBsYXp5LWxvYWRlZCBjb21wb25lbnRcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgY29tcG9uZW50TG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGlzIGFuIGluc3RhbmNlIG9mIHRoZSBjb21wb25lbnQgdGhhdCBpcyBjdXJyZW50bHkgbG9hZGVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBpbnN0YW5jZTogYW55O1xuXG5cbiAgICAvKipcbiAgICAgKiBDb250YWluZXIgdGhhdCBwcm92aWRlcyB0aGUgY29tcG9uZW50IGRhdGFcbiAgICAgKi9cbiAgICBwcml2YXRlIHRhcmdldE1vZHVsZTogQ29tcGlsZWRCdW5kbGU7XG5cbiAgICAvKipcbiAgICAgKiBDb21wb25lbnQgZGVmaW5pdGlvblxuICAgICAqL1xuICAgIHByaXZhdGUgdGFyZ2V0Q29tcG9uZW50RmFjdG9yeTogYW55O1xuXG4gICAgLyoqXG4gICAgICogQWN0aXZlIGNvbXBvbmVudCBjb250YWluZXIgcmVmZXJlbmNlXG4gICAgICovXG4gICAgcHJpdmF0ZSB0YXJnZXRDb21wb25lbnRDb250YWluZXJSZWY6IENvbXBvbmVudFJlZjxhbnk+O1xuICAgIHByaXZhdGUgdGFyZ2V0UmVmOiBhbnk7XG4gICAgLyoqXG4gICAgICogUmVmZXJlbmNlIHRvIHRoZSBjb21wb25lbnQgY2xhc3MgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBwcml2YXRlIHRhcmdldENvbXBvbmVudEluc3RhbmNlOiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiBTdWJzY3JpcHRpb24gd2l0aCB0cnVlL2ZhbHNlIHN0YXRlIG9uIHdoZXRoZXIgdGhlIGRpc3RyYWN0b3Igc2hvdWxkIGJlXG4gICAgICovXG4gICAgcHJpdmF0ZSBkaXN0cmFjdG9yU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBwdWJsaWMgY29uZmlnOiBOZ3hMYXp5TG9hZGVyQ29uZmlnO1xuICAgIHByaXZhdGUgZXJyO1xuICAgIHByaXZhdGUgd2FybjtcbiAgICBwcml2YXRlIGxvZztcblxuICAgIC8vIEZvcmNlIDUwMG1zIGRlbGF5IGJlZm9yZSByZXZlYWxpbmcgdGhlIHNwaW5uZXJcbiAgICBwcml2YXRlIGNsZWFyRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBwcml2YXRlIGNsZWFyTG9hZGVyJCA9IHRoaXMuY2xlYXJFbWl0dGVyLnBpcGUoZGVib3VuY2VUaW1lKDMwMCkpO1xuXG4gICAgcHJpdmF0ZSBzaG93RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBwcml2YXRlIHNob3dMb2FkZXIkID0gdGhpcy5zaG93RW1pdHRlci5waXBlKGRlYm91bmNlVGltZSgxKSk7XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnMgPSBbXG4gICAgICAgIHRoaXMuY2xlYXJMb2FkZXIkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzQ2xlYXJpbmdMb2FkZXIgPSB0cnVlO1xuXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlclNwaW5uZXIgPSBmYWxzZTtcbiAgICAgICAgICAgIH0sIDMwMClcbiAgICAgICAgfSksXG4gICAgICAgIHRoaXMuc2hvd0xvYWRlciQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNDbGVhcmluZ0xvYWRlciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJTcGlubmVyID0gdHJ1ZTtcbiAgICAgICAgfSlcbiAgICBdO1xuXG4gICAgcHVibGljIHJlbmRlclNwaW5uZXIgPSB0cnVlOyAvLyB3aGV0aGVyIHdlIHJlbmRlciB0aGUgRE9NIGZvciB0aGUgc3Bpbm5lclxuICAgIHB1YmxpYyBpc0NsZWFyaW5nTG9hZGVyID0gZmFsc2U7IC8vIHNob3VsZCB0aGUgc3Bpbm5lciBzdGFydCBmYWRpbmcgb3V0XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBzZXJ2aWNlOiBMYXp5TG9hZGVyU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBwdWJsaWMgZGlhbG9nOiBEaWFsb2dSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGlhbG9nQXJndW1lbnRzXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY29uZmlnID0gTGF6eUxvYWRlclNlcnZpY2UuY29uZmlnO1xuICAgICAgICB0aGlzLmVyciA9IExhenlMb2FkZXJTZXJ2aWNlLmNvbmZpZy5sb2dnZXIuZXJyO1xuICAgICAgICB0aGlzLndhcm4gPSBMYXp5TG9hZGVyU2VydmljZS5jb25maWcubG9nZ2VyLndhcm47XG4gICAgICAgIHRoaXMubG9nID0gTGF6eUxvYWRlclNlcnZpY2UuY29uZmlnLmxvZ2dlci5sb2c7XG5cbiAgICAgICAgLy8gRmlyc3QsIGNoZWNrIGZvciBkaWFsb2cgYXJndW1lbnRzXG4gICAgICAgIGlmICh0aGlzLmRpYWxvZ0FyZ3VtZW50cykge1xuICAgICAgICAgICAgdGhpcy5pbnB1dHMgPSB0aGlzLmRpYWxvZ0FyZ3VtZW50cy5pbnB1dHMgfHwgdGhpcy5kaWFsb2dBcmd1bWVudHMuZGF0YTtcbiAgICAgICAgICAgIHRoaXMub3V0cHV0cyA9IHRoaXMuZGlhbG9nQXJndW1lbnRzLm91dHB1dHM7XG4gICAgICAgICAgICB0aGlzLmlkID0gdGhpcy5kaWFsb2dBcmd1bWVudHMuaWQ7XG4gICAgICAgICAgICB0aGlzLmdyb3VwID0gdGhpcy5kaWFsb2dBcmd1bWVudHMuZ3JvdXA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgYXN5bmMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLm5nT25EZXN0cm95KGZhbHNlKTtcbiAgICAgICAgdGhpcy5pc0NsZWFyaW5nTG9hZGVyID0gZmFsc2U7XG4gICAgICAgIHRoaXMucmVuZGVyU3Bpbm5lciA9IHRydWU7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gICAgICAgIGlmICghdGhpcy5faWQpIHtcbiAgICAgICAgICAgIHRoaXMud2FybihcIk5vIGNvbXBvbmVudCB3YXMgc3BlY2lmaWVkIVwiKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWREZWZhdWx0KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgX2VudHJ5ID0gdGhpcy5zZXJ2aWNlLnJlc29sdmVSZWdpc3RyYXRpb25FbnRyeSh0aGlzLm9yaWdpbmFsSWQsIHRoaXMub3JpZ2luYWxHcm91cCk7XG4gICAgICAgICAgICBpZiAoIV9lbnRyeSB8fCAhX2VudHJ5LmVudHJ5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnIoYEZhaWxlZCB0byBmaW5kIENvbXBvbmVudCAnJHt0aGlzLl9pZH0nIGluIGdyb3VwICcke3RoaXMuX2dyb3VwfScgaW4gcmVnaXN0cnkhYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9hZERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgeyBlbnRyeSwgbWF0Y2hHcm91cHMgfSA9IF9lbnRyeTtcbiAgICAgICAgICAgIHRoaXMuX21hdGNoR3JvdXBzID0gbWF0Y2hHcm91cHM7XG5cbiAgICAgICAgICAgIC8vIERvd25sb2FkIHRoZSBcIm1vZHVsZVwiICh0aGUgc3RhbmRhbG9uZSBjb21wb25lbnQpXG4gICAgICAgICAgICBjb25zdCBidW5kbGU6IENvbXBpbGVkQnVuZGxlID0gdGhpcy50YXJnZXRNb2R1bGUgPSBhd2FpdCBlbnRyeS5sb2FkKCk7XG5cblxuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUgaXMgc29tZSBjb3JydXB0aW9uIG9uIHRoZSBidW5kbGUuXG4gICAgICAgICAgICBpZiAoIWJ1bmRsZSB8fCB0eXBlb2YgYnVuZGxlICE9ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnIoYEZhaWxlZCB0byBsb2FkIGNvbXBvbmVudC9tb2R1bGUgZm9yICcke3RoaXMuX2lkfSchIFBhcnNlZCByZXNvdXJjZSBpcyBpbnZhbGlkLmApO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWRFcnJvcigpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBtb2R1bGVzID0gT2JqZWN0LmtleXMoYnVuZGxlKVxuICAgICAgICAgICAgICAgIC5tYXAoayA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gYnVuZGxlW2tdO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFN0cmljdGx5IGNoZWNrIGZvciBleHBvcnRlZCBtb2R1bGVzIG9yIHN0YW5kYWxvbmUgY29tcG9uZW50c1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGVudHJ5ID09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgZW50cnlbXCLJtWZhY1wiXSA9PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW50cnk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmZpbHRlcihlID0+IGUgIT0gbnVsbClcbiAgICAgICAgICAgICAgICAuZmlsdGVyKGVudHJ5ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZW50cnlbJ19pc01vZHVsZSddID0gISFlbnRyeVsnybVtb2QnXTsgLy8gbW9kdWxlXG4gICAgICAgICAgICAgICAgICAgIGVudHJ5WydfaXNDb21wb25lbnQnXSA9ICEhZW50cnlbJ8m1Y21wJ107IC8vIGNvbXBvbmVudFxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoZW50cnlbJ19pc01vZHVsZSddIHx8IGVudHJ5WydfaXNDb21wb25lbnQnXSk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChtb2R1bGVzLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnIoYENvbXBvbmVudC9Nb2R1bGUgbG9hZGVkIGZvciAnJHt0aGlzLl9pZH0nIGhhcyBubyBleHBvcnRlZCBjb21wb25lbnRzIG9yIG1vZHVsZXMhYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9hZEVycm9yKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMudGFyZ2V0Q29tcG9uZW50RmFjdG9yeSA9IHRoaXMuc2VydmljZS5yZXNvbHZlQ29tcG9uZW50KHRoaXMuX2lkLCBcImRlZmF1bHRcIiwgbW9kdWxlcyk7XG5cbiAgICAgICAgICAgIGlmICghY29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnIoYENvbXBvbmVudCAnJHt0aGlzLl9pZH0nIGlzIGludmFsaWQgb3IgY29ycnVwdGVkIWApO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWRFcnJvcigpO1xuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIC8vIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMudGFyZ2V0Q29tcG9uZW50Q29udGFpbmVyUmVmID0gY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCBhcyBhbnksIHtcbiAgICAgICAgICAgIC8vICAgICBlbnZpcm9ubWVudEluamVjdG9yOiB0aGlzLmFwcFJlZi5pbmplY3RvcixcbiAgICAgICAgICAgIC8vICAgICBlbGVtZW50SW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IsXG4gICAgICAgICAgICAvLyAgICAgaG9zdEVsZW1lbnQ6IHRoaXMudmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAvLyAgICAgLy8gcHJvamVjdGFibGVOb2RlczpcbiAgICAgICAgICAgIC8vIH0pO1xuICAgICAgICAgICAgLy8gLy8gdGhpcy50YXJnZXRSZWYgPSB0aGlzLnRhcmdldENvbnRhaW5lci5pbnNlcnQodGhpcy50YXJnZXRDb21wb25lbnRDb250YWluZXJSZWYuaG9zdFZpZXcpO1xuICAgICAgICAgICAgLy8gdGhpcy5hcHBSZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuXG4gICAgICAgICAgICAvLyBCb290c3RyYXAgdGhlIGNvbXBvbmVudCBpbnRvIHRoZSBjb250YWluZXJcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMudGFyZ2V0Q29tcG9uZW50Q29udGFpbmVyUmVmID0gdGhpcy50YXJnZXRDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCBhcyBhbnkpO1xuICAgICAgICAgICAgdGhpcy50YXJnZXRSZWYgPSB0aGlzLnRhcmdldENvbnRhaW5lci5pbnNlcnQodGhpcy50YXJnZXRDb21wb25lbnRDb250YWluZXJSZWYuaG9zdFZpZXcpO1xuXG4gICAgICAgICAgICBjb25zdCBpbnN0YW5jZTogYW55ID0gdGhpcy50YXJnZXRDb21wb25lbnRJbnN0YW5jZSA9IGNvbXBvbmVudFJlZlsnaW5zdGFuY2UnXTtcblxuICAgICAgICAgICAgdGhpcy5iaW5kSW5wdXRzKCk7XG4gICAgICAgICAgICB0aGlzLmJpbmRPdXRwdXRzKCk7XG5cbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50TG9hZGVkLm5leHQoaW5zdGFuY2UpO1xuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZSA9IGluc3RhbmNlO1xuXG4gICAgICAgICAgICAvLyBMb29rIGZvciBhbiBvYnNlcnZhYmxlIGNhbGxlZCBpc0xvYWRpbmckIHRoYXQgd2lsbCBtYWtlIHVzIHNob3cvaGlkZVxuICAgICAgICAgICAgLy8gdGhlIHNhbWUgZGlzdHJhY3RvciB0aGF0IGlzIHVzZWQgb24gYmFzaWMgbG9hZGluZ1xuICAgICAgICAgICAgY29uc3QgaXNMb2FkaW5nJCA9IGluc3RhbmNlWyduZ3hTaG93RGlzdHJhY3RvciQnXSBhcyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG5cbiAgICAgICAgICAgIGlmIChpc0xvYWRpbmckICYmIHR5cGVvZiBpc0xvYWRpbmckLnN1YnNjcmliZSA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3RyYWN0b3JTdWJzY3JpcHRpb24gPSBpc0xvYWRpbmckLnN1YnNjcmliZShsb2FkaW5nID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbG9hZGluZyA/IHRoaXMuc2hvd0VtaXR0ZXIuZW1pdCgpIDogdGhpcy5jbGVhckVtaXR0ZXIuZW1pdCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhckVtaXR0ZXIuZW1pdCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBuYW1lID0gT2JqZWN0LmtleXMoYnVuZGxlKVswXTtcbiAgICAgICAgICAgIHRoaXMubG9nKGBMb2FkZWQgJyR7bmFtZX0nYCk7XG4gICAgICAgICAgICB0aGlzLmNsZWFyRW1pdHRlci5lbWl0KCk7XG5cbiAgICAgICAgICAgIHJldHVybiBjb21wb25lbnRSZWY7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGV4KSB7XG5cbiAgICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkNvbXBvbmVudCBEREQgXCIgKyB0aGlzLl9pZCArIFwiIHRocmV3IGFuIGVycm9yIG9uIG1vdW50IVwiKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJUaGlzIHdpbGwgY2F1c2UgeW91IHRvIHNlZSBhIDQwNCBwYW5lbC5cIik7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihleCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIE5ldHdvcmsgZXJyb3JzIHRocm93IGEgdG9hc3QgYW5kIHJldHVybiBhbiBlcnJvciBjb21wb25lbnRcbiAgICAgICAgICAgIGlmIChleCAmJiAhaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiVW5jYXVnaHQgZXJyb3Igd2hlbiBsb2FkaW5nIGNvbXBvbmVudFwiKTtcbiAgICAgICAgICAgICAgICB0aHJvdyBleDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9hZERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KGNsZWFyQWxsID0gdHJ1ZSkge1xuICAgICAgICAvLyB1bnN1YnNjcmliZSBmcm9tIGFsbCBzdWJzY3JpcHRpb25zXG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHRoaXMub3V0cHV0U3Vic2NyaXB0aW9ucykuZm9yRWFjaCgoW2tleSwgc3ViXSkgPT4ge1xuICAgICAgICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm91dHB1dFN1YnNjcmlwdGlvbnMgPSB7fTtcblxuICAgICAgICAvLyBDbGVhciBhbGwgdGhpbmdzXG4gICAgICAgIGlmIChjbGVhckFsbCkge1xuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXModGhpcy5zdWJzY3JpcHRpb25zKS5mb3JFYWNoKChba2V5LCBzdWJdKSA9PiB7XG4gICAgICAgICAgICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGlzdHJhY3RvclN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcblxuICAgICAgICAvLyBDbGVhciB0YXJnZXQgY29udGFpbmVyXG4gICAgICAgIHRoaXMudGFyZ2V0UmVmPy5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMudGFyZ2V0Q29tcG9uZW50Q29udGFpbmVyUmVmPy5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMudGFyZ2V0Q29udGFpbmVyPy5jbGVhcigpO1xuXG4gICAgICAgIC8vIFdpcGUgdGhlIHJlc3Qgb2YgdGhlIHN0YXRlIGNsZWFuXG4gICAgICAgIHRoaXMudGFyZ2V0UmVmID0gbnVsbDtcbiAgICAgICAgdGhpcy50YXJnZXRDb21wb25lbnRDb250YWluZXJSZWYgPSBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEJpbmQgdGhlIGlucHV0IHZhbHVlcyB0byB0aGUgY2hpbGQgY29tcG9uZW50LlxuICAgICAqL1xuICAgIHByaXZhdGUgYmluZElucHV0cygpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9pbnB1dHMgfHwgIXRoaXMudGFyZ2V0Q29tcG9uZW50SW5zdGFuY2UpIHJldHVybjtcblxuICAgICAgICAvLyBNZXJnZSBtYXRjaCBncm91cHNcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLl9tYXRjaEdyb3VwcyA9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyh0aGlzLl9tYXRjaEdyb3VwcykuZm9yRWFjaCgoW2tleSwgdmFsXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5faW5wdXRzW2tleV0gPT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2lucHV0c1trZXldID0gdmFsO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBmb3J3YXJkLWJpbmQgaW5wdXRzXG4gICAgICAgIGNvbnN0IHsgaW5wdXRzIH0gPSB0aGlzLnRhcmdldENvbXBvbmVudEZhY3RvcnkuybVjbXA7XG5cbiAgICAgICAgLy8gUmV0dXJucyBhIGxpc3Qgb2YgZW50cmllcyB0aGF0IG5lZWQgdG8gYmUgc2V0XG4gICAgICAgIC8vIFRoaXMgbWFrZXMgaXQgc28gdGhhdCB1bm5lY2Vzc2FyeSBzZXR0ZXJzIGFyZSBub3QgaW52b2tlZC5cbiAgICAgICAgY29uc3QgdXBkYXRlZCA9IE9iamVjdC5lbnRyaWVzKGlucHV0cykuZmlsdGVyKChbcGFyZW50S2V5LCBjaGlsZEtleV06IFtzdHJpbmcsIHN0cmluZ10pID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRhcmdldENvbXBvbmVudEluc3RhbmNlW2NoaWxkS2V5XSAhPSB0aGlzLl9pbnB1dHNbcGFyZW50S2V5XTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdXBkYXRlZC5mb3JFYWNoKChbcGFyZW50S2V5LCBjaGlsZEtleV06IFtzdHJpbmcsIHN0cmluZyB8IFtzdHJpbmcsIG51bWJlciwgdW5rbm93bl1dKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5faW5wdXRzLmhhc093blByb3BlcnR5KHBhcmVudEtleSkpIHtcbiAgICAgICAgICAgICAgICAvLyBBbmd1bGFyIDE5LjIrXG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRLZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0Q29tcG9uZW50SW5zdGFuY2VbY2hpbGRLZXlbMF1dID0gdGhpcy5faW5wdXRzW3BhcmVudEtleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhcmdldENvbXBvbmVudEluc3RhbmNlW2NoaWxkS2V5XSA9IHRoaXMuX2lucHV0c1twYXJlbnRLZXldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQmluZCB0aGUgb3V0cHV0IGhhbmRsZXJzIHRvIHRoZSBsb2FkZWQgY2hpbGQgY29tcG9uZW50XG4gICAgICovXG4gICAgcHJpdmF0ZSBiaW5kT3V0cHV0cygpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9vdXRwdXRzIHx8ICF0aGlzLnRhcmdldENvbXBvbmVudEluc3RhbmNlKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgeyBvdXRwdXRzIH0gPSB0aGlzLnRhcmdldENvbXBvbmVudEZhY3RvcnkuybVjbXA7XG5cbiAgICAgICAgLy8gR2V0IGEgbGlzdCBvZiB1bnJlZ2lzdGVyZWQgb3V0cHV0c1xuICAgICAgICBjb25zdCBuZXdPdXRwdXRzID0gT2JqZWN0LmVudHJpZXMob3V0cHV0cykuZmlsdGVyKChbcGFyZW50S2V5LCBjaGlsZEtleV06IFtzdHJpbmcsIHN0cmluZ10pID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy5vdXRwdXRTdWJzY3JpcHRpb25zW3BhcmVudEtleV07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFJldmVyc2UgYmluZCB2aWEgc3Vic2NyaXB0aW9uXG4gICAgICAgIG5ld091dHB1dHMuZm9yRWFjaCgoW3BhcmVudEtleSwgY2hpbGRLZXldOiBbc3RyaW5nLCBzdHJpbmddKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5fb3V0cHV0cy5oYXNPd25Qcm9wZXJ0eShwYXJlbnRLZXkpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0OiBFdmVudEVtaXR0ZXI8dW5rbm93bj4gPSB0aGlzLnRhcmdldENvbXBvbmVudEluc3RhbmNlW2NoaWxkS2V5XTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXRwdXRzID0gdGhpcy5fb3V0cHV0cztcblxuICAgICAgICAgICAgICAgIC8vIEFuZ3VsYXIgZm9sa3MsIHN0b3AgbWFraW5nIHRoaXMgc28gZGlmZmljdWx0LlxuICAgICAgICAgICAgICAgIGNvbnN0IGN0eCA9IHRoaXMudmlld0NvbnRhaW5lclJlZlsnX2hvc3RMVmlldyddWzhdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN1YiA9IHRhcmdldC5zdWJzY3JpYmUob3V0cHV0c1twYXJlbnRLZXldLmJpbmQoY3R4KSk7IC8vIFN1YnNjcmlwdGlvblxuXG4gICAgICAgICAgICAgICAgdGhpcy5vdXRwdXRTdWJzY3JpcHRpb25zW3BhcmVudEtleV0gPSBzdWI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExvYWQgdGhlIFwiRGVmYXVsdFwiIGNvbXBvbmVudCAoNDA0KSBzY3JlZW4gbm9ybWFsbHkuXG4gICAgICogVGhpcyBpcyBzaG93biB3aGVuIHRoZSBjb21wb25lbnQgaWQgaXNuJ3QgaW4gdGhlXG4gICAgICogcmVnaXN0cnkgb3Igb3RoZXJ3aXNlIGRvZXNuJ3QgbWF0Y2hcbiAgICAgKlxuICAgICAqIFRoaXNcbiAgICAgKi9cbiAgICBwcml2YXRlIGxvYWREZWZhdWx0KCkge1xuICAgICAgICBpZiAodGhpcy5jb25maWcubm90Rm91bmRDb21wb25lbnQpXG4gICAgICAgICAgICB0aGlzLnRhcmdldENvbnRhaW5lci5jcmVhdGVDb21wb25lbnQodGhpcy5jb25maWcubm90Rm91bmRDb21wb25lbnQpO1xuXG4gICAgICAgIHRoaXMuY2xlYXJFbWl0dGVyLmVtaXQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMb2FkIHRoZSBcIkVycm9yXCIgY29tcG9uZW50LlxuICAgICAqIFRoaXMgaXMgc2hvd24gd2hlbiB3ZSBhcmUgYWJsZSB0byByZXNvbHZlIHRoZSBjb21wb25lbnRcbiAgICAgKiBpbiB0aGUgcmVnaXN0cnksIGJ1dCBoYXZlIHNvbWUgaXNzdWUgYm9vc3RyYXBwaW5nIHRoZVxuICAgICAqIGNvbXBvbmVudCBpbnRvIHRoZSB2aWV3Q29udGFpbmVyXG4gICAgICovXG4gICAgcHJpdmF0ZSBsb2FkRXJyb3IoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5lcnJvckNvbXBvbmVudClcbiAgICAgICAgICAgIHRoaXMudGFyZ2V0Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudCh0aGlzLmNvbmZpZy5lcnJvckNvbXBvbmVudCk7XG5cbiAgICAgICAgdGhpcy5jbGVhckVtaXR0ZXIuZW1pdCgpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgI2NvbnRlbnQ+PC9uZy1jb250YWluZXI+XG5cbkBpZiAocmVuZGVyU3Bpbm5lcikge1xuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJuZ3gtbGF6eS1sb2FkZXItZGlzdHJhY3RvclwiXG4gICAgICAgIFtjbGFzcy5kZXN0cm95aW5nXT1cImlzQ2xlYXJpbmdMb2FkZXJcIlxuICAgID5cbiAgICAgICAgQGlmIChjb25maWcubG9hZGVyRGlzdHJhY3RvckNvbXBvbmVudCkge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgIFtuZ0NvbXBvbmVudE91dGxldF09XCJjb25maWcubG9hZGVyRGlzdHJhY3RvckNvbXBvbmVudFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoY29uZmlnLmxvYWRlckRpc3RyYWN0b3JUZW1wbGF0ZSkge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbmZpZy5sb2FkZXJEaXN0cmFjdG9yVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICckaW1wbGljaXQnOiBpbnB1dHMgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG59XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { __decorate, __param } from "tslib";
2
+ import { NgModule, Optional } from '@angular/core';
3
+ import { LazyLoaderComponent } from './lazy-loader.component';
4
+ import { LazyLoaderService, NGX_LAZY_LOADER_CONFIG } from './lazy-loader.service';
5
+ import * as i0 from "@angular/core";
6
+ export class LazyLoaderModule {
7
+ static forRoot(config) {
8
+ return ({
9
+ ngModule: LazyLoaderModule,
10
+ providers: [
11
+ {
12
+ provide: NGX_LAZY_LOADER_CONFIG,
13
+ useValue: config
14
+ },
15
+ LazyLoaderService
16
+ ]
17
+ });
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LazyLoaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
20
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: LazyLoaderModule, imports: [LazyLoaderComponent], exports: [LazyLoaderComponent] }); }
21
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LazyLoaderModule }); }
22
+ }
23
+ __decorate([
24
+ __param(0, Optional())
25
+ ], LazyLoaderModule, "forRoot", null);
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LazyLoaderModule, decorators: [{
27
+ type: NgModule,
28
+ args: [{
29
+ imports: [LazyLoaderComponent],
30
+ exports: [LazyLoaderComponent]
31
+ }]
32
+ }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2FkZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL2NvcmUvY29tcG9uZW50cy9sYXp5LWxvYWRlci9sYXp5LWxvYWRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUVsRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFNbEYsTUFBTSxPQUFPLGdCQUFnQjtJQUNYLEFBQVAsTUFBTSxDQUFDLE9BQU8sQ0FBYSxNQUEyQjtRQUN6RCxPQUFPLENBQUM7WUFDSixRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFNBQVMsRUFBRTtnQkFDUDtvQkFDSSxPQUFPLEVBQUUsc0JBQXNCO29CQUMvQixRQUFRLEVBQUUsTUFBTTtpQkFDbkI7Z0JBQ0QsaUJBQWlCO2FBQ3BCO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0FaUSxnQkFBZ0I7Z0hBQWhCLGdCQUFnQixZQUhmLG1CQUFtQixhQUNuQixtQkFBbUI7Z0hBRXBCLGdCQUFnQjs7QUFDWDtJQUFTLFdBQUEsUUFBUSxFQUFFLENBQUE7cUNBV2hDOzRGQVpRLGdCQUFnQjtrQkFKNUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd4TGF6eUxvYWRlckNvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgTGF6eUxvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vbGF6eS1sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IExhenlMb2FkZXJTZXJ2aWNlLCBOR1hfTEFaWV9MT0FERVJfQ09ORklHIH0gZnJvbSAnLi9sYXp5LWxvYWRlci5zZXJ2aWNlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbTGF6eUxvYWRlckNvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW0xhenlMb2FkZXJDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIExhenlMb2FkZXJNb2R1bGUge1xuICAgIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChAT3B0aW9uYWwoKSBjb25maWc6IE5neExhenlMb2FkZXJDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPExhenlMb2FkZXJNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuICh7XG4gICAgICAgICAgICBuZ01vZHVsZTogTGF6eUxvYWRlck1vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTkdYX0xBWllfTE9BREVSX0NPTkZJRyxcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgTGF6eUxvYWRlclNlcnZpY2VcbiAgICAgICAgICAgIF1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19