@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.
- package/command-palette/breadcrumb/breadcrumb.component.d.ts +16 -0
- package/command-palette/command-palette.component.d.ts +38 -0
- package/command-palette/command-palette.service.d.ts +128 -0
- package/command-palette/index.d.ts +2 -0
- package/command-palette/shortcut/shortcut.component.d.ts +9 -0
- package/{components → core/components}/menu/menu.component.d.ts +2 -2
- package/{directives → core/components/menu}/menu.directive.d.ts +1 -1
- package/{types/menu.d.ts → core/components/menu/types.d.ts} +1 -1
- package/{components → core/components}/types.d.ts +0 -1
- package/{public-api.d.ts → core/index.d.ts} +8 -4
- package/{services → core/services}/navigation.service.d.ts +1 -1
- package/core/utils/index.d.ts +18 -0
- package/esm2022/command-palette/breadcrumb/breadcrumb.component.mjs +30 -0
- package/esm2022/command-palette/command-palette.component.mjs +257 -0
- package/esm2022/command-palette/command-palette.service.mjs +207 -0
- package/esm2022/command-palette/dotglitch-ngx-common-command-palette.mjs +5 -0
- package/esm2022/command-palette/index.mjs +3 -0
- package/esm2022/command-palette/shortcut/shortcut.component.mjs +19 -0
- package/esm2022/core/components/lazy-loader/lazy-loader.component.mjs +383 -0
- package/esm2022/core/components/lazy-loader/lazy-loader.module.mjs +33 -0
- package/esm2022/core/components/lazy-loader/lazy-loader.service.mjs +216 -0
- package/esm2022/core/components/lazy-loader/types.mjs +26 -0
- package/esm2022/core/components/menu/menu.component.mjs +433 -0
- package/esm2022/core/components/menu/menu.directive.mjs +159 -0
- package/esm2022/core/components/menu/types.mjs +2 -0
- package/esm2022/core/components/parallax-card/parallax-card.component.mjs +138 -0
- package/esm2022/core/components/types.mjs +3 -0
- package/esm2022/core/directives/image-cache.directive.mjs +143 -0
- package/esm2022/core/directives/utils.mjs +120 -0
- package/esm2022/core/dotglitch-ngx-common-core.mjs +5 -0
- package/esm2022/core/index.mjs +50 -0
- package/esm2022/core/pipes/html-bypass.pipe.mjs +27 -0
- package/esm2022/core/pipes/resource-bypass.pipe.mjs +27 -0
- package/esm2022/core/pipes/script-bypass.pipe.mjs +27 -0
- package/esm2022/core/pipes/style-bypass.pipe.mjs +27 -0
- package/esm2022/core/pipes/url-bypass.pipe.mjs +27 -0
- package/esm2022/core/services/dependency.service.mjs +55 -0
- package/esm2022/core/services/dialog.service.mjs +67 -0
- package/esm2022/core/services/fetch.service.mjs +74 -0
- package/esm2022/core/services/file.service.mjs +42 -0
- package/esm2022/core/services/keyboard.service.mjs +128 -0
- package/esm2022/core/services/navigation.service.mjs +50 -0
- package/esm2022/core/services/theme.service.mjs +64 -0
- package/esm2022/core/types/popup.mjs +2 -0
- package/esm2022/core/utils/index.mjs +69 -0
- package/esm2022/dotglitch-ngx-common.mjs +2 -2
- package/esm2022/filemanager/dotglitch-ngx-common-filemanager.mjs +5 -0
- package/esm2022/filemanager/file-grid/file-grid.component.mjs +676 -0
- package/esm2022/filemanager/filemanager.component.mjs +313 -0
- package/esm2022/filemanager/folder-rename/folder-rename.component.mjs +57 -0
- package/esm2022/filemanager/helpers.mjs +26 -0
- package/esm2022/filemanager/icon-resolver.mjs +155 -0
- package/esm2022/filemanager/index.mjs +2 -0
- package/esm2022/filemanager/mat-icons.mjs +5705 -0
- package/esm2022/filemanager/textextensions.mjs +294 -0
- package/esm2022/filemanager/toolbar/breadcrumb/breadcrumb.component.mjs +22 -0
- package/esm2022/filemanager/toolbar/icon-button/icon-button.component.mjs +32 -0
- package/esm2022/filemanager/toolbar/toolbar.component.mjs +165 -0
- package/esm2022/filemanager/tree-view/tree-view.component.mjs +51 -0
- package/esm2022/filemanager/types.mjs +2 -0
- package/esm2022/index.mjs +3 -0
- package/esm2022/monaco-editor/dotglitch-ngx-common-monaco-editor.mjs +5 -0
- package/esm2022/monaco-editor/index.mjs +2 -0
- package/esm2022/monaco-editor/monaco-editor.component.mjs +234 -0
- package/esm2022/monaco-editor/ts-type-resolver/dependency-parser.mjs +91 -0
- package/esm2022/monaco-editor/ts-type-resolver/dummy-source-cache.mjs +15 -0
- package/esm2022/monaco-editor/ts-type-resolver/import-resolver.mjs +311 -0
- package/esm2022/monaco-editor/ts-type-resolver/main.mjs +112 -0
- package/esm2022/monaco-editor/ts-type-resolver/recursion-depth.mjs +21 -0
- package/esm2022/monaco-editor/ts-type-resolver/types.mjs +14 -0
- package/esm2022/monaco-editor/ts-type-resolver/unpkg-source-resolver.mjs +21 -0
- package/esm2022/monaco-editor/ts-type-resolver/update-emitter.mjs +37 -0
- package/esm2022/overlay-wrapper/dotglitch-ngx-common-overlay-wrapper.mjs +5 -0
- package/esm2022/overlay-wrapper/index.mjs +2 -0
- package/esm2022/overlay-wrapper/overlay-wrapper.component.mjs +247 -0
- package/esm2022/tooltip/dotglitch-ngx-common-tooltip.mjs +5 -0
- package/esm2022/tooltip/index.mjs +4 -0
- package/esm2022/tooltip/tooltip.component.mjs +204 -0
- package/esm2022/tooltip/tooltip.directive.mjs +153 -0
- package/esm2022/tooltip/types.mjs +2 -0
- package/fesm2022/dotglitch-ngx-common-command-palette.mjs +508 -0
- package/fesm2022/dotglitch-ngx-common-command-palette.mjs.map +1 -0
- package/fesm2022/dotglitch-ngx-common-core.mjs +2280 -0
- package/fesm2022/dotglitch-ngx-common-core.mjs.map +1 -0
- package/fesm2022/dotglitch-ngx-common-filemanager-folder-rename.component-CnKuU8nn.mjs +60 -0
- package/fesm2022/dotglitch-ngx-common-filemanager-folder-rename.component-CnKuU8nn.mjs.map +1 -0
- package/fesm2022/dotglitch-ngx-common-filemanager.mjs +7403 -0
- package/fesm2022/dotglitch-ngx-common-filemanager.mjs.map +1 -0
- package/fesm2022/dotglitch-ngx-common-monaco-editor.mjs +850 -0
- package/fesm2022/dotglitch-ngx-common-monaco-editor.mjs.map +1 -0
- package/fesm2022/dotglitch-ngx-common-overlay-wrapper.mjs +254 -0
- package/fesm2022/dotglitch-ngx-common-overlay-wrapper.mjs.map +1 -0
- package/fesm2022/dotglitch-ngx-common-tooltip.mjs +357 -0
- package/fesm2022/dotglitch-ngx-common-tooltip.mjs.map +1 -0
- package/fesm2022/dotglitch-ngx-common.mjs +3 -2757
- package/fesm2022/dotglitch-ngx-common.mjs.map +1 -1
- package/filemanager/file-grid/file-grid.component.d.ts +94 -0
- package/filemanager/filemanager.component.d.ts +206 -0
- package/filemanager/folder-rename/folder-rename.component.d.ts +18 -0
- package/filemanager/helpers.d.ts +5 -0
- package/filemanager/icon-resolver.d.ts +13 -0
- package/filemanager/index.d.ts +1 -0
- package/filemanager/mat-icons.d.ts +5705 -0
- package/filemanager/textextensions.d.ts +3 -0
- package/filemanager/toolbar/breadcrumb/breadcrumb.component.d.ts +16 -0
- package/filemanager/toolbar/icon-button/icon-button.component.d.ts +11 -0
- package/filemanager/toolbar/toolbar.component.d.ts +31 -0
- package/filemanager/tree-view/tree-view.component.d.ts +21 -0
- package/filemanager/types.d.ts +1 -0
- package/index.d.ts +1 -5
- package/monaco-editor/README.md +3 -0
- package/monaco-editor/index.d.ts +1 -0
- package/monaco-editor/monaco-editor.component.d.ts +53 -0
- package/monaco-editor/ts-type-resolver/dependency-parser.d.ts +6 -0
- package/monaco-editor/ts-type-resolver/dummy-source-cache.d.ts +7 -0
- package/monaco-editor/ts-type-resolver/import-resolver.d.ts +28 -0
- package/monaco-editor/ts-type-resolver/main.d.ts +22 -0
- package/monaco-editor/ts-type-resolver/recursion-depth.d.ts +11 -0
- package/monaco-editor/ts-type-resolver/types.d.ts +179 -0
- package/monaco-editor/ts-type-resolver/unpkg-source-resolver.d.ts +5 -0
- package/monaco-editor/ts-type-resolver/update-emitter.d.ts +2 -0
- package/overlay-wrapper/index.d.ts +1 -0
- package/overlay-wrapper/overlay-wrapper.component.d.ts +11 -0
- package/package.json +104 -64
- package/tooltip/index.d.ts +3 -0
- package/{components/tooltip → tooltip}/tooltip.component.d.ts +3 -3
- package/{directives → tooltip}/tooltip.directive.d.ts +2 -2
- package/{types/tooltip.d.ts → tooltip/types.d.ts} +1 -1
- package/assets/lib/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
- package/assets/lib/vs/base/common/worker/simpleWorker.nls.de.js +0 -8
- package/assets/lib/vs/base/common/worker/simpleWorker.nls.es.js +0 -8
- package/assets/lib/vs/base/common/worker/simpleWorker.nls.fr.js +0 -8
- package/assets/lib/vs/base/common/worker/simpleWorker.nls.it.js +0 -8
- package/assets/lib/vs/base/common/worker/simpleWorker.nls.ja.js +0 -8
- package/assets/lib/vs/base/common/worker/simpleWorker.nls.js +0 -8
- package/assets/lib/vs/base/common/worker/simpleWorker.nls.ko.js +0 -8
- package/assets/lib/vs/base/common/worker/simpleWorker.nls.ru.js +0 -8
- package/assets/lib/vs/base/common/worker/simpleWorker.nls.zh-cn.js +0 -8
- package/assets/lib/vs/base/common/worker/simpleWorker.nls.zh-tw.js +0 -8
- package/assets/lib/vs/base/worker/workerMain.js +0 -24
- package/assets/lib/vs/basic-languages/abap/abap.js +0 -10
- package/assets/lib/vs/basic-languages/apex/apex.js +0 -10
- package/assets/lib/vs/basic-languages/azcli/azcli.js +0 -10
- package/assets/lib/vs/basic-languages/bat/bat.js +0 -10
- package/assets/lib/vs/basic-languages/bicep/bicep.js +0 -11
- package/assets/lib/vs/basic-languages/cameligo/cameligo.js +0 -10
- package/assets/lib/vs/basic-languages/clojure/clojure.js +0 -10
- package/assets/lib/vs/basic-languages/coffee/coffee.js +0 -10
- package/assets/lib/vs/basic-languages/cpp/cpp.js +0 -10
- package/assets/lib/vs/basic-languages/csharp/csharp.js +0 -10
- package/assets/lib/vs/basic-languages/csp/csp.js +0 -10
- package/assets/lib/vs/basic-languages/css/css.js +0 -12
- package/assets/lib/vs/basic-languages/cypher/cypher.js +0 -10
- package/assets/lib/vs/basic-languages/dart/dart.js +0 -10
- package/assets/lib/vs/basic-languages/dockerfile/dockerfile.js +0 -10
- package/assets/lib/vs/basic-languages/ecl/ecl.js +0 -10
- package/assets/lib/vs/basic-languages/elixir/elixir.js +0 -10
- package/assets/lib/vs/basic-languages/flow9/flow9.js +0 -10
- package/assets/lib/vs/basic-languages/freemarker2/freemarker2.js +0 -12
- package/assets/lib/vs/basic-languages/fsharp/fsharp.js +0 -10
- package/assets/lib/vs/basic-languages/go/go.js +0 -10
- package/assets/lib/vs/basic-languages/graphql/graphql.js +0 -10
- package/assets/lib/vs/basic-languages/handlebars/handlebars.js +0 -10
- package/assets/lib/vs/basic-languages/hcl/hcl.js +0 -10
- package/assets/lib/vs/basic-languages/html/html.js +0 -10
- package/assets/lib/vs/basic-languages/ini/ini.js +0 -10
- package/assets/lib/vs/basic-languages/java/java.js +0 -10
- package/assets/lib/vs/basic-languages/javascript/javascript.js +0 -10
- package/assets/lib/vs/basic-languages/julia/julia.js +0 -10
- package/assets/lib/vs/basic-languages/kotlin/kotlin.js +0 -10
- package/assets/lib/vs/basic-languages/less/less.js +0 -11
- package/assets/lib/vs/basic-languages/lexon/lexon.js +0 -10
- package/assets/lib/vs/basic-languages/liquid/liquid.js +0 -10
- package/assets/lib/vs/basic-languages/lua/lua.js +0 -10
- package/assets/lib/vs/basic-languages/m3/m3.js +0 -10
- package/assets/lib/vs/basic-languages/markdown/markdown.js +0 -10
- package/assets/lib/vs/basic-languages/mips/mips.js +0 -10
- package/assets/lib/vs/basic-languages/msdax/msdax.js +0 -10
- package/assets/lib/vs/basic-languages/mysql/mysql.js +0 -10
- package/assets/lib/vs/basic-languages/objective-c/objective-c.js +0 -10
- package/assets/lib/vs/basic-languages/pascal/pascal.js +0 -10
- package/assets/lib/vs/basic-languages/pascaligo/pascaligo.js +0 -10
- package/assets/lib/vs/basic-languages/perl/perl.js +0 -10
- package/assets/lib/vs/basic-languages/pgsql/pgsql.js +0 -10
- package/assets/lib/vs/basic-languages/php/php.js +0 -10
- package/assets/lib/vs/basic-languages/pla/pla.js +0 -10
- package/assets/lib/vs/basic-languages/postiats/postiats.js +0 -10
- package/assets/lib/vs/basic-languages/powerquery/powerquery.js +0 -10
- package/assets/lib/vs/basic-languages/powershell/powershell.js +0 -10
- package/assets/lib/vs/basic-languages/protobuf/protobuf.js +0 -11
- package/assets/lib/vs/basic-languages/pug/pug.js +0 -10
- package/assets/lib/vs/basic-languages/python/python.js +0 -10
- package/assets/lib/vs/basic-languages/qsharp/qsharp.js +0 -10
- package/assets/lib/vs/basic-languages/r/r.js +0 -10
- package/assets/lib/vs/basic-languages/razor/razor.js +0 -10
- package/assets/lib/vs/basic-languages/redis/redis.js +0 -10
- package/assets/lib/vs/basic-languages/redshift/redshift.js +0 -10
- package/assets/lib/vs/basic-languages/restructuredtext/restructuredtext.js +0 -10
- package/assets/lib/vs/basic-languages/ruby/ruby.js +0 -10
- package/assets/lib/vs/basic-languages/rust/rust.js +0 -10
- package/assets/lib/vs/basic-languages/sb/sb.js +0 -10
- package/assets/lib/vs/basic-languages/scala/scala.js +0 -10
- package/assets/lib/vs/basic-languages/scheme/scheme.js +0 -10
- package/assets/lib/vs/basic-languages/scss/scss.js +0 -12
- package/assets/lib/vs/basic-languages/shell/shell.js +0 -10
- package/assets/lib/vs/basic-languages/solidity/solidity.js +0 -10
- package/assets/lib/vs/basic-languages/sophia/sophia.js +0 -10
- package/assets/lib/vs/basic-languages/sparql/sparql.js +0 -10
- package/assets/lib/vs/basic-languages/sql/sql.js +0 -10
- package/assets/lib/vs/basic-languages/st/st.js +0 -10
- package/assets/lib/vs/basic-languages/swift/swift.js +0 -13
- package/assets/lib/vs/basic-languages/systemverilog/systemverilog.js +0 -10
- package/assets/lib/vs/basic-languages/tcl/tcl.js +0 -10
- package/assets/lib/vs/basic-languages/twig/twig.js +0 -10
- package/assets/lib/vs/basic-languages/typescript/typescript.js +0 -10
- package/assets/lib/vs/basic-languages/vb/vb.js +0 -10
- package/assets/lib/vs/basic-languages/wgsl/wgsl.js +0 -307
- package/assets/lib/vs/basic-languages/xml/xml.js +0 -10
- package/assets/lib/vs/basic-languages/yaml/yaml.js +0 -10
- package/assets/lib/vs/editor/editor.main.css +0 -6
- package/assets/lib/vs/editor/editor.main.js +0 -752
- package/assets/lib/vs/editor/editor.main.nls.de.js +0 -31
- package/assets/lib/vs/editor/editor.main.nls.es.js +0 -31
- package/assets/lib/vs/editor/editor.main.nls.fr.js +0 -29
- package/assets/lib/vs/editor/editor.main.nls.it.js +0 -29
- package/assets/lib/vs/editor/editor.main.nls.ja.js +0 -31
- package/assets/lib/vs/editor/editor.main.nls.js +0 -29
- package/assets/lib/vs/editor/editor.main.nls.ko.js +0 -29
- package/assets/lib/vs/editor/editor.main.nls.ru.js +0 -31
- package/assets/lib/vs/editor/editor.main.nls.zh-cn.js +0 -31
- package/assets/lib/vs/editor/editor.main.nls.zh-tw.js +0 -29
- package/assets/lib/vs/language/css/cssMode.js +0 -13
- package/assets/lib/vs/language/css/cssWorker.js +0 -81
- package/assets/lib/vs/language/html/htmlMode.js +0 -13
- package/assets/lib/vs/language/html/htmlWorker.js +0 -453
- package/assets/lib/vs/language/json/jsonMode.js +0 -15
- package/assets/lib/vs/language/json/jsonWorker.js +0 -36
- package/assets/lib/vs/language/typescript/tsMode.js +0 -20
- package/assets/lib/vs/language/typescript/tsWorker.js +0 -37016
- package/assets/lib/vs/loader.js +0 -11
- package/assets/mat-icons.ts +0 -5704
- package/assets/material/3d.svg +0 -1
- package/assets/material/abc.svg +0 -1
- package/assets/material/actionscript.svg +0 -1
- package/assets/material/ada.svg +0 -1
- package/assets/material/adonis.svg +0 -1
- package/assets/material/advpl_include.svg +0 -1
- package/assets/material/advpl_prw.svg +0 -1
- package/assets/material/advpl_ptm.svg +0 -1
- package/assets/material/advpl_tlpp.svg +0 -1
- package/assets/material/android.svg +0 -1
- package/assets/material/angular-component.svg +0 -1
- package/assets/material/angular-directive.svg +0 -1
- package/assets/material/angular-guard.svg +0 -1
- package/assets/material/angular-pipe.svg +0 -1
- package/assets/material/angular-resolver.svg +0 -1
- package/assets/material/angular-service.svg +0 -1
- package/assets/material/angular.svg +0 -1
- package/assets/material/antlr.svg +0 -1
- package/assets/material/apiblueprint.svg +0 -1
- package/assets/material/apollo.svg +0 -1
- package/assets/material/applescript.svg +0 -1
- package/assets/material/appveyor.svg +0 -1
- package/assets/material/architecture.svg +0 -1
- package/assets/material/arduino.svg +0 -1
- package/assets/material/asciidoc.svg +0 -1
- package/assets/material/assembly.svg +0 -1
- package/assets/material/astro.svg +0 -1
- package/assets/material/astyle.svg +0 -1
- package/assets/material/audio.svg +0 -1
- package/assets/material/aurelia.svg +0 -1
- package/assets/material/authors.svg +0 -1
- package/assets/material/auto.svg +0 -1
- package/assets/material/auto_light.svg +0 -1
- package/assets/material/autohotkey.svg +0 -1
- package/assets/material/autoit.svg +0 -1
- package/assets/material/azure-pipelines.svg +0 -1
- package/assets/material/azure.svg +0 -1
- package/assets/material/babel.svg +0 -1
- package/assets/material/ballerina.svg +0 -1
- package/assets/material/bazel.svg +0 -1
- package/assets/material/bicep.svg +0 -1
- package/assets/material/bitbucket.svg +0 -13
- package/assets/material/bithound.svg +0 -1
- package/assets/material/blink.svg +0 -1
- package/assets/material/blink_light.svg +0 -1
- package/assets/material/blitz.svg +0 -1
- package/assets/material/bower.svg +0 -1
- package/assets/material/brainfuck.svg +0 -1
- package/assets/material/browserlist.svg +0 -1
- package/assets/material/browserlist_light.svg +0 -1
- package/assets/material/buck.svg +0 -1
- package/assets/material/bucklescript.svg +0 -1
- package/assets/material/buildkite.svg +0 -1
- package/assets/material/bun.svg +0 -2
- package/assets/material/bun_light.svg +0 -2
- package/assets/material/c.svg +0 -4
- package/assets/material/cabal.svg +0 -1
- package/assets/material/caddy.svg +0 -1
- package/assets/material/cadence.svg +0 -1
- package/assets/material/cake.svg +0 -1
- package/assets/material/capacitor.svg +0 -1
- package/assets/material/certificate.svg +0 -1
- package/assets/material/changelog.svg +0 -1
- package/assets/material/chess.svg +0 -1
- package/assets/material/chess_light.svg +0 -1
- package/assets/material/circleci.svg +0 -1
- package/assets/material/circleci_light.svg +0 -1
- package/assets/material/clojure.svg +0 -1
- package/assets/material/cloudfoundry.svg +0 -1
- package/assets/material/cmake.svg +0 -1
- package/assets/material/coala.svg +0 -1
- package/assets/material/cobol.svg +0 -1
- package/assets/material/coconut.svg +0 -1
- package/assets/material/code-climate.svg +0 -1
- package/assets/material/code-climate_light.svg +0 -1
- package/assets/material/codecov.svg +0 -1
- package/assets/material/codeowners.svg +0 -1
- package/assets/material/coffee.svg +0 -1
- package/assets/material/coldfusion.svg +0 -1
- package/assets/material/command.svg +0 -1
- package/assets/material/commitlint.svg +0 -1
- package/assets/material/conduct.svg +0 -1
- package/assets/material/console.svg +0 -1
- package/assets/material/contributing.svg +0 -1
- package/assets/material/cpp.svg +0 -4
- package/assets/material/craco.svg +0 -45
- package/assets/material/credits.svg +0 -1
- package/assets/material/crystal.svg +0 -1
- package/assets/material/crystal_light.svg +0 -1
- package/assets/material/csharp.svg +0 -4
- package/assets/material/css-map.svg +0 -1
- package/assets/material/css.svg +0 -1
- package/assets/material/cucumber.svg +0 -1
- package/assets/material/cuda.svg +0 -1
- package/assets/material/cypress.svg +0 -1
- package/assets/material/d.svg +0 -1
- package/assets/material/dart.svg +0 -1
- package/assets/material/dart_generated.svg +0 -1
- package/assets/material/database.svg +0 -1
- package/assets/material/denizenscript.svg +0 -1
- package/assets/material/deno.svg +0 -1
- package/assets/material/deno_light.svg +0 -1
- package/assets/material/dependabot.svg +0 -1
- package/assets/material/dhall.svg +0 -1
- package/assets/material/diff.svg +0 -1
- package/assets/material/dinophp.svg +0 -1
- package/assets/material/disc.svg +0 -1
- package/assets/material/django.svg +0 -1
- package/assets/material/docker.svg +0 -1
- package/assets/material/document.svg +0 -1
- package/assets/material/dotjs.svg +0 -1
- package/assets/material/drawio.svg +0 -1
- package/assets/material/drone.svg +0 -1
- package/assets/material/drone_light.svg +0 -1
- package/assets/material/dune.svg +0 -1
- package/assets/material/edge.svg +0 -1
- package/assets/material/editorconfig.svg +0 -1
- package/assets/material/ejs.svg +0 -1
- package/assets/material/elixir.svg +0 -1
- package/assets/material/elm.svg +0 -1
- package/assets/material/email.svg +0 -1
- package/assets/material/ember.svg +0 -1
- package/assets/material/erlang.svg +0 -1
- package/assets/material/eslint.svg +0 -1
- package/assets/material/exe.svg +0 -1
- package/assets/material/fastlane.svg +0 -1
- package/assets/material/favicon.svg +0 -1
- package/assets/material/figma.svg +0 -1
- package/assets/material/file.svg +0 -1
- package/assets/material/firebase.svg +0 -1
- package/assets/material/flash.svg +0 -1
- package/assets/material/flow.svg +0 -1
- package/assets/material/folder-admin-open.svg +0 -1
- package/assets/material/folder-admin.svg +0 -1
- package/assets/material/folder-android-open.svg +0 -1
- package/assets/material/folder-android.svg +0 -1
- package/assets/material/folder-angular-open.svg +0 -1
- package/assets/material/folder-angular.svg +0 -1
- package/assets/material/folder-animation-open.svg +0 -1
- package/assets/material/folder-animation.svg +0 -1
- package/assets/material/folder-ansible-open.svg +0 -1
- package/assets/material/folder-ansible.svg +0 -1
- package/assets/material/folder-api-open.svg +0 -1
- package/assets/material/folder-api.svg +0 -1
- package/assets/material/folder-apollo-open.svg +0 -1
- package/assets/material/folder-apollo.svg +0 -1
- package/assets/material/folder-app-open.svg +0 -1
- package/assets/material/folder-app.svg +0 -1
- package/assets/material/folder-archive-open.svg +0 -1
- package/assets/material/folder-archive.svg +0 -1
- package/assets/material/folder-audio-open.svg +0 -1
- package/assets/material/folder-audio.svg +0 -1
- package/assets/material/folder-aurelia-open.svg +0 -1
- package/assets/material/folder-aurelia.svg +0 -1
- package/assets/material/folder-aws-open.svg +0 -1
- package/assets/material/folder-aws.svg +0 -1
- package/assets/material/folder-azure-pipelines-open.svg +0 -1
- package/assets/material/folder-azure-pipelines.svg +0 -1
- package/assets/material/folder-base-open.svg +0 -1
- package/assets/material/folder-base.svg +0 -1
- package/assets/material/folder-batch-open.svg +0 -1
- package/assets/material/folder-batch.svg +0 -1
- package/assets/material/folder-benchmark-open.svg +0 -1
- package/assets/material/folder-benchmark.svg +0 -1
- package/assets/material/folder-bower-open.svg +0 -1
- package/assets/material/folder-bower.svg +0 -1
- package/assets/material/folder-buildkite-open.svg +0 -1
- package/assets/material/folder-buildkite.svg +0 -1
- package/assets/material/folder-cart-open.svg +0 -1
- package/assets/material/folder-cart.svg +0 -1
- package/assets/material/folder-changesets-open.svg +0 -5
- package/assets/material/folder-changesets.svg +0 -2
- package/assets/material/folder-ci-open.svg +0 -1
- package/assets/material/folder-ci.svg +0 -1
- package/assets/material/folder-circleci-open.svg +0 -1
- package/assets/material/folder-circleci.svg +0 -1
- package/assets/material/folder-class-open.svg +0 -1
- package/assets/material/folder-class.svg +0 -1
- package/assets/material/folder-client-open.svg +0 -1
- package/assets/material/folder-client.svg +0 -1
- package/assets/material/folder-cluster-open.svg +0 -1
- package/assets/material/folder-cluster.svg +0 -1
- package/assets/material/folder-cobol-open.svg +0 -1
- package/assets/material/folder-cobol.svg +0 -1
- package/assets/material/folder-command-open.svg +0 -1
- package/assets/material/folder-command.svg +0 -1
- package/assets/material/folder-components-open.svg +0 -1
- package/assets/material/folder-components.svg +0 -1
- package/assets/material/folder-config-open.svg +0 -1
- package/assets/material/folder-config.svg +0 -1
- package/assets/material/folder-connection-open.svg +0 -1
- package/assets/material/folder-connection.svg +0 -1
- package/assets/material/folder-constant-open.svg +0 -1
- package/assets/material/folder-constant.svg +0 -1
- package/assets/material/folder-container-open.svg +0 -1
- package/assets/material/folder-container.svg +0 -1
- package/assets/material/folder-content-open.svg +0 -1
- package/assets/material/folder-content.svg +0 -1
- package/assets/material/folder-context-open.svg +0 -1
- package/assets/material/folder-context.svg +0 -1
- package/assets/material/folder-contract-open.svg +0 -1
- package/assets/material/folder-contract.svg +0 -1
- package/assets/material/folder-controller-open.svg +0 -1
- package/assets/material/folder-controller.svg +0 -1
- package/assets/material/folder-core-open.svg +0 -1
- package/assets/material/folder-core.svg +0 -1
- package/assets/material/folder-coverage-open.svg +0 -1
- package/assets/material/folder-coverage.svg +0 -1
- package/assets/material/folder-css-open.svg +0 -1
- package/assets/material/folder-css.svg +0 -1
- package/assets/material/folder-custom-open.svg +0 -1
- package/assets/material/folder-custom.svg +0 -1
- package/assets/material/folder-cypress-open.svg +0 -1
- package/assets/material/folder-cypress.svg +0 -1
- package/assets/material/folder-database-open.svg +0 -1
- package/assets/material/folder-database.svg +0 -1
- package/assets/material/folder-debug-open.svg +0 -1
- package/assets/material/folder-debug.svg +0 -1
- package/assets/material/folder-decorators-open.svg +0 -2
- package/assets/material/folder-decorators.svg +0 -5
- package/assets/material/folder-delta-open.svg +0 -1
- package/assets/material/folder-delta.svg +0 -1
- package/assets/material/folder-dist-open.svg +0 -1
- package/assets/material/folder-dist.svg +0 -1
- package/assets/material/folder-docker-open.svg +0 -1
- package/assets/material/folder-docker.svg +0 -1
- package/assets/material/folder-docs-open.svg +0 -1
- package/assets/material/folder-docs.svg +0 -1
- package/assets/material/folder-download-open.svg +0 -1
- package/assets/material/folder-download.svg +0 -1
- package/assets/material/folder-dump-open.svg +0 -1
- package/assets/material/folder-dump.svg +0 -1
- package/assets/material/folder-environment-open.svg +0 -1
- package/assets/material/folder-environment.svg +0 -1
- package/assets/material/folder-error-open.svg +0 -1
- package/assets/material/folder-error.svg +0 -1
- package/assets/material/folder-event-open.svg +0 -1
- package/assets/material/folder-event.svg +0 -1
- package/assets/material/folder-examples-open.svg +0 -1
- package/assets/material/folder-examples.svg +0 -1
- package/assets/material/folder-expo-open.svg +0 -1
- package/assets/material/folder-expo.svg +0 -1
- package/assets/material/folder-export-open.svg +0 -1
- package/assets/material/folder-export.svg +0 -1
- package/assets/material/folder-fastlane-open.svg +0 -1
- package/assets/material/folder-fastlane.svg +0 -1
- package/assets/material/folder-firebase-open.svg +0 -1
- package/assets/material/folder-firebase.svg +0 -1
- package/assets/material/folder-flow-open.svg +0 -1
- package/assets/material/folder-flow.svg +0 -1
- package/assets/material/folder-font-open.svg +0 -1
- package/assets/material/folder-font.svg +0 -1
- package/assets/material/folder-functions-open.svg +0 -1
- package/assets/material/folder-functions.svg +0 -1
- package/assets/material/folder-gamemaker-open.svg +0 -2
- package/assets/material/folder-gamemaker.svg +0 -2
- package/assets/material/folder-generator-open.svg +0 -1
- package/assets/material/folder-generator.svg +0 -1
- package/assets/material/folder-git-open.svg +0 -1
- package/assets/material/folder-git.svg +0 -1
- package/assets/material/folder-github-open.svg +0 -1
- package/assets/material/folder-github.svg +0 -1
- package/assets/material/folder-gitlab-open.svg +0 -1
- package/assets/material/folder-gitlab.svg +0 -1
- package/assets/material/folder-global-open.svg +0 -1
- package/assets/material/folder-global.svg +0 -1
- package/assets/material/folder-godot-open.svg +0 -2
- package/assets/material/folder-godot.svg +0 -8
- package/assets/material/folder-gradle-open.svg +0 -1
- package/assets/material/folder-gradle.svg +0 -1
- package/assets/material/folder-graphql-open.svg +0 -1
- package/assets/material/folder-graphql.svg +0 -1
- package/assets/material/folder-guard-open.svg +0 -1
- package/assets/material/folder-guard.svg +0 -1
- package/assets/material/folder-gulp-open.svg +0 -1
- package/assets/material/folder-gulp.svg +0 -1
- package/assets/material/folder-helper-open.svg +0 -1
- package/assets/material/folder-helper.svg +0 -1
- package/assets/material/folder-home-open.svg +0 -1
- package/assets/material/folder-home.svg +0 -1
- package/assets/material/folder-hook-open.svg +0 -1
- package/assets/material/folder-hook.svg +0 -1
- package/assets/material/folder-husky-open.svg +0 -1
- package/assets/material/folder-husky.svg +0 -1
- package/assets/material/folder-i18n-open.svg +0 -1
- package/assets/material/folder-i18n.svg +0 -1
- package/assets/material/folder-images-open.svg +0 -1
- package/assets/material/folder-images.svg +0 -1
- package/assets/material/folder-import-open.svg +0 -1
- package/assets/material/folder-import.svg +0 -1
- package/assets/material/folder-include-open.svg +0 -1
- package/assets/material/folder-include.svg +0 -1
- package/assets/material/folder-intellij-open.svg +0 -1
- package/assets/material/folder-intellij-open_light.svg +0 -1
- package/assets/material/folder-intellij.svg +0 -1
- package/assets/material/folder-intellij_light.svg +0 -1
- package/assets/material/folder-interface-open.svg +0 -1
- package/assets/material/folder-interface.svg +0 -1
- package/assets/material/folder-ios-open.svg +0 -1
- package/assets/material/folder-ios.svg +0 -1
- package/assets/material/folder-java-open.svg +0 -1
- package/assets/material/folder-java.svg +0 -1
- package/assets/material/folder-javascript-open.svg +0 -1
- package/assets/material/folder-javascript.svg +0 -1
- package/assets/material/folder-jinja-open.svg +0 -1
- package/assets/material/folder-jinja-open_light.svg +0 -1
- package/assets/material/folder-jinja.svg +0 -1
- package/assets/material/folder-jinja_light.svg +0 -1
- package/assets/material/folder-job-open.svg +0 -1
- package/assets/material/folder-job.svg +0 -1
- package/assets/material/folder-json-open.svg +0 -1
- package/assets/material/folder-json.svg +0 -1
- package/assets/material/folder-keys-open.svg +0 -1
- package/assets/material/folder-keys.svg +0 -1
- package/assets/material/folder-kubernetes-open.svg +0 -1
- package/assets/material/folder-kubernetes.svg +0 -1
- package/assets/material/folder-layout-open.svg +0 -1
- package/assets/material/folder-layout.svg +0 -1
- package/assets/material/folder-less-open.svg +0 -1
- package/assets/material/folder-less.svg +0 -1
- package/assets/material/folder-lib-open.svg +0 -1
- package/assets/material/folder-lib.svg +0 -1
- package/assets/material/folder-log-open.svg +0 -1
- package/assets/material/folder-log.svg +0 -1
- package/assets/material/folder-lua-open.svg +0 -1
- package/assets/material/folder-lua.svg +0 -1
- package/assets/material/folder-mail-open.svg +0 -1
- package/assets/material/folder-mail.svg +0 -1
- package/assets/material/folder-mappings-open.svg +0 -1
- package/assets/material/folder-mappings.svg +0 -1
- package/assets/material/folder-markdown-open.svg +0 -1
- package/assets/material/folder-markdown.svg +0 -1
- package/assets/material/folder-mercurial-open.svg +0 -5
- package/assets/material/folder-mercurial.svg +0 -2
- package/assets/material/folder-messages-open.svg +0 -1
- package/assets/material/folder-messages.svg +0 -1
- package/assets/material/folder-meta-open.svg +0 -1
- package/assets/material/folder-meta.svg +0 -1
- package/assets/material/folder-middleware-open.svg +0 -1
- package/assets/material/folder-middleware.svg +0 -1
- package/assets/material/folder-mjml-open.svg +0 -1
- package/assets/material/folder-mjml.svg +0 -1
- package/assets/material/folder-mobile-open.svg +0 -1
- package/assets/material/folder-mobile.svg +0 -1
- package/assets/material/folder-mock-open.svg +0 -1
- package/assets/material/folder-mock.svg +0 -1
- package/assets/material/folder-netlify-open.svg +0 -5
- package/assets/material/folder-netlify.svg +0 -2
- package/assets/material/folder-next-open.svg +0 -1
- package/assets/material/folder-next.svg +0 -1
- package/assets/material/folder-ngrx-actions-open.svg +0 -1
- package/assets/material/folder-ngrx-actions.svg +0 -1
- package/assets/material/folder-ngrx-effects-open.svg +0 -1
- package/assets/material/folder-ngrx-effects.svg +0 -1
- package/assets/material/folder-ngrx-entities-open.svg +0 -1
- package/assets/material/folder-ngrx-entities.svg +0 -1
- package/assets/material/folder-ngrx-reducer-open.svg +0 -1
- package/assets/material/folder-ngrx-reducer.svg +0 -1
- package/assets/material/folder-ngrx-selectors-open.svg +0 -1
- package/assets/material/folder-ngrx-selectors.svg +0 -1
- package/assets/material/folder-ngrx-state-open.svg +0 -1
- package/assets/material/folder-ngrx-state.svg +0 -1
- package/assets/material/folder-ngrx-store-open.svg +0 -1
- package/assets/material/folder-ngrx-store.svg +0 -1
- package/assets/material/folder-node-open.svg +0 -1
- package/assets/material/folder-node.svg +0 -1
- package/assets/material/folder-nuxt-open.svg +0 -1
- package/assets/material/folder-nuxt.svg +0 -1
- package/assets/material/folder-open.svg +0 -1
- package/assets/material/folder-other-open.svg +0 -1
- package/assets/material/folder-other.svg +0 -1
- package/assets/material/folder-packages-open.svg +0 -1
- package/assets/material/folder-packages.svg +0 -1
- package/assets/material/folder-pdf-open.svg +0 -1
- package/assets/material/folder-pdf.svg +0 -1
- package/assets/material/folder-php-open.svg +0 -1
- package/assets/material/folder-php.svg +0 -1
- package/assets/material/folder-phpmailer-open.svg +0 -1
- package/assets/material/folder-phpmailer.svg +0 -1
- package/assets/material/folder-pipe-open.svg +0 -1
- package/assets/material/folder-pipe.svg +0 -1
- package/assets/material/folder-plastic-open.svg +0 -8
- package/assets/material/folder-plastic.svg +0 -2
- package/assets/material/folder-plugin-open.svg +0 -1
- package/assets/material/folder-plugin.svg +0 -1
- package/assets/material/folder-prisma-open.svg +0 -1
- package/assets/material/folder-prisma.svg +0 -1
- package/assets/material/folder-private-open.svg +0 -1
- package/assets/material/folder-private.svg +0 -1
- package/assets/material/folder-project-open.svg +0 -1
- package/assets/material/folder-project.svg +0 -1
- package/assets/material/folder-proto-open.svg +0 -1
- package/assets/material/folder-proto.svg +0 -1
- package/assets/material/folder-public-open.svg +0 -1
- package/assets/material/folder-public.svg +0 -1
- package/assets/material/folder-python-open.svg +0 -1
- package/assets/material/folder-python.svg +0 -1
- package/assets/material/folder-quasar-open.svg +0 -1
- package/assets/material/folder-quasar.svg +0 -1
- package/assets/material/folder-queue-open.svg +0 -1
- package/assets/material/folder-queue.svg +0 -1
- package/assets/material/folder-react-components-open.svg +0 -1
- package/assets/material/folder-react-components.svg +0 -1
- package/assets/material/folder-redux-actions-open.svg +0 -1
- package/assets/material/folder-redux-actions.svg +0 -1
- package/assets/material/folder-redux-reducer-open.svg +0 -1
- package/assets/material/folder-redux-reducer.svg +0 -1
- package/assets/material/folder-redux-selector-open.svg +0 -1
- package/assets/material/folder-redux-selector.svg +0 -1
- package/assets/material/folder-redux-store-open.svg +0 -1
- package/assets/material/folder-redux-store.svg +0 -1
- package/assets/material/folder-resolver-open.svg +0 -1
- package/assets/material/folder-resolver.svg +0 -1
- package/assets/material/folder-resource-open.svg +0 -1
- package/assets/material/folder-resource.svg +0 -1
- package/assets/material/folder-review-open.svg +0 -1
- package/assets/material/folder-review.svg +0 -1
- package/assets/material/folder-root-open.svg +0 -1
- package/assets/material/folder-root.svg +0 -1
- package/assets/material/folder-routes-open.svg +0 -1
- package/assets/material/folder-routes.svg +0 -1
- package/assets/material/folder-rules-open.svg +0 -1
- package/assets/material/folder-rules.svg +0 -1
- package/assets/material/folder-sass-open.svg +0 -1
- package/assets/material/folder-sass.svg +0 -1
- package/assets/material/folder-scala-open.svg +0 -1
- package/assets/material/folder-scala.svg +0 -1
- package/assets/material/folder-scripts-open.svg +0 -1
- package/assets/material/folder-scripts.svg +0 -1
- package/assets/material/folder-secure-open.svg +0 -1
- package/assets/material/folder-secure.svg +0 -1
- package/assets/material/folder-server-open.svg +0 -1
- package/assets/material/folder-server.svg +0 -1
- package/assets/material/folder-serverless-open.svg +0 -1
- package/assets/material/folder-serverless.svg +0 -1
- package/assets/material/folder-shader-open.svg +0 -1
- package/assets/material/folder-shader.svg +0 -1
- package/assets/material/folder-shared-open.svg +0 -1
- package/assets/material/folder-shared.svg +0 -1
- package/assets/material/folder-src-open.svg +0 -1
- package/assets/material/folder-src.svg +0 -1
- package/assets/material/folder-stack-open.svg +0 -1
- package/assets/material/folder-stack.svg +0 -1
- package/assets/material/folder-stencil-open.svg +0 -1
- package/assets/material/folder-stencil.svg +0 -1
- package/assets/material/folder-storybook-open.svg +0 -1
- package/assets/material/folder-storybook.svg +0 -1
- package/assets/material/folder-stylus-open.svg +0 -1
- package/assets/material/folder-stylus.svg +0 -1
- package/assets/material/folder-sublime-open.svg +0 -1
- package/assets/material/folder-sublime.svg +0 -1
- package/assets/material/folder-supabase-open.svg +0 -5
- package/assets/material/folder-supabase.svg +0 -2
- package/assets/material/folder-svelte-open.svg +0 -1
- package/assets/material/folder-svelte.svg +0 -1
- package/assets/material/folder-svg-open.svg +0 -1
- package/assets/material/folder-svg.svg +0 -1
- package/assets/material/folder-syntax-open.svg +0 -1
- package/assets/material/folder-syntax.svg +0 -1
- package/assets/material/folder-target-open.svg +0 -1
- package/assets/material/folder-target.svg +0 -1
- package/assets/material/folder-tasks-open.svg +0 -1
- package/assets/material/folder-tasks.svg +0 -1
- package/assets/material/folder-temp-open.svg +0 -1
- package/assets/material/folder-temp.svg +0 -1
- package/assets/material/folder-template-open.svg +0 -1
- package/assets/material/folder-template.svg +0 -1
- package/assets/material/folder-terraform-open.svg +0 -1
- package/assets/material/folder-terraform.svg +0 -1
- package/assets/material/folder-test-open.svg +0 -1
- package/assets/material/folder-test.svg +0 -1
- package/assets/material/folder-theme-open.svg +0 -1
- package/assets/material/folder-theme.svg +0 -1
- package/assets/material/folder-tools-open.svg +0 -1
- package/assets/material/folder-tools.svg +0 -1
- package/assets/material/folder-typescript-open.svg +0 -1
- package/assets/material/folder-typescript.svg +0 -1
- package/assets/material/folder-unity-open.svg +0 -1
- package/assets/material/folder-unity.svg +0 -1
- package/assets/material/folder-update-open.svg +0 -1
- package/assets/material/folder-update.svg +0 -1
- package/assets/material/folder-upload-open.svg +0 -1
- package/assets/material/folder-upload.svg +0 -1
- package/assets/material/folder-utils-open.svg +0 -1
- package/assets/material/folder-utils.svg +0 -1
- package/assets/material/folder-vercel-open.svg +0 -1
- package/assets/material/folder-vercel.svg +0 -1
- package/assets/material/folder-verdaccio-open.svg +0 -1
- package/assets/material/folder-verdaccio.svg +0 -1
- package/assets/material/folder-video-open.svg +0 -1
- package/assets/material/folder-video.svg +0 -1
- package/assets/material/folder-views-open.svg +0 -1
- package/assets/material/folder-views.svg +0 -1
- package/assets/material/folder-vm-open.svg +0 -1
- package/assets/material/folder-vm.svg +0 -1
- package/assets/material/folder-vscode-open.svg +0 -1
- package/assets/material/folder-vscode.svg +0 -1
- package/assets/material/folder-vue-directives-open.svg +0 -1
- package/assets/material/folder-vue-directives.svg +0 -1
- package/assets/material/folder-vue-open.svg +0 -1
- package/assets/material/folder-vue.svg +0 -1
- package/assets/material/folder-vuepress-open.svg +0 -1
- package/assets/material/folder-vuepress.svg +0 -1
- package/assets/material/folder-vuex-store-open.svg +0 -1
- package/assets/material/folder-vuex-store.svg +0 -1
- package/assets/material/folder-wakatime-open.svg +0 -1
- package/assets/material/folder-wakatime.svg +0 -1
- package/assets/material/folder-webpack-open.svg +0 -1
- package/assets/material/folder-webpack.svg +0 -1
- package/assets/material/folder-wordpress-open.svg +0 -1
- package/assets/material/folder-wordpress.svg +0 -1
- package/assets/material/folder-yarn-open.svg +0 -1
- package/assets/material/folder-yarn.svg +0 -1
- package/assets/material/folder.svg +0 -1
- package/assets/material/font.svg +0 -1
- package/assets/material/forth.svg +0 -1
- package/assets/material/fortran.svg +0 -1
- package/assets/material/foxpro.svg +0 -1
- package/assets/material/fsharp.svg +0 -1
- package/assets/material/fusebox.svg +0 -1
- package/assets/material/gamemaker.svg +0 -4
- package/assets/material/gatsby.svg +0 -1
- package/assets/material/gcp.svg +0 -1
- package/assets/material/gemfile.svg +0 -1
- package/assets/material/gemini.svg +0 -1
- package/assets/material/git.svg +0 -1
- package/assets/material/gitlab.svg +0 -1
- package/assets/material/gitpod.svg +0 -1
- package/assets/material/gleam.svg +0 -1
- package/assets/material/go-mod.svg +0 -1
- package/assets/material/go.svg +0 -1
- package/assets/material/go_gopher.svg +0 -1
- package/assets/material/godot-assets.svg +0 -7
- package/assets/material/godot.svg +0 -7
- package/assets/material/gradle.svg +0 -1
- package/assets/material/grain.svg +0 -1
- package/assets/material/graphcool.svg +0 -1
- package/assets/material/graphql.svg +0 -1
- package/assets/material/gridsome.svg +0 -1
- package/assets/material/groovy.svg +0 -1
- package/assets/material/grunt.svg +0 -1
- package/assets/material/gulp.svg +0 -1
- package/assets/material/h.svg +0 -1
- package/assets/material/hack.svg +0 -1
- package/assets/material/haml.svg +0 -1
- package/assets/material/handlebars.svg +0 -1
- package/assets/material/hardhat.svg +0 -1
- package/assets/material/haskell.svg +0 -1
- package/assets/material/haxe.svg +0 -1
- package/assets/material/hcl.svg +0 -1
- package/assets/material/hcl_light.svg +0 -1
- package/assets/material/helm.svg +0 -1
- package/assets/material/heroku.svg +0 -1
- package/assets/material/hex.svg +0 -1
- package/assets/material/horusec.svg +0 -1
- package/assets/material/hpp.svg +0 -1
- package/assets/material/html.svg +0 -1
- package/assets/material/http.svg +0 -1
- package/assets/material/husky.svg +0 -1
- package/assets/material/i18n.svg +0 -1
- package/assets/material/idris.svg +0 -1
- package/assets/material/ifanr-cloud.svg +0 -10
- package/assets/material/image.svg +0 -1
- package/assets/material/imba.svg +0 -1
- package/assets/material/ionic.svg +0 -1
- package/assets/material/istanbul.svg +0 -1
- package/assets/material/jar.svg +0 -1
- package/assets/material/java.svg +0 -1
- package/assets/material/javaclass.svg +0 -1
- package/assets/material/javascript-map.svg +0 -1
- package/assets/material/javascript.svg +0 -1
- package/assets/material/jenkins.svg +0 -1
- package/assets/material/jest.svg +0 -1
- package/assets/material/jinja.svg +0 -1
- package/assets/material/jinja_light.svg +0 -1
- package/assets/material/jsconfig.svg +0 -1
- package/assets/material/json.svg +0 -1
- package/assets/material/julia.svg +0 -1
- package/assets/material/jupyter.svg +0 -1
- package/assets/material/karma.svg +0 -1
- package/assets/material/key.svg +0 -1
- package/assets/material/kivy.svg +0 -1
- package/assets/material/kl.svg +0 -1
- package/assets/material/kotlin.svg +0 -1
- package/assets/material/kusto.svg +0 -1
- package/assets/material/laravel.svg +0 -1
- package/assets/material/lerna.svg +0 -1
- package/assets/material/less.svg +0 -1
- package/assets/material/lib.svg +0 -1
- package/assets/material/lighthouse.svg +0 -1
- package/assets/material/lilypond.svg +0 -1
- package/assets/material/liquid.svg +0 -1
- package/assets/material/lisp.svg +0 -1
- package/assets/material/livescript.svg +0 -1
- package/assets/material/lock.svg +0 -1
- package/assets/material/log.svg +0 -1
- package/assets/material/lolcode.svg +0 -1
- package/assets/material/lua.svg +0 -1
- package/assets/material/makefile.svg +0 -1
- package/assets/material/markdown.svg +0 -1
- package/assets/material/markojs.svg +0 -1
- package/assets/material/mathematica.svg +0 -1
- package/assets/material/matlab.svg +0 -1
- package/assets/material/maven.svg +0 -1
- package/assets/material/mdsvex.svg +0 -1
- package/assets/material/mdx.svg +0 -1
- package/assets/material/mercurial.svg +0 -6
- package/assets/material/merlin.svg +0 -1
- package/assets/material/mermaid.svg +0 -4
- package/assets/material/meson.svg +0 -1
- package/assets/material/minecraft.svg +0 -1
- package/assets/material/mint.svg +0 -1
- package/assets/material/mjml.svg +0 -1
- package/assets/material/mocha.svg +0 -1
- package/assets/material/modernizr.svg +0 -1
- package/assets/material/moonscript.svg +0 -1
- package/assets/material/mxml.svg +0 -1
- package/assets/material/nano-staged.svg +0 -1
- package/assets/material/nano-staged_light.svg +0 -1
- package/assets/material/ndst.svg +0 -1
- package/assets/material/nest-controller.svg +0 -1
- package/assets/material/nest-decorator.svg +0 -1
- package/assets/material/nest-filter.svg +0 -1
- package/assets/material/nest-gateway.svg +0 -1
- package/assets/material/nest-guard.svg +0 -1
- package/assets/material/nest-middleware.svg +0 -1
- package/assets/material/nest-module.svg +0 -1
- package/assets/material/nest-pipe.svg +0 -1
- package/assets/material/nest-resolver.svg +0 -1
- package/assets/material/nest-service.svg +0 -1
- package/assets/material/nest.svg +0 -1
- package/assets/material/netlify.svg +0 -7
- package/assets/material/netlify_light.svg +0 -7
- package/assets/material/next.svg +0 -1
- package/assets/material/next_light.svg +0 -1
- package/assets/material/nginx.svg +0 -1
- package/assets/material/ngrx-actions.svg +0 -1
- package/assets/material/ngrx-effects.svg +0 -1
- package/assets/material/ngrx-entity.svg +0 -1
- package/assets/material/ngrx-reducer.svg +0 -1
- package/assets/material/ngrx-selectors.svg +0 -1
- package/assets/material/ngrx-state.svg +0 -1
- package/assets/material/nim.svg +0 -1
- package/assets/material/nix.svg +0 -1
- package/assets/material/nodejs.svg +0 -1
- package/assets/material/nodejs_alt.svg +0 -1
- package/assets/material/nodemon.svg +0 -1
- package/assets/material/npm.svg +0 -1
- package/assets/material/nrwl.svg +0 -1
- package/assets/material/nuget.svg +0 -1
- package/assets/material/nunjucks.svg +0 -1
- package/assets/material/nuxt.svg +0 -1
- package/assets/material/objective-c.svg +0 -4
- package/assets/material/objective-cpp.svg +0 -1
- package/assets/material/ocaml.svg +0 -1
- package/assets/material/odin.svg +0 -1
- package/assets/material/opa.svg +0 -1
- package/assets/material/opam.svg +0 -1
- package/assets/material/otne.svg +0 -1
- package/assets/material/parcel.svg +0 -1
- package/assets/material/pascal.svg +0 -6
- package/assets/material/pawn.svg +0 -1
- package/assets/material/pdf.svg +0 -1
- package/assets/material/percy.svg +0 -1
- package/assets/material/perl.svg +0 -1
- package/assets/material/php-cs-fixer.svg +0 -1
- package/assets/material/php.svg +0 -1
- package/assets/material/php_elephant.svg +0 -1
- package/assets/material/php_elephant_pink.svg +0 -1
- package/assets/material/phpunit.svg +0 -1
- package/assets/material/pinejs.svg +0 -1
- package/assets/material/pipeline.svg +0 -1
- package/assets/material/plastic.svg +0 -7
- package/assets/material/playwright.svg +0 -1
- package/assets/material/plop.svg +0 -1
- package/assets/material/pnpm.svg +0 -1
- package/assets/material/pnpm_light.svg +0 -1
- package/assets/material/poetry.svg +0 -1
- package/assets/material/postcss.svg +0 -1
- package/assets/material/posthtml.svg +0 -1
- package/assets/material/powerpoint.svg +0 -1
- package/assets/material/powershell.svg +0 -1
- package/assets/material/prettier.svg +0 -1
- package/assets/material/prisma.svg +0 -1
- package/assets/material/processing.svg +0 -1
- package/assets/material/prolog.svg +0 -1
- package/assets/material/proto.svg +0 -1
- package/assets/material/protractor.svg +0 -1
- package/assets/material/pug.svg +0 -1
- package/assets/material/puppet.svg +0 -1
- package/assets/material/purescript.svg +0 -1
- package/assets/material/python-misc.svg +0 -1
- package/assets/material/python.svg +0 -1
- package/assets/material/qsharp.svg +0 -1
- package/assets/material/quasar.svg +0 -1
- package/assets/material/qwik.svg +0 -2
- package/assets/material/r.svg +0 -1
- package/assets/material/racket.svg +0 -1
- package/assets/material/raml.svg +0 -1
- package/assets/material/razor.svg +0 -1
- package/assets/material/rc.svg +0 -2
- package/assets/material/react.svg +0 -1
- package/assets/material/react_ts.svg +0 -1
- package/assets/material/readme.svg +0 -1
- package/assets/material/reason.svg +0 -1
- package/assets/material/red.svg +0 -1
- package/assets/material/redux-action.svg +0 -1
- package/assets/material/redux-reducer.svg +0 -1
- package/assets/material/redux-selector.svg +0 -1
- package/assets/material/redux-store.svg +0 -1
- package/assets/material/remix.svg +0 -1
- package/assets/material/remix_light.svg +0 -1
- package/assets/material/renovate.svg +0 -1
- package/assets/material/replit.svg +0 -1
- package/assets/material/rescript-interface.svg +0 -1
- package/assets/material/rescript.svg +0 -1
- package/assets/material/restql.svg +0 -1
- package/assets/material/riot.svg +0 -1
- package/assets/material/roadmap.svg +0 -1
- package/assets/material/robot.svg +0 -1
- package/assets/material/robots.svg +0 -1
- package/assets/material/rollup.svg +0 -1
- package/assets/material/rome.svg +0 -1
- package/assets/material/routing.svg +0 -1
- package/assets/material/rubocop.svg +0 -1
- package/assets/material/rubocop_light.svg +0 -1
- package/assets/material/ruby.svg +0 -1
- package/assets/material/rust.svg +0 -1
- package/assets/material/salesforce.svg +0 -1
- package/assets/material/san.svg +0 -1
- package/assets/material/sas.svg +0 -1
- package/assets/material/sass.svg +0 -1
- package/assets/material/sbt.svg +0 -1
- package/assets/material/scala.svg +0 -1
- package/assets/material/scheme.svg +0 -1
- package/assets/material/search.svg +0 -1
- package/assets/material/semantic-release.svg +0 -1
- package/assets/material/semantic-release_light.svg +0 -1
- package/assets/material/sentry.svg +0 -1
- package/assets/material/sequelize.svg +0 -1
- package/assets/material/serverless.svg +0 -1
- package/assets/material/settings.svg +0 -1
- package/assets/material/shader.svg +0 -1
- package/assets/material/shaderlab.svg +0 -1
- package/assets/material/silverstripe.svg +0 -1
- package/assets/material/siyuan.svg +0 -1
- package/assets/material/sketch.svg +0 -1
- package/assets/material/slim.svg +0 -1
- package/assets/material/slug.svg +0 -1
- package/assets/material/smarty.svg +0 -1
- package/assets/material/sml.svg +0 -1
- package/assets/material/snowpack.svg +0 -1
- package/assets/material/snowpack_light.svg +0 -1
- package/assets/material/snyk.svg +0 -1
- package/assets/material/solidity.svg +0 -1
- package/assets/material/sonarcloud.svg +0 -4
- package/assets/material/steadybit.svg +0 -1
- package/assets/material/stencil.svg +0 -1
- package/assets/material/stitches.svg +0 -1
- package/assets/material/stitches_light.svg +0 -1
- package/assets/material/storybook.svg +0 -1
- package/assets/material/stryker.svg +0 -1
- package/assets/material/stylable.svg +0 -10
- package/assets/material/stylelint.svg +0 -1
- package/assets/material/stylelint_light.svg +0 -1
- package/assets/material/stylus.svg +0 -1
- package/assets/material/sublime.svg +0 -1
- package/assets/material/supabase.svg +0 -4
- package/assets/material/svelte.svg +0 -1
- package/assets/material/svg.svg +0 -1
- package/assets/material/svgo.svg +0 -1
- package/assets/material/svgr.svg +0 -1
- package/assets/material/swc.svg +0 -1
- package/assets/material/swift.svg +0 -1
- package/assets/material/table.svg +0 -1
- package/assets/material/tailwindcss.svg +0 -1
- package/assets/material/tauri.svg +0 -1
- package/assets/material/tcl.svg +0 -1
- package/assets/material/teal.svg +0 -1
- package/assets/material/template.svg +0 -1
- package/assets/material/terraform.svg +0 -1
- package/assets/material/test-js.svg +0 -1
- package/assets/material/test-jsx.svg +0 -1
- package/assets/material/test-ts.svg +0 -1
- package/assets/material/tex.svg +0 -1
- package/assets/material/textlint.svg +0 -1
- package/assets/material/tilt.svg +0 -1
- package/assets/material/tldraw.svg +0 -4
- package/assets/material/tldraw_light.svg +0 -4
- package/assets/material/tobi.svg +0 -1
- package/assets/material/tobimake.svg +0 -1
- package/assets/material/todo.svg +0 -1
- package/assets/material/travis.svg +0 -1
- package/assets/material/tree.svg +0 -1
- package/assets/material/tsconfig.svg +0 -1
- package/assets/material/tune.svg +0 -1
- package/assets/material/turborepo.svg +0 -1
- package/assets/material/turborepo_light.svg +0 -1
- package/assets/material/twig.svg +0 -1
- package/assets/material/twine.svg +0 -1
- package/assets/material/typescript-def.svg +0 -1
- package/assets/material/typescript.svg +0 -1
- package/assets/material/typst.svg +0 -2
- package/assets/material/uml.svg +0 -1
- package/assets/material/uml_light.svg +0 -1
- package/assets/material/url.svg +0 -1
- package/assets/material/vagrant.svg +0 -1
- package/assets/material/vala.svg +0 -1
- package/assets/material/velocity.svg +0 -1
- package/assets/material/vercel.svg +0 -1
- package/assets/material/vercel_light.svg +0 -1
- package/assets/material/verdaccio.svg +0 -1
- package/assets/material/verilog.svg +0 -1
- package/assets/material/vfl.svg +0 -1
- package/assets/material/video.svg +0 -1
- package/assets/material/vim.svg +0 -1
- package/assets/material/virtual.svg +0 -1
- package/assets/material/visualstudio.svg +0 -1
- package/assets/material/vite.svg +0 -1
- package/assets/material/vitest.svg +0 -6
- package/assets/material/vlang.svg +0 -1
- package/assets/material/vscode.svg +0 -1
- package/assets/material/vue-config.svg +0 -1
- package/assets/material/vue.svg +0 -1
- package/assets/material/vuex-store.svg +0 -1
- package/assets/material/wakatime.svg +0 -1
- package/assets/material/wakatime_light.svg +0 -1
- package/assets/material/wallaby.svg +0 -1
- package/assets/material/watchman.svg +0 -1
- package/assets/material/webassembly.svg +0 -1
- package/assets/material/webhint.svg +0 -1
- package/assets/material/webpack.svg +0 -1
- package/assets/material/wepy.svg +0 -1
- package/assets/material/windicss.svg +0 -1
- package/assets/material/wolframlanguage.svg +0 -1
- package/assets/material/word.svg +0 -1
- package/assets/material/xaml.svg +0 -1
- package/assets/material/xml.svg +0 -1
- package/assets/material/yaml.svg +0 -1
- package/assets/material/yang.svg +0 -1
- package/assets/material/yarn.svg +0 -1
- package/assets/material/zig.svg +0 -1
- package/assets/material/zip.svg +0 -1
- package/assets/pop/LICENSE +0 -2
- package/assets/pop/binary.svg +0 -1
- package/assets/pop/compressed.svg +0 -1
- package/assets/pop/database.svg +0 -1
- package/assets/pop/exts/7z.svg +0 -1
- package/assets/pop/exts/apk.svg +0 -1
- package/assets/pop/exts/arc.svg +0 -1
- package/assets/pop/exts/bz.svg +0 -1
- package/assets/pop/exts/deb.svg +0 -1
- package/assets/pop/exts/gz.svg +0 -1
- package/assets/pop/exts/pdf.svg +0 -1
- package/assets/pop/exts/rar.svg +0 -1
- package/assets/pop/exts/rpm.svg +0 -1
- package/assets/pop/exts/tar.svg +0 -1
- package/assets/pop/exts/xar.svg +0 -1
- package/assets/pop/exts/xz.svg +0 -1
- package/assets/pop/exts/zip.svg +0 -1
- package/assets/pop/folder-open.svg +0 -1
- package/assets/pop/folder.svg +0 -1
- package/assets/pop/generic.svg +0 -1
- package/assets/pop/presentation.svg +0 -1
- package/assets/pop/richtext.svg +0 -1
- package/assets/pop/spreadsheet.svg +0 -1
- package/assets/pop/text.svg +0 -1
- package/esm2022/components/lazy-loader/lazy-loader.component.mjs +0 -383
- package/esm2022/components/lazy-loader/lazy-loader.module.mjs +0 -33
- package/esm2022/components/lazy-loader/lazy-loader.service.mjs +0 -217
- package/esm2022/components/lazy-loader/types.mjs +0 -26
- package/esm2022/components/menu/menu.component.mjs +0 -433
- package/esm2022/components/parallax-card/parallax-card.component.mjs +0 -138
- package/esm2022/components/tooltip/tooltip.component.mjs +0 -205
- package/esm2022/components/types.mjs +0 -3
- package/esm2022/directives/image-cache.directive.mjs +0 -143
- package/esm2022/directives/menu.directive.mjs +0 -159
- package/esm2022/directives/tooltip.directive.mjs +0 -154
- package/esm2022/directives/utils.mjs +0 -120
- package/esm2022/pipes/html-bypass.pipe.mjs +0 -27
- package/esm2022/pipes/resource-bypass.pipe.mjs +0 -27
- package/esm2022/pipes/script-bypass.pipe.mjs +0 -27
- package/esm2022/pipes/style-bypass.pipe.mjs +0 -27
- package/esm2022/pipes/url-bypass.pipe.mjs +0 -27
- package/esm2022/public-api.mjs +0 -46
- package/esm2022/services/dependency.service.mjs +0 -55
- package/esm2022/services/dialog.service.mjs +0 -69
- package/esm2022/services/fetch.service.mjs +0 -74
- package/esm2022/services/file.service.mjs +0 -42
- package/esm2022/services/keyboard.service.mjs +0 -128
- package/esm2022/services/navigation.service.mjs +0 -52
- package/esm2022/services/theme.service.mjs +0 -64
- package/esm2022/types/menu.mjs +0 -2
- package/esm2022/types/popup.mjs +0 -2
- package/esm2022/types/tooltip.mjs +0 -2
- package/esm2022/utils/index.mjs +0 -205
- package/utils/index.d.ts +0 -128
- /package/{components → core/components}/lazy-loader/lazy-loader.component.d.ts +0 -0
- /package/{components → core/components}/lazy-loader/lazy-loader.module.d.ts +0 -0
- /package/{components → core/components}/lazy-loader/lazy-loader.service.d.ts +0 -0
- /package/{components → core/components}/lazy-loader/types.d.ts +0 -0
- /package/{components → core/components}/parallax-card/parallax-card.component.d.ts +0 -0
- /package/{directives → core/directives}/image-cache.directive.d.ts +0 -0
- /package/{directives → core/directives}/utils.d.ts +0 -0
- /package/{pipes → core/pipes}/html-bypass.pipe.d.ts +0 -0
- /package/{pipes → core/pipes}/resource-bypass.pipe.d.ts +0 -0
- /package/{pipes → core/pipes}/script-bypass.pipe.d.ts +0 -0
- /package/{pipes → core/pipes}/style-bypass.pipe.d.ts +0 -0
- /package/{pipes → core/pipes}/url-bypass.pipe.d.ts +0 -0
- /package/{services → core/services}/dependency.service.d.ts +0 -0
- /package/{services → core/services}/dialog.service.d.ts +0 -0
- /package/{services → core/services}/fetch.service.d.ts +0 -0
- /package/{services → core/services}/file.service.d.ts +0 -0
- /package/{services → core/services}/keyboard.service.d.ts +0 -0
- /package/{services → core/services}/theme.service.d.ts +0 -0
- /package/{types → core/types}/popup.d.ts +0 -0
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import { NgTemplateOutlet } from '@angular/common';
|
|
2
|
-
import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class ParallaxCardComponent {
|
|
5
|
-
get wrapper() { return this.element.nativeElement; }
|
|
6
|
-
get cardFront() { return this.wrapper.querySelector('.card.front'); }
|
|
7
|
-
get cardBack() { return this.wrapper.querySelector('.card.backface'); }
|
|
8
|
-
get backgroundElement() { return this.cardFront.querySelector('.card-bg'); }
|
|
9
|
-
get backfaceBackgroundElement() { return this.cardBack.querySelector('.card-bg'); }
|
|
10
|
-
constructor(element, ngZone) {
|
|
11
|
-
this.element = element;
|
|
12
|
-
this.ngZone = ngZone;
|
|
13
|
-
/**
|
|
14
|
-
*
|
|
15
|
-
*/
|
|
16
|
-
this.loaded = new EventEmitter();
|
|
17
|
-
/**
|
|
18
|
-
* Width of the card
|
|
19
|
-
* @default `240px`
|
|
20
|
-
*/
|
|
21
|
-
this.width = '240px';
|
|
22
|
-
/**
|
|
23
|
-
* Height of the card
|
|
24
|
-
* @default `320px`
|
|
25
|
-
*/
|
|
26
|
-
this.height = '320px';
|
|
27
|
-
/**
|
|
28
|
-
* Inset padding of the parallax
|
|
29
|
-
* @default 80
|
|
30
|
-
*/
|
|
31
|
-
this.bgInset = 80;
|
|
32
|
-
/**
|
|
33
|
-
* Duration for the flip animation in ms
|
|
34
|
-
* @default 1200
|
|
35
|
-
*/
|
|
36
|
-
this.flipAnimationDuration = 1200;
|
|
37
|
-
this.renderCardFront = true;
|
|
38
|
-
this.renderCardBack = true;
|
|
39
|
-
this.showBackOfCard = false;
|
|
40
|
-
this.pointerX = 0;
|
|
41
|
-
this.pointerY = 0;
|
|
42
|
-
this.pointerLeave = 0;
|
|
43
|
-
this.render = () => {
|
|
44
|
-
const { width, height } = this.wrapper.getBoundingClientRect();
|
|
45
|
-
const mousePX = this.pointerX / width;
|
|
46
|
-
const mousePY = this.pointerY / height;
|
|
47
|
-
// Rotation factors
|
|
48
|
-
const rX = mousePX * this.bgInset / 1.75;
|
|
49
|
-
const rY = mousePY * -this.bgInset / 1.75;
|
|
50
|
-
// Translation factors
|
|
51
|
-
const tX = mousePX * -this.bgInset * 2;
|
|
52
|
-
const tY = mousePY * -this.bgInset * 2;
|
|
53
|
-
if (this.renderCardFront) {
|
|
54
|
-
this.backgroundElement.style.transform = `translateX(${tX}px) translateY(${tY}px)`;
|
|
55
|
-
}
|
|
56
|
-
if (this.renderCardBack) {
|
|
57
|
-
this.backfaceBackgroundElement.style.transform = `translateX(${tX}px) translateY(${tY}px)`;
|
|
58
|
-
}
|
|
59
|
-
if (this.showBackOfCard) {
|
|
60
|
-
this.cardFront.style.transform = `rotateY(180deg) rotateX(${-rY}deg)`;
|
|
61
|
-
this.cardBack.style.transform = `rotateY(${-rX}deg) rotateX(${-rY}deg)`;
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
this.cardFront.style.transform = `rotateY(${rX}deg) rotateX(${rY}deg)`;
|
|
65
|
-
this.cardBack.style.transform = `rotateY(180deg) rotateX(${-rY}deg)`;
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
ngAfterViewInit() {
|
|
70
|
-
const el = this.wrapper;
|
|
71
|
-
this.ngZone.runOutsideAngular(() => {
|
|
72
|
-
// Directly attach events to the wrapper
|
|
73
|
-
el.onpointermove = (e) => this.onPointerMove(e);
|
|
74
|
-
el.onpointerenter = () => this.onPointerEnter();
|
|
75
|
-
el.onpointerleave = () => this.onPointerLeave();
|
|
76
|
-
});
|
|
77
|
-
el.onclick = () => this.onClick();
|
|
78
|
-
this.loaded.emit();
|
|
79
|
-
}
|
|
80
|
-
onPointerMove(e) {
|
|
81
|
-
const { width, height, left, top } = this.wrapper.getBoundingClientRect();
|
|
82
|
-
this.pointerX = e.pageX - left - (width / 2);
|
|
83
|
-
this.pointerY = e.pageY - top - (height / 2);
|
|
84
|
-
this.render();
|
|
85
|
-
}
|
|
86
|
-
onPointerEnter() {
|
|
87
|
-
clearTimeout(this.pointerLeave);
|
|
88
|
-
}
|
|
89
|
-
onPointerLeave() {
|
|
90
|
-
this.pointerLeave = setTimeout(() => {
|
|
91
|
-
this.pointerX = 0;
|
|
92
|
-
this.pointerY = 0;
|
|
93
|
-
this.render();
|
|
94
|
-
}, 600);
|
|
95
|
-
}
|
|
96
|
-
// TODO: This can get intercepted in some states
|
|
97
|
-
onClick() {
|
|
98
|
-
this.showBackOfCard = !this.showBackOfCard;
|
|
99
|
-
this.render();
|
|
100
|
-
}
|
|
101
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ParallaxCardComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
102
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ParallaxCardComponent, isStandalone: true, selector: "ngx-parallax-card", inputs: { width: "width", height: "height", bgInset: "bgInset", flipAnimationDuration: "flipAnimationDuration" }, outputs: { loaded: "loaded" }, host: { properties: { "style.width": "width", "style.height": "height", "style.--card-bg-inset": "-bgInset+\"px\"", "style.--flip-animation-duration": "flipAnimationDuration+\"ms\"", "class.flip": "showBackOfCard" } }, queries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, read: TemplateRef }, { propertyName: "background", first: true, predicate: ["background"], descendants: true, read: TemplateRef }, { propertyName: "backContent", first: true, predicate: ["backContent"], descendants: true, read: TemplateRef }, { propertyName: "backBackground", first: true, predicate: ["backBackground"], descendants: true, read: TemplateRef }], ngImport: i0, template: "@if (renderCardBack) {\n <div class=\"card backface\">\n <div class=\"card-bg\" style=\"transform: translateX(0) translateY(0)\">\n <ng-template [ngTemplateOutlet]=\"backBackground\" />\n </div>\n <div class=\"card-content\">\n <ng-template [ngTemplateOutlet]=\"backContent\" />\n </div>\n </div>\n}\n\n@if (renderCardFront) {\n <div class=\"card front\">\n <div class=\"card-bg\" style=\"transform: translateX(0) translateY(0)\">\n <ng-template [ngTemplateOutlet]=\"background\" />\n </div>\n <div class=\"card-content\">\n @if (content) {\n <ng-template [ngTemplateOutlet]=\"content\"/>\n }\n @else {\n <ng-content/>\n }\n </div>\n </div>\n}\n\n\n", styles: [":host{display:block;position:relative;cursor:pointer;--easing-function: cubic-bezier(.23, 1, .32, 1);--border-radius: 9px}.card{position:absolute;height:100%;width:100%;background-color:#333;backface-visibility:hidden;overflow:hidden;box-shadow:#0000 0 0 40px 5px,#000000a8 0 30px 60px,inset #333 0 0 0 5px;border-radius:var(--border-radius);transition:transform var(--flip-animation-duration) var(--easing-function),box-shadow 2s var(--easing-function);transform-style:preserve-3d;will-change:transform}.card:hover{box-shadow:#fff6 0 0 40px 5px,#000000a8 0 30px 60px,inset #333 0 0 0 5px}.card:hover .card-content{border:2px solid #fff}.card-bg{inset:var(--card-bg-inset);position:absolute;pointer-events:none;transition:transform .6s var(--easing-function)}.card-content{position:absolute;top:0;color:#fff;height:100%;width:100%;z-index:1;border:2px solid rgba(255,255,255,0);border-radius:var(--border-radius);transition:transform .6s var(--easing-function),border-color .6s var(--easing-function)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
103
|
-
}
|
|
104
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ParallaxCardComponent, decorators: [{
|
|
105
|
-
type: Component,
|
|
106
|
-
args: [{ selector: 'ngx-parallax-card', imports: [
|
|
107
|
-
NgTemplateOutlet
|
|
108
|
-
], host: {
|
|
109
|
-
'[style.width]': 'width',
|
|
110
|
-
'[style.height]': 'height',
|
|
111
|
-
'[style.--card-bg-inset]': '-bgInset+"px"',
|
|
112
|
-
'[style.--flip-animation-duration]': 'flipAnimationDuration+"ms"',
|
|
113
|
-
'[class.flip]': 'showBackOfCard'
|
|
114
|
-
}, standalone: true, template: "@if (renderCardBack) {\n <div class=\"card backface\">\n <div class=\"card-bg\" style=\"transform: translateX(0) translateY(0)\">\n <ng-template [ngTemplateOutlet]=\"backBackground\" />\n </div>\n <div class=\"card-content\">\n <ng-template [ngTemplateOutlet]=\"backContent\" />\n </div>\n </div>\n}\n\n@if (renderCardFront) {\n <div class=\"card front\">\n <div class=\"card-bg\" style=\"transform: translateX(0) translateY(0)\">\n <ng-template [ngTemplateOutlet]=\"background\" />\n </div>\n <div class=\"card-content\">\n @if (content) {\n <ng-template [ngTemplateOutlet]=\"content\"/>\n }\n @else {\n <ng-content/>\n }\n </div>\n </div>\n}\n\n\n", styles: [":host{display:block;position:relative;cursor:pointer;--easing-function: cubic-bezier(.23, 1, .32, 1);--border-radius: 9px}.card{position:absolute;height:100%;width:100%;background-color:#333;backface-visibility:hidden;overflow:hidden;box-shadow:#0000 0 0 40px 5px,#000000a8 0 30px 60px,inset #333 0 0 0 5px;border-radius:var(--border-radius);transition:transform var(--flip-animation-duration) var(--easing-function),box-shadow 2s var(--easing-function);transform-style:preserve-3d;will-change:transform}.card:hover{box-shadow:#fff6 0 0 40px 5px,#000000a8 0 30px 60px,inset #333 0 0 0 5px}.card:hover .card-content{border:2px solid #fff}.card-bg{inset:var(--card-bg-inset);position:absolute;pointer-events:none;transition:transform .6s var(--easing-function)}.card-content{position:absolute;top:0;color:#fff;height:100%;width:100%;z-index:1;border:2px solid rgba(255,255,255,0);border-radius:var(--border-radius);transition:transform .6s var(--easing-function),border-color .6s var(--easing-function)}\n"] }]
|
|
115
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { content: [{
|
|
116
|
-
type: ContentChild,
|
|
117
|
-
args: ['content', { read: TemplateRef }]
|
|
118
|
-
}], background: [{
|
|
119
|
-
type: ContentChild,
|
|
120
|
-
args: ['background', { read: TemplateRef }]
|
|
121
|
-
}], backContent: [{
|
|
122
|
-
type: ContentChild,
|
|
123
|
-
args: ['backContent', { read: TemplateRef }]
|
|
124
|
-
}], backBackground: [{
|
|
125
|
-
type: ContentChild,
|
|
126
|
-
args: ['backBackground', { read: TemplateRef }]
|
|
127
|
-
}], loaded: [{
|
|
128
|
-
type: Output
|
|
129
|
-
}], width: [{
|
|
130
|
-
type: Input
|
|
131
|
-
}], height: [{
|
|
132
|
-
type: Input
|
|
133
|
-
}], bgInset: [{
|
|
134
|
-
type: Input
|
|
135
|
-
}], flipAnimationDuration: [{
|
|
136
|
-
type: Input
|
|
137
|
-
}] } });
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYWxsYXgtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvbXBvbmVudHMvcGFyYWxsYXgtY2FyZC9wYXJhbGxheC1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9wYXJhbGxheC1jYXJkL3BhcmFsbGF4LWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQXVCdEgsTUFBTSxPQUFPLHFCQUFxQjtJQXdDOUIsSUFBWSxPQUFPLEtBQUssT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQTRCLENBQUMsQ0FBQyxDQUFDO0lBQzNFLElBQVksU0FBUyxLQUFLLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFnQixDQUFDLENBQUMsQ0FBQztJQUM1RixJQUFZLFFBQVEsS0FBSyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFnQixDQUFDLENBQUMsQ0FBQztJQUM5RixJQUFZLGlCQUFpQixLQUFLLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFtQixDQUFDLENBQUMsQ0FBQztJQUN0RyxJQUFZLHlCQUF5QixLQUFLLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFtQixDQUFDLENBQUMsQ0FBQztJQU03RyxZQUNxQixPQUFtQixFQUNuQixNQUFjO1FBRGQsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBMUNuQzs7V0FFRztRQUNPLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXRDOzs7V0FHRztRQUNNLFVBQUssR0FBZSxPQUFPLENBQUM7UUFDckM7OztXQUdHO1FBQ00sV0FBTSxHQUFjLE9BQU8sQ0FBQztRQUNyQzs7O1dBR0c7UUFDTSxZQUFPLEdBQVksRUFBRSxDQUFDO1FBQy9COzs7V0FHRztRQUNNLDBCQUFxQixHQUFZLElBQUksQ0FBQztRQUUvQyxvQkFBZSxHQUFHLElBQUksQ0FBQztRQUN2QixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQVFmLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFDYixhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsaUJBQVksR0FBRyxDQUFDLENBQUM7UUErQ3pCLFdBQU0sR0FBRyxHQUFHLEVBQUU7WUFDVixNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMvRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN0QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztZQUV2QyxtQkFBbUI7WUFDbkIsTUFBTSxFQUFFLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3pDLE1BQU0sRUFBRSxHQUFHLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBRTFDLHNCQUFzQjtZQUN0QixNQUFNLEVBQUUsR0FBRyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztZQUN2QyxNQUFNLEVBQUUsR0FBRyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztZQUV2QyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsY0FBYyxFQUFFLGtCQUFrQixFQUFFLEtBQUssQ0FBQztZQUN2RixDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLENBQUM7WUFDL0YsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsMkJBQTJCLENBQUMsRUFBRSxNQUFNLENBQUM7Z0JBQ3RFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztZQUM1RSxDQUFDO2lCQUNJLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLENBQUM7Z0JBQ3ZFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRywyQkFBMkIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztZQUN6RSxDQUFDO1FBQ0wsQ0FBQyxDQUFBO0lBdEVHLENBQUM7SUFFTCxlQUFlO1FBQ1gsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUV4QixJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUMvQix3Q0FBd0M7WUFDeEMsRUFBRSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoRCxFQUFFLENBQUMsY0FBYyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNoRCxFQUFFLENBQUMsY0FBYyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQTtRQUNGLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWxDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGFBQWEsQ0FBQyxDQUFlO1FBQ3pCLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDMUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRTdDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsY0FBYztRQUNWLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELGNBQWM7UUFDVixJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7WUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7WUFDbEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xCLENBQUMsRUFBRSxHQUFHLENBQVEsQ0FBQztJQUNuQixDQUFDO0lBRUQsZ0RBQWdEO0lBQ2hELE9BQU87UUFDSCxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDakIsQ0FBQzsrR0E3RlEscUJBQXFCO21HQUFyQixxQkFBcUIsb2dCQUdHLFdBQVcsbUdBQ1IsV0FBVyxxR0FHVixXQUFXLDJHQUNSLFdBQVcsNkJDaEN2RCwwekJBNEJBLHFpQ0RmUSxnQkFBZ0I7OzRGQVdYLHFCQUFxQjtrQkFoQmpDLFNBQVM7K0JBQ0ksbUJBQW1CLFdBR3BCO3dCQUNMLGdCQUFnQjtxQkFDbkIsUUFDSzt3QkFDRixlQUFlLEVBQUUsT0FBTzt3QkFDeEIsZ0JBQWdCLEVBQUUsUUFBUTt3QkFDMUIseUJBQXlCLEVBQUUsZUFBZTt3QkFDMUMsbUNBQW1DLEVBQUUsNEJBQTRCO3dCQUNqRSxjQUFjLEVBQUUsZ0JBQWdCO3FCQUNuQyxjQUNXLElBQUk7b0dBS2dDLE9BQU87c0JBQXRELFlBQVk7dUJBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDSyxVQUFVO3NCQUE1RCxZQUFZO3VCQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBR0csV0FBVztzQkFBOUQsWUFBWTt1QkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUNLLGNBQWM7c0JBQXBFLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUszQyxNQUFNO3NCQUFmLE1BQU07Z0JBTUUsS0FBSztzQkFBYixLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0cscUJBQXFCO3NCQUE3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgTmdab25lLCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbnR5cGUgQ1NTVW5pdFN0cmluZyA9ICdweCcgfCAnJScgfCAnZW0nIHwgJ2luJyB8ICcnO1xudHlwZSBDU1NVbml0ID0gYCR7bnVtYmVyfSR7Q1NTVW5pdFN0cmluZ31gIHwgYHZhcigtLSR7c3RyaW5nfSlgO1xudHlwZSBDU1NTdHJpbmcgPSBDU1NVbml0IHxcbiAgICBgY2FsYygke0NTU1VuaXR8Jyd9JHsnJ3wnICd9JHsnKyd8Jy0nfCcvJ3wnKid9JHsnJ3wnICd9JHtDU1NVbml0fCcnfSlgXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd4LXBhcmFsbGF4LWNhcmQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wYXJhbGxheC1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wYXJhbGxheC1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0XG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbc3R5bGUud2lkdGhdJzogJ3dpZHRoJyxcbiAgICAgICAgJ1tzdHlsZS5oZWlnaHRdJzogJ2hlaWdodCcsXG4gICAgICAgICdbc3R5bGUuLS1jYXJkLWJnLWluc2V0XSc6ICctYmdJbnNldCtcInB4XCInLFxuICAgICAgICAnW3N0eWxlLi0tZmxpcC1hbmltYXRpb24tZHVyYXRpb25dJzogJ2ZsaXBBbmltYXRpb25EdXJhdGlvbitcIm1zXCInLFxuICAgICAgICAnW2NsYXNzLmZsaXBdJzogJ3Nob3dCYWNrT2ZDYXJkJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBQYXJhbGxheENhcmRDb21wb25lbnQge1xuXG4gICAgLy8gRnJvbnQgb2YgY2FyZFxuICAgIEBDb250ZW50Q2hpbGQoJ2NvbnRlbnQnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIGNvbnRlbnQ6IFRlbXBsYXRlUmVmPEVsZW1lbnRSZWY+O1xuICAgIEBDb250ZW50Q2hpbGQoJ2JhY2tncm91bmQnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIGJhY2tncm91bmQ6IFRlbXBsYXRlUmVmPEVsZW1lbnRSZWY+O1xuXG4gICAgLy8gQmFjayBvZiBjYXJkXG4gICAgQENvbnRlbnRDaGlsZCgnYmFja0NvbnRlbnQnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIGJhY2tDb250ZW50OiBUZW1wbGF0ZVJlZjxFbGVtZW50UmVmPjtcbiAgICBAQ29udGVudENoaWxkKCdiYWNrQmFja2dyb3VuZCcsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgYmFja0JhY2tncm91bmQ6IFRlbXBsYXRlUmVmPEVsZW1lbnRSZWY+O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgbG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqXG4gICAgICogV2lkdGggb2YgdGhlIGNhcmRcbiAgICAgKiBAZGVmYXVsdCBgMjQwcHhgXG4gICAgICovXG4gICAgQElucHV0KCkgd2lkdGg6ICBDU1NTdHJpbmcgPSAnMjQwcHgnO1xuICAgIC8qKlxuICAgICAqIEhlaWdodCBvZiB0aGUgY2FyZFxuICAgICAqIEBkZWZhdWx0IGAzMjBweGBcbiAgICAgKi9cbiAgICBASW5wdXQoKSBoZWlnaHQ6IENTU1N0cmluZyA9ICczMjBweCc7XG4gICAgLyoqXG4gICAgICogSW5zZXQgcGFkZGluZyBvZiB0aGUgcGFyYWxsYXhcbiAgICAgKiBAZGVmYXVsdCA4MFxuICAgICAqL1xuICAgIEBJbnB1dCgpIGJnSW5zZXQ6ICBudW1iZXIgPSA4MDtcbiAgICAvKipcbiAgICAgKiBEdXJhdGlvbiBmb3IgdGhlIGZsaXAgYW5pbWF0aW9uIGluIG1zXG4gICAgICogQGRlZmF1bHQgMTIwMFxuICAgICAqL1xuICAgIEBJbnB1dCgpIGZsaXBBbmltYXRpb25EdXJhdGlvbjogIG51bWJlciA9IDEyMDA7XG5cbiAgICByZW5kZXJDYXJkRnJvbnQgPSB0cnVlO1xuICAgIHJlbmRlckNhcmRCYWNrID0gdHJ1ZTtcbiAgICBzaG93QmFja09mQ2FyZCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBnZXQgd3JhcHBlcigpIHsgcmV0dXJuIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50OyB9XG4gICAgcHJpdmF0ZSBnZXQgY2FyZEZyb250KCkgeyByZXR1cm4gdGhpcy53cmFwcGVyLnF1ZXJ5U2VsZWN0b3IoJy5jYXJkLmZyb250JykgYXMgSFRNTEVsZW1lbnQ7IH1cbiAgICBwcml2YXRlIGdldCBjYXJkQmFjaygpIHsgcmV0dXJuIHRoaXMud3JhcHBlci5xdWVyeVNlbGVjdG9yKCcuY2FyZC5iYWNrZmFjZScpIGFzIEhUTUxFbGVtZW50OyB9XG4gICAgcHJpdmF0ZSBnZXQgYmFja2dyb3VuZEVsZW1lbnQoKSB7IHJldHVybiB0aGlzLmNhcmRGcm9udC5xdWVyeVNlbGVjdG9yKCcuY2FyZC1iZycpIGFzIEhUTUxEaXZFbGVtZW50OyB9XG4gICAgcHJpdmF0ZSBnZXQgYmFja2ZhY2VCYWNrZ3JvdW5kRWxlbWVudCgpIHsgcmV0dXJuIHRoaXMuY2FyZEJhY2sucXVlcnlTZWxlY3RvcignLmNhcmQtYmcnKSBhcyBIVE1MRGl2RWxlbWVudDsgfVxuXG4gICAgcHJpdmF0ZSBwb2ludGVyWCA9IDA7XG4gICAgcHJpdmF0ZSBwb2ludGVyWSA9IDA7XG4gICAgcHJpdmF0ZSBwb2ludGVyTGVhdmUgPSAwO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZVxuICAgICkgeyB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGNvbnN0IGVsID0gdGhpcy53cmFwcGVyO1xuXG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIC8vIERpcmVjdGx5IGF0dGFjaCBldmVudHMgdG8gdGhlIHdyYXBwZXJcbiAgICAgICAgICAgIGVsLm9ucG9pbnRlcm1vdmUgPSAoZSkgPT4gdGhpcy5vblBvaW50ZXJNb3ZlKGUpO1xuICAgICAgICAgICAgZWwub25wb2ludGVyZW50ZXIgPSAoKSA9PiB0aGlzLm9uUG9pbnRlckVudGVyKCk7XG4gICAgICAgICAgICBlbC5vbnBvaW50ZXJsZWF2ZSA9ICgpID0+IHRoaXMub25Qb2ludGVyTGVhdmUoKTtcbiAgICAgICAgfSlcbiAgICAgICAgZWwub25jbGljayA9ICgpID0+IHRoaXMub25DbGljaygpO1xuXG4gICAgICAgIHRoaXMubG9hZGVkLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvblBvaW50ZXJNb3ZlKGU6IFBvaW50ZXJFdmVudCkge1xuICAgICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQsIGxlZnQsIHRvcCB9ID0gdGhpcy53cmFwcGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICB0aGlzLnBvaW50ZXJYID0gZS5wYWdlWCAtIGxlZnQgLSAod2lkdGggLyAyKTtcbiAgICAgICAgdGhpcy5wb2ludGVyWSA9IGUucGFnZVkgLSB0b3AgLSAoaGVpZ2h0IC8gMik7XG5cbiAgICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICB9XG5cbiAgICBvblBvaW50ZXJFbnRlcigpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucG9pbnRlckxlYXZlKTtcbiAgICB9XG5cbiAgICBvblBvaW50ZXJMZWF2ZSgpIHtcbiAgICAgICAgdGhpcy5wb2ludGVyTGVhdmUgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucG9pbnRlclggPSAwO1xuICAgICAgICAgICAgdGhpcy5wb2ludGVyWSA9IDA7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgICAgICB9LCA2MDApIGFzIGFueTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBUaGlzIGNhbiBnZXQgaW50ZXJjZXB0ZWQgaW4gc29tZSBzdGF0ZXNcbiAgICBvbkNsaWNrKCkge1xuICAgICAgICB0aGlzLnNob3dCYWNrT2ZDYXJkID0gIXRoaXMuc2hvd0JhY2tPZkNhcmQ7XG4gICAgICAgIHRoaXMucmVuZGVyKClcbiAgICB9XG5cbiAgICByZW5kZXIgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gdGhpcy53cmFwcGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBtb3VzZVBYID0gdGhpcy5wb2ludGVyWCAvIHdpZHRoO1xuICAgICAgICBjb25zdCBtb3VzZVBZID0gdGhpcy5wb2ludGVyWSAvIGhlaWdodDtcblxuICAgICAgICAvLyBSb3RhdGlvbiBmYWN0b3JzXG4gICAgICAgIGNvbnN0IHJYID0gbW91c2VQWCAqIHRoaXMuYmdJbnNldCAvIDEuNzU7XG4gICAgICAgIGNvbnN0IHJZID0gbW91c2VQWSAqIC10aGlzLmJnSW5zZXQgLyAxLjc1O1xuXG4gICAgICAgIC8vIFRyYW5zbGF0aW9uIGZhY3RvcnNcbiAgICAgICAgY29uc3QgdFggPSBtb3VzZVBYICogLXRoaXMuYmdJbnNldCAqIDI7XG4gICAgICAgIGNvbnN0IHRZID0gbW91c2VQWSAqIC10aGlzLmJnSW5zZXQgKiAyO1xuXG4gICAgICAgIGlmICh0aGlzLnJlbmRlckNhcmRGcm9udCkge1xuICAgICAgICAgICAgdGhpcy5iYWNrZ3JvdW5kRWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlWCgke3RYfXB4KSB0cmFuc2xhdGVZKCR7dFl9cHgpYDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5yZW5kZXJDYXJkQmFjaykge1xuICAgICAgICAgICAgdGhpcy5iYWNrZmFjZUJhY2tncm91bmRFbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGVYKCR7dFh9cHgpIHRyYW5zbGF0ZVkoJHt0WX1weClgO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc2hvd0JhY2tPZkNhcmQpIHtcbiAgICAgICAgICAgIHRoaXMuY2FyZEZyb250LnN0eWxlLnRyYW5zZm9ybSA9IGByb3RhdGVZKDE4MGRlZykgcm90YXRlWCgkey1yWX1kZWcpYDtcbiAgICAgICAgICAgIHRoaXMuY2FyZEJhY2suc3R5bGUudHJhbnNmb3JtID0gYHJvdGF0ZVkoJHstclh9ZGVnKSByb3RhdGVYKCR7LXJZfWRlZylgO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jYXJkRnJvbnQuc3R5bGUudHJhbnNmb3JtID0gYHJvdGF0ZVkoJHtyWH1kZWcpIHJvdGF0ZVgoJHtyWX1kZWcpYDtcbiAgICAgICAgICAgIHRoaXMuY2FyZEJhY2suc3R5bGUudHJhbnNmb3JtID0gYHJvdGF0ZVkoMTgwZGVnKSByb3RhdGVYKCR7LXJZfWRlZylgO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGlmIChyZW5kZXJDYXJkQmFjaykge1xuICAgIDxkaXYgY2xhc3M9XCJjYXJkIGJhY2tmYWNlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJnXCIgc3R5bGU9XCJ0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgdHJhbnNsYXRlWSgwKVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJhY2tCYWNrZ3JvdW5kXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJiYWNrQ29udGVudFwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxufVxuXG5AaWYgKHJlbmRlckNhcmRGcm9udCkge1xuICAgIDxkaXYgY2xhc3M9XCJjYXJkIGZyb250XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJnXCIgc3R5bGU9XCJ0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgdHJhbnNsYXRlWSgwKVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJhY2tncm91bmRcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtY29udGVudFwiPlxuICAgICAgICAgICAgQGlmIChjb250ZW50KSB7XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRcIi8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQvPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbn1cblxuXG4iXX0=
|
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
import { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';
|
|
2
|
-
import { Component, HostListener, Inject, Input, TemplateRef } from '@angular/core';
|
|
3
|
-
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
4
|
-
import { Optional } from '@angular/core';
|
|
5
|
-
import { createApplication } from '@angular/platform-browser';
|
|
6
|
-
import { firstValueFrom } from 'rxjs';
|
|
7
|
-
import { MenuComponent } from '../menu/menu.component';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@angular/material/dialog";
|
|
10
|
-
const zone = new Zone(Zone.current, { name: "@dotglitch_menu", properties: {} });
|
|
11
|
-
export const calcTooltipBounds = async (template, data, matDialogConfig) => {
|
|
12
|
-
const args = {
|
|
13
|
-
data: data || {},
|
|
14
|
-
template,
|
|
15
|
-
config: {},
|
|
16
|
-
selfCords: { left: "0px", top: "0px" },
|
|
17
|
-
ownerCords: { x: 0, y: 0, width: 0, height: 0 },
|
|
18
|
-
id: null
|
|
19
|
-
};
|
|
20
|
-
// dimensions should be in px... Might need to handle vw/v
|
|
21
|
-
if (matDialogConfig?.width && matDialogConfig?.height) {
|
|
22
|
-
return {
|
|
23
|
-
width: parseInt(matDialogConfig.width),
|
|
24
|
-
height: parseInt(matDialogConfig.height),
|
|
25
|
-
top: 0,
|
|
26
|
-
left: 0,
|
|
27
|
-
right: 0,
|
|
28
|
-
bottom: 0
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
return new Promise((res, rej) => {
|
|
32
|
-
zone.run(async () => {
|
|
33
|
-
// Forcibly bootstrap the ctx menu outside of the client application's zone.
|
|
34
|
-
const app = await createApplication({
|
|
35
|
-
providers: [
|
|
36
|
-
{ provide: MAT_DIALOG_DATA, useValue: args }
|
|
37
|
-
]
|
|
38
|
-
});
|
|
39
|
-
const del = document.createElement("div");
|
|
40
|
-
del.style.position = "absolute";
|
|
41
|
-
del.style.left = '-1000vw';
|
|
42
|
-
document.body.append(del);
|
|
43
|
-
const base = app.bootstrap(TooltipComponent, del);
|
|
44
|
-
const { instance } = base;
|
|
45
|
-
await firstValueFrom(app.isStable);
|
|
46
|
-
const el = instance.viewContainer?.element?.nativeElement;
|
|
47
|
-
const rect = el.getBoundingClientRect();
|
|
48
|
-
app.destroy();
|
|
49
|
-
del.remove();
|
|
50
|
-
res(rect);
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
};
|
|
54
|
-
export class TooltipComponent {
|
|
55
|
-
constructor(viewContainer, _data, dialog, // optional only for the purpose of estimating dimensions
|
|
56
|
-
dialogRef) {
|
|
57
|
-
this.viewContainer = viewContainer;
|
|
58
|
-
this._data = _data;
|
|
59
|
-
this.dialog = dialog;
|
|
60
|
-
this.dialogRef = dialogRef;
|
|
61
|
-
this.isTemplate = false;
|
|
62
|
-
this.isMenu = false;
|
|
63
|
-
this.hasBootstrapped = false;
|
|
64
|
-
this.pointerIsOnVoid = false;
|
|
65
|
-
this.isLockedOpen = false;
|
|
66
|
-
this.clientWidth = window.innerWidth;
|
|
67
|
-
this.clientHeight = window.innerHeight;
|
|
68
|
-
this.coverRectCords = {
|
|
69
|
-
top: 0,
|
|
70
|
-
left: 0,
|
|
71
|
-
height: 0,
|
|
72
|
-
width: 0
|
|
73
|
-
};
|
|
74
|
-
// Defaults are set before @Input() hooks evaluate
|
|
75
|
-
this.data = this.data || this._data?.data || {};
|
|
76
|
-
this.config = this.config || this._data?.config;
|
|
77
|
-
this.dialog = this.dialog || this._data?.dialog;
|
|
78
|
-
this.template = this.template || this._data?.template;
|
|
79
|
-
this.ownerCords = this.ownerCords || this._data?.ownerCords;
|
|
80
|
-
this.selfCords = this.selfCords || this._data?.selfCords;
|
|
81
|
-
this.isLockedOpen = this._data?.isLockedOpen || this.config?.stayOpen;
|
|
82
|
-
}
|
|
83
|
-
ngOnInit() {
|
|
84
|
-
const selfY = parseInt(this.selfCords.top.replace('px', ''));
|
|
85
|
-
const selfX = parseInt(this.selfCords.left.replace('px', ''));
|
|
86
|
-
this.coverRectCords = {
|
|
87
|
-
top: this.ownerCords.y - selfY - 16,
|
|
88
|
-
left: this.ownerCords.x - selfX - 16,
|
|
89
|
-
height: this.ownerCords.height + 32,
|
|
90
|
-
width: this.ownerCords.width + 32
|
|
91
|
-
};
|
|
92
|
-
if (Array.isArray(this.template))
|
|
93
|
-
this.isMenu = true;
|
|
94
|
-
else if (this.template instanceof TemplateRef)
|
|
95
|
-
this.isTemplate = true;
|
|
96
|
-
else if (typeof this.template == "function")
|
|
97
|
-
this.isTemplate = false;
|
|
98
|
-
else
|
|
99
|
-
throw new Error("Unrecognized template object provided.");
|
|
100
|
-
// TODO: resolve the event hook with the .void element
|
|
101
|
-
setTimeout(() => {
|
|
102
|
-
this.hasBootstrapped = true;
|
|
103
|
-
if (this.pointerIsOnVoid && !this.isLockedOpen)
|
|
104
|
-
this.dialogRef.close();
|
|
105
|
-
}, 200);
|
|
106
|
-
}
|
|
107
|
-
ngAfterViewInit() {
|
|
108
|
-
const el = this.viewContainer.element.nativeElement;
|
|
109
|
-
el.addEventListener("keydown", evt => {
|
|
110
|
-
this.isLockedOpen = true;
|
|
111
|
-
});
|
|
112
|
-
el.addEventListener("pointerdown", evt => {
|
|
113
|
-
this.isLockedOpen = true;
|
|
114
|
-
});
|
|
115
|
-
el.addEventListener("touch", evt => {
|
|
116
|
-
this.isLockedOpen = true;
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
onKeyDown(evt) {
|
|
120
|
-
if (this.config?.freezeOnKeyCode) {
|
|
121
|
-
if (evt.code == this.config.freezeOnKeyCode)
|
|
122
|
-
this.isLockedOpen = true;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
onVoidPointerDown(evt) {
|
|
126
|
-
if (!this.isLockedOpen) {
|
|
127
|
-
const el = this.viewContainer.element.nativeElement;
|
|
128
|
-
el.querySelector(".void").remove();
|
|
129
|
-
setTimeout(() => {
|
|
130
|
-
const clonedEvt = new PointerEvent("pointerdown", evt);
|
|
131
|
-
const target = document.elementFromPoint(evt.clientX, evt.clientY);
|
|
132
|
-
console.log("DEBUG EVENTS", { evt, clonedEvt });
|
|
133
|
-
target.dispatchEvent(clonedEvt);
|
|
134
|
-
}, 15);
|
|
135
|
-
}
|
|
136
|
-
this.closeOnVoid(true);
|
|
137
|
-
}
|
|
138
|
-
// If the void element gets stuck open, make wheel events pass through.
|
|
139
|
-
onWheel(evt) {
|
|
140
|
-
const el = this.viewContainer.element.nativeElement;
|
|
141
|
-
el.style.display = "none";
|
|
142
|
-
const target = document.elementFromPoint(evt.clientX, evt.clientY);
|
|
143
|
-
el.style.display = "block";
|
|
144
|
-
target.scroll({
|
|
145
|
-
top: evt.deltaY + target.scrollTop,
|
|
146
|
-
left: evt.deltaX + target.scrollLeft,
|
|
147
|
-
behavior: "smooth"
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Close the tooltip if these actions occur
|
|
152
|
-
*/
|
|
153
|
-
onClose() {
|
|
154
|
-
if (!this.isLockedOpen)
|
|
155
|
-
this.dialogRef?.close();
|
|
156
|
-
this.clientWidth = window.innerWidth;
|
|
157
|
-
this.clientHeight = window.innerHeight;
|
|
158
|
-
}
|
|
159
|
-
closeOnVoid(force = false) {
|
|
160
|
-
if (!this.isLockedOpen || force)
|
|
161
|
-
this.dialogRef.close();
|
|
162
|
-
}
|
|
163
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TooltipComponent, deps: [{ token: i0.ViewContainerRef }, { token: MAT_DIALOG_DATA, optional: true }, { token: i1.MatDialog, optional: true }, { token: i1.MatDialogRef, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
164
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: TooltipComponent, isStandalone: true, selector: "ngx-tooltip", inputs: { data: "data", config: "config", ownerCords: "ownerCords", selfCords: "selfCords", template: "template" }, host: { listeners: { "window:keydown": "onKeyDown($event)", "window:resize": "onClose()", "window:blur": "onClose()", "pointerleave": "onClose()" } }, ngImport: i0, template: "<!-- Mouse event blocker for pointer leave -->\n@if (coverRectCords) {\n <!-- <div\n class=\"owner-mask\"\n [style.top]=\"coverRectCords.top + 'px'\"\n [style.left]=\"coverRectCords.left + 'px'\"\n [style.height]=\"coverRectCords.height + 'px'\"\n [style.width]=\"coverRectCords.width + 'px'\"\n style=\"z-index: -1;\"\n (pointerdown)=\"onVoidPointerDown($event)\"\n ></div> -->\n\n <div class=\"void left\"\n [style.top]=\"'0px'\"\n [style.left]=\"'0px'\"\n [style.height]=\"'100%'\"\n [style.width]=\"(ownerCords.left) + 'px'\"\n (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && closeOnVoid()\"\n (pointerleave)=\"pointerIsOnVoid = false\"\n (pointerdown)=\"onVoidPointerDown($event)\"\n (wheel)=\"onWheel($event)\"\n ></div>\n <div class=\"void top\"\n [style.top]=\"'0px'\"\n [style.left]=\"ownerCords.left + 'px'\"\n [style.height]=\"ownerCords.top + 'px'\"\n [style.width]=\"ownerCords.width + 'px'\"\n (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && closeOnVoid()\"\n (pointerleave)=\"pointerIsOnVoid = false\"\n (pointerdown)=\"onVoidPointerDown($event)\"\n (wheel)=\"onWheel($event)\"\n ></div>\n <div class=\"void right\"\n [style.top]=\"'0px'\"\n [style.left]=\"(ownerCords.left + ownerCords.width) + 'px'\"\n [style.height]=\"'100%'\"\n [style.width]=\"(clientWidth - (ownerCords.left + ownerCords.width)) + 'px'\"\n (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && closeOnVoid()\"\n (pointerleave)=\"pointerIsOnVoid = false\"\n (pointerdown)=\"onVoidPointerDown($event)\"\n (wheel)=\"onWheel($event)\"\n ></div>\n <div class=\"void\"\n [style.top]=\"(ownerCords.top + ownerCords.height) + 'px'\"\n [style.left]=\"ownerCords.left + 'px'\"\n [style.height]=\"(clientHeight - (ownerCords.top + ownerCords.height)) + 'px'\"\n [style.width]=\"ownerCords.width + 'px'\"\n (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && closeOnVoid()\"\n (pointerleave)=\"pointerIsOnVoid = false\"\n (pointerdown)=\"onVoidPointerDown($event)\"\n (wheel)=\"onWheel($event)\"\n ></div>\n}\n\n\n<div\n #container\n class=\"container\"\n>\n @if (isMenu) {\n <ngx-menu\n [config]=\"config\"\n [data]=\"data\"\n [ownerCords]=\"ownerCords\"\n [selfCords]=\"selfCords\"\n [items]=\"$any(template)\"\n [isLockedOpen]=\"config.stayOpen\"\n />\n }\n @else if (isTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"$any(template)\"\n [ngTemplateOutletContext]=\"{\n '$implicit': data,\n 'dialog': dialogRef,\n 'element': container,\n 'tooltip': this\n }\"\n ></ng-container>\n }\n @else {\n <ng-container\n [ngComponentOutlet]=\"$any(template)\"\n >\n </ng-container>\n }\n</div>\n", styles: ["::ng-deep .cdk-overlay-container .ngx-tooltip{--mdc-dialog-container-color: var(--ngx-tooltip-background-color, #2f2f2f)}::ng-deep .cdk-overlay-container .ngx-tooltip .mdc-dialog__container{transform-origin:top left}::ng-deep .cdk-overlay-container .ngx-tooltip .mdc-dialog--open .mdc-dialog__container{transform:none}::ng-deep .cdk-overlay-container .ngx-tooltip .mdc-dialog__surface{overflow:visible;background-color:#0000}::ng-deep .cdk-overlay-container .context-menu-backdrop.cdk-overlay-backdrop-showing{opacity:0}::ng-deep .cdk-overlay-pane.ngx-tooltip .mat-dialog-container{padding:0}:host{min-width:2px;min-height:2px;display:block}.void,.owner-mask{position:absolute}.void{top:-100vh;right:-100vw;bottom:-100vh;left:-100vw;z-index:-2;position:fixed}.container{width:100%;height:100%;background:var(--ngx-tooltip-background-color, #333);border-radius:6px;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "component", type: MenuComponent, selector: "ngx-menu", inputs: ["data", "items", "config", "id", "overlayOverlap", "hoverDelay", "showDebugOverlay", "targetBounds", "ownerCords", "selfCords", "parentItem", "parentContext", "isLockedOpen"] }] }); }
|
|
165
|
-
}
|
|
166
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TooltipComponent, decorators: [{
|
|
167
|
-
type: Component,
|
|
168
|
-
args: [{ selector: 'ngx-tooltip', imports: [
|
|
169
|
-
NgTemplateOutlet,
|
|
170
|
-
NgComponentOutlet,
|
|
171
|
-
MenuComponent
|
|
172
|
-
], standalone: true, template: "<!-- Mouse event blocker for pointer leave -->\n@if (coverRectCords) {\n <!-- <div\n class=\"owner-mask\"\n [style.top]=\"coverRectCords.top + 'px'\"\n [style.left]=\"coverRectCords.left + 'px'\"\n [style.height]=\"coverRectCords.height + 'px'\"\n [style.width]=\"coverRectCords.width + 'px'\"\n style=\"z-index: -1;\"\n (pointerdown)=\"onVoidPointerDown($event)\"\n ></div> -->\n\n <div class=\"void left\"\n [style.top]=\"'0px'\"\n [style.left]=\"'0px'\"\n [style.height]=\"'100%'\"\n [style.width]=\"(ownerCords.left) + 'px'\"\n (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && closeOnVoid()\"\n (pointerleave)=\"pointerIsOnVoid = false\"\n (pointerdown)=\"onVoidPointerDown($event)\"\n (wheel)=\"onWheel($event)\"\n ></div>\n <div class=\"void top\"\n [style.top]=\"'0px'\"\n [style.left]=\"ownerCords.left + 'px'\"\n [style.height]=\"ownerCords.top + 'px'\"\n [style.width]=\"ownerCords.width + 'px'\"\n (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && closeOnVoid()\"\n (pointerleave)=\"pointerIsOnVoid = false\"\n (pointerdown)=\"onVoidPointerDown($event)\"\n (wheel)=\"onWheel($event)\"\n ></div>\n <div class=\"void right\"\n [style.top]=\"'0px'\"\n [style.left]=\"(ownerCords.left + ownerCords.width) + 'px'\"\n [style.height]=\"'100%'\"\n [style.width]=\"(clientWidth - (ownerCords.left + ownerCords.width)) + 'px'\"\n (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && closeOnVoid()\"\n (pointerleave)=\"pointerIsOnVoid = false\"\n (pointerdown)=\"onVoidPointerDown($event)\"\n (wheel)=\"onWheel($event)\"\n ></div>\n <div class=\"void\"\n [style.top]=\"(ownerCords.top + ownerCords.height) + 'px'\"\n [style.left]=\"ownerCords.left + 'px'\"\n [style.height]=\"(clientHeight - (ownerCords.top + ownerCords.height)) + 'px'\"\n [style.width]=\"ownerCords.width + 'px'\"\n (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && closeOnVoid()\"\n (pointerleave)=\"pointerIsOnVoid = false\"\n (pointerdown)=\"onVoidPointerDown($event)\"\n (wheel)=\"onWheel($event)\"\n ></div>\n}\n\n\n<div\n #container\n class=\"container\"\n>\n @if (isMenu) {\n <ngx-menu\n [config]=\"config\"\n [data]=\"data\"\n [ownerCords]=\"ownerCords\"\n [selfCords]=\"selfCords\"\n [items]=\"$any(template)\"\n [isLockedOpen]=\"config.stayOpen\"\n />\n }\n @else if (isTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"$any(template)\"\n [ngTemplateOutletContext]=\"{\n '$implicit': data,\n 'dialog': dialogRef,\n 'element': container,\n 'tooltip': this\n }\"\n ></ng-container>\n }\n @else {\n <ng-container\n [ngComponentOutlet]=\"$any(template)\"\n >\n </ng-container>\n }\n</div>\n", styles: ["::ng-deep .cdk-overlay-container .ngx-tooltip{--mdc-dialog-container-color: var(--ngx-tooltip-background-color, #2f2f2f)}::ng-deep .cdk-overlay-container .ngx-tooltip .mdc-dialog__container{transform-origin:top left}::ng-deep .cdk-overlay-container .ngx-tooltip .mdc-dialog--open .mdc-dialog__container{transform:none}::ng-deep .cdk-overlay-container .ngx-tooltip .mdc-dialog__surface{overflow:visible;background-color:#0000}::ng-deep .cdk-overlay-container .context-menu-backdrop.cdk-overlay-backdrop-showing{opacity:0}::ng-deep .cdk-overlay-pane.ngx-tooltip .mat-dialog-container{padding:0}:host{min-width:2px;min-height:2px;display:block}.void,.owner-mask{position:absolute}.void{top:-100vh;right:-100vw;bottom:-100vh;left:-100vw;z-index:-2;position:fixed}.container{width:100%;height:100%;background:var(--ngx-tooltip-background-color, #333);border-radius:6px;overflow:hidden}\n"] }]
|
|
173
|
-
}], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: undefined, decorators: [{
|
|
174
|
-
type: Optional
|
|
175
|
-
}, {
|
|
176
|
-
type: Inject,
|
|
177
|
-
args: [MAT_DIALOG_DATA]
|
|
178
|
-
}] }, { type: i1.MatDialog, decorators: [{
|
|
179
|
-
type: Optional
|
|
180
|
-
}] }, { type: i1.MatDialogRef, decorators: [{
|
|
181
|
-
type: Optional
|
|
182
|
-
}] }], propDecorators: { data: [{
|
|
183
|
-
type: Input
|
|
184
|
-
}], config: [{
|
|
185
|
-
type: Input
|
|
186
|
-
}], ownerCords: [{
|
|
187
|
-
type: Input
|
|
188
|
-
}], selfCords: [{
|
|
189
|
-
type: Input
|
|
190
|
-
}], template: [{
|
|
191
|
-
type: Input
|
|
192
|
-
}], onKeyDown: [{
|
|
193
|
-
type: HostListener,
|
|
194
|
-
args: ["window:keydown", ['$event']]
|
|
195
|
-
}], onClose: [{
|
|
196
|
-
type: HostListener,
|
|
197
|
-
args: ["window:resize"]
|
|
198
|
-
}, {
|
|
199
|
-
type: HostListener,
|
|
200
|
-
args: ["window:blur"]
|
|
201
|
-
}, {
|
|
202
|
-
type: HostListener,
|
|
203
|
-
args: ["pointerleave"]
|
|
204
|
-
}] } });
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBMkIsZUFBZSxFQUFtQixNQUFNLDBCQUEwQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd0QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQUd2RCxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRWpGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEtBQUssRUFBRSxRQUFzQyxFQUFFLElBQVMsRUFBRSxlQUFnQyxFQUFFLEVBQUU7SUFFM0gsTUFBTSxJQUFJLEdBQUc7UUFDVCxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUU7UUFDaEIsUUFBUTtRQUNSLE1BQU0sRUFBRSxFQUFFO1FBQ1YsU0FBUyxFQUFFLEVBQUUs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QUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixhQUFhO3FCQUNoQixjQUNXLElBQUk7OzBCQTJCWCxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGVBQWU7OzBCQUNsQyxRQUFROzswQkFDUixRQUFRO3lDQTFCSixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQWdGTixTQUFTO3NCQURSLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBNkNsQyxPQUFPO3NCQUhkLFlBQVk7dUJBQUMsZUFBZTs7c0JBQzVCLFlBQVk7dUJBQUMsYUFBYTs7c0JBQzFCLFlBQVk7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ29tcG9uZW50T3V0bGV0LCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBUZW1wbGF0ZVJlZiwgVHlwZSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjcmVhdGVBcHBsaWNhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRvb2x0aXBPcHRpb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMvdG9vbHRpcCc7XG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJy4uLy4uL3R5cGVzL21lbnUnO1xuaW1wb3J0IHsgTWVudUNvbXBvbmVudCB9IGZyb20gJy4uL21lbnUvbWVudS5jb21wb25lbnQnO1xuXG5kZWNsYXJlIGNvbnN0IFpvbmU7XG5jb25zdCB6b25lID0gbmV3IFpvbmUoWm9uZS5jdXJyZW50LCB7IG5hbWU6IFwiQGRvdGdsaXRjaF9tZW51XCIsIHByb3BlcnRpZXM6IHt9IH0pO1xuXG5leHBvcnQgY29uc3QgY2FsY1Rvb2x0aXBCb3VuZHMgPSBhc3luYyAodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBUeXBlPGFueT4sIGRhdGE6IGFueSwgbWF0RGlhbG9nQ29uZmlnOiBNYXREaWFsb2dDb25maWcpID0+IHtcblxuICAgIGNvbnN0IGFyZ3MgPSB7XG4gICAgICAgIGRhdGE6IGRhdGEgfHwge30sXG4gICAgICAgIHRlbXBsYXRlLFxuICAgICAgICBjb25maWc6IHt9LFxuICAgICAgICBzZWxmQ29yZHM6IHsgbGVmdDogXCIwcHhcIiwgdG9wOiBcIjBweFwiIH0sXG4gICAgICAgIG93bmVyQ29yZHM6IHsgeDogMCwgeTogMCwgd2lkdGg6IDAsIGhlaWdodDogMCB9LFxuICAgICAgICBpZDogbnVsbFxuICAgIH1cblxuICAgIC8vIGRpbWVuc2lvbnMgc2hvdWxkIGJlIGluIHB4Li4uIE1pZ2h0IG5lZWQgdG8gaGFuZGxlIHZ3L3ZcbiAgICBpZiAobWF0RGlhbG9nQ29uZmlnPy53aWR0aCAmJiBtYXREaWFsb2dDb25maWc/LmhlaWdodCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgd2lkdGg6IHBhcnNlSW50KG1hdERpYWxvZ0NvbmZpZy53aWR0aCksXG4gICAgICAgICAgICBoZWlnaHQ6IHBhcnNlSW50KG1hdERpYWxvZ0NvbmZpZy5oZWlnaHQpLFxuICAgICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgICAgbGVmdDogMCxcbiAgICAgICAgICAgIHJpZ2h0OiAwLFxuICAgICAgICAgICAgYm90dG9tOiAwXG4gICAgICAgIH0gYXMgRE9NUmVjdDtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2U8RE9NUmVjdD4oKHJlcywgcmVqKSA9PiB7XG4gICAgICAgIHpvbmUucnVuKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIC8vIEZvcmNpYmx5IGJvb3RzdHJhcCB0aGUgY3R4IG1lbnUgb3V0c2lkZSBvZiB0aGUgY2xpZW50IGFwcGxpY2F0aW9uJ3Mgem9uZS5cbiAgICAgICAgICAgIGNvbnN0IGFwcCA9IGF3YWl0IGNyZWF0ZUFwcGxpY2F0aW9uKHtcbiAgICAgICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAgeyBwcm92aWRlOiBNQVRfRElBTE9HX0RBVEEsIHVzZVZhbHVlOiBhcmdzIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3QgZGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICAgICAgICAgIGRlbC5zdHlsZS5wb3NpdGlvbiA9IFwiYWJzb2x1dGVcIjtcbiAgICAgICAgICAgIGRlbC5zdHlsZS5sZWZ0ID0gJy0xMDAwdncnO1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoZGVsKTtcblxuICAgICAgICAgICAgY29uc3QgYmFzZSA9IGFwcC5ib290c3RyYXAoVG9vbHRpcENvbXBvbmVudCwgZGVsKTtcbiAgICAgICAgICAgIGNvbnN0IHsgaW5zdGFuY2UgfSA9IGJhc2U7XG5cbiAgICAgICAgICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKGFwcC5pc1N0YWJsZSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGVsOiBIVE1MRWxlbWVudCA9IGluc3RhbmNlLnZpZXdDb250YWluZXI/LmVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgICAgIGNvbnN0IHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGFwcC5kZXN0cm95KCk7XG4gICAgICAgICAgICBkZWwucmVtb3ZlKCk7XG5cbiAgICAgICAgICAgIHJlcyhyZWN0KVxuICAgICAgICB9KTtcbiAgICB9KVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25neC10b29sdGlwJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdG9vbHRpcC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdG9vbHRpcC5jb21wb25lbnQuc2NzcyddLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgTmdDb21wb25lbnRPdXRsZXQsXG4gICAgICAgIE1lbnVDb21wb25lbnRcbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcENvbXBvbmVudCB7XG4gICAgQElucHV0KCkgZGF0YTogYW55O1xuICAgIEBJbnB1dCgpIGNvbmZpZzogVG9vbHRpcE9wdGlvbnM7XG4gICAgQElucHV0KCkgb3duZXJDb3JkczogRE9NUmVjdDtcbiAgICBASW5wdXQoKSBzZWxmQ29yZHM7XG4gICAgQElucHV0KCkgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBUeXBlPGFueT4gfCBNZW51SXRlbVtdO1xuXG4gICAgcHVibGljIGlzVGVtcGxhdGUgPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNNZW51ID0gZmFsc2U7XG4gICAgcHVibGljIGhhc0Jvb3RzdHJhcHBlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBwb2ludGVySXNPblZvaWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNMb2NrZWRPcGVuID0gZmFsc2U7XG5cbiAgICBjbGllbnRXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgIGNsaWVudEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcblxuICAgIGNvdmVyUmVjdENvcmRzID0ge1xuICAgICAgICB0b3A6IDAsXG4gICAgICAgIGxlZnQ6IDAsXG4gICAgICAgIGhlaWdodDogMCxcbiAgICAgICAgd2lkdGg6IDBcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcml2YXRlIF9kYXRhOiBhbnksXG4gICAgICAgIEBPcHRpb25hbCgpIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZywgLy8gb3B0aW9uYWwgb25seSBmb3IgdGhlIHB1cnBvc2Ugb2YgZXN0aW1hdGluZyBkaW1lbnNpb25zXG4gICAgICAgIEBPcHRpb25hbCgpIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxhbnk+LFxuICAgICkge1xuICAgICAgICAvLyBEZWZhdWx0cyBhcmUgc2V0IGJlZm9yZSBASW5wdXQoKSBob29rcyBldmFsdWF0ZVxuICAgICAgICB0aGlzLmRhdGEgPSB0aGlzLmRhdGEgfHwgdGhpcy5fZGF0YT8uZGF0YSB8fCB7fTtcbiAgICAgICAgdGhpcy5jb25maWcgPSB0aGlzLmNvbmZpZyB8fCB0aGlzLl9kYXRhPy5jb25maWc7XG4gICAgICAgIHRoaXMuZGlhbG9nID0gdGhpcy5kaWFsb2cgfHwgdGhpcy5fZGF0YT8uZGlhbG9nO1xuICAgICAgICB0aGlzLnRlbXBsYXRlID0gdGhpcy50ZW1wbGF0ZSB8fCB0aGlzLl9kYXRhPy50ZW1wbGF0ZTtcbiAgICAgICAgdGhpcy5vd25lckNvcmRzID0gdGhpcy5vd25lckNvcmRzIHx8IHRoaXMuX2RhdGE/Lm93bmVyQ29yZHM7XG4gICAgICAgIHRoaXMuc2VsZkNvcmRzID0gdGhpcy5zZWxmQ29yZHMgfHwgdGhpcy5fZGF0YT8uc2VsZkNvcmRzO1xuICAgICAgICB0aGlzLmlzTG9ja2VkT3BlbiA9IHRoaXMuX2RhdGE/LmlzTG9ja2VkT3BlbiB8fCB0aGlzLmNvbmZpZz8uc3RheU9wZW47XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG5cbiAgICAgICAgY29uc3Qgc2VsZlkgPSBwYXJzZUludCh0aGlzLnNlbGZDb3Jkcy50b3AucmVwbGFjZSgncHgnLCAnJykpO1xuICAgICAgICBjb25zdCBzZWxmWCA9IHBhcnNlSW50KHRoaXMuc2VsZkNvcmRzLmxlZnQucmVwbGFjZSgncHgnLCAnJykpO1xuXG4gICAgICAgIHRoaXMuY292ZXJSZWN0Q29yZHMgPSB7XG4gICAgICAgICAgICB0b3A6IHRoaXMub3duZXJDb3Jkcy55IC0gc2VsZlkgLSAxNixcbiAgICAgICAgICAgIGxlZnQ6IHRoaXMub3duZXJDb3Jkcy54IC0gc2VsZlggLSAxNixcbiAgICAgICAgICAgIGhlaWdodDogdGhpcy5vd25lckNvcmRzLmhlaWdodCArIDMyLFxuICAgICAgICAgICAgd2lkdGg6IHRoaXMub3duZXJDb3Jkcy53aWR0aCArIDMyXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnRlbXBsYXRlKSlcbiAgICAgICAgICAgIHRoaXMuaXNNZW51ID0gIHRydWU7XG4gICAgICAgIGVsc2UgaWYgKHRoaXMudGVtcGxhdGUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZilcbiAgICAgICAgICAgIHRoaXMuaXNUZW1wbGF0ZSA9IHRydWU7XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiB0aGlzLnRlbXBsYXRlID09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgICAgIHRoaXMuaXNUZW1wbGF0ZSA9IGZhbHNlO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbnJlY29nbml6ZWQgdGVtcGxhdGUgb2JqZWN0IHByb3ZpZGVkLlwiKTtcblxuICAgICAgICAvLyBUT0RPOiByZXNvbHZlIHRoZSBldmVudCBob29rIHdpdGggdGhlIC52b2lkIGVsZW1lbnRcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhc0Jvb3RzdHJhcHBlZCA9IHRydWU7XG4gICAgICAgICAgICBpZiAodGhpcy5wb2ludGVySXNPblZvaWQgJiYgIXRoaXMuaXNMb2NrZWRPcGVuKVxuICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICAgIH0sIDIwMCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBjb25zdCBlbCA9IHRoaXMudmlld0NvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgZXZ0ID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNMb2NrZWRPcGVuID0gdHJ1ZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJkb3duXCIsIGV2dCA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzTG9ja2VkT3BlbiA9IHRydWU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaFwiLCBldnQgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc0xvY2tlZE9wZW4gPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKFwid2luZG93OmtleWRvd25cIiwgWyckZXZlbnQnXSlcbiAgICBvbktleURvd24oZXZ0OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZz8uZnJlZXplT25LZXlDb2RlKSB7XG4gICAgICAgICAgICBpZiAoZXZ0LmNvZGUgPT0gdGhpcy5jb25maWcuZnJlZXplT25LZXlDb2RlKVxuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2NrZWRPcGVuID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVm9pZFBvaW50ZXJEb3duKGV2dDogUG9pbnRlckV2ZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5pc0xvY2tlZE9wZW4pIHtcbiAgICAgICAgICAgIGNvbnN0IGVsID0gdGhpcy52aWV3Q29udGFpbmVyLmVsZW1lbnQubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgIGVsLnF1ZXJ5U2VsZWN0b3IoXCIudm9pZFwiKS5yZW1vdmUoKTtcblxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2xvbmVkRXZ0ID0gbmV3IFBvaW50ZXJFdmVudChcInBvaW50ZXJkb3duXCIsIGV2dCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludChldnQuY2xpZW50WCwgZXZ0LmNsaWVudFkpIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJERUJVRyBFVkVOVFNcIiwge2V2dCwgY2xvbmVkRXZ0fSk7XG4gICAgICAgICAgICAgICAgdGFyZ2V0LmRpc3BhdGNoRXZlbnQoY2xvbmVkRXZ0KTtcbiAgICAgICAgICAgIH0sIDE1KVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jbG9zZU9uVm9pZCh0cnVlKVxuICAgIH1cblxuICAgIC8vIElmIHRoZSB2b2lkIGVsZW1lbnQgZ2V0cyBzdHVjayBvcGVuLCBtYWtlIHdoZWVsIGV2ZW50cyBwYXNzIHRocm91Z2guXG4gICAgb25XaGVlbChldnQ6IFdoZWVsRXZlbnQpIHtcbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLnZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBlbC5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQoZXZ0LmNsaWVudFgsIGV2dC5jbGllbnRZKTtcbiAgICAgICAgZWwuc3R5bGUuZGlzcGxheSA9IFwiYmxvY2tcIjtcblxuICAgICAgICB0YXJnZXQuc2Nyb2xsKHtcbiAgICAgICAgICAgIHRvcDogZXZ0LmRlbHRhWSArIHRhcmdldC5zY3JvbGxUb3AsXG4gICAgICAgICAgICBsZWZ0OiBldnQuZGVsdGFYICsgdGFyZ2V0LnNjcm9sbExlZnQsXG4gICAgICAgICAgICBiZWhhdmlvcjogXCJzbW9vdGhcIlxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZSB0aGUgdG9vbHRpcCBpZiB0aGVzZSBhY3Rpb25zIG9jY3VyXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIilcbiAgICBASG9zdExpc3RlbmVyKFwid2luZG93OmJsdXJcIilcbiAgICBASG9zdExpc3RlbmVyKFwicG9pbnRlcmxlYXZlXCIpXG4gICAgcHJpdmF0ZSBvbkNsb3NlKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNMb2NrZWRPcGVuKVxuICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XG5cbiAgICAgICAgdGhpcy5jbGllbnRXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgICB0aGlzLmNsaWVudEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICB9XG5cbiAgICBjbG9zZU9uVm9pZChmb3JjZSA9IGZhbHNlKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0xvY2tlZE9wZW4gfHwgZm9yY2UpXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgIH1cbn1cbiIsIjwhLS0gTW91c2UgZXZlbnQgYmxvY2tlciBmb3IgcG9pbnRlciBsZWF2ZSAtLT5cbkBpZiAoY292ZXJSZWN0Q29yZHMpIHtcbiAgICA8IS0tIDxkaXZcbiAgICAgICAgY2xhc3M9XCJvd25lci1tYXNrXCJcbiAgICAgICAgW3N0eWxlLnRvcF09XCJjb3ZlclJlY3RDb3Jkcy50b3AgKyAncHgnXCJcbiAgICAgICAgW3N0eWxlLmxlZnRdPVwiY292ZXJSZWN0Q29yZHMubGVmdCArICdweCdcIlxuICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cImNvdmVyUmVjdENvcmRzLmhlaWdodCArICdweCdcIlxuICAgICAgICBbc3R5bGUud2lkdGhdPVwiY292ZXJSZWN0Q29yZHMud2lkdGggKyAncHgnXCJcbiAgICAgICAgc3R5bGU9XCJ6LWluZGV4OiAtMTtcIlxuICAgICAgICAocG9pbnRlcmRvd24pPVwib25Wb2lkUG9pbnRlckRvd24oJGV2ZW50KVwiXG4gICAgPjwvZGl2PiAtLT5cblxuICAgIDxkaXYgY2xhc3M9XCJ2b2lkIGxlZnRcIlxuICAgICAgICBbc3R5bGUudG9wXT1cIicwcHgnXCJcbiAgICAgICAgW3N0eWxlLmxlZnRdPVwiJzBweCdcIlxuICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cIicxMDAlJ1wiXG4gICAgICAgIFtzdHlsZS53aWR0aF09XCIob3duZXJDb3Jkcy5sZWZ0KSArICdweCdcIlxuICAgICAgICAocG9pbnRlcmVudGVyKT1cInBvaW50ZXJJc09uVm9pZCA9IHRydWU7IGhhc0Jvb3RzdHJhcHBlZCAmJiBjbG9zZU9uVm9pZCgpXCJcbiAgICAgICAgKHBvaW50ZXJsZWF2ZSk9XCJwb2ludGVySXNPblZvaWQgPSBmYWxzZVwiXG4gICAgICAgIChwb2ludGVyZG93bik9XCJvblZvaWRQb2ludGVyRG93bigkZXZlbnQpXCJcbiAgICAgICAgKHdoZWVsKT1cIm9uV2hlZWwoJGV2ZW50KVwiXG4gICAgPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ2b2lkIHRvcFwiXG4gICAgICAgIFtzdHlsZS50b3BdPVwiJzBweCdcIlxuICAgICAgICBbc3R5bGUubGVmdF09XCJvd25lckNvcmRzLmxlZnQgKyAncHgnXCJcbiAgICAgICAgW3N0eWxlLmhlaWdodF09XCJvd25lckNvcmRzLnRvcCArICdweCdcIlxuICAgICAgICBbc3R5bGUud2lkdGhdPVwib3duZXJDb3Jkcy53aWR0aCArICdweCdcIlxuICAgICAgICAocG9pbnRlcmVudGVyKT1cInBvaW50ZXJJc09uVm9pZCA9IHRydWU7IGhhc0Jvb3RzdHJhcHBlZCAmJiBjbG9zZU9uVm9pZCgpXCJcbiAgICAgICAgKHBvaW50ZXJsZWF2ZSk9XCJwb2ludGVySXNPblZvaWQgPSBmYWxzZVwiXG4gICAgICAgIChwb2ludGVyZG93bik9XCJvblZvaWRQb2ludGVyRG93bigkZXZlbnQpXCJcbiAgICAgICAgKHdoZWVsKT1cIm9uV2hlZWwoJGV2ZW50KVwiXG4gICAgPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ2b2lkIHJpZ2h0XCJcbiAgICAgICAgW3N0eWxlLnRvcF09XCInMHB4J1wiXG4gICAgICAgIFtzdHlsZS5sZWZ0XT1cIihvd25lckNvcmRzLmxlZnQgKyBvd25lckNvcmRzLndpZHRoKSArICdweCdcIlxuICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cIicxMDAlJ1wiXG4gICAgICAgIFtzdHlsZS53aWR0aF09XCIoY2xpZW50V2lkdGggLSAob3duZXJDb3Jkcy5sZWZ0ICsgb3duZXJDb3Jkcy53aWR0aCkpICsgJ3B4J1wiXG4gICAgICAgIChwb2ludGVyZW50ZXIpPVwicG9pbnRlcklzT25Wb2lkID0gdHJ1ZTsgaGFzQm9vdHN0cmFwcGVkICYmIGNsb3NlT25Wb2lkKClcIlxuICAgICAgICAocG9pbnRlcmxlYXZlKT1cInBvaW50ZXJJc09uVm9pZCA9IGZhbHNlXCJcbiAgICAgICAgKHBvaW50ZXJkb3duKT1cIm9uVm9pZFBvaW50ZXJEb3duKCRldmVudClcIlxuICAgICAgICAod2hlZWwpPVwib25XaGVlbCgkZXZlbnQpXCJcbiAgICA+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInZvaWRcIlxuICAgICAgICBbc3R5bGUudG9wXT1cIihvd25lckNvcmRzLnRvcCArIG93bmVyQ29yZHMuaGVpZ2h0KSArICdweCdcIlxuICAgICAgICBbc3R5bGUubGVmdF09XCJvd25lckNvcmRzLmxlZnQgKyAncHgnXCJcbiAgICAgICAgW3N0eWxlLmhlaWdodF09XCIoY2xpZW50SGVpZ2h0IC0gKG93bmVyQ29yZHMudG9wICsgb3duZXJDb3Jkcy5oZWlnaHQpKSArICdweCdcIlxuICAgICAgICBbc3R5bGUud2lkdGhdPVwib3duZXJDb3Jkcy53aWR0aCArICdweCdcIlxuICAgICAgICAocG9pbnRlcmVudGVyKT1cInBvaW50ZXJJc09uVm9pZCA9IHRydWU7IGhhc0Jvb3RzdHJhcHBlZCAmJiBjbG9zZU9uVm9pZCgpXCJcbiAgICAgICAgKHBvaW50ZXJsZWF2ZSk9XCJwb2ludGVySXNPblZvaWQgPSBmYWxzZVwiXG4gICAgICAgIChwb2ludGVyZG93bik9XCJvblZvaWRQb2ludGVyRG93bigkZXZlbnQpXCJcbiAgICAgICAgKHdoZWVsKT1cIm9uV2hlZWwoJGV2ZW50KVwiXG4gICAgPjwvZGl2PlxufVxuXG5cbjxkaXZcbiAgICAjY29udGFpbmVyXG4gICAgY2xhc3M9XCJjb250YWluZXJcIlxuPlxuICAgIEBpZiAoaXNNZW51KSB7XG4gICAgICAgIDxuZ3gtbWVudVxuICAgICAgICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgICAgICAgICAgW2RhdGFdPVwiZGF0YVwiXG4gICAgICAgICAgICBbb3duZXJDb3Jkc109XCJvd25lckNvcmRzXCJcbiAgICAgICAgICAgIFtzZWxmQ29yZHNdPVwic2VsZkNvcmRzXCJcbiAgICAgICAgICAgIFtpdGVtc109XCIkYW55KHRlbXBsYXRlKVwiXG4gICAgICAgICAgICBbaXNMb2NrZWRPcGVuXT1cImNvbmZpZy5zdGF5T3BlblwiXG4gICAgICAgIC8+XG4gICAgfVxuICAgIEBlbHNlIGlmIChpc1RlbXBsYXRlKSB7XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkodGVtcGxhdGUpXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgJyRpbXBsaWNpdCc6IGRhdGEsXG4gICAgICAgICAgICAgICAgJ2RpYWxvZyc6IGRpYWxvZ1JlZixcbiAgICAgICAgICAgICAgICAnZWxlbWVudCc6IGNvbnRhaW5lcixcbiAgICAgICAgICAgICAgICAndG9vbHRpcCc6IHRoaXNcbiAgICAgICAgICAgIH1cIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgW25nQ29tcG9uZW50T3V0bGV0XT1cIiRhbnkodGVtcGxhdGUpXCJcbiAgICAgICAgPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICB9XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export const NGX_WEB_COMPONENTS_CONFIG = new InjectionToken('webcomponents-config');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvbXBvbmVudHMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLGNBQWMsQ0FBeUIsc0JBQXNCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBOR1hfV0VCX0NPTVBPTkVOVFNfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPE5neFdlYkNvbXBvbmVudHNDb25maWc+KCd3ZWJjb21wb25lbnRzLWNvbmZpZycpO1xuXG5leHBvcnQgdHlwZSBOZ3hXZWJDb21wb25lbnRzQ29uZmlnID0gUGFydGlhbDx7XG4gICAgLyoqXG4gICAgICogVGhlIHBhdGggdGhhdCBhc3NldHMgd2lsbCB1bHRpbWF0ZWx5IGJlIHNlcnZlZCBmcm9tLlxuICAgICAqIERlZmF1bHQgYC9hc3NldHMvYFxuICAgICAqL1xuICAgIGFzc2V0UGF0aDogc3RyaW5nXG59PjtcblxuXG5leHBvcnQgdHlwZSBGaWxlU29ydGluZyA9IFwiYS16XCIgfCBcInotYVwiIHwgXCJsYXN0bW9kXCIgfCBcImZpcnN0bW9kXCIgfCBcInNpemVcIiB8IFwidHlwZVwiO1xuIl19
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import { Directive, Inject, InjectionToken, Input, Optional } from '@angular/core';
|
|
2
|
-
import { INDEXEDDB, createInstance } from 'localforage';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
const storage = createInstance({
|
|
5
|
-
name: "@dotglitch",
|
|
6
|
-
storeName: "image-cache",
|
|
7
|
-
driver: INDEXEDDB,
|
|
8
|
-
version: 1
|
|
9
|
-
});
|
|
10
|
-
const imageCache = {};
|
|
11
|
-
const loadingSvg = `data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32px" height="32px" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid"><circle cx="50" cy="50" fill="none" stroke="%2340c4ff" stroke-width="10" r="35" stroke-dasharray="164.93361431346415 56.97787143782138"><animateTransform attributeName="transform" type="rotate" repeatCount="indefinite" dur="1s" values="0 50 50;360 50 50" keyTimes="0;1"></animateTransform></circle><!-- [ldio] generated by https://loading.io/ --></svg>`;
|
|
12
|
-
const brokenSvg = `data:image/svg+xml;utf8,<svg width="800" height="800" viewBox="0 0 24 24" version="1.1" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><line x1="10.08" y1="8.29" x2="10.18" y2="8.29" style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round" /><path d="m 10.51,14.8 5.2,5.2 H 20 a 1,1 0 0 0 1,-1 V 15.73 L 15.29,10 Z M 3,16.71 V 19 a 1,1 0 0 0 1,1 h 11.71 l -8,-8 z M 21,5 v 14 a 1,1 0 0 1 -1,1 H 4 A 1,1 0 0 1 3,19 V 5 A 1,1 0 0 1 4,4 h 16 a 1,1 0 0 1 1,1 z" style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round" /><path d="M 21.193388,21.193388 2.8066108,2.8066108 m 18.3867772,0 L 2.8066108,21.193388" style="stroke:%23ff0000;stroke-width:2.62668;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" /></svg>`;
|
|
13
|
-
export const NGX_IMAGE_CACHE_CONFIG = new InjectionToken('ngx-image-cache-config');
|
|
14
|
-
export class NgxImageCacheDirective {
|
|
15
|
-
get el() { return this.element.nativeElement; }
|
|
16
|
-
constructor(element, cacheConfig) {
|
|
17
|
-
this.element = element;
|
|
18
|
-
this.cacheConfig = cacheConfig;
|
|
19
|
-
}
|
|
20
|
-
ngOnChanges() {
|
|
21
|
-
this.getCachedImage();
|
|
22
|
-
}
|
|
23
|
-
async getCachedImage() {
|
|
24
|
-
if (this.el.src?.trim() == this.url?.trim() || // Check that there's an actual change
|
|
25
|
-
this.url?.trim().length == 0 // Check that there's an actual URL
|
|
26
|
-
)
|
|
27
|
-
return;
|
|
28
|
-
// Check if it's in the memory cache
|
|
29
|
-
if (imageCache[this.url]) {
|
|
30
|
-
const image = imageCache[this.url];
|
|
31
|
-
// If the image is currently loading, show the loader
|
|
32
|
-
// and add it to the reflist
|
|
33
|
-
if (image['_loading'] == true) {
|
|
34
|
-
image['_refs'].push(this.el);
|
|
35
|
-
this.el.setAttribute("loading", "true");
|
|
36
|
-
this.el.src = this.cacheConfig?.loadingPlaceholder || loadingSvg;
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
// The image is fully loaded, swap out the src with a data-uri
|
|
40
|
-
this.el.setAttribute("loading", "false");
|
|
41
|
-
this.el.src = image.src;
|
|
42
|
-
}
|
|
43
|
-
// If it's already in the image cache, we're going to trust that it loads properly.
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
// Check if it's in indexedDB
|
|
47
|
-
if (this.configuration?.cacheInIndexedDB != false) {
|
|
48
|
-
const cached = await storage.getItem(this.url);
|
|
49
|
-
if (cached) {
|
|
50
|
-
// Attempt to load the base64 data from indexeddb.
|
|
51
|
-
// If this fails, we'll fall back to attempting to download the image
|
|
52
|
-
this.el.src = cached.data;
|
|
53
|
-
const evt = await new Promise(res => {
|
|
54
|
-
this.el.addEventListener('load', res);
|
|
55
|
-
this.el.addEventListener('error', res);
|
|
56
|
-
});
|
|
57
|
-
// If the event isn't an error
|
|
58
|
-
if (evt.type == "load") {
|
|
59
|
-
this.el.setAttribute("loading", "false");
|
|
60
|
-
if (this.configuration?.cacheInMemory != false) {
|
|
61
|
-
// Successfully loaded into element
|
|
62
|
-
// Create an entry in the memory cache
|
|
63
|
-
const image = imageCache[this.url] = new Image();
|
|
64
|
-
image.src = cached.data;
|
|
65
|
-
image['_createdAt'] = Date.now();
|
|
66
|
-
}
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
// Else, we try to load again.
|
|
71
|
-
this.el.src = this.cacheConfig?.loadingPlaceholder || loadingSvg;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
const image = (() => {
|
|
76
|
-
if (this.configuration?.cacheInMemory != false) {
|
|
77
|
-
return imageCache[this.url] = new Image();
|
|
78
|
-
}
|
|
79
|
-
return new Image();
|
|
80
|
-
})();
|
|
81
|
-
// const clone = image.cloneNode(true) as HTMLImageElement;
|
|
82
|
-
image['_refs'] = image['_refs'] ?? [];
|
|
83
|
-
image['_refs'].push(this.el);
|
|
84
|
-
image['_loading'] = true;
|
|
85
|
-
image['_createdAt'] = Date.now();
|
|
86
|
-
// Show a loader while the image downloads.
|
|
87
|
-
this.el.setAttribute("loading", "true");
|
|
88
|
-
this.el.src = this.cacheConfig?.loadingPlaceholder || loadingSvg;
|
|
89
|
-
// Fetch the image via JS and cache it as base64
|
|
90
|
-
window.fetch(this.url)
|
|
91
|
-
.then(response => response.blob())
|
|
92
|
-
.then(blob => new Promise((resolve, reject) => {
|
|
93
|
-
const reader = new FileReader();
|
|
94
|
-
reader.onloadend = () => {
|
|
95
|
-
image.src = reader.result;
|
|
96
|
-
storage.setItem(this.url, {
|
|
97
|
-
timestamp: Date.now(),
|
|
98
|
-
data: reader.result
|
|
99
|
-
});
|
|
100
|
-
image['_refs'].forEach((ref) => {
|
|
101
|
-
ref.src = image.src;
|
|
102
|
-
});
|
|
103
|
-
image['_loading'] = false;
|
|
104
|
-
resolve(0);
|
|
105
|
-
};
|
|
106
|
-
reader.onerror = reject;
|
|
107
|
-
reader.readAsDataURL(blob);
|
|
108
|
-
}))
|
|
109
|
-
.catch(err => {
|
|
110
|
-
// If a failure occurs, purge this entry from the cache
|
|
111
|
-
// TODO: Render better "broken" image
|
|
112
|
-
delete imageCache[this.url];
|
|
113
|
-
image['_refs'].forEach((ref) => {
|
|
114
|
-
ref.src = this.cacheConfig?.brokenPlaceholder || brokenSvg;
|
|
115
|
-
ref.setAttribute("loading", "failed");
|
|
116
|
-
});
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgxImageCacheDirective, deps: [{ token: i0.ElementRef }, { token: NGX_IMAGE_CACHE_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
120
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: NgxImageCacheDirective, isStandalone: true, selector: "img[ngx-cache]", inputs: { url: ["source", "url"], configuration: ["ngx-cache-config", "configuration"] }, usesOnChanges: true, ngImport: i0 }); }
|
|
121
|
-
}
|
|
122
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgxImageCacheDirective, decorators: [{
|
|
123
|
-
type: Directive,
|
|
124
|
-
args: [{
|
|
125
|
-
selector: 'img[ngx-cache]',
|
|
126
|
-
standalone: true
|
|
127
|
-
}]
|
|
128
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
129
|
-
type: Optional
|
|
130
|
-
}, {
|
|
131
|
-
type: Inject,
|
|
132
|
-
args: [NGX_IMAGE_CACHE_CONFIG]
|
|
133
|
-
}] }], propDecorators: { url: [{
|
|
134
|
-
type: Input,
|
|
135
|
-
args: ["source"]
|
|
136
|
-
}, {
|
|
137
|
-
type: Input,
|
|
138
|
-
args: ["ngx-cache"]
|
|
139
|
-
}], configuration: [{
|
|
140
|
-
type: Input,
|
|
141
|
-
args: ["ngx-cache-config"]
|
|
142
|
-
}] } });
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtY2FjaGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9kaXJlY3RpdmVzL2ltYWdlLWNhY2hlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFFeEQsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDO0lBQzNCLElBQUksRUFBRSxZQUFZO0lBQ2xCLFNBQVMsRUFBRSxhQUFhO0lBQ3hCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE9BQU8sRUFBRSxDQUFDO0NBQ2IsQ0FBQyxDQUFDO0FBR0gsTUFBTSxVQUFVLEdBRVosRUFBRSxDQUFDO0FBRVAsTUFBTSxVQUFVLEdBQUcsNmhCQUE2aEIsQ0FBQztBQUNqakIsTUFBTSxTQUFTLEdBQUcsdzBCQUF3MEIsQ0FBQztBQWUzMUIsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQXNCLHdCQUF3QixDQUFDLENBQUM7QUEyQnhHLE1BQU0sT0FBTyxzQkFBc0I7SUFPL0IsSUFBWSxFQUFFLEtBQUssT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWlDLENBQUEsQ0FBQyxDQUFDO0lBRTFFLFlBQ3FCLE9BQW1CLEVBQ3lCLFdBQWdDO1FBRDVFLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDeUIsZ0JBQVcsR0FBWCxXQUFXLENBQXFCO0lBQzdGLENBQUM7SUFFTCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYztRQUNoQixJQUNJLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUks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bkI7OzBCQVlRLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsc0JBQXNCO3lDQVIxQixHQUFHO3NCQUR0QixLQUFLO3VCQUFDLFFBQVE7O3NCQUNkLEtBQUs7dUJBQUMsV0FBVztnQkFFUyxhQUFhO3NCQUF2QyxLQUFLO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgSW5wdXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJTkRFWEVEREIsIGNyZWF0ZUluc3RhbmNlIH0gZnJvbSAnbG9jYWxmb3JhZ2UnO1xuXG5jb25zdCBzdG9yYWdlID0gY3JlYXRlSW5zdGFuY2Uoe1xuICAgIG5hbWU6IFwiQGRvdGdsaXRjaFwiLFxuICAgIHN0b3JlTmFtZTogXCJpbWFnZS1jYWNoZVwiLFxuICAgIGRyaXZlcjogSU5ERVhFRERCLFxuICAgIHZlcnNpb246IDFcbn0pO1xuXG5cbmNvbnN0IGltYWdlQ2FjaGU6IHtcbiAgICBba2V5OiBzdHJpbmddOiBIVE1MSW1hZ2VFbGVtZW50O1xufSA9IHt9O1xuXG5jb25zdCBsb2FkaW5nU3ZnID0gYGRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiIHdpZHRoPVwiMzJweFwiIGhlaWdodD1cIjMycHhcIiB2aWV3Qm94PVwiMCAwIDEwMCAxMDBcIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWRcIj48Y2lyY2xlIGN4PVwiNTBcIiBjeT1cIjUwXCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCIlMjM0MGM0ZmZcIiBzdHJva2Utd2lkdGg9XCIxMFwiIHI9XCIzNVwiIHN0cm9rZS1kYXNoYXJyYXk9XCIxNjQuOTMzNjE0MzEzNDY0MTUgNTYuOTc3ODcxNDM3ODIxMzhcIj48YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPVwidHJhbnNmb3JtXCIgdHlwZT1cInJvdGF0ZVwiIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiIGR1cj1cIjFzXCIgdmFsdWVzPVwiMCA1MCA1MDszNjAgNTAgNTBcIiBrZXlUaW1lcz1cIjA7MVwiPjwvYW5pbWF0ZVRyYW5zZm9ybT48L2NpcmNsZT48IS0tIFtsZGlvXSBnZW5lcmF0ZWQgYnkgaHR0cHM6Ly9sb2FkaW5nLmlvLyAtLT48L3N2Zz5gO1xuY29uc3QgYnJva2VuU3ZnID0gYGRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9XCI4MDBcIiBoZWlnaHQ9XCI4MDBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgdmVyc2lvbj1cIjEuMVwiIHhtbDpzcGFjZT1cInByZXNlcnZlXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnN2Zz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PGxpbmUgeDE9XCIxMC4wOFwiIHkxPVwiOC4yOVwiIHgyPVwiMTAuMThcIiB5Mj1cIjguMjlcIiBzdHlsZT1cImZpbGw6bm9uZTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6Mi41O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZFwiIC8+PHBhdGggZD1cIm0gMTAuNTEsMTQuOCA1LjIsNS4yIEggMjAgYSAxLDEgMCAwIDAgMSwtMSBWIDE1LjczIEwgMTUuMjksMTAgWiBNIDMsMTYuNzEgViAxOSBhIDEsMSAwIDAgMCAxLDEgaCAxMS43MSBsIC04LC04IHogTSAyMSw1IHYgMTQgYSAxLDEgMCAwIDEgLTEsMSBIIDQgQSAxLDEgMCAwIDEgMywxOSBWIDUgQSAxLDEgMCAwIDEgNCw0IGggMTYgYSAxLDEgMCAwIDEgMSwxIHpcIiBzdHlsZT1cImZpbGw6bm9uZTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmRcIiAvPjxwYXRoIGQ9XCJNIDIxLjE5MzM4OCwyMS4xOTMzODggMi44MDY2MTA4LDIuODA2NjEwOCBtIDE4LjM4Njc3NzIsMCBMIDIuODA2NjEwOCwyMS4xOTMzODhcIiBzdHlsZT1cInN0cm9rZTolMjNmZjAwMDA7c3Ryb2tlLXdpZHRoOjIuNjI2Njg7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1vcGFjaXR5OjFcIiAvPjwvc3ZnPmA7XG5cbmV4cG9ydCB0eXBlIE5neEltYWdlQ2FjaGVDb25maWcgPSB7XG4gICAgLyoqXG4gICAgICogSW1hZ2UgdG8gdXNlIGFzIGEgcGxhY2Vob2xkZXIgd2hpbGUgbG9hZGluZyB0aGUgbWFpbiBpbWFnZVxuICAgICAqIFJlY29tbWVuZGVkIHRvIHVzZSBpbmxpbmVkIFNWRyBvciBhIGJhc2U2NCBlbmNvZGVkIGltYWdlXG4gICAgICovXG4gICAgbG9hZGluZ1BsYWNlaG9sZGVyPzogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIEltYWdlIHRvIHVzZSBhcyBhIHBsYWNlaG9sZGVyIHdoZXJlIGltYWdlcyBmYWlsIHRvIGxvYWRcbiAgICAgKiBSZWNvbW1lbmRlZCB0byB1c2UgaW5saW5lZCBTVkcgb3IgYSBiYXNlNjQgZW5jb2RlZCBpbWFnZVxuICAgICAqL1xuICAgIGJyb2tlblBsYWNlaG9sZGVyPzogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCBOR1hfSU1BR0VfQ0FDSEVfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPE5neEltYWdlQ2FjaGVDb25maWc+KCduZ3gtaW1hZ2UtY2FjaGUtY29uZmlnJyk7XG5cblxuZXhwb3J0IHR5cGUgTmd4SW1hZ2VDYWNoZUNvbmZpZ3VyYXRpb24gPSB7XG4gICAgLyoqXG4gICAgICogTWF4IGFnZSB0byBjYWNoZSBhbiBpbWFnZSBpbiBtaWxsaXNlY29uZHMuXG4gICAgICogSWYgc2V0IHRvIGAwYCBvciBhIG5lZ2F0aXZlIG51bWJlciwgaW1hZ2VzIHdpbGwgbmV2ZXIgZXhwaXJlLlxuICAgICAqL1xuICAgIG1heEFnZTogbnVtYmVyLFxuICAgIC8qKlxuICAgICAqIFNldCB0byBgZmFsc2VgIHRvIGRpc2FibGUgbWVtb3J5IGNhY2hpbmcgZm9yIHRoZSBpbWFnZVxuICAgICAqIElmIGJvdGggYGNhY2hlSW5NZW1vcnlgIGFuZCBgY2FjaGVJbkluZGV4ZWREQmAgYXJlIGZhbHNlLFxuICAgICAqIG5vIGNhY2hpbmcgd2lsbCBoYXBwZW4uIChZb3UnbGwgc3RpbGwgZ2V0IHRoZSBsb2FkZXIpXG4gICAgICovXG4gICAgY2FjaGVJbk1lbW9yeTogYm9vbGVhbixcbiAgICAvKipcbiAgICAgKiBTZXQgdG8gYGZhbHNlYCB0byBkaXNhYmxlIGluZGV4ZWREQiBjYWNoaW5nIGZvciB0aGUgaW1hZ2VcbiAgICAgKiBJZiBib3RoIGBjYWNoZUluTWVtb3J5YCBhbmQgYGNhY2hlSW5JbmRleGVkREJgIGFyZSBmYWxzZSxcbiAgICAgKiBubyBjYWNoaW5nIHdpbGwgaGFwcGVuLiAoWW91J2xsIHN0aWxsIGdldCB0aGUgbG9hZGVyKVxuICAgICAqL1xuICAgIGNhY2hlSW5JbmRleGVkREI6IGJvb2xlYW5cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpbWdbbmd4LWNhY2hlXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBOZ3hJbWFnZUNhY2hlRGlyZWN0aXZlIHtcblxuICAgIEBJbnB1dChcInNvdXJjZVwiKVxuICAgIEBJbnB1dChcIm5neC1jYWNoZVwiKSB1cmw6IHN0cmluZztcblxuICAgIEBJbnB1dChcIm5neC1jYWNoZS1jb25maWdcIikgY29uZmlndXJhdGlvbjogTmd4SW1hZ2VDYWNoZUNvbmZpZ3VyYXRpb247XG5cbiAgICBwcml2YXRlIGdldCBlbCgpIHsgcmV0dXJuIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxJbWFnZUVsZW1lbnQgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOR1hfSU1BR0VfQ0FDSEVfQ09ORklHKSBwcml2YXRlIHJlYWRvbmx5IGNhY2hlQ29uZmlnOiBOZ3hJbWFnZUNhY2hlQ29uZmlnXG4gICAgKSB7IH1cblxuICAgIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICB0aGlzLmdldENhY2hlZEltYWdlKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0Q2FjaGVkSW1hZ2UoKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuZWwuc3JjPy50cmltKCkgPT0gdGhpcy51cmw/LnRyaW0oKSB8fCAvLyBDaGVjayB0aGF0IHRoZXJlJ3MgYW4gYWN0dWFsIGNoYW5nZVxuICAgICAgICAgICAgdGhpcy51cmw/LnRyaW0oKS5sZW5ndGggPT0gMCAvLyBDaGVjayB0aGF0IHRoZXJlJ3MgYW4gYWN0dWFsIFVSTFxuICAgICAgICApIHJldHVybjtcblxuICAgICAgICAvLyBDaGVjayBpZiBpdCdzIGluIHRoZSBtZW1vcnkgY2FjaGVcbiAgICAgICAgaWYgKGltYWdlQ2FjaGVbdGhpcy51cmxdKSB7XG4gICAgICAgICAgICBjb25zdCBpbWFnZSA9IGltYWdlQ2FjaGVbdGhpcy51cmxdO1xuXG4gICAgICAgICAgICAvLyBJZiB0aGUgaW1hZ2UgaXMgY3VycmVudGx5IGxvYWRpbmcsIHNob3cgdGhlIGxvYWRlclxuICAgICAgICAgICAgLy8gYW5kIGFkZCBpdCB0byB0aGUgcmVmbGlzdFxuICAgICAgICAgICAgaWYgKGltYWdlWydfbG9hZGluZyddID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBpbWFnZVsnX3JlZnMnXS5wdXNoKHRoaXMuZWwpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5lbC5zZXRBdHRyaWJ1dGUoXCJsb2FkaW5nXCIsIFwidHJ1ZVwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsLnNyYyA9IHRoaXMuY2FjaGVDb25maWc/LmxvYWRpbmdQbGFjZWhvbGRlciB8fCBsb2FkaW5nU3ZnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlIGltYWdlIGlzIGZ1bGx5IGxvYWRlZCwgc3dhcCBvdXQgdGhlIHNyYyB3aXRoIGEgZGF0YS11cmlcbiAgICAgICAgICAgICAgICB0aGlzLmVsLnNldEF0dHJpYnV0ZShcImxvYWRpbmdcIiwgXCJmYWxzZVwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsLnNyYyA9IGltYWdlLnNyYztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSWYgaXQncyBhbHJlYWR5IGluIHRoZSBpbWFnZSBjYWNoZSwgd2UncmUgZ29pbmcgdG8gdHJ1c3QgdGhhdCBpdCBsb2FkcyBwcm9wZXJseS5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGlmIGl0J3MgaW4gaW5kZXhlZERCXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24/LmNhY2hlSW5JbmRleGVkREIgIT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhY2hlZCA9IGF3YWl0IHN0b3JhZ2UuZ2V0SXRlbTxhbnk+KHRoaXMudXJsKTtcbiAgICAgICAgICAgIGlmIChjYWNoZWQpIHtcbiAgICAgICAgICAgICAgICAvLyBBdHRlbXB0IHRvIGxvYWQgdGhlIGJhc2U2NCBkYXRhIGZyb20gaW5kZXhlZGRiLlxuICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgZmFpbHMsIHdlJ2xsIGZhbGwgYmFjayB0byBhdHRlbXB0aW5nIHRvIGRvd25sb2FkIHRoZSBpbWFnZVxuICAgICAgICAgICAgICAgIHRoaXMuZWwuc3JjID0gY2FjaGVkLmRhdGE7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBldnQ6IEV2ZW50ID0gYXdhaXQgbmV3IFByb21pc2UocmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcmVzKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHJlcyk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgZXZlbnQgaXNuJ3QgYW4gZXJyb3JcbiAgICAgICAgICAgICAgICBpZiAoZXZ0LnR5cGUgPT0gXCJsb2FkXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbC5zZXRBdHRyaWJ1dGUoXCJsb2FkaW5nXCIsIFwiZmFsc2VcIik7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbj8uY2FjaGVJbk1lbW9yeSAhPSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3VjY2Vzc2Z1bGx5IGxvYWRlZCBpbnRvIGVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIENyZWF0ZSBhbiBlbnRyeSBpbiB0aGUgbWVtb3J5IGNhY2hlXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbWFnZSA9IGltYWdlQ2FjaGVbdGhpcy51cmxdID0gbmV3IEltYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbWFnZS5zcmMgPSBjYWNoZWQuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlWydfY3JlYXRlZEF0J10gPSBEYXRlLm5vdygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEVsc2UsIHdlIHRyeSB0byBsb2FkIGFnYWluLlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsLnNyYyA9IHRoaXMuY2FjaGVDb25maWc/LmxvYWRpbmdQbGFjZWhvbGRlciB8fCBsb2FkaW5nU3ZnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGltYWdlID0gKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24/LmNhY2hlSW5NZW1vcnkgIT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaW1hZ2VDYWNoZVt0aGlzLnVybF0gPSBuZXcgSW1hZ2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBuZXcgSW1hZ2UoKTtcbiAgICAgICAgfSkoKTtcblxuICAgICAgICAvLyBjb25zdCBjbG9uZSA9IGltYWdlLmNsb25lTm9kZSh0cnVlKSBhcyBIVE1MSW1hZ2VFbGVtZW50O1xuICAgICAgICBpbWFnZVsnX3JlZnMnXSA9IGltYWdlWydfcmVmcyddID8/IFtdO1xuICAgICAgICBpbWFnZVsnX3JlZnMnXS5wdXNoKHRoaXMuZWwpO1xuICAgICAgICBpbWFnZVsnX2xvYWRpbmcnXSA9IHRydWU7XG4gICAgICAgIGltYWdlWydfY3JlYXRlZEF0J10gPSBEYXRlLm5vdygpO1xuXG4gICAgICAgIC8vIFNob3cgYSBsb2FkZXIgd2hpbGUgdGhlIGltYWdlIGRvd25sb2Fkcy5cbiAgICAgICAgdGhpcy5lbC5zZXRBdHRyaWJ1dGUoXCJsb2FkaW5nXCIsIFwidHJ1ZVwiKTtcbiAgICAgICAgdGhpcy5lbC5zcmMgPSB0aGlzLmNhY2hlQ29uZmlnPy5sb2FkaW5nUGxhY2Vob2xkZXIgfHwgbG9hZGluZ1N2ZztcblxuICAgICAgICAvLyBGZXRjaCB0aGUgaW1hZ2UgdmlhIEpTIGFuZCBjYWNoZSBpdCBhcyBiYXNlNjRcbiAgICAgICAgd2luZG93LmZldGNoKHRoaXMudXJsKVxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UuYmxvYigpKVxuICAgICAgICAgICAgLnRoZW4oYmxvYiA9PiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkZW5kID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpbWFnZS5zcmMgPSByZWFkZXIucmVzdWx0IGFzIHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICBzdG9yYWdlLnNldEl0ZW0odGhpcy51cmwsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHJlYWRlci5yZXN1bHRcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaW1hZ2VbJ19yZWZzJ10uZm9yRWFjaCgocmVmOiBIVE1MSW1hZ2VFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWYuc3JjID0gaW1hZ2Uuc3JjO1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICBpbWFnZVsnX2xvYWRpbmcnXSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKDApO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSByZWplY3Q7XG4gICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoYmxvYik7XG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgICAgIC8vIElmIGEgZmFpbHVyZSBvY2N1cnMsIHB1cmdlIHRoaXMgZW50cnkgZnJvbSB0aGUgY2FjaGVcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBSZW5kZXIgYmV0dGVyIFwiYnJva2VuXCIgaW1hZ2VcbiAgICAgICAgICAgICAgICBkZWxldGUgaW1hZ2VDYWNoZVt0aGlzLnVybF07XG4gICAgICAgICAgICAgICAgaW1hZ2VbJ19yZWZzJ10uZm9yRWFjaCgocmVmOiBIVE1MSW1hZ2VFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJlZi5zcmMgPSB0aGlzLmNhY2hlQ29uZmlnPy5icm9rZW5QbGFjZWhvbGRlciB8fCBicm9rZW5Tdmc7XG4gICAgICAgICAgICAgICAgICAgIHJlZi5zZXRBdHRyaWJ1dGUoXCJsb2FkaW5nXCIsIFwiZmFpbGVkXCIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|